OpenRTM-aist  2.1.0
OutPortPullConnector.h
[詳解]
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
BufferBase 抽象クラス
Definition: BufferBase.h:106
シリアライザの基底クラス
Definition: ByteDataStreamBase.h:63
シリアライズ後のバイト列を操作するクラス
Definition: ByteData.h:30
ConnectorInfo クラス
Definition: ConnectorBase.h:50
Definition: ConnectorListener.h:1354
OutPortConnector 基底クラス
Definition: OutPortConnector.h:58
OutPortProvider
Definition: OutPortProvider.h:190
OutPortPullConnector クラス
Definition: OutPortPullConnector.h:83
BufferStatus read(ByteData &data) override
void onDisconnect()
接続切断時にコールバックを呼ぶ
void onConnect()
接続確立時にコールバックを呼ぶ
OutPortProvider * m_provider
OutPortProvider へのポインタ
Definition: OutPortPullConnector.h:267
~OutPortPullConnector() override
デストラクタ
OutPortPullConnector(ConnectorInfo info, OutPortProvider *provider, ConnectorListenersBase *listeners, CdrBufferBase *buffer=nullptr)
コンストラクタ
void activate() override
アクティブ化
Definition: OutPortPullConnector.h:214
static CdrBufferBase * createBuffer(ConnectorInfo &info)
Bufferの生成
CdrBufferBase * m_buffer
Buffer へのポインタ
Definition: OutPortPullConnector.h:285
CdrBufferBase * getBuffer() override
Buffer を取得する
ConnectorListenersBase * m_listeners
ConnectorListenrs への参照
Definition: OutPortPullConnector.h:276
void deactivate() override
非アクティブ化
Definition: OutPortPullConnector.h:230
DataPortStatus disconnect() override
接続解除
DataPortStatus write(ByteDataStreamBase *data) override
データの書き込み
RTコンポーネント
DataPortStatus
Definition: DataPortStatus.h:114
BufferStatus
BufferStatus リターンコード
Definition: BufferStatus.h:57