OpenRTM-aist  1.2.1
OutPortCorbaCdrConsumer.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_OUTPORTCORBACDRCONSUMER_H
21 #define RTC_OUTPORTCORBACDRCONSUMER_H
22 
23 #include <rtm/idl/DataPortSkel.h>
24 #include <rtm/CorbaConsumer.h>
25 #include <rtm/OutPortConsumer.h>
26 #include <rtm/ConnectorListener.h>
27 #include <rtm/ConnectorBase.h>
28 
29 namespace RTC
30 {
56  : public OutPortConsumer,
57  public CorbaConsumer< ::OpenRTM::OutPortCdr >
58  {
59  public:
61 
76 
90  virtual ~OutPortCorbaCdrConsumer(void);
91 
119  virtual void init(coil::Properties& prop);
120 
146  virtual void setBuffer(CdrBufferBase* buffer);
147 
192  virtual void setListener(ConnectorInfo& info,
193  ConnectorListeners* listeners);
194 
216  virtual ReturnCode get(cdrMemoryStream& data);
217 
240  virtual bool subscribeInterface(const SDOPackage::NVList& properties);
241 
259  virtual void unsubscribeInterface(const SDOPackage::NVList& properties);
260 
261  private:
269  OutPortConsumer::ReturnCode convertReturn(::OpenRTM::PortStatus status,
270  cdrMemoryStream& data);
271 
281  inline void onBufferWrite(cdrMemoryStream& data)
282  {
283  m_listeners->
284  connectorData_[ON_BUFFER_WRITE].notify(m_profile, data);
285  }
286 
296  inline void onBufferFull(cdrMemoryStream& data)
297  {
298  m_listeners->
299  connectorData_[ON_BUFFER_FULL].notify(m_profile, data);
300  }
301 
311  inline void onReceived(cdrMemoryStream& data)
312  {
313  m_listeners->
314  connectorData_[ON_RECEIVED].notify(m_profile, data);
315  }
316 
326  inline void onReceiverFull(cdrMemoryStream& data)
327  {
328  m_listeners->
329  connectorData_[ON_RECEIVER_FULL].notify(m_profile, data);
330  }
331 
339  inline void onSenderEmpty()
340  {
341  m_listeners->
342  connector_[ON_SENDER_EMPTY].notify(m_profile);
343  }
344 
352  inline void onSenderTimeout()
353  {
354  m_listeners->
355  connector_[ON_SENDER_TIMEOUT].notify(m_profile);
356  }
357 
365  inline void onSenderError()
366  {
367  m_listeners->
368  connector_[ON_SENDER_ERROR].notify(m_profile);
369  }
370 
371  // RTC::OutPortCdr_var m_outport;
372  CdrBufferBase* m_buffer;
373  ConnectorListeners* m_listeners;
374  ConnectorInfo m_profile;
375  };
376 }; // namespace RTC
377 
378 extern "C"
379 {
393  void OutPortCorbaCdrConsumerInit(void);
394 };
395 
396 #endif // RTC_OUTPORTCORBACDRCONSUMER_H
Definition: ConnectorListener.h:622
ConnectorListeners class.
Definition: ConnectorListener.h:1217
Definition: ConnectorListener.h:147
CORBA Consumer class.
#define DATAPORTSTATUS_ENUM
Importing RTC::DataPortStatus macro.
Definition: DataPortStatus.h:233
RT-Component.
virtual bool subscribeInterface(const SDOPackage::NVList &properties)
Subscribe the data receive notification.
Definition: ConnectorListener.h:623
Definition: ConnectorListener.h:146
Definition: ConnectorBase.h:43
Definition: CorbaConsumer.h:338
OutPortConsumer class.
Definition: ConnectorListener.h:140
virtual void setBuffer(CdrBufferBase *buffer)
Setting outside buffer&#39;s pointer.
Definition: ConnectorListener.h:624
Connector base class.
void OutPortCorbaCdrConsumerInit(void)
Module initialization.
Definition: ConnectorListener.h:141
OutPortCorbaCdrConsumer class.
Definition: OutPortCorbaCdrConsumer.h:55
virtual ~OutPortCorbaCdrConsumer(void)
Destructor.
Class represents a set of properties.
Definition: Properties.h:101
virtual void unsubscribeInterface(const SDOPackage::NVList &properties)
Unsubscribe the data receive notification.
OutPortConsumer abstract class.
Definition: OutPortConsumer.h:171
virtual void init(coil::Properties &prop)
Initializing configuration.
virtual void setListener(ConnectorInfo &info, ConnectorListeners *listeners)
Set the listener.
BufferBase abstract class.
Definition: BufferBase.h:104
connector listener class
DATAPORTSTATUS_ENUM OutPortCorbaCdrConsumer()
Constructor.