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 () |
typedef boost::intrusive_ptr<RefBase> RefBase::Ptr |
Reimplemented in FrustumFieldMapping, ProceduralFieldLookup, CubicMACFieldInterp, Field, CubicGenericFieldInterp, MatrixFieldMapping, LinearMACFieldInterp, FrustumFieldMappingIO, LinearGenericFieldInterp, NullFieldMapping, FieldRes, MatrixFieldMappingIO, File::Partition, NullFieldMappingIO, FieldBase, FieldMapping, FieldIO, SparseFieldIO, DenseFieldIO, MACFieldIO, FieldInterp, 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 FrustumFieldMapping, ProceduralFieldLookup, CubicMACFieldInterp, Field, CubicGenericFieldInterp, LinearMACFieldInterp, MatrixFieldMapping, LinearGenericFieldInterp, FrustumFieldMappingIO, NullFieldMapping, FieldRes, MatrixFieldMappingIO, File::Partition, NullFieldMappingIO, FieldBase, FieldMapping, FieldIO, DenseFieldIO, MACFieldIO, FieldInterp, 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.