openModeller  Version 1.5.0
ReferenceCountedPointer< T > Class Template Reference

#include <refcount.hh>

Collaboration diagram for ReferenceCountedPointer< T >:
Collaboration graph

Public Types

typedef TypeTraits< T >
::PointerType 
PointerType
 
typedef TypeTraits< T >
::ReferenceType 
ReferenceType
 
typedef TypeTraits< T >
::PlainPointerType 
PlainPointerType
 

Public Member Functions

 ReferenceCountedPointer ()
 
 ReferenceCountedPointer (PointerType)
 
template<class S >
 ReferenceCountedPointer (S *)
 
 ReferenceCountedPointer (const ReferenceCountedPointer &)
 
template<class S >
 ReferenceCountedPointer (const ReferenceCountedPointer< S > &)
 
virtual ~ReferenceCountedPointer ()
 
ReferenceType operator* () const
 
PointerType operator-> () const
 
ReferenceCountedPointer< T > & operator= (const ReferenceCountedPointer &)
 
template<class S >
ReferenceCountedPointer< T > & operator= (const ReferenceCountedPointer< S > &)
 
ReferenceCountedPointer< T > & operator= (PointerType &)
 
template<class S >
ReferenceCountedPointer< T > & operator= (S *&)
 
bool operator! () const
 
 operator bool () const
 
void swap (ReferenceCountedPointer< T > &rhs)
 

Private Member Functions

void releasePointer ()
 
void takePointer (PlainPointerType ptr)
 

Private Attributes

PlainPointerType _p
 

Friends

template<typename S >
class ReferenceCountedPointer
 

Detailed Description

template<class T>
class ReferenceCountedPointer< T >

Definition at line 72 of file refcount.hh.

Member Typedef Documentation

Definition at line 77 of file refcount.hh.

template<class T>
typedef TypeTraits<T>::PointerType ReferenceCountedPointer< T >::PointerType

Definition at line 75 of file refcount.hh.

template<class T>
typedef TypeTraits<T>::ReferenceType ReferenceCountedPointer< T >::ReferenceType

Definition at line 76 of file refcount.hh.

Constructor & Destructor Documentation

template<class T >
ReferenceCountedPointer< T >::ReferenceCountedPointer ( )
inline

Definition at line 156 of file refcount.hh.

References Log::debug(), and Log::instance().

Here is the call graph for this function:

template<class T >
ReferenceCountedPointer< T >::ReferenceCountedPointer ( PointerType  rhs)
inline

Definition at line 184 of file refcount.hh.

References Log::debug(), Log::instance(), and ReferenceCountedPointer< T >::takePointer().

Here is the call graph for this function:

template<class T >
template<class S >
ReferenceCountedPointer< T >::ReferenceCountedPointer ( S *  rhs)
inline

Definition at line 194 of file refcount.hh.

References Log::debug(), Log::instance(), and ReferenceCountedPointer< T >::takePointer().

Here is the call graph for this function:

template<class T >
ReferenceCountedPointer< T >::ReferenceCountedPointer ( const ReferenceCountedPointer< T > &  rhs)
inline

Definition at line 165 of file refcount.hh.

References ReferenceCountedPointer< T >::_p, Log::debug(), Log::instance(), and ReferenceCountedPointer< T >::takePointer().

Here is the call graph for this function:

template<class T >
template<class S >
ReferenceCountedPointer< T >::ReferenceCountedPointer ( const ReferenceCountedPointer< S > &  rhs)
inline

Definition at line 175 of file refcount.hh.

References ReferenceCountedPointer< T >::_p, Log::debug(), Log::instance(), and ReferenceCountedPointer< T >::takePointer().

Here is the call graph for this function:

template<class T >
ReferenceCountedPointer< T >::~ReferenceCountedPointer ( )
inlinevirtual

Definition at line 203 of file refcount.hh.

References Log::debug(), Log::instance(), and ReferenceCountedPointer< T >::releasePointer().

Here is the call graph for this function:

Member Function Documentation

template<class T >
ReferenceCountedPointer< T >::operator bool ( ) const
inline

Definition at line 300 of file refcount.hh.

References ReferenceCountedPointer< T >::_p.

template<class T >
bool ReferenceCountedPointer< T >::operator! ( ) const
inline

Definition at line 294 of file refcount.hh.

References ReferenceCountedPointer< T >::_p.

template<class T >
TypeTraits< T >::ReferenceType ReferenceCountedPointer< T >::operator* ( ) const
inline

Definition at line 281 of file refcount.hh.

References ReferenceCountedPointer< T >::_p.

template<class T >
TypeTraits< T >::PointerType ReferenceCountedPointer< T >::operator-> ( ) const
inline

Definition at line 288 of file refcount.hh.

References ReferenceCountedPointer< T >::_p.

template<class T >
ReferenceCountedPointer< T > & ReferenceCountedPointer< T >::operator= ( const ReferenceCountedPointer< T > &  rhs)
inline
template<class T >
template<class S >
ReferenceCountedPointer< T > & ReferenceCountedPointer< T >::operator= ( const ReferenceCountedPointer< S > &  rhs)
inline
template<class T >
ReferenceCountedPointer< T > & ReferenceCountedPointer< T >::operator= ( PointerType rhs)
inline
template<class T >
template<class S >
ReferenceCountedPointer< T > & ReferenceCountedPointer< T >::operator= ( S *&  rhs)
inline
template<class T >
void ReferenceCountedPointer< T >::releasePointer ( )
inlineprivate
template<class T>
void ReferenceCountedPointer< T >::swap ( ReferenceCountedPointer< T > &  rhs)
inline

Definition at line 130 of file refcount.hh.

Referenced by swap().

template<class T >
void ReferenceCountedPointer< T >::takePointer ( PlainPointerType  ptr)
inlineprivate

Definition at line 322 of file refcount.hh.

References ReferenceCountedPointer< T >::_p, Log::debug(), and Log::instance().

Referenced by ReferenceCountedPointer< T >::operator=(), and ReferenceCountedPointer< T >::ReferenceCountedPointer().

Here is the call graph for this function:

Friends And Related Function Documentation

template<class T>
template<typename S >
friend class ReferenceCountedPointer
friend

Definition at line 80 of file refcount.hh.

Member Data Documentation


The documentation for this class was generated from the following file: