annotate src/alice/topology/manager/keeparive/RemoveTask.java @ 323:d746c4486287

work
author one
date Mon, 23 Dec 2013 17:13:16 +0900
parents
children 806cc010a5bd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
323
one
parents:
diff changeset
1 package alice.topology.manager.keeparive;
one
parents:
diff changeset
2
one
parents:
diff changeset
3 import alice.codesegment.CodeSegment;
one
parents:
diff changeset
4 import alice.datasegment.CommandType;
one
parents:
diff changeset
5 import alice.datasegment.Receiver;
one
parents:
diff changeset
6
one
parents:
diff changeset
7 public class RemoveTask extends CodeSegment {
one
parents:
diff changeset
8 private Receiver info1 = ids.create(CommandType.TAKE); // list
one
parents:
diff changeset
9 private Receiver info2 = ids.create(CommandType.TAKE); // remove task
one
parents:
diff changeset
10
one
parents:
diff changeset
11 public RemoveTask(){
one
parents:
diff changeset
12 info1.setKey("_WAITINGLIST");
one
parents:
diff changeset
13 info2.setKey("_REMOVETASK");
one
parents:
diff changeset
14 }
one
parents:
diff changeset
15
one
parents:
diff changeset
16 @Override
one
parents:
diff changeset
17 public void run() {
one
parents:
diff changeset
18 System.out.println();
one
parents:
diff changeset
19 ListManager list = info1.asClass(ListManager.class); // explicit cast
one
parents:
diff changeset
20 TaskInfo task = info2.asClass(TaskInfo.class);
one
parents:
diff changeset
21 TaskExecuter exec = TaskExecuter.getInstance();
one
parents:
diff changeset
22 if (exec.compareNowTask(task)){
one
parents:
diff changeset
23 // case: remove task is state countdown.
one
parents:
diff changeset
24 exec.skip();
one
parents:
diff changeset
25 } else {
one
parents:
diff changeset
26 // case: remove task is still in the waiting queue.
one
parents:
diff changeset
27 for (TaskInfo t: list.getTaskList()){
one
parents:
diff changeset
28 if (t.getType().equals(task.getType())){
one
parents:
diff changeset
29 list.getTaskList().remove(t);
one
parents:
diff changeset
30 break;
one
parents:
diff changeset
31 }
one
parents:
diff changeset
32 }
one
parents:
diff changeset
33 }
one
parents:
diff changeset
34 ods.update("_WAITINGLIST", list);
one
parents:
diff changeset
35 }
one
parents:
diff changeset
36 }