summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp
index 4b5a6781d61..9913c49a288 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp
@@ -53,12 +53,29 @@ be_visitor_interface_any_op_ch::visit_interface (be_interface *node)
os->indent ();
// Generate the stub factory function pointer declaration
- *os << "extern " << node->name () << "_ptr (*_TAO_collocation_"
- << node->flatname () << "_Stub_Factory_function_pointer) ("
+ *os << "extern " << node->full_name () << "_ptr (*_TAO_collocation_"
+ << node->flat_name () << "_Stub_Factory_function_pointer) ("
<< be_idt << be_idt_nl
<< "CORBA::Object_ptr obj" << be_uidt_nl
<< ");" << be_uidt_nl;
+ // @@ Michael: This might not be the right place ..
+ if (idl_global->ami_call_back () == I_TRUE)
+ {
+ // AMI Handler stuff
+ be_interface_type_strategy *old_strategy =
+ node->set_strategy (new be_interface_ami_handler_strategy (node));
+
+ // Generate the stub factory function pointer declaration
+ *os << "extern " << node->full_name () << "_ptr (*_TAO_collocation_"
+ << node->flat_name () << "_Stub_Factory_function_pointer) ("
+ << be_idt << be_idt_nl
+ << "CORBA::Object_ptr obj" << be_uidt_nl
+ << ");" << be_uidt_nl;
+
+ delete node->set_strategy (old_strategy);
+ }
+
// generate the Any <<= and >>= operator declarations
os->indent ();
*os << "// Any operators for interface " << node->name () << be_nl;