323
|
1 package alice.topology.manager.keeparive;
|
|
2
|
|
3 import alice.codesegment.CodeSegment;
|
|
4 import alice.datasegment.CommandType;
|
|
5 import alice.datasegment.Receiver;
|
|
6
|
|
7 public class RemoveTask extends CodeSegment {
|
|
8 private Receiver info1 = ids.create(CommandType.TAKE); // list
|
|
9 private Receiver info2 = ids.create(CommandType.TAKE); // remove task
|
|
10
|
|
11 public RemoveTask(){
|
|
12 info1.setKey("_WAITINGLIST");
|
|
13 info2.setKey("_REMOVETASK");
|
|
14 }
|
|
15
|
|
16 @Override
|
|
17 public void run() {
|
|
18 System.out.println();
|
|
19 ListManager list = info1.asClass(ListManager.class); // explicit cast
|
|
20 TaskInfo task = info2.asClass(TaskInfo.class);
|
|
21 TaskExecuter exec = TaskExecuter.getInstance();
|
|
22 if (exec.compareNowTask(task)){
|
|
23 // case: remove task is state countdown.
|
|
24 exec.skip();
|
|
25 } else {
|
|
26 // case: remove task is still in the waiting queue.
|
|
27 for (TaskInfo t: list.getTaskList()){
|
|
28 if (t.getType().equals(task.getType())){
|
|
29 list.getTaskList().remove(t);
|
|
30 break;
|
|
31 }
|
|
32 }
|
|
33 }
|
|
34 ods.update("_WAITINGLIST", list);
|
|
35 }
|
|
36 }
|