2 #include "ace/Global_Macros.h"
4 #if defined (ACE_HAS_ALLOC_HOOKS)
5 # include "ace/Malloc_Base.h"
6 #endif /* ACE_HAS_ALLOC_HOOKS */
8 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
10 template<class X> ACE_INLINE void
11 ACE_Auto_Basic_Ptr<X>::dump (void) const
13 #if defined (ACE_HAS_DUMP)
14 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::dump");
15 #endif /* ACE_HAS_DUMP */
18 template<class X> ACE_INLINE void
19 ACE_Auto_Basic_Array_Ptr<X>::dump (void) const
21 #if defined (ACE_HAS_DUMP)
22 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::dump");
23 #endif /* ACE_HAS_DUMP */
26 template<class X> ACE_INLINE
27 ACE_Auto_Basic_Ptr<X>::ACE_Auto_Basic_Ptr (ACE_Auto_Basic_Ptr<X> &rhs)
30 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::ACE_Auto_Basic_Ptr");
33 template<class X> ACE_INLINE X *
34 ACE_Auto_Basic_Ptr<X>::get (void) const
36 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::get");
40 template<class X> ACE_INLINE X *
41 ACE_Auto_Basic_Ptr<X>::release (void)
43 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::release");
49 template<class X> ACE_INLINE void
50 ACE_Auto_Basic_Ptr<X>::reset (X *p)
52 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::reset");
53 if (this->get () != p)
58 template<class X> ACE_INLINE ACE_Auto_Basic_Ptr<X> &
59 ACE_Auto_Basic_Ptr<X>::operator= (ACE_Auto_Basic_Ptr<X> &rhs)
61 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::operator=");
64 this->reset (rhs.release ());
69 template<class X> ACE_INLINE
70 ACE_Auto_Basic_Ptr<X>::~ACE_Auto_Basic_Ptr (void)
72 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::~ACE_Auto_Basic_Ptr");
76 template<class X> ACE_INLINE X &
77 ACE_Auto_Basic_Ptr<X>::operator *() const
79 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::operator *()");
83 #if defined (ACE_LACKS_AUTO_PTR) || \
84 !defined (ACE_HAS_STANDARD_CPP_LIBRARY) || \
85 (ACE_HAS_STANDARD_CPP_LIBRARY == 0)
87 template<class X> ACE_INLINE X *
88 auto_ptr<X>::operator-> () const
90 ACE_TRACE ("auto_ptr<X>::operator->");
94 #endif /* ACE_HAS_STANDARD_CPP_LIBRARY */
96 template<class X> ACE_INLINE X *
97 ACE_Auto_Ptr<X>::operator-> () const
99 ACE_TRACE ("ACE_Auto_Ptr<X>::operator->");
103 template<class X> ACE_INLINE X *
104 ACE_Auto_Basic_Array_Ptr<X>::get (void) const
106 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::get");
110 template<class X> ACE_INLINE X *
111 ACE_Auto_Basic_Array_Ptr<X>::release (void)
113 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::release");
119 template<class X> ACE_INLINE void
120 ACE_Auto_Basic_Array_Ptr<X>::reset (X *p)
122 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::reset");
123 if (this->get () != p)
124 #if defined (ACE_HAS_ALLOC_HOOKS)
125 ACE_Allocator::instance()->free(this->get ());
127 delete [] this->get ();
128 #endif /* ACE_HAS_ALLOC_HOOKS */
133 template<class X> ACE_INLINE
134 ACE_Auto_Basic_Array_Ptr<X>::ACE_Auto_Basic_Array_Ptr (ACE_Auto_Basic_Array_Ptr<X> &rhs)
135 : p_ (rhs.release ())
137 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::ACE_Auto_Basic_Array_Ptr");
140 template<class X> ACE_INLINE ACE_Auto_Basic_Array_Ptr<X> &
141 ACE_Auto_Basic_Array_Ptr<X>::operator= (ACE_Auto_Basic_Array_Ptr<X> &rhs)
143 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::operator=");
146 this->reset (rhs.release ());
151 template<class X> ACE_INLINE
152 ACE_Auto_Basic_Array_Ptr<X>::~ACE_Auto_Basic_Array_Ptr (void)
154 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::~ACE_Auto_Basic_Array_Ptr");
155 #if defined (ACE_HAS_ALLOC_HOOKS)
156 ACE_Allocator::instance()->free(this->get ());
158 delete [] this->get ();
159 #endif /* ACE_HAS_ALLOC_HOOKS */
162 template<class X> ACE_INLINE X &
163 ACE_Auto_Basic_Array_Ptr<X>::operator *() const
165 return *this->get ();
168 template<class X> ACE_INLINE X &
169 ACE_Auto_Basic_Array_Ptr<X>::operator[](int i) const
171 X *array = this->get ();
175 template<class X> ACE_INLINE X *
176 ACE_Auto_Array_Ptr<X>::operator->() const
181 ACE_END_VERSIONED_NAMESPACE_DECL