How to receive messages from different Agents

146 Views Asked by At

I have 4 agents with ticker behaviour who send values to a receiver agent after each step, i want this receiver to store the received values from the agents in 4 arrays (each array for one of the senders) How can i implement the receiver agent behaviour ?

1

There are 1 best solutions below

0
nikelyn On

Something like this

public class ReceiveMessageBehaviour extends CyclicBehaviour {
  private Map<AID, String[]> values = new HashMap<>();
  
  @Override
  public void action() {
      ACLMessage aclMessage = myAgent.receive();
      if(aclMessage == null){
          return;
      }
      String value = aclMessage.getContent();
      String[] aidValues = values.get(aclMessage.getSender());
      if(aidValues == null){
          aidValues = new String[]{value};
          values.put(aclMessage.getSender(), aidValues);
      } else {
          values.put(aclMessage.getSender(), ArrayUtils.add(aidValues, value));
      }
  }
}