File RegularlyUpdateKnowledge.java¶
File List > behaviours > RegularlyUpdateKnowledge.java
Go to the documentation of this file
package skydata.internal.behaviours;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.io.Serializable;
import jade.lang.acl.ACLMessage;
import jade.core.behaviours.TickerBehaviour;
import skydata.internal.agents.SKAgent;
import skydata.internal.agents.SKD;
import skydata.internal.message.SKAID;
import skydata.internal.message.SKLMessage;
public class RegularlyUpdateKnowledge extends SKAgentBehaviour {
public RegularlyUpdateKnowledge(SKAgent agent) {
super(agent);
}
public Set<SKAID> copySet(Set<SKAID> set) {
Set<SKAID> copiedSet = new HashSet<SKAID>();
for (SKAID m : set) {
copiedSet.add((SKAID) m);
}
return copiedSet;
}
@Override
public void action() {
SKD agent = (SKD) this.agent;
Set<SKAID> family = agent.getFamily();
Set<SKAID> deletedFamilyMembers = agent.getDeletedFamilyMembers();
Map<String, Set<SKAID>> Message = new HashMap<>();
agent.addBehaviour(new TickerBehaviour(agent, 2000) {
@Override
public void onTick() {
if (family == null || family.size() == 0)
return;
SKLMessage msg = new SKLMessage("UPDATE_FAMILY_INFORM", "MANAGE_FAMILY");
Message.put("family", family);
Message.put("deleted", deletedFamilyMembers);
msg.setContent((Serializable) new HashMap<String, Set<SKAID>>(Message));
agent.broadcastFamily(msg);
}
});
}
}