InPort template class. More...
#include <InPort.h>
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... | |
![]() | |
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... | |
InPortConnector * | getConnectorById (const char *id) |
Getting ConnectorProfile by ID. More... | |
InPortConnector * | getConnectorByName (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::Properties & | properties () |
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... | |
![]() | |
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 | |
![]() | |
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 const char * | toString (DataPortStatus::Enum status) |
Convert DataPortStatus into the string. More... | |
![]() | |
DATAPORTSTATUS_ENUM typedef std::vector< InPortConnector * > | ConnectorList |
![]() | |
typedef coil::Guard< coil::Mutex > | Guard |
![]() | |
bool | checkEndian (const coil::Properties &prop, bool &littleEndian) |
Checking endian flag of serializer. More... | |
InPortConnector * | createConnector (ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider) |
InPortPushConnector creation. More... | |
InPortConnector * | createConnector (const ConnectorProfile &cprof, coil::Properties &prop, OutPortConsumer *consumer) |
InPortPullConnector creation. More... | |
OutPortConsumer * | createConsumer (const ConnectorProfile &cprof, coil::Properties &prop) |
InPort provider creation. More... | |
InPortProvider * | createProvider (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... | |
![]() | |
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... | |
![]() | |
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... | |
CdrBufferBase * | m_thebuffer |
Buffer. More... | |
![]() | |
int | m_connectionLimit |
The maximum number of connections. More... | |
coil::Mutex | m_connectorsMutex |
RTC::PortService_var | m_objref |
Object Reference of the Port. More... | |
ConnectionCallback * | m_onConnected |
Callback functor objects. More... | |
ConnectionCallback * | m_onConnectionLost |
Callback functor objects. More... | |
ConnectionCallback * | m_onDisconnected |
Callback functor objects. More... | |
ConnectionCallback * | m_onPublishInterfaces |
Callback functor objects. More... | |
ConnectionCallback * | m_onSubscribeInterfaces |
Callback functor objects. More... | |
ConnectionCallback * | m_onUnsubscribeInterfaces |
Callback functor objects. More... | |
std::string | m_ownerInstanceName |
Instance name. More... | |
PortConnectListeners * | m_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... | |
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.
|
inline |
A constructor.
constructor. This is bound to type-T variable given as a parameter.
name | A name of the InPort. This name is referred by InPortBase::name(). |
value | type-T variable that is bound to this InPort. |
bufsize | Buffer length of internal ring buffer of InPort (The default value:64) |
read_block | Flag 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_block | Flag 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_timeout | Data reading timeout time (millisecond) when not specifying read blocking. (The default value:0) |
write_timeout | Data writing timeout time (millisecond) when not specifying writing block. (The default value:0) |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inline |
|
inlinevirtual |
Readout the value from DataPort.
Readout the value from DataPort
Implements RTC::InPortBase.
|
inline |
|
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.
on_rconvert | OnReadConvert<DataType> type object |
|
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.
|
private |
|
private |
|
private |
Pointer to OnReadConvert callback functor.
|
private |
|
private |