Main MRPT website > C++ reference for MRPT 1.5.6
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::CReferencedMemBlock ( size_t  mem_block_size = 0)

Constructor with an optional size of the memory block.

Definition at line 16 of file CReferencedMemBlock.cpp.

CReferencedMemBlock::~CReferencedMemBlock ( )
virtual

Destructor, calls dereference_once.

Definition at line 21 of file CReferencedMemBlock.cpp.

Member Function Documentation

unsigned int CReferencedMemBlock::alias_count ( ) const

Definition at line 30 of file CReferencedMemBlock.cpp.

References m_data.

void CReferencedMemBlock::clear ( )

Frees the underlying memory block.

Definition at line 35 of file CReferencedMemBlock.cpp.

References m_data.

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

Definition at line 52 of file CReferencedMemBlock.h.

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

Definition at line 53 of file CReferencedMemBlock.h.

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

Definition at line 39 of file CReferencedMemBlock.h.

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

Definition at line 45 of file CReferencedMemBlock.h.

void CReferencedMemBlock::resize ( size_t  mem_block_size)

Resize the shared memory block.

Definition at line 25 of file CReferencedMemBlock.cpp.

References m_data.

Member Data Documentation

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

Definition at line 59 of file CReferencedMemBlock.h.

Referenced by alias_count(), clear(), and resize().




Page generated by Doxygen 1.8.6 for MRPT 1.5.6 Git: 4c65e84 Tue Apr 24 08:18:17 2018 +0200 at mar abr 24 08:26:17 CEST 2018