OpenRTM-aist  2.1.0
InPortSHMConsumer.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_INPORTSHMCONSUMER_H
21 #define RTC_INPORTSHMCONSUMER_H
22 
23 
24 
25 #include <rtm/SharedMemoryPort.h>
26 #include <rtm/CorbaConsumer.h>
27 #include <rtm/InPortConsumer.h>
28 #include <rtm/Manager.h>
30 
31 namespace RTC
32 {
55  : public InPortConsumer,
56  public CorbaConsumer< ::OpenRTM::PortSharedMemory >
57  {
58  public:
77 
91  ~InPortSHMConsumer() override;
92 
111  void init(coil::Properties& prop) override;
130  DataPortStatus put(ByteData& data) override;
147  bool setObject(CORBA::Object_ptr obj) override;
148  void publishInterfaceProfile(SDOPackage::NVList& properties) override;
149  bool subscribeInterface(const SDOPackage::NVList& properties) override;
150  void unsubscribeInterface(const SDOPackage::NVList& properties) override;
151 
152 private:
153  bool subscribeFromIor(const SDOPackage::NVList& properties);
154  bool subscribeFromRef(const SDOPackage::NVList& properties);
155  bool unsubscribeFromIor(const SDOPackage::NVList& properties);
156  bool unsubscribeFromRef(const SDOPackage::NVList& properties);
157 
158 protected:
159  static DataPortStatus convertReturnCode(OpenRTM::PortStatus ret);
160 
162  std::mutex m_mutex;
163  std::string m_shm_address;
166  bool m_endian{true};
167  mutable Logger rtclog{"InPortSHMConsumer"};
168  };
169 } // namespace RTC
170 
171 extern "C"
172 {
187 }
188 
189 #endif // RTC_INPORTCORBACDRCONSUMER_H
190 
CORBA Consumer class.
InPortConsumer class.
InPortCorbaCdrConsumer class.
void InPortSHMConsumerInit(void)
Module initialization.
-*- C++ -*-
Shared Memory Port class.
DataPortStatus mixin class.
Definition: ConnectorListener.h:35
Definition: ByteData.h:30
Definition: CorbaConsumer.h:333
InPortConsumer abstract class.
Definition: InPortConsumer.h:78
InPortSHMConsumer class.
Definition: InPortSHMConsumer.h:57
std::string m_shm_address
Definition: InPortSHMConsumer.h:163
Logger rtclog
Definition: InPortSHMConsumer.h:167
coil::Properties m_properties
Definition: InPortSHMConsumer.h:161
DataPortStatus put(ByteData &data) override
Send data to the destination port.
std::mutex m_mutex
Definition: InPortSHMConsumer.h:162
void init(coil::Properties &prop) override
Initializing configuration.
static DataPortStatus convertReturnCode(OpenRTM::PortStatus ret)
InPortSHMConsumer()
Constructor.
~InPortSHMConsumer() override
Destructor.
int m_memory_size
Definition: InPortSHMConsumer.h:165
SharedMemoryPort m_shmem
Definition: InPortSHMConsumer.h:164
bool setObject(CORBA::Object_ptr obj) override
Set CORBA Object.
void publishInterfaceProfile(SDOPackage::NVList &properties) override
Publish InterfaceProfile information.
bool m_endian
Definition: InPortSHMConsumer.h:166
void unsubscribeInterface(const SDOPackage::NVList &properties) override
Unsubscribe the data send notification.
bool subscribeInterface(const SDOPackage::NVList &properties) override
Subscribe the data send notification.
Logger class.
Definition: SystemLogger.h:101
Definition: SharedMemoryPort.h:57
RT-Component.
coil::Properties Properties
Definition: RTC.h:72