// -*- C++ -*- // // $Id: Auto_Ptr.inl 80826 2008-03-04 14:51:23Z wotte $ #include "ace/Global_Macros.h" ACE_BEGIN_VERSIONED_NAMESPACE_DECL template ACE_INLINE void ACE_Auto_Basic_Ptr::dump (void) 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 (void) 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 (void) const { ACE_TRACE ("ACE_Auto_Basic_Ptr::get"); return this->p_; } template ACE_INLINE X * ACE_Auto_Basic_Ptr::release (void) { 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 (void) { 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) || \ !defined (ACE_HAS_STANDARD_CPP_LIBRARY) || \ (ACE_HAS_STANDARD_CPP_LIBRARY == 0) template ACE_INLINE X * auto_ptr::operator-> () const { ACE_TRACE ("auto_ptr::operator->"); return this->get (); } #endif /* ACE_HAS_STANDARD_CPP_LIBRARY */ 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 (void) const { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::get"); return this->p_; } template ACE_INLINE X * ACE_Auto_Basic_Array_Ptr::release (void) { 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) delete [] this->get (); 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 (void) { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::~ACE_Auto_Basic_Array_Ptr"); delete [] this->get (); } 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