Skip to content

Commit

Permalink
Assignment 4 schedule and aggregation of order #12
Browse files Browse the repository at this point in the history
Now propagating all scheduled orders
  • Loading branch information
Dr4gonbl4de committed Nov 25, 2018
1 parent aeb65d2 commit 2da0edc
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 6 deletions.
6 changes: 1 addition & 5 deletions src/main/java/org/team_pjt/agents/OrderProcessing.java
Original file line number Diff line number Diff line change
Expand Up @@ -139,9 +139,7 @@ private void distributeScheduledOrder() {
findAllAgents();
ACLMessage propagate_accepted_order = new ACLMessage(ACLMessage.PROPAGATE);
propagate_accepted_order.setContent(accepted_proposal.getContent());
for(AID agent : allAgents) {
propagate_accepted_order.addReceiver(agent);
}
propagate_accepted_order.addReceiver(aidScheduler);
sendMessage(propagate_accepted_order);
System.out.println("Propagated all scheduled Orders");
step++;
Expand Down Expand Up @@ -216,8 +214,6 @@ public void action() {
if (schedulerMessage != null) {
System.out.println("schedule reply received!");
if (schedulerMessage.getPerformative() == ACLMessage.CONFIRM) {
// myAgent.addBehaviour(new distributeScheduledOrder());

ACLMessage proposeMsg = cfpMessage.createReply();
proposeMsg.setPerformative(ACLMessage.PROPOSE);

Expand Down
41 changes: 40 additions & 1 deletion src/main/java/org/team_pjt/agents/SchedulerAgent.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ private void findOrderProcessing() {
System.out.println("OrderProcessing found! - " + order_processing);
}

private class isNewOrderChecker extends Behaviour {
private class isNewOrderChecker extends Behaviour {
boolean isDone = false;
@Override
public void action() {
Expand Down Expand Up @@ -139,6 +139,23 @@ public void action() {
scheduledOrders.put(order.getDeliveryDay(), order);
scheduledOrders = sortOrders(scheduledOrders);
System.out.println("Order added");
System.out.println("accept proposal received");
AID[] allAgents = findAllAgents();
ACLMessage propagate_accepted_order = new ACLMessage(ACLMessage.PROPAGATE);

List<Order> orders = new LinkedList<>(scheduledOrders.values());
JSONArray sortedOrders = new JSONArray();

for(Order o : orders) {
sortedOrders.put(new JSONObject(o.toJSONString()));
}

propagate_accepted_order.setContent(sortedOrders.toString());
for(AID agent : allAgents) {
propagate_accepted_order.addReceiver(agent);
}
sendMessage(propagate_accepted_order);
System.out.println("Propagated all scheduled Orders");
step++;
}
else {
Expand All @@ -155,6 +172,28 @@ public boolean done() {
}
return isDone;
}

private AID[] findAllAgents() {
DFAgentDescription template = new DFAgentDescription();
ServiceDescription sd = new ServiceDescription();
template.addServices(sd);
AID[] allAgents;
try {
DFAgentDescription[] result = DFService.search(myAgent, template);
allAgents = new AID[result.length];
int counter = 0;
for(DFAgentDescription ad : result) {
allAgents[counter] = ad.getName();
counter++;
}
}
catch (FIPAException fe) {
fe.printStackTrace();
allAgents = new AID[0];
}
return allAgents;
}

}

private class QueueRequestServer extends CyclicBehaviour {
Expand Down

0 comments on commit 2da0edc

Please sign in to comment.