OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
RTC::OutPortBase Class Referenceabstract

Output base class. More...

#include <OutPortBase.h>

Inheritance diagram for RTC::OutPortBase:
Collaboration diagram for RTC::OutPortBase:

Public Types

using ConnectorList = std::vector<OutPortConnector*>
 

Public Member Functions

 OutPortBase (const char *name, const char *data_type)
 Constructor.
 
 ~OutPortBase () override
 Destructor.
 
void init (coil::Properties &prop)
 Initializing properties.
 
virtual bool write ()=0
 Write data.
 
coil::Properties & properties ()
 Get properties.
 
const std::vector< OutPortConnector * > & connectors ()
 Connector list.
 
ConnectorInfoList getConnectorProfiles ()
 ConnectorProfile list.
 
coil::vstring getConnectorIds ()
 ConnectorId list.
 
coil::vstring getConnectorNames ()
 Connector name list.
 
OutPortConnectorgetConnectorById (const char *id)
 Getting ConnectorProfile by ID.
 
OutPortConnectorgetConnectorByName (const char *name)
 Getting Connector by name.
 
bool getConnectorProfileById (const char *id, ConnectorInfo &prof)
 Getting ConnectorProfile by name.
 
bool getConnectorProfileByName (const char *name, ConnectorInfo &prof)
 Getting ConnectorProfile by name.
 
void activateInterfaces () override
 Activate all Port interfaces.
 
void deactivateInterfaces () override
 Deactivate all Port interfaces.
 
void addConnectorDataListener (ConnectorDataListenerType type, ConnectorDataListener *listener, bool autoclean=true)
 Adding BufferDataListener type listener.
 
void removeConnectorDataListener (ConnectorDataListenerType type, ConnectorDataListener *listener)
 Removing BufferDataListener type listener.
 
void addConnectorListener (ConnectorListenerType type, ConnectorListener *listener, bool autoclean=true)
 Adding ConnectorListener type listener.
 
void removeConnectorListener (ConnectorListenerType type, ConnectorListener *listener)
 Removing BufferDataListener type listener.
 
bool isLittleEndian ()
 return it whether endian setting.
 
ReturnCode_t connect (ConnectorProfile &connector_profile) override
 [CORBA interface] Connect the Port
 
virtual ConnectorListenersBasegetListeners ()
 Getting listeners holder.
 
- Public Member Functions inherited from RTC::PortBase
 PortBase (const char *name="")
 Constructor.
 
 ~PortBase () override
 Destructor.
 
PortProfile * get_port_profile () override
 [CORBA interface] Get the PortProfile of the Port
 
const PortProfile & getPortProfile () const
 Get the PortProfile of the Port.
 
ConnectorProfileList * get_connector_profiles () override
 [CORBA interface] Get the ConnectorProfileList of the Port
 
ConnectorProfile * get_connector_profile (const char *connector_id) override
 [CORBA interface] Get the ConnectorProfile
 
ReturnCode_t connect (ConnectorProfile &connector_profile) override
 [CORBA interface] Connect the Port
 
ReturnCode_t notify_connect (ConnectorProfile &connector_profile) override
 [CORBA interface] Notify the Ports connection
 
ReturnCode_t disconnect (const char *connector_id) override
 [CORBA interface] Disconnect the Port
 
ReturnCode_t notify_disconnect (const char *connector_id) override
 [CORBA interface] Notify the Ports disconnection
 
ReturnCode_t disconnect_all () override
 [CORBA interface] Disconnect the All Ports
 
void setName (const char *name)
 Set the name of this Port.
 
const char * getName () const
 Get the name of this Port.
 
const PortProfile & getProfile () const
 Get the PortProfile of the Port.
 
void setPortRef (PortService_ptr port_ref)
 Set the object reference of this Port.
 
PortService_ptr getPortRef () const
 Get the object reference of this Port.
 
void setOwner (RTObject_ptr owner)
 Set the owner RTObject of the Port.
 
void setOnPublishInterfaces (ConnectionCallback *on_publish)
 Setting callback called on publish interfaces.
 
void setOnSubscribeInterfaces (ConnectionCallback *on_subscribe)
 Setting callback called on publish interfaces.
 
void setOnConnected (ConnectionCallback *on_connected)
 Setting callback called on connection established.
 
void setOnUnsubscribeInterfaces (ConnectionCallback *on_unsubscribe)
 Setting callback called on unsubscribe interfaces.
 
void setOnDisconnected (ConnectionCallback *on_disconnected)
 Setting callback called on disconnected.
 
