OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
InPortDSProvider.h
[詳解]
1// -*- C++ -*-
18#ifndef RTC_INPORTDSPROVIDER_H
19#define RTC_INPORTDSPROVIDER_H
20
21#include <rtm/idl/DataPortSkel.h>
22#include <rtm/BufferBase.h>
23#include <rtm/InPortProvider.h>
24#include <rtm/CORBA_SeqUtil.h>
25#include <rtm/Manager.h>
27#include <rtm/ConnectorBase.h>
28
29namespace RTC
30{
56 : public InPortProvider,
57 public virtual POA_RTC::DataPushService,
58 public virtual PortableServer::RefCountServantBase
59 {
60 public:
75
90
118 void init(coil::Properties& prop) override;
119
145 void setBuffer(BufferBase<ByteData>* buffer) override;
146
196 ConnectorListenersBase* listeners) override;
197
222 void setConnector(InPortConnector* connector) override;
223
241 ::RTC::PortStatus push(const ::RTC::OctetSeq& data) override;
242
243 private:
251 ::RTC::PortStatus
252 convertReturn(BufferStatus status,
253 ByteData& data);
254
255
265 inline void onBufferWrite(ByteData& data)
266 {
267 m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_WRITE, m_profile, data);
268 }
269
279 inline void onBufferFull(ByteData& data)
280 {
281 m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_FULL, m_profile, data);
282 }
283
293 inline void onBufferWriteTimeout(ByteData& data)
294 {
296 }
297
307 inline void onBufferWriteOverwrite(ByteData& data)
308 {
309 m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_OVERWRITE, m_profile, data);
310 }
311
321 inline void onReceived(ByteData& data)
322 {
323 m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVED, m_profile, data);
324 }
325
335 inline void onReceiverFull(ByteData& data)
336 {
337 m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_FULL, m_profile, data);
338 }
339
347 inline void onReceiverTimeout(ByteData& data)
348 {
349 m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_TIMEOUT, m_profile, data);
350 }
351
359 inline void onReceiverError(ByteData& data)
360 {
361 m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_ERROR, m_profile, data);
362 }
363
364 private:
365 CdrBufferBase* m_buffer{nullptr};
366 ::RTC::DataPushService_var m_objref;
367 ConnectorListenersBase* m_listeners;
368 ConnectorInfo m_profile;
369 InPortConnector* m_connector{nullptr};
370 ByteData m_cdr;
371
372 }; // class InPortDSProvider
373} // namespace RTC
374
375extern "C"
376{
391}
392
393#endif // RTC_INPORTDSPROVIDER_H
394
Buffer abstract class
CORBA sequence utility template functions
Connector base class
connector listener class
void InPortDSProviderInit(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
InPortDSProvider クラス
Definition InPortDSProvider.h:59
~InPortDSProvider() override
デストラクタ
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
void setBuffer(BufferBase< ByteData > *buffer) override
バッファをセットする
::RTC::PortStatus push(const ::RTC::OctetSeq &data) override
[CORBA interface] バッファにデータを書き込む
void setConnector(InPortConnector *connector) override
Connectorを設定する。
void init(coil::Properties &prop) override
設定初期化
InPortDSProvider()
コンストラクタ
Definition InPortProvider.h:191
RTコンポーネント
BufferBase< ByteData > CdrBufferBase
Definition CdrBufferBase.h:31
BufferStatus
BufferStatus リターンコード
Definition BufferStatus.h:57