Objref_VarOut_T.inl

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // $Id: Objref_VarOut_T.inl 79674 2007-09-20 09:36:06Z johnnyw $
00004 
00005 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00006 
00007 template <typename T>
00008 ACE_INLINE
00009 TAO_Objref_Var_T<T>::TAO_Objref_Var_T (void)
00010   : ptr_ (TAO::Objref_Traits<T>::nil ())
00011 {
00012 }
00013 
00014 template <typename T>
00015 ACE_INLINE
00016 TAO_Objref_Var_T<T>::~TAO_Objref_Var_T (void)
00017 {
00018   TAO::Objref_Traits<T>::release (this->ptr_);
00019 }
00020 
00021 template <typename T>
00022 ACE_INLINE
00023 T *
00024 TAO_Objref_Var_T<T>::operator-> (void) const
00025 {
00026   return this->ptr_;
00027 }
00028 
00029 template <typename T>
00030 ACE_INLINE
00031 TAO_Objref_Var_T<T>::operator T * const & () const
00032 {
00033   return this->ptr_;
00034 }
00035 
00036 template <typename T>
00037 ACE_INLINE
00038 TAO_Objref_Var_T<T>::operator T *& ()
00039 {
00040   return this->ptr_;
00041 }
00042 
00043 template <typename T>
00044 ACE_INLINE
00045 T *
00046 TAO_Objref_Var_T<T>::in (void) const
00047 {
00048   return this->ptr_;
00049 }
00050 
00051 template <typename T>
00052 ACE_INLINE
00053 T *&
00054 TAO_Objref_Var_T<T>::inout (void)
00055 {
00056   return this->ptr_;
00057 }
00058 
00059 template <typename T>
00060 ACE_INLINE
00061 T *&
00062 TAO_Objref_Var_T<T>::out (void)
00063 {
00064   TAO::Objref_Traits<T>::release (this->ptr_);
00065   this->ptr_ = TAO::Objref_Traits<T>::nil ();
00066   return this->ptr_;
00067 }
00068 
00069 template <typename T>
00070 ACE_INLINE
00071 T *
00072 TAO_Objref_Var_T<T>::_retn (void)
00073 {
00074   T * val = this->ptr_;
00075   this->ptr_ = TAO::Objref_Traits<T>::nil ();
00076   return val;
00077 }
00078 
00079 template <typename T>
00080 ACE_INLINE
00081 T *
00082 TAO_Objref_Var_T<T>::ptr (void) const
00083 {
00084   return this->ptr_;
00085 }
00086 
00087 template <typename T>
00088 ACE_INLINE
00089 void
00090 TAO_Objref_Var_T<T>::free (void)
00091 {
00092   TAO::Objref_Traits<T>::release (this->ptr_);
00093 }
00094 
00095 template <typename T>
00096 ACE_INLINE
00097 void
00098 TAO_Objref_Var_T<T>::reset (T * p)
00099 {
00100   TAO::Objref_Traits<T>::release (this->ptr_);
00101   this->ptr_ = p;
00102 }
00103 
00104 // ******************************************************
00105 
00106 template <typename T>
00107 ACE_INLINE
00108 TAO_Objref_Out_T<T>::TAO_Objref_Out_T (T *& p)
00109   : ptr_ (p)
00110 {
00111   this->ptr_ = TAO::Objref_Traits<T>::nil ();
00112 }
00113 
00114 template <typename T>
00115 ACE_INLINE
00116 TAO_Objref_Out_T<T>::TAO_Objref_Out_T (
00117     TAO_Objref_Var_T<T> & p
00118   )
00119   : ptr_ (p.out ())
00120 {
00121   TAO::Objref_Traits<T>::release (this->ptr_);
00122   this->ptr_ = TAO::Objref_Traits<T>::nil ();
00123 }
00124 
00125 template <typename T>
00126 ACE_INLINE
00127 TAO_Objref_Out_T<T>::TAO_Objref_Out_T (
00128     const TAO_Objref_Out_T<T> & p
00129   )
00130   : ptr_ (p.ptr_)
00131 {
00132 }
00133 
00134 template <typename T>
00135 ACE_INLINE
00136 TAO_Objref_Out_T<T> &
00137 TAO_Objref_Out_T<T>::operator= (
00138     const TAO_Objref_Out_T<T> & p
00139   )
00140 {
00141   this->ptr_ = p.ptr_;
00142   return *this;
00143 }
00144 
00145 template <typename T>
00146 ACE_INLINE
00147 TAO_Objref_Out_T<T> &
00148 TAO_Objref_Out_T<T>::operator= (T * p)
00149 {
00150   this->ptr_ = p;
00151   return *this;
00152 }
00153 
00154 template <typename T>
00155 ACE_INLINE
00156 T *&
00157 TAO_Objref_Out_T<T>::ptr (void)
00158 {
00159   return this->ptr_;
00160 }
00161 
00162 template <typename T>
00163 ACE_INLINE
00164 TAO_Objref_Out_T<T>::operator T *& ()
00165 {
00166   return this->ptr_;
00167 }
00168 
00169 template <typename T>
00170 ACE_INLINE
00171 T *
00172 TAO_Objref_Out_T<T>::operator-> (void)
00173 {
00174   return this->ptr_;
00175 }
00176 
00177 TAO_END_VERSIONED_NAMESPACE_DECL
00178 

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