ParallelBehaviourAgent.java

[java]
/**
* Section 5.2.3, Page 95
*
* Agent using ParallelBehaviour class to abort a task
* in case it does not complete within a given timeout
**/
import jade.core.behaviours.*;
import jade.core.Agent;

public class ParallelBehaviourAgent extends Agent {

public void setup() {

Behaviour task = new CyclicBehaviour() {
public void action() {
System.out.println("Operation TASK");
}
};

ParallelBehaviour pb = new ParallelBehaviour(this, ParallelBehaviour.WHEN_ANY);
pb.addSubBehaviour(task);
pb.addSubBehaviour(new WakerBehaviour(this, 60000) {
public void onWake() {
System.out.println("timeout expired");
}
});

addBehaviour(pb);
}
}
[/java]