SequentialActivity.hpp
00001 #ifndef ORO_SEQUENTIAL_ACTIVITY_HPP
00002 #define ORO_SEQUENTIAL_ACTIVITY_HPP
00003
00004 #include "ActivityInterface.hpp"
00005 #include "RunnableInterface.hpp"
00006 #include "os/Mutex.hpp"
00007
00008 namespace RTT
00009 {
00010
00032 class RTT_API SequentialActivity
00033 :public ActivityInterface
00034 {
00035 public:
00040 SequentialActivity( RunnableInterface* run = 0 );
00041
00045 ~SequentialActivity();
00046
00047 Seconds getPeriod() const;
00048
00049 OS::ThreadInterface* thread();
00050
00051 bool initialize();
00052 void step();
00053 void loop();
00054 bool breakLoop();
00055 void finalize();
00056
00057 bool start();
00058
00059 bool stop();
00060
00061 bool isRunning() const;
00062
00063 bool isPeriodic() const;
00064
00065 bool isActive() const;
00066
00067 bool execute();
00068
00069 bool trigger();
00070 private:
00071 bool running;
00072 bool active;
00073 OS::Mutex execution_lock;
00074 };
00075
00076 }
00077
00078
00079 #endif