00001 // -*- C++ -*- 00020 #ifndef RTC_OUTPORTCORBACDRPROVIDER_H 00021 #define RTC_OUTPORTCORBACDRPROVIDER_H 00022 00023 #include <rtm/idl/DataPortSkel.h> 00024 #include <rtm/BufferBase.h> 00025 #include <rtm/OutPortProvider.h> 00026 #include <rtm/CORBA_SeqUtil.h> 00027 #include <rtm/Manager.h> 00028 00029 #ifdef WIN32 00030 #pragma warning( disable : 4290 ) 00031 #endif 00032 00033 namespace RTC 00034 { 00060 class OutPortCorbaCdrProvider 00061 : public OutPortProvider, 00062 public virtual ::POA_OpenRTM::OutPortCdr, 00063 public virtual PortableServer::RefCountServantBase 00064 { 00065 public: 00083 OutPortCorbaCdrProvider(void); 00084 00098 virtual ~OutPortCorbaCdrProvider(void); 00099 00127 virtual void init(coil::Properties& prop); 00128 00154 virtual void setBuffer(BufferBase<cdrMemoryStream>* buffer); 00155 00173 virtual ::OpenRTM::PortStatus get(::OpenRTM::CdrData_out data); 00174 00175 00176 private: 00177 BufferBase<cdrMemoryStream>* m_buffer; 00178 ::OpenRTM::OutPortCdr_var m_objref; 00179 }; // class OutPortCorbaCdrProvider 00180 }; // namespace RTC 00181 00182 extern "C" 00183 { 00184 void OutPortCorbaCdrProviderInit(void); 00185 }; 00186 00187 #ifdef WIN32 00188 #pragma warning( default : 4290 ) 00189 #endif 00190 00191 #endif // RTC_OUTPORTCORBACDRPROVIDER_H