ucc::CountedObject Class Reference

A base class for reference counted objects. More...

#include <object.h>

Inheritance diagram for ucc::CountedObject:

Inheritance graph
[legend]
Collaboration diagram for ucc::CountedObject:

Collaboration graph
[legend]

Public Member Functions

bool isCopied (void)
 Test if the object has copied references.
bool isRetained (void)
 Test if the object has been referenced (retained) by anyone yet.
unsigned copied (void)
 Return the number of active references (retentions) to our object.
void retain (void)
 Increase reference count when retained.
void release (void)
 Decrease reference count when released.

Protected Member Functions

 CountedObject ()
 Construct a counted object, mark initially as unreferenced.
 CountedObject (const Object &ref)
 Construct a copy of a counted object.
virtual void dealloc (void)
 Dealloc object no longer referenced.

Detailed Description

A base class for reference counted objects.

Reference counted objects keep track of how many objects refer to them and fall out of scope when they are no longer being referred to. This can be used to achieve automatic heap management when used in conjunction with smart pointers.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 90 of file object.h.


Constructor & Destructor Documentation

ucc::CountedObject::CountedObject ( const Object ref  )  [protected]

Construct a copy of a counted object.

Our instance is not a reference to the original object but a duplicate, so we do not retain the original and we do reset our count to mark as initially unreferenced.


Member Function Documentation

unsigned ucc::CountedObject::copied ( void   )  [inline]

Return the number of active references (retentions) to our object.

Returns:
number of references to our object.

Definition at line 136 of file object.h.

virtual void ucc::CountedObject::dealloc ( void   )  [protected, virtual]

Dealloc object no longer referenced.

The dealloc routine would commonly be used for a self delete to return the object back to a heap when it is no longer referenced.

Reimplemented in ucc::PagerObject.

bool ucc::CountedObject::isCopied ( void   )  [inline]

Test if the object has copied references.

This means that more than one object has a reference to our object.

Returns:
true if referenced by more than one object.

Definition at line 122 of file object.h.

bool ucc::CountedObject::isRetained ( void   )  [inline]

Test if the object has been referenced (retained) by anyone yet.

Returns:
true if retained.

Definition at line 129 of file object.h.

void ucc::CountedObject::release ( void   )  [virtual]

Decrease reference count when released.

If no longer retained, then the object is dealloc'd.

Reimplemented from ucc::Object.

Reimplemented in ucc::PagerObject.


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

Generated on Wed May 13 09:11:37 2009 for UCommon by  doxygen 1.5.8