OpenRTM-aist  2.1.0
OutPortPullConnector.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_OUTPORTPULLCONNECTOR_H
21 #define RTC_OUTPORTPULLCONNECTOR_H
22 
23 #include <rtm/OutPortConnector.h>
24 #include <rtm/ConnectorListener.h>
25 
26 namespace RTC
27 {
28  class OutPortProvider;
29 
82  : public OutPortConnector
83  {
84  public:
85 
127  OutPortProvider* provider,
128  ConnectorListenersBase* listeners,
129  CdrBufferBase* buffer = nullptr);
130 
147 
165 
166  BufferStatus read(ByteData &data) override;
167 
184 
199 
214  void activate() override {} // do nothing
215 
230  void deactivate() override {} // do nothing
231 
240 
248  void onConnect();
249 
257  void onDisconnect();
258 
259  protected:
268 
277 
286  private:
287  bool m_sync_readwrite;
288 
289  struct WorkerThreadCtrl
290  {
291  WorkerThreadCtrl() {}
292  std::mutex mutex_;
293  std::condition_variable cond_;
294  bool completed_{false};
295  };
296  WorkerThreadCtrl m_writecompleted_worker;
297  WorkerThreadCtrl m_readcompleted_worker;
298  WorkerThreadCtrl m_readready_worker;
299 
300  };
301 } // namespace RTC
302 
303 #endif // RTC_PULL_CONNECTOR_H
connector listener class
OutPortConnector class.
DataPortStatus mixin class.
Definition: ConnectorListener.h:35
BufferBase abstract class.
Definition: BufferBase.h:106
Definition: ByteDataStreamBase.h:63
Definition: ByteData.h:30
ConnectorInfo class.
Definition: ConnectorBase.h:50
Definition: ConnectorListener.h:1354
OutPortConnector base class.
Definition: OutPortConnector.h:58
OutPortProvider.
Definition: OutPortProvider.h:190
OutPortPullConnector class.
Definition: OutPortPullConnector.h:83
BufferStatus read(ByteData &data) override
void onDisconnect()
Invoke callback when connection is destroied.
void onConnect()
Invoke callback when connection is established.
OutPortProvider * m_provider
the pointer to the OutPortProvider
Definition: OutPortPullConnector.h:267
~OutPortPullConnector() override
Destructor.
OutPortPullConnector(ConnectorInfo info, OutPortProvider *provider, ConnectorListenersBase *listeners, CdrBufferBase *buffer=nullptr)
Constructor.
void activate() override
Connector activation.
Definition: OutPortPullConnector.h:214
static CdrBufferBase * createBuffer(ConnectorInfo &info)
create buffer
CdrBufferBase * m_buffer
the pointer to the buffer
Definition: OutPortPullConnector.h:285
CdrBufferBase * getBuffer() override
Getting Buffer.
ConnectorListenersBase * m_listeners
A reference to a ConnectorListener.
Definition: OutPortPullConnector.h:276
void deactivate() override
Connector deactivation.
Definition: OutPortPullConnector.h:230
DataPortStatus disconnect() override
disconnect
DataPortStatus write(ByteDataStreamBase *data) override
Writing data.
RT-Component.
BufferStatus
DataPortStatus return codes.
Definition: BufferStatus.h:57