ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > 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< X, ACE_LOCK >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Refcounted_Auto_Ptr (X *p=0)
 ACE_Refcounted_Auto_Ptr (const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > &r)
virtual ~ACE_Refcounted_Auto_Ptr (void)
 Destructor.
void operator= (const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > &r)
bool operator== (const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > &r) const
bool operator!= (const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > &r) const
 Inequality operator, which is the opposite of equality.
X * operator-> (void) const
 Redirection operator.
X & operator * () const
X * release (void)
 Sets the pointer value to 0 and returns its old value.
void reset (X *p=0)
X * get (void) const
 Get the pointer value.
int count (void) const
 Get the reference count value.
int null (void) const
 Allows us to check for NULL on all ACE_Refcounted_Auto_Ptr objects.

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Protected Types

typedef ACE_Refcounted_Auto_Ptr_Rep<
X, ACE_LOCK > 
AUTO_REFCOUNTED_PTR_REP
 the ACE_Refcounted_Auto_Ptr_Rep

Protected Attributes

AUTO_REFCOUNTED_PTR_REPrep_
 Protect operations on the <ACE_Refcounted_Auto_Ptr>.

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< X, ACE_LOCK >::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_BEGIN_VERSIONED_NAMESPACE_DECL ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::~ACE_Refcounted_Auto_Ptr ( void   )  [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   )  const [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>
bool 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 > &  r  )  [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>
bool ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::operator== ( const ACE_Refcounted_Auto_Ptr< X, ACE_LOCK > &  r  )  const [inline]

Note:
It also returns true 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< X, ACE_LOCK >::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

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

Protect operations on the <ACE_Refcounted_Auto_Ptr>.


The documentation for this class was generated from the following files:
Generated on Wed Apr 19 03:07:16 2006 for ACE by  doxygen 1.4.6-4