OpenRTM-aist  1.1.2
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 namespace RTC
38 {
39  class PublisherBase;
40  class ConnectorBase;
41  class OutPortConnector;
42 
231  : public PortBase, public DataPortStatus
232  {
233  public:
235 
236  typedef std::vector<OutPortConnector*> ConnectorList;
237 
257  OutPortBase(const char* name, const char* data_type);
258 
275  virtual ~OutPortBase(void);
276 
293  void init(coil::Properties& prop);
294 
316  virtual bool write() = 0;
317 
337 
356  const std::vector<OutPortConnector*>& connectors();
357 
377 
397 
417 
438  OutPortConnector* getConnectorById(const char* id);
439 
460  OutPortConnector* getConnectorByName(const char* name);
461 
484  bool getConnectorProfileById(const char* id,
485  ConnectorInfo& prof);
486 
509  bool getConnectorProfileByName(const char* name,
510  ConnectorInfo& prof);
511 
512 
529  virtual void activateInterfaces();
530 
547  virtual void deactivateInterfaces();
548 
549 
626  ConnectorDataListener* listener,
627  bool autoclean = true);
628 
629 
650  ConnectorDataListener* listener);
651 
652 
705  void addConnectorListener(ConnectorListenerType callback_type,
706  ConnectorListener* listener,
707  bool autoclean = true);
708 
729  ConnectorListener* listener);
730 
748  bool isLittleEndian();
749 
775  virtual ReturnCode_t
776  connect(ConnectorProfile& connector_profile)
777  throw (CORBA::SystemException);
778 
779 
780  protected:
795  void configure();
796 
843  virtual ReturnCode_t
844  publishInterfaces(ConnectorProfile& connector_profile);
845 
884  virtual ReturnCode_t
885  subscribeInterfaces(const ConnectorProfile& connector_profile);
886 
918  virtual void
919  unsubscribeInterfaces(const ConnectorProfile& connector_profile);
920 
928  void initProviders();
929 
937  void initConsumers();
938 
974  bool checkEndian(const coil::Properties& prop, bool& littleEndian);
975 
983  OutPortProvider* createProvider(ConnectorProfile& cprof,
984  coil::Properties& prop);
992  InPortConsumer* createConsumer(const ConnectorProfile& cprof,
993  coil::Properties& prop);
994 
1002  OutPortConnector* createConnector(const ConnectorProfile& cprof,
1003  coil::Properties& prop,
1004  InPortConsumer* consumer);
1012  OutPortConnector* createConnector(const ConnectorProfile& cprof,
1013  coil::Properties& prop,
1014  OutPortProvider* provider);
1015 
1016  protected:
1032  std::vector<OutPortConnector*> m_connectors;
1065 
1073  struct provider_cleanup;
1074 
1082  struct connector_cleanup;
1083  };
1084 }; // End of namespace RTC
1085 #endif // RTC_RTCOUTPORTBASE_H
RTC's Port base class.
ConnectorListeners class.
Definition: ConnectorListener.h:813
void configure()
Configureing outport.
InPortConsumer abstract class.
Definition: InPortConsumer.h:76
DATAPORTSTATUS_ENUM typedef std::vector< OutPortConnector * > ConnectorList
Definition: OutPortBase.h:236
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:48
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:1032
void initConsumers()
InPort consumer initialization.
OutPortConnector * getConnectorByName(const char *name)
Getting Connector by name.
ConnectorListener class.
Definition: ConnectorListener.h:516
ConnectorDataListener class.
Definition: ConnectorListener.h:188
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
coil::Properties m_properties
Properties.
Definition: OutPortBase.h:1024
void removeConnectorListener(ConnectorListenerType callback_type, ConnectorListener *listener)
Removing BufferDataListener type listener.
ConnectorListeners m_listeners
ConnectorDataListener listener.
Definition: OutPortBase.h:1064
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 ReturnCode_t subscribeInterfaces(const ConnectorProfile &connector_profile)
Subscribe to the interface.
std::vector< std::string > vstring
Definition: stringutil.h:37
ConnectorDataListenerType
The types of ConnectorDataListener.
Definition: ConnectorListener.h:67
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:134
bool getConnectorProfileById(const char *id, ConnectorInfo &prof)
Getting ConnectorProfile by name.
bool m_littleEndian
Connected Endian.
Definition: OutPortBase.h:1056
OutPortProvider class.
OutPortBase(const char *name, const char *data_type)
Constructor.
Output base class.
Definition: OutPortBase.h:230
void init(coil::Properties &prop)
Initializing properties.
OutPortProvider.
Definition: OutPortProvider.h:189
coil::vstring m_consumerTypes
Available consumers.
Definition: OutPortBase.h:1048
ConnectorListenerType
The types of ConnectorListener.
Definition: ConnectorListener.h:398
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:1040
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.