diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-03-12 16:50:35 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-03-12 16:50:35 +0000 |
commit | 86eecb8ada7fd5c1850b657cdef50432d6dedc8b (patch) | |
tree | 557e6493614d3c8a6f25761b9a26764140adc24e /TAO/TAO_IDL/be | |
parent | f114ae98d21d23a68c8407063ff4a667c110b4c6 (diff) | |
download | ATCD-86eecb8ada7fd5c1850b657cdef50432d6dedc8b.tar.gz |
ChangeLogTag: Wed Mar 12 09:49:00 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/TAO_IDL/be')
170 files changed, 1383 insertions, 3627 deletions
diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp index 33154c77d9b..60f61b7d43f 100644 --- a/TAO/TAO_IDL/be/be_codegen.cpp +++ b/TAO/TAO_IDL/be/be_codegen.cpp @@ -709,6 +709,8 @@ TAO_CodeGen::start_server_skeletons (const char *fname) this->gen_standard_include (this->server_skeletons_, "tao/ORB_Core.h"); this->gen_standard_include (this->server_skeletons_, + "tao/Profile.h"); + this->gen_standard_include (this->server_skeletons_, "tao/Stub.h"); this->gen_standard_include (this->server_skeletons_, "tao/IFR_Client_Adapter.h"); diff --git a/TAO/TAO_IDL/be/be_interface_strategy.cpp b/TAO/TAO_IDL/be/be_interface_strategy.cpp index 07a914dc5ab..f717ef8830e 100644 --- a/TAO/TAO_IDL/be/be_interface_strategy.cpp +++ b/TAO/TAO_IDL/be/be_interface_strategy.cpp @@ -406,10 +406,8 @@ be_interface_ami_exception_holder_strategy::next_state ( switch (current_state) { case TAO_CodeGen::TAO_VALUETYPE_OBV_CH: - case TAO_CodeGen::TAO_EVENTTYPE_OBV_CH: return TAO_CodeGen::TAO_AMI_EXCEPTION_HOLDER_VALUETYPE_CH; case TAO_CodeGen::TAO_VALUETYPE_OBV_CS: - case TAO_CodeGen::TAO_EVENTTYPE_OBV_CS: return TAO_CodeGen::TAO_AMI_EXCEPTION_HOLDER_VALUETYPE_CS; default: return current_state; diff --git a/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp index 6dc35d86165..8ff46f273f3 100644 --- a/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp @@ -58,124 +58,62 @@ be_visitor_array_any_op_cs::visit_array (be_array *node) << "CORBA::Any &_tao_any," << be_nl << "const " << node->name () << "_forany &_tao_elem" << be_uidt_nl << ")" << be_uidt_nl - << "{" << be_idt_nl; - - if (!node->is_local ()) - { - *os << "TAO_OutputCDR stream;" << be_nl - << "stream << _tao_elem;" << be_nl << be_nl; - } - - *os << "if (_tao_elem.nocopy ()) // no copy" << be_idt_nl - << "{" << be_idt_nl - << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl; - - if (!node->is_local ()) - { - *os << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()," << be_nl; - } - - *os << "1," << be_nl - << "(void *)_tao_elem.in ()," << be_nl - << node->name () << "_forany::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "}" << be_uidt_nl - << "else // copy" << be_idt_nl << "{" << be_idt_nl - << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl; + << "TAO::Any_Array_Impl_T<" << be_idt << be_idt_nl + << node->name () << "_slice," << be_nl + << node->name () << "_forany" << be_uidt_nl + << ">::insert (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "_forany::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "ACE_const_cast (" << be_idt << be_idt_nl + << node->name () << "_slice * const," << be_nl + << "_tao_elem.nocopy ()" << be_idt_nl + << "? _tao_elem.in ()" << be_nl + << ": ACE_const_cast (" << be_idt << be_idt << be_idt_nl + << "const " << node->name () << "_slice *," << be_nl + << node->name () << "_dup (_tao_elem.in ())" << be_uidt_nl + << ")" << be_uidt << be_uidt << be_uidt << be_uidt_nl + << ")" << be_uidt << be_uidt_nl + << ");" << be_uidt << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; - if (!node->is_local ()) - { - *os << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()," << be_nl; - } - - *os << "1," << be_nl - << node->name () << "_dup (_tao_elem.in ())," << be_nl - << node->name () << "_forany::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "}" << be_uidt; - - if (node->is_local ()) - { - *os << be_nl << be_nl << "_tao_any.contains_local (1);"; - } - - *os << be_uidt_nl << "}\n\n"; - - os->indent (); *os << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl << "const CORBA::Any &_tao_any," << be_nl << node->name () << "_forany &_tao_elem" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl - << "ACE_TRY_NEW_ENV" << be_nl - << "{" << be_idt_nl - << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << be_nl - << "CORBA::Boolean _tao_result =" << be_idt_nl - << "type->equivalent (" << be_idt << be_idt_nl - << node->tc_name () << be_nl - << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "ACE_TRY_CHECK;" << be_nl << be_nl - << "if (_tao_result == 0)" << be_idt_nl - << "{" << be_idt_nl - << "return 0; // not equivalent" << be_uidt_nl - << "}" << be_uidt_nl << be_nl; - - if (!node->is_local ()) - { - *os << "if (_tao_any.any_owns_data ())" << be_idt_nl - << "{" << be_idt_nl; - } - - *os << "_tao_elem = (" << node->name () << "_slice *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl; - - if (!node->is_local ()) - { - *os << "}" << be_uidt_nl - << "else" << be_idt_nl // else Any does not own the data - << "{" << be_idt_nl - << "_tao_elem.out () = " << node->name () << "_alloc ();" - << be_nl << be_nl - << "if (!_tao_elem.in ())" << be_idt_nl - << "{" << be_idt_nl - << "return 0;" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "TAO_InputCDR stream (" << be_idt << be_idt_nl - << "_tao_any._tao_get_cdr ()," << be_nl - << "_tao_any._tao_byte_order ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "if (stream >> _tao_elem)" << be_idt_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->_tao_replace (" - << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "1," << be_nl - << "_tao_elem.inout ()," << be_nl - << node->name () << "_forany::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "else" << be_idt_nl - << "{" << be_idt_nl - << node->name () << "_free (_tao_elem._retn ());" << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl; - } - - *os << "}" << be_nl - << "ACE_CATCHANY" << be_nl - << "{" << be_nl - << "}" << be_nl - << "ACE_ENDTRY;" - << be_nl << be_nl << "return 0;" - << be_uidt_nl << "}"; + << "return" << be_idt_nl + << "TAO::Any_Array_Impl_T<" << be_idt << be_idt_nl + << node->name () << "_slice," << be_nl + << node->name () << "_forany" << be_uidt_nl + << ">::extract (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "_forany::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "ACE_const_cast (" << be_idt << be_idt_nl + << "const " << node->name () << "_slice *&," << be_nl + << "_tao_elem.out ()" << be_uidt_nl + << ")" << be_uidt << be_uidt_nl + << ");" << be_uidt << be_uidt << be_uidt << be_uidt_nl + << "}"; + + *os << be_nl << be_nl + << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\" + << be_idt_nl + << " defined (ACE_HAS_GNU_REPO)" << be_nl + << "template class TAO::Any_Array_Impl_T<" << be_idt << be_idt_nl + << node->name () << "_slice," << be_nl + << node->name () << "_forany" << be_uidt_nl + << ">;" << be_uidt << be_uidt_nl + << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl + << "# pragma instantiate TAO::Any_Array_Impl_T<" << be_idt << be_idt_nl + << node->name () << "_slice," << be_nl + << node->name () << "_forany" << be_uidt_nl + << ">" << be_uidt_nl + << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */"; node->cli_stub_any_op_gen (1); return 0; diff --git a/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp b/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp index 6c8eef2d909..71549767486 100644 --- a/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp @@ -72,7 +72,7 @@ int be_visitor_array_ch::visit_array (be_array *node) if (nt == AST_Decl::NT_sequence) { if (this->gen_anonymous_base_type (bt, - TAO_CodeGen::TAO_SEQUENCE_CH) + TAO_CodeGen::TAO_ROOT_CH) == -1) { ACE_ERROR_RETURN ((LM_ERROR, @@ -96,21 +96,18 @@ int be_visitor_array_ch::visit_array (be_array *node) { case AST_Decl::NT_enum: { - ctx.state (TAO_CodeGen::TAO_ENUM_CH); be_visitor_enum_ch ec_visitor (&ctx); status = bt->accept (&ec_visitor); break; } case AST_Decl::NT_struct: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); be_visitor_structure_ch sc_visitor (&ctx); status = bt->accept (&sc_visitor); break; } case AST_Decl::NT_union: { - ctx.state (TAO_CodeGen::TAO_UNION_CH); be_visitor_union_ch uc_visitor (&ctx); status = bt->accept (&uc_visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp b/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp index c23424eee1f..fc0f6a6991a 100644 --- a/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp @@ -62,7 +62,7 @@ int be_visitor_array_ci::visit_array (be_array *node) if (nt == AST_Decl::NT_sequence) { if (this->gen_anonymous_base_type (bt, - TAO_CodeGen::TAO_SEQUENCE_CI) + TAO_CodeGen::TAO_ROOT_CI) == -1) { ACE_ERROR_RETURN ((LM_ERROR, @@ -86,14 +86,12 @@ int be_visitor_array_ci::visit_array (be_array *node) { case AST_Decl::NT_struct: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); be_visitor_structure_ci sc_visitor (&ctx); status = bt->accept (&sc_visitor); break; } case AST_Decl::NT_union: { - ctx.state (TAO_CodeGen::TAO_UNION_CI); be_visitor_union_ci uc_visitor (&ctx); status = bt->accept (&uc_visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp b/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp index a2825d31bec..ce96ae54d64 100644 --- a/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp @@ -313,7 +313,7 @@ int be_visitor_array_cs::visit_array (be_array *node) if (nt == AST_Decl::NT_sequence) { if (this->gen_anonymous_base_type (bt, - TAO_CodeGen::TAO_SEQUENCE_CS) + TAO_CodeGen::TAO_ROOT_CS) == -1) { ACE_ERROR_RETURN ((LM_ERROR, @@ -337,21 +337,18 @@ int be_visitor_array_cs::visit_array (be_array *node) { case AST_Decl::NT_enum: { - ctx.state (TAO_CodeGen::TAO_ENUM_CS); be_visitor_enum_cs ec_visitor (&ctx); status = bt->accept (&ec_visitor); break; } case AST_Decl::NT_struct: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); be_visitor_structure_cs sc_visitor (&ctx); status = bt->accept (&sc_visitor); break; } case AST_Decl::NT_union: { - ctx.state (TAO_CodeGen::TAO_UNION_CS); be_visitor_union_cs uc_visitor (&ctx); status = bt->accept (&uc_visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ch.cpp index a3feb2230ab..64ae7118735 100644 --- a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ch.cpp @@ -82,21 +82,18 @@ be_visitor_array_cdr_op_ch::visit_array (be_array *node) { case AST_Decl::NT_enum: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CH); be_visitor_enum_cdr_op_ch ec_visitor (&ctx); status = bt->accept (&ec_visitor); break; } case AST_Decl::NT_struct: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CH); be_visitor_structure_cdr_op_ch sc_visitor (&ctx); status = bt->accept (&sc_visitor); break; } case AST_Decl::NT_union: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CH); be_visitor_union_cdr_op_ch uc_visitor (&ctx); status = bt->accept (&uc_visitor); break; 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 2b3bf2efd03..6e4cc7bfc58 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 @@ -44,14 +44,10 @@ be_visitor_array_cdr_op_ci::~be_visitor_array_cdr_op_ci (void) int be_visitor_array_cdr_op_ci::visit_array (be_array *node) { - if (node->is_local ()) - { - return 0; - } - if (this->ctx_->alias ()) { - // We are here because the base type of the array node is itself an + // We are here because we are visiting base type + // of the array node which is itself an // array, i.e., this is a case of array of array. return this->visit_node (node); } @@ -61,9 +57,44 @@ be_visitor_array_cdr_op_ci::visit_array (be_array *node) return 0; } - be_type *bt = be_type::narrow_from_decl (node->base_type ()); TAO_OutStream *os = this->ctx_->stream (); + // Since we don't generate CDR stream operators for types that + // explicitly contain a local interface (at some level), we + // must override these Any template class methods to avoid + // calling the non-existent operators. The zero return value + // will eventually cause CORBA::MARSHAL to be raised if this + // type is inserted into an Any and then marshaled. + if (node->is_local ()) + { + if (be_global->any_support ()) + { + *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl + << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; + + *os << "ACE_INLINE CORBA::Boolean" << be_nl + << "TAO::Any_Array_Impl_T<" << node->name () + << "_slice, " << node->name () + << "_forany>::marshal_value (TAO_OutputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; + + *os << be_nl << be_nl + << "ACE_INLINE CORBA::Boolean" << be_nl + << "TAO::Any_Array_Impl_T<" << node->name () + << "_slice, " << node->name () + << "_forany>::demarshal_value (TAO_InputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; + } + + return 0; + } + + be_type *bt = be_type::narrow_from_decl (node->base_type ()); + if (!bt) { ACE_ERROR_RETURN ((LM_ERROR, @@ -107,21 +138,18 @@ be_visitor_array_cdr_op_ci::visit_array (be_array *node) { case AST_Decl::NT_enum: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CI); be_visitor_enum_cdr_op_ci ec_visitor (&ctx); status = bt->accept (&ec_visitor); break; } case AST_Decl::NT_struct: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CI); be_visitor_structure_cdr_op_ci sc_visitor (&ctx); status = bt->accept (&sc_visitor); break; } case AST_Decl::NT_union: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CI); be_visitor_union_cdr_op_ci uc_visitor (&ctx); status = bt->accept (&uc_visitor); break; @@ -556,6 +584,7 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt) TAO_OutStream *os = this->ctx_->stream (); unsigned long i; be_array *node = this->ctx_->be_node_as_array (); + AST_Decl::NodeType nt = bt->node_type (); if (!node) { @@ -617,7 +646,7 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt) // Handle the array of array case, where we need to pass the // forany type. - if (bt->node_type () == AST_Decl::NT_array) + if (nt == AST_Decl::NT_array) { *os << bt->name () << "_forany tmp (" << bt->name () << "_alloc ());" << be_nl; @@ -637,7 +666,7 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt) *os << "_tao_marshal_flag = (strm >> "; *os << "_tao_array "; - for (i = 0; i < node->n_dims (); i++) + for (i = 0; i < ndims; ++i) { *os << "[i" << i << "]"; } @@ -648,8 +677,6 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt) // handled in a special way. case AST_Decl::NT_string: case AST_Decl::NT_wstring: - case AST_Decl::NT_interface: - case AST_Decl::NT_interface_fwd: case AST_Decl::NT_valuetype: case AST_Decl::NT_valuetype_fwd: *os << ".out ()"; @@ -691,7 +718,7 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt) // Handle the array of array case, where we need to pass the // forany type. - if (bt->node_type () == AST_Decl::NT_array) + if (nt == AST_Decl::NT_array) { *os << bt->name () << "_var tmp_var (" << bt->name () << "_dup (_tao_array"; @@ -705,6 +732,34 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt) *os << bt->name () << "_forany tmp (tmp_var.inout ());" << be_nl; *os << "_tao_marshal_flag = (strm << tmp);"; } + else if (nt == AST_Decl::NT_interface + || nt == AST_Decl::NT_interface_fwd) + { + *os << "_tao_marshal_flag = " << be_idt_nl; + + if (bt->is_defined ()) + { + *os << "_tao_array"; + + for (i = 0; i < ndims; ++i) + { + *os << "[i" << i << "]"; + } + + *os << ".in ()->marshal (strm);" << be_uidt; + } + else + { + *os << "tao_" << bt->flat_name () << "_marshal (_tao_array"; + + for (i = 0; i < ndims; ++i) + { + *os << "[i" << i << "]"; + } + + *os << ".in (), strm);" << be_uidt; + } + } else { *os << "_tao_marshal_flag = (strm << "; @@ -721,8 +776,6 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt) // handled in a special way. case AST_Decl::NT_string: case AST_Decl::NT_wstring: - case AST_Decl::NT_interface: - case AST_Decl::NT_interface_fwd: case AST_Decl::NT_valuetype: case AST_Decl::NT_valuetype_fwd: *os << ".in ()"; diff --git a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp index 2ba08492dcd..b442af25ba7 100644 --- a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp @@ -66,7 +66,7 @@ be_visitor_array_cdr_op_cs::visit_array (be_array *node) if (nt == AST_Decl::NT_sequence) { if (this->gen_anonymous_base_type (bt, - TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CS) + TAO_CodeGen::TAO_ROOT_CDR_OP_CS) == -1) { ACE_ERROR_RETURN ((LM_ERROR, @@ -90,14 +90,12 @@ be_visitor_array_cdr_op_cs::visit_array (be_array *node) { case AST_Decl::NT_struct: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CS); be_visitor_structure_cdr_op_cs sc_visitor (&ctx); status = bt->accept (&sc_visitor); break; } case AST_Decl::NT_union: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CS); be_visitor_union_cdr_op_cs uc_visitor (&ctx); status = bt->accept (&uc_visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp b/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp index 6008cda0263..2afe2296ea2 100644 --- a/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp +++ b/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp @@ -85,131 +85,113 @@ be_visitor_attribute::visit_attribute (be_attribute *node) switch (this->ctx_->state ()) { // These two cases are the only ones that could involved a strategy. - case TAO_CodeGen::TAO_ATTRIBUTE_CH: + case TAO_CodeGen::TAO_ROOT_CH: + case TAO_CodeGen::TAO_INTERFACE_CH: ctx.state (TAO_CodeGen::TAO_OPERATION_CH); break; - case TAO_CodeGen::TAO_ATTRIBUTE_CS: + case TAO_CodeGen::TAO_ROOT_CS: ctx.state (TAO_CodeGen::TAO_OPERATION_CS); break; - case TAO_CodeGen::TAO_ATTRIBUTE_SH: + case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SH); be_visitor_operation_sh visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_IH: + case TAO_CodeGen::TAO_ROOT_IH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_IH); be_visitor_operation_ih visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_SS: + case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SS); be_visitor_operation_ss visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_IS: + case TAO_CodeGen::TAO_ROOT_IS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_IS); be_visitor_operation_is visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_BASE_PROXY_IMPL_CH: + case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_BASE_PROXY_IMPL_CH); be_visitor_operation_base_proxy_impl_ch visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_PROXY_IMPL_XH: + case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: + case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: + case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_PROXY_IMPL_XH); be_visitor_operation_proxy_impl_xh visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_REMOTE_PROXY_IMPL_CS: + case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_REMOTE_PROXY_IMPL_CS); be_visitor_operation_remote_proxy_impl_cs visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_THRU_POA_PROXY_IMPL_SS: + case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_THRU_POA_PROXY_IMPL_SS); be_visitor_operation_thru_poa_proxy_impl_ss visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_DIRECT_PROXY_IMPL_SS: + case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_DIRECT_PROXY_IMPL_SS); be_visitor_operation_direct_proxy_impl_ss visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_SMART_PROXY_CH: + case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SMART_PROXY_CH); be_visitor_operation_smart_proxy_ch visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_SMART_PROXY_CS: + case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SMART_PROXY_CS); be_visitor_operation_smart_proxy_cs visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_INTERCEPTORS_CS: + case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_CS); be_visitor_operation_interceptors_cs visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_INTERCEPTORS_SH: + case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_SH); be_visitor_operation_interceptors_sh visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_INTERCEPTORS_SS: + case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_SS); be_visitor_operation_interceptors_ss visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_TIE_SH: + case TAO_CodeGen::TAO_ROOT_TIE_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_TIE_SH); be_visitor_operation_tie_sh visitor (&ctx); status = get_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_TIE_SI: + case TAO_CodeGen::TAO_ROOT_TIE_SI: { - ctx.state (TAO_CodeGen::TAO_OPERATION_TIE_SI); be_visitor_operation_tie_si visitor (&ctx); status = get_op.accept (&visitor); break; } default: - // Error. - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_attribute::" - "visit_attribute - " - "bad codegen state\n"), - -1); + return 0; } if (status == -1) @@ -303,120 +285,107 @@ be_visitor_attribute::visit_attribute (be_attribute *node) switch (this->ctx_->state ()) { // These two cases are the only ones that could involved a strategy. - case TAO_CodeGen::TAO_ATTRIBUTE_CH: + case TAO_CodeGen::TAO_ROOT_CH: + case TAO_CodeGen::TAO_INTERFACE_CH: ctx.state (TAO_CodeGen::TAO_OPERATION_CH); break; - case TAO_CodeGen::TAO_ATTRIBUTE_CS: + case TAO_CodeGen::TAO_ROOT_CS: ctx.state (TAO_CodeGen::TAO_OPERATION_CS); break; - case TAO_CodeGen::TAO_ATTRIBUTE_SH: + case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SH); be_visitor_operation_sh visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_IH: + case TAO_CodeGen::TAO_ROOT_IH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_IH); be_visitor_operation_ih visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_SS: + case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SS); be_visitor_operation_ss visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_IS: + case TAO_CodeGen::TAO_ROOT_IS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_IS); be_visitor_operation_is visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_BASE_PROXY_IMPL_CH: + case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_BASE_PROXY_IMPL_CH); be_visitor_operation_base_proxy_impl_ch visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_PROXY_IMPL_XH: + case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: + case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: + case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_PROXY_IMPL_XH); be_visitor_operation_proxy_impl_xh visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_REMOTE_PROXY_IMPL_CS: + case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_REMOTE_PROXY_IMPL_CS); be_visitor_operation_remote_proxy_impl_cs visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_THRU_POA_PROXY_IMPL_SS: + case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_THRU_POA_PROXY_IMPL_SS); be_visitor_operation_thru_poa_proxy_impl_ss visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_DIRECT_PROXY_IMPL_SS: + case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_DIRECT_PROXY_IMPL_SS); be_visitor_operation_direct_proxy_impl_ss visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_SMART_PROXY_CH: + case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SMART_PROXY_CH); be_visitor_operation_smart_proxy_ch visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_SMART_PROXY_CS: + case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SMART_PROXY_CS); be_visitor_operation_smart_proxy_cs visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_INTERCEPTORS_CS: + case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_CS); be_visitor_operation_interceptors_cs visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_INTERCEPTORS_SH: + case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_SH); be_visitor_operation_interceptors_sh visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_INTERCEPTORS_SS: + case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_SS); be_visitor_operation_interceptors_ss visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_TIE_SH: + case TAO_CodeGen::TAO_ROOT_TIE_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_TIE_SH); be_visitor_operation_tie_sh visitor (&ctx); status = set_op.accept (&visitor); break; } - case TAO_CodeGen::TAO_ATTRIBUTE_TIE_SI: + case TAO_CodeGen::TAO_ROOT_TIE_SI: { - ctx.state (TAO_CodeGen::TAO_OPERATION_TIE_SI); be_visitor_operation_tie_si visitor (&ctx); status = set_op.accept (&visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_component/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_component/any_op_ch.cpp index 905778c25f5..ff140c4ab35 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/any_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/any_op_ch.cpp @@ -41,7 +41,6 @@ int be_visitor_component_any_op_ch::visit_component (be_component *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH); be_visitor_interface_any_op_ch visitor (&ctx); return visitor.visit_interface (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_component/any_op_cs.cpp index e9a210125f2..9abc8f02047 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/any_op_cs.cpp @@ -41,7 +41,6 @@ int be_visitor_component_any_op_cs::visit_component (be_component *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS); be_visitor_interface_any_op_cs visitor (&ctx); return visitor.visit_interface (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_component/cdr_op_ch.cpp index 8b700b395b9..eba4a289938 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/cdr_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/cdr_op_ch.cpp @@ -42,7 +42,6 @@ int be_visitor_component_cdr_op_ch::visit_component (be_component *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH); be_visitor_interface_cdr_op_ch visitor (&ctx); return visitor.visit_interface (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_component/cdr_op_ci.cpp index 214aff3c953..765a65da16b 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/cdr_op_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/cdr_op_ci.cpp @@ -42,7 +42,6 @@ int be_visitor_component_cdr_op_ci::visit_component (be_component *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI); be_visitor_interface_cdr_op_ci visitor (&ctx); return visitor.visit_interface (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_component/cdr_op_cs.cpp index c56ed53aeeb..d69ae7b8a06 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/cdr_op_cs.cpp @@ -37,7 +37,6 @@ int be_visitor_component_cdr_op_cs::visit_component (be_component *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS); be_visitor_interface_cdr_op_cs visitor (&ctx); return visitor.visit_interface (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component/component.cpp b/TAO/TAO_IDL/be/be_visitor_component/component.cpp index 0028c436a6d..867562f524a 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component.cpp @@ -45,40 +45,20 @@ be_visitor_component::visit_attribute (be_attribute *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_COMPONENT_CH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_CH); + case TAO_CodeGen::TAO_ROOT_CH: break; - case TAO_CodeGen::TAO_COMPONENT_CS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_CS); + case TAO_CodeGen::TAO_ROOT_CS: break; - case TAO_CodeGen::TAO_COMPONENT_SH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_SH); + case TAO_CodeGen::TAO_ROOT_SH: break; - case TAO_CodeGen::TAO_COMPONENT_IH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_IH); + case TAO_CodeGen::TAO_ROOT_IH: break; - case TAO_CodeGen::TAO_COMPONENT_SS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_SS); + case TAO_CodeGen::TAO_ROOT_SS: break; - case TAO_CodeGen::TAO_COMPONENT_IS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_IS); + case TAO_CodeGen::TAO_ROOT_IS: break; - case TAO_CodeGen::TAO_COMPONENT_ANY_OP_CH: - case TAO_CodeGen::TAO_COMPONENT_ANY_OP_CS: - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CH: - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CI: - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CS: - case TAO_CodeGen::TAO_COMPONENT_CI: - case TAO_CodeGen::TAO_COMPONENT_SI: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_component::" - "visit_attribute - " - "Bad context state\n: "), - -1); - } + return 0; // nothing to be done } // Same visitor for all the above cases where an action is taken. @@ -109,47 +89,43 @@ be_visitor_component::visit_operation (be_operation *node) { // These first two cases may have the context state changed // by a strategy, so we use the visitor factory below. - case TAO_CodeGen::TAO_COMPONENT_CH: + case TAO_CodeGen::TAO_ROOT_CH: ctx.state (TAO_CodeGen::TAO_OPERATION_CH); break; - case TAO_CodeGen::TAO_COMPONENT_CS: + case TAO_CodeGen::TAO_ROOT_CS: ctx.state (TAO_CodeGen::TAO_OPERATION_CS); break; - case TAO_CodeGen::TAO_COMPONENT_SH: + case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SH); be_visitor_operation_sh visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_IH: + case TAO_CodeGen::TAO_ROOT_IH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_IH); be_visitor_operation_ih visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_SS: + case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SS); be_visitor_operation_ss visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_IS: + case TAO_CodeGen::TAO_ROOT_IS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_IS); be_visitor_operation_is visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_ANY_OP_CH: - case TAO_CodeGen::TAO_COMPONENT_ANY_OP_CS: - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CH: - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CI: - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CS: - case TAO_CodeGen::TAO_COMPONENT_CI: - case TAO_CodeGen::TAO_COMPONENT_SI: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CI: + case TAO_CodeGen::TAO_ROOT_SI: return 0; // nothing to be done default: { @@ -248,76 +224,56 @@ be_visitor_component::visit_structure (be_structure *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_COMPONENT_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); be_visitor_structure_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); be_visitor_structure_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); be_visitor_structure_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CH); be_visitor_structure_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CS); be_visitor_structure_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CH); be_visitor_structure_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CI); be_visitor_structure_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CS); be_visitor_structure_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_SH: - case TAO_CodeGen::TAO_COMPONENT_IH: - case TAO_CodeGen::TAO_COMPONENT_IS: - case TAO_CodeGen::TAO_COMPONENT_SI: - case TAO_CodeGen::TAO_COMPONENT_SS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_component::" - "visit_structure - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -343,67 +299,59 @@ be_visitor_component::visit_typedef (be_typedef *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_COMPONENT_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CH); be_visitor_typedef_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CI); be_visitor_typedef_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CS); be_visitor_typedef_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH); be_visitor_typedef_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS); be_visitor_typedef_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CH); be_visitor_typedef_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CI); be_visitor_typedef_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CS); be_visitor_typedef_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_COMPONENT_SH: - case TAO_CodeGen::TAO_COMPONENT_IH: - case TAO_CodeGen::TAO_COMPONENT_IS: - case TAO_CodeGen::TAO_COMPONENT_SI: - case TAO_CodeGen::TAO_COMPONENT_SS: + case TAO_CodeGen::TAO_ROOT_SH: + case TAO_CodeGen::TAO_ROOT_IH: + case TAO_CodeGen::TAO_ROOT_IS: + case TAO_CodeGen::TAO_ROOT_SI: + case TAO_CodeGen::TAO_ROOT_SS: return 0; // nothing to be done default: { diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp index a8c03a62c5c..43506413a5d 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp @@ -296,7 +296,6 @@ be_visitor_component_ch::visit_component (be_component *node) // Proxy Implementation Declaration. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH); be_visitor_interface_proxy_impls_ch spi_visitor (&ctx); if (node->accept (&spi_visitor) == -1) @@ -310,7 +309,6 @@ be_visitor_component_ch::visit_component (be_component *node) // Proxy Broker Declaration. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH); be_visitor_interface_proxy_brokers_ch pb_visitor (&ctx); if (node->accept (&pb_visitor) == -1) @@ -326,7 +324,6 @@ be_visitor_component_ch::visit_component (be_component *node) if (be_global->tc_support ()) { - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); be_visitor_typecode_decl td_visitor (&ctx); if (node->accept (&td_visitor) == -1) 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 aa9b24ce25c..7c8d52c4a9f 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp @@ -171,7 +171,6 @@ be_visitor_component_cs::visit_component (be_component *node) } ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS); be_visitor_interface_remote_proxy_broker_cs irpb_visitor (&ctx); if (node->accept (&irpb_visitor) == -1) @@ -419,7 +418,6 @@ be_visitor_component_cs::visit_component (be_component *node) if (be_global->tc_support ()) { - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); ctx.sub_state (TAO_CodeGen::TAO_TC_DEFN_TYPECODE); be_visitor_typecode_defn tc_visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_ih.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_ih.cpp index 53eb109f002..9b710986475 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component_ih.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component_ih.cpp @@ -37,7 +37,6 @@ int be_visitor_component_ih::visit_component (be_component *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_IH); be_visitor_interface_ih visitor (&ctx); return visitor.visit_interface (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_is.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_is.cpp index f19947c965f..5acd37d6a98 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component_is.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component_is.cpp @@ -38,7 +38,6 @@ int be_visitor_component_is::visit_component (be_component *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_IS); be_visitor_interface_is visitor (&ctx); return visitor.visit_interface (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_sh.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_sh.cpp index 8dc85a2fdf2..107adfc34af 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component_sh.cpp @@ -256,7 +256,6 @@ be_visitor_component_sh::visit_component (be_component *node) { ctx = *this->ctx_; // Generate strategized proxy broker. - ctx.state (TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH); be_visitor_interface_strategized_proxy_broker_sh ispb_visitor (&ctx); if (node->accept (&ispb_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_si.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_si.cpp index 2aed521e7ff..1e54cc1218e 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component_si.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component_si.cpp @@ -39,7 +39,6 @@ int be_visitor_component_si::visit_component (be_component *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_SI); be_visitor_interface_si visitor (&ctx); return visitor.visit_interface (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_ss.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_ss.cpp index 371b3d00eda..e318af98c75 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component_ss.cpp @@ -39,7 +39,6 @@ int be_visitor_component_ss::visit_component (be_component *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_SS); be_visitor_interface_ss visitor (&ctx); return visitor.visit_interface (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component_fwd/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_component_fwd/any_op_ch.cpp index 6265ec59819..bfa9474be87 100644 --- a/TAO/TAO_IDL/be/be_visitor_component_fwd/any_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component_fwd/any_op_ch.cpp @@ -44,7 +44,6 @@ be_visitor_component_fwd_any_op_ch::visit_component_fwd ( ) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_ANY_OP_CH); be_visitor_interface_fwd_any_op_ch visitor (&ctx); return visitor.visit_interface_fwd (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component_fwd/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_component_fwd/cdr_op_ch.cpp index dbaf7ae2962..b532b2f8248 100644 --- a/TAO/TAO_IDL/be/be_visitor_component_fwd/cdr_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component_fwd/cdr_op_ch.cpp @@ -43,7 +43,6 @@ int be_visitor_component_fwd_cdr_op_ch::visit_component_fwd (be_component_fwd *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CDR_OP_CH); be_visitor_interface_fwd_cdr_op_ch visitor (&ctx); return visitor.visit_interface_fwd (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component_fwd/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_component_fwd/cdr_op_ci.cpp index a8881b73401..1c09a569583 100644 --- a/TAO/TAO_IDL/be/be_visitor_component_fwd/cdr_op_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component_fwd/cdr_op_ci.cpp @@ -47,7 +47,6 @@ be_visitor_component_fwd_cdr_op_ci::visit_component_fwd ( ) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CDR_OP_CI); be_visitor_interface_fwd_cdr_op_ci visitor (&ctx); return visitor.visit_interface_fwd (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_component_fwd/component_fwd_ch.cpp b/TAO/TAO_IDL/be/be_visitor_component_fwd/component_fwd_ch.cpp index 74a63aee491..8e3336853b4 100644 --- a/TAO/TAO_IDL/be/be_visitor_component_fwd/component_fwd_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component_fwd/component_fwd_ch.cpp @@ -43,7 +43,6 @@ int be_visitor_component_fwd_ch::visit_component_fwd (be_component_fwd *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CH); be_visitor_interface_fwd_ch visitor (&ctx); return visitor.visit_interface_fwd (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_context.cpp b/TAO/TAO_IDL/be/be_visitor_context.cpp index c119f139be2..14ff798d34c 100644 --- a/TAO/TAO_IDL/be/be_visitor_context.cpp +++ b/TAO/TAO_IDL/be/be_visitor_context.cpp @@ -48,7 +48,7 @@ ACE_RCSID (be, // constructor be_visitor_context::be_visitor_context (void) - : state_ (TAO_CodeGen::TAO_UNKNOWN), + : state_ (TAO_CodeGen::TAO_INITIAL), sub_state_ (TAO_CodeGen::TAO_SUB_STATE_UNKNOWN), os_ (0), scope_ (0), diff --git a/TAO/TAO_IDL/be/be_visitor_decl.cpp b/TAO/TAO_IDL/be/be_visitor_decl.cpp index edcdd67a50b..b1bd38ca965 100644 --- a/TAO/TAO_IDL/be/be_visitor_decl.cpp +++ b/TAO/TAO_IDL/be/be_visitor_decl.cpp @@ -60,25 +60,25 @@ be_visitor_decl::gen_anonymous_base_type (be_type *bt, switch (cg_state) { - case TAO_CodeGen::TAO_SEQUENCE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_sequence_ch visitor (&ctx); status = bt->accept (&visitor); break; } - case TAO_CodeGen::TAO_SEQUENCE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { be_visitor_sequence_ci visitor (&ctx); status = bt->accept (&visitor); break; } - case TAO_CodeGen::TAO_SEQUENCE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_sequence_cs visitor (&ctx); status = bt->accept (&visitor); break; } - case TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { be_visitor_sequence_cdr_op_cs visitor (&ctx); status = bt->accept (&visitor); diff --git a/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp index 30707375545..87048b92cb1 100644 --- a/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp @@ -53,46 +53,44 @@ be_visitor_enum_any_op_cs::visit_enum (be_enum *node) // Generate the Any <<= and >>= operator declarations // Any <<= and >>= operators. - *os << "void operator<<= (CORBA::Any &_tao_any, " - << node->name () << " _tao_elem)" << be_nl + *os << "void operator<<= (" << be_idt << be_idt_nl + << "CORBA::Any &_tao_any," << be_nl + << node->name () << " _tao_elem" << be_uidt_nl + << ")" << be_uidt_nl << "{" << be_idt_nl - << "TAO_OutputCDR stream;" << be_nl - << "stream << _tao_elem;" << be_nl - << "_tao_any._tao_replace (" << be_idt << be_idt_nl + << "TAO::Any_Basic_Impl_T<" << node->name () << ">::insert (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl << node->tc_name () << "," << be_nl - << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()" << be_uidt_nl + << "_tao_elem" << be_uidt_nl << ");" << be_uidt << be_uidt_nl - << "}\n" << be_nl; + << "}" << be_nl << be_nl; - *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, " - << node->name () << " &_tao_elem)" << be_nl + *os << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl + << "const CORBA::Any &_tao_any," << be_nl + << node->name () << " &_tao_elem" << be_uidt_nl + << ")" << be_uidt_nl << "{" << be_idt_nl - << "ACE_TRY_NEW_ENV" << be_nl - << "{" << be_idt_nl - << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << be_nl - << "CORBA::Boolean _tao_result = type->equivalent (" << node->tc_name () - << " ACE_ENV_ARG_PARAMETER);" << be_nl - << "ACE_TRY_CHECK;" << be_nl << be_nl - << "if (!_tao_result)" << be_idt_nl - << "return 0; // not equivalent" << be_uidt_nl << be_nl - << "TAO_InputCDR stream (" << be_idt << be_idt_nl - << "_tao_any._tao_get_cdr ()," << be_nl - << "_tao_any._tao_byte_order ()" << be_uidt_nl - << ");" << be_uidt_nl - << "if (stream >> _tao_elem)" << be_nl - << "{" << be_idt_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "}" << be_nl - << "ACE_CATCHANY" << be_nl - << "{" << be_idt_nl - << "return 0;" << be_uidt_nl - << "}" << be_nl - << "ACE_ENDTRY;" << be_nl - << "return 0;" << be_uidt_nl + << "return" << be_idt_nl + << "TAO::Any_Basic_Impl_T<" << node->name () << ">::extract (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem " << be_uidt_nl + << ");" << be_uidt << be_uidt << be_uidt_nl << "}"; + *os << be_nl << be_nl + << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\" + << be_idt_nl + << " defined (ACE_HAS_GNU_REPO)" << be_nl + << "template class TAO::Any_Basic_Impl_T<" << node->name () << ">;" + << be_uidt_nl + << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl + << "# pragma instantiate TAO::Any_Basic_Impl_T<" << node->name () + << ">" << be_nl + << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */"; + node->cli_stub_any_op_gen (1); return 0; } diff --git a/TAO/TAO_IDL/be/be_visitor_enum/enum_ch.cpp b/TAO/TAO_IDL/be/be_visitor_enum/enum_ch.cpp index d7384b3666c..0ed02f95883 100644 --- a/TAO/TAO_IDL/be/be_visitor_enum/enum_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_enum/enum_ch.cpp @@ -79,7 +79,6 @@ be_visitor_enum_ch::visit_enum (be_enum *node) if (be_global->tc_support ()) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); be_visitor_typecode_decl visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp b/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp index 7d38eb9501e..292e45147ed 100644 --- a/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp @@ -53,7 +53,6 @@ be_visitor_enum_cs::visit_enum (be_enum *node) if (be_global->tc_support ()) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); ctx.sub_state (TAO_CodeGen::TAO_TC_DEFN_TYPECODE); be_visitor_typecode_defn visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/any_op_ch.cpp index ee9ad8114ea..23bf3f3950d 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/any_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/any_op_ch.cpp @@ -41,7 +41,6 @@ int be_visitor_eventtype_any_op_ch::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH); be_visitor_valuetype_any_op_ch visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/any_op_cs.cpp index afd3ee3f1fb..80474142c50 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/any_op_cs.cpp @@ -41,7 +41,6 @@ int be_visitor_eventtype_any_op_cs::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS); be_visitor_valuetype_any_op_cs visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_ch.cpp index 37cfe88d0db..b04d9ed516e 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_ch.cpp @@ -41,7 +41,6 @@ int be_visitor_eventtype_cdr_op_ch::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH); be_visitor_valuetype_cdr_op_ch visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_ci.cpp index e74a25cbaa6..760703bb154 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_ci.cpp @@ -41,7 +41,6 @@ int be_visitor_eventtype_cdr_op_ci::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI); be_visitor_valuetype_cdr_op_ci visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_cs.cpp index 57d12119f84..3c6456643f4 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/cdr_op_cs.cpp @@ -41,7 +41,6 @@ int be_visitor_eventtype_cdr_op_cs::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS); be_visitor_valuetype_cdr_op_cs visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ch.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ch.cpp index 4744504c2c7..87514072e0d 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ch.cpp @@ -63,7 +63,6 @@ be_visitor_eventtype_ch::visit_eventtype (be_eventtype *node) os->gen_endif (); be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CH); be_visitor_valuetype_ch visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ci.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ci.cpp index 26b703e8156..8f877b580cb 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ci.cpp @@ -39,7 +39,6 @@ int be_visitor_eventtype_ci::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CI); be_visitor_valuetype_ci visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_cs.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_cs.cpp index 8a81117e1a7..4dd1b75cb3a 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_cs.cpp @@ -39,7 +39,6 @@ int be_visitor_eventtype_cs::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CS); be_visitor_valuetype_cs visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_ch.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_ch.cpp index 99d5fd7e3fa..f0164d197ec 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_ch.cpp @@ -46,7 +46,6 @@ int be_visitor_eventtype_obv_ch::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_OBV_CH); be_visitor_valuetype_obv_ch visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_ci.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_ci.cpp index a875f18c37c..17a50567d75 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_ci.cpp @@ -46,7 +46,6 @@ int be_visitor_eventtype_obv_ci::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_OBV_CI); be_visitor_valuetype_obv_ci visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_cs.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_cs.cpp index f64338ed528..01b917396d4 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_obv_cs.cpp @@ -46,7 +46,6 @@ int be_visitor_eventtype_obv_cs::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_OBV_CS); be_visitor_valuetype_obv_cs visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_sh.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_sh.cpp index 2897e28c9e1..4bb72071b58 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_sh.cpp @@ -39,7 +39,6 @@ int be_visitor_eventtype_sh::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_SH); be_visitor_valuetype_sh visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_si.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_si.cpp index a3f1041ea89..76112de4454 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_si.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_si.cpp @@ -39,7 +39,6 @@ int be_visitor_eventtype_si::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_SI); be_visitor_valuetype_si visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ss.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ss.cpp index 689ec9a3627..ed8433bd9a0 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype/eventtype_ss.cpp @@ -39,7 +39,6 @@ int be_visitor_eventtype_ss::visit_eventtype (be_eventtype *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_SS); be_visitor_valuetype_ss visitor (&ctx); return visitor.visit_valuetype (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/any_op_ch.cpp index 1c59727c4c8..86116afede8 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/any_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/any_op_ch.cpp @@ -38,7 +38,6 @@ int be_visitor_eventtype_fwd_any_op_ch::visit_eventtype_fwd (be_eventtype_fwd *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_ANY_OP_CH); be_visitor_valuetype_fwd_any_op_ch visitor (&ctx); return visitor.visit_valuetype_fwd (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/cdr_op_ch.cpp index 9bc1231c8f4..15858b3e88e 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/cdr_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/cdr_op_ch.cpp @@ -38,7 +38,6 @@ int be_visitor_eventtype_fwd_cdr_op_ch::visit_eventtype_fwd (be_eventtype_fwd *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_CDR_OP_CH); be_visitor_valuetype_fwd_cdr_op_ch visitor (&ctx); return visitor.visit_valuetype_fwd (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/cdr_op_ci.cpp index 303c88f4bcd..bfe9a36517a 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/cdr_op_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/cdr_op_ci.cpp @@ -38,7 +38,6 @@ int be_visitor_eventtype_fwd_cdr_op_ci::visit_eventtype_fwd (be_eventtype_fwd *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_CDR_OP_CI); be_visitor_valuetype_fwd_cdr_op_ci visitor (&ctx); return visitor.visit_valuetype_fwd (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/eventtype_fwd_ch.cpp b/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/eventtype_fwd_ch.cpp index 41a304a1e8c..c2f2954be89 100644 --- a/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/eventtype_fwd_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_eventtype_fwd/eventtype_fwd_ch.cpp @@ -37,7 +37,6 @@ int be_visitor_eventtype_fwd_ch::visit_eventtype_fwd (be_eventtype_fwd *node) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_CH); be_visitor_valuetype_fwd_ch visitor (&ctx); return visitor.visit_valuetype_fwd (node); } diff --git a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp index 1e5bf51f400..d82db0ff67a 100644 --- a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp @@ -60,105 +60,44 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node) << "CORBA::Any &_tao_any," << be_nl << "const " << node->name () << " &_tao_elem" << be_uidt_nl << ")" << be_uidt_nl - << "{" << be_idt_nl; - - if (!node->is_local ()) - { - *os << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << _tao_elem)" << be_idt_nl - << "{" << be_idt_nl; - } - else - { - *os << node->name () << " *_tao_elem_copy = 0;" << be_nl - << "ACE_NEW (" << be_idt << be_idt_nl - << "_tao_elem_copy," << be_nl - << node->name () << " (_tao_elem)" << be_uidt_nl - << ");" << be_uidt_nl << be_nl; - } - - *os << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl; - - if (!node->is_local ()) - { - *os << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()" << be_uidt_nl; - } - else - { - *os << "1," << be_nl - << "_tao_elem_copy," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl; - } - - *os << ");" << be_uidt; - - if (node->is_local ()) - { - *os << be_nl << be_nl << "_tao_any.contains_local (1);"; - } - else - { - *os << be_uidt_nl - << "}" << be_uidt; - } - - *os << be_uidt_nl << "}\n" << be_nl; + << "{" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::insert_copy (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; - // Non-copying insertion operator. + // Non-copying insertion operator." *os << "// Non-copying insertion." << be_nl << "void operator<<= (" << be_idt << be_idt_nl << "CORBA::Any &_tao_any," << be_nl << node->name () << " *_tao_elem" << be_uidt_nl << ")" << be_uidt_nl - << "{" << be_idt_nl; - - if (!node->is_local ()) - { - *os << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << *_tao_elem)" << be_idt_nl - << "{" << be_idt_nl; - } - - *os << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl; - - if (!node->is_local ()) - { - *os << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()," << be_nl; - } - - *os << "1," << be_nl - << "_tao_elem," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt; - - if (node->is_local ()) - { - *os << be_nl << be_nl << "_tao_any.contains_local (1);"; - } - else - { - *os << be_uidt_nl - << "}" << be_uidt; - } - - *os << be_uidt_nl << "}\n" << be_nl; + << "{" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::insert (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; // Extraction to non-const pointer operator. *os << "// Extraction to non-const pointer (deprecated)." << be_nl << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl - << "const CORBA::Any &_tao_any," + << "const CORBA::Any &_tao_any," << be_nl << node->name () << " *&_tao_elem" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl - << "return _tao_any >>= ACE_const_cast(" << be_idt << be_idt_nl - << "const " << node->name () << "*&," << be_nl + << "return _tao_any >>= ACE_const_cast (" << be_idt << be_idt_nl + << "const " << node->name () << " *&," << be_nl << "_tao_elem" << be_uidt_nl << ");" << be_uidt << be_uidt_nl - << "}\n\n"; + << "}" << be_nl << be_nl; // Extraction to const pointer operator. *os << "// Extraction to const pointer." << be_nl @@ -167,84 +106,27 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node) << "const " << node->name () << " *&_tao_elem" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl - << "_tao_elem = 0;" << be_nl - << "ACE_TRY_NEW_ENV" << be_nl - << "{" << be_idt_nl - << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << be_nl - << "CORBA::Boolean _tao_result =" << be_idt_nl - << "type->equivalent (" << be_idt << be_idt_nl - << node->tc_name () << be_nl - << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "ACE_TRY_CHECK;" << be_nl << be_nl - << "if (_tao_result == 0)" << be_idt_nl - << "{" << be_idt_nl - << "return 0; // not equivalent" << be_uidt_nl - << "}" << be_uidt_nl << be_nl; - - if (!node->is_local ()) - { - *os << "if (_tao_any.any_owns_data ())" << be_idt_nl - << "{" << be_idt_nl; - } - - *os << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl; - - if (!node->is_local ()) - { - *os << "}" << be_uidt_nl - << "else" << be_idt_nl // else any does not own the data - << "{" << be_idt_nl - << node->name () << " *tmp = 0;" << be_nl - << "ACE_NEW_RETURN (" << be_idt << be_idt_nl - << "tmp," << be_nl - << node->name () << "," << be_nl - << "0" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "TAO_InputCDR stream (" << be_idt << be_idt_nl - << "_tao_any._tao_get_cdr ()," << be_nl - << "_tao_any._tao_byte_order ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "CORBA::String_var interface_repository_id;" << be_nl << be_nl - << "if (!(stream >> interface_repository_id.out ()))" << be_idt_nl - << "{" << be_idt_nl - << "return 0;" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "if (ACE_OS::strcmp (" << be_idt << be_idt << be_idt << be_idt_nl - << "interface_repository_id.in ()," << be_nl - << "\"" << node->repoID () << "\")" << be_uidt_nl - << ")" << be_uidt << be_uidt_nl - << "{" << be_idt_nl - << "return 0;" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "if (stream >> *tmp)" << be_idt_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->_tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "1," << be_nl - << "tmp," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "_tao_elem = tmp;" << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "else" << be_idt_nl - << "{" << be_idt_nl - << "delete tmp;" << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl; - } - - *os << "}" << be_nl - << "ACE_CATCHANY" << be_nl - << "{" << be_nl - << "}" << be_nl - << "ACE_ENDTRY;" << be_nl << be_nl - << "return 0;" << be_uidt_nl + << "return" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::extract (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt << be_uidt_nl << "}"; + *os << be_nl << be_nl + << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\" + << be_idt_nl + << " defined (ACE_HAS_GNU_REPO)" << be_nl + << "template class TAO::Any_Dual_Impl_T<" << node->name () << ">;" + << be_uidt_nl + << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl + << "# pragma instantiate TAO::Any_Dual_Impl_T<" << node->name () + << ">" << be_nl + << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */"; + // all we have to do is to visit the scope and generate code if (this->visit_scope (node) == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp index ec5ee86e862..1a6d07bcb27 100644 --- a/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp @@ -43,14 +43,48 @@ be_visitor_exception_cdr_op_ci::visit_exception (be_exception *node) { // already generated and/or we are imported. Don't do anything. if (node->cli_inline_cdr_op_gen () - || node->imported () - || node->is_local ()) + || node->imported ()) { return 0; } TAO_OutStream *os = this->ctx_->stream (); + // Since we don't generate CDR stream operators for types that + // explicitly contain a local interface (at some level), we + // must override these Any template class methods to avoid + // calling the non-existent operators. The zero return value + // will eventually cause CORBA::MARSHAL to be raised if this + // type is inserted into an Any and then marshaled. + if (node->is_local ()) + { + if (be_global->any_support ()) + { + *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl + << "// " << __FILE__ << ":" << __LINE__; + + *os << be_nl << be_nl + << "ACE_INLINE" << be_nl + << "CORBA::Boolean" << be_nl + << "TAO::Any_Dual_Impl_T<" << node->name () + << ">::marshal_value (TAO_OutputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; + + *os << be_nl << be_nl + << "ACE_INLINE" << be_nl + << "CORBA::Boolean" << be_nl + << "TAO::Any_Dual_Impl_T<" << node->name () + << ">::demarshal_value (TAO_InputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; + } + + return 0; + } + // First generate code for our children. The reason we do this first is // because the inlined code for our children must be available before we use // it in our parent. diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception.cpp index 47d295c7a0f..31a58092136 100644 --- a/TAO/TAO_IDL/be/be_visitor_exception/exception.cpp +++ b/TAO/TAO_IDL/be/be_visitor_exception/exception.cpp @@ -55,44 +55,39 @@ be_visitor_exception::visit_field (be_field *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_EXCEPTION_CH: + case TAO_CodeGen::TAO_ROOT_CH: + case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_FIELD_CH); be_visitor_field_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_EXCEPTION_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_FIELD_CI); be_visitor_field_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_EXCEPTION_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_FIELD_CS); be_visitor_field_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_FIELD_CDR_OP_CH); be_visitor_field_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_FIELD_CDR_OP_CI); be_visitor_field_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_FIELD_CDR_OP_CS); be_visitor_field_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp index 460f96a72fb..00312fe9793 100644 --- a/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp @@ -135,7 +135,6 @@ int be_visitor_exception_ch::visit_exception (be_exception *node) if (be_global->tc_support ()) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); be_visitor_typecode_decl visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp index e095d67a2cc..6f5f1302214 100644 --- a/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp @@ -88,7 +88,6 @@ int be_visitor_exception_cs::visit_exception (be_exception *node) *os << "{"; be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CTOR_ASSIGN_CS); if (node->nmembers () > 0) { @@ -120,7 +119,6 @@ int be_visitor_exception_cs::visit_exception (be_exception *node) // Assign each individual member. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CTOR_ASSIGN_CS); be_visitor_exception_ctor_assign visitor (&ctx); if (node->accept (&visitor) == -1) @@ -305,7 +303,6 @@ int be_visitor_exception_cs::visit_exception (be_exception *node) // Assign each individual member. We need yet another state. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CTOR_ASSIGN_CS); // Indicate that the special ctor is being generated. ctx.exception (1); @@ -337,7 +334,6 @@ int be_visitor_exception_cs::visit_exception (be_exception *node) if (be_global->tc_support ()) { ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); ctx.sub_state (TAO_CodeGen::TAO_TC_DEFN_TYPECODE); be_visitor_typecode_defn visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ch.cpp index 39808029877..05f0fb84746 100644 --- a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ch.cpp @@ -93,7 +93,6 @@ be_visitor_field_cdr_op_ch::visit_array (be_array *node) ctx.node (node); // First generate the array declaration. - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CH); be_visitor_array_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -122,7 +121,6 @@ be_visitor_field_cdr_op_ch::visit_enum (be_enum *node) ctx.node (node); // First generate the enum declaration. - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CH); be_visitor_enum_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -151,7 +149,6 @@ be_visitor_field_cdr_op_ch::visit_sequence (be_sequence *node) ctx.node (node); // First generate the sequence declaration. - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CH); be_visitor_sequence_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -182,7 +179,6 @@ be_visitor_field_cdr_op_ch::visit_structure (be_structure *node) // is still the same // first generate the struct declaration - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CH); be_visitor_structure_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -236,7 +232,6 @@ be_visitor_field_cdr_op_ch::visit_union (be_union *node) ctx.node (node); // First generate the enum declaration. - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CH); be_visitor_union_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) 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 eebc4b7fb86..f31eccdb8c3 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 @@ -174,7 +174,6 @@ be_visitor_field_cdr_op_ci::visit_array (be_array *node) ctx.node (node); // First generate the declaration. - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CI); be_visitor_array_cdr_op_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -245,7 +244,6 @@ be_visitor_field_cdr_op_ci::visit_enum (be_enum *node) ctx.node (node); // Generate the typcode for enums. - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CI); be_visitor_enum_cdr_op_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -263,7 +261,7 @@ be_visitor_field_cdr_op_ci::visit_enum (be_enum *node) // Visit interface type. int -be_visitor_field_cdr_op_ci::visit_interface (be_interface *) +be_visitor_field_cdr_op_ci::visit_interface (be_interface *node) { TAO_OutStream *os = this->ctx_->stream (); be_field *f = this->ctx_->be_node_as_field (); @@ -286,7 +284,16 @@ be_visitor_field_cdr_op_ci::visit_interface (be_interface *) break; case TAO_CodeGen::TAO_CDR_OUTPUT: - *os << "(strm << _tao_aggregate." << f->local_name () << ".in ())"; + if (node->is_defined ()) + { + *os << "_tao_aggregate." << f->local_name () + << ".in ()->marshal (strm)"; + } + else + { + *os << "tao_" << node->flat_name () << "_marshal (" + << "_tao_aggregate." << f->local_name () << ".in (), strm)"; + } break; case TAO_CodeGen::TAO_CDR_SCOPE: @@ -307,7 +314,7 @@ be_visitor_field_cdr_op_ci::visit_interface (be_interface *) // Visit interface forward type. int -be_visitor_field_cdr_op_ci::visit_interface_fwd (be_interface_fwd *) +be_visitor_field_cdr_op_ci::visit_interface_fwd (be_interface_fwd *node) { TAO_OutStream *os = this->ctx_->stream (); @@ -332,7 +339,16 @@ be_visitor_field_cdr_op_ci::visit_interface_fwd (be_interface_fwd *) break; case TAO_CodeGen::TAO_CDR_OUTPUT: - *os << "(strm << _tao_aggregate." << f->local_name () << ".in ())"; + if (node->is_defined ()) + { + *os << "_tao_aggregate." << f->local_name () + << ".in ()->marshal (strm)"; + } + else + { + *os << "tao_" << node->flat_name () << "_marshal (" + << "_tao_aggregate." << f->local_name () << ".in (), strm)"; + } break; case TAO_CodeGen::TAO_CDR_SCOPE: @@ -600,7 +616,6 @@ be_visitor_field_cdr_op_ci::visit_sequence (be_sequence *node) ctx.node (node); // Generate the inline code for structs. - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CI); be_visitor_sequence_cdr_op_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -717,7 +732,6 @@ be_visitor_field_cdr_op_ci::visit_structure (be_structure *node) ctx.node (node); // Generate the inline code for structs. - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CI); be_visitor_structure_cdr_op_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -813,7 +827,6 @@ be_visitor_field_cdr_op_ci::visit_union (be_union *node) ctx.node (node); // Generate the inline code for union. - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CI); be_visitor_union_cdr_op_ci visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp index e98986cb100..edb19440d67 100644 --- a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp @@ -79,7 +79,6 @@ be_visitor_field_cdr_op_cs::visit_array (be_array *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CS); be_visitor_array_cdr_op_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -109,7 +108,6 @@ be_visitor_field_cdr_op_cs::visit_sequence (be_sequence *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CS); be_visitor_sequence_cdr_op_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -133,7 +131,6 @@ be_visitor_field_cdr_op_cs::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CS); be_visitor_structure_cdr_op_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -176,7 +173,6 @@ be_visitor_field_cdr_op_cs::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CS); be_visitor_union_cdr_op_cs visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp b/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp index aa1409d3e8b..0b214f6e2b3 100644 --- a/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp @@ -115,6 +115,8 @@ be_visitor_field_ch::visit_array (be_array *node) -1); } + ctx.state (TAO_CodeGen::TAO_ROOT_CH); + // Having defined all array type and its supporting operations, now // generate the actual variable that is a field of the structure. *os << be_nl << be_nl << "_" << bt->local_name (); @@ -167,7 +169,6 @@ be_visitor_field_ch::visit_enum (be_enum *node) ctx.node (node); // First generate the enum declaration. - ctx.state (TAO_CodeGen::TAO_ENUM_CH); be_visitor_enum_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -423,7 +424,6 @@ be_visitor_field_ch::visit_sequence (be_sequence *node) ctx.node (node); // First generate the sequence declaration. - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CH); be_visitor_sequence_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -515,7 +515,6 @@ be_visitor_field_ch::visit_structure (be_structure *node) be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); be_visitor_structure_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -593,7 +592,6 @@ be_visitor_field_ch::visit_union (be_union *node) be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CH); be_visitor_union_ch visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_field/field_ci.cpp b/TAO/TAO_IDL/be/be_visitor_field/field_ci.cpp index 027f32549d7..299930be6c1 100644 --- a/TAO/TAO_IDL/be/be_visitor_field/field_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_field/field_ci.cpp @@ -76,7 +76,6 @@ be_visitor_field_ci::visit_array (be_array *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ARRAY_CI); be_visitor_array_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -100,7 +99,6 @@ be_visitor_field_ci::visit_sequence (be_sequence *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CI); be_visitor_sequence_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -124,7 +122,6 @@ be_visitor_field_ci::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); be_visitor_structure_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -167,7 +164,6 @@ be_visitor_field_ci::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CI); be_visitor_union_ci visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_field/field_cs.cpp b/TAO/TAO_IDL/be/be_visitor_field/field_cs.cpp index 9664770cbf9..ba5b6dc0d68 100644 --- a/TAO/TAO_IDL/be/be_visitor_field/field_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_field/field_cs.cpp @@ -78,7 +78,6 @@ be_visitor_field_cs::visit_array (be_array *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ARRAY_CS); be_visitor_array_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -102,7 +101,6 @@ be_visitor_field_cs::visit_enum (be_enum *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ENUM_CS); be_visitor_enum_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -126,7 +124,6 @@ be_visitor_field_cs::visit_sequence (be_sequence *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CS); be_visitor_sequence_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -150,7 +147,6 @@ be_visitor_field_cs::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); be_visitor_structure_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -193,7 +189,6 @@ be_visitor_field_cs::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CS); be_visitor_union_cs visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp index 68dd89993b2..986aff58225 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp @@ -51,153 +51,71 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; - if (node->is_local ()) + *os << "// Copying insertion." << be_nl + << "void" << be_nl + << "operator<<= (" << be_idt << be_idt_nl + << "CORBA::Any &_tao_any," << be_nl + << node->full_name () << "_ptr _tao_elem" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl + << node->full_name () << "_ptr _tao_objptr =" << be_idt_nl + << node->full_name () << "::_duplicate (_tao_elem);" << be_uidt_nl + << "_tao_any <<= &_tao_objptr;" << be_uidt_nl + << "}" << be_nl << be_nl; + + *os << "// Non-copying insertion." << be_nl + << "void" << be_nl + << "operator<<= (" << be_idt << be_idt_nl + << "CORBA::Any &_tao_any," << be_nl + << node->full_name () << "_ptr *_tao_elem" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl + << "TAO::Any_Impl_T<" << node->name () << ">::insert (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "*_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; + + *os << "CORBA::Boolean" << be_nl + << "operator>>= (" << be_idt << be_idt_nl + << "const CORBA::Any &_tao_any," << be_nl + << node->full_name () << "_ptr &_tao_elem" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl + << "return" << be_idt_nl + << "TAO::Any_Impl_T<" << node->name () << ">::extract (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; + + *os << "CORBA::Boolean" << be_nl + << "TAO::Any_Impl_T<" << node->name () << ">::to_object (" + << be_idt << be_idt_nl + << "CORBA::Object_ptr &_tao_elem" << be_uidt_nl + << ") const" << be_uidt_nl + << "{" << be_idt_nl + << "_tao_elem = CORBA::Object::_duplicate (this->value_);" << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl << be_nl; + + if (node->is_abstract () || node->has_mixed_parentage ()) { - *os << "// Copying version." << be_nl - << "void" << be_nl - << "operator<<= (" << be_idt << be_idt_nl - << "CORBA::Any &_tao_any," << be_nl - << node->full_name () << "_ptr _tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "1," << be_nl - << node->name () << "::_duplicate (_tao_elem)," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "_tao_any.contains_local (1);" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "// Non-copying version." << be_nl - << "void" << be_nl - << "operator<<= (" << be_idt << be_idt_nl - << "CORBA::Any &_tao_any," << be_nl - << node->full_name () << "_ptr *_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "1," << be_nl - << "*_tao_elem," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "_tao_any.contains_local (1);" << be_uidt_nl - << "}" << be_nl << be_nl; - *os << "CORBA::Boolean" << be_nl - << "operator>>= (" << be_idt << be_idt_nl - << "const CORBA::Any &_tao_any," << be_nl - << node->full_name () << "_ptr &_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "ACE_TRY_NEW_ENV" << be_nl + << "TAO::Any_Impl_T<" << node->name () << ">::to_abstract_base (" + << be_idt << be_idt_nl + << "CORBA::AbstractBase_ptr &_tao_elem" << be_uidt_nl + << ") const" << be_uidt_nl << "{" << be_idt_nl - << "_tao_elem = " << node->full_name () << "::_nil ();" << be_nl - << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << be_nl - << "CORBA::Boolean _tao_result =" << be_idt_nl - << "type->equivalent (" << be_idt << be_idt_nl - << node->tc_name () << be_nl - << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "ACE_TRY_CHECK;" << be_nl << be_nl - << "if (!_tao_result)" << be_idt_nl - << "{" << be_idt_nl - << "return 0; // not equivalent" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "_tao_elem =" << be_idt_nl - << "ACE_reinterpret_cast (" << be_idt << be_idt_nl - << node->name () << "_ptr," << be_nl - << "ACE_const_cast (void *, _tao_any.value ())" << be_uidt_nl - << ");" << be_uidt_nl << be_uidt_nl + << "_tao_elem = CORBA::AbstractBase::_duplicate (this->value_);" + << be_nl << "return 1;" << be_uidt_nl - << "}" << be_nl - << "ACE_CATCHANY" << be_nl - << "{" << be_nl - << "}" << be_nl - << "ACE_ENDTRY;" << be_nl << be_nl - << "_tao_elem = " << node->full_name () << "::_nil ();" << be_nl - << "return 0;" << be_uidt_nl - << "}" << be_nl << be_nl; - } - else - { - *os << "// Copying version." << be_nl - << "void" << be_nl - << "operator<<= (" << be_idt << be_idt_nl - << "CORBA::Any &_tao_any," << be_nl - << node->full_name () << "_ptr _tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << node->full_name () << "_ptr _tao_objptr =" << be_idt_nl - << node->full_name () << "::_duplicate (_tao_elem);" << be_uidt_nl - << "_tao_any <<= &_tao_objptr;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "// Non-copying version." << be_nl - << "void" << be_nl - << "operator<<= (" << be_idt << be_idt_nl - << "CORBA::Any &_tao_any," << be_nl - << node->full_name () << "_ptr *_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << *_tao_elem)" << be_idt_nl - << "{" << be_idt_nl - << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << ", " << be_nl - << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()," << be_nl - << "1," << be_nl - << "*_tao_elem," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "CORBA::Boolean" << be_nl - << "operator>>= (" << be_idt << be_idt_nl - << "const CORBA::Any &_tao_any," << be_nl - << node->full_name () << "_ptr &_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "ACE_TRY_NEW_ENV" << be_nl - << "{" << be_idt_nl - << "_tao_elem = " << node->full_name () << "::_nil ();" << be_nl - << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << be_nl - << "CORBA::Boolean _tao_result =" << be_idt_nl - << "type->equivalent (" << be_idt << be_idt_nl - << node->tc_name () << be_nl - << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "ACE_TRY_CHECK;" << be_nl << be_nl - << "if (!_tao_result)" << be_idt_nl - << "{" << be_idt_nl - << "return 0; // not equivalent" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "TAO_InputCDR stream (" << be_idt << be_idt_nl - << "_tao_any._tao_get_cdr ()," << be_nl - << "_tao_any._tao_byte_order ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "if (stream >> _tao_elem)" << be_idt_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->_tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "1," << be_nl - << "_tao_elem," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_nl - << "ACE_CATCHANY" << be_nl - << "{" << be_idt_nl - << "_tao_elem = " << node->full_name () << "::_nil ();" << be_nl - << "return 0;" << be_uidt_nl - << "}" << be_nl - << "ACE_ENDTRY;" << be_nl << be_nl - << "_tao_elem = " << node->full_name () << "::_nil ();" << be_nl - << "return 0;" << be_uidt_nl << "}" << be_nl << be_nl; } @@ -215,7 +133,9 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) } *os << node->full_name () << "," - << node->full_name () << "_var>;" << be_uidt_nl + << node->full_name () << "_var>;" << be_nl + << "template class TAO::Any_Impl_T<" << node->name () << ">;" + << be_uidt_nl << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl; if (node->is_abstract ()) @@ -227,8 +147,10 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) *os << "# pragma instantiate TAO_Object_Manager<"; } - *os << node->full_name () << "," - << node->full_name () << "_var>" << be_uidt_nl + *os << node->full_name () << ", " + << node->full_name () << "_var>" << be_nl + << "# pragma instantiate TAO::Any_Impl_T<" << node->name () << ">" + << be_uidt_nl << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */"; // All we have to do is to visit the scope and generate code. diff --git a/TAO/TAO_IDL/be/be_visitor_interface/base_proxy_impl_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/base_proxy_impl_ch.cpp index 24dcb753fff..22dea90b18a 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/base_proxy_impl_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/base_proxy_impl_ch.cpp @@ -169,7 +169,6 @@ be_visitor_interface_base_proxy_impl_ch::gen_abstract_ops_helper ( new_op.set_defined_in (node); be_visitor_interface::add_abstract_op_args (op, new_op); - ctx.state (TAO_CodeGen::TAO_OPERATION_BASE_PROXY_IMPL_CH); be_visitor_operation_base_proxy_impl_ch op_visitor (&ctx); op_visitor.visit_operation (&new_op); } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_ci.cpp index e354790ea44..73b2c05373d 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_ci.cpp @@ -84,7 +84,7 @@ be_visitor_interface_cdr_op_ci::visit_interface (be_interface *node) << be_idt << be_idt_nl << "TAO_InputCDR &," << be_nl << node->full_name () << "_ptr &" << be_uidt_nl - << ");" << be_uidt;; + << ");" << be_uidt; node->cli_inline_cdr_decl_gen (1); } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp index 7316f099677..8403f373f84 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp @@ -39,14 +39,47 @@ be_visitor_interface_cdr_op_cs::visit_interface (be_interface *node) // No CDR operations for local interfaces. // already generated and/or we are imported. Don't do anything. if (node->cli_stub_cdr_op_gen () - || node->imported () - || node->is_local ()) + || node->imported ()) { return 0; } + TAO_OutStream *os = this->ctx_->stream (); + + // Since we don't generate CDR stream operators for types that + // explicitly contain a local interface (at some level), we + // must override these Any template class methods to avoid + // calling the non-existent operators. The zero return value + // will eventually cause CORBA::MARSHAL to be raised if this + // type is inserted into an Any and then marshaled. + if (node->is_local ()) + { + if (be_global->any_support ()) + { + *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl + << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; + + *os << "CORBA::Boolean" << be_nl + << "TAO::Any_Impl_T<" << node->name () + << ">::marshal_value (TAO_OutputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; + + *os << be_nl << be_nl + << "CORBA::Boolean" << be_nl + << "TAO::Any_Impl_T<" << node->name () + << ">::demarshal_value (TAO_InputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; + } + + return 0; + } + // Set the substate as generating code for the types defined in our scope. - this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_SCOPE); + this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_SCOPE); // Visit the scope and generate code. if (this->visit_scope (node) == -1) @@ -57,13 +90,11 @@ be_visitor_interface_cdr_op_cs::visit_interface (be_interface *node) "codegen for scope failed\n"), -1); } - TAO_OutStream *os = this->ctx_->stream (); - *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; // Set the sub state as generating code for the output operator. - this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_OUTPUT); + this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_OUTPUT); *os << "CORBA::Boolean operator<< (" << be_idt << be_idt_nl << "TAO_OutputCDR &strm," << be_nl @@ -89,7 +120,7 @@ be_visitor_interface_cdr_op_cs::visit_interface (be_interface *node) << "}" << be_nl << be_nl; // Set the substate as generating code for the input operator. - this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_INPUT); + this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_INPUT); *os << "CORBA::Boolean operator>> (" << be_idt << be_idt_nl << "TAO_InputCDR &strm," << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp index 383146411ab..6ea03336c42 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp @@ -134,7 +134,6 @@ be_visitor_interface_direct_proxy_impl_sh::gen_abstract_ops_helper ( new_op.set_defined_in (node); be_visitor_interface::add_abstract_op_args (op, new_op); - ctx.state (TAO_CodeGen::TAO_OPERATION_PROXY_IMPL_XH); be_visitor_operation_proxy_impl_xh op_visitor (&ctx); op_visitor.visit_operation (&new_op); } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp index 4a8985f03e1..0756a75d572 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp @@ -110,7 +110,6 @@ be_visitor_interface_direct_proxy_impl_ss::gen_abstract_ops_helper ( be_visitor_interface::add_abstract_op_args (op, new_op); new_op.set_name (base); - ctx.state (TAO_CodeGen::TAO_OPERATION_DIRECT_PROXY_IMPL_SS); be_visitor_operation_direct_proxy_impl_ss op_visitor (&ctx); op_visitor.visit_operation (&new_op); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interceptors_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interceptors_cs.cpp index 9e3c33b8f36..3bea06a436c 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interceptors_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interceptors_cs.cpp @@ -132,7 +132,6 @@ be_visitor_interface_interceptors_cs::gen_abstract_ops_helper ( be_visitor_interface::add_abstract_op_args (op, new_op); new_op.set_name (base); - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_CS); be_visitor_operation_interceptors_cs op_visitor (&ctx); op_visitor.visit_operation (&new_op); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interceptors_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interceptors_ss.cpp index 97c6d6073bc..0a590a2f5ff 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interceptors_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interceptors_ss.cpp @@ -134,7 +134,6 @@ be_visitor_interface_interceptors_ss::gen_abstract_ops_helper ( be_visitor_interface::add_abstract_op_args (op, new_op); new_op.set_name (base); - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_SS); be_visitor_operation_interceptors_ss op_visitor (&ctx); op_visitor.visit_operation (&new_op); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp index 163d47d9693..6a960c8373b 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp @@ -83,7 +83,7 @@ be_visitor_interface::visit_scope (be_scope *node) helper = be_visitor_interface_remote_proxy_impl_ch::gen_abstract_ops_helper; break; - case TAO_CodeGen::TAO_INTERFACE_CS: + case TAO_CodeGen::TAO_ROOT_CS: helper = be_visitor_interface_cs::gen_abstract_ops_helper; break; @@ -95,7 +95,7 @@ be_visitor_interface::visit_scope (be_scope *node) helper = be_visitor_interface_interceptors_cs::gen_abstract_ops_helper; break; - case TAO_CodeGen::TAO_INTERFACE_SH: + case TAO_CodeGen::TAO_ROOT_SH: helper = be_visitor_interface_sh::gen_abstract_ops_helper; break; @@ -107,7 +107,7 @@ be_visitor_interface::visit_scope (be_scope *node) helper = be_visitor_interface_direct_proxy_impl_sh::gen_abstract_ops_helper; break; - case TAO_CodeGen::TAO_INTERFACE_SS: + case TAO_CodeGen::TAO_ROOT_SS: helper = be_visitor_interface_ss::gen_abstract_ops_helper; break; @@ -193,106 +193,6 @@ be_visitor_interface::visit_attribute (be_attribute *node) be_visitor_context ctx (*this->ctx_); ctx.node (node); - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_INTERFACE_CH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_CS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_SH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_SH); - break; - case TAO_CodeGen::TAO_INTERFACE_IH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_IH); - break; - case TAO_CodeGen::TAO_INTERFACE_SS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_SS); - break; - case TAO_CodeGen::TAO_INTERFACE_IS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_IS); - break; - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_SMART_PROXY_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_SMART_PROXY_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_INTERCEPTORS_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_INTERCEPTORS_SH); - break; - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_INTERCEPTORS_SS); - break; - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_TIE_SH); - break; - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_TIE_SI); - break; - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_BASE_PROXY_IMPL_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_PROXY_IMPL_XH); - break; - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_REMOTE_PROXY_IMPL_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_THRU_POA_PROXY_IMPL_SS); - break; - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_DIRECT_PROXY_IMPL_SS); - break; - - // AMH stuff - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_SH); - break; - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_SS); - break; - - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SS: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_CI: - case TAO_CodeGen::TAO_INTERFACE_SI: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_attribute - " - "Bad context state\n: "), - -1); - } - } - // Same visitor for all the above cases where an action is taken. be_visitor_attribute visitor (&ctx); @@ -321,69 +221,18 @@ be_visitor_interface::visit_constant (be_constant *node) { case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_CONSTANT_CH); be_visitor_constant_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_CONSTANT_CS); be_visitor_constant_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: - case TAO_CodeGen::TAO_INTERFACE_CI: - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_IH: - case TAO_CodeGen::TAO_INTERFACE_IS: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SH: - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_constant - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -411,96 +260,42 @@ be_visitor_interface::visit_enum (be_enum *node) { case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_CH); be_visitor_enum_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_ENUM_CS); be_visitor_enum_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CH); be_visitor_enum_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CS); be_visitor_enum_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CH); be_visitor_enum_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CI); be_visitor_enum_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_CI: - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_IH: - case TAO_CodeGen::TAO_INTERFACE_IS: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: - - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SH: - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_enum - " - "Bad context state\n" - ), -1); - } + return 0; // nothing to be done } if (status == -1) @@ -529,107 +324,54 @@ be_visitor_interface::visit_exception (be_exception *node) { case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CH); be_visitor_exception_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CI); be_visitor_exception_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CS); be_visitor_exception_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CH); be_visitor_exception_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CS); be_visitor_exception_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CH); be_visitor_exception_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CI); be_visitor_exception_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CS); be_visitor_exception_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_IH: - case TAO_CodeGen::TAO_INTERFACE_IS: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: - - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SH: - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_exception - " - "Bad context state\n" - ), -1); - } + return 0; // nothing to be done } if (status == -1) @@ -661,89 +403,77 @@ be_visitor_interface::visit_operation (be_operation *node) case TAO_CodeGen::TAO_INTERFACE_CH: ctx.state (TAO_CodeGen::TAO_OPERATION_CH); break; - case TAO_CodeGen::TAO_INTERFACE_CS: + case TAO_CodeGen::TAO_ROOT_CS: ctx.state (TAO_CodeGen::TAO_OPERATION_CS); break; - case TAO_CodeGen::TAO_INTERFACE_SH: + case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SH); be_visitor_operation_sh visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_IH: + case TAO_CodeGen::TAO_ROOT_IH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_IH); be_visitor_operation_ih visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_SS: + case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SS); be_visitor_operation_ss visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_IS: + case TAO_CodeGen::TAO_ROOT_IS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_IS); be_visitor_operation_is visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: + case TAO_CodeGen::TAO_ROOT_TIE_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_TIE_SH); be_visitor_operation_tie_sh visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: + case TAO_CodeGen::TAO_ROOT_TIE_SI: { - ctx.state (TAO_CodeGen::TAO_OPERATION_TIE_SI); be_visitor_operation_tie_si visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SMART_PROXY_CH); be_visitor_operation_smart_proxy_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_SMART_PROXY_CS); be_visitor_operation_smart_proxy_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_CS); be_visitor_operation_interceptors_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_SH); be_visitor_operation_interceptors_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_SS); be_visitor_operation_interceptors_ss visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_BASE_PROXY_IMPL_CH); be_visitor_operation_base_proxy_impl_ch visitor (&ctx); status = node->accept (&visitor); break; @@ -752,53 +482,47 @@ be_visitor_interface::visit_operation (be_operation *node) case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_PROXY_IMPL_XH); be_visitor_operation_proxy_impl_xh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SH: { - ctx.state (TAO_CodeGen::TAO_OPERATION_AMH_RH_SH); be_visitor_amh_rh_operation_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_AMH_RH_SS); be_visitor_amh_rh_operation_ss visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_REMOTE_PROXY_IMPL_CS); be_visitor_operation_remote_proxy_impl_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_THRU_POA_PROXY_IMPL_SS); be_visitor_operation_thru_poa_proxy_impl_ss visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: { - ctx.state (TAO_CodeGen::TAO_OPERATION_DIRECT_PROXY_IMPL_SS); be_visitor_operation_direct_proxy_impl_ss visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_CI: - case TAO_CodeGen::TAO_INTERFACE_SI: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CI: + case TAO_CodeGen::TAO_ROOT_SI: return 0; // nothing to be done default: { @@ -900,107 +624,54 @@ be_visitor_interface::visit_structure (be_structure *node) { case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); be_visitor_structure_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); be_visitor_structure_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); be_visitor_structure_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CH); be_visitor_structure_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CS); be_visitor_structure_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CH); be_visitor_structure_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CI); be_visitor_structure_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CS); be_visitor_structure_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_IH: - case TAO_CodeGen::TAO_INTERFACE_IS: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: - - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SH: - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_structure - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1028,65 +699,12 @@ be_visitor_interface::visit_structure_fwd (be_structure_fwd *node) { case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_FWD_CH); be_visitor_structure_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CI: - case TAO_CodeGen::TAO_INTERFACE_CS: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_IH: - case TAO_CodeGen::TAO_INTERFACE_IS: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: - - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SH: - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_structure_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1114,107 +732,54 @@ be_visitor_interface::visit_union (be_union *node) { case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_CH); be_visitor_union_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_CI); be_visitor_union_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_CS); be_visitor_union_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CH); be_visitor_union_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CS); be_visitor_union_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CH); be_visitor_union_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CI); be_visitor_union_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CS); be_visitor_union_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_IH: - case TAO_CodeGen::TAO_INTERFACE_IS: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: - - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SH: - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_union - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1242,65 +807,12 @@ be_visitor_interface::visit_union_fwd (be_union_fwd *node) { case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_FWD_CH); be_visitor_union_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CI: - case TAO_CodeGen::TAO_INTERFACE_CS: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI: - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_IH: - case TAO_CodeGen::TAO_INTERFACE_IS: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: - - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SH: - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_union_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1328,107 +840,54 @@ be_visitor_interface::visit_typedef (be_typedef *node) { case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CH); be_visitor_typedef_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CI); be_visitor_typedef_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CS); be_visitor_typedef_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH); be_visitor_typedef_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS); be_visitor_typedef_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CH); be_visitor_typedef_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CI); be_visitor_typedef_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CS); be_visitor_typedef_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_IH: - case TAO_CodeGen::TAO_INTERFACE_IS: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH: - case TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH: - case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH: - case TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CS: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SH: - case TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_SS: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH: - case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SS: - - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SH: - case TAO_CodeGen::TAO_INTERFACE_AMH_RH_SS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_typedef - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp index 508694c1998..e7efafda2f3 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp @@ -295,6 +295,9 @@ be_visitor_interface_ch::visit_interface (be_interface *node) // The _interface_repository_id method. *os << "virtual const char* _interface_repository_id (void) const;"; + // The virtual marshal method, to prevent marshal of local iterfaces. + *os << be_nl << "virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);"; + if (node->is_abstract ()) { *os << be_nl << be_nl @@ -415,7 +418,6 @@ be_visitor_interface_ch::visit_interface (be_interface *node) // Proxy Implementation Declaration. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_INTERFACE_PROXY_IMPLS_CH); be_visitor_interface_proxy_impls_ch spi_visitor (&ctx); if (node->accept (&spi_visitor) == -1) @@ -429,7 +431,6 @@ be_visitor_interface_ch::visit_interface (be_interface *node) // Proxy Broker Declaration. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_INTERFACE_PROXY_BROKERS_CH); be_visitor_interface_proxy_brokers_ch pb_visitor (&ctx); if (node->accept (&pb_visitor) == -1) @@ -446,7 +447,6 @@ be_visitor_interface_ch::visit_interface (be_interface *node) if (be_global->tc_support ()) { - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); be_visitor_typecode_decl td_visitor (&ctx); if (node->accept (&td_visitor) == -1) 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 c28edd70da9..f1111577b77 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp @@ -154,6 +154,16 @@ 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) { @@ -208,7 +218,6 @@ be_visitor_interface_cs::visit_interface (be_interface *node) } ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CS); be_visitor_interface_remote_proxy_broker_cs irpb_visitor (&ctx); if (node->accept (&irpb_visitor) == -1) @@ -618,6 +627,24 @@ be_visitor_interface_cs::visit_interface (be_interface *node) << "\";" << be_uidt_nl << "}"; + *os << be_nl << be_nl + << "CORBA::Boolean" << be_nl; + + if (node->is_local ()) + { + *os << node->name () << "::marshal (TAO_OutputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; + } + else + { + *os << node->name () << "::marshal (TAO_OutputCDR &cdr)" << be_nl + << "{" << be_idt_nl + << "return (cdr << this);" << be_uidt_nl + << "}"; + } + // Generate code for the elements of the interface. if (this->visit_scope (node) == -1) { @@ -651,7 +678,6 @@ be_visitor_interface_cs::visit_interface (be_interface *node) if (be_global->tc_support ()) { - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); ctx.sub_state (TAO_CodeGen::TAO_TC_DEFN_TYPECODE); be_visitor_typecode_defn tc_visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ih.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ih.cpp index 04edda2e441..20a97609974 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ih.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ih.cpp @@ -150,7 +150,6 @@ be_visitor_interface_ih::method_helper (be_interface *derived, if (strcmp (derived->flat_name (), node->flat_name ()) != 0) { be_visitor_context ctx; - ctx.state (TAO_CodeGen::TAO_INTERFACE_IH); ctx.interface (derived); ctx.stream (os); be_visitor_interface_ih visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_is.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_is.cpp index 7699b813f07..66f34051c95 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_is.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_is.cpp @@ -149,7 +149,6 @@ be_visitor_interface_is::method_helper (be_interface *derived, if (ACE_OS::strcmp (derived->flat_name (), node->flat_name ()) != 0) { be_visitor_context ctx; - ctx.state (TAO_CodeGen::TAO_INTERFACE_IS); ctx.interface (derived); ctx.stream (os); be_visitor_interface_is visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp index 5c1392eb3d8..c903f0ef6e9 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp @@ -256,7 +256,6 @@ be_visitor_interface_sh::visit_interface (be_interface *node) { ctx = *this->ctx_; // Generate strategized proxy broker. - ctx.state (TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SH); be_visitor_interface_strategized_proxy_broker_sh ispb_visitor (&ctx); if (node->accept (&ispb_visitor) == -1) @@ -360,7 +359,6 @@ be_visitor_interface_sh::gen_abstract_ops_helper ( new_op.set_defined_in (node); be_visitor_interface::add_abstract_op_args (op, new_op); - ctx.state (TAO_CodeGen::TAO_OPERATION_SH); be_visitor_operation_sh op_visitor (&ctx); op_visitor.visit_operation (&new_op); } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp index ecc0f5e998e..92fca27179a 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp @@ -80,7 +80,7 @@ be_visitor_interface_si::visit_interface (be_interface *node) { // Generate the TIE class. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_TIE_SI); + ctx.state (TAO_CodeGen::TAO_ROOT_TIE_SI); ctx.stream (tao_cg->server_template_inline ()); be_visitor_interface_tie_si visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp index 3f11c294b27..fb6ed3ae50d 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp @@ -456,7 +456,6 @@ be_visitor_interface_ss::gen_abstract_ops_helper (be_interface *node, be_visitor_interface::add_abstract_op_args (op, new_op); new_op.set_name (base); - ctx.state (TAO_CodeGen::TAO_OPERATION_SS); be_visitor_operation_ss op_visitor (&ctx); op_visitor.visit_operation (&new_op); @@ -582,7 +581,6 @@ be_visitor_interface_ss::generate_proxy_classes (be_interface *node) || be_global->gen_direct_collocation ()) { ctx = (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_STRATEGIZED_PROXY_BROKER_SS); be_visitor_interface_strategized_proxy_broker_ss ispb_visitor (&ctx); if (node->accept (&ispb_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_interface/proxy_brokers_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/proxy_brokers_ch.cpp index 05fbdcdfbb4..8b4a8415806 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/proxy_brokers_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/proxy_brokers_ch.cpp @@ -37,7 +37,6 @@ be_visitor_interface_proxy_brokers_ch::visit_interface (be_interface *node) // Code Generation for the proxy brokers base class. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_BROKER_CH); be_visitor_interface_base_proxy_broker_ch bpb_visitor (&ctx); if (node->accept (&bpb_visitor) == -1) @@ -50,7 +49,6 @@ be_visitor_interface_proxy_brokers_ch::visit_interface (be_interface *node) } ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_BROKER_CH); be_visitor_interface_remote_proxy_broker_ch rpb_visitor (&ctx); if (node->accept (&rpb_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_impl_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_impl_ch.cpp index 492664ab7b8..6c83426fdee 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_impl_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_impl_ch.cpp @@ -152,7 +152,6 @@ be_visitor_interface_remote_proxy_impl_ch::gen_abstract_ops_helper ( new_op.set_defined_in (node); be_visitor_interface::add_abstract_op_args (op, new_op); - ctx.state (TAO_CodeGen::TAO_OPERATION_PROXY_IMPL_XH); be_visitor_operation_proxy_impl_xh op_visitor (&ctx); op_visitor.visit_operation (&new_op); } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_impl_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_impl_cs.cpp index d0fc791e803..60b78e71365 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_impl_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_impl_cs.cpp @@ -125,7 +125,6 @@ be_visitor_interface_remote_proxy_impl_cs::gen_abstract_ops_helper ( be_visitor_interface::add_abstract_op_args (op, new_op); new_op.set_name (base); - ctx.state (TAO_CodeGen::TAO_OPERATION_REMOTE_PROXY_IMPL_CS); be_visitor_operation_remote_proxy_impl_cs op_visitor (&ctx); op_visitor.visit_operation (&new_op); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_sh.cpp index 9e32c2c826b..3e3441b252c 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_sh.cpp @@ -156,7 +156,6 @@ be_visitor_interface_thru_poa_proxy_impl_sh::gen_abstract_ops_helper ( new_op.set_defined_in (node); be_visitor_interface::add_abstract_op_args (op, new_op); - ctx.state (TAO_CodeGen::TAO_OPERATION_PROXY_IMPL_XH); be_visitor_operation_proxy_impl_xh op_visitor (&ctx); op_visitor.visit_operation (&new_op); } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_ss.cpp index e228dc61a5c..a9ab00f56be 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_ss.cpp @@ -114,7 +114,6 @@ be_visitor_interface_thru_poa_proxy_impl_ss::gen_abstract_ops_helper ( be_visitor_interface::add_abstract_op_args (op, new_op); new_op.set_name (base); - ctx.state (TAO_CodeGen::TAO_OPERATION_THRU_POA_PROXY_IMPL_SS); be_visitor_operation_thru_poa_proxy_impl_ss op_visitor (&ctx); op_visitor.visit_operation (&new_op); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp index 0afb0659eab..37f1edcab84 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp @@ -170,7 +170,7 @@ be_visitor_interface_tie_sh::method_helper (be_interface *, } be_visitor_context ctx; - ctx.state (TAO_CodeGen::TAO_INTERFACE_TIE_SH); + ctx.state (TAO_CodeGen::TAO_ROOT_TIE_SH); ctx.stream (os); be_visitor_interface_tie_sh visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp b/TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp index d38b20d2726..e110498bd7c 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp @@ -239,7 +239,7 @@ be_visitor_interface_tie_si::method_helper (be_interface *derived, } be_visitor_context ctx; - ctx.state (TAO_CodeGen::TAO_INTERFACE_TIE_SI); + ctx.state (TAO_CodeGen::TAO_ROOT_TIE_SI); ctx.interface (derived); ctx.stream (os); be_visitor_interface_tie_si visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_module/module.cpp b/TAO/TAO_IDL/be/be_visitor_module/module.cpp index 9411cf4a63c..52aa51b095f 100644 --- a/TAO/TAO_IDL/be/be_visitor_module/module.cpp +++ b/TAO/TAO_IDL/be/be_visitor_module/module.cpp @@ -68,40 +68,20 @@ be_visitor_module::visit_constant (be_constant *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_CONSTANT_CH); be_visitor_constant_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_CONSTANT_CS); be_visitor_constant_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_constant - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -127,64 +107,44 @@ be_visitor_module::visit_enum (be_enum *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_CH); be_visitor_enum_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_ENUM_CS); be_visitor_enum_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CH); be_visitor_enum_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CS); be_visitor_enum_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CH); be_visitor_enum_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CI); be_visitor_enum_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_enum - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -210,76 +170,56 @@ be_visitor_module::visit_exception (be_exception *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CH); be_visitor_exception_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CI); be_visitor_exception_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CS); be_visitor_exception_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CH); be_visitor_exception_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CS); be_visitor_exception_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CH); be_visitor_exception_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CI); be_visitor_exception_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CS); be_visitor_exception_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_exception - " - "Bad context state\n" - ), -1); - } + return 0; // nothing to be done } if (status == -1) @@ -303,90 +243,78 @@ be_visitor_module::visit_interface (be_interface *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: // This is the only context state involved in strategies. ctx.state (TAO_CodeGen::TAO_INTERFACE_CH); break; - case TAO_CodeGen::TAO_MODULE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_CI); be_visitor_interface_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_CS); be_visitor_interface_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SH: + case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_SH); be_visitor_interface_sh visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_IH: + case TAO_CodeGen::TAO_ROOT_IH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_IH); be_visitor_interface_ih visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SI: + case TAO_CodeGen::TAO_ROOT_SI: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_SI); be_visitor_interface_si visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SS: + case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_SS); be_visitor_interface_ss visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_IS: + case TAO_CodeGen::TAO_ROOT_IS: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_IS); be_visitor_interface_is visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH); be_visitor_interface_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS); be_visitor_interface_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH); be_visitor_interface_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI); be_visitor_interface_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS); be_visitor_interface_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; @@ -472,6 +400,7 @@ be_visitor_module::visit_interface (be_interface *node) visitor = 0; } + ctx.state (TAO_CodeGen::TAO_ROOT_CH); return 0; } @@ -486,52 +415,32 @@ be_visitor_module::visit_interface_fwd (be_interface_fwd *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CH); be_visitor_interface_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CDR_OP_CI); be_visitor_interface_fwd_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_ANY_OP_CH); be_visitor_interface_fwd_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CDR_OP_CH); be_visitor_interface_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_CS: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_interface_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -557,94 +466,74 @@ be_visitor_module::visit_valuetype (be_valuetype *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CH); be_visitor_valuetype_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CI); be_visitor_valuetype_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CS); be_visitor_valuetype_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH); be_visitor_valuetype_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI); be_visitor_valuetype_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS); be_visitor_valuetype_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH); be_visitor_valuetype_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS); be_visitor_valuetype_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SH: + case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_SH); be_visitor_valuetype_sh visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SI: + case TAO_CodeGen::TAO_ROOT_SI: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_SI); - be_visitor_valuetype_si visitor (&ctx); + be_visitor_valuetype_si visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SS: + case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_SS); be_visitor_valuetype_ss visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to do. default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_valuetype - " - "Bad context state\n"), - -1); - } + return 0; // nothing to do. } if (status == -1) @@ -670,52 +559,32 @@ be_visitor_module::visit_valuetype_fwd (be_valuetype_fwd *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_CH); be_visitor_valuetype_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_ANY_OP_CH); be_visitor_valuetype_fwd_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_CDR_OP_CH); be_visitor_valuetype_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_CDR_OP_CI); be_visitor_valuetype_fwd_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_CS: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_valuetype_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -741,94 +610,74 @@ be_visitor_module::visit_eventtype (be_eventtype *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CH); be_visitor_eventtype_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CI); be_visitor_eventtype_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CS); be_visitor_eventtype_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CDR_OP_CH); be_visitor_eventtype_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CDR_OP_CI); be_visitor_eventtype_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CDR_OP_CS); be_visitor_eventtype_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_ANY_OP_CH); be_visitor_eventtype_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_ANY_OP_CS); be_visitor_eventtype_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SH: + case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_SH); be_visitor_eventtype_sh visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SI: + case TAO_CodeGen::TAO_ROOT_SI: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_SI); be_visitor_eventtype_si visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SS: + case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_SS); be_visitor_eventtype_ss visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to do. default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_eventtype - " - "Bad context state\n"), - -1); - } + return 0; // nothing to do. } if (status == -1) @@ -854,52 +703,32 @@ be_visitor_module::visit_eventtype_fwd (be_eventtype_fwd *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_FWD_CH); be_visitor_eventtype_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_FWD_ANY_OP_CH); be_visitor_eventtype_fwd_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_FWD_CDR_OP_CH); be_visitor_eventtype_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_FWD_CDR_OP_CI); be_visitor_eventtype_fwd_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_CS: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_eventtype_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -925,93 +754,80 @@ be_visitor_module::visit_component (be_component *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CH); be_visitor_component_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CI); be_visitor_component_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CS); be_visitor_component_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CDR_OP_CH); be_visitor_component_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CDR_OP_CI); be_visitor_component_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CDR_OP_CS); be_visitor_component_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_ANY_OP_CH); be_visitor_component_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_ANY_OP_CS); be_visitor_component_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SH: + case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_SH); be_visitor_component_sh visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SI: + case TAO_CodeGen::TAO_ROOT_SI: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_SI); be_visitor_component_si visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SS: + case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_SS); be_visitor_component_ss visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_IH: + case TAO_CodeGen::TAO_ROOT_IH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_IH); be_visitor_component_ih visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_IS: + case TAO_CodeGen::TAO_ROOT_IS: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_IS); be_visitor_component_is visitor (&ctx); status = node->accept (&visitor); break; @@ -1049,46 +865,26 @@ be_visitor_module::visit_component_fwd (be_component_fwd *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_FWD_CH); be_visitor_component_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_FWD_CDR_OP_CH); be_visitor_component_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_FWD_CDR_OP_CI); be_visitor_component_fwd_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_CS: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_component_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1114,33 +910,14 @@ be_visitor_module::visit_home (be_home *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_home_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - case TAO_CodeGen::TAO_MODULE_CS: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_structure - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1166,76 +943,56 @@ be_visitor_module::visit_structure (be_structure *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); be_visitor_structure_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); be_visitor_structure_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); be_visitor_structure_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CH); be_visitor_structure_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CS); be_visitor_structure_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CH); be_visitor_structure_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CI); be_visitor_structure_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CS); be_visitor_structure_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_structure - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1261,34 +1018,14 @@ be_visitor_module::visit_structure_fwd (be_structure_fwd *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_FWD_CH); be_visitor_structure_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - case TAO_CodeGen::TAO_MODULE_CS: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_structure_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1314,76 +1051,56 @@ be_visitor_module::visit_union (be_union *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_CH); be_visitor_union_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_CI); be_visitor_union_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_CS); be_visitor_union_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CH); be_visitor_union_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CS); be_visitor_union_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CH); be_visitor_union_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CI); be_visitor_union_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CS); be_visitor_union_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_union - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1409,34 +1126,14 @@ be_visitor_module::visit_union_fwd (be_union_fwd *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_FWD_CH); be_visitor_union_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - case TAO_CodeGen::TAO_MODULE_CS: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_union_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1462,76 +1159,56 @@ be_visitor_module::visit_typedef (be_typedef *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_MODULE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CH); be_visitor_typedef_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CI); be_visitor_typedef_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CS); be_visitor_typedef_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH); be_visitor_typedef_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS); be_visitor_typedef_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CH); be_visitor_typedef_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CI); be_visitor_typedef_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CS); be_visitor_typedef_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - case TAO_CodeGen::TAO_MODULE_IH: - case TAO_CodeGen::TAO_MODULE_IS: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_typedef - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_sh.cpp index d4bc04e549e..2bdca1eeb58 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_sh.cpp @@ -89,7 +89,6 @@ be_visitor_amh_rh_operation_sh::visit_operation (be_operation *node) *os << node->local_name(); be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS); be_visitor_operation_arglist visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp index 7365c32eea2..2158f9fc565 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp @@ -88,7 +88,6 @@ be_visitor_amh_rh_operation_ss::visit_operation (be_operation *node) // Step 2 : Generate the params of the method be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS); // Set the substate because response handler operations without // parameters don't use the environment parameter in the body. diff --git a/TAO/TAO_IDL/be/be_visitor_operation/amh_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/amh_sh.cpp index 4697813c5de..ac6c8acf11c 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/amh_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/amh_sh.cpp @@ -54,8 +54,6 @@ be_visitor_amh_operation_sh::visit_operation (be_operation *node) this->generate_shared_prologue (node, os, ""); be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS); - be_visitor_args_arglist arglist_visitor (&ctx); arglist_visitor.set_fixed_direction (AST_Argument::dir_IN); ctx.scope (node); diff --git a/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp index eecf9442577..5cb1bc2aa14 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp @@ -113,7 +113,6 @@ be_visitor_operation_ami_cs::visit_operation (be_operation *node) // Generate the argument list with the appropriate mapping (same as // in the header file) ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS); be_visitor_operation_arglist oa_visitor (&ctx); if (node->arguments ()->accept (&oa_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp index f3f61b23101..af73c7e648c 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp @@ -243,7 +243,7 @@ be_visitor_operation_ami_handler_reply_stub_operation_cs::visit_operation ( *os << " ()" << be_uidt_nl << ");" << be_uidt_nl << be_nl; - *os << "Messaging::ExceptionHolder::_tao_seq_Octet " + *os << "CORBA::OctetSeq " << "_tao_marshaled_exception (" << be_idt << be_idt_nl << "cdr->length ()," << be_nl << "cdr->length ()," << be_nl @@ -344,7 +344,6 @@ be_visitor_operation_ami_handler_reply_stub_operation_cs::gen_pre_stub_info ( if (!this->ctx_->attribute ()) { be_visitor_context ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_EXCEPTLIST_CS); be_visitor_operation_exceptlist_cs visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp index e8156dd552f..b9644f1b5f1 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp @@ -172,31 +172,6 @@ be_visitor_operation_arglist::visit_argument (be_argument *node) // Set new scope. ctx.scope (intf); - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_OPERATION_ARGLIST_CH: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_ARGLIST_CH); - break; - case TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_SH: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_IH: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_IS: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XH: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XS: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_BASE_PROXY_IMPL_CH: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_COLLOCATED_SH: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_ARGLIST_OTHERS); - break; - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_arglist::" - "visit_argument - " - "Bad context\n"), - -1); - } - } - // Create a visitor. be_visitor_args_arglist visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp b/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp index b90d69e0231..bf614658014 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp @@ -162,42 +162,36 @@ be_visitor_operation_argument::visit_argument (be_argument *node) { case TAO_CodeGen::TAO_OPERATION_ARG_PRE_INVOKE_CS: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_PRE_INVOKE_CS); be_visitor_args_pre_invoke_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_OPERATION_ARG_INVOKE_CS: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_INVOKE_CS); be_visitor_args_invoke_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_OPERATION_ARG_POST_INVOKE_CS: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_POST_INVOKE_CS); be_visitor_args_post_invoke_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_OPERATION_ARG_DECL_SS: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_VARDECL_SS); be_visitor_args_vardecl_ss visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_OPERATION_ARG_DEMARSHAL_SS: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_DEMARSHAL_SS); be_visitor_args_marshal_ss visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_OPERATION_ARG_MARSHAL_SS: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_MARSHAL_SS); be_visitor_args_marshal_ss visitor (&ctx); status = node->accept (&visitor); break; @@ -211,7 +205,6 @@ be_visitor_operation_argument::visit_argument (be_argument *node) } case TAO_CodeGen::TAO_OPERATION_ARG_UPCALL_SS: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_UPCALL_SS); be_visitor_args_upcall_ss visitor (&ctx); status = node->accept (&visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_operation/base_proxy_impl_ch.cpp b/TAO/TAO_IDL/be/be_visitor_operation/base_proxy_impl_ch.cpp index 7a9777992de..04890bc1de8 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/base_proxy_impl_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/base_proxy_impl_ch.cpp @@ -38,7 +38,6 @@ int be_visitor_operation_base_proxy_impl_ch::visit_operation (be_operation *node } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp index 3906b4e89eb..62ba04ab3ec 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp @@ -52,7 +52,6 @@ be_visitor_operation_direct_proxy_impl_ss::visit_operation ( os->indent (); // STEP 2: generate the return type mapping (same as in the header file) be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_arglist.cpp b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_arglist.cpp index 2a6a379501f..2af9183d4b0 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_arglist.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_arglist.cpp @@ -215,14 +215,12 @@ be_visitor_operation_interceptors_arglist::visit_argument (be_argument *node) case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_SH: case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_SS: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_INTERCEPTORS_INFO_ARGLIST_CH); be_visitor_args_request_info_arglist visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CH: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_INTERCEPTORS_ARGLIST_CH); be_visitor_args_request_info_ch visitor (&ctx); status = node->accept (&visitor); break; @@ -243,14 +241,12 @@ be_visitor_operation_interceptors_arglist::visit_argument (be_argument *node) } case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_PARAMLIST: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_INTERCEPTORS_PARAMLIST); be_visitor_args_paramlist visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_SH: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_INTERCEPTORS_ARGLIST_SH); be_visitor_args_request_info_sh visitor (&ctx); status = node->accept (&visitor); break; @@ -264,7 +260,6 @@ be_visitor_operation_interceptors_arglist::visit_argument (be_argument *node) } case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_SS: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_UPCALL_SS); be_visitor_args_upcall_ss visitor (&ctx); status = node->accept (&visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_cs.cpp index 1c57bdb2439..2c8ba9fd294 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_cs.cpp @@ -228,7 +228,6 @@ be_visitor_operation_interceptors_cs::generate_class_declaration ( } ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_RETTYPE_CH); be_visitor_operation_interceptors_info_rettype oiir_visitor (&ctx); if (bt->accept (&oiir_visitor) == -1) @@ -342,7 +341,6 @@ be_visitor_operation_interceptors_cs::generate_class_declaration ( } ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_RETTYPE_CH); be_visitor_operation_interceptors_info_rettype toiir_visitor (&ctx); if (bt->accept (&toiir_visitor) == -1) @@ -781,7 +779,6 @@ be_visitor_operation_interceptors_cs::generate_class_definition ( // Generate the insertion of result into Any. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_RESULT); be_visitor_operation_interceptors_result oir_visitor (&ctx); if (bt->accept (&oir_visitor) == -1) @@ -870,7 +867,6 @@ be_visitor_operation_interceptors_cs::generate_class_definition ( << "result ("; ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_CH); be_visitor_operation_rettype or_visitor (&ctx); if (bt->accept (&or_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_ss.cpp index e6cee89736a..5603affab76 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_ss.cpp @@ -241,7 +241,6 @@ be_visitor_operation_interceptors_ss::generate_class_declaration ( *os << be_nl << "void result ("; ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_CH); be_visitor_operation_rettype or_visitor (&ctx); if (bt->accept (&or_visitor) == -1) @@ -402,7 +401,6 @@ be_visitor_operation_interceptors_ss::generate_class_declaration ( if (!this->void_return_type (bt)) { ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_SH); be_visitor_operation_rettype tor_visitor (&ctx); if (bt->accept (&tor_visitor) == -1) @@ -844,7 +842,6 @@ be_visitor_operation_interceptors_ss::generate_class_definition ( // Generate the insertion of result into Any. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_RESULT); be_visitor_operation_interceptors_result oir_visitor (&ctx); if (bt->accept (&oir_visitor) == -1) @@ -1028,7 +1025,6 @@ be_visitor_operation_interceptors_ss::generate_class_definition ( << "result ("; ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_CH); be_visitor_operation_rettype or_visitor (&ctx); if (bt->accept (&or_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp index c4feac200ef..995840b607f 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp @@ -235,13 +235,6 @@ be_visitor_operation::gen_environment_decl (int argument_emitted, // Last argument is always CORBA::Environment. *os << env_decl << "_WITH_DEFAULTS"; break; - case TAO_CodeGen::TAO_OPERATION_ARGLIST_IS: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_IH: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XH: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_BASE_PROXY_IMPL_CH: - // Last argument is always CORBA::Environment. - *os << env_decl; - break; default: *os << env_decl; break; @@ -308,8 +301,6 @@ be_visitor_operation::gen_raise_exception (be_type *return_type, // Non-void return type. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_RETURN_CS); - be_visitor_operation_rettype_return_cs visitor (&ctx); if (return_type->accept (&visitor) == -1) @@ -340,8 +331,6 @@ be_visitor_operation::gen_check_exception (be_type *return_type) // Non-void return type.... *os << "ACE_CHECK_RETURN ("; be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_RETURN_CS); - be_visitor_operation_rettype_return_cs visitor (&ctx); if (return_type->accept (&visitor) == -1) @@ -371,8 +360,6 @@ be_visitor_operation::gen_check_interceptor_exception (be_type *return_type) // Non-void return type. *os << "TAO_INTERCEPTOR_CHECK_RETURN ("; be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_RETURN_CS); - be_visitor_operation_rettype_return_cs visitor (&ctx); if (return_type->accept (&visitor) == -1) @@ -437,7 +424,6 @@ be_visitor_operation::gen_stub_operation_body ( // Declare return type. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_DECL_CS); be_visitor_operation_rettype_vardecl_cs rd_visitor (&ctx); if (return_type->accept (&rd_visitor) == -1) @@ -497,7 +483,6 @@ be_visitor_operation::gen_stub_operation_body ( // Do any pre marshal and invoke processing with return type. This // includes allocating memory, initialization. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_PRE_INVOKE_CS); be_visitor_operation_rettype_pre_invoke_cs rpi_visitor (&ctx); if (return_type->accept (&rpi_visitor) == -1) @@ -581,7 +566,6 @@ be_visitor_operation::gen_pre_stub_info ( ) { be_visitor_context ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_EXCEPTLIST_CS); be_visitor_operation_exceptlist_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -849,6 +833,7 @@ be_visitor_operation::gen_marshal_and_invoke ( *os << "TAO_OutputCDR::throw_stub_exception (errno " << "ACE_ENV_ARG_PARAMETER); " << be_nl; + if (this->gen_check_interceptor_exception (bt) == -1) { ACE_ERROR_RETURN ((LM_ERROR, @@ -1010,7 +995,6 @@ be_visitor_operation::gen_marshal_and_invoke ( { // Demarshal the return value. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_INVOKE_CS); ctx.sub_state (TAO_CodeGen::TAO_CDR_INPUT); be_visitor_operation_rettype_marshal_ss ori_visitor (&ctx); @@ -1098,7 +1082,6 @@ be_visitor_operation::gen_marshal_and_invoke ( // Generate the return type mapping (same as in the header file) ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_ch.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_ch.cpp index 6a4db01e572..dbc17505b5f 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ch.cpp @@ -62,7 +62,6 @@ be_visitor_operation_ch::visit_operation (be_operation *node) // Grab the right visitor to generate the return type. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_CH); be_visitor_operation_rettype or_visitor (&ctx); if (bt->accept (&or_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp index 40656926263..de19dd9e8d3 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp @@ -93,7 +93,6 @@ be_visitor_operation_cs::visit_operation (be_operation *node) // Generate the return type mapping (same as in the header file) be_visitor_context ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype rt_visitor = (&ctx); if (bt->accept (&rt_visitor) == -1) @@ -111,7 +110,6 @@ be_visitor_operation_cs::visit_operation (be_operation *node) // Generate the argument list with the appropriate mapping (same as // in the header file) ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS); be_visitor_operation_arglist al_visitor (&ctx); if (node->accept (&al_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp index 63145f078a4..5ba720bb3b4 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp @@ -56,7 +56,6 @@ be_visitor_operation_ih::visit_operation (be_operation *node) // grab the right visitor to generate the return type be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_is.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_is.cpp index 928cddddcc5..7cbb014e3db 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_is.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_is.cpp @@ -56,7 +56,6 @@ be_visitor_operation_is::visit_operation (be_operation *node) } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp index 677e7c3da98..1c4f7ff9280 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp @@ -59,7 +59,6 @@ be_visitor_operation_sh::visit_operation (be_operation *node) } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp index d17a0abd99c..a03d77e4b03 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp @@ -149,7 +149,6 @@ be_visitor_operation_ss::visit_operation (be_operation *node) // Declare a return type variable. be_visitor_context ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_DECL_SS); be_visitor_operation_rettype_vardecl_ss ord_visitor (&ctx); // Do we have any arguments in the operation that needs marshalling? @@ -297,7 +296,6 @@ be_visitor_operation_ss::visit_operation (be_operation *node) // Make the upcall and assign to the return val. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_ASSIGN_SS); be_visitor_operation_rettype_assign_ss ora_visitor (&ctx); if (bt->accept (&ora_visitor) == -1) @@ -379,7 +377,6 @@ be_visitor_operation_ss::visit_operation (be_operation *node) // causing any problems. // Generate the return type mapping (same as in the header file) ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) @@ -689,7 +686,6 @@ be_visitor_operation_ss::gen_marshal_params (be_operation *node, { // Demarshal the return val and each inout and out argument. ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_MARSHAL_SS); ctx.sub_state (TAO_CodeGen::TAO_CDR_OUTPUT); be_visitor_operation_rettype_marshal_ss orm_visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp index fd1dd846946..eeaf83dfeb1 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp @@ -38,7 +38,6 @@ int be_visitor_operation_proxy_impl_xh::visit_operation (be_operation *node) } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/remote_proxy_impl_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/remote_proxy_impl_cs.cpp index 2b1b6b6af4f..49834dd76e3 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/remote_proxy_impl_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/remote_proxy_impl_cs.cpp @@ -64,7 +64,6 @@ be_visitor_operation_remote_proxy_impl_cs::visit_operation ( // Generate the return type mapping (same as in the header file) be_visitor_context ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype ort_visitor (&ctx); if (bt->accept (&ort_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/smart_proxy_ch.cpp b/TAO/TAO_IDL/be/be_visitor_operation/smart_proxy_ch.cpp index 2dbf281187a..1e34b2b8db5 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/smart_proxy_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/smart_proxy_ch.cpp @@ -64,7 +64,6 @@ be_visitor_operation_smart_proxy_ch::visit_operation (be_operation *node) } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_CH); be_visitor_operation_rettype or_visitor (&ctx); if (bt->accept (&or_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/smart_proxy_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/smart_proxy_cs.cpp index e0740edbd2a..984a49b9da8 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/smart_proxy_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/smart_proxy_cs.cpp @@ -74,7 +74,6 @@ int be_visitor_operation_smart_proxy_cs::visit_operation (be_operation *node) // STEP 2: generate the return type mapping (same as in the header file). be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) @@ -106,7 +105,6 @@ int be_visitor_operation_smart_proxy_cs::visit_operation (be_operation *node) // STEP 4: generate the argument list with the appropriate mapping (same as // in the header file) ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS); be_visitor_operation_arglist oao_visitor (&ctx); if (node->accept (&oao_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp index d2c0e74a7ee..605aae6fe53 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp @@ -68,7 +68,6 @@ be_visitor_operation_thru_poa_proxy_impl_ss::visit_operation ( // STEP 2: generate the return type mapping (same as in the header file) be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) @@ -107,7 +106,6 @@ be_visitor_operation_thru_poa_proxy_impl_ss::visit_operation ( { // Declare a return type ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_DECL_SS); be_visitor_operation_rettype_vardecl_ss ord_visitor (&ctx); if (bt->accept (&ord_visitor) == -1) @@ -137,7 +135,8 @@ be_visitor_operation_thru_poa_proxy_impl_ss::visit_operation ( << ");" << be_uidt_nl << "CORBA::Object_var forward_to;" << be_nl << "servant_upcall.prepare_for_upcall (" << be_idt << be_idt_nl - << "_collocated_tao_target_->_object_key ()," << be_nl + << "_collocated_tao_target_->_stubobj ()->" + << "profile_in_use ()->object_key ()," << be_nl << "\""; // Check if we are an attribute node in disguise. diff --git a/TAO/TAO_IDL/be/be_visitor_operation/tie_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/tie_sh.cpp index f28dddd463d..a0fc6da455e 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/tie_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/tie_sh.cpp @@ -60,7 +60,6 @@ be_visitor_operation_tie_sh::visit_operation (be_operation *node) << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_operation/tie_si.cpp b/TAO/TAO_IDL/be/be_visitor_operation/tie_si.cpp index 4539860019e..8bfc9f75869 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/tie_si.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/tie_si.cpp @@ -71,7 +71,6 @@ int be_visitor_operation_tie_si::visit_operation (be_operation *node) // Generate the return type mapping (same as in the header file). be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); be_visitor_operation_rettype oro_visitor (&ctx); if (bt->accept (&oro_visitor) == -1) @@ -89,7 +88,6 @@ int be_visitor_operation_tie_si::visit_operation (be_operation *node) // STEP 4: generate the argument list with the appropriate mapping (same as // in the header file) ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS); be_visitor_operation_arglist oao_visitor (&ctx); if (node->accept (&oao_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_root/root.cpp b/TAO/TAO_IDL/be/be_visitor_root/root.cpp index 12b27736cce..994c6c42398 100644 --- a/TAO/TAO_IDL/be/be_visitor_root/root.cpp +++ b/TAO/TAO_IDL/be/be_visitor_root/root.cpp @@ -112,7 +112,7 @@ int be_visitor_root::visit_root (be_root *node) if (ifwd->is_valuetype ()) { *os << "// External declarations for undefined valuetype" - << be_nl + << be_nl << be_nl << "// " << ifwd->full_name () << be_nl; *os << be_global->stub_export_macro () << be_nl @@ -121,7 +121,7 @@ int be_visitor_root::visit_root (be_root *node) << "_add_ref (" << be_idt << be_idt_nl << ifwd->full_name () << " *" << be_uidt_nl - << ");" << be_uidt_nl + << ");" << be_uidt_nl << be_nl << be_global->stub_export_macro () << be_nl << "void" << be_nl << "tao_" << ifwd->flat_name () @@ -132,7 +132,7 @@ int be_visitor_root::visit_root (be_root *node) else { *os << "// External declarations for undefined interface" - << be_nl + << be_nl << be_nl << "// " << ifwd->full_name () << be_nl; *os << be_global->stub_export_macro () << be_nl @@ -141,31 +141,38 @@ int be_visitor_root::visit_root (be_root *node) << "_duplicate (" << be_idt << be_idt_nl << ifwd->full_name () << "_ptr" << be_uidt_nl - << ");" << 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_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_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_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; } } @@ -215,33 +222,22 @@ int be_visitor_root::visit_root (be_root *node) switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: - { - obv = 1; - ctx.state (TAO_CodeGen::TAO_MODULE_OBV_CH); - be_visitor_obv_module visitor (&ctx); - status = visitor.visit_scope (node); - break; - } + ctx.state (TAO_CodeGen::TAO_MODULE_OBV_CH); + break; case TAO_CodeGen::TAO_ROOT_CI: - { - obv = 1; - ctx.state (TAO_CodeGen::TAO_MODULE_OBV_CI); - be_visitor_obv_module visitor (&ctx); - status = visitor.visit_scope (node); - break; - } + ctx.state (TAO_CodeGen::TAO_MODULE_OBV_CI); + break; case TAO_CodeGen::TAO_ROOT_CS: - { - obv = 1; - ctx.state (TAO_CodeGen::TAO_MODULE_OBV_CS); - be_visitor_obv_module visitor (&ctx); - status = visitor.visit_scope (node); - break; - } + ctx.state (TAO_CodeGen::TAO_MODULE_OBV_CS); + break; default: break; } + obv = 1; + be_visitor_obv_module visitor (&ctx); + status = visitor.visit_scope (node); + if (obv == 1 && status == -1) { ACE_ERROR_RETURN ((LM_ERROR, @@ -423,39 +419,18 @@ be_visitor_root::visit_constant (be_constant *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_CONSTANT_CH); be_visitor_constant_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_CONSTANT_CS); be_visitor_constant_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_constant - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -483,63 +458,42 @@ be_visitor_root::visit_enum (be_enum *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_CH); be_visitor_enum_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_ENUM_CS); be_visitor_enum_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CH); be_visitor_enum_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CS); be_visitor_enum_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CH); be_visitor_enum_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CI); be_visitor_enum_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_enum - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -567,75 +521,54 @@ be_visitor_root::visit_exception (be_exception *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CH); be_visitor_exception_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CI); be_visitor_exception_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CS); be_visitor_exception_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CH); be_visitor_exception_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CS); be_visitor_exception_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CH); be_visitor_exception_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CI); be_visitor_exception_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CS); be_visitor_exception_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_exception - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -667,84 +600,72 @@ be_visitor_root::visit_interface (be_interface *node) break; case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_CI); be_visitor_interface_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_CS); be_visitor_interface_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_SH); be_visitor_interface_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_IH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_IH); be_visitor_interface_ih visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SI: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_SI); be_visitor_interface_si visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_SS); be_visitor_interface_ss visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_IS: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_IS); be_visitor_interface_is visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH); be_visitor_interface_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS); be_visitor_interface_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_CDR_OP_CH); be_visitor_interface_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_CDR_OP_CI); be_visitor_interface_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_CDR_OP_CS); be_visitor_interface_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; @@ -830,6 +751,7 @@ be_visitor_root::visit_interface (be_interface *node) visitor = 0; } + ctx.state (TAO_CodeGen::TAO_ROOT_CH); return 0; } @@ -846,51 +768,30 @@ be_visitor_root::visit_interface_fwd (be_interface_fwd *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CH); be_visitor_interface_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CDR_OP_CI); be_visitor_interface_fwd_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_ANY_OP_CH); be_visitor_interface_fwd_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CDR_OP_CH); be_visitor_interface_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_CS: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_interface_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -918,93 +819,72 @@ be_visitor_root::visit_valuetype (be_valuetype *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CH); be_visitor_valuetype_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CI); be_visitor_valuetype_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CS); be_visitor_valuetype_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH); be_visitor_valuetype_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI); be_visitor_valuetype_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS); be_visitor_valuetype_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH); be_visitor_valuetype_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS); be_visitor_valuetype_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_SH); be_visitor_valuetype_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SI: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_SI); be_visitor_valuetype_si visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_SS); be_visitor_valuetype_ss visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to do. default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_valuetype - " - "Bad context state\n"), - -1); - } + return 0; // nothing to do. } if (status == -1) @@ -1032,51 +912,30 @@ be_visitor_root::visit_valuetype_fwd (be_valuetype_fwd *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_CH); be_visitor_valuetype_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_ANY_OP_CH); be_visitor_valuetype_fwd_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_CDR_OP_CH); be_visitor_valuetype_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_VALUETYPE_FWD_CDR_OP_CI); be_visitor_valuetype_fwd_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_CS: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_valuetype_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1104,93 +963,72 @@ be_visitor_root::visit_eventtype (be_eventtype *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CH); be_visitor_eventtype_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CI); be_visitor_eventtype_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CS); be_visitor_eventtype_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CDR_OP_CH); be_visitor_eventtype_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CDR_OP_CI); be_visitor_eventtype_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_CDR_OP_CS); be_visitor_eventtype_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_ANY_OP_CH); be_visitor_eventtype_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_ANY_OP_CS); be_visitor_eventtype_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_SH); be_visitor_eventtype_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SI: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_SI); be_visitor_eventtype_si visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_SS); be_visitor_eventtype_ss visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to do. default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_eventtype - " - "Bad context state\n"), - -1); - } + return 0; // nothing to do. } if (status == -1) @@ -1218,51 +1056,30 @@ be_visitor_root::visit_eventtype_fwd (be_eventtype_fwd *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_FWD_CH); be_visitor_eventtype_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_FWD_ANY_OP_CH); be_visitor_eventtype_fwd_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_FWD_CDR_OP_CH); be_visitor_eventtype_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_FWD_CDR_OP_CI); be_visitor_eventtype_fwd_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_CS: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_eventtype_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1290,93 +1107,72 @@ be_visitor_root::visit_component (be_component *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CH); be_visitor_component_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CI); be_visitor_component_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CS); be_visitor_component_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CDR_OP_CH); be_visitor_component_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CDR_OP_CI); be_visitor_component_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_CDR_OP_CS); be_visitor_component_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_ANY_OP_CH); be_visitor_component_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_ANY_OP_CS); be_visitor_component_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_SH); be_visitor_component_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SI: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_SI); be_visitor_component_si visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SS: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_SS); be_visitor_component_ss visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to do. default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_component - " - "Bad context state\n"), - -1); - } + return 0; // nothing to do. } if (status == -1) @@ -1404,51 +1200,30 @@ be_visitor_root::visit_component_fwd (be_component_fwd *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_FWD_CH); be_visitor_component_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_FWD_CDR_OP_CI); be_visitor_component_fwd_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_FWD_ANY_OP_CH); be_visitor_component_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_COMPONENT_FWD_CDR_OP_CH); be_visitor_component_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_CS: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_component_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1480,28 +1255,8 @@ be_visitor_root::visit_home (be_home *node) status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - case TAO_CodeGen::TAO_ROOT_CS: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_home - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1529,91 +1284,53 @@ be_visitor_root::visit_module (be_module *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_MODULE_CH); be_visitor_module_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_MODULE_CI); be_visitor_module visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_MODULE_CS); be_visitor_module visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SH: { - ctx.state (TAO_CodeGen::TAO_MODULE_SH); be_visitor_module_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SI: - { - ctx.state (TAO_CodeGen::TAO_MODULE_SI); - be_visitor_module visitor (&ctx); - status = node->accept (&visitor); - break; - } case TAO_CodeGen::TAO_ROOT_SS: - { - ctx.state (TAO_CodeGen::TAO_MODULE_SS); - be_visitor_module visitor (&ctx); - status = node->accept (&visitor); - break; - } case TAO_CodeGen::TAO_ROOT_IS: { - ctx.state (TAO_CodeGen::TAO_MODULE_IS); be_visitor_module visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_IH: { - ctx.state (TAO_CodeGen::TAO_MODULE_IH); be_visitor_module_ih visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - { - ctx.state (TAO_CodeGen::TAO_MODULE_ANY_OP_CH); - be_visitor_module_any_op visitor (&ctx); - status = node->accept (&visitor); - break; - } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_MODULE_ANY_OP_CS); be_visitor_module_any_op visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: - { - ctx.state (TAO_CodeGen::TAO_MODULE_CDR_OP_CH); - be_visitor_module_cdr_op visitor (&ctx); - status = node->accept (&visitor); - break; - } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: - { - ctx.state (TAO_CodeGen::TAO_MODULE_CDR_OP_CI); - be_visitor_module_cdr_op visitor (&ctx); - status = node->accept (&visitor); - break; - } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_MODULE_CDR_OP_CS); be_visitor_module_cdr_op visitor (&ctx); status = node->accept (&visitor); break; @@ -1653,75 +1370,54 @@ be_visitor_root::visit_structure (be_structure *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); be_visitor_structure_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); be_visitor_structure_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); be_visitor_structure_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CH); be_visitor_structure_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CS); be_visitor_structure_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CH); be_visitor_structure_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CI); be_visitor_structure_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CS); be_visitor_structure_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_structure - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1749,33 +1445,12 @@ be_visitor_root::visit_structure_fwd (be_structure_fwd *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_FWD_CH); be_visitor_structure_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - case TAO_CodeGen::TAO_ROOT_CS: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_structure_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1803,75 +1478,54 @@ be_visitor_root::visit_union (be_union *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_CH); be_visitor_union_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_CI); be_visitor_union_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_CS); be_visitor_union_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CH); be_visitor_union_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CS); be_visitor_union_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CH); be_visitor_union_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CI); be_visitor_union_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CS); be_visitor_union_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_union - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1899,33 +1553,13 @@ be_visitor_root::visit_union_fwd (be_union_fwd *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_FWD_CH); be_visitor_union_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - case TAO_CodeGen::TAO_ROOT_CS: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_TIE_SH: return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_union_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -1953,75 +1587,54 @@ be_visitor_root::visit_typedef (be_typedef *node) { case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CH); be_visitor_typedef_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CI); be_visitor_typedef_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CS); be_visitor_typedef_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH); be_visitor_typedef_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS); be_visitor_typedef_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CH); be_visitor_typedef_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CI); be_visitor_typedef_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CS); be_visitor_typedef_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_IH: - case TAO_CodeGen::TAO_ROOT_TIE_SH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_typedef - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_sth.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_sth.cpp index 47e5848d8fe..adeb9b52f39 100644 --- a/TAO/TAO_IDL/be/be_visitor_root/root_sth.cpp +++ b/TAO/TAO_IDL/be/be_visitor_root/root_sth.cpp @@ -169,7 +169,7 @@ be_visitor_root_sth::visit_interface (be_interface *node) // Generate the TIE class. - this->ctx_->state (TAO_CodeGen::TAO_INTERFACE_TIE_SH); + this->ctx_->state (TAO_CodeGen::TAO_ROOT_TIE_SH); this->ctx_->node (node); be_visitor_interface_tie_sh visitor (this->ctx_); diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp index 1d0cc149954..cd511a70aef 100644 --- a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp @@ -53,214 +53,67 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node) << "// TAO_IDL - Generated from " << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; - if (node->is_local ()) - { - // Copying insertion. - *os << "// Copying insertion." << be_nl - << "void operator<<= (" << be_idt << be_idt_nl - << "CORBA::Any &_tao_any," << be_nl - << "const " << node->name () << " &_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << node->name () << " *_tao_elem_copy = 0;" << be_nl - << "ACE_NEW (" << be_idt << be_idt_nl - << "_tao_elem_copy," << be_nl - << node->name () << " (_tao_elem)" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "1," << be_nl - << "_tao_elem_copy," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "_tao_any.contains_local (1);" << be_uidt_nl - << "}\n" << be_nl; - - // Non-copying insertion. - *os << "// Non-copying insertion." << be_nl - << "void operator<<= (" << be_idt << be_idt_nl - << "CORBA::Any &_tao_any," << be_nl - << node->name () << " *_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "1," << be_nl - << "_tao_elem," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "_tao_any.contains_local (1);" << be_uidt_nl - << "}\n" << be_nl; - - // Extraction to non-const pointer (deprecated, just calls the other). - *os << "// Extraction to non-const pointer (deprecated)." << be_nl - << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl - << "const CORBA::Any &_tao_any," << be_nl - << node->name () << " *&_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "return _tao_any >>= ACE_const_cast(" << be_idt << be_idt_nl - << "const " << node->name () << "*&," << be_nl - << "_tao_elem" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "}\n\n"; - - // Extraction to const pointer. - *os << "// Extraction to const pointer." << be_nl - << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl - << "const CORBA::Any &_tao_any," << be_nl - << "const " << node->name () << " *&_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "_tao_elem = 0;" << be_nl << be_nl - << "ACE_TRY_NEW_ENV" << be_nl - << "{" << be_idt_nl - << "CORBA::TypeCode_var type = _tao_any.type ();" - << be_nl << be_nl - << "CORBA::Boolean _tao_result =" << be_idt_nl - << "type->equivalent (" << be_idt << be_idt_nl - << node->tc_name () << be_nl - << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "ACE_TRY_CHECK;" << be_nl << be_nl - << "if (!_tao_result)" << be_idt_nl - << "{" << be_idt_nl - << "return 0; // not equivalent" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "_tao_elem = ACE_static_cast(" << be_idt << be_idt_nl - << "const " << node->name () << "*," << be_nl - << "_tao_any.value ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_nl - << "ACE_CATCHANY" << be_nl - << "{" << be_nl - << "}" << be_nl - << "ACE_ENDTRY;" << be_nl << be_nl - << "return 0;" << be_uidt_nl - << "}\n\n"; - } - else - { - // Copying insertion. - *os << "// Copying insertion." << be_nl - << "void operator<<= (" << be_idt << be_idt_nl - << "CORBA::Any &_tao_any," << be_nl - << "const " << node->name () << " &_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << _tao_elem)" << be_idt_nl - << "{" << be_idt_nl - << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}\n" << be_nl; - - // Non-copying insertion. - *os << "// Non-copying insertion." << be_nl - << "void operator<<= (" << be_idt << be_idt_nl - << "CORBA::Any &_tao_any," << be_nl - << node->name () << " *_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << *_tao_elem)" << be_idt_nl - << "{" << be_idt_nl - << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()," << be_nl - << "1," << be_nl - << "_tao_elem," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}\n" << be_nl; - - // Extraction to non-const pointer (deprecated, just calls the other). - *os << "// Extraction to non-const pointer (deprecated)." << be_nl - << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl - << "const CORBA::Any &_tao_any," << be_nl - << node->name () << " *&_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "return _tao_any >>= ACE_const_cast(" << be_idt << be_idt_nl - << "const " << node->name () << "*&," << be_nl - << "_tao_elem" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "}\n\n"; - - // Extraction to const pointer. - *os << "// Extraction to const pointer." << be_nl - << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl - << "const CORBA::Any &_tao_any," << be_nl - << "const " << node->name () << " *&_tao_elem" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "_tao_elem = 0;" << be_nl << be_nl - << "ACE_TRY_NEW_ENV" << be_nl - << "{" << be_idt_nl - << "CORBA::TypeCode_var type = _tao_any.type ();" - << be_nl << be_nl - << "CORBA::Boolean _tao_result =" << be_idt_nl - << "type->equivalent (" << be_idt << be_idt_nl - << node->tc_name () << be_nl - << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "ACE_TRY_CHECK;" << be_nl << be_nl - << "if (!_tao_result)" << be_idt_nl - << "{" << be_idt_nl - << "return 0; // not equivalent" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "if (_tao_any.any_owns_data ())" << be_idt_nl - << "{" << be_idt_nl - << "_tao_elem = ACE_static_cast(" << be_idt << be_idt_nl - << "const " << node->name () << "*," << be_nl - << "_tao_any.value ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "else" << be_idt_nl - << "{" << be_idt_nl - << node->name () << " *tmp = 0;" << be_nl - << "ACE_NEW_RETURN (" << be_idt << be_idt_nl - << "tmp," << be_nl - << node->name () << "," << be_nl - << "0" << be_uidt_nl - <<");" << be_uidt_nl << be_nl - << "TAO_InputCDR stream (" << be_idt << be_idt_nl - << "_tao_any._tao_get_cdr ()," << be_nl - << "_tao_any._tao_byte_order ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "if (stream >> *tmp)" << be_idt_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->_tao_replace (" - << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "1," << be_nl - << "ACE_static_cast (void *, tmp)," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "_tao_elem = tmp;" << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "else" << be_idt_nl - << "{" << be_idt_nl - << "delete tmp;" << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_nl - << "ACE_CATCHANY" << be_nl - << "{" << be_nl - << "}" << be_nl - << "ACE_ENDTRY;" << be_nl << be_nl - << "return 0;" << be_uidt_nl - << "}"; - } + // Copying insertion. + *os << "// Copying insertion." << be_nl + << "void operator<<= (" << be_idt << be_idt_nl + << "CORBA::Any &_tao_any," << be_nl + << "const " << node->name () << " &_tao_elem" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::insert_copy (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; + + // Non-copying insertion. + *os << "// Non-copying insertion." << be_nl + << "void operator<<= (" << be_idt << be_idt_nl + << "CORBA::Any &_tao_any," << be_nl + << node->name () << " *_tao_elem" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::insert (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; + + // Extraction to non-const pointer (deprecated, just calls the other). + *os << "// Extraction to non-const pointer (deprecated)." << be_nl + << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl + << "const CORBA::Any &_tao_any," << be_nl + << node->name () << " *&_tao_elem" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl + << "return _tao_any >>= ACE_const_cast (" << be_idt << be_idt_nl + << "const " << node->name () << " *&," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; + + // Extraction to const pointer. + *os << "// Extraction to const pointer." << be_nl + << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl + << "const CORBA::Any &_tao_any," << be_nl + << "const " << node->name () << " *&_tao_elem" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl + << "return" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::extract (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt << be_uidt_nl + << "}"; node->cli_stub_any_op_gen (1); return 0; 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 e5f3a2f42ca..3aa7cf022ed 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 @@ -42,217 +42,237 @@ be_visitor_sequence_cdr_op_cs::~be_visitor_sequence_cdr_op_cs (void) int be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node) { - if (this->ctx_->alias ()) + if (node->cli_stub_cdr_op_gen () + || node->imported ()) { - // We are here because the base type of the sequence node is - // itself a sequence i.e., this is a case of sequence of - // typedef'd sequence. For the case of sequence of - // anonymous sequence, see comment below. - return this->visit_node (node); + return 0; } - else - { - if (node->cli_stub_cdr_op_gen () - || node->imported () - || node->is_local ()) - { - return 0; - } - - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt = - be_type::narrow_from_decl (node->base_type ()); + TAO_OutStream *os = this->ctx_->stream (); - if (!bt) + // Since we don't generate CDR stream operators for types that + // explicitly contain a local interface (at some level), we + // must override these Any template class methods to avoid + // calling the non-existent operators. The zero return value + // will eventually cause CORBA::MARSHAL to be raised if this + // type is inserted into an Any and then marshaled. + if (node->is_local ()) + { + if (be_global->any_support ()) { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_sequence_cdr_op_cs::" - "visit_sequence - " - "Bad base type\n"), - -1); - } - - // If our base type is anonymous sequence, - // generate code for the base type sequence here. + *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl + << "// " << __FILE__ << ":" << __LINE__; - if (bt->node_type () == AST_Decl::NT_sequence) - { - int status = - this->gen_anonymous_base_type ( - bt, - TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CS - ); + *os << be_nl << be_nl + << "CORBA::Boolean" << be_nl + << "TAO::Any_Dual_Impl_T<" << node->name () + << ">::marshal_value (TAO_OutputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_array_cdr_op_cs::" - "visit_sequence - " - "gen_anonymous_base_type failed\n"), - -1); - } + *os << be_nl << be_nl + << "CORBA::Boolean" << be_nl + << "TAO::Any_Dual_Impl_T<" << node->name () + << ">::demarshal_value (TAO_InputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; } - // Generate the CDR << and >> operator defns. - - // Save the sequence node for further use. - this->ctx_->node (node); + return 0; + } - *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl - << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; + be_type *bt = + be_type::narrow_from_decl (node->base_type ()); - // If we're an anonymous sequence, we must protect against - // being declared more than once. - if (!this->ctx_->tdef ()) - { - *os << "#if !defined _TAO_CDR_OP_" - << node->flat_name () << "_CPP_" << be_nl - << "#define _TAO_CDR_OP_" << node->flat_name () << "_CPP_" - << be_nl << be_nl; - } + if (!bt) + { + ACE_ERROR_RETURN ((LM_ERROR, + "be_visitor_sequence_cdr_op_cs::" + "visit_sequence - " + "Bad base type\n"), + -1); + } - // Set the sub state as generating code for the output operator. - this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_OUTPUT); - *os << "CORBA::Boolean operator<< (" << be_idt << be_idt_nl - << "TAO_OutputCDR &strm," << be_nl - << "const " << node->name () - << " &_tao_sequence" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl; + // If our base type is anonymous sequence, + // generate code for the base type sequence here. - // First encode the sequence length. - *os << "CORBA::ULong _tao_seq_len = _tao_sequence.length ();" - << be_nl << be_nl; - *os << "if (strm << _tao_seq_len)" << be_idt_nl - << "{" << be_idt_nl; - // Now encode the sequence elements. - *os << "// Encode all elements." << be_nl; + if (bt->node_type () == AST_Decl::NT_sequence) + { + int status = + this->gen_anonymous_base_type ( + bt, + TAO_CodeGen::TAO_ROOT_CDR_OP_CS + ); - if (bt->node_type () == AST_Decl::NT_sequence) - { - this->visit_node (node); - } - else + if (status == -1) { - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_sequence_cdr_op_cs::" - "visit_sequence - " - "Base type codegen failed\n"), - -1); - } + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_array_cdr_op_cs::" + "visit_sequence - " + "gen_anonymous_base_type failed\n"), + -1); } + } - *os << "}" << be_uidt_nl << be_nl - << "return 0;" << be_uidt_nl - << "}" << be_nl << be_nl; - - // Set the sub state as generating code for the input operator. - os->indent (); - this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_INPUT); + // Generate the CDR << and >> operator defns. - *os << "CORBA::Boolean operator>> (" << be_idt << be_idt_nl - << "TAO_InputCDR &strm," << be_nl - << node->name () << " &_tao_sequence" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl; - // First retrieve the length and adjust the sequence length accordingly. - *os << "CORBA::ULong _tao_seq_len;" << be_nl << be_nl; - *os << "if (strm >> _tao_seq_len)" << be_idt_nl - << "{" << be_idt_nl; + // Save the sequence node for further use. + this->ctx_->node (node); - // Add a sanity check for the length of a sequence. - *os << "// Add a check to the length of the sequence" << be_nl; - *os << "// to make sure it does not exceed the length" << be_nl; - *os << "// of the stream. (See bug 58.)" << be_nl; - *os << "if (_tao_seq_len > strm.length ())" << be_idt_nl - << "{" << be_idt_nl; - *os << "return 0;" << be_uidt_nl - << "}" << be_uidt_nl << be_nl; + *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl + << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; - // Now check if the length does not exceed the maximum. We do this only - // for bounded sequences - AST_Expression *expr = node->max_size (); + // If we're an anonymous sequence, we must protect against + // being declared more than once. + if (!this->ctx_->tdef ()) + { + *os << "#if !defined _TAO_CDR_OP_" + << node->flat_name () << "_CPP_" << be_nl + << "#define _TAO_CDR_OP_" << node->flat_name () << "_CPP_" + << be_nl << be_nl; + } - if (expr == 0 || (expr != 0 && expr->ev () == 0)) + // Set the sub state as generating code for the output operator. + this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_OUTPUT); + *os << "CORBA::Boolean operator<< (" << be_idt << be_idt_nl + << "TAO_OutputCDR &strm," << be_nl + << "const " << node->name () + << " &_tao_sequence" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl; + + // First encode the sequence length. + *os << "CORBA::ULong _tao_seq_len = _tao_sequence.length ();" + << be_nl << be_nl; + *os << "if (strm << _tao_seq_len)" << be_idt_nl + << "{" << be_idt_nl; + // Now encode the sequence elements. + *os << "// Encode all elements." << be_nl; + + if (bt->node_type () == AST_Decl::NT_sequence) + { + this->visit_node (node); + } + else + { + if (bt->accept (this) == -1) { ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_cdr_op_cs::" + "be_visitor_sequence_cdr_op_cs::" "visit_sequence - " - "bad sequence dimension\n"), + "Base type codegen failed\n"), -1); } + } - if (expr->ev ()->et == AST_Expression::EV_ulong) - { - if (expr->ev ()->u.ulval > 0) - { - // We are dealing with a bounded sequence. Check if we are within - // bounds. - *os << "if (_tao_seq_len <= _tao_sequence.maximum ())" << be_idt_nl - << "{" << be_idt_nl; - } - } - else + *os << "}" << be_uidt_nl << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_nl << be_nl; + + // Set the sub state as generating code for the input operator. + os->indent (); + this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_INPUT); + + *os << "CORBA::Boolean operator>> (" << be_idt << be_idt_nl + << "TAO_InputCDR &strm," << be_nl + << node->name () << " &_tao_sequence" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl; + // First retrieve the length and adjust the sequence length accordingly. + *os << "CORBA::ULong _tao_seq_len;" << be_nl << be_nl; + *os << "if (strm >> _tao_seq_len)" << be_idt_nl + << "{" << be_idt_nl; + + // Add a sanity check for the length of a sequence. + *os << "// Add a check to the length of the sequence" << be_nl; + *os << "// to make sure it does not exceed the length" << be_nl; + *os << "// of the stream. (See bug 58.)" << be_nl; + *os << "if (_tao_seq_len > strm.length ())" << be_idt_nl + << "{" << be_idt_nl; + *os << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl << be_nl; + + // Now check if the length does not exceed the maximum. We do this only + // for bounded sequences + AST_Expression *expr = node->max_size (); + + if (expr == 0 || (expr != 0 && expr->ev () == 0)) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_sequence_cdr_op_cs::" + "visit_sequence - " + "bad sequence dimension\n"), + -1); + } + + if (expr->ev ()->et == AST_Expression::EV_ulong) + { + if (expr->ev ()->u.ulval > 0) { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_cdr_op_cs::" - "visit_sequence - " - "bad sequence dimension value\n"), - -1); + // We are dealing with a bounded sequence. Check if we are within + // bounds. + *os << "if (_tao_seq_len <= _tao_sequence.maximum ())" << be_idt_nl + << "{" << be_idt_nl; } + } + else + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_sequence_cdr_op_cs::" + "visit_sequence - " + "bad sequence dimension value\n"), + -1); + } - *os << "// Set the length of the sequence." << be_nl - << "_tao_sequence.length (_tao_seq_len);" << be_nl << be_nl; - // Now we do a check for the sequence length to be non zero. - // If length is 0 we return true. - *os << "// If length is 0 we return true." << be_nl; - *os << "if (0 >= _tao_seq_len) " << be_idt_nl - << "{" << be_idt_nl; - *os << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl << be_nl; - - *os << "// Retrieve all the elements." << be_nl; + *os << "// Set the length of the sequence." << be_nl + << "_tao_sequence.length (_tao_seq_len);" << be_nl << be_nl; + // Now we do a check for the sequence length to be non zero. + // If length is 0 we return true. + *os << "// If length is 0 we return true." << be_nl; + *os << "if (0 >= _tao_seq_len) " << be_idt_nl + << "{" << be_idt_nl; + *os << "return 1;" << be_uidt_nl + << "}" << be_uidt_nl << be_nl; + *os << "// Retrieve all the elements." << be_nl; - if (bt->node_type () == AST_Decl::NT_sequence) - { - this->visit_node (node); - } - else - { - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_sequence_cdr_op_cs::" - "visit_sequence - " - "Base type codegen failed\n"), - -1); - } - } - if (expr->ev ()->u.ulval > 0) + if (bt->node_type () == AST_Decl::NT_sequence) + { + this->visit_node (node); + } + else + { + if (bt->accept (this) == -1) { - // We are dealing with a bounded sequence. - *os << "}" << be_uidt << be_uidt_nl; + ACE_ERROR_RETURN ((LM_ERROR, + "be_visitor_sequence_cdr_op_cs::" + "visit_sequence - " + "Base type codegen failed\n"), + -1); } + } - *os << "}" << be_uidt_nl << be_nl - << "return 0;" << be_uidt_nl - << "}"; + if (expr->ev ()->u.ulval > 0) + { + // We are dealing with a bounded sequence. + *os << "}" << be_uidt << be_uidt_nl; + } - if (!this->ctx_->tdef ()) - { - *os << be_nl << be_nl - << "#endif /* _TAO_CDR_OP_" - << node->flat_name () << "_CPP_ */"; - } + *os << "}" << be_uidt_nl << be_nl + << "return 0;" << be_uidt_nl + << "}"; - node->cli_stub_cdr_op_gen (1); + if (!this->ctx_->tdef ()) + { + *os << be_nl << be_nl + << "#endif /* _TAO_CDR_OP_" + << node->flat_name () << "_CPP_ */"; } + node->cli_stub_cdr_op_gen (1); return 0; } @@ -553,7 +573,6 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt) } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CS); be_visitor_sequence_base visitor (&ctx); // Initialize a boolean variable. @@ -795,16 +814,29 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt) } *os << "_forany tmp (tmp_var.inout ());" << be_nl; - *os << "_tao_marshal_flag = (strm << tmp"; + *os << "_tao_marshal_flag = (strm << tmp);"; break; - case AST_Decl::NT_string: - case AST_Decl::NT_wstring: case AST_Decl::NT_interface: case AST_Decl::NT_interface_fwd: + *os << "_tao_marshal_flag =" << be_idt_nl; + + if (bt->is_defined ()) + { + *os << "_tao_sequence[i].in ()->marshal (strm);" << be_uidt; + } + else + { + *os << "tao_" << bt->flat_name () << "_marshal (" + << "_tao_sequence[i].in (), strm);" << be_uidt; + } + + break; + case AST_Decl::NT_string: + case AST_Decl::NT_wstring: case AST_Decl::NT_valuetype: case AST_Decl::NT_valuetype_fwd: - *os << "_tao_marshal_flag = (strm << _tao_sequence[i].in ()"; + *os << "_tao_marshal_flag = (strm << _tao_sequence[i].in ());"; break; case AST_Decl::NT_pre_defined: @@ -826,22 +858,22 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt) if (pdt == AST_PredefinedType::PT_pseudo || pdt == AST_PredefinedType::PT_object) { - *os << "_tao_marshal_flag = (strm << _tao_sequence[i].in ()"; + *os << "_tao_marshal_flag = (strm << _tao_sequence[i].in ());"; } else { - *os << "_tao_marshal_flag = (strm << _tao_sequence[i]"; + *os << "_tao_marshal_flag = (strm << _tao_sequence[i]);"; } } break; default: - *os << "_tao_marshal_flag = (strm << _tao_sequence[i]"; + *os << "_tao_marshal_flag = (strm << _tao_sequence[i]);"; break; } - *os << ");" << be_uidt_nl + *os << be_uidt_nl << "}"; break; 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 74ecf921ead..a2baf85435e 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 @@ -98,7 +98,6 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CI); be_visitor_sequence_base visitor (&ctx); *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl 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 69e49347283..1a3bc56f405 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 @@ -98,7 +98,6 @@ be_visitor_sequence_cs::gen_bounded_obj_sequence (be_sequence *node) } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CS); be_visitor_sequence_base visitor (&ctx); *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl 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 a78426c616e..d129a478e9b 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 @@ -42,7 +42,7 @@ be_visitor_sequence_ch::gen_bounded_sequence (be_sequence *node) { int status = this->gen_anonymous_base_type (bt, - TAO_CodeGen::TAO_SEQUENCE_CH); + TAO_CodeGen::TAO_ROOT_CH); if (status == -1) { 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 35f818231b3..24b2a666569 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 @@ -46,7 +46,7 @@ be_visitor_sequence_ci::gen_bounded_sequence (be_sequence *node) if (bt->node_type () == AST_Decl::NT_sequence) { if (this->gen_anonymous_base_type (bt, - TAO_CodeGen::TAO_SEQUENCE_CI) + TAO_CodeGen::TAO_ROOT_CI) == -1) { ACE_ERROR_RETURN ((LM_ERROR, @@ -97,7 +97,6 @@ be_visitor_sequence_ci::gen_bounded_sequence (be_sequence *node) be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CI); be_visitor_sequence_base visitor (&ctx); *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl 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 df8221e77ec..fc46694356e 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 @@ -42,7 +42,7 @@ be_visitor_sequence_cs::gen_bounded_sequence (be_sequence *node) { int status = this->gen_anonymous_base_type (bt, - TAO_CodeGen::TAO_SEQUENCE_CS); + TAO_CodeGen::TAO_ROOT_CS); if (status == -1) { @@ -80,7 +80,6 @@ be_visitor_sequence_cs::gen_bounded_sequence (be_sequence *node) be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CS); be_visitor_sequence_base visitor (&ctx); *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl 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 22a38b301d2..31660353d25 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 @@ -101,7 +101,6 @@ be_visitor_sequence_ci::gen_unbounded_obj_sequence (be_sequence *node) } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CI); be_visitor_sequence_base visitor (&ctx); *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl 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 95706dc7a6e..ec7ed507be9 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 @@ -96,7 +96,6 @@ be_visitor_sequence_cs::gen_unbounded_obj_sequence (be_sequence *node) } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CS); be_visitor_sequence_base visitor (&ctx); *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl 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 29673b51375..70efcbd664e 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 @@ -42,7 +42,7 @@ be_visitor_sequence_ch::gen_unbounded_sequence (be_sequence *node) { int status = this->gen_anonymous_base_type (bt, - TAO_CodeGen::TAO_SEQUENCE_CH); + TAO_CodeGen::TAO_ROOT_CH); if (status == -1) { 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 97ca768ed1b..d170d256dfb 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 @@ -43,7 +43,7 @@ be_visitor_sequence_ci::gen_unbounded_sequence (be_sequence *node) { int status = this->gen_anonymous_base_type (bt, - TAO_CodeGen::TAO_SEQUENCE_CI); + TAO_CodeGen::TAO_ROOT_CI); if (status == -1) { @@ -92,7 +92,6 @@ be_visitor_sequence_ci::gen_unbounded_sequence (be_sequence *node) // Get the visitor for the type of the sequence. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CI); be_visitor_sequence_base visitor (&ctx); *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl 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 73ee3a5822d..b562dfc62de 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 @@ -42,7 +42,7 @@ be_visitor_sequence_cs::gen_unbounded_sequence (be_sequence *node) { int status = this->gen_anonymous_base_type (bt, - TAO_CodeGen::TAO_SEQUENCE_CS); + TAO_CodeGen::TAO_ROOT_CS); if (status == -1) { @@ -94,7 +94,6 @@ be_visitor_sequence_cs::gen_unbounded_sequence (be_sequence *node) // Get the visitor for the type of the sequence. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CS); be_visitor_sequence_base visitor (&ctx); *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_base.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_base.cpp index 1277fd82ccf..e4222bf17b5 100644 --- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_base.cpp +++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_base.cpp @@ -92,9 +92,7 @@ be_visitor_sequence_base::visit_sequence (be_sequence *node) int be_visitor_sequence_base::visit_interface (be_interface *node) { - return this->visit_node (node); - } int 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 44008bf655e..364b32a5105 100644 --- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp @@ -399,7 +399,6 @@ be_visitor_sequence_ci::gen_var_impl (be_sequence *node) *os << "ACE_INLINE" << be_nl; be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQELEM_RETTYPE_CI); be_visitor_sequence_elemtype sr_visitor (&ctx); if (bt->accept (&sr_visitor) == -1) @@ -650,7 +649,6 @@ be_visitor_sequence_ci::gen_out_impl (be_sequence *node) *os << "ACE_INLINE" << be_nl; be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQELEM_RETTYPE_CI); be_visitor_sequence_elemtype sr_visitor (&ctx); if (bt->accept (&sr_visitor) == -1) 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 2c04fcf5514..becf4b1ca0a 100644 --- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp @@ -154,9 +154,8 @@ be_visitor_sequence_cs::gen_base_sequence_class (be_sequence *node) } be_visitor_context ctx (*this->ctx_); - be_visitor_sequence_base_template_args visitor (&ctx, + be_visitor_sequence_base_template_args visitor (&ctx, node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CS); if (bt->accept (&visitor) == -1) { @@ -296,7 +295,6 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node) // generate the base type for the buffer be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CS); be_visitor_sequence_buffer_type bt_visitor (&ctx); if (bt->accept (&bt_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp index 1ffbe5b58f4..8d99ac4abaf 100644 --- a/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp @@ -53,103 +53,39 @@ be_visitor_structure_any_op_cs::visit_structure (be_structure *node) << "// TAO_IDL - Generated from " << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; - // Copying insertion oeprator. - + // Copying insertion. *os << "// Copying insertion." << be_nl << "void operator<<= (" << be_idt << be_idt_nl << "CORBA::Any &_tao_any," << be_nl << "const " << node->name () << " &_tao_elem" << be_uidt_nl << ")" << be_uidt_nl - << "{" << be_idt_nl; - - if (!node->is_local ()) - { - *os << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << _tao_elem)" << be_idt_nl - << "{" << be_idt_nl; - } - else - { - *os << node->name () << " *_tao_elem_copy = 0;" << be_nl - << "ACE_NEW (" << be_idt << be_idt_nl - << "_tao_elem_copy," << be_nl - << node->name () << " (_tao_elem)" << be_uidt_nl - << ");" << be_uidt_nl << be_nl; - } - - *os << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl; - - if (!node->is_local ()) - { - *os << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()" << be_uidt_nl; - } - else - { - *os << "1," << be_nl - << "_tao_elem_copy," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl; - } - - *os << ");" << be_uidt; - - if (node->is_local ()) - { - *os << be_nl << be_nl << "_tao_any.contains_local (1);"; - } - else - { - *os << be_uidt_nl - << "}" << be_uidt; - } - - *os << be_uidt_nl << "}\n" << be_nl; - - // Non-copying insertion operator. + << "{" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::insert_copy (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; + // Non-copying insertion. *os << "// Non-copying insertion." << be_nl << "void operator<<= (" << be_idt << be_idt_nl << "CORBA::Any &_tao_any," << be_nl << node->name () << " *_tao_elem" << be_uidt_nl << ")" << be_uidt_nl - << "{" << be_idt_nl; - - if (!node->is_local ()) - { - *os << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << *_tao_elem)" << be_idt_nl - << "{" << be_idt_nl; - } - - *os << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl; - - if (!node->is_local ()) - { - *os << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()," << be_nl; - } - - *os << "1," << be_nl - << "_tao_elem," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt; - - if (node->is_local ()) - { - *os << be_nl << be_nl << "_tao_any.contains_local (1);"; - } - else - { - *os << be_uidt_nl - << "}" << be_uidt; - } - - *os << be_uidt_nl << "}\n" << be_nl; - - // Extraction to non-const pointer operator. + << "{" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::insert (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; + // Extraction to non-const pointer (deprecated, just calls the other). *os << "// Extraction to non-const pointer (deprecated)." << be_nl << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl << "const CORBA::Any &_tao_any," << be_nl @@ -160,85 +96,36 @@ be_visitor_structure_any_op_cs::visit_structure (be_structure *node) << "const " << node->name () << " *&," << be_nl << "_tao_elem" << be_uidt_nl << ");" << be_uidt << be_uidt_nl - << "}\n\n"; - - // Extraction to const pointer operator. + << "}" << be_nl << be_nl; + // Extraction to const pointer. *os << "// Extraction to const pointer." << be_nl << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl << "const CORBA::Any &_tao_any," << be_nl << "const " << node->name () << " *&_tao_elem" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl - << "_tao_elem = 0;" << be_nl << be_nl - << "ACE_TRY_NEW_ENV" << be_nl - << "{" << be_idt_nl - << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << be_nl - << "CORBA::Boolean _tao_result =" << be_idt_nl - << "type->equivalent (" << be_idt << be_idt_nl - << node->tc_name () << be_nl - << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "ACE_TRY_CHECK;" << be_nl << be_nl - << "if (_tao_result == 0)" << be_idt_nl - << "{" << be_idt_nl - << "return 0; // not equivalent" << be_uidt_nl - << "}" << be_uidt_nl << be_nl; - - if (!node->is_local ()) - { - *os << "if (_tao_any.any_owns_data ())" << be_idt_nl - << "{" << be_idt_nl; - } - - *os << "_tao_elem = ACE_static_cast (" << be_idt << be_idt_nl - << "const " << node->name () << "*," << be_nl - << "_tao_any.value ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "return 1;" << be_uidt_nl; - - if (!node->is_local ()) - { - *os << "}" << be_uidt_nl - << "else" << be_idt_nl // else any does not own the data - << "{" << be_idt_nl - << node->name () << " *tmp;" << be_nl - << "ACE_NEW_RETURN (" << be_idt << be_idt_nl - << "tmp," << be_nl - << node->name () << "," << be_nl - << "0" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "TAO_InputCDR stream (" << be_idt << be_idt_nl - << "_tao_any._tao_get_cdr ()," << be_nl - << "_tao_any._tao_byte_order ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "if (stream >> *tmp)" << be_idt_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->_tao_replace (" - << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "1," << be_nl - << "ACE_static_cast (void *, tmp)," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "_tao_elem = tmp;" << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "else" << be_idt_nl - << "{" << be_idt_nl - << "delete tmp;" << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl; - } - - *os << "}" << be_nl - << "ACE_CATCHANY" << be_nl - << "{" << be_nl - << "}" << be_nl - << "ACE_ENDTRY;" << be_nl << be_nl - << "return 0;" << be_uidt_nl + << "return" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::extract (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt << be_uidt_nl << "}"; + *os << be_nl << be_nl + << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\" + << be_idt_nl + << " defined (ACE_HAS_GNU_REPO)" << be_nl + << "template class TAO::Any_Dual_Impl_T<" << node->name () << ">;" + << be_uidt_nl + << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl + << "# pragma instantiate TAO::Any_Dual_Impl_T<" << node->name () + << ">" << be_nl + << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */"; + // all we have to do is to visit the scope and generate code if (this->visit_scope (node) == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_structure/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_structure/cdr_op_ci.cpp index 5702ae974a9..a4f8a45e439 100644 --- a/TAO/TAO_IDL/be/be_visitor_structure/cdr_op_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_structure/cdr_op_ci.cpp @@ -43,14 +43,48 @@ be_visitor_structure_cdr_op_ci::visit_structure (be_structure *node) { // already generated and/or we are imported. Don't do anything. if (node->cli_inline_cdr_op_gen () - || node->imported () - || node->is_local ()) + || node->imported ()) { return 0; } TAO_OutStream *os = this->ctx_->stream (); + // Since we don't generate CDR stream operators for types that + // explicitly contain a local interface (at some level), we + // must override these Any template class methods to avoid + // calling the non-existent operators. The zero return value + // will eventually cause CORBA::MARSHAL to be raised if this + // type is inserted into an Any and then marshaled. + if (node->is_local ()) + { + if (be_global->any_support ()) + { + *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl + << "// " << __FILE__ << ":" << __LINE__; + + *os << be_nl << be_nl + << "ACE_INLINE" << be_nl + << "CORBA::Boolean" << be_nl + << "TAO::Any_Dual_Impl_T<" << node->name () + << ">::marshal_value (TAO_OutputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; + + *os << be_nl << be_nl + << "ACE_INLINE" << be_nl + << "CORBA::Boolean" << be_nl + << "TAO::Any_Dual_Impl_T<" << node->name () + << ">::demarshal_value (TAO_InputCDR &)" << be_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}"; + } + + return 0; + } + // First generate code for our children. The reason we do this first is // because the inlined code for our children must be available before we use // it in our parent. diff --git a/TAO/TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp index 7c9c1797e4d..9ad013c1e88 100644 --- a/TAO/TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp @@ -44,7 +44,7 @@ be_visitor_structure_cdr_op_cs::visit_structure (be_structure *node) } // Set the substate as generating code for the types defined in our scope. - this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_SCOPE); + this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_SCOPE); if (this->visit_scope (node) == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_structure/structure.cpp b/TAO/TAO_IDL/be/be_visitor_structure/structure.cpp index 33a1ec1fa86..e22124154cf 100644 --- a/TAO/TAO_IDL/be/be_visitor_structure/structure.cpp +++ b/TAO/TAO_IDL/be/be_visitor_structure/structure.cpp @@ -48,44 +48,43 @@ be_visitor_structure::visit_field (be_field *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_STRUCT_CH: + case TAO_CodeGen::TAO_ROOT_CH: + case TAO_CodeGen::TAO_INTERFACE_CH: + case TAO_CodeGen::TAO_UNION_PUBLIC_CH: + case TAO_CodeGen::TAO_UNION_PRIVATE_CH: + case TAO_CodeGen::TAO_ARRAY_CH: { - ctx.state (TAO_CodeGen::TAO_FIELD_CH); be_visitor_field_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_STRUCT_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_FIELD_CI); be_visitor_field_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_STRUCT_CS: + case TAO_CodeGen::TAO_ROOT_CS: + case TAO_CodeGen::TAO_UNION_PUBLIC_CS: { - ctx.state (TAO_CodeGen::TAO_FIELD_CS); be_visitor_field_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_STRUCT_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_FIELD_CDR_OP_CH); be_visitor_field_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_STRUCT_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_FIELD_CDR_OP_CI); be_visitor_field_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_STRUCT_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_FIELD_CDR_OP_CS); be_visitor_field_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_structure/structure_ch.cpp b/TAO/TAO_IDL/be/be_visitor_structure/structure_ch.cpp index fec1785e8b6..cba35e725bc 100644 --- a/TAO/TAO_IDL/be/be_visitor_structure/structure_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_structure/structure_ch.cpp @@ -111,7 +111,6 @@ int be_visitor_structure_ch::visit_structure (be_structure *node) if (be_global->tc_support ()) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); be_visitor_typecode_decl visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp b/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp index 1e096bf1bbb..a160d3c2900 100644 --- a/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp @@ -46,7 +46,6 @@ be_visitor_structure_cs::visit_structure (be_structure *node) if (be_global->tc_support ()) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); ctx.sub_state (TAO_CodeGen::TAO_TC_DEFN_TYPECODE); be_visitor_typecode_defn visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp b/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp index 9d927d4f7d6..2efdb6bf546 100644 --- a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp +++ b/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp @@ -1104,8 +1104,7 @@ be_visitor_typecode_defn::gen_encapsulation (be_enum *node) this->gen_name (node); // generate the member count - os->indent (); - *os << node->member_count () << ", // member count\n"; + *os << node->member_count () << ", // member count" << be_nl; // size of the member length this->tc_offset_ += sizeof (ACE_CDR::ULong); @@ -1228,8 +1227,7 @@ be_visitor_typecode_defn::gen_encapsulation (be_exception *node) this->gen_name (node); // generate the member count - os->indent (); - *os << node->nfields () << ", // member count\n"; + *os << node->nfields () << ", // member count" << be_nl; // size of the member count this->tc_offset_ += sizeof (ACE_CDR::ULong); @@ -1781,8 +1779,7 @@ be_visitor_typecode_defn::gen_encapsulation (be_structure *node) this->gen_name (node); // generate the member count - os->indent (); - *os << node->nfields () << ", // member count\n"; + *os << node->nfields () << ", // member count" << be_nl; // size of the member count this->tc_offset_ += sizeof (ACE_CDR::ULong); @@ -1998,7 +1995,6 @@ be_visitor_typecode_defn::gen_encapsulation (be_union *node) this->gen_repoID (node); // generate name - os->indent (); this->gen_name (node); // generate typecode for discriminant @@ -2011,13 +2007,12 @@ be_visitor_typecode_defn::gen_encapsulation (be_union *node) } // generate the default used flag - os->indent (); *os << node->default_index () << ", // default used index" << be_nl; // size of the default index used this->tc_offset_ += sizeof (ACE_CDR::ULong); // generate the member count - *os << node->nfields () << ", // member count\n"; + *os << node->nfields () << ", // member count" << be_nl; // size of the member count this->tc_offset_ += sizeof (ACE_CDR::ULong); @@ -2375,14 +2370,13 @@ be_visitor_typecode_defn::gen_encapsulation (be_valuetype *node) this->tc_offset_ += sizeof (ACE_CDR::ULong); } - //STEP 5: generate the member count - os->indent (); + // STEP 5: generate the member count + *os << node->data_members_count () << ", // member count" << be_nl; - *os << node->data_members_count () << ", // member count\n"; - // size of the member count - this->tc_offset_ += sizeof (ACE_CDR::ULong); + // Size of the member count. + this->tc_offset_ += sizeof (ACE_CDR::ULong); - //STEP 6: hand over to the scope to generate the typecode for elements + // STEP 6: hand over to the scope to generate the typecode for elements this->ctx_->sub_state (TAO_CodeGen::TAO_TC_DEFN_SCOPE); if (node->accept (this) == -1) @@ -3429,7 +3423,7 @@ be_visitor_typecode_defn::gen_repoID (be_decl *node) // size of the repoID field this->tc_offset_ += (arrlen + 1) * sizeof (ACE_CDR::ULong); } - *os << "\n"; + *os << be_nl; return; } @@ -3476,7 +3470,7 @@ be_visitor_typecode_defn::gen_name (be_decl *node) // size of the name field. this->tc_offset_ += (arrlen + 1) * sizeof (ACE_CDR::ULong); } - *os << "\n"; + *os << be_nl; return; } diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/typedef.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/typedef.cpp index baa0f690316..92a074c72b4 100644 --- a/TAO/TAO_IDL/be/be_visitor_typedef/typedef.cpp +++ b/TAO/TAO_IDL/be/be_visitor_typedef/typedef.cpp @@ -53,58 +53,53 @@ be_visitor_typedef::visit_array (be_array *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_TYPEDEF_CH: + case TAO_CodeGen::TAO_ROOT_CH: + case TAO_CodeGen::TAO_INTERFACE_CH: { ctx.state (TAO_CodeGen::TAO_ARRAY_CH); be_visitor_array_ch visitor (&ctx); status = node->accept (&visitor); + ctx.state (TAO_CodeGen::TAO_ROOT_CH); break; } - case TAO_CodeGen::TAO_TYPEDEF_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_ARRAY_CI); be_visitor_array_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_ARRAY_CS); be_visitor_array_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ARRAY_ANY_OP_CH); be_visitor_array_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_ARRAY_ANY_OP_CS); be_visitor_array_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CH); be_visitor_array_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CI); be_visitor_array_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CS); be_visitor_array_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; @@ -142,50 +137,45 @@ be_visitor_typedef::visit_enum (be_enum *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_TYPEDEF_CH: + case TAO_CodeGen::TAO_ROOT_CH: + case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_CH); be_visitor_enum_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_ENUM_CS); be_visitor_enum_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CH); be_visitor_enum_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CS); be_visitor_enum_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CH); be_visitor_enum_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CI); be_visitor_enum_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CS: - case TAO_CodeGen::TAO_TYPEDEF_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CI: return 0; // nothing to be done default: { @@ -220,58 +210,51 @@ be_visitor_typedef::visit_sequence (be_sequence *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_TYPEDEF_CH: + case TAO_CodeGen::TAO_ROOT_CH: + case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CH); be_visitor_sequence_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CI); be_visitor_sequence_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CS); be_visitor_sequence_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_SEQUENCE_ANY_OP_CH); be_visitor_sequence_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_SEQUENCE_ANY_OP_CS); be_visitor_sequence_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CH); be_visitor_sequence_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CI); be_visitor_sequence_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CS); be_visitor_sequence_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; @@ -310,58 +293,51 @@ be_visitor_typedef::visit_structure (be_structure *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_TYPEDEF_CH: + case TAO_CodeGen::TAO_ROOT_CH: + case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); be_visitor_structure_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); be_visitor_structure_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); be_visitor_structure_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CH); be_visitor_structure_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CS); be_visitor_structure_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CH); be_visitor_structure_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CI); be_visitor_structure_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CS); be_visitor_structure_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; @@ -399,58 +375,51 @@ be_visitor_typedef::visit_union (be_union *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_TYPEDEF_CH: + case TAO_CodeGen::TAO_ROOT_CH: + case TAO_CodeGen::TAO_INTERFACE_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_CH); be_visitor_union_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_CI); be_visitor_union_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_CS); be_visitor_union_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CH); be_visitor_union_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CS); be_visitor_union_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CH); be_visitor_union_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CI); be_visitor_union_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CS); be_visitor_union_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp index 52b4d1035e8..76bd347a843 100644 --- a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp @@ -126,7 +126,6 @@ be_visitor_typedef_ch::visit_typedef (be_typedef *node) if (!node->imported () && be_global->tc_support ()) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); be_visitor_typecode_decl visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_cs.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_cs.cpp index d0cc395424e..5e1cef76908 100644 --- a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_cs.cpp @@ -125,7 +125,6 @@ be_visitor_typedef_cs::visit_typedef (be_typedef *node) if (!node->imported () && be_global->tc_support ()) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); ctx.sub_state (TAO_CodeGen::TAO_TC_DEFN_TYPECODE); be_visitor_typecode_defn visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp index 448c65b6507..5014fab7cbe 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp @@ -53,100 +53,39 @@ be_visitor_union_any_op_cs::visit_union (be_union *node) << "// TAO_IDL - Generated from " << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; - *os << "void operator<<= (" << be_idt << be_idt_nl + // Copying insertion. + *os << "// Copying insertion." << be_nl + << "void operator<<= (" << be_idt << be_idt_nl << "CORBA::Any &_tao_any," << be_nl << "const " << node->name () << " &_tao_elem" << be_uidt_nl << ")" << be_uidt_nl - << "{" << be_idt_nl; - - if (!node->is_local ()) - { - *os << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << _tao_elem)" << be_idt_nl - << "{" << be_idt_nl; - } - else - { - *os << node->name () << " *_tao_elem_copy = 0;" << be_nl - << "ACE_NEW (" << be_idt << be_idt_nl - << "_tao_elem_copy," << be_nl - << node->name () << " (_tao_elem)" << be_uidt_nl - << ");" << be_uidt_nl << be_nl; - } - - *os << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl; - - if (!node->is_local ()) - { - *os << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()" << be_uidt_nl; - } - else - { - *os << "1," << be_nl - << "_tao_elem_copy," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl; - } - - *os << ");" << be_uidt; - - if (node->is_local ()) - { - *os << be_nl << be_nl << "_tao_any.contains_local (1);"; - } - else - { - *os << be_uidt_nl - << "}" << be_uidt; - } - - *os << be_uidt_nl << "}\n" << be_nl; - - // Non-copying insertion operator. + << "{" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::insert_copy (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; + // Non-copying insertion. *os << "// Non-copying insertion." << be_nl << "void operator<<= (" << be_idt << be_idt_nl << "CORBA::Any &_tao_any," << be_nl << node->name () << " *_tao_elem" << be_uidt_nl << ")" << be_uidt_nl - << "{" << be_idt_nl; - - if (!node->is_local ()) - { - *os << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << *_tao_elem)" << be_idt_nl - << "{" << be_idt_nl; - } - - *os << "_tao_any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl; - - if (!node->is_local ()) - { - *os << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()," << be_nl; - } - - *os << "1," << be_nl - << "_tao_elem," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt; - - if (node->is_local ()) - { - *os << be_nl << be_nl << "_tao_any.contains_local (1);"; - } - else - { - *os << be_uidt_nl - << "}" << be_uidt; - } - - *os << be_uidt_nl << "}\n" << be_nl; - - // Extraction to non-const pointer operator. + << "{" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::insert (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; + // Extraction to non-const pointer (deprecated, just calls the other). *os << "// Extraction to non-const pointer (deprecated)." << be_nl << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl << "const CORBA::Any &_tao_any," << be_nl @@ -157,84 +96,36 @@ be_visitor_union_any_op_cs::visit_union (be_union *node) << "const " << node->name () << " *&," << be_nl << "_tao_elem" << be_uidt_nl << ");" << be_uidt << be_uidt_nl - << "}\n\n"; - - // Exraction to const pointer operator. + << "}" << be_nl << be_nl; + // Extraction to const pointer. *os << "// Extraction to const pointer." << be_nl << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl << "const CORBA::Any &_tao_any," << be_nl << "const " << node->name () << " *&_tao_elem" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl - << "_tao_elem = 0;" << be_nl << be_nl - << "ACE_TRY_NEW_ENV" << be_nl - << "{" << be_idt_nl - << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << be_nl - << "CORBA::Boolean _tao_result =" << be_idt_nl - << "type->equivalent (" << be_idt << be_idt_nl - << node->tc_name () << be_nl - << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "ACE_TRY_CHECK;" << be_nl << be_nl - << "if (_tao_result == 0)" << be_idt_nl - << "{" << be_idt_nl - << "return 0; // not equivalent" << be_uidt_nl - << "}" << be_uidt_nl << be_nl; - - if (!node->is_local ()) - { - *os << "if (_tao_any.any_owns_data ())" << be_idt_nl - << "{" << be_idt_nl; - } - - *os << "_tao_elem = ACE_static_cast (" << be_idt << be_idt_nl - << "const " << node->name () << " *," << be_nl - << "_tao_any.value ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "return 1;" << be_uidt_nl; - - if (!node->is_local ()) - { - *os << "}" << be_uidt_nl - << "else" << be_idt_nl // else any does not own the data - << "{" << be_idt_nl - << node->name () << " *tmp;" << be_nl - << "ACE_NEW_RETURN (" << be_idt << be_idt_nl - << "tmp," << be_nl - << node->name () << "," << be_nl - << "0" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "TAO_InputCDR stream (" << be_idt << be_idt_nl - << "_tao_any._tao_get_cdr ()," << be_nl - << "_tao_any._tao_byte_order ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << be_nl << "if (stream >> *tmp)" << be_idt_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->_tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << "," << be_nl - << "1," << be_nl - << "ACE_static_cast (void *, tmp)," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "_tao_elem = tmp;" << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "else" << be_idt_nl - << "{" << be_idt_nl - << "delete tmp;" << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl; - } - - *os << "}" << be_nl - << "ACE_CATCHANY" << be_nl - << "{" << be_nl - << "}" << be_nl - << "ACE_ENDTRY;" << be_nl << be_nl - << "return 0;" << be_uidt_nl + << "return" << be_idt_nl + << "TAO::Any_Dual_Impl_T<" << node->name () << ">::extract (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt << be_uidt_nl << "}"; + *os << be_nl << be_nl + << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\" + << be_idt_nl + << " defined (ACE_HAS_GNU_REPO)" << be_nl + << "template class TAO::Any_Dual_Impl_T<" << node->name () << ">;" + << be_uidt_nl + << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl + << "# pragma instantiate TAO::Any_Dual_Impl_T<" << node->name () + << ">" << be_nl + << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */"; + // All we have to do is to visit the scope and generate code. if (this->visit_scope (node) == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ch.cpp index a9f9dfe6b1c..bd4683ea50a 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ch.cpp @@ -62,7 +62,7 @@ be_visitor_union_cdr_op_ch::visit_union (be_union *node) // Set the substate as generating code for the types defined in our scope. - this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_SCOPE); + this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_SCOPE); if (this->visit_scope (node) == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp index cd980707720..04e8bc9bcf3 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp @@ -41,16 +41,18 @@ be_visitor_union_cdr_op_ci::~be_visitor_union_cdr_op_ci (void) int be_visitor_union_cdr_op_ci::visit_union (be_union *node) { - // already generated and/or we are imported. Don't do anything. - if (node->cli_inline_cdr_op_gen () - || node->imported () - || node->is_local ()) + // There is no check for is_local here because we have no way of + // knowing which member will be active at marshaling time. So we + // generate the CDR operators and let the local interface member + // (if any) be caught at runtime. + if (node->cli_inline_cdr_op_gen () + || node->imported ()) { return 0; } // Set the substate as generating code for the types defined in our scope. - this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_SCOPE); + this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_SCOPE); if (this->visit_scope (node) == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp index 05092325e82..225773b7724 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp @@ -50,7 +50,7 @@ be_visitor_union_cdr_op_cs::visit_union (be_union *node) } // Set the substate as generating code for the types defined in our scope - this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_SCOPE); + this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_SCOPE); if (this->visit_scope (node) == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_union/discriminant_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union/discriminant_ch.cpp index 33b495f6e55..43fe93d8b0d 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/discriminant_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/discriminant_ch.cpp @@ -66,7 +66,6 @@ be_visitor_union_discriminant_ch::visit_enum (be_enum *node) ctx.node (node); // First generate the enum declaration. - ctx.state (TAO_CodeGen::TAO_ENUM_CH); be_visitor_enum_ch visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp index e7c719f34da..e49c96162e9 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp @@ -62,7 +62,6 @@ be_visitor_union_discriminant_cs::visit_enum (be_enum *node) ctx.node (node); // generate the typecode for the enum - ctx.state (TAO_CodeGen::TAO_ENUM_CS); be_visitor_enum_cs visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_union/union.cpp b/TAO/TAO_IDL/be/be_visitor_union/union.cpp index 46990af1820..e9d2c7cbb67 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/union.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/union.cpp @@ -50,63 +50,54 @@ be_visitor_union::visit_union_branch (be_union_branch *node) { case TAO_CodeGen::TAO_UNION_PUBLIC_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_PUBLIC_CH); be_visitor_union_branch_public_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_UNION_PRIVATE_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_PRIVATE_CH); be_visitor_union_branch_private_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_UNION_PUBLIC_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_PUBLIC_CI); be_visitor_union_branch_public_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_UNION_PUBLIC_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_PUBLIC_CS); be_visitor_union_branch_public_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_UNION_PUBLIC_ASSIGN_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_PUBLIC_ASSIGN_CS); be_visitor_union_branch_public_assign_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_UNION_PUBLIC_RESET_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_PUBLIC_RESET_CS); be_visitor_union_branch_public_reset_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_UNION_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_BRANCH_CDR_OP_CH); be_visitor_union_branch_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_UNION_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_BRANCH_CDR_OP_CI); be_visitor_union_branch_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_UNION_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_BRANCH_CDR_OP_CS); be_visitor_union_branch_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp index 7614572ec3d..87eee4b15e5 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp @@ -95,7 +95,6 @@ int be_visitor_union_ch::visit_union (be_union *node) // The discriminant type may have to be defined here if it was an enum // declaration inside of the union statement. - ctx.state (TAO_CodeGen::TAO_UNION_DISCTYPEDEFN_CH); be_visitor_union_discriminant_ch ud_visitor (&ctx); if (bt->accept (&ud_visitor) == -1) @@ -187,7 +186,6 @@ int be_visitor_union_ch::visit_union (be_union *node) if (be_global->tc_support ()) { ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); be_visitor_typecode_decl tc_visitor (&ctx); if (node->accept (&tc_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_union/union_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union/union_ci.cpp index 245f2931d87..f349e99661d 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/union_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/union_ci.cpp @@ -69,8 +69,6 @@ int be_visitor_union_ci::visit_union (be_union *node) -1); } - ctx.state (TAO_CodeGen::TAO_UNION_DISCTYPEDEFN_CI); - be_visitor_union_discriminant_ci visitor (&ctx); if (bt->accept (&visitor) == -1) @@ -84,8 +82,6 @@ int be_visitor_union_ci::visit_union (be_union *node) // Now generate the implementation of the access methods for the // union. For this set our state. - this->ctx_->state (TAO_CodeGen::TAO_UNION_PUBLIC_CI); - if (this->visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, diff --git a/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp index cf3af206500..b638b8807ac 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp @@ -60,7 +60,6 @@ int be_visitor_union_cs::visit_union (be_union *node) "bad discriminant type\n"), -1); } - ctx.state (TAO_CodeGen::TAO_UNION_DISCTYPEDEFN_CS); be_visitor_union_discriminant_cs disc_visitor (&ctx); if (bt->accept (&disc_visitor) == -1) @@ -279,7 +278,6 @@ int be_visitor_union_cs::visit_union (be_union *node) if (!node->is_local () && be_global->tc_support ()) { ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); ctx.sub_state (TAO_CodeGen::TAO_TC_DEFN_TYPECODE); be_visitor_typecode_defn tc_visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ch.cpp index 50a96af0e65..6e6507eebe3 100644 --- a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ch.cpp @@ -81,7 +81,6 @@ be_visitor_union_branch_cdr_op_ch::visit_array (be_array *node) be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CH); be_visitor_array_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -107,7 +106,6 @@ be_visitor_union_branch_cdr_op_ch::visit_enum (be_enum *node) be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CH); be_visitor_enum_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -132,8 +130,6 @@ be_visitor_union_branch_cdr_op_ch::visit_sequence (be_sequence *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CH); be_visitor_sequence_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -158,8 +154,6 @@ be_visitor_union_branch_cdr_op_ch::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CH); be_visitor_structure_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -204,8 +198,6 @@ be_visitor_union_branch_cdr_op_ch::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CH); be_visitor_union_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) 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 2d15b711750..23a69059f84 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 @@ -175,7 +175,6 @@ be_visitor_union_branch_cdr_op_ci::visit_array (be_array *node) ctx.node (node); // First generate the declaration. - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CI); be_visitor_array_cdr_op_ci visitor (&ctx); if (visitor.visit_array (node) == -1) @@ -250,7 +249,6 @@ be_visitor_union_branch_cdr_op_ci::visit_enum (be_enum *node) // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CI); be_visitor_enum_cdr_op_ci visitor (&ctx); if (visitor.visit_enum (node) == -1) @@ -288,20 +286,40 @@ be_visitor_union_branch_cdr_op_ci::visit_interface (be_interface *node) switch (this->ctx_->sub_state ()) { case TAO_CodeGen::TAO_CDR_INPUT: - *os << node->name () << "_var _tao_union_tmp;" << be_nl - << "result = strm >> _tao_union_tmp.inout ();" << be_nl << be_nl - << "if (result)" << be_idt_nl - << "{" << be_idt_nl - << "_tao_union." - << f->local_name () << " (_tao_union_tmp.in ());" << be_nl - << "_tao_union._d (_tao_discriminant);" << be_uidt_nl - << "}" << be_uidt; + if (node->is_local ()) + { + *os << "result = 0;"; + } + else + { + *os << node->name () << "_var _tao_union_tmp;" << be_nl + << "result = strm >> _tao_union_tmp.inout ();" << be_nl << be_nl + << "if (result)" << be_idt_nl + << "{" << be_idt_nl + << "_tao_union." + << f->local_name () << " (_tao_union_tmp.in ());" << be_nl + << "_tao_union._d (_tao_discriminant);" << be_uidt_nl + << "}" << be_uidt; + } break; case TAO_CodeGen::TAO_CDR_OUTPUT: - *os << "result = strm << _tao_union." - << f->local_name () << " ();"; + if (node->is_defined ()) + { + *os << "result = _tao_union." + << f->local_name () << " ()->marshal (strm);"; + } + else + { + *os << "result =" << be_idt_nl + << "tao_" << node->flat_name () << "_marshal (" + << be_idt << be_idt_nl + << "_tao_union." << f->local_name () << " ()," << be_nl + << "strm" << be_uidt_nl + << ");" << be_uidt << be_uidt; + } + break; case TAO_CodeGen::TAO_CDR_SCOPE: @@ -343,20 +361,27 @@ be_visitor_union_branch_cdr_op_ci::visit_interface_fwd (be_interface_fwd *node) switch (this->ctx_->sub_state ()) { case TAO_CodeGen::TAO_CDR_INPUT: - *os << node->name () << "_var _tao_union_tmp;" << be_nl - << "result = strm >> _tao_union_tmp.inout ();" << be_nl << be_nl - << "if (result)" << be_idt_nl - << "{" << be_idt_nl - << "_tao_union." - << f->local_name () << " (_tao_union_tmp.in ());" << be_nl - << "_tao_union._d (_tao_discriminant);" << be_uidt_nl - << "}" << be_uidt; + if (node->is_local ()) + { + *os << "result = 0;"; + } + else + { + *os << node->name () << "_var _tao_union_tmp;" << be_nl + << "result = strm >> _tao_union_tmp.inout ();" << be_nl << be_nl + << "if (result)" << be_idt_nl + << "{" << be_idt_nl + << "_tao_union." + << f->local_name () << " (_tao_union_tmp.in ());" << be_nl + << "_tao_union._d (_tao_discriminant);" << be_uidt_nl + << "}" << be_uidt; + } break; case TAO_CodeGen::TAO_CDR_OUTPUT: - *os << "result = strm << _tao_union." - << f->local_name () << " ();"; + *os << "result = _tao_union." + << f->local_name () << " ()->marshal (strm);"; break; case TAO_CodeGen::TAO_CDR_SCOPE: @@ -717,7 +742,6 @@ be_visitor_union_branch_cdr_op_ci::visit_sequence (be_sequence *node) // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CI); be_visitor_sequence_cdr_op_ci visitor (&ctx); if (visitor.visit_sequence (node) == -1) @@ -852,7 +876,6 @@ be_visitor_union_branch_cdr_op_ci::visit_structure (be_structure *node) // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CI); be_visitor_structure_cdr_op_ci visitor (&ctx); if (visitor.visit_structure (node) == -1) @@ -948,7 +971,6 @@ be_visitor_union_branch_cdr_op_ci::visit_union (be_union *node) // will be modified based on what type of node we are visiting be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CI); be_visitor_union_cdr_op_ci visitor (&ctx); if (visitor.visit_union (node) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp index bc664be738f..501a7013572 100644 --- a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp @@ -75,7 +75,6 @@ be_visitor_union_branch_cdr_op_cs::visit_array (be_array *node) // This is the case for anonymous arrays. be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CS); be_visitor_array_cdr_op_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -106,7 +105,6 @@ be_visitor_union_branch_cdr_op_cs::visit_sequence (be_sequence *node) // Anonymous sequence be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CS); be_visitor_sequence_cdr_op_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -130,7 +128,6 @@ be_visitor_union_branch_cdr_op_cs::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CS); be_visitor_structure_cdr_op_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -175,7 +172,6 @@ be_visitor_union_branch_cdr_op_cs::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CS); be_visitor_union_cdr_op_cs visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp index 2426123a9a2..d9e3c7d98d1 100644 --- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp @@ -117,6 +117,8 @@ be_visitor_union_branch_public_ch::visit_array (be_array *node) -1); } + ctx.state (TAO_CodeGen::TAO_ROOT_CH); + *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__; @@ -182,7 +184,6 @@ be_visitor_union_branch_public_ch::visit_enum (be_enum *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ENUM_CH); be_visitor_enum_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -480,7 +481,6 @@ be_visitor_union_branch_public_ch::visit_sequence (be_sequence *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CH); be_visitor_sequence_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -599,7 +599,6 @@ be_visitor_union_branch_public_ch::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); be_visitor_structure_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -683,7 +682,6 @@ be_visitor_union_branch_public_ch::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CH); be_visitor_union_ch visitor (&ctx); if (node->accept (&visitor) == -1) 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 a27ad9fc264..be063f62f9c 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 @@ -110,7 +110,6 @@ be_visitor_union_branch_public_ci::visit_array (be_array *node) ctx.node (node); // First generate the inline operations for this anonymous array type. - ctx.state (TAO_CodeGen::TAO_ARRAY_CI); be_visitor_array_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -882,7 +881,6 @@ be_visitor_union_branch_public_ci::visit_sequence (be_sequence *node) ctx.node (node); // First generate inline operations for this anonymous sequence type. - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CI); be_visitor_sequence_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -1192,7 +1190,6 @@ be_visitor_union_branch_public_ci::visit_structure (be_structure *node) ctx.node (node); // First generate the struct declaration - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); be_visitor_structure_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -1358,7 +1355,6 @@ be_visitor_union_branch_public_ci::visit_union (be_union *node) ctx.node (node); // First generate the union declaration. - ctx.state (TAO_CodeGen::TAO_UNION_CI); be_visitor_union_ci visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp index b71a82bb660..5e4507d8ca6 100644 --- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp @@ -76,7 +76,6 @@ be_visitor_union_branch_public_cs::visit_array (be_array *node) // Anonymous array case. be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ARRAY_CS); be_visitor_array_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -97,7 +96,6 @@ be_visitor_union_branch_public_cs::visit_enum (be_enum *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ENUM_CS); be_visitor_enum_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -124,7 +122,6 @@ be_visitor_union_branch_public_cs::visit_sequence (be_sequence *node) // Anonymous sequence case. be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CS); be_visitor_sequence_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -151,7 +148,6 @@ be_visitor_union_branch_public_cs::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); be_visitor_structure_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -171,7 +167,6 @@ be_visitor_union_branch_public_cs::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CS); be_visitor_union_cs visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp index 52c82a39d2d..5d0bc205f5a 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp @@ -84,7 +84,6 @@ be_visitor_valuetype_ami_exception_holder_ch::visit_operation ( ) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_IH); be_visitor_operation_ih visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp index 905fed63a90..9965e0d0f56 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp @@ -55,117 +55,74 @@ be_visitor_valuetype_any_op_cs::visit_valuetype (be_valuetype *node) *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; - *os << "// Copying." << be_nl + *os << "// Copying insertion." << be_nl << "void" << be_nl << "operator<<= (" << be_idt << be_idt_nl - << "CORBA::Any &any," << be_nl - << node->name () << " *value" << be_uidt_nl + << "CORBA::Any &_tao_any," << be_nl + << node->full_name () << " *_tao_elem" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl - << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << value)" << be_idt_nl - << "{" << be_idt_nl - << "any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << ", " << be_nl - << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl + << "CORBA::add_ref (_tao_elem);" << be_nl + << "_tao_any <<= &_tao_elem;" << be_uidt_nl << "}" << be_nl << be_nl; - *os << "// Non-copying." << be_nl + *os << "// Non-copying insertion." << be_nl << "void" << be_nl << "operator<<= (" << be_idt << be_idt_nl - << "CORBA::Any &any," << be_nl - << node->name ()<< " **value" << be_uidt_nl + << "CORBA::Any &_tao_any," << be_nl + << node->full_name () << " **_tao_elem" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl - << "TAO_OutputCDR stream;" << be_nl << be_nl - << "if (stream << *value)" << be_idt_nl - << "{" << be_idt_nl - << "any._tao_replace (" << be_idt << be_idt_nl - << node->tc_name () << ", " << be_nl - << "TAO_ENCAP_BYTE_ORDER," << be_nl - << "stream.begin ()," << be_nl - << "1," << be_nl - << "*value," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl + << "TAO::Any_Impl_T<" << node->name () << ">::insert (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl + << node->tc_name () << "," << be_nl + << "*_tao_elem" << be_uidt_nl << ");" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl << "}" << be_nl << be_nl; - *os << "CORBA::Boolean" << be_nl << "operator>>= (" << be_idt << be_idt_nl - << "const CORBA::Any &any," << be_nl - << node->name () << " *&value" << be_uidt_nl + << "const CORBA::Any &_tao_any," << be_nl + << node->full_name () << " *&_tao_elem" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl - << "ACE_TRY_NEW_ENV" << be_nl - << "{" << be_idt_nl - << "value = 0;" << be_nl - << "CORBA::TypeCode_var type = any.type ();" << be_nl - << "CORBA::Boolean _tao_result =" << be_idt_nl - << "type->equivalent (" << be_idt << be_idt_nl - << node->tc_name () << be_nl - << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "ACE_TRY_CHECK;" << be_nl << be_nl - << "if (!_tao_result)" << be_idt_nl - << "{" << be_idt_nl - << "return 0; // not equivalent" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "if (any.any_owns_data ())" << be_idt_nl - << "{" << be_idt_nl - << "const " << node->name () << " *const_holder =" << be_idt_nl - << "ACE_static_cast (" << be_idt << be_idt_nl - << "const " << node->name () << " *," << be_nl - << "any.value ()" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "value =" << be_idt_nl - << "ACE_const_cast (" << be_idt << be_idt_nl - << node->name () << " *," << be_nl - << "const_holder" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "else" << be_idt_nl // else any does not own the data - << "{" << be_idt_nl - << node->name () << " *tmp;" << be_nl - << "TAO_InputCDR stream (" << be_idt << be_idt_nl - << "any._tao_get_cdr ()," << be_nl - << "any._tao_byte_order ()" << be_uidt_nl - << ");" << be_uidt_nl << be_nl - << "if (stream >> tmp)" << be_idt_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&any)->_tao_replace (" << be_idt << be_idt_nl + << "return" << be_idt_nl + << "TAO::Any_Impl_T<" << node->name () << ">::extract (" + << be_idt << be_idt_nl + << "_tao_any," << be_nl + << node->name () << "::_tao_any_destructor," << be_nl << node->tc_name () << "," << be_nl - << "1," << be_nl - << "ACE_static_cast (void *, tmp)," << be_nl - << node->name () << "::_tao_any_destructor" << be_uidt_nl - << ");" << be_uidt_nl - << "value = tmp;" << be_nl + << "_tao_elem" << be_uidt_nl + << ");" << be_uidt << be_uidt << be_uidt_nl + << "}" << be_nl << be_nl; + + *os << "CORBA::Boolean" << be_nl + << "TAO::Any_Impl_T<" << node->name () << ">::to_value (" + << be_idt << be_idt_nl + << "CORBA::ValueBase *&_tao_elem" << be_uidt_nl + << ") const" << be_uidt_nl + << "{" << be_idt_nl + << "CORBA::add_ref (this->value_);" << be_nl + << "_tao_elem = this->value_;" << be_nl << "return 1;" << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_nl - << "ACE_CATCHANY" << be_nl - << "{" << be_nl - << "}" << be_nl - << "ACE_ENDTRY;" << be_nl - << "return 0;" << be_uidt_nl << "}" << be_nl << be_nl; *os << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\" << be_idt_nl - << " defined (ACE_HAS_GNU_REPO)" << be_idt_nl + << " defined (ACE_HAS_GNU_REPO)" << be_nl << "template class TAO_Valuetype_Manager<" << node->full_name () << ", " - << node->full_name () << "_var>;" << be_uidt_nl + << node->full_name () << "_var>;" << be_nl + << "template class TAO::Any_Impl_T<" << node->full_name () + << ">;" << be_uidt_nl << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl << "# pragma instantiate TAO_Valuetype_Manager<" << node->full_name () << ", " - << node->full_name () << "_var>" << be_uidt_nl + << node->full_name () << "_var>" << be_nl + << "# pragma instantiate TAO::Any_Impl_T<" << node->full_name () + << ">" << be_uidt_nl << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */"; node->cli_stub_any_op_gen (1); diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp index f589b0cd00c..2fb295a5cfd 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp @@ -247,7 +247,6 @@ be_visitor_obv_operation_arglist::visit_argument (be_argument *node) { case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_CH: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_ARGLIST_CH); be_visitor_args_arglist visitor (&ctx); status = bt->accept (&visitor); break; @@ -257,7 +256,6 @@ be_visitor_obv_operation_arglist::visit_argument (be_argument *node) case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IH: case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IS: { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_ARGLIST_OTHERS); be_visitor_args_arglist visitor (&ctx); status = bt->accept (&visitor); break; diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ch.cpp index 0d4a7238d01..a72fc8de0b5 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ch.cpp @@ -79,7 +79,6 @@ be_visitor_valuetype_field_cdr_ch::visit_array (be_array *node) // This is the case for anonymous arrays. be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CH); be_visitor_array_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -104,7 +103,6 @@ be_visitor_valuetype_field_cdr_ch::visit_enum (be_enum *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CH); be_visitor_enum_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -129,7 +127,6 @@ be_visitor_valuetype_field_cdr_ch::visit_sequence (be_sequence *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CH); be_visitor_sequence_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -154,7 +151,6 @@ be_visitor_valuetype_field_cdr_ch::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CH); be_visitor_structure_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -203,7 +199,6 @@ be_visitor_valuetype_field_cdr_ch::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CH); be_visitor_union_cdr_op_ch visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ci.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ci.cpp index d77e0de7886..d73334d5ef5 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ci.cpp @@ -155,7 +155,6 @@ be_visitor_valuetype_field_cdr_ci::visit_array (be_array *node) // This is the case for anonymous arrays. be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ARRAY_CDR_OP_CI); be_visitor_array_cdr_op_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -215,7 +214,6 @@ be_visitor_valuetype_field_cdr_ci::visit_enum (be_enum *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CI); be_visitor_enum_cdr_op_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -256,7 +254,7 @@ be_visitor_valuetype_field_cdr_ci::visit_interface (be_interface *) *os << "(strm >> " << pre_ << f->local_name () << post_ << ".out ())"; break; case TAO_CodeGen::TAO_CDR_OUTPUT: - *os << "(strm << " << pre_ << f->local_name () << post_ << ".in ())"; + *os << pre_ << f->local_name () << post_ << ".in ()->marshal (strm)"; break; case TAO_CodeGen::TAO_CDR_SCOPE: // Nothing to be done because an interface cannit be declared inside a @@ -299,7 +297,7 @@ be_visitor_valuetype_field_cdr_ci::visit_interface_fwd (be_interface_fwd *) *os << "(strm >> " << pre_ << f->local_name () << post_ << ").out ()"; break; case TAO_CodeGen::TAO_CDR_OUTPUT: - *os << "(strm << " << pre_ << f->local_name () << post_ << ").in ()"; + *os << pre_ << f->local_name () << post_ << ".in ()->marshal (strm)"; break; case TAO_CodeGen::TAO_CDR_SCOPE: // Nothing to be done because an interface cannit be declared inside a @@ -552,7 +550,6 @@ be_visitor_valuetype_field_cdr_ci::visit_sequence (be_sequence *node) // Anonymous sequence. be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CDR_OP_CI); be_visitor_sequence_cdr_op_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -654,7 +651,6 @@ be_visitor_valuetype_field_cdr_ci::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CI); be_visitor_structure_cdr_op_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -735,7 +731,6 @@ be_visitor_valuetype_field_cdr_ci::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CI); be_visitor_union_cdr_op_ci visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/field_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/field_ch.cpp index 286c2f3bcb8..50bd7a7d5f8 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/field_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/field_ch.cpp @@ -115,6 +115,8 @@ be_visitor_valuetype_field_ch::visit_array (be_array *node) -1); } + ctx.state (TAO_CodeGen::TAO_ROOT_CH); + // Now use this array as a "type" for the subsequent declarator // the set method. *os << pre_op () << "void " << ub->local_name () << " (" @@ -183,7 +185,6 @@ be_visitor_valuetype_field_ch::visit_enum (be_enum *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ENUM_CH); be_visitor_enum_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -486,7 +487,6 @@ be_visitor_valuetype_field_ch::visit_sequence (be_sequence *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CH); be_visitor_sequence_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -613,7 +613,6 @@ be_visitor_valuetype_field_ch::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); be_visitor_structure_ch visitor (&ctx); if (node->accept (&visitor) == -1) @@ -699,7 +698,6 @@ be_visitor_valuetype_field_ch::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CH); be_visitor_union_ch visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/field_ci.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/field_ci.cpp index 4678af40c7d..046641b8696 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/field_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/field_ci.cpp @@ -98,7 +98,6 @@ be_visitor_valuetype_field_ci::visit_array (be_array *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ARRAY_CI); be_visitor_array_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -181,7 +180,6 @@ be_visitor_valuetype_field_ci::visit_sequence (be_sequence *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CI); be_visitor_sequence_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -234,7 +232,6 @@ be_visitor_valuetype_field_ci::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); be_visitor_structure_ci visitor (&ctx); if (node->accept (&visitor) == -1) @@ -287,7 +284,6 @@ be_visitor_valuetype_field_ci::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CI); be_visitor_union_ci visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp index 118ecd0f788..5d90c0c17ca 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp @@ -100,7 +100,6 @@ be_visitor_valuetype_field_cs::visit_array (be_array *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_ARRAY_CS); be_visitor_array_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -727,7 +726,6 @@ be_visitor_valuetype_field_cs::visit_sequence (be_sequence *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CS); be_visitor_sequence_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -967,7 +965,6 @@ be_visitor_valuetype_field_cs::visit_structure (be_structure *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); be_visitor_structure_cs visitor (&ctx); if (node->accept (&visitor) == -1) @@ -1084,7 +1081,6 @@ be_visitor_valuetype_field_cs::visit_union (be_union *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_UNION_CS); be_visitor_union_cs visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/obv_module.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/obv_module.cpp index c6be4bcb6f7..b05e3a64b9e 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/obv_module.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/obv_module.cpp @@ -114,15 +114,8 @@ be_visitor_obv_module::visit_valuetype (be_valuetype *node) case TAO_CodeGen::TAO_MODULE_OBV_CS: ctx.state (TAO_CodeGen::TAO_VALUETYPE_OBV_CS); break; - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_obv_module::" - "visit_valuetype - " - "Bad context state\n" - ), - -1); - } + default: + return 0; } if (status == 0) @@ -207,18 +200,18 @@ be_visitor_obv_module::visit_eventtype (be_eventtype *node) switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_MODULE_OBV_CH: - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_OBV_CH); + ctx.state (TAO_CodeGen::TAO_VALUETYPE_OBV_CH); break; case TAO_CodeGen::TAO_MODULE_OBV_CI: { // This context state is not involved in any strategies. - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_OBV_CI); + ctx.state (TAO_CodeGen::TAO_VALUETYPE_OBV_CI); be_visitor_eventtype_obv_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_MODULE_OBV_CS: - ctx.state (TAO_CodeGen::TAO_EVENTTYPE_OBV_CS); + ctx.state (TAO_CodeGen::TAO_VALUETYPE_OBV_CS); break; default: { diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp index 0b97eda4a5f..cc081640da4 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp @@ -232,16 +232,14 @@ be_visitor_valuetype::visit_constant (be_constant *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_VALUETYPE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_CONSTANT_CH); be_visitor_constant_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_CONSTANT_CS); be_visitor_constant_cs visitor (&ctx); status = node->accept (&visitor); break; @@ -249,17 +247,17 @@ be_visitor_valuetype::visit_constant (be_constant *node) case TAO_CodeGen::TAO_VALUETYPE_OBV_CH: case TAO_CodeGen::TAO_VALUETYPE_OBV_CI: case TAO_CodeGen::TAO_VALUETYPE_OBV_CS: - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH: - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS: - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH: - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI: - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS: - case TAO_CodeGen::TAO_VALUETYPE_CI: - case TAO_CodeGen::TAO_VALUETYPE_SH: - case TAO_CodeGen::TAO_VALUETYPE_IH: - case TAO_CodeGen::TAO_VALUETYPE_IS: - case TAO_CodeGen::TAO_VALUETYPE_SI: - case TAO_CodeGen::TAO_VALUETYPE_SS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CI: + case TAO_CodeGen::TAO_ROOT_SH: + case TAO_CodeGen::TAO_ROOT_IH: + case TAO_CodeGen::TAO_ROOT_IS: + case TAO_CodeGen::TAO_ROOT_SI: + case TAO_CodeGen::TAO_ROOT_SS: return 0; // Nothing to be done. default: { @@ -292,58 +290,52 @@ be_visitor_valuetype::visit_enum (be_enum *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_VALUETYPE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_CH); be_visitor_enum_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_ENUM_CS); be_visitor_enum_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CH); be_visitor_enum_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CS); be_visitor_enum_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CH); be_visitor_enum_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_ENUM_CDR_OP_CI); be_visitor_enum_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: case TAO_CodeGen::TAO_VALUETYPE_OBV_CH: case TAO_CodeGen::TAO_VALUETYPE_OBV_CI: case TAO_CodeGen::TAO_VALUETYPE_OBV_CS: - case TAO_CodeGen::TAO_VALUETYPE_CI: - case TAO_CodeGen::TAO_VALUETYPE_SH: - case TAO_CodeGen::TAO_VALUETYPE_IH: - case TAO_CodeGen::TAO_VALUETYPE_IS: - case TAO_CodeGen::TAO_VALUETYPE_SI: - case TAO_CodeGen::TAO_VALUETYPE_SS: + case TAO_CodeGen::TAO_ROOT_CI: + case TAO_CodeGen::TAO_ROOT_SH: + case TAO_CodeGen::TAO_ROOT_IH: + case TAO_CodeGen::TAO_ROOT_IS: + case TAO_CodeGen::TAO_ROOT_SI: + case TAO_CodeGen::TAO_ROOT_SS: return 0; // Nothing to be done. default: { @@ -376,87 +368,56 @@ be_visitor_valuetype::visit_exception (be_exception *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_VALUETYPE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CH); be_visitor_exception_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CI: - { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CI); + case TAO_CodeGen::TAO_ROOT_CI: + { be_visitor_exception_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CS); be_visitor_exception_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CH); be_visitor_exception_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CS); be_visitor_exception_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CH); be_visitor_exception_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CI); be_visitor_exception_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CDR_OP_CS); be_visitor_exception_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_SH: - case TAO_CodeGen::TAO_VALUETYPE_IH: - case TAO_CodeGen::TAO_VALUETYPE_SI: - case TAO_CodeGen::TAO_VALUETYPE_SS: - case TAO_CodeGen::TAO_VALUETYPE_IS: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CH: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CI: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CS: - case TAO_CodeGen::TAO_VALUETYPE_COLLOCATED_SH: - case TAO_CodeGen::TAO_VALUETYPE_COLLOCATED_SS: - case TAO_CodeGen::TAO_VALUETYPE_MARSHAL_CH: - case TAO_CodeGen::TAO_VALUETYPE_MARSHAL_CS: - case TAO_CodeGen::TAO_VALUETYPE_INIT_CH: - case TAO_CodeGen::TAO_VALUETYPE_INIT_CI: - case TAO_CodeGen::TAO_VALUETYPE_INIT_CS: - case TAO_CodeGen::TAO_VALUETYPE_INIT_ARGLIST_CH: - return 0; // Nothing to be done. default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_exception - " - "Bad context state\n"), - -1); - } + return 0; // Nothing to be done. } if (status == -1) @@ -480,79 +441,56 @@ be_visitor_valuetype::visit_structure (be_structure *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_VALUETYPE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); be_visitor_structure_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); be_visitor_structure_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); be_visitor_structure_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CH); be_visitor_structure_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CS); be_visitor_structure_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CH); be_visitor_structure_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CI); be_visitor_structure_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_STRUCT_CDR_OP_CS); be_visitor_structure_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_OBV_CH: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CI: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CS: - case TAO_CodeGen::TAO_VALUETYPE_SH: - case TAO_CodeGen::TAO_VALUETYPE_IH: - case TAO_CodeGen::TAO_VALUETYPE_IS: - case TAO_CodeGen::TAO_VALUETYPE_SI: - case TAO_CodeGen::TAO_VALUETYPE_SS: - return 0; // Nothing to be done. default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_valuetype::" - "visit_structure - " - "Bad context state\n"), - -1); - } + return 0; // Nothing to be done. } if (status == -1) @@ -578,45 +516,14 @@ be_visitor_valuetype::visit_structure_fwd (be_structure_fwd *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_VALUETYPE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_STRUCT_FWD_CH); be_visitor_structure_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CI: - case TAO_CodeGen::TAO_VALUETYPE_CS: - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH: - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS: - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH: - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI: - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS: - case TAO_CodeGen::TAO_VALUETYPE_SH: - case TAO_CodeGen::TAO_VALUETYPE_IH: - case TAO_CodeGen::TAO_VALUETYPE_SI: - case TAO_CodeGen::TAO_VALUETYPE_SS: - case TAO_CodeGen::TAO_VALUETYPE_IS: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CH: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CI: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CS: - case TAO_CodeGen::TAO_VALUETYPE_COLLOCATED_SH: - case TAO_CodeGen::TAO_VALUETYPE_COLLOCATED_SS: - case TAO_CodeGen::TAO_VALUETYPE_MARSHAL_CH: - case TAO_CodeGen::TAO_VALUETYPE_MARSHAL_CS: - case TAO_CodeGen::TAO_VALUETYPE_INIT_CH: - case TAO_CodeGen::TAO_VALUETYPE_INIT_CI: - case TAO_CodeGen::TAO_VALUETYPE_INIT_CS: - case TAO_CodeGen::TAO_VALUETYPE_INIT_ARGLIST_CH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_valuetype::" - "visit_structure_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -640,58 +547,50 @@ be_visitor_valuetype::visit_union (be_union *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_VALUETYPE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_CH); be_visitor_union_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_CI); be_visitor_union_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_CS); be_visitor_union_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CH); be_visitor_union_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CS); be_visitor_union_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CH); be_visitor_union_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CI); be_visitor_union_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_UNION_CDR_OP_CS); be_visitor_union_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; @@ -699,11 +598,11 @@ be_visitor_valuetype::visit_union (be_union *node) case TAO_CodeGen::TAO_VALUETYPE_OBV_CH: case TAO_CodeGen::TAO_VALUETYPE_OBV_CI: case TAO_CodeGen::TAO_VALUETYPE_OBV_CS: - case TAO_CodeGen::TAO_VALUETYPE_SH: - case TAO_CodeGen::TAO_VALUETYPE_IH: - case TAO_CodeGen::TAO_VALUETYPE_IS: - case TAO_CodeGen::TAO_VALUETYPE_SI: - case TAO_CodeGen::TAO_VALUETYPE_SS: + case TAO_CodeGen::TAO_ROOT_SH: + case TAO_CodeGen::TAO_ROOT_IH: + case TAO_CodeGen::TAO_ROOT_IS: + case TAO_CodeGen::TAO_ROOT_SI: + case TAO_CodeGen::TAO_ROOT_SS: return 0; // Nothing to be done. default: { @@ -738,45 +637,14 @@ be_visitor_valuetype::visit_union_fwd (be_union_fwd *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_VALUETYPE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_UNION_FWD_CH); be_visitor_union_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CI: - case TAO_CodeGen::TAO_VALUETYPE_CS: - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH: - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS: - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH: - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI: - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS: - case TAO_CodeGen::TAO_VALUETYPE_SH: - case TAO_CodeGen::TAO_VALUETYPE_IH: - case TAO_CodeGen::TAO_VALUETYPE_SI: - case TAO_CodeGen::TAO_VALUETYPE_SS: - case TAO_CodeGen::TAO_VALUETYPE_IS: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CH: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CI: - case TAO_CodeGen::TAO_VALUETYPE_OBV_CS: - case TAO_CodeGen::TAO_VALUETYPE_COLLOCATED_SH: - case TAO_CodeGen::TAO_VALUETYPE_COLLOCATED_SS: - case TAO_CodeGen::TAO_VALUETYPE_MARSHAL_CH: - case TAO_CodeGen::TAO_VALUETYPE_MARSHAL_CS: - case TAO_CodeGen::TAO_VALUETYPE_INIT_CH: - case TAO_CodeGen::TAO_VALUETYPE_INIT_CI: - case TAO_CodeGen::TAO_VALUETYPE_INIT_CS: - case TAO_CodeGen::TAO_VALUETYPE_INIT_ARGLIST_CH: - return 0; // nothing to be done default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_valuetype::" - "visit_union_fwd - " - "Bad context state\n"), - -1); - } + return 0; // nothing to be done } if (status == -1) @@ -800,58 +668,50 @@ be_visitor_valuetype::visit_typedef (be_typedef *node) switch (this->ctx_->state ()) { - case TAO_CodeGen::TAO_VALUETYPE_CH: + case TAO_CodeGen::TAO_ROOT_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CH); be_visitor_typedef_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CI: + case TAO_CodeGen::TAO_ROOT_CI: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CI); be_visitor_typedef_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CS: + case TAO_CodeGen::TAO_ROOT_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CS); be_visitor_typedef_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CH: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH); be_visitor_typedef_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_ANY_OP_CS: + case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS); be_visitor_typedef_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CH); be_visitor_typedef_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CI: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CI); be_visitor_typedef_cdr_op_ci visitor (&ctx); status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_VALUETYPE_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CDR_OP_CS); be_visitor_typedef_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; @@ -859,11 +719,11 @@ be_visitor_valuetype::visit_typedef (be_typedef *node) case TAO_CodeGen::TAO_VALUETYPE_OBV_CH: case TAO_CodeGen::TAO_VALUETYPE_OBV_CI: case TAO_CodeGen::TAO_VALUETYPE_OBV_CS: - case TAO_CodeGen::TAO_VALUETYPE_SH: - case TAO_CodeGen::TAO_VALUETYPE_IH: - case TAO_CodeGen::TAO_VALUETYPE_IS: - case TAO_CodeGen::TAO_VALUETYPE_SI: - case TAO_CodeGen::TAO_VALUETYPE_SS: + case TAO_CodeGen::TAO_ROOT_SH: + case TAO_CodeGen::TAO_ROOT_IH: + case TAO_CodeGen::TAO_ROOT_IS: + case TAO_CodeGen::TAO_ROOT_SI: + case TAO_CodeGen::TAO_ROOT_SS: return 0; // Nothing to be done. default: { @@ -969,7 +829,6 @@ be_visitor_valuetype::gen_field_pd (be_field *node) // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); - ctx.state (TAO_CodeGen::TAO_FIELD_CH); be_visitor_field_ch visitor (&ctx); *os << be_nl; diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp index 636afaeda45..bd7cbb13e3f 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp @@ -427,7 +427,6 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node) // Generate the _init -related declarations. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_INIT_CH); be_visitor_valuetype_init_ch visitor (&ctx); if (visitor.visit_valuetype (node) == -1) @@ -443,7 +442,6 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node) if (be_global->tc_support ()) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); be_visitor_typecode_decl visitor (&ctx); if (node->accept (&visitor) == -1) @@ -488,7 +486,6 @@ be_visitor_valuetype_ch::visit_operation (be_operation *node) // Grab the right visitor to generate the return type. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_CH); be_visitor_operation_rettype or_visitor (&ctx); if (bt->accept (&or_visitor) == -1) @@ -532,7 +529,6 @@ be_visitor_valuetype_ch::visit_field (be_field *node) } be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_FIELD_OBV_CH); be_visitor_valuetype_field_ch visitor (&ctx); if (vt->opt_accessor ()) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp index 72f8e62cf2a..7e0a54baa8d 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp @@ -106,7 +106,6 @@ be_visitor_valuetype_ci::visit_valuetype (be_valuetype *node) // Generate the _init-related code. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_INIT_CI); be_visitor_valuetype_init_ci visitor (&ctx); if (visitor.visit_valuetype (node) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp index e862df548cd..e4c1fbed165 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp @@ -75,7 +75,6 @@ be_visitor_valuetype_cs::visit_valuetype (be_valuetype *node) if (be_global->tc_support ()) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); ctx.sub_state (TAO_CodeGen::TAO_TC_DEFN_TYPECODE); be_visitor_typecode_defn tc_visitor (&ctx); @@ -370,7 +369,6 @@ be_visitor_valuetype_cs::visit_valuetype (be_valuetype *node) // Generate the _init-related code. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_INIT_CS); be_visitor_valuetype_init_cs vi_visitor (&ctx); if (vi_visitor.visit_valuetype (node) == -1) @@ -421,7 +419,6 @@ be_visitor_valuetype_cs::visit_operation (be_operation *node) // Grab the right visitor to generate the return type. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_CH); be_visitor_operation_rettype or_visitor (&ctx); if (bt->accept (&or_visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_arglist_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_arglist_ch.cpp index ee8ef8cbdcb..3489d7d2b59 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_arglist_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_arglist_ch.cpp @@ -66,26 +66,8 @@ be_visitor_valuetype_init_arglist_ch::visit_argument (be_argument *node) // Get the visitor that will dump the argument's mapping in the operation // signature. be_visitor_context ctx (*this->ctx_); - int status = 0; - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_VALUETYPE_INIT_ARGLIST_CH: - { - ctx.state (TAO_CodeGen::TAO_ARGUMENT_ARGLIST_CH); - be_visitor_args_arglist visitor (&ctx); - status = node->accept (&visitor); - break; - } - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_valuetype_init_arglist_ch::" - "visit_argument - " - "Bad context\n"), - -1); - } - } + be_visitor_args_arglist visitor (&ctx); + int status = node->accept (&visitor); if (status == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp index 6565d3f6046..629c064b3ef 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp @@ -163,7 +163,6 @@ be_visitor_valuetype_init_ch::visit_factory (be_factory *node) // STEP 3: Generate the argument list with the appropriate mapping. For these // we grab a visitor that generates the parameter listing. be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_VALUETYPE_INIT_ARGLIST_CH); be_visitor_valuetype_init_arglist_ch visitor (&ctx); if (node->accept (&visitor) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp index 00ef4a5d46f..dccc54e389f 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp @@ -212,7 +212,6 @@ be_visitor_valuetype_obv_ch::visit_field (be_field *node) if (!vt->opt_accessor ()) { be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_FIELD_OBV_CH); be_visitor_valuetype_field_ch visitor (&ctx); visitor.setenclosings ("virtual ",";"); |