OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
InPortPushConnector.h
[詳解]
1// -*- C++ -*-
20#ifndef RTC_INPORTPUSHCONNECTOR_H
21#define RTC_INPORTPUSHCONNECTOR_H
22
23#include <rtm/InPortConnector.h>
24#include <rtm/InPortConsumer.h>
25#include <rtm/PublisherBase.h>
26
27namespace RTC
28{
29 class InPortProvider;
30
81 : public InPortConnector
82 {
83 public:
84
126 InPortProvider* provider,
127 ConnectorListenersBase* listeners,
128 CdrBufferBase* buffer = nullptr);
129
146
180
201
216 void activate() override {} // do nothing
217
232 void deactivate() override {} // do nothing
233
234 protected:
255
257
265 void onConnect();
266
275
276 inline void onBufferRead(ByteData& data)
277 {
279 m_profile, data);
280
281 }
282 void onBufferEmpty(ByteData& /*data*/)
283 {
285
286 }
292
293 private:
301 InPortProvider* m_provider;
302
310 ConnectorListenersBase* m_listeners;
311
312 bool m_deleteBuffer;
313
314 bool m_sync_readwrite;
315
316 struct WorkerThreadCtrl
317 {
318 WorkerThreadCtrl() {}
319 std::mutex mutex_;
320 std::condition_variable cond_;
321 bool completed_{false};
322 };
323 WorkerThreadCtrl m_writecompleted_worker;
324 WorkerThreadCtrl m_readcompleted_worker;
325 WorkerThreadCtrl m_readready_worker;
326
327 ByteData m_data;
328
329 };
330} // namespace RTC
331
332#endif // RTC_PUSH_CONNECTOR_H
InPortConnector base class
InPortConsumer class
Publisher base class
BufferBase 抽象クラス
Definition BufferBase.h:106
シリアライザの基底クラス
Definition ByteDataStreamBase.h:63
シリアライズ後のバイト列を操作するクラス
Definition ByteData.h:30
ConnectorInfo クラス
Definition ConnectorBase.h:50
Definition ConnectorListener.h:1354
virtual::RTC::ConnectorListenerStatus::Enum notifyIn(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
リスナーへ通知する(InPort側) 指定の種類のリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 InPort側ではnotifyOut関...
virtual::RTC::ConnectorListenerStatus::Enum notify(ConnectorListenerType type, ConnectorInfo &info)=0
リスナーへ通知する
InPortConnector 基底クラス
Definition InPortConnector.h:54
ConnectorInfo m_profile
ConnectorInfo
Definition InPortConnector.h:399
Definition InPortProvider.h:191
InPortPushConnector クラス
Definition InPortPushConnector.h:82
~InPortPushConnector() override
デストラクタ
InPortPushConnector(ConnectorInfo info, InPortProvider *provider, ConnectorListenersBase *listeners, CdrBufferBase *buffer=nullptr)
コンストラクタ
DataPortStatus disconnect() override
接続解除
void onBufferReadTimeout(ByteData &)
Definition InPortPushConnector.h:287
void onDisconnect()
接続切断時にコールバックを呼ぶ
void deactivate() override
非アクティブ化
Definition InPortPushConnector.h:232
BufferStatus write(ByteData &cdr) override
void onBufferEmpty(ByteData &)
Definition InPortPushConnector.h:282
void activate() override
アクティブ化
Definition InPortPushConnector.h:216
void onConnect()
接続確立時にコールバックを呼ぶ
DataPortStatus read(ByteDataStreamBase *data) override
データの読み出し
void onBufferRead(ByteData &data)
Definition InPortPushConnector.h:276
virtual CdrBufferBase * createBuffer(ConnectorInfo &info)
Bufferの生成
RTコンポーネント
DataPortStatus
Definition DataPortStatus.h:114
BufferStatus
BufferStatus リターンコード
Definition BufferStatus.h:57