00001 // -*- C++ -*- 00020 #ifndef RTC_LOGGERCONSUMER_H 00021 #define RTC_LOGGERCONSUMER_H 00022 00023 #include <coil/Mutex.h> 00024 #include <coil/Factory.h> 00025 #include <coil/stringutil.h> 00026 #include <rtm/SdoServiceConsumerBase.h> 00027 #include <rtm/CorbaConsumer.h> 00028 #include <rtm/idl/SDOPackageStub.h> 00029 00030 #include "LoggerStub.h" 00031 00032 namespace RTC 00033 { 00034 00040 class LoggerConsumer 00041 : public SdoServiceConsumerBase 00042 { 00043 public: 00051 LoggerConsumer(); 00052 00060 virtual ~LoggerConsumer(); 00061 00069 virtual bool init(RTObject_impl& rtobj, 00070 const SDOPackage::ServiceProfile& profile); 00071 00079 virtual bool reinit(const SDOPackage::ServiceProfile& profile); 00080 00088 virtual const SDOPackage::ServiceProfile& getProfile() const; 00089 00097 virtual void finalize(); 00098 00099 protected: 00100 00101 RTC::RTObject_impl* m_rtobj; 00102 SDOPackage::ServiceProfile m_profile; 00103 CorbaConsumer<OpenRTM::Logger> m_logger; 00104 }; 00105 00106 }; // namespace RTC 00107 00108 extern "C" 00109 { 00110 DLL_EXPORT void LoggerConsumerInit(); 00111 }; 00112 00113 #endif // RTC_LOGGERCONSUMER_H 00114 00115