def connectionLost(self, reason): """Este método executa qualquer coisa quando uma conexão é perdida :param reason: Identifica o problema na perda de conexão """ if self.message is not None: message = PeerProtocol.connectionLost(self, reason) # envia mensagem recebida para o AMS # montagem da mensagem a ser enviada ao AMS _message = ACLMessage(ACLMessage.INFORM) ams_aid = AID(name='AMS@' + self.fact.ams['name'] + ':' + str(self.fact.ams['port'])) _message.add_receiver(ams_aid) _message.set_sender(self.fact.aid) _message.set_content(dumps({'ref': 'MESSAGE', 'message': message})) # fim da montagem da mensagem # armazenamento da mensagem para envio self.fact.messages.append((ams_aid, _message)) # estabelecimento de conexão com AMS reactor.connectTCP(self.fact.ams['name'], int(self.fact.ams['port']), self.fact) # execução do comportamento Agent.react à mensagem # recebida self.message = None self.fact.react(message)
def connectionLost(self, reason): """This method executes anything when a connnection is lost. :param reason: Identifies the problem in the lost connection. """ if self.message is not None: message = PeerProtocol.connectionLost(self, reason) # executes the behaviour Agent.react to the received # message. self.message = None self.fact.react(message)
def connectionLost(self, reason): """This method is always executede when a connnection is lost. Parameters ---------- reason : twisted exception Identifies the problem in the lost connection. """ if self.message is not None: message = PeerProtocol.connectionLost(self, reason) self.message = None # executes the behaviour Agent.react to the received message. self.fact.react(message)
def connectionLost(self, reason): """Este método executa qualquer coisa quando uma conexão é perdida :param reason: Identifica o problema na perda de conexão """ if self.message is not None: message = PeerProtocol.connectionLost(self, reason) # armazena a mensagem recebida self.fact.messages_history.append(message) self.fact.recent_message_history.append(message) self.message = None self.fact.react(message)
def connectionLost(self, reason): """Este método executa qualquer coisa quando uma conexão é perdida :param reason: Identifica o problema na perda de conexão """ if self.message is not None: message = PeerProtocol.connectionLost(self, reason) # armazena a mensagem recebida self.fact.messages_history.append(message) self.fact.recent_message_history.append(message) self.message = None self.fact.react(message)
def connectionLost(self, reason): if self.message is not None: message = PeerProtocol.connectionLost(self, reason) agent = message.sender.name for i in self.fact.agents_messages: if agent == i: messages = self.fact.agents_messages[i] messages.extend(loads(message.content)) self.fact.agents_messages[i] = messages break else: self.fact.agents_messages[agent] = loads(message.content) self.show_messages(self.fact.agents_messages[agent]) self.message = None
def connectionLost(self, reason): if self.message is not None: message = PeerProtocol.connectionLost(self, reason) agent = message.sender.name for i in self.fact.agents_messages: if agent == i: messages = self.fact.agents_messages[i] messages.extend(loads(message.content)) self.fact.agents_messages[i] = messages break else: self.fact.agents_messages[agent] = loads(message.content) self.show_messages(self.fact.agents_messages[agent]) self.message = None
def connectionLost(self, reason): """Este método é executado sempre que uma conexão é perdida com o agente AMS. Isso geralmente acontece quando o recebimento de uma mensagem é encerrado """ if self.message is not None: message = PeerProtocol.connectionLost(self, reason) # carrega o conteudo da mensagem recebida content = loads(message.content) # se a mensagem for de identificação, lança o comportamento de # identificação if content['ref'] == 'IDENT': self.handle_identif(content['aid']) # se não, lança o comportamento de armazenamento de mensagens elif content['ref'] == 'MESSAGE': self.handle_store_messages(content['message'], message.sender) # reinicia a variável que armazena a mensagem recebida self.message = None