OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
RTC::InPortPullConnector Class Reference

InPortPullConnector class. More...

#include <InPortPullConnector.h>

Inheritance diagram for RTC::InPortPullConnector:
Collaboration diagram for RTC::InPortPullConnector:

Public Member Functions

 InPortPullConnector (ConnectorInfo info, OutPortConsumer *consumer, ConnectorListenersBase *listeners, CdrBufferBase *buffer=nullptr)
 Constructor.
 
 ~InPortPullConnector () override
 Destructor.
 
DataPortStatus read (ByteDataStreamBase *data) override
 Destructor.
 
DataPortStatus disconnect () override
 Disconnect connection.
 
void activate () override
 Connector activation.
 
void deactivate () override
 Connector deactivation.
 
void unsubscribeInterface (const coil::Properties &prop) override
 
- Public Member Functions inherited from RTC::InPortConnector
 InPortConnector (ConnectorInfo &info, ConnectorListenersBase *listeners, CdrBufferBase *buffer)
 Constructor.
 
 ~InPortConnector () override
 Destructor .
 
const ConnectorInfoprofile () override
 Getting ConnectorInfo.
 
const char * id () override
 Getting Connector ID.
 
const char * name () override
 Getting Connector name.
 
CdrBufferBasegetBuffer () override
 Getting Buffer.
 
template<class DataType >
DataPortStatus read (DataType &data)
 
virtual void setEndian (bool endian_type)
 Setting an endian type.
 
virtual bool isLittleEndian ()
 Whether this connector's endian is little.
 
virtual BufferStatus write (ByteData &cdr)
 
bool setOutPort (OutPortBase *directOutPort)
 
template<typename DataType >
bool getDirectData (DataType &data)
 
- Public Member Functions inherited from RTC::ConnectorBase
virtual ~ConnectorBase ()=default
 Destructor .
 

Protected Member Functions

void onConnect ()
 Invoke callback when connection is established .
 
void onDisconnect ()
 Invoke callback when connection is destroied .
 

Static Protected Member Functions

static CdrBufferBasecreateBuffer (ConnectorInfo &info)
 create buffer
 

Additional Inherited Members

- Protected Attributes inherited from RTC::InPortConnector
Logger rtclog
 Logger stream .
 
ConnectorInfo m_profile
 ConnectorInfo .
 
ConnectorListenersBasem_listeners
 A reference to a ConnectorListener .
 
CdrBufferBasem_buffer
 Connector's buffer .
 
bool m_littleEndian
 Connected Endian .
 
ConnectorListenersBasem_outPortListeners
 A pointer to a OutPort's ConnectorListener .
 
PortBasem_directOutPort
 OutProt pointer to the peer in the same process .
 
std::string m_marshaling_type
 
ByteDataStreamBasem_cdr
 

Detailed Description

InPortPullConnector class.

Connector class of InPort for pull type dataflow. When "pull" is specified as dataflow_type at the time of establishing connection, this object is generated and owned by the InPort. This connector and InPortPullConnector make a pair and realize pull type dataflow of data ports. One connector corresponds to one connection which provides a data stream. Connector is distinguished by ID of the UUID that is generated at establishing connection.

InPortPullConnector owns and manages the following objects.

Data written into the OutPort is passed to the OutPortPullConnector::write(), and is written into the buffer. Consequently, InPort::read() and InPortPullConnector::read() call OutPortConsumer::get(), and it reads data from the buffer of OutPortPullConnector. Finally data would be written into the InPortPullConnector's buffer.

Since
1.0.0

Constructor & Destructor Documentation

◆ InPortPullConnector()

RTC::InPortPullConnector::InPortPullConnector ( ConnectorInfo info,
OutPortConsumer * consumer,
ConnectorListenersBase * listeners,
CdrBufferBase * buffer = nullptr )

Constructor.

InPortPullConnector's constructor is given the following arguments. According to ConnectorInfo which includes connection information, a buffer is created. It is also given a pointer to the consumer object for the OutPort interface. The owner-ship of the pointer is owned by this OutPortPullConnector, it has responsibility to destruct the OutPortConsumer. OutPortPullConnector also has ConnectorListeners to provide event callback mechanisms, and they would be called at the proper timing. If data buffer is given by OutPortBase, the pointer to the buffer is also given as arguments.

Parameters
infoConnectorInfo
consumerOutPortConsumer
listenersConnectorListeners type lsitener object list
bufferCdrBufferBase type buffer

◆ ~InPortPullConnector()

RTC::InPortPullConnector::~InPortPullConnector ( )
override

Destructor.

This operation calls disconnect(), which destructs and deletes the consumer, the publisher and the buffer.

Member Function Documentation

◆ activate()

void RTC::InPortPullConnector::activate ( )
inlineoverridevirtual

Connector activation.

This operation activates this connector

Implements RTC::ConnectorBase.

◆ createBuffer()

static CdrBufferBase * RTC::InPortPullConnector::createBuffer ( ConnectorInfo & info)
staticprotected

create buffer

This function creates a buffer based on given information.

Parameters
infoConnector information
Returns
The poitner to the buffer

◆ deactivate()

void RTC::InPortPullConnector::deactivate ( )
inlineoverridevirtual

Connector deactivation.

This operation deactivates this connector

Implements RTC::ConnectorBase.

◆ disconnect()

DataPortStatus RTC::InPortPullConnector::disconnect ( )
overridevirtual

Disconnect connection.

This operation disconnect this connection

Implements RTC::InPortConnector.

◆ onConnect()

void RTC::InPortPullConnector::onConnect ( )
protected

Invoke callback when connection is established .

◆ onDisconnect()

void RTC::InPortPullConnector::onDisconnect ( )
protected

Invoke callback when connection is destroied .

◆ read()

DataPortStatus RTC::InPortPullConnector::read ( ByteDataStreamBase * data)
overridevirtual

Destructor.

This function get data from OutPortConsumer. If data is read properly, this function will return PORT_OK return code. Except normal return, BUFFER_EMPTY, TIMEOUT, PRECONDITION_NOT_MET and PORT_ERROR will be returned as error codes.

Returns
PORT_OK Normal return BUFFER_EMPTY Buffer empty TIMEOUT Timeout PRECONDITION_NOT_MET Preconditin not met PORT_ERROR Other error

Implements RTC::InPortConnector.

◆ unsubscribeInterface()

void RTC::InPortPullConnector::unsubscribeInterface ( const coil::Properties & prop)
overridevirtual
Parameters
prop

Reimplemented from RTC::InPortConnector.


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