Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / tao / Objref_VarOut_T.inl
blobf57c25486301033a180ee9623732db43063dcbb9
1 // -*- C++ -*-
2 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
4 template <typename T>
5 ACE_INLINE
6 TAO_Objref_Var_T<T>::TAO_Objref_Var_T ()
7   : ptr_ (TAO::Objref_Traits<T>::nil ())
11 template <typename T>
12 ACE_INLINE
13 TAO_Objref_Var_T<T>::~TAO_Objref_Var_T ()
15   TAO::Objref_Traits<T>::release (this->ptr_);
18 template <typename T>
19 ACE_INLINE
20 T *
21 TAO_Objref_Var_T<T>::operator-> () const
23   return this->ptr_;
26 template <typename T>
27 ACE_INLINE
28 TAO_Objref_Var_T<T>::operator T * const & () const
30   return this->ptr_;
33 template <typename T>
34 ACE_INLINE
35 TAO_Objref_Var_T<T>::operator T *& ()
37   return this->ptr_;
40 template <typename T>
41 ACE_INLINE
42 T *
43 TAO_Objref_Var_T<T>::in () const
45   return this->ptr_;
48 template <typename T>
49 ACE_INLINE
50 T *&
51 TAO_Objref_Var_T<T>::inout ()
53   return this->ptr_;
56 template <typename T>
57 ACE_INLINE
58 T *&
59 TAO_Objref_Var_T<T>::out ()
61   TAO::Objref_Traits<T>::release (this->ptr_);
62   this->ptr_ = TAO::Objref_Traits<T>::nil ();
63   return this->ptr_;
66 template <typename T>
67 ACE_INLINE
68 T *
69 TAO_Objref_Var_T<T>::_retn ()
71   T * val = this->ptr_;
72   this->ptr_ = TAO::Objref_Traits<T>::nil ();
73   return val;
76 template <typename T>
77 ACE_INLINE
78 T *
79 TAO_Objref_Var_T<T>::ptr () const
81   return this->ptr_;
84 template <typename T>
85 ACE_INLINE
86 void
87 TAO_Objref_Var_T<T>::free ()
89   TAO::Objref_Traits<T>::release (this->ptr_);
92 template <typename T>
93 ACE_INLINE
94 void
95 TAO_Objref_Var_T<T>::reset (T * p)
97   TAO::Objref_Traits<T>::release (this->ptr_);
98   this->ptr_ = p;
101 // ******************************************************
103 template <typename T>
104 ACE_INLINE
105 TAO_Objref_Out_T<T>::TAO_Objref_Out_T (T *& p)
106   : ptr_ (p)
108   this->ptr_ = TAO::Objref_Traits<T>::nil ();
111 template <typename T>
112 ACE_INLINE
113 TAO_Objref_Out_T<T>::TAO_Objref_Out_T (TAO_Objref_Var_T<T> & p)
114   : ptr_ (p.out ())
116   TAO::Objref_Traits<T>::release (this->ptr_);
117   this->ptr_ = TAO::Objref_Traits<T>::nil ();
120 template <typename T>
121 ACE_INLINE
122 TAO_Objref_Out_T<T>::TAO_Objref_Out_T (const TAO_Objref_Out_T<T> & p)
123   : ptr_ (p.ptr_)
127 template <typename T>
128 ACE_INLINE
129 TAO_Objref_Out_T<T> &
130 TAO_Objref_Out_T<T>::operator= (const TAO_Objref_Out_T<T> & p)
132   this->ptr_ = p.ptr_;
133   return *this;
136 template <typename T>
137 ACE_INLINE
138 TAO_Objref_Out_T<T> &
139 TAO_Objref_Out_T<T>::operator= (const TAO_Objref_Var_T<T> & p)
141   this->ptr_ = TAO::Objref_Traits<T>::duplicate (p.ptr ());
142   return *this;
145 template <typename T>
146 ACE_INLINE
147 TAO_Objref_Out_T<T> &
148 TAO_Objref_Out_T<T>::operator= (T * p)
150   this->ptr_ = p;
151   return *this;
154 template <typename T>
155 ACE_INLINE
156 T *&
157 TAO_Objref_Out_T<T>::ptr ()
159   return this->ptr_;
162 template <typename T>
163 ACE_INLINE
164 TAO_Objref_Out_T<T>::operator T *& ()
166   return this->ptr_;
169 template <typename T>
170 ACE_INLINE
171 T *
172 TAO_Objref_Out_T<T>::operator-> ()
174   return this->ptr_;
177 TAO_END_VERSIONED_NAMESPACE_DECL