summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp113
1 files changed, 58 insertions, 55 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
index 114a9d2e691..7b52627a051 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
@@ -210,7 +210,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "::_is_a_skel (" << be_idt << be_idt_nl
<< "TAO_ServerRequest & server_request, " << be_nl
<< "void * TAO_INTERCEPTOR (servant_upcall)," << be_nl
- << "void * servant" << be_uidt_nl
+ << "void * servant" << env_decl << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt;
@@ -277,13 +277,15 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< " , exceptions" << be_nl
<< " , nexceptions"
<< "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */" << be_nl
- << " );";
+ << " "
+ << (be_global->use_raw_throw () ? "" : "ACE_ENV_ARG_PARAMETER")
+ << ");" << TAO_ACE_CHECK ();
this->generate_send_reply (os);
*os << be_uidt_nl
- << "}" << be_nl << be_nl;
-
+ << "}";
+
is_a.destroy ();
rt.destroy ();
s.get ()->destroy ();
@@ -317,7 +319,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "::_non_existent_skel (" << be_idt << be_idt_nl
<< "TAO_ServerRequest & server_request, " << be_nl
<< "void * TAO_INTERCEPTOR (servant_upcall)," << be_nl
- << "void * servant" << be_uidt_nl
+ << "void * servant" << env_decl << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt;
@@ -383,13 +385,15 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< " , exceptions" << be_nl
<< " , nexceptions"
<< "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */" << be_nl
- << " );";
+ << " "
+ << (be_global->use_raw_throw () ? "" : "ACE_ENV_ARG_PARAMETER")
+ << ");" << TAO_ACE_CHECK ();
this->generate_send_reply (os);
*os << be_uidt_nl
<< "}";
-
+
non_existent.destroy ();
rt.destroy ();
}
@@ -426,7 +430,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "::_repository_id_skel (" << be_idt << be_idt_nl
<< "TAO_ServerRequest & server_request, " << be_nl
<< "void * TAO_INTERCEPTOR (servant_upcall)," << be_nl
- << "void * servant" << be_uidt_nl
+ << "void * servant" << env_decl << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt;
@@ -492,13 +496,15 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< " , exceptions" << be_nl
<< " , nexceptions"
<< "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */" << be_nl
- << " );";
+ << " "
+ << (be_global->use_raw_throw () ? "" : "ACE_ENV_ARG_PARAMETER")
+ << ");" << TAO_ACE_CHECK ();
this->generate_send_reply (os);
*os << be_uidt_nl
<< "}";
-
+
repository_id.destroy ();
s.get ()->destroy ();
}
@@ -511,7 +517,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "::_interface_skel (" << be_idt << be_idt_nl
<< "TAO_ServerRequest & server_request, " << be_nl
<< "void * /* servant_upcall */," << be_nl
- << "void * servant" << be_uidt_nl
+ << "void * servant" << env_decl << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt_nl;
*os << "TAO_IFR_Client_Adapter *_tao_adapter =" << be_idt_nl
@@ -534,7 +540,12 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< be_uidt_nl;
*os << "::CORBA::InterfaceDef_ptr _tao_retval = " << be_idt_nl
- << "impl->_get_interface ();" << be_uidt
+ << "impl->_get_interface ("
+ << (be_global->use_raw_throw ()
+ ? ""
+ : "ACE_ENV_SINGLE_ARG_PARAMETER")
+ << ");" << be_uidt
+ << TAO_ACE_CHECK () << be_nl << be_nl
<< "server_request.init_reply ();" << be_nl
<< "TAO_OutputCDR &_tao_out = *server_request.outgoing ();"
<< be_nl << be_nl
@@ -553,7 +564,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
this->generate_send_reply (os);
*os << be_uidt_nl
- << "}" << be_nl << be_nl;
+ << "}";
// Generate code for the _component skeleton.
@@ -586,7 +597,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "::_component_skel (" << be_idt << be_idt_nl
<< "TAO_ServerRequest & server_request, " << be_nl
<< "void * TAO_INTERCEPTOR (servant_upcall)," << be_nl
- << "void * servant" << be_uidt_nl
+ << "void * servant" << env_decl << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt;
@@ -651,9 +662,11 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< " , exceptions" << be_nl
<< " , nexceptions"
<< "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */" << be_nl
- << " );" << be_uidt_nl
+ << " "
+ << (be_global->use_raw_throw () ? "" : "ACE_ENV_ARG_PARAMETER")
+ << ");" << TAO_ACE_CHECK () << be_uidt_nl
<< "}";
-
+
get_component.destroy ();
rt.destroy ();
}
@@ -662,7 +675,9 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
*os << be_nl << be_nl
<< "::CORBA::Boolean " << full_skel_name
- << "::_is_a (const char* value)" << be_nl
+ << "::_is_a (" << be_idt << be_idt_nl
+ << "const char* value" << env_not << be_uidt_nl
+ << ")" << be_uidt_nl
<< "{" << be_idt_nl
<< "return" << be_idt_nl
<< "(" << be_idt_nl;
@@ -704,8 +719,10 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
if (node->is_event_consumer ())
{
*os << be_nl << be_nl
- << "::CORBA::Boolean " << be_nl << full_skel_name
- << "::ciao_is_substitutable (const char *)" << be_idt_nl
+ << "::CORBA::Boolean " << full_skel_name
+ << "::ciao_is_substitutable (" << be_idt << be_idt_nl
+ << "const char * /* event_repo_id */" << env_not << be_uidt_nl
+ << ")" << be_nl
<< "ACE_THROW_SPEC (( ::CORBA::SystemException))" << be_uidt_nl
<< "{" << be_idt_nl
<< "return true;" << be_uidt_nl
@@ -717,27 +734,6 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
this->this_method (node);
- if (be_global->gen_tie_classes () && !node->tie_skel_gen ())
- {
- // Generate the TIE class.
- be_visitor_context ctx (*this->ctx_);
- ctx.state (TAO_CodeGen::TAO_ROOT_TIE_SS);
- ctx.stream (tao_cg->server_template_skeletons ());
- be_visitor_interface_tie_ss visitor (&ctx);
-
- if (node->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_ss::"
- "visit_interface - "
- "codegen for TIE class failed\n"),
- -1);
- }
-
- // AMH generation reuses this visit_interface(), hence the flag.
- node->tie_skel_gen (true);
- }
-
return 0;
}
@@ -770,12 +766,12 @@ be_visitor_interface_ss::gen_abstract_ops_helper (be_interface *node,
"bad node in this scope\n"),
-1);
}
-
+
AST_Decl::NodeType nt = d->node_type ();
-
+
UTL_ScopedName *item_new_name = 0;
UTL_ScopedName *new_name = 0;
-
+
if (AST_Decl::NT_op == nt || AST_Decl::NT_attr == nt)
{
ACE_NEW_RETURN (item_new_name,
@@ -803,10 +799,10 @@ be_visitor_interface_ss::gen_abstract_ops_helper (be_interface *node,
op->set_name (new_name);
op->set_defined_in (node);
op->is_abstract (node->is_abstract ());
-
+
be_visitor_operation_ss op_visitor (&ctx);
op_visitor.visit_operation (op);
-
+
op->set_name (old_name);
op->set_defined_in (base);
op->is_abstract (base->is_abstract ());
@@ -821,21 +817,21 @@ be_visitor_interface_ss::gen_abstract_ops_helper (be_interface *node,
attr->is_abstract ());
new_attr.set_defined_in (node);
new_attr.set_name (new_name);
-
+
UTL_ExceptList *get_exceptions = attr->get_get_exceptions ();
-
+
if (0 != get_exceptions)
{
new_attr.be_add_get_exceptions (get_exceptions->copy ());
}
-
+
UTL_ExceptList *set_exceptions = attr->get_set_exceptions ();
-
+
if (0 != set_exceptions)
{
new_attr.be_add_set_exceptions (set_exceptions->copy ());
}
-
+
be_visitor_attribute attr_visitor (&ctx);
attr_visitor.visit_attribute (&new_attr);
ctx.attribute (0);
@@ -857,10 +853,14 @@ be_visitor_interface_ss::this_method (be_interface *node)
// the _this () operation.
*os << node->full_name () << " *" << be_nl
<< node->full_skel_name ()
- << "::_this (void)" << be_nl
+ << "::_this ("
+ << (be_global->use_raw_throw () ? "void" : "ACE_ENV_SINGLE_ARG_DECL")
+ << ")" << be_nl
<< "{" << be_idt_nl
- << "TAO_Stub *stub = this->_create_stub ();"
- << be_nl << be_nl
+ << "TAO_Stub *stub = this->_create_stub ("
+ << (be_global->use_raw_throw () ? "" : "ACE_ENV_SINGLE_ARG_PARAMETER")
+ << ");"
+ << TAO_ACE_CHECK ("0") << be_nl << be_nl
<< "TAO_Stub_Auto_Ptr safe_stub (stub);" << be_nl;
*os << "::CORBA::Object_ptr tmp = CORBA::Object::_nil ();"
@@ -905,12 +905,15 @@ be_visitor_interface_ss::dispatch_method (be_interface *node)
*os << "void " << node->full_skel_name ()
<< "::_dispatch (" << be_idt << be_idt_nl
<< "TAO_ServerRequest & req," << be_nl
- << "void * servant_upcall" << be_uidt_nl
+ << "void * servant_upcall" << env_decl << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt_nl;
*os << "this->synchronous_upcall_dispatch (req," << be_nl
<< " servant_upcall," << be_nl
- << " this);"
+ << " this" << be_nl
+ << " "
+ << (be_global->use_raw_throw () ? "" : "ACE_ENV_ARG_PARAMETER")
+ << ");"
<< be_uidt_nl;
*os << "}";
}