Mercurial > hg > Members > kono > Cerium
view include/TaskManager/TaskInfo.h @ 19:98bb1b2bb71e
*** empty log message ***
author | gongo |
---|---|
date | Sun, 10 Feb 2008 13:23:29 +0900 |
parents | 7aa4c006e4be |
children | 31a7ff27ee20 |
line wrap: on
line source
#ifndef INCLUDED_TASK_INFO #define INCLUDED_TASK_INFO #ifndef INCLUDED_TASK # include "task.h" #endif class TaskInfo { public: /* constructor */ TaskInfo(int num = 1); virtual ~TaskInfo(void) {} /* variables */ TaskListPtr taskListPool; TaskListPtr freeTaskList; TaskQueuePtr taskQueuePool; TaskQueuePtr freeTaskQueue; TaskQueuePtr waitTaskQueue; TaskQueuePtr activeTaskQueue; HTaskPtr taskPool; HTaskPtr freeTask; TaskListPtr *machineTaskList; /* function */ void init(void); // task list int init_taskList(int num); virtual int extend_pool_taskList(int num) = 0; virtual TaskListPtr get_available_taskList(void) = 0; TaskListPtr get_free_taskList(void); // task queue int init_taskQueue(int num); TaskQueuePtr get_free_taskQueue(HTaskPtr); int extend_pool_taskQueue(int num); // task int init_task(int num); int extend_pool_task(int num); HTaskPtr get_free_task(int cmd, int size, unsigned long long in_addr, unsigned long long out_addr); void finish(void); void destroy_taskList(void); void destroy_taskQueue(void); void destroy_task(void); virtual void clear_taskList(void) = 0; void append_activeTask(HTaskPtr); void append_waitTask(HTaskPtr); void free_taskList(TaskListPtr q); void free_taskQueue(TaskQueuePtr q); void free_task(HTaskPtr q); void check_task_finish(HTaskPtr task); void notify_wait_taskQueue(HTaskPtr depend, TaskQueuePtr list); TaskQueuePtr remove_taskQueue(TaskQueuePtr list, TaskQueuePtr task); TaskQueuePtr remove_taskQueue_eq_task(TaskQueuePtr list, HTaskPtr task); private: int machineNum; }; extern TaskQueuePtr append_taskQueue(TaskQueuePtr, TaskQueuePtr); extern TaskListPtr append_taskList(TaskListPtr list, TaskListPtr q); #endif