Filtrando mensagens no SPADE

No código a seguir demonstro como filtrar as mensagens que são recebidas por um comportamento. O comportamento em si é bastante simples, consistindo de um comportamento cíclico chamado M1 e que fica aguardando receber uma mensagem. Quando a mensagem é recebida ele simplesmente imprime M1.

Observe que a adição do comportamento (linha 13) está associada a um template de mensagem (especificado nas linhas 10, 11 e 12). Nesse template eu filtrei que o comportamento somente deveria reagir a performativa “inform” (linha 11). Com essa filtragem, se o agente receber mensagens de qualquer tipo que não seja um inform, o comportamento não tratará o recebimento dessa mensagem.

Estendo a seguir o exemplo anterior adicionando dois comportamentos (M1 e M2). Ambos escrevem seu nome quando recebem uma mensagem. Observe agora que a adição desses comportamentos (linhas 19 e 25) utilizam dois templates diferentes. Ambos exigem uma performativa “inform”, mas também restringem a mensagem pelo conteúdo (linhas 17 e 23). Quando um “inform” tendo com conteúdo a letra “T” for enviado para o agente, somente o comportamento M1 será executado.

O código a seguir adiciona outros dois comportamentos cíclicos ao código anterior. Veja que o comportamento M3 é adicionado com um template que apenas filtra pela performativa “inform”, enquanto o comportamento M4 é adicionado sem nenhum template para filtrar. Isso significa que qualquer mensagem do tipo “inform” será executado no comportamento M3, enquanto qualquer mensagem recebida pelo agente também irá executar o comportamento de M4. Em outras palavras, M4 será executado para qualquer mensagem recebida pelo agente, se a mensagem for um “inform” e o conteúdo for a letra “T” então os comportamentos M1 e M3 também serão executados (M1 por ter seus dois critérios atendidos e o M3 pela mensagem ser um”inform”, única filtragem aplicada ao comportamento).

 

Share

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.