Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# ACE_Bound_Ptr_Counter 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:

[legend]
List of all members.

## Public Methods
| ACE_Bound_Ptr_Counter (int init_obj_ref_count=0)
| ~ACE_Bound_Ptr_Counter (void)
## Static Public Methods
ACE_Bound_Ptr_Counter< ACE_LOCK > * | create_strong (void)
| Create a ACE_Bound_Ptr_Counter<ACE_LOCK> and initialize the reference count to indicate ownership by a strong pointer. More...
int | attach_strong (ACE_Bound_Ptr_Counter< ACE_LOCK > *counter)
| 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. More...
int | detach_strong (ACE_Bound_Ptr_Counter< ACE_LOCK > *counter)
| Decreases both the object and counter reference counts and deletes whichever has no more references. Returns the new object reference count. More...
ACE_Bound_Ptr_Counter< ACE_LOCK > * | create_weak (void)
| Create a ACE_Bound_Ptr_Counter<ACE_LOCK> and initialize the reference count to indicate no ownership. More...
void | attach_weak (ACE_Bound_Ptr_Counter< ACE_LOCK > *counter)
| Increase the counter reference count and return argument. More...
void | detach_weak (ACE_Bound_Ptr_Counter< ACE_LOCK > *counter)
| Decreases the counter reference count and deletes the counter if it has no more references. More...
int | 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 Methods
ACE_Bound_Ptr_Counter< ACE_LOCK > * | internal_create (int init_obj_ref_count)
| Allocate a new ACE_Bound_Ptr_Counter<ACE_LOCK> instance, returning NULL if it cannot be created. More...
## Private Attributes
int | obj_ref_count_
| 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. More...
int | 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 | ( | int | 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>
int ACE_Bound_Ptr_Counter< ACE_LOCK >::attach_strong | ( | ACE_Bound_Ptr_Counter< ACE_LOCK > * | counter | ) | `[inline, static]`

| 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 | ) | `[inline, static]`

| 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 |  | ) | `[inline, static]`

| 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 |  | ) | `[inline, static]`

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

template<class ACE_LOCK>
int ACE_Bound_Ptr_Counter< ACE_LOCK >::detach_strong | ( | ACE_Bound_Ptr_Counter< ACE_LOCK > * | counter | ) | `[inline, static]`

| 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 | ) | `[inline, static]`

| 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 | ( | int | init_obj_ref_count | ) | `[inline, static, private]`

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

template<class ACE_LOCK>
int ACE_Bound_Ptr_Counter< ACE_LOCK >::object_was_deleted | ( | ACE_Bound_Ptr_Counter< ACE_LOCK > * | counter | ) | `[inline, static]`

| Determine whether the object has been deleted.

## Member Data Documentation

template<class ACE_LOCK>
ACE_Bound_Ptr_Counter::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks.

template<class ACE_LOCK>
ACE_LOCK ACE_Bound_Ptr_Counter::lock_`[private]`

| Mutex variable to synchronize access to the reference counts.

template<class ACE_LOCK>
int ACE_Bound_Ptr_Counter::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>
int ACE_Bound_Ptr_Counter::self_ref_count_`[private]`

| Reference count of this counter.

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

- Bound_Ptr.h
- Bound_Ptr.i