00001 // -*- C++ -*- 00020 #ifndef RTC_OUTPORTCORBACDRCONSUMER_H 00021 #define RTC_OUTPORTCORBACDRCONSUMER_H 00022 00023 #include <rtm/idl/DataPortSkel.h> 00024 #include <rtm/CorbaConsumer.h> 00025 #include <rtm/OutPortConsumer.h> 00026 00027 namespace RTC 00028 { 00029 // forward decl 00030 00057 class OutPortCorbaCdrConsumer 00058 : public OutPortConsumer, 00059 public CorbaConsumer< ::OpenRTM::OutPortCdr > 00060 { 00061 public: 00062 DATAPORTSTATUS_ENUM 00063 00081 OutPortCorbaCdrConsumer(); 00082 00096 virtual ~OutPortCorbaCdrConsumer(void); 00097 00125 virtual void init(coil::Properties& prop); 00126 00152 virtual void setBuffer(CdrBufferBase* buffer); 00153 00175 virtual ReturnCode get(cdrMemoryStream& data); 00176 00199 virtual bool subscribeInterface(const SDOPackage::NVList& properties); 00200 00218 virtual void unsubscribeInterface(const SDOPackage::NVList& properties); 00219 00220 private: 00221 // RTC::OutPortCdr_var m_outport; 00222 CdrBufferBase* m_buffer; 00223 }; 00224 }; // namespace RTC 00225 00226 extern "C" 00227 { 00228 void OutPortCorbaCdrConsumerInit(void); 00229 }; 00230 00231 #endif // RTC_OUTPORTCORBACDRCONSUMER_H