00001 // -*- C++ -*- 00002 // 00003 // Seq_Var_T.inl,v 1.5 2006/04/19 08:45:04 jwillemsen Exp 00004 00005 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00006 00007 template<typename T> 00008 ACE_INLINE 00009 TAO_Seq_Var_Base_T<T>::TAO_Seq_Var_Base_T (void) 00010 : ptr_ (0) 00011 {} 00012 00013 template<typename T> 00014 ACE_INLINE 00015 TAO_Seq_Var_Base_T<T>::TAO_Seq_Var_Base_T (T * p) 00016 : ptr_ (p) 00017 {} 00018 00019 template<typename T> 00020 ACE_INLINE 00021 TAO_Seq_Var_Base_T<T>::~TAO_Seq_Var_Base_T (void) 00022 { 00023 delete this->ptr_; 00024 } 00025 00026 template<typename T> 00027 ACE_INLINE 00028 const T * 00029 TAO_Seq_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_Seq_Var_Base_T<T>::operator-> (void) 00038 { 00039 return this->ptr_; 00040 } 00041 00042 template<typename T> 00043 ACE_INLINE 00044 TAO_Seq_Var_Base_T<T>::operator const T & () const 00045 { 00046 return *this->ptr_; 00047 } 00048 00049 template<typename T> 00050 ACE_INLINE 00051 TAO_Seq_Var_Base_T<T>::operator T & () 00052 { 00053 return *this->ptr_; 00054 } 00055 00056 template<typename T> 00057 ACE_INLINE 00058 TAO_Seq_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_Seq_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_Seq_Var_Base_T<T>::inout (void) 00075 { 00076 return *this->ptr_; 00077 } 00078 00079 template<typename T> 00080 ACE_INLINE 00081 T *& 00082 TAO_Seq_Var_Base_T<T>::out (void) 00083 { 00084 delete this->ptr_; 00085 this->ptr_ = 0; 00086 return this->ptr_; 00087 } 00088 00089 template<typename T> 00090 ACE_INLINE 00091 T * 00092 TAO_Seq_Var_Base_T<T>::_retn (void) 00093 { 00094 T * tmp = this->ptr_; 00095 this->ptr_ = 0; 00096 return tmp; 00097 } 00098 00099 template<typename T> 00100 ACE_INLINE 00101 T * 00102 TAO_Seq_Var_Base_T<T>::ptr (void) const 00103 { 00104 return this->ptr_; 00105 } 00106 00107 // *************************************************************** 00108 00109 template<typename T> 00110 ACE_INLINE 00111 TAO_FixedSeq_Var_T<T>::TAO_FixedSeq_Var_T (void) 00112 {} 00113 00114 template<typename T> 00115 ACE_INLINE 00116 TAO_FixedSeq_Var_T<T>::TAO_FixedSeq_Var_T (T * p) 00117 : TAO_Seq_Var_Base_T<T> (p) 00118 {} 00119 00120 template<typename T> 00121 TAO_FixedSeq_Var_T<T>::TAO_FixedSeq_Var_T ( 00122 const TAO_FixedSeq_Var_T<T> & p 00123 ) 00124 : TAO_Seq_Var_Base_T<T> (p) 00125 { 00126 } 00127 00128 // Fixed-size base types only. 00129 template<typename T> 00130 ACE_INLINE 00131 TAO_FixedSeq_Var_T<T>::TAO_FixedSeq_Var_T (const T & p) 00132 { 00133 ACE_NEW (this->ptr_, 00134 T (p)); 00135 } 00136 00137 template<typename T> 00138 ACE_INLINE 00139 TAO_FixedSeq_Var_T<T> & 00140 TAO_FixedSeq_Var_T<T>::operator= (T * p) 00141 { 00142 delete this->ptr_; 00143 this->ptr_ = p; 00144 return *this; 00145 } 00146 00147 template<typename T> 00148 ACE_INLINE 00149 typename TAO_FixedSeq_Var_T<T>::T_elem 00150 TAO_FixedSeq_Var_T<T>::operator[] (CORBA::ULong index) 00151 { 00152 return this->ptr_->operator[] (index); 00153 } 00154 00155 template<typename T> 00156 ACE_INLINE 00157 typename TAO_FixedSeq_Var_T<T>::T_const_elem 00158 TAO_FixedSeq_Var_T<T>::operator[] (CORBA::ULong index) const 00159 { 00160 return this->ptr_->operator[] (index); 00161 } 00162 00163 // *************************************************************** 00164 00165 template<typename T> 00166 ACE_INLINE 00167 TAO_VarSeq_Var_T<T>::TAO_VarSeq_Var_T (void) 00168 { 00169 } 00170 00171 template<typename T> 00172 ACE_INLINE 00173 TAO_VarSeq_Var_T<T>::TAO_VarSeq_Var_T (T * p) 00174 : TAO_Seq_Var_Base_T<T> (p) 00175 { 00176 } 00177 00178 template<typename T> 00179 TAO_VarSeq_Var_T<T>::TAO_VarSeq_Var_T ( 00180 const TAO_VarSeq_Var_T<T> & p) 00181 : TAO_Seq_Var_Base_T<T> (p) 00182 { 00183 } 00184 00185 template<typename T> 00186 ACE_INLINE 00187 TAO_VarSeq_Var_T<T> & 00188 TAO_VarSeq_Var_T<T>::operator= (T * p) 00189 { 00190 delete this->ptr_; 00191 this->ptr_ = p; 00192 return *this; 00193 } 00194 00195 // Variable-size types only. 00196 template<typename T> 00197 ACE_INLINE 00198 TAO_VarSeq_Var_T<T>::operator T *& () 00199 { 00200 return this->ptr_; 00201 } 00202 00203 template<typename T> 00204 ACE_INLINE 00205 typename TAO_VarSeq_Var_T<T>::T_elem 00206 TAO_VarSeq_Var_T<T>::operator[] (CORBA::ULong index) 00207 { 00208 return this->ptr_->operator[] (index); 00209 } 00210 00211 template<typename T> 00212 ACE_INLINE 00213 typename TAO_VarSeq_Var_T<T>::T_const_elem 00214 TAO_VarSeq_Var_T<T>::operator[] (CORBA::ULong index) const 00215 { 00216 return this->ptr_->operator[] (index); 00217 } 00218 00219 00220 TAO_END_VERSIONED_NAMESPACE_DECL