Public Member Functions | Private Attributes | List of all members
RTC::InPort< DataType > Class Template Reference

InPort template class. More...

#include <InPort.h>

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

Public Member Functions

DATAPORTSTATUS_ENUM InPort (const char *name, DataType &value, int bufsize=64, bool read_block=false, bool write_block=false, int read_timeout=0, int write_timeout=0)
 A constructor. More...
 
virtual bool isEmpty ()
 Check whether the data is newest. More...
 
virtual bool isNew ()
 Check whether the data is newest. More...
 
virtual const char * name ()
 Get port name. More...
 
void operator>> (DataType &rhs)
 Read the newly value data in InPort to type-T variable. More...
 
bool read ()
 Readout the value from DataPort. More...
 
void setOnRead (OnRead< DataType > *on_read)
 Set callback when data is read from the InPort buffer. More...
 
void setOnReadConvert (OnReadConvert< DataType > *on_rconvert)
 Set callback when data is readout to the InPort buffer. More...
 
virtual void update ()
 Read the newly value to type-T variable which is bound to InPort's buffer. More...
 
virtual ~InPort (void)
 Destructor. More...
 
- Public Member Functions inherited from RTC::InPortBase
virtual void activateInterfaces ()
 Activate all Port interfaces. More...
 
void addConnectorDataListener (ConnectorDataListenerType listener_type, ConnectorDataListener *listener, bool autoclean=true)
 Adding BufferDataListener type listener. More...
 
void addConnectorListener (ConnectorListenerType callback_type, ConnectorListener *listener, bool autoclean=true)
 Adding ConnectorListener type listener. More...
 
virtual ReturnCode_t connect (ConnectorProfile &connector_profile) throw (CORBA::SystemException)
 [CORBA interface] Connect the Port More...
 
const std::vector< InPortConnector * > & connectors ()
 Connector list. More...
 
virtual void deactivateInterfaces ()
 Deactivate all Port interfaces. More...
 
InPortConnectorgetConnectorById (const char *id)
 Getting ConnectorProfile by ID. More...
 
InPortConnectorgetConnectorByName (const char *name)
 Getting Connector by name. More...
 
coil::vstring getConnectorIds ()
 ConnectorId list. More...
 
coil::vstring getConnectorNames ()
 Connector name list. 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...
 
ConnectorInfoList getConnectorProfiles ()
 ConnectorProfile list. More...
 
void init (coil::Properties &prop)
 Initializing properties. More...
 
 InPortBase (const char *name, const char *data_type)
 Constructor. More...
 
bool isLittleEndian ()
 return it whether endian setting. More...
 
coil::Propertiesproperties ()
 Get properties. More...
 
void removeConnectorDataListener (ConnectorDataListenerType listener_type, ConnectorDataListener *listener)
 Removing BufferDataListener type listener. More...
 
void removeConnectorListener (ConnectorListenerType callback_type, ConnectorListener *listener)
 Removing BufferDataListener type listener. More...
 
virtual ~InPortBase (void)
 Destructor. More...
 
- Public Member Functions inherited from RTC::PortBase
virtual ReturnCode_t disconnect (const char *connector_id) throw (CORBA::SystemException)
 [CORBA interface] Disconnect the Port More...
 
virtual ReturnCode_t disconnect_all () throw (CORBA::SystemException)
 [CORBA interface] Disconnect the All Ports More...
 
virtual ConnectorProfile * get_connector_profile (const char *connector_id) throw (CORBA::SystemException)
 [CORBA interface] Get the ConnectorProfile More...
 
virtual ConnectorProfileList * get_connector_profiles () throw (CORBA::SystemException)
 [CORBA interface] Get the ConnectorProfileList of the Port More...
 
virtual PortProfile * get_port_profile () throw (CORBA::SystemException)
 [CORBA interface] Get the PortProfile of the Port More...
 
const char * getName () const
 Get the name of this Port. More...
 
const PortProfile & getPortProfile () const
 Get the PortProfile of the Port. More...
 
PortService_ptr getPortRef ()
 Get the object reference of this Port. More...
 
const PortProfile & getProfile () const
 Get the PortProfile of the Port. More...
 
