YARP
Yet Another Robot Platform
ShmemHybridStream Class Reference

A stream abstraction for shared memory communication. More...

#include <shmem_carrier/ShmemHybridStream.h>

+ Inheritance diagram for ShmemHybridStream:

Public Member Functions

 ShmemHybridStream ()
 
virtual ~ShmemHybridStream ()
 
int open (const yarp::os::Contact &yarp_address, bool sender)
 
int accept ()
 
void close () override
 Terminate the stream. More...
 
void interrupt () override
 Interrupt the stream. More...
 
void write (const yarp::os::Bytes &b) override
 Write a block of bytes to the stream. More...
 
yarp::conf::ssize_t read (yarp::os::Bytes &b) override
 Read a block of data from the stream. More...
 
yarp::os::InputStreamgetInputStream () override
 Get an InputStream to read from. More...
 
yarp::os::OutputStreamgetOutputStream () override
 Get an OutputStream to write to. More...
 
bool isOk () const override
 Check if the stream is ok or in an error state. More...
 
void reset () override
 Reset the stream. More...
 
void beginPacket () override
 Mark the beginning of a logical packet. More...
 
void endPacket () override
 Mark the end of a logical packet (see beginPacket). More...
 
const yarp::os::ContactgetLocalAddress () const override
 Get the address of the local side of the stream. More...
 
const yarp::os::ContactgetRemoteAddress () const override
 Get the address of the remote side of the stream. 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::conf::ssize_t read (Bytes &b, size_t offset, yarp::conf::ssize_t len)
 Read a block of data from the stream. More...
 
virtual yarp::conf::ssize_t partialRead (yarp::os::Bytes &b)
 Like read, but solicit partial responses. More...
 
virtual bool setReadTimeout (double timeout)
 Set activity timeout. More...
 
std::string readLine (const char terminal='\n', bool *success=nullptr)
 Read a block of text terminated with a specific marker (or EOF). More...
 
yarp::conf::ssize_t readFull (Bytes &b)
 Keep reading until buffer is full. More...
 
yarp::conf::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 ()
 

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

A stream abstraction for shared memory communication.

Definition at line 22 of file ShmemHybridStream.h.

Constructor & Destructor Documentation

◆ ShmemHybridStream()

ShmemHybridStream::ShmemHybridStream ( )

Definition at line 10 of file ShmemHybridStream.cpp.

◆ ~ShmemHybridStream()

ShmemHybridStream::~ShmemHybridStream ( )
virtual

Definition at line 15 of file ShmemHybridStream.cpp.

Member Function Documentation

◆ accept()

int ShmemHybridStream::accept ( )

Definition at line 49 of file ShmemHybridStream.cpp.

◆ beginPacket()

void ShmemHybridStream::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 203 of file ShmemHybridStream.cpp.

◆ close()

void ShmemHybridStream::close ( )
overridevirtual

Terminate the stream.

Implements yarp::os::InputStream.

Definition at line 153 of file ShmemHybridStream.cpp.

◆ endPacket()

void ShmemHybridStream::endPacket ( )
overridevirtual

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

Implements yarp::os::TwoWayStream.

Definition at line 207 of file ShmemHybridStream.cpp.

◆ getInputStream()

yarp::os::InputStream & ShmemHybridStream::getInputStream ( )
overridevirtual

Get an InputStream to read from.

Returns
the InputStream associated with this object.

Implements yarp::os::TwoWayStream.

Definition at line 182 of file ShmemHybridStream.cpp.

◆ getLocalAddress()

const yarp::os::Contact & ShmemHybridStream::getLocalAddress ( ) const
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 211 of file ShmemHybridStream.cpp.

◆ getOutputStream()

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

Get an OutputStream to write to.

Returns
the InputStream associated with this object.

Implements yarp::os::TwoWayStream.

Definition at line 187 of file ShmemHybridStream.cpp.

◆ getRemoteAddress()

const yarp::os::Contact & ShmemHybridStream::getRemoteAddress ( ) const
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 216 of file ShmemHybridStream.cpp.

◆ interrupt()

void ShmemHybridStream::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 160 of file ShmemHybridStream.cpp.

◆ isOk()

bool ShmemHybridStream::isOk ( ) const
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 192 of file ShmemHybridStream.cpp.

◆ open()

int ShmemHybridStream::open ( const yarp::os::Contact yarp_address,
bool  sender 
)

Definition at line 20 of file ShmemHybridStream.cpp.

◆ read()

yarp::conf::ssize_t ShmemHybridStream::read ( yarp::os::Bytes b)
overridevirtual

Read a block of data from the stream.

Should block and wait for data.

Parameters
b[out]the block of data to read to
Returns
the number of bytes read, or -1 upon error

Implements yarp::os::InputStream.

Definition at line 173 of file ShmemHybridStream.cpp.

◆ reset()

void ShmemHybridStream::reset ( )
overridevirtual

Reset the stream.

Implements yarp::os::TwoWayStream.

Definition at line 197 of file ShmemHybridStream.cpp.

◆ write()

void ShmemHybridStream::write ( const yarp::os::Bytes b)
overridevirtual

Write a block of bytes to the stream.

Parameters
bthe bytes to write

Implements yarp::os::OutputStream.

Definition at line 166 of file ShmemHybridStream.cpp.


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