diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_interface')
18 files changed, 249 insertions, 160 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp index b6048ac5ed0..19e7340f37c 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp @@ -120,47 +120,53 @@ be_visitor_amh_interface_sh::visit_interface (be_interface *node) << "& rhs);" << be_nl << "virtual ~" << class_name.c_str () << " (void);\n\n" << be_nl - << "virtual ::CORBA::Boolean _is_a (const char* logical_type_id);" << be_nl << be_nl; + << "virtual ::CORBA::Boolean _is_a (" << be_idt << be_idt_nl + << "const char* logical_type_id" << env_dflts << be_uidt_nl + << ");" << be_uidt_nl << be_nl; + +// *os << "virtual void* _downcast (" << be_idt << be_idt_nl +// << "const char* logical_type_id" << be_uidt_nl +// << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _is_a method. *os << "static void _is_a_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &req," << be_nl << "void *obj," << be_nl - << "void *servant_upcall" << be_uidt_nl + << "void *servant_upcall" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _non_existent method. *os << "static void _non_existent_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &req," << be_nl << "void *obj," << be_nl - << "void *servant_upcall" << be_uidt_nl + << "void *servant_upcall" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _interface method. *os << "static void _interface_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &req," << be_nl << "void *obj," << be_nl - << "void *servant_upcall" << be_uidt_nl + << "void *servant_upcall" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _component method. *os << "static void _component_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &req," << be_nl << "void *obj," << be_nl - << "void *servant_upcall" << be_uidt_nl + << "void *servant_upcall" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _repository_id method. *os << "static void _repository_id_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &req," << be_nl << "void *obj," << be_nl - << "void *servant_upcall" << be_uidt_nl + << "void *servant_upcall" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add the dispatch method. *os << "virtual void _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 << be_nl; this->this_method (node); @@ -421,5 +427,7 @@ be_visitor_amh_interface_sh::this_method (be_interface *node) // interfaces is "special", because the returned type is not exactly // the type of the class, but the original class that "implied" the // AMH one. - *os << non_amh_name.c_str () << " *_this (void);\n" << be_uidt; + *os << non_amh_name.c_str () << " *_this (" << be_idt << be_idt + << env_dflts << be_uidt_nl + << ");\n" << be_uidt; } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_si.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_si.cpp index ada8c73a682..10118851bcf 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/amh_si.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_si.cpp @@ -135,7 +135,7 @@ be_visitor_amh_interface_si::gen_skel_helper (be_interface *derived, << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & req," << be_nl << "void * context," << be_nl - << "void * obj" << be_uidt_nl + << "void * obj" << env_decl << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl; *os << ancestor_amh_name @@ -147,7 +147,7 @@ be_visitor_amh_interface_si::gen_skel_helper (be_interface *derived, << "_skel (" << be_idt << be_idt_nl << "req," << be_nl << "context," << be_nl - << "impl" << be_uidt_nl + << "impl" << env_arg << be_uidt_nl << ");" << be_uidt << be_uidt_nl << "}"; } @@ -171,7 +171,7 @@ be_visitor_amh_interface_si::gen_skel_helper (be_interface *derived, << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & req," << be_nl << "void * context," << be_nl - << "void * obj" << be_uidt_nl + << "void * obj" << env_decl << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl; @@ -185,7 +185,7 @@ be_visitor_amh_interface_si::gen_skel_helper (be_interface *derived, << "_skel (" << be_idt << be_idt_nl << "req," << be_nl << "context," << be_nl - << "impl" << be_uidt_nl + << "impl" << env_arg << be_uidt_nl << ");" << be_uidt << be_uidt_nl << "}"; @@ -203,7 +203,7 @@ be_visitor_amh_interface_si::gen_skel_helper (be_interface *derived, << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & req," << be_nl << "void * context," << be_nl - << "void * obj" << be_uidt_nl + << "void * obj" << env_decl << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl; @@ -217,7 +217,7 @@ be_visitor_amh_interface_si::gen_skel_helper (be_interface *derived, << "_skel (" << be_idt << be_idt_nl << "req," << be_nl << "context," << be_nl - << "impl" << be_uidt_nl + << "impl" << env_arg << be_uidt_nl << ");" << be_uidt << be_uidt_nl << "}"; } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp index 4f2a6a11f59..3760418d94b 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp @@ -71,9 +71,13 @@ be_visitor_amh_interface_ss::this_method (be_interface *node) *os << non_amh_name.c_str () << "*" << be_nl << 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; *os << "TAO_Stub_Auto_Ptr safe_stub (stub);" << be_nl << "::CORBA::Object_ptr tmp = CORBA::Object::_nil ();" << be_nl @@ -126,13 +130,13 @@ be_visitor_amh_interface_ss::dispatch_method (be_interface *node) *os << "void" << be_nl << full_skel_name << "::_dispatch (" << be_idt << be_idt_nl << "TAO_ServerRequest & req," << be_nl - << "void * context" << be_uidt_nl + << "void * context" << env_decl << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl << "this->asynchronous_upcall_dispatch (" << be_idt << be_idt_nl << "req," << be_nl << "context," << be_nl - << "this" << be_uidt_nl + << "this" << env_arg << be_uidt_nl << ");" << be_uidt << be_uidt_nl << "}"; } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/base_proxy_broker_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/base_proxy_broker_ch.cpp index 22f87873065..916f4cb041d 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/base_proxy_broker_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/base_proxy_broker_ch.cpp @@ -50,7 +50,7 @@ be_visitor_interface_base_proxy_broker_ch::visit_interface ( << "select_proxy (" << be_idt << be_idt_nl; - *os << node->local_name () << " *object" << be_uidt_nl + *os << node->local_name () << " *object" << env_dflts << be_uidt_nl << ") = 0;" << be_uidt_nl // idt = 1 << be_uidt_nl; // idt = 0 diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp index c8bef6a36d7..6619f38955d 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp @@ -156,7 +156,7 @@ be_visitor_interface::add_abstract_op_args (AST_Operation *old_op, } UTL_ExceptList *excep_list = old_op->exceptions (); - + if (0 != excep_list) { new_op.be_add_exceptions (excep_list->copy ()); @@ -443,9 +443,9 @@ be_visitor_interface::visit_operation (be_operation *node) status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_TIE_SS: + case TAO_CodeGen::TAO_ROOT_TIE_SI: { - be_visitor_operation_tie_ss visitor (&ctx); + be_visitor_operation_tie_si visitor (&ctx); status = node->accept (&visitor); break; } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp index 099c064cd3d..cc30fc493a9 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp @@ -219,12 +219,16 @@ be_visitor_interface_ch::visit_interface (be_interface *node) { *os << "// These two are inherited from SessionComponent." << be_nl << be_nl - << "virtual void ciao_preactivate (void)" << be_nl + << "virtual void ciao_preactivate (" << be_idt << be_idt + << env_sngl_dflts << be_uidt_nl + << ")" << be_nl << "ACE_THROW_SPEC ((" << be_idt_nl << "::CORBA::SystemException," << be_nl << "::Components::CCMException" << be_uidt_nl << "));" << be_uidt_nl << be_nl - << "virtual void ciao_postactivate (void)" << be_nl + << "virtual void ciao_postactivate (" << be_idt << be_idt + << env_sngl_dflts << be_uidt_nl + << ")" << be_nl << "ACE_THROW_SPEC ((" << be_idt_nl << "::CORBA::SystemException," << be_nl << "::Components::CCMException" << be_uidt_nl @@ -239,7 +243,9 @@ be_visitor_interface_ch::visit_interface (be_interface *node) } // The _is_a method - *os << "virtual ::CORBA::Boolean _is_a (const char *type_id);" << be_nl; + *os << "virtual ::CORBA::Boolean _is_a (" << be_idt << be_idt_nl + << "const char *type_id" << env_dflts << be_uidt_nl + << ");" << be_uidt_nl << be_nl; // The _interface_repository_id method. *os << "virtual const char* _interface_repository_id (void) const;"; @@ -439,7 +445,7 @@ be_visitor_interface_ch::gen_xxx_narrow (const char *nar, TAO_OutStream *os) { *os << "static " << node->local_name () << "_ptr " - << nar << " ("; + << nar << " (" << be_idt << be_idt_nl; if (node->is_abstract ()) { @@ -450,7 +456,8 @@ be_visitor_interface_ch::gen_xxx_narrow (const char *nar, *os << "::CORBA::Object_ptr obj"; } - *os << ");" << be_nl; + *os << env_dflts << be_uidt_nl + << ");" << be_uidt_nl << be_nl; return true; } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp index aa0b85df8ae..1ffea0d9e62 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp @@ -342,13 +342,19 @@ be_visitor_interface_cs::visit_interface (be_interface *node) *os << "// These two are inherited from SessionComponent." << be_nl << be_nl << "void" << be_nl - << node->full_name () << "::ciao_preactivate (void)" << be_idt_nl + << node->full_name () << "::ciao_preactivate (" + << be_idt << be_idt + << env_sngl_not << be_uidt_nl + << ")" << be_uidt_nl << "ACE_THROW_SPEC (( ::CORBA::SystemException," << be_nl << " ::Components::CCMException))" << be_uidt_nl << "{" << be_nl << "}" << be_nl << be_nl << "void" << be_nl - << node->full_name () << "::ciao_postactivate (void)" << be_idt_nl + << node->full_name () << "::ciao_postactivate (" + << be_idt << be_idt + << env_sngl_not << be_uidt_nl + << ")" << be_uidt_nl << "ACE_THROW_SPEC (( ::CORBA::SystemException," << be_nl << " ::Components::CCMException))" << be_uidt_nl << "{" << be_nl @@ -356,12 +362,23 @@ be_visitor_interface_cs::visit_interface (be_interface *node) } *os << "::CORBA::Boolean" << be_nl - << node->full_name () << "::_is_a (const char *value)" << be_nl; + << node->full_name () << "::_is_a (" << be_idt << be_idt_nl + << "const char *value"; - *os << "{" << be_idt_nl + if (node->is_local () || node->is_abstract ()) + { + *os << env_not; + } + else + { + *os << env_decl; + } + + *os << be_uidt_nl << ")" << be_uidt_nl + << "{" << be_idt_nl << "if (" << be_idt << be_idt_nl; - int const status = + int status = node->traverse_inheritance_graph (be_interface::is_a_helper, os); @@ -419,7 +436,10 @@ be_visitor_interface_cs::visit_interface (be_interface *node) } else { - *os << "return this->::CORBA::Object::_is_a (value);" << be_uidt_nl; + *os << "return this->::CORBA::Object::_is_a (" + << be_idt << be_idt_nl + << "value" << env_arg << be_uidt_nl + << ");" << be_uidt << be_uidt_nl; } *os << "}" << be_uidt << be_uidt_nl @@ -512,6 +532,7 @@ be_visitor_interface_cs::gen_xxx_narrow (const char *pre, } *os << " _tao_objref" + << (node->is_local () ? env_not : env_decl) << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl; @@ -539,7 +560,7 @@ be_visitor_interface_cs::gen_xxx_narrow (const char *pre, << "\"" << node->repoID () << "\"," << be_nl << node->flat_client_enclosing_scope () << node->base_proxy_broker_name () - << "_Factory_function_pointer" << be_uidt_nl + << "_Factory_function_pointer" << env_arg << be_uidt_nl << ");" << be_uidt << be_nl << "return TAO_" << node->flat_name () << "_PROXY_FACTORY_ADAPTER::instance ()->create_proxy (proxy);" @@ -566,7 +587,7 @@ be_visitor_interface_cs::gen_xxx_narrow (const char *pre, << "\"" << node->repoID () << "\"," << be_nl << node->flat_client_enclosing_scope () << node->base_proxy_broker_name () - << "_Factory_function_pointer" << be_uidt_nl + << "_Factory_function_pointer" << env_arg << be_uidt_nl << ");" << be_uidt << be_uidt << be_uidt_nl << "}" << be_nl << be_nl; } @@ -616,18 +637,18 @@ be_visitor_interface_cs::gen_abstract_ops_helper (be_interface *node, UTL_ScopedName *new_op_name = (UTL_ScopedName *)node->name ()->copy (); new_op_name->nconc (item_new_name); - + be_operation *op = be_operation::narrow_from_decl (d); UTL_ScopedName *old_op_name = (UTL_ScopedName *) op->name ()->copy (); op->set_name (new_op_name); op->set_defined_in (node); op->is_abstract (node->is_abstract ()); - + ctx.state (TAO_CodeGen::TAO_OPERATION_CS); be_visitor_operation_cs op_visitor (&ctx); op_visitor.visit_operation (op); - + op->set_name (old_op_name); op->set_defined_in (base); op->is_abstract (base->is_abstract ()); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp index 6c5f1929e09..82a0472a7ed 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp @@ -163,54 +163,59 @@ be_visitor_interface_sh::visit_interface (be_interface *node) *os << "// Default implementation of CIAO-specific operation," << be_nl << "// overridden in derived class generated by the CIDL compiler." << be_nl - << "virtual ::CORBA::Boolean ciao_is_substitutable (const char *event_repo_id)" << be_idt_nl + << "virtual ::CORBA::Boolean ciao_is_substitutable (" + << be_idt << be_idt_nl + << "const char *event_repo_id" << env_dflts << be_uidt_nl + << ")" << be_nl << "ACE_THROW_SPEC (( ::CORBA::SystemException));" << be_uidt_nl << be_nl; } // _is_a - *os << "virtual ::CORBA::Boolean _is_a (const char* logical_type_id);" << be_nl << be_nl; + *os << "virtual ::CORBA::Boolean _is_a (" << be_idt << be_idt_nl + << "const char* logical_type_id" << env_dflts << be_uidt_nl + << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _is_a method. *os << "static void _is_a_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & req," << be_nl << "void * servant_upcall," << be_nl - << "void * servant" << be_uidt_nl + << "void * servant" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _non_existent method. *os << "static void _non_existent_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & req," << be_nl << "void * servant_upcall," << be_nl - << "void * servant" << be_uidt_nl + << "void * servant" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _interface method. *os << "static void _interface_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & req," << be_nl << "void * servant_upcall," << be_nl - << "void * servant" << be_uidt_nl + << "void * servant" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _component method. *os << "static void _component_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & req," << be_nl << "void * servant_upcall," << be_nl - << "void * servant" << be_uidt_nl + << "void * servant" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _repository_id method. *os << "static void _repository_id_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & req," << be_nl << "void * servant_upcall," << be_nl - << "void * servant" << be_uidt_nl + << "void * servant" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add the dispatch method. *os << "virtual void _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 << be_nl; this->this_method (node); @@ -349,21 +354,21 @@ be_visitor_interface_sh::gen_abstract_ops_helper ( attr->is_local (), attr->is_abstract ()); new_attr.set_defined_in (node); - + 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); @@ -380,7 +385,9 @@ be_visitor_interface_sh::this_method (be_interface *node) TAO_OutStream *os = this->ctx_->stream (); // Print out the _this() method. - *os << "::" << node->full_name () << " *_this (void);" << be_nl; + *os << "::" << node->full_name () << " *_this (" << be_idt << be_idt_nl + << env_dflts << be_uidt_nl + << ");" << be_uidt << be_nl; } int diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp index deacb66cb3d..1f140530861 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp @@ -100,6 +100,24 @@ be_visitor_interface_si::visit_interface (be_interface *node) } } + if (be_global->gen_tie_classes ()) + { + // Generate the TIE class. + be_visitor_context ctx (*this->ctx_); + ctx.state (TAO_CodeGen::TAO_ROOT_TIE_SI); + ctx.stream (tao_cg->server_template_inline ()); + be_visitor_interface_tie_si visitor (&ctx); + + if (node->accept (&visitor) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "be_visitor_interface_sh::" + "visit_interface - " + "codegen for TIE class failed\n"), + -1); + } + } + return 0; } 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 << "}"; } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_broker_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_broker_ch.cpp index fca454e14bf..12c8f672665 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_broker_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_broker_ch.cpp @@ -58,7 +58,7 @@ be_visitor_interface_remote_proxy_broker_ch::visit_interface ( << "select_proxy (" << be_idt << be_idt_nl; - *os << node->local_name () << " *object" << be_uidt_nl + *os << node->local_name () << " *object" << env_decl << be_uidt_nl << ");" << be_uidt_nl << be_uidt_nl; *os << "private:" << be_idt_nl diff --git a/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_broker_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_broker_cs.cpp index 8c9fd65d0e0..30d5a00dd13 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_broker_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/remote_proxy_broker_cs.cpp @@ -84,7 +84,7 @@ be_visitor_interface_remote_proxy_broker_cs::visit_interface ( *os << node->full_base_proxy_impl_name () << "&" << be_nl <<node->full_remote_proxy_broker_name () << "::" << "select_proxy (" << be_idt << be_idt_nl - << "::" << node->full_name () << " *" << be_uidt_nl + << "::" << node->full_name () << " *" << env_not << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl // idt = 1 << "return this->remote_proxy_impl_;" diff --git a/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp index e496357fd83..c55d08b839e 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp @@ -75,7 +75,7 @@ int be_visitor_interface_smart_proxy_ch::visit_interface (be_interface *node) << "virtual "<< node->local_name () << "_ptr create_proxy (" << be_idt << be_idt_nl << node->local_name () - << "_ptr proxy" << be_uidt_nl + << "_ptr proxy" << env_dflts << be_uidt_nl << ");" << be_uidt << be_uidt_nl << "};\n\n"; @@ -88,12 +88,14 @@ int be_visitor_interface_smart_proxy_ch::visit_interface (be_interface *node) << "_Proxy_Factory_Adapter, TAO_SYNCH_RECURSIVE_MUTEX>;" << be_nl << be_nl << "void register_proxy_factory (" << be_idt << be_idt_nl << "TAO_" << node->flat_name () << "_Default_Proxy_Factory *df,"<< be_nl - << "bool one_shot_factory = true" << be_uidt_nl + << "int one_shot_factory = 1" << env_dflts << be_uidt_nl + << ");" << be_uidt_nl << be_nl + << "void unregister_proxy_factory (" << be_idt << be_idt + << env_dflts << be_uidt_nl << ");" << be_uidt_nl << be_nl - << "void unregister_proxy_factory (void);" << be_nl << be_nl << node->local_name () << "_ptr create_proxy (" << be_idt << be_idt_nl - << node->local_name () << "_ptr proxy" << be_uidt_nl + << node->local_name () << "_ptr proxy" << env_dflts << be_uidt_nl << ");" << be_uidt << be_uidt_nl << be_nl << "protected:" << be_idt_nl << "TAO_" << node->flat_name () @@ -107,8 +109,8 @@ int be_visitor_interface_smart_proxy_ch::visit_interface (be_interface *node) << ");" << be_uidt_nl << "TAO_" << node->flat_name () << "_Default_Proxy_Factory *proxy_factory_;" << be_nl - << "bool one_shot_factory_;" << be_nl - << "bool disable_factory_;"<<be_nl + << "int one_shot_factory_;" << be_nl + << "int disable_factory_;"<<be_nl << "TAO_SYNCH_RECURSIVE_MUTEX lock_;" << be_uidt_nl << "};"; diff --git a/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp index 0c57077fdff..4c4c41b8013 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp @@ -97,7 +97,7 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node) *os << "TAO_" << node->flat_name () << "_Default_Proxy_Factory::create_proxy (" << be_idt << be_idt_nl << "::" << node->full_name () - << "_ptr proxy" << be_uidt_nl + << "_ptr proxy" << env_not << be_uidt_nl << ")" << be_uidt << be_uidt_nl << "{" << be_idt_nl << "return proxy;" << be_uidt_nl @@ -116,8 +116,8 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node) *os << "TAO_" << node->flat_name () << "_Proxy_Factory_Adapter (void)" << be_idt_nl << ": proxy_factory_ (0)," << be_idt_nl - << "one_shot_factory_ (false)," << be_nl - << "disable_factory_ (false)" << be_uidt << be_uidt_nl + << "one_shot_factory_ (0)," << be_nl + << "disable_factory_ (0)" << be_uidt << be_uidt_nl << "{" << be_nl << "}\n\n"; @@ -157,7 +157,7 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node) << "_Proxy_Factory_Adapter::register_proxy_factory (" << be_idt << be_idt_nl << "TAO_" << node->flat_name () << "_Default_Proxy_Factory *df," << be_nl - << "bool one_shot_factory" << be_uidt_nl + << "int one_shot_factory" << env_decl << be_uidt_nl << ")" << be_uidt << be_uidt_nl << "{" << be_idt_nl << "ACE_MT (" << be_idt << be_idt_nl @@ -169,7 +169,11 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node) << ");" <<be_uidt_nl << be_nl << "// Remove any existing <proxy_factory_> and " << "replace with the new one." << be_nl - << "this->unregister_proxy_factory ();" << be_nl + << "this->unregister_proxy_factory (" + << (be_global->use_raw_throw () + ? "" + : "ACE_ENV_SINGLE_ARG_PARAMETER") + << ");" << TAO_ACE_CHECK () << be_nl << "this->proxy_factory_ = df;" << be_nl << "this->one_shot_factory_ = one_shot_factory;" << be_uidt_nl << "}\n\n"; @@ -183,7 +187,10 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node) *os << "::"; *os << "TAO_"<< node->flat_name () - << "_Proxy_Factory_Adapter::unregister_proxy_factory (void)" << be_nl + << "_Proxy_Factory_Adapter::unregister_proxy_factory (" + << be_idt << be_idt + << env_sngl_not << be_uidt_nl + << ")" << be_uidt_nl << "{" << be_idt_nl << "ACE_MT (" << be_idt << be_idt_nl << "ACE_GUARD (" << be_idt << be_idt_nl @@ -192,12 +199,12 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node) << "this->lock_" << be_uidt_nl << ")" << be_uidt << be_uidt_nl << ");" <<be_uidt_nl << be_nl - << "if (this->one_shot_factory_)" << be_idt_nl + << "if (this->one_shot_factory_ == 1)" << be_idt_nl << "{" << be_idt_nl - << "this->disable_factory_ = true;" << be_uidt_nl + << "this->disable_factory_ = 1;" << be_uidt_nl << "}" << be_uidt_nl << be_nl << "if (" - << "this->one_shot_factory_ == false && this->proxy_factory_ != 0)" + << "this->one_shot_factory_ == 0 && this->proxy_factory_ != 0)" << be_idt_nl << "{" << be_idt_nl << "delete " @@ -217,7 +224,7 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node) *os << "TAO_"<< node->flat_name () << "_Proxy_Factory_Adapter::create_proxy (" << be_idt << be_idt_nl << "::" << node->full_name () - << "_ptr proxy" << be_uidt_nl + << "_ptr proxy" << env_not << be_uidt_nl << ")" << be_uidt << be_uidt_nl << "{" << be_idt_nl << "ACE_MT (ACE_GUARD_RETURN (" @@ -225,9 +232,9 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node) << "this->lock_, 0));" << be_uidt_nl << be_nl << "// To take care of those <unchecked_narrow> methods where we " << be_nl << "// want to override the smart proxy factory if there exists one." << be_nl - << "if (this->disable_factory_)" << be_idt_nl + << "if (this->disable_factory_ == 1)" << be_idt_nl << "{" << be_idt_nl - << "this->disable_factory_ = false;" << be_nl + << "this->disable_factory_ = 0;" << be_nl << "return proxy;" << be_uidt_nl << "}" << be_uidt_nl << be_nl << "// Verify that an <proxy_factory_> is available else make one." << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp index 466032f3221..baf3709e1b7 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp @@ -52,8 +52,10 @@ be_visitor_interface_strategized_proxy_broker_sh::visit_interface ( *os << be_nl << be_nl << "TAO::Collocation_Strategy" << be_nl - << "get_strategy (::CORBA::Object_ptr obj)" - << be_idt_nl << "ACE_THROW_SPEC (( ::CORBA::SystemException));" << be_uidt; + << "get_strategy (" << be_idt << be_idt_nl + << "::CORBA::Object_ptr obj" << env_decl << be_uidt_nl + << ")" << be_nl + << "ACE_THROW_SPEC (( ::CORBA::SystemException));" << be_uidt; *os << be_nl << be_nl << "void" << be_nl @@ -64,7 +66,7 @@ be_visitor_interface_strategized_proxy_broker_sh::visit_interface ( << "int num_args," << be_nl << "const char * op," << be_nl << "size_t op_len," << be_nl - << "TAO::Collocation_Strategy strategy" << be_uidt_nl + << "TAO::Collocation_Strategy strategy" << env_decl << be_uidt_nl << ")" << be_nl << "ACE_THROW_SPEC (( ::CORBA::Exception));"; diff --git a/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp index b342717e39c..80ce04b3f3f 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp @@ -67,12 +67,15 @@ be_visitor_interface_strategized_proxy_broker_ss::visit_interface ( *os << "TAO::Collocation_Strategy" << be_nl << node->full_strategized_proxy_broker_name () << "::" << "get_strategy (" << be_idt << be_idt_nl - << "::CORBA::Object_ptr obj" << be_uidt_nl + << "::CORBA::Object_ptr obj" << env_decl << be_uidt_nl << ")" << be_nl << "ACE_THROW_SPEC (( ::CORBA::SystemException))" << be_uidt_nl << "{" << be_idt_nl << "TAO::Collocation_Strategy strategy =" << be_idt_nl - << "TAO_ORB_Core::collocation_strategy (obj);" << be_uidt + << "TAO_ORB_Core::collocation_strategy (obj" + << (be_global->use_raw_throw () ? "" : " ACE_ENV_ARG_PARAMETER") + << ");" << be_uidt + << TAO_ACE_CHECK ("TAO::TAO_CS_REMOTE_STRATEGY") << be_nl << be_nl << "return strategy;" << be_uidt_nl << "}" << be_nl << be_nl; @@ -87,7 +90,7 @@ be_visitor_interface_strategized_proxy_broker_ss::visit_interface ( << "int num_args," << be_nl << "const char * op," << be_nl << "size_t op_len," << be_nl - << "TAO::Collocation_Strategy strategy" << be_uidt_nl + << "TAO::Collocation_Strategy strategy" << env_decl << be_uidt_nl << ")" << be_nl << "ACE_THROW_SPEC (( ::CORBA::Exception))" << be_uidt_nl << "{" << be_idt_nl @@ -99,7 +102,8 @@ be_visitor_interface_strategized_proxy_broker_ss::visit_interface ( << "num_args," << be_nl << "op," << be_nl << "op_len," << be_nl - << "strategy);" << be_uidt << be_uidt_nl + << "strategy" << env_arg + << ");" << be_uidt << be_uidt_nl << "}"; *os << be_nl << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp index 72843dc3259..d5d3c41885a 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp @@ -117,7 +117,9 @@ be_visitor_interface_tie_sh::visit_interface (be_interface *node) << "/// set the ownership" << be_nl << be_nl << "void _is_owner ( ::CORBA::Boolean b);" << be_nl << "// overridden ServantBase operations" << be_nl - << "PortableServer::POA_ptr _default_POA (void);"; + << "PortableServer::POA_ptr _default_POA (" << be_idt << be_idt + << env_sngl_dflts << be_uidt_nl + << ");" << be_uidt; int status = node->traverse_inheritance_graph ( @@ -168,8 +170,8 @@ be_visitor_interface_tie_sh::method_helper (be_interface *, } be_visitor_context ctx; - ctx.stream (os); ctx.state (TAO_CodeGen::TAO_ROOT_TIE_SH); + ctx.stream (os); be_visitor_interface_tie_sh visitor (&ctx); if (visitor.visit_scope (node) == -1) diff --git a/TAO/TAO_IDL/be/be_visitor_interface/tie_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp index eb876a5a13c..b92c0a98860 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/tie_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp @@ -8,7 +8,7 @@ // TAO IDL // // = FILENAME -// tie_ss.cpp +// tie_si.cpp // // = DESCRIPTION // Visitor generating code for TIE classes for the Interface node in the @@ -20,7 +20,7 @@ // ============================================================================ ACE_RCSID (be_visitor_interface, - tie_ss, + tie_si, "$Id$") @@ -28,19 +28,19 @@ ACE_RCSID (be_visitor_interface, // Interface visitor for server inline // ************************************************************************ -be_visitor_interface_tie_ss::be_visitor_interface_tie_ss ( +be_visitor_interface_tie_si::be_visitor_interface_tie_si ( be_visitor_context *ctx ) : be_visitor_interface (ctx) { } -be_visitor_interface_tie_ss::~be_visitor_interface_tie_ss (void) +be_visitor_interface_tie_si::~be_visitor_interface_tie_si (void) { } int -be_visitor_interface_tie_ss::visit_interface (be_interface *node) +be_visitor_interface_tie_si::visit_interface (be_interface *node) { if (node->srv_inline_gen () || node->imported () @@ -95,14 +95,14 @@ be_visitor_interface_tie_ss::visit_interface (be_interface *node) *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; - *os << "template <class T>" << be_nl + *os << "template <class T> ACE_INLINE" << be_nl << fulltiename << "<T>::" << localtiename << " (T &t)" << be_nl << "\t: ptr_ (&t)," << be_nl << "\t poa_ (PortableServer::POA::_nil ())," << be_nl << "\t rel_ (0)" << be_nl << "{}" << be_nl << be_nl; - *os << "template <class T> " << be_nl + *os << "template <class T> ACE_INLINE" << be_nl << fulltiename << "<T>::" << localtiename << " (T &t, PortableServer::POA_ptr poa)" << be_nl << "\t: ptr_ (&t)," << be_nl @@ -110,7 +110,7 @@ be_visitor_interface_tie_ss::visit_interface (be_interface *node) << "\t rel_ (0)" << be_nl << "{}" << be_nl << be_nl; - *os << "template <class T>" << be_nl + *os << "template <class T> ACE_INLINE" << be_nl << fulltiename << "<T>::" << localtiename << " (T *tp, ::CORBA::Boolean release)" << be_nl << "\t: ptr_ (tp)," << be_nl @@ -118,7 +118,7 @@ be_visitor_interface_tie_ss::visit_interface (be_interface *node) << "\t rel_ (release)" << be_nl << "{}" << be_nl << be_nl; - *os << "template <class T>" << be_nl + *os << "template <class T> ACE_INLINE" << be_nl << fulltiename << "<T>::" << localtiename << " (T *tp, PortableServer::POA_ptr poa, ::CORBA::Boolean release)" << be_nl @@ -127,7 +127,7 @@ be_visitor_interface_tie_ss::visit_interface (be_interface *node) << "\t rel_ (release)" << be_nl << "{}" << be_nl << be_nl; - *os << "template <class T>" << be_nl + *os << "template <class T> ACE_INLINE" << be_nl << fulltiename << "<T>::~" << localtiename << " (void)" << be_nl << "{" << be_idt_nl << "if (this->rel_)" << be_idt_nl @@ -136,13 +136,13 @@ be_visitor_interface_tie_ss::visit_interface (be_interface *node) << "}" << be_uidt << be_uidt_nl << "}" << be_nl << be_nl; - *os << "template <class T> T *" << be_nl + *os << "template <class T> ACE_INLINE T *" << be_nl << fulltiename << "<T>::_tied_object (void)" << be_nl << "{" << be_idt_nl << "return this->ptr_;" << be_uidt_nl << "}" << be_nl << be_nl; - *os << "template <class T> void" << be_nl + *os << "template <class T> ACE_INLINE void" << be_nl << fulltiename << "<T>::_tied_object (T &obj)" << be_nl << "{" << be_idt_nl << "if (this->rel_)" << be_idt_nl @@ -153,7 +153,7 @@ be_visitor_interface_tie_ss::visit_interface (be_interface *node) << "this->rel_ = 0;" << be_uidt_nl << "}" << be_nl << be_nl; - *os << "template <class T> void" << be_nl + *os << "template <class T> ACE_INLINE void" << be_nl << fulltiename << "<T>::_tied_object (T *obj, " << "::CORBA::Boolean release)" << be_nl << "{" << be_idt_nl @@ -165,22 +165,24 @@ be_visitor_interface_tie_ss::visit_interface (be_interface *node) << "this->rel_ = release;" << be_uidt_nl << "}" << be_nl << be_nl; - *os << "template <class T> ::CORBA::Boolean" << be_nl + *os << "template <class T> ACE_INLINE ::CORBA::Boolean" << be_nl << fulltiename << "<T>::_is_owner (void)" << be_nl << "{" << be_idt_nl << "return this->rel_;" << be_uidt_nl << "}" << be_nl << be_nl; - *os << "template <class T> void" << be_nl + *os << "template <class T> ACE_INLINE void" << be_nl << fulltiename << "<T>::_is_owner ( ::CORBA::Boolean b)" << be_nl << "{" << be_idt_nl << "this->rel_ = b;" << be_uidt_nl << "}" << be_nl << be_nl; - *os << "template <class T> " + *os << "template <class T> ACE_INLINE " << "PortableServer::POA_ptr" << be_nl << fulltiename - << "<T>::_default_POA ()" << be_nl + << "<T>::_default_POA (" + << (be_global->use_raw_throw () ? "" : "ACE_ENV_SINGLE_ARG_DECL") + << ")" << be_nl << "{" << be_idt_nl << "if (! ::CORBA::is_nil (this->poa_.in ()))" << be_idt_nl << "{" << be_idt_nl @@ -188,12 +190,14 @@ be_visitor_interface_tie_ss::visit_interface (be_interface *node) << be_uidt_nl << "}" << be_uidt_nl << be_nl << "return this->" << localskelname - << "::_default_POA ();" << be_uidt_nl + << "::_default_POA (" + << (be_global->use_raw_throw () ? "" : "ACE_ENV_SINGLE_ARG_PARAMETER") + << ");" << be_uidt_nl << "}"; int status = node->traverse_inheritance_graph ( - be_visitor_interface_tie_ss::method_helper, + be_visitor_interface_tie_si::method_helper, os ); @@ -210,13 +214,13 @@ be_visitor_interface_tie_ss::visit_interface (be_interface *node) } int -be_visitor_interface_tie_ss::visit_component (be_component *node) +be_visitor_interface_tie_si::visit_component (be_component *node) { return this->visit_interface (node); } int -be_visitor_interface_tie_ss::method_helper (be_interface *derived, +be_visitor_interface_tie_si::method_helper (be_interface *derived, be_interface *node, TAO_OutStream *os) { @@ -230,16 +234,16 @@ be_visitor_interface_tie_ss::method_helper (be_interface *derived, } be_visitor_context ctx; + ctx.state (TAO_CodeGen::TAO_ROOT_TIE_SI); ctx.interface (derived); ctx.stream (os); - ctx.state (TAO_CodeGen::TAO_ROOT_TIE_SS); - be_visitor_interface_tie_ss visitor (&ctx); + be_visitor_interface_tie_si visitor (&ctx); if (visitor.visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_tie_ss::" + "be_visitor_interface_tie_si::" "method_helper\n"), -1); } |