YARP  2.3.68+272-20170522.1+git50f0ae7
Yet Another Robot Platform
yarp::os::MpiBcastCarrier Class Reference

Carrier for port communicating via MPI broadcast. More...

#include <mpi_carrier/include/yarp/os/MpiBcastCarrier.h>

+ Inheritance diagram for yarp::os::MpiBcastCarrier:

Public Member Functions

 MpiBcastCarrier ()
 
virtual ~MpiBcastCarrier ()
 
virtual void close ()
 Close the carrier. More...
 
virtual Carriercreate ()
 Factory method. More...
 
virtual void createStream (bool sender)
 
virtual ConstString getName ()
 Get the name of this connection type ("tcp", "mcast", "shmem", ...) More...
 
virtual bool supportReply ()
 This flag is used by YARP to determine whether the connection can carry RPC traffic, that is, messages with replies. More...
 
virtual bool isBroadcast ()
 Check if this carrier uses a broadcast mechanism. More...
 
virtual void prepareDisconnect ()
 Do cleanup and preparation for the coming disconnect, if necessary. More...
 
virtual bool expectReplyToHeader (ConnectionState &proto)
 Process reply to header, if one is expected for this carrier. More...
 
virtual bool isActive ()
 Check if carrier is alive and error free. More...
 
virtual bool isElect ()
 
- Public Member Functions inherited from yarp::os::MpiCarrier
 MpiCarrier ()
 
virtual ~MpiCarrier ()
 
virtual bool isConnectionless ()
 Check if this carrier is connectionless (like udp, mcast) or connection based (like tcp). More...
 
virtual bool canEscape ()
 Check if carrier can encode administrative messages, as opposed to just user data. More...
 
virtual void getHeader (const Bytes &header)
 Provide 8 bytes describing this connection sufficiently to allow the other side of a connection to select it. More...
 
virtual bool checkHeader (const Bytes &header)
 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. More...
 
virtual bool sendHeader (ConnectionState &proto)
 Write a header appropriate to the carrier to the connection, followed by any carrier-specific data. More...
 
virtual bool expectSenderSpecifier (ConnectionState &proto)
 Expect the name of the sending port. More...
 
virtual bool respondToHeader (ConnectionState &proto)
 Respond to the header. More...
 
bool write (ConnectionState &proto, SizedWriter &writer)
 Write a message. More...
 
virtual bool sendIndex (ConnectionState &proto, SizedWriter &writer)
 
virtual bool expectIndex (ConnectionState &proto)
 Expect a message header, if there is one for this carrier. More...
 
virtual bool sendAck (ConnectionState &proto)
 Send an acknowledgement, if needed for this carrier. More...
 
virtual bool expectAck (ConnectionState &proto)
 Receive an acknowledgement, if expected for this carrier. More...
 
- Public Member Functions inherited from yarp::os::AbstractCarrier
virtual void setParameters (const yarp::os::Bytes &header)
 Configure this carrier based on the first 8 bytes of the connection. More...
 
virtual bool canAccept ()
 Check if reading is implemented for this carrier. More...
 
virtual bool canOffer ()
 Check if writing is implemented for this carrier. More...
 
virtual bool isTextMode ()
 Check if carrier is textual in nature. More...
 
virtual bool requireAck ()
 Check if carrier has flow control, requiring sent messages to be acknowledged by recipient. More...
 
virtual bool isLocal ()
 Check if carrier operates within a single process. More...
 
virtual ConstString toString ()
 Get name of carrier. More...
 
virtual bool prepareSend (ConnectionState &proto)
 Perform any initialization needed before writing on a connection. More...
 
virtual bool expectExtraHeader (ConnectionState &proto)
 Receive any carrier-specific header. More...
 
virtual void setCarrierParams (const yarp::os::Property &params)
 Configure carrier from port administrative commands. More...
 
