OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
InPortConsumer.h
Go to the documentation of this file.
1// -*- C++ -*-
20#ifndef RTC_INPORTCONSUMER_H
21#define RTC_INPORTCONSUMER_H
22
23#include <coil/Factory.h>
24#include <rtm/DataPortStatus.h>
25#include <rtm/ByteData.h>
26
27namespace coil
28{
29 class Properties;
30} // namespace coil
31
32// Why RtORB does not allow forward declaration?
33#if !defined ORB_IS_RTORB && !defined ORB_IS_ORBEXPRESS
34namespace SDOPackage
35{
36 class NVList;
37} // namespace SDOPackage
38#endif // ORB_IS_RTORB
39
40
41
42namespace RTC
43{
78 {
79 public:
80
94 virtual ~InPortConsumer() = default;
95
110 virtual void init(coil::Properties& prop) = 0;
111
146 virtual DataPortStatus put(ByteData& data) = 0;
147
171 virtual void publishInterfaceProfile(SDOPackage::NVList& properties) = 0;
172
196 virtual bool subscribeInterface(const SDOPackage::NVList& properties) = 0;
197
215 virtual void unsubscribeInterface(const SDOPackage::NVList& properties) = 0;
216
225 {
226 explicit publishInterfaceProfileFunc(SDOPackage::NVList& prop)
227 : m_prop(prop) {}
229 {
231 }
232 SDOPackage::NVList& m_prop;
233 };
234
243 {
244 explicit subscribeInterfaceFunc(SDOPackage::NVList& prop)
245 : m_prop(prop) {}
247 {
248 return consumer->subscribeInterface(m_prop);
249 }
250 SDOPackage::NVList& m_prop;
251 };
252
253
254 };
255
256 using InPortConsumerFactory = ::coil::GlobalFactory<InPortConsumer>;
257} // namespace RTC
258
259#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
260EXTERN template class DLL_PLUGIN coil::GlobalFactory<RTC::InPortConsumer>;
261#elif defined(__GNUC__)
262EXTERN template class coil::GlobalFactory<RTC::InPortConsumer>;
263#endif
264
265#endif // RTC_INPORTCONSUMER_H
DataPortStatus class.
DataPortStatus mixin class.
Definition ByteData.h:30
InPortConsumer abstract class.
Definition InPortConsumer.h:78
virtual ~InPortConsumer()=default
Destructor.
virtual void publishInterfaceProfile(SDOPackage::NVList &properties)=0
Publish InterfaceProfile information.
virtual void unsubscribeInterface(const SDOPackage::NVList &properties)=0
Unsubscribe the data send notification.
virtual bool subscribeInterface(const SDOPackage::NVList &properties)=0
Subscribe the data send notification.
virtual void init(coil::Properties &prop)=0
Initializing configuration.
virtual DataPortStatus put(ByteData &data)=0
Send data to the destination port.
RT-Component.
::coil::GlobalFactory< InPortConsumer > InPortConsumerFactory
Definition InPortConsumer.h:256
coil::Properties Properties
Definition RTC.h:72
SDO Package.
Definition InPortConsumer.h:35
Definition DefaultPeriodicTask.h:24
Functor to publish interface profile .
Definition InPortConsumer.h:225
void operator()(InPortConsumer *consumer)
Definition InPortConsumer.h:228
publishInterfaceProfileFunc(SDOPackage::NVList &prop)
Definition InPortConsumer.h:226
SDOPackage::NVList & m_prop
Definition InPortConsumer.h:232
Functor to publish interface profile .
Definition InPortConsumer.h:243
SDOPackage::NVList & m_prop
Definition InPortConsumer.h:250
bool operator()(InPortConsumer *consumer)
Definition InPortConsumer.h:246
subscribeInterfaceFunc(SDOPackage::NVList &prop)
Definition InPortConsumer.h:244