OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
OutPortProvider.h
Go to the documentation of this file.
1// -*- C++ -*-
20#ifndef RTC_OUTPORTPROVIDER_H
21#define RTC_OUTPORTPROVIDER_H
22
23#include <coil/Factory.h>
24#include <rtm/BufferBase.h>
25#include <rtm/NVUtil.h>
26#include <rtm/SystemLogger.h>
27#include <rtm/DataPortStatus.h>
29
30#include <string>
31
32namespace RTC
33{
34 class ConnectorListeners;
190 {
191 public:
206
234 virtual void init(coil::Properties& prop);
235
261 virtual void setBuffer(CdrBufferBase* buffer) = 0;
262
293 virtual void setListener(ConnectorInfo& info,
294 ConnectorListenersBase* listeners) = 0;
295
320 virtual void setConnector(OutPortConnector* connector) = 0;
321
345 virtual void publishInterfaceProfile(SDOPackage::NVList& prop);
346
374 virtual bool publishInterface(SDOPackage::NVList& prop);
375
376 protected:
394 void setPortType(const char* port_type);
395
413 void setDataType(const char* data_type);
414
432 void setInterfaceType(const char* interface_type);
433
451 void setDataFlowType(const char* dataflow_type);
452
470 void setSubscriptionType(const char* subs_type);
471
472 protected:
480 SDOPackage::NVList m_properties;
488 mutable Logger rtclog;
489
490 private:
491 std::string m_portType;
492 std::string m_dataType;
493 std::string m_interfaceType;
494 std::string m_dataflowType;
495 std::string m_subscriptionType;
496
497
498 public:
507 {
508 explicit publishInterfaceProfileFunc(SDOPackage::NVList& prop)
509 : m_prop(prop) {}
511 {
513 }
514 SDOPackage::NVList& m_prop;
515 };
516
525 {
526 explicit publishInterfaceFunc(SDOPackage::NVList& prop)
527 : m_prop(prop), provider_(nullptr) {}
529 {
530 if (provider->publishInterface(m_prop))
531 {
532 provider_ = provider;
533 }
534 }
535 SDOPackage::NVList& m_prop;
537 };
538 };
539
547 using OutPortProviderFactory = ::coil::GlobalFactory<OutPortProvider>;
548} // namespace RTC
549
550#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
551EXTERN template class DLL_PLUGIN coil::GlobalFactory<RTC::OutPortProvider>;
552#elif defined(__GNUC__)
553EXTERN template class coil::GlobalFactory<RTC::OutPortProvider>;
554#endif
555
556#endif // RTC_OUTPORTPROVIDER_H
Buffer abstract class.
DataPortStatus class.
NameValue and NVList utility functions.
OutPortConnector class.
RT component logger class.
BufferBase abstract class.
Definition BufferBase.h:106
ConnectorInfo class.
Definition ConnectorBase.h:50
Definition ConnectorListener.h:1354
Logger class.
Definition SystemLogger.h:101
OutPortConnector base class.
Definition OutPortConnector.h:58
OutPortProvider.
Definition OutPortProvider.h:190
SDOPackage::NVList m_properties
Properties to hold the port profiles .
Definition OutPortProvider.h:480
Logger rtclog
Logger stream .
Definition OutPortProvider.h:488
void setDataFlowType(const char *dataflow_type)
Set the data flow type.
virtual bool publishInterface(SDOPackage::NVList &prop)
Publish interface information.
void setPortType(const char *port_type)
Set the port type.
virtual void publishInterfaceProfile(SDOPackage::NVList &prop)
Publish InterfaceProfile information.
virtual void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners)=0
Set the listener.
void setSubscriptionType(const char *subs_type)
Set the subscription type.
void setDataType(const char *data_type)
Set the data type.
virtual void init(coil::Properties &prop)
Initializing configuration.
virtual void setConnector(OutPortConnector *connector)=0
set Connector
void setInterfaceType(const char *interface_type)
Set the interface type.
virtual void setBuffer(CdrBufferBase *buffer)=0
Setting outside buffer's pointer.
virtual ~OutPortProvider()
Destructor.
RT-Component.
::coil::GlobalFactory< OutPortProvider > OutPortProviderFactory
OutPortProviderFactory type definition .
Definition OutPortProvider.h:547
Functor to publish interface profile .
Definition OutPortProvider.h:525
OutPortProvider * provider_
Definition OutPortProvider.h:536
void operator()(OutPortProvider *provider)
Definition OutPortProvider.h:528
publishInterfaceFunc(SDOPackage::NVList &prop)
Definition OutPortProvider.h:526
SDOPackage::NVList & m_prop
Definition OutPortProvider.h:535
Functor to publish interface profile .
Definition OutPortProvider.h:507
SDOPackage::NVList & m_prop
Definition OutPortProvider.h:514
publishInterfaceProfileFunc(SDOPackage::NVList &prop)
Definition OutPortProvider.h:508
void operator()(OutPortProvider *provider)
Definition OutPortProvider.h:510