virtual void getCarrierParams (yarp::os::Property &params)
 Get carrier configuration and deliver it by port administrative commands. More...
 
bool defaultSendHeader (ConnectionState &proto)
 
bool defaultExpectIndex (ConnectionState &proto)
 
bool defaultSendIndex (ConnectionState &proto, SizedWriter &writer)
 
bool defaultExpectAck (ConnectionState &proto)
 
bool defaultSendAck (ConnectionState &proto)
 
int readYarpInt (ConnectionState &proto)
 
void writeYarpInt (int n, ConnectionState &proto)
 
- Public Member Functions inherited from yarp::os::Carrier
virtual void handleEnvelope (const yarp::os::ConstString &envelope)
 Carriers that do not distinguish data from administrative headers (i.e. More...
 
virtual bool isPush ()
 Check if carrier is "push" or "pull" style. More...
 
virtual bool reply (ConnectionState &proto, SizedWriter &writer)
 
virtual ~Carrier ()
 Destructor. More...
 
virtual ConstString getBootstrapCarrierName ()
 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. More...
 
virtual int connect (const Contact &src, const Contact &dest, const ContactStyle &style, int mode, bool reversed)
 Some carrier types may require special connection logic. More...
 
virtual bool modifiesIncomingData ()
 Check if this carrier modifies incoming data through the Carrier::modifyIncomingData method. More...
 
virtual ConnectionReadermodifyIncomingData (ConnectionReader &reader)
 Modify incoming payload data, if appropriate. More...
 
virtual bool acceptIncomingData (ConnectionReader &reader)
 Determine whether incoming data should be accepted. More...
 
virtual bool modifiesOutgoingData ()
 Check if this carrier modifies outgoing data through the Carrier::modifyOutgoingData method. More...
 
virtual PortWritermodifyOutgoingData (PortWriter &writer)
 Modify outgoing payload data, if appropriate. More...
 
virtual bool modifiesReply ()
 Check if this carrier modifies outgoing data through the Carrier::modifyReply method. More...
 
virtual PortReadermodifyReply (PortReader &reader)
 Modify reply payload data, if appropriate. More...
 
virtual bool acceptOutgoingData (PortWriter &writer)
 Determine whether outgoing data should be accepted. More...
 
virtual bool configure (ConnectionState &proto)
 Give carrier a shot at looking at how the connection is set up. More...
 
virtual bool configureFromProperty (yarp::os::Property &options)
 
- Public Member Functions inherited from yarp::os::Connection
virtual ~Connection ()
 Destructor. More...
 
virtual bool isValid ()
 Check if this object is really a connection, or just an empty placeholder. More...
 
virtual bool isBareMode ()
 Check if carrier excludes type information from payload. More...
 

Static Private Member Functions

static yarp::os::ElectionOf< yarp::os::PeerRecord< MpiBcastCarrier > > & getCaster ()
 

Private Attributes

bool electionMember
 

Static Private Attributes

static yarp::os::ElectionOf< yarp::os::PeerRecord< MpiBcastCarrier > > * caster = NULL
 

Additional Inherited Members

- Protected Member Functions inherited from yarp::os::AbstractCarrier
int getSpecifier (const Bytes &b)
 
void createStandardHeader (int specifier, const yarp::os::Bytes &header)
 
bool sendConnectionStateSpecifier (ConnectionState &proto)
 
bool sendSenderSpecifier (ConnectionState &proto)
 
- Static Protected Member Functions inherited from yarp::os::AbstractCarrier
static int interpretYarpNumber (const yarp::os::Bytes &b)
 
static void createYarpNumber (int x, const yarp::os::Bytes &header)
 
- Protected Attributes inherited from yarp::os::MpiCarrier
MpiStreamstream
 
MpiCommcomm
 
ConstString port
 
ConstString name
 
ConstString other
 
ConstString route
 
ConstString target
 

Detailed Description

Carrier for port communicating via MPI broadcast.

Effective collective operations in the one-sender-multiple-receiver scenario. Allows only one-way communication (no replies).

Warning
Probably all processes terminate if one terminates without proper disconnect.
Seems to work, but still experimental.

Definition at line 33 of file MpiBcastCarrier.h.

Constructor & Destructor Documentation

◆ MpiBcastCarrier()

yarp::os::MpiBcastCarrier::MpiBcastCarrier ( )
inline

Definition at line 41 of file MpiBcastCarrier.h.

◆ ~MpiBcastCarrier()

MpiBcastCarrier::~MpiBcastCarrier ( )
virtual

Definition at line 14 of file MpiBcastCarrier.cpp.

Member Function Documentation

◆ close()

void MpiBcastCarrier::close ( void  )
virtual

Close the carrier.

Implements yarp::os::MpiCarrier.

Definition at line 20 of file MpiBcastCarrier.cpp.

◆ create()

virtual Carrier* yarp::os::MpiBcastCarrier::create ( )
inlinevirtual

Factory method.

Get a new object of the same type as this one.

Returns
a new object of the same type as this one.

Implements yarp::os::MpiCarrier.

Definition at line 49 of file MpiBcastCarrier.h.

◆ createStream()

void MpiBcastCarrier::createStream ( bool  sender)
virtual

Implements yarp::os::MpiCarrier.

Definition at line 35 of file MpiBcastCarrier.cpp.

◆ expectReplyToHeader()

virtual bool yarp::os::MpiBcastCarrier::expectReplyToHeader ( ConnectionState proto)
inlinevirtual

Process reply to header, if one is expected for this carrier.

Parameters
protothe protocol object, which tracks connection state
Returns
true on success, false on failure

Reimplemented from yarp::os::MpiCarrier.

Definition at line 69 of file MpiBcastCarrier.h.

◆ getCaster()

ElectionOf< yarp::os::PeerRecord< MpiBcastCarrier > > & MpiBcastCarrier::getCaster ( )
staticprivate

Definition at line 82 of file MpiBcastCarrier.cpp.

◆ getName()

virtual ConstString yarp::os::MpiBcastCarrier::getName ( )
inlinevirtual

Get the name of this connection type ("tcp", "mcast", "shmem", ...)

Returns
the name of this connection type

Implements yarp::os::MpiCarrier.

Definition at line 55 of file MpiBcastCarrier.h.

◆ isActive()

bool MpiBcastCarrier::isActive ( )
virtual

Check if carrier is alive and error free.

Returns
true if carrier is active.

Reimplemented from yarp::os::AbstractCarrier.

Definition at line 101 of file MpiBcastCarrier.cpp.

◆ isBroadcast()

virtual bool yarp::os::MpiBcastCarrier::isBroadcast ( )
inlinevirtual

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.

Reimplemented from yarp::os::Carrier.

Definition at line 63 of file MpiBcastCarrier.h.

◆ isElect()

bool MpiBcastCarrier::isElect ( )
virtual

Definition at line 96 of file MpiBcastCarrier.cpp.

◆ prepareDisconnect()

void MpiBcastCarrier::prepareDisconnect ( )
virtual

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

Reimplemented from yarp::os::Carrier.

Definition at line 55 of file MpiBcastCarrier.cpp.

◆ supportReply()

virtual bool yarp::os::MpiBcastCarrier::supportReply ( )
inlinevirtual

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

Implements yarp::os::MpiCarrier.

Definition at line 59 of file MpiBcastCarrier.h.

Member Data Documentation

◆ caster

ElectionOf< yarp::os::PeerRecord< MpiBcastCarrier > > * MpiBcastCarrier::caster = NULL
staticprivate

Definition at line 35 of file MpiBcastCarrier.h.

◆ electionMember

bool yarp::os::MpiBcastCarrier::electionMember
private

Definition at line 38 of file MpiBcastCarrier.h.


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