summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-03-20 00:41:49 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-03-20 00:41:49 +0000
commit5a0c8eb40e9b6bf0d3ccae94fc3ca286d9584a99 (patch)
tree3e257c8e512880eed9dd5b8cec895eecea125fab
parent72692a5d340d8296eba2e03925c17649e9e19882 (diff)
downloadATCD-5a0c8eb40e9b6bf0d3ccae94fc3ca286d9584a99.tar.gz
ChangeLogTag: Wed Mar 19 18:40:03 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog53
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp17
-rw-r--r--TAO/TAO_IDL/be/be_visitor_array.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp12
-rw-r--r--TAO/TAO_IDL/be/be_visitor_component.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp104
-rw-r--r--TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp28
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp109
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp14
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root/cdr_op.cpp8
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root/root.cpp46
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp9
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp173
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp570
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp256
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp150
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp419
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_cs.cpp116
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ch.cpp88
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp231
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_cs.cpp89
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ch.cpp88
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ci.cpp230
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_cs.cpp89
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp177
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp539
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp338
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp161
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp438
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_cs.cpp160
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp741
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp590
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp418
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp12
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp78
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp49
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ch.h30
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h27
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h24
47 files changed, 374 insertions, 6336 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index a65d0c66497..f98115e3ca5 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,56 @@
+Wed Mar 19 18:40:03 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_interface.cpp:
+ * TAO_IDL/be/be_visitor_argument.cpp:
+ * TAO_IDL/be/be_visitor_array.cpp:
+ * TAO_IDL/be/be_visitor_component.cpp:
+ * TAO_IDL/be/be_visitor_interface.cpp:
+ * TAO_IDL/be/be_visitor_union_branch.cpp:
+ * TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp:
+ * TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp:
+ * TAO_IDL/be/be_visitor_component/component_cs.cpp:
+ * TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp:
+ * TAO_IDL/be/be_visitor_interface/any_op_ch.cpp:
+ * TAO_IDL/be/be_visitor_interface/interface_cs.cpp:
+ * TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp:
+ * TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp:
+ * TAO_IDL/be/be_visitor_root/cdr_op.cpp:
+ * TAO_IDL/be/be_visitor_root/root.cpp:
+ * TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_cs.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_cs.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ci.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_cs.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp:
+ * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_cs.cpp:
+ * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp:
+ * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp:
+ * TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp:
+ * TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp:
+ * TAO_IDL/be/be_visitor_union_branch/public_ci.cpp:
+ * TAO_IDL/be_include/be_visitor_sequence/sequence_ch.h:
+ * TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h:
+ * TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h:
+
+ Changed code generation to use the generated struct helpers
+ for interfaces, and removed much of the code generation for
+ sequences, since they will eventually all be typedefs.
+
Wed Mar 19 09:38:00 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
* TAO_IDL/be/be_interface.cpp:
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp
index d5499765b9f..d0e6c3dbcc4 100644
--- a/TAO/TAO_IDL/be/be_interface.cpp
+++ b/TAO/TAO_IDL/be/be_interface.cpp
@@ -563,7 +563,11 @@ be_interface:: gen_var_out_seq_decls (void)
<< "static " << lname << "_ptr tao_duplicate ("
<< lname << "_ptr);" << be_nl
<< "static void tao_release (" << lname << "_ptr);" << be_nl
- << "static " << lname << "_ptr tao_nil (void);" << be_uidt_nl
+ << "static " << lname << "_ptr tao_nil (void);" << be_nl
+ << "static CORBA::Boolean tao_marshal (" << be_idt << be_idt_nl
+ << lname << "_ptr," << be_nl
+ << "TAO_OutputCDR &" << be_uidt_nl
+ << ");" << be_uidt_nl
<< "};";
*os << be_nl << be_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_argument.cpp b/TAO/TAO_IDL/be/be_visitor_argument.cpp
index 05f16bdf2b6..290bd87f2b5 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument.cpp
@@ -43,6 +43,7 @@
#include "be_operation.h"
#include "be_helper.h"
#include "utl_identifier.h"
+#include "nr_extern.h"
#include "ace/Log_Msg.h"
#include "be_visitor_argument/arglist.cpp"
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp b/TAO/TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp
index 36f9eabcbcf..114c4bb0308 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp
@@ -85,15 +85,26 @@ be_visitor_args_post_invoke_cs::visit_interface (be_interface *node)
{
case AST_Argument::dir_INOUT:
{
+ *os << be_nl;
+
// Assign the narrowed obj reference.
if (node->is_defined ())
{
- *os << "CORBA::release (" << arg->local_name () << ");" << be_nl;
+ *os << "CORBA::release (" << arg->local_name () << ");";
}
else
{
- *os << "tao_" << node->flat_name () << "_release ("
- << arg->local_name () << ");" << be_nl;
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao_release ("
+ << be_idt << be_idt_nl
+ << arg->local_name () << be_uidt_nl
+ << ");" << be_uidt;
}
}
break;
diff --git a/TAO/TAO_IDL/be/be_visitor_array.cpp b/TAO/TAO_IDL/be/be_visitor_array.cpp
index 56e7c32de25..7b280e885fe 100644
--- a/TAO/TAO_IDL/be/be_visitor_array.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_array.cpp
@@ -34,6 +34,7 @@
#include "be_helper.h"
#include "be_extern.h"
#include "utl_identifier.h"
+#include "nr_extern.h"
#include "ace/Log_Msg.h"
#include "be_visitor_array.h"
diff --git a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp
index 432a1125a31..98a3ee2ccca 100644
--- a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp
@@ -717,7 +717,17 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt)
}
else
{
- *os << "tao_" << bt->flat_name () << "_marshal (_tao_array";
+
+ AST_Decl *parent =
+ ScopeAsDecl (bt->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << bt->local_name () << "_life::"
+ << "tao_marshal (_tao_array";
for (i = 0; i < ndims; ++i)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_component.cpp b/TAO/TAO_IDL/be/be_visitor_component.cpp
index ade5a3cfb74..f49c06ae87d 100644
--- a/TAO/TAO_IDL/be/be_visitor_component.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_component.cpp
@@ -37,6 +37,7 @@
#include "be_helper.h"
#include "be_extern.h"
#include "idl_defines.h"
+#include "nr_extern.h"
#include "ace/Log_Msg.h"
#include "be_visitor_component/component.cpp"
diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp
index 5cf30d20a68..b7deff783f0 100644
--- a/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp
@@ -64,11 +64,19 @@ be_visitor_component_cs::visit_component (be_component *node)
*os << "int " << node->full_name () << "::_tao_class_id = 0;"
<< be_nl << be_nl;
- // Global functions to allow non-defined forward declared interfaces
- // access to some methods in the full definition.
- *os << node->full_name () << "_ptr" << be_nl
- << "tao_" << node->flat_name ()
- << "_duplicate (" << be_idt << be_idt_nl
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ // Helper functions generated in case this interface was
+ // forward declared in some other IDL file and not defined there.
+ *os << node->full_name () << "_ptr" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::"
+ << "tao_duplicate (" << be_idt << be_idt_nl
<< node->full_name () << "_ptr p" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
@@ -76,18 +84,30 @@ be_visitor_component_cs::visit_component (be_component *node)
<< "::_duplicate (p);" << be_uidt_nl
<< "}" << be_nl << be_nl;
- *os << "void" << be_nl
- << "tao_" << node->flat_name ()
- << "_release (" << be_idt << be_idt_nl
+ *os << "void" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::"
+ << "tao_release (" << be_idt << be_idt_nl
<< node->full_name () << "_ptr p" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
<< "CORBA::release (p);" << be_uidt_nl
<< "}" << be_nl << be_nl;
- *os << node->full_name () << "_ptr" << be_nl
- << "tao_" << node->flat_name ()
- << "_nil (" << be_idt << be_idt_nl
+ *os << node->full_name () << "_ptr" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::"
+ << "tao_nil (" << be_idt << be_idt_nl
<< "void" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
@@ -95,9 +115,31 @@ be_visitor_component_cs::visit_component (be_component *node)
<< "::_nil ();" << be_uidt_nl
<< "}" << be_nl << be_nl;
- *os << node->full_name () << "_ptr" << be_nl
- << "tao_" << node->flat_name ()
- << "_narrow (" << be_idt << be_idt_nl
+ *os << "CORBA::Boolean" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::"
+ << "tao_marshal (" << be_idt << be_idt_nl
+ << node->name () << "_ptr p," << be_nl
+ << "TAO_OutputCDR &cdr" << be_uidt_nl
+ << ")" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "return p->marshal (cdr);" << be_uidt_nl
+ << "}" << be_nl << be_nl;
+
+ *os << node->full_name () << "_ptr" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_cast::"
+ << "tao_narrow (" << be_idt << be_idt_nl
<< "CORBA::Object_ptr p" << be_nl
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
<< ")" << be_uidt_nl
@@ -107,9 +149,15 @@ be_visitor_component_cs::visit_component (be_component *node)
<< be_uidt_nl
<< "}" << be_nl << be_nl;
- *os << "CORBA::Object_ptr " << be_nl
- << "tao_" << node->flat_name ()
- << "_upcast (" << be_idt << be_idt_nl
+ *os << "CORBA::Object_ptr" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_cast::"
+ << "tao_upcast (" << be_idt << be_idt_nl
<< "void *src" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
@@ -117,28 +165,8 @@ be_visitor_component_cs::visit_component (be_component *node)
<< "ACE_static_cast (" << node->full_name ()
<< " **, src);" << be_uidt_nl
<< "return *tmp;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-/*
- // Generate the _var class.
- if (node->gen_var_impl () == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_component_cs::"
- "visit_component - "
- "codegen for _var failed\n"),
- -1);
- }
+ << "}";
- // Generate the _out class.
- if (node->gen_out_impl () == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_component_cs::"
- "visit_component - "
- "codegen for _out failed\n"),
- -1);
- }
-*/
be_visitor_context ctx (*this->ctx_);
// Interceptor classes. The interceptors helper classes must be
diff --git a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp
index f31eccdb8c3..7e6949df029 100644
--- a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp
@@ -291,8 +291,18 @@ be_visitor_field_cdr_op_ci::visit_interface (be_interface *node)
}
else
{
- *os << "tao_" << node->flat_name () << "_marshal ("
- << "_tao_aggregate." << f->local_name () << ".in (), strm)";
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao_marshal ("
+ << be_idt << be_idt_nl
+ << "_tao_aggregate." << f->local_name () << ".in ()," << be_nl
+ << "strm" << be_uidt_nl
+ << ")" << be_uidt;
}
break;
@@ -346,8 +356,18 @@ be_visitor_field_cdr_op_ci::visit_interface_fwd (be_interface_fwd *node)
}
else
{
- *os << "tao_" << node->flat_name () << "_marshal ("
- << "_tao_aggregate." << f->local_name () << ".in (), strm)";
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao_marshal ("
+ << be_idt << be_idt_nl
+ << "_tao_aggregate." << f->local_name () << ".in ()," << be_nl
+ << "strm" << be_uidt_nl
+ << ")" << be_uidt;
}
break;
diff --git a/TAO/TAO_IDL/be/be_visitor_interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface.cpp
index 656fac4592e..6d14041f227 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface.cpp
@@ -34,6 +34,7 @@
#include "be_helper.h"
#include "be_extern.h"
#include "utl_identifier.h"
+#include "nr_extern.h"
#include "be_visitor_interface.h"
#include "be_visitor_attribute.h"
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp
index 3f35c0062b1..711b6ce0527 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp
@@ -51,9 +51,6 @@ be_visitor_interface_any_op_ch::visit_interface (be_interface *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
- // Generate the Any <<= and >>= operator declarations.
- os->indent ();
-
*os << be_global->stub_export_macro () << " void"
<< " operator<<= (CORBA::Any &, " << node->name ()
<< "_ptr); // copying" << be_nl;
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
index dc24958e287..cd57700a562 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
@@ -64,11 +64,19 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
*os << "int " << node->full_name () << "::_tao_class_id = 0;"
<< be_nl << be_nl;
- // Global functions to allow non-defined forward declared interfaces
- // access to some methods in the full definition.
- *os << node->full_name () << "_ptr" << be_nl
- << "tao_" << node->flat_name ()
- << "_duplicate (" << be_idt << be_idt_nl
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ // Helper functions generated in case this interface was
+ // forward declared in some other IDL file and not defined there.
+ *os << node->full_name () << "_ptr" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::"
+ << "tao_duplicate (" << be_idt << be_idt_nl
<< node->full_name () << "_ptr p" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
@@ -76,18 +84,30 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "::_duplicate (p);" << be_uidt_nl
<< "}" << be_nl << be_nl;
- *os << "void" << be_nl
- << "tao_" << node->flat_name ()
- << "_release (" << be_idt << be_idt_nl
+ *os << "void" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::"
+ << "tao_release (" << be_idt << be_idt_nl
<< node->full_name () << "_ptr p" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
<< "CORBA::release (p);" << be_uidt_nl
<< "}" << be_nl << be_nl;
- *os << node->full_name () << "_ptr" << be_nl
- << "tao_" << node->flat_name ()
- << "_nil (" << be_idt << be_idt_nl
+ *os << node->full_name () << "_ptr" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::"
+ << "tao_nil (" << be_idt << be_idt_nl
<< "void" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
@@ -95,9 +115,31 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "::_nil ();" << be_uidt_nl
<< "}" << be_nl << be_nl;
- *os << node->full_name () << "_ptr" << be_nl
- << "tao_" << node->flat_name ()
- << "_narrow (" << be_idt << be_idt_nl;
+ *os << "CORBA::Boolean" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::"
+ << "tao_marshal (" << be_idt << be_idt_nl
+ << node->name () << "_ptr p," << be_nl
+ << "TAO_OutputCDR &cdr" << be_uidt_nl
+ << ")" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "return p->marshal (cdr);" << be_uidt_nl
+ << "}" << be_nl << be_nl;
+
+ *os << node->full_name () << "_ptr" << be_nl;
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_cast::"
+ << "tao_narrow (" << be_idt << be_idt_nl;
if (node->is_abstract ())
{
@@ -125,8 +167,13 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
*os << "CORBA::Object *" << be_nl;
}
- *os << "tao_" << node->flat_name ()
- << "_upcast (" << be_idt << be_idt_nl
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_cast::"
+ << "tao_upcast (" << be_idt << be_idt_nl
<< "void *src" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
@@ -154,36 +201,6 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "}";
}
- *os << be_nl << be_nl
- << "CORBA::Boolean" << be_nl
- << "tao_" << node->flat_name () << "_marshal (" << be_idt << be_idt_nl
- << node->name () << "_ptr p," << be_nl
- << "TAO_OutputCDR &strm" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "return p->marshal (strm);" << be_uidt_nl
- << "}";
-/*
- // Generate the _var class.
- if (node->gen_var_impl () == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_interface_cs::"
- "visit_interface - "
- "codegen for _var failed\n"),
- -1);
- }
-
- // Generate the _out class.
- if (node->gen_out_impl () == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_interface_cs::"
- "visit_interface - "
- "codegen for _out failed\n"),
- -1);
- }
-*/
be_visitor_context ctx = (*this->ctx_);
// Interceptor classes. The interceptors helper classes must be
diff --git a/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp
index 878a05e9549..7a00e20e99e 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp
@@ -50,12 +50,6 @@ be_visitor_interface_fwd_ch::visit_interface_fwd (be_interface_fwd *node)
AST_Interface *fd = node->full_definition ();
be_interface *bfd = be_interface::narrow_from_decl (fd);
- if (!fd->is_defined ())
- {
- // To generate extern declarations after all modules are closed.
- be_global->non_defined_interfaces.enqueue_tail (node);
- }
-
if (bfd->var_out_seq_decls_gen () == 0)
{
bfd->gen_var_out_seq_decls ();
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp
index 9e7c70612f6..8dd768e1899 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp
@@ -101,8 +101,18 @@ be_visitor_operation_rettype_vardecl_cs::visit_interface (be_interface *node)
}
else
{
- *os << bt->name () << "_var _tao_retval ("
- << " tao_" << node->flat_name () << "_nil ());";
+ *os << bt->name () << "_var _tao_retval (" << be_idt << be_idt_nl;
+
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao_nil ()"
+ << be_uidt_nl
+ << ");" << be_uidt_nl;
}
return 0;
diff --git a/TAO/TAO_IDL/be/be_visitor_root/cdr_op.cpp b/TAO/TAO_IDL/be/be_visitor_root/cdr_op.cpp
index 067f4a28a6d..0b04a6890c8 100644
--- a/TAO/TAO_IDL/be/be_visitor_root/cdr_op.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root/cdr_op.cpp
@@ -45,9 +45,9 @@ be_visitor_root_cdr_op::visit_root (be_root *node)
if (this->ctx_->state () == TAO_CodeGen::TAO_ROOT_CDR_OP_CH)
{
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+ << "// " << __FILE__ << ":" << __LINE__;
- *os << "#ifndef __ACE_INLINE__";
+ *os << "\n\n#ifndef __ACE_INLINE__";
}
if (this->visit_scope (node) == -1)
@@ -61,9 +61,9 @@ be_visitor_root_cdr_op::visit_root (be_root *node)
if (this->ctx_->state () == TAO_CodeGen::TAO_ROOT_CDR_OP_CH)
{
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+ << "// " << __FILE__ << ":" << __LINE__;
- *os << "#endif /* __ACE_INLINE__ */";
+ *os << "\n\n#endif /* __ACE_INLINE__ */";
}
return 0;
diff --git a/TAO/TAO_IDL/be/be_visitor_root/root.cpp b/TAO/TAO_IDL/be/be_visitor_root/root.cpp
index 994c6c42398..a7b89d26006 100644
--- a/TAO/TAO_IDL/be/be_visitor_root/root.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root/root.cpp
@@ -129,52 +129,6 @@ int be_visitor_root::visit_root (be_root *node)
<< ifwd->full_name () << " *" << be_uidt_nl
<< ");" << be_uidt;
}
- else
- {
- *os << "// External declarations for undefined interface"
- << be_nl << be_nl
- << "// " << ifwd->full_name () << be_nl;
-
- *os << be_global->stub_export_macro () << be_nl
- << ifwd->full_name () << "_ptr" << be_nl
- << "tao_" << ifwd->flat_name ()
- << "_duplicate ("
- << be_idt << be_idt_nl
- << ifwd->full_name () << "_ptr" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl
- << be_global->stub_export_macro () << be_nl
- << "void" << be_nl
- << "tao_" << ifwd->flat_name ()
- << "_release (" << be_idt << be_idt_nl
- << ifwd->full_name () << "_ptr" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl
- << be_global->stub_export_macro () << be_nl
- << ifwd->full_name () << "_ptr" << be_nl
- << "tao_" << ifwd->flat_name ()
- << "_nil (" << be_idt << be_idt_nl
- << "void" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl
- << be_global->stub_export_macro () << be_nl
- << ifwd->full_name () << "_ptr" << be_nl
- << "tao_" << ifwd->flat_name ()
- << "_narrow (" << be_idt << be_idt_nl
- << "CORBA::Object *" << be_nl
- << "ACE_ENV_ARG_DECL_NOT_USED" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl
- << be_global->stub_export_macro () << be_nl
- << "CORBA::Object *" << be_nl
- << "tao_" << ifwd->flat_name ()
- << "_upcast (" << be_idt << be_idt_nl
- << "void *" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl
- << be_global->stub_export_macro () << be_nl
- << "CORBA::Boolean" << be_nl
- << "tao_" << ifwd->flat_name () << "_marshal ("
- << be_idt << be_idt_nl
- << ifwd->full_name () << "_ptr," << be_nl
- << "TAO_OutputCDR &" << be_uidt_nl
- << ");" << be_uidt;
- }
}
size = be_global->mixed_parentage_interfaces.size ();
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp
index 495d8ed0dfd..b2a7107704f 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp
@@ -66,7 +66,7 @@ be_visitor_sequence_any_op_ch::visit_sequence (be_sequence *node)
*os << " CORBA::Boolean"
<< " operator>>= (const CORBA::Any &, ";
*os << node->name ();
- *os << " *&); // deprecated\n";
+ *os << " *&); // deprecated" << be_nl;
*os << be_global->stub_export_macro ();
*os << " CORBA::Boolean"
<< " operator>>= (const CORBA::Any &, const ";
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp
index 84feb113dcd..0515a6fbc2d 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp
@@ -61,8 +61,8 @@ be_visitor_sequence_cdr_op_ch::visit_sequence (be_sequence *node)
if (!tdef)
{
*os << "\n\n#if !defined _TAO_CDR_OP_"
- << node->flat_name () << "_H_" << be_nl
- << "#define _TAO_CDR_OP_" << node->flat_name () << "_H_";
+ << node->flat_name () << "_H_"
+ << "\n#define _TAO_CDR_OP_" << node->flat_name () << "_H_";
}
*os << be_nl << be_nl
@@ -79,8 +79,7 @@ be_visitor_sequence_cdr_op_ch::visit_sequence (be_sequence *node)
if (!tdef)
{
- *os << be_nl << be_nl
- << "#endif /* _TAO_CDR_OP_"
+ *os << "\n\n#endif /* _TAO_CDR_OP_"
<< node->flat_name () << "_H_ */";
}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
index d560e6484f7..09b7d1eb7e2 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
@@ -795,7 +795,14 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
}
else
{
- *os << "tao_" << bt->flat_name () << "_marshal ("
+ AST_Decl *parent = ScopeAsDecl (bt->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << bt->local_name () << "_life::tao_marshal ("
<< "_tao_sequence[i].in (), strm);" << be_uidt;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp
index 82e95785b2b..73133b8fbf1 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp
@@ -24,176 +24,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_obj_sequence_ch,
"$Id$")
-int
-be_visitor_sequence_ch::gen_bounded_obj_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "Bad element type\n"), -1);
- }
-
- // Generate the class name.
- be_type *pt;
-
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- // Get the primitive base type of this typedef node.
- be_typedef *t = be_typedef::narrow_from_decl (bt);
- pt = t->primitive_base_type ();
- }
- else
- {
- pt = bt;
- }
-
- const char * class_name = node->instance_name ();
-
- be_visitor_context ctx (*this->ctx_);
- ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CH);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- // !! Branching in either compile time template instantiation
- // or manual template instantiation.
- os->gen_ifdef_AHETI ();
- os->gen_ifdef_macro (class_name);
-
- *os << be_nl << be_nl
- << "class " << be_global->stub_export_macro ()
- << " " << class_name << be_idt_nl
- << ": public TAO_Bounded_Base_Sequence" << be_uidt_nl
- << "{" << be_nl
- << "public:" << be_idt_nl;
-
- // Default constructor.
- *os << class_name << " (void);" << be_nl;
-
- // Constructor.
- *os << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os <<"* *value," << be_nl
- << "CORBA::Boolean release = 0" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // Constructor.
- *os << class_name << " (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // operator=
- *os << class_name << " &operator= (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // Destructor.
- *os << "virtual ~" << class_name << " (void);" << be_nl << be_nl;
-
- // Accessors.
- *os << "// = Accessors." << be_nl;
-
- be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
- AST_Decl::NodeType nt = pt->node_type ();
-
- int is_pseudo_object =
- nt == AST_Decl::NT_pre_defined
- && prim
- && prim->pt () == AST_PredefinedType::PT_pseudo;
-
- // operator[]
- if (is_pseudo_object)
- {
- *os << "TAO_Pseudo_Object_Manager<";
- }
- else if (nt == AST_Decl::NT_valuetype)
- {
- *os << "TAO_Valuetype_Manager<";
- }
- else if (node->base_type ()->is_abstract ())
- {
- *os << "TAO_Abstract_Manager<";
- }
- else
- {
- *os << "TAO_Object_Manager<";
- }
-
- *os << bt->name () << ","
- << bt->name () << "_var>"
- << " operator[] (CORBA::ULong index) const;" << be_nl << be_nl;
-
- // Static operations
- *os << "// = Static operations." << be_nl;
-
- // allocbuf
- *os << "static ";
-
- bt->accept (&visitor);
-
- *os << " **allocbuf (CORBA::ULong length);" << be_nl;
-
- // freebuf
- *os << "static void freebuf (";
-
- bt->accept (&visitor);
-
- *os << " **buffer);" << be_nl << be_nl;
-
- // Implement the TAO_Base_Sequence methods (see Sequence.h)
- *os << "// Implement the TAO_Base_Sequence methods (see Sequence.h)" << be_nl;
-
- // allocate_buffer
- *os << "virtual void _allocate_buffer (CORBA::ULong length);" << be_nl;
-
- // deallocate_buffer
- *os << "virtual void _deallocate_buffer (void);" << be_nl;
-
- // get_buffer
- bt->accept (&visitor);
-
- *os << "* *get_buffer (CORBA::Boolean orphan = 0);" << be_nl;
-
- // get_buffer
- *os << "const ";
-
- bt->accept (&visitor);
-
- *os << "* *get_buffer (void) const;" << be_nl;
-
- // shrink_buffer
- *os << "virtual void _shrink_buffer (" << be_idt << be_idt_nl
- << "CORBA::ULong nl," << be_nl
- << "CORBA::ULong ol" << be_uidt_nl
- << ");" << be_uidt;
-
- if (! (is_pseudo_object || nt == AST_Decl::NT_valuetype))
- {
- // Pseudo objects do not require these methods.
- *os << be_nl << be_nl
- << "virtual void _downcast (" << be_idt << be_idt_nl
- << "void* target," << be_nl
- << "CORBA::Object *src" << be_nl
- << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
- << ");" << be_uidt_nl;
- *os << "virtual CORBA::Object* _upcast (void *src) const;";
- }
-
- *os << be_uidt_nl << "};";
-
- os->gen_endif ();
-
- // Generate #endif for AHETI.
- os->gen_endif_AHETI ();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp
index a2baf85435e..100456ed2fc 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp
@@ -23,573 +23,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_obj_sequence_ci,
"$Id$")
-int
-be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "visit_sequence - "
- "Bad element type\n"),
- -1);
- }
-
- // Generate the class name.
- be_type *pt;
-
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- // Get the primitive base type of this typedef node.
- be_typedef *t = be_typedef::narrow_from_decl (bt);
- pt = t->primitive_base_type ();
- }
- else
- {
- pt = bt;
- }
-
- const char *name =
- be_decl::narrow_from_decl (pt)->full_name ();
-
- idl_bool bt_is_defined;
-
- // Special cases.
- if (ACE_OS::strcmp (name, "CORBA::Object") == 0
- || ACE_OS::strcmp (name, "CORBA::TypeCode") == 0)
- {
- bt_is_defined = 1;
- }
- else if (pt->node_type () == AST_Decl::NT_interface_fwd)
- {
- AST_InterfaceFwd *ifbt = AST_InterfaceFwd::narrow_from_decl (pt);
- bt_is_defined = ifbt->full_definition ()->is_defined ();
- }
- else
- {
- AST_Interface *ibt = AST_Interface::narrow_from_decl (pt);
- bt_is_defined = ibt->is_defined ();
- }
-
- const char * class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name,
- '\0',
- NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_scope *parent = be_scope::narrow_from_scope (node->defined_in ());
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- parent->decl ()->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- // Branching in either compile time template instantiation
- // or manual template instatiation.
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // First generate the static methods since they are used by others. Since
- // they are inlined, their definition needs to come before their use else
- // some compilers give lots of warnings.
-
- // allocbuf
- *os << be_nl << be_nl
- << "ACE_INLINE ";
-
- bt->accept (&visitor);
-
- *os << " **" << be_nl;
- *os << full_class_name << "::allocbuf (CORBA::ULong /* length */) " << be_nl
- << "{" << be_idt_nl;
-
- // The accept is here the first time used and if an
- // error occurs, it will occur here. Later no check
- // for errors will be done.
- if (bt->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "visit_sequence - "
- "base type visit failed\n"),
- -1);
- }
-
- *os <<" **buf = 0;" << be_nl
- << "ACE_NEW_RETURN (buf, ";
-
- bt->accept (&visitor);
-
- *os << "*[" << node->max_size () << "], 0);" << be_nl
- << be_nl
- << "for (CORBA::ULong i = 0; i < " << node->max_size ()
- << "; i++)" << be_idt_nl
- << "{" << be_idt_nl
- << "buf[i] = ";
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "0;";
- }
- else if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << "::_nil ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_nil ();";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return buf;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // freebuf.
- *os << "ACE_INLINE void" << be_nl
- << full_class_name << "::freebuf (";
-
- bt->accept (&visitor);
-
- *os << " **buffer)" << be_nl
- << "{" << be_idt_nl
- << "for (CORBA::ULong i = 0; i < " << node->max_size ()
- << "; ++i)" << be_idt_nl
- << "{" << be_idt_nl
- << "if (buffer[i] != ";
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (bt_is_defined)
- {
- *os << "buffer[i]->_remove_ref ();" << be_nl;
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_remove_ref (buffer[i]);";
- }
-
- *os << "buffer[i] = 0;" << be_uidt_nl;
- }
- else if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << "::_nil ())" << be_idt_nl
- << "{" << be_idt_nl
- << "CORBA::release (buffer[i]);" << be_nl
- << "buffer[i] = ";
-
- bt->accept (&visitor);
-
- *os << "::_nil ();" << be_uidt_nl;
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_nil ())" << be_nl
- << "{" << be_idt_nl
- << "tao_" << pt->flat_name () << "_release (buffer[i]);" << be_nl
- << "buffer[i] = "
- << "tao_" << pt->flat_name () << "_nil ();" << be_uidt_nl;
- }
-
- *os << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "delete[] buffer;" << be_uidt_nl
- << "} " << be_nl
- << be_nl;
-
- // Constructor.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (void)" << be_idt_nl
- << " : TAO_Bounded_Base_Sequence (" << node->max_size ()
- << ", 0)" << be_uidt_nl
- << "{" << be_nl
- << "}" << be_nl
- << be_nl;
-
- // Constructor.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os <<"* *value," << be_nl
- << "CORBA::Boolean release" << be_uidt_nl
- << ")" << be_nl
- << ": TAO_Bounded_Base_Sequence (" << node->max_size ()
- << ", length, value, release)" << be_uidt_nl
- << "{" << be_nl
- << "}" << be_nl << be_nl;
-
- // Constructor.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (" << be_idt << be_idt_nl
- << "const "
- << class_name << " &rhs" << be_uidt_nl
- << ")" << be_nl
- << ": TAO_Bounded_Base_Sequence (rhs)" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (rhs.buffer_ != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp1 =" << be_idt_nl
- << class_name << "::allocbuf (" << node->max_size () << ");"
- << be_uidt_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" ** const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "** ACE_CAST_CONST, rhs.buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < rhs.length_; i++)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "if (tmp2[i] != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (bt_is_defined)
- {
- *os << "tmp2[i]->_add_ref ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_add_ref ();";
- }
-
- *os << be_uidt_nl << "}" << be_uidt_nl << be_nl
- << "tmp1[i] = tmp2[i];";
- }
- else
- {
- *os << "tmp1[i] = ";
-
- if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << "::_duplicate (tmp2[i]);";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_duplicate (tmp2[i]);";
- }
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "this->buffer_ = tmp1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // Assignment operator.
- *os << "ACE_INLINE " << full_class_name << " &" << be_nl
- << full_class_name << "::operator= (" << be_idt << be_idt_nl
- << "const "
- << class_name << " &rhs" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (this == &rhs)" << be_idt_nl
- << "{" << be_idt_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "if (this->release_ && this->buffer_ != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " **, this->buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "if (tmp[i] != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (bt_is_defined)
- {
- *os << "tmp[i]->_remove_ref ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_remove_ref ();";
- }
-
- *os << be_uidt_nl << "}" << be_uidt_nl << be_nl
- << "tmp[i] = 0;";
- }
- else if (bt_is_defined)
- {
- *os << "CORBA::release (tmp[i]);" << be_nl
- << "tmp[i] = ";
-
- bt->accept (&visitor);
-
- *os << "::_nil ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_release (tmp[i]);" << be_nl
- << "tmp[i] = "
- << "tao_" << pt->flat_name () << "_nil ();";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ =" << be_idt_nl
- << class_name
- << "::allocbuf (rhs.maximum_);" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "TAO_Bounded_Base_Sequence::operator= (rhs);" << be_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp1 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " **, this->buffer_);" << be_uidt_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" ** const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " ** ACE_CAST_CONST, rhs.buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i=0; i < rhs.length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "if (tmp2[i] != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (bt_is_defined)
- {
- *os << "tmp2[i]->_add_ref ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_add_ref ();";
- }
-
- *os << be_uidt_nl << "}" << be_uidt_nl << be_nl
- << "tmp1[i] = tmp2[i];";
- }
- else
- {
- *os << "tmp1[i] = ";
-
- if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << "::_duplicate (tmp2[i]);";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_duplicate (tmp2[i]);";
- }
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
-
- int is_pseudo_object =
- pt->node_type () == AST_Decl::NT_pre_defined
- && prim
- && prim->pt () == AST_PredefinedType::PT_pseudo;
-
- // operator[].
-
- *os << "ACE_INLINE" << be_nl;
-
- if (is_pseudo_object)
- {
- *os << "TAO_Pseudo_Object_Manager<";
- }
- else
- {
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "TAO_Valuetype_Manager<";
- }
- else if (node->base_type ()->is_abstract ())
- {
- *os << "TAO_Abstract_Manager<";
- }
- else
- {
- *os << "TAO_Object_Manager<";
- }
- }
-
- *os << bt->name () << ","
- << bt->name () << "_var>" << be_nl
- << full_class_name << "::operator[] (CORBA::ULong index) const" << be_nl
- << "{" << be_idt_nl
- << "ACE_ASSERT (index < this->maximum_);" << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" **const tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " ** ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << "return ";
-
- if (is_pseudo_object)
- {
- *os << "TAO_Pseudo_Object_Manager<";
- }
- else
- {
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "TAO_Valuetype_Manager<";
- }
- else if (node->base_type()->is_abstract ())
- {
- *os << "TAO_Abstract_Manager<";
- }
- else
- {
- *os << "TAO_Object_Manager<";
- }
- }
-
- *os << bt->name () << ","
- << bt->name () << "_var> "
- << "(tmp + index, this->release_);" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // get_buffer
- *os << "ACE_INLINE" << be_nl;
-
- bt->accept (&visitor);
-
- *os << " **" << be_nl;
- *os << full_class_name << "::get_buffer (CORBA::Boolean orphan)" << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os << " **result = 0;" << be_nl << be_nl
- << "if (orphan == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We retain ownership." << be_nl
- << "if (this->buffer_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "result =" << be_idt_nl
- << class_name << "::allocbuf (this->maximum_);" << be_uidt_nl
- << "this->buffer_ = result;" << be_nl
- << "this->release_ = 1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "**, this->buffer_);" << be_uidt << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else // if (orphan == 1)" << be_idt_nl
- << "{" << be_idt_nl
- << "if (this->release_ != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We set the state back to default and relinquish ownership."
- << be_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "**, this->buffer_);" << be_uidt_nl
- << "this->maximum_ = 0;" << be_nl
- << "this->length_ = 0;" << be_nl
- << "this->buffer_ = 0;" << be_nl
- << "this->release_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return result;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // get_buffer.
- *os << "ACE_INLINE" << be_nl
- << "const ";
-
- bt->accept (&visitor);
-
- *os << "* *" << be_nl
- << full_class_name << "::get_buffer (void) const" << be_nl
- << "{" << be_idt_nl
- << "return ACE_reinterpret_cast (const ";
-
- bt->accept (&visitor);
-
- *os << " ** ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << "}";
-
- os->gen_endif ();
-
- // Generate #endif for AHETI.
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp
index 1a3bc56f405..e3a08272644 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp
@@ -23,259 +23,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_obj_sequence_cs,
"$Id$")
-int
-be_visitor_sequence_cs::gen_bounded_obj_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "Bad element type\n"),
- -1);
- }
-
- // Generate the class name.
- be_type *pt;
-
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- // Get the primitive base type of this typedef node.
- be_typedef *t = be_typedef::narrow_from_decl (bt);
- pt = t->primitive_base_type ();
- }
- else
- {
- pt = bt;
- }
-
- const char *name =
- be_decl::narrow_from_decl (pt)->full_name ();
-
- idl_bool bt_is_defined;
-
- // Special cases.
- if (ACE_OS::strcmp (name, "CORBA::Object") == 0
- || ACE_OS::strcmp (name, "CORBA::TypeCode") == 0)
- {
- bt_is_defined = 1;
- }
- else if (pt->node_type () == AST_Decl::NT_interface_fwd)
- {
- AST_InterfaceFwd *ifbt = AST_InterfaceFwd::narrow_from_decl (pt);
- bt_is_defined = ifbt->full_definition ()->is_defined ();
- }
- else
- {
- AST_Interface *ibt = AST_Interface::narrow_from_decl (pt);
- bt_is_defined = ibt->is_defined ();
- }
-
- const char * class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name,
- '\0',
- NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_scope *parent = be_scope::narrow_from_scope (node->defined_in ());
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- parent->decl ()->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- // Branching in either compile time template instantiation
- // or manual template instatiation.
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // First generate the static methods since they are used by others. Since
- // they are inlined, their definition needs to come before their use else
- // some compilers give lots of warnings.
-
- // Allocate_buffer.
- *os << be_nl << be_nl
- << "// The Base_Sequence functions, please see tao/sequence.h"
- << be_nl
- << "void " << be_nl
- << full_class_name << "::_allocate_buffer (CORBA::ULong length)"
- << be_nl
- << "{" << be_idt_nl
- << "// For this class memory is never reallocated so the implementation"
- << be_nl
- << "// is *really* simple." << be_nl
- << "this->buffer_ = " << class_name << "::allocbuf (length);"
- << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // deallocate_buffer.
- *os << "void" << be_nl
- << full_class_name << "::_deallocate_buffer (void)" << be_nl
- << "{" << be_idt_nl
- << "if (this->buffer_ == 0 || this->release_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "return;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp = ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " **, this->buffer_);" << be_nl
- << class_name << "::freebuf (tmp);" << be_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // destructor
- *os << full_class_name << "::~" << class_name << " (void)" << be_nl
- << "// destructor" << be_nl
- << "{" << be_idt_nl
- << "this->_deallocate_buffer ();" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // _shrink_buffer
- *os << "void" << be_nl
- << full_class_name
- << "::_shrink_buffer (CORBA::ULong nl, CORBA::ULong ol)"
- << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp = ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " **, this->buffer_);" << be_nl
- << be_nl
- << "for (CORBA::ULong i = nl; i < ol; ++i)" << be_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- if (bt_is_defined)
- {
- *os << "CORBA::remove_ref (tmp[i]);";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_remove_ref (tmp[i]);";
- }
-
- *os << be_nl << "tmp[i] = 0;";
- }
- else if (bt_is_defined)
- {
- *os << "CORBA::release (tmp[i]);" << be_nl
- << "tmp[i] = ";
-
- bt->accept (&visitor);
-
- *os << "::_nil ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_release (tmp[i]);" << be_nl
- << "tmp[i] = "
- << "tao_" << pt->flat_name () << "_nil ();";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl
- << "}\n" << be_nl;
-
- be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
-
- if (pt->node_type () != AST_Decl::NT_pre_defined
- || (prim
- && prim->pt () == AST_PredefinedType::PT_object))
- {
- // Pseudo objects do not require these methods.
- *os << "void" << be_nl
- << full_class_name << "::_downcast (" << be_idt << be_idt_nl
- << "void* target," << be_nl
- << "CORBA::Object *src" << be_nl
- << "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os << " **tmp = ACE_static_cast (";
-
- bt->accept (&visitor);
-
- *os << "**, target);" << be_nl
- << "*tmp = ";
-
- if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << "::_narrow (src ACE_ENV_ARG_PARAMETER);";
- }
- else
- {
- *os << "tao_" << pt->flat_name ()
- << "_narrow (src ACE_ENV_ARG_PARAMETER);";
- }
-
- *os << be_nl
- << "ACE_CHECK;" << be_uidt_nl
- << "}\n" << be_nl;
-
- *os << "CORBA::Object*" << be_nl
- << full_class_name << "::_upcast (void *src) const" << be_nl
- << "{" << be_idt_nl;
-
- if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << " **tmp = ACE_static_cast (";
-
- bt->accept (&visitor);
-
- *os << "**, src);" << be_nl
- << "return *tmp;";
- }
- else
- {
- *os << "return tao_" << pt->flat_name () << "_upcast (src);";
- }
-
- *os << be_uidt_nl
- << "}" << be_nl;
- }
-
- os->gen_endif ();
-
- // Generate #endif for AHETI.
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp
index d129a478e9b..27d6dd922ab 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp
@@ -22,153 +22,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_sequence_ch,
"$Id$")
-int
-be_visitor_sequence_ch::gen_bounded_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "Bad element type\n"), -1);
- }
-
- // If we contain an anonymous sequence,
- // generate code for that sequence here.
- if (bt->node_type () == AST_Decl::NT_sequence)
- {
- int status =
- this->gen_anonymous_base_type (bt,
- TAO_CodeGen::TAO_ROOT_CH);
-
- if (status == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "gen_bounded_sequence - "
- "gen_anonymous_base_type failed\n"),
- -1);
- }
- }
-
- const char * class_name = node->instance_name ();
-
- be_visitor_context ctx (*this->ctx_);
- ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CH);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- // !! branching in either compile time template instantiation
- // or manual template instatiation
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- *os << be_nl << be_nl
- << "class " << be_global->stub_export_macro ()
- << " " << class_name << be_idt_nl
- << ": public TAO_Bounded_Base_Sequence" << be_uidt_nl
- << "{" << be_nl
- << "public:" << be_idt_nl;
-
- // default Constructor
- *os << class_name << " (void);" << be_nl;
-
- // constructor
- *os << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *data," << be_nl
- << "CORBA::Boolean release = 0" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // constructor
- *os << class_name << " (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // operator=
- *os << class_name << " &operator= (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // destructor
- *os << "virtual ~" << class_name << " (void);" << be_nl << be_nl;
-
- // Accessors
- // operator[]
- *os << "// = Accessors." << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" &operator[] (CORBA::ULong i);" << be_nl;
-
- // operator[]
- *os << "const ";
-
- bt->accept (&visitor);
-
- *os << " &operator[] (CORBA::ULong i) const;" << be_nl << be_nl;
-
- // Static Operations
- *os << "// = Static operations." << be_nl
- << "static ";
-
- bt->accept (&visitor);
-
- *os << " *allocbuf (CORBA::ULong);" << be_nl;
-
- // free_buf
- *os << "static void freebuf (";
-
- bt->accept (&visitor);
-
- *os << " *buffer);" << be_nl << be_nl;
-
- // Implement the TAO_Base_Sequence methods (see Sequence.h)
- *os << "// Implement the TAO_Base_Sequence methods (see Sequence.h)"
- << be_nl;
-
- // allocate_buffer
- *os << "virtual void _allocate_buffer (CORBA::ULong length);" << be_nl;
-
- // deallocate_buffer
- *os << "virtual void _deallocate_buffer (void);" << be_nl;
-
- // get_buffer
- bt->accept (&visitor);
- *os << " *get_buffer (CORBA::Boolean orphan = 0);" << be_nl;
-
- // get_buffer
- *os << "const ";
-
- bt->accept (&visitor);
-
- *os << " *get_buffer (void) const;" << be_nl;
-
- // replace
- *os << "void replace (" << be_idt << be_idt_nl
- << "CORBA::ULong max," << be_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *data," << be_nl
- << "CORBA::Boolean release = 0" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl;
-
- *os << "};";
-
- os->gen_endif ();
-
- // generate #endif for AHETI.
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp
index 24b2a666569..ea7ac940810 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp
@@ -22,422 +22,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_sequence_ci,
"$Id$")
-int
-be_visitor_sequence_ci::gen_bounded_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt;
-
- // Retrieve the base type since we may need to do some code
- // generation for the base type.
- bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "visit_sequence - "
- "Bad element type\n"),
- -1);
- }
-
- // If we contain an anonymous sequence,
- // generate code for that sequence here.
- if (bt->node_type () == AST_Decl::NT_sequence)
- {
- if (this->gen_anonymous_base_type (bt,
- TAO_CodeGen::TAO_ROOT_CI)
- == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "gen_bounded_sequence - "
- "gen_anonymous_base_type failed\n"),
- -1);
- }
- }
-
- // Generate the class name.
- be_type *pt = 0;
-
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- // Get the primitive base type of this typedef node.
- be_typedef *t = be_typedef::narrow_from_decl (bt);
- pt = t->primitive_base_type ();
- }
- else
- {
- pt = bt;
- }
-
- const char * class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name,
- '\0',
- NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_scope *s =
- be_scope::narrow_from_scope (node->defined_in ());
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- s->decl ()->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
-
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- // !! Branching in either compile time template instantiation
- // or manual template instatiation
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // First generate the static methods since they are used by others. Since
- // they are inlined, their definition needs to come before their use else
- // some compilers give lots of warnings.
-
- // Static Operations.
- // allocbuf.
- *os << be_nl << be_nl
- << "ACE_INLINE" << be_nl;
-
- // The accept is used the first time here, and if an
- // error occurs, it will occur here. Later, no check
- // for errors will be done.
- if (bt->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence::"
- "gen_bounded_sequence - "
- "base type visit failed\n"),
- -1);
- }
-
- *os << " *" << be_nl
- << full_class_name << "::allocbuf (CORBA::ULong) " << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os << " *retval = 0;" << be_nl
- << "ACE_NEW_RETURN (retval, ";
-
- bt->accept (&visitor);
-
- *os << "[" << node->max_size () << "], 0);" << be_nl
- << "return retval;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // free_buf.
- *os << "ACE_INLINE void " << be_nl
- << full_class_name << "::freebuf (";
-
- bt->accept (&visitor);
-
- *os << " *buffer)" << be_nl
- << "{" << be_idt_nl
- << "delete [] buffer;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // Default constructor.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (void)" << be_nl
- << " : TAO_Bounded_Base_Sequence (" << node->max_size ()
- << ", 0)" << be_nl
- << "{" << be_nl
- << "}" << be_nl
- << be_nl;
-
- // Constructor.
- *os << "ACE_INLINE" << be_nl;
- *os << full_class_name << "::" << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *data," << be_nl
- << "CORBA::Boolean release" << be_uidt_nl
- << ")" << be_uidt_nl
- << " : TAO_Bounded_Base_Sequence (" << node->max_size ()
- << ", length, data, release)" << be_nl
- << "{" << be_nl
- << "}" << be_nl
- << be_nl;
-
- // Constructor.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name
- << " (const " << class_name << " &rhs)" << be_idt_nl
- << ": TAO_Bounded_Base_Sequence (rhs)" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (rhs.buffer_ != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" *tmp1 =" << be_idt_nl
- << class_name << "::allocbuf (" << node->max_size ()
- << ");" << be_uidt_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" * const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " * ACE_CAST_CONST, rhs.buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_array)
- {
- bt->accept (&visitor);
- *os << "_var::copy (tmp1[i], tmp2[i]);";
- }
- else
- {
- *os << "tmp1[i] = tmp2[i];";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl;
-
- *os << be_nl
- << "this->buffer_ = tmp1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // operator=.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << " &" << be_nl
- << full_class_name << "::operator= (" << be_idt << be_idt_nl
- << "const "
- << class_name << " &rhs" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (this == &rhs)" << be_idt_nl
- << "{" << be_idt_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "if (! this->release_ || this->buffer_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ =" << be_idt_nl
- << class_name
- << "::allocbuf (rhs.maximum_);" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- <<"TAO_Bounded_Base_Sequence::operator= (rhs);" << be_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<"* tmp1 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " *, this->buffer_);" << be_uidt_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<"* const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " * ACE_CAST_CONST, rhs.buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_array)
- {
- bt->accept (&visitor);
- *os << "_var::copy (tmp1[i], tmp2[i]);";
- }
- else
- {
- *os << "tmp1[i] = tmp2[i];";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl;
-
- *os << be_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // Accessors.
- *os << "ACE_INLINE" << be_nl;
-
- bt->accept (&visitor);
-
- *os << " &" << be_nl;
- *os << full_class_name << "::operator[] (CORBA::ULong i)" << be_nl
- << "{" << be_idt_nl
- << "ACE_ASSERT (i < this->maximum_);" << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "*, this->buffer_);" << be_uidt_nl
- << "return tmp[i];" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- *os << "ACE_INLINE" << be_nl
- << "const ";
-
- bt->accept (&visitor);
-
- *os << " &" << be_nl
- << full_class_name << "::operator[] (CORBA::ULong i) const"
- << be_nl
- << "{" << be_idt_nl
- << "ACE_ASSERT (i < this->maximum_);" << be_nl
- << "const ";
-
- bt->accept (&visitor);
-
- *os << "* tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (const ";
-
- bt->accept (&visitor);
-
- *os << "* ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << "return tmp[i];" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // get_buffer.
- *os << "ACE_INLINE" << be_nl;
-
- bt->accept (&visitor);
-
- *os << " *" << be_nl
- << full_class_name << "::get_buffer (CORBA::Boolean orphan)" << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os << " *result = 0;" << be_nl << be_nl
- << "if (orphan == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We retain ownership." << be_nl
- << "if (this->buffer_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "result =" << be_idt_nl
- << class_name << "::allocbuf (this->maximum_);" << be_uidt_nl
- << "this->buffer_ = result;" << be_nl
- << "this->release_ = 1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "*, this->buffer_);" << be_uidt << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else // if (orphan == 1)" << be_idt_nl
- << "{" << be_idt_nl
- << "if (this->release_ != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We set the state back to default and relinquish ownership."
- << be_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast(";
-
- bt->accept (&visitor);
-
- *os << "*, this->buffer_);" << be_uidt_nl
- << "this->maximum_ = 0;" << be_nl
- << "this->length_ = 0;" << be_nl
- << "this->buffer_ = 0;" << be_nl
- << "this->release_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return result;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // get_buffer.
- *os << "ACE_INLINE" << be_nl
- << "const ";
-
- bt->accept (&visitor);
-
- *os << " *" << be_nl
- << full_class_name << "::get_buffer (void) const" << be_nl
- << "{" << be_idt_nl
- << "return ACE_reinterpret_cast (const ";
-
- bt->accept (&visitor);
-
- *os << " * ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // replace.
- *os << "ACE_INLINE" << be_nl
- << "void " << be_nl
- << full_class_name << "::replace (" << be_idt << be_idt_nl
- << "CORBA::ULong max," << be_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *data," << be_nl
- << "CORBA::Boolean release" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "this->maximum_ = max;" << be_nl
- << "this->length_ = length;" << be_nl << be_nl
- << "if (this->buffer_ && this->release_ == 1)" << be_idt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<"* tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "* ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << class_name << "::freebuf (tmp);" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "this->buffer_ = data;" << be_nl
- << "this->release_ = release;" << be_uidt_nl
- << "}";
-
- os->gen_endif ();
-
- // Generate #endif for AHETI.
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_cs.cpp
index fc46694356e..6c662d4f0c8 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_cs.cpp
@@ -22,119 +22,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_sequence_cs,
"$Id$")
-int
-be_visitor_sequence_cs::gen_bounded_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "Bad element type\n"), -1);
- }
-
- // If we contain an anonymous sequence,
- // generate code for that sequence here.
- if (bt->node_type () == AST_Decl::NT_sequence)
- {
- int status =
- this->gen_anonymous_base_type (bt,
- TAO_CodeGen::TAO_ROOT_CS);
-
- if (status == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "gen_bounded_sequence - "
- "gen_anonymous_base_type failed\n"),
- -1);
- }
- }
-
- const char * class_name = node->instance_name ();
- static char full_class_name [NAMEBUFSIZE];
-
- ACE_OS::memset (full_class_name,
- '\0',
- NAMEBUFSIZE);
-
- be_decl *tmp =
- be_scope::narrow_from_scope (node->defined_in ())->decl ();
-
- if (node->is_nested ())
- {
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- tmp->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
-
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // allocate_buffer
- *os << be_nl << be_nl << "void " << be_nl
- << full_class_name << "::_allocate_buffer (CORBA::ULong /* length */)"
- << be_nl
- << "// allocate a buffer of the requested length. "
- << "The buffer is allocated for the" << be_nl
- << "// right type" << be_nl
- << "{" << be_idt_nl
- << "this->buffer_ = " << class_name << "::allocbuf ("
- << node->max_size () << ");" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // deallocate_buffer
- *os << "void " << be_nl
- << full_class_name << "::_deallocate_buffer (void)" << be_nl
- << "// deallocate the buffer" << be_nl
- << "{" << be_idt_nl
- << "if (this->buffer_ == 0 || this->release_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "return;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *tmp = ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " *, this->buffer_);" << be_nl
- << class_name << "::freebuf (tmp);" << be_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // destructor
- *os << full_class_name << "::~" << class_name
- << " (void) // Dtor." << be_nl
- << "{" << be_idt_nl
- << "this->_deallocate_buffer ();" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- os->gen_endif (); // endif macro
-
- // generate #endif for AHETI
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ch.cpp
index c646832a0df..00f5995e18c 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ch.cpp
@@ -23,91 +23,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_str_sequence_ch,
"$Id$")
-int
-be_visitor_sequence_ch::gen_bounded_str_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- const char *class_name = node->instance_name ();
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- *os << be_nl << be_nl
- << "class " << be_global->stub_export_macro ()
- << " " << class_name << be_idt_nl
- << ": public TAO_Bounded_Base_Sequence" << be_uidt_nl
- << "{" << be_nl
- << "public:" << be_idt_nl;
-
- // constructor
- *os << class_name << " (void);" << be_nl;
-
- // constructor
- *os << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong length," << be_nl
- << "char* *value," << be_nl
- << "CORBA::Boolean release = 0" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // constructor
- *os << class_name << " (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // operator=
- *os << class_name << " &operator= (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // destructor
- *os << "virtual ~" << class_name << " (void);" << be_nl << be_nl;
-
- // Accessors
- *os << "// = Accessors." << be_nl;
-
- // operator[]
- *os << "TAO_SeqElem_String_Manager operator[] (CORBA::ULong index) const;"
- << be_nl << be_nl;
-
- // Static operations
- *os << "// = Static operations." << be_nl;
-
- // allocbuf
- *os << "static char **allocbuf (CORBA::ULong length);" << be_nl;
-
- // freebuf
- *os << "static void freebuf (char **buffer);" << be_nl << be_nl;
-
- // Implement the TAO_Base_Sequence methods (see Sequence.h)
- *os << "// Implement the TAO_Base_Sequence methods (see Sequence.h)" << be_nl;
-
- // allocate_buffer
- *os << "virtual void _allocate_buffer (CORBA::ULong length);" << be_nl;
-
- // deallocate_buffer
- *os << "virtual void _deallocate_buffer (void);" << be_nl;
-
- // get_buffer
- *os << "char* *get_buffer (CORBA::Boolean orphan = 0);" << be_nl;
-
- // get_buffer
- *os << "const char* *get_buffer (void) const;" << be_nl;
-
- // shrink_buffer
- *os << "virtual void _shrink_buffer (" << be_idt << be_idt_nl
- << "CORBA::ULong nl," << be_nl
- << "CORBA::ULong ol" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl;
-
- *os << "};";
-
- os->gen_endif ();
-
- // generate #endif for AHETI.
- os->gen_endif_AHETI ();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp
index 517b1e262d5..cf2327fbee7 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp
@@ -24,234 +24,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_str_sequence_ci,
"$Id$")
-int
-be_visitor_sequence_ci::gen_bounded_str_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- const char * class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name,
- '\0',
- NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_decl *tmp =
- be_scope::narrow_from_scope (node->defined_in ())->decl ();
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- tmp->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // first generate the static methods since they are used by others. Since
- // they are inlined, their definition needs to come before their use else
- // some compilers (e.g., g++) produce lots of warnings.
-
- // allocbuf
- *os << be_nl << be_nl
- << "ACE_INLINE" << be_nl
- << "char **" << be_nl
- << full_class_name << "::allocbuf (CORBA::ULong /* length */)" << be_nl
- << "{" << be_idt_nl
- << "char **buf = 0;" << be_nl
- << "ACE_NEW_RETURN (buf, char *[" << node->max_size () << "], 0);"
- << be_nl << be_nl
- << "for (CORBA::ULong i = 0; i < " << node->max_size () << "; ++i)"
- << be_idt_nl
- << "{" << be_idt_nl
- << "buf[i] = 0;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return buf;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // freebuf
- *os << "ACE_INLINE" << be_nl
- << "void " << be_nl
- << full_class_name << "::freebuf (char **buffer)" << be_nl
- << "{" << be_idt_nl
- << "for (CORBA::ULong i = 0; i < " << node->max_size () << "; ++i)"
- << be_idt_nl
- << "{" << be_idt_nl
- << "if (buffer[i] != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "CORBA::string_free (buffer[i]);" << be_nl
- << "buffer[i] = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "delete [] buffer;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // constructor
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (void)" << be_nl
- << " : TAO_Bounded_Base_Sequence (" << node->max_size ()
- << ", 0)" << be_nl
- << "{" << be_nl
- << "}" << be_nl
- << be_nl;
-
- // constructor
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong length," << be_nl
- << "char* *value," << be_nl
- << "CORBA::Boolean release" << be_uidt_nl
- << ")" << be_nl
- << ": TAO_Bounded_Base_Sequence (" << node->max_size ()
- << ", length, value, release)" << be_uidt_nl
- << "{" << be_nl
- << "}" << be_nl << be_nl;
-
- // constructor
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (" << be_idt << be_idt_nl
- << "const "
- << class_name << " &rhs" << be_uidt_nl
- << ")" << be_nl
- << ": TAO_Bounded_Base_Sequence (rhs)" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (rhs.buffer_ != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "char **tmp1 ="<< be_idt_nl
- << class_name << "::allocbuf (this->maximum_);" << be_uidt_nl
- << "char ** const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (char ** ACE_CAST_CONST, rhs.buffer_);"
- << be_uidt_nl << be_nl
- << "for (CORBA::ULong i=0; i < rhs.length_; i++)" << be_idt_nl
- << "{" << be_idt_nl
- << "tmp1[i] = CORBA::string_dup (tmp2[i]);" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "this->buffer_ = tmp1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // operator=
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "& " << be_nl
- << full_class_name << "::operator= (" << be_idt << be_idt_nl
- << "const "
- << class_name << " &rhs" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (this == &rhs)" << be_idt_nl
- << "{" << be_idt_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "if (this->release_ && this->buffer_ != 0)" << be_idt_nl
- << "{ " << be_idt_nl
- << "char **tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (char **, this->buffer_);"
- << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl
- << "CORBA::string_free (tmp[i]);" << be_nl
- << "tmp[i] = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ =" << be_idt_nl
- << class_name << "::allocbuf (rhs.maximum_);"
- << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "TAO_Bounded_Base_Sequence::operator= (rhs);" << be_nl << be_nl
- << "char **tmp1 =" << be_idt_nl
- << "ACE_reinterpret_cast (char **, this->buffer_);"
- << be_uidt_nl << be_nl
- << "char ** const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (char ** ACE_CAST_CONST, rhs.buffer_);"
- << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < rhs.length_; i++)" << be_idt_nl
- << "{" << be_idt_nl
- << "tmp1[i] = CORBA::string_dup (tmp2[i]);" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // operator[]
- *os << "ACE_INLINE" << be_nl
- << "TAO_SeqElem_String_Manager " << be_nl
- << full_class_name << "::operator[] (CORBA::ULong index) const" << be_nl
- << "{" << be_idt_nl
- << "ACE_ASSERT (index < this->maximum_);" << be_nl
- << "char **const tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (char ** ACE_CAST_CONST, this->buffer_);"
- << be_uidt_nl
- << "return TAO_SeqElem_String_Manager (tmp + index, this->release_);"
- << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // get_buffer
- *os << "ACE_INLINE" << be_nl
- << "char**" << be_nl
- << full_class_name << "::get_buffer (CORBA::Boolean orphan)" << be_nl
- << "{" << be_idt_nl
- << "char **result = 0;" << be_nl << be_nl
- << "if (orphan == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We retain ownership. " << be_nl
- << "if (this->buffer_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "result =" << be_idt_nl
- << class_name << "::allocbuf (this->maximum_);" << be_uidt_nl
- << "this->buffer_ = result;" << be_nl
- << "this->release_ = 1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast (char **, this->buffer_);"
- << be_uidt << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else // if (orphan == 1)" << be_idt_nl
- << "{" << be_idt_nl
- << "if (this->release_ != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We set state back to default and relinquish ownership." << be_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast (char **, this->buffer_);" << be_uidt_nl
- << "this->maximum_ = 0;" << be_nl
- << "this->length_ = 0;" << be_nl
- << "this->buffer_ = 0;" << be_nl
- << "this->release_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return result;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // get_buffer
- *os << "ACE_INLINE" << be_nl
- << "const char**" << be_nl
- << full_class_name << "::get_buffer (void) const" << be_nl
- << "{" << be_idt_nl
- << "return ACE_reinterpret_cast (const char ** ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << "}";
-
- os->gen_endif (); // endif macro
-
- // generate #endif for AHETI
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_cs.cpp
index a0f5701cf7f..302fb866119 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_cs.cpp
@@ -24,92 +24,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_str_sequence_cs,
"$Id$")
-int
-be_visitor_sequence_cs::gen_bounded_str_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- const char * class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name,
- '\0',
- NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_decl *tmp =
- be_scope::narrow_from_scope (node->defined_in ())->decl ();
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- tmp->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // allocate_buffer
- *os << be_nl << be_nl
- << "void" << be_nl
- << full_class_name << "::_allocate_buffer (CORBA::ULong /* length */)"
- << be_nl
- << "{" << be_idt_nl
- << "// For this class memory is never reallocated so the implementation"
- << be_nl
- << "// is *really* simple." << be_nl
- << "this->buffer_ = " << class_name << "::allocbuf ("
- << node->max_size () << ");" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // deallocate_buffer
- *os << "void" << be_nl
- << full_class_name << "::_deallocate_buffer (void)" << be_nl
- << "{" << be_idt_nl
- << "if (this->buffer_ == 0 || this->release_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "return;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "char **tmp = ACE_reinterpret_cast (char **, this->buffer_);"
- << be_nl
- << class_name << "::freebuf (tmp);" << be_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // destructor
- *os << full_class_name << "::~" << class_name << " (void)" << be_nl
- << "{" << be_idt_nl
- << "this->_deallocate_buffer ();" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // shrink_buffer
- *os << "void" << be_nl
- << full_class_name << "::_shrink_buffer (CORBA::ULong nl, CORBA::ULong ol)" << be_nl
- << "{" << be_idt_nl
- << "char **tmp = ACE_reinterpret_cast (char **,this->buffer_);" << be_nl
- << be_nl
- << "for (CORBA::ULong i = nl; i < ol; ++i)" << be_nl
- << "{" << be_idt_nl
- << "CORBA::string_free (tmp[i]);" << be_nl
- << "tmp[i] = 0;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "}" << be_nl;
-
- os->gen_endif (); // endif macro
-
- // generate #endif for AHETI
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ch.cpp
index 56592dd8a67..57aaaf56ff9 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ch.cpp
@@ -22,91 +22,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_wstr_sequence_ch,
"$Id$")
-int
-be_visitor_sequence_ch::gen_bounded_wstr_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- const char * class_name = node->instance_name ();
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- *os << be_nl << be_nl
- << "class " << be_global->stub_export_macro ()
- << " " << class_name << be_idt_nl
- << ": public TAO_Bounded_Base_Sequence" << be_uidt_nl
- << "{" << be_nl
- << "public:" << be_idt_nl;
-
- // constructor
- *os << class_name << " (void);" << be_nl;
-
- // constructor
- *os << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong length," << be_nl
- << "CORBA::WChar* *value," << be_nl
- << "CORBA::Boolean release = 0" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // constructor
- *os << class_name << " (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // operator=
- *os << class_name << " &operator= (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // destructor
- *os << "virtual ~" << class_name << " (void);" << be_nl << be_nl;
-
- // Accessors
- *os << "// = Accessors." << be_nl;
-
- // operator[]
- *os << "TAO_SeqElem_WString_Manager operator[] (CORBA::ULong index) const;"
- << be_nl << be_nl;
-
- // Static operations
- *os << "// = Static operations." << be_nl;
-
- // allocbuf
- *os << "static CORBA::WChar **allocbuf (CORBA::ULong length);" << be_nl;
-
- // freebuf
- *os << "static void freebuf (CORBA::WChar **buffer);" << be_nl << be_nl;
-
- // Implement the TAO_Base_Sequence methods (see Sequence.h)
- *os << "// Implement the TAO_Base_Sequence methods (see Sequence.h)" << be_nl;
-
- // allocate_buffer
- *os << "virtual void _allocate_buffer (CORBA::ULong length);" << be_nl;
-
- // deallocate_buffer
- *os << "virtual void _deallocate_buffer (void);" << be_nl;
-
- // get_buffer
- *os << "CORBA::WChar* *get_buffer (CORBA::Boolean orphan = 0);" << be_nl;
-
- // get_buffer
- *os << "const CORBA::WChar* *get_buffer (void) const;" << be_nl;
-
- // shrink_buffer
- *os << "virtual void _shrink_buffer (" << be_idt << be_idt_nl
- << "CORBA::ULong nl," << be_nl
- << "CORBA::ULong ol" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl;
-
- *os << "};";
-
- os->gen_endif ();
-
- // generate #endif for AHETI.
- os->gen_endif_AHETI ();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ci.cpp
index 2b64014d9d8..b380c4c640c 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ci.cpp
@@ -22,233 +22,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_wstr_sequence_ci,
"$Id$")
-int
-be_visitor_sequence_ci::gen_bounded_wstr_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- const char * class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name,
- '\0',
- NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_decl *tmp =
- be_scope::narrow_from_scope (node->defined_in ())->decl ();
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- tmp->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // First generate the static methods since they are used by others. Since
- // they are inlined, their definition needs to come before their use else
- // some compilers (e.g., g++) produce lots of warnings.
-
- // allocbuf
- *os << be_nl << be_nl
- << "ACE_INLINE" << be_nl
- << "CORBA::WChar **" << be_nl
- << full_class_name << "::allocbuf (CORBA::ULong /* length */)" << be_nl
- << "{" << be_idt_nl
- << "CORBA::WChar **buf = 0;" << be_nl
- << "ACE_NEW_RETURN (buf, CORBA::WChar *[" << node->max_size ()
- << "], 0);" << be_nl << be_nl
- << "for (CORBA::ULong i = 0; i < " << node->max_size () << "; i++)"
- << be_idt_nl
- << "{" << be_idt_nl
- << "buf[i] = 0;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return buf;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // freebuf
- *os << "ACE_INLINE" << be_nl
- << "void " << be_nl
- << full_class_name << "::freebuf (CORBA::WChar **buffer)" << be_nl
- << "{" << be_idt_nl
- << "for (CORBA::ULong i = 0; i < " << node->max_size () << "; ++i)"
- << be_idt_nl
- << "{" << be_idt_nl
- << "if (buffer[i] != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "CORBA::wstring_free (buffer[i]);" << be_nl
- << "buffer[i] = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "delete [] buffer;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // constructor
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (void)" << be_nl
- << " : TAO_Bounded_Base_Sequence (" << node->max_size ()
- << ", 0)" << be_nl
- << "{" << be_nl
- << "}" << be_nl << be_nl;
-
- // constructor
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " ("
- << be_idt << be_idt_nl
- << "CORBA::ULong length," << be_nl
- << "CORBA::WChar* *value," << be_nl
- << "CORBA::Boolean release" << be_uidt_nl
- << ")" << be_nl
- << ": TAO_Bounded_Base_Sequence (" << node->max_size ()
- << ", length, value, release)" << be_uidt_nl
- << "{" << be_nl
- << "}" << be_nl << be_nl;
-
- // constructor
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (" << be_idt << be_idt_nl
- << "const "
- << class_name << " &rhs" << be_uidt_nl
- << ")" << be_nl
- << ": TAO_Bounded_Base_Sequence (rhs)" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (rhs.buffer_ != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "CORBA::WChar **tmp1 =" << be_idt_nl
- << class_name
- << "::allocbuf (this->maximum_);" << be_uidt_nl << be_nl
- << "CORBA::WChar ** const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (CORBA::WChar ** ACE_CAST_CONST, rhs.buffer_);"
- << be_uidt_nl << be_nl
- << "for (CORBA::ULong i=0; i < rhs.length_; i++)" << be_idt_nl
- << "{" << be_idt_nl
- << "tmp1[i] = CORBA::wstring_dup (tmp2[i]);" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "this->buffer_ = tmp1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // operator=
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "& " << be_nl
- << full_class_name << "::operator= (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (this == &rhs)" << be_idt_nl
- << "{" << be_idt_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "if (this->release_ && this->buffer_ != 0)" << be_idt_nl
- << "{ " << be_idt_nl
- << "CORBA::WChar **tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (CORBA::WChar **, this->buffer_);"
- << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl
- << "CORBA::wstring_free (tmp[i]);" << be_nl
- << "tmp[i] = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ =" << be_idt_nl
- << class_name
- << "::allocbuf (rhs.maximum_);" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "TAO_Bounded_Base_Sequence::operator= (rhs);" << be_nl << be_nl
- << "CORBA::WChar **tmp1 =" << be_idt_nl
- << "ACE_reinterpret_cast (CORBA::WChar **, this->buffer_);"
- << be_uidt_nl
- << "CORBA::WChar ** const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (CORBA::WChar ** ACE_CAST_CONST, rhs.buffer_);"
- << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < rhs.length_; i++)" << be_idt_nl
- << "{" << be_idt_nl
- << "tmp1[i] = CORBA::wstring_dup (tmp2[i]);" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // operator[]
- *os << "ACE_INLINE" << be_nl
- << "TAO_SeqElem_WString_Manager " << be_nl
- << full_class_name << "::operator[] (CORBA::ULong index) const" << be_nl
- << "{" << be_idt_nl
- << "ACE_ASSERT (index < this->maximum_);" << be_nl
- << "CORBA::WChar **const tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (CORBA::WChar ** ACE_CAST_CONST, this->buffer_);"
- << be_uidt_nl
- << "return TAO_SeqElem_WString_Manager (tmp + index, this->release_);"
- << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // get_buffer
- *os << "ACE_INLINE" << be_nl
- << "CORBA::WChar**" << be_nl
- << full_class_name << "::get_buffer (CORBA::Boolean orphan)" << be_nl
- << "{" << be_idt_nl
- << "CORBA::WChar **result = 0;" << be_nl << be_nl
- << "if (orphan == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We retain ownership. " << be_nl
- << "if (this->buffer_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "result = " << class_name << "::allocbuf (this->maximum_);"
- << be_nl
- << "this->buffer_ = result;" << be_nl
- << "this->release_ = 1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "result = ACE_reinterpret_cast (CORBA::WChar **, this->buffer_);"
- << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else // if (orphan == 1)" << be_idt_nl
- << "{" << be_idt_nl
- << "if (this->release_ != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We set state back to default and relinquish ownership." << be_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast (CORBA::WChar **, this->buffer_);"
- << be_uidt_nl
- << "this->maximum_ = 0;" << be_nl
- << "this->length_ = 0;" << be_nl
- << "this->buffer_ = 0;" << be_nl
- << "this->release_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return result;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // get_buffer
- *os << "ACE_INLINE" << be_nl
- << "const CORBA::WChar**" << be_nl
- << full_class_name << "::get_buffer (void) const" << be_nl
- << "{" << be_idt_nl
- << "return ACE_reinterpret_cast (const CORBA::WChar ** ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << "}";
-
- os->gen_endif (); // endif macro
-
- // generate #endif for AHETI
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_cs.cpp
index 6335e23593c..b7f0ccacc28 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_cs.cpp
@@ -22,92 +22,3 @@ ACE_RCSID (be_visitor_sequence,
gen_bounded_wstr_sequence_cs,
"$Id$")
-int
-be_visitor_sequence_cs::gen_bounded_wstr_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- const char * class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name, '\0', NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_decl *tmp =
- be_scope::narrow_from_scope (node->defined_in ())->decl ();
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- tmp->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // allocate_buffer
- *os << be_nl << be_nl
- << "void" << be_nl
- << full_class_name << "::_allocate_buffer (CORBA::ULong /* length */)"
- << be_nl
- << "{" << be_idt_nl
- << "// For this class memory is never reallocated so the implementation"
- << be_nl
- << "// is *really* simple." << be_nl
- << "this->buffer_ = " << class_name << "::allocbuf ("
- << node->max_size () << ");" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // deallocate_buffer
- *os << "void" << be_nl
- << full_class_name << "::_deallocate_buffer (void)" << be_nl
- << "{" << be_idt_nl
- << "if (this->buffer_ == 0 || this->release_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "return;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "CORBA::WChar **tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (CORBA::WChar **, this->buffer_);"
- << be_uidt_nl
- << class_name << "::freebuf (tmp);" << be_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // destructor
- *os << full_class_name << "::~" << class_name << " (void)" << be_nl
- << "{" << be_idt_nl
- << "this->_deallocate_buffer ();" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // shrink_buffer
- *os << "void" << be_nl
- << full_class_name << "::_shrink_buffer (CORBA::ULong nl, CORBA::ULong ol)" << be_nl
- << "{" << be_idt_nl
- << "CORBA::WChar **tmp = ACE_reinterpret_cast (CORBA::WChar **,this->buffer_);" << be_nl
- << be_nl
- << "for (CORBA::ULong i = nl; i < ol; ++i)" << be_nl
- << "{" << be_idt_nl
- << "CORBA::wstring_free (tmp[i]);" << be_nl
- << "tmp[i] = 0;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "}" << be_nl;
-
- os->gen_endif (); // endif macro
-
- // generate #endif for AHETI
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp
index 364ac9dffaa..1e20fc4ede0 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp
@@ -24,180 +24,3 @@ ACE_RCSID (be_visitor_sequence,
gen_unbounded_obj_sequence_ch,
"$Id$")
-int
-be_visitor_sequence_ch::gen_unbounded_obj_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "Bad element type\n"), -1);
- }
-
- be_type *pt;
-
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- // Get the primitive base type of this typedef node.
- be_typedef *t = be_typedef::narrow_from_decl (bt);
- pt = t->primitive_base_type ();
- }
- else
- {
- pt = bt;
- }
-
- // Generate the class name.
- const char *class_name = node->instance_name ();
-
- be_visitor_context ctx (*this->ctx_);
- ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CH);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- *os << be_nl << be_nl
- << "class " << be_global->stub_export_macro ()
- << " " << class_name << be_idt_nl
- << ": public TAO_Unbounded_Base_Sequence" << be_uidt_nl
- << "{" << be_nl
- << "public:" << be_idt_nl;
-
- // default constructor
- *os << class_name << " (void);" << be_nl;
-
- // constructor
- *os << class_name << " (CORBA::ULong maximum);" << be_nl;
-
- // constructor
- *os << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong maximum," << be_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os <<"* *value," << be_nl
- << "CORBA::Boolean release = 0" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // constructor
- *os << class_name << " (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // operator=
- *os << class_name << " &operator= (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // destructor
- *os << "virtual ~" << class_name << " (void);" << be_nl << be_nl;
-
- // Accessors
- *os << "// = Accessors." << be_nl;
-
- AST_Decl::NodeType nt = pt->node_type ();
-
- // operator[]
- be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
-
- int is_pseudo_object =
- nt == AST_Decl::NT_pre_defined
- && prim
- && prim->pt () == AST_PredefinedType::PT_pseudo;
-
- if (is_pseudo_object)
- {
- *os << "TAO_Pseudo_Object_Manager<";
- }
- else if (nt == AST_Decl::NT_valuetype)
- {
- *os << "TAO_Valuetype_Manager<";
- }
- else if (node->base_type ()->is_abstract ())
- {
- *os << "TAO_Abstract_Manager<";
- }
- else
- {
- *os << "TAO_Object_Manager<";
- }
-
- *os << bt->name () << ","
- << bt->name () << "_var>"
- << " operator[] (CORBA::ULong index) const;" << be_nl << be_nl;
-
- // Static operations
- *os << "// = Static operations." << be_nl;
-
- // allocbuf
- *os << "static ";
-
- bt->accept (&visitor);
-
- *os << " **allocbuf (CORBA::ULong nelems);" << be_nl;
-
- // freebuf
- *os << "static void freebuf (";
-
- bt->accept (&visitor);
-
- *os << " **buffer);" << be_nl << be_nl;
-
- // Implement the TAO_Base_Sequence methods (see Sequence.h)
- *os << "// Implement the TAO_Base_Sequence methods (see Sequence.h)" << be_nl;
-
- // allocate_buffer
- *os << "virtual void _allocate_buffer (CORBA::ULong length);" << be_nl;
-
- // deallocate_buffer
- *os << "virtual void _deallocate_buffer (void);" << be_nl;
-
- // get_buffer
- bt->accept (&visitor);
-
- *os << "* *get_buffer (CORBA::Boolean orphan = 0);" << be_nl;
-
- // get_buffer
- *os << "const ";
-
- bt->accept (&visitor);
-
- *os << "* *get_buffer (void) const;" << be_nl;
-
- // shrink_buffer
- *os << "virtual void _shrink_buffer (" << be_idt << be_idt_nl
- << "CORBA::ULong nl," << be_nl
- << "CORBA::ULong ol" << be_uidt_nl
- << ");" << be_uidt;
-
- if (! (is_pseudo_object || nt == AST_Decl::NT_valuetype))
- {
- // Pseudo objects do not require these methods.
- *os << be_nl << be_nl
- << "virtual void _downcast (" << be_idt << be_idt_nl
- << "void* target," << be_nl
- << "CORBA::Object *src" << be_nl
- << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- *os << "virtual CORBA::Object* _upcast (void *src) const;";
- }
-
- *os << be_uidt_nl << "};";
-
- os->gen_endif ();
-
- // generate #endif for AHETI.
- os->gen_endif_AHETI ();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp
index 31660353d25..27fa6b543fb 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp
@@ -23,542 +23,3 @@ ACE_RCSID (be_visitor_sequence,
gen_unbounded_obj_sequence_ci,
"$Id$")
-int
-be_visitor_sequence_ci::gen_unbounded_obj_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- // Retrieve the base type since we may need to do some code
- // generation for the base type.
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "visit_sequence - "
- "Bad element type\n"),
- -1);
- }
-
- // Generate the class name;
- be_type *pt;
-
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- // Get the primitive base type of this typedef node.
- be_typedef *t = be_typedef::narrow_from_decl (bt);
- pt = t->primitive_base_type ();
- }
- else
- {
- pt = bt;
- }
-
- const char *name =
- be_decl::narrow_from_decl (pt)->full_name ();
-
- idl_bool bt_is_defined;
-
- // Special cases.
- if (ACE_OS::strcmp (name, "CORBA::Object") == 0
- || ACE_OS::strcmp (name, "CORBA::TypeCode") == 0)
- {
- bt_is_defined = 1;
- }
- else if (pt->node_type () == AST_Decl::NT_interface_fwd)
- {
- AST_InterfaceFwd *ifbt = AST_InterfaceFwd::narrow_from_decl (pt);
- bt_is_defined = ifbt->full_definition ()->is_defined ();
- }
- else
- {
- AST_Interface *ibt = AST_Interface::narrow_from_decl (pt);
- bt_is_defined = ibt->is_defined ();
- }
-
- const char *class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name,
- '\0',
- NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_scope *parent = be_scope::narrow_from_scope (node->defined_in ());
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- parent->decl ()->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // allocbuf.
- *os << be_nl << be_nl
- << "ACE_INLINE" << be_nl;
-
- // The accept is here the first time used and if an
- // error occurs, it will occur here. Later no check
- // for errors will be done.
- if (bt->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "gen_unbounded_obj_sequence - "
- "base type visit failed\n"),
- -1);
- }
-
- *os << " **" << be_nl
- << full_class_name << "::allocbuf (CORBA::ULong nelems)" << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" **buf = 0;" << be_nl
- << be_nl
- << "ACE_NEW_RETURN (buf, "
- ;
- bt->accept (&visitor);
-
- *os << "*[nelems], 0);" << be_nl << be_nl
- << "for (CORBA::ULong i = 0; i < nelems; i++)" << be_idt_nl
- << "{" << be_idt_nl
- << "buf[i] = ";
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "0;";
- }
- else if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << "::_nil ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_nil ();";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return buf;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // Freebuf.
- *os << "ACE_INLINE" << be_nl
- << "void " << be_nl
- << full_class_name << "::freebuf (";
-
- bt->accept (&visitor);
-
- *os << " **buffer)" << be_nl
- << "{" << be_idt_nl
- << "if (buffer == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "return;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "delete[] buffer;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // Constructor.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (void)" << be_nl
- << "{" << be_nl
- << "}" << be_nl << be_nl;
-
- // Constructor.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name
- << " (CORBA::ULong maximum)" << be_idt_nl
- << ": TAO_Unbounded_Base_Sequence (maximum, "
- << class_name << "::allocbuf (maximum))" << be_uidt_nl
- << "{" << be_nl
- << "}" << be_nl
- << be_nl;
-
- // Constructor.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong maximum," << be_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os <<"* *value," << be_nl
- << "CORBA::Boolean release" << be_uidt_nl
- << ")" << be_nl
- << ": TAO_Unbounded_Base_Sequence (maximum, length, value, release)"
- << be_uidt_nl
- << "{" << be_nl
- << "}" << be_nl << be_nl;
-
- // Constructor.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << "(" << be_idt << be_idt_nl
- << "const "
- << class_name << " &rhs" << be_uidt_nl
- << ")" << be_nl
- << ": TAO_Unbounded_Base_Sequence (rhs)" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (rhs.buffer_ != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp1 =" << be_idt_nl
- << class_name << "::allocbuf (this->maximum_);" << be_uidt_nl;
-
- bt->accept (&visitor);
-
- *os <<" ** const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " ** ACE_CAST_CONST, rhs.buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < rhs.length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "if (tmp2[i] != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (bt_is_defined)
- {
- *os << "tmp2[i]->_add_ref ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_add_ref ();";
- }
-
- *os << be_uidt_nl << "}" << be_uidt_nl << be_nl
- << "tmp1[i] = tmp2 [i];";
- }
- else
- {
- *os << "tmp1[i] = ";
-
- if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << "::_duplicate (tmp2[i]);";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_duplicate (tmp2[i]);";
- }
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "this->buffer_ = tmp1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // Operator =.
- *os << "ACE_INLINE" << be_nl
- << full_class_name << " &" << be_nl
- << full_class_name << "::operator= (" << be_idt << be_idt_nl
- << "const "
- << class_name << " &rhs" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (this == &rhs)" << be_idt_nl
- << "{" << be_idt_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "if (this->release_)" << be_idt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " **, this->buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "if (tmp[i] != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (bt_is_defined)
- {
- *os << "tmp[i]->_remove_ref ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_remove_ref ();";
- }
-
- *os << be_uidt_nl << "}" << be_uidt_nl << be_nl
- << "tmp[i] = 0;";
- }
- else if (bt_is_defined)
- {
- *os << "CORBA::release (tmp[i]);" << be_nl
- << "tmp[i] = ";
-
- bt->accept (&visitor);
-
- *os << "::_nil ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_release (tmp[i]);" << be_nl
- << "tmp[i] = "
- << "tao_" << pt->flat_name () << "_nil ();";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "if (this->maximum_ < rhs.maximum_)" << be_idt_nl
- << "{" << be_idt_nl
- << class_name << "::freebuf (tmp);" << be_nl
- << "this->buffer_ = " << class_name
- << "::allocbuf (rhs.maximum_);" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ =" << be_idt_nl
- << class_name
- << "::allocbuf (rhs.maximum_);" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "TAO_Unbounded_Base_Sequence::operator= (rhs);" << be_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp1 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " **, this->buffer_);" << be_uidt_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" ** const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " ** ACE_CAST_CONST, rhs.buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < rhs.length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "if (tmp2[i] != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (bt_is_defined)
- {
- *os << "tmp2[i]->_add_ref ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_add_ref ();";
- }
-
- *os << be_uidt_nl << "}" << be_uidt_nl << be_nl
- << "tmp1[i] = tmp2 [i];";
- }
- else
- {
- *os << "tmp1[i] = ";
-
- if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << "::_duplicate (tmp2[i]);";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_duplicate (tmp2[i]);";
- }
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // Operator[].
- be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
-
- int is_pseudo_object =
- pt->node_type () == AST_Decl::NT_pre_defined
- && prim
- && prim->pt () == AST_PredefinedType::PT_pseudo;
-
- *os << "ACE_INLINE" << be_nl;
-
- if (is_pseudo_object)
- {
- *os << "TAO_Pseudo_Object_Manager<";
- }
- else
- {
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "TAO_Valuetype_Manager<";
- }
- else if (node->base_type ()->is_abstract ())
- {
- *os << "TAO_Abstract_Manager<";
- }
- else
- {
- *os << "TAO_Object_Manager<";
- }
- }
-
- *os << bt->name () << ","
- << bt->name () << "_var>" << be_nl
- << full_class_name << "::operator[] (CORBA::ULong index) const"
- << be_nl
- << "{" << be_idt_nl
- << "ACE_ASSERT (index < this->maximum_);" << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" ** const tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " ** ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << "return ";
-
- if (is_pseudo_object)
- {
- *os << "TAO_Pseudo_Object_Manager<";
- }
- else
- {
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- *os << "TAO_Valuetype_Manager<";
- }
- else if (node->base_type ()->is_abstract ())
- {
- *os << "TAO_Abstract_Manager<";
- }
- else
- {
- *os << "TAO_Object_Manager<";
- }
- }
-
- *os << bt->name () << ","
- << bt->name () << "_var>"
- << " (tmp + index, this->release_);" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // get_buffer
- *os << "ACE_INLINE" << be_nl;
-
- bt->accept (&visitor);
-
- *os << "* *" << be_nl
- << full_class_name << "::get_buffer (CORBA::Boolean orphan)" << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os << " **result = 0;" << be_nl << be_nl
- << "if (orphan == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We retain ownership." << be_nl
- << "if (this->buffer_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "result =" << be_idt_nl << class_name
- << "::allocbuf (this->maximum_);" << be_uidt_nl
- << "this->buffer_ = result;" << be_nl
- << "this->release_ = 1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "**, this->buffer_);" << be_uidt << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else // if (orphan == 1)" << be_idt_nl
- << "{" << be_idt_nl
- << "if (this->release_ != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We set the state back to default and relinquish ownership."
- << be_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast(";
-
- bt->accept (&visitor);
-
- *os << "**,this->buffer_);" << be_uidt_nl
- << "this->maximum_ = 0;" << be_nl
- << "this->length_ = 0;" << be_nl
- << "this->buffer_ = 0;" << be_nl
- << "this->release_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return result;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // get_buffer.
- *os << "ACE_INLINE" << be_nl;
- *os << "const ";
-
- bt->accept (&visitor);
-
- *os << "* *" << be_nl
- << full_class_name << "::get_buffer (void) const" << be_nl
- << "{" << be_idt_nl
- << "return ACE_reinterpret_cast (const ";
-
- bt->accept (&visitor);
-
- *os << " ** ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << "}";
-
- os->gen_endif ();
-
- // Generate #endif for AHETI.
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp
index ec7ed507be9..bb879229dda 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp
@@ -23,341 +23,3 @@ ACE_RCSID (be_visitor_sequence,
gen_unbounded_obj_sequence_cs,
"$Id$")
-int
-be_visitor_sequence_cs::gen_unbounded_obj_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "Bad element type\n"), -1);
- }
-
- // Generate the class name.
- be_type *pt;
-
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- // Get the primitive base type of this typedef node.
- be_typedef *t = be_typedef::narrow_from_decl (bt);
- pt = t->primitive_base_type ();
- }
- else
- {
- pt = bt;
- }
-
- const char *name = be_decl::narrow_from_decl (pt)->full_name ();
-
- idl_bool bt_is_defined;
-
- // Special cases.
- if (ACE_OS::strcmp (name, "CORBA::Object") == 0
- || ACE_OS::strcmp (name, "CORBA::TypeCode") == 0)
- {
- bt_is_defined = 1;
- }
- else if (pt->node_type () == AST_Decl::NT_interface_fwd)
- {
- AST_InterfaceFwd *ifbt = AST_InterfaceFwd::narrow_from_decl (pt);
- bt_is_defined = ifbt->full_definition ()->is_defined ();
- }
- else
- {
- AST_Interface *ibt = AST_Interface::narrow_from_decl (pt);
- bt_is_defined = ibt->is_defined ();
- }
-
- const char * class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name,
- '\0',
- NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_scope *parent = be_scope::narrow_from_scope (node->defined_in ());
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- parent->decl ()->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // allocate_buffer.
- *os << be_nl << be_nl
- << "// The Base_Sequence functions, please see tao/Sequence.h"
- << be_nl
- << "void" << be_nl
- << full_class_name << "::_allocate_buffer (CORBA::ULong length)"
- << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp = 0;" << be_nl
- << "tmp = " << class_name << "::allocbuf (length);" << be_nl
- << be_nl
- << "if (this->buffer_ != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" **old = ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "**, this->buffer_);" << be_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl
- << "if (!this->release_)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- if (bt_is_defined)
- {
- *os << "CORBA::add_ref (old[i]);";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_add_ref (old[i]);";
- }
-
- *os << be_nl << "tmp[i] = old[i];";
- }
- else
- {
- *os << "tmp[i] = ";
-
- if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << "::_duplicate (old[i]);";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_duplicate (old[i]);";
- }
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "tmp[i] = old[i];" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "if (this->release_)" << be_idt_nl
- << "{" << be_idt_nl
- << "delete [] old;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "this->buffer_ = tmp;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // deallocate_buffer.
- *os << "void" << be_nl
- << full_class_name << "::_deallocate_buffer (void)" << be_nl
- << "{" << be_idt_nl
- << "if (this->buffer_ == 0 || this->release_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "return;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp = ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "**, this->buffer_);" << be_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- if (bt_is_defined)
- {
- *os << "CORBA::remove_ref (tmp[i]);";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_remove_ref (tmp[i]);";
- }
-
- *os << be_nl << "tmp[i] = 0;";
- }
- else if (bt_is_defined)
- {
- *os << "CORBA::release (tmp[i]);" << be_nl
- << "tmp[i] = ";
-
- bt->accept (&visitor);
-
- *os << "::_nil ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_release (tmp[i]);" << be_nl
- << "tmp[i] = "
- << "tao_" << pt->flat_name () << "_nil ();";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << class_name << "::freebuf (tmp);" << be_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // Destructor.
- *os << full_class_name << "::~" << class_name << " (void)" << be_nl
- << "{" << be_idt_nl
- << "this->_deallocate_buffer ();" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // shrink_buffer.
- *os << "void" << be_nl
- << full_class_name
- << "::_shrink_buffer (CORBA::ULong nl, CORBA::ULong ol)" << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" **tmp = ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "**, this->buffer_);" << be_nl << be_nl
- << "for (CORBA::ULong i = nl; i < ol; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_valuetype)
- {
- if (bt_is_defined)
- {
- *os << "CORBA::remove_ref (tmp[i]);";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_remove_ref (tmp[i]);";
- }
-
- *os << be_nl << "tmp[i] = 0;";
- }
- else if (bt_is_defined)
- {
- *os << "CORBA::release (tmp[i]);" << be_nl
- << "tmp[i] = ";
-
- bt->accept (&visitor);
-
- *os << "::_nil ();";
- }
- else
- {
- *os << "tao_" << pt->flat_name () << "_release (tmp[i]);" << be_nl
- << "tmp[i] = "
- << "tao_" << pt->flat_name () << "_nil ();";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_nl << be_nl;
-
-
- be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
-
- if (pt->node_type () != AST_Decl::NT_valuetype
- && (pt->node_type () != AST_Decl::NT_pre_defined)
- || (prim &&
- prim->pt () == AST_PredefinedType::PT_object))
- {
- // Pseudo objects do not require these methods.
- *os << "void " << be_nl
- << full_class_name << "::_downcast (" << be_idt << be_idt_nl
- << "void* target," << be_nl
- << "CORBA::Object *src" << be_nl
- << "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os << " **tmp = ACE_static_cast (";
-
- bt->accept (&visitor);
-
- *os << "**, target);" << be_nl
- << "*tmp = ";
-
- if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << "::_narrow (src ACE_ENV_ARG_PARAMETER);";
- }
- else
- {
- *os << "tao_" << pt->flat_name ()
- << "_narrow (src ACE_ENV_ARG_PARAMETER);";
- }
-
- *os << be_nl
- << "ACE_CHECK;" << be_uidt_nl
- << "}\n" << be_nl;
-
- *os << "CORBA::Object*" << be_nl
- << full_class_name << "::_upcast (void *src) const" << be_nl
- << "{" << be_idt_nl;
-
- if (bt_is_defined)
- {
- bt->accept (&visitor);
-
- *os << " **tmp = ACE_static_cast (";
-
- bt->accept (&visitor);
-
- *os << "**, src);" << be_nl
- << "return *tmp;";
- }
- else
- {
- *os << "return tao_" << pt->flat_name () << "_upcast (src);";
- }
-
- *os << be_uidt_nl
- << "}";
- }
-
- os->gen_endif ();
-
- // Generate #endif for AHETI.
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp
index 70efcbd664e..88913fd39c5 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp
@@ -22,164 +22,3 @@ ACE_RCSID (be_visitor_sequence,
gen_unbounded_sequence_ch,
"$Id$")
-int
-be_visitor_sequence_ch::gen_unbounded_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "Bad element type\n"), -1);
- }
-
- // If we contain an anonymous sequence,
- // generate code for that sequence here.
- if (bt->node_type () == AST_Decl::NT_sequence)
- {
- int status =
- this->gen_anonymous_base_type (bt,
- TAO_CodeGen::TAO_ROOT_CH);
-
- if (status == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "gen_unbounded_sequence - "
- "gen_anonymous_base_type failed\n"),
- -1);
- }
- }
-
- const char * class_name = node->instance_name ();
-
- // Get the visitor for the type of the sequence.
- be_visitor_context ctx (*this->ctx_);
- ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CH);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI ();
- os->gen_ifdef_macro (class_name);
-
- *os << be_nl << be_nl
- << "class " << be_global->stub_export_macro () << " "
- << class_name << be_idt_nl
- << ": public TAO_Unbounded_Base_Sequence" << be_uidt_nl
- << "{" << be_nl
- << "public:" << be_idt_nl;
-
- // constructor
- *os << class_name << " (void);" << be_nl;
-
- // constructor
- *os << class_name << " (CORBA::ULong maximum); " << be_nl;
-
- // constructor
- *os << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong maximum," << be_nl
- << "CORBA::ULong length," << be_nl;
-
- // The accept is used here the first time and if an
- // error occurs, it will occur here. Later no check
- // for errors will be done.
- if (bt->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "base type visit failed\n"),
- -1);
- }
-
- *os << " *data," << be_nl
- << "CORBA::Boolean release = 0" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // constructor
- *os << class_name << " (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // operator =
- *os << class_name << " &operator= (" << be_idt << be_idt_nl
- << "const " << class_name << " &rhs" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- // destructor
- *os << "virtual ~" << class_name << " (void);" << be_nl << be_nl;
-
- // Accessors
- *os << "// = Accessors." << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" &operator[] (CORBA::ULong i);" << be_nl;
-
- // operator[]
- *os << "const ";
-
- bt->accept (&visitor);
-
- *os << " &operator[] (CORBA::ULong i) const;" << be_nl << be_nl;
-
- // Static operations
- *os << "// = Static operations." << be_nl
- << "static ";
-
- bt->accept (&visitor);
-
- *os << " *allocbuf (CORBA::ULong size);" << be_nl;
-
- *os << "static void freebuf (";
-
- bt->accept (&visitor);
-
- *os << " *buffer);" << be_nl << be_nl;
-
- // Implement the TAO_Base_Sequence methods (see Sequence.h)
- *os << "// Implement the TAO_Base_Sequence methods (see Sequence.h)"
- << be_nl;
-
- // allocate_buffer
- *os << "virtual void _allocate_buffer (CORBA::ULong length);" << be_nl;
-
- // deallocate_buffer
- *os << "virtual void _deallocate_buffer (void);" << be_nl;
-
- bt->accept (&visitor);
-
- *os << " *get_buffer (CORBA::Boolean orphan = 0);" << be_nl;
-
- // get_buffer
- *os << "const ";
-
- bt->accept (&visitor);
-
- *os << " *get_buffer (void) const;" << be_nl;
-
- // replace
- *os << "void replace (" << be_idt << be_idt_nl
- << "CORBA::ULong max," << be_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *data," << be_nl
- << "CORBA::Boolean release" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl;
-
- *os << "};";
-
- os->gen_endif (); // endif macro
-
- // generate #endif for AHETI
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp
index d170d256dfb..3d6deb0a35b 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp
@@ -22,441 +22,3 @@ ACE_RCSID (be_visitor_sequence,
gen_unbounded_sequence_ci,
"$Id$")
-int
-be_visitor_sequence_ci::gen_unbounded_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "visit_sequence - "
- "Bad element type\n"),
- -1);
- }
-
- // If we contain an anonymous sequence,
- // generate code for that sequence here.
- if (bt->node_type () == AST_Decl::NT_sequence)
- {
- int status =
- this->gen_anonymous_base_type (bt,
- TAO_CodeGen::TAO_ROOT_CI);
-
- if (status == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "gen_unbounded_sequence - "
- "gen_anonymous_base_type failed\n"),
- -1);
- }
- }
-
- // Generate the class name
- be_type *pt;
-
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- // Get the primitive base type of this typedef node.
- be_typedef *t = be_typedef::narrow_from_decl (bt);
- pt = t->primitive_base_type ();
- }
- else
- pt = bt;
-
-
- const char * class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name, '\0', NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_decl *tmp =
- be_scope::narrow_from_scope (node->defined_in ())->decl ();
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- tmp->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
- // Get the visitor for the type of the sequence.
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // Static operations
- // allocbuf
- *os << be_nl << be_nl
- << "ACE_INLINE" << be_nl;
- // the accept is here the first time used and if an
- // error occurs, it will occur here. Later no check
- // for errors will be done.
- if (bt->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "gen_unbounded_sequence - "
- "base type visit failed\n"),
- -1);
- }
-
- *os << " *" << be_nl
- << full_class_name << "::allocbuf (CORBA::ULong size)" << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os << " *retval = 0;" << be_nl
- << "ACE_NEW_RETURN (retval, ";
-
- bt->accept (&visitor);
-
- *os << "[size], 0);" << be_nl
- << "return retval;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- *os << "ACE_INLINE" << be_nl
- << "void "
- << full_class_name << "::freebuf (";
-
- bt->accept (&visitor);
-
- *os << " *buffer)" << be_nl
- << "{" << be_idt_nl
- << "delete [] buffer;" << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // constructor
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name
- << " (void)" << be_nl
- << "{" << be_nl
- << "}" << be_nl
- << be_nl;
-
- // constructor
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name
- << " (CORBA::ULong maximum) " << be_idt_nl
- << ": TAO_Unbounded_Base_Sequence (maximum, "
- << class_name << "::allocbuf (maximum))"
- << be_uidt_nl
- << "{" << be_nl
- << "}" << be_nl
- << be_nl;
-
- // constructor
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (" << be_idt << be_idt_nl
- << "CORBA::ULong maximum," << be_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os << " *data," << be_nl
- << "CORBA::Boolean release" << be_uidt_nl
- << ")" << be_nl
- << ": TAO_Unbounded_Base_Sequence (maximum, length, data, release)"
- << be_uidt_nl
- << "{" << be_nl
- << "}" << be_nl << be_nl;
-
- // constructor
- *os << "ACE_INLINE" << be_nl
- << full_class_name << "::" << class_name << " (" << be_idt << be_idt_nl
- << "const "
- << class_name << " &rhs" << be_uidt_nl
- << ")" << be_nl;
- *os << ": TAO_Unbounded_Base_Sequence (rhs)" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (rhs.buffer_ != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" *tmp1 =" << be_idt_nl
- << class_name << "::allocbuf (this->maximum_);" << be_uidt_nl;
-
- bt->accept (&visitor);
-
- *os << " * const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " * ACE_CAST_CONST, rhs.buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_array)
- {
- bt->accept (&visitor);
- *os << "_var::copy (tmp1[i], tmp2[i]);";
- }
- else
- {
- *os << "tmp1[i] = tmp2[i];";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl;
-
- *os << be_nl
- << "this->buffer_ = tmp1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_nl
- << be_nl;
-
- // operator =
- *os << "ACE_INLINE" << be_nl
- << full_class_name << " &" << be_nl
- << full_class_name << "::operator= (" << be_idt << be_idt_nl
- << "const "
- << class_name << " &rhs" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (this == &rhs)" << be_idt_nl
- << "{" << be_idt_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "if (this->release_)" << be_idt_nl
- << "{" << be_idt_nl
- << "if (this->maximum_ < rhs.maximum_)" << be_idt_nl
- << "{" << be_idt_nl
- << "// Free the old buffer." << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " *, this->buffer_);" << be_uidt_nl << be_nl
- << class_name << "::freebuf (tmp);" << be_nl << be_nl
- << "this->buffer_ =" << be_idt_nl
- << class_name
- << "::allocbuf (rhs.maximum_);" << be_uidt << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "this->buffer_ =" << be_idt_nl
- << class_name
- << "::allocbuf (rhs.maximum_);" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "TAO_Unbounded_Base_Sequence::operator= (rhs);" << be_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *tmp1 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " *, this->buffer_);" << be_uidt_nl;
-
- bt->accept (&visitor);
-
- *os <<" * const tmp2 =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " * ACE_CAST_CONST, rhs.buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_array)
- {
- bt->accept (&visitor);
- *os << "_var::copy (tmp1[i], tmp2[i]);";
- }
- else
- {
- *os << "tmp1[i] = tmp2[i];";
- }
-
- *os << be_uidt_nl
- << "}" << be_uidt_nl;
-
- *os << be_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // Accessors
- *os << "// = Accessors." << be_nl;
- *os << "ACE_INLINE" << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" &" << be_nl
- << full_class_name << "::operator[] (CORBA::ULong i)" << be_nl
- << "{" << be_idt_nl
- << "ACE_ASSERT (i < this->maximum_);" << be_nl;
-
- bt->accept (&visitor);
-
- *os <<"* tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "*, this->buffer_);" << be_uidt_nl
- << "return tmp[i];" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // operator[]
- *os << "ACE_INLINE" << be_nl
- << "const ";
-
- bt->accept (&visitor);
-
- *os << " &" << be_nl
- << full_class_name << "::operator[] (CORBA::ULong i) const" << be_nl
- << "{" << be_idt_nl
- << "ACE_ASSERT (i < this->maximum_);" << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" * const tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "* ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << "return tmp[i];" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // Implement the TAO_Base_Sequence methods (see Sequence.h)
- *os << "// Implement the TAO_Base_Sequence methods (see Sequence.h)" << be_nl
- << be_nl;
- *os << "ACE_INLINE" << be_nl;
-
- bt->accept (&visitor);
-
- *os << " *" << be_nl
- << full_class_name << "::get_buffer (CORBA::Boolean orphan)" << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" *result = 0;" << be_nl << be_nl
- << "if (orphan == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We retain ownership." << be_nl
- << "if (this->buffer_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "result =" << be_idt_nl
- << class_name << "::allocbuf (this->length_);" << be_uidt_nl
- << "this->buffer_ = result;" << be_nl
- << "this->release_ = 1;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "*, this->buffer_);" << be_uidt << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else // if (orphan == 1)" << be_idt_nl
- << "{" << be_idt_nl
- << "if (this->release_ != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "// We set the state back to default and relinquish ownership."
- << be_nl
- << "result =" << be_idt_nl
- << "ACE_reinterpret_cast(";
-
- bt->accept (&visitor);
-
- *os << "*,this->buffer_);" << be_uidt_nl
- << "this->maximum_ = 0;" << be_nl
- << "this->length_ = 0;" << be_nl
- << "this->buffer_ = 0;" << be_nl
- << "this->release_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return result;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // get_buffer
- *os << "ACE_INLINE" << be_nl;
- *os << "const ";
-
- bt->accept (&visitor);
-
- *os << " *" << be_nl
- << full_class_name << "::get_buffer (void) const" << be_nl
- << "{" << be_idt_nl
- << "return ACE_reinterpret_cast (const ";
-
- bt->accept (&visitor);
-
- *os << " * ACE_CAST_CONST, this->buffer_);" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // replace
- *os << "ACE_INLINE" << be_nl
- << "void" << be_nl
- << full_class_name << "::replace (" << be_idt << be_idt_nl
- << "CORBA::ULong max," << be_nl
- << "CORBA::ULong length," << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *data," << be_nl
- << "CORBA::Boolean release" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "this->maximum_ = max;" << be_nl
- << "this->length_ = length;" << be_nl << be_nl
- << "if (this->buffer_ && this->release_ == 1)" << be_idt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" *tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << "*, this->buffer_);" << be_uidt_nl
- << class_name << "::freebuf (tmp);" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "this->buffer_ = data;" << be_nl
- << "this->release_ = release;" << be_uidt_nl
- << "}";
-
- os->gen_endif (); // endif macro
-
- // generate #endif for AHETI
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_cs.cpp
index b562dfc62de..badbbec605d 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_cs.cpp
@@ -22,163 +22,3 @@ ACE_RCSID (be_visitor_sequence,
gen_unbounded_sequence_cs,
"$Id$")
-int
-be_visitor_sequence_cs::gen_unbounded_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "Bad element type\n"), -1);
- }
-
- // If we contain an anonymous sequence,
- // generate code for that sequence here.
- if (bt->node_type () == AST_Decl::NT_sequence)
- {
- int status =
- this->gen_anonymous_base_type (bt,
- TAO_CodeGen::TAO_ROOT_CS);
-
- if (status == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "gen_unbounded_sequence - "
- "gen_anonymous_base_type failed\n"),
- -1);
- }
- }
-
- // Generate the class name.
- be_type *pt;
-
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- // Get the primitive base type of this typedef node.
- be_typedef *t = be_typedef::narrow_from_decl (bt);
- pt = t->primitive_base_type ();
- }
- else
- {
- pt = bt;
- }
-
- const char * class_name = node->instance_name ();
-
- static char full_class_name [NAMEBUFSIZE];
- ACE_OS::memset (full_class_name,
- '\0',
- NAMEBUFSIZE);
-
- if (node->is_nested ())
- {
- be_decl *tmp =
- be_scope::narrow_from_scope (node->defined_in ())->decl ();
-
- ACE_OS::sprintf (full_class_name,
- "%s::%s",
- tmp->full_name (),
- class_name);
- }
- else
- {
- ACE_OS::sprintf (full_class_name,
- "%s",
- class_name);
- }
-
- // Get the visitor for the type of the sequence.
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_base visitor (&ctx);
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// "__FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI();
- os->gen_ifdef_macro (class_name);
-
- // allocate_buffer
- *os << be_nl << be_nl
- << "void" << be_nl
- << full_class_name << "::_allocate_buffer (CORBA::ULong length)" << be_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os << "* tmp = 0;" << be_nl
- << "tmp = " << class_name << "::allocbuf (length);" << be_nl
- << be_nl
- << "if (this->buffer_ != 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- bt->accept (&visitor);
-
- *os <<" *old =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " *, this->buffer_);" << be_uidt_nl << be_nl
- << "for (CORBA::ULong i = 0; i < this->length_; ++i)" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (pt->node_type () == AST_Decl::NT_array)
- {
- bt->accept (&visitor);
-
- *os << "_var::copy (tmp[i], old[i]);";
- }
- else
- {
- *os << "tmp[i] = old[i];";
- }
-
- *os << be_uidt_nl << "}" << be_uidt_nl << be_nl
- << "if (this->release_)" << be_idt_nl
- << "{" << be_idt_nl
- << class_name << "::freebuf (old);" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "this->buffer_ = tmp;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // deallocate_buffer
- *os << "void" << be_nl
- << full_class_name << "::_deallocate_buffer (void)" << be_nl
- << "{" << be_idt_nl
- << "if (this->buffer_ == 0 || this->release_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "return;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
-
- bt->accept (&visitor);
-
- *os <<" *tmp =" << be_idt_nl
- << "ACE_reinterpret_cast (";
-
- bt->accept (&visitor);
-
- *os << " *, this->buffer_);" << be_uidt_nl
- << class_name << "::freebuf (tmp);" << be_nl
- << "this->buffer_ = 0;" << be_uidt_nl
- << "} " << be_nl
- << be_nl;
-
- // destructor
- *os << full_class_name << "::~" << class_name << " (void)" << be_nl
- << "{" << be_idt_nl
- << "this->_deallocate_buffer ();" << be_uidt_nl
- << "}";
-
- os->gen_endif (); // endif macro
-
- // generate #endif for AHETI
- os->gen_endif_AHETI();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
index 1b595622305..0e8a657721e 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
@@ -32,286 +32,6 @@ be_visitor_sequence_ch::~be_visitor_sequence_ch (void)
{
}
-int
-be_visitor_sequence_ch::gen_base_sequence_class (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (bt == 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "Bad element type\n"),
- -1);
- }
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// "__FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI ();
-
- // This is the instantiation branch.
- *os << be_nl << node->instance_name ();
-
- os->gen_else_AHETI ();
-
- // Generate the appropriate sequence type.
- switch (node->managed_type ())
- {
- case be_sequence::MNG_OBJREF:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Object_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Object_Sequence<";
- }
-
- break;
- case be_sequence::MNG_ABSTRACT:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Abstract_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Abstract_Sequence<";
- }
-
- break;
- case be_sequence::MNG_PSEUDO:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Pseudo_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Pseudo_Sequence<";
- }
-
- break;
- case be_sequence::MNG_VALUE:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Valuetype_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Valuetype_Sequence<";
- }
-
- break;
- case be_sequence::MNG_STRING:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_String_Sequence";
- }
- else
- {
- *os << "TAO_Bounded_String_Sequence";
- }
-
- break;
- case be_sequence::MNG_WSTRING:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_WString_Sequence";
- }
- else
- {
- *os << "TAO_Bounded_WString_Sequence";
- }
-
- break;
- default: // Not a managed type.
- if (bt->base_node_type () == AST_Decl::NT_array)
- {
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Array_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Array_Sequence<";
- }
- }
- else
- {
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Sequence<";
- }
- }
-
- break;
- }
-
- be_visitor_context ctx (*this->ctx_);
-
- be_visitor_sequence_base_template_args visitor (&ctx,
- node);
-
- ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CH);
-
- if (bt->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "base type visit failed\n"),
- -1);
- }
-
- // Find out if the sequence is of a managed type and if
- // it is bounded or not.
- if (node->managed_type () == be_sequence::MNG_STRING
- || node->managed_type () == be_sequence::MNG_WSTRING)
- {
- if (!node->unbounded ())
- {
- *os << "<" << node->max_size () << ">";
- }
- }
- else
- {
- // If we are a sequence of arrays, the template includes
- // a _var parameter.
- if (bt->base_node_type () == AST_Decl::NT_array)
- {
- *os << ", ";
-
- // So the call to nested_type_name will have "_var" suffix.
- ctx.sub_state (TAO_CodeGen::TAO_ARRAY_SEQ_CH_TEMPLATE_VAR);
-
- if (bt->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "base type visit failed\n"),
- -1);
- }
-
- ctx.sub_state (TAO_CodeGen::TAO_SUB_STATE_UNKNOWN);
- }
-
- if (node->unbounded ())
- {
- *os << ">";
- }
- else
- {
- *os << ", " << node->max_size () << ">";
- }
- }
-
- os->gen_endif_AHETI ();
-
- return 0;
-}
-
-
-int
-be_visitor_sequence_ch::instantiate_sequence (be_sequence *node)
-{
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (bt == 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "gen_instantiate_template_name - "
- "Bad element type\n"),
- -1);
- }
-
- // Generate the appropriate sequence type.
- switch (node->managed_type ())
- {
- case be_sequence::MNG_PSEUDO:
- case be_sequence::MNG_OBJREF:
- case be_sequence::MNG_VALUE:
- case be_sequence::MNG_ABSTRACT:
- if (node->unbounded ())
- {
-// this->gen_unbounded_obj_sequence (node);
- }
- else
- {
- this->gen_bounded_obj_sequence (node);
- }
-
- break;
- case be_sequence::MNG_STRING: // Sequence of strings.
- if (!node->unbounded ())
- {
- this->gen_bounded_str_sequence (node);
- }
-
- break;
- case be_sequence::MNG_WSTRING: // Sequence of wstrings.
- if (!node->unbounded ())
- {
- this->gen_bounded_wstr_sequence (node);
- }
-
- break;
- default: // Not a managed type.
- if (node->unbounded ())
- {
- // TAO provides extensions for octet sequences, first find out
- // if the base type is an octet (or an alias for octet)
- be_predefined_type *predef = 0;
-
- if (bt->base_node_type () == AST_Type::NT_pre_defined)
- {
- be_typedef* alias =
- be_typedef::narrow_from_decl (bt);
-
- if (alias == 0)
- {
- predef =
- be_predefined_type::narrow_from_decl (bt);
- }
- else
- {
- predef =
- be_predefined_type::narrow_from_decl (
- alias->primitive_base_type ()
- );
- }
- }
- if (predef != 0)
- {
- if (predef->pt() != AST_PredefinedType::PT_octet)
- {
- this->gen_unbounded_sequence (node);
- }
- }
- else
- {
- this->gen_unbounded_sequence (node);
- }
- }
- else
- {
- this->gen_bounded_sequence (node);
- }
-
- break;
- } // End of switch.
-
- return 0;
-}
-
-
int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
{
if (node->defined_in () == 0)
@@ -334,23 +54,7 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
{
return 0;
}
-/*
- // Instantiation.
-
- if (this->instantiate_sequence (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "codegen. for the primitive type sequence\n"),
- -1);
- }
- // End of instantiation.
-
- // Generate the ifdefined macro for the sequence type.
- os->gen_ifdef_macro (node->flat_name ());
-*/
be_type *bt = 0;
TAO_OutStream *os = this->ctx_->stream ();
@@ -383,14 +87,14 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
<< bt->name () << "," << be_nl
<< bt->name () << "_var," << be_nl;
- if (parent != 0)
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
{
*os << parent->name () << "::";
}
*os << "tao_" << bt->local_name () << "_life," << be_nl;
- if (parent != 0)
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
{
*os << parent->name () << "::";
}
@@ -413,7 +117,7 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
<< bt->name () << "," << be_nl
<< bt->name () << "_var," << be_nl;
- if (parent != 0)
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
{
*os << parent->name () << "::";
}
@@ -431,7 +135,7 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
<< bt->name () << "," << be_nl
<< bt->name () << "_var," << be_nl;
- if (parent != 0)
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
{
*os << parent->name () << "::";
}
@@ -509,445 +213,8 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
break;
}
-/*
- *os << "class " << node->local_name () << ";" << be_nl;
-
- // No _var class for anonymous sequences.
- if (this->ctx_->tdef () != 0)
- {
- *os << "class " << node->local_name () << "_var;" << be_nl;
- }
-
- *os << be_nl;
-
- *os << "// *************************************************************"
- << be_nl
- << "// " << node->name () << be_nl
- << "// *************************************************************"
- << be_nl << be_nl;
- // Generate a typedef to a parametrized sequence.
- *os << "class " << be_global->stub_export_macro ()
- << " " << node->local_name () << " : public ";
-
- if (this->gen_base_sequence_class (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "codegen for base sequence class\n"),
- -1);
- }
-
- *os << be_nl << "{" << be_nl
- << "public:" << be_idt_nl
- << node->local_name () << " (void);" << be_nl;
-
- // For unbounded sequences, we have a different set of constructors.
- if (node->unbounded ())
- {
- *os << node->local_name () << " (CORBA::ULong max);"
- << be_nl;
- }
-
- *os << node->local_name () << " (" << be_idt << be_idt_nl;
-
- if (node->unbounded ())
- {
- // Unbounded seq takes this extra parameter.
- *os << "CORBA::ULong max, " << be_nl;
- }
-
- *os << "CORBA::ULong length, " << be_nl;
-
- // 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 - "
- "base type visit failed\n"),
- -1);
- }
-
- *os << " *buffer, " << be_nl
- << "CORBA::Boolean release = 0" << be_uidt_nl
- << ");" << be_uidt_nl;
- *os << node->local_name () << " (const " << node->local_name ()
- << " &);" << be_nl;
- *os << "~" << node->local_name () << " (void);" << be_nl << be_nl;
-
- if (be_global->any_support ())
- {
- *os << "static void _tao_any_destructor (void*);" << be_nl << be_nl;
- }
-
- // Generate the _var_type typedef (only if we are not anonymous).
- if (this->ctx_->tdef () != 0)
- {
- *os << "typedef " << node->local_name () << "_var _var_type;";
- }
-
- // TAO provides extensions for octet sequences, first find out if
- // the base type is an octet (or an alias for octet).
- be_predefined_type *predef = 0;
-
- if (bt->base_node_type () == AST_Type::NT_pre_defined)
- {
- be_typedef* alias =
- be_typedef::narrow_from_decl (bt);
-
- if (alias == 0)
- {
- predef = be_predefined_type::narrow_from_decl (bt);
- }
- else
- {
- predef =
- be_predefined_type::narrow_from_decl (
- alias->primitive_base_type ()
- );
- }
- }
-
- // Now generate the extension...
- if (predef != 0 && predef->pt () == AST_PredefinedType::PT_octet
- && node->unbounded ())
- {
- *os << "\n#if (TAO_NO_COPY_OCTET_SEQUENCES == 1)" << be_nl
- << node->local_name () << " (" << be_idt << be_idt_nl
- << "CORBA::ULong length," << be_nl
- << "const ACE_Message_Block* mb" << be_uidt_nl
- << ")" << be_uidt_nl
- << " : " << node->instance_name ()
- << " (length, mb) {}" << "\n"
- << "#endif /* TAO_NO_COPY_OCTET_SEQUENCE == 1 *//*";
- }
-/*
- *os << be_uidt_nl << "};";
-
- os->gen_endif (); // Endif macro.
-
- // No _var or _out class for an anonymous (non-typedef'd) sequence.
- if (this->ctx_->tdef () != 0)
- {
- // Generate the ifdefined macro for the var type.
- os->gen_ifdef_macro (node->flat_name (), "_var");
-
- // Generate the var and out types.
- if (this->gen_var_defn (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "codegen for _var failed\n"),
- -1);
- }
-
- os->gen_endif ();
-
- // Generate the ifdefined macro for the _out type.
- os->gen_ifdef_macro (node->flat_name (), "_out");
-
- if (this->gen_out_defn (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "codegen for _out failed\n"),
- -1);
- }
-
- os->gen_endif ();
- }
-*/
node->cli_hdr_gen (1);
return 0;
}
-// Generate the _var definition for ourself.
-int
-be_visitor_sequence_ch::gen_var_defn (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- char namebuf [NAMEBUFSIZE];
-
- ACE_OS::memset (namebuf,
- '\0',
- NAMEBUFSIZE);
-
- ACE_OS::sprintf (namebuf,
- "%s_var",
- node->local_name ()->get_string ());
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
-
- *os << "// *************************************************************"
- << be_nl;
- *os << "// class " << node->name () << "_var" << be_nl;
- *os << "// *************************************************************"
- << be_nl << be_nl;
-
- // Retrieve base type.
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "gen_var_defn - "
- "Bad base type\n"),
- -1);
- }
-
- // Generate the var definition (always in the client header).
- // Depending upon the data type, there are some differences which we account
- // for over here.
-
- *os << "class " << be_global->stub_export_macro ()
- << " " << namebuf << be_nl;
- *os << "{" << be_nl;
- *os << "public:" << be_idt_nl;
-
- // Default constuctor.
- *os << namebuf << " (void);" << be_nl;
-
- // Constuctor.
- *os << namebuf << " (" << node->local_name () << " *);" << be_nl;
-
- // Copy constructor.
- *os << namebuf << " (const " << namebuf << " &);";
-
- // Fixed-size base types only.
- if (bt->size_type () == AST_Type::FIXED)
- {
- *os << be_nl << be_nl
- << "// Fixed-size base types only." << be_nl;
- *os << namebuf << " (const " << node->local_name ()
- << " &);" << be_nl;
- }
-
- // Destructor.
- *os << be_nl << "~" << namebuf << " (void);" << be_nl;
- *os << be_nl;
-
- // Assignment operator from a pointer.
- *os << namebuf << " &operator= ("
- << node->local_name () << " *);" << be_nl;
-
- // Assignment from _var.
- *os << namebuf << " &operator= (const " << namebuf << " &);";
-
- // Fixed-size base types only.
- if (bt->size_type () == AST_Type::FIXED)
- {
- *os << be_nl << be_nl
- << "// Fixed-size base types only." << be_nl;
- *os << namebuf << " &operator= (const " << node->local_name ()
- << " &);" << be_nl;
- }
-
- // Arrow operator.
- *os << be_nl << node->local_name () << " *operator-> (void);" << be_nl;
- *os << "const " << node->local_name ()
- << " *operator-> (void) const;" << be_nl << be_nl;
-
- // Other extra types (cast operators, [] operator, and others).
-
- // Cast operator.
- *os << "operator const " << node->local_name () << " &() const;" << be_nl;
- *os << "operator " << node->local_name () << " &();" << be_nl;
- *os << "operator " << node->local_name () << " &() const;";
-
- if (bt->size_type () == AST_Type::VARIABLE)
- {
- *os << be_nl << be_nl
- << "// Variable-size base types only." << be_nl
- << "operator " << node->local_name ()
- << " *&();" << be_nl;
- }
-
- *os << be_nl;
-
- // Overloaded [] operators.
- be_visitor_context ctx (*this->ctx_);
- ctx.state (TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH);
- be_visitor_sequence_elemtype sr_visitor (&ctx);
-
- if (bt->accept (&sr_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_sequence::"
- "gen_var_defn - "
- "[] ret type gen failed\n"),
- -1);
- }
-
- *os << " operator[] (CORBA::ULong index);" << be_nl;
-
- AST_Decl::NodeType nt = bt->base_node_type ();
- AST_PredefinedType::PredefinedType pdt = AST_PredefinedType::PT_void;
-
- if (nt == AST_Decl::NT_pre_defined)
- {
- AST_PredefinedType *p = 0;
- be_typedef *btd = be_typedef::narrow_from_decl (bt);
-
- if (btd == 0)
- {
- p = AST_PredefinedType::narrow_from_decl (bt);
- }
- else
- {
- p = AST_PredefinedType::narrow_from_decl (
- btd->primitive_base_type ()
- );
- }
-
- pdt = p->pt ();
- }
-
- // @@ (JP) Problems with constant instantiations of TAO_Object_Manager,
- // TAO_Pseudo_Object_Manager, TAO_SeqElem_WString_Manager and
- // TAO_SeqElem_String_Manager make these impossible right now [BUGID:676].
- if (nt != AST_Decl::NT_string
- && nt != AST_Decl::NT_wstring
- && nt != AST_Decl::NT_interface
- && nt != AST_Decl::NT_interface_fwd
- && nt != AST_Decl::NT_valuetype
- && nt != AST_Decl::NT_array
- && pdt != AST_PredefinedType::PT_pseudo
- && pdt != AST_PredefinedType::PT_object)
- {
- *os << "const ";
-
- if (bt->accept (&sr_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_sequence::"
- "gen_var_defn - "
- "[] ret type gen failed\n"),
- -1);
- }
-
- *os << " operator[] (CORBA::ULong index) const;" << be_nl;
- }
-
- *os << be_nl;
-
- *os << "// in, inout, out, _retn " << be_nl;
-
- // The return types of in, out, inout, and _retn are based on the parameter.
- // passing rules and the base type.
- *os << "const " << node->local_name () << " &in (void) const;" << be_nl;
- *os << node->local_name () << " &inout (void);" << be_nl;
- *os << node->local_name () << " *&out (void);" << be_nl;
- *os << node->local_name () << " *_retn (void);" << be_nl;
-
- // Generate an additional member function that
- // returns the underlying pointer.
- *os << node->local_name () << " *ptr (void) const;" << be_uidt_nl << be_nl;
-
- // Generate the private section.
- *os << "private:" << be_idt_nl;
- *os << node->local_name () << " *ptr_;" << be_uidt_nl;
-
- *os << "};";
-
- return 0;
-}
-
-// Generate the _out definition.
-int
-be_visitor_sequence_ch::gen_out_defn (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- char namebuf [NAMEBUFSIZE];
-
- ACE_OS::memset (namebuf,
- '\0',
- NAMEBUFSIZE);
- ACE_OS::sprintf (namebuf,
- "%s_out",
- node->local_name ()->get_string ());
-
- // Retrieve base type.
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (bt == 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "gen_out_defn - "
- "Bad base type\n"),
- -1);
- }
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
-
- // Generate the out definition (always in the client header).
- *os << "class " << be_global->stub_export_macro () << " "
- << namebuf << be_nl;
- *os << "{" << be_nl;
- *os << "public:" << be_idt_nl;
-
- // No default constructor.
-
- // Constructor from a pointer.
- *os << namebuf << " (" << node->local_name () << " *&);" << be_nl;
-
- // Constructor from a _var &.
- *os << namebuf << " (" << node->local_name () << "_var &);" << be_nl;
-
- // Constructor from a _out &.
- *os << namebuf << " (const " << namebuf << " &);" << be_nl;
-
- // Assignment operator from a _out &.
- *os << namebuf << " &operator= (const " << namebuf << " &);" << be_nl;
-
- // Assignment operator from a pointer &, cast operator, ptr fn, operator
- // -> and any other extra operators.
-
- // Assignment.
- *os << namebuf << " &operator= (" << node->local_name () << " *);" << be_nl;
-
- // operator ().
- *os << "operator " << node->local_name () << " *&();" << be_nl;
-
- // ptr function.
- *os << node->local_name () << " *&ptr (void);" << be_nl;
-
- // operator ->.
- *os << node->local_name () << " *operator-> (void);" << be_nl;
-
- // Overloaded [] operator only for sequence. The const version is not
- // required
- be_visitor_context ctx (*this->ctx_);
- ctx.state (TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH);
- be_visitor_sequence_elemtype sr_visitor (&ctx);
-
- if (bt->accept (&sr_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_sequence::"
- "gen_var_defn - "
- "[] ret type gen failed\n"),
- -1);
- }
-
- *os << " operator[] (CORBA::ULong index);" << be_uidt_nl << be_nl;
- *os << "private:" << be_idt_nl;
- *os << node->local_name () << " *&ptr_;" << be_nl;
- *os << "// Assignment from T_var not allowed." << be_nl;
- *os << "void operator= (const " << node->local_name ()
- << "_var &);" << be_uidt_nl;
- *os << "};";
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp
index 4bdcdccca3b..cf46cd6e1d5 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp
@@ -39,602 +39,12 @@ be_visitor_sequence_ci::~be_visitor_sequence_ci (void)
int
be_visitor_sequence_ci::visit_sequence (be_sequence *node)
{
- TAO_OutStream *os = this->ctx_->stream ();
-
if (node->cli_inline_gen () || node->imported ())
{
return 0;
}
- // Instantiation.
-/*
- if (this->instantiate_sequence (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "visit_sequence - "
- "codegen. for the primitive type sequence\n"),
- -1);
- }
-*/
- // End of instantiation.
-
node->cli_inline_gen (1);
return 0;
}
-int
-be_visitor_sequence_ci::instantiate_sequence (be_sequence *node)
-{
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (bt == 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "gen_instantiate_template_name - "
- "Bad element type\n"),
- -1);
- }
-
- // Generate the appropriate sequence type.
- switch (node->managed_type ())
- {
- case be_sequence::MNG_PSEUDO:
- case be_sequence::MNG_OBJREF:
- case be_sequence::MNG_VALUE:
- case be_sequence::MNG_ABSTRACT:
- if (node->unbounded ())
- {
- this->gen_unbounded_obj_sequence (node);
- }
- else
- {
- this->gen_bounded_obj_sequence (node);
- }
-
- break;
- case be_sequence::MNG_STRING: // Sequence of strings
- if (!node->unbounded ())
- {
- this->gen_bounded_str_sequence (node);
- }
-
- break;
- case be_sequence::MNG_WSTRING: // Sequence of wstrings
- if (!node->unbounded ())
- {
- this->gen_bounded_wstr_sequence (node);
- }
-
- break;
- default: // Not a managed type.
- if (node->unbounded ())
- {
- // TAO provides extensions for octet sequences, first find out
- // if the base type is an octet (or an alias for octet).
- be_predefined_type *predef = 0;
-
- if (bt->base_node_type () == AST_Type::NT_pre_defined)
- {
- be_typedef* alias =
- be_typedef::narrow_from_decl (bt);
-
- if (alias == 0)
- {
- predef =
- be_predefined_type::narrow_from_decl (bt);
- }
- else
- {
- predef =
- be_predefined_type::narrow_from_decl (
- alias->primitive_base_type ()
- );
- }
- }
-
- if (predef != 0)
- {
- if (predef->pt() != AST_PredefinedType::PT_octet)
- {
- this->gen_unbounded_sequence (node);
- }
- }
- else
- {
- this->gen_unbounded_sequence (node);
- }
- }
- else
- {
- this->gen_bounded_sequence (node);
- }
-
- break;
- } // End of switch.
-
- return 0;
-}
-
-int
-be_visitor_sequence_ci::gen_var_impl (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- char fname [NAMEBUFSIZE];
- char lname [NAMEBUFSIZE];
-
- ACE_OS::memset (fname,
- '\0',
- NAMEBUFSIZE);
-
- ACE_OS::sprintf (fname,
- "%s_var",
- node->full_name ());
-
- ACE_OS::memset (lname,
- '\0',
- NAMEBUFSIZE);
-
- ACE_OS::sprintf (lname,
- "%s_var",
- node->local_name ()->get_string ());
-
- // Retrieve base type.
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (bt == 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "visit_sequence - "
- "Bad element type\n"),
- -1);
- }
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
-
- *os << "// *************************************************************"
- << be_nl;
- *os << "// Inline operations for class " << fname << be_nl;
- *os << "// *************************************************************"
- << be_nl << be_nl;
-
- // Default constuctor.
- *os << "ACE_INLINE" << be_nl
- << fname << "::" << lname
- << " (void)" << be_nl
- << " " << ": ptr_ (0)" << be_nl
- << "{}" << be_nl << be_nl;
-
- // Constuctor from a _ptr.
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::" << lname << " (" << node->local_name ()
- << " *p)" << be_nl;
- *os << " : ptr_ (p)" << be_nl;
- *os << "{}" << be_nl << be_nl;
-
- // Copy constructor.
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::" << lname << " (const ::" << fname
- << " &p)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "if (p.ptr_)" << be_idt_nl
- << "{" << be_idt_nl;
- *os << "ACE_NEW (this->ptr_, ::" << node->name ()
- << " (*p.ptr_));" << be_uidt_nl
- << "}" << be_uidt_nl;
- *os << "else" << be_idt_nl
- << "{" << be_idt_nl;
- *os << "this->ptr_ = 0;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // Fixed-size base types only.
- if (bt->size_type () == AST_Type::FIXED)
- {
- *os << "// Fixed-size base types only." << be_nl;
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::" << lname << " (const ::"
- << node->name () << " &p)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "ACE_NEW (this->ptr_, ::" << node->name ()
- << " (p));" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
- }
-
- // Destructor.
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::~" << lname << " (void)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "delete this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // Assignment operator from a pointer.
- *os << "ACE_INLINE" << be_nl
- << fname << " &" << be_nl;
- *os << fname << "::operator= (" << node->local_name ()
- << " *p)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "delete this->ptr_;" << be_nl;
- *os << "this->ptr_ = p;" << be_nl;
- *os << "return *this;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // Assignment operator from _var.
- *os << "ACE_INLINE" << be_nl
- << "::" << fname << " &" << be_nl
- << fname << "::operator= (const ::" << fname
- << " &p)" << be_nl
- << "{" << be_idt_nl
- << "if (this != &p)" << be_idt_nl
- << "{" << be_idt_nl
- << "if (p.ptr_ == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "delete this->ptr_;" << be_nl
- << "this->ptr_ = 0;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << node->local_name () << " *deep_copy = 0;" << be_nl
- << "ACE_NEW_RETURN (" << be_idt << be_idt_nl
- << "deep_copy," << be_nl
- << node->local_name () << " (*p.ptr_)," << be_nl
- << "*this" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl
- << "if (deep_copy != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << node->local_name () << " *tmp = deep_copy;" << be_nl
- << "deep_copy = this->ptr_;" << be_nl
- << "this->ptr_ = tmp;" << be_nl
- << "delete deep_copy;" << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return *this;" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- // Fixed-size base types only.
- if (bt->size_type () == AST_Type::FIXED)
- {
- *os << "// Fixed-size types only." << be_nl;
- *os << "ACE_INLINE" << be_nl
- << "::" << fname << " &" << be_nl;
- *os << fname << "::operator= (const ::" << node->name ()
- << " &p)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "if (this->ptr_ != &p)" << be_idt_nl;
- *os << "{" << be_idt_nl;
- *os << "delete this->ptr_;" << be_nl;
- *os << "ACE_NEW_RETURN (this->ptr_, ::"
- << node->name () << " (p), *this);" << be_uidt_nl;
- *os << "}" << be_uidt_nl << be_nl;
- *os << "return *this;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
- }
-
- // Two arrow operators.
- *os << "ACE_INLINE" << be_nl
- << "const ::" << node->name () << " *" << be_nl;
- *os << fname << "::operator-> (void) const" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- *os << "ACE_INLINE" << be_nl
- << "::" << node->name () << " *" << be_nl;
- *os << fname << "::operator-> (void)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // Other extra methods - 3 cast operators.
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::operator const ::" << node->name ()
- << " &() const // cast" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return *this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::operator ::" << node->name ()
- << " &() // cast " << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return *this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::operator ::" << node->name ()
- << " &() const // cast " << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return *this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // Variable-size base types only.
- if (bt->size_type () == AST_Type::VARIABLE)
- {
- *os << "// Variable-size types only." << be_nl;
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::operator ::" << node->name ()
- << " *&() // cast " << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
- }
-
- // The [] operators.
-
- // Non-const.
- *os << "ACE_INLINE" << be_nl;
-
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_elemtype sr_visitor (&ctx);
-
- if (bt->accept (&sr_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "gen_var_impl - "
- "[] ret type gen failed\n"),
- -1);
- }
-
- *os << be_nl;
- *os << fname << "::operator[] (CORBA::ULong index)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return this->ptr_->operator[] (index);" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- AST_Decl::NodeType nt = bt->base_node_type ();
- AST_PredefinedType::PredefinedType pdt = AST_PredefinedType::PT_void;
-
- if (nt == AST_Decl::NT_pre_defined)
- {
- AST_PredefinedType *p = 0;
- be_typedef *btd = be_typedef::narrow_from_decl (bt);
-
- if (btd == 0)
- {
- p = AST_PredefinedType::narrow_from_decl (bt);
- }
- else
- {
- p = AST_PredefinedType::narrow_from_decl (
- btd->primitive_base_type ()
- );
- }
-
- pdt = p->pt ();
- }
-
- // @@ (JP) Problems with constant instantiations of TAO_Object_Manager,
- // TAO_Pseudo_Object_Manager, TAO_SeqElem_WString_Manager and
- // TAO_SeqElem_String_Manager make these impossible right now [BUGID:676].
- if (nt != AST_Decl::NT_string
- && nt != AST_Decl::NT_wstring
- && nt != AST_Decl::NT_interface
- && nt != AST_Decl::NT_interface_fwd
- && nt != AST_Decl::NT_valuetype
- && nt != AST_Decl::NT_array
- && pdt != AST_PredefinedType::PT_pseudo
- && pdt != AST_PredefinedType::PT_object)
- {
- // Const.
- *os << "ACE_INLINE" << be_nl
- << "const ";
-
- if (bt->accept (&sr_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "gen_var_impl - "
- "[] ret type gen failed\n"),
- -1);
- }
-
- *os << be_nl;
- *os << fname << "::operator[] (CORBA::ULong index) const" << be_nl;
- *os << "{" << be_idt_nl;
-
- *os << "return ACE_const_cast (const ";
-
- if (bt->accept (&sr_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "gen_var_impl - "
- "[] ret type gen failed\n"),
- -1);
- }
-
- *os << ", this->ptr_->operator[] (index));" << be_uidt_nl;
-
- *os << "}" << be_nl << be_nl;
- }
-
- // in, inout, out, and _retn.
- *os << "ACE_INLINE" << be_nl
- << "const ::" << node->name () << " &" << be_nl;
- *os << fname << "::in (void) const" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return *this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- *os << "ACE_INLINE" << be_nl
- << "::" << node->name () << " &" << be_nl;
- *os << fname << "::inout (void)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return *this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- *os << "ACE_INLINE" << be_nl
- << "::" << node->name () << " *&" << be_nl;
- *os << fname << "::out (void)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "delete this->ptr_;" << be_nl;
- *os << "this->ptr_ = 0;" << be_nl;
- *os << "return this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- *os << "ACE_INLINE" << be_nl
- << "::" << node->name () << " *" << be_nl;
- *os << fname << "::_retn (void)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "::" << node->name () << " *tmp = this->ptr_;" << be_nl;
- *os << "this->ptr_ = 0;" << be_nl;
- *os << "return tmp;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // The additional ptr () member function.
- *os << "ACE_INLINE" << be_nl
- << "::" << node->name () << " *" << be_nl;
- *os << fname << "::ptr (void) const" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return this->ptr_;" << be_uidt_nl;
- *os << "}";
-
- return 0;
-}
-
-int
-be_visitor_sequence_ci::gen_out_impl (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- char fname [NAMEBUFSIZE];
- char lname [NAMEBUFSIZE];
-
-
- ACE_OS::memset (fname,
- '\0',
- NAMEBUFSIZE);
-
- ACE_OS::sprintf (fname,
- "%s_out",
- node->full_name ());
-
- ACE_OS::memset (lname,
- '\0',
- NAMEBUFSIZE);
-
- ACE_OS::sprintf (lname,
- "%s_out",
- node->local_name ()->get_string ());
-
- // Retrieve base type.
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (bt == 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "gen_out_impl - "
- "Bad element type\n"), -1);
- }
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
-
- *os << "// *************************************************************"
- << be_nl;
- *os << "// Inline operations for class " << fname << be_nl;
- *os << "// *************************************************************"
- << be_nl << be_nl;
-
- // Constuctorr from a pointer.
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::" << lname << " (" << node->local_name ()
- << " *&p)" << be_nl;
- *os << " : ptr_ (p)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "this->ptr_ = 0;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // Constructor from _var &.
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::" << lname << " (" << node->local_name ()
- << "_var &p)" << be_nl;
- *os << " : ptr_ (p.out ())" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "delete this->ptr_;" << be_nl;
- *os << "this->ptr_ = 0;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // Copy constructor.
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::" << lname << " (const ::" << fname
- << " &p)" << be_nl;
- *os << " : ptr_ (ACE_const_cast (" << lname
- << "&, p).ptr_)" << be_nl;
- *os << "{}" << be_nl << be_nl;
-
- // Assignment operator from _out &.
- *os << "ACE_INLINE" << be_nl
- << "::" << fname << " &" << be_nl;
- *os << fname << "::operator= (const ::" << fname
- << " &p)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "this->ptr_ = ACE_const_cast (" << lname
- << "&, p).ptr_;" << be_nl;
- *os << "return *this;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // Assignment from _var is not allowed by a private declaration.
-
- // Assignment operator from pointer.
- *os << "ACE_INLINE" << be_nl
- << "::" << fname << " &" << be_nl;
- *os << fname << "::operator= (" << node->local_name ()
- << " *p)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "this->ptr_ = p;" << be_nl;
- *os << "return *this;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // Other extra methods - cast operator ().
- *os << "ACE_INLINE" << be_nl;
- *os << fname << "::operator ::" << node->name ()
- << " *&() // cast" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // ptr function.
- *os << "ACE_INLINE" << be_nl
- << "::" << node->name () << " *&" << be_nl;
- *os << fname << "::ptr (void) // ptr" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // operator ->.
- *os << "ACE_INLINE" << be_nl
- << "::" << node->name () << " *" << be_nl;
- *os << fname << "::operator-> (void)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return this->ptr_;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
-
- // Sequence has an additional method.
- *os << "ACE_INLINE" << be_nl;
-
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_elemtype sr_visitor (&ctx);
-
- if (bt->accept (&sr_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ci::"
- "gen_out_impl - "
- "[] ret type gen failed\n"),
- -1);
- }
-
- *os << be_nl;
- *os << fname << "::operator[] (CORBA::ULong index)" << be_nl;
- *os << "{" << be_idt_nl;
- *os << "return this->ptr_->operator[] (index);" << be_uidt_nl;
- *os << "}";
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp
index f329f68bc90..0d099e3eb97 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp
@@ -35,181 +35,6 @@ be_visitor_sequence_cs::~be_visitor_sequence_cs (void)
{
}
-int
-be_visitor_sequence_cs::gen_base_sequence_class (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "gen_base_sequence_class - "
- "Bad element type\n"),
- -1);
- }
-
- os->gen_ifdef_AHETI();
-
- // This is the instantiation branch.
- *os << be_nl << node->instance_name ();
-
- os->gen_else_AHETI();
-
- // Generate the appropriate sequence type.
- switch (node->managed_type ())
- {
- case be_sequence::MNG_OBJREF:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Object_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Object_Sequence<";
- }
-
- break;
- case be_sequence::MNG_ABSTRACT:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Abstract_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Abstract_Sequence<";
- }
-
- break;
- case be_sequence::MNG_PSEUDO:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Pseudo_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Pseudo_Sequence<";
- }
-
- break;
- case be_sequence::MNG_VALUE:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Valuetype_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Valuetype_Sequence<";
- }
-
- break;
- case be_sequence::MNG_STRING:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_String_Sequence";
- }
- else
- {
- *os << "TAO_Bounded_String_Sequence";
- }
-
- break;
- case be_sequence::MNG_WSTRING:
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_WString_Sequence";
- }
- else
- {
- *os << "TAO_Bounded_WString_Sequence";
- }
-
- break;
- default: // not a managed type
- if (bt->base_node_type () == AST_Decl::NT_array)
- {
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Array_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Array_Sequence<";
- }
- }
- else
- {
- if (node->unbounded ())
- {
- *os << "TAO_Unbounded_Sequence<";
- }
- else
- {
- *os << "TAO_Bounded_Sequence<";
- }
- }
-
- break;
- }
-
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_base_template_args visitor (&ctx,
- node);
-
- if (bt->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "base type visit failed\n"),
- -1);
- }
-
- // Find out if the sequence is of a managed type and if it is bounded or not.
- if (node->managed_type () == be_sequence::MNG_STRING
- || node->managed_type () == be_sequence::MNG_WSTRING)
- {
- if (!node->unbounded ())
- {
- *os << "<" << node->max_size () << ">";
- }
- }
- else
- {
- // If we are a sequence of arrays, the template includes
- // a _var parameter.
- if (bt->base_node_type () == AST_Decl::NT_array)
- {
- *os << ", ";
-
- if (bt->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "base type visit failed\n"),
- -1);
- }
-
- *os << "_var";
- }
-
- if (node->unbounded ())
- {
- *os << ">";
- }
- else
- {
- *os << ", " << node->max_size () << ">";
- }
- }
-
- os->gen_endif_AHETI ();
-
- return 0;
-}
-
int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
{
TAO_OutStream *os = this->ctx_->stream ();
@@ -218,251 +43,8 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
{
return 0;
}
-/*
- if (this->instantiate_sequence (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_ch::"
- "visit_sequence - "
- "codegen. for the primitive type sequence\n"),
- -1);
- }
-
- // Generate the ifdefined macro for the sequence type.
- os->gen_ifdef_macro (node->flat_name ());
-
- os->indent (); // start with the current indentation level
-
- // Retrieve the base type since we may need to do some code
- // generation for the base type.
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "Bad element type\n"), -1);
- }
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
-
- *os << "// *************************************************************"
- << be_nl
- << "// " << node->name () << be_nl
- << "// *************************************************************"
- << be_nl << be_nl;
-
- // default constructor
- *os << node->name () << "::" << node->local_name () << " (void)" << be_nl
- << "{}";
-
- // for unbounded sequences, we have a different set of constructors
- if (node->unbounded ())
- {
- *os << be_nl << be_nl
- << node->name () << "::" << node->local_name ()
- << " (CORBA::ULong max)" << be_nl
- << " : ";
- // pass it to the base constructor
- if (this->gen_base_sequence_class (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "codegen for base sequence class\n"), -1);
- }
-
-
- *os << be_nl << " (max)" << be_nl
- << "{}";
- }
-
- // constructor with the buffer
- *os << be_nl << be_nl
- << node->name () << "::" << node->local_name () << " ("
- << be_idt << be_idt_nl;
-
- if (node->unbounded ())
- {
- // Unbounded seq takes this extra parameter.
- *os << "CORBA::ULong max," << be_nl;
- }
-
- *os << "CORBA::ULong length," << be_nl;
-
- // generate the base type for the buffer
- be_visitor_context ctx (*this->ctx_);
- be_visitor_sequence_buffer_type bt_visitor (&ctx);
-
- 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);
- }
-
- *os << " *buffer," << be_nl
- << "CORBA::Boolean release" << be_uidt_nl
- << ")" << be_uidt_nl
- << " : ";
-
- // Pass it to the base constructor.
- if (this->gen_base_sequence_class (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "codegen for base sequence class\n"),
- -1);
- }
-
- *os << be_nl << " (";
-
- if (node->unbounded ())
- {
- *os << "max, ";
- }
-
- *os << "length, buffer, release)" << be_nl
- << "{}";
-
- // Copy constructor.
- *os << be_nl << be_nl << node->name () << "::" << node->local_name ()
- << " (const " << node->local_name ()
- << " &seq)" << be_nl
- << " : ";
-
- // Pass it to the base constructor.
- if (this->gen_base_sequence_class (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "codegen for base sequence class\n"),
- -1);
- }
-
- *os << be_nl << " (seq)" << be_nl
- << "{}";
-
- // Destructor.
- *os << be_nl << be_nl
- << node->name () << "::~" << node->local_name ()
- << " (void) // dtor" << be_nl
- << "{}" << be_nl << be_nl;
-
-
- if (be_global->any_support ())
- {
- *os << "void "
- << node->name () << "::_tao_any_destructor (void *_tao_void_pointer)"
- << be_nl
- << "{" << be_idt_nl
- << node->local_name () << " *tmp = ACE_static_cast ("
- << node->local_name () << "*, _tao_void_pointer);" << be_nl
- << "delete tmp;" << be_uidt_nl
- << "}";
- }
-
- os->gen_endif ();
-*/
node->cli_stub_gen (1);
return 0;
}
-int
-be_visitor_sequence_cs::instantiate_sequence (be_sequence *node)
-{
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "gen_instantiate_template_name - "
- "Bad element type\n"), -1);
- }
-
- // Generate the appropriate sequence type.
- switch (node->managed_type ())
- {
- case be_sequence::MNG_PSEUDO:
- case be_sequence::MNG_OBJREF:
- case be_sequence::MNG_VALUE:
- case be_sequence::MNG_ABSTRACT:
- if (node->unbounded ())
- {
- this->gen_unbounded_obj_sequence (node);
- }
- else
- {
- this->gen_bounded_obj_sequence (node);
- }
-
- break;
- case be_sequence::MNG_STRING:
- if (!node->unbounded ())
- {
- this->gen_bounded_str_sequence (node);
- }
-
- break;
- case be_sequence::MNG_WSTRING:
- if (!node->unbounded ())
- {
- this->gen_bounded_wstr_sequence (node);
- }
-
- break;
- default:
- if (node->unbounded ())
- {
- // TAO provides extensions for octet sequences, first find out
- // if the base type is an octet (or an alias for octet).
- be_predefined_type *predef = 0;
-
- if (bt->base_node_type () == AST_Type::NT_pre_defined)
- {
- be_typedef* alias =
- be_typedef::narrow_from_decl (bt);
-
- if (alias == 0)
- {
- predef =
- be_predefined_type::narrow_from_decl (bt);
- }
- else
- {
- predef =
- be_predefined_type::narrow_from_decl (
- alias->primitive_base_type ()
- );
- }
- }
-
- if (predef != 0)
- {
- if (predef->pt() != AST_PredefinedType::PT_octet)
- {
- this->gen_unbounded_sequence (node);
- }
- }
- else
- {
- this->gen_unbounded_sequence (node);
- }
- }
- else
- {
- this->gen_bounded_sequence (node);
- }
- break;
- } // end of switch
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch.cpp
index fcb53b6924f..a21dc86379b 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch.cpp
@@ -33,6 +33,7 @@
#include "be_helper.h"
#include "ast_union_label.h"
#include "utl_identifier.h"
+#include "nr_extern.h"
#include "be_visitor_union_branch.h"
#include "be_visitor_array.h"
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
index 23a69059f84..bdf756c7cea 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
@@ -312,8 +312,16 @@ be_visitor_union_branch_cdr_op_ci::visit_interface (be_interface *node)
}
else
{
- *os << "result =" << be_idt_nl
- << "tao_" << node->flat_name () << "_marshal ("
+ *os << "result =" << be_idt_nl;
+
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao_marshal ("
<< be_idt << be_idt_nl
<< "_tao_union." << f->local_name () << " ()," << be_nl
<< "strm" << be_uidt_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp
index 636633ba43a..393b6ed2a01 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp
@@ -254,15 +254,26 @@ be_visitor_union_branch_public_assign_cs::visit_interface (be_interface *node)
if (bt_is_defined)
{
- *os << "OBJECT_FIELD (" << bt->name () << "::";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << bt->name () << "::";
}
else
{
- *os << "OBJECT_FIELD (tao_" << node->flat_name ();
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
+
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao";
}
- *os << "_duplicate (u.u_." << ub->local_name ()
- << "_->ptr ()))" << be_uidt_nl
+ *os << "_duplicate (" << be_idt << be_idt_nl
+ << "u.u_." << ub->local_name () << "_->ptr ()" << be_uidt_nl
+ << ")" << be_uidt << be_uidt_nl << ")" << be_uidt << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl;
}
else
@@ -273,15 +284,27 @@ be_visitor_union_branch_public_assign_cs::visit_interface (be_interface *node)
if (bt_is_defined)
{
- *os << "OBJECT_FIELD (" << bt->name () << "::";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << bt->name () << "::";
}
else
{
- *os << "OBJECT_FIELD (tao_" << node->flat_name ();
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
+
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao";
}
- *os << "_duplicate (u.u_." << ub->local_name ()
- << "_->ptr ()))," << be_nl
+ *os << "_duplicate (" << be_idt << be_idt_nl
+ << "u.u_." << ub->local_name ()
+ << "_->ptr ()" << be_uidt_nl
+ << ")" << be_uidt << be_uidt_nl << ")," << be_uidt_nl
<< "*this" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl;
}
@@ -344,15 +367,26 @@ be_visitor_union_branch_public_assign_cs::visit_interface_fwd (
if (bt_is_defined)
{
- *os << "OBJECT_FIELD (" << bt->name () << "::";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << bt->name () << "::";
}
else
{
- *os << "OBJECT_FIELD (tao_" << node->flat_name ();
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
+
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao";
}
- *os << "_duplicate (u.u_." << ub->local_name ()
- << "_->ptr ()))" << be_uidt_nl
+ *os << "_duplicate (" << be_idt << be_idt_nl
+ << "u.u_." << ub->local_name () << "_->ptr ()" << be_uidt_nl
+ << ")" << be_uidt << be_uidt_nl << ")" << be_uidt << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl;
}
else
@@ -363,15 +397,27 @@ be_visitor_union_branch_public_assign_cs::visit_interface_fwd (
if (bt_is_defined)
{
- *os << "OBJECT_FIELD (" << bt->name () << "::";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << bt->name () << "::";
}
else
{
- *os << "OBJECT_FIELD (tao_" << node->flat_name ();
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
+
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao";
}
- *os << "_duplicate (u.u_." << ub->local_name ()
- << "_->ptr ()))," << be_nl
+ *os << "_duplicate (" << be_idt << be_idt_nl
+ << "u.u_." << ub->local_name ()
+ << "_->ptr ()" << be_uidt_nl
+ << ")" << be_uidt << be_uidt_nl << ")," << be_uidt_nl
<< "*this" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp
index be063f62f9c..fc2b88ae41d 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp
@@ -362,14 +362,24 @@ be_visitor_union_branch_public_ci::visit_interface (be_interface *node)
if (bt_is_defined)
{
- *os << "OBJECT_FIELD (" << bt->name () << "::";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << bt->name () << "::";
}
else
{
- *os << "OBJECT_FIELD (tao_" << node->flat_name ();
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
+
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao";
}
- *os << "_duplicate (val))" << be_uidt_nl
+ *os << "_duplicate (val)" << be_uidt_nl << ")" << be_uidt << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl
<< "}" << be_nl << be_nl;
@@ -457,14 +467,24 @@ be_visitor_union_branch_public_ci::visit_interface_fwd (be_interface_fwd *node)
if (bt_is_defined)
{
- *os << "OBJECT_FIELD (" << bt->name () << "::";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << bt->name () << "::";
}
else
{
- *os << "OBJECT_FIELD (tao_" << node->flat_name ();
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
+
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao";
}
- *os << "_duplicate (val))" << be_uidt_nl
+ *os << "_duplicate (val)" << be_uidt_nl << ")" << be_uidt << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl
<< "}" << be_nl << be_nl;
@@ -625,25 +645,14 @@ be_visitor_union_branch_public_ci::visit_valuetype_fwd (be_valuetype_fwd *node)
ub->gen_default_label_value (os, bu);
}
- idl_bool bt_is_defined = node->full_definition ()->is_defined ();
-
*os << ";" << be_nl
+ << "CORBA::add_ref (val);" << be_nl
<< "typedef "
<< bt->nested_type_name (bu, "_var")
<< " OBJECT_FIELD;" << be_nl
<< "ACE_NEW (" << be_idt << be_idt_nl
- << "this->u_." << ub->local_name () << "_," << be_nl;
-
- if (bt_is_defined)
- {
- *os << "OBJECT_FIELD (" << bt->name () << "::";
- }
- else
- {
- *os << "OBJECT_FIELD (tao_" << node->flat_name ();
- }
-
- *os << "_duplicate (val))" << be_uidt_nl
+ << "this->u_." << ub->local_name () << "_," << be_nl
+ << "OBJECT_FIELD (val)" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl
<< "}" << be_nl << be_nl;
diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ch.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ch.h
index c3ce19027a0..0b33495d830 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ch.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ch.h
@@ -43,36 +43,6 @@ public:
virtual int visit_sequence (be_sequence *node);
// visit sequence node
-
- virtual int gen_unbounded_sequence (be_sequence *node);
- // generate a instance of the unbounded sequence
-
- virtual int gen_bounded_sequence (be_sequence *node);
- // generate a instance of the bounded sequence
-
- virtual int gen_unbounded_obj_sequence (be_sequence *node);
- // generate a instance of the unbounded object sequence
-
- virtual int gen_bounded_obj_sequence (be_sequence *node);
- // generate a instance of the bounded object sequence
-
- virtual int gen_bounded_str_sequence (be_sequence *node);
- // generate a instance of the bounded string sequence
-
- virtual int gen_bounded_wstr_sequence (be_sequence *node);
- // generate a instance of the bounded wstring sequence
-
- virtual int instantiate_sequence (be_sequence *node);
- // determine which sequence to instantiate
-
- virtual int gen_base_sequence_class (be_sequence *node);
- // generate the base sequence class
-
- virtual int gen_var_defn (be_sequence *node);
- // generate the var defn
-
- virtual int gen_out_defn (be_sequence *node);
- // generate the out defn
};
#endif /* _BE_VISITOR_SEQUENCE_SEQUENCE_CH_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h
index ee725cc054e..21afbcf61e0 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h
@@ -44,33 +44,6 @@ public:
virtual int visit_sequence (be_sequence *node);
// visit sequence node
-
- virtual int gen_unbounded_sequence (be_sequence *node);
- // generate a instance of the unbounded sequence
-
- virtual int gen_bounded_sequence (be_sequence *node);
- // generate a instance of the bounded sequence
-
- virtual int gen_unbounded_obj_sequence (be_sequence *node);
- // generate a instance of the unbounded object sequence
-
- virtual int gen_bounded_obj_sequence (be_sequence *node);
- // generate a instance of the bounded object sequence
-
- virtual int gen_bounded_str_sequence (be_sequence *node);
- // generate a instance of the bounded string sequence
-
- virtual int gen_bounded_wstr_sequence (be_sequence *node);
- // generate a instance of the bounded wstring sequence
-
- virtual int instantiate_sequence (be_sequence *node);
- // determine which sequence to instantiate
-
- virtual int gen_var_impl (be_sequence *node);
- // generate the var impl
-
- virtual int gen_out_impl (be_sequence *node);
- // generate the out impl
};
#endif /* _BE_VISITOR_SEQUENCE_SEQUENCE_CI_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h
index c4f7cb54e0c..9fe180ec7c0 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h
@@ -43,30 +43,6 @@ public:
virtual int visit_sequence (be_sequence *node);
// visit sequence node
-
- virtual int gen_unbounded_sequence (be_sequence *node);
- // generate a instance of the unbounded sequence
-
- virtual int gen_bounded_sequence (be_sequence *node);
- // generate a instance of the bounded sequence
-
- virtual int gen_unbounded_obj_sequence (be_sequence *node);
- // generate a instance of the unbounded object sequence
-
- virtual int gen_bounded_obj_sequence (be_sequence *node);
- // generate a instance of the bounded object sequence
-
- virtual int gen_bounded_str_sequence (be_sequence *node);
- // generate a instance of the bounded string sequence
-
- virtual int gen_bounded_wstr_sequence (be_sequence *node);
- // generate a instance of the bounded wstring sequence
-
- virtual int instantiate_sequence (be_sequence *node);
- // determine which sequence to instantiate
-
- virtual int gen_base_sequence_class (be_sequence *node);
- // generate the base sequence class
};
#endif /* _BE_VISITOR_SEQUENCE_SEQUENCE_CS_H_ */