diff options
Diffstat (limited to 'TAO/tao/Array_VarOut_T.h')
-rw-r--r-- | TAO/tao/Array_VarOut_T.h | 99 |
1 files changed, 60 insertions, 39 deletions
diff --git a/TAO/tao/Array_VarOut_T.h b/TAO/tao/Array_VarOut_T.h index d9efb3f754e..dd711969e5a 100644 --- a/TAO/tao/Array_VarOut_T.h +++ b/TAO/tao/Array_VarOut_T.h @@ -20,31 +20,50 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +namespace TAO +{ + /** + * struct Array_Traits + * + * @brief Specialized for each array in generated code. + * + */ + template<typename T, typename T_slice> + struct Array_Traits + { + static T_slice * tao_alloc (void); + static void tao_free (T_slice * _tao_slice); + static T_slice * tao_dup (const T_slice * _tao_slice); + static void tao_copy (T_slice * _tao_to, + const T_slice * _tao_from); + }; +}; + /** * @class TAO_Array_Var_Base_T * * @brief Parametrized implementation of _var base class for arrays. * */ -template<typename T_slice, typename T_life> +template<typename T, typename T_slice, typename T_life> class TAO_Array_Var_Base_T { public: TAO_Array_Var_Base_T (void); TAO_Array_Var_Base_T (T_slice *); - TAO_Array_Var_Base_T (const TAO_Array_Var_Base_T<T_slice,T_life> &); + TAO_Array_Var_Base_T (const TAO_Array_Var_Base_T<T,T_slice,T_life> &); ~TAO_Array_Var_Base_T (void); - + T_slice & operator[] (CORBA::ULong index); T_slice const & operator[] (CORBA::ULong index) const; - operator T_slice * const & () const; - + operator T_slice * const & () const; + typedef const T_slice * _in_type; typedef T_slice * _inout_type; typedef T_slice *& _out_type; typedef T_slice * _retn_type; - // in, inout, out, _retn + // in, inout, out, _retn _in_type in (void) const; _inout_type inout (void); _out_type out (void); @@ -64,17 +83,17 @@ protected: * elements of fixed size. * */ -template<typename T_slice, typename T_life> -class TAO_FixedArray_Var_T: public TAO_Array_Var_Base_T<T_slice,T_life> +template<typename T, typename T_slice, typename T_life> +class TAO_FixedArray_Var_T: public TAO_Array_Var_Base_T<T,T_slice,T_life> { public: TAO_FixedArray_Var_T (void); TAO_FixedArray_Var_T (T_slice *); - TAO_FixedArray_Var_T (const TAO_FixedArray_Var_T<T_slice,T_life> &); - - TAO_FixedArray_Var_T<T_slice,T_life> &operator= (T_slice *); - TAO_FixedArray_Var_T<T_slice,T_life> &operator= ( - const TAO_FixedArray_Var_T<T_slice,T_life> & + TAO_FixedArray_Var_T (const TAO_FixedArray_Var_T<T,T_slice,T_life> &); + + TAO_FixedArray_Var_T<T,T_slice,T_life> &operator= (T_slice *); + TAO_FixedArray_Var_T<T,T_slice,T_life> &operator= ( + const TAO_FixedArray_Var_T<T,T_slice,T_life> & ); }; @@ -85,19 +104,19 @@ public: * elements of variable size. * */ -template<typename T_slice, typename T_life> -class TAO_VarArray_Var_T : public TAO_Array_Var_Base_T<T_slice,T_life> +template<typename T, typename T_slice, typename T_life> +class TAO_VarArray_Var_T : public TAO_Array_Var_Base_T<T,T_slice,T_life> { public: TAO_VarArray_Var_T (void); TAO_VarArray_Var_T (T_slice *); - TAO_VarArray_Var_T (const TAO_VarArray_Var_T<T_slice,T_life> &); - - TAO_VarArray_Var_T<T_slice,T_life> &operator= (T_slice *); - TAO_VarArray_Var_T<T_slice,T_life> &operator= ( - const TAO_VarArray_Var_T<T_slice,T_life> & + TAO_VarArray_Var_T (const TAO_VarArray_Var_T<T,T_slice,T_life> &); + + TAO_VarArray_Var_T<T,T_slice,T_life> &operator= (T_slice *); + TAO_VarArray_Var_T<T,T_slice,T_life> &operator= ( + const TAO_VarArray_Var_T<T,T_slice,T_life> & ); - + operator T_slice *& (); }; @@ -107,26 +126,26 @@ public: * @brief Parametrized implementation of _out class for arrays. * */ -template<typename T_var, typename T_slice, typename T_life> +template<typename T, typename T_var, typename T_slice, typename T_life> class TAO_Array_Out_T { public: TAO_Array_Out_T (T_slice *&); TAO_Array_Out_T (T_var &); - TAO_Array_Out_T (const TAO_Array_Out_T<T_var,T_slice,T_life> &); - - TAO_Array_Out_T<T_var,T_slice,T_life> &operator= ( - const TAO_Array_Out_T<T_var,T_slice,T_life> & + TAO_Array_Out_T (const TAO_Array_Out_T<T,T_var,T_slice,T_life> &); + + TAO_Array_Out_T<T,T_var,T_slice,T_life> &operator= ( + const TAO_Array_Out_T<T,T_var,T_slice,T_life> & ); - TAO_Array_Out_T<T_var,T_slice,T_life> &operator= (T_slice *); - + TAO_Array_Out_T<T,T_var,T_slice,T_life> &operator= (T_slice *); + operator T_slice *& (); T_slice *& ptr (void); - + T_slice & operator[] (CORBA::ULong index); const T_slice & operator[] (CORBA::ULong index) const; private: - typedef TAO_Array_Out_T<T_var,T_slice,T_life> THIS_OUT_TYPE; + typedef TAO_Array_Out_T<T,T_var,T_slice,T_life> THIS_OUT_TYPE; T_slice *& ptr_; // Assignment from T_var not allowed. void operator= (const T_var &); @@ -138,28 +157,30 @@ private: * @brief Parametrized implementation of _forany class for arrays. * */ -template<typename T_slice, typename T_life> +template<typename T, typename T_slice, typename T_life> class TAO_Array_Forany_T { public: TAO_Array_Forany_T (void); TAO_Array_Forany_T (T_slice *, CORBA::Boolean nocopy = 0); - TAO_Array_Forany_T (const TAO_Array_Forany_T<T_slice,T_life> &); + TAO_Array_Forany_T (const TAO_Array_Forany_T<T,T_slice,T_life> &); ~TAO_Array_Forany_T (void); - + static void _tao_any_destructor (void *); - + TAO_Array_Forany_T & operator= (T_slice *); - TAO_Array_Forany_T & operator= (const TAO_Array_Forany_T<T_slice,T_life> &); - + TAO_Array_Forany_T & operator= ( + const TAO_Array_Forany_T<T,T_slice,T_life> & + ); + T_slice & operator[] (CORBA::ULong index); const T_slice & operator[] (CORBA::ULong index) const; - + operator T_slice * const & () const; operator T_slice *& (); - - // in, inout, out, _retn + + // in, inout, out, _retn const T_slice * in (void) const; T_slice * inout (void); T_slice * &out (void); |