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>
27#include <rtm/ConnectorBase.h>
28
29namespace 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
376extern "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