Seleção de Mensagens

Com PADE é possível implementar filtros de mensagens de maneira simples e direta, por meio da classe Filtro:

from pade.acl.filters import Filter

Filtrando mensagens com o módulo filters

Por exemplo para a seguinte mensagem:

from pade.acl.messages import ACLMessage
from pade.acl.aid import AID

message = ACLMessage(ACLMessage.INFORM)
message.set_protocol(ACLMessage.FIPA_REQUEST_PROTOCOL)
message.set_sender(AID('remetente'))
message.add_receiver(AID('destinatario'))

Podemos criar o seguinte filtro:

from pade.acl.filters import Filter

f.performative = ACLMessage.REQUEST

Em uma sessão do interpretador Python é possível observar o efeito da aplicação do filtro sobre a mensagem:

>> f.filter(message)
False

Ajustando agora o filtro para outra condição:

f.performative = ACLMessage.INFORM

E aplicando o filtro novamente sobre a mensagem, obtemos um novo resultado:

>> f.filter(message)
True