AMSSubscriberAgent.java

[java]
/**
* Section 5.5.2 page 111
*
* This code shows to use the AMSSubscriber class for
* monitoring all agent creation and termination events.
**/
import jade.core.Agent;
import jade.domain.introspection.*;

import java.util.Map;

public class AMSSubscriberAgent extends Agent {

public void setup() {
AMSSubscriber myAMSSubscriber = new AMSSubscriber() {

protected void installHandlers(Map handlers) {

// Associate an handler to born-agent events
EventHandler creationsHandler = new EventHandler() {
public void handle(Event ev) {
BornAgent ba = (BornAgent) ev;
System.out.println("Born agent "+ba.getAgent().getName());
}
};
handlers.put(IntrospectionVocabulary.BORNAGENT, creationsHandler);

// Associate an handler to dead-agent events
EventHandler terminationsHandler = new EventHandler() {
public void handle(Event ev) {
DeadAgent da = (DeadAgent) ev;
System.out.println("Dead agent "+da.getAgent().getName());
}
};
handlers.put(IntrospectionVocabulary.DEADAGENT, terminationsHandler);
}
};
addBehaviour(myAMSSubscriber);
}
}
[/java]