def __init__(self, context, keynodes=[], cpp_bridge=None): self.sc_context = context self.keynodes = ScKeynodes(self.sc_context) self.cpp = cpp_bridge self.events = ScEventManager(self.cpp) for k in keynodes: addr = self.keynodes[k] if not addr: raise ScKeynodeException(k)
def __init__(self, ctx, cpp_bridge, keynodes=[]): self.__sc_context = ctx self.keynodes = ScKeynodes(self.__sc_context) self.cpp = cpp_bridge assert self.cpp self.__events = ScEventManager(self.cpp) self.KeynodesCheck(keynodes) self.is_running = True self.task_queue = queue.Queue() self.log = Log(self.__class__.__name__)
def RunImpl(self, evt): self.cmd_addr = evt.other_addr assert self.cmd_addr.IsValid() # change state to a progress progress_edge = evt.edge_addr def change_progress(state: ScAddr): self.module.ctx.DeleteElement(progress_edge) self.module.ctx.CreateEdge(ScType.EdgeAccessConstPosPerm, state, self.cmd_addr) change_progress(ScKeynodes.kCommandProgressdAddr()) # create result structure templ = ScTemplate() templ.TripleWithRelation(self.cmd_addr, ScType.EdgeDCommonVar, ScType.NodeVarStruct >> '_result', ScType.EdgeAccessVarPosPerm, self.keynodes[ScAgent.kNrelResult]) gen_res = self.module.ctx.HelperGenTemplate(templ, ScTemplateGenParams()) assert gen_res.Size() > 0 res_addr = gen_res['_result'] self.result_set = ScSet(self.module.ctx, res_addr) # run implementation of command result = self.DoCommand() # generate result type self.module.ctx.CreateEdge(ScType.EdgeAccessConstPosPerm, ScKeynodes.GetResultCodeAddr(result), res_addr) change_progress(ScKeynodes.kCommandFinishedAddr()) return result
def __init__(self, ctx, cpp_bridge, keynodes=[]): self.__sc_context = ctx self.keynodes = ScKeynodes(self.__sc_context) self.cpp = cpp_bridge assert self.cpp self.__events = ScEventManager(self.cpp) self.KeynodesCheck(keynodes) self.is_running = True self.task_queue = queue.Queue() self.agents = [] # list of registered agents
def __init__(self, module): self.module = module self.evt = None self.keynodes = ScKeynodes(module.ctx)
def InitGlobal(module): ScAgent.keynodes = ScKeynodes(module.ctx)