async def __notify_highway(self): """ Method that sends statistics to the subscripted HighwayAgent. """ b = MessageManager.get_statistic_to_highway_message( self.agent._statistics._ranking) msg = Message(to=JIDEnum.HIGH.value, sender=self.agent._jid, body=b, metadata={"performative": "stat"}) await self.send(msg) LogManager.sent(self.agent.name)
async def run(self): if self.agent._highwayAvailable: if self.agent._orders.__len__() > 0: o = self.agent.get_order_at(0) b = MessageManager.get_order_message( o._min_execution_time, o._priority) msg = Message(to=JIDEnum.HIGH.value, sender=self.agent._jid, body=b, metadata={"performative": "query"}) await self.send(msg) LogManager.sent(self.agent.name)
async def __notify_statistics(self): """ Method that informs the subscripted StatisticalAgent about the job just done by this GUIAgent. """ b = MessageManager.get_GUI_to_statistic_message( self._high_message["min_time"], self.agent._time, self._high_message["priority"]) msg = Message(to=JIDEnum.STAT.value, sender=self.agent._jid, body=b, metadata={"performative": "query"}) await self.send(msg) LogManager.sent(self.agent.name)
async def __notify_gui(self): """ Method that sends statistics to all the subscripted GUIAgents. """ for jid in self.agent._gui: b = MessageManager.get_statistic_to_GUI_message( self.agent._statistics.get_ranking_by_name(jid), self.agent._statistics.get_tot_score_by_name(jid), self.agent._statistics.get_avg_time_by_name(jid), self.agent._executed_orders[jid], self.agent._statistics.get_errors_by_name(jid)) msg = Message(to=jid, sender=self.agent._jid, body=b, metadata={"performative": "inform"}) await self.send(msg) LogManager.sent(self.agent.name)
async def run(self): if (self.agent._listAvaibleAgent): if (self.agent._orders): order = self.agent._orders.pop() b = MessageManager.get_order_message( order._min_execution_time, order._priority) if self.agent._simpleSwitching: jid = self.agent._listAvaibleAgent.pop() msg = Message(to=jid, sender=self.agent._jid, body=b, metadata={"performative": "query"}) self.presence.unsubscribe(jid) else: jid = str(self.agent._first_available_in_ranking()) msg = Message(to=jid, sender=self.agent._jid, body=b, metadata={"performative": "query"}) await self.send(msg) LogManager.sent(self.agent.name) self.presence.unsubscribe(jid)