OpenRTM-aist  1.2.1
Public Member Functions | List of all members
RTC::OutPort< DataType > Class Template Reference

OutPort template class. More...

#include <OutPort.h>

Inheritance diagram for RTC::OutPort< DataType >:
Inheritance graph
[legend]
Collaboration diagram for RTC::OutPort< DataType >:
Collaboration graph
[legend]

Public Member Functions

 OutPort (const char *name, DataType &value)
 Constructor. More...
 
virtual ~OutPort (void)
 Destructor. More...
 
virtual bool write (DataType &value)
 Write data. More...
 
bool write ()
 Write data. More...
 
bool operator<< (DataType &value)
 Write data. More...
 
DataPortStatus::Enum getStatus (int index)
 Getting specified connector's writing status. More...
 
DataPortStatusList getStatusList ()
 Getting specified connector's writing status list. More...
 
void setOnWrite (OnWrite< DataType > *on_write)
 Set OnWrite callback. More...
 
void setOnWriteConvert (OnWriteConvert< DataType > *on_wconvert)
 Set OnWriteConvert callback. More...
 
virtual void read (DataType &data)
 
virtual bool isEmpty ()
 
virtual bool isNew ()
 
- Public Member Functions inherited from RTC::OutPortBase
 OutPortBase (const char *name, const char *data_type)
 Constructor. More...
 
virtual ~OutPortBase (void)
 Destructor. More...
 
void init (coil::Properties &prop)
 Initializing properties. More...
 
coil::Propertiesproperties ()
 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...
 
OutPortConnectorgetConnectorById (const char *id)
 Getting ConnectorProfile by ID. More...
 
