OpenRTM-aist  1.2.1
OutPortCorbaCdrProvider.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_OUTPORTCORBACDRPROVIDER_H
21 #define RTC_OUTPORTCORBACDRPROVIDER_H
22 
23 #include <rtm/idl/DataPortSkel.h>
24 #include <rtm/BufferBase.h>
25 #include <rtm/OutPortProvider.h>
26 #include <rtm/CORBA_SeqUtil.h>
27 #include <rtm/Manager.h>
28 #include <rtm/ConnectorListener.h>
29 #include <rtm/ConnectorBase.h>
30 
31 #ifdef WIN32
32 #pragma warning( disable : 4290 )
33 #endif
34 
35 namespace RTC
36 {
62  : public OutPortProvider,
63  public virtual ::POA_OpenRTM::OutPortCdr,
64  public virtual PortableServer::RefCountServantBase
65  {
66  public:
81 
95  virtual ~OutPortCorbaCdrProvider(void);
96 
124  virtual void init(coil::Properties& prop);
125 
151  virtual void setBuffer(CdrBufferBase* buffer);
152 
197  virtual void setListener(ConnectorInfo& info,
198  ConnectorListeners* listeners);
199 
224  virtual void setConnector(OutPortConnector* connector);
225 
243  virtual ::OpenRTM::PortStatus get(::OpenRTM::CdrData_out data)
244  throw (CORBA::SystemException);
245 
246 
247  private:
255  ::OpenRTM::PortStatus convertReturn(BufferStatus::Enum status,
256  cdrMemoryStream& data);
257 
258 
268  inline void onBufferRead(cdrMemoryStream& data)
269  {
270  m_listeners->
271  connectorData_[ON_BUFFER_READ].notify(m_profile, data);
272  }
273 
283  inline void onSend(cdrMemoryStream& data)
284  {
285  m_listeners->
286  connectorData_[ON_SEND].notify(m_profile, data);
287  }
288 
296  inline void onBufferEmpty()
297  {
298  m_listeners->
299  connector_[ON_BUFFER_EMPTY].notify(m_profile);
300  }
301 
309  inline void onBufferReadTimeout()
310  {
311  m_listeners->
312  connector_[ON_BUFFER_READ_TIMEOUT].notify(m_profile);
313  }
314 
322  inline void onSenderEmpty()
323  {
324  m_listeners->
325  connector_[ON_SENDER_EMPTY].notify(m_profile);
326  }
327 
335  inline void onSenderTimeout()
336  {
337  m_listeners->
338  connector_[ON_SENDER_TIMEOUT].notify(m_profile);
339  }
340 
348  inline void onSenderError()
349  {
350  m_listeners->
351  connector_[ON_SENDER_ERROR].notify(m_profile);
352  }
353 
354  private:
355  CdrBufferBase* m_buffer;
356  ::OpenRTM::OutPortCdr_var m_objref;
357  ConnectorListeners* m_listeners;
358  ConnectorInfo m_profile;
359  OutPortConnector* m_connector;
360  }; // class OutPortCorbaCdrProvider
361 }; // namespace RTC
362 
363 extern "C"
364 {
378  void OutPortCorbaCdrProviderInit(void);
379 };
380 
381 #ifdef WIN32
382 #pragma warning( default : 4290 )
383 #endif
384 
385 #endif // RTC_OUTPORTCORBACDRPROVIDER_H
Definition: ConnectorListener.h:622
ConnectorListeners class.
Definition: ConnectorListener.h:1217
OutPortConnector base class.
Definition: OutPortConnector.h:54
RT-Component.
OutPortCorbaCdrProvider(void)
Constructor.
Definition: ConnectorListener.h:623
Definition: ConnectorBase.h:43
void OutPortCorbaCdrProviderInit(void)
Module initialization.
Enum
DataPortStatus return codes.
Definition: BufferStatus.h:84
-*- C++ -*-
Definition: ConnectorListener.h:624
Definition: ConnectorListener.h:145
Connector base class.
virtual void setBuffer(CdrBufferBase *buffer)
Setting outside buffer&#39;s pointer.
Buffer abstract class.
virtual void setListener(ConnectorInfo &info, ConnectorListeners *listeners)
Set the listener.
OutPortProvider class.
CORBA sequence utility template functions.
OutPortProvider.
Definition: OutPortProvider.h:189
Definition: ConnectorListener.h:144
virtual ~OutPortCorbaCdrProvider(void)
Destructor.
Definition: ConnectorListener.h:621
Class represents a set of properties.
Definition: Properties.h:101
Definition: ConnectorListener.h:620
virtual void setConnector(OutPortConnector *connector)
set Connector
OutPortCorbaCdrProvider class.
Definition: OutPortCorbaCdrProvider.h:61
BufferBase abstract class.
Definition: BufferBase.h:104
virtual void init(coil::Properties &prop)
Initializing configuration.
connector listener class