summaryrefslogtreecommitdiff
path: root/modules/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp')
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp46
1 files changed, 35 insertions, 11 deletions
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp b/modules/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
index cf33df441df..8066d7533b6 100644
--- a/modules/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
+++ b/modules/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
@@ -84,12 +84,11 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node)
*os << be_nl
<< "void operator<<= (" << be_idt_nl
- << "::CORBA::Any &any," << be_nl
+ << "::CORBA::Any &_tao_any," << be_nl
<< "const std::vector<" << bt->full_name ()
- << "> &val" << be_uidt_nl
+ << "> &_tao_elem" << be_uidt_nl
<< "{" << be_idt_nl
- << "return" << be_idt_nl
- << "TAO_VERSIONED_NAMESPACE_NAME::TAO::";
+ << "TAO::";
switch (tc)
{
@@ -111,20 +110,45 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node)
}
*os << be_idt_nl
- << "any," << be_nl
- << "val);" << be_uidt << be_uidt << be_uidt_nl
+ << "_tao_any," << be_nl
+ << "_tao_elem);" << be_uidt << be_uidt_nl
<< "}";
*os << be_nl << be_nl
<< "::CORBA::Boolean operator>>= (" << be_idt_nl
- << "const ::CORBA::Any &," << be_nl
+ << "const ::CORBA::Any &_tao_any," << be_nl
<< "std::vector<" << bt->full_name ()
- << ">" << be_uidt_nl
+ << "> &_tao_elem" << be_uidt_nl
<< "{" << be_idt_nl
- << "return true;" << be_uidt_nl
+ << "return" << be_idt_nl
+ << "TAO::";
+
+ switch (tc)
+ {
+ case ANY_OBJREF:
+ *os << "extract_objref_vector<"
+ << bt->full_name () << "_ptr> (";
+
+ break;
+ case ANY_ARRAY:
+ *os << "extract_array_vector<"
+ << bt->full_name () << "_forany> (";
+
+ break;
+ default:
+ *os << "extract_value_vector<"
+ << bt->full_name () << "> (";
+
+ break;
+ }
+
+ *os << be_idt_nl
+ << "_tao_any," << be_nl
+ << "_tao_elem);" << be_uidt << be_uidt << be_uidt_nl
<< "}";
-
- *os << be_global->core_versioning_end () << be_nl;
+
+ *os << be_nl
+ << be_global->core_versioning_end () << be_nl;
node->cli_stub_any_op_gen (true);
return 0;