GCPtr< T > Class Template Reference

Reference counting pointer implementation. See also Countable. More...

#include <GCPtr.hxx>

List of all members.

Public Member Functions

 GCPtr ()
 GCPtr (const GCPtr &other)
template<typename T2>
 GCPtr (const GCPtr< T2 > &other)
 Copy constructor for GCPtrs to derived classes.
 GCPtr (T *obPtr)
 ~GCPtr ()
GCPtroperator= (const GCPtr &p)
 Default assignment operator.
template<typename T2>
GCPtroperator= (const GCPtr< T2 > &p)
 Pointer coersion assignment operator.
template<typename T2>
GCPtroperator= (T2 *p)
 Assignment from suitable raw pointer.
template<typename T2>
GCPtr< T2 > upcast ()
T * operator-> () const
T & operator * () const
bool operator== (const GCPtr &other)
 operator int BoolConversionSupport::* () const
 Sleazy support for if(GCPtr).
unsigned long value ()

Classes

struct  BoolConversionSupport


Detailed Description

template<class T>
class GCPtr< T >

Reference counting pointer implementation. See also Countable.

GCPtr is a reference-counting pointer implementation. It can only be used to point to objects derived from Countable.

Definition at line 144 of file GCPtr.hxx.


Constructor & Destructor Documentation

template<class T>
GCPtr< T >::GCPtr  )  [inline]
 

Definition at line 153 of file GCPtr.hxx.

template<class T>
GCPtr< T >::GCPtr const GCPtr< T > &  other  )  [inline]
 

Definition at line 158 of file GCPtr.hxx.

template<class T>
template<typename T2>
GCPtr< T >::GCPtr const GCPtr< T2 > &  other  )  [inline]
 

Copy constructor for GCPtrs to derived classes.

Definition at line 166 of file GCPtr.hxx.

template<class T>
GCPtr< T >::GCPtr T *  obPtr  )  [inline]
 

Definition at line 173 of file GCPtr.hxx.

template<class T>
GCPtr< T >::~GCPtr  )  [inline]
 

Definition at line 178 of file GCPtr.hxx.


Member Function Documentation

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

Definition at line 244 of file GCPtr.hxx.

template<class T>
GCPtr< T >::operator int BoolConversionSupport::*  )  const [inline]
 

Sleazy support for if(GCPtr).

Definition at line 255 of file GCPtr.hxx.

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

Definition at line 239 of file GCPtr.hxx.

template<class T>
template<typename T2>
GCPtr& GCPtr< T >::operator= T2 *  p  )  [inline]
 

Assignment from suitable raw pointer.

Definition at line 219 of file GCPtr.hxx.

template<class T>
template<typename T2>
GCPtr& GCPtr< T >::operator= const GCPtr< T2 > &  p  )  [inline]
 

Pointer coersion assignment operator.

This one gets triggered when you do an assignment of a derived class GCPtr to a base class GCPtr. Curiously, it doesn't seem to conflict with the default assignment operator above.

Definition at line 205 of file GCPtr.hxx.

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

Default assignment operator.

Curiously, this doesn't conflict with the templated version below, which I do not understand.

Definition at line 187 of file GCPtr.hxx.

template<class T>
bool GCPtr< T >::operator== const GCPtr< T > &  other  )  [inline]
 

Definition at line 249 of file GCPtr.hxx.

template<class T>
template<typename T2>
GCPtr<T2> GCPtr< T >::upcast  )  [inline]
 

Definition at line 230 of file GCPtr.hxx.

Referenced by ApplyDelta(), FSRepos::Connect(), Repository::GetChange(), Repository::GetEntity(), ObStoreFS::GetMutable(), PendingChange::PendingChange(), FSRepos::RebindUser(), Repository::recursiveUserInGroup(), FSRepos::ReviseEntityDelta(), and Repository::validateSignature().

template<class T>
unsigned long GCPtr< T >::value  )  [inline]
 

Definition at line 260 of file GCPtr.hxx.


The documentation for this class was generated from the following file:
Generated on Sun Apr 23 22:42:40 2006 for OpenCM by  doxygen 1.4.6