YARP
Yet Another Robot Platform
yarp::os::ManagedBytes Class Reference

An abstraction for a block of bytes, with optional responsibility for allocating/destroying that block. More...

#include <yarp/os/ManagedBytes.h>

+ Inheritance diagram for yarp::os::ManagedBytes:

Public Member Functions

 ManagedBytes ()
 Constructor. More...
 
 ManagedBytes (size_t len)
 Constructor. More...
 
 ManagedBytes (const Bytes &ext, bool owned=false)
 Constructor. More...
 
 ManagedBytes (ManagedBytes &&other) noexcept
 Move constructor. More...
 
ManagedBytesoperator= (ManagedBytes &&other) noexcept
 Move assignment operator. More...
 
 ManagedBytes (const ManagedBytes &alt)
 Copy constructor. More...
 
const ManagedBytesoperator= (const ManagedBytes &alt)
 Assignment operator. More...
 
virtual ~ManagedBytes ()
 Destructor. More...
 
void allocate (size_t len)
 Makes a data block of the specified length that will be deleted if this object is destroyed. More...
 
bool allocateOnNeed (size_t neededLen, size_t allocateLen)
 
void copy ()
 Makes sure data block is owned, making a copy if necessary. More...
 
size_t length () const
 
size_t used () const
 
const char * get () const
 
char * get ()
 
void clear ()
 Disassociate object with any data block (deleting block if appropriate). More...
 
const Bytesbytes () const
 
Bytesbytes ()
 
Bytes usedBytes ()
 
size_t setUsed (size_t used)
 explicitly declare how many of the bytes are in use. More...
 
size_t resetUsed ()
 
bool read (ConnectionReader &reader) override
 Read this object from a network connection. More...
 
bool write (ConnectionWriter &writer) const override
 Write this object to a network connection. More...
 
bool isOwner () const
 
- Public Member Functions inherited from yarp::os::Portable
virtual Type getType () const
 
- Public Member Functions inherited from yarp::os::PortReader
virtual ~PortReader ()
 Destructor. More...
 
virtual Type getReadType () const
 
- Public Member Functions inherited from yarp::os::PortWriter
virtual ~PortWriter ()
 Destructor. More...
 
virtual void onCompletion () const
 This is called when the port has finished all writing operations. More...
 
virtual void onCommencement () const
 This is called when the port is about to begin writing operations. More...
 
virtual yarp::os::Type getWriteType () const
 

Additional Inherited Members

- Static Public Member Functions inherited from yarp::os::Portable
static bool copyPortable (const PortWriter &writer, PortReader &reader)
 Copy one portable to another, via writing and reading. More...
 

Detailed Description

An abstraction for a block of bytes, with optional responsibility for allocating/destroying that block.

Definition at line 24 of file ManagedBytes.h.

Constructor & Destructor Documentation

◆ ManagedBytes() [1/5]

ManagedBytes::ManagedBytes ( )
explicit

Constructor.

No data present.

Definition at line 21 of file ManagedBytes.cpp.

◆ ManagedBytes() [2/5]

ManagedBytes::ManagedBytes ( size_t  len)
explicit

Constructor.

Makes a data block of the specified length that will be deleted if this object is destroyed.

Parameters
lenlength of data block

Definition at line 30 of file ManagedBytes.cpp.

◆ ManagedBytes() [3/5]

ManagedBytes::ManagedBytes ( const Bytes ext,
bool  owned = false 
)

Constructor.

Represent external data.

Parameters
extaddress and length of data
ownedtrue if data should be deleted if this object is destroyed

Definition at line 39 of file ManagedBytes.cpp.

◆ ManagedBytes() [4/5]

ManagedBytes::ManagedBytes ( ManagedBytes &&  other)
noexcept

Move constructor.

Parameters
otherthe ManagedBytes to be moved

Definition at line 70 of file ManagedBytes.cpp.

◆ ManagedBytes() [5/5]

ManagedBytes::ManagedBytes ( const ManagedBytes alt)

Copy constructor.

Parameters
altthe data to copy. If it is "owned" an independent copy is made.

Definition at line 48 of file ManagedBytes.cpp.

