OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
OutPortBase.h
Go to the documentation of this file.
1// -*- C++ -*-
20#ifndef RTC_OUTPORTBASE_H
21#define RTC_OUTPORTBASE_H
22
23#include <coil/Properties.h>
24#include <coil/stringutil.h>
25
26#include <rtm/PortBase.h>
27#include <rtm/InPortConsumer.h>
28#include <rtm/OutPortProvider.h>
29#include <rtm/ConnectorBase.h>
30#include <rtm/CdrBufferBase.h>
31#include <rtm/SystemLogger.h>
33
34namespace RTC
35{
36 class PublisherBase;
37 class ConnectorBase;
38 class OutPortConnector;
39
228 : public PortBase
229 {
230 public:
231
232 using ConnectorList = std::vector<OutPortConnector*>;
233
253 OutPortBase(const char* name, const char* data_type);
254
271 ~OutPortBase() override;
272
289 void init(coil::Properties& prop);
290
312 virtual bool write() = 0;
313
332 coil::Properties& properties();
333
352 const std::vector<OutPortConnector*>& connectors();
353
373
392 coil::vstring getConnectorIds();
393
412 coil::vstring getConnectorNames();
413
435
457
480 bool getConnectorProfileById(const char* id,
481 ConnectorInfo& prof);
482
505 bool getConnectorProfileByName(const char* name,
506 ConnectorInfo& prof);
507
508
525 void activateInterfaces() override;
526
543 void deactivateInterfaces() override;
544
545
622 ConnectorDataListener* listener,
623 bool autoclean = true);
624
625
646 ConnectorDataListener* listener);
647
648
702 ConnectorListener* listener,
703 bool autoclean = true);
704
725 ConnectorListener* listener);
726
745
771 ReturnCode_t
772 connect(ConnectorProfile& connector_profile) override;
773
792
793
794 protected:
809 void configure();
810
857 ReturnCode_t
858 publishInterfaces(ConnectorProfile& cprof) override;
859
898 ReturnCode_t
899 subscribeInterfaces(const ConnectorProfile& cprof) override;
900
932 void
933 unsubscribeInterfaces(const ConnectorProfile& connector_profile) override;
934
943
952
988 bool checkEndian(const coil::Properties& prop, bool& littleEndian);
989
997 OutPortProvider* createProvider(ConnectorProfile& cprof,
998 coil::Properties& prop);
1006 InPortConsumer* createConsumer(const ConnectorProfile& cprof,
1007 coil::Properties& prop);
1008
1016 OutPortConnector* createConnector(const ConnectorProfile& cprof,
1017 coil::Properties& prop,
1018 InPortConsumer* consumer);
1026 OutPortConnector* createConnector(const ConnectorProfile& cprof,
1027 coil::Properties& prop,
1028 OutPortProvider* provider);
1029
1030 ReturnCode_t notify_connect(ConnectorProfile& connector_profile) override;
1031
1032 protected:
1056
1057
1058
1066 std::vector<OutPortConnector*> m_connectors;
1074 coil::vstring m_providerTypes;
1082 coil::vstring m_consumerTypes;
1099
1107 struct provider_cleanup;
1108
1116 struct connector_cleanup;
1117 };
1118} // End of namespace RTC
1119
1120#endif // RTC_RTCOUTPORTBASE_H
1121
Connector base class.
connector listener class
InPortConsumer class.
OutPortProvider class.
RTC's Port base class.
RT component logger class.
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
InPortConsumer abstract class.
Definition InPortConsumer.h:78
Output base class.
Definition OutPortBase.h:229
OutPortProvider * createProvider(ConnectorProfile &cprof, coil::Properties &prop)
OutPort provider creation .
bool m_littleEndian
Connected Endian .
Definition OutPortBase.h:1090
InPortBase * getLocalInPort(const ConnectorInfo &profile)
Getting local peer InPort if available .
coil::vstring getConnectorIds()
ConnectorId list.
void activateInterfaces() override
Activate all Port interfaces.
std::vector< OutPortConnector * > ConnectorList
Definition OutPortBase.h:232
OutPortConnector * getConnectorByName(const char *name)
Getting Connector by name.
void addConnectorDataListener(ConnectorDataListenerType type, ConnectorDataListener *listener, bool autoclean=true)
Adding BufferDataListener type listener.
void init(coil::Properties &prop)
Initializing properties.
virtual bool write()=0
Write data.
void initConsumers()
InPort consumer initialization .
coil::vstring m_consumerTypes
Available consumers .
Definition OutPortBase.h:1082
coil::vstring getConnectorNames()
Connector name list.
void configure()
Configureing outport.
bool getConnectorProfileByName(const char *name, ConnectorInfo &prof)
Getting ConnectorProfile by name.
void removeConnectorListener(ConnectorListenerType type, ConnectorListener *listener)
Removing BufferDataListener type listener.
InPortConsumer * createConsumer(const ConnectorProfile &cprof, coil::Properties &prop)
InPort consumer creation .
OutPortConnector * createConnector(const ConnectorProfile &cprof, coil::Properties &prop, InPortConsumer *consumer)
OutPortPushConnector creation .
~OutPortBase() override
Destructor.
ConnectorInfoList getConnectorProfiles()
ConnectorProfile list.
const std::vector< OutPortConnector * > & connectors()
Connector list.
ConnectorListenersBase * m_listeners
ConnectorDataListener listener .
Definition OutPortBase.h:1098
void initProviders()
OutPort provider initialization .
bool getConnectorProfileById(const char *id, ConnectorInfo &prof)
Getting ConnectorProfile by name.
ReturnCode_t connect(ConnectorProfile &connector_profile) override
[CORBA interface] Connect the Port
OutPortBase(const char *name, const char *data_type)
Constructor.
ReturnCode_t notify_connect(ConnectorProfile &connector_profile) override
std::vector< OutPortConnector * > m_connectors
Connection list .
Definition OutPortBase.h:1066
ReturnCode_t subscribeInterfaces(const ConnectorProfile &cprof) override
Subscribe to the interface.
virtual void initConnectorListeners()
void unsubscribeInterfaces(const ConnectorProfile &connector_profile) override
Disconnect the interface connection.
OutPortConnector * getConnectorById(const char *id)
Getting ConnectorProfile by ID.
coil::Properties & properties()
Get properties.
void removeConnectorDataListener(ConnectorDataListenerType type, ConnectorDataListener *listener)
Removing BufferDataListener type listener.
virtual ConnectorListenersBase * getListeners()
Getting listeners holder.
OutPortConnector * createConnector(const ConnectorProfile &cprof, coil::Properties &prop, OutPortProvider *provider)
OutPortPullConnector creation .
bool checkEndian(const coil::Properties &prop, bool &littleEndian)
Checking endian flag of serializer.
bool isLittleEndian()
return it whether endian setting.
void addConnectorListener(ConnectorListenerType type, ConnectorListener *listener, bool autoclean=true)
Adding ConnectorListener type listener.
coil::vstring m_providerTypes
Available providers .
Definition OutPortBase.h:1074
ReturnCode_t publishInterfaces(ConnectorProfile &cprof) override
Publish interface information.
void deactivateInterfaces() override
Deactivate all Port interfaces.
OutPortConnector base class.
Definition OutPortConnector.h:58
OutPortProvider.
Definition OutPortProvider.h:190
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