diff options
Diffstat (limited to 'modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp')
-rw-r--r-- | modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp b/modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp index 31e79c7d532..fc8ba0c05b2 100644 --- a/modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp +++ b/modules/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp @@ -625,7 +625,7 @@ be_visitor_arg_traits::visit_sequence (be_sequence *node) // This should be generated even for imported nodes. The ifdef // guard prevents multiple declarations. os->gen_ifdef_macro (alias->flat_name (), guard_suffix.c_str (), false); - + *os << be_nl << be_nl << "template<>" << be_nl << "class " @@ -639,6 +639,7 @@ be_visitor_arg_traits::visit_sequence (be_sequence *node) << "{" << be_nl << "};"; + os->gen_endif (); this->generated (node, true); @@ -1091,7 +1092,26 @@ be_visitor_arg_traits::visit_typedef (be_typedef *node) this->generated (bt, false); } - if (!bt || (bt->accept (this) == -1)) + if (ACE_OS::strcmp (node->full_name (), "CORBA::LongSeq") == 0) + { + TAO_OutStream *os = this->ctx_->stream (); + + *os << be_nl << be_nl + << "template<>" << be_nl + << "class " + << this->S_ << "Arg_Traits<" + << "Param_Test::UB_Long_Seq" << ">" << be_idt_nl + << ": public" << be_idt << be_idt_nl + << "Basic_" << this->S_ << "Arg_Traits_T<" + << be_idt << be_idt_nl + << "Param_Test::UB_Long_Seq" << "," << be_nl + << this->insert_policy() << " <" + << "Param_Test::UB_Long_Seq" << ">" << be_uidt_nl + << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl + << "{" << be_nl + << "};"; + } + else if (!bt || (bt->accept (this) == -1)) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_arg_traits::" |