OpenRTM-aist  1.2.1
OutPortProvider.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_OUTPORTPROVIDER_H
21 #define RTC_OUTPORTPROVIDER_H
22 
23 #include <string>
24 
25 #include <coil/Factory.h>
26 #include <rtm/BufferBase.h>
27 #include <rtm/NVUtil.h>
28 #include <rtm/SystemLogger.h>
29 #include <rtm/DataPortStatus.h>
30 #include <rtm/OutPortConnector.h>
31 
32 namespace RTC
33 {
34  class ConnectorListeners;
190  : public DataPortStatus
191  {
192  public:
207  virtual ~OutPortProvider(void);
208 
236  virtual void init(coil::Properties& prop);
237 
263  virtual void setBuffer(CdrBufferBase* buffer) = 0;
264 
295  virtual void setListener(ConnectorInfo& info,
296  ConnectorListeners* listeners) = 0;
297 
322  virtual void setConnector(OutPortConnector* connector) = 0;
323 
347  virtual void publishInterfaceProfile(SDOPackage::NVList& properties);
348 
376  virtual bool publishInterface(SDOPackage::NVList& properties);
377 
378  protected:
396  void setPortType(const char* port_type);
397 
415  void setDataType(const char* data_type);
416 
434  void setInterfaceType(const char* interface_type);
435 
453  void setDataFlowType(const char* dataflow_type);
454 
472  void setSubscriptionType(const char* subs_type);
473 
474  protected:
482  SDOPackage::NVList m_properties;
490  mutable Logger rtclog;
491 
492  private:
493  std::string m_portType;
494  std::string m_dataType;
495  std::string m_interfaceType;
496  std::string m_dataflowType;
497  std::string m_subscriptionType;
498 
499 
500  public:
509  {
510  publishInterfaceProfileFunc(SDOPackage::NVList& prop) : m_prop(prop) {}
511  void operator()(OutPortProvider* provider)
512  {
513  provider->publishInterfaceProfile(m_prop);
514  }
515  SDOPackage::NVList& m_prop;
516  };
517 
526  {
527  publishInterfaceFunc(SDOPackage::NVList& prop)
528  : m_prop(prop), provider_(0) {}
529  void operator()(OutPortProvider* provider)
530  {
531  if (provider->publishInterface(m_prop))
532  {
533  provider_ = provider;
534  }
535  }
536  SDOPackage::NVList& m_prop;
538  };
539  };
540 
548  typedef ::coil::GlobalFactory<OutPortProvider> OutPortProviderFactory;
549 
550 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
551  EXTERN template class DLL_PLUGIN ::coil::GlobalFactory<OutPortProvider>;
552 #endif
553 }; // namespace RTC
554 
555 #ifdef __GNUC__
557 #endif
558 
559 #endif // RTC_OUTPORTPROVIDER_H
OutPortProvider * provider_
Definition: OutPortProvider.h:537
ConnectorListeners class.
Definition: ConnectorListener.h:1217
::coil::GlobalFactory< OutPortProvider > OutPortProviderFactory
OutPortProviderFactory type definition.
Definition: OutPortProvider.h:548
#define DATAPORTSTATUS_ENUM
Importing RTC::DataPortStatus macro.
Definition: DataPortStatus.h:233
OutPortConnector base class.
Definition: OutPortConnector.h:54
DataPortStatus class.
RT-Component.
void setSubscriptionType(const char *subs_type)
Set the subscription type.
Functor to publish interface profile.
Definition: OutPortProvider.h:508
void setPortType(const char *port_type)
Set the port type.
RT component logger class.
void setInterfaceType(const char *interface_type)
Set the interface type.
OutPortConnector class.
Definition: ConnectorBase.h:43
virtual void init(coil::Properties &prop)
Initializing configuration.
virtual void setConnector(OutPortConnector *connector)=0
set Connector
virtual void publishInterfaceProfile(SDOPackage::NVList &properties)
Publish InterfaceProfile information.
SDOPackage::NVList & m_prop
Definition: OutPortProvider.h:536
Functor to publish interface profile.
Definition: OutPortProvider.h:525
virtual void setBuffer(CdrBufferBase *buffer)=0
Setting outside buffer&#39;s pointer.
virtual void setListener(ConnectorInfo &info, ConnectorListeners *listeners)=0
Set the listener.
SDOPackage::NVList & m_prop
Definition: OutPortProvider.h:515
void setDataType(const char *data_type)
Set the data type.
Singleton template class.
Definition: Singleton.h:106
Buffer abstract class.
NameValue and NVList utility functions.
void setDataFlowType(const char *dataflow_type)
Set the data flow type.
Logger class.
Definition: SystemLogger.h:99
OutPortProvider.
Definition: OutPortProvider.h:189
#define EXTERN
Definition: Factory.h:42
Class represents a set of properties.
Definition: Properties.h:101
Logger rtclog
Logger stream.
Definition: OutPortProvider.h:490
SDOPackage::NVList m_properties
Properties to hold the port profiles.
Definition: OutPortProvider.h:482
publishInterfaceFunc(SDOPackage::NVList &prop)
Definition: OutPortProvider.h:527
void operator()(OutPortProvider *provider)
Definition: OutPortProvider.h:529
virtual DATAPORTSTATUS_ENUM ~OutPortProvider(void)
Destructor.
DataPortStatus mixin class.
Definition: DataPortStatus.h:54
BufferBase abstract class.
Definition: BufferBase.h:104
void operator()(OutPortProvider *provider)
Definition: OutPortProvider.h:511
publishInterfaceProfileFunc(SDOPackage::NVList &prop)
Definition: OutPortProvider.h:510
virtual bool publishInterface(SDOPackage::NVList &properties)
Publish interface information.