def HandleEvent(self, event): log.dict(event,"HandleEvent") pm = self._PluginManager if not pm: log.warning("No plugin manager") return pd = self._PluginDispatcher if not pd: log.warning("No plugin dispatcher") return ro = self._ResponseObject if not ro: log.warning("no response object") pass matches = pm.GetMatchingFunctions(event) log.debug("Matched %i hook(s)." % len(matches)) for inst, func, args, servs in matches: newEvent = dictJoin(event, dictJoin(args, {"self": inst, "response": ro})) log.debug("Services found for plugin:", servs) if servs: log.debug("Event before processing:", newEvent) servDict={} servDict["event"]=newEvent servDict["pm"]=self._PluginManager servDict["pd"]=self._PluginDispatcher servDict["ro"]=self._ResponseObject servDict["c"]=self._Connector servDict["core"]=self servDict["config"]=self._Config for servName in servs: serv = pm.GetService(servName) log.debug("Processing service",servName,serv) call(serv.onEvent,servDict) if servs: log.dict(newEvent,"Event after processing:") #issue 5 fix goes here newEvent.update(servDict) pd.Enqueue((func, newEvent))
def HandleEvent(self,event): log.debug("HandleEvent") log.dict(event) pm = self._PluginManager if not pm: log.warning("No plugin manager") return pd = self._PluginDispatcher if not pd: log.warning("No plugin dispatcher") return ro = self._ResponseObject if not ro: log.warning("no response object") pass matches = pm.GetMatchingFunctions(event) log.debug("Matched %i hook(s)."%len(matches)) for inst,func,args in matches: newEvent = dictJoin(event,dictJoin(args,{"self":inst,"response":ro})) log.debug("Getting services for:",inst) servs = pm.GetServices(inst) log.debug("Services found for plugin:",servs) if servs: log.debug("Event before processing:",newEvent) for serv in servs: log.debug("Processing service",serv) serv.onEvent(newEvent) if servs: log.debug("Event after processing:",newEvent) #issue 5 fix goes here pd.Enqueue((func,newEvent))