diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-01-04 17:37:29 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-01-04 17:37:29 +0000 |
commit | c151b96a98761929f5643db8cf3e4b7a27758b35 (patch) | |
tree | 0322ddbf0737e9ec44f3ab84b451350312211021 | |
parent | 6106f67f49351cd212e688b0fe04875ba7b631c2 (diff) | |
download | ATCD-c151b96a98761929f5643db8cf3e4b7a27758b35.tar.gz |
Added code generation for Any extraction to pointer
to const, as laid out in CORBA 2.3.1.
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_exception/any_op_ch.cpp | 3 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp | 62 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp | 8 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp | 3 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp | 64 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_structure/any_op_ch.cpp | 3 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp | 62 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_union/any_op_ch.cpp | 3 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp | 76 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_visitor_union/any_op_cs.h | 12 |
10 files changed, 284 insertions, 12 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_exception/any_op_ch.cpp index 6ec9a980815..74fd57808b7 100644 --- a/TAO/TAO_IDL/be/be_visitor_exception/any_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_exception/any_op_ch.cpp @@ -59,6 +59,9 @@ be_visitor_exception_any_op_ch::visit_exception (be_exception *node) << "*); // noncopying version" << be_nl; *os << idl_global->stub_export_macro () << " CORBA::Boolean" << " operator>>= (const CORBA::Any &, " + << node->name () << " *&); // deprecated\n"; + *os << idl_global->stub_export_macro () << " CORBA::Boolean" + << " operator>>= (const CORBA::Any &, const " << node->name () << " *&);\n"; 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 8a0a28951fa..3dbc8d114cb 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 @@ -92,7 +92,11 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node) << "{" << be_idt_nl << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << "if (!type->equivalent (" << node->tc_name () - << ", ACE_TRY_ENV)) return 0; // not equal" << be_nl + << ", ACE_TRY_ENV)) // not equal" << be_idt_nl + << "{" << be_idt_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl << "ACE_TRY_CHECK;" << be_nl << "if (_tao_any.any_owns_data ())" << be_nl << "{" << be_idt_nl @@ -117,19 +121,73 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node) << "}" << be_nl << "else" << be_nl // decode failed << "{" << be_idt_nl - << "delete _tao_elem;" << be_uidt_nl + << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_nl << "ACE_CATCHANY" << be_nl << "{" << be_idt_nl << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_nl << "return 0;" << be_uidt_nl << "}" << be_nl << "ACE_ENDTRY;" << be_nl + << "_tao_elem = 0;" << be_nl << "return 0;" << be_uidt_nl << "}\n\n"; + *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, const " + << node->name () << " *&_tao_elem)" << be_nl + << "{" << be_idt_nl + << "ACE_TRY_NEW_ENV" << be_nl + << "{" << be_idt_nl + << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl + << "if (!type->equivalent (" << node->tc_name () + << ", ACE_TRY_ENV)) // not equal" << be_idt_nl + << "{" << be_idt_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl + << "ACE_TRY_CHECK;" << be_nl + << "if (_tao_any.any_owns_data ())" << be_nl + << "{" << be_idt_nl + << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" + << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl + << "else" << be_nl // else any does not own the data + << "{" << be_idt_nl + << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" + << be_nl + << "TAO_InputCDR stream (_tao_any._tao_get_cdr ());" + << be_nl + << "if (stream.decode (" << node->tc_name () + << ", _tao_elem, 0, ACE_TRY_ENV)" << be_nl + << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl + << "{" << be_idt_nl + << "((CORBA::Any *)&_tao_any)->replace (" + << node->tc_name () << ", _tao_elem, 1, ACE_TRY_ENV);" << be_nl + << "ACE_TRY_CHECK;" << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl + << "else" << be_nl // decode failed + << "{" << be_idt_nl + << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_uidt_nl + << "}" << be_uidt_nl + << "}" << be_uidt_nl + << "}" << be_nl + << "ACE_CATCHANY" << be_nl + << "{" << be_idt_nl + << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_nl + << "ACE_ENDTRY;" << be_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}\n\n"; // 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_interface/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp index 9c93cab7faa..1f697456c65 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 @@ -96,7 +96,11 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) << "_tao_elem = " << node->full_name () << "::_nil ();" << be_nl << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << "if (!type->equivalent (" << node->tc_name () - << ", ACE_TRY_ENV)) return 0; // not equal" << be_nl + << ", ACE_TRY_ENV)) // not equal" << be_idt_nl + << "{" << be_idt_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl << "ACE_TRY_CHECK;" << be_nl << "TAO_InputCDR stream (_tao_any._tao_get_cdr ());" << be_nl @@ -121,9 +125,11 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) << "ACE_CATCHANY" << be_nl << "{" << be_idt_nl << "delete tmp;" << be_nl + << "_tao_elem = 0;" << be_nl << "return 0;" << be_uidt_nl << "}" << be_nl << "ACE_ENDTRY;" << be_nl + << "_tao_elem = 0;" << be_nl << "return 0;" << be_uidt_nl << "}\n\n"; diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp index e1cc5797613..fd62fd6a241 100644 --- a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp @@ -59,6 +59,9 @@ be_visitor_sequence_any_op_ch::visit_sequence (be_sequence *node) << "*); // noncopying version" << be_nl; *os << idl_global->stub_export_macro () << " CORBA::Boolean" << " operator>>= (const CORBA::Any &, " + << node->name () << " *&); // deprecated\n"; + *os << idl_global->stub_export_macro () << " CORBA::Boolean" + << " operator>>= (const CORBA::Any &, const " << node->name () << " *&);\n"; node->cli_hdr_any_op_gen (1); 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 a1a8125bb97..47cd0921ec4 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 @@ -95,7 +95,11 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node) << "{" << be_idt_nl << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << "if (!type->equivalent (" << node->tc_name () - << ", ACE_TRY_ENV)) return 0; // not equal" << be_nl + << ", ACE_TRY_ENV)) // not equal" << be_idt_nl + << "{" << be_idt_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl << "ACE_TRY_CHECK;" << be_nl << "if (_tao_any.any_owns_data ())" << be_nl << "{" << be_idt_nl @@ -121,16 +125,72 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node) << "}" << be_nl << "else" << be_nl // decode failed << "{" << be_idt_nl - << "delete _tao_elem;" << be_uidt_nl + << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_uidt_nl + << "}" << be_uidt_nl + << "}" << be_uidt_nl + << "}" << be_nl + << "ACE_CATCHANY" << be_nl + << "{" << be_idt_nl + << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_nl + << "ACE_ENDTRY;" << be_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}\n\n"; + + *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, const " + << node->name () << " *&_tao_elem)" << be_nl + << "{" << be_idt_nl + << "ACE_TRY_NEW_ENV" << be_nl + << "{" << be_idt_nl + << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl + << "if (!type->equivalent (" << node->tc_name () + << ", ACE_TRY_ENV)) // not equal" << be_idt_nl + << "{" << be_idt_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl + << "ACE_TRY_CHECK;" << be_nl + << "if (_tao_any.any_owns_data ())" << be_nl + << "{" << be_idt_nl + << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" + << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl + << "else" << be_nl // else any does not own the data + << "{" << be_idt_nl + << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" + << be_nl + << "TAO_InputCDR stream (_tao_any._tao_get_cdr ());" + << be_nl + << "if (stream.decode (" << node->tc_name () + << ", _tao_elem, 0, ACE_TRY_ENV)" << be_nl + << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl + << "{" << be_idt_nl + << "((CORBA::Any *)&_tao_any)->replace (" + << node->tc_name () << ", _tao_elem, 1, ACE_TRY_ENV);" + << be_nl + << "ACE_TRY_CHECK;" << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl + << "else" << be_nl // decode failed + << "{" << be_idt_nl + << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_nl << "ACE_CATCHANY" << be_nl << "{" << be_idt_nl << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_nl << "return 0;" << be_uidt_nl << "}" << be_nl << "ACE_ENDTRY;" << be_nl + << "_tao_elem = 0;" << be_nl << "return 0;" << be_uidt_nl << "}\n\n"; diff --git a/TAO/TAO_IDL/be/be_visitor_structure/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_structure/any_op_ch.cpp index 38cb0e10549..77311da083d 100644 --- a/TAO/TAO_IDL/be/be_visitor_structure/any_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_structure/any_op_ch.cpp @@ -59,6 +59,9 @@ be_visitor_structure_any_op_ch::visit_structure (be_structure *node) << "*); // noncopying version" << be_nl; *os << idl_global->stub_export_macro () << " CORBA::Boolean" << " operator>>= (const CORBA::Any &, " + << node->name () << " *&); // deprecated\n"; + *os << idl_global->stub_export_macro () << " CORBA::Boolean" + << " operator>>= (const CORBA::Any &, const " << node->name () << " *&);\n"; 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 9f5533b0264..6f78e77f1f4 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 @@ -92,7 +92,11 @@ be_visitor_structure_any_op_cs::visit_structure (be_structure *node) << "{" << be_idt_nl << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << "if (!type->equivalent (" << node->tc_name () - << ", ACE_TRY_ENV)) return 0; // not equal" << be_nl + << ", ACE_TRY_ENV)) // not equal" << be_idt_nl + << "{" << be_idt_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl << "ACE_TRY_CHECK;" << be_nl << "if (_tao_any.any_owns_data ())" << be_nl << "{" << be_idt_nl @@ -117,19 +121,73 @@ be_visitor_structure_any_op_cs::visit_structure (be_structure *node) << "}" << be_nl << "else" << be_nl << "{" << be_idt_nl - << "delete _tao_elem;" << be_uidt_nl + << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_nl << "ACE_CATCHANY" << be_nl << "{" << be_idt_nl << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_nl << "return 0; " << be_uidt_nl << "}" << be_nl << "ACE_ENDTRY;" << be_nl + << "_tao_elem = 0;" << be_nl << "return 0;" << be_uidt_nl << "}\n\n"; + *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, const " + << node->name () << " *&_tao_elem)" << be_nl + << "{" << be_idt_nl + << "ACE_TRY_NEW_ENV" << be_nl + << "{" << be_idt_nl + << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl + << "if (!type->equivalent (" << node->tc_name () + << ", ACE_TRY_ENV)) // not equal" << be_idt_nl + << "{" << be_idt_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl + << "ACE_TRY_CHECK;" << be_nl + << "if (_tao_any.any_owns_data ())" << be_nl + << "{" << be_idt_nl + << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" + << be_nl + << "return 1;" << be_nl + << "}" << be_uidt_nl + << "else" << be_nl // else any does not own the data + << "{" << be_idt_nl + << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" + << be_nl + << "TAO_InputCDR stream (_tao_any._tao_get_cdr ());" + << be_nl + << "if (stream.decode (" << node->tc_name () + << ", _tao_elem, 0, ACE_TRY_ENV)" << be_nl + << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl + << "{" << be_idt_nl + << "((CORBA::Any *)&_tao_any)->replace (" + << node->tc_name () << ", _tao_elem, 1, ACE_TRY_ENV);" << be_nl + << "ACE_TRY_CHECK;" << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl + << "else" << be_nl + << "{" << be_idt_nl + << "delete (" << node->name () << " *)_tao_elem;" << be_nl + << "_tao_elem = 0;" << be_uidt_nl + << "}" << be_uidt_nl + << "}" << be_uidt_nl + << "}" << be_nl + << "ACE_CATCHANY" << be_nl + << "{" << be_idt_nl + << "delete (" << node->name () << " *)_tao_elem;" << be_nl + << "_tao_elem = 0;" << be_nl + << "return 0; " << be_uidt_nl + << "}" << be_nl + << "ACE_ENDTRY;" << be_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}\n\n"; // 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/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union/any_op_ch.cpp index 5c7d3656e72..b2ead4bea61 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/any_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/any_op_ch.cpp @@ -59,6 +59,9 @@ be_visitor_union_any_op_ch::visit_union (be_union *node) << "*); // noncopying version" << be_nl; *os << idl_global->stub_export_macro () << " CORBA::Boolean" << " operator>>= (const CORBA::Any &, " + << node->name () << " *&); // deprecated\n"; + *os << idl_global->stub_export_macro () << " CORBA::Boolean" + << " operator>>= (const CORBA::Any &, const " << node->name () << " *&);\n"; 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 ef0c0b1ec06..2e42074c48d 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 @@ -99,8 +99,11 @@ be_visitor_union_any_op_cs::visit_union (be_union *node) << "{" << be_idt_nl << "CORBA::TypeCode_var type = _tao_any.type ();" << be_nl << "if (!type->equivalent (" << node->tc_name () - << ", ACE_TRY_ENV))" << be_idt_nl + << ", ACE_TRY_ENV)) // not equal" << be_idt_nl + << "{" << be_idt_nl + << "_tao_elem = 0;" << be_nl << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl << "ACE_TRY_CHECK;" << be_nl << "if (_tao_any.any_owns_data ())" << be_nl << "{" << be_idt_nl @@ -123,12 +126,55 @@ be_visitor_union_any_op_cs::visit_union (be_union *node) << "}" << be_nl << "ACE_CATCHANY" << be_nl << "{" << be_idt_nl - << "delete _tao_elem;" << be_uidt_nl + << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_uidt_nl << "}" << be_nl << "ACE_ENDTRY;" << be_nl << "return 0;" << be_uidt_nl << "}\n\n"; + *os << "CORBA::Boolean operator>>= (" << be_idt << be_idt_nl + << "const CORBA::Any &_tao_any, const " << 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 + << "if (!type->equivalent (" << node->tc_name () + << ", ACE_TRY_ENV)) // not equal" << be_idt_nl + << "{" << be_idt_nl + << "_tao_elem = 0;" << be_nl + << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl + << "ACE_TRY_CHECK;" << be_nl + << "if (_tao_any.any_owns_data ())" << be_nl + << "{" << be_idt_nl + << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" + << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl + << "else" << be_nl // else any does not own the data + << "{" << be_idt_nl + << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" + << be_nl + << "TAO_InputCDR stream (_tao_any._tao_get_cdr ());" << be_nl; + + if (this->gen_const_extraction (os, node) != 0) + return -1; + + *os << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_uidt_nl + << "}" << be_nl + << "ACE_CATCHANY" << be_nl + << "{" << be_idt_nl + << "delete _tao_elem;" << be_nl + << "_tao_elem = 0;" << be_uidt_nl + << "}" << be_nl + << "ACE_ENDTRY;" << be_nl + << "return 0;" << be_uidt_nl + << "}\n\n"; // all we have to do is to visit the scope and generate code if (this->visit_scope (node) == -1) @@ -229,6 +275,22 @@ gen_extraction (TAO_OutStream *os, return 0; } +int +be_visitor_union_any_op_compiled_cs:: +gen_const_extraction (TAO_OutStream *os, + be_union *node) +{ + *os << "stream >> *(" << node->name () << " *)_tao_elem;" << be_nl + << "((CORBA::Any *)&_tao_any)->_tao_replace (" << be_idt << be_idt_nl + << node->tc_name () << "," << be_nl + << "1," << be_nl + << "ACE_reinterpret_cast(void*,_tao_elem)," << be_nl + << "ACE_TRY_ENV" << be_uidt_nl + << ");" << be_uidt_nl + << "ACE_TRY_CHECK;" << be_nl; + return 0; +} + // **************************************************************** be_visitor_union_any_op_interpretive_cs:: @@ -274,3 +336,13 @@ gen_extraction (TAO_OutStream *os, << "}"; return 0; } + +int +be_visitor_union_any_op_interpretive_cs:: +gen_const_extraction (TAO_OutStream *os, + be_union *node) +{ + return this->gen_extraction (os, + node); +} + diff --git a/TAO/TAO_IDL/be_include/be_visitor_union/any_op_cs.h b/TAO/TAO_IDL/be_include/be_visitor_union/any_op_cs.h index 05e6192d346..630fae55433 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_union/any_op_cs.h +++ b/TAO/TAO_IDL/be_include/be_visitor_union/any_op_cs.h @@ -51,6 +51,8 @@ public: be_union *node) = 0; virtual int gen_extraction (TAO_OutStream* os, be_union *node) = 0; + virtual int gen_const_extraction (TAO_OutStream *os, + be_union *node) = 0; // = The be_visitor methods. virtual int visit_union (be_union *node); @@ -73,12 +75,14 @@ public: // constructor // = See be_visitor_union_any_op_cs - virtual int gen_insertion (TAO_OutStream* os, + virtual int gen_insertion (TAO_OutStream *os, be_union *node); - virtual int gen_insertion_nocopy (TAO_OutStream* os, + virtual int gen_insertion_nocopy (TAO_OutStream *os, be_union *node); - virtual int gen_extraction (TAO_OutStream* os, + virtual int gen_extraction (TAO_OutStream *os, be_union *node); + virtual int gen_const_extraction (TAO_OutStream *os, + be_union *node); }; class be_visitor_union_any_op_interpretive_cs : public be_visitor_union_any_op_cs @@ -103,6 +107,8 @@ public: be_union *node); virtual int gen_extraction (TAO_OutStream* os, be_union *node); + virtual int gen_const_extraction (TAO_OutStream *os, + be_union *node); }; #endif /* _BE_VISITOR_UNION_ANY_OP_CS_H_ */ |