ACE
6.1.0
|
This class implements support for a reference counted auto_ptr. It assumes reference counting abilities of the parameterizing class. More...
#include <Intrusive_Auto_Ptr.h>
Public Member Functions | |
operator unspecified_bool_type () const | |
Enables "if (sp) ...". | |
ACE_Intrusive_Auto_Ptr (X *p=0, bool addref=true) | |
ACE_Intrusive_Auto_Ptr (const ACE_Intrusive_Auto_Ptr< X > &r) | |
template<class U > | |
ACE_Intrusive_Auto_Ptr (const ACE_Intrusive_Auto_Ptr< U > &rhs) | |
virtual | ~ACE_Intrusive_Auto_Ptr (void) |
void | operator= (const ACE_Intrusive_Auto_Ptr< X > &r) |
X * | operator-> (void) const |
Redirection operator. | |
X & | operator* () const |
Accessor method. | |
X * | release (void) |
void | reset (X *p=0) |
X * | get (void) const |
Get the pointer value. | |
long | count (void) const |
Get the reference count value. | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Returns true if this object does not contain a valid pointer. | |
Protected Types | |
typedef void(* | unspecified_bool_type )(ACE_Intrusive_Auto_Ptr< X > ***) |
Static Protected Member Functions | |
static void | unspecified_bool (ACE_Intrusive_Auto_Ptr< X > ***) |
Used to define a proper boolean conversion for "if (sp) ...". | |
Protected Attributes | |
X * | rep_ |
Protect operations on the ACE_Intrusive_Auto_Ptr. |
This class implements support for a reference counted auto_ptr. It assumes reference counting abilities of the parameterizing class.
Assigning or copying instances of an ACE_Intrusive_Auto_Ptr will automatically increment the reference count. When the last instance that references a ACE_Intrusive_Auto_Ptr instance is destroyed or overwritten, it will invoke delete on its underlying pointer.
The ACE_Intrusive_Auto_Ptr works by maintaining a reference to a separate representation object, ACE_Intrusive_Auto_Ptr_Rep. That separate representation object contains the reference count and the actual pointer value.
typedef void(* ACE_Intrusive_Auto_Ptr< X >::unspecified_bool_type)(ACE_Intrusive_Auto_Ptr< X > ***) [protected] |
ACE_Intrusive_Auto_Ptr< X >::ACE_Intrusive_Auto_Ptr | ( | X * | p = 0 , |
bool | addref = true |
||
) | [inline] |
Constructor that initializes an ACE_Intrusive_Auto_Ptr to the specified pointer value.
ACE_Intrusive_Auto_Ptr< X >::ACE_Intrusive_Auto_Ptr | ( | const ACE_Intrusive_Auto_Ptr< X > & | r | ) | [inline] |
Copy constructor binds the new ACE_Intrusive_Auto_Ptr to the representation object referenced by r. An ACE_Intrusive_Auto_Ptr_Rep is created if necessary.
ACE_Intrusive_Auto_Ptr< X >::ACE_Intrusive_Auto_Ptr | ( | const ACE_Intrusive_Auto_Ptr< U > & | rhs | ) | [inline] |
ACE_Intrusive_Auto_Ptr< X >::~ACE_Intrusive_Auto_Ptr | ( | void | ) | [virtual] |
Destructor. Releases the reference to the underlying representation. If the release of that reference causes its reference count to reach 0, the representation object will also be destroyed.
long ACE_Intrusive_Auto_Ptr< X >::count | ( | void | ) | const |
Get the reference count value.
X * ACE_Intrusive_Auto_Ptr< X >::get | ( | void | ) | const [inline] |
Get the pointer value.
ACE_Intrusive_Auto_Ptr< X >::operator unspecified_bool_type | ( | ) | const [inline] |
Enables "if (sp) ...".
X & ACE_Intrusive_Auto_Ptr< X >::operator* | ( | ) | const [inline] |
Accessor method.
X * ACE_Intrusive_Auto_Ptr< X >::operator-> | ( | void | ) | const [inline] |
Redirection operator.
void ACE_Intrusive_Auto_Ptr< X >::operator= | ( | const ACE_Intrusive_Auto_Ptr< X > & | r | ) | [inline] |
Assignment operator that binds the current object and r to the same ACE_Intrusive_Auto_Ptr_Rep. An ACE_Intrusive_Auto_Ptr_Rep is created if necessary.
X * ACE_Intrusive_Auto_Ptr< X >::release | ( | void | ) | [inline] |
Releases the reference to the underlying representation object.
The | pointer value prior to releasing it. |
void ACE_Intrusive_Auto_Ptr< X >::reset | ( | X * | p = 0 | ) | [inline] |
Releases the current pointer value and then sets a new pointer value specified by p.
static void ACE_Intrusive_Auto_Ptr< X >::unspecified_bool | ( | ACE_Intrusive_Auto_Ptr< X > *** | ) | [inline, static, protected] |
Used to define a proper boolean conversion for "if (sp) ...".
ACE_Intrusive_Auto_Ptr< X >::ACE_ALLOC_HOOK_DECLARE |
Returns true
if this object does not contain a valid pointer.
Declare the dynamic allocation hooks.
X* ACE_Intrusive_Auto_Ptr< X >::rep_ [protected] |
Protect operations on the ACE_Intrusive_Auto_Ptr.