OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
OutPortCorbaCdrProvider.h
[詳解]
1// -*- C++ -*-
20#ifndef RTC_OUTPORTCORBACDRPROVIDER_H
21#define RTC_OUTPORTCORBACDRPROVIDER_H
22
23#include <rtm/idl/DataPort_OpenRTMSkel.h>
24#include <rtm/BufferBase.h>
25#include <rtm/OutPortProvider.h>
26#include <rtm/CORBA_SeqUtil.h>
27#include <rtm/Manager.h>
29#include <rtm/ConnectorBase.h>
30
31namespace RTC
32{
58 : public OutPortProvider,
59 public virtual ::POA_OpenRTM::OutPortCdr,
60 public virtual PortableServer::RefCountServantBase
61 {
62 public:
77
92
120 void init(coil::Properties& prop) override;
121
147 void setBuffer(CdrBufferBase* buffer) override;
148
194 ConnectorListenersBase* listeners) override;
195
220 void setConnector(OutPortConnector* connector) override;
221
239 ::OpenRTM::PortStatus get(::OpenRTM::CdrData_out data) override;
240
241
242 private:
250 ::OpenRTM::PortStatus convertReturn(BufferStatus status,
251 ByteData& data);
252
253
263 inline void onBufferRead(ByteData& data)
264 {
265 m_listeners->notifyOut(ConnectorDataListenerType::ON_BUFFER_READ, m_profile, data);
266 }
267
277 inline void onSend(ByteData& data)
278 {
279 m_listeners->notifyOut(ConnectorDataListenerType::ON_SEND, m_profile, data);
280 }
281
289 inline void onBufferEmpty()
290 {
291 m_listeners->notify(ConnectorListenerType::ON_BUFFER_EMPTY, m_profile);
292 }
293
301 inline void onBufferReadTimeout()
302 {
304 }
305
313 inline void onSenderEmpty()
314 {
315 m_listeners->notify(ConnectorListenerType::ON_SENDER_EMPTY, m_profile);
316 }
317
325 inline void onSenderTimeout()
326 {
327 m_listeners->notify(ConnectorListenerType::ON_SENDER_TIMEOUT, m_profile);
328 }
329
337 inline void onSenderError()
338 {
339 m_listeners->notify(ConnectorListenerType::ON_SENDER_ERROR, m_profile);
340 }
341
342 private:
343 CdrBufferBase* m_buffer{nullptr};
344 ::OpenRTM::OutPortCdr_var m_objref;
345 ConnectorListenersBase* m_listeners;
346 ConnectorInfo m_profile;
347 OutPortConnector* m_connector{nullptr};
348 ByteData m_cdr;
349 }; // class OutPortCorbaCdrProvider
350} // namespace RTC
351
352extern "C"
353{
368}
369
370#endif // RTC_OUTPORTCORBACDRPROVIDER_H
Buffer abstract class
CORBA sequence utility template functions
Connector base class
connector listener class
-*- C++ -*-
void OutPortCorbaCdrProviderInit(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 notifyOut(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
リスナーへ通知する(OutPort側) 指定の種類のリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 OutPort側ではnotifyOu...
virtual::RTC::ConnectorListenerStatus::Enum notify(ConnectorListenerType type, ConnectorInfo &info)=0
リスナーへ通知する
OutPortConnector 基底クラス
Definition OutPortConnector.h:58
OutPortCorbaCdrProvider クラス
Definition OutPortCorbaCdrProvider.h:61
~OutPortCorbaCdrProvider() override
デストラクタ
::OpenRTM::PortStatus get(::OpenRTM::CdrData_out data) override
[CORBA interface] バッファからデータを取得する
void setBuffer(CdrBufferBase *buffer) override
バッファをセットする
void init(coil::Properties &prop) override
設定初期化
OutPortCorbaCdrProvider()
コンストラクタ
void setConnector(OutPortConnector *connector) override
Connectorを設定する。
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
OutPortProvider
Definition OutPortProvider.h:190
RTコンポーネント
BufferBase< ByteData > CdrBufferBase
Definition CdrBufferBase.h:31
BufferStatus
BufferStatus リターンコード
Definition BufferStatus.h:57