virtual ReturnCode_t notify_connect (ConnectorProfile &connector_profile) throw (CORBA::SystemException)
 [CORBA interface] Notify the Ports connection More...
 
virtual ReturnCode_t notify_disconnect (const char *connector_id) throw (CORBA::SystemException)
 [CORBA interface] Notify the Ports disconnection More...
 
 PortBase (const char *name="")
 Constructor. More...
 
void setName (const char *name)
 Set the name of this Port. More...
 
void setOnConnected (ConnectionCallback *on_connected)
 Setting callback called on connection established. More...
 
void setOnConnectionLost (ConnectionCallback *on_connection_lost)
 Setting callback called on connection lost. More...
 
void setOnDisconnected (ConnectionCallback *on_disconnected)
 Setting callback called on disconnected. 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 setOnUnsubscribeInterfaces (ConnectionCallback *on_subscribe)
 Setting callback called on unsubscribe interfaces. More...
 
void setOwner (RTObject_ptr owner)
 Set the owner RTObject of the Port. More...
 
void setPortConnectListenerHolder (PortConnectListeners *portconnListeners)
 Setting PortConnectListener holder. More...
 
void setPortRef (PortService_ptr port_ref)
 Set the object reference of this Port. More...
 
virtual ~PortBase (void)
 Destructor. More...
 

Private Attributes

std::string m_name
 
OnRead< DataType > * m_OnRead
 Pointer to OnRead callback functor. More...
 
OnReadConvert< DataType > * m_OnReadConvert
 Pointer to OnReadConvert callback functor. More...
 
std::string m_typename
 
DataType & m_value
 The reference to type-T value bound this OutPort. More...
 

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::InPortBase
DATAPORTSTATUS_ENUM typedef std::vector< InPortConnector * > ConnectorList
 
- Protected Types inherited from RTC::PortBase
typedef coil::Guard< coil::MutexGuard
 
- Protected Member Functions inherited from RTC::InPortBase
bool checkEndian (const coil::Properties &prop, bool &littleEndian)
 Checking endian flag of serializer. More...
 
InPortConnectorcreateConnector (ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider)
 InPortPushConnector creation. More...
 
InPortConnectorcreateConnector (const ConnectorProfile &cprof, coil::Properties &prop, OutPortConsumer *consumer)
 InPortPullConnector creation. More...
 
OutPortConsumercreateConsumer (const ConnectorProfile &cprof, coil::Properties &prop)
 InPort provider creation. More...
 
InPortProvidercreateProvider (ConnectorProfile &cprof, coil::Properties &prop)
 InPort provider creation. More...
 
void initConsumers ()
 OutPort consumer initialization. More...
 
void initProviders ()
 InPort provider initialization. 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...
 
- Protected Member Functions inherited from RTC::PortBase
virtual ReturnCode_t _publishInterfaces (void)
 Publish interface information. More...
 
template<class ValueType >
void addProperty (const char *key, ValueType value)
 Add NameValue data to PortProfile's properties. More...
 
bool appendInterface (const char *name, const char *type_name, PortInterfacePolarity pol)
 Append an interface to the PortInterfaceProfile. More...
 
void appendProperty (const char *key, const char *value)
 Append NameValue data to PortProfile's properties. More...
 
bool checkPorts (::RTC::PortServiceList &ports)
 Existence of ports. More...
 
virtual ReturnCode_t connectNext (ConnectorProfile &connector_profile)
 Call notify_connect() of the next Port. More...
 
bool deleteInterface (const char *name, PortInterfacePolarity pol)
 Delete the interface registration from the PortInterfaceProfile. More...
 
virtual ReturnCode_t disconnectNext (ConnectorProfile &connector_profile)
 Call notify_disconnect() of the next Port. More...
 
bool eraseConnectorProfile (const char *id)
 Delete the ConnectorProfile. More...
 
ConnectorProfile findConnProfile (const char *id)
 Find ConnectorProfile with id. More...
 
CORBA::Long findConnProfileIndex (const char *id)
 Find ConnectorProfile with id. More...
 
const std::string getUUID () const
 Generate the UUID. More...
 
bool isEmptyId (const ConnectorProfile &connector_profile) const
 Check whether connector_id of ConnectorProfile is empty. More...
 
