OpenRTM-aist  1.2.1
InPortSHMProvider.h
Go to the documentation of this file.
1 // -*- C++ -*-
18 #ifndef RTC_INPORTSHMPROVIDER_H
19 #define RTC_INPORTSHMPROVIDER_H
20 
21 #include <rtm/SharedMemoryPort.h>
22 #include <rtm/BufferBase.h>
23 #include <rtm/InPortProvider.h>
24 #include <rtm/CORBA_SeqUtil.h>
25 #include <rtm/Manager.h>
26 #include <rtm/ConnectorListener.h>
27 #include <rtm/ConnectorBase.h>
28 
29 #ifdef WIN32
30 #pragma warning( disable : 4290 )
31 #endif
32 
33 namespace RTC
34 {
57  : public InPortProvider,
58  public virtual SharedMemoryPort
59  {
60  public:
75 
89  virtual ~InPortSHMProvider();
90 
107  virtual void init(coil::Properties& prop);
108 
124  virtual void setBuffer(BufferBase<cdrMemoryStream>* buffer);
125 
146  virtual void setListener(ConnectorInfo& info,
147  ConnectorListeners* listeners);
165  virtual void setConnector(InPortConnector* connector);
166 
184  virtual ::OpenRTM::PortStatus put()
185  throw (CORBA::SystemException);
186 
187  private:
188 
189  ::OpenRTM::PortStatus
190  convertReturn(BufferStatus::Enum status,
191  cdrMemoryStream& data);
192 
193 
194  inline void onBufferWrite(cdrMemoryStream& data)
195  {
196  m_listeners->
197  connectorData_[ON_BUFFER_WRITE].notify(m_profile, data);
198  }
199 
200  inline void onBufferFull(cdrMemoryStream& data)
201  {
202  m_listeners->
203  connectorData_[ON_BUFFER_FULL].notify(m_profile, data);
204  }
205 
206  inline void onBufferWriteTimeout(cdrMemoryStream& data)
207  {
208  m_listeners->
209  connectorData_[ON_BUFFER_WRITE_TIMEOUT].notify(m_profile, data);
210  }
211 
212  inline void onBufferWriteOverwrite(cdrMemoryStream& data)
213  {
214  m_listeners->
215  connectorData_[ON_BUFFER_OVERWRITE].notify(m_profile, data);
216  }
217 
218  inline void onReceived(cdrMemoryStream& data)
219  {
220  m_listeners->
221  connectorData_[ON_RECEIVED].notify(m_profile, data);
222  }
223 
224  inline void onReceiverFull(cdrMemoryStream& data)
225  {
226  m_listeners->
227  connectorData_[ON_RECEIVER_FULL].notify(m_profile, data);
228  }
229 
230  inline void onReceiverTimeout(cdrMemoryStream& data)
231  {
232  m_listeners->
233  connectorData_[ON_RECEIVER_TIMEOUT].notify(m_profile, data);
234  }
235 
236  inline void onReceiverError(cdrMemoryStream& data)
237  {
238  m_listeners->
239  connectorData_[ON_RECEIVER_ERROR].notify(m_profile, data);
240  }
241 
242  private:
243  mutable Logger rtclog;
244 
245  InPortConnector* m_connector;
246  CdrBufferBase* m_buffer;
247  ConnectorListeners* m_listeners;
248  ConnectorInfo m_profile;
249 
250  ::OpenRTM::PortSharedMemory_var m_objref;
251 
252  }; // class InPortCorCdrbaProvider
253 }; // namespace RTC
254 
255 extern "C"
256 {
270  void InPortSHMProviderInit();
271 };
272 
273 #ifdef WIN32
274 #pragma warning( default : 4290 )
275 #endif
276 
277 #endif // RTC_INPORTCORBACDRPROVIDER_H
278 
ConnectorListeners class.
Definition: ConnectorListener.h:1217
Definition: ConnectorListener.h:147
InPortConnector base class.
Definition: InPortConnector.h:51
InPortProvider class.
RT-Component.
virtual ::OpenRTM::PortStatus put()
[CORBA interface] Write data into the buffer
Definition: ConnectorListener.h:146
Definition: ConnectorBase.h:43
InPortSHMProvider class.
Definition: InPortSHMProvider.h:56
void InPortSHMProviderInit()
Module initialization.
Definition: ConnectorListener.h:140
virtual void setConnector(InPortConnector *connector)
set Connector
Enum
DataPortStatus return codes.
Definition: BufferStatus.h:84
InPortProvider.
Definition: InPortProvider.h:190
Shared Memory Port class.
-*- C++ -*-
virtual void init(coil::Properties &prop)
Initializing configuration.
virtual void setListener(ConnectorInfo &info, ConnectorListeners *listeners)
Set the listener.
Connector base class.
Definition: ConnectorListener.h:142
Buffer abstract class.
CORBA sequence utility template functions.
Definition: ConnectorListener.h:141
Logger class.
Definition: SystemLogger.h:99
Definition: ConnectorListener.h:143
Class represents a set of properties.
Definition: Properties.h:101
Definition: ConnectorListener.h:149
virtual ~InPortSHMProvider()
Destructor.
InPortSHMProvider()
Constructor.
virtual void setBuffer(BufferBase< cdrMemoryStream > *buffer)
Setting outside buffer&#39;s pointer.
BufferBase abstract class.
Definition: BufferBase.h:104
connector listener class
Definition: SharedMemoryPort.h:52
Definition: ConnectorListener.h:148