Class ReplySender

  • All Implemented Interfaces:
    Serializable, Serializable

    public class ReplySender
    extends OneShotBehaviour
    This behaviour sends a reply to a given message adjusting all protocol fields and receivers. It reads in DataStore the message and the reply at the keys passed in the Constructor.
    Version:
    $Date$ $Revision$
    Author:
    Fabio Bellifemine - TILab, Giovanni Caire - TILab, Marco Monticone
    See Also:
    Serialized Form
    • Constructor Detail

      • ReplySender

        public ReplySender​(Agent a,
                           String replyKey,
                           String msgKey,
                           DataStore ds)
        Constructor.
        Parameters:
        a - The Agent executing this behaviour
        replyKey - DataStore's key where to read the reply message
        msgKey - DataStore's key where to read the message to reply to.
        ds - the dataStore for this bheaviour
      • ReplySender

        public ReplySender​(Agent a,
                           String replyKey,
                           String msgKey)
        Constructor.
        Parameters:
        a - The Agent executing this behaviour
        replyKey - DataStore's key where to read the reply message
        msgKey - DataStore's key where to read the message to reply to.
      • ReplySender

        protected ReplySender()
    • Method Detail

      • action

        public void action()
        Description copied from class: Behaviour
        Runs the behaviour. This abstract method must be implemented by Behavioursubclasses to perform ordinary behaviour duty. An agent schedules its behaviours calling their action() method; since all the behaviours belonging to the same agent are scheduled cooperatively, this method must not enter in an endless loop and should return as soon as possible to preserve agent responsiveness. To split a long and slow task into smaller section, recursive behaviour aggregation may be used.
        Specified by:
        action in class Behaviour
        See Also:
        CompositeBehaviour
      • onEnd

        public int onEnd()
        Description copied from class: Behaviour
        This method is just an empty placeholder for subclasses. It is invoked just once after this behaviour has ended. Therefore, it acts as an epilog for the task represented by this Behaviour.
        Note that onEnd is called after the behaviour has been removed from the pool of behaviours to be executed by an agent. Therefore calling reset() is not sufficient to cyclically repeat the task represented by this Behaviour. In order to achieve that, this Behaviour must be added again to the agent (using myAgent.addBehaviour(this)). The same applies to in the case of a Behaviour that is a child of a ParallelBehaviour.
        Overrides:
        onEnd in class Behaviour
        Returns:
        an integer code representing the termination value of the behaviour.
      • setMsgKey

        public void setMsgKey​(String msgKey)
      • setReplyKey

        public void setReplyKey​(String replyKey)
      • adjustReply

        public static void adjustReply​(Agent myAgent,
                                       ACLMessage reply,
                                       ACLMessage msg)
        Adjust all protocol fields and receivers in a reply to a given message.