BLOCXX_NAMESPACE::Reference< T > Class Template Reference

#include <Reference.hpp>

Inheritance diagram for BLOCXX_NAMESPACE::Reference< T >:

BLOCXX_NAMESPACE::ReferenceBase List of all members.

Public Types

typedef T element_type
typedef T *volatile Reference::* safe_bool

Public Member Functions

 Reference ()
 Reference (T *ptr)
 Reference (const Reference< T > &arg)
template<class U>
 Reference (const Reference< U > &arg)
 ~Reference ()
Reference< T > & operator= (const Reference< T > &arg)
Reference< T > & operator= (T *newObj)
void swap (Reference< T > &arg)
T * operator-> () const
T & operator * () const
T * getPtr () const
 operator safe_bool () const
bool operator! () const
template<class U>
Reference< U > cast_to () const
template<class U>
void useRefCountOf (const Reference< U > &)

Private Member Functions

void decRef ()

Private Attributes

T *volatile m_pObj

Friends

class Reference

Detailed Description

template<class T>
class BLOCXX_NAMESPACE::Reference< T >

Definition at line 48 of file Reference.hpp.


Member Typedef Documentation

template<class T>
typedef T BLOCXX_NAMESPACE::Reference< T >::element_type
 

Definition at line 56 of file Reference.hpp.

template<class T>
typedef T* volatile Reference::* BLOCXX_NAMESPACE::Reference< T >::safe_bool
 

Definition at line 73 of file Reference.hpp.


Constructor & Destructor Documentation

template<class T>
BLOCXX_NAMESPACE::Reference< T >::Reference  ) 
 

template<class T>
BLOCXX_NAMESPACE::Reference< T >::Reference T *  ptr  )  [inline, explicit]
 

Definition at line 98 of file Reference.hpp.

template<class T>
BLOCXX_NAMESPACE::Reference< T >::Reference const Reference< T > &  arg  )  [inline]
 

Definition at line 104 of file Reference.hpp.

template<class T>
template<class U>
BLOCXX_NAMESPACE::Reference< T >::Reference const Reference< U > &  arg  )  [inline]
 

Definition at line 111 of file Reference.hpp.

template<class T>
BLOCXX_NAMESPACE::Reference< T >::~Reference  )  [inline]
 

Definition at line 118 of file Reference.hpp.

References BLOCXX_NAMESPACE::Reference< T >::decRef().


Member Function Documentation

template<class T>
template<class U>
Reference< U > BLOCXX_NAMESPACE::Reference< T >::cast_to  )  const [inline]
 

Definition at line 187 of file Reference.hpp.

References BLOCXX_NAMESPACE::Reference< T >::m_pObj, and BLOCXX_NAMESPACE::Reference< T >::useRefCountOf().

template<class T>
void BLOCXX_NAMESPACE::Reference< T >::decRef  )  [inline, private]
 

Reimplemented from BLOCXX_NAMESPACE::ReferenceBase.

Definition at line 126 of file Reference.hpp.

References BLOCXX_NAMESPACE::ReferenceBase::decRef(), and BLOCXX_NAMESPACE::Reference< T >::m_pObj.

Referenced by BLOCXX_NAMESPACE::Reference< T >::~Reference().

template<class T>
T * BLOCXX_NAMESPACE::Reference< T >::getPtr  )  const [inline]
 

Definition at line 179 of file Reference.hpp.

References BLOCXX_NAMESPACE::Reference< T >::m_pObj.

Referenced by BLOCXX_NAMESPACE::operator!=(), and BLOCXX_NAMESPACE::operator==().

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

Definition at line 168 of file Reference.hpp.

References BLOCXX_NAMESPACE::ReferenceBase::checkNull(), and BLOCXX_NAMESPACE::Reference< T >::m_pObj.

template<class T>
BLOCXX_NAMESPACE::Reference< T >::operator safe_bool  )  const [inline]
 

Definition at line 74 of file Reference.hpp.

References BLOCXX_NAMESPACE::Reference< T >::m_pObj.

template<class T>
bool BLOCXX_NAMESPACE::Reference< T >::operator!  )  const [inline]
 

Definition at line 76 of file Reference.hpp.

References BLOCXX_NAMESPACE::Reference< T >::m_pObj.

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

Definition at line 157 of file Reference.hpp.

References BLOCXX_NAMESPACE::ReferenceBase::checkNull(), and BLOCXX_NAMESPACE::Reference< T >::m_pObj.

template<class T>
Reference< T > & BLOCXX_NAMESPACE::Reference< T >::operator= T *  newObj  )  [inline]
 

Definition at line 143 of file Reference.hpp.

References BLOCXX_NAMESPACE::Reference< T >::swap().

template<class T>
Reference< T > & BLOCXX_NAMESPACE::Reference< T >::operator= const Reference< T > &  arg  )  [inline]
 

Definition at line 136 of file Reference.hpp.

References BLOCXX_NAMESPACE::Reference< T >::swap().

template<class T>
void BLOCXX_NAMESPACE::Reference< T >::swap Reference< T > &  arg  )  [inline]
 

Definition at line 150 of file Reference.hpp.

References BLOCXX_NAMESPACE::Reference< T >::m_pObj, BLOCXX_NAMESPACE::RefSwap(), and BLOCXX_NAMESPACE::swap().

Referenced by BLOCXX_NAMESPACE::Reference< T >::operator=().

template<class T>
template<class U>
void BLOCXX_NAMESPACE::Reference< T >::useRefCountOf const Reference< U > &   )  [inline]
 

Definition at line 201 of file Reference.hpp.

References BLOCXX_NAMESPACE::ReferenceBase::useRefCountOf().

Referenced by BLOCXX_NAMESPACE::Reference< T >::cast_to().


Friends And Related Function Documentation

template<class T>
BLOCXX_NAMESPACE::Reference< T >::Reference [friend]
 

Definition at line 84 of file Reference.hpp.


Member Data Documentation

template<class T>
T* volatile BLOCXX_NAMESPACE::Reference< T >::m_pObj [private]
 

Definition at line 88 of file Reference.hpp.

Referenced by BLOCXX_NAMESPACE::Reference< T >::cast_to(), BLOCXX_NAMESPACE::Reference< T >::decRef(), BLOCXX_NAMESPACE::Reference< T >::getPtr(), BLOCXX_NAMESPACE::Reference< T >::operator *(), BLOCXX_NAMESPACE::Reference< T >::operator safe_bool(), BLOCXX_NAMESPACE::Reference< T >::operator!(), BLOCXX_NAMESPACE::Reference< T >::operator->(), and BLOCXX_NAMESPACE::Reference< T >::swap().


The documentation for this class was generated from the following file:
Generated on Fri Jun 16 15:39:11 2006 for blocxx by  doxygen 1.4.6