diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-03-29 20:30:06 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-03-29 20:30:06 +0000 |
commit | 1af4b3c45018a0cf76697dafb35ec3d581ba8a25 (patch) | |
tree | 7421604822d5b29b3c08f1231ce80e847d211bbe | |
parent | 9fb68716513d06b249f7130e8fc8938c59e7aa6e (diff) | |
download | ATCD-1af4b3c45018a0cf76697dafb35ec3d581ba8a25.tar.gz |
ChangeLogTag: Mon Mar 29 20:28:34 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | modules/TAO/ChangeLog | 8 | ||||
-rw-r--r-- | modules/TAO/TAO_IDL/be/be_codegen.cpp | 35 | ||||
-rw-r--r-- | modules/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp | 46 |
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; |