Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | 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 Tue Jan 4 19:00:48 2005 for bakery by  doxygen 1.3.9.1