Communicating between two ports via MCAST. More...
#include <yarp/os/impl/McastCarrier.h>
Public Member Functions | |
McastCarrier () | |
virtual | ~McastCarrier () |
Carrier * | create () const override |
Factory method. | |
std::string | getName () const override |
Get the name of this connection type ("tcp", "mcast", "shmem", ...) | |
int | getSpecifierCode () const override |
bool | sendHeader (ConnectionState &proto) override |
Write a header appropriate to the carrier to the connection, followed by any carrier-specific data. | |
bool | expectExtraHeader (ConnectionState &proto) override |
Receive any carrier-specific header. | |
bool | respondToHeader (ConnectionState &proto) override |
Respond to the header. | |
bool | expectReplyToHeader (ConnectionState &proto) override |
Process reply to header, if one is expected for this carrier. | |
bool | becomeMcast (ConnectionState &proto, bool sender) |
void | addSender (const std::string &key) |
void | removeSender (const std::string &key) |
bool | isElect () const |
bool | takeElection () |
takeElection, this function is called when the elect mcast carrier dies and pass the write buffers to another one. | |
bool | isActive () const override |
Check if carrier is alive and error free. | |
bool | isBroadcast () const override |
Check if this carrier uses a broadcast mechanism. | |
![]() | |
UdpCarrier () | |
Carrier * | create () const override |
Factory method. | |
std::string | getName () const override |
Get the name of this connection type ("tcp", "mcast", "shmem", ...) | |
bool | checkHeader (const 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 | getHeader (Bytes &header) const override |
Provide 8 bytes describing this connection sufficiently to allow the other side of a connection to select it. | |
void | setParameters (const Bytes &header) override |
Configure this carrier based on the first 8 bytes of the connection. | |
bool | requireAck () const override |
Check if carrier has flow control, requiring sent messages to be acknowledged by recipient. | |
bool | isConnectionless () const override |
Check if this carrier is connectionless (like udp, mcast) or connection based (like tcp). | |
bool | respondToHeader (ConnectionState &proto) override |
Respond to the header. | |
bool | expectReplyToHeader (ConnectionState &proto) override |
Process reply to header, if one is expected for this carrier. | |
![]() | |
void | setCarrierParams (const yarp::os::Property ¶ms) override |
Configure carrier from port administrative commands. | |
void | getCarrierParams (yarp::os::Property ¶ms) const override |
Get carrier configuration and deliver it by port administrative commands. | |
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 | canAccept () const override |
Check if reading is implemented for this carrier. | |
bool | canOffer () const override |
Check if writing is implemented for this carrier. | |
bool | isTextMode () const override |
Check if carrier is textual in nature. | |
bool | canEscape () const override |
Check if carrier can encode administrative messages, as opposed to just user data. | |
bool | isLocal () const override |
Check if carrier operates within a single process. | |
std::string | toString () const override |
Get name of carrier. | |
bool | prepareSend (ConnectionState &proto) override |
Perform any initialization needed before writing on a connection. | |
virtual bool | sendIndex (ConnectionState &proto, SizedWriter &writer) |
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. | |
bool | defaultSendHeader (ConnectionState &proto) |
Default implementation for the sendHeader method. | |
bool | defaultExpectIndex (ConnectionState &proto) |
Default implementation for the expectIndex method. | |
bool | defaultSendIndex (ConnectionState &proto, SizedWriter &writer) |
Default implementation for the sendIndex method. | |
bool | defaultExpectAck (ConnectionState &proto) |
Default implementation for the expectAck method. | |
bool | defaultSendAck (ConnectionState &proto) |
Default implementation for the sendAck method. | |
int | readYarpInt (ConnectionState &proto) |
Read 8 bytes and interpret them as a YARP number. | |
void | writeYarpInt (int n, ConnectionState &proto) |
Write n as an 8 bytes yarp number. | |
![]() | |
void | handleEnvelope (const std::string &envelope) override |
Carriers that do not distinguish data from administrative headers (i.e. | |
bool | isPush () const override |
Check if carrier is "push" or "pull" style. | |
virtual bool | reply (ConnectionState &proto, SizedWriter &writer) |
void | prepareDisconnect () override |
Do cleanup and preparation for the coming disconnect, if necessary. | |
virtual void | close () |
Close the carrier. | |
virtual | ~Carrier () |
Destructor. | |
virtual std::string | getBootstrapCarrierName () const |
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. | |
virtual int | connect (const Contact &src, const Contact &dest, const ContactStyle &style, int mode, bool reversed) |
Some carrier types may require special connection logic. | |
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 | 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. | |
bool | acceptOutgoingData (const PortWriter &writer) override |
Determine whether outgoing data should be accepted. | |
virtual bool | configure (ConnectionState &proto) |
Give carrier a shot at looking at how the connection is set up. | |
virtual bool | configureFromProperty (yarp::os::Property &options) |
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. | |
virtual yarp::os::Face * | createFace () const |
Create new Face object that the carrier needs. | |
![]() | |
virtual | ~Connection () |
Destructor. | |
virtual bool | isValid () const |
Check if this object is really a connection, or just an empty placeholder. | |
virtual bool | isBareMode () const |
Check if carrier excludes type information from payload. | |
Static Protected Member Functions | |
static ElectionOf< PeerRecord< McastCarrier > > & | getCaster () |
![]() | |
static int | interpretYarpNumber (const yarp::os::Bytes &b) |
static void | createYarpNumber (int x, yarp::os::Bytes &header) |
Protected Attributes | |
Contact | mcastAddress |
std::string | mcastName |
std::string | key |
DgramTwoWayStream * | stream |
Contact | local |
Static Protected Attributes | |
static ElectionOf< PeerRecord< McastCarrier > > * | caster = nullptr |
Additional Inherited Members | |
![]() | |
int | getSpecifier (const Bytes &b) const |
void | createStandardHeader (int specifier, yarp::os::Bytes &header) const |
bool | write (ConnectionState &proto, SizedWriter &writer) override |
Write a message. | |
bool | sendConnectionStateSpecifier (ConnectionState &proto) |
bool | sendSenderSpecifier (ConnectionState &proto) |
Communicating between two ports via MCAST.
Definition at line 22 of file McastCarrier.h.
yarp::os::impl::McastCarrier::McastCarrier | ( | ) |
Definition at line 46 of file McastCarrier.cpp.
|
virtual |
Definition at line 52 of file McastCarrier.cpp.
Definition at line 237 of file McastCarrier.cpp.
bool yarp::os::impl::McastCarrier::becomeMcast | ( | ConnectionState & | proto, |
bool | sender | ||
) |
Definition at line 187 of file McastCarrier.cpp.
|
overridevirtual |
Factory method.
Get a new object of the same type as this one.
Implements yarp::os::AbstractCarrier.
Definition at line 71 of file McastCarrier.cpp.
|
overridevirtual |
Receive any carrier-specific header.
proto | the protocol object, which tracks connection state |
Reimplemented from yarp::os::AbstractCarrier.
Definition at line 153 of file McastCarrier.cpp.
|
overridevirtual |
Process reply to header, if one is expected for this carrier.
proto | the protocol object, which tracks connection state |
Reimplemented from yarp::os::AbstractCarrier.
Definition at line 232 of file McastCarrier.cpp.
|
staticprotected |
Definition at line 29 of file McastCarrier.cpp.
|
overridevirtual |
Get the name of this connection type ("tcp", "mcast", "shmem", ...)
Implements yarp::os::AbstractCarrier.
Definition at line 76 of file McastCarrier.cpp.
|
overridevirtual |
Reimplemented from yarp::os::impl::UdpCarrier.
Definition at line 81 of file McastCarrier.cpp.
|
overridevirtual |
Check if carrier is alive and error free.
Reimplemented from yarp::os::AbstractCarrier.
Definition at line 263 of file McastCarrier.cpp.
|
overridevirtual |
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 268 of file McastCarrier.cpp.
bool yarp::os::impl::McastCarrier::isElect | ( | ) | const |
Definition at line 247 of file McastCarrier.cpp.
Definition at line 242 of file McastCarrier.cpp.
|
overridevirtual |
Respond to the header.
proto | the protocol object, which tracks connection state |
Implements yarp::os::AbstractCarrier.
Definition at line 226 of file McastCarrier.cpp.
|
overridevirtual |
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 |
Reimplemented from yarp::os::AbstractCarrier.
Definition at line 87 of file McastCarrier.cpp.
bool yarp::os::impl::McastCarrier::takeElection | ( | ) |
takeElection, this function is called when the elect mcast carrier dies and pass the write buffers to another one.
Definition at line 254 of file McastCarrier.cpp.
|
staticprotected |
Definition at line 32 of file McastCarrier.h.
|
protected |
Definition at line 28 of file McastCarrier.h.
|
protected |
Definition at line 30 of file McastCarrier.h.
|
protected |
Definition at line 26 of file McastCarrier.h.
|
protected |
Definition at line 27 of file McastCarrier.h.
|
protected |
Definition at line 29 of file McastCarrier.h.