OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
InPortCorbaCdrProvider.h
[詳解]
1// -*- C++ -*-
20#ifndef RTC_INPORTCORBACDRPROVIDER_H
21#define RTC_INPORTCORBACDRPROVIDER_H
22
23#include <rtm/idl/DataPort_OpenRTMSkel.h>
24#include <rtm/BufferBase.h>
25#include <rtm/InPortProvider.h>
26#include <rtm/CORBA_SeqUtil.h>
27#include <rtm/Manager.h>
29#include <rtm/ConnectorBase.h>
30
31namespace RTC
32{
58 : public InPortProvider,
59 public virtual POA_OpenRTM::InPortCdr,
60 public virtual PortableServer::RefCountServantBase
61 {
62 public:
77
92
120 void init(coil::Properties& prop) override;
121
147 void setBuffer(BufferBase<ByteData>* buffer) override;
148
198 ConnectorListenersBase* listeners) override;
199
224 void setConnector(InPortConnector* connector) override;
225
243 ::OpenRTM::PortStatus put(const ::OpenRTM::CdrData& data) override;
244
245 private:
253 ::OpenRTM::PortStatus
254 convertReturn(BufferStatus status,
255 ByteData& data);
256
257
267 inline void onBufferWrite(ByteData& data)
268 {
269 m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_WRITE, m_profile, data);
270 }
271
281 inline void onBufferFull(ByteData& data)
282 {
283 m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_FULL, m_profile, data);
284 }
285
295 inline void onBufferWriteTimeout(ByteData& data)
296 {
298 }
299
309 inline void onBufferWriteOverwrite(ByteData& data)
310 {
311 m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_OVERWRITE, m_profile, data);
312 }
313
323 inline void onReceived(ByteData& data)
324 {
325 m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVED, m_profile, data);
326 }
327
337 inline void onReceiverFull(ByteData& data)
338 {
339 m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_FULL, m_profile, data);
340 }
341
349 inline void onReceiverTimeout(ByteData& data)
350 {
351 m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_TIMEOUT, m_profile, data);
352 }
353
361 inline void onReceiverError(ByteData& data)
362 {
363 m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_ERROR, m_profile, data);
364 }
365
366 private:
367 CdrBufferBase* m_buffer{nullptr};
368 ::OpenRTM::InPortCdr_var m_objref;
369 ConnectorListenersBase* m_listeners;
370 ConnectorInfo m_profile;
371 InPortConnector* m_connector{nullptr};
372 ByteData m_cdr;
373
374 }; // class InPortCorbaCdrProvider
375} // namespace RTC
376
377extern "C"
378{
393}
394
395#endif // RTC_INPORTCORBACDRPROVIDER_H
396
Buffer abstract class
CORBA sequence utility template functions
Connector base class
connector listener class
void InPortCorbaCdrProviderInit(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
InPortCorbaCdrProvider クラス
Definition InPortCorbaCdrProvider.h:61
void setConnector(InPortConnector *connector) override
Connectorを設定する。
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
::OpenRTM::PortStatus put(const ::OpenRTM::CdrData &data) override
[CORBA interface] バッファにデータを書き込む
InPortCorbaCdrProvider()
コンストラクタ
void setBuffer(BufferBase< ByteData > *buffer) override
バッファをセットする
void init(coil::Properties &prop) override
設定初期化
~InPortCorbaCdrProvider() override
デストラクタ
Definition InPortProvider.h:191
RTコンポーネント
BufferBase< ByteData > CdrBufferBase
Definition CdrBufferBase.h:31
BufferStatus
BufferStatus リターンコード
Definition BufferStatus.h:57