00001 // -*- C++ -*- 00019 /* 00020 * $Log$ 00021 */ 00022 00023 #ifndef ArtExecutionContext_h 00024 #define ArtExecutionContext_h 00025 00026 #include <rtm/RTC.h> 00027 00028 00029 #include <rtm/Manager.h> 00030 #include <rtm/PeriodicExecutionContext.h> 00031 00032 namespace RTC 00033 { 00034 class ArtExecutionContext 00035 : public virtual PeriodicExecutionContext 00036 { 00037 public: 00038 ArtExecutionContext(); 00039 virtual ~ArtExecutionContext(); 00040 virtual int svc(void); 00041 00042 template <class T> 00043 void getProperty(coil::Properties& prop, const char* key, T& value) 00044 { 00045 if (prop.findNode(key) != 0) 00046 { 00047 T tmp; 00048 if (coil::stringTo(tmp, prop[key].c_str())) 00049 { 00050 value = tmp; 00051 } 00052 } 00053 } 00054 00055 private: 00056 int m_priority; 00057 }; 00058 }; 00059 00060 extern "C" 00061 { 00062 void ArtExecutionContextInit(RTC::Manager* manager); 00063 }; 00064 00065 #endif // ArtExecutionContext_h 00066