ACE  6.3.3
Public Member Functions | Static Public Member Functions | Public Attributes | Static Private Member Functions | Private Attributes | List of all members
ACE_Bound_Ptr_Counter< ACE_LOCK > Class Template Reference

An ACE_Bound_Ptr_Counter<ACE_LOCK> object encapsulates an object reference count. More...

#include <Bound_Ptr.h>

Collaboration diagram for ACE_Bound_Ptr_Counter< ACE_LOCK >:
Collaboration graph
[legend]

Public Member Functions

 ACE_Bound_Ptr_Counter (long init_obj_ref_count=0)
 
 ~ACE_Bound_Ptr_Counter (void)
 

Static Public Member Functions

static ACE_Bound_Ptr_Counter< ACE_LOCK > * create_strong (void)
 
static long attach_strong (ACE_Bound_Ptr_Counter< ACE_LOCK > *counter)
 
static long detach_strong (ACE_Bound_Ptr_Counter< ACE_LOCK > *counter)
 
static ACE_Bound_Ptr_Counter< ACE_LOCK > * create_weak (void)
 
static void attach_weak (ACE_Bound_Ptr_Counter< ACE_LOCK > *counter)
 Increase the counter reference count and return argument. More...
 
static void detach_weak (ACE_Bound_Ptr_Counter< ACE_LOCK > *counter)
 
static bool object_was_deleted (ACE_Bound_Ptr_Counter< ACE_LOCK > *counter)
 Determine whether the object has been deleted. More...
 

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 

Static Private Member Functions

static ACE_Bound_Ptr_Counter< ACE_LOCK > * internal_create (long init_obj_ref_count)
 

Private Attributes

long obj_ref_count_
 
long self_ref_count_
 Reference count of this counter. More...
 
ACE_LOCK lock_
 Mutex variable to synchronize access to the reference counts. More...
 

Detailed Description

template<class ACE_LOCK>
class ACE_Bound_Ptr_Counter< ACE_LOCK >

An ACE_Bound_Ptr_Counter<ACE_LOCK> object encapsulates an object reference count.

Do not use this class directly, use ACE_Strong_Bound_Ptr or ACE_Weak_Bound_Ptr instead.

Constructor & Destructor Documentation

template<class ACE_LOCK >
ACE_Bound_Ptr_Counter< ACE_LOCK >::ACE_Bound_Ptr_Counter ( long  init_obj_ref_count = 0)
inline
template<class ACE_LOCK >
ACE_Bound_Ptr_Counter< ACE_LOCK >::~ACE_Bound_Ptr_Counter ( void  )
inline

Member Function Documentation

template<class ACE_LOCK >
long ACE_Bound_Ptr_Counter< ACE_LOCK >::attach_strong ( ACE_Bound_Ptr_Counter< ACE_LOCK > *  counter)
inlinestatic

Increase both the object and counter reference counts and return the new object reference count. A return value of -1 indicates that the object has already been destroyed.

template<class ACE_LOCK >
void ACE_Bound_Ptr_Counter< ACE_LOCK >::attach_weak ( ACE_Bound_Ptr_Counter< ACE_LOCK > *  counter)
inlinestatic

Increase the counter reference count and return argument.

template<class ACE_LOCK >
ACE_Bound_Ptr_Counter< ACE_LOCK > * ACE_Bound_Ptr_Counter< ACE_LOCK >::create_strong ( void  )
inlinestatic

Create a ACE_Bound_Ptr_Counter<ACE_LOCK> and initialize the reference count to indicate ownership by a strong pointer.

template<class ACE_LOCK >
ACE_Bound_Ptr_Counter< ACE_LOCK > * ACE_Bound_Ptr_Counter< ACE_LOCK >::create_weak ( void  )
inlinestatic

Create a ACE_Bound_Ptr_Counter<ACE_LOCK> and initialize the reference count to indicate no ownership.

template<class ACE_LOCK >
long ACE_Bound_Ptr_Counter< ACE_LOCK >::detach_strong ( ACE_Bound_Ptr_Counter< ACE_LOCK > *  counter)
inlinestatic

Decreases both the object and counter reference counts and deletes whichever has no more references. Returns the new object reference count.

template<class ACE_LOCK >
void ACE_Bound_Ptr_Counter< ACE_LOCK >::detach_weak ( ACE_Bound_Ptr_Counter< ACE_LOCK > *  counter)
inlinestatic

Decreases the counter reference count and deletes the counter if it has no more references.

template<class ACE_LOCK >
ACE_Bound_Ptr_Counter< ACE_LOCK > * ACE_Bound_Ptr_Counter< ACE_LOCK >::internal_create ( long  init_obj_ref_count)
inlinestaticprivate

Allocate a new ACE_Bound_Ptr_Counter<ACE_LOCK> instance, returning NULL if it cannot be created.

template<class ACE_LOCK >
bool ACE_Bound_Ptr_Counter< ACE_LOCK >::object_was_deleted ( ACE_Bound_Ptr_Counter< ACE_LOCK > *  counter)
inlinestatic

Determine whether the object has been deleted.

Member Data Documentation

template<class ACE_LOCK >
ACE_Bound_Ptr_Counter< ACE_LOCK >::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

template<class ACE_LOCK >
ACE_LOCK ACE_Bound_Ptr_Counter< ACE_LOCK >::lock_
private

Mutex variable to synchronize access to the reference counts.

template<class ACE_LOCK >
long ACE_Bound_Ptr_Counter< ACE_LOCK >::obj_ref_count_
private

Reference count of underlying object. Is set to -1 once the object has been destroyed to indicate to all weak pointers that it is no longer valid.

template<class ACE_LOCK >
long ACE_Bound_Ptr_Counter< ACE_LOCK >::self_ref_count_
private

Reference count of this counter.


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