OpenRTM-aist  1.2.1
OutPortBase.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_OUTPORTBASE_H
21 #define RTC_OUTPORTBASE_H
22 
23 #include <vector>
24 #include <string>
25 
26 #include <coil/Properties.h>
27 #include <coil/stringutil.h>
28 
29 #include <rtm/PortBase.h>
30 #include <rtm/InPortConsumer.h>
31 #include <rtm/OutPortProvider.h>
32 #include <rtm/ConnectorBase.h>
33 #include <rtm/CdrBufferBase.h>
34 #include <rtm/SystemLogger.h>
35 #include <rtm/ConnectorListener.h>
36 
37 #ifdef WIN32
38 #pragma warning( push )
39 #pragma warning( disable : 4290 )
40 #endif
41 
42 namespace RTC
43 {
44  class PublisherBase;
45  class ConnectorBase;
46  class OutPortConnector;
47 
236  : public PortBase, public DataPortStatus
237  {
238  public:
240 
241  typedef std::vector<OutPortConnector*> ConnectorList;
242 
262  OutPortBase(const char* name, const char* data_type);
263 
280  virtual ~OutPortBase(void);
281 
298  void init(coil::Properties& prop);
299 
321  virtual bool write() = 0;
322 
342 
361  const std::vector<OutPortConnector*>& connectors();
362 
382 
402 
422 
443  OutPortConnector* getConnectorById(const char* id);
444 
465  OutPortConnector* getConnectorByName(const char* name);
466 
489  bool getConnectorProfileById(const char* id,
490  ConnectorInfo& prof);
491 
514  bool getConnectorProfileByName(const char* name,
515  ConnectorInfo& prof);
516 
517 
534  virtual void activateInterfaces();
535 
552  virtual void deactivateInterfaces();
553 
554 
631  ConnectorDataListener* listener,
632  bool autoclean = true);
633 
634 
655  ConnectorDataListener* listener);
656 
657 
710  void addConnectorListener(ConnectorListenerType callback_type,
711  ConnectorListener* listener,
712  bool autoclean = true);
713 
734  ConnectorListener* listener);
735 
753  bool isLittleEndian();
754 
780  virtual ReturnCode_t
781  connect(ConnectorProfile& connector_profile)
782  throw (CORBA::SystemException);
783 
801  virtual ConnectorListeners& getListeners();
802 
803 
804  protected:
819  void configure();
820 
867  virtual ReturnCode_t
868  publishInterfaces(ConnectorProfile& connector_profile);
869 
908  virtual ReturnCode_t
909  subscribeInterfaces(const ConnectorProfile& connector_profile);
910 
942  virtual void
943  unsubscribeInterfaces(const ConnectorProfile& connector_profile);
944 
952  void initProviders();
953 
961  void initConsumers();
962 
998  bool checkEndian(const coil::Properties& prop, bool& littleEndian);
999 
1007  OutPortProvider* createProvider(ConnectorProfile& cprof,
1008  coil::Properties& prop);
1016  InPortConsumer* createConsumer(const ConnectorProfile& cprof,
1017  coil::Properties& prop);
1018 
1026  OutPortConnector* createConnector(const ConnectorProfile& cprof,
1027  coil::Properties& prop,
1028  InPortConsumer* consumer);
1036  OutPortConnector* createConnector(const ConnectorProfile& cprof,
1037  coil::Properties& prop,
1038  OutPortProvider* provider);
1039 
1040  virtual ReturnCode_t notify_connect(ConnectorProfile& connector_profile)
1041  throw (CORBA::SystemException);
1042 
1043 
1044  protected:
1052  InPortBase* getLocalInPort(const ConnectorInfo& profile);
1053 
1054 
1055 
1056 
1064  std::vector<OutPortConnector*> m_connectors;
1097 
1105  struct provider_cleanup;
1106 
1114  struct connector_cleanup;
1115  };
1116 }; // End of namespace RTC
1117 
1118 #ifdef WIN32
1119 #pragma warning( pop )
1120 #endif
1121 
1122 #endif // RTC_RTCOUTPORTBASE_H
RTC&#39;s Port base class.
ConnectorListeners class.
Definition: ConnectorListener.h:1217
void configure()
Configureing outport.
InPortBase * getLocalInPort(const ConnectorInfo &profile)
Getting local peer InPort if available.
InPortConsumer abstract class.
Definition: InPortConsumer.h:76
DATAPORTSTATUS_ENUM typedef std::vector< OutPortConnector * > ConnectorList
Definition: OutPortBase.h:241
void initProviders()
OutPort provider initialization.
ConnectorInfoList getConnectorProfiles()
ConnectorProfile list.
void addConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener *listener, bool autoclean=true)
Adding BufferDataListener type listener.
#define DATAPORTSTATUS_ENUM
Importing RTC::DataPortStatus macro.
Definition: DataPortStatus.h:233
OutPortConnector base class.
Definition: OutPortConnector.h:54
coil::vstring getConnectorNames()
Connector name list.
RT-Component.
virtual bool write()=0
Write data.
coil::vstring getConnectorIds()
ConnectorId list.
std::vector< OutPortConnector * > m_connectors
Connection list.
Definition: OutPortBase.h:1064
void initConsumers()
InPort consumer initialization.
OutPortConnector * getConnectorByName(const char *name)
Getting Connector by name.
ConnectorListener class.
Definition: ConnectorListener.h:831
ConnectorDataListener class.
Definition: ConnectorListener.h:401
void addConnectorListener(ConnectorListenerType callback_type, ConnectorListener *listener, bool autoclean=true)
Adding ConnectorListener type listener.
RT component logger class.
OutPortConnector * createConnector(const ConnectorProfile &cprof, coil::Properties &prop, InPortConsumer *consumer)
OutPortPushConnector creation.
Definition: ConnectorBase.h:43
void removeConnectorListener(ConnectorListenerType callback_type, ConnectorListener *listener)
Removing BufferDataListener type listener.
ConnectorListeners m_listeners
ConnectorDataListener listener.
Definition: OutPortBase.h:1096
const std::vector< OutPortConnector * > & connectors()
Connector list.
std::vector< ConnectorInfo > ConnectorInfoList
Definition: ConnectorBase.h:129
virtual void deactivateInterfaces()
Deactivate all Port interfaces.
OutPortConnector * getConnectorById(const char *id)
Getting ConnectorProfile by ID.
bool isLittleEndian()
return it whether endian setting.
virtual void activateInterfaces()
Activate all Port interfaces.
virtual ConnectorListeners & getListeners()
Getting listeners holder.
virtual ReturnCode_t subscribeInterfaces(const ConnectorProfile &connector_profile)
Subscribe to the interface.
std::vector< std::string > vstring
Definition: stringutil.h:45
ConnectorDataListenerType
The types of ConnectorDataListener.
Definition: ConnectorListener.h:138
virtual void unsubscribeInterfaces(const ConnectorProfile &connector_profile)
Disconnect the interface connection.
Connector base class.
void removeConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener *listener)
Removing BufferDataListener type listener.
Port base class.
Definition: PortBase.h:135
bool getConnectorProfileById(const char *id, ConnectorInfo &prof)
Getting ConnectorProfile by name.
bool m_littleEndian
Connected Endian.
Definition: OutPortBase.h:1088
OutPortProvider class.
OutPortBase(const char *name, const char *data_type)
Constructor.
Output base class.
Definition: OutPortBase.h:235
virtual ReturnCode_t notify_connect(ConnectorProfile &connector_profile)
[CORBA interface] Notify the Ports connection
void init(coil::Properties &prop)
Initializing properties.
Port for InPort.
Definition: InPortBase.h:74
OutPortProvider.
Definition: OutPortProvider.h:189
coil::vstring m_consumerTypes
Available consumers.
Definition: OutPortBase.h:1080
ConnectorListenerType
The types of ConnectorListener.
Definition: ConnectorListener.h:618
Class represents a set of properties.
Definition: Properties.h:101
bool checkEndian(const coil::Properties &prop, bool &littleEndian)
Checking endian flag of serializer.
Property list class (derived from Java Properties)
bool getConnectorProfileByName(const char *name, ConnectorInfo &prof)
Getting ConnectorProfile by name.
coil::vstring m_providerTypes
Available providers.
Definition: OutPortBase.h:1072
virtual ~OutPortBase(void)
Destructor.
InPortConsumer * createConsumer(const ConnectorProfile &cprof, coil::Properties &prop)
InPort consumer creation.
DataPortStatus mixin class.
Definition: DataPortStatus.h:54
InPortConsumer class.
OutPortProvider * createProvider(ConnectorProfile &cprof, coil::Properties &prop)
OutPort provider creation.
connector listener class
coil::Properties & properties()
Get properties.
virtual ReturnCode_t connect(ConnectorProfile &connector_profile)
[CORBA interface] Connect the Port
virtual ReturnCode_t publishInterfaces(ConnectorProfile &connector_profile)
Publish interface information.