Objref_VarOut_T.cpp

Go to the documentation of this file.
00001 // Objref_VarOut_T.cpp,v 1.10 2006/04/19 08:43:49 jwillemsen Exp
00002 #ifndef TAO_OBJREF_VAROUT_T_CPP
00003 #define TAO_OBJREF_VAROUT_T_CPP
00004 
00005 #include "tao/Objref_VarOut_T.h"
00006 #include "tao/Environment.h"
00007 
00008 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00009 
00010 template <typename T>
00011 TAO_Objref_Var_T<T>::TAO_Objref_Var_T (void)
00012   : ptr_ (TAO::Objref_Traits<T>::nil ())
00013 {
00014 }
00015 
00016 template <typename T>
00017 TAO_Objref_Var_T<T>::TAO_Objref_Var_T (
00018     const TAO_Objref_Var_T<T> & p
00019   )
00020   : TAO_Base_var (),
00021     ptr_ (TAO::Objref_Traits<T>::duplicate (p.ptr ()))
00022 {
00023 }
00024 
00025 template <typename T>
00026 TAO_Objref_Var_T<T>::~TAO_Objref_Var_T (void)
00027 {
00028   TAO::Objref_Traits<T>::release (this->ptr_);
00029 }
00030 
00031 template <typename T>
00032 TAO_Objref_Var_T<T> &
00033 TAO_Objref_Var_T<T>::operator= (T * p)
00034 {
00035   TAO::Objref_Traits<T>::release (this->ptr_);
00036   this->ptr_ = p;
00037   return *this;
00038 }
00039 
00040 template <typename T>
00041 TAO_Objref_Var_T<T> &
00042 TAO_Objref_Var_T<T>::operator= (
00043     const TAO_Objref_Var_T<T> & p
00044   )
00045 {
00046   if (this != &p)
00047     {
00048       TAO::Objref_Traits<T>::release (this->ptr_);
00049       this->ptr_ = TAO::Objref_Traits<T>::duplicate (p.ptr ());
00050     }
00051 
00052   return *this;
00053 }
00054 
00055 template <typename T>
00056 T *
00057 TAO_Objref_Var_T<T>::operator-> (void) const
00058 {
00059   return this->ptr_;
00060 }
00061 
00062 template <typename T>
00063 TAO_Objref_Var_T<T>::operator T * const & () const
00064 {
00065   return this->ptr_;
00066 }
00067 
00068 template <typename T>
00069 TAO_Objref_Var_T<T>::operator T *& ()
00070 {
00071   return this->ptr_;
00072 }
00073 
00074 template <typename T>
00075 T *
00076 TAO_Objref_Var_T<T>::in (void) const
00077 {
00078   return this->ptr_;
00079 }
00080 
00081 template <typename T>
00082 T *&
00083 TAO_Objref_Var_T<T>::inout (void)
00084 {
00085   return this->ptr_;
00086 }
00087 
00088 template <typename T>
00089 T *&
00090 TAO_Objref_Var_T<T>::out (void)
00091 {
00092   TAO::Objref_Traits<T>::release (this->ptr_);
00093   this->ptr_ = TAO::Objref_Traits<T>::nil ();
00094   return this->ptr_;
00095 }
00096 
00097 template <typename T>
00098 T *
00099 TAO_Objref_Var_T<T>::_retn (void)
00100 {
00101   T * val = this->ptr_;
00102   this->ptr_ = TAO::Objref_Traits<T>::nil ();
00103   return val;
00104 }
00105 
00106 template <typename T>
00107 T *
00108 TAO_Objref_Var_T<T>::ptr (void) const
00109 {
00110   return this->ptr_;
00111 }
00112 
00113 template <typename T>
00114 void
00115 TAO_Objref_Var_T<T>::free (void)
00116 {
00117   TAO::Objref_Traits<T>::release (this->ptr_);
00118 }
00119 
00120 template <typename T>
00121 void
00122 TAO_Objref_Var_T<T>::reset (T * p)
00123 {
00124   TAO::Objref_Traits<T>::release (this->ptr_);
00125   this->ptr_ = p;
00126 }
00127 
00128 // ******************************************************
00129 
00130 template <typename T>
00131 TAO_Objref_Out_T<T>::TAO_Objref_Out_T (T *& p)
00132   : ptr_ (p)
00133 {
00134   this->ptr_ = TAO::Objref_Traits<T>::nil ();
00135 }
00136 
00137 template <typename T>
00138 TAO_Objref_Out_T<T>::TAO_Objref_Out_T (
00139     TAO_Objref_Var_T<T> & p
00140   )
00141   : ptr_ (p.out ())
00142 {
00143   TAO::Objref_Traits<T>::release (this->ptr_);
00144   this->ptr_ = TAO::Objref_Traits<T>::nil ();
00145 }
00146 
00147 template <typename T>
00148 TAO_Objref_Out_T<T>::TAO_Objref_Out_T (
00149     const TAO_Objref_Out_T<T> & p
00150   )
00151   : ptr_ (p.ptr_)
00152 {
00153 }
00154 
00155 template <typename T>
00156 TAO_Objref_Out_T<T> &
00157 TAO_Objref_Out_T<T>::operator= (
00158     const TAO_Objref_Out_T<T> & p
00159   )
00160 {
00161   this->ptr_ = p.ptr_;
00162   return *this;
00163 }
00164 
00165 template <typename T>
00166 TAO_Objref_Out_T<T> &
00167 TAO_Objref_Out_T<T>::operator= (T * p)
00168 {
00169   this->ptr_ = p;
00170   return *this;
00171 }
00172 
00173 template <typename T>
00174 T *&
00175 TAO_Objref_Out_T<T>::ptr (void)
00176 {
00177   return this->ptr_;
00178 }
00179 
00180 template <typename T>
00181 TAO_Objref_Out_T<T>::operator T *& ()
00182 {
00183   return this->ptr_;
00184 }
00185 
00186 template <typename T>
00187 T *
00188 TAO_Objref_Out_T<T>::operator-> (void)
00189 {
00190   return this->ptr_;
00191 }
00192 
00193 TAO_END_VERSIONED_NAMESPACE_DECL
00194 
00195 #endif /* TAO_OBJREF_VAROUT_T_CPP */

Generated on Thu Nov 9 11:54:17 2006 for TAO by doxygen 1.3.6