diff include/TaskManager/HTask.h @ 109:5c194c71eca8

Cerium cvs version
author gongo@gendarme.local
date Wed, 12 Nov 2008 17:39:33 +0900
parents
children 9f4f99d459aa 81b25e5d5379
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/TaskManager/HTask.h	Wed Nov 12 17:39:33 2008 +0900
@@ -0,0 +1,44 @@
+#ifndef INCLUDED_HTASK
+#define INCLUDED_HTASK
+
+#ifndef INCLUDED_BASE_H_
+#  include "base.h"
+#endif
+
+#ifndef INCLUDED_TYPES
+#  include "types.h"
+#endif
+
+#ifndef INCLUDED_TASK
+#  include "Task.h"
+#endif
+
+#ifndef INCLUDED_TASK_QUEUE_INFO
+#  include "TaskQueueInfo.h"
+#endif
+
+class TaskManagerImpl;
+
+class HTask : public Task {
+public:
+    BASE_NEW_DELETE(HTask);
+
+    TaskQueuePtr wait_me;  // List of task waiting for me
+    TaskQueuePtr wait_i;   // List of task for which I am waiting
+    void (*post_func)(void *);
+    void *post_arg;
+    CPU_TYPE cpu_type;
+    HTask *next;
+    TaskManagerImpl *mimpl;
+
+    void spawn(void);
+    void set_depend(HTask *);
+    void set_cpu(CPU_TYPE type);
+    void set_post(void (*func)(void *), void *arg);
+
+#define wait_for set_depend
+};
+
+typedef HTask* HTaskPtr;
+
+#endif