OpenRTM  1.1.1
InPortBase.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_INPORTBASE_H
21 #define RTC_INPORTBASE_H
22 
23 #include <rtm/PortBase.h>
24 #include <rtm/DataPortStatus.h>
25 #include <rtm/CdrBufferBase.h>
26 #include <rtm/ConnectorListener.h>
27 
42 namespace RTC
43 {
44  class InPortProvider;
45  class OutPortConsumer;
46  class InPortConnector;
47 
67  class InPortBase
68  : public PortBase, public DataPortStatus
69  {
70  public:
72 
73  typedef std::vector<InPortConnector*> ConnectorList;
74 
94  InPortBase(const char* name, const char* data_type);
95 
109  virtual ~InPortBase(void);
110 
126  void init(coil::Properties& prop);
127 
142  virtual bool read() = 0;
143 
160 
179  const std::vector<InPortConnector*>& connectors();
180 
200 
220 
240 
261  InPortConnector* getConnectorById(const char* id);
262 
283  InPortConnector* getConnectorByName(const char* name);
284 
307  bool getConnectorProfileById(const char* id,
308  ConnectorInfo& prof);
309 
332  bool getConnectorProfileByName(const char* name,
333  ConnectorInfo& prof);
334 
335 
352  virtual void activateInterfaces();
353 
370  virtual void deactivateInterfaces();
371 
448  ConnectorDataListener* listener,
449  bool autoclean = true);
450 
451 
472  ConnectorDataListener* listener);
473 
474 
527  void addConnectorListener(ConnectorListenerType callback_type,
528  ConnectorListener* listener,
529  bool autoclean = true);
530 
551  ConnectorListener* listener);
552 
570  bool isLittleEndian();
571 
597  virtual ReturnCode_t
598  connect(ConnectorProfile& connector_profile)
599  throw (CORBA::SystemException);
600 
601  protected:
602 
631  virtual ReturnCode_t
632  publishInterfaces(ConnectorProfile& connector_profile);
633 
661  virtual ReturnCode_t
662  subscribeInterfaces(const ConnectorProfile& connector_profile);
663 
685  virtual void
686  unsubscribeInterfaces(const ConnectorProfile& connector_profile);
687 
688 
696  void initProviders();
697 
705  void initConsumers();
706 
738  bool checkEndian(const coil::Properties& prop, bool& littleEndian);
739 
752  createProvider(ConnectorProfile& cprof, coil::Properties& prop);
753 
766  createConsumer(const ConnectorProfile& cprof, coil::Properties& prop);
767 
780  createConnector(ConnectorProfile& cprof, coil::Properties& prop,
781  InPortProvider* provider);
794  createConnector(const ConnectorProfile& cprof, coil::Properties& prop,
795  OutPortConsumer* consumer);
796 
797  protected:
862 
871  };
872 }; // namespace RTC
873 
874 #endif // RTC_INPORTBASE_H
RTC's Port base class.
InPortConnector * getConnectorById(const char *id)
Getting ConnectorProfile by ID.
ConnectorListeners class.
Definition: ConnectorListener.h:813
bool checkEndian(const coil::Properties &prop, bool &littleEndian)
Checking endian flag of serializer.
virtual void activateInterfaces()
Activate all Port interfaces.
virtual void deactivateInterfaces()
Deactivate all Port interfaces.
InPortConnector base class.
Definition: InPortConnector.h:46
virtual void unsubscribeInterfaces(const ConnectorProfile &connector_profile)
Disconnect the interface connection.
#define DATAPORTSTATUS_ENUM
Importing RTC::DataPortStatus macro.
Definition: DataPortStatus.h:233
DataPortStatus class.
CdrBufferBase * m_thebuffer
Buffer.
Definition: InPortBase.h:821
coil::Properties & properties()
Get properties.
ConnectorListener class.
Definition: ConnectorListener.h:516
ConnectorDataListener class.
Definition: ConnectorListener.h:188
Definition: ConnectorBase.h:43
ConnectorListeners m_listeners
ConnectorDataListener listener.
Definition: InPortBase.h:870
virtual ~InPortBase(void)
Destructor.
std::vector< ConnectorInfo > ConnectorInfoList
Definition: ConnectorBase.h:129
bool isLittleEndian()
return it whether endian setting.
coil::vstring m_providerTypes
Available providers.
Definition: InPortBase.h:837
coil::vstring m_consumerTypes
Available consumers.
Definition: InPortBase.h:845
InPortProvider.
Definition: InPortProvider.h:190
std::vector< std::string > vstring
Definition: stringutil.h:37
ConnectorDataListenerType
The types of ConnectorDataListener.
Definition: ConnectorListener.h:67
bool m_littleEndian
Connected Endian.
Definition: InPortBase.h:861
Port base class.
Definition: PortBase.h:134
DATAPORTSTATUS_ENUM typedef std::vector< InPortConnector * > ConnectorList
Definition: InPortBase.h:73
void removeConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener *listener)
Removing BufferDataListener type listener.
InPortBase(const char *name, const char *data_type)
Constructor.
virtual ReturnCode_t subscribeInterfaces(const ConnectorProfile &connector_profile)
Subscribe to the interface.
bool getConnectorProfileById(const char *id, ConnectorInfo &prof)
Getting ConnectorProfile by name.
ConnectorInfoList getConnectorProfiles()
ConnectorProfile list.
void initProviders()
InPort provider initialization.
coil::vstring getConnectorIds()
ConnectorId list.
bool getConnectorProfileByName(const char *name, ConnectorInfo &prof)
Getting ConnectorProfile by name.
void addConnectorListener(ConnectorListenerType callback_type, ConnectorListener *listener, bool autoclean=true)
Adding ConnectorListener type listener.
Port for InPort.
Definition: InPortBase.h:67
InPortProvider * createProvider(ConnectorProfile &cprof, coil::Properties &prop)
InPort provider creation.
virtual ReturnCode_t publishInterfaces(ConnectorProfile &connector_profile)
Publish interface information.
void initConsumers()
OutPort consumer initialization.
ConnectorListenerType
The types of ConnectorListener.
Definition: ConnectorListener.h:398
Class represents a set of properties.
Definition: Properties.h:101
void removeConnectorListener(ConnectorListenerType callback_type, ConnectorListener *listener)
Removing BufferDataListener type listener.
coil::Properties m_properties
Properties.
Definition: InPortBase.h:829
OutPortConsumer abstract class.
Definition: OutPortConsumer.h:171
std::vector< ConnectorBase * > ConnectorList
Definition: ConnectorBase.h:131
coil::vstring getConnectorNames()
Connector name list.
void init(coil::Properties &prop)
Initializing properties.
bool m_singlebuffer
Buffer mode.
Definition: InPortBase.h:813
OutPortConsumer * createConsumer(const ConnectorProfile &cprof, coil::Properties &prop)
InPort provider creation.
virtual ReturnCode_t connect(ConnectorProfile &connector_profile)
[CORBA interface] Connect the Port
DataPortStatus mixin class.
Definition: DataPortStatus.h:54
BufferBase abstract class.
Definition: BufferBase.h:104
InPortConnector * createConnector(ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider)
InPortPushConnector creation.
virtual bool read()=0
It is a virtual method that is called from RTObject_impl::readAll(). This method reads out data from ...
connector listener class
void addConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener *listener, bool autoclean=true)
Adding BufferDataListener type listener.
ConnectorList m_connectors
Connection list.
Definition: InPortBase.h:853
const std::vector< InPortConnector * > & connectors()
Connector list.
InPortConnector * getConnectorByName(const char *name)
Getting Connector by name.