Esempio n. 1
0
    def lineReceived(self, line):
        """Este método é executado sempre que uma mesagem é recebida pelo agente Sniffer
        """

        # este método é executado caso a mensagem recebida tenha sido enviada pelo AMS
        # para atualização da tabela de agentes disponíveis
        if 'AMS' in line:

            message = ACLMessage()
            message.set_message(line)

            self.fact.ui.listWidget.clear()

            # loop for verifica se os agentes enviados na lista do AMS já estão
            # cadastrados na tabela do agente
            self.fact.table = loads(message.content)

            for agent in self.fact.table:
                serifFont = QtGui.QFont(None, 10, QtGui.QFont.Bold)
                item = QtGui.QListWidgetItem(str(agent) + '\n')
                item.setFont(serifFont)
                self.fact.ui.listWidget.addItem(item)

        # caso a mensagem recebida seja de um agente a lista de mensagens deste
        # agente é atualizada
        else:
            PeerProtocol.lineReceived(self, line)
Esempio n. 2
0
    def lineReceived(self, line):
        """Este método é executado sempre que uma mesagem é recebida pelo agente Sniffer
        """

        # este método é executado caso a mensagem recebida tenha sido enviada pelo AMS
        # para atualização da tabela de agentes disponíveis
        if 'AMS' in line:

            message = ACLMessage()
            message.set_message(line)

            self.fact.ui.listWidget.clear()

            # loop for verifica se os agentes enviados na lista do AMS já estão
            # cadastrados na tabela do agente
            self.fact.table = loads(message.content)

            for agent in self.fact.table:
                serifFont = QtGui.QFont(None, 10, QtGui.QFont.Bold)
                item = QtGui.QListWidgetItem(str(agent) + '\n')
                item.setFont(serifFont)
                self.fact.ui.listWidget.addItem(item)

        # caso a mensagem recebida seja de um agente a lista de mensagens deste
        # agente é atualizada
        else:
            PeerProtocol.lineReceived(self, line)
Esempio n. 3
0
 def connectionLost(self, reason):
     if self.message is not None:
         try:
             message = ACLMessage()
             message.set_message(self.message)
         except:
             print('Message not understood')
             print(self.message)
             return
         return message
Esempio n. 4
0
    def lineReceived(self, line):
        """
            Quando uma mensagem é enviada ao AMS este método é executado.
            Quando em fase de identificação, o AMS registra o agente
            em sua tabele de agentes ativos
        """
        message = ACLMessage()
        # carrega a mesagem recebida no objeto message
        message.set_message(line)

        # como o agente AMS só recebe mensagens
        self.handle_identif(loads(message.content))
Esempio n. 5
0
    def lineReceived(self, line):
        """
            Quando uma mensagem é enviada ao AMS este método é executado.
            Quando em fase de identificação, o AMS registra o agente
            em sua tabele de agentes ativos
        """
        message = ACLMessage()
        # carrega a mesagem recebida no objeto message
        message.set_message(line)

        # como o agente AMS só recebe mensagens
        self.handle_identif(loads(message.content))
Esempio n. 6
0
    def lineReceived(self, line):
        """Este método é executado sempre que uma
        nova mensagem é recebida pelo agente,
        tanto no modo cliente quanto no modo servidor

        :param line: mensagem recebida pelo agente
        """

        # fase 2 de identificação do agente com o AMS. Nesta fase o agente AMS retorna uma mensagem
        # ao agente com uma tabela de todos os agentes presentes na rede
        if self.fact.state == 'IDENT2' and 'AMS' in line:
            message = ACLMessage()
            message.set_message(line)

            self.fact.table = loads(message.content)

            if self.fact.debug:
                display_message(
                    self.fact.aid.name,
                    'Tabela atualizada: ' + str(self.fact.table.keys()))
            else:
                pass

            # alteração do estado de em fase de identificação
            # para pronto para receber mensagens
            self.fact.state = 'READY'
            self.fact.on_start()
            # self.transport.loseConnection()
        # caso o agente não esteja na fase 2 de identificação, então estará na fase
        # de recebimento de mensagens, e assim estará pronto para executar seus
        # comportamentos
        else:
            # este método é executado caso a mensagem recebida tenha sido
            # enviada pelo AMS para atualização da tabela de agentes disponíveis
            if 'AMS' in line:
                message = ACLMessage()
                message.set_message(line)
                self.fact.table = loads(message.content)
                if self.fact.debug:
                    display_message(
                        self.fact.aid.name,
                        'Tabela atualizada: ' + str(self.fact.table.keys()))
                else:
                    pass
                self.transport.loseConnection()

            # recebe uma parte da mensagem enviada
            else:
                PeerProtocol.lineReceived(self, line)
Esempio n. 7
0
    def lineReceived(self, line):
        """
            Este método é executado sempre que uma mesagem é recebida pelo agente Sniffer
        """

        message = ACLMessage()
        message.set_message(line)

        display_message(self.factory.aid.name,
                        'Mensagem recebida de: ' + str(message.sender.name))

        # este método é executado caso a mensagem recebida tenha sido enviada pelo AMS
        # para atualização da tabela de agentes disponíveis
        if 'AMS' in message.sender.name:
            self.factory.ui.listWidget.clear()

            # loop for verifica se os agentes enviados na lista do AMS já estão
            # cadastrados na tabela do agente
            self.factory.table = loads(message.content)

            for agent in self.factory.table:
                serifFont = QtGui.QFont(None, 10, QtGui.QFont.Bold)
                item = QtGui.QListWidgetItem(str(agent) + '\n')
                item.setFont(serifFont)
                self.factory.ui.listWidget.addItem(item)

        # caso a mensagem recebida seja de um agente a lista de mensagens deste
        # agente é atualizada
        elif message.performative == ACLMessage.INFORM:

            display_message(
                self.factory.aid.name, 'Lista de Mensagens Recebida')

            agent = message.sender.name
            for i in self.factory.agents_messages:
                if agent == i:
                    messages = self.factory.agents_messages[i]
                    messages.extend(loads(message.content))
                    self.factory.agents_messages[i] = messages
                    break
            else:
                self.factory.agents_messages[agent] = loads(message.content)

            print self.factory.agents_messages[agent]
            self.show_messages(self.factory.agents_messages[agent])
