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