Mercurial > hg > Members > kono > Cerium
annotate TaskManager/kernel/ppe/TaskQueueInfo.h @ 479:5bda98b0b56d
Double Linked List base TaskQueue
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 05 Oct 2009 10:36:37 +0900 |
parents | e083c4ff91c1 |
children | 46464727d825 |
rev | line source |
---|---|
46 | 1 #ifndef INCLUDED_TASK_QUEUE_INFO |
2 #define INCLUDED_TASK_QUEUE_INFO | |
3 | |
479
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
4 #include "Task.h" |
307 | 5 #include "TaskQueue.h" |
46 | 6 |
479
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
7 class TaskQueueInfo : public TaskQueue { |
46 | 8 public: |
9 /* constructor */ | |
475
e083c4ff91c1
BufferManager removed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
366
diff
changeset
|
10 TaskQueueInfo(); |
e083c4ff91c1
BufferManager removed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
366
diff
changeset
|
11 ~TaskQueueInfo(); |
46 | 12 |
13 /* functions */ | |
14 int init(int num); | |
479
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
15 TaskQueuePtr create(Task *task); |
46 | 16 void free(TaskQueuePtr queue); |
479
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
17 |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
18 void addFirst(TaskQueue* e); |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
19 void addLast(TaskQueue* e); |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
20 TaskQueue* getFirst(); |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
21 TaskQueue* getLast(); |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
22 int remove(TaskQueue* e); |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
23 TaskQueue* poll(); |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
24 void moveToFirst(TaskQueue* e); // or use(); |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
25 TaskQueue* get(int index); |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
26 TaskQueue* find(Task *task); |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
27 int empty(); |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
28 |
46 | 29 private: |
30 /* variables */ | |
31 TaskQueuePtr taskQueuePool; | |
32 TaskQueuePtr freeTaskQueue; | |
33 | |
479
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
34 TaskQueue* first; |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
35 TaskQueue* last; |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
36 |
5bda98b0b56d
Double Linked List base TaskQueue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
37 |
46 | 38 /* functions */ |
39 int extend_pool(int num); | |
475
e083c4ff91c1
BufferManager removed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
366
diff
changeset
|
40 void destroy(); |
46 | 41 }; |
42 | |
43 #endif |