bool isExistingConnId (const char *id)
 Check whether the given id exists in stored ConnectorProfiles. More...
 
void onConnected (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onConnectNextport (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onDisconnected (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onDisconnectNextport (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onNotifyConnect (const char *portname, RTC::ConnectorProfile &profile)
 
void onNotifyDisconnect (const char *portname, RTC::ConnectorProfile &profile)
 
void onPublishInterfaces (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onSubscribeInterfaces (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onUnsubscribeInterfaces (const char *portname, RTC::ConnectorProfile &profile)
 
virtual void setConnectionLimit (int limit_value)
 Set the maximum number of connections. More...
 
void setUUID (ConnectorProfile &connector_profile) const
 Generate and set the UUID to the ConnectorProfile. More...
 
void updateConnectorProfile (const ConnectorProfile &connector_profile)
 Append or update the ConnectorProfile list. More...
 
void updateConnectors ()
 Disconnect ports that doesn't exist. More...
 
- Protected Attributes inherited from RTC::InPortBase
ConnectorList m_connectors
 Connection list. More...
 
coil::vstring m_consumerTypes
 Available consumers. More...
 
ConnectorListeners m_listeners
 ConnectorDataListener listener. More...
 
bool m_littleEndian
 Connected Endian. More...
 
coil::Properties m_properties
 Properties. More...
 
coil::vstring m_providerTypes
 Available providers. More...
 
bool m_singlebuffer
 Buffer mode. More...
 
CdrBufferBasem_thebuffer
 Buffer. More...
 
- Protected Attributes inherited from RTC::PortBase
int m_connectionLimit
 The maximum number of connections. More...
 
coil::Mutex m_connectorsMutex
 
RTC::PortService_var m_objref
 Object Reference of the Port. More...
 
ConnectionCallbackm_onConnected
 Callback functor objects. More...
 
ConnectionCallbackm_onConnectionLost
 Callback functor objects. More...
 
ConnectionCallbackm_onDisconnected
 Callback functor objects. More...
 
ConnectionCallbackm_onPublishInterfaces
 Callback functor objects. More...
 
ConnectionCallbackm_onSubscribeInterfaces
 Callback functor objects. More...
 
ConnectionCallbackm_onUnsubscribeInterfaces
 Callback functor objects. More...
 
std::string m_ownerInstanceName
 Instance name. More...
 
PortConnectListenersm_portconnListeners
 PortConnectListener holder. More...
 
PortProfile m_profile
 PortProfile of the Port. More...
 
coil::Mutex m_profile_mutex
 Mutex of PortProfile. More...
 
Logger rtclog
 Logger stream. More...
 

Detailed Description

template<class DataType>
class RTC::InPort< DataType >

InPort template class.

This is a template class that implements InPort. <T> is the type defined in BasicDataType.idl and must be the structure which has both Time type tm and type-T data as a member. InPort has a ring buffer internally, and stores the received data externally in this buffer one by one. The size of ring buffer can be specified according to the argument of constructor, though the default size is 64. Unread data and data which is already read are managed with the flag, and the data can be handled by the isNew(), write(), read(), isFull() and isEmpty() method etc.

Since
0.2.0

Definition at line 89 of file InPort.h.

Constructor & Destructor Documentation

template<class DataType>
DATAPORTSTATUS_ENUM RTC::InPort< DataType >::InPort ( const char *  name,
DataType &  value,
int  bufsize = 64,
bool  read_block = false,
bool  write_block = false,
int  read_timeout = 0,
int  write_timeout = 0 
)
inline

A constructor.

constructor. This is bound to type-T variable given as a parameter.

Parameters
nameA name of the InPort. This name is referred by InPortBase::name().
valuetype-T variable that is bound to this InPort.
bufsizeBuffer length of internal ring buffer of InPort (The default value:64)
read_blockFlag of reading block. When there are not unread data at reading data, set whether to block data until receiving the next data. (The default value:false)
write_blockFlag of writing block. If the buffer was full at writing data, set whether to block data until the buffer has space. (The default value:false)
read_timeoutData reading timeout time (millisecond) when not specifying read blocking. (The default value:0)
write_timeoutData writing timeout time (millisecond) when not specifying writing block. (The default value:0)

Definition at line 145 of file InPort.h.

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

Destructor.

Destructor

Definition at line 174 of file InPort.h.

Member Function Documentation

template<class DataType>
virtual bool RTC::InPort< DataType >::isEmpty ( void  )
inlinevirtual

Check whether the data is newest.

Check whether the data stored at a current buffer position is newest.

Returns
Newest data check result ( true:Newest data. Data has not been readout yet. false:Past data¡¥Data has already been readout.)

Definition at line 276 of file InPort.h.

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

Check whether the data is newest.

Check whether the data stored at a current buffer position is newest.

Returns
Newest data check result ( true:Newest data. Data has not been readout yet. false:Past data¡¥Data has already been readout.)

Definition at line 225 of file InPort.h.

template<class DataType>
virtual const char* RTC::InPort< DataType >::name ( )
inlinevirtual

Get port name.

Get port name.

Returns
The port name

Definition at line 195 of file InPort.h.

template<class DataType>
void RTC::InPort< DataType >::operator>> ( DataType &  rhs)
inline

Read the newly value data in InPort to type-T variable.

Read the newly data set in InPort and set to specified data variable.

Parameters
rhsThe type-T variable to read from InPort's buffer

Definition at line 477 of file InPort.h.

template<class DataType>
bool RTC::InPort< DataType >::read ( )
inlinevirtual

Readout the value from DataPort.

Readout the value from DataPort

  • When Callback functor OnRead is already set, OnRead will be invoked before reading from the buffer held by DataPort.
  • When the buffer held by DataPort can detect the underflow, and when it detected the underflow at reading, callback functor OnUnderflow will be invoked.
  • When callback functor OnReadConvert is already set, the return value of operator() of OnReadConvert will be the return value of read().
  • When timeout of reading is already set by setReadTimeout(), it waits for only timeout time until the state of the buffer underflow is reset, and if OnUnderflow is already set, this will be invoked to return.
Returns
Readout result (Successful:true, Failed:false)

Implements RTC::InPortBase.

Definition at line 378 of file InPort.h.

template<class DataType>
void RTC::InPort< DataType >::setOnRead ( OnRead< DataType > *  on_read)
inline

Set callback when data is read from the InPort buffer.

Set the callback object that is invoked right before data is read from the InPort's buffer

Parameters
on_readOnRead<DataType> type object

Definition at line 505 of file InPort.h.

template<class DataType>
void RTC::InPort< DataType >::setOnReadConvert ( OnReadConvert< DataType > *  on_rconvert)
inline

Set callback when data is readout to the InPort buffer.

Set the callback object that is invoked when data is readout to the InPort's buffer. The return value of callback object is the return result of the read() method.

Parameters
on_rconvertOnReadConvert<DataType> type object

Definition at line 533 of file InPort.h.

template<class DataType>
virtual void RTC::InPort< DataType >::update ( void  )
inlinevirtual

Read the newly value to type-T variable which is bound to InPort's buffer.

Read the newly value to type-T data which is bound to InPort's buffer. The type-T variable must be bound to InPort in constructor. Since this method assumes to be used for polymorphic, its argument and the return value do not depend on type.

Definition at line 452 of file InPort.h.

Member Data Documentation

template<class DataType>
std::string RTC::InPort< DataType >::m_name
private

Port's name

Definition at line 547 of file InPort.h.

template<class DataType>
OnRead<DataType>* RTC::InPort< DataType >::m_OnRead
private

Pointer to OnRead callback functor.

Definition at line 565 of file InPort.h.

template<class DataType>
OnReadConvert<DataType>* RTC::InPort< DataType >::m_OnReadConvert
private

Pointer to OnReadConvert callback functor.

Definition at line 574 of file InPort.h.

template<class DataType>
std::string RTC::InPort< DataType >::m_typename
private

Definition at line 539 of file InPort.h.

template<class DataType>
DataType& RTC::InPort< DataType >::m_value
private

The reference to type-T value bound this OutPort.

Definition at line 556 of file InPort.h.


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


openrtm_aist
Author(s): Noriaki Ando
autogenerated on Mon Jun 10 2019 14:08:03