OpenRTM
1.0.0
|
00001 // -*- C++ -*- 00019 #ifndef COIL_TASK_H 00020 #define COIL_TASK_H 00021 00022 #include <pthread.h> 00023 00024 namespace coil 00025 { 00039 class Task 00040 { 00041 public: 00057 Task(); 00058 00074 virtual ~Task(); 00075 00095 virtual int open(void* args = 0); 00096 00116 virtual int close(unsigned long flags = 0); 00117 00133 virtual int svc(); 00134 00150 virtual void activate(); 00151 00167 virtual int wait(void); 00168 00184 virtual int suspend(void); 00185 00201 virtual int resume(void); 00202 00218 virtual void reset(); 00219 00235 virtual void finalize(); 00236 00256 static void* svc_run(void* args = 0); 00257 00258 private: 00259 int m_count; 00260 pthread_t m_thread; 00261 pthread_attr_t m_attr; 00262 void* m_args; 00263 00264 }; 00265 }; 00266 00267 #endif // COIL_TASK_H