OpenRTM-aist  1.2.1
OutPortSHMConsumer.h
[詳解]
1 // -*- C++ -*-
19 #ifndef RTC_OUTPORTSHMCONSUMER_H
20 #define RTC_OUTPORTSHMCONSUMER_H
21 
22 #include <rtm/SharedMemoryPort.h>
23 #include <rtm/CorbaConsumer.h>
24 #include <rtm/OutPortConsumer.h>
25 #include <rtm/ConnectorListener.h>
26 #include <rtm/ConnectorBase.h>
27 
28 namespace RTC
29 {
52  : public OutPortConsumer,
53  public CorbaConsumer< ::OpenRTM::PortSharedMemory >
54  {
56  public:
58 
73 
87  virtual ~OutPortSHMConsumer();
88 
103  virtual void init(coil::Properties& prop);
104 
118  virtual void setBuffer(CdrBufferBase* buffer);
119 
135  virtual void setListener(ConnectorInfo& info,
136  ConnectorListeners* listeners);
137 
159  virtual ReturnCode get(cdrMemoryStream& data);
160 
183  virtual bool subscribeInterface(const SDOPackage::NVList& properties);
184 
202  virtual void unsubscribeInterface(const SDOPackage::NVList& properties);
203  virtual bool setObject(CORBA::Object_ptr obj);
204 
205  private:
213  OutPortConsumer::ReturnCode convertReturn(::OpenRTM::PortStatus status,
214  cdrMemoryStream& data);
215 
225  inline void onBufferWrite(cdrMemoryStream& data)
226  {
227  m_listeners->
228  connectorData_[ON_BUFFER_WRITE].notify(m_profile, data);
229  }
230 
240  inline void onBufferFull(cdrMemoryStream& data)
241  {
242  m_listeners->
243  connectorData_[ON_BUFFER_FULL].notify(m_profile, data);
244  }
245 
255  inline void onReceived(cdrMemoryStream& data)
256  {
257  m_listeners->
258  connectorData_[ON_RECEIVED].notify(m_profile, data);
259  }
260 
270  inline void onReceiverFull(cdrMemoryStream& data)
271  {
272  m_listeners->
273  connectorData_[ON_RECEIVER_FULL].notify(m_profile, data);
274  }
275 
283  inline void onSenderEmpty()
284  {
285  m_listeners->
286  connector_[ON_SENDER_EMPTY].notify(m_profile);
287  }
288 
296  inline void onSenderTimeout()
297  {
298  m_listeners->
299  connector_[ON_SENDER_TIMEOUT].notify(m_profile);
300  }
301 
309  inline void onSenderError()
310  {
311  m_listeners->
312  connector_[ON_SENDER_ERROR].notify(m_profile);
313  }
314 protected:
315  // RTC::OutPortCdr_var m_outport;
317  mutable Logger rtclog;
318 
320 
324  };
325 }; // namespace RTC
326 
327 extern "C"
328 {
342  void OutPortSHMConsumerInit(void);
343 };
344 
345 #endif // RTC_OUTPORTSHMCONSUMER_H
Definition: ConnectorListener.h:622
void OutPortSHMConsumerInit(void)
モジュール初期化関数
ConnectorListeners クラス
Definition: ConnectorListener.h:1217
Definition: ConnectorListener.h:147
CORBA Consumer class.
#define DATAPORTSTATUS_ENUM
RTC::DataPortStatus 導入
Definition: DataPortStatus.h:233
ConnectorInfo m_profile
Definition: OutPortSHMConsumer.h:323
RTコンポーネント
ConnectorListeners * m_listeners
Definition: OutPortSHMConsumer.h:322
Mutex クラス
Definition: Mutex.h:40
virtual bool setObject(CORBA::Object_ptr obj)
オブジェクトをセットする
Definition: ConnectorListener.h:623
Definition: ConnectorListener.h:146
virtual bool subscribeInterface(const SDOPackage::NVList &properties)
データ受信通知への登録
ConnectorInfo クラス
Definition: ConnectorBase.h:43
SharedMemoryPort m_shmem
Definition: OutPortSHMConsumer.h:319
オブジェクトリファレンスを保持するプレースホルダテンプレートクラス
Definition: CorbaConsumer.h:338
OutPortConsumer class.
Definition: ConnectorListener.h:140
virtual void setBuffer(CdrBufferBase *buffer)
バッファをセットする
coil::Mutex m_mutex
Definition: OutPortSHMConsumer.h:316
virtual void init(coil::Properties &prop)
設定初期化
virtual void unsubscribeInterface(const SDOPackage::NVList &properties)
データ受信通知からの登録解除
Shared Memory Port class.
DATAPORTSTATUS_ENUM OutPortSHMConsumer()
コンストラクタ
Definition: ConnectorListener.h:624
OutPortSHMConsumer クラス
Definition: OutPortSHMConsumer.h:51
Connector base class.
Definition: ConnectorListener.h:141
Logger クラス
Definition: SystemLogger.h:99
virtual ~OutPortSHMConsumer()
デストラクタ
プロパティセットを表現するクラス
Definition: Properties.h:101
virtual void setListener(ConnectorInfo &info, ConnectorListeners *listeners)
リスナを設定する。
Logger rtclog
Definition: OutPortSHMConsumer.h:317
OutPortConsumer 抽象クラス
Definition: OutPortConsumer.h:171
CdrBufferBase * m_buffer
Definition: OutPortSHMConsumer.h:321
BufferBase 抽象クラス
Definition: BufferBase.h:104
connector listener class
SharedMemory クラス
Definition: SharedMemoryPort.h:52