00001
00002
00003
00004
00005 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00006
00007 template<typename T, typename T_slice, typename TAG>
00008 ACE_INLINE
00009 TAO_Array_Var_Base_T<T,T_slice,TAG>::TAO_Array_Var_Base_T (void)
00010 : ptr_ (0)
00011 {}
00012
00013 template<typename T, typename T_slice, typename TAG>
00014 ACE_INLINE
00015 TAO_Array_Var_Base_T<T,T_slice,TAG>::TAO_Array_Var_Base_T (T_slice * p)
00016 : ptr_ (p)
00017 {}
00018
00019 template<typename T, typename T_slice, typename TAG>
00020 ACE_INLINE
00021 TAO_Array_Var_Base_T<T,T_slice,TAG>::TAO_Array_Var_Base_T (
00022 const TAO_Array_Var_Base_T & p
00023 )
00024 {
00025 this->ptr_ = TAO::Array_Traits<FORANY>::dup (p.in ());
00026 }
00027
00028 template<typename T, typename T_slice, typename TAG>
00029 ACE_INLINE
00030 TAO_Array_Var_Base_T<T,T_slice,TAG>::~TAO_Array_Var_Base_T (void)
00031 {
00032 TAO::Array_Traits<FORANY>::free (this->ptr_);
00033 }
00034
00035 template<typename T, typename T_slice, typename TAG>
00036 ACE_INLINE
00037 TAO_Array_Var_Base_T<T,T_slice,TAG>::operator T_slice * const & () const
00038 {
00039 return this->ptr_;
00040 }
00041
00042 template<typename T, typename T_slice, typename TAG>
00043 ACE_INLINE
00044 T_slice const &
00045 TAO_Array_Var_Base_T<T,T_slice,TAG>::operator[] (CORBA::ULong index) const
00046 {
00047 return this->ptr_[index];
00048 }
00049
00050 template<typename T, typename T_slice, typename TAG>
00051 ACE_INLINE
00052 T_slice &
00053 TAO_Array_Var_Base_T<T,T_slice,TAG>::operator[] (CORBA::ULong index)
00054 {
00055 return this->ptr_[index];
00056 }
00057
00058 template<typename T, typename T_slice, typename TAG>
00059 ACE_INLINE
00060 const T_slice *
00061 TAO_Array_Var_Base_T<T,T_slice,TAG>::in (void) const
00062 {
00063
00064
00065 return (const T_slice *) this->ptr_;
00066 }
00067
00068 template<typename T, typename T_slice, typename TAG>
00069 ACE_INLINE
00070 T_slice *
00071 TAO_Array_Var_Base_T<T,T_slice,TAG>::inout (void)
00072 {
00073 return this->ptr_;
00074 }
00075
00076 template<typename T, typename T_slice, typename TAG>
00077 ACE_INLINE
00078 T_slice *&
00079 TAO_Array_Var_Base_T<T,T_slice,TAG>::_retn_arg (void)
00080 {
00081 TAO::Array_Traits<FORANY>::free (this->ptr_);
00082 this->ptr_ = 0;
00083 return this->ptr_;
00084 }
00085
00086 template<typename T, typename T_slice, typename TAG>
00087 ACE_INLINE
00088 T_slice *
00089 TAO_Array_Var_Base_T<T,T_slice,TAG>::_retn (void)
00090 {
00091 T_slice * tmp = this->ptr_;
00092 this->ptr_ = 0;
00093 return tmp;
00094 }
00095
00096 template<typename T, typename T_slice, typename TAG>
00097 ACE_INLINE
00098 T_slice *
00099 TAO_Array_Var_Base_T<T,T_slice,TAG>::ptr (void) const
00100 {
00101 return this->ptr_;
00102 }
00103
00104
00105
00106 template<typename T, typename T_slice, typename TAG>
00107 ACE_INLINE
00108 TAO_FixedArray_Var_T<T,T_slice,TAG>::TAO_FixedArray_Var_T (void)
00109 {}
00110
00111 template<typename T, typename T_slice, typename TAG>
00112 ACE_INLINE
00113 TAO_FixedArray_Var_T<T,T_slice,TAG>::TAO_FixedArray_Var_T (T_slice * p)
00114 : TAO_Array_Var_Base_T<T,T_slice,TAG> (p)
00115 {}
00116
00117 template<typename T, typename T_slice, typename TAG>
00118 ACE_INLINE
00119 TAO_FixedArray_Var_T<T,T_slice,TAG>::TAO_FixedArray_Var_T (
00120 const TAO_FixedArray_Var_T & p
00121 )
00122 : TAO_Array_Var_Base_T<T,T_slice,TAG> (p)
00123 {}
00124
00125
00126 template<typename T, typename T_slice, typename TAG>
00127 ACE_INLINE
00128 T_slice *
00129 TAO_FixedArray_Var_T<T,T_slice,TAG>::out (void)
00130 {
00131 return this->ptr_;
00132 }
00133
00134
00135
00136 template<typename T, typename T_slice, typename TAG>
00137 ACE_INLINE
00138 TAO_VarArray_Var_T<T,T_slice,TAG>::TAO_VarArray_Var_T (void)
00139 {}
00140
00141 template<typename T, typename T_slice, typename TAG>
00142 ACE_INLINE
00143 TAO_VarArray_Var_T<T,T_slice,TAG>::TAO_VarArray_Var_T (T_slice * p)
00144 : TAO_Array_Var_Base_T<T,T_slice,TAG> (p)
00145 {}
00146
00147 template<typename T, typename T_slice, typename TAG>
00148 ACE_INLINE
00149 TAO_VarArray_Var_T<T,T_slice,TAG>::TAO_VarArray_Var_T (
00150 const TAO_VarArray_Var_T & p
00151 )
00152 : TAO_Array_Var_Base_T<T,T_slice,TAG> (p)
00153 {}
00154
00155 template<typename T, typename T_slice, typename TAG>
00156 ACE_INLINE
00157 TAO_VarArray_Var_T<T,T_slice,TAG>::operator T_slice *& ()
00158 {
00159 return this->ptr_;
00160 }
00161
00162 template<typename T, typename T_slice, typename TAG>
00163 ACE_INLINE
00164 T_slice *&
00165 TAO_VarArray_Var_T<T,T_slice,TAG>::out (void)
00166 {
00167 TAO::Array_Traits<FORANY>::free (this->ptr_);
00168 this->ptr_ = 0;
00169 return this->ptr_;
00170 }
00171
00172
00173
00174 template<typename T, typename T_var, typename T_slice, typename TAG>
00175 ACE_INLINE
00176 TAO_Array_Out_T<T,T_var,T_slice,TAG>::TAO_Array_Out_T (T_slice *& p)
00177 : ptr_ (p)
00178 {
00179 this->ptr_ = 0;
00180 }
00181
00182 template<typename T, typename T_var, typename T_slice, typename TAG>
00183 ACE_INLINE
00184 TAO_Array_Out_T<T,T_var,T_slice,TAG>::TAO_Array_Out_T (T_var & p)
00185 : ptr_ (p.out ())
00186 {
00187 TAO::Array_Traits<FORANY>::free (this->ptr_);
00188 this->ptr_ = 0;
00189 }
00190
00191 template<typename T, typename T_var, typename T_slice, typename TAG>
00192 ACE_INLINE
00193 TAO_Array_Out_T<T,T_var,T_slice,TAG>::TAO_Array_Out_T (
00194 const TAO_Array_Out_T<T,T_var,T_slice,TAG> & p
00195 )
00196 : ptr_ (const_cast<THIS_OUT_TYPE &> (p).ptr_)
00197 {}
00198
00199 template<typename T, typename T_var, typename T_slice, typename TAG>
00200 ACE_INLINE
00201 TAO_Array_Out_T<T,T_var,T_slice,TAG> &
00202 TAO_Array_Out_T<T,T_var,T_slice,TAG>::operator= (
00203 const TAO_Array_Out_T<T,T_var,T_slice,TAG> & p
00204 )
00205 {
00206 this->ptr_ = const_cast<THIS_OUT_TYPE &> (p).ptr_;
00207 return *this;
00208 }
00209
00210 template<typename T, typename T_var, typename T_slice, typename TAG>
00211 ACE_INLINE
00212 TAO_Array_Out_T<T,T_var,T_slice,TAG> &
00213 TAO_Array_Out_T<T,T_var,T_slice,TAG>::operator= (T_slice *p)
00214 {
00215 this->ptr_ = p;
00216 return *this;
00217 }
00218
00219 template<typename T, typename T_var, typename T_slice, typename TAG>
00220 ACE_INLINE
00221 TAO_Array_Out_T<T,T_var,T_slice,TAG>::operator T_slice *& ()
00222 {
00223 return this->ptr_;
00224 }
00225
00226 template<typename T, typename T_var, typename T_slice, typename TAG>
00227 ACE_INLINE
00228 T_slice &
00229 TAO_Array_Out_T<T,T_var,T_slice,TAG>::operator[] (CORBA::ULong index)
00230 {
00231 return this->ptr_[index];
00232 }
00233
00234 template<typename T, typename T_var, typename T_slice, typename TAG>
00235 ACE_INLINE
00236 T_slice *&
00237 TAO_Array_Out_T<T,T_var,T_slice,TAG>::ptr (void)
00238 {
00239 return this->ptr_;
00240 }
00241
00242
00243
00244 template<typename T, typename T_slice, typename TAG>
00245 ACE_INLINE
00246 TAO_Array_Forany_T<T,T_slice,TAG>::TAO_Array_Forany_T (void)
00247 : ptr_ (0),
00248 nocopy_ (false)
00249 {}
00250
00251 template<typename T, typename T_slice, typename TAG>
00252 ACE_INLINE
00253 TAO_Array_Forany_T<T,T_slice,TAG>::TAO_Array_Forany_T (
00254 T_slice * p,
00255 CORBA::Boolean nocopy
00256 )
00257 : ptr_ (p),
00258 nocopy_ (nocopy)
00259 {}
00260
00261 template<typename T, typename T_slice, typename TAG>
00262 ACE_INLINE
00263 TAO_Array_Forany_T<T,T_slice,TAG>::TAO_Array_Forany_T (
00264 const TAO_Array_Forany_T<T,T_slice,TAG> & p
00265 )
00266 : ptr_ (p.ptr_),
00267 nocopy_ (p.nocopy_)
00268 {
00269 }
00270
00271 template<typename T, typename T_slice, typename TAG>
00272 ACE_INLINE
00273 TAO_Array_Forany_T<T,T_slice,TAG>::~TAO_Array_Forany_T (void)
00274 {
00275 }
00276
00277 template<typename T, typename T_slice, typename TAG>
00278 ACE_INLINE
00279 TAO_Array_Forany_T<T,T_slice,TAG> &
00280 TAO_Array_Forany_T<T,T_slice,TAG>::operator= (T_slice * p)
00281 {
00282 this->ptr_ = p;
00283 return *this;
00284 }
00285
00286 template<typename T, typename T_slice, typename TAG>
00287 ACE_INLINE
00288 TAO_Array_Forany_T<T,T_slice,TAG> &
00289 TAO_Array_Forany_T<T,T_slice,TAG>::operator= (
00290 const TAO_Array_Forany_T<T,T_slice,TAG> & p
00291 )
00292 {
00293 this->ptr_ = p.ptr_;
00294 this->nocopy_ = p.nocopy_;
00295 return *this;
00296 }
00297
00298 template<typename T, typename T_slice, typename TAG>
00299 ACE_INLINE
00300 TAO_Array_Forany_T<T,T_slice,TAG>::operator T_slice * const & () const
00301 {
00302 return this->ptr_;
00303 }
00304
00305 template<typename T, typename T_slice, typename TAG>
00306 ACE_INLINE
00307 TAO_Array_Forany_T<T,T_slice,TAG>::operator T_slice *& ()
00308 {
00309 return this->ptr_;
00310 }
00311
00312 template<typename T, typename T_slice, typename TAG>
00313 ACE_INLINE
00314 const T_slice &
00315 TAO_Array_Forany_T<T,T_slice,TAG>::operator[] (CORBA::ULong index) const
00316 {
00317 const T_slice & tmp = this->ptr_[index];
00318 return tmp;
00319 }
00320
00321 template<typename T, typename T_slice, typename TAG>
00322 ACE_INLINE
00323 T_slice &
00324 TAO_Array_Forany_T<T,T_slice,TAG>::operator[] (CORBA::ULong index)
00325 {
00326 return this->ptr_[index];
00327 }
00328
00329 template<typename T, typename T_slice, typename TAG>
00330 ACE_INLINE
00331 const T_slice *
00332 TAO_Array_Forany_T<T,T_slice,TAG>::in (void) const
00333 {
00334 return this->ptr_;
00335 }
00336
00337 template<typename T, typename T_slice, typename TAG>
00338 ACE_INLINE
00339 T_slice *
00340 TAO_Array_Forany_T<T,T_slice,TAG>::inout (void)
00341 {
00342 return this->ptr_;
00343 }
00344
00345 template<typename T, typename T_slice, typename TAG>
00346 ACE_INLINE
00347 T_slice *&
00348 TAO_Array_Forany_T<T,T_slice,TAG>::out (void)
00349 {
00350 return this->ptr_;
00351 }
00352
00353 template<typename T, typename T_slice, typename TAG>
00354 ACE_INLINE
00355 T_slice *
00356 TAO_Array_Forany_T<T,T_slice,TAG>::_retn (void)
00357 {
00358 return this->ptr_;
00359 }
00360
00361 template<typename T, typename T_slice, typename TAG>
00362 ACE_INLINE
00363 CORBA::Boolean
00364 TAO_Array_Forany_T<T,T_slice,TAG>::nocopy (void) const
00365 {
00366 return this->nocopy_;
00367 }
00368
00369 template<typename T, typename T_slice, typename TAG>
00370 ACE_INLINE
00371 T_slice *
00372 TAO_Array_Forany_T<T,T_slice,TAG>::ptr (void) const
00373 {
00374 return this->ptr_;
00375 }
00376
00377 template<typename T, typename T_slice, typename TAG>
00378 ACE_INLINE
00379 T_slice *
00380 TAO_Array_Forany_T<T,T_slice,TAG>::tao_alloc (void)
00381 {
00382 return TAO::Array_Traits<FORANY>::alloc ();
00383 }
00384
00385 TAO_END_VERSIONED_NAMESPACE_DECL