OpenRTM-aist  2.1.0
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 #include <rtm/OutPortBase.h>
28 
43 namespace RTC
44 {
45  class InPortProvider;
46  class OutPortConsumer;
47  class InPortConnector;
48 
68  class InPortBase
69  : public PortBase
70  {
71  public:
72 
73  using ConnectorList = std::vector<InPortConnector*>;
74 
94  InPortBase(const char* name, const char* data_type);
95 
109  ~InPortBase() override;
110 
126  virtual void init(coil::Properties& prop);
127 
142  virtual bool read(std::string name="") = 0;
143 
160 
179  const std::vector<InPortConnector*>& connectors();
180 
200 
219  coil::vstring getConnectorIds();
220 
239  coil::vstring getConnectorNames();
240 
262 
284 
307  bool getConnectorProfileById(const char* id,
308  ConnectorInfo& prof);
309 
332  bool getConnectorProfileByName(const char* name,
333  ConnectorInfo& prof);
334 
335 
352  void activateInterfaces() override;
353 
370  void deactivateInterfaces() override;
371 
448  ConnectorDataListener* listener,
449  bool autoclean = true);
450 
451 
472  ConnectorDataListener* listener);
473 
474 
528  ConnectorListener* listener,
529  bool autoclean = true);
530 
551  ConnectorListener* listener);
552 
571 
597  ReturnCode_t
598  connect(ConnectorProfile& connector_profile) override;
599 
618  ReturnCode_t notify_connect(ConnectorProfile& connector_profile) override;
619  protected:
648  ReturnCode_t
649  publishInterfaces(ConnectorProfile& cprof) override;
650 
678  ReturnCode_t
679  subscribeInterfaces(const ConnectorProfile& cprof) override;
680 
702  void
703  unsubscribeInterfaces(const ConnectorProfile& connector_profile) override;
704 
705 
714 
723 
755  bool checkEndian(const coil::Properties& prop, bool& littleEndian);
756 
769  createProvider(ConnectorProfile& cprof, coil::Properties& prop);
770 
783  createConsumer(const ConnectorProfile& cprof, coil::Properties& prop);
784 
797  createConnector(ConnectorProfile& cprof, coil::Properties& prop,
798  InPortProvider* provider);
811  createConnector(const ConnectorProfile& cprof, coil::Properties& prop,
812  OutPortConsumer* consumer);
821 
836  virtual void initConnectorListeners();
868  coil::vstring m_providerTypes;
876  coil::vstring m_consumerTypes;
893 
902  };
903 } // namespace RTC
904 
905 #endif // RTC_INPORTBASE_H
connector listener class
DataPortStatus class.
InPortBase base class.
RTC's Port base class.
BufferBase abstract class.
Definition: BufferBase.h:106
ConnectorDataListener class.
Definition: ConnectorListener.h:408
ConnectorInfo class.
Definition: ConnectorBase.h:50
ConnectorListener class.
Definition: ConnectorListener.h:884
Definition: ConnectorListener.h:1354
Port for InPort.
Definition: InPortBase.h:70
bool m_littleEndian
Connected Endian.
Definition: InPortBase.h:892
virtual void init(coil::Properties &prop)
Initializing properties.
ReturnCode_t notify_connect(ConnectorProfile &connector_profile) override
coil::vstring m_providerTypes
Available providers.
Definition: InPortBase.h:868
InPortConnector * getConnectorByName(const char *name)
Getting Connector by name.
std::vector< InPortConnector * > ConnectorList
Definition: InPortBase.h:73
~InPortBase() override
Destructor.
void removeConnectorDataListener(ConnectorDataListenerType type, ConnectorDataListener *listener)
Removing BufferDataListener type listener.
OutPortConsumer * createConsumer(const ConnectorProfile &cprof, coil::Properties &prop)
InPort provider creation.
void addConnectorListener(ConnectorListenerType type, ConnectorListener *listener, bool autoclean=true)
Adding ConnectorListener type listener.
virtual bool read(std::string name="")=0
It is a virtual method that is called from RTObject_impl::readAll(). This method reads out data from ...
InPortProvider * createProvider(ConnectorProfile &cprof, coil::Properties &prop)
InPort provider creation.
const std::vector< InPortConnector * > & connectors()
Connector list.
bool m_singlebuffer
Buffer mode.
Definition: InPortBase.h:852
ConnectorList m_connectors
Connection list.
Definition: InPortBase.h:884
OutPortBase * getLocalOutPort(const ConnectorInfo &profile)
Getting local peer OutPort if available.
CdrBufferBase * m_thebuffer
Buffer.
Definition: InPortBase.h:860
ReturnCode_t subscribeInterfaces(const ConnectorProfile &cprof) override
Subscribe to the interface.
void unsubscribeInterfaces(const ConnectorProfile &connector_profile) override
Disconnect the interface connection.
coil::Properties & properties()
Get properties.
virtual void initConnectorListeners()
ReturnCode_t connect(ConnectorProfile &connector_profile) override
[CORBA interface] Connect the Port
coil::vstring getConnectorIds()
ConnectorId list.
void deactivateInterfaces() override
Deactivate all Port interfaces.
ConnectorListenersBase * m_listeners
ConnectorDataListener listener.
Definition: InPortBase.h:901
void addConnectorDataListener(ConnectorDataListenerType type, ConnectorDataListener *listener, bool autoclean=true)
Adding BufferDataListener type listener.
virtual ConnectorListenersBase * getListeners()
Getting listeners holder.
InPortConnector * createConnector(ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider)
InPortPushConnector creation.
coil::vstring getConnectorNames()
Connector name list.
ConnectorInfoList getConnectorProfiles()
ConnectorProfile list.
void initProviders()
InPort provider initialization.
void activateInterfaces() override
Activate all Port interfaces.
InPortConnector * createConnector(const ConnectorProfile &cprof, coil::Properties &prop, OutPortConsumer *consumer)
InPortPullConnector creation.
coil::vstring m_consumerTypes
Available consumers.
Definition: InPortBase.h:876
ReturnCode_t publishInterfaces(ConnectorProfile &cprof) override
Publish interface information.
InPortBase(const char *name, const char *data_type)
Constructor.
bool getConnectorProfileById(const char *id, ConnectorInfo &prof)
Getting ConnectorProfile by name.
bool checkEndian(const coil::Properties &prop, bool &littleEndian)
Checking endian flag of serializer.
void removeConnectorListener(ConnectorListenerType type, ConnectorListener *listener)
Removing BufferDataListener type listener.
bool getConnectorProfileByName(const char *name, ConnectorInfo &prof)
Getting ConnectorProfile by name.
void initConsumers()
OutPort consumer initialization.
InPortConnector * getConnectorById(const char *id)
Getting ConnectorProfile by ID.
bool isLittleEndian()
return it whether endian setting.
InPortConnector base class.
Definition: InPortConnector.h:54
InPortProvider.
Definition: InPortProvider.h:191
Output base class.
Definition: OutPortBase.h:229
OutPortConsumer abstract class.
Definition: OutPortConsumer.h:173
Port base class.
Definition: PortBase.h:132
RT-Component.
ConnectorDataListenerType
The types of ConnectorDataListener.
Definition: ConnectorListener.h:144
coil::Properties Properties
Definition: RTC.h:72
ConnectorListenerType
The types of ConnectorListener.
Definition: ConnectorListener.h:670
std::vector< ConnectorInfo > ConnectorInfoList
Definition: ConnectorBase.h:181