OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
OutPortDirectProvider.h
[詳解]
1// -*- C++ -*-
18#ifndef RTC_OUTPORTDIRECTPROVIDER_H
19#define RTC_OUTPORTDIRECTPROVIDER_H
20
21
22#include <rtm/BufferBase.h>
23#include <rtm/OutPortProvider.h>
24#include <rtm/Manager.h>
26#include <rtm/ConnectorBase.h>
27
28namespace RTC
29{
52 : public OutPortProvider
53 {
54 public:
69
84
112 void init(coil::Properties& prop) override;
113
139 void setBuffer(CdrBufferBase* buffer) override;
140
186 ConnectorListenersBase* listeners) override;
187
212 void setConnector(OutPortConnector* connector) override;
213
214
215 private:
216
217
218
228 inline void onBufferRead(ByteData& data)
229 {
230 m_listeners->notifyOut(ConnectorDataListenerType::ON_BUFFER_READ, m_profile, data);
231 }
232
242 inline void onSend(ByteData& data)
243 {
244 m_listeners->notifyOut(ConnectorDataListenerType::ON_SEND, m_profile, data);
245 }
246
254 inline void onBufferEmpty()
255 {
256 m_listeners->notify(ConnectorListenerType::ON_BUFFER_EMPTY, m_profile);
257 }
258
266 inline void onBufferReadTimeout()
267 {
269 }
270
278 inline void onSenderEmpty()
279 {
280 m_listeners->notify(ConnectorListenerType::ON_SENDER_EMPTY, m_profile);
281 }
282
290 inline void onSenderTimeout()
291 {
292 m_listeners->notify(ConnectorListenerType::ON_SENDER_TIMEOUT, m_profile);
293 }
294
302 inline void onSenderError()
303 {
304 m_listeners->notify(ConnectorListenerType::ON_SENDER_ERROR, m_profile);
305 }
306
307 private:
308 CdrBufferBase* m_buffer{nullptr};
309 ConnectorListenersBase* m_listeners;
310 ConnectorInfo m_profile;
311 OutPortConnector* m_connector;
312 }; // class OutPortDirectProvider
313} // namespace RTC
314
315extern "C"
316{
331}
332
333#endif // RTC_OUTPORTDIRECTPROVIDER_H
Buffer abstract class
Connector base class
connector listener class
-*- C++ -*-
void OutPortDirectProviderInit(void)
モジュール初期化関数
OutPortProvider class
BufferBase 抽象クラス
Definition BufferBase.h:106
シリアライズ後のバイト列を操作するクラス
Definition ByteData.h:30
ConnectorInfo クラス
Definition ConnectorBase.h:50
Definition ConnectorListener.h:1354
virtual::RTC::ConnectorListenerStatus::Enum notifyOut(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
リスナーへ通知する(OutPort側) 指定の種類のリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 OutPort側ではnotifyOu...
virtual::RTC::ConnectorListenerStatus::Enum notify(ConnectorListenerType type, ConnectorInfo &info)=0
リスナーへ通知する
OutPortConnector 基底クラス
Definition OutPortConnector.h:58
OutPortDirectProvider クラス
Definition OutPortDirectProvider.h:53
void setBuffer(CdrBufferBase *buffer) override
バッファをセットする
void init(coil::Properties &prop) override
設定初期化
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
OutPortDirectProvider()
コンストラクタ
~OutPortDirectProvider() override
デストラクタ
void setConnector(OutPortConnector *connector) override
Connectorを設定する。
OutPortProvider
Definition OutPortProvider.h:190
RTコンポーネント
BufferBase< ByteData > CdrBufferBase
Definition CdrBufferBase.h:31