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

BLOCXX_NAMESPACE::COWIntrusiveCountableBase Class Reference

COWIntrusiveCountableBase is the base class for all classes that are managed by the COWIntrusiveReference. More...

#include <COWIntrusiveCountableBase.hpp>

Inheritance diagram for BLOCXX_NAMESPACE::COWIntrusiveCountableBase:

Inheritance graph
[legend]
Collaboration diagram for BLOCXX_NAMESPACE::COWIntrusiveCountableBase:

Collaboration graph
[legend]
List of all members.

Protected Member Functions

 COWIntrusiveCountableBase (COWIntrusiveCountableBase const &)
 Copy constructor.
 COWIntrusiveCountableBase ()
 Default constructor.
COWIntrusiveCountableBaseoperator= (COWIntrusiveCountableBase const &x)
 Assignment operator.
virtual ~COWIntrusiveCountableBase ()
 Destroy this COWIntrusiveCountableBase object.
RefCount getRefCount () const

Private Attributes

RefCount m_usecount

Friends

void COWIntrusiveReferenceAddRef (COWIntrusiveCountableBase *p)
 Increment the reference count for a COWIntrusiveCountableBase object.
void COWIntrusiveReferenceRelease (COWIntrusiveCountableBase *p)
 Release a reference on a COWIntrusiveCountableBase.
bool COWIntrusiveReferenceUnique (COWIntrusiveCountableBase *p)
 Determine of a COWIntrusiveCountableBase only has one reference.
template<typename T>
T * COWIntrusiveReferenceClone (T *p)
 Have a COWIntrusiveCountableBase object create a clone of itself.

Detailed Description

COWIntrusiveCountableBase is the base class for all classes that are managed by the COWIntrusiveReference.

You MUST derive from this class if you want to pass COWIntrusiveReference objects around for instances of your class. NOTE: If you are using multiple inheritance when you dirive from this class, derive virtually. Example: class Foo : public virtual COWIntrusiveCountableBase, public virtual SomeOtherBaseClass { ... };

Derived classes MUST implement: Derived* clone()

Definition at line 70 of file COWIntrusiveCountableBase.hpp.


Constructor & Destructor Documentation

BLOCXX_NAMESPACE::COWIntrusiveCountableBase::COWIntrusiveCountableBase COWIntrusiveCountableBase const &   )  [inline, protected]
 

Copy constructor.

Definition at line 79 of file COWIntrusiveCountableBase.hpp.

BLOCXX_NAMESPACE::COWIntrusiveCountableBase::COWIntrusiveCountableBase  )  [inline, protected]
 

Default constructor.

Definition at line 87 of file COWIntrusiveCountableBase.hpp.

BLOCXX_NAMESPACE::COWIntrusiveCountableBase::~COWIntrusiveCountableBase  )  [protected, virtual]
 

Destroy this COWIntrusiveCountableBase object.

Definition at line 43 of file COWIntrusiveCountableBase.cpp.


Member Function Documentation

RefCount BLOCXX_NAMESPACE::COWIntrusiveCountableBase::getRefCount  )  const [inline, protected]
 

Returns:
The RefCount object for this object.

Definition at line 110 of file COWIntrusiveCountableBase.hpp.

COWIntrusiveCountableBase& BLOCXX_NAMESPACE::COWIntrusiveCountableBase::operator= COWIntrusiveCountableBase const &  x  )  [inline, protected]
 

Assignment operator.

This method does NOTHING.

Parameters:
x The COWIntrusiveCountableBase to assign to this one.
Returns:
A reference to this COWIntrusiveCountableBase object.

Definition at line 96 of file COWIntrusiveCountableBase.hpp.


Friends And Related Function Documentation

void COWIntrusiveReferenceAddRef COWIntrusiveCountableBase p  )  [friend]
 

Increment the reference count for a COWIntrusiveCountableBase object.

Parameters:
p The COWIntrusiveCountableBase to increment the reference count for.

Definition at line 122 of file COWIntrusiveCountableBase.hpp.

template<typename T>
T* COWIntrusiveReferenceClone T *  p  )  [friend]
 

Have a COWIntrusiveCountableBase object create a clone of itself.

Parameters:
p The COWIntrusiveCountableBase object to clone.
Returns:
A pointer to the new COWIntrusiveCountableBase object.

Definition at line 157 of file COWIntrusiveCountableBase.hpp.

void COWIntrusiveReferenceRelease COWIntrusiveCountableBase p  )  [friend]
 

Release a reference on a COWIntrusiveCountableBase.

If the reference count is zero after the release, the COWIntrusiveCountableBase object will be deleted.

Parameters:
p The COWIntrusiveCountableBase object to release the reference for.

Definition at line 134 of file COWIntrusiveCountableBase.hpp.

bool COWIntrusiveReferenceUnique COWIntrusiveCountableBase p  )  [friend]
 

Determine of a COWIntrusiveCountableBase only has one reference.

Parameters:
p The COWIntrusiveCountableBase object to check for a single reference.
Returns:
true if is COWIntrusiveCountableBase has only one reference.

Definition at line 146 of file COWIntrusiveCountableBase.hpp.


Member Data Documentation

RefCount BLOCXX_NAMESPACE::COWIntrusiveCountableBase::m_usecount [private]
 

Definition at line 73 of file COWIntrusiveCountableBase.hpp.


The documentation for this class was generated from the following files:
Generated on Tue Sep 13 00:04:55 2005 for blocxx by  doxygen 1.4.4