OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
OutPortConsumer.h
Go to the documentation of this file.
1// -*- C++ -*-
20#ifndef RTC_OUTPORTCONSUMER_H
21#define RTC_OUTPORTCONSUMER_H
22
23#include <coil/Factory.h>
24#include <rtm/DataPortStatus.h>
25#include <rtm/CdrBufferBase.h>
26#include <rtm/SystemLogger.h>
27
28// Why RtORB does not allow the following foward declaration?
29#if !defined(ORB_IS_RTORB) && !defined(ORB_IS_ORBEXPRESS)
30namespace SDOPackage
31{
32 class NVList;
33} // namespace SDOPackage
34#endif // ORB_IS_RTORB
35
36namespace coil
37{
38 class Properties;
39} // namespace coil
40
41namespace RTC
42{
43 class ConnectorListenersBase;
44 class ConnectorInfo;
45
173 {
174 public:
175
190 virtual ~OutPortConsumer() = default;
191
219 virtual void init(coil::Properties& prop) = 0;
220
246 virtual void setBuffer(CdrBufferBase* buffer) = 0;
247
278 virtual void setListener(ConnectorInfo& info,
279 ConnectorListenersBase* listeners) = 0;
280
307 virtual DataPortStatus get(ByteData& data) = 0;
308
334 virtual bool subscribeInterface(const SDOPackage::NVList& properties) = 0;
335
359 virtual void unsubscribeInterface(const SDOPackage::NVList& properties) = 0;
360
361 protected:
369 mutable Logger rtclog;
370
379 {
380 explicit subscribe(const SDOPackage::NVList& prop) : m_prop(prop) {}
382 {
383 consumer->subscribeInterface(m_prop);
384 }
385 const SDOPackage::NVList& m_prop;
386 };
387
396 {
397 explicit unsubscribe(const SDOPackage::NVList& prop) : m_prop(prop) {}
399 {
400 consumer->unsubscribeInterface(m_prop);
401 }
402 const SDOPackage::NVList& m_prop;
403 };
404 };
405
413 using OutPortConsumerFactory = ::coil::GlobalFactory<OutPortConsumer>;
414} // namespace RTC
415
416
417#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
418EXTERN template class DLL_PLUGIN coil::GlobalFactory<RTC::OutPortConsumer>;
419#elif defined(__GNUC__)
420EXTERN template class coil::GlobalFactory<RTC::OutPortConsumer>;
421#endif
422
423#endif // RTC_OUTPORTCONSUMER_H
424
DataPortStatus class.
RT component logger class.
DataPortStatus mixin class.
BufferBase abstract class.
Definition BufferBase.h:106
Definition ByteData.h:30
ConnectorInfo class.
Definition ConnectorBase.h:50
Definition ConnectorListener.h:1354
Logger class.
Definition SystemLogger.h:101
OutPortConsumer abstract class.
Definition OutPortConsumer.h:173
virtual void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners)=0
Set the listener.
virtual void setBuffer(CdrBufferBase *buffer)=0
Setting outside buffer's pointer.
Logger rtclog
Logger stream .
Definition OutPortConsumer.h:369
virtual void unsubscribeInterface(const SDOPackage::NVList &properties)=0
Unsubscribe the data receive notification.
virtual bool subscribeInterface(const SDOPackage::NVList &properties)=0
Subscribe the data receive notification.
virtual DataPortStatus get(ByteData &data)=0
Receive data.
virtual void init(coil::Properties &prop)=0
Initializing configuration.
virtual ~OutPortConsumer()=default
Destructor.
RT-Component.
::coil::GlobalFactory< OutPortConsumer > OutPortConsumerFactory
OutPortConsumerFactory type definition .
Definition OutPortConsumer.h:413
coil::Properties Properties
Definition RTC.h:72
SDO Package.
Definition InPortConsumer.h:35
Definition DefaultPeriodicTask.h:24
Functor to subscribe the interface .
Definition OutPortConsumer.h:379
void operator()(OutPortConsumer *consumer)
Definition OutPortConsumer.h:381
subscribe(const SDOPackage::NVList &prop)
Definition OutPortConsumer.h:380
const SDOPackage::NVList & m_prop
Definition OutPortConsumer.h:385
Functor to unsubscribe the interface .
Definition OutPortConsumer.h:396
unsubscribe(const SDOPackage::NVList &prop)
Definition OutPortConsumer.h:397
const SDOPackage::NVList & m_prop
Definition OutPortConsumer.h:402
void operator()(OutPortConsumer *consumer)
Definition OutPortConsumer.h:398