ACE_Auto_Basic_Array_Ptr< X > Class Template Reference

Implements an extension to the draft C++ standard auto_ptr abstraction. This class allows one to work on non-object (basic) types that must be treated as an array, e.g., deallocated via "delete [] foo". More...

#include <Auto_Ptr.h>

Inheritance diagram for ACE_Auto_Basic_Array_Ptr< X >:

Inheritance graph
[legend]
Collaboration diagram for ACE_Auto_Basic_Array_Ptr< X >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Auto_Basic_Array_Ptr (X *p=0)
 ACE_Auto_Basic_Array_Ptr (ACE_Auto_Basic_Array_Ptr< X > &ap)
ACE_Auto_Basic_Array_Ptr<
X > & 
operator= (ACE_Auto_Basic_Array_Ptr< X > &rhs)
 ~ACE_Auto_Basic_Array_Ptr (void)
X & operator * () const
X & operator[] (int i) const
X * get (void) const
X * release (void)
void reset (X *p=0)
void dump (void) const
 Dump the state of an object.


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.


Protected Attributes

X * p_

Detailed Description

template<class X>
class ACE_Auto_Basic_Array_Ptr< X >

Implements an extension to the draft C++ standard auto_ptr abstraction. This class allows one to work on non-object (basic) types that must be treated as an array, e.g., deallocated via "delete [] foo".

Definition at line 128 of file Auto_Ptr.h.


Constructor & Destructor Documentation

template<class X>
ACE_Auto_Basic_Array_Ptr< X >::ACE_Auto_Basic_Array_Ptr X *  p = 0  )  [inline, explicit]
 

Definition at line 132 of file Auto_Ptr.h.

00132 : p_ (p) {}

template<class X>
ACE_INLINE ACE_Auto_Basic_Array_Ptr< X >::ACE_Auto_Basic_Array_Ptr ACE_Auto_Basic_Array_Ptr< X > &  ap  ) 
 

Definition at line 128 of file Auto_Ptr.inl.

References ACE_TRACE.

00129   : p_ (rhs.release ())
00130 {
00131   ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::ACE_Auto_Basic_Array_Ptr");
00132 }

template<class X>
ACE_INLINE ACE_Auto_Basic_Array_Ptr< X >::~ACE_Auto_Basic_Array_Ptr void   ) 
 

Definition at line 146 of file Auto_Ptr.inl.

References ACE_TRACE, and ACE_Auto_Basic_Array_Ptr< X >::get().

00147 {
00148   ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::~ACE_Auto_Basic_Array_Ptr");
00149   delete [] this->get ();
00150 }


Member Function Documentation

template<class X>
ACE_INLINE void ACE_Auto_Basic_Array_Ptr< X >::dump void   )  const
 

Dump the state of an object.

Definition at line 18 of file Auto_Ptr.inl.

References ACE_TRACE.

00019 {
00020 #if defined (ACE_HAS_DUMP)
00021   ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::dump");
00022 #endif /* ACE_HAS_DUMP */
00023 }

template<class X>
ACE_INLINE X * ACE_Auto_Basic_Array_Ptr< X >::get void   )  const
 

Definition at line 103 of file Auto_Ptr.inl.

References ACE_TRACE.

Referenced by ACE_Local_Memory_Pool::acquire(), ACE_Remote_Name_Space::bind(), ACE_Configuration::expand_path(), ACE::get_ip_interfaces(), ACE_SOCK_SEQPACK_Association::get_local_addrs(), ACE_SOCK_SEQPACK_Association::get_remote_addrs(), ACE_Remote_Name_Space::list_name_entries(), ACE_Remote_Name_Space::list_names(), ACE_Remote_Name_Space::list_type_entries(), ACE_Remote_Name_Space::list_types(), ACE_Remote_Name_Space::list_value_entries(), ACE_Remote_Name_Space::list_values(), ACE_Auto_Basic_Array_Ptr< X >::operator *(), ACE_Auto_Array_Ptr< X >::operator->(), ACE_Auto_Basic_Array_Ptr< X >::operator[](), ACE_Remote_Name_Space::rebind(), ACE_Auto_Basic_Array_Ptr< X >::reset(), ACE_Remote_Name_Space::resolve(), ACE_Local_Name_Space<, ACE_LOCK >::shared_bind_i(), ACE_DLL_Handle::symbol(), ACE_Remote_Name_Space::unbind(), and ACE_Auto_Basic_Array_Ptr< X >::~ACE_Auto_Basic_Array_Ptr().

00104 {
00105   ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::get");
00106   return this->p_;
00107 }

template<class X>
ACE_INLINE X & ACE_Auto_Basic_Array_Ptr< X >::operator *  )  const
 

Definition at line 153 of file Auto_Ptr.inl.

References ACE_Auto_Basic_Array_Ptr< X >::get().

00154 {
00155   return *this->get ();
00156 }

template<class X>
ACE_INLINE ACE_Auto_Basic_Array_Ptr< X > & ACE_Auto_Basic_Array_Ptr< X >::operator= ACE_Auto_Basic_Array_Ptr< X > &  rhs  ) 
 

Definition at line 135 of file Auto_Ptr.inl.

References ACE_TRACE, ACE_Auto_Basic_Array_Ptr< X >::release(), and ACE_Auto_Basic_Array_Ptr< X >::reset().

00136 {
00137   ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::operator=");
00138   if (this != &rhs)
00139     {
00140       this->reset (rhs.release ());
00141     }
00142   return *this;
00143 }

template<class X>
ACE_INLINE X & ACE_Auto_Basic_Array_Ptr< X >::operator[] int  i  )  const
 

Definition at line 159 of file Auto_Ptr.inl.

References ACE_Auto_Basic_Array_Ptr< X >::get().

00160 {
00161   X *array = this->get ();
00162   return array[i];
00163 }

template<class X>
ACE_INLINE X * ACE_Auto_Basic_Array_Ptr< X >::release void   ) 
 

Definition at line 110 of file Auto_Ptr.inl.

References ACE_TRACE.

Referenced by ACE_Local_Memory_Pool::acquire(), ACE_Function_Node::make_func_name(), and ACE_Auto_Basic_Array_Ptr< X >::operator=().

00111 {
00112   ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::release");
00113   X *old = this->p_;
00114   this->p_ = 0;
00115   return old;
00116 }

template<class X>
ACE_INLINE void ACE_Auto_Basic_Array_Ptr< X >::reset X *  p = 0  ) 
 

Definition at line 119 of file Auto_Ptr.inl.

References ACE_TRACE, and ACE_Auto_Basic_Array_Ptr< X >::get().

Referenced by ACE_SOCK_SEQPACK_Association::get_local_addrs(), ACE_SOCK_SEQPACK_Association::get_remote_addrs(), and ACE_Auto_Basic_Array_Ptr< X >::operator=().

00120 {
00121   ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::reset");
00122   if (this->get () != p)
00123     delete [] this->get ();
00124   this->p_ = p;
00125 }


Member Data Documentation

template<class X>
ACE_Auto_Basic_Array_Ptr< X >::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Definition at line 149 of file Auto_Ptr.h.

template<class X>
X* ACE_Auto_Basic_Array_Ptr< X >::p_ [protected]
 

Definition at line 152 of file Auto_Ptr.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 11:20:12 2006 for ACE by doxygen 1.3.6