OpenRTM-aist  2.1.0
InPortDirectProvider.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_INPORTDIRECTPROVIDER_H
21 #define RTC_INPORTDIRECTPROVIDER_H
22 
23 #include <rtm/BufferBase.h>
24 #include <rtm/InPortProvider.h>
25 #include <rtm/Manager.h>
26 #include <rtm/ConnectorListener.h>
27 #include <rtm/ConnectorBase.h>
28 
29 namespace RTC
30 {
56  : public InPortProvider
57  {
58  public:
73 
88 
116  void init(coil::Properties& prop) override;
117 
143  void setBuffer(BufferBase<ByteData>* buffer) override;
144 
194  ConnectorListenersBase* listeners) override;
195 
220  void setConnector(InPortConnector* connector) override;
221 
222  private:
232  inline void onBufferWrite(ByteData& data)
233  {
234  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_WRITE, m_profile, data);
235  }
236 
246  inline void onBufferFull(ByteData& data)
247  {
248  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_FULL, m_profile, data);
249  }
250 
260  inline void onBufferWriteTimeout(ByteData& data)
261  {
262  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_WRITE_TIMEOUT, m_profile, data);
263  }
264 
274  inline void onBufferWriteOverwrite(ByteData& data)
275  {
276  m_listeners->notifyIn(ConnectorDataListenerType::ON_BUFFER_OVERWRITE, m_profile, data);
277  }
278 
288  inline void onReceived(ByteData& data)
289  {
290  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVED, m_profile, data);
291  }
292 
302  inline void onReceiverFull(ByteData& data)
303  {
304  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_FULL, m_profile, data);
305  }
306 
314  inline void onReceiverTimeout(ByteData& data)
315  {
316  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_TIMEOUT, m_profile, data);
317  }
318 
326  inline void onReceiverError(ByteData& data)
327  {
328  m_listeners->notifyIn(ConnectorDataListenerType::ON_RECEIVER_ERROR, m_profile, data);
329  }
330 
331  private:
332  CdrBufferBase* m_buffer{nullptr};
333  ConnectorListenersBase* m_listeners;
334  ConnectorInfo m_profile;
335  InPortConnector* m_connector;
336 
337  }; // class InPortCorCdrbaProvider
338 } // namespace RTC
339 
340 extern "C"
341 {
356 }
357 
358 #endif // RTC_INPORTDIRECTPROVIDER_H
359 
Buffer abstract class.
Connector base class.
connector listener class
void InPortDirectProviderInit(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
InPortDirectProvider class.
Definition: InPortDirectProvider.h:57
InPortDirectProvider()
Constructor.
void setConnector(InPortConnector *connector) override
set Connector
void init(coil::Properties &prop) override
Initializing configuration.
~InPortDirectProvider() override
Destructor.
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
Set the listener.
void setBuffer(BufferBase< ByteData > *buffer) override
Setting outside buffer's pointer.
InPortProvider.
Definition: InPortProvider.h:191
RT-Component.
BufferBase< ByteData > CdrBufferBase
Definition: CdrBufferBase.h:31
coil::Properties Properties
Definition: RTC.h:72