Public Member Functions | |
ForwardingCarrier () | |
ForwardingCarrier (SharedLibraryClassFactory< Carrier > *factory, Carrier *owner) | |
~ForwardingCarrier () override | |
virtual Carrier & | getContent () |
virtual const Carrier & | getContent () const |
Carrier * | create () const override |
Factory method. | |
bool | isValid () const override |
Check if this object is really a connection, or just an empty placeholder. | |
bool | isTextMode () const override |
Check if carrier is textual in nature. | |
bool | isBareMode () const override |
Check if carrier excludes type information from payload. | |
bool | canEscape () const override |
Check if carrier can encode administrative messages, as opposed to just user data. | |
void | handleEnvelope (const std::string &envelope) override |
Carriers that do not distinguish data from administrative headers (i.e. | |
bool | requireAck () const override |
Check if carrier has flow control, requiring sent messages to be acknowledged by recipient. | |
bool | supportReply () const override |
This flag is used by YARP to determine whether the connection can carry RPC traffic, that is, messages with replies. | |
bool | isLocal () const override |
Check if carrier operates within a single process. | |
bool | isPush () const override |
Check if carrier is "push" or "pull" style. | |
bool | isConnectionless () const override |
Check if this carrier is connectionless (like udp, mcast) or connection based (like tcp). | |
bool | isBroadcast () const override |
Check if this carrier uses a broadcast mechanism. | |
bool | isActive () const override |
Check if carrier is alive and error free. | |
bool | modifiesIncomingData () const override |
Check if this carrier modifies incoming data through the Carrier::modifyIncomingData method. | |
ConnectionReader & | modifyIncomingData (ConnectionReader &reader) override |
Modify incoming payload data, if appropriate. | |
bool | acceptIncomingData (ConnectionReader &reader) override |
Determine whether incoming data should be accepted. | |
bool | modifiesOutgoingData () const override |
Check if this carrier modifies outgoing data through the Carrier::modifyOutgoingData method. | |
const PortWriter & | modifyOutgoingData (const PortWriter &writer) override |
Modify outgoing payload data, if appropriate. | |
bool | acceptOutgoingData (const PortWriter &writer) override |
Determine whether outgoing data should be accepted. | |
bool | modifiesReply () const override |
Check if this carrier modifies outgoing data through the Carrier::modifyReply method. | |
PortReader & | modifyReply (PortReader &reader) override |
Modify reply payload data, if appropriate. | |
void | setCarrierParams (const Property ¶ms) override |
Configure carrier from port administrative commands. | |
void | getCarrierParams (Property ¶ms) const override |
Get carrier configuration and deliver it by port administrative commands. | |
void | getHeader (yarp::os::Bytes &header) const override |
Provide 8 bytes describing this connection sufficiently to allow the other side of a connection to select it. | |
void | prepareDisconnect () override |
Do cleanup and preparation for the coming disconnect, if necessary. | |
std::string | getName () const override |
Get the name of this connection type ("tcp", "mcast", "shmem", ...) | |
bool | checkHeader (const yarp::os::Bytes &header) override |
Given the first 8 bytes received on a connection, decide if this is the right carrier type to use for the rest of the connection. | |
void | setParameters (const yarp::os::Bytes &header) override |
Configure this carrier based on the first 8 bytes of the connection. | |
bool | canAccept () const override |
Check if reading is implemented for this carrier. | |
bool | canOffer () const override |
Check if writing is implemented for this carrier. | |
bool | prepareSend (ConnectionState &proto) override |
Perform any initialization needed before writing on a connection. | |
bool | sendHeader (ConnectionState &proto) override |
Write a header appropriate to the carrier to the connection, followed by any carrier-specific data. | |
bool | expectReplyToHeader (ConnectionState &proto) override |
Process reply to header, if one is expected for this carrier. | |
bool | write (ConnectionState &proto, SizedWriter &writer) override |
Write a message. | |
bool | reply (ConnectionState &proto, SizedWriter &writer) override |
bool | expectExtraHeader (ConnectionState &proto) override |
Receive any carrier-specific header. | |
bool | respondToHeader (ConnectionState &proto) override |
Respond to the header. | |
bool | expectIndex (ConnectionState &proto) override |
Expect a message header, if there is one for this carrier. | |
bool | expectSenderSpecifier (ConnectionState &proto) override |
Expect the name of the sending port. | |
bool | sendAck (ConnectionState &proto) override |
Send an acknowledgement, if needed for this carrier. | |
bool | expectAck (ConnectionState &proto) override |
Receive an acknowledgement, if expected for this carrier. | |
std::string | toString () const override |
Get name of carrier. | |
void | close () override |
Close the carrier. | |
std::string | getBootstrapCarrierName () const override |
Get the name of the carrier that should be used prior to handshaking, if a port is registered with this carrier as its default carrier. | |
int | connect (const yarp::os::Contact &src, const yarp::os::Contact &dest, const yarp::os::ContactStyle &style, int mode, bool reversed) override |
Some carrier types may require special connection logic. | |
bool | configure (ConnectionState &proto) override |
Give carrier a shot at looking at how the connection is set up. | |
bool | configureFromProperty (yarp::os::Property &options) override |
yarp::os::Face * | createFace () const override |
Create new Face object that the carrier needs. | |
Public Member Functions inherited from yarp::os::Carrier | |
virtual | ~Carrier () |
Destructor. | |
Public Member Functions inherited from yarp::os::Connection | |
virtual | ~Connection () |
Destructor. | |
Public Attributes | |
SharedLibraryClassFactory< Carrier > * | factory |
SharedLibraryClass< Carrier > | car |
Carrier * | owner |
Definition at line 1519 of file Network.cpp.
|
inline |
Definition at line 1526 of file Network.cpp.
|
inline |
Definition at line 1532 of file Network.cpp.
|
inlineoverride |
Definition at line 1541 of file Network.cpp.
|
inlineoverridevirtual |
Determine whether incoming data should be accepted.
reader | for incoming data. |
Reimplemented from yarp::os::Carrier.
Definition at line 1642 of file Network.cpp.
|
inlineoverridevirtual |
Determine whether outgoing data should be accepted.
writer | for outgoing data. |
Reimplemented from yarp::os::Carrier.
Definition at line 1657 of file Network.cpp.
|
inlineoverridevirtual |
Check if reading is implemented for this carrier.
Implements yarp::os::Carrier.
Definition at line 1710 of file Network.cpp.
|
inlineoverridevirtual |
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.
Implements yarp::os::Carrier.
Definition at line 1587 of file Network.cpp.
|
inlineoverridevirtual |
Check if writing is implemented for this carrier.
Implements yarp::os::Carrier.
Definition at line 1715 of file Network.cpp.
|
inlineoverridevirtual |
Given the first 8 bytes received on a connection, decide if this is the right carrier type to use for the rest of the connection.
For example the "text" carrier looks for the 8-byte sequence "CONNECT ". See the YARP protocol documentation for all the sequences in use here. In general you are free to add your own.
header | a buffer holding the first 8 bytes received on the connection |
Implements yarp::os::Carrier.
Definition at line 1700 of file Network.cpp.
|
inlineoverridevirtual |
Close the carrier.
Reimplemented from yarp::os::Carrier.
Definition at line 1780 of file Network.cpp.
|
inlineoverridevirtual |
Give carrier a shot at looking at how the connection is set up.
Reimplemented from yarp::os::Carrier.
Definition at line 1799 of file Network.cpp.
|
inlineoverridevirtual |
Reimplemented from yarp::os::Carrier.
Definition at line 1803 of file Network.cpp.
|
inlineoverridevirtual |
Some carrier types may require special connection logic.
This can be implemented here. Normally this is not necessary.
src | Initiator of the connection. |
dest | Destination of the connection. |
style | Options for connection. |
mode | YARP_ENACT_CONNECT / YARP_ENACT_DISCONNECT / YARP_ENACT_EXISTS. |
reversed | true for pull connections, false for push connections. |
Reimplemented from yarp::os::Carrier.
Definition at line 1790 of file Network.cpp.
|
inlineoverridevirtual |
Factory method.
Get a new object of the same type as this one.
Implements yarp::os::Carrier.
Reimplemented in StubCarrier.
Definition at line 1564 of file Network.cpp.
|
inlineoverridevirtual |
Create new Face object that the carrier needs.
Reimplemented from yarp::os::Carrier.
Definition at line 1808 of file Network.cpp.
|
inlineoverridevirtual |
Receive an acknowledgement, if expected for this carrier.
proto | the protocol object, which tracks connection state |
Implements yarp::os::Carrier.
Definition at line 1770 of file Network.cpp.
|
inlineoverridevirtual |
Receive any carrier-specific header.
proto | the protocol object, which tracks connection state |
Implements yarp::os::Carrier.
Definition at line 1745 of file Network.cpp.
|
inlineoverridevirtual |
Expect a message header, if there is one for this carrier.
proto | the protocol object, which tracks connection state |
Implements yarp::os::Carrier.
Definition at line 1755 of file Network.cpp.
|
inlineoverridevirtual |
Process reply to header, if one is expected for this carrier.
proto | the protocol object, which tracks connection state |
Implements yarp::os::Carrier.
Definition at line 1730 of file Network.cpp.
|
inlineoverridevirtual |
Expect the name of the sending port.
proto | the protocol object, which tracks connection state |
Implements yarp::os::Carrier.
Definition at line 1760 of file Network.cpp.
|
inlineoverridevirtual |
Get the name of the carrier that should be used prior to handshaking, if a port is registered with this carrier as its default carrier.
Normally, this should be "tcp".
For carriers intended to interoperate with foreign ports not capable of initiating streams, the bootstrap carrier name should be left blank. YARP may use that fact to arrange for alternate methods of initiating a stream.
Reimplemented from yarp::os::Carrier.
Definition at line 1785 of file Network.cpp.
Get carrier configuration and deliver it by port administrative commands.
params | properties |
Reimplemented from yarp::os::Carrier.
Definition at line 1677 of file Network.cpp.
Reimplemented in StubCarrier.
Definition at line 1554 of file Network.cpp.
Reimplemented in StubCarrier.
Definition at line 1559 of file Network.cpp.
|
inlineoverridevirtual |
Provide 8 bytes describing this connection sufficiently to allow the other side of a connection to select it.
header | a buffer to hold the first 8 bytes to send on a connection |
Implements yarp::os::Carrier.
Definition at line 1682 of file Network.cpp.
|
inlineoverridevirtual |
Get the name of this connection type ("tcp", "mcast", "shmem", ...)
Implements yarp::os::Connection.
Definition at line 1692 of file Network.cpp.
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. |
Reimplemented from yarp::os::Carrier.
Definition at line 1592 of file Network.cpp.
|
inlineoverridevirtual |
Check if carrier is alive and error free.
Implements yarp::os::Carrier.
Definition at line 1627 of file Network.cpp.
|
inlineoverridevirtual |
Check if carrier excludes type information from payload.
Reimplemented from yarp::os::Connection.
Definition at line 1582 of file Network.cpp.
|
inlineoverridevirtual |
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"
Reimplemented from yarp::os::Carrier.
Definition at line 1622 of file Network.cpp.
|
inlineoverridevirtual |
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.
Implements yarp::os::Carrier.
Definition at line 1617 of file Network.cpp.
|
inlineoverridevirtual |
Check if carrier operates within a single process.
In such a case, YARP connections may get completely reorganized in order to optimize them.
Implements yarp::os::Carrier.
Definition at line 1607 of file Network.cpp.
|
inlineoverridevirtual |
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.
Reimplemented from yarp::os::Carrier.
Definition at line 1612 of file Network.cpp.
|
inlineoverridevirtual |
Check if carrier is textual in nature.
Implements yarp::os::Carrier.
Definition at line 1577 of file Network.cpp.
|
inlineoverridevirtual |
Check if this object is really a connection, or just an empty placeholder.
Reimplemented from yarp::os::Connection.
Definition at line 1572 of file Network.cpp.
|
inlineoverridevirtual |
Check if this carrier modifies incoming data through the Carrier::modifyIncomingData method.
Reimplemented from yarp::os::Carrier.
Definition at line 1632 of file Network.cpp.
|
inlineoverridevirtual |
Check if this carrier modifies outgoing data through the Carrier::modifyOutgoingData method.
Reimplemented from yarp::os::Carrier.
Definition at line 1647 of file Network.cpp.
|
inlineoverridevirtual |
Check if this carrier modifies outgoing data through the Carrier::modifyReply method.
Reimplemented from yarp::os::Carrier.
Definition at line 1662 of file Network.cpp.
|
inlineoverridevirtual |
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. |
Reimplemented from yarp::os::Carrier.
Definition at line 1637 of file Network.cpp.
|
inlineoverridevirtual |
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. |
Reimplemented from yarp::os::Carrier.
Definition at line 1652 of file Network.cpp.
|
inlineoverridevirtual |
Modify reply payload data, if appropriate.
reader | for the replied message. |
Reimplemented from yarp::os::Carrier.
Definition at line 1667 of file Network.cpp.
|
inlineoverridevirtual |
Do cleanup and preparation for the coming disconnect, if necessary.
Reimplemented from yarp::os::Carrier.
Definition at line 1687 of file Network.cpp.
|
inlineoverridevirtual |
Perform any initialization needed before writing on a connection.
proto | the protocol object, which tracks connection state |
Implements yarp::os::Carrier.
Definition at line 1720 of file Network.cpp.
|
inlineoverridevirtual |
Reimplemented from yarp::os::Carrier.
Definition at line 1740 of file Network.cpp.
|
inlineoverridevirtual |
Check if carrier has flow control, requiring sent messages to be acknowledged by recipient.
Implements yarp::os::Carrier.
Definition at line 1597 of file Network.cpp.
|
inlineoverridevirtual |
Respond to the header.
proto | the protocol object, which tracks connection state |
Implements yarp::os::Carrier.
Definition at line 1750 of file Network.cpp.
|
inlineoverridevirtual |
Send an acknowledgement, if needed for this carrier.
proto | the protocol object, which tracks connection state |
Implements yarp::os::Carrier.
Definition at line 1765 of file Network.cpp.
|
inlineoverridevirtual |
Write a header appropriate to the carrier to the connection, followed by any carrier-specific data.
Must communicate at least the name of the originating port, if there is one.
proto | the protocol object, which tracks connection state |
Implements yarp::os::Carrier.
Definition at line 1725 of file Network.cpp.
Configure carrier from port administrative commands.
params | properties |
Reimplemented from yarp::os::Carrier.
Definition at line 1672 of file Network.cpp.
|
inlineoverridevirtual |
Configure this carrier based on the first 8 bytes of the connection.
This will only be called if checkHeader passed.
header | a buffer holding the first 8 bytes received on the connection |
Implements yarp::os::Carrier.
Definition at line 1705 of file Network.cpp.
|
inlineoverridevirtual |
This flag is used by YARP to determine whether the connection can carry RPC traffic, that is, messages with replies.
Implements yarp::os::Carrier.
Definition at line 1602 of file Network.cpp.
|
inlineoverridevirtual |
Get name of carrier.
Implements yarp::os::Carrier.
Definition at line 1775 of file Network.cpp.
|
inlineoverridevirtual |
Write a message.
proto | the protocol object, which tracks connection state |
Implements yarp::os::Carrier.
Definition at line 1735 of file Network.cpp.
SharedLibraryClass<Carrier> ForwardingCarrier::car |
Definition at line 1523 of file Network.cpp.
SharedLibraryClassFactory<Carrier>* ForwardingCarrier::factory |
Definition at line 1522 of file Network.cpp.
Carrier* ForwardingCarrier::owner |
Definition at line 1524 of file Network.cpp.