OpenRTM-aist  1.2.1
InPortDirectProvider.h
[詳解]
1 // -*- C++ -*-
20 #ifndef RTC_INPORTDIRECTPROVIDER_H
21 #define RTC_INPORTDIRECTPROVIDER_H
22 
23 #include <rtm/BufferBase.h>
24 #include <rtm/InPortProvider.h>
25 #include <rtm/Manager.h>
26 #include <rtm/ConnectorListener.h>
27 #include <rtm/ConnectorBase.h>
28 
29 #ifdef WIN32
30 #pragma warning( disable : 4290 )
31 #endif
32 
33 namespace RTC
34 {
60  : public InPortProvider
61  {
62  public:
77 
91  virtual ~InPortDirectProvider(void);
92 
120  virtual void init(coil::Properties& prop);
121 
147  virtual void setBuffer(BufferBase<cdrMemoryStream>* buffer);
148 
197  virtual void setListener(ConnectorInfo& info,
198  ConnectorListeners* listeners);
199 
224  virtual void setConnector(InPortConnector* connector);
225 
226  private:
227 
237  inline void onBufferWrite(cdrMemoryStream& data)
238  {
239  m_listeners->
240  connectorData_[ON_BUFFER_WRITE].notify(m_profile, data);
241  }
242 
252  inline void onBufferFull(cdrMemoryStream& data)
253  {
254  m_listeners->
255  connectorData_[ON_BUFFER_FULL].notify(m_profile, data);
256  }
257 
267  inline void onBufferWriteTimeout(cdrMemoryStream& data)
268  {
269  m_listeners->
270  connectorData_[ON_BUFFER_WRITE_TIMEOUT].notify(m_profile, data);
271  }
272 
282  inline void onBufferWriteOverwrite(cdrMemoryStream& data)
283  {
284  m_listeners->
285  connectorData_[ON_BUFFER_OVERWRITE].notify(m_profile, data);
286  }
287 
297  inline void onReceived(cdrMemoryStream& data)
298  {
299  m_listeners->
300  connectorData_[ON_RECEIVED].notify(m_profile, data);
301  }
302 
312  inline void onReceiverFull(cdrMemoryStream& data)
313  {
314  m_listeners->
315  connectorData_[ON_RECEIVER_FULL].notify(m_profile, data);
316  }
317 
325  inline void onReceiverTimeout(cdrMemoryStream& data)
326  {
327  m_listeners->
328  connectorData_[ON_RECEIVER_TIMEOUT].notify(m_profile, data);
329  }
330 
338  inline void onReceiverError(cdrMemoryStream& data)
339  {
340  m_listeners->
341  connectorData_[ON_RECEIVER_ERROR].notify(m_profile, data);
342  }
343 
344  private:
345  CdrBufferBase* m_buffer;
346  ConnectorListeners* m_listeners;
347  ConnectorInfo m_profile;
348  InPortConnector* m_connector;
349 
350  }; // class InPortCorCdrbaProvider
351 }; // namespace RTC
352 
353 extern "C"
354 {
368  void InPortDirectProviderInit(void);
369 };
370 
371 #ifdef WIN32
372 #pragma warning( default : 4290 )
373 #endif
374 
375 #endif // RTC_INPORTDIRECTPROVIDER_H
376 
ConnectorListeners クラス
Definition: ConnectorListener.h:1217
InPortDirectProvider クラス
Definition: InPortDirectProvider.h:59
Definition: ConnectorListener.h:147
InPortConnector 基底クラス
Definition: InPortConnector.h:51
InPortProvider class.
RTコンポーネント
virtual void setConnector(InPortConnector *connector)
Connectorを設定する。
Definition: ConnectorListener.h:146
virtual void init(coil::Properties &prop)
設定初期化
ConnectorInfo クラス
Definition: ConnectorBase.h:43
Definition: ConnectorListener.h:140
Definition: InPortProvider.h:190
-*- C++ -*-
InPortDirectProvider(void)
コンストラクタ
Connector base class.
Definition: ConnectorListener.h:142
Buffer abstract class.
Definition: ConnectorListener.h:141
Definition: ConnectorListener.h:143
プロパティセットを表現するクラス
Definition: Properties.h:101
Definition: ConnectorListener.h:149
virtual void setListener(ConnectorInfo &info, ConnectorListeners *listeners)
リスナを設定する。
void InPortDirectProviderInit(void)
モジュール初期化関数
BufferBase 抽象クラス
Definition: BufferBase.h:104
virtual ~InPortDirectProvider(void)
デストラクタ
connector listener class
virtual void setBuffer(BufferBase< cdrMemoryStream > *buffer)
バッファをセットする
Definition: ConnectorListener.h:148