OpenRTM-aist  1.2.1
OutPortSHMConsumer.h
Go to the documentation of this file.
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)
Module initialization.
ConnectorListeners class.
Definition: ConnectorListener.h:1217
Definition: ConnectorListener.h:147
CORBA Consumer class.
#define DATAPORTSTATUS_ENUM
Importing RTC::DataPortStatus macro.
Definition: DataPortStatus.h:233
ConnectorInfo m_profile
Definition: OutPortSHMConsumer.h:323
RT-Component.
ConnectorListeners * m_listeners
Definition: OutPortSHMConsumer.h:322
Mutex class.
Definition: Mutex.h:40
virtual bool setObject(CORBA::Object_ptr obj)
Set Object.
Definition: ConnectorListener.h:623
Definition: ConnectorListener.h:146
virtual bool subscribeInterface(const SDOPackage::NVList &properties)
Subscribe the data receive notification.
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)
Setting outside buffer&#39;s pointer.
coil::Mutex m_mutex
Definition: OutPortSHMConsumer.h:316
virtual void init(coil::Properties &prop)
Initializing configuration.
virtual void unsubscribeInterface(const SDOPackage::NVList &properties)
Unsubscribe the data receive notification.
Shared Memory Port class.
DATAPORTSTATUS_ENUM OutPortSHMConsumer()
Constructor.
Definition: ConnectorListener.h:624
OutPortSHMConsumer class.
Definition: OutPortSHMConsumer.h:51
Connector base class.
Definition: ConnectorListener.h:141
Logger class.
Definition: SystemLogger.h:99
virtual ~OutPortSHMConsumer()
Destructor.
Class represents a set of properties.
Definition: Properties.h:101
virtual void setListener(ConnectorInfo &info, ConnectorListeners *listeners)
Set the listener.
Logger rtclog
Definition: OutPortSHMConsumer.h:317
OutPortConsumer abstract class.
Definition: OutPortConsumer.h:171
CdrBufferBase * m_buffer
Definition: OutPortSHMConsumer.h:321
BufferBase abstract class.
Definition: BufferBase.h:104
connector listener class
Definition: SharedMemoryPort.h:52