OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
InPortProvider.h
Go to the documentation of this file.
1// -*- C++ -*-
20#ifndef RTC_INPORTPROVIDER_H
21#define RTC_INPORTPROVIDER_H
22
23#include <coil/Factory.h>
24
25#include <rtm/BufferBase.h>
26#include <rtm/NVUtil.h>
27#include <rtm/SystemLogger.h>
28#include <rtm/DataPortStatus.h>
29#include <rtm/InPortConnector.h>
30
31#include <string>
32
33namespace RTC
34{
35 class ConnectorListeners;
36 class ConnectorInfo;
37
191 {
192 public:
207
222
250 virtual void init(coil::Properties& prop) = 0;
251
277 virtual void setBuffer(BufferBase<ByteData>* buffer) = 0;
278
309 virtual void setListener(ConnectorInfo& info,
310 ConnectorListenersBase* listeners) = 0;
311
336 virtual void setConnector(InPortConnector* connector) = 0;
337
361 virtual void publishInterfaceProfile(SDOPackage::NVList& prop);
362
390 virtual bool publishInterface(SDOPackage::NVList& prop);
391
392 protected:
410 void setInterfaceType(const char* interface_type);
411
429 void setDataFlowType(const char* dataflow_type);
430
448 void setSubscriptionType(const char* subs_type);
449
450
451 protected:
459 SDOPackage::NVList m_properties;
460
468 mutable Logger rtclog;
469
470 private:
471 std::string m_interfaceType;
472 std::string m_dataflowType;
473 std::string m_subscriptionType;
474
475 public:
476 // functors
485 {
486 explicit publishInterfaceProfileFunc(SDOPackage::NVList& prop)
487 : m_prop(prop) {}
489 {
491 }
492 SDOPackage::NVList& m_prop;
493 };
494
503 {
504 explicit publishInterfaceFunc(SDOPackage::NVList& prop)
505 : m_prop(prop), provider_(nullptr) {}
507 {
508 if (provider->publishInterface(m_prop))
509 {
510 provider_ = provider;
511 }
512 }
513 SDOPackage::NVList& m_prop;
515 };
516
517
518 };
519
527 using InPortProviderFactory = ::coil::GlobalFactory<InPortProvider>;
528} // namespace RTC
529
530#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
531EXTERN template class DLL_PLUGIN coil::GlobalFactory<RTC::InPortProvider>;
532#elif defined(__GNUC__)
533EXTERN template class coil::GlobalFactory<RTC::InPortProvider>;
534#endif
535
536#endif // RTC_INPORTPROVIDER_H
Buffer abstract class.
DataPortStatus class.
InPortConnector base class.
NameValue and NVList utility functions.
RT component logger class.
BufferBase abstract class.
Definition BufferBase.h:106
ConnectorInfo class.
Definition ConnectorBase.h:50
Definition ConnectorListener.h:1354
InPortConnector base class.
Definition InPortConnector.h:54
InPortProvider.
Definition InPortProvider.h:191
void setDataFlowType(const char *dataflow_type)
Set the dataflow type.
SDOPackage::NVList m_properties
Properties to hold port profile .
Definition InPortProvider.h:459
virtual void setConnector(InPortConnector *connector)=0
set Connector
virtual void setBuffer(BufferBase< ByteData > *buffer)=0
Setting outside buffer's pointer.
void setInterfaceType(const char *interface_type)
Set the interface type.
virtual ~InPortProvider()
Destructor.
virtual void init(coil::Properties &prop)=0
Initializing configuration.
Logger rtclog
Logger stream .
Definition InPortProvider.h:468
virtual bool publishInterface(SDOPackage::NVList &prop)
Publish interface information.
virtual void publishInterfaceProfile(SDOPackage::NVList &prop)
Publish InterfaceProfile information.
void setSubscriptionType(const char *subs_type)
Set the subscription type.
InPortProvider()
Constructor.
virtual void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners)=0
Set the listener.
Logger class.
Definition SystemLogger.h:101
RT-Component.
::coil::GlobalFactory< InPortProvider > InPortProviderFactory
InPortProviderFactory type definition .
Definition InPortProvider.h:527
Functor to publish interface profile .
Definition InPortProvider.h:503
void operator()(InPortProvider *provider)
Definition InPortProvider.h:506
publishInterfaceFunc(SDOPackage::NVList &prop)
Definition InPortProvider.h:504
InPortProvider * provider_
Definition InPortProvider.h:514
SDOPackage::NVList & m_prop
Definition InPortProvider.h:513
Functor to publish interface profile .
Definition InPortProvider.h:485
SDOPackage::NVList & m_prop
Definition InPortProvider.h:492
publishInterfaceProfileFunc(SDOPackage::NVList &prop)
Definition InPortProvider.h:486
void operator()(InPortProvider *provider)
Definition InPortProvider.h:488