Field3D
|
#include <RefCount.h>
Public Types | |
typedef boost::intrusive_ptr < RefBase > | Ptr |
typedef boost::intrusive_ptr < RefBase > | Ptr |
Public Member Functions | |
void | ref () const |
Used by boost::intrusive_pointer. | |
void | ref () const |
Used by boost::intrusive_pointer. | |
size_t | refcnt () |
Used by boost::intrusive_pointer. | |
size_t | refcnt () |
Used by boost::intrusive_pointer. | |
void | unref () const |
Used by boost::intrusive_pointer. | |
void | unref () const |
Used by boost::intrusive_pointer. | |
Constructors, destructors, copying | |
RefBase () | |
RefBase (const RefBase &) | |
Copy constructor. | |
RefBase & | operator= (const RefBase &) |
Assignment operator. | |
virtual | ~RefBase () |
Destructor. | |
RefBase () | |
RefBase (const RefBase &) | |
Copy constructor. | |
RefBase & | operator= (const RefBase &) |
Assignment operator. | |
virtual | ~RefBase () |
Destructor. | |
Private Attributes | |
long | m_counter |
For boost intrusive pointer. | |
boost::mutex | m_refMutex |
Mutex for ref counting. |
Definition at line 64 of file RefCount.h.
typedef boost::intrusive_ptr<RefBase> RefBase::Ptr |
Reimplemented in DenseField< Data_T >, DenseFieldIO, EmptyField< Data_T >, FieldBase, FieldRes, Field< Data_T >, WritableField< Data_T >, ResizableField< Data_T >, File::Partition, FieldInterp< Data_T >, LinearFieldInterp< Data_T >, CubicFieldInterp< Data_T >, LinearGenericFieldInterp< Field_T >, LinearMACFieldInterp< Data_T >, CubicGenericFieldInterp< Field_T >, CubicMACFieldInterp< Data_T >, ProceduralFieldLookup< Data_T >, FieldIO, FieldMapping, NullFieldMapping, MatrixFieldMapping, FieldMappingIO, NullFieldMappingIO, MatrixFieldMappingIO, MACField< Data_T >, MACFieldIO, ProceduralField< Data_T >, SparseField< Data_T >, SparseFieldIO, DenseField< Data_T >, DenseFieldIO, EmptyField< Data_T >, FieldBase, FieldRes, Field< Data_T >, WritableField< Data_T >, ResizableField< Data_T >, File::Partition, FieldInterp< Data_T >, LinearFieldInterp< Data_T >, CubicFieldInterp< Data_T >, LinearGenericFieldInterp< Field_T >, LinearMACFieldInterp< Data_T >, CubicGenericFieldInterp< Field_T >, CubicMACFieldInterp< Data_T >, ProceduralFieldLookup< Data_T >, FieldIO, FieldMapping, NullFieldMapping, MatrixFieldMapping, FieldMappingIO, NullFieldMappingIO, MatrixFieldMappingIO, MACField< Data_T >, MACFieldIO, ProceduralField< Data_T >, SparseField< Data_T >, and SparseFieldIO.
Definition at line 70 of file RefCount.h.
typedef boost::intrusive_ptr<RefBase> RefBase::Ptr |
Reimplemented in DenseField< Data_T >, DenseFieldIO, EmptyField< Data_T >, FieldBase, FieldRes, Field< Data_T >, WritableField< Data_T >, ResizableField< Data_T >, File::Partition, FieldInterp< Data_T >, LinearFieldInterp< Data_T >, CubicFieldInterp< Data_T >, LinearGenericFieldInterp< Field_T >, LinearMACFieldInterp< Data_T >, CubicGenericFieldInterp< Field_T >, CubicMACFieldInterp< Data_T >, ProceduralFieldLookup< Data_T >, FieldIO, FieldMapping, NullFieldMapping, MatrixFieldMapping, FieldMappingIO, NullFieldMappingIO, MatrixFieldMappingIO, MACField< Data_T >, MACFieldIO, ProceduralField< Data_T >, SparseField< Data_T >, SparseFieldIO, DenseField< Data_T >, DenseFieldIO, EmptyField< Data_T >, FieldBase, FieldRes, Field< Data_T >, WritableField< Data_T >, ResizableField< Data_T >, File::Partition, FieldInterp< Data_T >, LinearFieldInterp< Data_T >, CubicFieldInterp< Data_T >, LinearGenericFieldInterp< Field_T >, LinearMACFieldInterp< Data_T >, CubicGenericFieldInterp< Field_T >, CubicMACFieldInterp< Data_T >, ProceduralFieldLookup< Data_T >, FieldIO, FieldMapping, NullFieldMapping, MatrixFieldMapping, FieldMappingIO, NullFieldMappingIO, MatrixFieldMappingIO, MACField< Data_T >, MACFieldIO, ProceduralField< Data_T >, SparseField< Data_T >, and SparseFieldIO.
Definition at line 70 of file RefCount.h.
RefBase::RefBase | ( | ) | [inline] |
Definition at line 77 of file RefCount.h.
: m_counter(0) {}
RefBase::RefBase | ( | const RefBase & | ) | [inline] |
virtual RefBase::~RefBase | ( | ) | [inline, virtual] |
RefBase::RefBase | ( | ) | [inline] |
Definition at line 77 of file RefCount.h.
: m_counter(0) {}
RefBase::RefBase | ( | const RefBase & | ) | [inline] |
virtual RefBase::~RefBase | ( | ) | [inline, virtual] |
size_t RefBase::refcnt | ( | ) | [inline] |
Used by boost::intrusive_pointer.
Definition at line 97 of file RefCount.h.
References m_counter.
Referenced by intrusive_ptr_release().
{ return m_counter; }
void RefBase::ref | ( | ) | const [inline] |
Used by boost::intrusive_pointer.
Definition at line 101 of file RefCount.h.
References m_counter, and m_refMutex.
Referenced by intrusive_ptr_add_ref().
{ #ifndef FIELD3D_USE_ATOMIC_COUNT boost::mutex::scoped_lock lock(m_refMutex); #endif ++m_counter; }
void RefBase::unref | ( | ) | const [inline] |
Used by boost::intrusive_pointer.
Definition at line 110 of file RefCount.h.
References m_counter, and m_refMutex.
Referenced by intrusive_ptr_release().
{ #ifndef FIELD3D_USE_ATOMIC_COUNT boost::mutex::scoped_lock lock(m_refMutex); #endif --m_counter; // since we use intrusive_pointer no need // to delete the object ourselves. }
size_t RefBase::refcnt | ( | ) | [inline] |
Used by boost::intrusive_pointer.
Definition at line 97 of file RefCount.h.
References m_counter.
{ return m_counter; }
void RefBase::ref | ( | ) | const [inline] |
Used by boost::intrusive_pointer.
Definition at line 101 of file RefCount.h.
References m_counter, and m_refMutex.
{ #ifndef FIELD3D_USE_ATOMIC_COUNT boost::mutex::scoped_lock lock(m_refMutex); #endif ++m_counter; }
void RefBase::unref | ( | ) | const [inline] |
Used by boost::intrusive_pointer.
Definition at line 110 of file RefCount.h.
References m_counter, and m_refMutex.
{ #ifndef FIELD3D_USE_ATOMIC_COUNT boost::mutex::scoped_lock lock(m_refMutex); #endif --m_counter; // since we use intrusive_pointer no need // to delete the object ourselves. }
long RefBase::m_counter [mutable, private] |
For boost intrusive pointer.
Definition at line 125 of file RefCount.h.
boost::mutex RefBase::m_refMutex [mutable, private] |
Mutex for ref counting.
Definition at line 127 of file RefCount.h.