// -*- C++ -*- #include "ace/Global_Macros.h" #if defined (ACE_HAS_ALLOC_HOOKS) # include "ace/Malloc_Base.h" #endif /* ACE_HAS_ALLOC_HOOKS */ ACE_BEGIN_VERSIONED_NAMESPACE_DECL template ACE_INLINE void ACE_Auto_Basic_Ptr::dump () const { #if defined (ACE_HAS_DUMP) ACE_TRACE ("ACE_Auto_Basic_Ptr::dump"); #endif /* ACE_HAS_DUMP */ } template ACE_INLINE void ACE_Auto_Basic_Array_Ptr::dump () const { #if defined (ACE_HAS_DUMP) ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::dump"); #endif /* ACE_HAS_DUMP */ } template ACE_INLINE ACE_Auto_Basic_Ptr::ACE_Auto_Basic_Ptr (ACE_Auto_Basic_Ptr &rhs) : p_ (rhs.release ()) { ACE_TRACE ("ACE_Auto_Basic_Ptr::ACE_Auto_Basic_Ptr"); } template ACE_INLINE X * ACE_Auto_Basic_Ptr::get () const { ACE_TRACE ("ACE_Auto_Basic_Ptr::get"); return this->p_; } template ACE_INLINE X * ACE_Auto_Basic_Ptr::release () { ACE_TRACE ("ACE_Auto_Basic_Ptr::release"); X *old = this->p_; this->p_ = 0; return old; } template ACE_INLINE void ACE_Auto_Basic_Ptr::reset (X *p) { ACE_TRACE ("ACE_Auto_Basic_Ptr::reset"); if (this->get () != p) delete this->get (); this->p_ = p; } template ACE_INLINE ACE_Auto_Basic_Ptr & ACE_Auto_Basic_Ptr::operator= (ACE_Auto_Basic_Ptr &rhs) { ACE_TRACE ("ACE_Auto_Basic_Ptr::operator="); if (this != &rhs) { this->reset (rhs.release ()); } return *this; } template ACE_INLINE ACE_Auto_Basic_Ptr::~ACE_Auto_Basic_Ptr () { ACE_TRACE ("ACE_Auto_Basic_Ptr::~ACE_Auto_Basic_Ptr"); delete this->get (); } template ACE_INLINE X & ACE_Auto_Basic_Ptr::operator *() const { ACE_TRACE ("ACE_Auto_Basic_Ptr::operator *()"); return *this->get (); } #if defined (ACE_LACKS_AUTO_PTR) template ACE_INLINE X * auto_ptr::operator-> () const { ACE_TRACE ("auto_ptr::operator->"); return this->get (); } #endif /* ACE_LACKS_AUTO_PTR */ template ACE_INLINE X * ACE_Auto_Ptr::operator-> () const { ACE_TRACE ("ACE_Auto_Ptr::operator->"); return this->get (); } template ACE_INLINE X * ACE_Auto_Basic_Array_Ptr::get () const { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::get"); return this->p_; } template ACE_INLINE X * ACE_Auto_Basic_Array_Ptr::release () { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::release"); X *old = this->p_; this->p_ = 0; return old; } template ACE_INLINE void ACE_Auto_Basic_Array_Ptr::reset (X *p) { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::reset"); if (this->get () != p) #if defined (ACE_HAS_ALLOC_HOOKS) ACE_Allocator::instance()->free(this->get ()); #else delete [] this->get (); #endif /* ACE_HAS_ALLOC_HOOKS */ this->p_ = p; } template ACE_INLINE ACE_Auto_Basic_Array_Ptr::ACE_Auto_Basic_Array_Ptr (ACE_Auto_Basic_Array_Ptr &rhs) : p_ (rhs.release ()) { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::ACE_Auto_Basic_Array_Ptr"); } template ACE_INLINE ACE_Auto_Basic_Array_Ptr & ACE_Auto_Basic_Array_Ptr::operator= (ACE_Auto_Basic_Array_Ptr &rhs) { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::operator="); if (this != &rhs) { this->reset (rhs.release ()); } return *this; } template ACE_INLINE ACE_Auto_Basic_Array_Ptr::~ACE_Auto_Basic_Array_Ptr () { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::~ACE_Auto_Basic_Array_Ptr"); #if defined (ACE_HAS_ALLOC_HOOKS) ACE_Allocator::instance()->free(this->get ()); #else delete [] this->get (); #endif /* ACE_HAS_ALLOC_HOOKS */ } template ACE_INLINE X & ACE_Auto_Basic_Array_Ptr::operator *() const { return *this->get (); } template ACE_INLINE X & ACE_Auto_Basic_Array_Ptr::operator[](int i) const { X *array = this->get (); return array[i]; } template ACE_INLINE X * ACE_Auto_Array_Ptr::operator->() const { return this->get (); } ACE_END_VERSIONED_NAMESPACE_DECL