Exemple #1
0
 def register_interest(self, agent_factory, *args, **kwargs):
     agent_factory = IInterest(agent_factory)
     if not IFirstMessage.implementedBy(agent_factory.initiator):
         raise TypeError(
             "%r.initiator expected to implemented IFirstMessage. Got %r" %\
             (agent_factory, agent_factory.initiator, ))
     p_type = agent_factory.protocol_type
     p_id = agent_factory.protocol_id
     if p_type not in self._interests:
         self._interests[p_type] = dict()
     if p_id in self._interests[p_type]:
         self.error('Already interested in %s.%s protocol', p_type, p_id)
         return False
     interest_factory = IAgencyInterestInternalFactory(agent_factory)
     interest = interest_factory(self, *args, **kwargs)
     self._interests[p_type][p_id] = interest
     self.debug('Registered interest in %s.%s protocol', p_type, p_id)
     return interest