◆ ~ManagedBytes()

ManagedBytes::~ManagedBytes ( )
virtual

Destructor.

Definition at line 99 of file ManagedBytes.cpp.

Member Function Documentation

◆ allocate()

void ManagedBytes::allocate ( size_t  len)

Makes a data block of the specified length that will be deleted if this object is destroyed.

Parameters
lenlength of data block

Definition at line 105 of file ManagedBytes.cpp.

◆ allocateOnNeed()

bool ManagedBytes::allocateOnNeed ( size_t  neededLen,
size_t  allocateLen 
)

Definition at line 115 of file ManagedBytes.cpp.

◆ bytes() [1/2]

Bytes & ManagedBytes::bytes ( )
Returns
description of data block associated with this object

Definition at line 182 of file ManagedBytes.cpp.

◆ bytes() [2/2]

const Bytes & ManagedBytes::bytes ( ) const
Returns
description of data block associated with this object (const version)

Definition at line 177 of file ManagedBytes.cpp.

◆ clear()

void ManagedBytes::clear ( )

Disassociate object with any data block (deleting block if appropriate).

Definition at line 164 of file ManagedBytes.cpp.

◆ copy()

void ManagedBytes::copy ( )

Makes sure data block is owned, making a copy if necessary.

Definition at line 132 of file ManagedBytes.cpp.

◆ get() [1/2]

char * ManagedBytes::get ( )
Returns
address of data block

Definition at line 159 of file ManagedBytes.cpp.

◆ get() [2/2]

const char * ManagedBytes::get ( ) const
Returns
address of data block (const version)

Definition at line 154 of file ManagedBytes.cpp.

◆ isOwner()

bool yarp::os::ManagedBytes::isOwner ( ) const
inline
Returns
true iff the managed data block is owned by this object

Definition at line 161 of file ManagedBytes.h.

◆ length()

size_t ManagedBytes::length ( ) const
Returns
length of data block

Definition at line 144 of file ManagedBytes.cpp.

◆ operator=() [1/2]

const ManagedBytes & ManagedBytes::operator= ( const ManagedBytes alt)

Assignment operator.

Parameters
altthe data to copy. If it is "owned" an independent copy is made.
Returns
this object

Definition at line 84 of file ManagedBytes.cpp.

◆ operator=() [2/2]

ManagedBytes & ManagedBytes::operator= ( ManagedBytes &&  other)
noexcept

Move assignment operator.

Parameters
otherthe MangedBytes to be moved
Returns
this object

Definition at line 75 of file ManagedBytes.cpp.

◆ read()

bool ManagedBytes::read ( ConnectionReader reader)
overridevirtual

Read this object from a network connection.

Override this for your particular class.

Parameters
readeran interface to the network connection for reading
Returns
true iff the object is successfully read

Implements yarp::os::Portable.

Definition at line 207 of file ManagedBytes.cpp.

◆ resetUsed()

size_t ManagedBytes::resetUsed ( )

Definition at line 199 of file ManagedBytes.cpp.

◆ setUsed()

size_t ManagedBytes::setUsed ( size_t  used)

explicitly declare how many of the bytes are in use.

Parameters
usedbyte count
Returns
a confirmation of the number of bytes declared to be in use.

Definition at line 192 of file ManagedBytes.cpp.

◆ used()

size_t ManagedBytes::used ( ) const
Returns
length of used portion of data block - by default, this is the same as length(), unless setUsed() is called

Definition at line 149 of file ManagedBytes.cpp.

◆ usedBytes()

Bytes ManagedBytes::usedBytes ( )
Returns
description of used portion of data block associated with this object

Definition at line 187 of file ManagedBytes.cpp.

◆ write()

bool ManagedBytes::write ( ConnectionWriter writer) const
overridevirtual

Write this object to a network connection.

Override this for your particular class. Be aware that depending on the nature of the connections a port has, and what protocol they use, and how efficient the YARP implementation is, this method may be called once, twice, or many times, as the result of a single call to Port::write

Parameters
writeran interface to the network connection for writing
Returns
true iff the object is successfully written

Implements yarp::os::Portable.

Definition at line 229 of file ManagedBytes.cpp.


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