Bakery::sharedptr< T_obj > Class Template Reference

A shared reference-counting smart-pointer. More...

#include <sharedptr.h>

List of all members.

Public Types

typedef size_t size_type

Public Member Functions

 sharedptr ()
 Allocate a new instance.
 sharedptr (T_obj *pobj)
 Take ownership.
 sharedptr (const sharedptr &src)
 Share ownership.
sharedptroperator= (const sharedptr &src)
 Share ownership.
virtual ~sharedptr ()
T_obj & operator * ()
 Dereferencing.
const T_obj & operator * () const
 Dereferencing.
T_obj * operator-> () const
 Dereferencing.
 operator bool () const
 Test whether the RefPtr<> points to any underlying instance.
T_obj * obj ()
 Get the underlying instance:.
const T_obj * obj () const
 Get the underlying instance:.

Protected Member Functions

void ref ()
void unref ()

Protected Attributes

size_typem_pRefCount
T_obj * m_pobj


Detailed Description

template<typename T_obj>
class Bakery::sharedptr< T_obj >

A shared reference-counting smart-pointer.


Member Typedef Documentation

template<typename T_obj>
typedef size_t Bakery::sharedptr< T_obj >::size_type


Constructor & Destructor Documentation

template<typename T_obj>
Bakery::sharedptr< T_obj >::sharedptr (  ) 

Allocate a new instance.

template<typename T_obj>
Bakery::sharedptr< T_obj >::sharedptr ( T_obj *  pobj  )  [explicit]

Take ownership.

template<typename T_obj>
Bakery::sharedptr< T_obj >::sharedptr ( const sharedptr< T_obj > &  src  ) 

Share ownership.

template<typename T_obj>
Bakery::sharedptr< T_obj >::~sharedptr (  )  [virtual]


Member Function Documentation

template<typename T_obj>
sharedptr< T_obj > & Bakery::sharedptr< T_obj >::operator= ( const sharedptr< T_obj > &  src  ) 

Share ownership.

template<typename T_obj>
T_obj & Bakery::sharedptr< T_obj >::operator * (  )  [inline]

Dereferencing.

template<typename T_obj>
const T_obj & Bakery::sharedptr< T_obj >::operator * (  )  const [inline]

Dereferencing.

template<typename T_obj>
T_obj * Bakery::sharedptr< T_obj >::operator-> (  )  const [inline]

Dereferencing.

Use the methods of the underlying instance like so:

 refptr->memberfun()

template<class T_obj>
Bakery::sharedptr< T_obj >::operator bool (  )  const [inline]

Test whether the RefPtr<> points to any underlying instance.

Mimics usage of ordinary pointers:

   if (ptr)
     do_something();

template<typename T_obj>
T_obj * Bakery::sharedptr< T_obj >::obj (  )  [inline]

Get the underlying instance:.

template<typename T_obj>
const T_obj * Bakery::sharedptr< T_obj >::obj (  )  const [inline]

Get the underlying instance:.

template<class T_obj>
void Bakery::sharedptr< T_obj >::ref (  )  [inline, protected]

template<class T_obj>
void Bakery::sharedptr< T_obj >::unref (  )  [inline, protected]


Member Data Documentation

template<typename T_obj>
size_type* Bakery::sharedptr< T_obj >::m_pRefCount [protected]

template<typename T_obj>
T_obj* Bakery::sharedptr< T_obj >::m_pobj [protected]


The documentation for this class was generated from the following file:
Generated on Thu Mar 15 16:27:09 2007 for bakery by  doxygen 1.5.1