summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-01-23 17:48:01 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-01-23 17:48:01 +0000
commite8ba766ad1ff311d56c44812c0226cf9e2e150ab (patch)
tree62244097a95fe224f84509f5e65090427589f708
parentf6af7acd21ac855495456cf7dd2f3efa72df2086 (diff)
downloadATCD-e8ba766ad1ff311d56c44812c0226cf9e2e150ab.tar.gz
ChangeLogTag: Fri Jan 23 11:43:25 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog20
-rw-r--r--TAO/TAO_IDL/be/be_visitor_arg_traits.cpp11
-rw-r--r--TAO/tao/Fixed_Array_Argument_T.cpp18
-rw-r--r--TAO/tao/Fixed_Array_Argument_T.h9
-rw-r--r--TAO/tao/Fixed_Array_Argument_T.inl32
-rw-r--r--TAO/tao/Var_Array_Argument_T.cpp30
-rw-r--r--TAO/tao/Var_Array_Argument_T.h15
-rw-r--r--TAO/tao/Var_Array_Argument_T.inl42
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 ();
}