00001 // -*- C++ -*- 00020 #ifndef RTC_INPORTCORBAPROVIDER_H 00021 #define RTC_INPORTCORBAPROVIDER_H 00022 00023 #include <rtm/idl/DataPortSkel.h> 00024 #include <rtm/BufferBase.h> 00025 #include <rtm/InPortProvider.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 InPortCorbaCdrProvider 00061 : public InPortProvider, 00062 public virtual POA_OpenRTM::InPortCdr, 00063 public virtual PortableServer::RefCountServantBase 00064 { 00065 public: 00091 InPortCorbaCdrProvider(void); 00092 00106 virtual ~InPortCorbaCdrProvider(void); 00107 00108 virtual void init(coil::Properties& prop); 00109 virtual void setBuffer(BufferBase<cdrMemoryStream>* buffer); 00110 00128 virtual ::OpenRTM::PortStatus put(const ::OpenRTM::CdrData& data) 00129 throw (CORBA::SystemException); 00130 00131 private: 00132 BufferBase<cdrMemoryStream>* m_buffer; 00133 ::OpenRTM::InPortCdr_var m_objref; 00134 }; // class InPortCorbaProvider 00135 }; // namespace RTC 00136 00137 #ifdef WIN32 00138 #pragma warning( default : 4290 ) 00139 #endif 00140 00141 extern "C" 00142 { 00143 void InPortCorbaCdrProviderInit(void); 00144 }; 00145 00146 #endif // InPortCorbaProvider_h 00147