OutPortConnectorgetConnectorByName (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 ConnectorListenersgetListeners ()
 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 DirectPortBasegetDirectPort ()
 

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...
 
- Public Attributes inherited from RTC::OutPortBase
DATAPORTSTATUS_ENUM typedef std::vector< OutPortConnector * > ConnectorList
 
- Protected Types inherited from RTC::PortBase
typedef coil::Guard< coil::MutexGuard
 
- Protected Member Functions inherited from RTC::OutPortBase
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...
 
OutPortProvidercreateProvider (ConnectorProfile &cprof, coil::Properties &prop)
 OutPort provider creation. More...
 
InPortConsumercreateConsumer (const ConnectorProfile &cprof, coil::Properties &prop)
 InPort consumer creation. More...
 
OutPortConnectorcreateConnector (const ConnectorProfile &cprof, coil::Properties &prop, InPortConsumer *consumer)
 OutPortPushConnector creation. More...
 
OutPortConnectorcreateConnector (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...
 
InPortBasegetLocalInPort (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)
 
- Protected Attributes inherited from RTC::OutPortBase
std::vector< OutPortConnector * > m_connectors
 Connection list. More...
 
coil::vstring m_providerTypes
 Available providers. More...
 
coil::vstring m_consumerTypes
 Available consumers. More...
 
bool m_littleEndian
 Connected Endian. More...
 
ConnectorListeners m_listeners
 ConnectorDataListener listener. More...
 
- Protected Attributes inherited from RTC::PortBase
coil::Properties m_properties
 Properties. More...
 
Logger rtclog
 Logger stream. More...
 
PortProfile m_profile
 PortProfile of the Port. More...
 
RTC::PortService_var m_objref
 Object Reference of the Port. More...
 
coil::Mutex m_profile_mutex
 Mutex of PortProfile. More...
 
coil::Mutex m_connectorsMutex
 
std::string m_ownerInstanceName
 Instance name. More...
 
int m_connectionLimit
 The maximum number of connections. More...
 
ConnectionCallbackm_onPublishInterfaces
 Callback functor objects. More...
 
ConnectionCallbackm_onSubscribeInterfaces
 Callback functor objects. More...
 
ConnectionCallbackm_onConnected
 Callback functor objects. More...
 
ConnectionCallbackm_onUnsubscribeInterfaces
 Callback functor objects. More...
 
ConnectionCallbackm_onDisconnected
 Callback functor objects. More...
 
ConnectionCallbackm_onConnectionLost
 Callback functor objects. More...
 
PortConnectListenersm_portconnListeners
 PortConnectListener holder. More...
 
DirectPortBasem_directport
 

Detailed Description

template<class DataType>
class RTC::OutPort< DataType >

OutPort template class.

This is the OutPort template class. The data type "DateType" supported by OutPort and the buffer type "BufferType" are used as template arguments.

Since
0.2.0

Constructor & Destructor Documentation

template<class DataType >
RTC::OutPort< DataType >::OutPort ( const char *  name,
DataType &  value 
)
inline

Constructor.

Constructor

Parameters
namePort's name
valueData variable bound to this port
lengthBuffer length (The default value:8)

References RTC::OutPortBase::addConnectorDataListener(), RTC::PortBase::m_directport, RTC::ON_BUFFER_WRITE, and RTC::ON_SEND.

template<class DataType >
virtual RTC::OutPort< DataType >::~OutPort ( void  )
inlinevirtual

Destructor.

Destructor

Member Function Documentation

template<class DataType >
DataPortStatus::Enum RTC::OutPort< DataType >::getStatus ( int  index)
inline

Getting specified connector's writing status.

An OutPort has Connectors that are virtual data stream channel for each connection. "write()" function write into these Connectors, and each Connector returns writing-status. write() function will return a true value if all Connectors return normal status, and a false value will be returned if at least one Connector failed. This function can be used to inspect each return status

Parameters
indexConnector index
Returns
Writing status
template<class DataType >
DataPortStatusList RTC::OutPort< DataType >::getStatusList ( )
inline

Getting specified connector's writing status list.

An OutPort has Connectors that are virtual data stream channel for each connection. "write()" function write into these Connectors, and each Connector returns writing-status. write() function will return a true value if all Connectors return normal status, and a false value will be returned if at least one Connector failed. This function can be used to inspect each return status

Returns
Writing status list
template<class DataType >
virtual bool RTC::OutPort< DataType >::isEmpty ( void  )
inlinevirtual
Returns

Reimplemented from RTC::DirectOutPortBase< DataType >.

template<class DataType >
virtual bool RTC::OutPort< DataType >::isNew ( )
inlinevirtual
Returns

Reimplemented from RTC::DirectOutPortBase< DataType >.

template<class DataType >
bool RTC::OutPort< DataType >::operator<< ( DataType &  value)
inline

Write data.

Write data to the port. Write the set value to the port.

Parameters
valueThe target data for writing
Returns
Writing result (Successful:true, Failed:false)

References RTC::OutPort< DataType >::write().

template<class DataType >
virtual void RTC::OutPort< DataType >::read ( DataType &  data)
inlinevirtual
Parameters
data

Reimplemented from RTC::DirectOutPortBase< DataType >.

template<class DataType >
void RTC::OutPort< DataType >::setOnWrite ( OnWrite< DataType > *  on_write)
inline

Set OnWrite callback.

This operation sets the OnWrite callback functor that is called just before write() operation call. The ownership of the functor object is owned by caller of this operation. Therefore caller have to destruct the callback functor object by itself. Giving 0 as an argument for this operation, callback will be disabled.

Parameters
on_writeOnWrite callback functor
template<class DataType >
void RTC::OutPort< DataType >::setOnWriteConvert ( OnWriteConvert< DataType > *  on_wconvert)
inline

Set OnWriteConvert callback.

This operation sets the OnWriteConvert callback functor that converts given data and is called just before write() operation call. A recent data is given to argument and return data will be written into connector or its buffer. The ownership of the functor object is owned by caller of this operation. Therefore caller have to destruct the callback functor object by itself. Giving 0 as an argument for this operation, callback will be disabled.

Parameters
on_wconvertOnWriteConvert callback functor
template<class DataType >
virtual bool RTC::OutPort< DataType >::write ( DataType &  value)
inlinevirtual

Write data.

Write data in the port.

  • When callback functor OnWrite is already set, OnWrite will be invoked before writing into the buffer held by OutPort.
  • When the buffer held by OutPort can detect the overflow, and when it detected the overflow at writing, callback functor OnOverflow will be invoked.
  • When callback functor OnWriteConvert is already set, the return value of operator() of OnWriteConvert will be written into the buffer at the writing.
Parameters
valueThe target data for writing
Returns
Writing result (Successful:true, Failed:false)

References RTC::DataPortStatus::CONNECTION_LOST, RTC::PortBase::disconnect(), RTC::PortBase::findConnProfile(), CORBA_SeqUtil::for_each(), RTC::OutPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC::PortBase::m_onConnectionLost, RTC::DataPortStatus::PORT_OK, RTC_DEBUG, RTC_TRACE, and RTC_WARN.

template<class DataType >
bool RTC::OutPort< DataType >::write ( )
inlinevirtual

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)

Implements RTC::OutPortBase.

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


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