OpenRTM  1.0.0
OutPortPushConnector.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_OUTPORTPUSHCONNECTOR_H
21 #define RTC_OUTPORTPUSHCONNECTOR_H
22 
23 #include <rtm/OutPortConnector.h>
24 #include <rtm/InPortConsumer.h>
25 #include <rtm/PublisherBase.h>
26 
27 namespace RTC
28 {
29  class ConnectorListeners;
30 
86  : public OutPortConnector
87  {
88  public:
90 
132  InPortConsumer* consumer,
133  ConnectorListeners& listeners,
134  CdrBufferBase* buffer = 0);
135 
151  virtual ~OutPortPushConnector();
152 
192  virtual ReturnCode write(const cdrMemoryStream& data);
193 
209  virtual ReturnCode disconnect();
210 
225  virtual void activate();
226 
241  virtual void deactivate();
242 
256  virtual CdrBufferBase* getBuffer();
257 
258  protected:
279 
299  virtual CdrBufferBase* createBuffer(ConnectorInfo& info);
300 
308  void onConnect();
309 
317  void onDisconnect();
318 
319  private:
327  InPortConsumer* m_consumer;
328 
336  PublisherBase* m_publisher;
337 
345  ConnectorListeners& m_listeners;
346 
354  CdrBufferBase* m_buffer;
355 
356  };
357 }; // namespace RTC
358 
359 #endif // RTC_PUSH_CONNECTOR_H