109
|
1 #include "TaskGroup.h"
|
|
2
|
|
3 void
|
|
4 TaskGroup::add(TaskPtr add_task) {
|
|
5 TaskQueuePtr q = new TaskQueue(add_task);
|
|
6 group = TaskQueue::append(group, q);
|
|
7 }
|
|
8
|
|
9 void
|
|
10 TaskGroup::remove(TaskPtr delete_task) {
|
|
11 TaskQueuePtr p = group;
|
|
12 TaskQueuePtr p1;
|
|
13
|
|
14 if (p == NULL) return;
|
|
15
|
|
16 if (p->task == delete_task) {
|
|
17 group = group->next;
|
|
18 delete p;
|
|
19 } else {
|
|
20 p1 = p->next;
|
|
21 while (p1 && p1->task != delete_task) {
|
|
22 p1 = p1->next;
|
|
23 p = p->next;
|
|
24 }
|
|
25 if (p1) {
|
|
26 p->next = p1->next;
|
|
27 delete p1;
|
|
28 }
|
|
29 }
|
|
30 }
|
|
31
|
|
32
|
|
33 unsigned int
|
|
34 TaskGroup::status(void) {
|
|
35 /**
|
|
36 * bool の
|
|
37 * true == 1;
|
|
38 * false == 0;
|
|
39 * って保証されてるんだっけ?
|
|
40 */
|
|
41 #if 1
|
|
42 return (group == NULL) * command;
|
|
43 #else
|
|
44 if (group.empty()) {
|
|
45 return command;
|
|
46 } else {
|
|
47 return 0;
|
|
48 }
|
|
49 #endif
|
|
50 }
|