Field3D
|
#include <RefCount.h>
Public Types | |
typedef boost::intrusive_ptr < RefBase > | Ptr |
Public Member Functions | |
void | ref () const |
Used by boost::intrusive_pointer. | |
size_t | refcnt () |
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. | |
Private Attributes | |
boost::detail::atomic_count | m_counter |
For boost intrusive pointer. | |
RTTI replacement | |
| |
virtual bool | checkRTTI (const char *typenameStr)=0 |
This function is only implemented by concrete classes and triggers the actual RTTI check through matchRTTI();. | |
bool | matchRTTI (const char *typenameStr) |
Performs a check to see if the given typename string matches this class' This needs to be implemented in -all- subclasses, even abstract ones. | |
static const char * | classType () |
Definition at line 90 of file RefCount.h.
typedef boost::intrusive_ptr<RefBase> RefBase::Ptr |
Reimplemented in ResizableField< Data_T >, WritableField< Data_T >, FrustumFieldMapping, ProceduralFieldLookup< Data_T >, CubicMACFieldInterp< Data_T >, Field< Data_T >, CubicGenericFieldInterp< Field_T >, MatrixFieldMapping, LinearMACFieldInterp< Data_T >, FrustumFieldMappingIO, LinearGenericFieldInterp< Field_T >, NullFieldMapping, FieldRes, CubicFieldInterp< Data_T >, MatrixFieldMappingIO, SparseField< Data_T >, File::Partition, LinearFieldInterp< Data_T >, NullFieldMappingIO, ProceduralField< Data_T >, MACField< Data_T >, FieldBase, FieldMapping, FieldIO, DenseField< Data_T >, EmptyField< Data_T >, SparseFieldIO, DenseFieldIO, MACFieldIO, FieldInterp< Data_T >, and FieldMappingIO.
Definition at line 96 of file RefCount.h.
RefBase::RefBase | ( | ) | [inline] |
Definition at line 103 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 125 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 129 of file RefCount.h.
References m_counter.
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 138 of file RefCount.h.
References m_counter.
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. }
virtual bool RefBase::checkRTTI | ( | const char * | typenameStr | ) | [pure virtual] |
This function is only implemented by concrete classes and triggers the actual RTTI check through matchRTTI();.
bool RefBase::matchRTTI | ( | const char * | typenameStr | ) | [inline] |
Performs a check to see if the given typename string matches this class' This needs to be implemented in -all- subclasses, even abstract ones.
Definition at line 167 of file RefCount.h.
References classType().
{ if (strcmp(classType(), typenameStr) == 0) return true; return false; }
static const char* RefBase::classType | ( | ) | [inline, static] |
Reimplemented in ResizableField< Data_T >, WritableField< Data_T >, FrustumFieldMapping, ProceduralFieldLookup< Data_T >, CubicMACFieldInterp< Data_T >, Field< Data_T >, CubicGenericFieldInterp< Field_T >, LinearMACFieldInterp< Data_T >, MatrixFieldMapping, LinearGenericFieldInterp< Field_T >, FrustumFieldMappingIO, NullFieldMapping, FieldRes, CubicFieldInterp< Data_T >, MatrixFieldMappingIO, SparseField< Data_T >, File::Partition, LinearFieldInterp< Data_T >, NullFieldMappingIO, ProceduralField< Data_T >, DenseField< Data_T >, EmptyField< Data_T >, FieldBase, MACField< Data_T >, FieldMapping, FieldIO, DenseFieldIO, MACFieldIO, FieldInterp< Data_T >, and FieldMappingIO.
Definition at line 174 of file RefCount.h.
Referenced by matchRTTI().
{ return "RefBase"; }
boost::detail::atomic_count RefBase::m_counter [mutable, private] |
For boost intrusive pointer.
Definition at line 185 of file RefCount.h.