OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
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>
27#include <rtm/OutPortBase.h>
28
43namespace RTC
44{
45 class InPortProvider;
46 class OutPortConsumer;
47 class InPortConnector;
48
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
159 coil::Properties& properties();
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
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
InPortConnector * createConnector(const ConnectorProfile &cprof, coil::Properties &prop, OutPortConsumer *consumer)
InPortPullConnector creation .
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
std::vector< InPortConnector * > ConnectorList
Definition InPortBase.h:73
virtual ConnectorListenersBase * getListeners()
Getting listeners holder.
~InPortBase() override
Destructor.
void removeConnectorDataListener(ConnectorDataListenerType type, ConnectorDataListener *listener)
Removing BufferDataListener type listener.
InPortConnector * createConnector(ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider)
InPortPushConnector 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 ...
bool m_singlebuffer
Buffer mode.
Definition InPortBase.h:852
ConnectorList m_connectors
Connection list .
Definition InPortBase.h:884
const std::vector< InPortConnector * > & connectors()
Connector list.
coil::Properties & properties()
Get properties.
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.
InPortConnector * getConnectorById(const char *id)
Getting ConnectorProfile by ID.
virtual void initConnectorListeners()
ReturnCode_t connect(ConnectorProfile &connector_profile) override
[CORBA interface] Connect the Port
OutPortBase * getLocalOutPort(const ConnectorInfo &profile)
Getting local peer OutPort if available .
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.
coil::vstring getConnectorNames()
Connector name list.
ConnectorInfoList getConnectorProfiles()
ConnectorProfile list.
void initProviders()
InPort provider initialization .
void activateInterfaces() override
Activate all Port interfaces.
InPortConnector * getConnectorByName(const char *name)
Getting Connector by name.
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.
OutPortConsumer * createConsumer(const ConnectorProfile &cprof, coil::Properties &prop)
InPort provider creation .
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.
InPortProvider * createProvider(ConnectorProfile &cprof, coil::Properties &prop)
InPort provider creation .
void initConsumers()
OutPort consumer initialization .
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
std::vector< ConnectorInfo > ConnectorInfoList
Definition ConnectorBase.h:181
ConnectorListenerType
The types of ConnectorListener.
Definition ConnectorListener.h:670