OpenRTM-aist 2.0.2
|
InPort template class. More...
#include <InPort.h>
Public Member Functions | |
InPort (const char *name, DataType &value) | |
A constructor. | |
~InPort () override | |
Destructor. | |
virtual const char * | name () |
Get port name. | |
virtual bool | isNew (std::string name) |
Check whether the data is newest. | |
virtual bool | isNew (coil::vstring &names) |
bool | isNew () override |
Check whether the data is newest. | |
virtual bool | isEmpty (std::string name) |
Check whether the data is newest. | |
virtual bool | isEmpty (coil::vstring &names) |
bool | isEmpty () override |
Check whether the data is newest. | |
void | write (DataType &data) override |
bool | read (std::string name="") override |
Readout the value from DataPort. | |
virtual void | update () |
Read the newly value to type-T variable which is bound to InPort's buffer. | |
void | operator>> (DataType &rhs) |
Read the newly value data in InPort to type-T variable. | |
DataPortStatus | getStatus (int) |
Getting specified connector's writing status. | |
DataPortStatusList | getStatusList () |
Getting specified connector's writing status list. | |
void | setOnRead (OnRead< DataType > *on_read) |
Set callback when data is read from the InPort buffer. | |
void | setOnReadConvert (OnReadConvert< DataType > *on_rconvert) |
Set callback when data is readout to the InPort buffer. | |
![]() | |
InPortBase (const char *name, const char *data_type) | |
Constructor. | |
~InPortBase () override | |
Destructor. | |
virtual void | init (coil::Properties &prop) |
Initializing properties. | |
coil::Properties & | properties () |
Get properties. | |
const std::vector< InPortConnector * > & | connectors () |
Connector list. | |
ConnectorInfoList | getConnectorProfiles () |
ConnectorProfile list. | |
coil::vstring | getConnectorIds () |
ConnectorId list. | |
coil::vstring | getConnectorNames () |
Connector name list. | |
InPortConnector * | getConnectorById (const char *id) |
Getting ConnectorProfile by ID. | |
InPortConnector * | getConnectorByName (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 ConnectorListenersBase * | getListeners () |
Getting listeners holder. | |
ReturnCode_t | notify_connect (ConnectorProfile &connector_profile) override |
![]() | |
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 DirectPortBase * | getDirectPort () |
Protected Member Functions | |
void | initConnectorListeners () override |
![]() | |
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 () |
InPort provider initialization . | |
void | initConsumers () |
OutPort consumer initialization . | |
bool | checkEndian (const coil::Properties &prop, bool &littleEndian) |
Checking endian flag of serializer. | |
InPortProvider * | createProvider (ConnectorProfile &cprof, coil::Properties &prop) |
InPort provider creation . | |
OutPortConsumer * | createConsumer (const ConnectorProfile &cprof, coil::Properties &prop) |
InPort provider creation . | |
InPortConnector * | createConnector (ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider) |
InPortPushConnector creation . | |
InPortConnector * | createConnector (const ConnectorProfile &cprof, coil::Properties &prop, OutPortConsumer *consumer) |
InPortPullConnector creation . | |
OutPortBase * | getLocalOutPort (const ConnectorInfo &profile) |
Getting local peer OutPort if available . | |
![]() | |
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. | |
Additional Inherited Members | |
![]() | |
using | ConnectorList = std::vector<InPortConnector*> |
![]() | |
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. | |
![]() | |
bool | m_singlebuffer |
Buffer mode. | |
CdrBufferBase * | m_thebuffer |
Buffer . | |
coil::vstring | m_providerTypes |
Available providers . | |
coil::vstring | m_consumerTypes |
Available consumers . | |
ConnectorList | m_connectors |
Connection list . | |
bool | m_littleEndian |
Connected Endian . | |
ConnectorListenersBase * | m_listeners |
ConnectorDataListener listener . | |
![]() | |
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 . | |
ConnectionCallback * | m_onPublishInterfaces {nullptr} |
Callback functor objects. | |
ConnectionCallback * | m_onSubscribeInterfaces {nullptr} |
Callback functor objects. | |
ConnectionCallback * | m_onConnected {nullptr} |
Callback functor objects. | |
ConnectionCallback * | m_onUnsubscribeInterfaces {nullptr} |
Callback functor objects. | |
ConnectionCallback * | m_onDisconnected {nullptr} |
Callback functor objects. | |
ConnectionCallback * | m_onConnectionLost {nullptr} |
Callback functor objects. | |
PortConnectListeners * | m_portconnListeners {nullptr} |
PortConnectListener holder. | |
DirectPortBase * | m_directport {nullptr} |
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. 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. |
References RTC::InPortBase::addConnectorDataListener(), RTC::PortBase::addProperty(), CdrMemoryStreamInit(), RTC::getSerializerList(), RTC::InPort< DataType >::initConnectorListeners(), RTC::PortBase::m_directport, RTC::ON_BUFFER_READ, RTC::ON_RECEIVED, and RTC_DEBUG.
|
overridedefault |
Destructor.
Destructor
|
inline |
Getting specified connector's writing status.
An InPort 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
index | Connector index |
|
inline |
Getting specified connector's writing status list.
An InPort 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
|
inlineoverrideprotectedvirtual |
Reimplemented from RTC::InPortBase.
References RTC::InPortBase::m_listeners.
Referenced by RTC::InPort< DataType >::InPort().
|
inlineoverridevirtual |
Check whether the data is newest.
Check whether the data stored at a current buffer position is newest.
Implements RTC::DirectInPortBase< DataType >.
References RTC::InPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC_DEBUG, and RTC_TRACE.
|
inlinevirtual |
References RTC::InPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC_DEBUG, and RTC_TRACE.
|
inlinevirtual |
Check whether the data is newest.
Check whether the data stored at a current buffer position is newest.
References RTC::InPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC::InPort< DataType >::name(), RTC_DEBUG, and RTC_TRACE.
|
inlineoverridevirtual |
Check whether the data is newest.
Check whether the data stored at a current buffer position is newest.
Implements RTC::DirectInPortBase< DataType >.
References RTC::InPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC_DEBUG, and RTC_TRACE.
|
inlinevirtual |
References RTC::InPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC_DEBUG, and RTC_TRACE.
|
inlinevirtual |
Check whether the data is newest.
Check whether the data stored at a current buffer position is newest.
References RTC::InPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC::InPort< DataType >::name(), RTC_DEBUG, and RTC_TRACE.
|
inlinevirtual |
Get port name.
Get port name.
Referenced by RTC::InPort< DataType >::isEmpty(), RTC::InPort< DataType >::isNew(), and RTC::InPort< DataType >::read().
|
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.
rhs | The type-T variable to read from InPort's buffer |
References CORBA_Util::copyData(), and RTC::InPort< DataType >::read().
|
inlineoverridevirtual |
Readout the value from DataPort.
Readout the value from DataPort
Implements RTC::InPortBase.
References RTC::BUFFER_EMPTY, RTC::BUFFER_TIMEOUT, RTC::InPortConnector::getDirectData(), RTC::InPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC::InPort< DataType >::name(), RTC::PORT_OK, RTC::InPortConnector::read(), RTC_DEBUG, RTC_ERROR, RTC_TRACE, and RTC_WARN.
Referenced by RTC::InPort< DataType >::operator>>(), and RTC::InPort< DataType >::update().
|
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.
References RTC::InPort< DataType >::read().
|
inlineoverridevirtual |