Mercurial > hg > Database > Alice
comparison src/alice/topology/manager/keeparive/RemoveTask.java @ 323:d746c4486287
work
author | one |
---|---|
date | Mon, 23 Dec 2013 17:13:16 +0900 |
parents | |
children | 806cc010a5bd |
comparison
equal
deleted
inserted
replaced
322:4b5bf9cf1505 | 323:d746c4486287 |
---|---|
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 } |