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 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
1.5.8