00001 00020 #ifndef RTC_OUTPORTPUSHCONNECTOR_H 00021 #define RTC_OUTPORTPUSHCONNECTOR_H 00022 00023 #include <rtm/OutPortConnector.h> 00024 #include <rtm/InPortConsumer.h> 00025 #include <rtm/PublisherBase.h> 00026 00027 namespace RTC 00028 { 00029 class OutPortPushConnector 00030 : public OutPortConnector 00031 { 00032 public: 00033 DATAPORTSTATUS_ENUM 00034 00058 OutPortPushConnector(Profile profile, 00059 InPortConsumer* consumer, 00060 CdrBufferBase* buffer = 0); 00061 00077 virtual ~OutPortPushConnector(); 00078 00095 virtual ReturnCode write(const cdrMemoryStream& data); 00096 00112 virtual ReturnCode disconnect(); 00113 00128 virtual void activate(); 00129 00143 virtual CdrBufferBase* getBuffer(); 00144 00159 virtual void deactivate(); 00160 00161 protected: 00169 virtual PublisherBase* createPublisher(Profile& profile); 00170 00178 virtual CdrBufferBase* createBuffer(Profile& profile); 00179 00180 private: 00188 InPortConsumer* m_consumer; 00189 00197 PublisherBase* m_publisher; 00198 00206 CdrBufferBase* m_buffer; 00207 00208 }; 00209 }; // namespace RTC 00210 00211 #endif // RTC_PUSH_CONNECTOR_H