Pothos  0.2.1-g9f04573d
The Pothos dataflow programming software suite
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros
Public Member Functions | Friends | List of all members
Pothos::ManagedBuffer Class Reference

#include <ManagedBuffer.hpp>

Public Member Functions

 ManagedBuffer (void)
 
pothos_explicit operator bool (void) const
 
void reset (void)
 
void reset (std::shared_ptr< BufferManager > manager, const SharedBuffer &buff, const size_t slabIndex=0)
 
const SharedBuffergetBuffer (void) const
 
size_t getSlabIndex (void) const
 
 ~ManagedBuffer (void)
 ManagedBuffer destructor. More...
 
 ManagedBuffer (const ManagedBuffer &obj)
 ManagedBuffer copy constructor. More...
 
 ManagedBuffer (ManagedBuffer &&obj)
 ManagedBuffer move constructor. More...
 
ManagedBufferoperator= (const ManagedBuffer &obj)
 ManagedBuffer copy assignment. More...
 
ManagedBufferoperator= (ManagedBuffer &&obj)
 ManagedBuffer move assignment. More...
 
std::shared_ptr< BufferManagergetBufferManager (void) const
 Get the associated buffer manager. More...
 
bool operator< (const ManagedBuffer &) const
 sortable operator for ManagedBuffer More...
 
bool unique (void) const
 
size_t useCount (void) const
 

Friends

POTHOS_API friend bool operator== (const ManagedBuffer &lhs, const ManagedBuffer &rhs)
 

Detailed Description

A ManagedBuffer is a buffer that interacts with a BufferManager. The ManagedBuffer maintains a reference count, and when no more copies are held by the user, the ManagedBuffer will be returned to the BufferManager; unless the BufferManager has been deleted.

Constructor & Destructor Documentation

Pothos::ManagedBuffer::ManagedBuffer ( void  )

Create a null buffer. All fields are initialized to zero.

Pothos::ManagedBuffer::~ManagedBuffer ( void  )

ManagedBuffer destructor.

Pothos::ManagedBuffer::ManagedBuffer ( const ManagedBuffer obj)

ManagedBuffer copy constructor.

Pothos::ManagedBuffer::ManagedBuffer ( ManagedBuffer &&  obj)

ManagedBuffer move constructor.

Member Function Documentation

const SharedBuffer& Pothos::ManagedBuffer::getBuffer ( void  ) const

Get the internal buffer as set by the manager and which cannot be changed by the caller.

Returns
a const reference to the buffer
std::shared_ptr<BufferManager> Pothos::ManagedBuffer::getBufferManager ( void  ) const

Get the associated buffer manager.

size_t Pothos::ManagedBuffer::getSlabIndex ( void  ) const

Get the slab index associated with this buffer. The slab index related to implementation specifics. Typically, this index is only used when the underlying buffer is sourced from a continuous slab of memory.

Pothos::ManagedBuffer::operator bool ( void  ) const
inline

Is this managed buffer valid?

Returns
true if it holds an allocation.
bool Pothos::ManagedBuffer::operator< ( const ManagedBuffer rhs) const
inline

sortable operator for ManagedBuffer

ManagedBuffer& Pothos::ManagedBuffer::operator= ( const ManagedBuffer obj)

ManagedBuffer copy assignment.

ManagedBuffer& Pothos::ManagedBuffer::operator= ( ManagedBuffer &&  obj)

ManagedBuffer move assignment.

void Pothos::ManagedBuffer::reset ( void  )

Reset any reference held by the managed buffer. This managed buffer will become a null buffer.

void Pothos::ManagedBuffer::reset ( std::shared_ptr< BufferManager manager,
const SharedBuffer buff,
const size_t  slabIndex = 0 
)

Reset the managed buffer for its next usage.

Parameters
managershared pointer to the buffer manager
buffthe shared buffer with memory and length
slabIndexan identifying index used with slabs
bool Pothos::ManagedBuffer::unique ( void  ) const
inline

Is the reference to the managed buffer unique?

Returns
true if this is the only copy of the managed buffer
size_t Pothos::ManagedBuffer::useCount ( void  ) const

The number of copies of the managed buffer.

Friends And Related Function Documentation

POTHOS_API friend bool operator== ( const ManagedBuffer lhs,
const ManagedBuffer rhs 
)
friend

Equality operator for ManagedBuffer. True when the containers are identical.


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