package siebog.agents.test.sequencers;
import javax.ejb.Remote;
import javax.ejb.Stateful;
import siebog.agents.AID;
import siebog.agents.Agent;
import siebog.agents.AgentInitArgs;
import siebog.agents.XjafAgent;
import siebog.interaction.ACLMessage;
import siebog.interaction.Performative;
@Stateful
@Remote(Agent.class)
public class Sequencer extends XjafAgent {
private static final long serialVersionUID = 1L;
private AID next;
@Override
protected void onInit(AgentInitArgs args) {
next = new AID(args.get("next", null));
}
@Override
protected void onMessage(ACLMessage msg) {
sleep();
int num = Integer.parseInt(msg.content);
ACLMessage nextMsg = new ACLMessage(Performative.REQUEST);
nextMsg.receivers.add(next);
nextMsg.content = String.valueOf(num + 1);
msm().post(nextMsg);
}
private void sleep() {
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
}
}
}