OW_NAMESPACE::COWIntrusiveReference< T > Class Template Reference

COWIntrusiveReference. More...

#include <OW_COWIntrusiveReference.hpp>

Collaboration diagram for OW_NAMESPACE::COWIntrusiveReference< T >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef T element_type
typedef T *this_type::* unspecified_bool_type

Public Member Functions

 COWIntrusiveReference ()
 COWIntrusiveReference (T *p, bool addRef=true)
template<class U>
 COWIntrusiveReference (COWIntrusiveReference< U > const &rhs)
 COWIntrusiveReference (COWIntrusiveReference const &rhs)
 ~COWIntrusiveReference ()
template<class U>
COWIntrusiveReferenceoperator= (COWIntrusiveReference< U > const &rhs)
COWIntrusiveReferenceoperator= (COWIntrusiveReference const &rhs)
COWIntrusiveReferenceoperator= (T *rhs)
const T * getPtr () const
const T & operator * () const
const T * operator-> () const
T & operator * ()
T * operator-> ()
 operator unspecified_bool_type () const
bool operator! () const
void swap (COWIntrusiveReference &rhs)

Private Types

typedef COWIntrusiveReference this_type

Private Member Functions

void getWriteLock ()

Private Attributes

T * m_pObj

Friends

class COWIntrusiveReference

Detailed Description

template<class T>
class OW_NAMESPACE::COWIntrusiveReference< T >

COWIntrusiveReference.

A smart pointer that uses intrusive reference counting.

Relies on unqualified calls to

void COWIntrusiveReferenceAddRef(T* p); void COWIntrusiveReferenceRelease(T* p); bool COWIntrusiveReferenceUnique(T* p); T* COWIntrusiveReferenceClone(T* p);

(p != 0)

The object is responsible for destroying itself.

If you want your class to be managed by COWIntrusiveReference, you can derive it from COWIntrusiveCountableBase, or write your own set of functions.

Definition at line 90 of file OW_COWIntrusiveReference.hpp.


Member Typedef Documentation

template<class T>
typedef T OW_NAMESPACE::COWIntrusiveReference< T >::element_type
 

Definition at line 95 of file OW_COWIntrusiveReference.hpp.

template<class T>
typedef COWIntrusiveReference OW_NAMESPACE::COWIntrusiveReference< T >::this_type [private]
 

Definition at line 93 of file OW_COWIntrusiveReference.hpp.

template<class T>
typedef T* this_type::* OW_NAMESPACE::COWIntrusiveReference< T >::unspecified_bool_type
 

Definition at line 174 of file OW_COWIntrusiveReference.hpp.


Constructor & Destructor Documentation

template<class T>
OW_NAMESPACE::COWIntrusiveReference< T >::COWIntrusiveReference  )  [inline]
 

Definition at line 97 of file OW_COWIntrusiveReference.hpp.

template<class T>
OW_NAMESPACE::COWIntrusiveReference< T >::COWIntrusiveReference T *  p,
bool  addRef = true
[inline]
 

Definition at line 100 of file OW_COWIntrusiveReference.hpp.

template<class T>
template<class U>
OW_NAMESPACE::COWIntrusiveReference< T >::COWIntrusiveReference COWIntrusiveReference< U > const &  rhs  )  [inline]
 

Definition at line 104 of file OW_COWIntrusiveReference.hpp.

template<class T>
OW_NAMESPACE::COWIntrusiveReference< T >::COWIntrusiveReference COWIntrusiveReference< T > const &  rhs  )  [inline]
 

Definition at line 108 of file OW_COWIntrusiveReference.hpp.

template<class T>
OW_NAMESPACE::COWIntrusiveReference< T >::~COWIntrusiveReference  )  [inline]
 

Definition at line 112 of file OW_COWIntrusiveReference.hpp.


Member Function Documentation

template<class T>
const T* OW_NAMESPACE::COWIntrusiveReference< T >::getPtr  )  const [inline]
 

