00001 #ifndef _ots_WorkLoop_h
00002 #define _ots_WorkLoop_h
00003
00004 #include <toolbox/task/WorkLoop.h>
00005 #include "toolbox/lang/Class.h"
00006 #include <string>
00007
00008 namespace ots
00009 {
00010
00011 class WorkLoop : public virtual toolbox::lang::Class
00012 {
00013 public:
00014 WorkLoop(std::string name);
00015 virtual ~WorkLoop(void);
00016
00017 void startWorkLoop (void);
00018 bool stopWorkLoop (void);
00019
00020 protected:
00021 volatile bool continueWorkLoop_;
00022 virtual bool workLoopThread(toolbox::task::WorkLoop* workLoop) = 0;
00023
00024
00025 const std::string& getWorkLoopName(void);
00026
00027 private:
00028 const std::string cWorkLoopName_;
00029 const std::string cWorkLoopType_;
00030 toolbox::task::WorkLoop* workLoop_;
00031 toolbox::task::ActionSignature* job_;
00032 };
00033
00034 }
00035
00036 #endif