OpenRTM-aist  2.1.0
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>
25 #include <rtm/ConnectorListener.h>
26 #include <rtm/ConnectorBase.h>
27 
28 namespace 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  {
268  m_listeners->notify(ConnectorListenerType::ON_BUFFER_READ_TIMEOUT, m_profile);
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 
315 extern "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 notify(ConnectorListenerType type, ConnectorInfo &info)=0
リスナーへ通知する
virtual ::RTC::ConnectorListenerStatus::Enum notifyOut(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
リスナーへ通知する(OutPort側) 指定の種類のリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 OutPort側ではnotifyOu...
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
coil::Properties Properties
Definition: RTC.h:72