Contents Functions Classes Topics User Forum CVS

G3D::ReferenceCountedPointer< T > Class Template Reference

#include <ReferenceCount.h>

List of all members.

Public Types

typedef T element_type

Public Member Functions

T * pointer () const
T * getPointer () const
 ReferenceCountedPointer ()
template<class S>
 ReferenceCountedPointer (const ReferenceCountedPointer< S > &p)
template<class S>
ReferenceCountedPointer< S > downcast ()
 ReferenceCountedPointer (const ReferenceCountedPointer< T > &p)
 ReferenceCountedPointer (T *p)
 ~ReferenceCountedPointer ()
const ReferenceCountedPointer<
T > & 
operator= (const ReferenceCountedPointer< T > &p)
ReferenceCountedPointer< T > & operator= (T *p)
bool operator== (const ReferenceCountedPointer< T > &y) const
bool operator!= (const ReferenceCountedPointer< T > &y) const
bool operator< (const ReferenceCountedPointer< T > &y) const
bool operator> (const ReferenceCountedPointer< T > &y) const
bool operator<= (const ReferenceCountedPointer< T > &y) const
bool operator>= (const ReferenceCountedPointer< T > &y) const
T & operator * () const
T * operator-> () const
bool isNull () const
bool notNull () const
int isLastReference () const


Detailed Description

template<class T>
class G3D::ReferenceCountedPointer< T >

Use ReferenceCountedPointer<T> in place of T* in your program. T must subclass ReferenceCountedObject.
Deprecated:
To be replaced by boost::shared_ptr in 7.0


Member Typedef Documentation

template<class T>
typedef T G3D::ReferenceCountedPointer< T >::element_type
 


Constructor & Destructor Documentation

template<class T>
G3D::ReferenceCountedPointer< T >::ReferenceCountedPointer  )  [inline]
 

template<class T>
template<class S>
G3D::ReferenceCountedPointer< T >::ReferenceCountedPointer const ReferenceCountedPointer< S > &  p  )  [inline]
 

Allow silent cast to the base class.

        SubRef  s = new Sub();
        BaseRef b = s;
      

i.e., compile-time subtyping rule RCP<T> <: RCP<S> if T <: S

template<class T>
G3D::ReferenceCountedPointer< T >::ReferenceCountedPointer const ReferenceCountedPointer< T > &  p  )  [inline]
 

template<class T>
G3D::ReferenceCountedPointer< T >::ReferenceCountedPointer T *  p  )  [inline]
 

Allows construction from a raw pointer. That object will thereafter be reference counted -- do not call delete on it.

template<class T>
G3D::ReferenceCountedPointer< T >::~ReferenceCountedPointer  )  [inline]
 


Member Function Documentation

template<class T>
template<class S>
ReferenceCountedPointer<S> G3D::ReferenceCountedPointer< T >::downcast  )  [inline]
 

Explicit cast to a subclass. Acts like dynamic cast; the result will be NULL if the cast cannot succeed. Not supported on VC6.

        SubRef  s = new Sub();
        BaseRef b = s;
        s = b.downcast<Sub>();   // Note that the template argument is the object type, not the pointer type.
      

template<class T>
T* G3D::ReferenceCountedPointer< T >::getPointer  )  const [inline]
 

Deprecated:
use pointer()

template<class T>
int G3D::ReferenceCountedPointer< T >::isLastReference  )  const [inline]
 

Returns true if this is the last reference to an object. Useful for flushing memoization caches-- a cache that holds the last reference is unnecessarily keeping an object alive.

Not threadsafe.

Deprecated:
Use WeakReferenceCountedPointer for caches

template<class T>
bool G3D::ReferenceCountedPointer< T >::isNull  )  const [inline]
 

template<class T>
bool G3D::ReferenceCountedPointer< T >::notNull  )  const [inline]
 

template<class T>
T& G3D::ReferenceCountedPointer< T >::operator *  )  const [inline]
 

template<class T>
bool G3D::ReferenceCountedPointer< T >::operator!= const ReferenceCountedPointer< T > &  y  )  const [inline]
 

template<class T>
T* G3D::ReferenceCountedPointer< T >::operator->  )  const [inline]
 

template<class T>
bool G3D::ReferenceCountedPointer< T >::operator< const ReferenceCountedPointer< T > &  y  )  const [inline]
 

template<class T>
bool G3D::ReferenceCountedPointer< T >::operator<= const ReferenceCountedPointer< T > &  y  )  const [inline]
 

template<class T>
ReferenceCountedPointer<T>& G3D::ReferenceCountedPointer< T >::operator= T *  p  )  [inline]
 

template<class T>
const ReferenceCountedPointer<T>& G3D::ReferenceCountedPointer< T >::operator= const ReferenceCountedPointer< T > &  p  )  [inline]
 

template<class T>
bool G3D::ReferenceCountedPointer< T >::operator== const ReferenceCountedPointer< T > &  y  )  const [inline]
 

template<class T>
bool G3D::ReferenceCountedPointer< T >::operator> const ReferenceCountedPointer< T > &  y  )  const [inline]
 

template<class T>
bool G3D::ReferenceCountedPointer< T >::operator>= const ReferenceCountedPointer< T > &  y  )  const [inline]
 

template<class T>
T* G3D::ReferenceCountedPointer< T >::pointer  )  const [inline]
 


The documentation for this class was generated from the following file:
Generated on Mon Jul 17 11:50:46 2006 for G3D by doxygen 1.4.5
Hosted by SourceForge.net Logo