OpenRTM-aist
1.2.1
|
Output base class. More...
#include <OutPortBase.h>
Public Member Functions | |
OutPortBase (const char *name, const char *data_type) | |
Constructor. More... | |
virtual | ~OutPortBase (void) |
Destructor. More... | |
void | init (coil::Properties &prop) |
Initializing properties. More... | |
virtual bool | write ()=0 |
Write data. More... | |
coil::Properties & | properties () |
Get properties. More... | |
const std::vector< OutPortConnector * > & | connectors () |
Connector list. More... | |
ConnectorInfoList | getConnectorProfiles () |
ConnectorProfile list. More... | |
coil::vstring | getConnectorIds () |
ConnectorId list. More... | |
coil::vstring | getConnectorNames () |
Connector name list. More... | |
OutPortConnector * | getConnectorById (const char *id) |
Getting ConnectorProfile by ID. More... | |
OutPortConnector * | getConnectorByName (const char *name) |
Getting Connector by name. More... | |
bool | getConnectorProfileById (const char *id, ConnectorInfo &prof) |
Getting ConnectorProfile by name. More... | |
bool | getConnectorProfileByName (const char *name, ConnectorInfo &prof) |
Getting ConnectorProfile by name. More... | |
virtual void | activateInterfaces () |
Activate all Port interfaces. More... | |
virtual void | deactivateInterfaces () |
Deactivate all Port interfaces. More... | |
void | addConnectorDataListener (ConnectorDataListenerType listener_type, ConnectorDataListener *listener, bool autoclean=true) |
Adding BufferDataListener type listener. More... | |
void | removeConnectorDataListener (ConnectorDataListenerType listener_type, ConnectorDataListener *listener) |
Removing BufferDataListener type listener. More... | |
void | addConnectorListener (ConnectorListenerType callback_type, ConnectorListener *listener, bool autoclean=true) |
Adding ConnectorListener type listener. More... | |
void | removeConnectorListener (ConnectorListenerType callback_type, ConnectorListener *listener) |
Removing BufferDataListener type listener. More... | |
bool | isLittleEndian () |
return it whether endian setting. More... | |
virtual ReturnCode_t | connect (ConnectorProfile &connector_profile) throw (CORBA::SystemException) |
[CORBA interface] Connect the Port More... | |
virtual ConnectorListeners & | getListeners () |
Getting listeners holder. More... | |
Public Member Functions inherited from RTC::PortBase | |
PortBase (const char *name="") | |
Constructor. More... | |
virtual | ~PortBase (void) |
Destructor. More... | |
virtual PortProfile * | get_port_profile () throw (CORBA::SystemException) |
[CORBA interface] Get the PortProfile of the Port More... | |
const PortProfile & | getPortProfile () const |
Get the PortProfile of the Port. More... | |
virtual ConnectorProfileList * | get_connector_profiles () throw (CORBA::SystemException) |
[CORBA interface] Get the ConnectorProfileList of the Port More... | |
virtual ConnectorProfile * | get_connector_profile (const char *connector_id) throw (CORBA::SystemException) |
[CORBA interface] Get the ConnectorProfile More... | |
virtual ReturnCode_t | disconnect (const char *connector_id) throw (CORBA::SystemException) |
[CORBA interface] Disconnect the Port More... | |
virtual ReturnCode_t | notify_disconnect (const char *connector_id) throw (CORBA::SystemException) |
[CORBA interface] Notify the Ports disconnection More... | |
virtual ReturnCode_t | disconnect_all () throw (CORBA::SystemException) |
[CORBA interface] Disconnect the All Ports More... | |
void | setName (const char *name) |
Set the name of this Port. More... | |
const char * | getName () const |
Get the name of this Port. More... | |
const PortProfile & | getProfile () const |
Get the PortProfile of the Port. More... | |
void | setPortRef (PortService_ptr port_ref) |
Set the object reference of this Port. More... | |
PortService_ptr | getPortRef () const |
Get the object reference of this Port. More... | |
void | setOwner (RTObject_ptr owner) |
Set the owner RTObject of the Port. More... | |
void | setOnPublishInterfaces (ConnectionCallback *on_publish) |
Setting callback called on publish interfaces. More... | |
void | setOnSubscribeInterfaces (ConnectionCallback *on_subscribe) |
Setting callback called on publish interfaces. More... | |
void | setOnConnected (ConnectionCallback *on_connected) |
Setting callback called on connection established. More... | |
void | setOnUnsubscribeInterfaces (ConnectionCallback *on_subscribe) |
Setting callback called on unsubscribe interfaces. More... | |
void | setOnDisconnected (ConnectionCallback *on_disconnected) |
Setting callback called on disconnected. More... | |
void | setOnConnectionLost (ConnectionCallback *on_connection_lost) |
Setting callback called on connection lost. More... | |
void | setPortConnectListenerHolder (PortConnectListeners *portconnListeners) |
Setting PortConnectListener holder. More... | |
virtual DirectPortBase * | getDirectPort () |
Public Attributes | |
DATAPORTSTATUS_ENUM typedef std::vector< OutPortConnector * > | ConnectorList |
Protected Member Functions | |
void | configure () |
Configureing outport. More... | |
virtual ReturnCode_t | publishInterfaces (ConnectorProfile &connector_profile) |
Publish interface information. More... | |
virtual ReturnCode_t | subscribeInterfaces (const ConnectorProfile &connector_profile) |
Subscribe to the interface. More... | |
virtual void | unsubscribeInterfaces (const ConnectorProfile &connector_profile) |
Disconnect the interface connection. More... | |
void | initProviders () |
OutPort provider initialization. More... | |
void | initConsumers () |
InPort consumer initialization. More... | |
bool | checkEndian (const coil::Properties &prop, bool &littleEndian) |
Checking endian flag of serializer. More... | |
OutPortProvider * | createProvider (ConnectorProfile &cprof, coil::Properties &prop) |
OutPort provider creation. More... | |
InPortConsumer * | createConsumer (const ConnectorProfile &cprof, coil::Properties &prop) |
InPort consumer creation. More... | |
OutPortConnector * | createConnector (const ConnectorProfile &cprof, coil::Properties &prop, InPortConsumer *consumer) |
OutPortPushConnector creation. More... | |
OutPortConnector * | createConnector (const ConnectorProfile &cprof, coil::Properties &prop, OutPortProvider *provider) |
OutPortPullConnector creation. More... | |
virtual ReturnCode_t | notify_connect (ConnectorProfile &connector_profile) throw (CORBA::SystemException) |
[CORBA interface] Notify the Ports connection More... | |
InPortBase * | getLocalInPort (const ConnectorInfo &profile) |
Getting local peer InPort if available. More... | |
Protected Member Functions inherited from RTC::PortBase | |
virtual ReturnCode_t | connectNext (ConnectorProfile &connector_profile) |
Call notify_connect() of the next Port. More... | |
virtual ReturnCode_t | disconnectNext (ConnectorProfile &connector_profile) |
Call notify_disconnect() of the next Port. More... | |
virtual void | setConnectionLimit (int limit_value) |
Set the maximum number of connections. More... | |
virtual ReturnCode_t | _publishInterfaces (void) |
Publish interface information. More... | |
bool | isEmptyId (const ConnectorProfile &connector_profile) const |
Check whether connector_id of ConnectorProfile is empty. More... | |
const std::string | getUUID () const |
Generate the UUID. More... | |
void | setUUID (ConnectorProfile &connector_profile) const |
Generate and set the UUID to the ConnectorProfile. More... | |
bool | isExistingConnId (const char *id) |
Check whether the given id exists in stored ConnectorProfiles. More... | |
ConnectorProfile | findConnProfile (const char *id) |
Find ConnectorProfile with id. More... | |
CORBA::Long | findConnProfileIndex (const char *id) |
Find ConnectorProfile with id. More... | |
void | updateConnectorProfile (const ConnectorProfile &connector_profile) |
Append or update the ConnectorProfile list. More... | |
bool | eraseConnectorProfile (const char *id) |
Delete the ConnectorProfile. More... | |
bool | appendInterface (const char *name, const char *type_name, PortInterfacePolarity pol) |
Append an interface to the PortInterfaceProfile. More... | |
bool | deleteInterface (const char *name, PortInterfacePolarity pol) |
Delete the interface registration from the PortInterfaceProfile. More... | |
template<class ValueType > | |
void | addProperty (const char *key, ValueType value) |
Add NameValue data to PortProfile's properties. More... | |
void | appendProperty (const char *key, const char *value) |
Append NameValue data to PortProfile's properties. More... | |
void | updateConnectors () |
Disconnect ports that doesn't exist. More... | |
bool | checkPorts (::RTC::PortServiceList &ports) |
Existence of ports. More... | |
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) |
Additional Inherited Members | |
Public Types inherited from RTC::DataPortStatus | |
enum | Enum { PORT_OK = 0, PORT_ERROR, BUFFER_ERROR, BUFFER_FULL, BUFFER_EMPTY, BUFFER_TIMEOUT, SEND_FULL, SEND_TIMEOUT, RECV_EMPTY, RECV_TIMEOUT, INVALID_ARGS, PRECONDITION_NOT_MET, CONNECTION_LOST, UNKNOWN_ERROR } |
DataPortStatus return codes. More... | |
Static Public Member Functions inherited from RTC::DataPortStatus | |
static const char * | toString (DataPortStatus::Enum status) |
Convert DataPortStatus into the string. More... | |
Protected Types inherited from RTC::PortBase | |
typedef coil::Guard< coil::Mutex > | Guard |
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.
RTC::OutPortBase::OutPortBase | ( | const char * | name, |
const char * | data_type | ||
) |
Constructor.
Constructor
name | Port name |
data_type | Data type |
|
virtual |
Destructor.
Destructor Detach all subscribed Publishers.
|
virtual |
Activate all Port interfaces.
This operation activate all interfaces that is registered in the ports.
Implements RTC::PortBase.
void RTC::OutPortBase::addConnectorDataListener | ( | ConnectorDataListenerType | listener_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.
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.
listener_type | A listener type |
listener | A pointer to a listener object |
autoclean | A flag for automatic listener destruction |
Referenced by RTC::OutPort< DataType >::OutPort().
void RTC::OutPortBase::addConnectorListener | ( | ConnectorListenerType | callback_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.
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.
listener_type | A listener type |
listener | A pointer to a listener object |
autoclean | A flag for automatic listener destruction |
|
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.
prop | Properties |
littleEndian | Endian Information(true:little,false:big) |
|
protected |
Configureing outport.
This operation configures the outport based on the properties.
|
virtual |
[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.
connector_profile | The ConnectorProfile. |
Reimplemented from RTC::PortBase.
const std::vector<OutPortConnector*>& RTC::OutPortBase::connectors | ( | ) |
Connector list.
This operation returns connector list
|
protected |
OutPortPushConnector creation.
|
protected |
OutPortPullConnector creation.
|
protected |
InPort consumer creation.
|
protected |
OutPort provider creation.
|
virtual |
Deactivate all Port interfaces.
This operation deactivate all interfaces that is registered in the ports.
Implements RTC::PortBase.
OutPortConnector* RTC::OutPortBase::getConnectorById | ( | const char * | id | ) |
Getting ConnectorProfile by ID.
This operation returns Connector specified by ID.
id | Connector ID |
OutPortConnector* RTC::OutPortBase::getConnectorByName | ( | const char * | name | ) |
Getting Connector by name.
This operation returns Connector specified by name.
id | Connector ID |
coil::vstring RTC::OutPortBase::getConnectorIds | ( | ) |
ConnectorId list.
This operation returns ConnectorId list
coil::vstring RTC::OutPortBase::getConnectorNames | ( | ) |
Connector name list.
This operation returns Connector name list
bool RTC::OutPortBase::getConnectorProfileById | ( | const char * | id, |
ConnectorInfo & | prof | ||
) |
Getting ConnectorProfile by name.
This operation returns ConnectorProfile specified by name
id | Connector ID |
prof | ConnectorProfile |
bool RTC::OutPortBase::getConnectorProfileByName | ( | const char * | name, |
ConnectorInfo & | prof | ||
) |
Getting ConnectorProfile by name.
This operation returns ConnectorProfile specified by name
id | Connector ID |
prof | ConnectorProfile |
ConnectorInfoList RTC::OutPortBase::getConnectorProfiles | ( | ) |
ConnectorProfile list.
This operation returns ConnectorProfile list
|
virtual |
|
protected |
Getting local peer InPort if available.
void RTC::OutPortBase::init | ( | coil::Properties & | prop | ) |
Initializing properties.
This operation initializes outport's properties
prop | Property for setting ports |
|
protected |
InPort consumer initialization.
|
protected |
OutPort provider initialization.
bool RTC::OutPortBase::isLittleEndian | ( | ) |
return it whether endian setting.
|
protectedvirtual |
[CORBA interface] Notify the Ports connection
This operation is usually called from other ports' connect() or notify_connect() operations when connection between ports is established. This function is not premised on calling from other functions or application programs.
According to the template method pattern, the notify_connect() calls "publishInterfaces()" and "subsctiveInterfaces()" functions, which are premised on implementing in the subclasses. The processing sequence is as follows.
According to the order of port's references stored in the ConnectorProfile::ports, publishing interface information to all the ports and subscription interface information from all the ports is performed by "notify_connect()"s. This cascaded call never aborts in the halfway operations, and calling sequence shall be completed for all the ports.
connector_profile | The ConnectorProfile. |
Reimplemented from RTC::PortBase.
coil::Properties& RTC::OutPortBase::properties | ( | ) |
|
protectedvirtual |
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.
connector_profile | The connection profile information |
Implements RTC::PortBase.
void RTC::OutPortBase::removeConnectorDataListener | ( | ConnectorDataListenerType | listener_type, |
ConnectorDataListener * | listener | ||
) |
Removing BufferDataListener type listener.
This operation removes a specified listener.
listener_type | A listener type |
listener | A pointer to a listener object |
void RTC::OutPortBase::removeConnectorListener | ( | ConnectorListenerType | callback_type, |
ConnectorListener * | listener | ||
) |
Removing BufferDataListener type listener.
This operation removes a specified listener.
listener_type | A listener type |
listener | A pointer to a listener object |
|
protectedvirtual |
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.
connector_profile | The connection profile information |
Implements RTC::PortBase.
|
protectedvirtual |
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.
connector_profile | The profile information associated with the connection |
Implements RTC::PortBase.
|
pure virtual |
Write data.
Write data to the port. Write the value, which was set to the bound variable, to the port.
Implemented in RTC::OutPort< DataType >.
DATAPORTSTATUS_ENUM typedef std::vector<OutPortConnector*> RTC::OutPortBase::ConnectorList |
|
protected |
Connection list.
Referenced by RTC::OutPort< DataType >::write().
|
protected |
Available consumers.
|
protected |
ConnectorDataListener listener.
|
protected |
Connected Endian.
|
protected |
Available providers.