YARP  2.3.70.1
Yet Another Robot Platform
yarp::os::MpiStream Class Referenceabstract

Abstract base class for port communication via MPI. More...

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

+ Inheritance diagram for yarp::os::MpiStream:

Public Member Functions

 MpiStream (ConstString name, MpiComm *comm)
 
virtual ~MpiStream ()
 
virtual void close () override=0
 Terminate the stream. More...
 
virtual bool isOk () override
 Check if the stream is ok or in an error state. More...
 
virtual void interrupt () override
 Interrupt the stream. More...
 
virtual ssize_t read (const Bytes &b) override=0
 Read a block of data from the stream. More...
 
virtual void write (const Bytes &b) override=0
 Write a block of bytes to the stream. More...
 
virtual InputStreamgetInputStream () override
 Get an InputStream to read from. More...
 
virtual OutputStreamgetOutputStream () override
 Get an OutputStream to write to. More...
 
virtual const yarp::os::ContactgetLocalAddress () override
 Get the address of the local side of the stream. More...
 
virtual const yarp::os::ContactgetRemoteAddress () override
 Get the address of the remote side of the stream. More...
 
void resetBuffer ()
 
virtual void reset () override
 Reset the stream. More...
 
virtual void beginPacket () override
 Mark the beginning of a logical packet. More...
 
virtual void endPacket () override
 Mark the end of a logical packet (see beginPacket). More...
 
- Public Member Functions inherited from yarp::os::TwoWayStream
virtual ~TwoWayStream ()
 Destructor. More...
 
- Public Member Functions inherited from yarp::os::InputStream
 InputStream ()
 Constructor. More...
 
virtual ~InputStream ()
 Destructor. More...
 
virtual void check ()
 Perform maintenance actions, if needed. More...
 
virtual int read ()
 Read and return a single byte. More...
 
virtual YARP_SSIZE_T read (const Bytes &b, size_t offset, YARP_SSIZE_T len)
 Read a block of data from the stream. More...
 
virtual YARP_SSIZE_T partialRead (const yarp::os::Bytes &b)
 Like read, but solicit partial responses. More...
 
virtual bool setReadTimeout (double timeout)
 Set activity timeout. More...
 
ConstString readLine (int terminal='\n', bool *success=YARP_NULLPTR)
 Read a block of text terminated with a specific marker (or EOF). More...
 
YARP_SSIZE_T readFull (const Bytes &b)
 Keep reading until buffer is full. More...
 
YARP_SSIZE_T readDiscard (size_t len)
 Read and discard a fixed number of bytes. More...
 
virtual bool setReadEnvelopeCallback (readEnvelopeCallbackType callback, void *data)
 Install a callback that the InputStream will have to call when the envelope is read from a message in carriers that cannot be escaped. More...
 
- Public Member Functions inherited from yarp::os::OutputStream
virtual ~OutputStream ()
 Destructor. More...
 
virtual void write (char ch)
 Write a single byte to the stream. More...
 
virtual void write (const Bytes &b, int offset, int len)
 Write a block of bytes to the stream. More...
 
virtual void flush ()
 Make sure all pending write operations are finished. More...
 
virtual void writeLine (const char *data, int len)
 Write some text followed by a line feed. More...
 
virtual bool setWriteTimeout (double timeout)
 Set activity timeout. More...
 
virtual bool setTypeOfService (int tos)
 
virtual int getTypeOfService ()
 

Protected Attributes

int readAvail
 
int readAt
 
char * readBuffer
 
bool terminate
 
ConstString name
 
yarp::os::MpiCommcomm
 
yarp::os::Contact local
 
yarp::os::Contact remote
 

Additional Inherited Members

- Public Types inherited from yarp::os::InputStream
typedef void(* readEnvelopeCallbackType) (void *, const yarp::os::Bytes &envelope)
 Callback type for setting the envelope from a message in carriers that cannot be escaped. More...
 

Detailed Description

Abstract base class for port communication via MPI.

Definition at line 35 of file MpiStream.h.

Constructor & Destructor Documentation

◆ MpiStream()

MpiStream::MpiStream ( ConstString  name,
MpiComm comm 
)

Definition at line 17 of file MpiStream.cpp.

◆ ~MpiStream()

MpiStream::~MpiStream ( )
virtual

Definition at line 23 of file MpiStream.cpp.

Member Function Documentation

◆ beginPacket()

void MpiStream::beginPacket ( )
overridevirtual

Mark the beginning of a logical packet.

