OpenRTM-aist  1.2.1
OutPortCorbaCdrProvider.h
[詳解]
1 // -*- C++ -*-
20 #ifndef RTC_OUTPORTCORBACDRPROVIDER_H
21 #define RTC_OUTPORTCORBACDRPROVIDER_H
22 
23 #include <rtm/idl/DataPortSkel.h>
24 #include <rtm/BufferBase.h>
25 #include <rtm/OutPortProvider.h>
26 #include <rtm/CORBA_SeqUtil.h>
27 #include <rtm/Manager.h>
28 #include <rtm/ConnectorListener.h>
29 #include <rtm/ConnectorBase.h>
30 
31 #ifdef WIN32
32 #pragma warning( disable : 4290 )
33 #endif
34 
35 namespace RTC
36 {
62  : public OutPortProvider,
63  public virtual ::POA_OpenRTM::OutPortCdr,
64  public virtual PortableServer::RefCountServantBase
65  {
66  public:
81 
95  virtual ~OutPortCorbaCdrProvider(void);
96 
124  virtual void init(coil::Properties& prop);
125 
151  virtual void setBuffer(CdrBufferBase* buffer);
152 
197  virtual void setListener(ConnectorInfo& info,
198  ConnectorListeners* listeners);
199 
224  virtual void setConnector(OutPortConnector* connector);
225 
243  virtual ::OpenRTM::PortStatus get(::OpenRTM::CdrData_out data)
244  throw (CORBA::SystemException);
245 
246 
247  private:
255  ::OpenRTM::PortStatus convertReturn(BufferStatus::Enum status,
256  cdrMemoryStream& data);
257 
258 
268  inline void onBufferRead(cdrMemoryStream& data)
269  {
270  m_listeners->
271  connectorData_[ON_BUFFER_READ].notify(m_profile, data);
272  }
273 
283  inline void onSend(cdrMemoryStream& data)
284  {
285  m_listeners->
286  connectorData_[ON_SEND].notify(m_profile, data);
287  }
288 
296  inline void onBufferEmpty()
297  {
298  m_listeners->
299  connector_[ON_BUFFER_EMPTY].notify(m_profile);
300  }
301 
309  inline void onBufferReadTimeout()
310  {
311  m_listeners->
312  connector_[ON_BUFFER_READ_TIMEOUT].notify(m_profile);
313  }
314 
322  inline void onSenderEmpty()
323  {
324  m_listeners->
325  connector_[ON_SENDER_EMPTY].notify(m_profile);
326  }
327 
335  inline void onSenderTimeout()
336  {
337  m_listeners->
338  connector_[ON_SENDER_TIMEOUT].notify(m_profile);
339  }
340 
348  inline void onSenderError()
349  {
350  m_listeners->
351  connector_[ON_SENDER_ERROR].notify(m_profile);
352  }
353 
354  private:
355  CdrBufferBase* m_buffer;
356  ::OpenRTM::OutPortCdr_var m_objref;
357  ConnectorListeners* m_listeners;
358  ConnectorInfo m_profile;
359  OutPortConnector* m_connector;
360  }; // class OutPortCorbaCdrProvider
361 }; // namespace RTC
362 
363 extern "C"
364 {
378  void OutPortCorbaCdrProviderInit(void);
379 };
380 
381 #ifdef WIN32
382 #pragma warning( default : 4290 )
383 #endif
384 
385 #endif // RTC_OUTPORTCORBACDRPROVIDER_H
Definition: ConnectorListener.h:622
ConnectorListeners クラス
Definition: ConnectorListener.h:1217
OutPortConnector 基底クラス
Definition: OutPortConnector.h:54
RTコンポーネント
OutPortCorbaCdrProvider(void)
コンストラクタ
Definition: ConnectorListener.h:623
ConnectorInfo クラス
Definition: ConnectorBase.h:43
void OutPortCorbaCdrProviderInit(void)
モジュール初期化関数
Enum
BufferStatus リターンコード
Definition: BufferStatus.h:84
-*- C++ -*-
Definition: ConnectorListener.h:624
Definition: ConnectorListener.h:145
Connector base class.
virtual void setBuffer(CdrBufferBase *buffer)
バッファをセットする
Buffer abstract class.
virtual void setListener(ConnectorInfo &info, ConnectorListeners *listeners)
リスナを設定する。
OutPortProvider class.
CORBA sequence utility template functions.
OutPortProvider.
Definition: OutPortProvider.h:189
Definition: ConnectorListener.h:144
virtual ~OutPortCorbaCdrProvider(void)
デストラクタ
Definition: ConnectorListener.h:621
プロパティセットを表現するクラス
Definition: Properties.h:101
Definition: ConnectorListener.h:620
virtual void setConnector(OutPortConnector *connector)
Connectorを設定する。
OutPortCorbaCdrProvider クラス
Definition: OutPortCorbaCdrProvider.h:61
BufferBase 抽象クラス
Definition: BufferBase.h:104
virtual void init(coil::Properties &prop)
設定初期化
connector listener class