summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-03-29 20:30:06 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-03-29 20:30:06 +0000
commit1af4b3c45018a0cf76697dafb35ec3d581ba8a25 (patch)
tree7421604822d5b29b3c08f1231ce80e847d211bbe
parent9fb68716513d06b249f7130e8fc8938c59e7aa6e (diff)
downloadATCD-1af4b3c45018a0cf76697dafb35ec3d581ba8a25.tar.gz
ChangeLogTag: Mon Mar 29 20:28:34 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--modules/TAO/ChangeLog8
-rw-r--r--modules/TAO/TAO_IDL/be/be_codegen.cpp35
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp46
3 files changed, 62 insertions, 27 deletions
diff --git a/modules/TAO/ChangeLog b/modules/TAO/ChangeLog
index 3c3047875f5..63490b9321f 100644
--- a/modules/TAO/ChangeLog
+++ b/modules/TAO/ChangeLog
@@ -1,3 +1,11 @@
+Mon Mar 29 20:28:34 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_codegen.cpp:
+ * TAO_IDL/be_visitor_sequence/any_op_cs.cpp:
+
+ Minor mods to codegen for STL includes and STL any
+ operators.
+
Mon Mar 29 18:49:32 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
* TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp:
diff --git a/modules/TAO/TAO_IDL/be/be_codegen.cpp b/modules/TAO/TAO_IDL/be/be_codegen.cpp
index 607f0dd548b..d0157a4f97d 100644
--- a/modules/TAO/TAO_IDL/be/be_codegen.cpp
+++ b/modules/TAO/TAO_IDL/be/be_codegen.cpp
@@ -272,9 +272,12 @@ TAO_CodeGen::start_client_header (const char *fname)
}
else
{
- *this->client_header_ << "\n#include <string>";
- *this->client_header_ << "\n#include <vector>\n";
-
+ if (be_global->alt_mapping ())
+ {
+ *this->client_header_ << "#include <string>"
+ << "\n#include <vector>\n";
+ }
+
this->gen_stub_hdr_includes ();
size_t const nfiles = idl_global->n_included_idl_files ();
@@ -2477,6 +2480,19 @@ TAO_CodeGen::gen_stub_src_includes (void)
this->gen_any_file_includes (this->client_stubs_);
}
+ if (be_global->alt_mapping () && idl_global->seq_seen_)
+ {
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Vector_CDR_T.h");
+
+ if (be_global->any_support ())
+ {
+ this->gen_standard_include (
+ this->client_stubs_,
+ "tao/AnyTypeCode/Vector_AnyOp_T.h");
+ }
+ }
+
// Includes whatever arg helper template classes that may be needed.
this->gen_stub_arg_file_includes (this->client_stubs_);
@@ -2501,19 +2517,6 @@ TAO_CodeGen::gen_stub_src_includes (void)
this->gen_standard_include (this->client_stubs_,
"ace/Auto_Ptr.h");
}
-
- if (be_global->alt_mapping () && idl_global->seq_seen_)
- {
- this->gen_standard_include (this->client_stubs_,
- "tao/Vector_CDR_T.h");
-
- if (be_global->any_support ())
- {
- this->gen_standard_include (
- this->client_stubs_,
- "tao/AnyTypeCode/Vector_AnyOp_T.h");
- }
- }
}
void
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;