void setOnConnectionLost (ConnectionCallback *on_connection_lost)
 Setting callback called on connection lost.
 
void setPortConnectListenerHolder (PortConnectListeners *portconnListeners)
 Setting PortConnectListener holder.
 
virtual DirectPortBasegetDirectPort ()
 

Protected Member Functions

void configure ()
 Configureing outport.
 
ReturnCode_t publishInterfaces (ConnectorProfile &cprof) override
 Publish interface information.
 
ReturnCode_t subscribeInterfaces (const ConnectorProfile &cprof) override
 Subscribe to the interface.
 
void unsubscribeInterfaces (const ConnectorProfile &connector_profile) override
 Disconnect the interface connection.
 
void initProviders ()
 OutPort provider initialization .
 
void initConsumers ()
 InPort consumer initialization .
 
bool checkEndian (const coil::Properties &prop, bool &littleEndian)
 Checking endian flag of serializer.
 
OutPortProvidercreateProvider (ConnectorProfile &cprof, coil::Properties &prop)
 OutPort provider creation .
 
InPortConsumercreateConsumer (const ConnectorProfile &cprof, coil::Properties &prop)
 InPort consumer creation .
 
OutPortConnectorcreateConnector (const ConnectorProfile &cprof, coil::Properties &prop, InPortConsumer *consumer)
 OutPortPushConnector creation .
 
OutPortConnectorcreateConnector (const ConnectorProfile &cprof, coil::Properties &prop, OutPortProvider *provider)
 OutPortPullConnector creation .
 
ReturnCode_t notify_connect (ConnectorProfile &connector_profile) override
 
InPortBasegetLocalInPort (const ConnectorInfo &profile)
 Getting local peer InPort if available .
 
virtual void initConnectorListeners ()
 
- Protected Member Functions inherited from RTC::PortBase
virtual ReturnCode_t connectNext (ConnectorProfile &connector_profile)
 Call notify_connect() of the next Port.
 
virtual ReturnCode_t disconnectNext (ConnectorProfile &cprof)
 Call notify_disconnect() of the next Port.
 
virtual void setConnectionLimit (int limit_value)
 Set the maximum number of connections.
 
virtual ReturnCode_t _publishInterfaces ()
 Publish interface information.
 
bool isExistingConnId (const char *id)
 Check whether the given id exists in stored ConnectorProfiles.
 
ConnectorProfile findConnProfile (const char *id)
 Find ConnectorProfile with id.
 
CORBA::Long findConnProfileIndex (const char *id)
 Find ConnectorProfile with id.
 
void updateConnectorProfile (const ConnectorProfile &connector_profile)
 Append or update the ConnectorProfile list.
 
bool eraseConnectorProfile (const char *id)
 Delete the ConnectorProfile.
 
bool appendInterface (const char *instance_name, const char *type_name, PortInterfacePolarity pol)
 Append an interface to the PortInterfaceProfile.
 
bool deleteInterface (const char *name, PortInterfacePolarity pol)
 Delete the interface registration from the PortInterfaceProfile.
 
template<class ValueType >
void addProperty (const char *key, ValueType value)
 Add NameValue data to PortProfile's properties.
 
void appendProperty (const char *key, const char *value)
 Append NameValue data to PortProfile's properties.
 
void updateConnectors ()
 Disconnect ports that doesn't exist.
 
bool checkPorts (::RTC::PortServiceList &ports)
 Existence of ports.
 
void onNotifyConnect (const char *portname, RTC::ConnectorProfile &profile)
 
void onNotifyDisconnect (const char *portname, RTC::ConnectorProfile &profile)
 
void onUnsubscribeInterfaces (const char *portname, RTC::ConnectorProfile &profile)
 
