summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-05-03 21:49:16 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-05-03 21:49:16 +0000
commit5e012fb3e0cb3b803e3a5f1dd4712ccf236bf35d (patch)
treeeb050f902710168fc6ebe23f8106d124ea3f9905
parentd9b71f3d08df2ac3627b75ac82d56584d05ab223 (diff)
downloadATCD-5e012fb3e0cb3b803e3a5f1dd4712ccf236bf35d.tar.gz
ChangeLogTag: Mon May 3 21:39:09 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--modules/TAO/ChangeLog51
-rw-r--r--modules/TAO/TAO_IDL/be/be_codegen.cpp6
-rw-r--r--modules/TAO/TAO_IDL/be/be_sequence.cpp11
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp20
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp45
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp4
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp14
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp5
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp26
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp16
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp107
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp133
-rw-r--r--modules/TAO/tao/AnyTypeCode/Any.cpp2
-rw-r--r--modules/TAO/tao/Fixed_Size_Argument_T.h2
-rw-r--r--modules/TAO/tao/PortableServer/Vector_SArgument_T.cpp11
-rw-r--r--modules/TAO/tao/PortableServer/Vector_SArgument_T.h9
-rw-r--r--modules/TAO/tao/PortableServer/Vector_SArgument_T.inl8
-rw-r--r--modules/TAO/tao/Vector_Argument_T.h4
-rw-r--r--modules/TAO/tao/Vector_Argument_T.inl2
-rw-r--r--modules/TAO/tests/Alt_Mapping/README77
-rw-r--r--modules/TAO/tests/Alt_Mapping/alt_mapping.idl30
-rw-r--r--modules/TAO/tests/Alt_Mapping/alt_mapping.mpc70
-rw-r--r--modules/TAO/tests/Alt_Mapping/alt_mapping_i.cpp63
-rw-r--r--modules/TAO/tests/Alt_Mapping/alt_mapping_i.h45
-rw-r--r--modules/TAO/tests/Alt_Mapping/client.cpp152
-rw-r--r--modules/TAO/tests/Alt_Mapping/client.h74
-rw-r--r--modules/TAO/tests/Alt_Mapping/driver.cpp171
-rw-r--r--modules/TAO/tests/Alt_Mapping/driver.h52
-rw-r--r--modules/TAO/tests/Alt_Mapping/helper.cpp112
-rw-r--r--modules/TAO/tests/Alt_Mapping/helper.h47
-rw-r--r--modules/TAO/tests/Alt_Mapping/options.cpp176
-rw-r--r--modules/TAO/tests/Alt_Mapping/options.h101
-rw-r--r--modules/TAO/tests/Alt_Mapping/results.cpp149
-rw-r--r--modules/TAO/tests/Alt_Mapping/results.h88
-rwxr-xr-xmodules/TAO/tests/Alt_Mapping/run_test.pl119
-rw-r--r--modules/TAO/tests/Alt_Mapping/server.cpp155
-rw-r--r--modules/TAO/tests/Alt_Mapping/tests.h22
-rw-r--r--modules/TAO/tests/Alt_Mapping/ub_string.cpp124
-rw-r--r--modules/TAO/tests/Alt_Mapping/ub_string.h67
-rw-r--r--modules/TAO/tests/Alt_Mapping/ub_struct_seq.cpp183
-rw-r--r--modules/TAO/tests/Alt_Mapping/ub_struct_seq.h75
-rw-r--r--modules/TAO/tests/Param_Test/param_testC.cpp3995
-rw-r--r--modules/TAO/tests/Param_Test/param_testC.h155
-rw-r--r--modules/TAO/tests/Param_Test/param_testS.cpp2
44 files changed, 4568 insertions, 2212 deletions
diff --git a/modules/TAO/ChangeLog b/modules/TAO/ChangeLog
index bd47898e6cf..c17ac015617 100644
--- a/modules/TAO/ChangeLog
+++ b/modules/TAO/ChangeLog
@@ -1,3 +1,54 @@
+Mon May 3 21:39:09 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/Alt_Mapping/driver.h:
+ * tests/Alt_Mapping/options.h:
+ * tests/Alt_Mapping/ub_string.h:
+ * tests/Alt_Mapping/results.cpp:
+ * tests/Alt_Mapping/alt_mapping_i.cpp:
+ * tests/Alt_Mapping/server.cpp:
+ * tests/Alt_Mapping/results.h:
+ * tests/Alt_Mapping/tests.h:
+ * tests/Alt_Mapping/alt_mapping_i.h:
+ * tests/Alt_Mapping/README:
+ * tests/Alt_Mapping/client.cpp:
+ * tests/Alt_Mapping/helper.cpp:
+ * tests/Alt_Mapping/alt_mapping.idl:
+ * tests/Alt_Mapping/ub_struct_seq.cpp:
+ * tests/Alt_Mapping/client.h:
+ * tests/Alt_Mapping/helper.h:
+ * tests/Alt_Mapping/ub_struct_seq.h:
+ * tests/Alt_Mapping/alt_mapping.mpc:
+ * tests/Alt_Mapping/options.cpp:
+ * tests/Alt_Mapping/driver.cpp:
+ * tests/Alt_Mapping/run_test.pl:
+ * tests/Alt_Mapping/ub_string.cpp:
+
+ New test for alternate C++ mapping support.
+ Currently supports unbounded strings and
+ tests unbounded sequence of simple structs.
+
+ * TAO_IDL/be/be_visitor_arg_traits.cpp:
+ * TAO_IDL/be/be_visitor_argument/arglist.cpp:
+ * TAO_IDL/be/be_visitor_operation/arglist.cpp:
+ * TAO_IDL/be/be_visitor_operation/rettype.cpp:
+ * TAO_IDL/be/be_visitor_operation/operation.cpp:
+ * TAO_IDL/be/be_visitor_operation/operation_ss.cpp:
+ * TAO_IDL/be/be_codegen.cpp:
+ * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp:
+ * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp:
+ * TAO_IDL/be/be_sequence.cpp:
+ * tao/Vector_Argument_T.inl:
+ * tao/AnyTypeCode/Any.cpp:
+ * tao/PortableServer/Vector_SArgument_T.inl:
+ * tao/PortableServer/Vector_SArgument_T.cpp:
+ * tao/PortableServer/Vector_SArgument_T.h:
+ * tao/Vector_Argument_T.h:
+ * tao/Fixed_Size_Argument_T.h:
+
+ More tweaks to fully automate the generation of
+ correct code for the alternate C++ mapping.
+
Mon Apr 12 19:30:47 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
* TAO_IDL/be/be_codegen.cpp:
diff --git a/modules/TAO/TAO_IDL/be/be_codegen.cpp b/modules/TAO/TAO_IDL/be/be_codegen.cpp
index d8fbb7daeae..022dfcffa65 100644
--- a/modules/TAO/TAO_IDL/be/be_codegen.cpp
+++ b/modules/TAO/TAO_IDL/be/be_codegen.cpp
@@ -2889,6 +2889,12 @@ TAO_CodeGen::gen_skel_arg_file_includes (TAO_OutStream * stream)
);
this->gen_cond_file_include (
+ idl_global->seq_seen_ && be_global->alt_mapping (),
+ "tao/PortableServer/Vector_SArgument_T.h",
+ stream
+ );
+
+ this->gen_cond_file_include (
idl_global->any_arg_seen_,
"tao/PortableServer/Any_SArg_Traits.h",
stream
diff --git a/modules/TAO/TAO_IDL/be/be_sequence.cpp b/modules/TAO/TAO_IDL/be/be_sequence.cpp
index bb0d944fc18..c7762428dea 100644
--- a/modules/TAO/TAO_IDL/be/be_sequence.cpp
+++ b/modules/TAO/TAO_IDL/be/be_sequence.cpp
@@ -25,9 +25,10 @@
#include "be_interface_fwd.h"
#include "be_predefined_type.h"
#include "be_field.h"
+#include "be_string.h"
#include "be_visitor.h"
#include "be_helper.h"
-#include "be_string.h"
+#include "be_extern.h"
#include "utl_identifier.h"
#include "idl_defines.h"
@@ -576,6 +577,14 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
AST_Decl *ctx_scope)
{
be_type *elem = be_type::narrow_from_decl (this->base_type ());
+
+ if (be_global->alt_mapping () && this->unbounded ())
+ {
+ *os << "std::vector<" << elem->nested_type_name (ctx_scope)
+ << ">";
+
+ return 0;
+ }
// Generate the appropriate base class type.
switch (this->managed_type ())
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp b/modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp
index 57f8ada35bb..d67f71e24a1 100644
--- a/modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp
+++ b/modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp
@@ -629,25 +629,19 @@ be_visitor_arg_traits::visit_sequence (be_sequence *node)
guard_suffix.c_str (),
false);
- bool bounded = (node->max_size ()->ev ()->u.ulval != 0);
- UTL_ScopedName *sn =
- (bounded ? alias->name () : bt->name ());
+ bool use_vec = (node->unbounded () && be_global->alt_mapping ());
+ UTL_ScopedName *sn = alias->name ();
*os << be_nl << be_nl
<< "template<>" << be_nl
- << "class "
- << this->S_ << "Arg_Traits<"
- << (bounded ? "" : "std::vector<") << sn
- << (bounded ? "" : "> ") << ">" << be_idt_nl
+ << "class " << this->S_ << "Arg_Traits<" << sn << ">"
+ << be_idt_nl
<< ": public" << be_idt << be_idt_nl
- << (bounded ? "Var_Size_" : "Vector_")
+ << (use_vec ? "Vector_" : "Var_Size_")
<< this->S_ << "Arg_Traits_T<"
<< be_idt << be_idt_nl
- << (bounded ? "" : "std::vector<") << sn
- << (bounded ? "" : ">") << "," << be_nl
- << this->insert_policy () << "<"
- << (bounded ? "" : "std::vector<") << sn
- << (bounded ? "" : "> ") << ">" << be_uidt_nl
+ << sn << "," << be_nl
+ << this->insert_policy () << "<" << sn << ">" << be_uidt_nl
<< ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
<< "{" << be_nl
<< "};";
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp b/modules/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
index a4a00079b23..ad51b6816de 100644
--- a/modules/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
+++ b/modules/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
@@ -297,44 +297,25 @@ int be_visitor_args_arglist::visit_sequence (be_sequence *node)
TAO_OutStream *os = this->ctx_->stream ();
- if (be_global->alt_mapping ())
+ switch (this->direction ())
{
- /// Temporarily remove and store the context's 'alias'
- /// member, if any, so we can work with the sequence's
- /// element type, and restore the alias value when we're done.
- be_typedef *td = this->ctx_->alias ();
- this->ctx_->alias (0);
-
- const char *elem_name =
- this->type_name (node->base_type ());
-
- switch (this->direction ())
+ case AST_Argument::dir_IN:
+ *os << "const " << this->type_name (node) << " &";
+ break;
+ case AST_Argument::dir_INOUT:
+ *os << this->type_name (node) << " &";
+ break;
+ case AST_Argument::dir_OUT:
+ if (be_global->alt_mapping () && node->unbounded ())
{
- case AST_Argument::dir_IN:
- *os << "const std::vector<" << elem_name << "> &";
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << "std::vector<" << elem_name << "> &";
- break;
+ *os << this->type_name (node) << " &";
}
-
- this->ctx_->alias (td);
- }
- else
- {
- switch (this->direction ())
+ else
{
- case AST_Argument::dir_IN:
- *os << "const " << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_OUT:
*os << this->type_name (node, "_out");
- break;
}
+
+ break;
}
return 0;
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp b/modules/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp
index b692a14bb75..9ed77596b7c 100644
--- a/modules/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp
+++ b/modules/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp
@@ -18,10 +18,6 @@
//
// ============================================================================
-ACE_RCSID (be_visitor_operation,
- arglist,
- "$Id$")
-
// ************************************************************
// operation visitor to generate the argument list.
// We have separated code generation for this from the 4 main
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp b/modules/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp
index 99cef948b27..3f8a99a4cd0 100644
--- a/modules/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp
+++ b/modules/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp
@@ -449,20 +449,6 @@ be_visitor_operation::gen_arg_template_param_name (AST_Decl *scope,
if (bt->node_type () == AST_Decl::NT_typedef)
{
alias = AST_Typedef::narrow_from_decl (bt);
-
- AST_Type *pbt = alias->primitive_base_type ();
-
- if (pbt->node_type () == AST_Decl::NT_sequence)
- {
- AST_Sequence *seq =
- AST_Sequence::narrow_from_decl (pbt);
-
- AST_Type *elem_type = seq->base_type ();
-
- *os << "std::vector<" << elem_type->name () << ">";
-
- return;
- }
}
AST_Decl::NodeType nt = bt->unaliased_type ()->node_type ();
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp b/modules/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp
index 5b0fe601a71..1b713477c42 100644
--- a/modules/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp
+++ b/modules/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp
@@ -18,11 +18,6 @@
//
// ============================================================================
-
-ACE_RCSID (be_visitor_operation,
- operation_ss,
- "$Id$")
-
// ************************************************************
// Operation visitor for server skeletons
// ************************************************************
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp b/modules/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp
index 17c5fbd0784..fdf0eca1c3c 100644
--- a/modules/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp
+++ b/modules/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp
@@ -18,11 +18,6 @@
//
// ============================================================================
-ACE_RCSID (be_visitor_operation,
- rettype,
- "$Id$")
-
-
// ****************************************************************************
// Operation visitor for return types. This generates the mapping for a return
// type in an operation signature
@@ -136,24 +131,11 @@ be_visitor_operation_rettype::visit_predefined_type (be_predefined_type *node)
int
be_visitor_operation_rettype::visit_sequence (be_sequence *node)
{
- // We should never directly be here because anonymous
- // sequence return types are not allowed.
- if (be_global->alt_mapping ())
- {
- /// Temporarily remove and store the context's 'alias'
- /// member, if any, so we can work with the sequence's
- /// element type, and restore the alias value when we're done.
- be_typedef *td = this->ctx_->alias ();
- this->ctx_->alias (0);
-
- *os << "std::vector<" << this->type_name (node->base_type ())
- << ">";
-
- this->ctx_->alias (td);
- }
- else
+ *os << "::" << this->type_name (node);
+
+ if (!be_global->alt_mapping () || !node->unbounded ())
{
- *os << "::" << this->type_name (node) << " *";
+ *os << " *";
}
return 0;
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp b/modules/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
index 2fc8d0f42ce..28b175540b6 100644
--- a/modules/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
+++ b/modules/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
@@ -111,8 +111,8 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node)
{
*os << "::CORBA::Boolean operator<< (" << be_idt_nl
<< "TAO_OutputCDR &strm," << be_nl
- << "const std:;vector<" << bt->full_name ()
- << " &_tao_vector)"
+ << "const std::vector<" << bt->full_name ()
+ << "> &_tao_vector)"
<< be_uidt_nl
<< "{" << be_idt_nl
<< "::CORBA::ULong length = _tao_vector.size ();"
@@ -121,10 +121,10 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node)
<< "for ( ::CORBA::ULong i = 0UL; i < length; ++i)"
<< be_idt_nl
<< "{" << be_idt_nl
- << "if (! strm << _tao_vector[i]" << be_idt_nl
+ << "if (! (strm << _tao_vector[i]))" << be_idt_nl
<< "{" << be_idt_nl
<< "return false;" << be_uidt_nl
- << "}" << be_uidt_nl
+ << "}" << be_uidt << be_uidt_nl
<< "}" << be_uidt_nl << be_nl
<< "return true;" << be_uidt_nl
<< "}" << be_nl << be_nl;
@@ -151,7 +151,7 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node)
*os << "::CORBA::Boolean operator>> (" << be_idt_nl
<< "TAO_InputCDR &strm," << be_nl
<< "std::vector<" << bt->full_name ()
- << " &_tao_vector)" << be_uidt_nl
+ << "> &_tao_vector)" << be_uidt_nl
<< "{" << be_idt_nl
<< "::CORBA::ULong length = 0UL;" << be_nl
<< bt->full_name ();
@@ -162,10 +162,14 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node)
}
*os << " tmp;" << be_nl << be_nl
+ << "if (! (strm >> length))" << be_idt_nl
+ << "{" << be_idt_nl
+ << "return false;" << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl
<< "for ( ::CORBA::ULong i = 0UL; i < length; ++i)"
<< be_idt_nl
<< "{" << be_idt_nl
- << "if (! strm >> tmp)" << be_idt_nl
+ << "if (! (strm >> tmp))" << be_idt_nl
<< "{" << be_idt_nl
<< "return false;" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp b/modules/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
index 48460d80859..a5c95838a3a 100644
--- a/modules/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
+++ b/modules/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
@@ -109,16 +109,21 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
os->gen_ifdef_macro (node->flat_name ());
- if (this->ctx_->tdef () != 0)
+ /// If we are using std::vector, we won't be using _vars
+ /// and _outs. They may get redefined and reinstated later.
+ if (!be_global->alt_mapping () || !node->unbounded ())
{
- *os << be_nl << be_nl
- << "class " << node->local_name () << ";";
- }
+ if (this->ctx_->tdef () != 0)
+ {
+ *os << be_nl << be_nl
+ << "class " << node->local_name () << ";";
+ }
- if (this->ctx_->tdef () != 0)
- {
- this->gen_varout_typedefs (node,
- bt);
+ if (this->ctx_->tdef () != 0)
+ {
+ this->gen_varout_typedefs (node,
+ bt);
+ }
}
*os << be_nl << be_nl
@@ -150,51 +155,73 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
<< node->local_name () << " ( ::CORBA::ULong max);";
}
- *os << be_nl
- << node->local_name () << " (" << be_idt;
-
- if (node->unbounded ())
+ /// If we are using std::vector, we can't implement this
+ /// constructor.
+ if (!be_global->alt_mapping () || !node->unbounded ())
{
*os << be_nl
- << "::CORBA::ULong max,";
- }
+ << node->local_name () << " (" << be_idt;
- *os << be_nl
- << "::CORBA::ULong length," << be_nl;
+ if (node->unbounded ())
+ {
+ *os << be_nl
+ << "::CORBA::ULong max,";
+ }
- // Generate the base type for the buffer.
- be_visitor_context ctx (*this->ctx_);
- ctx.state (TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CH);
- be_visitor_sequence_buffer_type bt_visitor (&ctx);
+ *os << be_nl
+ << "::CORBA::ULong length," << be_nl;
- if (bt->accept (&bt_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "base type visit failed\n"),
- -1);
- }
+ // Generate the base type for the buffer.
+ be_visitor_context ctx (*this->ctx_);
+ ctx.state (TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CH);
+ be_visitor_sequence_buffer_type bt_visitor (&ctx);
+
+ if (bt->accept (&bt_visitor) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_sequence_ch::"
+ "visit_sequence - "
+ "buffer type visit failed\n"),
+ -1);
+ }
- *os << "* buffer, " << be_nl
- << "::CORBA::Boolean release = false);" << be_uidt_nl;
- *os << node->local_name () << " (const " << node->local_name ()
+ *os << "* buffer, " << be_nl
+ << "::CORBA::Boolean release = false);" << be_uidt;
+ }
+
+ *os << be_nl
+ << node->local_name () << " (const " << node->local_name ()
<< " &);" << be_nl;
*os << "virtual ~" << node->local_name () << " (void);";
+ if (be_global->alt_mapping () && node->unbounded ())
+ {
+ *os << be_nl << be_nl
+ << "virtual ::CORBA::ULong length (void) const;"
+ << be_nl
+ << "virtual void length ( ::CORBA::ULong);"
+ << be_nl << be_nl
+ << "virtual ::CORBA::ULong maximum (void) const;";
+ }
+
if (be_global->any_support () && !node->anonymous ())
{
*os << be_nl << be_nl
<< "static void _tao_any_destructor (void *);";
}
- // Generate the _var_type typedef (only if we are not anonymous).
- if (this->ctx_->tdef () != 0)
+ /// If we are using std::vector, we can't implement this
+ /// constructor.
+ if (!be_global->alt_mapping () || !node->unbounded ())
{
- *os << be_nl << be_nl
- << "typedef " << node->local_name () << "_var _var_type;"
- << be_nl
- << "typedef " << node->local_name () << "_out _out_type;";
+ // Generate the _var_type typedef (only if we are not anonymous).
+ if (this->ctx_->tdef () != 0)
+ {
+ *os << be_nl << be_nl
+ << "typedef " << node->local_name () << "_var _var_type;"
+ << be_nl
+ << "typedef " << node->local_name () << "_out _out_type;";
+ }
}
// TAO provides extensions for octet sequences, first find out if
@@ -220,8 +247,10 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
}
// Now generate the extension...
- if (predef != 0 && predef->pt () == AST_PredefinedType::PT_octet
- && node->unbounded ())
+ if (predef != 0
+ && predef->pt () == AST_PredefinedType::PT_octet
+ && node->unbounded ()
+ && !be_global->alt_mapping ())
{
*os << be_nl << be_nl
<< "\n\n#if (TAO_NO_COPY_OCTET_SEQUENCES == 1)" << be_nl
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp b/modules/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp
index c96fb72bab1..e1eba02246b 100644
--- a/modules/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp
+++ b/modules/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp
@@ -76,9 +76,8 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
{
*os << be_nl << be_nl
<< node->name () << "::" << node->local_name () << " ("
- << be_idt << be_idt_nl
- << "::CORBA::ULong max" << be_uidt_nl
- << ")" << be_nl
+ << be_idt << be_idt << be_idt_nl
+ << "::CORBA::ULong max)" << be_uidt << be_uidt_nl
<< ": " << be_idt;
// Pass it to the base constructor.
@@ -92,69 +91,73 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
}
- *os << be_nl << "(max)" << be_uidt << be_uidt_nl
+ *os << " (max)" << be_uidt << be_uidt_nl
<< "{}";
}
- // constructor with the buffer
- *os << be_nl << be_nl
- << node->name () << "::" << node->local_name () << " ("
- << be_idt << be_idt_nl;
-
- if (node->unbounded ())
+ /// If we are using std::vector, we can't implement this
+ /// constructor.
+ if (!be_global->alt_mapping () || !node->unbounded ())
{
- // Unbounded seq takes this extra parameter.
- *os << "::CORBA::ULong max," << be_nl;
- }
+ // constructor with the buffer
+ *os << be_nl << be_nl
+ << node->name () << "::" << node->local_name () << " ("
+ << be_idt << be_idt_nl;
- *os << "::CORBA::ULong length," << be_nl;
+ if (node->unbounded ())
+ {
+ // Unbounded seq takes this extra parameter.
+ *os << "::CORBA::ULong max," << be_nl;
+ }
- // generate the base type for the buffer
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_buffer_type bt_visitor (&ctx);
+ *os << "::CORBA::ULong length," << be_nl;
- if (bt->accept (&bt_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "base type visit failed\n"),
- -1);
- }
+ // generate the base type for the buffer
+ be_visitor_context ctx (*this->ctx_);
+ be_visitor_sequence_buffer_type bt_visitor (&ctx);
- *os << " * buffer," << be_nl
- << "::CORBA::Boolean release" << be_uidt_nl
- << ")" << be_uidt_nl
- << " : " << be_idt << be_idt;
+ if (bt->accept (&bt_visitor) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_sequence_cs::"
+ "visit_sequence - "
+ "base type visit failed\n"),
+ -1);
+ }
- // Pass it to the base constructor.
- if (node->gen_base_class_name (os, "", this->ctx_->scope ()) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "codegen for base sequence class\n"),
- -1);
- }
+ *os << " * buffer," << be_nl
+ << "::CORBA::Boolean release" << be_uidt_nl
+ << ")" << be_uidt_nl
+ << " : " << be_idt << be_idt;
- *os << be_nl << "(";
+ // Pass it to the base constructor.
+ if (node->gen_base_class_name (os, "", this->ctx_->scope ()) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_sequence_cs::"
+ "visit_sequence - "
+ "codegen for base sequence class\n"),
+ -1);
+ }
- if (node->unbounded ())
- {
- *os << "max, ";
- }
+ *os << be_nl << "(";
- *os << "length, buffer, release)" << be_uidt << be_uidt_nl
- << "{}";
+ if (node->unbounded ())
+ {
+ *os << "max, ";
+ }
+
+ *os << "length, buffer, release)" << be_uidt << be_uidt_nl
+ << "{}";
+ }
// Copy constructor.
*os << be_nl << be_nl
<< node->name () << "::" << node->local_name ()
- << " (" << be_idt << be_idt_nl
+ << " (" << be_idt << be_idt << be_idt_nl
<< "const " << node->local_name ()
- << " &seq" << be_uidt_nl
- << ")" << be_uidt_nl
- << " : " << be_idt << be_idt;
+ << " &seq)" << be_uidt << be_uidt_nl
+ << ": " << be_idt;
// Pass it to the base constructor.
if (node->gen_base_class_name (os, "", this->ctx_->scope ()) == -1)
@@ -166,7 +169,7 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
-1);
}
- *os << be_nl << "(seq)" << be_uidt << be_uidt_nl
+ *os << " (seq)" << be_uidt << be_uidt_nl
<< "{}";
// Destructor.
@@ -175,14 +178,38 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
<< " (void)" << be_nl
<< "{}";
+ if (be_global->alt_mapping () && node->unbounded ())
+ {
+ *os << be_nl << be_nl
+ << "::CORBA::ULong" << be_nl
+ << node->name () << "::length (void) const" << be_nl
+ << "{" << be_idt_nl
+ << "return this->size ();" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
+ << "void" << be_nl
+ << node->name () << "::length ( ::CORBA::ULong length)"
+ << be_nl
+ << "{" << be_idt_nl
+ << "this->reserve (length);" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
+ << "::CORBA::ULong" << be_nl
+ << node->name () << "::maximum (void) const" << be_nl
+ << "{" << be_idt_nl
+ << "return this->capacity ();" << be_uidt_nl
+ << "}";
+ }
if (be_global->any_support () && !node->anonymous ())
{
*os << be_nl << be_nl
<< "void "
- << node->name () << "::_tao_any_destructor (" << be_idt << be_idt_nl
- << "void * _tao_void_pointer" << be_uidt_nl
- << ")" << be_uidt_nl
+ << node->name () << "::_tao_any_destructor ("
+ << be_idt_nl
+ << "void * _tao_void_pointer)" << be_uidt_nl
<< "{" << be_idt_nl
<< node->local_name () << " * _tao_tmp_pointer =" << be_idt_nl
<< "static_cast<" << node->local_name ()
diff --git a/modules/TAO/tao/AnyTypeCode/Any.cpp b/modules/TAO/tao/AnyTypeCode/Any.cpp
index 683ecc585ab..bc967972886 100644
--- a/modules/TAO/tao/AnyTypeCode/Any.cpp
+++ b/modules/TAO/tao/AnyTypeCode/Any.cpp
@@ -517,7 +517,7 @@ operator<<= (CORBA::Any &any, const CORBA::WChar *ws)
}
ACE_INLINE void
-operator <<= (CORBA::Any &any, std::string & str)
+operator <<= (CORBA::Any &any, const std::string & str)
{
any <<= str.c_str ();
}
diff --git a/modules/TAO/tao/Fixed_Size_Argument_T.h b/modules/TAO/tao/Fixed_Size_Argument_T.h
index 21e51db5f46..2b0ae22c92d 100644
--- a/modules/TAO/tao/Fixed_Size_Argument_T.h
+++ b/modules/TAO/tao/Fixed_Size_Argument_T.h
@@ -10,7 +10,6 @@
*/
//=============================================================================
-
#ifndef TAO_FIXED_SIZE_ARGUMENT_T_H
#define TAO_FIXED_SIZE_ARGUMENT_T_H
@@ -113,7 +112,6 @@ namespace TAO
S & arg (void);
private:
-
S & x_;
};
diff --git a/modules/TAO/tao/PortableServer/Vector_SArgument_T.cpp b/modules/TAO/tao/PortableServer/Vector_SArgument_T.cpp
index 2e1aa182ce4..bcc2053fe83 100644
--- a/modules/TAO/tao/PortableServer/Vector_SArgument_T.cpp
+++ b/modules/TAO/tao/PortableServer/Vector_SArgument_T.cpp
@@ -73,10 +73,7 @@ template<typename S,
CORBA::Boolean
TAO::Out_Vector_SArgument_T<S,Insert_Policy>::marshal (TAO_OutputCDR &cdr)
{
- if (0 == this->x_.ptr())
- throw ::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE);
-
- return cdr << this->x_.in ();
+ return cdr << this->x_;
}
#if TAO_HAS_INTERCEPTORS == 1
@@ -87,7 +84,7 @@ void
TAO::Out_Vector_SArgument_T<S,Insert_Policy>::interceptor_value (
CORBA::Any *any) const
{
- Insert_Policy::any_insert (any, this->x_.in ());
+ Insert_Policy::any_insert (any, this->x_);
}
#endif /* TAO_HAS_INTERCEPTORS */
@@ -99,7 +96,7 @@ template<typename S,
CORBA::Boolean
TAO::Ret_Vector_SArgument_T<S,Insert_Policy>::marshal (TAO_OutputCDR &cdr)
{
- return cdr << this->x_.in ();
+ return cdr << this->x_;
}
#if TAO_HAS_INTERCEPTORS == 1
@@ -110,7 +107,7 @@ void
TAO::Ret_Vector_SArgument_T<S,Insert_Policy>::interceptor_value (
CORBA::Any *any) const
{
- Insert_Policy::any_insert (any, this->x_.in ());
+ Insert_Policy::any_insert (any, this->x_);
}
#endif /* TAO_HAS_INTERCEPTORS */
diff --git a/modules/TAO/tao/PortableServer/Vector_SArgument_T.h b/modules/TAO/tao/PortableServer/Vector_SArgument_T.h
index c380c623a22..cf9cabba5d3 100644
--- a/modules/TAO/tao/PortableServer/Vector_SArgument_T.h
+++ b/modules/TAO/tao/PortableServer/Vector_SArgument_T.h
@@ -36,7 +36,6 @@ namespace TAO
class In_Vector_SArgument_T : public InArgument
{
public:
-
virtual CORBA::Boolean demarshal (TAO_InputCDR &);
#if TAO_HAS_INTERCEPTORS == 1
virtual void interceptor_value (CORBA::Any *any) const;
@@ -90,10 +89,10 @@ namespace TAO
#if TAO_HAS_INTERCEPTORS == 1
virtual void interceptor_value (CORBA::Any *any) const;
#endif /* TAO_HAS_INTERCEPTORS == 1 */
- S *& arg (void);
+ S & arg (void);
private:
- typename S::_var_type x_;
+ S x_;
};
/**
@@ -114,10 +113,10 @@ namespace TAO
#if TAO_HAS_INTERCEPTORS == 1
virtual void interceptor_value (CORBA::Any *any) const;
#endif /* TAO_HAS_INTERCEPTORS == 1 */
- S *& arg (void);
+ S & arg (void);
private:
- typename S::_var_type x_;
+ S x_;
};
/**
diff --git a/modules/TAO/tao/PortableServer/Vector_SArgument_T.inl b/modules/TAO/tao/PortableServer/Vector_SArgument_T.inl
index 9ef9986f90b..0f0356302fa 100644
--- a/modules/TAO/tao/PortableServer/Vector_SArgument_T.inl
+++ b/modules/TAO/tao/PortableServer/Vector_SArgument_T.inl
@@ -40,10 +40,10 @@ TAO::Out_Vector_SArgument_T<S,Insert_Policy>::Out_Vector_SArgument_T (void)
template<typename S,
class Insert_Policy>
-S *&
+S &
TAO::Out_Vector_SArgument_T<S,Insert_Policy>::arg (void)
{
- return this->x_.out ();
+ return this->x_;
}
// ==========================================================================
@@ -58,10 +58,10 @@ TAO::Ret_Vector_SArgument_T<S,Insert_Policy>::Ret_Vector_SArgument_T (void)
template<typename S,
class Insert_Policy>
ACE_INLINE
-S *&
+S &
TAO::Ret_Vector_SArgument_T<S,Insert_Policy>::arg (void)
{
- return this->x_.out ();
+ return this->x_;
}
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/modules/TAO/tao/Vector_Argument_T.h b/modules/TAO/tao/Vector_Argument_T.h
index 65001064159..cf40240a218 100644
--- a/modules/TAO/tao/Vector_Argument_T.h
+++ b/modules/TAO/tao/Vector_Argument_T.h
@@ -137,13 +137,13 @@ namespace TAO
#if TAO_HAS_INTERCEPTORS == 1
virtual void interceptor_value (CORBA::Any *any) const;
#endif /* TAO_HAS_INTERCEPTORS == 1 */
- S arg (void);
+ S & arg (void);
S excp (void);
S retn (void);
protected:
- typename S x_;
+ S x_;
};
/**
diff --git a/modules/TAO/tao/Vector_Argument_T.inl b/modules/TAO/tao/Vector_Argument_T.inl
index 32665b63ba1..ad052d1a0db 100644
--- a/modules/TAO/tao/Vector_Argument_T.inl
+++ b/modules/TAO/tao/Vector_Argument_T.inl
@@ -80,7 +80,7 @@ TAO::Ret_Vector_Argument_T<S,Insert_Policy>::Ret_Vector_Argument_T (void)
template<typename S,
class Insert_Policy>
ACE_INLINE
-S
+S &
TAO::Ret_Vector_Argument_T<S,Insert_Policy>::arg (void)
{
return this->x_;
diff --git a/modules/TAO/tests/Alt_Mapping/README b/modules/TAO/tests/Alt_Mapping/README
new file mode 100644
index 00000000000..a1aae3b61a1
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/README
@@ -0,0 +1,77 @@
+// $Id$
+
+// ============================================================================
+// This test covers the use of std::string as an alternate C++ mapping for
+// CORBA strings, and the use of std::vector<T> as an alternate C++ mapping
+// for sequences of type T. The current version of the test uses a struct
+// containing several simple date types - more types of sequences will be
+// added in the future.
+// ============================================================================
+
+This directory contains an application that tests all the parameter
+passing conventions in CORBA for the supported OMG IDL data types.
+
+Type "make" to make the application. The server executable is called
+"server" and the client executable is called "client".
+
+You should have the TAO IDL compiler and the TAO library installed
+before using this application.
+
+The -GA options has been added the IDL compiler command line for this
+test. This option moves the generation of implementations for type
+codes and Any insertion/extraction operators to a separate file with
+the extension *A.cpp. Adding this option tests that it is handled
+correctly for all the various IDL types used in this test.
+
+To run the server, type
+
+ server [arguments to ORB_init] [-d] [-o <ior_output_file>]
+
+ arguments to ORB_init start with the letters -ORB. Please
+ see TAO documentattion on all the supported arguments
+
+ -d for debugging.
+ -o <ior_output_file> for outputting the servant IOR to a file.
+
+To run the client, type
+
+ client [arguments to ORB_init] [options for this application]
+
+ Supported options are:
+
+ [-d] debugging
+ [-n loopcount] number of times to run the test
+ [-f servant-IOR-file] reads the servant-IOR from the
+ specified file.
+ [-k Param_Test-obj-ref-key] object key of Param_Test object
+ [-i invocation (sii/dii)] default is static invocation
+ interface. To use DII, type
+ -i dii
+ [-t data type]
+ Data types supported in this version are:
+
+ ubstring for unbounded string
+ ub_struct_seq for sequences of structs
+
+
+ There are 2 options of giving the IOR to the client:
+
+ 1. Using the -f option to read the IOR from a file.
+
+ 2. Using the -k option to read the IOR from the
+ command line.
+
+run_test.pl:
+-----------
+ There is a perl script in this directory named run_test.pl to
+ test all the types. It starts the server first and then runs
+ the client with the different data type parameters. The
+ arguments it takes are:
+
+ -n num -- runs the client num times (default is 5)
+ -d -- runs each in debug mode
+ -onewin -- keeps all tests in one window on NT
+ -h -- prints this information
+ -t type -- runs only one type of param test
+ -i (dii|sii) -- Changes the type of invocation (default is sii)
+ (as of 5/3/10 DII is not yet supported)
diff --git a/modules/TAO/tests/Alt_Mapping/alt_mapping.idl b/modules/TAO/tests/Alt_Mapping/alt_mapping.idl
new file mode 100644
index 00000000000..bd70a846da0
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/alt_mapping.idl
@@ -0,0 +1,30 @@
+// $Id$
+
+interface Alt_Mapping
+{
+ string test_unbounded_string (in string s1,
+ inout string s2,
+ out string s3);
+
+ struct Fixed_Struct
+ {
+ long l;
+ char c;
+ short s;
+ octet o;
+ float f;
+ boolean b;
+ double d;
+ };
+
+
+ typedef sequence<Fixed_Struct> StructSeq;
+ StructSeq test_struct_sequence (in StructSeq s1,
+ inout StructSeq s2,
+ out StructSeq s3);
+
+ void shutdown ();
+ // Shutdown the server: this is useful to check for memory leaks,
+ // performance results and in general to verify that orderly
+ // shutdown is possible.
+};
diff --git a/modules/TAO/tests/Alt_Mapping/alt_mapping.mpc b/modules/TAO/tests/Alt_Mapping/alt_mapping.mpc
new file mode 100644
index 00000000000..302f66953ee
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/alt_mapping.mpc
@@ -0,0 +1,70 @@
+// -*- MPC -*-
+// $Id$
+
+project(*idl): taoidldefaults {
+ IDL_Files {
+ idlflags -= -Sa -St
+ idlflags += -Gstl
+ alt_mapping.idl
+ }
+ custom_only = 1
+}
+
+project(*Server): taoserver, codeset, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro {
+ after += *idl
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ alt_mappingS.cpp
+ alt_mappingC.cpp
+ alt_mapping_i.cpp
+ server.cpp
+ }
+
+ Header_Files {
+ alt_mappingS.h
+ alt_mappingC.h
+ alt_mapping_i.h
+ }
+
+ Inline_Files {
+ alt_mappingS.inl
+ alt_mappingC.inl
+ }
+}
+
+project(*Client): taoserver, codeset, avoids_minimum_corba, avoids_ace_for_tao {
+ exename = client
+ after += *idl
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ alt_mappingC.cpp
+ client.cpp
+ driver.cpp
+ helper.cpp
+ options.cpp
+ results.cpp
+ ub_string.cpp
+ ub_struct_seq.cpp
+ }
+
+ Header_Files {
+ alt_mappingC.h
+ driver.h
+ helper.h
+ options.h
+ results.h
+ ub_string.h
+ ub_struct_seq.h
+ }
+
+ Inline_Files {
+ alt_mappingC.inl
+ }
+}
+
diff --git a/modules/TAO/tests/Alt_Mapping/alt_mapping_i.cpp b/modules/TAO/tests/Alt_Mapping/alt_mapping_i.cpp
new file mode 100644
index 00000000000..f9392cbfda5
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/alt_mapping_i.cpp
@@ -0,0 +1,63 @@
+// $Id$
+
+// ============================================================================
+//
+// = FILENAME
+// alt_mapping_i.cpp
+//
+// = AUTHOR
+// Jeff Parsons
+//
+// ============================================================================
+
+#include "alt_mapping_i.h"
+
+#include "tao/debug.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_wchar.h"
+#include "ace/OS_NS_string.h"
+
+Alt_Mapping_i::Alt_Mapping_i (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+Alt_Mapping_i::~Alt_Mapping_i (void)
+{
+}
+
+// test unbounded strings. For return and out types, we return duplicates of
+// the in string. For the inout, we append the same string to itself and send
+// it back
+std::string
+Alt_Mapping_i::test_unbounded_string (const std::string s1,
+ std::string &s2,
+ std::string &s3)
+{
+ std::string retstr = s1;
+ s3 = s1;
+ s2 = s1 + s1;
+ return retstr;
+}
+
+// test for struct sequences
+Alt_Mapping::StructSeq
+Alt_Mapping_i::test_struct_sequence (
+ const Alt_Mapping::StructSeq & s1,
+ Alt_Mapping::StructSeq & s2,
+ Alt_Mapping::StructSeq & s3)
+{
+ // We copy the "in" sequences into all the inout, out and return sequences.
+
+ // now copy all elements of s1 into the others using the assignment operator
+ s2 = s1;
+ s3 = s1;
+ return s1;
+}
+
+void
+Alt_Mapping_i::shutdown (void)
+{
+ this->orb_->shutdown ();
+}
+
diff --git a/modules/TAO/tests/Alt_Mapping/alt_mapping_i.h b/modules/TAO/tests/Alt_Mapping/alt_mapping_i.h
new file mode 100644
index 00000000000..5360f329137
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/alt_mapping_i.h
@@ -0,0 +1,45 @@
+// $Id$
+
+// ============================================================================
+//
+// = FILENAME
+// alt_mapping_i.h
+//
+// = AUTHOR
+// Jeff Parsons
+//
+// ============================================================================
+
+#ifndef ALT_MAPPING_I_H
+#define ALT_MAPPING_I_H
+
+#include "alt_mappingS.h"
+
+class Alt_Mapping_i : public POA_Alt_Mapping
+{
+ // = TITLE
+ // Alt_Mapping_i
+ // = DESCRIPTION
+ // Implementation of the Alt_Mapping_i test suite.
+public:
+ Alt_Mapping_i (CORBA::ORB_ptr orb);
+
+ ~Alt_Mapping_i (void);
+
+ virtual std::string
+ test_unbounded_string (const std::string s1,
+ std::string &s2,
+ std::string &s3);
+
+ virtual Alt_Mapping::StructSeq test_struct_sequence (
+ const Alt_Mapping::StructSeq & s1,
+ Alt_Mapping::StructSeq & s2,
+ Alt_Mapping::StructSeq & s3);
+
+ void shutdown (void);
+
+private:
+ CORBA::ORB_var orb_;
+};
+
+#endif /* ALT_MAPPING_I_H */
diff --git a/modules/TAO/tests/Alt_Mapping/client.cpp b/modules/TAO/tests/Alt_Mapping/client.cpp
new file mode 100644
index 00000000000..ff7cfae34e7
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/client.cpp
@@ -0,0 +1,152 @@
+// $Id$
+
+// ============================================================================
+//
+// = FILENAME
+// client.cpp
+//
+// = DESCRIPTION
+// This file contains the implementation of the client-side of the
+// Alt_Mapping application.
+//
+// = AUTHORS
+// Jeff Parsons
+//
+// ============================================================================
+
+#ifndef CLIENT_CPP
+#define CLIENT_CPP
+
+#include "options.h"
+#include "results.h"
+#include "client.h"
+
+// Constructor.p
+template <class T>
+Alt_Mapping_Client<T>::Alt_Mapping_Client (CORBA::ORB_ptr orb,
+ Alt_Mapping_ptr objref,
+ T *t)
+ : orb_ (orb),
+ alt_mapping_test_ (objref),
+ test_object_ (t)
+{
+}
+
+// destructor
+template <class T>
+Alt_Mapping_Client<T>::~Alt_Mapping_Client (void)
+{
+ delete this->test_object_;
+}
+
+// All the individual tests.
+template <class T> int
+Alt_Mapping_Client<T>::run_sii_test (void)
+{
+ CORBA::ULong i = 0; // loop index
+ Options *opt = OPTIONS::instance (); // get the options
+ const char *opname = this->test_object_->opname (); // operation
+
+ if (opt->debug ())
+ ACE_DEBUG ((LM_DEBUG,
+ "********** %s SII *********\n",
+ opname));
+
+ // Initialize call count and error count.
+ this->results_.call_count (0);
+ this->results_.error_count (0);
+ this->results_.iterations (opt->loop_count ());
+
+ // Declare the Env
+ // Initialize parameters for the test.
+ int check = this->test_object_->init_parameters (this->alt_mapping_test_);
+
+ if (check == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) client.cpp - run_sii_test:"
+ "init_parameters failed for opname - %s",
+ opname),
+ -1);
+ }
+
+
+ // Make the calls in a loop.
+ for (i = 0; i < opt->loop_count (); i++)
+ {
+ try
+ {
+ this->results_.call_count (this->results_.call_count () + 1);
+ if (opt->debug ())
+ {
+ ACE_DEBUG ((LM_DEBUG, "\n****** Before call values *****\n"));
+ this->test_object_->print_values ();
+ }
+
+ // start the timing
+ this->results_.start_timer ();
+
+ // make the call
+ this->test_object_->run_sii_test (this->alt_mapping_test_);
+
+ // stop the timer.
+ this->results_.stop_timer ();
+
+ // now check if the values returned are as expected
+ if (opt->debug ())
+ {
+ ACE_DEBUG ((LM_DEBUG, "\n****** After call values *****\n"));
+ this->test_object_->print_values ();
+ }
+ }
+ catch (const CORBA::Exception& ex)
+ {
+
+ this->results_.error_count (this->results_.error_count () + 1);
+ ex._tao_print_exception (opname);
+ ACE_ERROR ((LM_ERROR,
+ "(%N:%l) client.cpp - run_sii_test:"
+ "run_sii_test exception in iteration %d",
+ i));
+ goto loop_around;
+
+ }
+
+ if (!this->test_object_->check_validity ())
+ {
+ this->results_.error_count (this->results_.error_count () + 1);
+ ACE_ERROR ((LM_ERROR,
+ "(%N:%l) client.cpp - run_sii_test: "
+ "Invalid results in iteration %d\n",
+ i));
+ continue;
+ }
+ // reset parameters for the test.
+ if (this->test_object_->reset_parameters () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) client.cpp - run_sii_test:"
+ "init_parameters failed for opname - %s",
+ opname), -1);
+ loop_around: continue;
+ }
+
+ // print statistics
+ this->results_.print_stats ();
+
+ if (this->results_.error_count () != 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "********** Error running %s SII *********\n",
+ opname));
+ }
+ else if (opt->debug ())
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "********** Finished running %s SII *********\n",
+ opname));
+ }
+
+ return this->results_.error_count ()? -1 : 0;
+}
+
+#endif /* CLIENT_CPP */
diff --git a/modules/TAO/tests/Alt_Mapping/client.h b/modules/TAO/tests/Alt_Mapping/client.h
new file mode 100644
index 00000000000..acdb2a18612
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/client.h
@@ -0,0 +1,74 @@
+// -*- c++ -*-
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Alt_Mapping_Test
+//
+// = FILENAME
+// client.h
+//
+// = DESCRIPTION
+// Header file for the Alt_Mapping_Test client application.
+//
+// = AUTHORS
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#ifndef ALT_MAPPING_CLIENT_H
+#define ALT_MAPPING_CLIENT_H
+
+#include "tao/Codeset/Codeset.h"
+#include "alt_mappingC.h"
+#include "results.h"
+
+template <class T>
+class Alt_Mapping_Client
+{
+ // = TITLE
+ // Alt_Mapping_Client
+ //
+ // = DESCRIPTION
+ // This class declares an interface to run the example client for
+ // Alt_Mapping CORBA server. All the complexity for initializing
+ // the client is hidden in the class. Just the run () interface
+ // is needed. The template class does the specific work of making
+ // the request of the desired data type
+public:
+ typedef T TEST_OBJECT;
+
+ // = Constructor and destructor.
+ Alt_Mapping_Client (CORBA::ORB_ptr orb,
+ Alt_Mapping_ptr objref,
+ T *);
+
+ ~Alt_Mapping_Client (void);
+
+ int run_sii_test (void);
+ // run the SII test
+
+private:
+ CORBA::ORB_ptr orb_;
+ // underlying ORB
+
+ Alt_Mapping_ptr alt_mapping_test_;
+ // alt mapping object reference
+
+ TEST_OBJECT *test_object_;
+ // object doing the actual work
+
+ Results results_;
+ // results
+};
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "client.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("client.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#endif /* ALT_MAPPING_CLIENT_H */
diff --git a/modules/TAO/tests/Alt_Mapping/driver.cpp b/modules/TAO/tests/Alt_Mapping/driver.cpp
new file mode 100644
index 00000000000..1a5c6380d8c
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/driver.cpp
@@ -0,0 +1,171 @@
+// $Id$
+
+// ============================================================================
+//
+// = FILENAME
+// driver.cpp
+//
+// = DESCRIPTION
+// Driver program
+//
+// = AUTHORS
+// Jeff Parsons
+//
+// ============================================================================
+
+#include "client.h"
+#include "driver.h"
+#include "results.h"
+#include "tests.h"
+#include "ace/Get_Opt.h"
+
+// This function runs the test (main program)
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ // get an instance of the driver object
+ Driver drv;
+
+ // initialize the driver
+ if (drv.init (argc, argv) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) driver.cpp - "
+ "Driver initialization failed\n"),
+ -1);
+
+ // run various tests
+ if (drv.run () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) driver.cpp - "
+ "tests failed\n"),
+ -1);
+ return 0;
+}
+
+// constructor
+Driver::Driver (void)
+{
+}
+
+Driver::~Driver (void)
+{
+}
+
+// initialize the driver
+int
+Driver::init (int argc, ACE_TCHAR **argv)
+{
+ // environment to track exceptions
+
+ // retrieve the instance of Options
+ Options *opt = OPTIONS::instance ();
+
+ char exception_string[256];
+
+ try
+ {
+ ACE_OS::strcpy (exception_string, "ORB Initialization");
+
+ // Retrieve the underlying ORB
+ this->orb_ = CORBA::ORB_init (argc,
+ argv,
+ "internet");
+
+ // Parse command line and verify parameters.
+ if (opt->parse_args (argc, argv) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) driver.cpp - "
+ "parse_args failed\n"),
+ -1);
+ // Retrieve a Param_Test object reference
+ ACE_OS::strcpy (exception_string,"ORB::string_to_object() failed.");
+
+ CORBA::Object_var temp =
+ this->orb_->string_to_object (opt->param_test_ior ());
+
+
+ if (CORBA::is_nil (temp.in()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ORB::string_to_object() returned null object for IOR <%s>\n",
+ opt->param_test_ior ()),
+ -1);
+
+ // Get the object reference
+ ACE_OS::strcpy (exception_string,"Param_Test::_narrow () failed.");
+
+ this->objref_ = Alt_Mapping::_narrow (temp.in());
+
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception (exception_string);
+ return -1;
+ }
+
+ return 0;
+}
+
+int
+Driver::run (void)
+{
+ // serves as a factory of Param_Client objects. It is also responsible to
+ // start the test
+
+ Options *opt = OPTIONS::instance (); // get the options object
+ int retstatus = -1;
+
+ switch (opt->test_type ())
+ {
+ case Options::TEST_UB_STRING:
+ {
+ Alt_Mapping_Client<Test_Unbounded_String> *client = new
+ Alt_Mapping_Client<Test_Unbounded_String> (this->orb_.in (),
+ this->objref_.in(),
+ new Test_Unbounded_String);
+ retstatus = client->run_sii_test ();
+
+ delete client;
+ }
+ break;
+ case Options::TEST_UB_STRUCT_SEQUENCE:
+ {
+ Alt_Mapping_Client<Test_Unbounded_Struct_Sequence> *client = new
+ Alt_Mapping_Client<Test_Unbounded_Struct_Sequence> (
+ this->orb_.in (),
+ this->objref_.in(),
+ new Test_Unbounded_Struct_Sequence);
+
+ retstatus = client->run_sii_test ();
+
+ delete client;
+
+ Alt_Mapping_Client<Test_Unbounded_Struct_Sequence> *client2 = new
+ Alt_Mapping_Client<Test_Unbounded_Struct_Sequence>
+ (this->orb_.in (),
+ this->objref_.in(),
+ new Test_Unbounded_Struct_Sequence);
+
+ retstatus = client2->run_sii_test ();
+
+ delete client2;
+ }
+ break;
+ default:
+ break;
+ }
+
+ // Get in a new environment variable
+ try
+ {
+ if (opt->shutdown ())
+ {
+ this->objref_->shutdown ();
+ }
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("during shutdown");
+ }
+
+ return retstatus;
+}
diff --git a/modules/TAO/tests/Alt_Mapping/driver.h b/modules/TAO/tests/Alt_Mapping/driver.h
new file mode 100644
index 00000000000..e3f488c1181
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/driver.h
@@ -0,0 +1,52 @@
+// -*- c++ -*-
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Param_Test
+//
+// = FILENAME
+// driver.h
+//
+// = DESCRIPTION
+// Header file for the driver program. The driver is a singleton.
+//
+// = AUTHORS
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#ifndef DRIVER_H
+#define DRIVER_H
+
+#include "options.h"
+#include "Alt_MappingC.h"
+
+class Driver
+{
+ // = TITLE
+ // Driver
+ //
+ // = DESCRIPTION
+ // Driver program for the client
+public:
+ // = Constructor and destructor.
+ Driver (void);
+ ~Driver (void);
+
+ int init (int argc, ACE_TCHAR **argv);
+ // Initialize the driver object
+
+ int run (void);
+ // Execute client example code.
+
+private:
+ CORBA::ORB_var orb_;
+ // underlying ORB (we do not own it)
+
+ Alt_Mapping_var objref_;
+ // object reference (we do not own it)
+};
+
+#endif /* !defined */
diff --git a/modules/TAO/tests/Alt_Mapping/helper.cpp b/modules/TAO/tests/Alt_Mapping/helper.cpp
new file mode 100644
index 00000000000..26f38b4ce3a
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/helper.cpp
@@ -0,0 +1,112 @@
+// $Id$
+
+// ============================================================================
+//
+// = FILENAME
+// helper.cpp
+//
+// = DESCRIPTION
+// Defines a helper class that can generate values for the parameters used
+// for the Alt_Mapping example
+//
+// = AUTHORS
+// Jeff Parsons
+//
+// ============================================================================
+
+#include "helper.h"
+#include "ace/OS_NS_ctype.h"
+
+const CORBA::ULong TEST_BUFSIZE = 128;
+
+Generator::Generator (void)
+{
+}
+
+Generator::~Generator (void)
+{
+}
+
+CORBA::Short
+Generator::gen_short (void)
+{
+ return (CORBA::Short) (ACE_OS::rand () % TEST_BUFSIZE);
+}
+
+CORBA::Long
+Generator::gen_long (void)
+{
+ return ::ACE_OS::rand () % TEST_BUFSIZE;
+}
+
+char *
+Generator::gen_string (void)
+{
+ return gen_string (TEST_BUFSIZE);
+}
+
+char *
+Generator::gen_string (int max_length)
+{
+ CORBA::ULong len = (CORBA::ULong) (::ACE_OS::rand () % max_length);
+ char *buf = CORBA::string_alloc (len);
+ CORBA::ULong i = 0;
+
+ while (i < len)
+ {
+ int c = ACE_OS::rand () % 128;
+ if (ACE_OS::ace_isprint (c) && !ACE_OS::ace_isspace (c))
+ {
+ buf [i] = c;
+ i++;
+ }
+ }
+
+ buf[i] = 0;
+ return buf;
+}
+
+CORBA::WChar *
+Generator::gen_wstring (void)
+{
+ return gen_wstring (TEST_BUFSIZE);
+}
+
+CORBA::WChar *
+Generator::gen_wstring (int max_length)
+{
+ CORBA::ULong len = (CORBA::ULong) (::ACE_OS::rand () % max_length);
+ CORBA::WChar *buf = CORBA::wstring_alloc (len);
+ CORBA::ULong i = 0;
+ CORBA::WChar limit =
+ ACE_OutputCDR::wchar_maxbytes() == 1 ? ACE_OCTET_MAX : ACE_WCHAR_MAX;
+ while (i < len)
+ {
+ CORBA::WChar wc = ACE_OS::rand () % limit;
+ if (wc)
+ {
+ buf[i] = wc;
+ i++;
+ }
+ }
+
+ buf[i] = 0;
+ return buf;
+}
+
+const Alt_Mapping::Fixed_Struct
+Generator::gen_fixed_struct (void)
+{
+ this->fixed_struct_.l = ACE_OS::rand ();
+ this->fixed_struct_.c = ACE_OS::rand () % 128;
+ this->fixed_struct_.s = (CORBA::Short) ACE_OS::rand ();
+ this->fixed_struct_.o = ACE_OS::rand () % 128;
+ this->fixed_struct_.f = (CORBA::Float) (ACE_OS::rand () * 1.0);
+ this->fixed_struct_.b = (CORBA::Boolean) (ACE_OS::rand () % 2);
+ this->fixed_struct_.d = (ACE_OS::rand () * 1.0);
+ return this->fixed_struct_;
+}
+
+#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
+template ACE_Singleton<Generator, ACE_Recursive_Thread_Mutex> *ACE_Singleton<Generator, ACE_Recursive_Thread_Mutex>::singleton_;
+#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */
diff --git a/modules/TAO/tests/Alt_Mapping/helper.h b/modules/TAO/tests/Alt_Mapping/helper.h
new file mode 100644
index 00000000000..3165a376941
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/helper.h
@@ -0,0 +1,47 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Param_Test
+//
+// = FILENAME
+// helper.h
+//
+// = DESCRIPTION
+// Defines a helper class that can generate values for the parameters used
+// for the Param_Test example
+//
+// = AUTHORS
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#ifndef HELPER_H
+#define HELPER_H
+
+#include "alt_mappingC.h"
+#include "ace/Singleton.h"
+
+class Generator
+{
+public:
+ Generator (void);
+
+ ~Generator (void);
+
+ CORBA::Short gen_short (void);
+ CORBA::Long gen_long (void);
+ char* gen_string (void);
+ char* gen_string (int maxlength);
+ CORBA::WChar* gen_wstring (void);
+ CORBA::WChar* gen_wstring (int maxlength);
+ const Alt_Mapping::Fixed_Struct gen_fixed_struct (void);
+
+ private:
+ Alt_Mapping::Fixed_Struct fixed_struct_;
+};
+
+typedef ACE_Singleton<Generator, TAO_SYNCH_RECURSIVE_MUTEX> GENERATOR;
+
+#endif /* HELPER_H */
diff --git a/modules/TAO/tests/Alt_Mapping/options.cpp b/modules/TAO/tests/Alt_Mapping/options.cpp
new file mode 100644
index 00000000000..66055e12438
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/options.cpp
@@ -0,0 +1,176 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Param_Test
+//
+// = FILENAME
+// options.cpp
+//
+// = DESCRIPTION
+// Options for the Param_Test application
+//
+// = AUTHORS
+// Jeff Parsonss
+//
+// ============================================================================
+
+#include "options.h"
+#include "tao/debug.h"
+#include "ace/Read_Buffer.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_fcntl.h"
+#include "ace/Log_Msg.h"
+
+ACE_RCSID (Param_Test,
+ options,
+ "$Id$")
+
+// Constructor.p
+Options::Options (void)
+ : ior_ (CORBA::string_dup ("file://test.ior")),
+ test_type_ (Options::NO_TEST),
+ invoke_type_ (Options::SII),
+ loop_count_ (1),
+ debug_ (0),
+ shutdown_ (0)
+{
+}
+
+Options::~Options (void)
+{
+}
+
+// Parses the command line arguments and returns an error status.
+
+int
+Options::parse_args (int argc, ACE_TCHAR **argv)
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("xdn:f:i:t:k:"));
+ int c;
+ int result;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'd': // debug flag
+ TAO_debug_level++;
+ this->debug_ = 1;
+ break;
+
+ case 'x':
+ this->shutdown_ = 1;
+ break;
+
+ case 'n': // loop count
+ this->loop_count_ = (CORBA::ULong) ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'f':
+ result = this->read_ior (get_opts.opt_arg ());
+
+ if (result < 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to read ior from %s : %p\n",
+ get_opts.opt_arg ()),
+ -1);
+
+ break;
+
+ case 'k':
+ this->ior_ = CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR(get_opts.opt_arg ()));
+ break;
+
+ case 'i': // invocation
+ if (!ACE_OS::strcmp (get_opts.opt_arg (), ACE_TEXT("dii")))
+ this->invoke_type_ = Options::DII;
+ break;
+
+ case 't': // data type
+ if (!ACE_OS::strcmp (get_opts.opt_arg (), ACE_TEXT("ubstring")))
+ this->test_type_ = Options::TEST_UB_STRING;
+ else if (!ACE_OS::strcmp (get_opts.opt_arg (), ACE_TEXT("ub_struct_seq")))
+ this->test_type_ = Options::TEST_UB_STRUCT_SEQUENCE;
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s"
+ " [-d]"
+ " [-n loopcount]"
+ " [-f servant-IOR-file]"
+ " [-i invocation (sii/dii)]"
+ " [-t data type]"
+ "\n",
+ argv [0]),
+ -1);
+ }
+
+ // Indicates successful parsing of command line.
+ return 0;
+}
+
+// Get the factory IOR from the file created by the server.
+int
+Options::read_ior (ACE_TCHAR *filename)
+{
+ // Open the file for reading.
+ ACE_HANDLE f_handle = ACE_OS::open (filename, 0);
+
+ if (f_handle == ACE_INVALID_HANDLE)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to open %s for writing: %p\n",
+ filename),
+ -1);
+ ACE_Read_Buffer ior_buffer (f_handle, true);
+ this->ior_ = ior_buffer.read ();
+
+ if (this->ior_.in () == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to allocate memory to read ior: %p\n"),
+ -1);
+ return 0;
+}
+
+char const *
+Options::param_test_ior (void) const
+{
+ return this->ior_.in ();
+}
+
+Options::TEST_TYPE
+Options::test_type (void)
+{
+ return this->test_type_;
+}
+
+Options::INVOKE_TYPE
+Options::invoke_type (void)
+{
+ return this->invoke_type_;
+}
+
+CORBA::ULong
+Options::loop_count (void)
+{
+ return this->loop_count_;
+}
+
+CORBA::Boolean
+Options::debug (void) const
+{
+ return this->debug_;
+}
+
+CORBA::Boolean
+Options::shutdown (void) const
+{
+ return this->shutdown_;
+}
+
+#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
+template ACE_Singleton<Options, ACE_Recursive_Thread_Mutex> *ACE_Singleton<Options, ACE_Recursive_Thread_Mutex>::singleton_;
+#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */
diff --git a/modules/TAO/tests/Alt_Mapping/options.h b/modules/TAO/tests/Alt_Mapping/options.h
new file mode 100644
index 00000000000..c01ecc8e9a4
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/options.h
@@ -0,0 +1,101 @@
+// -*- c++ -*-
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Param_Test
+//
+// = FILENAME
+// options.h
+//
+// = DESCRIPTION
+// Options for the Param_Test application
+//
+// = AUTHORS
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#ifndef OPTIONS_H
+#define OPTIONS_H
+
+#include "ace/Singleton.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/Basic_Types.h"
+#include "tao/CORBA_String.h"
+#include "tao/orbconf.h"
+
+class Options
+{
+public:
+ enum TEST_TYPE
+ {
+ NO_TEST,
+ TEST_UB_STRING,
+ TEST_UB_STRUCT_SEQUENCE,
+ };
+
+ enum INVOKE_TYPE
+ {
+ SII,
+ DII
+ };
+
+ Options (void);
+ // constructor
+
+ ~Options (void);
+ // destructor
+
+ int parse_args (int argc, ACE_TCHAR **argv);
+ // Parses the arguments passed on the command line.
+
+ char const * param_test_ior (void) const;
+ // return the IOR for the servant
+
+ TEST_TYPE test_type (void);
+ // what test to run
+
+ INVOKE_TYPE invoke_type (void);
+ // whether to use SII or DII
+
+ CORBA::ULong loop_count (void);
+ // number of times to run the test
+
+ CORBA::Boolean debug (void) const;
+ // whether debug option is on or not
+
+ CORBA::Boolean shutdown (void) const;
+ // If we should request the server to shutdown.
+
+private:
+ int read_ior (ACE_TCHAR *filename);
+ // Function to read the servant IOR from a file.
+
+ CORBA::String_var ior_;
+ // IOR for the servant
+
+ TEST_TYPE test_type_;
+ // what test to run
+
+ INVOKE_TYPE invoke_type_;
+ // whether SII or DII
+
+ CORBA::ULong loop_count_;
+ // Number of times to do the "test_*" operations.
+
+ CORBA::Boolean debug_;
+ // debugging output values
+
+ CORBA::Boolean shutdown_;
+ // server shutdown flag.
+};
+
+typedef ACE_Singleton<Options, TAO_SYNCH_RECURSIVE_MUTEX> OPTIONS;
+
+#endif /* OPTIONS_H */
diff --git a/modules/TAO/tests/Alt_Mapping/results.cpp b/modules/TAO/tests/Alt_Mapping/results.cpp
new file mode 100644
index 00000000000..56d38e2a92e
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/results.cpp
@@ -0,0 +1,149 @@
+// $Id$
+
+// ============================================================================
+//
+// = FILENAME
+// results.cpp
+//
+// = DESCRIPTION
+// Printing the results
+//
+// = AUTHORS
+// Jeff Parsons
+//
+// ============================================================================
+
+#include "results.h"
+#include "tao/debug.h"
+#include "ace/Log_Msg.h"
+
+Results::Results (void)
+{
+}
+
+Results::~Results (void)
+{
+ delete [] this->elapsed_time_;
+}
+
+void
+Results::print_stats (void)
+{
+ double
+ avg_real_time = 0,
+ avg_user_time = 0,
+ avg_system_time = 0,
+ cps; // calls per sec
+
+ CORBA::ULong i;
+
+ if (TAO_debug_level > 0 && this->error_count_ == 0)
+ {
+ //FUZZ: disable check_for_lack_ACE_OS
+ ACE_DEBUG ((LM_DEBUG,
+ "Iteration\tReal time (msec)\tUser time (msec)"
+ "\tSystem time (msec)\n\n"));
+ //FUZZ: enable check_for_lack_ACE_OS
+
+ for (i = 0; i < this->call_count_; i++)
+ {
+ this->elapsed_time_[i].real_time *= ACE_ONE_SECOND_IN_MSECS;
+ this->elapsed_time_[i].user_time *= ACE_ONE_SECOND_IN_MSECS;
+ this->elapsed_time_[i].system_time *= ACE_ONE_SECOND_IN_MSECS;
+ avg_real_time += this->elapsed_time_[i].real_time;
+ avg_user_time += this->elapsed_time_[i].user_time;
+ avg_system_time += this->elapsed_time_[i].system_time;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "%u\t\t%0.06f\t\t%0.06f\t\t%0.06f\n",
+ i,
+ (this->elapsed_time_[i].real_time < 0.0?
+ 0.0:this->elapsed_time_[i].real_time),
+ (this->elapsed_time_[i].user_time < 0.0?
+ 0.0:this->elapsed_time_[i].user_time),
+ (this->elapsed_time_[i].system_time < 0.0?
+ 0.0:this->elapsed_time_[i].system_time)));
+ } // end of for loop
+
+ // compute average
+ avg_real_time /= this->call_count_;
+ avg_user_time /= this->call_count_;
+ avg_system_time /= this->call_count_;
+ cps = 1000 / (avg_real_time < 0.01 ? 0.01 : avg_real_time);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "\n*=*=*=*=*= Average *=*=*=*=*=*=\n"
+ "\treal_time\t= %0.06f ms,\n"
+ "\tuser_time\t= %0.06f ms,\n"
+ "\tsystem_time\t= %0.06f ms\n"
+ "\t%0.00f calls/second\n"
+ "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n",
+ (avg_real_time < 0.0? 0.0:avg_real_time),
+ (avg_user_time < 0.0? 0.0:avg_user_time),
+ (avg_system_time < 0.0? 0.0:avg_system_time),
+ (cps < 0.0? 0.0 : cps)));
+
+ ACE_DEBUG ((LM_DEBUG,
+ "\t%d calls, %d errors\n"
+ "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n",
+ this->call_count_,
+ this->error_count_));
+ }
+ else if (this->error_count_ != 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "\tERROR %d faults in %d calls\n"
+ "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n",
+ this->error_count_,
+ this->call_count_));
+ }
+}
+
+void
+Results::print_exception (const char * /* call_name */)
+{
+ //ACE_PRINT_EXCEPTION (call_name);
+}
+
+void
+Results::start_timer (void)
+{
+ this->timer_.start ();
+}
+
+void
+Results::stop_timer (void)
+{
+ this->timer_.stop ();
+ this->timer_.elapsed_time (this->elapsed_time_[this->call_count_-1]);
+}
+
+CORBA::ULong
+Results::call_count (void)
+{
+ return this->call_count_;
+}
+
+void
+Results::call_count (CORBA::ULong c)
+{
+ this->call_count_ = c;
+}
+
+CORBA::ULong
+Results::error_count (void)
+{
+ return this->error_count_;
+}
+
+void
+Results::error_count (CORBA::ULong c)
+{
+ this->error_count_ = c;
+}
+
+void
+Results::iterations (CORBA::ULong iters)
+{
+ this->elapsed_time_ = new ACE_Profile_Timer::ACE_Elapsed_Time [iters];
+}
diff --git a/modules/TAO/tests/Alt_Mapping/results.h b/modules/TAO/tests/Alt_Mapping/results.h
new file mode 100644
index 00000000000..e04e26e5f3c
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/results.h
@@ -0,0 +1,88 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Param_Test
+//
+// = FILENAME
+// results.h
+//
+// = DESCRIPTION
+// Printing the results
+//
+// = AUTHORS
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#ifndef RESULTS_H
+#define RESULTS_H
+
+#include "tao/Basic_Types.h"
+
+#include "ace/Profile_Timer.h"
+#include "ace/CORBA_macros.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+namespace CORBA
+{
+ class Environment;
+}
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+class Results
+{
+public:
+ Results (void);
+ // ctor
+
+ ~Results (void);
+ // destructor
+
+ void print_stats (void);
+ // prints the time stats
+
+ void print_exception (const char *call_name);
+ // print the exception
+
+ void start_timer (void);
+ // start timing
+
+ void stop_timer (void);
+ // stop timing
+
+ CORBA::ULong call_count (void);
+ // return call count
+
+ void call_count (CORBA::ULong);
+ // set the call count
+
+ CORBA::ULong error_count (void);
+ // return the error count
+
+ void error_count (CORBA::ULong);
+ // set error count
+
+ void iterations (CORBA::ULong iters);
+ // set the number of times the test will be run
+
+private:
+ CORBA::ULong call_count_;
+ // # of calls made to functions
+
+ CORBA::ULong error_count_;
+ // # of errors incurred in the lifetime of the application.
+
+ ACE_Profile_Timer timer_;
+ // for timing the test
+
+ ACE_Profile_Timer::ACE_Elapsed_Time *elapsed_time_;
+ // holds the elapsed time for each iteration
+};
+
+#endif /* RESULTS_H */
diff --git a/modules/TAO/tests/Alt_Mapping/run_test.pl b/modules/TAO/tests/Alt_Mapping/run_test.pl
new file mode 100755
index 00000000000..a39ea895ae8
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/run_test.pl
@@ -0,0 +1,119 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+my $server = PerlACE::TestTarget::create_target(1) || die "Create target 1 failed\n";
+my $client = PerlACE::TestTarget::create_target(2) || die "Create target 2 failed\n";
+
+$iorbase = "server.ior";
+my $server_iorfile = $server->LocalFile ($iorbase);
+my $client_iorfile = $client->LocalFile ($iorbase);
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+
+$invocation = "sii";
+$num = 5;
+$debug = "";
+$status = 0;
+
+# Parse the arguments
+
+@types = ("ubstring", "ub_struct_seq");
+
+
+for ($i = 0; $i <= $#ARGV; $i++) {
+ if ($ARGV[$i] eq "-h" || $ARGV[$i] eq "-?") {
+ print "Run_Test Perl script for TAO Param Test\n\n";
+ print "run_test [-n num] [-d] [-onewin] [-h] [-t type] [-i (dii|sii)] [-chorus <target>]\n";
+ print "\n";
+ print "-n num -- runs the client num times\n";
+ print "-d -- runs each in debug mode\n";
+ print "-h -- prints this information\n";
+ print "-t type -- runs only one type of param test\n";
+ print "-i (dii|sii) -- Changes the type of invocation\n";
+ print "-chorus <target> -- Run tests on chorus target\n";
+ exit 0;
+ }
+ elsif ($ARGV[$i] eq "-n") {
+ $num = $ARGV[$i + 1];
+ $i++;
+ }
+ elsif ($ARGV[$i] eq "-d") {
+ $debug = $debug." -d";
+ }
+ elsif ($ARGV[$i] eq "-t") {
+ @types = split (',', $ARGV[$i + 1]);
+ $i++;
+ }
+ elsif ($ARGV[$i] eq "-i") {
+ $invocation = $ARGV[$i + 1];
+ $i++;
+ }
+}
+
+$SV = $server->CreateProcess ("server", "$debug -o $server_iorfile");
+$CL = $client->CreateProcess ("client");
+
+foreach $type (@types) {
+ $server->DeleteFile($iorbase); # Ignore errors
+ $client->DeleteFile($iorbase);
+
+ print STDERR "==== Testing $type === wait....\n";
+
+ $server_status = $SV->Spawn ();
+
+ if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+ } else {
+ if ($server->WaitForFileTimed ($iorbase,
+ $server->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile>\n";
+ $SV->Kill ();
+ exit 1;
+ }
+
+ if ($server->GetFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+ }
+ if ($client->PutFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot set file <$client_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+ }
+
+ $CL->Arguments ("$debug -f $client_iorfile -i $invocation -t $type -n $num -x");
+ $client_status = $CL->SpawnWaitKill ($server->ProcessStartWaitInterval() + 45);
+
+ if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
+ }
+
+ $server_status = $SV->WaitKill ($server->ProcessStopWaitInterval());
+
+ if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+ }
+
+ $server->GetStderrLog();
+ }
+
+ $server->DeleteFile($iorbase);
+ $client->DeleteFile($iorbase);
+
+ print STDERR "==== Test for $type finished ===\n";
+}
+
+$server->DeleteFile($iorbase);
+
+exit $status;
diff --git a/modules/TAO/tests/Alt_Mapping/server.cpp b/modules/TAO/tests/Alt_Mapping/server.cpp
new file mode 100644
index 00000000000..8d86a2403bb
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/server.cpp
@@ -0,0 +1,155 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Param_Test
+//
+// = FILENAME
+// server.cpp
+//
+// = AUTHOR
+// Jeff Parsons
+//
+// ============================================================================
+
+#include "alt_mapping_i.h"
+#include "tao/Codeset/Codeset.h"
+#include "tao/debug.h"
+#include "ace/Get_Opt.h"
+#include "ace/Log_Msg.h"
+#include "ace/OS_NS_stdio.h"
+
+// Parses the command line arguments and returns an error status.
+static FILE *ior_output_file = 0;
+static const ACE_TCHAR *ior_output_filename = ACE_TEXT("test.ior");
+
+static int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("do:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'd': // debug flag
+ TAO_debug_level++;
+ break;
+ case 'o':
+ ior_output_filename = get_opts.opt_arg ();
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s"
+ " [-d]"
+ "\n", argv [0]), 1);
+ }
+
+ return 0; // Indicates successful parsing of command line
+}
+
+// Standard command line parsing utilities used.
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ PortableServer::POA_var oa_ptr;
+ Alt_Mapping_i *svnt = 0;
+
+ try
+ {
+ const char *orb_name = "";
+ CORBA::ORB_var orb_ptr =
+ CORBA::ORB_init (argc, argv, orb_name);
+
+ CORBA::Object_var temp; // holder for the myriad of times we get
+ // an object which we then have to narrow.
+
+ // Get the Root POA
+
+ temp = orb_ptr->resolve_initial_references ("RootPOA");
+
+ if (CORBA::is_nil (temp.in()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%P|%t) Unable to get root poa reference.\n"),
+ 1);
+
+ oa_ptr = PortableServer::POA::_narrow (temp.in());
+
+ PortableServer::POAManager_var poa_manager =
+ oa_ptr->the_POAManager ();
+
+ // Parse remaining command line and verify parameters.
+ parse_args (argc, argv);
+
+ // initialize a param_test target object and register it with the object
+ // adapter
+
+ // Create the implementation object
+ ACE_NEW_RETURN (svnt,
+ Alt_Mapping_i (orb_ptr.in ()),
+ -1);
+
+ // Register with GoodPOA with a specific name
+ PortableServer::ObjectId_var id =
+ PortableServer::string_to_ObjectId ("alt_mapping");
+ oa_ptr->activate_object_with_id (id.in (),
+ svnt);
+
+ // Stringify the objref we'll be implementing, and print it to
+ // stdout. Someone will take that string and give it to a
+ // client. Then release the object.
+
+ temp = oa_ptr->id_to_reference (id.in ());
+
+ CORBA::String_var str =
+ orb_ptr->object_to_string (temp.in ());
+
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) The IOR is <%s>\n",
+ str.in ()));
+ }
+
+ ior_output_file = ACE_OS::fopen (ior_output_filename, "w");
+
+ if (ior_output_file == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to open %s for writing: %p\n",
+ ior_output_filename),
+ -1);
+ }
+
+ ACE_OS::fprintf (ior_output_file,
+ "%s",
+ str.in ());
+ ACE_OS::fclose (ior_output_file);
+
+
+ // Make the POAs controlled by this manager active
+ poa_manager->activate ();
+
+ orb_ptr->run ();
+
+ oa_ptr->destroy (true, true);
+ }
+ catch (const CORBA::SystemException& sysex)
+ {
+ sysex._tao_print_exception ("System Exception");
+ return -1;
+ }
+ catch (const CORBA::UserException& userex)
+ {
+ userex._tao_print_exception ("User Exception");
+ return -1;
+ }
+
+ /// Free resources.
+ delete svnt;
+
+ return 0;
+}
diff --git a/modules/TAO/tests/Alt_Mapping/tests.h b/modules/TAO/tests/Alt_Mapping/tests.h
new file mode 100644
index 00000000000..ed6cdb30ef8
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/tests.h
@@ -0,0 +1,22 @@
+// $Id$
+
+// ============================================================================
+//
+// = FILENAME
+// tests.h
+//
+// = DESCRIPTION
+// All the test objects header files included here
+//
+// = AUTHORS
+// Jeff Parsons
+//
+// ============================================================================
+
+#ifndef TESTS_H
+#define TESTS_H
+
+#include "ub_struct_seq.h"
+#include "ub_string.h"
+
+#endif /* if !defined */
diff --git a/modules/TAO/tests/Alt_Mapping/ub_string.cpp b/modules/TAO/tests/Alt_Mapping/ub_string.cpp
new file mode 100644
index 00000000000..cdf3746d71c
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/ub_string.cpp
@@ -0,0 +1,124 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Param_Test
+//
+// = FILENAME
+// ub_string.cpp
+//
+// = DESCRIPTION
+// tests unbounded strings
+//
+// = AUTHORS
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#include "helper.h"
+#include "ub_string.h"
+
+// ************************************************************************
+// Test_Unbounded_String
+// ************************************************************************
+
+Test_Unbounded_String::Test_Unbounded_String (void)
+ : opname_ (CORBA::string_dup ("test_unbounded_string"))
+{
+}
+
+Test_Unbounded_String::~Test_Unbounded_String (void)
+{
+ CORBA::string_free (this->opname_);
+ this->opname_ = 0;
+}
+
+const char *
+Test_Unbounded_String::opname (void) const
+{
+ return this->opname_;
+}
+
+int
+Test_Unbounded_String::init_parameters (Alt_Mapping_ptr)
+{
+ Generator *gen = GENERATOR::instance (); // value generator
+
+ this->in_ = gen->gen_string ();
+ this->inout_ = this->in_.c_str ();
+
+ return 0;
+}
+
+int
+Test_Unbounded_String::reset_parameters (void)
+{
+ this->inout_ = this->in_.c_str ();
+ this->out_.clear ();
+ this->ret_.clear ();
+
+ return 0;
+}
+
+int
+Test_Unbounded_String::run_sii_test (Alt_Mapping_ptr objref)
+{
+ try
+ {
+ this->ret_ = objref->test_unbounded_string (this->in_,
+ this->inout_,
+ this->out_);//str_out);
+
+ return 0;
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Test_Unbounded_String::run_sii_test\n");
+ }
+
+ return -1;
+}
+
+CORBA::Boolean
+Test_Unbounded_String::check_validity (void)
+{
+ CORBA::ULong len = this->in_.length ();
+
+ std::string first_half = this->inout_.substr (0, len);
+ std::string second_half = this->inout_.substr (len, len);
+
+ return (this->in_ == this->out_
+ && this->in_ == this->ret_
+ && this->inout_.length () == 2 * len
+ && this->in_ == first_half
+ && this->in_ == second_half);
+}
+
+CORBA::Boolean
+Test_Unbounded_String::check_validity (CORBA::Request_ptr )
+{
+ // No need to retrieve anything because, for all the args and
+ // the return, we provided the memory and we own it.
+ return this->check_validity ();
+}
+
+void
+Test_Unbounded_String::print_values (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "\n=*=*=*=*=*=*\n"
+ "in with len (%d) = %s\n"
+ "inout with len (%d) = %s\n"
+ "out with len (%d) = %s\n"
+ "ret with len (%d) = %s\n"
+ "\n=*=*=*=*=*=*\n",
+ this->in_.length (),
+ this->in_.c_str (),
+ this->inout_.length (),
+ this->inout_.c_str (),
+ this->out_.length (),
+ this->out_.c_str (),
+ this->ret_.length (),
+ this->ret_.c_str ()));
+}
diff --git a/modules/TAO/tests/Alt_Mapping/ub_string.h b/modules/TAO/tests/Alt_Mapping/ub_string.h
new file mode 100644
index 00000000000..b3f4037173b
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/ub_string.h
@@ -0,0 +1,67 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Param_Test
+//
+// = FILENAME
+// unbounded_string.h
+//
+// = DESCRIPTION
+// Tests unbounded string
+//
+// = AUTHORS
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#ifndef PARAM_TEST_UNBOUNDED_STRING_H
+#define PARAM_TEST_UNBOUNDED_STRING_H
+
+#include "Alt_MappingC.h"
+
+// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
+// test unbounded strings
+// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
+class Test_Unbounded_String
+{
+public:
+ Test_Unbounded_String (void);
+ // ctor
+
+ ~Test_Unbounded_String (void);
+ // dtor
+
+ int run_sii_test (Alt_Mapping_ptr objref);
+ // run the SII test
+
+ const char *opname (void) const;
+ // return operation name
+
+ int init_parameters (Alt_Mapping_ptr objref);
+ // set values for parameters
+
+ int reset_parameters (void);
+ // reset values for CORBA
+
+ CORBA::Boolean check_validity (void);
+ // check if results are valid
+
+ CORBA::Boolean check_validity (CORBA::Request_ptr req);
+ // check if results are valid. This is used for DII results
+
+ void print_values (void);
+ // print all the values
+
+private:
+ char *opname_;
+ // operation name
+
+ std::string in_;
+ std::string inout_;
+ std::string out_;
+ std::string ret_;
+};
+
+#endif /* PARAM_TEST_UNBOUNDED_STRING_H */
diff --git a/modules/TAO/tests/Alt_Mapping/ub_struct_seq.cpp b/modules/TAO/tests/Alt_Mapping/ub_struct_seq.cpp
new file mode 100644
index 00000000000..6e4777726ef
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/ub_struct_seq.cpp
@@ -0,0 +1,183 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Param_Test
+//
+// = FILENAME
+// ub_struct_seq.cpp
+//
+// = DESCRIPTION
+// tests unbounded struct sequences
+//
+// = AUTHORS
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#include "helper.h"
+#include "ub_struct_seq.h"
+
+// ************************************************************************
+// Test_Struct_Sequence
+// ************************************************************************
+
+Test_Unbounded_Struct_Sequence::Test_Unbounded_Struct_Sequence (
+ void)
+ : opname_ (CORBA::string_dup ("test_struct_sequence"))
+{
+}
+
+Test_Unbounded_Struct_Sequence::~Test_Unbounded_Struct_Sequence (
+ void)
+{
+ CORBA::string_free (this->opname_);
+ this->opname_ = 0;
+ // the other data members will be freed as they are "_var"s and objects
+ // (rather than pointers to objects)
+}
+
+const char *
+Test_Unbounded_Struct_Sequence::opname (void) const
+{
+ return this->opname_;
+}
+
+int
+Test_Unbounded_Struct_Sequence::init_parameters (Alt_Mapping_ptr)
+{
+ Generator *gen = GENERATOR::instance (); // value generator
+
+ // get some sequence length (not more than 10)
+ CORBA::ULong len = (CORBA::ULong) (gen->gen_long () % 10) + 1;
+
+ // set the length of the sequence
+ this->in_.length (len);
+ this->inout_.length (len);
+ // now set each individual element
+ for (CORBA::ULong i = 0; i < this->in_.length (); i++)
+ {
+ // generate some arbitrary struct to be filled into the ith location in
+ // the sequence
+ this->in_[i] = gen->gen_fixed_struct ();
+ this->inout_[i] = gen->gen_fixed_struct ();
+ }
+ return 0;
+}
+
+int
+Test_Unbounded_Struct_Sequence::reset_parameters (void)
+{
+ this->inout_.clear ();
+ this->out_.clear ();
+ this->ret_.clear ();
+
+ return 0;
+}
+
+int
+Test_Unbounded_Struct_Sequence::run_sii_test (
+ Alt_Mapping_ptr objref)
+{
+ try
+ {
+ this->ret_.swap (objref->test_struct_sequence (this->in_,
+ this->inout_,
+ this->out_));
+
+ return 0;
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Test_Struct_Sequence::run_sii_test\n");
+
+ }
+ return -1;
+}
+
+CORBA::Boolean
+Test_Unbounded_Struct_Sequence::check_validity (void)
+{
+ return (this->compare (this->in_, this->inout_)
+ && this->compare (this->in_, this->out_)
+ && this->compare (this->in_, this->ret_));
+}
+
+void
+Test_Unbounded_Struct_Sequence::print_values (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n"
+ "IN sequence\n"));
+ this->print_sequence (this->in_);
+ ACE_DEBUG ((LM_DEBUG,
+ "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n"
+ "INOUT sequence\n"));
+ this->print_sequence (this->inout_);
+ ACE_DEBUG ((LM_DEBUG,
+ "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n"
+ "OUT sequence\n"));
+ this->print_sequence (this->out_);
+ ACE_DEBUG ((LM_DEBUG,
+ "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n"
+ "RET sequence\n"));
+ this->print_sequence (this->ret_);
+}
+
+CORBA::Boolean
+Test_Unbounded_Struct_Sequence::compare (
+ const Alt_Mapping::StructSeq &s1,
+ const Alt_Mapping::StructSeq &s2)
+{
+ if (s1.maximum () != s2.maximum ())
+ return 0;
+ if (s1.length () != s2.length ())
+ return 0;
+
+ for (CORBA::ULong i=0; i < s1.length (); i++)
+ {
+ const Alt_Mapping::Fixed_Struct& vs1 = s1[i];
+ const Alt_Mapping::Fixed_Struct& vs2 = s2[i];
+
+ if (vs1.l != vs2.l
+ || vs1.c != vs2.c
+ || vs1.s != vs2.s
+ || vs1.o != vs2.o
+ || vs1.f != vs2.f
+ || vs1.b != vs2.b
+ || vs1.d != vs2.d )
+ return 0;
+ }
+
+ return 1; // success
+}
+
+void
+Test_Unbounded_Struct_Sequence::print_sequence (
+ const Alt_Mapping::StructSeq &s)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "maximum = %d\n"
+ "length = %d\n",
+ s.maximum (),
+ s.length ()));
+ ACE_DEBUG ((LM_DEBUG, "Elements -\n"));
+
+ for (CORBA::ULong i=0; i < s.length (); i++)
+ {
+ const Alt_Mapping::Fixed_Struct& vs = s[i];
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Element #%d\n"
+ "\tl = %d\n"
+ "\tc = %c\n"
+ "\ts = %d\n"
+ "\to = %x\n"
+ "\tf = %f\n"
+ "\tb = %d\n"
+ "\td = %f\n",
+ i,
+ vs.l, vs.c, vs.s, vs.o, vs.f, vs.b, vs.d));
+ }
+}
diff --git a/modules/TAO/tests/Alt_Mapping/ub_struct_seq.h b/modules/TAO/tests/Alt_Mapping/ub_struct_seq.h
new file mode 100644
index 00000000000..a79a5fcf70a
--- /dev/null
+++ b/modules/TAO/tests/Alt_Mapping/ub_struct_seq.h
@@ -0,0 +1,75 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Param_Test
+//
+// = FILENAME
+// ub_struct_seq.h
+//
+// = DESCRIPTION
+// Tests unbounded struct sequence
+//
+// = AUTHORS
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#ifndef ALT_MAPPING_TEST_UNBOUNED_STRUCT_SEQUENCE_H
+#define ALT_MAPPING_TEST_UNBOUNED_STRUCT_SEQUENCE_H
+
+#include "alt_mappingC.h"
+
+// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
+// test unbounded sequence of structs
+// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
+
+class Test_Unbounded_Struct_Sequence
+{
+public:
+ Test_Unbounded_Struct_Sequence (void);
+ // ctor
+
+ ~Test_Unbounded_Struct_Sequence (void);
+ // dtor
+
+ int run_sii_test (Alt_Mapping_ptr objref);
+ // run the SII test
+
+ const char *opname (void) const;
+ // return operation name
+
+ int init_parameters (Alt_Mapping_ptr objref);
+ // set values for parameters
+
+ int reset_parameters (void);
+ // reset values for CORBA
+
+ CORBA::Boolean check_validity (void);
+ // check if results are valid
+
+ void print_values (void);
+ // print all the values
+
+protected:
+ CORBA::Boolean compare (const Alt_Mapping::StructSeq &s1,
+ const Alt_Mapping::StructSeq &s2);
+ // compare
+
+ void print_sequence (const Alt_Mapping::StructSeq &s);
+ // print individual sequence
+
+private:
+ char *opname_;
+
+ Alt_Mapping::StructSeq in_;
+
+ Alt_Mapping::StructSeq inout_;
+
+ Alt_Mapping::StructSeq out_;
+
+ Alt_Mapping::StructSeq ret_;
+};
+
+#endif /* ALT_MAPPING_TEST_UNBOUNED_STRUCT_SEQUENCE_H */
diff --git a/modules/TAO/tests/Param_Test/param_testC.cpp b/modules/TAO/tests/Param_Test/param_testC.cpp
index c83469f9e74..c57d6db4cbf 100644
--- a/modules/TAO/tests/Param_Test/param_testC.cpp
+++ b/modules/TAO/tests/Param_Test/param_testC.cpp
@@ -65,6 +65,7 @@
#include "tao/UB_String_Arguments.h"
#include "tao/Var_Array_Argument_T.h"
#include "tao/Var_Size_Argument_T.h"
+#include "tao/Vector_Argument_T.h"
#include "tao/AnyTypeCode/Any_Arg_Traits.h"
#include "ace/OS_NS_string.h"
@@ -1513,41 +1514,32 @@ Param_Test::PathSpec::PathSpec (void)
{}
Param_Test::PathSpec::PathSpec (
- ::CORBA::ULong max
- )
- : TAO::unbounded_value_sequence<
- Step
- >
- (max)
-{}
-
-Param_Test::PathSpec::PathSpec (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Param_Test::Step * buffer,
- ::CORBA::Boolean release
- )
- : TAO::unbounded_value_sequence<
- Step
- >
- (max, length, buffer, release)
+ ::CORBA::ULong max)
+ : std::vector<Step> (max)
{}
Param_Test::PathSpec::PathSpec (
- const PathSpec &seq
- )
- : TAO::unbounded_value_sequence<
- Step
- >
- (seq)
+ const PathSpec &seq)
+ : std::vector<Step> (seq)
{}
Param_Test::PathSpec::~PathSpec (void)
{}
+::CORBA::ULong
+Param_Test::PathSpec::length (void) const
+{
+ return this->size ();
+}
+
+void
+Param_Test::PathSpec::length (::CORBA::ULong length)
+{
+ this->reserve (length);
+}
+
void Param_Test::PathSpec::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
PathSpec * _tao_tmp_pointer =
static_cast<PathSpec *> (_tao_void_pointer);
@@ -1719,21 +1711,18 @@ Param_Test::Bounded_Short_Seq::Bounded_Short_Seq (
{}
Param_Test::Bounded_Short_Seq::Bounded_Short_Seq (
- const Bounded_Short_Seq &seq
- )
+ const Bounded_Short_Seq &seq)
: TAO::bounded_value_sequence<
::CORBA::Short,
32
- >
- (seq)
+ > (seq)
{}
Param_Test::Bounded_Short_Seq::~Bounded_Short_Seq (void)
{}
void Param_Test::Bounded_Short_Seq::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
Bounded_Short_Seq * _tao_tmp_pointer =
static_cast<Bounded_Short_Seq *> (_tao_void_pointer);
@@ -1905,21 +1894,18 @@ Param_Test::Bounded_Long_Seq::Bounded_Long_Seq (
{}
Param_Test::Bounded_Long_Seq::Bounded_Long_Seq (
- const Bounded_Long_Seq &seq
- )
+ const Bounded_Long_Seq &seq)
: TAO::bounded_value_sequence<
::CORBA::Long,
32
- >
- (seq)
+ > (seq)
{}
Param_Test::Bounded_Long_Seq::~Bounded_Long_Seq (void)
{}
void Param_Test::Bounded_Long_Seq::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
Bounded_Long_Seq * _tao_tmp_pointer =
static_cast<Bounded_Long_Seq *> (_tao_void_pointer);
@@ -2088,18 +2074,15 @@ Param_Test::Bounded_StrSeq::Bounded_StrSeq (
{}
Param_Test::Bounded_StrSeq::Bounded_StrSeq (
- const Bounded_StrSeq &seq
- )
- : TAO::bounded_basic_string_sequence<char, 32>
- (seq)
+ const Bounded_StrSeq &seq)
+ : TAO::bounded_basic_string_sequence<char, 32> (seq)
{}
Param_Test::Bounded_StrSeq::~Bounded_StrSeq (void)
{}
void Param_Test::Bounded_StrSeq::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
Bounded_StrSeq * _tao_tmp_pointer =
static_cast<Bounded_StrSeq *> (_tao_void_pointer);
@@ -2268,18 +2251,15 @@ Param_Test::Bounded_WStrSeq::Bounded_WStrSeq (
{}
Param_Test::Bounded_WStrSeq::Bounded_WStrSeq (
- const Bounded_WStrSeq &seq
- )
- : TAO::bounded_basic_string_sequence<CORBA::WChar, 32>
- (seq)
+ const Bounded_WStrSeq &seq)
+ : TAO::bounded_basic_string_sequence<CORBA::WChar, 32> (seq)
{}
Param_Test::Bounded_WStrSeq::~Bounded_WStrSeq (void)
{}
void Param_Test::Bounded_WStrSeq::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
Bounded_WStrSeq * _tao_tmp_pointer =
static_cast<Bounded_WStrSeq *> (_tao_void_pointer);
@@ -2393,41 +2373,32 @@ Param_Test::StructSeq::StructSeq (void)
{}
Param_Test::StructSeq::StructSeq (
- ::CORBA::ULong max
- )
- : TAO::unbounded_value_sequence<
- Fixed_Struct
- >
- (max)
+ ::CORBA::ULong max)
+ : std::vector<Fixed_Struct> (max)
{}
Param_Test::StructSeq::StructSeq (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Param_Test::Fixed_Struct * buffer,
- ::CORBA::Boolean release
- )
- : TAO::unbounded_value_sequence<
- Fixed_Struct
- >
- (max, length, buffer, release)
-{}
-
-Param_Test::StructSeq::StructSeq (
- const StructSeq &seq
- )
- : TAO::unbounded_value_sequence<
- Fixed_Struct
- >
- (seq)
+ const StructSeq &seq)
+ : std::vector<Fixed_Struct> (seq)
{}
Param_Test::StructSeq::~StructSeq (void)
{}
+::CORBA::ULong
+Param_Test::StructSeq::length (void) const
+{
+ return this->size ();
+}
+
+void
+Param_Test::StructSeq::length (::CORBA::ULong length)
+{
+ this->reserve (length);
+}
+
void Param_Test::StructSeq::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
StructSeq * _tao_tmp_pointer =
static_cast<StructSeq *> (_tao_void_pointer);
@@ -2553,21 +2524,18 @@ Param_Test::Bounded_StructSeq::Bounded_StructSeq (
{}
Param_Test::Bounded_StructSeq::Bounded_StructSeq (
- const Bounded_StructSeq &seq
- )
+ const Bounded_StructSeq &seq)
: TAO::bounded_value_sequence<
Fixed_Struct,
32
- >
- (seq)
+ > (seq)
{}
Param_Test::Bounded_StructSeq::~Bounded_StructSeq (void)
{}
void Param_Test::Bounded_StructSeq::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
Bounded_StructSeq * _tao_tmp_pointer =
static_cast<Bounded_StructSeq *> (_tao_void_pointer);
@@ -2681,44 +2649,32 @@ Param_Test::Coffee_Mix::Coffee_Mix (void)
{}
Param_Test::Coffee_Mix::Coffee_Mix (
- ::CORBA::ULong max
- )
- : TAO::unbounded_object_reference_sequence<
- Coffee,
- Coffee_var
- >
- (max)
+ ::CORBA::ULong max)
+ : std::vector<Coffee> (max)
{}
Param_Test::Coffee_Mix::Coffee_Mix (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Coffee_ptr * buffer,
- ::CORBA::Boolean release
- )
- : TAO::unbounded_object_reference_sequence<
- Coffee,
- Coffee_var
- >
- (max, length, buffer, release)
-{}
-
-Param_Test::Coffee_Mix::Coffee_Mix (
- const Coffee_Mix &seq
- )
- : TAO::unbounded_object_reference_sequence<
- Coffee,
- Coffee_var
- >
- (seq)
+ const Coffee_Mix &seq)
+ : std::vector<Coffee> (seq)
{}
Param_Test::Coffee_Mix::~Coffee_Mix (void)
{}
+::CORBA::ULong
+Param_Test::Coffee_Mix::length (void) const
+{
+ return this->size ();
+}
+
+void
+Param_Test::Coffee_Mix::length (::CORBA::ULong length)
+{
+ this->reserve (length);
+}
+
void Param_Test::Coffee_Mix::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
Coffee_Mix * _tao_tmp_pointer =
static_cast<Coffee_Mix *> (_tao_void_pointer);
@@ -2845,22 +2801,19 @@ Param_Test::Bounded_Coffee_Mix::Bounded_Coffee_Mix (
{}
Param_Test::Bounded_Coffee_Mix::Bounded_Coffee_Mix (
- const Bounded_Coffee_Mix &seq
- )
+ const Bounded_Coffee_Mix &seq)
: TAO::bounded_object_reference_sequence<
Coffee,
Coffee_var,
32
- >
- (seq)
+ > (seq)
{}
Param_Test::Bounded_Coffee_Mix::~Bounded_Coffee_Mix (void)
{}
void Param_Test::Bounded_Coffee_Mix::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
Bounded_Coffee_Mix * _tao_tmp_pointer =
static_cast<Bounded_Coffee_Mix *> (_tao_void_pointer);
@@ -3778,47 +3731,32 @@ Param_Test::ArraySeq::ArraySeq (void)
{}
Param_Test::ArraySeq::ArraySeq (
- ::CORBA::ULong max
- )
- : TAO::unbounded_array_sequence<
- Fixed_Array,
- Fixed_Array_slice,
- Fixed_Array_tag
- >
- (max)
-{}
-
-Param_Test::ArraySeq::ArraySeq (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Param_Test::Fixed_Array * buffer,
- ::CORBA::Boolean release
- )
- : TAO::unbounded_array_sequence<
- Fixed_Array,
- Fixed_Array_slice,
- Fixed_Array_tag
- >
- (max, length, buffer, release)
+ ::CORBA::ULong max)
+ : std::vector<Fixed_Array> (max)
{}
Param_Test::ArraySeq::ArraySeq (
- const ArraySeq &seq
- )
- : TAO::unbounded_array_sequence<
- Fixed_Array,
- Fixed_Array_slice,
- Fixed_Array_tag
- >
- (seq)
+ const ArraySeq &seq)
+ : std::vector<Fixed_Array> (seq)
{}
Param_Test::ArraySeq::~ArraySeq (void)
{}
+::CORBA::ULong
+Param_Test::ArraySeq::length (void) const
+{
+ return this->size ();
+}
+
+void
+Param_Test::ArraySeq::length (::CORBA::ULong length)
+{
+ this->reserve (length);
+}
+
void Param_Test::ArraySeq::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
ArraySeq * _tao_tmp_pointer =
static_cast<ArraySeq *> (_tao_void_pointer);
@@ -3946,23 +3884,20 @@ Param_Test::Bounded_ArraySeq::Bounded_ArraySeq (
{}
Param_Test::Bounded_ArraySeq::Bounded_ArraySeq (
- const Bounded_ArraySeq &seq
- )
+ const Bounded_ArraySeq &seq)
: TAO::bounded_array_sequence<
Fixed_Array,
Fixed_Array_slice,
Fixed_Array_tag,
32
- >
- (seq)
+ > (seq)
{}
Param_Test::Bounded_ArraySeq::~Bounded_ArraySeq (void)
{}
void Param_Test::Bounded_ArraySeq::_tao_any_destructor (
- void * _tao_void_pointer
- )
+ void * _tao_void_pointer)
{
Bounded_ArraySeq * _tao_tmp_pointer =
static_cast<Bounded_ArraySeq *> (_tao_void_pointer);
@@ -5297,38 +5232,30 @@ Param_Test::Recursive_Struct::_tao_seq_Param_Test_Recursive_Struct_::_tao_seq_Pa
{}
Param_Test::Recursive_Struct::_tao_seq_Param_Test_Recursive_Struct_::_tao_seq_Param_Test_Recursive_Struct_ (
- ::CORBA::ULong max
- )
- : TAO::unbounded_value_sequence<
- Param_Test::Recursive_Struct
- >
- (max)
+ ::CORBA::ULong max)
+ : std::vector<Param_Test::Recursive_Struct> (max)
{}
Param_Test::Recursive_Struct::_tao_seq_Param_Test_Recursive_Struct_::_tao_seq_Param_Test_Recursive_Struct_ (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Param_Test::Recursive_Struct * buffer,
- ::CORBA::Boolean release
- )
- : TAO::unbounded_value_sequence<
- Param_Test::Recursive_Struct
- >
- (max, length, buffer, release)
-{}
-
-Param_Test::Recursive_Struct::_tao_seq_Param_Test_Recursive_Struct_::_tao_seq_Param_Test_Recursive_Struct_ (
- const _tao_seq_Param_Test_Recursive_Struct_ &seq
- )
- : TAO::unbounded_value_sequence<
- Param_Test::Recursive_Struct
- >
- (seq)
+ const _tao_seq_Param_Test_Recursive_Struct_ &seq)
+ : std::vector<Param_Test::Recursive_Struct> (seq)
{}
Param_Test::Recursive_Struct::_tao_seq_Param_Test_Recursive_Struct_::~_tao_seq_Param_Test_Recursive_Struct_ (void)
{}
+::CORBA::ULong
+Param_Test::Recursive_Struct::_tao_seq_Param_Test_Recursive_Struct_::length (void) const
+{
+ return this->size ();
+}
+
+void
+Param_Test::Recursive_Struct::_tao_seq_Param_Test_Recursive_Struct_::length (::CORBA::ULong length)
+{
+ this->reserve (length);
+}
+
#endif /* end #if !defined */
// TAO_IDL - Generated from
@@ -5387,38 +5314,30 @@ Param_Test::nested_rec_union::_tao_seq_Param_Test_nested_rec_union_::_tao_seq_Pa
{}
Param_Test::nested_rec_union::_tao_seq_Param_Test_nested_rec_union_::_tao_seq_Param_Test_nested_rec_union_ (
- ::CORBA::ULong max
- )
- : TAO::unbounded_value_sequence<
- Param_Test::nested_rec_union
- >
- (max)
+ ::CORBA::ULong max)
+ : std::vector<Param_Test::nested_rec_union> (max)
{}
Param_Test::nested_rec_union::_tao_seq_Param_Test_nested_rec_union_::_tao_seq_Param_Test_nested_rec_union_ (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Param_Test::nested_rec_union * buffer,
- ::CORBA::Boolean release
- )
- : TAO::unbounded_value_sequence<
- Param_Test::nested_rec_union
- >
- (max, length, buffer, release)
-{}
-
-Param_Test::nested_rec_union::_tao_seq_Param_Test_nested_rec_union_::_tao_seq_Param_Test_nested_rec_union_ (
- const _tao_seq_Param_Test_nested_rec_union_ &seq
- )
- : TAO::unbounded_value_sequence<
- Param_Test::nested_rec_union
- >
- (seq)
+ const _tao_seq_Param_Test_nested_rec_union_ &seq)
+ : std::vector<Param_Test::nested_rec_union> (seq)
{}
Param_Test::nested_rec_union::_tao_seq_Param_Test_nested_rec_union_::~_tao_seq_Param_Test_nested_rec_union_ (void)
{}
+::CORBA::ULong
+Param_Test::nested_rec_union::_tao_seq_Param_Test_nested_rec_union_::length (void) const
+{
+ return this->size ();
+}
+
+void
+Param_Test::nested_rec_union::_tao_seq_Param_Test_nested_rec_union_::length (::CORBA::ULong length)
+{
+ this->reserve (length);
+}
+
#endif /* end #if !defined */
// TAO_IDL - Generated from
@@ -5606,38 +5525,30 @@ Param_Test::Recursive_Union::_tao_seq_Param_Test_Recursive_Union_::_tao_seq_Para
{}
Param_Test::Recursive_Union::_tao_seq_Param_Test_Recursive_Union_::_tao_seq_Param_Test_Recursive_Union_ (
- ::CORBA::ULong max
- )
- : TAO::unbounded_value_sequence<
- Param_Test::Recursive_Union
- >
- (max)
-{}
-
-Param_Test::Recursive_Union::_tao_seq_Param_Test_Recursive_Union_::_tao_seq_Param_Test_Recursive_Union_ (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Param_Test::Recursive_Union * buffer,
- ::CORBA::Boolean release
- )
- : TAO::unbounded_value_sequence<
- Param_Test::Recursive_Union
- >
- (max, length, buffer, release)
+ ::CORBA::ULong max)
+ : std::vector<Param_Test::Recursive_Union> (max)
{}
Param_Test::Recursive_Union::_tao_seq_Param_Test_Recursive_Union_::_tao_seq_Param_Test_Recursive_Union_ (
- const _tao_seq_Param_Test_Recursive_Union_ &seq
- )
- : TAO::unbounded_value_sequence<
- Param_Test::Recursive_Union
- >
- (seq)
+ const _tao_seq_Param_Test_Recursive_Union_ &seq)
+ : std::vector<Param_Test::Recursive_Union> (seq)
{}
Param_Test::Recursive_Union::_tao_seq_Param_Test_Recursive_Union_::~_tao_seq_Param_Test_Recursive_Union_ (void)
{}
+::CORBA::ULong
+Param_Test::Recursive_Union::_tao_seq_Param_Test_Recursive_Union_::length (void) const
+{
+ return this->size ();
+}
+
+void
+Param_Test::Recursive_Union::_tao_seq_Param_Test_Recursive_Union_::length (::CORBA::ULong length)
+{
+ this->reserve (length);
+}
+
#endif /* end #if !defined */
// TAO_IDL - Generated from
@@ -6606,7 +6517,7 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
void operator<<= (
::CORBA::Any &_tao_any,
- const std::vector<Param_Test::Step> &_tao_elem
+ const std::vector<Param_Test::Step> &_tao_elem)
{
TAO::insert_value_vector<Param_Test::Step> (
_tao_any,
@@ -6615,7 +6526,7 @@ void operator<<= (
::CORBA::Boolean operator>>= (
const ::CORBA::Any &_tao_any,
- std::vector<Param_Test::Step> &_tao_elem
+ std::vector<Param_Test::Step> &_tao_elem)
{
return
TAO::extract_value_vector<Param_Test::Step> (
@@ -6634,25 +6545,63 @@ TAO_END_VERSIONED_NAMESPACE_DECL
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+// Copying insertion.
void operator<<= (
- ::CORBA::Any &_tao_any,
- const std::vector<CORBA::Short> &_tao_elem
+ ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_Short_Seq &_tao_elem
+ )
{
- TAO::insert_value_vector<CORBA::Short> (
- _tao_any,
- _tao_elem);
+ if (0 == &_tao_elem) // Trying to de-reference NULL object
+ _tao_any <<= static_cast<Param_Test::Bounded_Short_Seq *>( 0 ); // Use non-copying insertion of a NULL
+ else
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_Short_Seq>::insert_copy (
+ _tao_any,
+ Param_Test::Bounded_Short_Seq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_Short_Seq,
+ _tao_elem
+ );
}
-::CORBA::Boolean operator>>= (
- const ::CORBA::Any &_tao_any,
- std::vector<CORBA::Short> &_tao_elem
+// Non-copying insertion.
+void operator<<= (
+ ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_Short_Seq *_tao_elem
+ )
{
- return
- TAO::extract_value_vector<CORBA::Short> (
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_Short_Seq>::insert (
_tao_any,
- _tao_elem);
+ Param_Test::Bounded_Short_Seq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_Short_Seq,
+ _tao_elem
+ );
+}
+
+// Extraction to non-const pointer (deprecated).
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_Short_Seq *&_tao_elem
+ )
+{
+ return _tao_any >>= const_cast<
+ const Param_Test::Bounded_Short_Seq *&> (
+ _tao_elem
+ );
}
+// Extraction to const pointer.
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_Short_Seq *&_tao_elem
+ )
+{
+ return
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_Short_Seq>::extract (
+ _tao_any,
+ Param_Test::Bounded_Short_Seq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_Short_Seq,
+ _tao_elem
+ );
+}
TAO_END_VERSIONED_NAMESPACE_DECL
@@ -6664,25 +6613,63 @@ TAO_END_VERSIONED_NAMESPACE_DECL
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+// Copying insertion.
void operator<<= (
- ::CORBA::Any &_tao_any,
- const std::vector<CORBA::Long> &_tao_elem
+ ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_Long_Seq &_tao_elem
+ )
{
- TAO::insert_value_vector<CORBA::Long> (
- _tao_any,
- _tao_elem);
+ if (0 == &_tao_elem) // Trying to de-reference NULL object
+ _tao_any <<= static_cast<Param_Test::Bounded_Long_Seq *>( 0 ); // Use non-copying insertion of a NULL
+ else
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_Long_Seq>::insert_copy (
+ _tao_any,
+ Param_Test::Bounded_Long_Seq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_Long_Seq,
+ _tao_elem
+ );
}
-::CORBA::Boolean operator>>= (
- const ::CORBA::Any &_tao_any,
- std::vector<CORBA::Long> &_tao_elem
+// Non-copying insertion.
+void operator<<= (
+ ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_Long_Seq *_tao_elem
+ )
{
- return
- TAO::extract_value_vector<CORBA::Long> (
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_Long_Seq>::insert (
_tao_any,
- _tao_elem);
+ Param_Test::Bounded_Long_Seq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_Long_Seq,
+ _tao_elem
+ );
+}
+
+// Extraction to non-const pointer (deprecated).
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_Long_Seq *&_tao_elem
+ )
+{
+ return _tao_any >>= const_cast<
+ const Param_Test::Bounded_Long_Seq *&> (
+ _tao_elem
+ );
}
+// Extraction to const pointer.
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_Long_Seq *&_tao_elem
+ )
+{
+ return
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_Long_Seq>::extract (
+ _tao_any,
+ Param_Test::Bounded_Long_Seq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_Long_Seq,
+ _tao_elem
+ );
+}
TAO_END_VERSIONED_NAMESPACE_DECL
@@ -6694,25 +6681,63 @@ TAO_END_VERSIONED_NAMESPACE_DECL
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+// Copying insertion.
void operator<<= (
- ::CORBA::Any &_tao_any,
- const std::vector<char *> &_tao_elem
+ ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_StrSeq &_tao_elem
+ )
{
- TAO::insert_value_vector<char *> (
- _tao_any,
- _tao_elem);
+ if (0 == &_tao_elem) // Trying to de-reference NULL object
+ _tao_any <<= static_cast<Param_Test::Bounded_StrSeq *>( 0 ); // Use non-copying insertion of a NULL
+ else
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_StrSeq>::insert_copy (
+ _tao_any,
+ Param_Test::Bounded_StrSeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_StrSeq,
+ _tao_elem
+ );
}
-::CORBA::Boolean operator>>= (
- const ::CORBA::Any &_tao_any,
- std::vector<char *> &_tao_elem
+// Non-copying insertion.
+void operator<<= (
+ ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_StrSeq *_tao_elem
+ )
{
- return
- TAO::extract_value_vector<char *> (
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_StrSeq>::insert (
_tao_any,
- _tao_elem);
+ Param_Test::Bounded_StrSeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_StrSeq,
+ _tao_elem
+ );
}
+// Extraction to non-const pointer (deprecated).
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_StrSeq *&_tao_elem
+ )
+{
+ return _tao_any >>= const_cast<
+ const Param_Test::Bounded_StrSeq *&> (
+ _tao_elem
+ );
+}
+
+// Extraction to const pointer.
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_StrSeq *&_tao_elem
+ )
+{
+ return
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_StrSeq>::extract (
+ _tao_any,
+ Param_Test::Bounded_StrSeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_StrSeq,
+ _tao_elem
+ );
+}
TAO_END_VERSIONED_NAMESPACE_DECL
@@ -6724,25 +6749,63 @@ TAO_END_VERSIONED_NAMESPACE_DECL
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+// Copying insertion.
void operator<<= (
- ::CORBA::Any &_tao_any,
- const std::vector<CORBA::WChar *> &_tao_elem
+ ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_WStrSeq &_tao_elem
+ )
{
- TAO::insert_value_vector<CORBA::WChar *> (
- _tao_any,
- _tao_elem);
+ if (0 == &_tao_elem) // Trying to de-reference NULL object
+ _tao_any <<= static_cast<Param_Test::Bounded_WStrSeq *>( 0 ); // Use non-copying insertion of a NULL
+ else
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_WStrSeq>::insert_copy (
+ _tao_any,
+ Param_Test::Bounded_WStrSeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_WStrSeq,
+ _tao_elem
+ );
}
-::CORBA::Boolean operator>>= (
- const ::CORBA::Any &_tao_any,
- std::vector<CORBA::WChar *> &_tao_elem
+// Non-copying insertion.
+void operator<<= (
+ ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_WStrSeq *_tao_elem
+ )
{
- return
- TAO::extract_value_vector<CORBA::WChar *> (
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_WStrSeq>::insert (
_tao_any,
- _tao_elem);
+ Param_Test::Bounded_WStrSeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_WStrSeq,
+ _tao_elem
+ );
}
+// Extraction to non-const pointer (deprecated).
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_WStrSeq *&_tao_elem
+ )
+{
+ return _tao_any >>= const_cast<
+ const Param_Test::Bounded_WStrSeq *&> (
+ _tao_elem
+ );
+}
+
+// Extraction to const pointer.
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_WStrSeq *&_tao_elem
+ )
+{
+ return
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_WStrSeq>::extract (
+ _tao_any,
+ Param_Test::Bounded_WStrSeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_WStrSeq,
+ _tao_elem
+ );
+}
TAO_END_VERSIONED_NAMESPACE_DECL
@@ -6756,7 +6819,7 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
void operator<<= (
::CORBA::Any &_tao_any,
- const std::vector<Param_Test::Fixed_Struct> &_tao_elem
+ const std::vector<Param_Test::Fixed_Struct> &_tao_elem)
{
TAO::insert_value_vector<Param_Test::Fixed_Struct> (
_tao_any,
@@ -6765,7 +6828,7 @@ void operator<<= (
::CORBA::Boolean operator>>= (
const ::CORBA::Any &_tao_any,
- std::vector<Param_Test::Fixed_Struct> &_tao_elem
+ std::vector<Param_Test::Fixed_Struct> &_tao_elem)
{
return
TAO::extract_value_vector<Param_Test::Fixed_Struct> (
@@ -6784,25 +6847,63 @@ TAO_END_VERSIONED_NAMESPACE_DECL
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+// Copying insertion.
void operator<<= (
- ::CORBA::Any &_tao_any,
- const std::vector<Param_Test::Fixed_Struct> &_tao_elem
+ ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_StructSeq &_tao_elem
+ )
{
- TAO::insert_value_vector<Param_Test::Fixed_Struct> (
- _tao_any,
- _tao_elem);
+ if (0 == &_tao_elem) // Trying to de-reference NULL object
+ _tao_any <<= static_cast<Param_Test::Bounded_StructSeq *>( 0 ); // Use non-copying insertion of a NULL
+ else
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_StructSeq>::insert_copy (
+ _tao_any,
+ Param_Test::Bounded_StructSeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_StructSeq,
+ _tao_elem
+ );
}
-::CORBA::Boolean operator>>= (
- const ::CORBA::Any &_tao_any,
- std::vector<Param_Test::Fixed_Struct> &_tao_elem
+// Non-copying insertion.
+void operator<<= (
+ ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_StructSeq *_tao_elem
+ )
{
- return
- TAO::extract_value_vector<Param_Test::Fixed_Struct> (
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_StructSeq>::insert (
_tao_any,
- _tao_elem);
+ Param_Test::Bounded_StructSeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_StructSeq,
+ _tao_elem
+ );
+}
+
+// Extraction to non-const pointer (deprecated).
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_StructSeq *&_tao_elem
+ )
+{
+ return _tao_any >>= const_cast<
+ const Param_Test::Bounded_StructSeq *&> (
+ _tao_elem
+ );
}
+// Extraction to const pointer.
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_StructSeq *&_tao_elem
+ )
+{
+ return
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_StructSeq>::extract (
+ _tao_any,
+ Param_Test::Bounded_StructSeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_StructSeq,
+ _tao_elem
+ );
+}
TAO_END_VERSIONED_NAMESPACE_DECL
@@ -6816,7 +6917,7 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
void operator<<= (
::CORBA::Any &_tao_any,
- const std::vector<Coffee> &_tao_elem
+ const std::vector<Coffee> &_tao_elem)
{
TAO::insert_objref_vector<Coffee_ptr> (
_tao_any,
@@ -6825,7 +6926,7 @@ void operator<<= (
::CORBA::Boolean operator>>= (
const ::CORBA::Any &_tao_any,
- std::vector<Coffee> &_tao_elem
+ std::vector<Coffee> &_tao_elem)
{
return
TAO::extract_objref_vector<Coffee_ptr> (
@@ -6844,25 +6945,63 @@ TAO_END_VERSIONED_NAMESPACE_DECL
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+// Copying insertion.
void operator<<= (
- ::CORBA::Any &_tao_any,
- const std::vector<Coffee> &_tao_elem
+ ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_Coffee_Mix &_tao_elem
+ )
{
- TAO::insert_objref_vector<Coffee_ptr> (
- _tao_any,
- _tao_elem);
+ if (0 == &_tao_elem) // Trying to de-reference NULL object
+ _tao_any <<= static_cast<Param_Test::Bounded_Coffee_Mix *>( 0 ); // Use non-copying insertion of a NULL
+ else
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_Coffee_Mix>::insert_copy (
+ _tao_any,
+ Param_Test::Bounded_Coffee_Mix::_tao_any_destructor,
+ Param_Test::_tc_Bounded_Coffee_Mix,
+ _tao_elem
+ );
}
-::CORBA::Boolean operator>>= (
- const ::CORBA::Any &_tao_any,
- std::vector<Coffee> &_tao_elem
+// Non-copying insertion.
+void operator<<= (
+ ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_Coffee_Mix *_tao_elem
+ )
{
- return
- TAO::extract_objref_vector<Coffee_ptr> (
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_Coffee_Mix>::insert (
_tao_any,
- _tao_elem);
+ Param_Test::Bounded_Coffee_Mix::_tao_any_destructor,
+ Param_Test::_tc_Bounded_Coffee_Mix,
+ _tao_elem
+ );
}
+// Extraction to non-const pointer (deprecated).
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_Coffee_Mix *&_tao_elem
+ )
+{
+ return _tao_any >>= const_cast<
+ const Param_Test::Bounded_Coffee_Mix *&> (
+ _tao_elem
+ );
+}
+
+// Extraction to const pointer.
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_Coffee_Mix *&_tao_elem
+ )
+{
+ return
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_Coffee_Mix>::extract (
+ _tao_any,
+ Param_Test::Bounded_Coffee_Mix::_tao_any_destructor,
+ Param_Test::_tc_Bounded_Coffee_Mix,
+ _tao_elem
+ );
+}
TAO_END_VERSIONED_NAMESPACE_DECL
@@ -7165,7 +7304,7 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
void operator<<= (
::CORBA::Any &_tao_any,
- const std::vector<Param_Test::Fixed_Array> &_tao_elem
+ const std::vector<Param_Test::Fixed_Array> &_tao_elem)
{
TAO::insert_array_vector<Param_Test::Fixed_Array_forany> (
_tao_any,
@@ -7174,7 +7313,7 @@ void operator<<= (
::CORBA::Boolean operator>>= (
const ::CORBA::Any &_tao_any,
- std::vector<Param_Test::Fixed_Array> &_tao_elem
+ std::vector<Param_Test::Fixed_Array> &_tao_elem)
{
return
TAO::extract_array_vector<Param_Test::Fixed_Array_forany> (
@@ -7193,25 +7332,63 @@ TAO_END_VERSIONED_NAMESPACE_DECL
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+// Copying insertion.
void operator<<= (
- ::CORBA::Any &_tao_any,
- const std::vector<Param_Test::Fixed_Array> &_tao_elem
+ ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_ArraySeq &_tao_elem
+ )
{
- TAO::insert_array_vector<Param_Test::Fixed_Array_forany> (
- _tao_any,
- _tao_elem);
+ if (0 == &_tao_elem) // Trying to de-reference NULL object
+ _tao_any <<= static_cast<Param_Test::Bounded_ArraySeq *>( 0 ); // Use non-copying insertion of a NULL
+ else
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_ArraySeq>::insert_copy (
+ _tao_any,
+ Param_Test::Bounded_ArraySeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_ArraySeq,
+ _tao_elem
+ );
}
-::CORBA::Boolean operator>>= (
- const ::CORBA::Any &_tao_any,
- std::vector<Param_Test::Fixed_Array> &_tao_elem
+// Non-copying insertion.
+void operator<<= (
+ ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_ArraySeq *_tao_elem
+ )
{
- return
- TAO::extract_array_vector<Param_Test::Fixed_Array_forany> (
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_ArraySeq>::insert (
_tao_any,
- _tao_elem);
+ Param_Test::Bounded_ArraySeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_ArraySeq,
+ _tao_elem
+ );
+}
+
+// Extraction to non-const pointer (deprecated).
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ Param_Test::Bounded_ArraySeq *&_tao_elem
+ )
+{
+ return _tao_any >>= const_cast<
+ const Param_Test::Bounded_ArraySeq *&> (
+ _tao_elem
+ );
}
+// Extraction to const pointer.
+::CORBA::Boolean operator>>= (
+ const ::CORBA::Any &_tao_any,
+ const Param_Test::Bounded_ArraySeq *&_tao_elem
+ )
+{
+ return
+ TAO::Any_Dual_Impl_T<Param_Test::Bounded_ArraySeq>::extract (
+ _tao_any,
+ Param_Test::Bounded_ArraySeq::_tao_any_destructor,
+ Param_Test::_tc_Bounded_ArraySeq,
+ _tao_elem
+ );
+}
TAO_END_VERSIONED_NAMESPACE_DECL
@@ -8123,1718 +8300,1788 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
::CORBA::Boolean operator<< (
TAO_OutputCDR &strm,
- const std:;vector<Param_Test::Step &_tao_vector)
+ const std::vector<Param_Test::Step> &_tao_vector)
{
::CORBA::ULong length = _tao_vector.size ();
strm << length;
for ( ::CORBA::ULong i = 0UL; i < length; ++i)
{
- if (! strm << _tao_vector[i]
+ if (! (strm << _tao_vector[i]))
{
return false;
}
- }
-
- return true;
- }
+ }
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<Param_Test::Step &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- Param_Test::Step * tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<Param_Test::Step> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ Param_Test::Step * tmp;
+ if (! (strm >> length))
+ {
+ return false;
+ }
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_PathSpec_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_Bounded_Short_Seq_CPP_
- #define _TAO_CDR_OP_Param_Test_Bounded_Short_Seq_CPP_
-
+#endif /* _TAO_CDR_OP_Param_Test_PathSpec_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_Bounded_Short_Seq_CPP_
+#define _TAO_CDR_OP_Param_Test_Bounded_Short_Seq_CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<CORBA::Short &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<CORBA::Short> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
}
-
- return true;
}
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<CORBA::Short &_tao_vector)
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<CORBA::Short> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ CORBA::Short tmp;
+
+ if (! (strm >> length))
{
- ::CORBA::ULong length = 0UL;
- CORBA::Short tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
{
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
+ return false;
}
- return true;
+ _tao_vector[i] = tmp;
}
-
-
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_Bounded_Short_Seq_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_Bounded_Long_Seq_CPP_
- #define _TAO_CDR_OP_Param_Test_Bounded_Long_Seq_CPP_
-
+#endif /* _TAO_CDR_OP_Param_Test_Bounded_Short_Seq_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_Bounded_Long_Seq_CPP_
+#define _TAO_CDR_OP_Param_Test_Bounded_Long_Seq_CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<CORBA::Long &_tao_vector)
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<CORBA::Long> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
{
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ if (! (strm << _tao_vector[i]))
{
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<CORBA::Long &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- CORBA::Long tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<CORBA::Long> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ CORBA::Long tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_Bounded_Long_Seq_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_Bounded_StrSeq_CPP_
- #define _TAO_CDR_OP_Param_Test_Bounded_StrSeq_CPP_
-
+#endif /* _TAO_CDR_OP_Param_Test_Bounded_Long_Seq_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_Bounded_StrSeq_CPP_
+#define _TAO_CDR_OP_Param_Test_Bounded_StrSeq_CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<char * &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<char *> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
}
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<char * &_tao_vector)
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<char *> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ char * * tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
{
- ::CORBA::ULong length = 0UL;
- char * * tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
+ return false;
}
-
-
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_Bounded_StrSeq_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_Bounded_WStrSeq_CPP_
- #define _TAO_CDR_OP_Param_Test_Bounded_WStrSeq_CPP_
-
+#endif /* _TAO_CDR_OP_Param_Test_Bounded_StrSeq_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_Bounded_WStrSeq_CPP_
+#define _TAO_CDR_OP_Param_Test_Bounded_WStrSeq_CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<CORBA::WChar * &_tao_vector)
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<CORBA::WChar *> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
{
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<CORBA::WChar * &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- CORBA::WChar * * tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
-
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<CORBA::WChar *> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ CORBA::WChar * * tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_Bounded_WStrSeq_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_StructSeq_CPP_
- #define _TAO_CDR_OP_Param_Test_StructSeq_CPP_
-
+#endif /* _TAO_CDR_OP_Param_Test_Bounded_WStrSeq_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_StructSeq_CPP_
+#define _TAO_CDR_OP_Param_Test_StructSeq_CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<Param_Test::Fixed_Struct &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<Param_Test::Fixed_Struct &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- Param_Test::Fixed_Struct tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<Param_Test::Fixed_Struct> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<Param_Test::Fixed_Struct> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ Param_Test::Fixed_Struct tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_StructSeq_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_Bounded_StructSeq_CPP_
- #define _TAO_CDR_OP_Param_Test_Bounded_StructSeq_CPP_
-
+#endif /* _TAO_CDR_OP_Param_Test_StructSeq_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_Bounded_StructSeq_CPP_
+#define _TAO_CDR_OP_Param_Test_Bounded_StructSeq_CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<Param_Test::Fixed_Struct &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<Param_Test::Fixed_Struct &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- Param_Test::Fixed_Struct tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<Param_Test::Fixed_Struct> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<Param_Test::Fixed_Struct> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ Param_Test::Fixed_Struct tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_Bounded_StructSeq_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_Coffee_Mix_CPP_
- #define _TAO_CDR_OP_Param_Test_Coffee_Mix_CPP_
-
+#endif /* _TAO_CDR_OP_Param_Test_Bounded_StructSeq_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_Coffee_Mix_CPP_
+#define _TAO_CDR_OP_Param_Test_Coffee_Mix_CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<Coffee &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<Coffee &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- Coffee * tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<Coffee> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<Coffee> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ Coffee * tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_Coffee_Mix_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_Bounded_Coffee_Mix_CPP_
- #define _TAO_CDR_OP_Param_Test_Bounded_Coffee_Mix_CPP_
-
+#endif /* _TAO_CDR_OP_Param_Test_Coffee_Mix_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_Bounded_Coffee_Mix_CPP_
+#define _TAO_CDR_OP_Param_Test_Bounded_Coffee_Mix_CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<Coffee &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<Coffee &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- Coffee * tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<Coffee> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<Coffee> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ Coffee * tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_Bounded_Coffee_Mix_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
-
-
+#endif /* _TAO_CDR_OP_Param_Test_Bounded_Coffee_Mix_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Var_Struct &_tao_aggregate
- )
- {
- return
- (strm << _tao_aggregate.dbl) &&
- (strm << _tao_aggregate.dummy1.in ()) &&
- (strm << ::ACE_OutputCDR::from_boolean (_tao_aggregate.boole)) &&
- (strm << _tao_aggregate.dummy2.in ()) &&
- (strm << _tao_aggregate.shrt) &&
- (strm << _tao_aggregate.seq);
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Var_Struct &_tao_aggregate
- )
- {
- return
- (strm >> _tao_aggregate.dbl) &&
- (strm >> _tao_aggregate.dummy1.out ()) &&
- (strm >> ::ACE_InputCDR::to_boolean (_tao_aggregate.boole)) &&
- (strm >> _tao_aggregate.dummy2.out ()) &&
- (strm >> _tao_aggregate.shrt) &&
- (strm >> _tao_aggregate.seq);
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Var_Struct &_tao_aggregate
+ )
+{
+ return
+ (strm << _tao_aggregate.dbl) &&
+ (strm << _tao_aggregate.dummy1.in ()) &&
+ (strm << ::ACE_OutputCDR::from_boolean (_tao_aggregate.boole)) &&
+ (strm << _tao_aggregate.dummy2.in ()) &&
+ (strm << _tao_aggregate.shrt) &&
+ (strm << _tao_aggregate.seq);
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Var_Struct &_tao_aggregate
+ )
+{
+ return
+ (strm >> _tao_aggregate.dbl) &&
+ (strm >> _tao_aggregate.dummy1.out ()) &&
+ (strm >> ::ACE_InputCDR::to_boolean (_tao_aggregate.boole)) &&
+ (strm >> _tao_aggregate.dummy2.out ()) &&
+ (strm >> _tao_aggregate.shrt) &&
+ (strm >> _tao_aggregate.seq);
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Nested_Struct &_tao_aggregate
- )
- {
- return
- (strm << _tao_aggregate.vs);
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Nested_Struct &_tao_aggregate
- )
- {
- return
- (strm >> _tao_aggregate.vs);
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Nested_Struct &_tao_aggregate
+ )
+{
+ return
+ (strm << _tao_aggregate.vs);
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Nested_Struct &_tao_aggregate
+ )
+{
+ return
+ (strm >> _tao_aggregate.vs);
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Objref_Struct &_tao_aggregate
- )
- {
- return
- (strm << _tao_aggregate.x) &&
- ::CORBA::Object::marshal (
- _tao_aggregate.y.in (),
- strm
- );
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Objref_Struct &_tao_aggregate
- )
- {
- return
- (strm >> _tao_aggregate.x) &&
- (strm >> _tao_aggregate.y.out ());
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Objref_Struct &_tao_aggregate
+ )
+{
+ return
+ (strm << _tao_aggregate.x) &&
+ ::CORBA::Object::marshal (
+ _tao_aggregate.y.in (),
+ strm
+ );
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Objref_Struct &_tao_aggregate
+ )
+{
+ return
+ (strm >> _tao_aggregate.x) &&
+ (strm >> _tao_aggregate.y.out ());
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_array/cdr_op_cs.cpp:178
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_array/cdr_op_cs.cpp:178
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Fixed_Array_forany &_tao_array
- )
- {
- return
- strm.write_long_array (
- reinterpret_cast <const ACE_CDR::Long *> (_tao_array.in ()),
- 10
- );
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Fixed_Array_forany &_tao_array
- )
- {
- return
- strm.read_long_array (
- reinterpret_cast <ACE_CDR::Long *> (_tao_array.out ()),
- 10
- );
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Fixed_Array_forany &_tao_array
+ )
+{
+ return
+ strm.write_long_array (
+ reinterpret_cast <const ACE_CDR::Long *> (_tao_array.in ()),
+ 10
+ );
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Fixed_Array_forany &_tao_array
+ )
+{
+ return
+ strm.read_long_array (
+ reinterpret_cast <ACE_CDR::Long *> (_tao_array.out ()),
+ 10
+ );
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_array/cdr_op_cs.cpp:178
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_array/cdr_op_cs.cpp:178
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Var_Array_forany &_tao_array
- )
- {
- CORBA::Boolean _tao_marshal_flag = true;
-
- for ( ::CORBA::ULong i0 = 0; i0 < 5 && _tao_marshal_flag; ++i0)
- {
- _tao_marshal_flag = (strm << _tao_array [i0].in ());
- }
-
- return _tao_marshal_flag;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Var_Array_forany &_tao_array
- )
- {
- CORBA::Boolean _tao_marshal_flag = true;
-
- for ( ::CORBA::ULong i0 = 0; i0 < 5 && _tao_marshal_flag; ++i0)
- {
- _tao_marshal_flag = (strm >> _tao_array [i0].out ());
- }
-
- return _tao_marshal_flag;
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Var_Array_forany &_tao_array
+ )
+{
+ CORBA::Boolean _tao_marshal_flag = true;
+
+ for ( ::CORBA::ULong i0 = 0; i0 < 5 && _tao_marshal_flag; ++i0)
+ {
+ _tao_marshal_flag = (strm << _tao_array [i0].in ());
+ }
+
+ return _tao_marshal_flag;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Var_Array_forany &_tao_array
+ )
+{
+ CORBA::Boolean _tao_marshal_flag = true;
+
+ for ( ::CORBA::ULong i0 = 0; i0 < 5 && _tao_marshal_flag; ++i0)
+ {
+ _tao_marshal_flag = (strm >> _tao_array [i0].out ());
+ }
+
+ return _tao_marshal_flag;
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_ArraySeq_CPP_
- #define _TAO_CDR_OP_Param_Test_ArraySeq_CPP_
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_ArraySeq_CPP_
+#define _TAO_CDR_OP_Param_Test_ArraySeq_CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<Param_Test::Fixed_Array &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<Param_Test::Fixed_Array &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- Param_Test::Fixed_Array tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<Param_Test::Fixed_Array> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<Param_Test::Fixed_Array> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ Param_Test::Fixed_Array tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_ArraySeq_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_Bounded_ArraySeq_CPP_
- #define _TAO_CDR_OP_Param_Test_Bounded_ArraySeq_CPP_
-
+#endif /* _TAO_CDR_OP_Param_Test_ArraySeq_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_Bounded_ArraySeq_CPP_
+#define _TAO_CDR_OP_Param_Test_Bounded_ArraySeq_CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<Param_Test::Fixed_Array &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<Param_Test::Fixed_Array &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- Param_Test::Fixed_Array tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<Param_Test::Fixed_Array> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<Param_Test::Fixed_Array> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ Param_Test::Fixed_Array tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_Bounded_ArraySeq_CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_exception/cdr_op_cs.cpp:60
+#endif /* _TAO_CDR_OP_Param_Test_Bounded_ArraySeq_CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_exception/cdr_op_cs.cpp:60
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
-
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Ooops &_tao_aggregate
- )
- {
- // First marshal the repository ID.
- if (strm << _tao_aggregate._rep_id ())
- {
- // Now marshal the members (if any).
- return (
- (strm << _tao_aggregate.reason.in ()) &&
- (strm << _tao_aggregate.input)
- );
- }
- else
- {
- return false;
- }
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Ooops &_tao_aggregate
- )
- {
- // Demarshal the members.
- return (
- (strm >> _tao_aggregate.reason.out ()) &&
- (strm >> _tao_aggregate.input)
- );
- }
-
+
+
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Ooops &_tao_aggregate
+ )
+{
+ // First marshal the repository ID.
+ if (strm << _tao_aggregate._rep_id ())
+ {
+ // Now marshal the members (if any).
+ return (
+ (strm << _tao_aggregate.reason.in ()) &&
+ (strm << _tao_aggregate.input)
+ );
+ }
+ else
+ {
+ return false;
+ }
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Ooops &_tao_aggregate
+ )
+{
+ // Demarshal the members.
+ return (
+ (strm >> _tao_aggregate.reason.out ()) &&
+ (strm >> _tao_aggregate.input)
+ );
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_exception/cdr_op_cs.cpp:60
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_exception/cdr_op_cs.cpp:60
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
-
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::BadBoy &_tao_aggregate
- )
- {
- // Marshal the repository ID.
- return (strm << _tao_aggregate._rep_id ());
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &,
- Param_Test::BadBoy&
- )
- {
- return true;
- }
-
+
+
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::BadBoy &_tao_aggregate
+ )
+{
+ // Marshal the repository ID.
+ return (strm << _tao_aggregate._rep_id ());
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &,
+ Param_Test::BadBoy&
+ )
+{
+ return true;
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_array/cdr_op_cs.cpp:178
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_array/cdr_op_cs.cpp:178
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Big_Union::_another_array_forany &_tao_array
- )
- {
- return
- strm.write_short_array (
- reinterpret_cast <const ACE_CDR::Short *> (_tao_array.in ()),
- 32
- );
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Big_Union::_another_array_forany &_tao_array
- )
- {
- return
- strm.read_short_array (
- reinterpret_cast <ACE_CDR::Short *> (_tao_array.out ()),
- 32
- );
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Big_Union::_another_array_forany &_tao_array
+ )
+{
+ return
+ strm.write_short_array (
+ reinterpret_cast <const ACE_CDR::Short *> (_tao_array.in ()),
+ 32
+ );
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Big_Union::_another_array_forany &_tao_array
+ )
+{
+ return
+ strm.read_short_array (
+ reinterpret_cast <ACE_CDR::Short *> (_tao_array.out ()),
+ 32
+ );
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_union/cdr_op_cs.cpp:67
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_union/cdr_op_cs.cpp:67
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Big_Union &_tao_union
- )
- {
- if ( !(strm << _tao_union._d ()) )
- {
- return false;
- }
-
- ::CORBA::Boolean result = true;
-
- switch (_tao_union._d ())
- {
- case 0:
- {
- Param_Test::Fixed_Array_forany _tao_union_tmp (
- _tao_union.the_array ()
- );
- result = strm << _tao_union_tmp;
- }
- break;
- case 1:
- {
- result =
- TAO::Objref_Traits<Coffee>::marshal (
- _tao_union.the_interface (),
- strm
- );
- }
- break;
- case 2:
- {
- result = strm << _tao_union.the_long ();
- }
- break;
- case 3:
- {
- Param_Test::Big_Union::_another_array_forany _tao_union_tmp (
- _tao_union.another_array ()
- );
- result = strm << _tao_union_tmp;
- }
- break;
- case 4:
- {
- result = strm << _tao_union.the_string ();
- }
- break;
- case 5:
- {
- result = strm << _tao_union.the_sequence ();
- }
- break;
- case 6:
- {
- result = strm << _tao_union.the_any ();
- }
- break;
- case 7:
- {
- result = strm << ::ACE_OutputCDR::from_octet (_tao_union.the_octet ());
- }
- break;
- case 8:
- {
- result = strm << ::ACE_OutputCDR::from_char (_tao_union.the_char ());
- }
- break;
- case 9:
- {
- result = strm << ::ACE_OutputCDR::from_boolean (_tao_union.the_boolean ());
- }
- break;
- case 10:
- {
- result = strm << _tao_union.the_var_struct ();
- }
- break;
- case 11:
- {
- result = strm << _tao_union.the_fixed_struct ();
- }
- break;
- default:
- break;
- }
-
- return result;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Big_Union &_tao_union
- )
- {
- CORBA::Short _tao_discriminant;
- if ( !(strm >> _tao_discriminant) )
- {
- return false;
- }
-
- ::CORBA::Boolean result = true;
-
- switch (_tao_discriminant)
- {
- case 0:
- {
- Param_Test::Fixed_Array _tao_union_tmp;
- Param_Test::Fixed_Array_forany _tao_union_helper (
- _tao_union_tmp
- );
- result = strm >> _tao_union_helper;
-
- if (result)
- {
- _tao_union.the_array (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 1:
- {
- Coffee_var _tao_union_tmp;
- result = strm >> _tao_union_tmp.inout ();
-
- if (result)
- {
- _tao_union.the_interface (_tao_union_tmp.in ());
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 2:
- {
- CORBA::Long _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.the_long (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 3:
- {
- Param_Test::Big_Union::_another_array _tao_union_tmp;
- Param_Test::Big_Union::_another_array_forany _tao_union_helper (
- _tao_union_tmp
- );
- result = strm >> _tao_union_helper;
-
- if (result)
- {
- _tao_union.another_array (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 4:
- {
- ::CORBA::String_var _tao_union_tmp;
- result = strm >> _tao_union_tmp.out ();
-
- if (result)
- {
- _tao_union.the_string (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 5:
- {
- CORBA::ShortSeq _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.the_sequence (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 6:
- {
- CORBA::Any _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.the_any (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 7:
- {
- ::CORBA::Octet _tao_union_tmp;
- ::ACE_InputCDR::to_octet _tao_union_helper (_tao_union_tmp);
- result = strm >> _tao_union_helper;
-
- if (result)
- {
- _tao_union.the_octet (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 8:
- {
- ::CORBA::Char _tao_union_tmp;
- ::ACE_InputCDR::to_char _tao_union_helper (_tao_union_tmp);
- result = strm >> _tao_union_helper;
-
- if (result)
- {
- _tao_union.the_char (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 9:
- {
- ::CORBA::Boolean _tao_union_tmp;
- ::ACE_InputCDR::to_boolean _tao_union_helper (_tao_union_tmp);
- result = strm >> _tao_union_helper;
-
- if (result)
- {
- _tao_union.the_boolean (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 10:
- {
- Param_Test::Var_Struct _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.the_var_struct (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 11:
- {
- Param_Test::Fixed_Struct _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.the_fixed_struct (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- default:
- _tao_union._d (_tao_discriminant);
- break;
- }
-
- return result;
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Big_Union &_tao_union
+ )
+{
+ if ( !(strm << _tao_union._d ()) )
+ {
+ return false;
+ }
+
+ ::CORBA::Boolean result = true;
+
+ switch (_tao_union._d ())
+ {
+ case 0:
+ {
+ Param_Test::Fixed_Array_forany _tao_union_tmp (
+ _tao_union.the_array ()
+ );
+ result = strm << _tao_union_tmp;
+ }
+ break;
+ case 1:
+ {
+ result =
+ TAO::Objref_Traits<Coffee>::marshal (
+ _tao_union.the_interface (),
+ strm
+ );
+ }
+ break;
+ case 2:
+ {
+ result = strm << _tao_union.the_long ();
+ }
+ break;
+ case 3:
+ {
+ Param_Test::Big_Union::_another_array_forany _tao_union_tmp (
+ _tao_union.another_array ()
+ );
+ result = strm << _tao_union_tmp;
+ }
+ break;
+ case 4:
+ {
+ result = strm << _tao_union.the_string ();
+ }
+ break;
+ case 5:
+ {
+ result = strm << _tao_union.the_sequence ();
+ }
+ break;
+ case 6:
+ {
+ result = strm << _tao_union.the_any ();
+ }
+ break;
+ case 7:
+ {
+ result = strm << ::ACE_OutputCDR::from_octet (_tao_union.the_octet ());
+ }
+ break;
+ case 8:
+ {
+ result = strm << ::ACE_OutputCDR::from_char (_tao_union.the_char ());
+ }
+ break;
+ case 9:
+ {
+ result = strm << ::ACE_OutputCDR::from_boolean (_tao_union.the_boolean ());
+ }
+ break;
+ case 10:
+ {
+ result = strm << _tao_union.the_var_struct ();
+ }
+ break;
+ case 11:
+ {
+ result = strm << _tao_union.the_fixed_struct ();
+ }
+ break;
+ default:
+ break;
+ }
+
+ return result;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Big_Union &_tao_union
+ )
+{
+ CORBA::Short _tao_discriminant;
+ if ( !(strm >> _tao_discriminant) )
+ {
+ return false;
+ }
+
+ ::CORBA::Boolean result = true;
+
+ switch (_tao_discriminant)
+ {
+ case 0:
+ {
+ Param_Test::Fixed_Array _tao_union_tmp;
+ Param_Test::Fixed_Array_forany _tao_union_helper (
+ _tao_union_tmp
+ );
+ result = strm >> _tao_union_helper;
+
+ if (result)
+ {
+ _tao_union.the_array (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 1:
+ {
+ Coffee_var _tao_union_tmp;
+ result = strm >> _tao_union_tmp.inout ();
+
+ if (result)
+ {
+ _tao_union.the_interface (_tao_union_tmp.in ());
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 2:
+ {
+ CORBA::Long _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.the_long (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 3:
+ {
+ Param_Test::Big_Union::_another_array _tao_union_tmp;
+ Param_Test::Big_Union::_another_array_forany _tao_union_helper (
+ _tao_union_tmp
+ );
+ result = strm >> _tao_union_helper;
+
+ if (result)
+ {
+ _tao_union.another_array (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 4:
+ {
+ ::CORBA::String_var _tao_union_tmp;
+ result = strm >> _tao_union_tmp.out ();
+
+ if (result)
+ {
+ _tao_union.the_string (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 5:
+ {
+ CORBA::ShortSeq _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.the_sequence (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 6:
+ {
+ CORBA::Any _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.the_any (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 7:
+ {
+ ::CORBA::Octet _tao_union_tmp;
+ ::ACE_InputCDR::to_octet _tao_union_helper (_tao_union_tmp);
+ result = strm >> _tao_union_helper;
+
+ if (result)
+ {
+ _tao_union.the_octet (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 8:
+ {
+ ::CORBA::Char _tao_union_tmp;
+ ::ACE_InputCDR::to_char _tao_union_helper (_tao_union_tmp);
+ result = strm >> _tao_union_helper;
+
+ if (result)
+ {
+ _tao_union.the_char (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 9:
+ {
+ ::CORBA::Boolean _tao_union_tmp;
+ ::ACE_InputCDR::to_boolean _tao_union_helper (_tao_union_tmp);
+ result = strm >> _tao_union_helper;
+
+ if (result)
+ {
+ _tao_union.the_boolean (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 10:
+ {
+ Param_Test::Var_Struct _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.the_var_struct (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 11:
+ {
+ Param_Test::Fixed_Struct _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.the_fixed_struct (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ default:
+ _tao_union._d (_tao_discriminant);
+ break;
+ }
+
+ return result;
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_enum/cdr_op_cs.cpp:51
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_enum/cdr_op_cs.cpp:51
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (TAO_OutputCDR &strm, Param_Test::Small_Union_Switch _tao_enumerator)
- {
- return strm << static_cast< ::CORBA::ULong> (_tao_enumerator);
- }
-
- ::CORBA::Boolean operator>> (TAO_InputCDR &strm, Param_Test::Small_Union_Switch & _tao_enumerator)
- {
- ::CORBA::ULong _tao_temp = 0;
- ::CORBA::Boolean const _tao_success = strm >> _tao_temp;
-
- if (_tao_success)
- {
- _tao_enumerator = static_cast<Param_Test::Small_Union_Switch> (_tao_temp);
- }
-
- return _tao_success;
- }
-
+::CORBA::Boolean operator<< (TAO_OutputCDR &strm, Param_Test::Small_Union_Switch _tao_enumerator)
+{
+ return strm << static_cast< ::CORBA::ULong> (_tao_enumerator);
+}
+
+::CORBA::Boolean operator>> (TAO_InputCDR &strm, Param_Test::Small_Union_Switch & _tao_enumerator)
+{
+ ::CORBA::ULong _tao_temp = 0;
+ ::CORBA::Boolean const _tao_success = strm >> _tao_temp;
+
+ if (_tao_success)
+ {
+ _tao_enumerator = static_cast<Param_Test::Small_Union_Switch> (_tao_temp);
+ }
+
+ return _tao_success;
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_union/cdr_op_cs.cpp:67
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_union/cdr_op_cs.cpp:67
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Small_Union &_tao_union
- )
- {
- if ( !(strm << _tao_union._d ()) )
- {
- return false;
- }
-
- ::CORBA::Boolean result = true;
-
- switch (_tao_union._d ())
- {
- case Param_Test::A_LONG:
- {
- result = strm << _tao_union.the_long ();
- }
- break;
- case Param_Test::A_SHORT:
- {
- result = strm << _tao_union.the_short ();
- }
- break;
- }
-
- return result;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Small_Union &_tao_union
- )
- {
- Param_Test::Small_Union_Switch _tao_discriminant;
- if ( !(strm >> _tao_discriminant) )
- {
- return false;
- }
-
- ::CORBA::Boolean result = true;
-
- switch (_tao_discriminant)
- {
- case Param_Test::A_LONG:
- {
- CORBA::Long _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.the_long (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case Param_Test::A_SHORT:
- {
- CORBA::Short _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.the_short (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- }
-
- return result;
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Small_Union &_tao_union
+ )
+{
+ if ( !(strm << _tao_union._d ()) )
+ {
+ return false;
+ }
+
+ ::CORBA::Boolean result = true;
+
+ switch (_tao_union._d ())
+ {
+ case Param_Test::A_LONG:
+ {
+ result = strm << _tao_union.the_long ();
+ }
+ break;
+ case Param_Test::A_SHORT:
+ {
+ result = strm << _tao_union.the_short ();
+ }
+ break;
+ }
+
+ return result;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Small_Union &_tao_union
+ )
+{
+ Param_Test::Small_Union_Switch _tao_discriminant;
+ if ( !(strm >> _tao_discriminant) )
+ {
+ return false;
+ }
+
+ ::CORBA::Boolean result = true;
+
+ switch (_tao_discriminant)
+ {
+ case Param_Test::A_LONG:
+ {
+ CORBA::Long _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.the_long (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case Param_Test::A_SHORT:
+ {
+ CORBA::Short _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.the_short (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ }
+
+ return result;
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::level4 &_tao_aggregate
- )
- {
- return
- (strm << _tao_aggregate.level5_string.in ()) &&
- (strm << _tao_aggregate.level5_any);
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::level4 &_tao_aggregate
- )
- {
- return
- (strm >> _tao_aggregate.level5_string.out ()) &&
- (strm >> _tao_aggregate.level5_any);
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::level4 &_tao_aggregate
+ )
+{
+ return
+ (strm << _tao_aggregate.level5_string.in ()) &&
+ (strm << _tao_aggregate.level5_any);
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::level4 &_tao_aggregate
+ )
+{
+ return
+ (strm >> _tao_aggregate.level5_string.out ()) &&
+ (strm >> _tao_aggregate.level5_any);
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::level8 &_tao_aggregate
- )
- {
- return
- (strm << _tao_aggregate.level9_string.in ()) &&
- (strm << ::ACE_OutputCDR::from_boolean (_tao_aggregate.level9_boolean)) &&
- (strm << _tao_aggregate.level9_short);
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::level8 &_tao_aggregate
- )
- {
- return
- (strm >> _tao_aggregate.level9_string.out ()) &&
- (strm >> ::ACE_InputCDR::to_boolean (_tao_aggregate.level9_boolean)) &&
- (strm >> _tao_aggregate.level9_short);
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::level8 &_tao_aggregate
+ )
+{
+ return
+ (strm << _tao_aggregate.level9_string.in ()) &&
+ (strm << ::ACE_OutputCDR::from_boolean (_tao_aggregate.level9_boolean)) &&
+ (strm << _tao_aggregate.level9_short);
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::level8 &_tao_aggregate
+ )
+{
+ return
+ (strm >> _tao_aggregate.level9_string.out ()) &&
+ (strm >> ::ACE_InputCDR::to_boolean (_tao_aggregate.level9_boolean)) &&
+ (strm >> _tao_aggregate.level9_short);
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_Recursive_Struct__tao_seq_Param_Test_Recursive_Struct__CPP_
- #define _TAO_CDR_OP_Param_Test_Recursive_Struct__tao_seq_Param_Test_Recursive_Struct__CPP_
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_Recursive_Struct__tao_seq_Param_Test_Recursive_Struct__CPP_
+#define _TAO_CDR_OP_Param_Test_Recursive_Struct__tao_seq_Param_Test_Recursive_Struct__CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<Param_Test::Recursive_Struct &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<Param_Test::Recursive_Struct &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- Param_Test::Recursive_Struct * tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<Param_Test::Recursive_Struct> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<Param_Test::Recursive_Struct> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ Param_Test::Recursive_Struct * tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_Recursive_Struct__tao_seq_Param_Test_Recursive_Struct__CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
-
-
+#endif /* _TAO_CDR_OP_Param_Test_Recursive_Struct__tao_seq_Param_Test_Recursive_Struct__CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Recursive_Struct &_tao_aggregate
- )
- {
- return
- (strm << _tao_aggregate.x) &&
- (strm << _tao_aggregate.children);
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Recursive_Struct &_tao_aggregate
- )
- {
- return
- (strm >> _tao_aggregate.x) &&
- (strm >> _tao_aggregate.children);
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Recursive_Struct &_tao_aggregate
+ )
+{
+ return
+ (strm << _tao_aggregate.x) &&
+ (strm << _tao_aggregate.children);
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Recursive_Struct &_tao_aggregate
+ )
+{
+ return
+ (strm >> _tao_aggregate.x) &&
+ (strm >> _tao_aggregate.children);
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_nested_rec_union__tao_seq_Param_Test_nested_rec_union__CPP_
- #define _TAO_CDR_OP_Param_Test_nested_rec_union__tao_seq_Param_Test_nested_rec_union__CPP_
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_nested_rec_union__tao_seq_Param_Test_nested_rec_union__CPP_
+#define _TAO_CDR_OP_Param_Test_nested_rec_union__tao_seq_Param_Test_nested_rec_union__CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<Param_Test::nested_rec_union &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<Param_Test::nested_rec_union &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- Param_Test::nested_rec_union * tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<Param_Test::nested_rec_union> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<Param_Test::nested_rec_union> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ Param_Test::nested_rec_union * tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_nested_rec_union__tao_seq_Param_Test_nested_rec_union__CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_union/cdr_op_cs.cpp:67
-
-
+#endif /* _TAO_CDR_OP_Param_Test_nested_rec_union__tao_seq_Param_Test_nested_rec_union__CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_union/cdr_op_cs.cpp:67
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::nested_rec_union &_tao_union
- )
- {
- if ( !(strm << _tao_union._d ()) )
- {
- return false;
- }
-
- ::CORBA::Boolean result = true;
-
- switch (_tao_union._d ())
- {
- case 0:
- {
- result = strm << _tao_union.value ();
- }
- break;
- case 1:
- {
- result = strm << _tao_union.nested_rec_member ();
- }
- break;
- default:
- break;
- }
-
- return result;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::nested_rec_union &_tao_union
- )
- {
- CORBA::Short _tao_discriminant;
- if ( !(strm >> _tao_discriminant) )
- {
- return false;
- }
-
- ::CORBA::Boolean result = true;
-
- switch (_tao_discriminant)
- {
- case 0:
- {
- CORBA::Long _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.value (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 1:
- {
- Param_Test::nested_rec_union::_tao_seq_Param_Test_nested_rec_union_ _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.nested_rec_member (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- default:
- _tao_union._d (_tao_discriminant);
- break;
- }
-
- return result;
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::nested_rec_union &_tao_union
+ )
+{
+ if ( !(strm << _tao_union._d ()) )
+ {
+ return false;
+ }
+
+ ::CORBA::Boolean result = true;
+
+ switch (_tao_union._d ())
+ {
+ case 0:
+ {
+ result = strm << _tao_union.value ();
+ }
+ break;
+ case 1:
+ {
+ result = strm << _tao_union.nested_rec_member ();
+ }
+ break;
+ default:
+ break;
+ }
+
+ return result;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::nested_rec_union &_tao_union
+ )
+{
+ CORBA::Short _tao_discriminant;
+ if ( !(strm >> _tao_discriminant) )
+ {
+ return false;
+ }
+
+ ::CORBA::Boolean result = true;
+
+ switch (_tao_discriminant)
+ {
+ case 0:
+ {
+ CORBA::Long _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.value (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 1:
+ {
+ Param_Test::nested_rec_union::_tao_seq_Param_Test_nested_rec_union_ _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.nested_rec_member (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ default:
+ _tao_union._d (_tao_discriminant);
+ break;
+ }
+
+ return result;
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
- #if !defined _TAO_CDR_OP_Param_Test_Recursive_Union__tao_seq_Param_Test_Recursive_Union__CPP_
- #define _TAO_CDR_OP_Param_Test_Recursive_Union__tao_seq_Param_Test_Recursive_Union__CPP_
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96
+#if !defined _TAO_CDR_OP_Param_Test_Recursive_Union__tao_seq_Param_Test_Recursive_Union__CPP_
+#define _TAO_CDR_OP_Param_Test_Recursive_Union__tao_seq_Param_Test_Recursive_Union__CPP_
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const std:;vector<Param_Test::Recursive_Union &_tao_vector)
- {
- ::CORBA::ULong length = _tao_vector.size ();
- strm << length;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm << _tao_vector[i]
- {
- return false;
- }
- }
-
- return true;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- std::vector<Param_Test::Recursive_Union &_tao_vector)
- {
- ::CORBA::ULong length = 0UL;
- Param_Test::Recursive_Union * tmp;
-
- for ( ::CORBA::ULong i = 0UL; i < length; ++i)
- {
- if (! strm >> tmp)
- {
- return false;
- }
-
- _tao_vector[i] = tmp;
- }
-
- return true;
- }
-
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const std::vector<Param_Test::Recursive_Union> &_tao_vector)
+{
+ ::CORBA::ULong length = _tao_vector.size ();
+ strm << length;
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm << _tao_vector[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ std::vector<Param_Test::Recursive_Union> &_tao_vector)
+{
+ ::CORBA::ULong length = 0UL;
+ Param_Test::Recursive_Union * tmp;
+
+ if (! (strm >> length))
+ {
+ return false;
+ }
+
+ for ( ::CORBA::ULong i = 0UL; i < length; ++i)
+ {
+ if (! (strm >> tmp))
+ {
+ return false;
+ }
+
+ _tao_vector[i] = tmp;
+ }
+
+ return true;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
- #endif /* _TAO_CDR_OP_Param_Test_Recursive_Union__tao_seq_Param_Test_Recursive_Union__CPP_ */
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_union/cdr_op_cs.cpp:67
-
-
+#endif /* _TAO_CDR_OP_Param_Test_Recursive_Union__tao_seq_Param_Test_Recursive_Union__CPP_ */
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_union/cdr_op_cs.cpp:67
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Recursive_Union &_tao_union
- )
- {
- if ( !(strm << _tao_union._d ()) )
- {
- return false;
- }
-
- ::CORBA::Boolean result = true;
-
- switch (_tao_union._d ())
- {
- case 0:
- {
- result = strm << _tao_union.rec_member ();
- }
- break;
- case 1:
- {
- result = strm << _tao_union.nested_member ();
- }
- break;
- default:
- break;
- }
-
- return result;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Recursive_Union &_tao_union
- )
- {
- CORBA::Short _tao_discriminant;
- if ( !(strm >> _tao_discriminant) )
- {
- return false;
- }
-
- ::CORBA::Boolean result = true;
-
- switch (_tao_discriminant)
- {
- case 0:
- {
- Param_Test::Recursive_Union::_tao_seq_Param_Test_Recursive_Union_ _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.rec_member (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
- }
- break;
- case 1:
- {
- Param_Test::nested_rec_union _tao_union_tmp;
- result = strm >> _tao_union_tmp;
-
- if (result)
- {
- _tao_union.nested_member (_tao_union_tmp);
- _tao_union._d (_tao_discriminant);
- }
-
- }
- break;
- default:
- _tao_union._d (_tao_discriminant);
- break;
- }
-
- return result;
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Recursive_Union &_tao_union
+ )
+{
+ if ( !(strm << _tao_union._d ()) )
+ {
+ return false;
+ }
+
+ ::CORBA::Boolean result = true;
+
+ switch (_tao_union._d ())
+ {
+ case 0:
+ {
+ result = strm << _tao_union.rec_member ();
+ }
+ break;
+ case 1:
+ {
+ result = strm << _tao_union.nested_member ();
+ }
+ break;
+ default:
+ break;
+ }
+
+ return result;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Recursive_Union &_tao_union
+ )
+{
+ CORBA::Short _tao_discriminant;
+ if ( !(strm >> _tao_discriminant) )
+ {
+ return false;
+ }
+
+ ::CORBA::Boolean result = true;
+
+ switch (_tao_discriminant)
+ {
+ case 0:
+ {
+ Param_Test::Recursive_Union::_tao_seq_Param_Test_Recursive_Union_ _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.rec_member (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+ }
+ break;
+ case 1:
+ {
+ Param_Test::nested_rec_union _tao_union_tmp;
+ result = strm >> _tao_union_tmp;
+
+ if (result)
+ {
+ _tao_union.nested_member (_tao_union_tmp);
+ _tao_union._d (_tao_discriminant);
+ }
+
+ }
+ break;
+ default:
+ _tao_union._d (_tao_discriminant);
+ break;
+ }
+
+ return result;
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_array/cdr_op_cs.cpp:178
-
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_array/cdr_op_cs.cpp:178
+
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test::Multdim_Array_forany &_tao_array
- )
- {
- CORBA::Boolean _tao_marshal_flag = true;
-
- for ( ::CORBA::ULong i0 = 0; i0 < 5 && _tao_marshal_flag; ++i0)
- {
- for ( ::CORBA::ULong i1 = 0; i1 < 3 && _tao_marshal_flag; ++i1)
- {
- Param_Test::Fixed_Array_var tmp_var (Param_Test::Fixed_Array_dup (_tao_array[i0][i1]));
- Param_Test::Fixed_Array_forany tmp (tmp_var.inout ());
- _tao_marshal_flag = (strm << tmp);
- }
- }
-
- return _tao_marshal_flag;
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test::Multdim_Array_forany &_tao_array
- )
- {
- CORBA::Boolean _tao_marshal_flag = true;
-
- for ( ::CORBA::ULong i0 = 0; i0 < 5 && _tao_marshal_flag; ++i0)
- {
- for ( ::CORBA::ULong i1 = 0; i1 < 3 && _tao_marshal_flag; ++i1)
- {
- Param_Test::Fixed_Array_forany tmp (Param_Test::Fixed_Array_alloc ());
- _tao_marshal_flag = (strm >> tmp);
- Param_Test::Fixed_Array_copy (_tao_array[i0][i1], tmp.in ());
- Param_Test::Fixed_Array_free (tmp.inout ());
- }
- }
-
- return _tao_marshal_flag;
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test::Multdim_Array_forany &_tao_array
+ )
+{
+ CORBA::Boolean _tao_marshal_flag = true;
+
+ for ( ::CORBA::ULong i0 = 0; i0 < 5 && _tao_marshal_flag; ++i0)
+ {
+ for ( ::CORBA::ULong i1 = 0; i1 < 3 && _tao_marshal_flag; ++i1)
+ {
+ Param_Test::Fixed_Array_var tmp_var (Param_Test::Fixed_Array_dup (_tao_array[i0][i1]));
+ Param_Test::Fixed_Array_forany tmp (tmp_var.inout ());
+ _tao_marshal_flag = (strm << tmp);
+ }
+ }
+
+ return _tao_marshal_flag;
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test::Multdim_Array_forany &_tao_array
+ )
+{
+ CORBA::Boolean _tao_marshal_flag = true;
+
+ for ( ::CORBA::ULong i0 = 0; i0 < 5 && _tao_marshal_flag; ++i0)
+ {
+ for ( ::CORBA::ULong i1 = 0; i1 < 3 && _tao_marshal_flag; ++i1)
+ {
+ Param_Test::Fixed_Array_forany tmp (Param_Test::Fixed_Array_alloc ());
+ _tao_marshal_flag = (strm >> tmp);
+ Param_Test::Fixed_Array_copy (_tao_array[i0][i1], tmp.in ());
+ Param_Test::Fixed_Array_free (tmp.inout ());
+ }
+ }
+
+ return _tao_marshal_flag;
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
-
- // TAO_IDL - Generated from
- // w:\tao\tao_idl\be\be_visitor_interface/cdr_op_cs.cpp:63
-
+
+
+// TAO_IDL - Generated from
+// w:\tao\tao_idl\be\be_visitor_interface/cdr_op_cs.cpp:63
+
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
- ::CORBA::Boolean operator<< (
- TAO_OutputCDR &strm,
- const Param_Test_ptr _tao_objref)
- {
- ::CORBA::Object_ptr _tao_corba_obj = _tao_objref;
- return (strm << _tao_corba_obj);
- }
-
- ::CORBA::Boolean operator>> (
- TAO_InputCDR &strm,
- Param_Test_ptr &_tao_objref)
- {
- ::CORBA::Object_var obj;
-
- if (!(strm >> obj.inout ()))
- {
- return false;
- }
-
- typedef ::Param_Test RHS_SCOPED_NAME;
-
- // Narrow to the right type.
- _tao_objref =
- TAO::Narrow_Utils<RHS_SCOPED_NAME>::unchecked_narrow (
- obj.in (),
- _TAO_Param_Test_Proxy_Broker_Factory_function_pointer
- );
-
- return true;
- }
-
+::CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const Param_Test_ptr _tao_objref)
+{
+ ::CORBA::Object_ptr _tao_corba_obj = _tao_objref;
+ return (strm << _tao_corba_obj);
+}
+
+::CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ Param_Test_ptr &_tao_objref)
+{
+ ::CORBA::Object_var obj;
+
+ if (!(strm >> obj.inout ()))
+ {
+ return false;
+ }
+
+ typedef ::Param_Test RHS_SCOPED_NAME;
+
+ // Narrow to the right type.
+ _tao_objref =
+ TAO::Narrow_Utils<RHS_SCOPED_NAME>::unchecked_narrow (
+ obj.in (),
+ _TAO_Param_Test_Proxy_Broker_Factory_function_pointer
+ );
+
+ return true;
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
-
+
diff --git a/modules/TAO/tests/Param_Test/param_testC.h b/modules/TAO/tests/Param_Test/param_testC.h
index ce2ccbc1611..01808a3a163 100644
--- a/modules/TAO/tests/Param_Test/param_testC.h
+++ b/modules/TAO/tests/Param_Test/param_testC.h
@@ -521,41 +521,20 @@ public:
#if !defined (_PARAM_TEST_PATHSPEC_CH_)
#define _PARAM_TEST_PATHSPEC_CH_
- class PathSpec;
-
- typedef
- TAO_VarSeq_Var_T<
- PathSpec
- >
- PathSpec_var;
-
- typedef
- TAO_Seq_Out_T<
- PathSpec
- >
- PathSpec_out;
-
class PathSpec
: public
- TAO::unbounded_value_sequence<
- Step
- >
+ std::vector<Step>
{
public:
PathSpec (void);
PathSpec ( ::CORBA::ULong max);
- PathSpec (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Step* buffer,
- ::CORBA::Boolean release = false);
PathSpec (const PathSpec &);
virtual ~PathSpec (void);
- static void _tao_any_destructor (void *);
+ virtual ::CORBA::ULong length (void) const;
+ virtual void length (::CORBA::ULong);
- typedef PathSpec_var _var_type;
- typedef PathSpec_out _out_type;
+ static void _tao_any_destructor (void *);
};
#endif /* end #if !defined */
@@ -842,41 +821,20 @@ public:
#if !defined (_PARAM_TEST_STRUCTSEQ_CH_)
#define _PARAM_TEST_STRUCTSEQ_CH_
- class StructSeq;
-
- typedef
- TAO_FixedSeq_Var_T<
- StructSeq
- >
- StructSeq_var;
-
- typedef
- TAO_Seq_Out_T<
- StructSeq
- >
- StructSeq_out;
-
class StructSeq
: public
- TAO::unbounded_value_sequence<
- Fixed_Struct
- >
+ std::vector<Fixed_Struct>
{
public:
StructSeq (void);
StructSeq ( ::CORBA::ULong max);
- StructSeq (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Fixed_Struct* buffer,
- ::CORBA::Boolean release = false);
StructSeq (const StructSeq &);
virtual ~StructSeq (void);
- static void _tao_any_destructor (void *);
+ virtual ::CORBA::ULong length (void) const;
+ virtual void length (::CORBA::ULong);
- typedef StructSeq_var _var_type;
- typedef StructSeq_out _out_type;
+ static void _tao_any_destructor (void *);
};
#endif /* end #if !defined */
@@ -959,42 +917,20 @@ public:
#if !defined (_PARAM_TEST_COFFEE_MIX_CH_)
#define _PARAM_TEST_COFFEE_MIX_CH_
- class Coffee_Mix;
-
- typedef
- TAO_VarSeq_Var_T<
- Coffee_Mix
- >
- Coffee_Mix_var;
-
- typedef
- TAO_Seq_Out_T<
- Coffee_Mix
- >
- Coffee_Mix_out;
-
class Coffee_Mix
: public
- TAO::unbounded_object_reference_sequence<
- Coffee,
- Coffee_var
- >
+ std::vector<Coffee>
{
public:
Coffee_Mix (void);
Coffee_Mix ( ::CORBA::ULong max);
- Coffee_Mix (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Coffee_ptr* buffer,
- ::CORBA::Boolean release = false);
Coffee_Mix (const Coffee_Mix &);
virtual ~Coffee_Mix (void);
- static void _tao_any_destructor (void *);
+ virtual ::CORBA::ULong length (void) const;
+ virtual void length (::CORBA::ULong);
- typedef Coffee_Mix_var _var_type;
- typedef Coffee_Mix_out _out_type;
+ static void _tao_any_destructor (void *);
};
#endif /* end #if !defined */
@@ -1406,43 +1342,20 @@ public:
#if !defined (_PARAM_TEST_ARRAYSEQ_CH_)
#define _PARAM_TEST_ARRAYSEQ_CH_
- class ArraySeq;
-
- typedef
- TAO_FixedSeq_Var_T<
- ArraySeq
- >
- ArraySeq_var;
-
- typedef
- TAO_Seq_Out_T<
- ArraySeq
- >
- ArraySeq_out;
-
class ArraySeq
: public
- TAO::unbounded_array_sequence<
- Fixed_Array,
- Fixed_Array_slice,
- Fixed_Array_tag
- >
+ std::vector<Fixed_Array>
{
public:
ArraySeq (void);
ArraySeq ( ::CORBA::ULong max);
- ArraySeq (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Fixed_Array* buffer,
- ::CORBA::Boolean release = false);
ArraySeq (const ArraySeq &);
virtual ~ArraySeq (void);
- static void _tao_any_destructor (void *);
+ virtual ::CORBA::ULong length (void) const;
+ virtual void length (::CORBA::ULong);
- typedef ArraySeq_var _var_type;
- typedef ArraySeq_out _out_type;
+ static void _tao_any_destructor (void *);
};
#endif /* end #if !defined */
@@ -2043,20 +1956,16 @@ public:
class _tao_seq_Param_Test_Recursive_Struct_
: public
- TAO::unbounded_value_sequence<
- Param_Test::Recursive_Struct
- >
+ std::vector<Param_Test::Recursive_Struct>
{
public:
_tao_seq_Param_Test_Recursive_Struct_ (void);
_tao_seq_Param_Test_Recursive_Struct_ ( ::CORBA::ULong max);
- _tao_seq_Param_Test_Recursive_Struct_ (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Param_Test::Recursive_Struct* buffer,
- ::CORBA::Boolean release = false);
_tao_seq_Param_Test_Recursive_Struct_ (const _tao_seq_Param_Test_Recursive_Struct_ &);
virtual ~_tao_seq_Param_Test_Recursive_Struct_ (void);
+
+ virtual ::CORBA::ULong length (void) const;
+ virtual void length (::CORBA::ULong);
};
#endif /* end #if !defined */
@@ -2135,20 +2044,16 @@ public:
class _tao_seq_Param_Test_nested_rec_union_
: public
- TAO::unbounded_value_sequence<
- Param_Test::nested_rec_union
- >
+ std::vector<Param_Test::nested_rec_union>
{
public:
_tao_seq_Param_Test_nested_rec_union_ (void);
_tao_seq_Param_Test_nested_rec_union_ ( ::CORBA::ULong max);
- _tao_seq_Param_Test_nested_rec_union_ (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Param_Test::nested_rec_union* buffer,
- ::CORBA::Boolean release = false);
_tao_seq_Param_Test_nested_rec_union_ (const _tao_seq_Param_Test_nested_rec_union_ &);
virtual ~_tao_seq_Param_Test_nested_rec_union_ (void);
+
+ virtual ::CORBA::ULong length (void) const;
+ virtual void length (::CORBA::ULong);
};
#endif /* end #if !defined */
@@ -2239,20 +2144,16 @@ public:
class _tao_seq_Param_Test_Recursive_Union_
: public
- TAO::unbounded_value_sequence<
- Param_Test::Recursive_Union
- >
+ std::vector<Param_Test::Recursive_Union>
{
public:
_tao_seq_Param_Test_Recursive_Union_ (void);
_tao_seq_Param_Test_Recursive_Union_ ( ::CORBA::ULong max);
- _tao_seq_Param_Test_Recursive_Union_ (
- ::CORBA::ULong max,
- ::CORBA::ULong length,
- Param_Test::Recursive_Union* buffer,
- ::CORBA::Boolean release = false);
_tao_seq_Param_Test_Recursive_Union_ (const _tao_seq_Param_Test_Recursive_Union_ &);
virtual ~_tao_seq_Param_Test_Recursive_Union_ (void);
+
+ virtual ::CORBA::ULong length (void) const;
+ virtual void length (::CORBA::ULong);
};
#endif /* end #if !defined */
diff --git a/modules/TAO/tests/Param_Test/param_testS.cpp b/modules/TAO/tests/Param_Test/param_testS.cpp
index cf0d1a616f8..79e90c5a0d6 100644
--- a/modules/TAO/tests/Param_Test/param_testS.cpp
+++ b/modules/TAO/tests/Param_Test/param_testS.cpp
@@ -59,6 +59,7 @@
#include "tao/PortableServer/UB_String_SArguments.h"
#include "tao/PortableServer/Var_Array_SArgument_T.h"
#include "tao/PortableServer/Var_Size_SArgument_T.h"
+#include "tao/PortableServer/Vector_SArgument_T.h"
#include "tao/PortableServer/Any_SArg_Traits.h"
#include "tao/PortableServer/TypeCode_SArg_Traits.h"
#include "tao/PortableServer/Object_SArg_Traits.h"
@@ -74,6 +75,7 @@
#include "tao/UB_String_Arguments.h"
#include "tao/Var_Array_Argument_T.h"
#include "tao/Var_Size_Argument_T.h"
+#include "tao/Vector_Argument_T.h"
#include "tao/AnyTypeCode/Any_Arg_Traits.h"
#include "ace/Dynamic_Service.h"
#include "ace/Malloc_Allocator.h"