예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
        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)