ExtTrigExecutionContext.h

説明を見る。
00001 // -*- C++ -*-
00019 #ifndef ExtTrigExecutionContext_h
00020 #define ExtTrigExecutionContext_h
00021 
00022 #include <rtm/RTC.h>
00023 
00024 #include <ace/Task.h>
00025 #include <ace/Synch.h>
00026 
00027 #include <rtm/Manager.h>
00028 #include <rtm/PeriodicExecutionContext.h>
00029 
00030 namespace RTC
00031 {
00054   class ExtTrigExecutionContext
00055     : public virtual PeriodicExecutionContext
00056   {
00057   public:
00071     ExtTrigExecutionContext();
00072     
00086     virtual ~ExtTrigExecutionContext();
00087     
00101     virtual void tick()
00102       throw (CORBA::SystemException);
00103     
00124     virtual int svc(void);
00125     
00126   private:
00127     struct Worker
00128     {
00129       Worker() : _cond(_mutex), _called(false) {};
00130       ACE_Thread_Mutex _mutex;
00131       ACE_Condition<ACE_Thread_Mutex> _cond;
00132       bool _called;
00133     };
00134     // A condition variable for external triggered worker
00135     Worker m_worker;
00136   };
00137 };
00138 
00139 extern "C"
00140 {
00156   void ExtTrigExecutionContextInit(RTC::Manager* manager);
00157 };
00158 
00159 #endif // ExtTrigExecutionContext_h

OpenRTMに対してWed May 21 05:17:25 2008に生成されました。  doxygen 1.5.3