Definition at line 131 of file OW_COWIntrusiveReference.hpp.

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

template<class T>
void OW_NAMESPACE::COWIntrusiveReference< T >::getWriteLock  )  [inline, private]
 

Definition at line 198 of file OW_COWIntrusiveReference.hpp.

Referenced by OW_NAMESPACE::COWIntrusiveReference< DTData >::operator *(), and OW_NAMESPACE::COWIntrusiveReference< DTData >::operator->().

template<class T>
T& OW_NAMESPACE::COWIntrusiveReference< T >::operator *  )  [inline]
 

Definition at line 154 of file OW_COWIntrusiveReference.hpp.

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

Definition at line 136 of file OW_COWIntrusiveReference.hpp.

template<class T>
OW_NAMESPACE::COWIntrusiveReference< T >::operator unspecified_bool_type  )  const [inline]
 

Definition at line 175 of file OW_COWIntrusiveReference.hpp.

template<class T>
bool OW_NAMESPACE::COWIntrusiveReference< T >::operator!  )  const [inline]
 

Definition at line 180 of file OW_COWIntrusiveReference.hpp.

template<class T>
T* OW_NAMESPACE::COWIntrusiveReference< T >::operator->  )  [inline]
 

Definition at line 164 of file OW_COWIntrusiveReference.hpp.

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

Definition at line 145 of file OW_COWIntrusiveReference.hpp.

template<class T>
COWIntrusiveReference& OW_NAMESPACE::COWIntrusiveReference< T >::operator= T *  rhs  )  [inline]
 

Definition at line 126 of file OW_COWIntrusiveReference.hpp.

template<class T>
COWIntrusiveReference& OW_NAMESPACE::COWIntrusiveReference< T >::operator= COWIntrusiveReference< T > const &  rhs  )  [inline]
 

Definition at line 121 of file OW_COWIntrusiveReference.hpp.

template<class T>
template<class U>
COWIntrusiveReference& OW_NAMESPACE::COWIntrusiveReference< T >::operator= COWIntrusiveReference< U > const &  rhs  )  [inline]
 

Definition at line 116 of file OW_COWIntrusiveReference.hpp.

template<class T>
void OW_NAMESPACE::COWIntrusiveReference< T >::swap COWIntrusiveReference< T > &  rhs  )  [inline]
 

Definition at line 185 of file OW_COWIntrusiveReference.hpp.

Referenced by OW_NAMESPACE::COWIntrusiveReference< DTData >::operator=(), OW_NAMESPACE::String::swap(), and OW_NAMESPACE::swap().


Friends And Related Function Documentation

template<class T>
friend class COWIntrusiveReference [friend]
 

Definition at line 194 of file OW_COWIntrusiveReference.hpp.


Member Data Documentation

template<class T>
T* OW_NAMESPACE::COWIntrusiveReference< T >::m_pObj [private]
 

Definition at line 207 of file OW_COWIntrusiveReference.hpp.

Referenced by OW_NAMESPACE::COWIntrusiveReference< DTData >::COWIntrusiveReference(), OW_NAMESPACE::COWIntrusiveReference< DTData >::getPtr(), OW_NAMESPACE::COWIntrusiveReference< DTData >::getWriteLock(), OW_NAMESPACE::COWIntrusiveReference< DTData >::operator *(), OW_NAMESPACE::COWIntrusiveReference< DTData >::operator unspecified_bool_type(), OW_NAMESPACE::COWIntrusiveReference< DTData >::operator!(), OW_NAMESPACE::COWIntrusiveReference< DTData >::operator->(), OW_NAMESPACE::COWIntrusiveReference< DTData >::swap(), and OW_NAMESPACE::COWIntrusiveReference< DTData >::~COWIntrusiveReference().


The documentation for this class was generated from the following file:
Generated on Thu Feb 9 09:13:35 2006 for openwbem by  doxygen 1.4.6