summaryrefslogtreecommitdiff
path: root/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp')
-rw-r--r--TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp26
1 files changed, 20 insertions, 6 deletions
diff --git a/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp b/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
index c4236637691..ec1ded0b19f 100644
--- a/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
+++ b/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
@@ -63,20 +63,28 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node)
{
ANY_VALUE,
ANY_OBJREF,
- ANY_ARRAY
+ ANY_ARRAY,
+ ANY_STRING
};
type_category tc = ANY_VALUE;
+ AST_Decl::NodeType nt = bt->node_type ();
- if (bt->node_type () == AST_Decl::NT_array)
+ if (nt == AST_Decl::NT_array)
{
tc = ANY_ARRAY;
}
- else if (be_interface::narrow_from_decl (bt) != 0
- && be_valuetype::narrow_from_decl (bt) == 0)
+ else if ((be_interface::narrow_from_decl (bt) != 0
+ && be_valuetype::narrow_from_decl (bt) == 0)
+ || (be_interface_fwd::narrow_from_decl (bt) != 0
+ && be_valuetype_fwd::narrow_from_decl (bt) == 0))
{
tc = ANY_OBJREF;
}
+ else if (nt == AST_Decl::NT_string)
+ {
+ tc = ANY_STRING;
+ }
if (bt->node_type () == AST_Decl::NT_pre_defined)
{
@@ -108,17 +116,20 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node)
case ANY_OBJREF:
*os << "insert_objref_vector<"
<< bt->full_name () << "_ptr> (";
-
+ ACE_DEBUG ((LM_DEBUG, "objref: %s\n", bt->local_name ()->get_string ()));
break;
case ANY_ARRAY:
*os << "insert_array_vector<"
<< bt->full_name () << "_forany> (";
break;
+ case ANY_STRING:
+ *os << "insert_value_vector<std::string> (";
+ break;
default:
*os << "insert_value_vector<"
<< bt->full_name () << "> (";
-
+ ACE_DEBUG ((LM_DEBUG, "default: %s\n", bt->local_name ()->get_string ()));
break;
}
@@ -147,6 +158,9 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node)
<< bt->full_name () << "_forany> (";
break;
+ case ANY_STRING:
+ *os << "extract_value_vector<std::string> (";
+ break;
default:
*os << "extract_value_vector<"
<< bt->full_name () << "> (";