OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
OutPortDSConsumer.h
[詳解]
1// -*- C++ -*-
18#ifndef RTC_OUTPORTDSCONSUMER_H
19#define RTC_OUTPORTDSCONSUMER_H
20
21#include <rtm/idl/DataPortSkel.h>
22#include <rtm/CorbaConsumer.h>
23#include <rtm/OutPortConsumer.h>
25#include <rtm/ConnectorBase.h>
26
27namespace RTC
28{
54 : public OutPortConsumer,
55 public CorbaConsumer< ::RTC::DataPullService >
56 {
57 public:
58
73
88
116 void init(coil::Properties& prop) override;
117
143 void setBuffer(CdrBufferBase* buffer) override;
144
190 ConnectorListenersBase* listeners) override;
191
213 DataPortStatus get(ByteData& data) override;
214
237 bool subscribeInterface(const SDOPackage::NVList& properties) override;
238
256 void unsubscribeInterface(const SDOPackage::NVList& properties) override;
257
258 private:
266 DataPortStatus convertReturn(::RTC::PortStatus status,
267 ByteData& data);
268
278 inline void onBufferWrite(ByteData& data)
279 {
280 m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_WRITE, m_profile, data);
281 }
282
292 inline void onBufferFull(ByteData& data)
293 {
294 m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_FULL, m_profile, data);
295 }
296
306 inline void onReceived(ByteData& data)
307 {
308 m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVED, m_profile, data);
309 }
310
320 inline void onReceiverFull(ByteData& data)
321 {
322 m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_FULL, m_profile, data);
323 }
324
332 inline void onSenderEmpty()
333 {
334 m_listeners->notify(ConnectorListenerType::ON_SENDER_EMPTY, m_profile);
335 }
336
344 inline void onSenderTimeout()
345 {
346 m_listeners->notify(ConnectorListenerType::ON_SENDER_TIMEOUT, m_profile);
347 }
348
356 inline void onSenderError()
357 {
358 m_listeners->notify(ConnectorListenerType::ON_SENDER_ERROR, m_profile);
359 }
360 CdrBufferBase* m_buffer;
361 ConnectorListenersBase* m_listeners;
362 ConnectorInfo m_profile;
363 };
364} // namespace RTC
365
366extern "C"
367{
382}
383
384#endif // RTC_OUTPORTDSCONSUMER_H
Connector base class
connector listener class
CORBA Consumer class
OutPortConsumer class
void OutPortDSConsumerInit(void)
モジュール初期化関数
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関...
virtual::RTC::ConnectorListenerStatus::Enum notify(ConnectorListenerType type, ConnectorInfo &info)=0
リスナーへ通知する
オブジェクトリファレンスを保持するプレースホルダテンプレートクラス
Definition CorbaConsumer.h:333
OutPortConsumer 抽象クラス
Definition OutPortConsumer.h:173
OutPortDSConsumer クラス
Definition OutPortDSConsumer.h:56
DataPortStatus get(ByteData &data) override
データを読み出す
~OutPortDSConsumer() override
デストラクタ
void init(coil::Properties &prop) override
設定初期化
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
void unsubscribeInterface(const SDOPackage::NVList &properties) override
データ受信通知からの登録解除
bool subscribeInterface(const SDOPackage::NVList &properties) override
データ受信通知への登録
void setBuffer(CdrBufferBase *buffer) override
バッファをセットする
OutPortDSConsumer()
コンストラクタ
RTコンポーネント
BufferBase< ByteData > CdrBufferBase
Definition CdrBufferBase.h:31
DataPortStatus
Definition DataPortStatus.h:114