OpenRTM-aist  2.1.0
InPortCorbaCdrProvider.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_INPORTCORBACDRPROVIDER_H
21 #define RTC_INPORTCORBACDRPROVIDER_H
22 
23 #include <rtm/idl/DataPort_OpenRTMSkel.h>
24 #include <rtm/BufferBase.h>
25 #include <rtm/InPortProvider.h>
26 #include <rtm/CORBA_SeqUtil.h>
27 #include <rtm/Manager.h>
28 #include <rtm/ConnectorListener.h>
29 #include <rtm/ConnectorBase.h>
30 
31 namespace RTC
32 {
58  : public InPortProvider,
59  public virtual POA_OpenRTM::InPortCdr,
60  public virtual PortableServer::RefCountServantBase
61  {
62  public:
77 
92 
120  void init(coil::Properties& prop) override;
121 
147  void setBuffer(BufferBase<ByteData>* buffer) override;
148 
198  ConnectorListenersBase* listeners) override;
199 
224  void setConnector(InPortConnector* connector) override;
225 
243  ::OpenRTM::PortStatus put(const ::OpenRTM::CdrData& data) override;
244 
245  private:
253  ::OpenRTM::PortStatus
254  convertReturn(BufferStatus status,
255  ByteData& data);
256 
257 
267  inline void onBufferWrite(ByteData& data)
268  {
269  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_WRITE, m_profile, data);
270  }
271 
281  inline void onBufferFull(ByteData& data)
282  {
283  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_FULL, m_profile, data);
284  }
285 
295  inline void onBufferWriteTimeout(ByteData& data)
296  {
297  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_WRITE_TIMEOUT, m_profile, data);
298  }
299 
309  inline void onBufferWriteOverwrite(ByteData& data)
310  {
311  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_OVERWRITE, m_profile, data);
312  }
313 
323  inline void onReceived(ByteData& data)
324  {
325  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVED, m_profile, data);
326  }
327 
337  inline void onReceiverFull(ByteData& data)
338  {
339  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_FULL, m_profile, data);
340  }
341 
349  inline void onReceiverTimeout(ByteData& data)
350  {
351  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_TIMEOUT, m_profile, data);
352  }
353 
361  inline void onReceiverError(ByteData& data)
362  {
363  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_ERROR, m_profile, data);
364  }
365 
366  private:
367  CdrBufferBase* m_buffer{nullptr};
368  ::OpenRTM::InPortCdr_var m_objref;
369  ConnectorListenersBase* m_listeners;
370  ConnectorInfo m_profile;
371  InPortConnector* m_connector{nullptr};
372  ByteData m_cdr;
373 
374  }; // class InPortCorbaCdrProvider
375 } // namespace RTC
376 
377 extern "C"
378 {
393 }
394 
395 #endif // RTC_INPORTCORBACDRPROVIDER_H
396 
Buffer abstract class.
CORBA sequence utility template functions.
Connector base class.
connector listener class
void InPortCorbaCdrProviderInit(void)
Module initialization.
InPortProvider class.
-*- C++ -*-
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 notifyIn(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
Notify listeners. (Typed data version)
InPortConnector base class.
Definition: InPortConnector.h:54
InPortCorbaCdrProvider class.
Definition: InPortCorbaCdrProvider.h:61
void setConnector(InPortConnector *connector) override
set Connector
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
Set the listener.
::OpenRTM::PortStatus put(const ::OpenRTM::CdrData &data) override
[CORBA interface] Write data into the buffer
InPortCorbaCdrProvider()
Constructor.
void setBuffer(BufferBase< ByteData > *buffer) override
Setting outside buffer's pointer.
void init(coil::Properties &prop) override
Initializing configuration.
~InPortCorbaCdrProvider() override
Destructor.
InPortProvider.
Definition: InPortProvider.h:191
RT-Component.
BufferBase< ByteData > CdrBufferBase
Definition: CdrBufferBase.h:31
coil::Properties Properties
Definition: RTC.h:72
BufferStatus
DataPortStatus return codes.
Definition: BufferStatus.h:57