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

# ACE_Strong_Bound_Ptr< X, ACE_LOCK > Class Template Reference

This class implements support for a reference counted pointer. More...

`#include <Bound_Ptr.h>`

Collaboration diagram for ACE_Strong_Bound_Ptr< X, ACE_LOCK >:

[legend]
List of all members.

## Public Methods
ACE_EXPLICIT | ACE_Strong_Bound_Ptr (X *p=0)
ACE_EXPLICIT | ACE_Strong_Bound_Ptr (auto_ptr< X > p)
| ACE_Strong_Bound_Ptr (const ACE_Strong_Bound_Ptr< X, ACE_LOCK > &r)
| Copy constructor binds <this> and <r> to the same object.
| ACE_Strong_Bound_Ptr (const ACE_Weak_Bound_Ptr< X, ACE_LOCK > &r)
| Constructor binds <this> and <r> to the same object.
| ~ACE_Strong_Bound_Ptr (void)
| Destructor.
void | operator= (const ACE_Strong_Bound_Ptr< X, ACE_LOCK > &r)
| Assignment operator that binds <this> and <r> to the same object.
void | operator= (const ACE_Weak_Bound_Ptr< X, ACE_LOCK > &r)
| Assignment operator that binds <this> and <r> to the same object.
int | operator== (const ACE_Strong_Bound_Ptr< X, ACE_LOCK > &r) const
int | operator== (const ACE_Weak_Bound_Ptr< X, ACE_LOCK > &r) const
int | operator== (X *p) const
int | operator!= (const ACE_Strong_Bound_Ptr< X, ACE_LOCK > &r) const
| Inequality operator, which is the opposite of equality.
int | operator!= (const ACE_Weak_Bound_Ptr< X, ACE_LOCK > &r) const
| Inequality operator, which is the opposite of equality.
int | operator!= (X *p) const
| Inequality operator, which is the opposite of equality.
X * | operator-> (void) const
| Redirection operator.
X & | operator * (void) const
| Dereference operator.
X * | get (void) const
| Get the pointer value.
void | reset (X *p=0)
void | reset (auto_ptr< X > p)
int | null (void) const
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.
## Private Types
typedef ACE_Bound_Ptr_Counter< ACE_LOCK > | COUNTER
| The ACE_Bound_Ptr_Counter type.
## Private Attributes
COUNTER * | counter_
| The reference counter.
X * | ptr_
| The underlying object.
## Friends
class | ACE_Weak_Bound_Ptr< X, ACE_LOCK >

## Detailed Description

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

This class implements support for a reference counted pointer.

Assigning or copying instances of an ACE_Strong_Bound_Ptr will automatically increment the reference count of the underlying object. When the last instance of an ACE_Strong_Bound_Ptr that references a particular object is destroyed or overwritten, it will invoke delete on its underlying pointer.

## Member Typedef Documentation

template<class X, class ACE_LOCK>
typedef ACE_Bound_Ptr_Counter<ACE_LOCK> ACE_Strong_Bound_Ptr< X, ACE_LOCK >::COUNTER`[private]`

| The ACE_Bound_Ptr_Counter type.

## Constructor & Destructor Documentation

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

| Constructor that initializes an ACE_Strong_Bound_Ptr to point to the object <p> immediately.

template<class X, class ACE_LOCK>
ACE_Strong_Bound_Ptr< X, ACE_LOCK >::ACE_Strong_Bound_Ptr | ( | auto_ptr< X > | p | ) | `[inline]`

| Constructor that initializes an ACE_Strong_Bound_Ptr by stealing ownership of an object from an auto_ptr.

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

| Copy constructor binds <this> and <r> to the same object.

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

| Constructor binds <this> and <r> to the same object.

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

| Destructor.

## Member Function Documentation

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

| Get the pointer value.

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

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

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

| Dereference operator.

template<class X, class ACE_LOCK>
int ACE_Strong_Bound_Ptr< X, ACE_LOCK >::operator!= | ( | X * | p | ) | const`[inline]`

| Inequality operator, which is the opposite of equality.

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

| Inequality operator, which is the opposite of equality.

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

| Inequality operator, which is the opposite of equality.

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

| Redirection operator.

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

| Assignment operator that binds <this> and <r> to the same object.

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

| Assignment operator that binds <this> and <r> to the same object.

template<class X, class ACE_LOCK>
int ACE_Strong_Bound_Ptr< X, ACE_LOCK >::operator== | ( | X * | p | ) | const`[inline]`

| Equality operator that returns 1 if the ACE_Strong_Bound_Ptr and the raw pointer point to the same underlying object.

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

| Note: It also returns 1 if both objects have just been instantiated and not used yet.

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

| Note: It also returns 1 if both objects have just been instantiated and not used yet.

template<class X, class ACE_LOCK>
void ACE_Strong_Bound_Ptr< X, ACE_LOCK >::reset | ( | auto_ptr< X > | p | ) | `[inline]`

| Resets the ACE_Strong_Bound_Ptr to refer to a different underlying object, ownership of which is stolen from the auto_ptr.

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

| Resets the ACE_Strong_Bound_Ptr to refer to a different underlying object.

## Friends And Related Function Documentation

template<class X, class ACE_LOCK>
friend class ACE_Weak_Bound_Ptr< X, ACE_LOCK >`[friend]`

## Member Data Documentation

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

| Declare the dynamic allocation hooks.

template<class X, class ACE_LOCK>
COUNTER* ACE_Strong_Bound_Ptr< X, ACE_LOCK >::counter_`[private]`

| The reference counter.

template<class X, class ACE_LOCK>
X* ACE_Strong_Bound_Ptr< X, ACE_LOCK >::ptr_`[private]`

| The underlying object.

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

- /export2/deucetmp/bala/release_try/ACE_wrappers/ace/Bound_Ptr.h
- /export2/deucetmp/bala/release_try/ACE_wrappers/ace/Bound_Ptr.i