00001 // -*- C++ -*- 00020 #ifndef RTC_OUTPORTPULLCONNECTOR_H 00021 #define RTC_OUTPORTPULLCONNECTOR_H 00022 00023 #include <rtm/OutPortConnector.h> 00024 #include <rtm/ConnectorListener.h> 00025 00026 namespace RTC 00027 { 00028 class OutPortProvider; 00029 00081 class OutPortPullConnector 00082 : public OutPortConnector 00083 { 00084 public: 00085 DATAPORTSTATUS_ENUM 00086 00127 OutPortPullConnector(ConnectorInfo info, 00128 OutPortProvider* provider, 00129 ConnectorListeners& listeners, 00130 CdrBufferBase* buffer = 0); 00131 00147 virtual ~OutPortPullConnector(); 00148 00165 virtual ReturnCode write(const cdrMemoryStream& data); 00166 00182 virtual ReturnCode disconnect(); 00183 00197 virtual CdrBufferBase* getBuffer(); 00198 00213 virtual void activate(){}; // do nothing 00214 00229 virtual void deactivate(){}; // do nothing 00230 00238 CdrBufferBase* createBuffer(ConnectorInfo& info); 00239 00247 void onConnect(); 00248 00256 void onDisconnect(); 00257 00258 protected: 00259 00267 OutPortProvider* m_provider; 00268 00276 ConnectorListeners& m_listeners; 00277 00285 CdrBufferBase* m_buffer; 00286 }; 00287 }; // namespace RTC 00288 00289 #endif // RTC_PULL_CONNECTOR_H