void onPublishInterfaces (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onConnectNextport (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onSubscribeInterfaces (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onConnected (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onDisconnectNextport (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onDisconnected (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
bool isExistingMarshalingType (coil::Properties &con_prop)
 Whether the specified serializer can be used.
 

Protected Attributes

std::vector< OutPortConnector * > m_connectors
 Connection list .
 
coil::vstring m_providerTypes
 Available providers .
 
coil::vstring m_consumerTypes
 Available consumers .
 
bool m_littleEndian
 Connected Endian .
 
ConnectorListenersBasem_listeners
 ConnectorDataListener listener .
 
- Protected Attributes inherited from RTC::PortBase
coil::Properties m_properties
 Properties .
 
Logger rtclog
 Logger stream .
 
PortProfile m_profile
 PortProfile of the Port .
 
RTC::PortService_var m_objref
 Object Reference of the Port .
 
std::mutex m_profile_mutex
 Mutex of PortProfile .
 
std::mutex m_connectorsMutex
 
std::string m_ownerInstanceName = "unknown"
 Instance name .
 
int m_connectionLimit {-1}
 The maximum number of connections .
 
ConnectionCallbackm_onPublishInterfaces {nullptr}
 Callback functor objects.
 
ConnectionCallbackm_onSubscribeInterfaces {nullptr}
 Callback functor objects.
 
ConnectionCallbackm_onConnected {nullptr}
 Callback functor objects.
 
ConnectionCallbackm_onUnsubscribeInterfaces {nullptr}
 Callback functor objects.
 
ConnectionCallbackm_onDisconnected {nullptr}
 Callback functor objects.
 
ConnectionCallbackm_onConnectionLost {nullptr}
 Callback functor objects.
 
PortConnectListenersm_portconnListeners {nullptr}
 PortConnectListener holder.
 
DirectPortBasem_directport {nullptr}
 

Additional Inherited Members

- Static Protected Member Functions inherited from RTC::PortBase
static bool isEmptyId (const ConnectorProfile &connector_profile)
 Check whether connector_id of ConnectorProfile is empty.
 
static std::string getUUID ()
 Generate the UUID.
 
static void setUUID (ConnectorProfile &connector_profile)
 Generate and set the UUID to the ConnectorProfile.
 

Detailed Description

Output base class.

The base class of OutPort<T> which are implementations of OutPort

Form a kind of Observer pattern with OutPortBase and PublisherBase. attach(), detach(), notify() of OutPortBase and push() of PublisherBase are methods associated with the Observer pattern.

Since
0.2.0

Member Typedef Documentation

◆ ConnectorList

Constructor & Destructor Documentation

◆ OutPortBase()

RTC::OutPortBase::OutPortBase ( const char * name,
const char * data_type )

Constructor.

Constructor

Parameters
namePort name
data_typeData type

◆ ~OutPortBase()

RTC::OutPortBase::~OutPortBase ( )
override

Destructor.

Destructor Detach all subscribed Publishers.

Member Function Documentation

◆ activateInterfaces()

void RTC::OutPortBase::activateInterfaces ( )
overridevirtual

Activate all Port interfaces.

This operation activate all interfaces that is registered in the ports.

Implements RTC::PortBase.

◆ addConnectorDataListener()

void RTC::OutPortBase::addConnectorDataListener ( ConnectorDataListenerType type,
ConnectorDataListener * listener,
bool autoclean = true )

Adding BufferDataListener type listener.

This operation adds certain listeners related to buffer writing and reading events. The following listener types are available.

  • ON_BUFFER_WRITE: At the time of buffer write
  • ON_BUFFER_FULL: At the time of buffer full
  • ON_BUFFER_WRITE_TIMEOUT: At the time of buffer write timeout
  • ON_BUFFER_OVERWRITE: At the time of buffer overwrite
  • ON_BUFFER_READ: At the time of buffer read
  • ON_SEND: At the time of sending to InPort
  • ON_RECEIVED: At the time of finishing sending to InPort
  • ON_SENDER_TIMEOUT: At the time of timeout of OutPort
  • ON_SENDER_ERROR: At the time of error of OutPort
  • ON_RECEIVER_FULL: At the time of bufferfull of InPort
  • ON_RECEIVER_TIMEOUT: At the time of timeout of InPort
  • ON_RECEIVER_ERROR: At the time of error of InPort

Listeners should have the following function operator().

ConnectorDataListener:: operator()(const ConnectorProfile&, const cdrStream&)

The ownership of the given listener object is transferred to this OutPort object in default. The given listener object will be destroied automatically in the OutPort's dtor or if the listener is deleted by removeConnectorDataListener() function. If you want to keep ownership of the listener object, give "false" value to 3rd argument to inhibit automatic destruction.

Parameters
listener_typeA listener type
listenerA pointer to a listener object
autocleanA flag for automatic listener destruction

Referenced by RTC::OutPort< DataType >::OutPort().

◆ addConnectorListener()

void RTC::OutPortBase::addConnectorListener ( ConnectorListenerType type,
ConnectorListener * listener,
bool autoclean = true )

Adding ConnectorListener type listener.

This operation adds certain listeners related to buffer writing and reading events. The following listener types are available.

  • ON_BUFFER_EMPTY: At the time of buffer empty
  • ON_BUFFER_READTIMEOUT: At the time of buffer read timeout

Listeners should have the following function operator().

ConnectorListener::operator()(const ConnectorProfile&)

The ownership of the given listener object is transferred to this OutPort object in default. The given listener object will be destroied automatically in the OutPort's dtor or if the listener is deleted by removeConnectorListener() function. If you want to keep ownership of the listener object, give "false" value to 3rd argument to inhibit automatic destruction.

Parameters
listener_typeA listener type
listenerA pointer to a listener object
autocleanA flag for automatic listener destruction

◆ checkEndian()

bool RTC::OutPortBase::checkEndian ( const coil::Properties & prop,
bool & littleEndian )
protected

Checking endian flag of serializer.

This operation checks endian flag of data serializer that is specified properties. If valid specification is found, this operation returns true and set argument littleEndian. True means little endian, false means big endian.

Parameters
propProperties
littleEndianEndian Information(true:little,false:big)
Returns
true:"Serializer" key doesn't exist. or "Serializer" key exists and there is a content. false:There is no content though "Serializer" key exists. or ithe content is not "Little. " though "Serializer" key exists, or the content is not "little" or "big" though "Serializer" key exists.

◆ configure()

void RTC::OutPortBase::configure ( )
protected

Configureing outport.

This operation configures the outport based on the properties.

◆ connect()

ReturnCode_t RTC::OutPortBase::connect ( ConnectorProfile & connector_profile)
override

[CORBA interface] Connect the Port

This operation establishes connection according to the given ConnectionProfile inforamtion. This function is premised on calling from mainly application program or tools.

Parameters
connector_profileThe ConnectorProfile.
Returns
ReturnCode_t The return code of ReturnCode_t type.

◆ connectors()

const std::vector< OutPortConnector * > & RTC::OutPortBase::connectors ( )

Connector list.

This operation returns connector list

Returns
connector list

◆ createConnector() [1/2]

OutPortConnector * RTC::OutPortBase::createConnector ( const ConnectorProfile & cprof,
coil::Properties & prop,
InPortConsumer * consumer )
protected

◆ createConnector() [2/2]

OutPortConnector * RTC::OutPortBase::createConnector ( const ConnectorProfile & cprof,
coil::Properties & prop,
OutPortProvider * provider )
protected

◆ createConsumer()

InPortConsumer * RTC::OutPortBase::createConsumer ( const ConnectorProfile & cprof,
coil::Properties & prop )
protected

InPort consumer creation .

◆ createProvider()

OutPortProvider * RTC::OutPortBase::createProvider ( ConnectorProfile & cprof,
coil::Properties & prop )
protected

OutPort provider creation .

◆ deactivateInterfaces()

void RTC::OutPortBase::deactivateInterfaces ( )
overridevirtual

Deactivate all Port interfaces.

This operation deactivate all interfaces that is registered in the ports.

Implements RTC::PortBase.

◆ getConnectorById()

OutPortConnector * RTC::OutPortBase::getConnectorById ( const char * id)

Getting ConnectorProfile by ID.

This operation returns Connector specified by ID.

Parameters
idConnector ID
Returns
A pointer to connector

◆ getConnectorByName()

OutPortConnector * RTC::OutPortBase::getConnectorByName ( const char * name)

Getting Connector by name.

This operation returns Connector specified by name.

Parameters
idConnector ID
Returns
A pointer to connector

◆ getConnectorIds()

coil::vstring RTC::OutPortBase::getConnectorIds ( )

ConnectorId list.

This operation returns ConnectorId list

Returns
connector list

◆ getConnectorNames()

coil::vstring RTC::OutPortBase::getConnectorNames ( )

Connector name list.

This operation returns Connector name list

Returns
connector name list

◆ getConnectorProfileById()

bool RTC::OutPortBase::getConnectorProfileById ( const char * id,
ConnectorInfo & prof )

Getting ConnectorProfile by name.

This operation returns ConnectorProfile specified by name

Parameters
idConnector ID
profConnectorProfile
Returns
false specified ID does not exist

◆ getConnectorProfileByName()

bool RTC::OutPortBase::getConnectorProfileByName ( const char * name,
ConnectorInfo & prof )

Getting ConnectorProfile by name.

This operation returns ConnectorProfile specified by name

Parameters
idConnector ID
profConnectorProfile
Returns
false specified name does not exist

◆ getConnectorProfiles()

ConnectorInfoList RTC::OutPortBase::getConnectorProfiles ( )

ConnectorProfile list.

This operation returns ConnectorProfile list

Returns
connector list

◆ getListeners()

virtual ConnectorListenersBase * RTC::OutPortBase::getListeners ( )
virtual

Getting listeners holder.

This operation returns listeners holder.

Returns
ConnectorListeners

◆ getLocalInPort()

InPortBase * RTC::OutPortBase::getLocalInPort ( const ConnectorInfo & profile)
protected

Getting local peer InPort if available .

◆ init()

void RTC::OutPortBase::init ( coil::Properties & prop)

Initializing properties.

This operation initializes outport's properties

Parameters
propProperty for setting ports

◆ initConnectorListeners()

virtual void RTC::OutPortBase::initConnectorListeners ( )
protectedvirtual

Reimplemented in RTC::OutPort< DataType >.

◆ initConsumers()

void RTC::OutPortBase::initConsumers ( )
protected

InPort consumer initialization .

◆ initProviders()

void RTC::OutPortBase::initProviders ( )
protected

OutPort provider initialization .

◆ isLittleEndian()

bool RTC::OutPortBase::isLittleEndian ( )

return it whether endian setting.

Returns
Return true in the case of "little", false in "big" than it.

◆ notify_connect()

ReturnCode_t RTC::OutPortBase::notify_connect ( ConnectorProfile & connector_profile)
overrideprotected

◆ properties()

coil::Properties & RTC::OutPortBase::properties ( )

Get properties.

Getting properties of this OutPort

Returns
OutPort's properties

◆ publishInterfaces()

ReturnCode_t RTC::OutPortBase::publishInterfaces ( ConnectorProfile & cprof)
overrideprotectedvirtual

Publish interface information.

This operation is pure virutal function that would be called at the beginning of the notify_connect() process sequence. In the notify_connect(), the following methods would be called in order.

This operation should create the new connection for the new connector_id, and should update the connection for the existing connection_id.

Parameters
connector_profileThe connection profile information
Returns
The return code of ReturnCode_t type.

Implements RTC::PortBase.

◆ removeConnectorDataListener()

void RTC::OutPortBase::removeConnectorDataListener ( ConnectorDataListenerType type,
ConnectorDataListener * listener )

Removing BufferDataListener type listener.

This operation removes a specified listener.

Parameters
listener_typeA listener type
listenerA pointer to a listener object

◆ removeConnectorListener()

void RTC::OutPortBase::removeConnectorListener ( ConnectorListenerType type,
ConnectorListener * listener )

Removing BufferDataListener type listener.

This operation removes a specified listener.

Parameters
listener_typeA listener type
listenerA pointer to a listener object

◆ subscribeInterfaces()

ReturnCode_t RTC::OutPortBase::subscribeInterfaces ( const ConnectorProfile & cprof)
overrideprotectedvirtual

Subscribe to the interface.

This operation is pure virutal function that would be called at the middle of the notify_connect() process sequence. In the notify_connect(), the following methods would be called in order.

Parameters
connector_profileThe connection profile information
Returns
The return code of ReturnCode_t type.

Implements RTC::PortBase.

◆ unsubscribeInterfaces()

void RTC::OutPortBase::unsubscribeInterfaces ( const ConnectorProfile & connector_profile)
overrideprotectedvirtual

Disconnect the interface connection.

This operation is pure virutal function that would be called at the end of the notify_disconnect() process sequence. In the notify_disconnect(), the following methods would be called.

Parameters
connector_profileThe profile information associated with the connection

Implements RTC::PortBase.

◆ write()

virtual bool RTC::OutPortBase::write ( )
pure virtual

Write data.

Write data to the port. Write the value, which was set to the bound variable, to the port.

Returns
Writing result (Successful:true, Failed:false)

Implemented in RTC::OutPort< DataType >.

Member Data Documentation

◆ m_connectors

std::vector<OutPortConnector*> RTC::OutPortBase::m_connectors
protected

Connection list .

Referenced by RTC::OutPort< DataType >::write().

◆ m_consumerTypes

coil::vstring RTC::OutPortBase::m_consumerTypes
protected

Available consumers .

◆ m_listeners

ConnectorListenersBase* RTC::OutPortBase::m_listeners
protected

◆ m_littleEndian

bool RTC::OutPortBase::m_littleEndian
protected

Connected Endian .

◆ m_providerTypes

coil::vstring RTC::OutPortBase::m_providerTypes
protected

Available providers .


The documentation for this class was generated from the following file: