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 | 165 |
1 files changed, 20 insertions, 145 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 5d212d693ee..4298c71e52f 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp @@ -93,7 +93,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << be_nl_2; - *os << "// TAO_IDL - Generated from " << be_nl + *os << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__; *os << be_nl_2; @@ -166,7 +166,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << be_nl_2; - *os << "// TAO_IDL - Generated from " << be_nl + *os << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__; *os << be_nl_2; @@ -213,7 +213,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << be_nl_2 << "void " << full_skel_name << "::_is_a_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request, " << be_nl + << "TAO_ServerRequest & server_request," << be_nl << "void * TAO_INTERCEPTOR (servant_upcall)," << be_nl << "void * servant)" << be_uidt << be_uidt_nl << "{" << be_idt; @@ -323,7 +323,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << be_nl_2 << "void " << full_skel_name << "::_non_existent_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request, " << be_nl + << "TAO_ServerRequest & server_request," << be_nl << "void * TAO_INTERCEPTOR (servant_upcall)," << be_nl << "void * servant)" << be_uidt << be_uidt_nl << "{" << be_idt; @@ -437,7 +437,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << be_nl_2 << "void " << full_skel_name << "::_repository_id_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request, " << be_nl + << "TAO_ServerRequest & server_request," << be_nl << "void * TAO_INTERCEPTOR (servant_upcall)," << be_nl << "void * servant)" << be_uidt << be_uidt_nl << "{" << be_idt; @@ -521,22 +521,22 @@ be_visitor_interface_ss::visit_interface (be_interface *node) { *os << be_nl_2; - *os << "// TAO_IDL - Generated from " << be_nl + *os << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__; *os << be_nl_2 << "void " << full_skel_name << "::_interface_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request, " << be_nl + << "TAO_ServerRequest & server_request," << be_nl << "void * /* servant_upcall */," << be_nl << "void * servant)" << be_uidt << be_uidt_nl; *os << "{" << be_idt_nl; *os << "TAO_IFR_Client_Adapter *_tao_adapter =" << be_idt_nl << "ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance (" << be_idt << be_idt_nl - << "TAO_ORB_Core::ifr_client_adapter_name ()" - << be_uidt_nl - << ");" << be_uidt_nl << be_uidt_nl; + << "TAO_ORB_Core::ifr_client_adapter_name ());" + << be_uidt + << be_uidt_nl << be_uidt_nl; *os << "if (!_tao_adapter)" << be_idt_nl << "{" << be_idt_nl << "throw ::CORBA::INTF_REPOS (::CORBA::OMGVMCID | 1, ::CORBA::COMPLETED_NO);" @@ -603,7 +603,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << be_nl_2 << "void " << full_skel_name << "::_component_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request, " << be_nl + << "TAO_ServerRequest & server_request," << be_nl << "void * TAO_INTERCEPTOR (servant_upcall)," << be_nl << "void * servant" << be_uidt_nl << ")" << be_uidt_nl @@ -899,30 +899,19 @@ be_visitor_interface_ss::this_method (be_interface *node) *os << "::CORBA::Object_ptr tmp = CORBA::Object_ptr ();" << be_nl_2; - if (be_global->gen_direct_collocation() || be_global->gen_thru_poa_collocation ()) - { - *os << "::CORBA::Boolean const _tao_opt_colloc =" - << be_idt_nl - << "stub->servant_orb_var ()->orb_core ()->" - << "optimize_collocation_objects ();" << be_uidt_nl << be_nl; - } + *os << "::CORBA::Boolean const _tao_opt_colloc =" + << be_idt_nl + << "stub->servant_orb_var ()->orb_core ()->" + << "optimize_collocation_objects ();" << be_uidt_nl << be_nl; + *os << "ACE_NEW_RETURN (" << be_idt << be_idt_nl << "tmp," << be_nl << "::CORBA::Object (stub, "; - if (be_global->gen_direct_collocation() - || be_global->gen_thru_poa_collocation ()) - { - *os << "_tao_opt_colloc"; - } - else - { - *os << "false"; - } + *os << "_tao_opt_colloc"; *os << ", this)," << be_nl - << "0" << be_uidt_nl - << ");" << be_uidt_nl << be_nl; + << "0);" << be_uidt << be_uidt_nl << be_nl; *os << "::CORBA::Object_var obj = tmp;" << be_nl << "(void) safe_stub.release ();" << be_nl_2 @@ -931,21 +920,9 @@ be_visitor_interface_ss::this_method (be_interface *node) << "return" << be_idt_nl << "TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (" << be_idt << be_idt_nl - << "obj.in ()," << be_nl; - - if (be_global->gen_direct_collocation() - || be_global->gen_thru_poa_collocation ()) - { - *os << node->flat_client_enclosing_scope () - << node->base_proxy_broker_name () - << "_Factory_function_pointer" << be_uidt_nl; - } - else - { - *os << "0" << be_uidt_nl; - } + << "obj.in ());"; - *os << ");" << be_uidt << be_uidt << be_uidt_nl + *os << be_uidt << be_uidt << be_uidt << be_uidt_nl << "}"; } @@ -994,110 +971,8 @@ be_visitor_interface_ss::generate_amh_classes (be_interface *node) int be_visitor_interface_ss::generate_proxy_classes (be_interface *node) { - TAO_OutStream *os = this->ctx_->stream (); be_visitor_context ctx = *this->ctx_; - // Strategized Proxy Broker Implementation. - if (be_global->gen_thru_poa_collocation () - || be_global->gen_direct_collocation ()) - { - - // Do not generate strategized proxy broker for thru-POA case. - // It isn't necessary. - if (be_global->gen_direct_collocation ()) - { - ctx = *this->ctx_; - be_visitor_interface_strategized_proxy_broker_ss ispb_visitor (&ctx); - - if (node->accept (&ispb_visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_interface_ss::") - ACE_TEXT ("generate_proxy_classes - ") - ACE_TEXT ("codegen for Base Proxy Broker ") - ACE_TEXT ("class failed\n")), - -1); - } - } - - if (be_global->gen_direct_collocation() - || be_global->gen_thru_poa_collocation ()) - { - *os << be_nl_2; - - *os << "// TAO_IDL - Generated from" << be_nl - << "// " << __FILE__ << ":" << __LINE__; - - // Proxy Broker Factory Function. - *os << be_nl_2 - << "TAO::Collocation_Proxy_Broker *" << be_nl - << node->flat_client_enclosing_scope () - << node->base_proxy_broker_name () - << "_Factory_function ( ::CORBA::Object_ptr)" - << be_nl - << "{" << be_idt_nl - << "return"; - - if (be_global->gen_direct_collocation ()) - { - *os << be_idt_nl - << "::" - << node->full_strategized_proxy_broker_name () - << "::" <<"the" - << node->strategized_proxy_broker_name () - << " ();" << be_uidt; - } - else - { - // @@ HACK! - - // Dummy function pointer for the thru-POA case. It isn't - // used to call a function but it is used to determine if - // collocation is available. - - // @todo Change the way TAO's ORB_Core detects collocation, - // or at least augment it so that we don't have to - // resort this hack. - *os << " reinterpret_cast<TAO::Collocation_Proxy_Broker *> (0xdead);" - << " // Dummy"; - } - - *os << be_uidt_nl - << "}" << be_nl_2; - - // Proxy Broker Function Pointer Initializer. - *os << "int" << be_nl - << node->flat_client_enclosing_scope () - << node->base_proxy_broker_name () - << "_Factory_Initializer (size_t)" << be_nl - << "{" << be_idt_nl - << node->flat_client_enclosing_scope () - << node->base_proxy_broker_name () - << "_Factory_function_pointer = " - << be_idt_nl - << node->flat_client_enclosing_scope () - << node->base_proxy_broker_name () - << "_Factory_function;" - << be_uidt_nl - << be_nl - << "return 0;" << be_uidt_nl - << "}" << be_nl_2; - - *os << "static int" << be_nl - << node->flat_client_enclosing_scope () - << node->base_proxy_broker_name () - << "_Stub_Factory_Initializer_Scarecrow =" - << be_idt_nl - << node->flat_client_enclosing_scope () - << node->base_proxy_broker_name () - << "_Factory_Initializer (" << be_idt << be_idt_nl - << "reinterpret_cast<size_t> (" - << node->flat_client_enclosing_scope () - << node->base_proxy_broker_name () - << "_Factory_Initializer));" << be_uidt << be_uidt << be_uidt_nl; - } - } - if (be_global->gen_direct_collocation ()) { ctx = *this->ctx_; |