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 bool isActive (void);
00020
00021 protected:
00022 volatile bool continueWorkLoop_;
00023 virtual bool workLoopThread(toolbox::task::WorkLoop* workLoop) = 0;
00024
00025
00026 const std::string& getWorkLoopName(void);
00027
00028 private:
00029 const std::string cWorkLoopName_;
00030 const std::string cWorkLoopType_;
00031 toolbox::task::WorkLoop* workLoop_;
00032 toolbox::task::ActionSignature* job_;
00033 };
00034
00035 }
00036
00037 #endif