VarOut_T.inl

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // $Id: VarOut_T.inl 73614 2006-07-18 13:18:18Z jwillemsen $
00004 
00005 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00006 
00007 template<typename T>
00008 ACE_INLINE
00009 TAO_Var_Base_T<T>::TAO_Var_Base_T (void)
00010   : ptr_ (0)
00011 {}
00012 
00013 template<typename T>
00014 ACE_INLINE
00015 TAO_Var_Base_T<T>::TAO_Var_Base_T (T * p)
00016   : ptr_ (p)
00017 {}
00018 
00019 template<typename T>
00020 ACE_INLINE
00021 TAO_Var_Base_T<T>::~TAO_Var_Base_T (void)
00022 {
00023   delete this->ptr_;
00024 }
00025 
00026 template<typename T>
00027 ACE_INLINE
00028 const T *
00029 TAO_Var_Base_T<T>::operator-> (void) const
00030 {
00031   return this->ptr_;
00032 }
00033 
00034 template<typename T>
00035 ACE_INLINE
00036 T *
00037 TAO_Var_Base_T<T>::operator-> (void)
00038 {
00039   return this->ptr_;
00040 }
00041 
00042 template<typename T>
00043 ACE_INLINE
00044 TAO_Var_Base_T<T>::operator const T & () const
00045 {
00046   return *this->ptr_;
00047 }
00048 
00049 template<typename T>
00050 ACE_INLINE
00051 TAO_Var_Base_T<T>::operator T & ()
00052 {
00053   return *this->ptr_;
00054 }
00055 
00056 template<typename T>
00057 ACE_INLINE
00058 TAO_Var_Base_T<T>::operator T & () const
00059 {
00060   return *this->ptr_;
00061 }
00062 
00063 template<typename T>
00064 ACE_INLINE
00065 const T &
00066 TAO_Var_Base_T<T>::in (void) const
00067 {
00068   return *this->ptr_;
00069 }
00070 
00071 template<typename T>
00072 ACE_INLINE
00073 T &
00074 TAO_Var_Base_T<T>::inout (void)
00075 {
00076   return *this->ptr_;
00077 }
00078 
00079 template<typename T>
00080 ACE_INLINE
00081 T *
00082 TAO_Var_Base_T<T>::ptr (void) const
00083 {
00084   return this->ptr_;
00085 }
00086 // *************************************************************
00087 
00088 template<typename T>
00089 ACE_INLINE
00090 TAO_Fixed_Var_T<T>::TAO_Fixed_Var_T (void)
00091 {}
00092 
00093 template<typename T>
00094 ACE_INLINE
00095 TAO_Fixed_Var_T<T>::TAO_Fixed_Var_T (T * p)
00096   : TAO_Var_Base_T<T> (p)
00097 {}
00098 
00099 template<typename T>
00100 ACE_INLINE
00101 TAO_Fixed_Var_T<T>::TAO_Fixed_Var_T (const TAO_Fixed_Var_T<T> & p)
00102   : TAO_Var_Base_T<T> (p)
00103 {}
00104 
00105 // Fixed-size types only.
00106 template<typename T>
00107 ACE_INLINE
00108 TAO_Fixed_Var_T<T>::TAO_Fixed_Var_T (const T & p)
00109 {
00110   ACE_NEW (this->ptr_,
00111            T (p));
00112 }
00113 
00114 template<typename T>
00115 ACE_INLINE
00116 TAO_Fixed_Var_T<T> &
00117 TAO_Fixed_Var_T<T>::operator= (T * p)
00118 {
00119   delete this->ptr_;
00120   this->ptr_ = p;
00121   return *this;
00122 }
00123 
00124 // Mapping for fixed size.
00125 template<typename T>
00126 ACE_INLINE
00127 T &
00128 TAO_Fixed_Var_T<T>::out (void)
00129 {
00130   // Use plain new, using the ACE_NEW macros will mean we dereference a
00131   // nil pointer and crash which is more bad then plain new which could
00132   // lead to a bad_alloc exception
00133   if (this->ptr_ == 0)
00134     this->ptr_ = new T;
00135 
00136   return *this->ptr_;
00137 }
00138 
00139 template<typename T>
00140 ACE_INLINE
00141 T
00142 TAO_Fixed_Var_T<T>::_retn (void)
00143 {
00144   return *this->ptr_;
00145 }
00146 
00147 // *************************************************************
00148 
00149 template<typename T>
00150 ACE_INLINE
00151 TAO_Var_Var_T<T>::TAO_Var_Var_T (void)
00152 {}
00153 
00154 template<typename T>
00155 ACE_INLINE
00156 TAO_Var_Var_T<T>::TAO_Var_Var_T (T * p)
00157   : TAO_Var_Base_T<T> (p)
00158 {}
00159 
00160 template<typename T>
00161 ACE_INLINE
00162 TAO_Var_Var_T<T>::TAO_Var_Var_T (const TAO_Var_Var_T<T> & p)
00163   : TAO_Var_Base_T<T> (p)
00164 {}
00165 
00166 template<typename T>
00167 ACE_INLINE
00168 TAO_Var_Var_T<T> &
00169 TAO_Var_Var_T<T>::operator= (T * p)
00170 {
00171   delete this->ptr_;
00172   this->ptr_ = p;
00173   return *this;
00174 }
00175 
00176 // Variable-size types only.
00177 template<typename T>
00178 ACE_INLINE
00179 TAO_Var_Var_T<T>::operator T *& ()
00180 {
00181   return this->ptr_;
00182 }
00183 
00184 // Mapping for variable size.
00185 template<typename T>
00186 ACE_INLINE
00187 T *&
00188 TAO_Var_Var_T<T>::out (void)
00189 {
00190   delete this->ptr_;
00191   this->ptr_ = 0;
00192   return this->ptr_;
00193 }
00194 
00195 template<typename T>
00196 ACE_INLINE
00197 T *
00198 TAO_Var_Var_T<T>::_retn (void)
00199 {
00200   T * tmp = this->ptr_;
00201   this->ptr_ = 0;
00202   return tmp;
00203 }
00204 
00205 // *************************************************************
00206 
00207 template<typename T>
00208 ACE_INLINE
00209 TAO_Out_T<T>::TAO_Out_T (T *& p)
00210   : ptr_ (p)
00211 {
00212   this->ptr_ = 0;
00213 }
00214 
00215 template<typename T>
00216 ACE_INLINE
00217 TAO_Out_T<T>::TAO_Out_T (T_var & p)
00218   : ptr_ (p.out ())
00219 {
00220   delete this->ptr_;
00221   this->ptr_ = 0;
00222 }
00223 
00224 template<typename T>
00225 ACE_INLINE
00226 TAO_Out_T<T>::TAO_Out_T (const TAO_Out_T<T> & p)
00227   : ptr_ (p.ptr_)
00228 {}
00229 
00230 template<typename T>
00231 ACE_INLINE
00232 TAO_Out_T<T> &
00233 TAO_Out_T<T>::operator= (const TAO_Out_T<T> & p)
00234 {
00235   this->ptr_ = p.ptr_;
00236   return *this;
00237 }
00238 
00239 template<typename T>
00240 ACE_INLINE
00241 TAO_Out_T<T> &
00242 TAO_Out_T<T>::operator= (T * p)
00243 {
00244   this->ptr_ = p;
00245   return *this;
00246 }
00247 
00248 template<typename T>
00249 ACE_INLINE
00250 TAO_Out_T<T>::operator T *& ()
00251 {
00252   return this->ptr_;
00253 }
00254 
00255 template<typename T>
00256 ACE_INLINE
00257 T *&
00258 TAO_Out_T<T>::ptr (void)
00259 {
00260   return this->ptr_;
00261 }
00262 
00263 template<typename T>
00264 ACE_INLINE
00265 T *
00266 TAO_Out_T<T>::operator-> (void)
00267 {
00268   return this->ptr_;
00269 }
00270 
00271 TAO_END_VERSIONED_NAMESPACE_DECL

Generated on Tue Feb 2 17:37:53 2010 for TAO by  doxygen 1.4.7