Main MRPT website > C++ reference for MRPT 1.4.0
List of all members | Public Types | Public Member Functions | Protected Attributes | Private Types
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.

Definition at line 27 of file CReferencedMemBlock.h.

#include <mrpt/utils/CReferencedMemBlock.h>

Inheritance diagram for mrpt::utils::CReferencedMemBlock:
Inheritance graph

Public Types

typedef std::vector< char > value_type
 
typedef std::vector< char > & reference
 
typedef const std::vector< char > & const_reference
 
typedef constructor_copy< std::vector< char > > value_copy
 

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 >
getAs ()
 
template<class T >
getAs () const
 
 operator bool (void) const
 
bool operator! (void) const
 
bool present (void) const
 
bool null (void) const
 
std::vector< char > & operator* (void) throw (null_dereference)
 
const std::vector< char > & operator* (void) const throw (null_dereference)
 
std::vector< char > * operator-> (void) throw (null_dereference)
 
const std::vector< char > * operator-> (void) const throw (null_dereference)
 
void set_value (const std::vector< char > &data) throw (illegal_copy)
 
std::vector< char > & value (void) throw (null_dereference)
 
const std::vector< char > & value (void) const throw (null_dereference)
 
void set (std::vector< char > *data=0)
 
std::vector< char > * pointer (void)
 
const std::vector< char > * pointer (void) const
 
void alias (const smart_ptr_base< std::vector< char >, constructor_copy< std::vector< char > >, mrpt::synch::CAtomicCounter > &)
 
bool aliases (const smart_ptr_base< std::vector< char >, constructor_copy< std::vector< char > >, mrpt::synch::CAtomicCounter > &) const
 
unsigned alias_count (void) const
 
void clear (void)
 
void clear_unique (void)
 
void make_unique (void) throw (illegal_copy)
 
void copy (const smart_ptr_base< std::vector< char >, constructor_copy< std::vector< char > >, mrpt::synch::CAtomicCounter > &) throw (illegal_copy)
 
void * handle (void) const
 
void make_alias (void *handle)
 

Protected Attributes

smart_ptr_holder< std::vector< char >, mrpt::synch::CAtomicCounter > * m_holder
 

Private Types

typedef stlplus::smart_ptr< std::vector< char > > base_t
 

Member Typedef Documentation

◆ base_t

typedef stlplus::smart_ptr< std::vector<char> > mrpt::utils::CReferencedMemBlock::base_t
private

Definition at line 29 of file CReferencedMemBlock.h.

◆ const_reference

typedef const std::vector< char > & stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::const_reference
inherited

Definition at line 72 of file smart_ptr.hpp.

◆ reference

typedef std::vector< char > & stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::reference
inherited

Definition at line 71 of file smart_ptr.hpp.

◆ value_copy

typedef constructor_copy< std::vector< char > > stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::value_copy
inherited

Definition at line 73 of file smart_ptr.hpp.

◆ value_type

typedef std::vector< char > stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::value_type
inherited

Definition at line 70 of file smart_ptr.hpp.

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()

void stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::alias ( const smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter > &  )
inlineinherited

◆ alias_count()

unsigned stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::alias_count ( void  ) const
inlineinherited

◆ aliases()

bool stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::aliases ( const smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter > &  ) const
inlineinherited

◆ clear()

void stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::clear ( void  )
inlineinherited

◆ clear_unique()

void stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::clear_unique ( void  )
inlineinherited

◆ copy()

void stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::copy ( const smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter > &  )
throw (illegal_copy
)
inherited

◆ getAs() [1/2]

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

Definition at line 40 of file CReferencedMemBlock.h.

References empty().

◆ getAs() [2/2]

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

Definition at line 51 of file CReferencedMemBlock.h.

References empty().

◆ handle()

void* stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::handle ( void  ) const
inherited

◆ make_alias()

void stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::make_alias ( void *  handle)
inherited

◆ make_unique()

void stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::make_unique ( void  )
throw (illegal_copy
)
inlineinherited

◆ null()

bool stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::null ( void  ) const
inherited

◆ operator bool()

stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::operator bool ( void  ) const
inherited

◆ operator!()

bool stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::operator! ( void  ) const
inherited

◆ operator*() [1/2]

std::vector< char > & stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::operator* ( void  )
throw (null_dereference
)
inherited

◆ operator*() [2/2]

const std::vector< char > & stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::operator* ( void  ) const
throw (null_dereference
)
inherited

◆ operator->() [1/2]

std::vector< char > * stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::operator-> ( void  )
throw (null_dereference
)
inherited

◆ operator->() [2/2]

const std::vector< char > * stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::operator-> ( void  ) const
throw (null_dereference
)
inherited

◆ pointer() [1/2]

std::vector< char > * stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::pointer ( void  )
inherited

◆ pointer() [2/2]

const std::vector< char > * stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::pointer ( void  ) const
inherited

◆ present()

bool stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::present ( void  ) const
inherited

◆ resize()

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

Resize the shared memory block.

◆ set()

void stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::set ( std::vector< char > *  data = 0)
inherited

◆ set_value()

void stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::set_value ( const std::vector< char > &  data)
throw (illegal_copy
)
inherited

◆ value() [1/2]

std::vector< char > & stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::value ( void  )
throw (null_dereference
)
inherited

◆ value() [2/2]

const std::vector< char > & stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::value ( void  ) const
throw (null_dereference
)
inherited

Member Data Documentation

◆ m_holder

smart_ptr_holder<std::vector< char > ,mrpt::synch::CAtomicCounter >* stlplus::smart_ptr_base< std::vector< char > , constructor_copy< std::vector< char > > , mrpt::synch::CAtomicCounter >::m_holder
protectedinherited

Definition at line 175 of file smart_ptr.hpp.




Page generated by Doxygen 1.8.14 for MRPT 1.4.0 SVN: at Sat Jul 14 16:13:21 UTC 2018