YARP
Yet Another Robot Platform
yarp::os::Connection Class Referenceabstract

A controller for an individual connection. More...

#include <yarp/os/Connection.h>

+ Inheritance diagram for yarp::os::Connection:

Public Member Functions

virtual ~Connection ()
 Destructor. More...
 
virtual bool isValid () const
 Check if this object is really a connection, or just an empty placeholder. More...
 
virtual bool isTextMode () const =0
 Check if carrier is textual in nature. More...
 
virtual bool isBareMode () const
 Check if carrier excludes type information from payload. More...
 
virtual void handleEnvelope (const std::string &envelope)=0
 Carriers that do not distinguish data from administrative headers (i.e. More...
 
virtual bool canEscape () const =0
 Check if carrier can encode administrative messages, as opposed to just user data. More...
 
virtual bool requireAck () const =0
 Check if carrier has flow control, requiring sent messages to be acknowledged by recipient. More...
 
virtual bool supportReply () const =0
 This flag is used by YARP to determine whether the connection can carry RPC traffic, that is, messages with replies. More...
 
virtual bool isLocal () const =0
 Check if carrier operates within a single process. More...
 
virtual bool isPush () const =0
 Check if carrier is "push" or "pull" style. More...
 
virtual bool isConnectionless () const =0
 Check if this carrier is connectionless (like udp, mcast) or connection based (like tcp). More...
 
virtual bool isBroadcast () const =0
 Check if this carrier uses a broadcast mechanism. More...
 
virtual bool isActive () const =0
 Check if carrier is alive and error free. More...
 
virtual bool modifiesIncomingData () const =0
 Check if this carrier modifies incoming data through the Carrier::modifyIncomingData method. More...
 
virtual yarp::os::ConnectionReadermodifyIncomingData (yarp::os::ConnectionReader &reader)=0
 Modify incoming payload data, if appropriate. More...
 
virtual bool acceptIncomingData (yarp::os::ConnectionReader &reader)=0
 Determine whether incoming data should be accepted. More...
 
virtual bool modifiesOutgoingData () const =0
 Check if this carrier modifies outgoing data through the Carrier::modifyOutgoingData method. More...
 
virtual const PortWritermodifyOutgoingData (const PortWriter &writer)=0
 Modify outgoing payload data, if appropriate. More...
 
virtual bool acceptOutgoingData (const PortWriter &writer)=0
 Determine whether outgoing data should be accepted. More...
 
virtual bool modifiesReply () const =0
 Check if this carrier modifies outgoing data through the Carrier::modifyReply method. More...
 
virtual PortReadermodifyReply (PortReader &reader)=0
 Modify reply payload data, if appropriate. More...
 
virtual void setCarrierParams (const yarp::os::Property &params)=0
 Configure carrier from port administrative commands. More...
 
virtual void getCarrierParams (yarp::os::Property &params) const =0
 Get carrier configuration and deliver it by port administrative commands. More...
 
virtual void getHeader (yarp::os::Bytes &header) const =0
 Provide 8 bytes describing this connection sufficiently to allow the other side of a connection to select it. More...
 
virtual void prepareDisconnect ()=0
 Do cleanup and preparation for the coming disconnect, if necessary. More...
 
virtual std::string getName () const =0
 Get the name of this connection type ("tcp", "mcast", "shmem", ...) More...
 

Detailed Description

A controller for an individual connection.

A bundle of callbacks that defines how the connection behaves.

Definition at line 29 of file Connection.h.

Constructor & Destructor Documentation

◆ ~Connection()

Connection::~Connection ( )
virtualdefault

Destructor.

Member Function Documentation

◆ acceptIncomingData()

virtual bool yarp::os::Connection::acceptIncomingData ( yarp::os::ConnectionReader reader)
pure virtual

Determine whether incoming data should be accepted.

Parameters
readerfor incoming data.
Returns
true if data should be accepted, false if it should be discarded.

Implemented in yarp::os::NullConnection, PriorityCarrier, PortMonitor, ForwardingCarrier, and yarp::os::Carrier.

◆ acceptOutgoingData()

virtual bool yarp::os::Connection::acceptOutgoingData ( const PortWriter writer)
pure virtual

Determine whether outgoing data should be accepted.

Parameters
writerfor outgoing data.
Returns
true if data should be accepted, false if it should be discarded.

Implemented in PortMonitor, yarp::os::NullConnection, ForwardingCarrier, and yarp::os::Carrier.

◆ canEscape()

virtual bool yarp::os::Connection::canEscape ( ) const
pure virtual

Check if carrier can encode administrative messages, as opposed to just user data.

The word escape is used in the sense of escape character or escape sequence here.

Returns
true if carrier can encode administrative messages

Implemented in yarp::os::Carrier, yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::NameserCarrier, yarp::os::impl::LocalCarrier, yarp::os::AbstractCarrier, XmlRpcCarrier, TcpRosCarrier, MpiCarrier, MjpegCarrier, HumanCarrier, and H264Carrier.

◆ getCarrierParams()

virtual void yarp::os::Connection::getCarrierParams ( yarp::os::Property params) const
pure virtual

Get carrier configuration and deliver it by port administrative commands.

Parameters
paramsoutput carrier properties

Implemented in yarp::os::NullConnection, yarp::os::ModifyingCarrier, yarp::os::AbstractCarrier, PriorityCarrier, PortMonitor, ForwardingCarrier, and yarp::os::Carrier.

◆ getHeader()

virtual void yarp::os::Connection::getHeader ( yarp::os::Bytes header) const
pure virtual

Provide 8 bytes describing this connection sufficiently to allow the other side of a connection to select it.

Parameters
[out]headera buffer to hold the first 8 bytes to send on a connection

Implemented in yarp::os::AbstractCarrier, yarp::os::NullConnection, ForwardingCarrier, yarp::os::ModifyingCarrier, yarp::os::impl::TcpCarrier, XmlRpcCarrier, UnixSocketCarrier, TcpRosCarrier, ShmemCarrier, MpiCarrier, MjpegCarrier, H264Carrier, yarp::os::Carrier, yarp::os::impl::UdpCarrier, yarp::os::impl::TextCarrier, yarp::os::impl::NameserCarrier, yarp::os::impl::LocalCarrier, yarp::os::impl::HttpCarrier, and HumanCarrier.

◆ getName()

◆ handleEnvelope()

virtual void yarp::os::Connection::handleEnvelope ( const std::string &  envelope)
pure virtual

Carriers that do not distinguish data from administrative headers (i.e.

canEscape returns false), can overload this method to handle the envelope inside the stream. On the receiving side, the InputStream will have to overload the yarp::os::InputStream::setReadEnvelopeCallback method, and execute the callback as soon as the envelope is ready.

Parameters
envelopethe envelope to transmit bundled with data.

Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::Carrier, MjpegCarrier, and H264Carrier.

◆ isActive()

virtual bool yarp::os::Connection::isActive ( ) const
pure virtual

◆ isBareMode()

bool Connection::isBareMode ( ) const
virtual

Check if carrier excludes type information from payload.

Returns
true if carrier is bare

Reimplemented in ForwardingCarrier, TcpRosCarrier, and BayerCarrier.

Definition at line 20 of file Connection.cpp.

◆ isBroadcast()

virtual bool yarp::os::Connection::isBroadcast ( ) const
pure virtual

Check if this carrier uses a broadcast mechanism.

This flag is used to determine whether it is appropriate to send "kill" messages using a carrier or whether they should be sent "out-of-band"

Returns
true if carrier uses a broadcast mechanism.

Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::McastCarrier, yarp::os::Carrier, and MpiBcastCarrier.

◆ isConnectionless()

virtual bool yarp::os::Connection::isConnectionless ( ) const
pure virtual

Check if this carrier is connectionless (like udp, mcast) or connection based (like tcp).

This flag is used by YARP to determine whether the connection can carry RPC traffic, that is, messages with replies. Replies are not supported by YARP on connectionless carriers.

Returns
true if carrier is connectionless

Implemented in yarp::os::Carrier, yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::UdpCarrier, yarp::os::impl::TcpCarrier, yarp::os::impl::LocalCarrier, yarp::os::AbstractCarrier, XmlRpcCarrier, UnixSocketCarrier, TcpRosCarrier, ShmemCarrier, MpiCarrier, MjpegCarrier, HumanCarrier, and H264Carrier.

◆ isLocal()

virtual bool yarp::os::Connection::isLocal ( ) const
pure virtual

Check if carrier operates within a single process.

In such a case, YARP connections may get completely reorganized in order to optimize them.

Returns
true if carrier will only operate within a single process

Implemented in yarp::os::Carrier, yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::LocalCarrier, yarp::os::AbstractCarrier, XmlRpcCarrier, TcpRosCarrier, MjpegCarrier, HumanCarrier, and H264Carrier.

◆ isPush()

virtual bool yarp::os::Connection::isPush ( ) const
pure virtual

Check if carrier is "push" or "pull" style.

Push means that the side that initiates a connection is also the one that will sending of data or commands. All native YARP connections are like this. A "pull" style is equivalent to automatically sending a "reverse connection" port command at the start of the connection.

Returns
true if carrier is "push" style, false if "pull" style

Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::Carrier, TcpRosCarrier, MjpegCarrier, and H264Carrier.

◆ isTextMode()

virtual bool yarp::os::Connection::isTextMode ( ) const
pure virtual

◆ isValid()

bool Connection::isValid ( ) const
virtual

Check if this object is really a connection, or just an empty placeholder.

Returns
true if a valid connection

Reimplemented in yarp::os::NullConnection, ForwardingCarrier, and BayerCarrier.

Definition at line 15 of file Connection.cpp.

◆ modifiesIncomingData()

virtual bool yarp::os::Connection::modifiesIncomingData ( ) const
pure virtual

Check if this carrier modifies incoming data through the Carrier::modifyIncomingData method.

Returns
true if carrier wants Carrier::modifyIncomingData called.

Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::ModifyingCarrier, and yarp::os::Carrier.

◆ modifiesOutgoingData()

virtual bool yarp::os::Connection::modifiesOutgoingData ( ) const
pure virtual

Check if this carrier modifies outgoing data through the Carrier::modifyOutgoingData method.

Returns
true if carrier wants Carrier::modifyOutgoingData called.

Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::ModifyingCarrier, and yarp::os::Carrier.

◆ modifiesReply()

virtual bool yarp::os::Connection::modifiesReply ( ) const
pure virtual

Check if this carrier modifies outgoing data through the Carrier::modifyReply method.

Returns
true if carrier wants Carrier::modifyReply called.

Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::ModifyingCarrier, and yarp::os::Carrier.

◆ modifyIncomingData()

virtual yarp::os::ConnectionReader& yarp::os::Connection::modifyIncomingData ( yarp::os::ConnectionReader reader)
pure virtual

Modify incoming payload data, if appropriate.

Doesn't need to be done immediately, it is fine to hold onto a reference to the incoming data reader and use it on demand. This can be handy in order to avoid unnecessary copies.

Parameters
readerfor incoming data.
Returns
reader for modified version of incoming data.

Implemented in yarp::os::NullConnection, PortMonitor, BayerCarrier, ForwardingCarrier, and yarp::os::Carrier.

◆ modifyOutgoingData()

virtual const PortWriter& yarp::os::Connection::modifyOutgoingData ( const PortWriter writer)
pure virtual

Modify outgoing payload data, if appropriate.

Doesn't need to be done immediately, it is fine to hold onto a reference to the outgoing data reader and use it on demand. This can be handy in order to avoid unnecessary copies.

Parameters
writerfor outgoing data.
Returns
writer for modified version of outgoing data.

Implemented in PortMonitor, yarp::os::NullConnection, ForwardingCarrier, and yarp::os::Carrier.

◆ modifyReply()

virtual PortReader& yarp::os::Connection::modifyReply ( PortReader reader)
pure virtual

Modify reply payload data, if appropriate.

Parameters
readerfor the replied message.
Returns
reader for modified version of the replied message.

Implemented in PortMonitor, yarp::os::NullConnection, ForwardingCarrier, and yarp::os::Carrier.

◆ prepareDisconnect()

virtual void yarp::os::Connection::prepareDisconnect ( )
pure virtual

Do cleanup and preparation for the coming disconnect, if necessary.

Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::Carrier, and MpiBcastCarrier.

◆ requireAck()

virtual bool yarp::os::Connection::requireAck ( ) const
pure virtual

◆ setCarrierParams()

virtual void yarp::os::Connection::setCarrierParams ( const yarp::os::Property params)
pure virtual

Configure carrier from port administrative commands.

Parameters
paramscarrier properties

Implemented in yarp::os::NullConnection, yarp::os::ModifyingCarrier, yarp::os::AbstractCarrier, PriorityCarrier, PortMonitor, ForwardingCarrier, and yarp::os::Carrier.

◆ supportReply()

virtual bool yarp::os::Connection::supportReply ( ) const
pure virtual

This flag is used by YARP to determine whether the connection can carry RPC traffic, that is, messages with replies.

Returns
true if carrier supports replies

Implemented in yarp::os::Carrier, MpiCarrier, yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::TextCarrier, yarp::os::impl::NameserCarrier, yarp::os::impl::HttpCarrier, yarp::os::AbstractCarrier, XmlRpcCarrier, TcpRosCarrier, MpiP2PCarrier, MpiBcastCarrier, MjpegCarrier, HumanCarrier, and H264Carrier.


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