Comportamento OneShot no SPADE

O comportamento do tipo oneshot é um comportamento que realiza o processamento uma vez apenas e termina o comportamento.

O código a seguir ilustra 3 comportamentos, sendo o primeiro um comportamento cíclico e os dois são os comportamentos do tipo oneshot. O comportamento cíclico imprime a cada dois segundos (a espera é devido ao sleep adicionado na linha 8), uma frase.

O primeiro comportamento oneshot, nomeado Teste1 possui 3 métodos:

  • onStart: executa apenas uma vez logo que o comportamento é adicionado.
  • onEnd: executa apenas uma vez logo que o comportamento é finalizado.
  • _process: é o código principal do comportamento e também executa apenas uma vez. No código eu coloquei outro sleep para indicar um processamento mais demorado.

Dos métodos apresentados apenas o _process é obrigatório e é o único método implementado no comportamento Teste2. Observe uma diferença entre o processo dos comportamentos Teste1 e Teste2: no Teste2 o processo espera pelo recebimento de uma mensagem para o agente (linha 25) para somente depois dar continuidade ao processo e finalizar o comportamento. Como é um comportamento oneshot, isso significa que esse comportamento somente irá processar uma mensagem. Qualquer mensagens subsequentes enviadas ao agente não serão recebidas.

Aproveito para ilustrar outra situação com os métodos implementados. Apenas modifiquei o momento em que os comportamentos são adicionados. Veja que no código anterior eu adicionei todos os comportamentos no setup e dessa vez o comportamento Teste1 dentro do comportamento Teste2. Com essa modificação, somente quando uma mensagem for recebida pelo agente é que o comportamento Teste2 irá adicionar o comportamento Teste1 e ele será executado. O comportamento M1 continua executando de forma independente.

 

 

Share

Uma opinião sobre “Comportamento OneShot no SPADE

  1. Pingback: Consulta ao AMS no SPADE – Professor Benjamin

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.