OpenRTM-aist  2.1.0
OutPortCorbaCdrConsumer.h
[詳解]
1 // -*- C++ -*-
20 #ifndef RTC_OUTPORTCORBACDRCONSUMER_H
21 #define RTC_OUTPORTCORBACDRCONSUMER_H
22 
23 #include <rtm/idl/DataPort_OpenRTMSkel.h>
24 #include <rtm/CorbaConsumer.h>
25 #include <rtm/OutPortConsumer.h>
26 #include <rtm/ConnectorListener.h>
27 #include <rtm/ConnectorBase.h>
28 
29 namespace RTC
30 {
56  : public OutPortConsumer,
57  public CorbaConsumer< ::OpenRTM::OutPortCdr >
58  {
59  public:
60 
75 
90 
118  void init(coil::Properties& prop) override;
119 
145  void setBuffer(CdrBufferBase* buffer) override;
146 
192  ConnectorListenersBase* listeners) override;
193 
215  DataPortStatus get(ByteData& data) override;
216 
239  bool subscribeInterface(const SDOPackage::NVList& properties) override;
240 
258  void unsubscribeInterface(const SDOPackage::NVList& properties) override;
259  protected:
267  mutable Logger rtclog;
268  private:
276  DataPortStatus convertReturn(::OpenRTM::PortStatus status,
277  ByteData& data);
278 
288  inline void onBufferWrite(ByteData& data)
289  {
290  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_WRITE, m_profile, data);
291  }
292 
302  inline void onBufferFull(ByteData& data)
303  {
304  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_FULL, m_profile, data);
305  }
306 
316  inline void onReceived(ByteData& data)
317  {
318  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVED, m_profile, data);
319  }
320 
330  inline void onReceiverFull(ByteData& data)
331  {
332  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_FULL, m_profile, data);
333  }
334 
342  inline void onSenderEmpty()
343  {
344  m_listeners->notify(ConnectorListenerType::ON_SENDER_EMPTY, m_profile);
345  }
346 
354  inline void onSenderTimeout()
355  {
356  m_listeners->notify(ConnectorListenerType::ON_SENDER_TIMEOUT, m_profile);
357  }
358 
366  inline void onSenderError()
367  {
368  m_listeners->notify(ConnectorListenerType::ON_SENDER_ERROR, m_profile);
369  }
370  CdrBufferBase* m_buffer;
371  ConnectorListenersBase* m_listeners;
372  ConnectorInfo m_profile;
373  };
374 } // namespace RTC
375 
376 extern "C"
377 {
392 }
393 
394 #endif // RTC_OUTPORTCORBACDRCONSUMER_H
Connector base class
connector listener class
CORBA Consumer class
OutPortConsumer class
void OutPortCorbaCdrConsumerInit(void)
モジュール初期化関数
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 notifyIn(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
リスナーへ通知する(InPort側) 指定の種類のリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 InPort側ではnotifyOut関...
オブジェクトリファレンスを保持するプレースホルダテンプレートクラス
Definition: CorbaConsumer.h:333
Logger クラス
Definition: SystemLogger.h:101
OutPortConsumer 抽象クラス
Definition: OutPortConsumer.h:173
OutPortCorbaCdrConsumer クラス
Definition: OutPortCorbaCdrConsumer.h:58
Logger rtclog
ロガーストリーム
Definition: OutPortCorbaCdrConsumer.h:267
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
DataPortStatus get(ByteData &data) override
データを読み出す
void init(coil::Properties &prop) override
設定初期化
~OutPortCorbaCdrConsumer() override
デストラクタ
void setBuffer(CdrBufferBase *buffer) override
バッファをセットする
void unsubscribeInterface(const SDOPackage::NVList &properties) override
データ受信通知からの登録解除
bool subscribeInterface(const SDOPackage::NVList &properties) override
データ受信通知への登録
OutPortCorbaCdrConsumer()
コンストラクタ
RTコンポーネント
BufferBase< ByteData > CdrBufferBase
Definition: CdrBufferBase.h:31
DataPortStatus
Definition: DataPortStatus.h:114
coil::Properties Properties
Definition: RTC.h:72