00001 00020 #ifndef RTC_INPORTPUSHCONNECTOR_H 00021 #define RTC_INPORTPUSHCONNECTOR_H 00022 00023 #include <rtm/InPortConnector.h> 00024 #include <rtm/InPortConsumer.h> 00025 #include <rtm/PublisherBase.h> 00026 00027 namespace RTC 00028 { 00029 class InPortProvider; 00030 00031 class InPortPushConnector 00032 : public InPortConnector 00033 { 00034 public: 00035 DATAPORTSTATUS_ENUM 00036 00060 InPortPushConnector(Profile profile, InPortProvider* provider, 00061 CdrBufferBase* buffer = 0); 00062 00078 virtual ~InPortPushConnector(); 00079 00096 virtual ReturnCode read(cdrMemoryStream& data); 00097 00113 virtual ReturnCode disconnect(); 00114 00115 virtual void activate(){}; // do nothing 00116 virtual void deactivate(){}; // do nothing 00117 protected: 00125 virtual CdrBufferBase* createBuffer(Profile& profile); 00126 00127 private: 00135 InPortProvider* m_provider; 00136 bool m_deleteBuffer; 00137 }; 00138 }; // namespace RTC 00139 00140 #endif // RTC_PUSH_CONNECTOR_H