00001
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 };
00252
00253 #endif // RTC_SDOSERVICEPROVIDERBASE_H