package siebog.interaction.blackboard.example;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import siebog.SiebogClient;
import siebog.agents.AID;
import siebog.agents.Agent;
import siebog.agents.AgentBuilder;
import siebog.agents.AgentClass;
import siebog.interaction.ACLMessage;
import siebog.interaction.Performative;
import siebog.interaction.blackboard.Event;
import siebog.utils.ObjectFactory;
/**
* @author <a href="jovanai.191@gmail.com">Jovana Ivkovic<a>
*/
public class Test {
private static final int NUM_GENERATE = 2;
private static final int NUM_SQUARE = 3;
private static final int NUM_PRINT = 2;
public static void main(String[] args) {
SiebogClient.connect("localhost");
List<AID> kss = createKSs();
AID blackboard = createBlackboard();
start(blackboard, kss);
}
private static List<AID> createKSs() {
// GenerateKS
Set<AID> aids = AgentBuilder.siebog().ejb(GenerateKS.class).startNInstances(NUM_GENERATE);
// SquareKS
aids.addAll(AgentBuilder.siebog().ejb(SquareKS.class).startNInstances(NUM_SQUARE));
// PrintKS
aids.addAll(AgentBuilder.siebog().ejb(PrintKS.class).startNInstances(NUM_PRINT));
List<AID> list = new ArrayList<>();
list.addAll(aids);
return list;
}
private static AID createBlackboard() {
// return AgentBuilder.siebog().ejb(InitiatorExample.class).start();
AgentClass icls = new AgentClass(Agent.SIEBOG_MODULE,
BlackboardExample.class.getSimpleName());
return ObjectFactory.getAgentManager().startServerAgent(icls, "Numbers", null);
}
private static void start(AID blackboardAid, List<AID> list) {
ACLMessage msg = new ACLMessage(Performative.INFORM);
msg.content = "Test";
msg.receivers.add(blackboardAid);
Event e = new Event();
e.setName("START");
e.setKSs(list);
msg.contentObj = e;
ObjectFactory.getMessageManager().post(msg);
}
}