public class SSContractNetResponder extends FSMBehaviour
Modifier and Type | Field and Description |
---|---|
java.lang.String |
ACCEPT_PROPOSAL_KEY
Key to retrieve from the DataStore of the behaviour the last received
ACCEPT_PROPOSAL ACLMessage
|
java.lang.String |
CFP_KEY
Key to retrieve from the DataStore of the behaviour the last received
CFP ACLMessage
|
static java.lang.String |
HANDLE_ACCEPT_PROPOSAL |
static java.lang.String |
HANDLE_CFP |
static java.lang.String |
HANDLE_REJECT_PROPOSAL |
java.lang.String |
INITIATION_KEY
Key to retrieve from the DataStore of the behaviour the initiation
ACLMessage that triggered this responder session
|
java.lang.String |
PROPOSE_KEY
Key to retrieve from the DataStore of the behaviour the last sent
PROPOSE ACLMessage
|
java.lang.String |
RECEIVED_KEY
Key to retrieve from the DataStore of the behaviour the last received
ACLMessage
|
java.lang.String |
REJECT_PROPOSAL_KEY
Key to retrieve from the DataStore of the behaviour the last received
REJECT_PROPOSAL ACLMessage
|
java.lang.String |
REPLY_KEY
Key to set into the DataStore of the behaviour the new ACLMessage
to be sent back to the initiator as a reply.
|
currentName, lastStates
Constructor and Description |
---|
SSContractNetResponder(Agent a,
ACLMessage cfp)
Construct a SSContractNetResponder that is activated
by the reception of a given initiation CFP message.
|
SSContractNetResponder(Agent a,
ACLMessage cfp,
DataStore store)
Construct a SSContractNetResponder that is activated
by the reception of a given initiation CFP message and uses
a given DataStore.
|
Modifier and Type | Method and Description |
---|---|
protected ACLMessage |
handleAcceptProposal(ACLMessage cfp,
ACLMessage propose,
ACLMessage accept)
This method is called when an ACCEPT_PROPOSAL message is received from the
initiator.
|
protected ACLMessage |
handleCfp(ACLMessage cfp)
This method is called to handle the initial CFP message.
|
protected void |
handleOutOfSequence(ACLMessage msg)
This method is called whenever a message is received that does
not comply to the protocol rules.
|
protected void |
handleOutOfSequence(ACLMessage cfp,
ACLMessage propose,
ACLMessage msg)
This method is called whenever a message is received that does
not comply to the protocol rules.
|
protected void |
handleRejectProposal(ACLMessage cfp,
ACLMessage propose,
ACLMessage reject)
This method is called when a REJECT_PROPOSAL message is received from the
initiator.
|
void |
registerHandleAcceptProposal(Behaviour b)
This method allows to register a user defined
Behaviour
in the HANDLE_ACCEPT_PROPOSAL state. |
void |
registerHandleCfp(Behaviour b)
This method allows to register a user defined
Behaviour
in the HANDLE_CFP state. |
void |
registerHandleOutOfSequence(Behaviour b)
This method allows to register a user defined
Behaviour
in the HANDLE_OUT_OF_SEQ state. |
void |
registerHandleRejectProposal(Behaviour b)
This method allows to register a user defined
Behaviour
in the HANDLE_REJECT_PROPOSAL state. |
protected void |
reinit()
Re-initialize the internal state without performing a complete reset.
|
void |
reset()
Reset this behaviour.
|
checkTermination, deregisterDefaultTransition, deregisterState, deregisterTransition, forceTransitionTo, getChildren, getCurrent, getLastExitValue, getName, getPrevious, getState, handleInconsistentFSM, handleStateEntered, hasDefaultTransition, onEnd, registerDefaultTransition, registerDefaultTransition, registerFirstState, registerLastState, registerState, registerTransition, registerTransition, resetStates, scheduleFirst, scheduleNext, stringifyTransitionTable
action, done, resetChildren, setAgent
block, block, getAgent, getBehaviourName, getDataStore, getParent, isRunnable, onStart, restart, root, setBehaviourName, setDataStore
public final java.lang.String CFP_KEY
public final java.lang.String PROPOSE_KEY
public final java.lang.String ACCEPT_PROPOSAL_KEY
public final java.lang.String REJECT_PROPOSAL_KEY
public static final java.lang.String HANDLE_CFP
public static final java.lang.String HANDLE_ACCEPT_PROPOSAL
public static final java.lang.String HANDLE_REJECT_PROPOSAL
public final java.lang.String INITIATION_KEY
public final java.lang.String RECEIVED_KEY
public final java.lang.String REPLY_KEY
public SSContractNetResponder(Agent a, ACLMessage cfp)
public SSContractNetResponder(Agent a, ACLMessage cfp, DataStore store)
protected ACLMessage handleCfp(ACLMessage cfp) throws RefuseException, FailureException, NotUnderstoodException
cfp
- the initial CFP message to handle.RefuseException
- if the CFP is refused. Throwing a
RefuseException has the same effect as returning a REFUSE message,
but automatically manages the :content
slot.FailureException
- if there is an error serving the CFP.
Throwing a FailureException has the same effect as returning a FAILURE
message, but automatically manages the :content
slot.NotUnderstoodException
- if the CFP content is not understood.
Throwing a NotUnderstoodException has the same effect as returning a NOT_UNDERSTOOD
message, but automatically manages the :content
slot.protected ACLMessage handleAcceptProposal(ACLMessage cfp, ACLMessage propose, ACLMessage accept) throws FailureException
cfp
- the initial CFP message.propose
- the PROPOSE message sent back as reply to the initial
CFP message.accept
- the received ACCEPT_PROPOSAL message.FailureException
- if there is an error serving the ACCEPT_PROPOSAL.
Throwing a FailureException has the same effect as returning a FAILURE
message, but automatically manages the :content
slot.protected void handleRejectProposal(ACLMessage cfp, ACLMessage propose, ACLMessage reject)
cfp
- the initial CFP message.propose
- the PROPOSE message sent back as reply to the initial
CFP message.reject
- the received REJECT_PROPOSAL message or null if no
acceptance message is received from the initiator within the timeout
specified in the :reply-by
slot of the PROPOSE message.protected void handleOutOfSequence(ACLMessage cfp, ACLMessage propose, ACLMessage msg)
cfp
- the initial CFP message.propose
- the PROPOSE message sent back as reply to the initial
CFP message.msg
- the received out-of-sequence message.public void registerHandleCfp(Behaviour b)
Behaviour
in the HANDLE_CFP state.
This behaviour would override the homonymous method.
This method also sets the
data store of the registered Behaviour
to the
DataStore of this current behaviour.
CFP
message from the datastore at the CFP_KEY
key.
REPLY_KEY
key. Putting a message defferent from PROPOSE
(or putting no message) terminates the protocol.b
- the Behaviour that will handle this statepublic void registerHandleAcceptProposal(Behaviour b)
Behaviour
in the HANDLE_ACCEPT_PROPOSAL state.
This behaviour would override the homonymous method.
This method also sets the
data store of the registered Behaviour
to the
DataStore of this current behaviour.
ACCEPT_PROPOSAL
message from the datastore at the ACCEPT_PROPOSAL_KEY
key, the initial CFP
message at the CFP_KEY
and the previously sent PROPOSE
message at the
PROPOSE_KEY
.
REPLY_KEY
key.b
- the Behaviour that will handle this statepublic void registerHandleRejectProposal(Behaviour b)
Behaviour
in the HANDLE_REJECT_PROPOSAL state.
This behaviour would override the homonymous method.
This method also sets the
data store of the registered Behaviour
to the
DataStore of this current behaviour.
REJECT_PROPOSAL
message from the datastore at the REJECT_PROPOSAL_KEY
key, the initial CFP
message at the CFP_KEY
and the previously sent PROPOSE
message at the
PROPOSE_KEY
.b
- the Behaviour that will handle this stateprotected void reinit()
protected void handleOutOfSequence(ACLMessage msg)
msg
- the received out-of-sequence message.public void registerHandleOutOfSequence(Behaviour b)
Behaviour
in the HANDLE_OUT_OF_SEQ state.
This behaviour would override the homonymous method.
This method also sets the
data store of the registered Behaviour
to the
DataStore of this current behaviour.
The registered behaviour can retrieve
the out of sequence
ACLMessage object received
from the datastore at the RECEIVED_KEY
key.b
- the Behaviour that will handle this statepublic void reset()
reset
in class FSMBehaviour