Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

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>
const T_obj * Bakery::sharedptr< T_obj >::obj  )  const [inline]
 

Get the underlying instance:.

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 >::operator *  )  const [inline]
 

Dereferencing.

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

Dereferencing.

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 >::operator->  )  const [inline]
 

Dereferencing.

Use the methods of the underlying instance like so:

refptr->memberfun()

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

Share ownership.

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>
T_obj* Bakery::sharedptr< T_obj >::m_pobj [protected]
 

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


The documentation for this class was generated from the following file:
Generated on Fri May 7 00:24:35 2004 for bakery by doxygen 1.3.6-20040222