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

# ACE_Refcounted_Auto_Ptr Class Template Reference

This class implements support for a reference counted auto_ptr. Assigning or copying instances of an ACE_Refcounted_Auto_Ptr will automatically increment the reference count. When the last instance that references a ACE_Refcounted_Auto_Ptr instance is destroyed or overwritten, it will invoke delete on its underlying pointer. More...

`#include <Refcounted_Auto_Ptr.h>`

Collaboration diagram for ACE_Refcounted_Auto_Ptr:

[legend]
List of all members.

## Public Methods
| ACE_Refcounted_Auto_Ptr (X *p=0)
| Constructor that initializes an `ACE_Refcounted_Auto_Ptr` to point to the result immediately. More...
| ACE_Refcounted_Auto_Ptr (const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > &r)
| Copy constructor binds the created object and `r` to the same `ACE_Refcounted_Auto_Ptr_Rep`. An `ACE_Refcounted_Auto_Ptr_Rep` is created if necessary. More...
virtual | ~ACE_Refcounted_Auto_Ptr (void)
| Destructor. More...
void | operator= (const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > &r)
| Assignment operator that binds the current object and `r` to the same `ACE_Refcounted_Auto_Ptr_Rep`. An `ACE_Refcounted_Auto_Ptr_Rep` is created if necessary. More...
int | operator== (const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > &r) const
| Equality operator that returns 1 if both ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> objects point to the same ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> object. Attention: It also returns 1 if both objects have just been instantiated and not used yet. More...
int | operator!= (const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > &r) const
| Inequality operator, which is the opposite of equality. More...
X * | operator-> (void) const
| Redirection operator. More...
X & | operator * () const
X * | release (void)
| Sets the pointer value to 0 and returns its old value. More...
void | reset (X *p=0)
| Invokes delete on the previous pointer value and then sets the pointer value to the specified value. More...
X * | get (void)
| Get the pointer value. More...
int | count (void) const
| Get the reference count value. More...
int | null (void) const
| Allows us to check for NULL on all ACE_Refcounted_Auto_Ptr objects. More...
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks. More...
## Protected Types
typedef ACE_Refcounted_Auto_Ptr_Rep< X, ACE_LOCK > | AUTO_REFCOUNTED_PTR_REP
| the ACE_Refcounted_Auto_Ptr_Rep. More...
## Protected Attributes
AUTO_REFCOUNTED_PTR_REP * | rep_
| Protect operations on the <ACE_Refcounted_Auto_Ptr>. More...

## Detailed Description

### template<class X, class ACE_LOCK>
class ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >

This class implements support for a reference counted auto_ptr. Assigning or copying instances of an ACE_Refcounted_Auto_Ptr will automatically increment the reference count. When the last instance that references a ACE_Refcounted_Auto_Ptr instance is destroyed or overwritten, it will invoke delete on its underlying pointer.

## Member Typedef Documentation

template<class X, class ACE_LOCK>
typedef ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> ACE_Refcounted_Auto_Ptr::AUTO_REFCOUNTED_PTR_REP`[protected]`

| the ACE_Refcounted_Auto_Ptr_Rep.

## Constructor & Destructor Documentation

template<class X, class ACE_LOCK>
ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::ACE_Refcounted_Auto_Ptr | ( | X * | p = 0 | ) | `[inline]`

| Constructor that initializes an `ACE_Refcounted_Auto_Ptr` to point to the result immediately.

template<class X, class ACE_LOCK>
ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::ACE_Refcounted_Auto_Ptr | ( | const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > & | r | ) | `[inline]`

| Copy constructor binds the created object and `r` to the same `ACE_Refcounted_Auto_Ptr_Rep`. An `ACE_Refcounted_Auto_Ptr_Rep` is created if necessary.

template<class X, class ACE_LOCK>
ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::~ACE_Refcounted_Auto_Ptr | ( | void |  | ) | `[inline, virtual]`

| Destructor.

## Member Function Documentation

template<class X, class ACE_LOCK>
int ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::count | ( | void |  | ) | const`[inline]`

| Get the reference count value.

template<class X, class ACE_LOCK>
X * ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::get | ( | void |  | ) | `[inline]`

| Get the pointer value.

template<class X, class ACE_LOCK>
int ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::null | ( | void |  | ) | const`[inline]`

| Allows us to check for NULL on all ACE_Refcounted_Auto_Ptr objects.

template<class X, class ACE_LOCK>
X & ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::operator * | ( |  | ) | const`[inline]`

template<class X, class ACE_LOCK>
int ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::operator!= | ( | const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > & | r | ) | const`[inline]`

| Inequality operator, which is the opposite of equality.

template<class X, class ACE_LOCK>
X * ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::operator-> | ( | void |  | ) | const`[inline]`

| Redirection operator.

template<class X, class ACE_LOCK>
void ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::operator= | ( | const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > & | rhs | ) | `[inline]`

| Assignment operator that binds the current object and `r` to the same `ACE_Refcounted_Auto_Ptr_Rep`. An `ACE_Refcounted_Auto_Ptr_Rep` is created if necessary.

template<class X, class ACE_LOCK>
int ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::operator== | ( | const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > & | r | ) | const`[inline]`

| Equality operator that returns 1 if both ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> objects point to the same ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> object. Attention: It also returns 1 if both objects have just been instantiated and not used yet.

template<class X, class ACE_LOCK>
X * ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::release | ( | void |  | ) | `[inline]`

| Sets the pointer value to 0 and returns its old value.

template<class X, class ACE_LOCK>
void ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::reset | ( | X * | p = 0 | ) | `[inline]`

| Invokes delete on the previous pointer value and then sets the pointer value to the specified value.

## Member Data Documentation

template<class X, class ACE_LOCK>
ACE_Refcounted_Auto_Ptr::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks.

template<class X, class ACE_LOCK>
AUTO_REFCOUNTED_PTR_REP* ACE_Refcounted_Auto_Ptr::rep_`[protected]`

| Protect operations on the <ACE_Refcounted_Auto_Ptr>.

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

- Refcounted_Auto_Ptr.h
- Refcounted_Auto_Ptr.i