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

TAO::True_RefCount_Policy Class Reference

True reference counting policy. More...

#include <True_RefCount_Policy.h>

List of all members.

Public Member Functions

void add_ref (void)
 Increase the reference count on this object.
void remove_ref (void)
 Decrease the reference count on this object.

Protected Member Functions

 True_RefCount_Policy (void)
virtual ~True_RefCount_Policy (void)

Private Attributes

 Lock used to synchronize reference count.
unsigned int refcount_
 Reference count.

Detailed Description

True reference counting policy.

This class is intended to be used as a "policy" argument to a host class template that requires true/functional reference counting. That class would then inherit privately from it like so:

   template <class RefCountPolicy>
   class MyHostClass : private RefCountPolicy
     void my_add_ref (void)    { this->RefCountPolicy::add_ref (); }
     void my_remove_ref (void) { this->RefCountPolicy::remove_ref (); }

and use it like so:

   typedef MyHostClass<TAO::True_RefCount_Policy> MyRefCountedClass;
   MyRefCountedClass * p = new MyRefCountedClass;
   p->my_remove_ref ();

Ideally, the host class should declare a protected destructor to enforce proper memory management through the reference counting mechanism, i.e. to prevent clients from calling operator @c delete() directly on the host class object.

Constructor & Destructor Documentation

ACE_INLINE TAO::True_RefCount_Policy::True_RefCount_Policy void   )  [protected]


This constructor is protected since it not meant to be instantiated/used as a standalone object.

TAO::True_RefCount_Policy::~True_RefCount_Policy void   )  [protected, virtual]


The destructor must be virtual to ensure that subclass destructors are called when the reference count drops to zero, i.e. when remove_ref() calls operator delete this.

Member Function Documentation

ACE_INLINE void TAO::True_RefCount_Policy::add_ref void   ) 

Increase the reference count on this object.

ACE_INLINE void TAO::True_RefCount_Policy::remove_ref void   ) 

Decrease the reference count on this object.

Decrease the reference count on this object. Once the reference count drops to zero, call operator @c delete() on this object.

Member Data Documentation

TAO_SYNCH_MUTEX TAO::True_RefCount_Policy::lock_ [private]

Lock used to synchronize reference count.

unsigned int TAO::True_RefCount_Policy::refcount_ [private]

Reference count.

The documentation for this class was generated from the following files:
Generated on Sun May 15 13:11:43 2005 for TAO by  doxygen