diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-01-23 17:48:01 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-01-23 17:48:01 +0000 |
commit | e8ba766ad1ff311d56c44812c0226cf9e2e150ab (patch) | |
tree | 62244097a95fe224f84509f5e65090427589f708 | |
parent | f6af7acd21ac855495456cf7dd2f3efa72df2086 (diff) | |
download | ATCD-e8ba766ad1ff311d56c44812c0226cf9e2e150ab.tar.gz |
ChangeLogTag: Fri Jan 23 11:43:25 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 20 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_arg_traits.cpp | 11 | ||||
-rw-r--r-- | TAO/tao/Fixed_Array_Argument_T.cpp | 18 | ||||
-rw-r--r-- | TAO/tao/Fixed_Array_Argument_T.h | 9 | ||||
-rw-r--r-- | TAO/tao/Fixed_Array_Argument_T.inl | 32 | ||||
-rw-r--r-- | TAO/tao/Var_Array_Argument_T.cpp | 30 | ||||
-rw-r--r-- | TAO/tao/Var_Array_Argument_T.h | 15 | ||||
-rw-r--r-- | TAO/tao/Var_Array_Argument_T.inl | 42 |
8 files changed, 133 insertions, 44 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 92ebe6d08eb..b03efd93e4a 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,23 @@ +Fri Jan 23 11:43:25 2004 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/Fixed_Array_Argument_T.cpp: + * tao/Fixed_Array_Argument_T.h: + * tao/Fixed_Array_Argument_T.inl: + * tao/Var_Array_Argument_T.cpp: + * tao/Var_Array_Argument_T.h: + * tao/Var_Array_Argument_T.inl: + + Added the tag template parameter introduced in + + Thu Jan 22 16:14:49 2004 Jeff Parsons <j.parsons@vanderbilt.edu> + + to the necessary class signatures. + + * TAO_IDL/be/be_visitor_arg_traits (visit_array): + + Added code generation for the tag template parameter corresponding + to the changes listed above. + Thu Jan 22 19:37:21 2004 Jeff Parsons <j.parsons@vanderbilt.edu> * orbsvcs/IFR_Service/IFR_Service.mpc: diff --git a/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp b/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp index 92fcf72caf7..a14cd66019f 100644 --- a/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp +++ b/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp @@ -368,7 +368,16 @@ be_visitor_arg_traits::visit_array (be_array *node) *os << node->name () << "_out," << be_nl; } - *os << node->name () << "_forany" << be_uidt_nl + *os << node->name () << "_forany"; + + // The SArgument classes don't need the TAG parameter, + if (ACE_OS::strlen (this->S_) == 0) + { + *os << "," << be_nl + << node->name () << "_tag"; + } + + *os << be_uidt_nl << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl << "{" << be_nl << "};"; diff --git a/TAO/tao/Fixed_Array_Argument_T.cpp b/TAO/tao/Fixed_Array_Argument_T.cpp index 2d3405e3c9f..64cb1090356 100644 --- a/TAO/tao/Fixed_Array_Argument_T.cpp +++ b/TAO/tao/Fixed_Array_Argument_T.cpp @@ -86,13 +86,17 @@ TAO::Out_Fixed_Array_Argument_T<S,S_slice,S_forany>::interceptor_param ( // ============================================================ -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> CORBA::Boolean -TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany>::demarshal ( +TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>::demarshal ( TAO_InputCDR & cdr ) { - typedef TAO::Array_Traits<S,S_slice> ARRAY_TRAITS; + typedef TAO::Array_Traits<S,S_slice,S_tag> ARRAY_TRAITS; S_slice * tmp_ptr = 0; ACE_ALLOCATOR_RETURN (tmp_ptr, ARRAY_TRAITS::tao_alloc (), @@ -102,9 +106,13 @@ TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany>::demarshal ( return cdr >> tmp; } -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> void -TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany>:: +TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>:: interceptor_result (CORBA::Any * any) { (*any) <<= S_forany (this->x_.ptr ()); diff --git a/TAO/tao/Fixed_Array_Argument_T.h b/TAO/tao/Fixed_Array_Argument_T.h index 781d5a29f23..e6afe22871e 100644 --- a/TAO/tao/Fixed_Array_Argument_T.h +++ b/TAO/tao/Fixed_Array_Argument_T.h @@ -99,7 +99,8 @@ namespace TAO template<typename S, typename S_slice, typename S_var, - typename S_forany> + typename S_forany, + typename S_tag> class Ret_Fixed_Array_Argument_T : public Argument { public: @@ -135,7 +136,8 @@ namespace TAO template<typename T, typename T_slice, typename T_var, - typename T_forany> + typename T_forany, + typename T_tag> struct Fixed_Array_Arg_Traits_T { typedef T_slice * ret_type; @@ -155,7 +157,8 @@ namespace TAO typedef Ret_Fixed_Array_Argument_T<T, T_slice, T_var, - T_forany> ret_val; + T_forany, + T_tag> ret_val; typedef Fixed_Array_Tag idl_tag; }; diff --git a/TAO/tao/Fixed_Array_Argument_T.inl b/TAO/tao/Fixed_Array_Argument_T.inl index 6edd9a8f140..b446420b1af 100644 --- a/TAO/tao/Fixed_Array_Argument_T.inl +++ b/TAO/tao/Fixed_Array_Argument_T.inl @@ -50,32 +50,48 @@ TAO::Out_Fixed_Array_Argument_T<S,S_slice,S_forany>::arg (void) // =========================================================================== -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> ACE_INLINE -TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany>:: +TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>:: Ret_Fixed_Array_Argument_T (void) {} -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> ACE_INLINE S_slice *& -TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany>::arg (void) +TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>::arg (void) { return this->x_.out (); } -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> ACE_INLINE S_slice * -TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany>::excp (void) +TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>::excp (void) { return this->x_.ptr (); } -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> ACE_INLINE S_slice * -TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany>::retn (void) +TAO::Ret_Fixed_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>::retn (void) { return this->x_._retn (); } diff --git a/TAO/tao/Var_Array_Argument_T.cpp b/TAO/tao/Var_Array_Argument_T.cpp index 17f0aa6f6fd..46356a756e2 100644 --- a/TAO/tao/Var_Array_Argument_T.cpp +++ b/TAO/tao/Var_Array_Argument_T.cpp @@ -69,13 +69,14 @@ template<typename S, typename S_slice, typename S_var, typename S_out, - typename S_forany> + typename S_forany, + typename S_tag> CORBA::Boolean -TAO::Out_Var_Array_Argument_T<S,S_slice,S_var,S_out,S_forany>::demarshal ( +TAO::Out_Var_Array_Argument_T<S,S_slice,S_var,S_out,S_forany,S_tag>::demarshal ( TAO_InputCDR & cdr ) { - typedef TAO::Array_Traits<S,S_slice> ARRAY_TRAITS; + typedef TAO::Array_Traits<S,S_slice,S_tag> ARRAY_TRAITS; ACE_ALLOCATOR_RETURN (this->x_, ARRAY_TRAITS::tao_alloc (), 0); @@ -87,9 +88,10 @@ template<typename S, typename S_slice, typename S_var, typename S_out, - typename S_forany> + typename S_forany, + typename S_tag> void -TAO::Out_Var_Array_Argument_T<S,S_slice,S_var,S_out,S_forany>:: +TAO::Out_Var_Array_Argument_T<S,S_slice,S_var,S_out,S_forany,S_tag>:: interceptor_param (Dynamic::Parameter & p) { p.argument <<= this->x_; @@ -98,13 +100,17 @@ interceptor_param (Dynamic::Parameter & p) // ============================================================ -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> CORBA::Boolean -TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany>::demarshal ( +TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>::demarshal ( TAO_InputCDR & cdr ) { - typedef TAO::Array_Traits<S,S_slice> ARRAY_TRAITS; + typedef TAO::Array_Traits<S,S_slice,S_tag> ARRAY_TRAITS; S_slice * tmp_ptr = 0; ACE_ALLOCATOR_RETURN (tmp_ptr, ARRAY_TRAITS::tao_alloc (), @@ -114,9 +120,13 @@ TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany>::demarshal ( return cdr >> tmp; } -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> void -TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany>:: +TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>:: interceptor_result (CORBA::Any * any) { (*any) <<= S_forany (this->x_.ptr ()); diff --git a/TAO/tao/Var_Array_Argument_T.h b/TAO/tao/Var_Array_Argument_T.h index 15f29cdb45d..d489b0af7e4 100644 --- a/TAO/tao/Var_Array_Argument_T.h +++ b/TAO/tao/Var_Array_Argument_T.h @@ -77,7 +77,8 @@ namespace TAO typename S_slice, typename S_var, typename S_out, - typename S_forany> + typename S_forany, + typename S_tag> class Out_Var_Array_Argument_T : public Argument { public: @@ -102,7 +103,8 @@ namespace TAO template<typename S, typename S_slice, typename S_var, - typename S_forany> + typename S_forany, + typename S_tag> class Ret_Var_Array_Argument_T : public Argument { public: @@ -139,7 +141,8 @@ namespace TAO typename T_slice, typename T_var, typename T_out, - typename T_forany> + typename T_forany, + typename T_tag> struct Var_Array_Arg_Traits_T { typedef T_slice * ret_type; @@ -157,11 +160,13 @@ namespace TAO T_slice, T_var, T_out, - T_forany> out_arg_val; + T_forany, + T_tag> out_arg_val; typedef Ret_Var_Array_Argument_T<T, T_slice, T_var, - T_forany> ret_val; + T_forany, + T_tag> ret_val; typedef Var_Array_Tag idl_tag; }; diff --git a/TAO/tao/Var_Array_Argument_T.inl b/TAO/tao/Var_Array_Argument_T.inl index ea5950d8fd5..7f3b034077e 100644 --- a/TAO/tao/Var_Array_Argument_T.inl +++ b/TAO/tao/Var_Array_Argument_T.inl @@ -38,9 +38,10 @@ template<typename S, typename S_slice, typename S_var, typename S_out, - typename S_forany> + typename S_forany, + typename S_tag> ACE_INLINE -TAO::Out_Var_Array_Argument_T<S,S_slice,S_var,S_out,S_forany>:: +TAO::Out_Var_Array_Argument_T<S,S_slice,S_var,S_out,S_forany,S_tag>:: Out_Var_Array_Argument_T (S_out x) : x_ (x.ptr ()) { @@ -50,42 +51,59 @@ template<typename S, typename S_slice, typename S_var, typename S_out, - typename S_forany> + typename S_forany, + typename S_tag> ACE_INLINE S_slice *& -TAO::Out_Var_Array_Argument_T<S,S_slice,S_var,S_out,S_forany>::arg (void) +TAO::Out_Var_Array_Argument_T<S,S_slice,S_var,S_out,S_forany,S_tag>::arg (void) { return this->x_; } // ========================================================================== -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> ACE_INLINE -TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany>:: +TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>:: Ret_Var_Array_Argument_T (void) {} -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> ACE_INLINE S_slice *& -TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany>::arg (void) +TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>::arg (void) { return this->x_.out (); } -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> ACE_INLINE S_slice * -TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany>::excp (void) +TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>::excp (void) { return this->x_.ptr (); } -template<typename S, typename S_slice, typename S_var, typename S_forany> +template<typename S, + typename S_slice, + typename S_var, + typename S_forany, + typename S_tag> ACE_INLINE S_slice * -TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany>::retn (void) +TAO::Ret_Var_Array_Argument_T<S,S_slice,S_var,S_forany,S_tag>::retn (void) { return this->x_._retn (); } |