A controller for an individual connection. More...
#include <yarp/os/Connection.h>
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::ConnectionReader & | modifyIncomingData (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 PortWriter & | modifyOutgoingData (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 PortReader & | modifyReply (PortReader &reader)=0 |
Modify reply payload data, if appropriate. More... | |
virtual void | setCarrierParams (const yarp::os::Property ¶ms)=0 |
Configure carrier from port administrative commands. More... | |
virtual void | getCarrierParams (yarp::os::Property ¶ms) 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... | |
A controller for an individual connection.
A bundle of callbacks that defines how the connection behaves.
Definition at line 29 of file Connection.h.
|
virtualdefault |
Destructor.
|
pure virtual |
Determine whether incoming data should be accepted.
reader | for incoming data. |
Implemented in yarp::os::NullConnection, PriorityCarrier, PortMonitor, ForwardingCarrier, and yarp::os::Carrier.
|
pure virtual |
Determine whether outgoing data should be accepted.
writer | for outgoing data. |
Implemented in PortMonitor, yarp::os::NullConnection, ForwardingCarrier, and yarp::os::Carrier.
|
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.
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.
|
pure virtual |
Get carrier configuration and deliver it by port administrative commands.
params | output carrier properties |
Implemented in yarp::os::NullConnection, yarp::os::ModifyingCarrier, yarp::os::AbstractCarrier, PriorityCarrier, PortMonitor, ForwardingCarrier, and yarp::os::Carrier.
|
pure virtual |
Provide 8 bytes describing this connection sufficiently to allow the other side of a connection to select it.
[out] | header | a 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.
|
pure virtual |
Get the name of this connection type ("tcp", "mcast", "shmem", ...)
Implemented in yarp::os::ModifyingCarrier, yarp::os::AbstractCarrier, MpiCarrier, yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::UdpCarrier, yarp::os::impl::TextCarrier, yarp::os::impl::TcpCarrier, yarp::os::impl::NameserCarrier, yarp::os::impl::McastCarrier, yarp::os::impl::LocalCarrier, yarp::os::impl::HttpCarrier, XmlRpcCarrier, UnixSocketCarrier, TcpRosCarrier, ShmemCarrier, PriorityCarrier, PortMonitor, MpiP2PCarrier, MpiBcastCarrier, MjpegCarrier, HumanCarrier, H264Carrier, and BayerCarrier.
|
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.
envelope | the envelope to transmit bundled with data. |
Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::Carrier, MjpegCarrier, and H264Carrier.
|
pure virtual |
Check if carrier is alive and error free.
Implemented in yarp::os::Carrier, yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::McastCarrier, yarp::os::AbstractCarrier, XmlRpcCarrier, TcpRosCarrier, MpiBcastCarrier, MjpegCarrier, HumanCarrier, H264Carrier, and BayerCarrier.
|
virtual |
Check if carrier excludes type information from payload.
Reimplemented in ForwardingCarrier, TcpRosCarrier, and BayerCarrier.
Definition at line 20 of file Connection.cpp.
|
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"
Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::McastCarrier, yarp::os::Carrier, and MpiBcastCarrier.
|
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.
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.
|
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.
Implemented in yarp::os::Carrier, yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::LocalCarrier, yarp::os::AbstractCarrier, XmlRpcCarrier, TcpRosCarrier, MjpegCarrier, HumanCarrier, and H264Carrier.
|
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.
Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::Carrier, TcpRosCarrier, MjpegCarrier, and H264Carrier.
|
pure virtual |
Check if carrier is textual in nature.
Implemented in yarp::os::Carrier, yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::TextCarrier, yarp::os::impl::NameserCarrier, yarp::os::impl::HttpCarrier, yarp::os::AbstractCarrier, XmlRpcCarrier, TcpRosCarrier, MjpegCarrier, HumanCarrier, H264Carrier, and BayerCarrier.
|
virtual |
Check if this object is really a connection, or just an empty placeholder.
Reimplemented in yarp::os::NullConnection, ForwardingCarrier, and BayerCarrier.
Definition at line 15 of file Connection.cpp.
|
pure virtual |
Check if this carrier modifies incoming data through the Carrier::modifyIncomingData method.
Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::ModifyingCarrier, and yarp::os::Carrier.
|
pure virtual |
Check if this carrier modifies outgoing data through the Carrier::modifyOutgoingData method.
Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::ModifyingCarrier, and yarp::os::Carrier.
|
pure virtual |
Check if this carrier modifies outgoing data through the Carrier::modifyReply method.
Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::ModifyingCarrier, and yarp::os::Carrier.
|
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.
reader | for incoming data. |
Implemented in yarp::os::NullConnection, PortMonitor, BayerCarrier, ForwardingCarrier, and yarp::os::Carrier.
|
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.
writer | for outgoing data. |
Implemented in PortMonitor, yarp::os::NullConnection, ForwardingCarrier, and yarp::os::Carrier.
|
pure virtual |
Modify reply payload data, if appropriate.
reader | for the replied message. |
Implemented in PortMonitor, yarp::os::NullConnection, ForwardingCarrier, and yarp::os::Carrier.
|
pure virtual |
Do cleanup and preparation for the coming disconnect, if necessary.
Implemented in yarp::os::NullConnection, ForwardingCarrier, yarp::os::Carrier, and MpiBcastCarrier.
|
pure virtual |
Check if carrier has flow control, requiring sent messages to be acknowledged by recipient.
Implemented in yarp::os::Carrier, yarp::os::NullConnection, ForwardingCarrier, yarp::os::impl::UdpCarrier, yarp::os::impl::TextCarrier, yarp::os::impl::TcpCarrier, yarp::os::impl::NameserCarrier, yarp::os::impl::LocalCarrier, yarp::os::impl::HttpCarrier, yarp::os::AbstractCarrier, XmlRpcCarrier, UnixSocketCarrier, TcpRosCarrier, ShmemCarrier, MjpegCarrier, HumanCarrier, and H264Carrier.
|
pure virtual |
Configure carrier from port administrative commands.
params | carrier properties |
Implemented in yarp::os::NullConnection, yarp::os::ModifyingCarrier, yarp::os::AbstractCarrier, PriorityCarrier, PortMonitor, ForwardingCarrier, and yarp::os::Carrier.
|
pure virtual |
This flag is used by YARP to determine whether the connection can carry RPC traffic, that is, messages with 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.