public class MsgReceiver extends SimpleBehaviour
Modifier and Type | Field and Description |
---|---|
protected long |
deadline |
static int |
INFINITE
A numeric constant to mean that the deadline for the receive
operation will never expire.
|
static int |
INTERRUPTED
A numeric constant to mean that the receive operation was
interrupted.
|
protected java.lang.Object |
receivedMsgKey |
protected MessageTemplate |
template |
static int |
TIMEOUT_EXPIRED
A numeric constant to mean that a timeout expired.
|
Constructor and Description |
---|
MsgReceiver(Agent a,
MessageTemplate mt,
long deadline,
DataStore s,
java.lang.Object msgKey)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected void |
handleMessage(ACLMessage msg)
This is invoked when a message matching the specified template
is received or the timeout has expired (the
msg
parameter is null in this case). |
void |
interrupt()
Signal an interruption to this receiver, and cause the ongoing
receive operation to abort.
|
void |
reset(MessageTemplate mt,
long deadline,
DataStore s,
java.lang.Object msgKey)
Reset this behaviour, possibly replacing the receive templatt
and other data.
|
void |
setDeadline(long deadline)
This method allows modifying the deadline
|
void |
setReceivedKey(java.lang.Object key)
This method allows modifying the key in the DS where to put the
received message
|
void |
setTemplate(MessageTemplate mt)
This method allows modifying the template
|
reset
action, block, block, done, getAgent, getBehaviourName, getDataStore, getParent, isRunnable, onEnd, onStart, restart, root, setAgent, setBehaviourName, setDataStore
public static final int TIMEOUT_EXPIRED
public static final int INTERRUPTED
public static final int INFINITE
protected MessageTemplate template
protected long deadline
protected java.lang.Object receivedMsgKey
public MsgReceiver(Agent a, MessageTemplate mt, long deadline, DataStore s, java.lang.Object msgKey)
a
- a reference to the Agentmt
- the MessageTemplate of the message to be received, if null
the first received message is returned by this behaviourdeadline
- a timeout for waiting until a message arrives. It must
be expressed as an absolute time, as it would be returned by
System.currentTimeMillisec()
s
- the dataStore for this bheaviourmsgKey
- the key where the beahviour must put the received
message into the DataStore.protected void handleMessage(ACLMessage msg)
msg
parameter is null in this case). Users may redefine this method
to react to this event. The default implementation of does nothing.public void reset(MessageTemplate mt, long deadline, DataStore s, java.lang.Object msgKey)
mt
- The template to match ACL messages against during the
receive operation.deadline
- The relative timeout of the receive
operation. If the INFINITE
constant is used, then
no deadline is set and the operation will wait until a matching
ACL message arrives.s
- The datastore where the received ACL message is to be
put.msgKey
- The key to use to put the received message into
the selected datastore.public void setDeadline(long deadline)
public void setTemplate(MessageTemplate mt)
public void setReceivedKey(java.lang.Object key)
public void interrupt()