diff options
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.cpp | 113 |
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 << "}"; } |