OpenRTM
1.0.0
|
00001 // -*- C++ -*- 00020 #ifndef RTC_SDOSERVICEPROVIDERBASE_H 00021 #define RTC_SDOSERVICEPROVIDERBASE_H 00022 00023 #include <coil/Mutex.h> 00024 #include <coil/Factory.h> 00025 #include <coil/Timer.h> 00026 #include <rtm/RTC.h> 00027 #include <rtm/RTObject.h> 00028 #include <rtm/idl/SDOPackageStub.h> 00029 00030 namespace RTC 00031 { 00134 class SdoServiceProviderBase 00135 : public virtual POA_SDOPackage::SDOService, 00136 public virtual PortableServer::RefCountServantBase 00137 { 00138 public: 00146 virtual ~SdoServiceProviderBase() {}; 00147 00172 virtual bool init(RTObject_impl& rtobj, 00173 const SDOPackage::ServiceProfile& profile) = 0; 00195 virtual bool reinit(const SDOPackage::ServiceProfile& profile) = 0; 00196 00212 virtual const SDOPackage::ServiceProfile& getProfile() const = 0; 00213 00227 virtual void finalize() = 0; 00228 }; 00229 00237 typedef ::coil::GlobalFactory< 00238 ::RTC::SdoServiceProviderBase > SdoServiceProviderFactory; 00239 00240 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) 00241 00248 EXTERN template class DLL_PLUGIN 00249 ::coil::GlobalFactory< ::RTC::SdoServiceProviderBase >; 00250 #endif 00251 }; // namespace RTC 00252 00253 #endif // RTC_SDOSERVICEPROVIDERBASE_H