00001 // $Id: Objref_VarOut_T.cpp 79667 2007-09-20 07:13:20Z johnnyw $ 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 #if !defined (__ACE_INLINE__) 00009 #include "tao/Objref_VarOut_T.inl" 00010 #endif /* __ACE_INLINE__ */ 00011 00012 template <typename T> 00013 TAO_Objref_Var_T<T>::TAO_Objref_Var_T ( 00014 const TAO_Objref_Var_T<T> & p 00015 ) 00016 : TAO_Base_var (), 00017 ptr_ (TAO::Objref_Traits<T>::duplicate (p.ptr ())) 00018 { 00019 } 00020 00021 template <typename T> 00022 TAO_Objref_Var_T<T> & 00023 TAO_Objref_Var_T<T>::operator= (T * p) 00024 { 00025 TAO::Objref_Traits<T>::release (this->ptr_); 00026 this->ptr_ = p; 00027 return *this; 00028 } 00029 00030 template <typename T> 00031 TAO_Objref_Var_T<T> & 00032 TAO_Objref_Var_T<T>::operator= ( 00033 const TAO_Objref_Var_T<T> & p 00034 ) 00035 { 00036 if (this != &p) 00037 { 00038 TAO::Objref_Traits<T>::release (this->ptr_); 00039 this->ptr_ = TAO::Objref_Traits<T>::duplicate (p.ptr ()); 00040 } 00041 00042 return *this; 00043 } 00044 00045 #endif /* TAO_OBJREF_VAROUT_T_CPP */