OpenRTM-aist  2.1.0
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  {
55  public:
56 
71 
85  ~OutPortSHMConsumer() override;
86 
105  void init(coil::Properties& prop) override;
106 
124  void setBuffer(CdrBufferBase* buffer) override;
125 
146  ConnectorListenersBase* listeners) override;
147 
169  DataPortStatus get(ByteData& data) override;
170 
193  bool subscribeInterface(const SDOPackage::NVList& properties) override;
194 
212  void unsubscribeInterface(const SDOPackage::NVList& properties) override;
213  bool setObject(CORBA::Object_ptr obj) override;
214 
215  private:
223  DataPortStatus convertReturn(::OpenRTM::PortStatus status,
224  ByteData& data);
225 
235  inline void onBufferWrite(ByteData& data)
236  {
238  }
239 
249  inline void onBufferFull(ByteData& data)
250  {
252  }
253 
263  inline void onReceived(ByteData& data)
264  {
266  }
267 
277  inline void onReceiverFull(ByteData& data)
278  {
280  }
281 
289  inline void onSenderEmpty()
290  {
292  }
293 
301  inline void onSenderTimeout()
302  {
304  }
305 
313  inline void onSenderError()
314  {
316  }
317 protected:
318  mutable Logger rtclog;
320  std::mutex m_mutex;
321  std::string m_shm_address;
324  bool m_endian;
325 
329  };
330 } // namespace RTC
331 
332 extern "C"
333 {
348 }
349 
350 #endif // RTC_OUTPORTSHMCONSUMER_H
Connector base class.
connector listener class
CORBA Consumer class.
OutPortConsumer class.
void OutPortSHMConsumerInit(void)
Module initialization.
Shared Memory Port class.
DataPortStatus mixin class.
Definition: ConnectorListener.h:35
BufferBase abstract class.
Definition: BufferBase.h:106
Definition: ByteData.h:30
ConnectorInfo class.
Definition: ConnectorBase.h:50
Definition: ConnectorListener.h:1354
virtual ::RTC::ConnectorListenerStatus::Enum notify(ConnectorListenerType type, ConnectorInfo &info)=0
Virtual Callback method.
virtual ::RTC::ConnectorListenerStatus::Enum notifyIn(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
Notify listeners. (Typed data version)
Definition: CorbaConsumer.h:333
Logger class.
Definition: SystemLogger.h:101
OutPortConsumer abstract class.
Definition: OutPortConsumer.h:173
OutPortSHMConsumer class.
Definition: OutPortSHMConsumer.h:54
~OutPortSHMConsumer() override
Destructor.
int m_memory_size
Definition: OutPortSHMConsumer.h:323
std::mutex m_mutex
Definition: OutPortSHMConsumer.h:320
DataPortStatus get(ByteData &data) override
Read data.
SharedMemoryPort m_shmem
Definition: OutPortSHMConsumer.h:322
coil::Properties m_properties
Definition: OutPortSHMConsumer.h:319
void setBuffer(CdrBufferBase *buffer) override
Setting outside buffer's pointer.
ConnectorInfo m_profile
Definition: OutPortSHMConsumer.h:328
void init(coil::Properties &prop) override
Initializing configuration.
void unsubscribeInterface(const SDOPackage::NVList &properties) override
Unsubscribe the data receive notification.
bool setObject(CORBA::Object_ptr obj) override
Set CORBA Object.
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
Set the listener.
Logger rtclog
Definition: OutPortSHMConsumer.h:318
OutPortSHMConsumer()
Constructor.
bool m_endian
Definition: OutPortSHMConsumer.h:324
ConnectorListenersBase * m_listeners
Definition: OutPortSHMConsumer.h:327
std::string m_shm_address
Definition: OutPortSHMConsumer.h:321
CdrBufferBase * m_buffer
Definition: OutPortSHMConsumer.h:326
bool subscribeInterface(const SDOPackage::NVList &properties) override
Subscribe the data receive notification.
Definition: SharedMemoryPort.h:57
RT-Component.
coil::Properties Properties
Definition: RTC.h:72