OpenRTM-aist  2.1.0
InPortDirectProvider.h
[詳解]
1 // -*- C++ -*-
20 #ifndef RTC_INPORTDIRECTPROVIDER_H
21 #define RTC_INPORTDIRECTPROVIDER_H
22 
23 #include <rtm/BufferBase.h>
24 #include <rtm/InPortProvider.h>
25 #include <rtm/Manager.h>
26 #include <rtm/ConnectorListener.h>
27 #include <rtm/ConnectorBase.h>
28 
29 namespace RTC
30 {
56  : public InPortProvider
57  {
58  public:
73 
88 
116  void init(coil::Properties& prop) override;
117 
143  void setBuffer(BufferBase<ByteData>* buffer) override;
144 
194  ConnectorListenersBase* listeners) override;
195 
220  void setConnector(InPortConnector* connector) override;
221 
222  private:
232  inline void onBufferWrite(ByteData& data)
233  {
234  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_WRITE, m_profile, data);
235  }
236 
246  inline void onBufferFull(ByteData& data)
247  {
248  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_FULL, m_profile, data);
249  }
250 
260  inline void onBufferWriteTimeout(ByteData& data)
261  {
262  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_WRITE_TIMEOUT, m_profile, data);
263  }
264 
274  inline void onBufferWriteOverwrite(ByteData& data)
275  {
276  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_OVERWRITE, m_profile, data);
277  }
278 
288  inline void onReceived(ByteData& data)
289  {
290  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVED, m_profile, data);
291  }
292 
302  inline void onReceiverFull(ByteData& data)
303  {
304  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_FULL, m_profile, data);
305  }
306 
314  inline void onReceiverTimeout(ByteData& data)
315  {
316  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_TIMEOUT, m_profile, data);
317  }
318 
326  inline void onReceiverError(ByteData& data)
327  {
328  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_ERROR, m_profile, data);
329  }
330 
331  private:
332  CdrBufferBase* m_buffer{nullptr};
333  ConnectorListenersBase* m_listeners;
334  ConnectorInfo m_profile;
335  InPortConnector* m_connector;
336 
337  }; // class InPortCorCdrbaProvider
338 } // namespace RTC
339 
340 extern "C"
341 {
356 }
357 
358 #endif // RTC_INPORTDIRECTPROVIDER_H
359 
Buffer abstract class
Connector base class
connector listener class
void InPortDirectProviderInit(void)
モジュール初期化関数
InPortProvider class
-*- C++ -*-
BufferBase 抽象クラス
Definition: BufferBase.h:106
シリアライズ後のバイト列を操作するクラス
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関...
InPortConnector 基底クラス
Definition: InPortConnector.h:54
InPortDirectProvider クラス
Definition: InPortDirectProvider.h:57
InPortDirectProvider()
コンストラクタ
void setConnector(InPortConnector *connector) override
Connectorを設定する。
void init(coil::Properties &prop) override
設定初期化
~InPortDirectProvider() override
デストラクタ
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
void setBuffer(BufferBase< ByteData > *buffer) override
バッファをセットする
Definition: InPortProvider.h:191
RTコンポーネント
BufferBase< ByteData > CdrBufferBase
Definition: CdrBufferBase.h:31
coil::Properties Properties
Definition: RTC.h:72