Esempio n. 8
0
File: peer.py Progetto: lucassm/Pade
 def connectionLost(self, reason):
     if self.message is not None:
         message = ACLMessage()
         message.set_message(self.message)
         return message
Esempio n. 9
0
 def connectionLost(self, reason):
     if self.message is not None:
         message = ACLMessage()
         message.set_message(self.message)
         return message
Esempio n. 10
0
    def lineReceived(self, line):
        """Este método é executado sempre que uma
        nova mensagem é recebida pelo agente,
        tanto no modo cliente quanto no modo servidor

        :param line: mensagem recebida pelo agente
        """

        # TODO: Melhorar o armazenamento e a troca deste tipo de mensagem
        # entre o agente e o agente Sniffer

        # fase 2 de identificação do agente com o AMS. Nesta fase o agente AMS retorna uma mensagem
        # ao agente com uma tabela de todos os agentes presentes na rede
        if self.fact.state == 'IDENT2' and 'AMS' in line:
            message = ACLMessage()
            message.set_message(line)

            self.fact.table = loads(message.content)

            if self.fact.debug:
                display_message(
                    self.fact.aid.name, 'Tabela atualizada: ' + str(self.fact.table.keys()))
            else:
                pass

            # alteração do estado de em fase de identificação
            # para pronto para receber mensagens
            self.fact.state = 'READY'
            self.fact.on_start()
            # self.transport.loseConnection()
        # caso o agente não esteja na fase 2 de identificação, então estará na fase
        # de recebimento de mensagens, e assim estará pronto para executar seus
        # comportamentos
        else:
            # este método é executado caso a mensagem recebida tenha sido enviada pelo AMS
            # para atualização da tabela de agentes disponíveis
            if 'AMS' in line:
                message = ACLMessage()
                message.set_message(line)
                self.fact.table = loads(message.content)
                if self.fact.debug:
                    display_message(
                        self.fact.aid.name, 'Tabela atualizada: ' + str(self.fact.table.keys()))
                else:
                    pass
                self.transport.loseConnection()
            # este método é executado caso a mensagem recebida tenha sido enviada pelo Agente Sniffer
            # que requisita a tabela de mensagens do agente
            elif 'Sniffer' in line:
                # se for a primeira mensagem recebida do agente Sniffer, então seu endereço, isto é nome
                # e porta, é armazenado na variável do tipo dicionário
                # self.fact.sniffer
                message = ACLMessage()
                message.set_message(line)

                if self.fact.debug:
                    display_message(
                        self.fact.aid.name, 'Solicitação do Sniffer Recebida')
                else:
                    pass

                self.sniffer_message(message)
                self.transport.loseConnection()
            # recebe uma parte da mensagem enviada
            else:
                PeerProtocol.lineReceived(self, line)
Esempio n. 11
0
    def lineReceived(self, line):
        """Este método é executado sempre que uma
        nova mensagem é recebida pelo agente,
        tanto no modo cliente quanto no modo servidor

        :param line: mensagem recebida pelo agente
        """

        # TODO: Melhorar o armazenamento e a troca deste tipo de mensagem
        # entre o agente e o agente Sniffer

        # fase 2 de identificação do agente com o AMS. Nesta fase o agente AMS retorna uma mensagem
        # ao agente com uma tabela de todos os agentes presentes na rede
        if self.fact.state == 'IDENT2' and 'AMS' in line:
            message = ACLMessage()
            message.set_message(line)

            self.fact.table = loads(message.content)

            if self.fact.debug:
                display_message(
                    self.fact.aid.name,
                    'Tabela atualizada: ' + str(self.fact.table.keys()))
            else:
                pass

            # alteração do estado de em fase de identificação
            # para pronto para receber mensagens
            self.fact.state = 'READY'
            self.fact.on_start()
            # self.transport.loseConnection()
        # caso o agente não esteja na fase 2 de identificação, então estará na fase
        # de recebimento de mensagens, e assim estará pronto para executar seus
        # comportamentos
        else:
            # este método é executado caso a mensagem recebida tenha sido enviada pelo AMS
            # para atualização da tabela de agentes disponíveis
            if 'AMS' in line:
                message = ACLMessage()
                message.set_message(line)
                self.fact.table = loads(message.content)
                if self.fact.debug:
                    display_message(
                        self.fact.aid.name,
                        'Tabela atualizada: ' + str(self.fact.table.keys()))
                else:
                    pass
                self.transport.loseConnection()
            # este método é executado caso a mensagem recebida tenha sido enviada pelo Agente Sniffer
            # que requisita a tabela de mensagens do agente
            elif 'Sniffer' in line:
                # se for a primeira mensagem recebida do agente Sniffer, então seu endereço, isto é nome
                # e porta, é armazenado na variável do tipo dicionário
                # self.fact.sniffer
                message = ACLMessage()
                message.set_message(line)

                if self.fact.debug:
                    display_message(self.fact.aid.name,
                                    'Solicitação do Sniffer Recebida')
                else:
                    pass

                self.sniffer_message(message)
                self.transport.loseConnection()
            # recebe uma parte da mensagem enviada
            else:
                PeerProtocol.lineReceived(self, line)