3
|
1 #ifndef INCLUDED_TASK_MANAGER_IMPL
|
|
2 #define INCLUDED_TASK_MANAGER_IMPL
|
|
3
|
307
|
4 #include "MailManager.h"
|
|
5 #include "BufferManager.h"
|
|
6 #include "ListData.h"
|
54
|
7
|
3
|
8 class TaskManagerImpl {
|
|
9 public:
|
|
10 /* constructor */
|
|
11 TaskManagerImpl(int num = 1);
|
109
|
12 virtual ~TaskManagerImpl(void) {}
|
3
|
13
|
|
14 /* variables */
|
|
15 int machineNum;
|
109
|
16 TaskQueuePtr activeTaskQueue;
|
|
17 TaskQueuePtr waitTaskQueue;
|
58
|
18 BufferManager *bufferManager;
|
3
|
19
|
|
20 /* functions */
|
109
|
21 // system
|
|
22 virtual void init(void) = 0;
|
|
23 virtual void run(void) = 0;
|
|
24 virtual void append_activeTask(HTaskPtr);
|
|
25 virtual void append_waitTask(HTaskPtr);
|
|
26
|
|
27 void check_task_finish(HTaskPtr task);
|
|
28 void notify_wait_taskQueue(HTaskPtr depend, TaskQueuePtr list);
|
|
29 TaskQueuePtr remove_taskQueue(TaskQueuePtr list, TaskQueuePtr task);
|
|
30 TaskQueuePtr remove_taskQueue_eq_task(TaskQueuePtr list, HTaskPtr task);
|
|
31 void remove_taskQueue_all(TaskQueuePtr list);
|
|
32 void wakeup_waitTask(void);
|
|
33
|
|
34 void systask_init(void);
|
|
35
|
|
36 // user
|
|
37 HTaskPtr create_task(int cmd);
|
3
|
38 void set_task_depend(HTaskPtr master, HTaskPtr slave);
|
109
|
39 void spawn_task(HTaskPtr);
|
65
|
40 void set_task_cpu(HTaskPtr, CPU_TYPE);
|
109
|
41 virtual void* allocate(int size) = 0;
|
3
|
42 };
|
|
43 #endif
|