This is a unit that should be treated in an atomic fashion by YARP. If any part is corrupted, the whole should be dropped.

Implements yarp::os::TwoWayStream.

Definition at line 65 of file MpiStream.cpp.

◆ close()

virtual void yarp::os::MpiStream::close ( )
overridepure virtual

Terminate the stream.

Implements yarp::os::InputStream.

Implemented in yarp::os::MpiBcastStream, and yarp::os::MpiP2PStream.

◆ endPacket()

void MpiStream::endPacket ( )
overridevirtual

Mark the end of a logical packet (see beginPacket).

Implements yarp::os::TwoWayStream.

Definition at line 68 of file MpiStream.cpp.

◆ getInputStream()

InputStream & MpiStream::getInputStream ( )
overridevirtual

Get an InputStream to read from.

Returns
the InputStream associated with this object.

Implements yarp::os::TwoWayStream.

Definition at line 51 of file MpiStream.cpp.

◆ getLocalAddress()

const yarp::os::Contact & MpiStream::getLocalAddress ( )
overridevirtual

Get the address of the local side of the stream.

Returns
the address of the local side of the stream. The address will be tagged as invalid if the stream is not set up.

Implements yarp::os::TwoWayStream.

Definition at line 57 of file MpiStream.cpp.

◆ getOutputStream()

yarp::os::OutputStream & MpiStream::getOutputStream ( )
overridevirtual

Get an OutputStream to write to.

Returns
the InputStream associated with this object.

Implements yarp::os::TwoWayStream.

Definition at line 54 of file MpiStream.cpp.

◆ getRemoteAddress()

const yarp::os::Contact & MpiStream::getRemoteAddress ( )
overridevirtual

Get the address of the remote side of the stream.

Returns
the address of the remote side of the stream. The address will be tagged as invalid if the stream is not set up.

Implements yarp::os::TwoWayStream.

Definition at line 61 of file MpiStream.cpp.

◆ interrupt()

void MpiStream::interrupt ( )
overridevirtual

Interrupt the stream.

If the stream is currently in a blocked state, it must be unblocked.

Reimplemented from yarp::os::InputStream.

Definition at line 41 of file MpiStream.cpp.

◆ isOk()

bool MpiStream::isOk ( )
overridevirtual

Check if the stream is ok or in an error state.

Returns
true iff the stream is ok

Implements yarp::os::InputStream.

Definition at line 37 of file MpiStream.cpp.

◆ read()

virtual ssize_t yarp::os::MpiStream::read ( const Bytes b)
overridepure virtual

Read a block of data from the stream.

Should block and wait for data.

Parameters
bthe block of data to read to
Returns
the number of bytes read, or -1 upon error

Implements yarp::os::InputStream.

Implemented in yarp::os::MpiBcastStream, and yarp::os::MpiP2PStream.

◆ reset()

virtual void yarp::os::MpiStream::reset ( )
inlineoverridevirtual

Reset the stream.

Implements yarp::os::TwoWayStream.

Definition at line 61 of file MpiStream.h.

◆ resetBuffer()

void MpiStream::resetBuffer ( )

Definition at line 29 of file MpiStream.cpp.

◆ write()

virtual void yarp::os::MpiStream::write ( const Bytes b)
overridepure virtual

Write a block of bytes to the stream.

Parameters
bthe bytes to write

Implements yarp::os::OutputStream.

Implemented in yarp::os::MpiBcastStream, and yarp::os::MpiP2PStream.

Member Data Documentation

◆ comm

yarp::os::MpiComm* yarp::os::MpiStream::comm
protected

Definition at line 41 of file MpiStream.h.

◆ local

yarp::os::Contact yarp::os::MpiStream::local
protected

Definition at line 43 of file MpiStream.h.

◆ name

ConstString yarp::os::MpiStream::name
protected

Definition at line 40 of file MpiStream.h.

◆ readAt

int yarp::os::MpiStream::readAt
protected

Definition at line 37 of file MpiStream.h.

◆ readAvail

int yarp::os::MpiStream::readAvail
protected

Definition at line 37 of file MpiStream.h.

◆ readBuffer

char* yarp::os::MpiStream::readBuffer
protected

Definition at line 38 of file MpiStream.h.

◆ remote

yarp::os::Contact yarp::os::MpiStream::remote
protected

Definition at line 43 of file MpiStream.h.

◆ terminate

bool yarp::os::MpiStream::terminate
protected

Definition at line 39 of file MpiStream.h.


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