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>

Collaboration diagram for TAO::True_RefCount_Policy:

Collaboration graph
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

unsigned long > 
 Reference counter.

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

ACE_Atomic_Op<TAO_SYNCH_MUTEX, unsigned long> TAO::True_RefCount_Policy::refcount_ [private]

Reference counter.

The documentation for this class was generated from the following files:
Generated on Sat Aug 6 03:20:20 2005 for TAO by  doxygen