Main MRPT website > C++ reference for MRPT 1.5.3
List of all members | Public Member Functions | Protected Attributes
mrpt::utils::CReferencedMemBlock Class Reference

Detailed Description

Represents a memory block (via "void*") that can be shared between several objects through copy operator (=).

It keeps the reference count and only when it comes to zero, the memory block is really freed. Behaves like std::shared_ptr<>.

Definition at line 27 of file CReferencedMemBlock.h.

#include <mrpt/utils/CReferencedMemBlock.h>

Public Member Functions

 CReferencedMemBlock (size_t mem_block_size=0)
 Constructor with an optional size of the memory block. More...
 
virtual ~CReferencedMemBlock ()
 Destructor, calls dereference_once. More...
 
void resize (size_t mem_block_size)
 Resize the shared memory block. More...
 
template<class T >
T * getAsPtr ()
 
template<class T >
const T * getAsPtr () const
 
template<class T >
T & getAs ()
 
template<class T >
const T & getAs () const
 
unsigned int alias_count () const
 
void clear ()
 Frees the underlying memory block. More...
 

Protected Attributes

stlplus::smart_ptr< std::vector< char > > m_data
 

Constructor & Destructor Documentation

◆ CReferencedMemBlock()

mrpt::utils::CReferencedMemBlock::CReferencedMemBlock ( size_t  mem_block_size = 0)

Constructor with an optional size of the memory block.

◆ ~CReferencedMemBlock()

virtual mrpt::utils::CReferencedMemBlock::~CReferencedMemBlock ( )
virtual

Destructor, calls dereference_once.

Member Function Documentation

◆ alias_count()

unsigned int mrpt::utils::CReferencedMemBlock::alias_count ( ) const

◆ clear()

void mrpt::utils::CReferencedMemBlock::clear ( )

Frees the underlying memory block.

◆ getAs() [1/2]

template<class T >
T& mrpt::utils::CReferencedMemBlock::getAs ( )
inline

Definition at line 52 of file CReferencedMemBlock.h.

◆ getAs() [2/2]

template<class T >
const T& mrpt::utils::CReferencedMemBlock::getAs ( ) const
inline

Definition at line 53 of file CReferencedMemBlock.h.

References mrpt::utils::clear().

◆ getAsPtr() [1/2]

template<class T >
T* mrpt::utils::CReferencedMemBlock::getAsPtr ( )
inline

Definition at line 39 of file CReferencedMemBlock.h.

◆ getAsPtr() [2/2]

template<class T >
const T* mrpt::utils::CReferencedMemBlock::getAsPtr ( ) const
inline

Definition at line 45 of file CReferencedMemBlock.h.

◆ resize()

void mrpt::utils::CReferencedMemBlock::resize ( size_t  mem_block_size)

Resize the shared memory block.

Member Data Documentation

◆ m_data

stlplus::smart_ptr< std::vector<char> > mrpt::utils::CReferencedMemBlock::m_data
protected

Definition at line 59 of file CReferencedMemBlock.h.




Page generated by Doxygen 1.8.13 for MRPT 1.5.3 at Mon Oct 30 10:27:08 UTC 2017