diff options
author | mcorino <mcorino@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2011-11-17 10:11:20 +0000 |
---|---|---|
committer | mcorino <mcorino@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2011-11-17 10:11:20 +0000 |
commit | 21a8d7d8ef4843fc61d52fedc10277ccdd52b5c9 (patch) | |
tree | e05f959668f0531c498a4e862aafaa3bf3b4b541 | |
parent | 4c37b556670e492dae6bc478d3713e1ad9f13164 (diff) | |
download | ATCD-21a8d7d8ef4843fc61d52fedc10277ccdd52b5c9.tar.gz |
Thu Nov 17 10:05:08 UTC 2011 Martin Corino <mcorino@remedy.nl>
Merged changes from Remedy work branch.
159 files changed, 2643 insertions, 962 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index a421bf694da..14bfa0ab7b7 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,245 @@ +Thu Nov 17 10:05:08 UTC 2011 Martin Corino <mcorino@remedy.nl> + + Merged changes from Remedy work branch. + + === start changelog === + + Thu Nov 17 07:35:20 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/Latency/DSI/Roundtrip.h: + * performance-tests/Sequence_Latency/DSI/Roundtrip.h: + * tests/DSI_AMI_Gateway/test_dsi.h: + Last runtime fixes + + Wed Nov 16 07:26:18 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.h: + Doxygen changes + + Wed Nov 16 07:18:56 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/performance-tests/LoadBalancing/LBPerf/CPU/Roundtrip.h: + * orbsvcs/performance-tests/LoadBalancing/LBPerf/RPS/Roundtrip.h: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/Roundtrip.h: + * orbsvcs/tests/Bug_2285_Regression/Hello.h: + * orbsvcs/tests/Bug_2287_Regression/Hello.h: + * orbsvcs/tests/Bug_2615_Regression/Hello.h: + * orbsvcs/tests/Bug_2800_Regression/Hello.h: + * orbsvcs/tests/Bug_2800_Regression/NsShutdown.h: + * orbsvcs/tests/Bug_3215_Regression/Hello.h: + * orbsvcs/tests/Bug_3216_Regression/Hello.h: + * orbsvcs/tests/Bug_3598b_Regression/Hello.h: + * orbsvcs/tests/Bug_3673_Regression/Hello.h: + * orbsvcs/tests/Bug_3673_Regression/NsShutdown.h: + * orbsvcs/tests/COIOP_Naming_Test/Hello.h: + * orbsvcs/tests/HTIOP/Hello/Hello.h: + * orbsvcs/tests/InterfaceRepo/IFR_Self_Recursive_IDL_Test/GoodDay.h: + * performance-tests/Latency/AMH_Single_Threaded/Roundtrip.h: + * performance-tests/Latency/AMI/Roundtrip.h: + * performance-tests/Latency/Collocation/Roundtrip.h: + * performance-tests/Latency/DII/Roundtrip.h: + * performance-tests/Latency/Deferred/Roundtrip.h: + * performance-tests/Latency/Single_Threaded/Roundtrip.h: + * performance-tests/Latency/Thread_Per_Connection/Roundtrip.h: + * performance-tests/Latency/Thread_Pool/Roundtrip.h: + * performance-tests/Memory/IORsize/Memory_Growth.h: + * performance-tests/Memory/Single_Threaded/Memory_Growth.h: + * performance-tests/Sequence_Latency/AMH_Single_Threaded/Roundtrip.h: + * performance-tests/Sequence_Latency/AMI/Roundtrip.h: + * performance-tests/Sequence_Latency/DII/Roundtrip.h: + * performance-tests/Sequence_Latency/Deferred/Roundtrip.h: + * performance-tests/Sequence_Latency/Single_Threaded/Roundtrip.h: + * performance-tests/Sequence_Latency/Thread_Per_Connection/Roundtrip.h: + * performance-tests/Sequence_Latency/Thread_Pool/Roundtrip.h: + * tests/Bug_1330_Regression/Test_i.h: + * tests/Bug_1482_Regression/Hello.h: + * tests/Bug_2084_Regression/EventNode.h: + * tests/Bug_2084_Regression/Hello.h: + * tests/Bug_2183_Regression/Hello.h: + * tests/Bug_2186_Regression/Hello.h: + * tests/Bug_2241_Regression/Hello.h: + * tests/Bug_2328_Regression/Hello.h: + * tests/Bug_2593_Regression/Hello.h: + * tests/Bug_2654_Regression/Hello.h: + * tests/Bug_2683_Regression/test_i.h: + * tests/Bug_2768_Regression/Messenger_i.h: + * tests/Bug_2966_Regression/Hello.h: + * tests/Bug_3299_Regression/Hello.h: + * tests/Bug_3333_Regression/Hello.h: + * tests/Bug_3430_Regression/Hello.h: + * tests/Bug_3479_Regression/Hello.h: + * tests/Bug_3547_Regression/Stock_Quoter_i.h: + * tests/Bug_3553_Regression/Hello.h: + * tests/Bug_3558_Regression/Hello.h: + * tests/Bug_3598a_Regression/Hello.h: + * tests/Bug_3636_Regression/Hello.h: + * tests/Bug_3676_Regression/Hello.h: + * tests/Bug_3746_Regression/Test_i.h: + * tests/Bug_3748_Regression/Hello.h: + * tests/Bug_3790_Regression/simple_test_i.h: + * tests/Bug_3837_Regression/Hello.h: + * tests/Bug_3896_Regression/Hello.h: + * tests/Bug_3954_Regression/Hello.h: + * tests/Bug_933_Regression/Messenger_i.h: + * tests/COIOP/Hello.h: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h: + * tests/Cache_Growth_Test/Hello.h: + * tests/Client_Leaks/Process.h: + * tests/Client_Leaks/Process_Factory.h: + * tests/Collocated_Best/Collocated_Best_Direct/Hello.h: + * tests/Collocated_Best/Collocated_Best_NoColl/Hello.h: + * tests/Collocated_Best/Collocated_Best_ThuP/Hello.h: + * tests/Collocated_DerivedIF/Hello.h: + * tests/Collocated_NoColl/Hello.h: + * tests/Collocated_ThruP_Sp/Hello.h: + * tests/Collocated_ThruP_Sp_Gd/Hello.h: + * tests/Collocation_Exception_Test/Hello.h: + * tests/Collocation_Oneway_Tests/Hello.h: + * tests/Collocation_Tests/Hello.h: + * tests/Connect_Strategy_Test/Hello.h: + * tests/DII_Collocation_Tests/oneway/Hello.h: + * tests/DII_Collocation_Tests/twoway/Hello.h: + * tests/DSI_AMH/Roundtrip.h: + * tests/Hello/Hello.h: + * tests/IPV6/Hello.h: + * tests/LongDouble/LongDoubleTest.h: + * tests/MT_Timeout/Sleep_Service.h: + * tests/ORB_Local_Config/Two_DLL_ORB/Test_i.h: + * tests/ORB_shutdown/Foo_Bar.h: + * tests/Ondemand_Write/Hello.h: + * tests/POA/Deactivate_Object/Hello.h: + * tests/POA/EndpointPolicy/Hello.h: + * tests/Parallel_Connect_Strategy/Test_i.h: + * tests/Portable_Interceptors/Bug_2133/Hello.h: + * tests/Reliable_Oneways/Oneway_Receiver.h: + * tests/Reliable_Oneways/Shutdown_Helper.h: + * tests/Servant_To_Reference_Test/Test_i.h: + * tests/Server_Leaks/Ping_Service.h: + * tests/Server_Port_Zero/Hello.h: + * tests/Skeleton_Inheritance/interface_3_i.h: + * tests/Two_Objects/First_i.h: + * tests/Two_Objects/Object_Factory_i.h: + * tests/Two_Objects/Second_i.h: + * tests/ZIOP/Hello.h: + Fixed typo in comment + + Wed Nov 16 07:14:48 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/DynamicInterface/Dynamic_Implementation.h: + * tao/DynamicInterface/Dynamic_Implementation.cpp: + * tao/PortableServer/Servant_Base.cpp: + * tests/DSI_AMH/Roundtrip.h: + * tests/DSI_AMH/Roundtrip.cpp: + Fixed compile problems due to change of signature of _dispatch + + Tue Nov 15 09:36:35 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface/amh_sh.cpp: + * TAO_IDL/be/be_visitor_interface/amh_si.cpp: + * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: + * TAO_IDL/be/be_visitor_interface/interface_sh.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + * TAO_IDL/be/be_visitor_operation/amh_sh.cpp: + * TAO_IDL/be/be_visitor_operation/amh_ss.cpp: + * TAO_IDL/be/be_visitor_operation/operation_sh.cpp: + * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: + * tao/Abstract_Servant_Base.h: + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h: + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp: + * tao/CSD_Framework/CSD_Strategy_Base.inl: + * tao/CSD_Framework/CSD_Strategy_Proxy.inl: + * tao/CSD_ThreadPool/CSD_TP_Corba_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl: + * tao/Messaging/AMH_Skeletons.h: + * tao/Messaging/AMH_Skeletons.cpp: + * tao/PI_Server/ServerInterceptorAdapter.h: + * tao/PI_Server/ServerInterceptorAdapter.cpp: + * tao/PortableServer/Local_Servant_Base.h: + * tao/PortableServer/Local_Servant_Base.cpp: + * tao/PortableServer/Operation_Table.h: + * tao/PortableServer/PolicyS.h: + * tao/PortableServer/PolicyS.cpp: + * tao/PortableServer/Servant_Base.h: + * tao/PortableServer/Servant_Base.cpp: + * tao/PortableServer/Upcall_Wrapper.h: + * tao/PortableServer/Upcall_Wrapper.cpp: + * tao/ServerRequestInterceptor_Adapter.h: + Changed the second argument of all skel methods from void* to + TAO::Portable_Server::Servant_Upcall*. I found CSD_TP_Corba_Request + just passes 0 for this argument, reported bugzilla 3993 for this, + when CSD passes always a valid pointer we could even use a reference + instead of a pointer + + Tue Nov 15 09:13:11 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + _repository_id occured twice in the op table. Fixed this. + + Mon Nov 14 13:24:54 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + Added some more comments on the AMH detection. + + Fri Nov 11 15:29:15 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Skeleton_Inheritance/skel_inheritance.mpc: + Fixed linker errors on windows. + + Fri Nov 11 14:33:22 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_amh_pre_proc.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + * TAO_IDL/be_include/be_interface.h: + Changed the AMH is detected. + + Fri Nov 11 13:56:31 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_amh_pre_proc.cpp: + * TAO_IDL/be_include/be_interface.h: + Invoking amh specific _*_skel methods in + case AMH. + + * tao/Messaging/AMH_Skeletons.h: + * tao/Messaging/AMH_Skeletons.cpp: + * tao/PortableServer/Servant_Base.h: + * tao/PortableServer/Servant_Base.cpp: + Created a set of _*_skel methods for amh. + Put these in Messaging since we don't want to + bother the core with AMH stuff. + + Fri Nov 11 09:52:26 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface/amh_sh.cpp: + * TAO_IDL/be/be_visitor_interface/interface_sh.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + * tao/PortableServer/SUpcall_commands.h: + * tao/PortableServer/SUpcall_commands.cpp: + * tao/PortableServer/Servant_Base.h: + * tao/PortableServer/Servant_Base.cpp: + Moved the default _*_skel method to the core. This mean + a lot less generated code. + + * bin/tao_orb_tests.lst: + * tests/Skeleton_Inheritance: + * tests/Skeleton_Inheritance/client.cpp: + * tests/Skeleton_Inheritance/idl_1.idl: + * tests/Skeleton_Inheritance/idl_2.idl: + * tests/Skeleton_Inheritance/idl_3.idl: + * tests/Skeleton_Inheritance/interface_3_i.h: + * tests/Skeleton_Inheritance/interface_3_i.cpp: + * tests/Skeleton_Inheritance/run_test.pl: + * tests/Skeleton_Inheritance/server.cpp: + * tests/Skeleton_Inheritance/skel_inheritance.mpc: + New test. + + === end changelog === + Wed Nov 16 22:23:08 UTC 2011 Trevor Fields <fields_t@ociweb.com> * orbsvcs/tests/Security/MT_BiDir_SSL: diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp index 782f51a9bf4..24d45909e88 100644 --- a/TAO/TAO_IDL/be/be_codegen.cpp +++ b/TAO/TAO_IDL/be/be_codegen.cpp @@ -2774,6 +2774,8 @@ TAO_CodeGen::gen_skel_src_includes (void) this->gen_standard_include (this->server_skeletons_, "tao/Buffer_Allocator_T.h"); this->gen_standard_include (this->server_skeletons_, + "tao/Messaging/AMH_Skeletons.h"); + this->gen_standard_include (this->server_skeletons_, "ace/Auto_Functor.h"); } diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp index b0028396a15..1e86561f1e4 100644 --- a/TAO/TAO_IDL/be/be_interface.cpp +++ b/TAO/TAO_IDL/be/be_interface.cpp @@ -94,6 +94,7 @@ be_interface::be_interface (UTL_ScopedName *n, skel_count_ (0), in_mult_inheritance_ (-1), original_interface_ (0), + is_amh_rh_ (false), is_ami_rh_ (false), is_ami4ccm_rh_ (false), full_skel_name_ (0), @@ -929,6 +930,19 @@ int be_interface::gen_operation_table (const char *flat_name, const char *skeleton_class_name) { + // TODO: + // find another way to determine whether this is an AMH class + // Create 'is_amh' methods, just like AMI. Problem is finding where + // to invoke these methods since an AMH class is generated twice: + // once for AMH and once the 'normal' way. + + bool amh = false; + ACE_CString tmp (skeleton_class_name); + if (tmp.strstr ("AMH_") != ACE_String_Base_Const::npos) + { + amh = true; + } + // Check out the op_lookup_strategy. switch (be_global->lookup_strategy ()) { @@ -970,39 +984,96 @@ be_interface::gen_operation_table (const char *flat_name, } // Generate the skeleton for the is_a method. - *os << "{\"_is_a\", &" << skeleton_class_name - << "::_is_a_skel, 0}," << be_nl; + if (amh) + { + *os << "{\"_is_a\", &TAO_AMH_Skeletons::_is_a_amh_skel, 0}," << be_nl; + } + else if (be_global->gen_thru_poa_collocation ()) + { + *os << "{\"_is_a\", &TAO_ServantBase::_is_a_thru_poa_skel, 0}," << be_nl; + } + else + { + *os << "{\"_is_a\", &TAO_ServantBase::_is_a_skel, 0}," << be_nl; + } ++this->skel_count_; if (!be_global->gen_minimum_corba ()) { - *os << "{\"_non_existent\", &" << skeleton_class_name - << "::_non_existent_skel, 0}," << be_nl; + if (amh) + { + *os << "{\"_non_existent\", &TAO_AMH_Skeletons" + << "::_non_existent_amh_skel, 0}," << be_nl; + } + else if (be_global->gen_thru_poa_collocation ()) + { + *os << "{\"_non_existent\", &TAO_ServantBase" + << "::_non_existent_thru_poa_skel, 0}," << be_nl; + } + else + { + *os << "{\"_non_existent\", &TAO_ServantBase" + << "::_non_existent_skel, 0}," << be_nl; + } ++this->skel_count_; } if (!be_global->gen_corba_e () && !be_global->gen_minimum_corba ()) { - *os << "{\"_component\", &" << skeleton_class_name - << "::_component_skel, 0}," << be_nl; + if (amh) + { + *os << "{\"_component\", &TAO_AMH_Skeletons" + << "::_component_amh_skel, 0}," << be_nl; + } + else if (be_global->gen_thru_poa_collocation ()) + { + *os << "{\"_component\", &TAO_ServantBase" + << "::_component_thru_poa_skel, 0}," << be_nl; + } + else + { + *os << "{\"_component\", &TAO_ServantBase" + << "::_component_skel, 0}," << be_nl; + } ++this->skel_count_; } if (!be_global->gen_corba_e () && !be_global->gen_minimum_corba ()) { - *os << "{\"_interface\", &" << skeleton_class_name - << "::_interface_skel, 0}," << be_nl; + if (amh) + { + *os << "{\"_interface\", &TAO_AMH_Skeletons" + << "::_interface_amh_skel, 0}," << be_nl; + } + else + { + *os << "{\"_interface\", &TAO_ServantBase" + << "::_interface_skel, 0}," << be_nl; + } ++this->skel_count_; } if (!be_global->gen_minimum_corba ()) { - *os << "{\"_repository_id\", &" << skeleton_class_name - << "::_repository_id_skel, 0}" << be_uidt_nl; + if (amh) + { + *os << "{\"_repository_id\", &TAO_AMH_Skeletons" + << "::_repository_id_amh_skel, 0}" << be_uidt_nl; + } + else if (be_global->gen_thru_poa_collocation ()) + { + *os << "{\"_repository_id\", &TAO_ServantBase" + << "::_repository_id_thru_poa_skel, 0}" << be_uidt_nl; + } + else + { + *os << "{\"_repository_id\", &TAO_ServantBase" + << "::_repository_id_skel, 0}" << be_uidt_nl; + } ++this->skel_count_; } @@ -1137,43 +1208,98 @@ be_interface::gen_operation_table (const char *flat_name, -1); } - *os << "_is_a,&" - << skeleton_class_name - << "::_is_a_skel, 0" << be_nl; + if (amh) + { + *os << "_is_a,&TAO_AMH_Skeletons" + << "::_is_a_amh_skel, 0" << be_nl; + } + else if (be_global->gen_thru_poa_collocation ()) + { + *os << "_is_a,&TAO_ServantBase" + << "::_is_a_thru_poa_skel, 0" << be_nl; + } + else + { + *os << "_is_a,&TAO_ServantBase" + << "::_is_a_skel, 0" << be_nl; + } ++this->skel_count_; if (!be_global->gen_minimum_corba ()) { - *os << "_non_existent,&" - << skeleton_class_name - << "::_non_existent_skel, 0" << be_nl; + if (amh) + { + *os << "_non_existent,&TAO_AMH_Skeletons" + << "::_non_existent_amh_skel, 0" << be_nl; + } + else if (be_global->gen_thru_poa_collocation ()) + { + *os << "_non_existent,&TAO_ServantBase" + << "::_non_existent_thru_poa_skel, 0" << be_nl; + } + else + { + *os << "_non_existent,&TAO_ServantBase" + << "::_non_existent_skel, 0" << be_nl; + } ++this->skel_count_; } if (!be_global->gen_corba_e () && !be_global->gen_minimum_corba ()) { - *os << "_component,&" - << skeleton_class_name - << "::_component_skel, 0" << be_nl; + if (amh) + { + *os << "_component,&TAO_AMH_Skeletons" + << "::_component_amh_skel, 0" << be_nl; + } + else if (be_global->gen_thru_poa_collocation ()) + { + *os << "_component,&TAO_ServantBase" + << "::_component_thru_poa_skel, 0" << be_nl; + } + else + { + *os << "_component,&TAO_ServantBase" + << "::_component_skel, 0" << be_nl; + } ++this->skel_count_; } if (!be_global->gen_corba_e () && !be_global->gen_minimum_corba ()) { - *os << "_interface,&" - << skeleton_class_name - << "::_interface_skel, 0" << be_nl; + if (amh) + { + *os << "_interface,&TAO_AMH_Skeletons" + << "::_interface_amh_skel, 0" << be_nl; + } + else + { + *os << "_interface,&TAO_ServantBase" + << "::_interface_skel, 0" << be_nl; + } ++this->skel_count_; } if (!be_global->gen_minimum_corba ()) { - *os << "_repository_id,&" - << skeleton_class_name - << "::_repository_id_skel, 0" << be_nl; + if (amh) + { + *os << "_repository_id,&TAO_AMH_Skeletons" + << "::_repository_id_amh_skel, 0" << be_nl; + } + else if (be_global->gen_thru_poa_collocation ()) + { + *os << "_repository_id,&TAO_ServantBase" + << "::_repository_id_thru_poa_skel, 0" << be_nl; + } + else + { + *os << "_repository_id,&TAO_ServantBase" + << "::_repository_id_skel, 0" << be_nl; + } ++this->skel_count_; } @@ -2189,9 +2315,9 @@ be_interface::gen_skel_helper (be_interface *derived, *os << "static void" << be_nl << d->local_name () << "_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall," << be_nl - << "void * servant);" << be_uidt + << "TAO_ServerRequest &server_request," << be_nl + << "TAO::Portable_Server::Servant_Upcall *servant_upcall," << be_nl + << "void *servant);" << be_uidt << be_uidt; } else @@ -2202,9 +2328,9 @@ be_interface::gen_skel_helper (be_interface *derived, << derived->full_skel_name () << "::" << d->local_name () << "_skel (" << be_idt_nl - << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall," << be_nl - << "void * servant)" + << "TAO_ServerRequest &server_request," << be_nl + << "TAO::Portable_Server::Servant_Upcall *servant_upcall," << be_nl + << "void *servant)" << be_uidt_nl << "{" << be_idt_nl; @@ -2241,8 +2367,8 @@ be_interface::gen_skel_helper (be_interface *derived, *os << "static void" << be_nl << "_get_" << d->local_name () << "_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall," << be_nl + << "TAO_ServerRequest &server_request," << be_nl + << "TAO::Portable_Server::Servant_Upcall *servant_upcall," << be_nl << "void * servant);" << be_uidt << be_uidt; } @@ -2254,9 +2380,9 @@ be_interface::gen_skel_helper (be_interface *derived, << derived->full_skel_name () << "::_get_" << d->local_name () << "_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall," << be_nl - << "void * servant)" << be_uidt + << "TAO_ServerRequest &server_request," << be_nl + << "TAO::Portable_Server::Servant_Upcall *servant_upcall," << be_nl + << "void *servant)" << be_uidt << be_uidt_nl << "{" << be_idt_nl; @@ -2286,8 +2412,8 @@ be_interface::gen_skel_helper (be_interface *derived, *os << "static void" << be_nl << "_set_" << d->local_name () << "_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall," << be_nl + << "TAO_ServerRequest &server_request," << be_nl + << "TAO::Portable_Server::Servant_Upcall *servant_upcall," << be_nl << "void * servant);" << be_uidt << be_uidt; } @@ -2301,7 +2427,7 @@ be_interface::gen_skel_helper (be_interface *derived, << "::_set_" << d->local_name () << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall," << be_nl + << "TAO::Portable_Server::Servant_Upcall *servant_upcall," << be_nl << "void * servant)" << be_uidt << be_uidt_nl << "{" << be_idt_nl; diff --git a/TAO/TAO_IDL/be/be_visitor_amh_pre_proc.cpp b/TAO/TAO_IDL/be/be_visitor_amh_pre_proc.cpp index 13d35b9613b..6f9c00523c2 100644 --- a/TAO/TAO_IDL/be/be_visitor_amh_pre_proc.cpp +++ b/TAO/TAO_IDL/be/be_visitor_amh_pre_proc.cpp @@ -115,7 +115,6 @@ be_visitor_amh_pre_proc::visit_interface (be_interface *node) be_interface *response_handler = this->create_response_handler (node, excep_holder); - if (response_handler == 0) { ACE_ERROR_RETURN ((LM_ERROR, 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 13e39657395..5669387f388 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp @@ -118,58 +118,12 @@ be_visitor_amh_interface_sh::visit_interface (be_interface *node) << be_nl << "virtual ::CORBA::Boolean _is_a (const char* logical_type_id);" << be_nl_2; - // 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 - << ");" << be_uidt_nl << be_nl; - - if (!be_global->gen_minimum_corba ()) - { - // 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 - << ");" << be_uidt_nl << be_nl; - } - - if (!be_global->gen_corba_e () && !be_global->gen_minimum_corba ()) - { - // 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 - << ");" << be_uidt_nl << be_nl; - } - - if (!be_global->gen_corba_e () && !be_global->gen_minimum_corba ()) - { - // 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 - << ");" << be_uidt_nl << be_nl; - } - - if (!be_global->gen_minimum_corba ()) - { - // 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 - << ");" << 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 - << ");" << be_uidt_nl << be_nl; + << "TAO::Portable_Server::Servant_Upcall *_servant_upcall);" << be_uidt + << be_uidt_nl << be_nl; this->this_method (node); 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 11b3910effa..a5d0febdfd8 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/amh_si.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_si.cpp @@ -136,8 +136,8 @@ be_visitor_amh_interface_si::gen_skel_helper (be_interface *derived, << derived_amh_name << "::" << d->local_name () << "_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & req," << be_nl - << "void * context," << be_nl + << "TAO_ServerRequest &req," << be_nl + << "TAO::Portable_Server::Servant_Upcall *context," << be_nl << "void * obj)" << be_uidt << be_uidt_nl << "{" << be_idt_nl; @@ -172,9 +172,9 @@ be_visitor_amh_interface_si::gen_skel_helper (be_interface *derived, << derived_amh_name << "::_get_" << d->local_name () << "_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & req," << be_nl - << "void * context," << be_nl - << "void * obj)" << be_uidt + << "TAO_ServerRequest &req," << be_nl + << "TAO::Portable_Server::Servant_Upcall *context," << be_nl + << "void *obj)" << be_uidt << be_uidt_nl << "{" << be_idt_nl; @@ -204,9 +204,9 @@ be_visitor_amh_interface_si::gen_skel_helper (be_interface *derived, << derived_amh_name << "::_set_" << d->local_name () << "_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & req," << be_nl - << "void * context," << be_nl - << "void * obj)" << be_uidt + << "TAO_ServerRequest &req," << be_nl + << "TAO::Portable_Server::Servant_Upcall *context," << be_nl + << "void *obj)" << be_uidt << be_uidt_nl << "{" << be_idt_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 bba533b2f72..354ba93bd79 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp @@ -118,15 +118,15 @@ 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 - << ")" << be_uidt_nl + << "TAO_ServerRequest &req," << be_nl + << "TAO::Portable_Server::Servant_Upcall *context)" << be_uidt + << 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 - << ");" << be_uidt << be_uidt_nl + << "this->asynchronous_upcall_dispatch (" + << "req," + << "context," + << "this" + << ");" << be_uidt_nl << "}"; } 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 ece9840819c..d92fd0e666a 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp @@ -127,60 +127,10 @@ be_visitor_interface_sh::visit_interface (be_interface *node) // _is_a *os << "virtual ::CORBA::Boolean _is_a (const char* logical_type_id);" << be_nl_2; - // 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 - << be_uidt_nl << be_nl; - - if (!be_global->gen_minimum_corba ()) - { - // 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 - << be_uidt_nl << be_nl; - } - - if (!be_global->gen_corba_e () && !be_global->gen_minimum_corba ()) - { - // 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 - << be_uidt_nl << be_nl; - } - - if (!be_global->gen_corba_e () && !be_global->gen_minimum_corba ()) - { - // 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 - << be_uidt_nl << be_nl; - } - - if (!be_global->gen_minimum_corba ()) - { - // 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 - << 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 + << "TAO::Portable_Server::Servant_Upcall *servant_upcall);" << be_uidt << be_uidt_nl << be_nl; this->this_method (node); 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 4298c71e52f..fb268f009ec 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp @@ -55,7 +55,6 @@ be_visitor_interface_ss::visit_interface (be_interface *node) { return -1; } - ACE_CString full_skel_name_holder = this->generate_full_skel_name (node); @@ -171,514 +170,8 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << be_nl_2; - // Generate code for the _is_a skeleton. - { - be_predefined_type rt (AST_PredefinedType::PT_boolean, 0); - // @@ Cheat a little by placing a space before the operation name - // to prevent the IDL compiler from interpreting the leading - // underscore as an IDL escape. - Identifier op_name (" _is_a"); - UTL_ScopedName scoped_name (&op_name, 0); - be_operation is_a (&rt, - AST_Operation::OP_noflags, - &scoped_name, - node->is_local (), - node->is_abstract ()); - is_a.set_defined_in (node); - - ACE_CDR::ULong bound = 0UL; - - auto_ptr<AST_String> s ( - idl_global->gen ()->create_string ( - idl_global->gen ()->create_expr (bound, - AST_Expression::EV_ulong))); - - Identifier arg_name ("repository_id"); - UTL_ScopedName scoped_arg_name (&arg_name, 0); - AST_Argument *repository_id = - idl_global->gen ()->create_argument (AST_Argument::dir_IN, - s.get (), - &scoped_arg_name); - - is_a.be_add_argument (repository_id); - - ACE_CString is_a_upcall_command_name = - "_is_a_" + ACE_CString (node_local_name) + "_Upcall_Command" ; - - be_visitor_operation_upcall_command_ss upcall_command_visitor (this->ctx_); - upcall_command_visitor.visit (&is_a, - full_skel_name, - is_a_upcall_command_name.c_str ()); - - *os << be_nl_2 - << "void " << full_skel_name - << "::_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 << be_uidt_nl - << "{" << be_idt; - - // Generate exception list. - be_visitor_operation_exceptlist_ss exception_list (this->ctx_); - exception_list.visit_operation (&is_a); - - be_visitor_operation_ss op_visitor (this->ctx_); - - *os << "TAO::SArg_Traits< "; - - op_visitor.gen_arg_template_param_name (&is_a, - &rt, - os); - - *os << ">::ret_val retval;"; - - op_visitor.gen_skel_body_arglist (&is_a, - os); - - *os << be_nl_2 - << "TAO::Argument * const args[] =" << be_idt_nl - << "{" << be_idt_nl - << "&retval," << be_nl - << "&_tao_" << arg_name.get_string () - << be_uidt_nl - << "};" << be_uidt_nl << be_nl; - - *os << "static size_t const nargs = 2;" << be_nl_2; - - // Get the right object implementation. - *os << full_skel_name << " * const impl =" << be_idt_nl - << "static_cast<" - << full_skel_name << " *> (servant);" - << be_uidt_nl; - - // Upcall_Command instantiation. - *os << be_nl - << is_a_upcall_command_name.c_str() - << " command (" << be_idt_nl - << "impl"; - - if (!is_a.void_return_type () - || is_a.argument_count () > 0) - { - // server_request.operation_details () will be non-zero in the - // thru-POA collocation case. Use them if available. - *os << "," << be_nl; - - if (be_global->gen_thru_poa_collocation ()) - *os << "server_request.operation_details ()," << be_nl; - - *os << "args"; - } - - *os << ");" << be_uidt_nl << be_nl; - - *os << "TAO::Upcall_Wrapper upcall_wrapper;" << be_nl - << "upcall_wrapper.upcall (server_request" << be_nl - << " , args" << be_nl - << " , nargs" << be_nl - << " , command" - << "\n#if TAO_HAS_INTERCEPTORS == 1" << be_nl - << " , servant_upcall" << be_nl - << " , exceptions" << be_nl - << " , nexceptions" - << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */" << be_nl - << " );"; - - this->generate_send_reply (os); - - *os << be_uidt_nl - << "}" << be_nl_2; - - is_a.destroy (); - rt.destroy (); - s.get ()->destroy (); - } - - if (!be_global->gen_minimum_corba ()) - { - // Generate code for the _non_existent skeleton. - be_predefined_type rt (AST_PredefinedType::PT_boolean, 0); - // @@ Cheat a little by placing a space before the operation name - // to prevent the IDL compiler from interpreting the leading - // underscore as an IDL escape. - Identifier op_name (" _non_existent"); - UTL_ScopedName scoped_name (&op_name, 0); - be_operation non_existent (&rt, - AST_Operation::OP_noflags, - &scoped_name, - node->is_local (), - node->is_abstract ()); - non_existent.set_defined_in (node); - - ACE_CString non_exist_upcall_command_name = - "_non_existent_" - + ACE_CString (node_local_name) - + "_Upcall_Command"; - - be_visitor_operation_upcall_command_ss upcall_command_visitor (this->ctx_); - upcall_command_visitor.visit (&non_existent, - full_skel_name, - non_exist_upcall_command_name.c_str ()); - - *os << be_nl_2 - << "void " << full_skel_name - << "::_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 << be_uidt_nl - << "{" << be_idt; - - // Generate exception list. - be_visitor_operation_exceptlist_ss exception_list (this->ctx_); - exception_list.visit_operation (&non_existent); - - be_visitor_operation_ss op_visitor (this->ctx_); - - *os << "TAO::SArg_Traits< "; - - op_visitor.gen_arg_template_param_name (&non_existent, - &rt, - os); - - *os << ">::ret_val retval;"; - - op_visitor.gen_skel_body_arglist (&non_existent, - os); - - *os << be_nl_2 - << "TAO::Argument * const args[] =" << be_idt_nl - << "{" << be_idt_nl - << "&retval" - << be_uidt_nl - << "};" << be_uidt_nl << be_nl; - - *os << "static size_t const nargs = 1;" << be_nl_2; - - // Get the right object implementation. - *os << full_skel_name << " * const impl =" << be_idt_nl - << "static_cast<" - << full_skel_name << " *> (servant);" - << be_uidt_nl; - - // Upcall_Command instantiation. - *os << be_nl - << non_exist_upcall_command_name.c_str() - << " command (" << be_idt_nl - << "impl"; - - if (!non_existent.void_return_type () - || non_existent.argument_count () > 0) - { - // server_request.operation_details () will be non-zero in the - // thru-POA collocation case. Use them if available. - *os << "," << be_nl; - - if (be_global->gen_thru_poa_collocation ()) - *os << "server_request.operation_details ()," << be_nl; - - *os << "args"; - } - - *os << ");" << be_uidt_nl << be_nl; - - *os << "TAO::Upcall_Wrapper upcall_wrapper;" << be_nl - << "upcall_wrapper.upcall (server_request" << be_nl - << " , args" << be_nl - << " , nargs" << be_nl - << " , command" - << "\n#if TAO_HAS_INTERCEPTORS == 1" << be_nl - << " , servant_upcall" << be_nl - << " , exceptions" << be_nl - << " , nexceptions" - << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */" << be_nl - << " );"; - - this->generate_send_reply (os); - - *os << be_uidt_nl - << "}" << be_nl; - - non_existent.destroy (); - rt.destroy (); - } - - if (!be_global->gen_minimum_corba ()) - { - ACE_CDR::ULong bound = 0UL; - - // Generate code for the _repository_id skeleton. - auto_ptr<AST_String> s ( - idl_global->gen ()->create_string ( - idl_global->gen ()->create_expr (bound, - AST_Expression::EV_ulong))); - - // @@ Cheat a little by placing a space before the operation name - // to prevent the IDL compiler from interpreting the leading - // underscore as an IDL escape. - Identifier op_name (" _repository_id"); - UTL_ScopedName scoped_name (&op_name, 0); - be_operation repository_id (s.get (), - AST_Operation::OP_noflags, - &scoped_name, - node->is_local (), - node->is_abstract ()); - repository_id.set_defined_in (node); - - ACE_CString repository_id_upcall_command_name = - "_repository_id_" - + ACE_CString (node_local_name) - + "_Upcall_Command" ; - - be_visitor_operation_upcall_command_ss upcall_command_visitor (this->ctx_); - upcall_command_visitor.visit (&repository_id, - full_skel_name, - repository_id_upcall_command_name.c_str ()); - - *os << be_nl_2 - << "void " << full_skel_name - << "::_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 << be_uidt_nl - << "{" << be_idt; - - // Generate exception list. - be_visitor_operation_exceptlist_ss exception_list (this->ctx_); - exception_list.visit_operation (&repository_id); - - be_visitor_operation_ss op_visitor (this->ctx_); - - *os << "TAO::SArg_Traits< "; - - op_visitor.gen_arg_template_param_name (&repository_id, - s.get (), - os); - - *os << ">::ret_val retval;"; - - op_visitor.gen_skel_body_arglist (&repository_id, - os); - - *os << be_nl_2 - << "TAO::Argument * const args[] =" << be_idt_nl - << "{" << be_idt_nl - << "&retval" - << be_uidt_nl - << "};" << be_uidt_nl << be_nl; - - *os << "static size_t const nargs = 1;" << be_nl_2; - - // Get the right object implementation. - *os << full_skel_name << " * const impl =" << be_idt_nl - << "static_cast<" - << full_skel_name << " *> (servant);" - << be_uidt_nl; - - // Upcall_Command instantiation. - *os << be_nl - << repository_id_upcall_command_name.c_str() - << " command (" << be_idt_nl - << "impl"; - - if (!repository_id.void_return_type () - || repository_id.argument_count () > 0) - { - // server_request.operation_details () will be non-zero in the - // thru-POA collocation case. Use them if available. - *os << "," << be_nl; - - if (be_global->gen_thru_poa_collocation ()) - *os << "server_request.operation_details ()," << be_nl; - - *os << "args"; - } - - *os << ");" << be_uidt_nl << be_nl; - - *os << "TAO::Upcall_Wrapper upcall_wrapper;" << be_nl - << "upcall_wrapper.upcall (server_request" << be_nl - << " , args" << be_nl - << " , nargs" << be_nl - << " , command" - << "\n#if TAO_HAS_INTERCEPTORS == 1" << be_nl - << " , servant_upcall" << be_nl - << " , exceptions" << be_nl - << " , nexceptions" - << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */" << be_nl - << " );"; - - this->generate_send_reply (os); - - *os << be_uidt_nl - << "}"; - - repository_id.destroy (); - s.get ()->destroy (); - } - - if (!be_global->gen_corba_e () - && !be_global->gen_minimum_corba ()) - { - *os << be_nl_2; - - *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 - << "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 - << 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);" - << be_uidt_nl - << "}" << be_uidt_nl << be_nl; - - // Get the right object implementation. - *os << full_skel_name << " * const impl =" << be_idt_nl - << "static_cast<" - << full_skel_name << " *> (servant);" - << be_uidt_nl; - - *os << "::CORBA::InterfaceDef_ptr _tao_retval = impl->_get_interface ();" - << be_nl - << "server_request.init_reply ();" << be_nl - << "TAO_OutputCDR &_tao_out = *server_request.outgoing ();" - << be_nl_2 - << "::CORBA::Boolean const _tao_result =" << be_idt_nl - << "_tao_adapter->interfacedef_cdr_insert (_tao_out, _tao_retval);" - << be_uidt_nl << be_nl - << "_tao_adapter->dispose (_tao_retval);" - << be_nl_2; - - *os << "if (!_tao_result)" << be_idt_nl - << "{" << be_idt_nl - << "throw ::CORBA::MARSHAL ();" << be_uidt_nl - << "}" << be_uidt; - - this->generate_send_reply (os); - - *os << be_uidt_nl - << "}" << be_nl_2; - } - - // Generate code for the _component skeleton, don't generate it when - // we use CORBA/e - if (!be_global->gen_corba_e () && !be_global->gen_minimum_corba ()) - { - be_predefined_type rt (AST_PredefinedType::PT_object, 0); - // @@ Cheat a little by placing a space before the operation name - // to prevent the IDL compiler from interpreting the leading - // underscore as an IDL escape. - - // Yes, _get_component() - Identifier op_name (" _get_component"); - UTL_ScopedName scoped_name (&op_name, 0); - be_operation get_component (&rt, - AST_Operation::OP_noflags, - &scoped_name, - node->is_local (), - node->is_abstract ()); - get_component.set_defined_in (node); - - ACE_CString get_component_upcall_command_name = - "_get_component_" - + ACE_CString (node_local_name) - + "_Upcall_Command" ; - - be_visitor_operation_upcall_command_ss upcall_command_visitor (this->ctx_); - upcall_command_visitor.visit (&get_component, - full_skel_name, - get_component_upcall_command_name.c_str()); - - *os << be_nl_2 - << "void " << full_skel_name - << "::_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 - << ")" << be_uidt_nl - << "{" << be_idt; - - // Generate exception list. - be_visitor_operation_exceptlist_ss exception_list (this->ctx_); - exception_list.visit_operation (&get_component); - - be_visitor_operation_ss operation_visitor (this->ctx_); - - *os << "TAO::SArg_Traits< "; - - operation_visitor.gen_arg_template_param_name (&get_component, - &rt, - os); - - *os << ">::ret_val retval;"; - - *os << be_nl_2 - << "TAO::Argument * const args[] =" << be_idt_nl - << "{" << be_idt_nl - << "&retval" - << be_uidt_nl - << "};" << be_uidt_nl << be_nl; - - *os << "static size_t const nargs = 1;" << be_nl_2; - - // Get the right object implementation. - *os << full_skel_name << " * const impl =" << be_idt_nl - << "static_cast<" - << full_skel_name << " *> (servant);" - << be_uidt_nl; - - // Upcall_Command instantiation. - *os << be_nl - << get_component_upcall_command_name.c_str () - << " command (" << be_idt_nl - << "impl"; - - if (!get_component.void_return_type () - || get_component.argument_count () > 0) - { - // server_request.operation_details () will be non-zero in the - // thru-POA collocation case. Use them if available. - *os << "," << be_nl; - - if (be_global->gen_thru_poa_collocation ()) - *os << "server_request.operation_details ()," << be_nl; - - *os << "args"; - } - - *os << ");" << be_uidt_nl << be_nl; - - - *os << "TAO::Upcall_Wrapper upcall_wrapper;" << be_nl - << "upcall_wrapper.upcall (server_request" << be_nl - << " , args" << be_nl - << " , nargs" << be_nl - << " , command" - << "\n#if TAO_HAS_INTERCEPTORS == 1" << be_nl - << " , servant_upcall" << be_nl - << " , exceptions" << be_nl - << " , nexceptions" - << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */" << be_nl - << " );" << be_uidt_nl - << "}"; - - get_component.destroy (); - rt.destroy (); - } // Generate code for the _is_a override. - *os << be_nl_2 << "::CORBA::Boolean " << full_skel_name << "::_is_a (const char* value)" << be_nl @@ -945,8 +438,10 @@ be_visitor_interface_ss::dispatch_method (be_interface *node) *os << be_nl_2; *os << "void " << node->full_skel_name () - << "::_dispatch (TAO_ServerRequest & req, void * servant_upcall)" - << be_nl; + << "::_dispatch (" << be_idt_nl + << "TAO_ServerRequest & req," << be_nl + << "TAO::Portable_Server::Servant_Upcall* servant_upcall)" + << be_uidt_nl; *os << "{" << be_idt_nl; *os << "this->synchronous_upcall_dispatch (req, servant_upcall, this);" << be_uidt_nl; diff --git a/TAO/TAO_IDL/be/be_visitor_operation/amh_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/amh_sh.cpp index 58125600147..87c8d2009e7 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/amh_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/amh_sh.cpp @@ -127,8 +127,7 @@ void be_visitor_amh_operation_sh::generate_shared_prologue ( be_decl *node, TAO_OutStream *os, - const char *skel_prefix - ) + const char *skel_prefix) { *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl_2; @@ -138,9 +137,9 @@ be_visitor_amh_operation_sh::generate_shared_prologue ( << node->local_name () << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &_tao_req," << be_nl - << "void *_tao_obj," << be_nl - << "void *_tao_servant_upcall" << be_uidt_nl - << ");" << be_uidt_nl << be_nl; + << "TAO::Portable_Server::Servant_Upcall *_tao_obj," << be_nl + << "void *_tao_servant_upcall" + << ");" << be_uidt_nl << be_uidt_nl; // We need the interface node in which this operation was defined. However, // if this operation node was an attribute node in disguise, we get this diff --git a/TAO/TAO_IDL/be/be_visitor_operation/amh_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/amh_ss.cpp index 402e55c27cb..5cf5ca397cc 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/amh_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/amh_ss.cpp @@ -336,7 +336,7 @@ be_visitor_amh_operation_ss::generate_shared_prologue (be_decl *node, << node->local_name () << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & _tao_server_request," << be_nl - << "void * /* context */," << be_nl + << "TAO::Portable_Server::Servant_Upcall * /* context */," << be_nl << "void * _tao_servant)" << be_uidt << be_uidt_nl; diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp index af72ab06923..a731cbb4430 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp @@ -107,8 +107,8 @@ be_visitor_operation_sh::visit_operation (be_operation *node) *os << node->local_name () << "_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall," << be_nl + << "TAO_ServerRequest &server_request," << be_nl + << "TAO::Portable_Server::Servant_Upcall *servant_upcall," << be_nl << "void * servant);" << be_uidt << be_uidt; } diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp index 2903992ecba..5052df4253a 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp @@ -191,7 +191,7 @@ be_visitor_operation_ss::gen_skel_operation_body (be_operation * node, *os << this->ctx_->port_prefix ().c_str () << node->local_name () << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & server_request," << be_nl - << "void * TAO_INTERCEPTOR (servant_upcall)," << be_nl + << "TAO::Portable_Server::Servant_Upcall *TAO_INTERCEPTOR (servant_upcall)," << be_nl << "void * servant)" << be_uidt << be_uidt_nl; // Generate the actual code for the skeleton. However, if any of the diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h index ca64c76bdfd..4903fa9718a 100644 --- a/TAO/TAO_IDL/be_include/be_interface.h +++ b/TAO/TAO_IDL/be_include/be_interface.h @@ -412,6 +412,9 @@ protected: /// applies only to implied IDL be_interface *original_interface_; + /// Are we an AMH reply handler? + bool is_amh_rh_; + /// Are we an AMI reply handler? bool is_ami_rh_; diff --git a/TAO/bin/tao_orb_tests.lst b/TAO/bin/tao_orb_tests.lst index 4fdac97932e..28968536fb6 100644 --- a/TAO/bin/tao_orb_tests.lst +++ b/TAO/bin/tao_orb_tests.lst @@ -268,6 +268,7 @@ TAO/tests/Smart_Proxies/run_test.pl: TAO/tests/Smart_Proxies/dtor/run_test.pl: TAO/tests/Stack_Recursion/run_test.pl: !ST !DISABLE_ToFix_LynxOS_PPC !QUICK TAO/tests/Stack_Recursion/run_test.pl -quick : !ST !DISABLE_ToFix_LynxOS_PPC QUICK +TAO/tests/Skeleton_Inheritance/run_test.pl: TAO/tests/Faults/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !OpenVMS_IA64Crash TAO/tests/Faults/run_test_pp.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !OpenVMS_IA64Crash TAO/tests/CallbackTest/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.h b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.h index e4e0257a061..7c2e2fba7d4 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.h +++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.h @@ -23,22 +23,21 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL +/** + * DSI TAO_CEC_DynamicImplementationServer implementation + * + * Implements the DSI impl object + */ class TAO_CEC_DynamicImplementationServer : public TAO_DynamicImplementation { - // = TITLE - // DSI TAO_CEC_DynamicImplementationServer implementation - // - // = DESCRIPTION - // Implements the DSI impl object - // public: - // Constructure + /// Constructor TAO_CEC_DynamicImplementationServer (PortableServer::POA_ptr poa, TAO_CEC_TypedProxyPushConsumer *typed_pp_consumer, TAO_CEC_TypedEventChannel *typed_event_channel); - //Destructor + /// Destructor virtual ~TAO_CEC_DynamicImplementationServer (void); // = The DynamicImplementation methods. @@ -50,20 +49,20 @@ public: virtual PortableServer::POA_ptr _default_POA (void); - // Handles the _is_a call + /// Handles the _is_a call virtual void is_a (CORBA::ServerRequest_ptr request); private: - // The POA + /// The POA PortableServer::POA_var poa_; - // The Typed Proxy Push Consumer Implementation + /// The Typed Proxy Push Consumer Implementation TAO_CEC_TypedProxyPushConsumer *typed_pp_consumer_; - // The Typed Event Channel Implementation + /// The Typed Event Channel Implementation TAO_CEC_TypedEventChannel *typed_event_channel_; - // The RepositoryId + /// The RepositoryId CORBA::RepositoryId repository_id_; }; diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.h b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.h index 31720a9b33e..52af1d8541a 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.h +++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.h @@ -32,7 +32,6 @@ class TAO_CEC_TypedEvent; class TAO_CEC_TypedEventChannel; class TAO_CEC_DynamicImplementationServer; -//Class TAO_CEC_TypedProxyPushConsumer class TAO_Event_Serv_Export TAO_CEC_TypedProxyPushConsumer : public virtual POA_CosTypedEventChannelAdmin::TypedProxyPushConsumer { @@ -40,13 +39,12 @@ public: typedef CosTypedEventChannelAdmin::TypedProxyPushConsumer_ptr _ptr_type; typedef CosTypedEventChannelAdmin::TypedProxyPushConsumer_var _var_type; - //Constructor + /// Constructor TAO_CEC_TypedProxyPushConsumer ( TAO_CEC_TypedEventChannel* typed_event_channel, - const ACE_Time_Value &timeout - ); + const ACE_Time_Value &timeout); - //Destructor + /// Destructor virtual ~TAO_CEC_TypedProxyPushConsumer (void); /// Activate in the POA @@ -81,8 +79,7 @@ public: virtual void disconnect_push_consumer (void); // = The CosTypedEventComm::TypedPushConsumer methods (abstract overloads)... - virtual CORBA::Object_ptr get_typed_consumer ( - ); + virtual CORBA::Object_ptr get_typed_consumer (void); // = The Servant methods virtual PortableServer::POA_ptr _default_POA (void); @@ -90,7 +87,7 @@ public: virtual void _remove_ref (void); protected: - // The guard needs access to the following protected methods. + /// The guard needs access to the following protected methods. friend class TAO_CEC_TypedProxyPushConsumer_Guard; /// The private version (without locking) of is_connected(). diff --git a/TAO/orbsvcs/performance-tests/LoadBalancing/LBPerf/CPU/Roundtrip.h b/TAO/orbsvcs/performance-tests/LoadBalancing/LBPerf/CPU/Roundtrip.h index cc6550dd4f6..7d7b6642a99 100644 --- a/TAO/orbsvcs/performance-tests/LoadBalancing/LBPerf/CPU/Roundtrip.h +++ b/TAO/orbsvcs/performance-tests/LoadBalancing/LBPerf/CPU/Roundtrip.h @@ -28,7 +28,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/orbsvcs/performance-tests/LoadBalancing/LBPerf/RPS/Roundtrip.h b/TAO/orbsvcs/performance-tests/LoadBalancing/LBPerf/RPS/Roundtrip.h index cc6550dd4f6..7d7b6642a99 100644 --- a/TAO/orbsvcs/performance-tests/LoadBalancing/LBPerf/RPS/Roundtrip.h +++ b/TAO/orbsvcs/performance-tests/LoadBalancing/LBPerf/RPS/Roundtrip.h @@ -28,7 +28,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/Roundtrip.h b/TAO/orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/Roundtrip.h index 19c09b07e45..92dce8ce091 100644 --- a/TAO/orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/Roundtrip.h +++ b/TAO/orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/Roundtrip.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/orbsvcs/tests/Bug_2285_Regression/Hello.h b/TAO/orbsvcs/tests/Bug_2285_Regression/Hello.h index b4d9a3cca92..ce818b72c04 100644 --- a/TAO/orbsvcs/tests/Bug_2285_Regression/Hello.h +++ b/TAO/orbsvcs/tests/Bug_2285_Regression/Hello.h @@ -39,7 +39,7 @@ public: static CORBA::Boolean ids_differ_; private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/orbsvcs/tests/Bug_2287_Regression/Hello.h b/TAO/orbsvcs/tests/Bug_2287_Regression/Hello.h index 28bb6597705..6202345bde1 100644 --- a/TAO/orbsvcs/tests/Bug_2287_Regression/Hello.h +++ b/TAO/orbsvcs/tests/Bug_2287_Regression/Hello.h @@ -29,7 +29,7 @@ public: virtual void throw_location_forward (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/orbsvcs/tests/Bug_2615_Regression/Hello.h b/TAO/orbsvcs/tests/Bug_2615_Regression/Hello.h index c2257a266f1..ca2bdccf0e6 100644 --- a/TAO/orbsvcs/tests/Bug_2615_Regression/Hello.h +++ b/TAO/orbsvcs/tests/Bug_2615_Regression/Hello.h @@ -29,7 +29,7 @@ public: virtual CORBA::Boolean has_ft_request_service_context (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/orbsvcs/tests/Bug_2800_Regression/Hello.h b/TAO/orbsvcs/tests/Bug_2800_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/orbsvcs/tests/Bug_2800_Regression/Hello.h +++ b/TAO/orbsvcs/tests/Bug_2800_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/orbsvcs/tests/Bug_2800_Regression/NsShutdown.h b/TAO/orbsvcs/tests/Bug_2800_Regression/NsShutdown.h index c6cf90e02be..00a7f2ce48b 100644 --- a/TAO/orbsvcs/tests/Bug_2800_Regression/NsShutdown.h +++ b/TAO/orbsvcs/tests/Bug_2800_Regression/NsShutdown.h @@ -19,7 +19,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/orbsvcs/tests/Bug_3215_Regression/Hello.h b/TAO/orbsvcs/tests/Bug_3215_Regression/Hello.h index 047a405a5fa..00d76318ae6 100644 --- a/TAO/orbsvcs/tests/Bug_3215_Regression/Hello.h +++ b/TAO/orbsvcs/tests/Bug_3215_Regression/Hello.h @@ -24,7 +24,7 @@ public: virtual void throw_location_forward (); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/orbsvcs/tests/Bug_3216_Regression/Hello.h b/TAO/orbsvcs/tests/Bug_3216_Regression/Hello.h index 44b5353a49d..e605dee88f8 100644 --- a/TAO/orbsvcs/tests/Bug_3216_Regression/Hello.h +++ b/TAO/orbsvcs/tests/Bug_3216_Regression/Hello.h @@ -33,7 +33,7 @@ public: static CORBA::Boolean extended_context_ok_; private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/orbsvcs/tests/Bug_3598b_Regression/Hello.h b/TAO/orbsvcs/tests/Bug_3598b_Regression/Hello.h index 782b1b2f573..af231fe1540 100644 --- a/TAO/orbsvcs/tests/Bug_3598b_Regression/Hello.h +++ b/TAO/orbsvcs/tests/Bug_3598b_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/Hello.h b/TAO/orbsvcs/tests/Bug_3673_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/orbsvcs/tests/Bug_3673_Regression/Hello.h +++ b/TAO/orbsvcs/tests/Bug_3673_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.h b/TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.h index c6cf90e02be..00a7f2ce48b 100644 --- a/TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.h +++ b/TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.h @@ -19,7 +19,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/orbsvcs/tests/COIOP_Naming_Test/Hello.h b/TAO/orbsvcs/tests/COIOP_Naming_Test/Hello.h index 1d5e27d075f..3a25039b7ab 100644 --- a/TAO/orbsvcs/tests/COIOP_Naming_Test/Hello.h +++ b/TAO/orbsvcs/tests/COIOP_Naming_Test/Hello.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/orbsvcs/tests/HTIOP/Hello/Hello.h b/TAO/orbsvcs/tests/HTIOP/Hello/Hello.h index 0afa1750f24..a6c492ee005 100644 --- a/TAO/orbsvcs/tests/HTIOP/Hello/Hello.h +++ b/TAO/orbsvcs/tests/HTIOP/Hello/Hello.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/orbsvcs/tests/InterfaceRepo/IFR_Self_Recursive_IDL_Test/GoodDay.h b/TAO/orbsvcs/tests/InterfaceRepo/IFR_Self_Recursive_IDL_Test/GoodDay.h index 37e56f48233..cb35c06c610 100644 --- a/TAO/orbsvcs/tests/InterfaceRepo/IFR_Self_Recursive_IDL_Test/GoodDay.h +++ b/TAO/orbsvcs/tests/InterfaceRepo/IFR_Self_Recursive_IDL_Test/GoodDay.h @@ -28,7 +28,7 @@ public: virtual ::Test::GoodDay::RoughWeek * this_week (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Latency/AMH_Single_Threaded/Roundtrip.h b/TAO/performance-tests/Latency/AMH_Single_Threaded/Roundtrip.h index eb3e98763fb..f95fe94f589 100644 --- a/TAO/performance-tests/Latency/AMH_Single_Threaded/Roundtrip.h +++ b/TAO/performance-tests/Latency/AMH_Single_Threaded/Roundtrip.h @@ -28,7 +28,7 @@ class Roundtrip void shutdown (Test::AMH_RoundtripResponseHandler_ptr _tao_rh); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Latency/AMI/Roundtrip.h b/TAO/performance-tests/Latency/AMI/Roundtrip.h index 9ea3a22bc1c..5631b6e86d7 100644 --- a/TAO/performance-tests/Latency/AMI/Roundtrip.h +++ b/TAO/performance-tests/Latency/AMI/Roundtrip.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Latency/Collocation/Roundtrip.h b/TAO/performance-tests/Latency/Collocation/Roundtrip.h index 9ea3a22bc1c..5631b6e86d7 100644 --- a/TAO/performance-tests/Latency/Collocation/Roundtrip.h +++ b/TAO/performance-tests/Latency/Collocation/Roundtrip.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Latency/DII/Roundtrip.h b/TAO/performance-tests/Latency/DII/Roundtrip.h index 9ea3a22bc1c..5631b6e86d7 100644 --- a/TAO/performance-tests/Latency/DII/Roundtrip.h +++ b/TAO/performance-tests/Latency/DII/Roundtrip.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Latency/DSI/Roundtrip.h b/TAO/performance-tests/Latency/DSI/Roundtrip.h index ecd7edb359f..e163508f1eb 100644 --- a/TAO/performance-tests/Latency/DSI/Roundtrip.h +++ b/TAO/performance-tests/Latency/DSI/Roundtrip.h @@ -30,7 +30,7 @@ public: PortableServer::POA_ptr poa); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Latency/Deferred/Roundtrip.h b/TAO/performance-tests/Latency/Deferred/Roundtrip.h index 9ea3a22bc1c..5631b6e86d7 100644 --- a/TAO/performance-tests/Latency/Deferred/Roundtrip.h +++ b/TAO/performance-tests/Latency/Deferred/Roundtrip.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Latency/Single_Threaded/Roundtrip.h b/TAO/performance-tests/Latency/Single_Threaded/Roundtrip.h index 9ea3a22bc1c..5631b6e86d7 100644 --- a/TAO/performance-tests/Latency/Single_Threaded/Roundtrip.h +++ b/TAO/performance-tests/Latency/Single_Threaded/Roundtrip.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Latency/Thread_Per_Connection/Roundtrip.h b/TAO/performance-tests/Latency/Thread_Per_Connection/Roundtrip.h index 9ea3a22bc1c..5631b6e86d7 100644 --- a/TAO/performance-tests/Latency/Thread_Per_Connection/Roundtrip.h +++ b/TAO/performance-tests/Latency/Thread_Per_Connection/Roundtrip.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Latency/Thread_Pool/Roundtrip.h b/TAO/performance-tests/Latency/Thread_Pool/Roundtrip.h index 9ea3a22bc1c..5631b6e86d7 100644 --- a/TAO/performance-tests/Latency/Thread_Pool/Roundtrip.h +++ b/TAO/performance-tests/Latency/Thread_Pool/Roundtrip.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Memory/IORsize/Memory_Growth.h b/TAO/performance-tests/Memory/IORsize/Memory_Growth.h index dc61170a2ba..d76ea2610fc 100644 --- a/TAO/performance-tests/Memory/IORsize/Memory_Growth.h +++ b/TAO/performance-tests/Memory/IORsize/Memory_Growth.h @@ -25,7 +25,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Memory/Single_Threaded/Memory_Growth.h b/TAO/performance-tests/Memory/Single_Threaded/Memory_Growth.h index acb1b388c89..1901ef7787e 100644 --- a/TAO/performance-tests/Memory/Single_Threaded/Memory_Growth.h +++ b/TAO/performance-tests/Memory/Single_Threaded/Memory_Growth.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Sequence_Latency/AMH_Single_Threaded/Roundtrip.h b/TAO/performance-tests/Sequence_Latency/AMH_Single_Threaded/Roundtrip.h index f9b5826745d..00215bbed1e 100644 --- a/TAO/performance-tests/Sequence_Latency/AMH_Single_Threaded/Roundtrip.h +++ b/TAO/performance-tests/Sequence_Latency/AMH_Single_Threaded/Roundtrip.h @@ -54,7 +54,7 @@ public: void shutdown (Test::AMH_RoundtripResponseHandler_ptr _tao_rh); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Sequence_Latency/AMI/Roundtrip.h b/TAO/performance-tests/Sequence_Latency/AMI/Roundtrip.h index d640b884d81..6524b2b3399 100644 --- a/TAO/performance-tests/Sequence_Latency/AMI/Roundtrip.h +++ b/TAO/performance-tests/Sequence_Latency/AMI/Roundtrip.h @@ -44,7 +44,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Sequence_Latency/DII/Roundtrip.h b/TAO/performance-tests/Sequence_Latency/DII/Roundtrip.h index d640b884d81..6524b2b3399 100644 --- a/TAO/performance-tests/Sequence_Latency/DII/Roundtrip.h +++ b/TAO/performance-tests/Sequence_Latency/DII/Roundtrip.h @@ -44,7 +44,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Sequence_Latency/DSI/Roundtrip.h b/TAO/performance-tests/Sequence_Latency/DSI/Roundtrip.h index ecd7edb359f..e163508f1eb 100644 --- a/TAO/performance-tests/Sequence_Latency/DSI/Roundtrip.h +++ b/TAO/performance-tests/Sequence_Latency/DSI/Roundtrip.h @@ -30,7 +30,7 @@ public: PortableServer::POA_ptr poa); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Sequence_Latency/Deferred/Roundtrip.h b/TAO/performance-tests/Sequence_Latency/Deferred/Roundtrip.h index d640b884d81..6524b2b3399 100644 --- a/TAO/performance-tests/Sequence_Latency/Deferred/Roundtrip.h +++ b/TAO/performance-tests/Sequence_Latency/Deferred/Roundtrip.h @@ -44,7 +44,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Sequence_Latency/Single_Threaded/Roundtrip.h b/TAO/performance-tests/Sequence_Latency/Single_Threaded/Roundtrip.h index d640b884d81..6524b2b3399 100644 --- a/TAO/performance-tests/Sequence_Latency/Single_Threaded/Roundtrip.h +++ b/TAO/performance-tests/Sequence_Latency/Single_Threaded/Roundtrip.h @@ -44,7 +44,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Sequence_Latency/Thread_Per_Connection/Roundtrip.h b/TAO/performance-tests/Sequence_Latency/Thread_Per_Connection/Roundtrip.h index 1d93a5f9f4e..bc9544cbff5 100644 --- a/TAO/performance-tests/Sequence_Latency/Thread_Per_Connection/Roundtrip.h +++ b/TAO/performance-tests/Sequence_Latency/Thread_Per_Connection/Roundtrip.h @@ -43,7 +43,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/performance-tests/Sequence_Latency/Thread_Pool/Roundtrip.h b/TAO/performance-tests/Sequence_Latency/Thread_Pool/Roundtrip.h index 1d93a5f9f4e..bc9544cbff5 100644 --- a/TAO/performance-tests/Sequence_Latency/Thread_Pool/Roundtrip.h +++ b/TAO/performance-tests/Sequence_Latency/Thread_Pool/Roundtrip.h @@ -43,7 +43,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tao/Abstract_Servant_Base.h b/TAO/tao/Abstract_Servant_Base.h index fcd601e961b..2b43c83a648 100644 --- a/TAO/tao/Abstract_Servant_Base.h +++ b/TAO/tao/Abstract_Servant_Base.h @@ -51,13 +51,17 @@ namespace CORBA namespace TAO { class Argument; + + namespace Portable_Server + { + class Servant_Upcall; + }; } typedef void (*TAO_Skeleton)( TAO_ServerRequest &, - void *, - void * - ); + TAO::Portable_Server::Servant_Upcall *, + void *); typedef void (*TAO_Collocated_Skeleton)( TAO_Abstract_ServantBase *, @@ -150,12 +154,14 @@ protected: * invokes the operation, storing the results and out parameters (if * any) or the exceptions thrown into @a request. */ - virtual void _dispatch (TAO_ServerRequest &request, - void *servant_upcall) = 0; - - virtual void synchronous_upcall_dispatch (TAO_ServerRequest &req, - void *servant_upcall, - void *derived_this) = 0; + virtual void _dispatch ( + TAO_ServerRequest &request, + TAO::Portable_Server::Servant_Upcall *servant_upcall) = 0; + + virtual void synchronous_upcall_dispatch ( + TAO_ServerRequest &req, + TAO::Portable_Server::Servant_Upcall *servant_upcall, + void *derived_this) = 0; /// Get this interface's repository id (TAO specific). virtual const char *_interface_repository_id (void) const = 0; diff --git a/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp b/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp index df33e5462b9..fa6a549f8de 100644 --- a/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp +++ b/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp @@ -69,12 +69,13 @@ TAO::CSD::FW_Server_Request_Wrapper::~FW_Server_Request_Wrapper() // Assumes that the servant argument is not a NULL pointer. void -TAO::CSD::FW_Server_Request_Wrapper::dispatch - (PortableServer::Servant servant) +TAO::CSD::FW_Server_Request_Wrapper::dispatch ( + PortableServer::Servant servant, + TAO::Portable_Server::Servant_Upcall *servant_upcall) { try { - servant->_dispatch(*this->request_, 0); + servant->_dispatch(*this->request_, servant_upcall); } // Only CORBA exceptions are caught here. catch (const ::CORBA::Exception& ex) diff --git a/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h b/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h index e01357d3e10..53efc1959bf 100644 --- a/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h +++ b/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h @@ -71,12 +71,13 @@ namespace TAO void clone(); /// Dispatch the request to the servant. - void dispatch(PortableServer::Servant servant); + void dispatch( + PortableServer::Servant servant, + TAO::Portable_Server::Servant_Upcall *servant_upcall); /// Cancel the request. void cancel(); - private: /// Create a deep copy of the request_ object. diff --git a/TAO/tao/CSD_Framework/CSD_Strategy_Base.inl b/TAO/tao/CSD_Framework/CSD_Strategy_Base.inl index 7e42abe17f6..377e2358591 100644 --- a/TAO/tao/CSD_Framework/CSD_Strategy_Base.inl +++ b/TAO/tao/CSD_Framework/CSD_Strategy_Base.inl @@ -66,7 +66,7 @@ TAO::CSD::Strategy_Base::dispatch_request case DISPATCH_DEFERRED: // Perform the "default" dispatching strategy logic for this request // right now, using the current thread. - upcall.servant()->_dispatch(server_request, (void*)&upcall); + upcall.servant()->_dispatch(server_request, &upcall); break; default: diff --git a/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.inl b/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.inl index 8977b973f4c..60389dc82a6 100644 --- a/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.inl +++ b/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.inl @@ -26,7 +26,7 @@ TAO::CSD::Strategy_Proxy::dispatch_request if (this->strategy_impl_ == 0) { // This is the "default" strategy implementation. - upcall.servant()->_dispatch(server_request, (void*)&upcall); + upcall.servant()->_dispatch(server_request, &upcall); } else { diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.h index bcf4b289d33..1aa09d7e948 100644 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.h +++ b/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.h @@ -73,9 +73,7 @@ namespace TAO /// Delegate to the FW_Server_Request_Wrapper cancel() method. void do_cancel(); - private: - /// The ObjectId for the target servant. PortableServer::ObjectId object_id_; @@ -88,7 +86,6 @@ namespace TAO /// The TAO_ServerRequest object wrapper. FW_Server_Request_Wrapper server_request_; }; - } } diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl index 4334a281140..586f76af3bb 100644 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl +++ b/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl @@ -31,7 +31,9 @@ ACE_INLINE void TAO::CSD::TP_Corba_Request::do_dispatch(void) { - this->server_request_.dispatch(this->servant()); + // Pass 0 for the upcall wrapper. If we have it here, we can change the + // upcall wrapper to a reference in the full TAO Core + this->server_request_.dispatch(this->servant(), 0); } ACE_INLINE diff --git a/TAO/tao/DynamicInterface/Dynamic_Implementation.cpp b/TAO/tao/DynamicInterface/Dynamic_Implementation.cpp index a9495f3b888..1da6a6dd03f 100644 --- a/TAO/tao/DynamicInterface/Dynamic_Implementation.cpp +++ b/TAO/tao/DynamicInterface/Dynamic_Implementation.cpp @@ -112,8 +112,9 @@ TAO_DynamicImplementation::_create_stub (void) } void -TAO_DynamicImplementation::_dispatch (TAO_ServerRequest &request, - void * /* context */) +TAO_DynamicImplementation::_dispatch ( + TAO_ServerRequest &request, + TAO::Portable_Server::Servant_Upcall * /* context */) { // No need to do any of this if the client isn't waiting. if (request.response_expected ()) diff --git a/TAO/tao/DynamicInterface/Dynamic_Implementation.h b/TAO/tao/DynamicInterface/Dynamic_Implementation.h index 0d15ec38c3d..1bed495fce9 100644 --- a/TAO/tao/DynamicInterface/Dynamic_Implementation.h +++ b/TAO/tao/DynamicInterface/Dynamic_Implementation.h @@ -85,7 +85,9 @@ protected: virtual TAO_Stub *_create_stub (void); /// Turns around and calls invoke. - virtual void _dispatch (TAO_ServerRequest &request, void *context); + virtual void _dispatch ( + TAO_ServerRequest &request, + TAO::Portable_Server::Servant_Upcall *context); private: /// Encapsulates code common to _is_a(), _get_interface() and _create_stub(). diff --git a/TAO/tao/Messaging/AMH_Skeletons.cpp b/TAO/tao/Messaging/AMH_Skeletons.cpp new file mode 100644 index 00000000000..8286de08865 --- /dev/null +++ b/TAO/tao/Messaging/AMH_Skeletons.cpp @@ -0,0 +1,282 @@ +// -*- C++ -*- +// $Id$ + +#include "tao/Messaging/AMH_Skeletons.h" + +#include "tao/AnyTypeCode/TypeCode.h" +#include "tao/AnyTypeCode/DynamicC.h" + +#include "tao/PortableServer/Servant_Base.h" +#include "tao/PortableServer/SArg_Traits_T.h" +#include "tao/PortableServer/Basic_SArguments.h" +#include "tao/PortableServer/Special_Basic_SArguments.h" +#include "tao/PortableServer/Fixed_Size_SArgument_T.h" +#include "tao/PortableServer/Var_Size_SArgument_T.h" +#include "tao/PortableServer/Object_SArg_Traits.h" +#include "tao/PortableServer/UB_String_SArguments.h" +#include "tao/PortableServer/get_arg.h" +#include "tao/Object.h" + +#include "tao/PortableInterceptor.h" +#include "tao/PortableServer/SUpcall_commands.h" +#include "tao/ORB_Core.h" + +#include "tao/TAO_Server_Request.h" + +void +_is_a_amh_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = + TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean> ( + this->operation_details_, + this->args_); + + TAO::SArg_Traits< char *>::in_arg_type arg_1 = + TAO::Portable_Server::get_in_arg< char *> ( + this->operation_details_, + this->args_, + 1); + + retval = + this->servant_-> _is_a ( + arg_1); +} + +void +TAO_AMH_Skeletons::_is_a_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; + TAO::SArg_Traits< char *>::in_arg_val _tao_repository_id; + + TAO::Argument * const args[] = + { + &retval, + &_tao_repository_id + }; + + static size_t const nargs = 2; + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _is_a_amh_Upcall_Command command ( + impl, + server_request.operation_details (), + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); + server_request.tao_send_reply (); +} + + +#if (TAO_HAS_MINIMUM_CORBA == 0) +void +_non_existent_amh_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = + TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean> ( + this->operation_details_, + this->args_); + + retval = + this->servant_-> _non_existent (); +} + +void TAO_AMH_Skeletons::_non_existent_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; + + TAO::Argument * const args[] = + { + &retval + }; + + static size_t const nargs = 1; + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _non_existent_amh_Upcall_Command command ( + impl, + server_request.operation_details (), + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); + server_request.tao_send_reply (); +} + + +# if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) +void +TAO_AMH_Skeletons::_interface_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* /* servant_upcall */, + void * servant) +{ + TAO_IFR_Client_Adapter *_tao_adapter = + ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance ( + TAO_ORB_Core::ifr_client_adapter_name ()); + + if (!_tao_adapter) + { + throw ::CORBA::INTF_REPOS (::CORBA::OMGVMCID | 1, ::CORBA::COMPLETED_NO); + } + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + ::CORBA::InterfaceDef_ptr _tao_retval = impl->_get_interface (); + server_request.init_reply (); + TAO_OutputCDR &_tao_out = *server_request.outgoing (); + + ::CORBA::Boolean const _tao_result = + _tao_adapter->interfacedef_cdr_insert (_tao_out, _tao_retval); + + _tao_adapter->dispose (_tao_retval); + + if (!_tao_result) + { + throw ::CORBA::MARSHAL (); + } +} + +void +_get_component_amh_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< ::CORBA::Object>::ret_arg_type retval = + TAO::Portable_Server::get_ret_arg< ::CORBA::Object> ( + this->operation_details_, + this->args_); + + retval = + this->servant_-> _get_component (); +} + +void +TAO_AMH_Skeletons::_component_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< ::CORBA::Object>::ret_val retval; + + TAO::Argument * const args[] = + { + &retval + }; + + static size_t const nargs = 1; + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _get_component_amh_Upcall_Command command ( + impl, + server_request.operation_details (), + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); +} +# endif /* !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */ + + +void +_repository_id_amh_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< char *>::ret_arg_type retval = + TAO::Portable_Server::get_ret_arg< char *> ( + this->operation_details_, + this->args_); + + retval = + this->servant_-> _repository_id (); +} + +void +TAO_AMH_Skeletons::_repository_id_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< char *>::ret_val retval; + + TAO::Argument * const args[] = + { + &retval + }; + + static size_t const nargs = 1; + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _repository_id_amh_Upcall_Command command ( + impl, + server_request.operation_details (), + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); + server_request.tao_send_reply (); +} +#endif /* TAO_HAS_MINIMUM_CORBA */ + + diff --git a/TAO/tao/Messaging/AMH_Skeletons.h b/TAO/tao/Messaging/AMH_Skeletons.h new file mode 100644 index 00000000000..71941de0eca --- /dev/null +++ b/TAO/tao/Messaging/AMH_Skeletons.h @@ -0,0 +1,199 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file AMH_Skeletons.h + * + * $Id$ + * + * @author Marcel Smit <msmit@remedy.nl> + * + * @brief Upcall command exection classes for static AMH skeleton methods + * + * This file contains the classes needed to perform an upcall command for + * the following static AMH methods. + * - _is_a_skel + * - _non_existent_skel + * - _component_skel + * - _repository_id_skel + * - _interface_skel + * These are the same methods as in PortableServer but placed here since + * these methods do contain an invocation to tao_send_reply. + * Since we don't want to bother the regular core with AMH stuff, + * we put these methods and classes here. + * + */ +//============================================================================= + +#ifndef AMH_SKELETONS_H +#define AMH_SKELETONS_H + +#include /**/ "ace/pre.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + + +#include "tao/Messaging/messaging_export.h" + +#include "tao/PortableServer/Upcall_Command.h" +#include "tao/PortableServer/Upcall_Wrapper.h" +#include "tao/operation_details.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +class TAO_ServerRequest; +class TAO_ServantBase; + +/** + * @class _is_a_amh_Upcall_Command + * + * @brief Execution class for _is_a_skel. + * + * + */ +class _is_a_amh_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _is_a_amh_Upcall_Command ( + TAO_ServantBase * servant, + TAO_Operation_Details const * operation_details, + TAO::Argument * const args[]) + : servant_ (servant) + , operation_details_ (operation_details) + , args_ (args) + {} + + virtual void execute (void); + +private: + TAO_ServantBase * const servant_; + TAO_Operation_Details const * const operation_details_; + TAO::Argument * const * const args_; +}; + +/** + * @class _non_existent_amh_Upcall_Command + * + * @brief Execution class for _non_existent_skel. + * + * + */ +#if (TAO_HAS_MINIMUM_CORBA == 0) +class _non_existent_amh_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _non_existent_amh_Upcall_Command ( + TAO_ServantBase * servant, + TAO_Operation_Details const * operation_details, + TAO::Argument * const args[]) + : servant_ (servant) + , operation_details_ (operation_details) + , args_ (args) + { + } + + virtual void execute (void); +private: + TAO_ServantBase * const servant_; + TAO_Operation_Details const * const operation_details_; + TAO::Argument * const * const args_; +}; + +# if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) +/** + * @class _get_component_amh_Upcall_Command + * + * @brief Execution class for _component_skel. + * + * + */ +class _get_component_amh_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _get_component_amh_Upcall_Command ( + TAO_ServantBase * servant, + TAO_Operation_Details const * operation_details, + TAO::Argument * const args[]) + : servant_ (servant) + , operation_details_ (operation_details) + , args_ (args) + { + } + + virtual void execute (void); + +private: + TAO_ServantBase * const servant_; + TAO_Operation_Details const * const operation_details_; + TAO::Argument * const * const args_; +}; +# endif /* !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */ + +/** + * @class _repository_id_amh_Upcall_Command + * + * @brief Execution class for _repository_id_skel + * + * + */ +class _repository_id_amh_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _repository_id_amh_Upcall_Command ( + TAO_ServantBase * servant, + TAO_Operation_Details const * operation_details, + TAO::Argument * const args[]) + : servant_ (servant) + , operation_details_ (operation_details) + , args_ (args) + { + } + + virtual void execute (void); + +private: + TAO_ServantBase * const servant_; + TAO_Operation_Details const * const operation_details_; + TAO::Argument * const * const args_; +}; +#endif /* TAO_HAS_MINIMUM_CORBA */ + + +class TAO_Messaging_Export TAO_AMH_Skeletons +{ +public: + static void _is_a_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); + +#if (TAO_HAS_MINIMUM_CORBA == 0) + static void _non_existent_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); + +# if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) + static void _interface_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* /* servant_upcall */, + void * servant); + + static void _component_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); +# endif /* !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */ + static void _repository_id_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); +#endif /* TAO_HAS_MINIMUM_CORBA */ +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* AMH_SKELETONS_H */ diff --git a/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp b/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp index e4782a7d1ec..59bfa480e95 100644 --- a/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp +++ b/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp @@ -27,7 +27,7 @@ TAO::ServerRequestInterceptor_Adapter_Impl::tao_ft_interception_point ( TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions, CORBA::OctetSeq_out oc) @@ -94,7 +94,7 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) { @@ -167,7 +167,7 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) { @@ -229,7 +229,7 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request ( TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions ) @@ -297,7 +297,7 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_reply ( TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) { @@ -347,14 +347,13 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_exception ( TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) { // This is an "ending" server side interception point so we only // process the interceptors pushed on to the flow stack. - - bool is_remote_request = !server_request.collocated (); + bool const is_remote_request = !server_request.collocated (); // Notice that the interceptors are processed in the opposite order // they were pushed onto the stack since this is an "ending" server @@ -439,14 +438,13 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_other ( TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) { // This is an "ending" server side interception point so we only // process the interceptors pushed on to the flow stack. - - bool is_remote_request = !server_request.collocated (); + bool const is_remote_request = !server_request.collocated (); TAO::ServerRequestInfo request_info (server_request, args, diff --git a/TAO/tao/PI_Server/ServerInterceptorAdapter.h b/TAO/tao/PI_Server/ServerInterceptorAdapter.h index ad9893d4ba5..f13ad01b93e 100644 --- a/TAO/tao/PI_Server/ServerInterceptorAdapter.h +++ b/TAO/tao/PI_Server/ServerInterceptorAdapter.h @@ -87,7 +87,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions, CORBA::OctetSeq_out oc); @@ -104,7 +104,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions); @@ -113,7 +113,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions); @@ -123,7 +123,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions); @@ -133,7 +133,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions); @@ -143,15 +143,14 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions); //@} /// Register an interceptor. virtual void add_interceptor ( - PortableInterceptor::ServerRequestInterceptor_ptr interceptor - ); + PortableInterceptor::ServerRequestInterceptor_ptr interceptor); virtual void add_interceptor ( PortableInterceptor::ServerRequestInterceptor_ptr interceptor, diff --git a/TAO/tao/PI_Server/ServerRequestInfo.h b/TAO/tao/PI_Server/ServerRequestInfo.h index 5087b5efccc..1806a0e4237 100644 --- a/TAO/tao/PI_Server/ServerRequestInfo.h +++ b/TAO/tao/PI_Server/ServerRequestInfo.h @@ -77,7 +77,7 @@ namespace TAO ServerRequestInfo (TAO_ServerRequest & server_request, TAO::Argument * const * args, size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions); diff --git a/TAO/tao/PI_Server/ServerRequestInfo.inl b/TAO/tao/PI_Server/ServerRequestInfo.inl index 981df1cbdff..dff439df6ca 100644 --- a/TAO/tao/PI_Server/ServerRequestInfo.inl +++ b/TAO/tao/PI_Server/ServerRequestInfo.inl @@ -12,14 +12,13 @@ TAO::ServerRequestInfo::ServerRequestInfo ( TAO_ServerRequest & server_request, TAO::Argument * const * args, size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) : server_request_ (server_request) , args_ (args) , nargs_ (nargs) - , servant_upcall_ ( - static_cast<TAO::Portable_Server::Servant_Upcall *> (servant_upcall)) + , servant_upcall_ (servant_upcall) , exceptions_ (exceptions) , nexceptions_ (nexceptions) { diff --git a/TAO/tao/PortableServer/Local_Servant_Base.cpp b/TAO/tao/PortableServer/Local_Servant_Base.cpp index f63bb146c87..6b61c270ce8 100644 --- a/TAO/tao/PortableServer/Local_Servant_Base.cpp +++ b/TAO/tao/PortableServer/Local_Servant_Base.cpp @@ -10,7 +10,9 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL void -TAO_Local_ServantBase::_dispatch (TAO_ServerRequest &, void *) +TAO_Local_ServantBase::_dispatch ( + TAO_ServerRequest &, + TAO::Portable_Server::Servant_Upcall*) { throw ::CORBA::BAD_OPERATION (); } diff --git a/TAO/tao/PortableServer/Local_Servant_Base.h b/TAO/tao/PortableServer/Local_Servant_Base.h index 50931390395..fe1f556b62f 100644 --- a/TAO/tao/PortableServer/Local_Servant_Base.h +++ b/TAO/tao/PortableServer/Local_Servant_Base.h @@ -46,7 +46,9 @@ protected: TAO_Stub *_create_stub (void); /// Throws CORBA::BAD_OPERATION exception. - void _dispatch (TAO_ServerRequest &request, void *servant_upcall); + void _dispatch ( + TAO_ServerRequest &request, + TAO::Portable_Server::Servant_Upcall* servant_upcall); }; TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/PortableServer/Operation_Table.h b/TAO/tao/PortableServer/Operation_Table.h index 9a11e5f1b5a..1e60758646d 100644 --- a/TAO/tao/PortableServer/Operation_Table.h +++ b/TAO/tao/PortableServer/Operation_Table.h @@ -29,9 +29,17 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL class TAO_ServerRequest; class TAO_Abstract_ServantBase; +namespace TAO +{ + namespace Portable_Server + { + class Servant_Upcall; + }; +}; + typedef void (*TAO_Skeleton)( TAO_ServerRequest &, - void *, + TAO::Portable_Server::Servant_Upcall *, void *); typedef void (*TAO_Collocated_Skeleton)( diff --git a/TAO/tao/PortableServer/PolicyS.cpp b/TAO/tao/PortableServer/PolicyS.cpp index 6a533af379a..517e63547ec 100644 --- a/TAO/tao/PortableServer/PolicyS.cpp +++ b/TAO/tao/PortableServer/PolicyS.cpp @@ -317,22 +317,17 @@ namespace POA_CORBA TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - } - // TAO_IDL - Generated from // be\be_visitor_operation/operation_ss.cpp:192 void POA_CORBA::Policy::_get_policy_type_skel ( TAO_ServerRequest & server_request, - void * TAO_INTERCEPTOR (servant_upcall), - void * servant - - ) + TAO::Portable_Server::Servant_Upcall * TAO_INTERCEPTOR (servant_upcall), + void * servant) { - #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static CORBA::ULong const nexceptions = 0; @@ -397,9 +392,7 @@ namespace POA_CORBA this->args_); - retval = - this->servant_->copy ( - ); + retval = this->servant_->copy (); } @@ -417,7 +410,7 @@ namespace POA_CORBA void POA_CORBA::Policy::copy_skel ( TAO_ServerRequest & server_request, - void * TAO_INTERCEPTOR (servant_upcall), + TAO::Portable_Server::Servant_Upcall * TAO_INTERCEPTOR (servant_upcall), void * servant ) @@ -495,7 +488,7 @@ namespace POA_CORBA void POA_CORBA::Policy::destroy_skel ( TAO_ServerRequest & server_request, - void * TAO_INTERCEPTOR (servant_upcall), + TAO::Portable_Server::Servant_Upcall * TAO_INTERCEPTOR (servant_upcall), void * servant ) @@ -590,7 +583,7 @@ namespace POA_CORBA } void POA_CORBA::Policy::_is_a_skel ( TAO_ServerRequest & server_request, - void * TAO_INTERCEPTOR (servant_upcall), + TAO::Portable_Server::Servant_Upcall * TAO_INTERCEPTOR (servant_upcall), void * servant ) @@ -679,7 +672,7 @@ namespace POA_CORBA } void POA_CORBA::Policy::_non_existent_skel ( TAO_ServerRequest & server_request, - void * TAO_INTERCEPTOR (servant_upcall), + TAO::Portable_Server::Servant_Upcall * TAO_INTERCEPTOR (servant_upcall), void * servant ) @@ -731,7 +724,7 @@ void POA_CORBA::Policy::_non_existent_skel ( void POA_CORBA::Policy::_interface_skel ( TAO_ServerRequest & server_request, - void * /* servant_upcall */, + TAO::Portable_Server::Servant_Upcall * /* servant_upcall */, void * servant ) @@ -812,7 +805,7 @@ namespace POA_CORBA } void POA_CORBA::Policy::_component_skel ( TAO_ServerRequest & server_request, - void * TAO_INTERCEPTOR (servant_upcall), + TAO::Portable_Server::Servant_Upcall * TAO_INTERCEPTOR (servant_upcall), void * servant ) @@ -883,14 +876,12 @@ const char* POA_CORBA::Policy::_interface_repository_id (void) const void POA_CORBA::Policy::_dispatch ( TAO_ServerRequest & req, - void * servant_upcall - + TAO::Portable_Server::Servant_Upcall *servant_upcall ) { this->synchronous_upcall_dispatch (req, servant_upcall, - this - ); + this); } // TAO_IDL - Generated from diff --git a/TAO/tao/PortableServer/PolicyS.h b/TAO/tao/PortableServer/PolicyS.h index fc076ae73b5..a502311b859 100644 --- a/TAO/tao/PortableServer/PolicyS.h +++ b/TAO/tao/PortableServer/PolicyS.h @@ -88,98 +88,67 @@ namespace POA_CORBA virtual ~Policy (void); virtual CORBA::Boolean _is_a ( - const char* logical_type_id - - ); + const char* logical_type_id); static void _is_a_skel ( TAO_ServerRequest & req, - void * servant_upcall, - void * servant - - ); + TAO::Portable_Server::Servant_Upcall *servant_upcall, + void * servant); static void _non_existent_skel ( TAO_ServerRequest & req, - void * servant_upcall, - void * servant - - ); + TAO::Portable_Server::Servant_Upcall *servant_upcall, + void * servant); static void _interface_skel ( TAO_ServerRequest & req, - void * servant_upcall, - void * servant - - ); + TAO::Portable_Server::Servant_Upcall *servant_upcall, + void * servant); static void _component_skel ( TAO_ServerRequest & req, - void * servant_upcall, - void * servant - - ); + TAO::Portable_Server::Servant_Upcall *servant_upcall, + void * servant); virtual void _dispatch ( TAO_ServerRequest & req, - void * servant_upcall - - ); + TAO::Portable_Server::Servant_Upcall *servant_upcall); - ::CORBA::Policy *_this ( - void - ); + ::CORBA::Policy *_this (void); virtual const char* _interface_repository_id (void) const; // TAO_IDL - Generated from // be\be_visitor_operation/operation_sh.cpp:45 - virtual CORBA::PolicyType policy_type ( - void - ) - = 0; + virtual CORBA::PolicyType policy_type (void) = 0; static void _get_policy_type_skel ( TAO_ServerRequest & server_request, - void * servant_upcall, - void * servant - - ); + TAO::Portable_Server::Servant_Upcall *servant_upcall, + void * servant); // TAO_IDL - Generated from // be\be_visitor_operation/operation_sh.cpp:45 - virtual ::CORBA::Policy_ptr copy ( - void - ) - = 0; + virtual ::CORBA::Policy_ptr copy (void) = 0; static void copy_skel ( TAO_ServerRequest & server_request, - void * servant_upcall, - void * servant - - ); + TAO::Portable_Server::Servant_Upcall *servant_upcall, + void * servant); // TAO_IDL - Generated from // be\be_visitor_operation/operation_sh.cpp:45 - virtual void destroy ( - void - ) - = 0; + virtual void destroy (void) = 0; static void destroy_skel ( TAO_ServerRequest & server_request, - void * servant_upcall, - void * servant - - ); + TAO::Portable_Server::Servant_Upcall *servant_upcall, + void * servant); }; - - // TAO_IDL - Generated from // be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 diff --git a/TAO/tao/PortableServer/SUpcall_commands.cpp b/TAO/tao/PortableServer/SUpcall_commands.cpp new file mode 100644 index 00000000000..366b1c8a6fa --- /dev/null +++ b/TAO/tao/PortableServer/SUpcall_commands.cpp @@ -0,0 +1,125 @@ +// -*- C++ -*- +// $Id$ + +#include "tao/PortableServer/SUpcall_commands.h" + +#include "tao/AnyTypeCode/TypeCode.h" +#include "tao/AnyTypeCode/DynamicC.h" + +#include "tao/PortableServer/Servant_Base.h" +#include "tao/PortableServer/SArg_Traits_T.h" +#include "tao/PortableServer/Basic_SArguments.h" +#include "tao/PortableServer/Special_Basic_SArguments.h" +#include "tao/PortableServer/Fixed_Size_SArgument_T.h" +#include "tao/PortableServer/Var_Size_SArgument_T.h" +#include "tao/PortableServer/Object_SArg_Traits.h" +#include "tao/PortableServer/UB_String_SArguments.h" +#include "tao/PortableServer/get_arg.h" +#include "tao/Object.h" + +void +_is_a_thru_poa_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = + TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean> ( + this->operation_details_, + this->args_); + + TAO::SArg_Traits< char *>::in_arg_type arg_1 = + TAO::Portable_Server::get_in_arg< char *> ( + this->operation_details_, + this->args_, + 1); + + retval = + this->servant_-> _is_a ( + arg_1); +} + +void +_is_a_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = + static_cast<TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val *> (this->args_[0])->arg (); + + TAO::SArg_Traits< char *>::in_arg_type arg_1 = + static_cast<TAO::SArg_Traits< char *>::in_arg_val *> (this->args_[1])->arg (); + + retval = + this->servant_-> _is_a ( + arg_1); +} + +#if (TAO_HAS_MINIMUM_CORBA == 0) +void +_non_existent_thru_poa_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = + TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean> ( + this->operation_details_, + this->args_); + + retval = + this->servant_-> _non_existent (); +} + +void +_non_existent_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = + static_cast<TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val *> (this->args_[0])->arg (); + + retval = + this->servant_-> _non_existent (); +} + + +# if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) +void +_get_component_thru_poa_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< ::CORBA::Object>::ret_arg_type retval = + TAO::Portable_Server::get_ret_arg< ::CORBA::Object> ( + this->operation_details_, + this->args_); + + retval = + this->servant_-> _get_component (); +} + +void +_get_component_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< ::CORBA::Object>::ret_arg_type retval = + static_cast<TAO::SArg_Traits< ::CORBA::Object>::ret_val *> (this->args_[0])->arg (); + + retval = + this->servant_-> _get_component (); +} + +# endif /* !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */ + + +void +_repository_id_thru_poa_Upcall_Command::execute (void) +{ + TAO::SArg_Traits< char *>::ret_arg_type retval = + TAO::Portable_Server::get_ret_arg< char *> ( + this->operation_details_, + this->args_); + + retval = + this->servant_-> _repository_id (); +} + +void +_repository_id_Upcall_Command::execute(void ) +{ + TAO::SArg_Traits< char *>::ret_arg_type retval = + static_cast<TAO::SArg_Traits< char *>::ret_val *> (this->args_[0])->arg (); + + retval = + this->servant_-> _repository_id (); +} +#endif /* TAO_HAS_MINIMUM_CORBA */ + diff --git a/TAO/tao/PortableServer/SUpcall_commands.h b/TAO/tao/PortableServer/SUpcall_commands.h new file mode 100644 index 00000000000..b012fe202ba --- /dev/null +++ b/TAO/tao/PortableServer/SUpcall_commands.h @@ -0,0 +1,268 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file SUpcall_commands.h + * + * $Id$ + * + * @author Marcel Smit <msmit@remedy.nl> + * + * @brief Upcall command exection classes for static skeleton methods + * + * This file contains the classes needed to perform an upcall command for + * the following static methods, defined in Servant_Base.h + * - _is_a_skel + * - _non_existent_skel + * - _component_skel + * - _repository_id_skel + * - _interface_skel + * + */ +//============================================================================= + +#ifndef TAO_SUPCALL_COMMANDS_H +#define TAO_SUPCALL_COMMANDS_H + +#include /**/ "ace/pre.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/PortableServer/Upcall_Command.h" +#include "tao/PortableServer/Upcall_Wrapper.h" +#include "tao/operation_details.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/** + * @class _is_a_thru_poa_Upcall_Command + * + * @brief Execution class for _is_a_skel. + * + * + */ +class _is_a_thru_poa_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _is_a_thru_poa_Upcall_Command ( + TAO_ServantBase * servant, + TAO_Operation_Details const * operation_details, + TAO::Argument * const args[]) + : servant_ (servant) + , operation_details_ (operation_details) + , args_ (args) + {} + + virtual void execute (void); + +private: + TAO_ServantBase * const servant_; + TAO_Operation_Details const * const operation_details_; + TAO::Argument * const * const args_; +}; + +/** + * @class _is_a_Upcall_Command + * + * @brief Execution class for _is_a_skel when through POA option is used. + * + * + */ +class _is_a_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _is_a_Upcall_Command ( + TAO_ServantBase * servant, + TAO::Argument * const args[]) + : servant_ (servant) + , args_ (args) + { + } + + virtual void execute (void); + +private: + TAO_ServantBase * const servant_; + TAO::Argument * const * const args_; +}; + + +/** + * @class _non_existent_thru_poa_Upcall_Command + * + * @brief Execution class for _non_existent_skel. + * + * + */ +#if (TAO_HAS_MINIMUM_CORBA == 0) +class _non_existent_thru_poa_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _non_existent_thru_poa_Upcall_Command ( + TAO_ServantBase * servant, + TAO_Operation_Details const * operation_details, + TAO::Argument * const args[]) + : servant_ (servant) + , operation_details_ (operation_details) + , args_ (args) + { + } + + virtual void execute (void); +private: + TAO_ServantBase * const servant_; + TAO_Operation_Details const * const operation_details_; + TAO::Argument * const * const args_; +}; + +/** + * @class _non_existent_Upcall_Command + * + * @brief Execution class for _non_existent_skel when through POA option is used. + * + * + */ +class _non_existent_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _non_existent_Upcall_Command ( + TAO_ServantBase * servant, + TAO::Argument * const args[]) + : servant_ (servant) + , args_ (args) + { + } + + virtual void execute (void); + +private: + TAO_ServantBase * const servant_; + TAO::Argument * const * const args_; +}; + + +# if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) +/** + * @class _get_component_thru_poa_Upcall_Command + * + * @brief Execution class for _component_skel. + * + * + */ +class _get_component_thru_poa_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _get_component_thru_poa_Upcall_Command ( + TAO_ServantBase * servant, + TAO_Operation_Details const * operation_details, + TAO::Argument * const args[]) + : servant_ (servant) + , operation_details_ (operation_details) + , args_ (args) + { + } + + virtual void execute (void); + +private: + TAO_ServantBase * const servant_; + TAO_Operation_Details const * const operation_details_; + TAO::Argument * const * const args_; +}; + +/** + * @class _get_component_Upcall_Command + * + * @brief Execution class for _get_component when through POA option is used. + * + * + */ +class _get_component_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _get_component_Upcall_Command ( + TAO_ServantBase * servant, + TAO::Argument * const args[]) + : servant_ (servant) + , args_ (args) + { + } + + virtual void execute (void); + +private: + TAO_ServantBase * const servant_; + TAO::Argument * const * const args_; +}; +# endif /* !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */ + +/** + * @class _repository_id_thru_poa_Upcall_Command + * + * @brief Execution class for _repository_id_skel + * + * + */ +class _repository_id_thru_poa_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _repository_id_thru_poa_Upcall_Command ( + TAO_ServantBase * servant, + TAO_Operation_Details const * operation_details, + TAO::Argument * const args[]) + : servant_ (servant) + , operation_details_ (operation_details) + , args_ (args) + { + } + + virtual void execute (void); + +private: + TAO_ServantBase * const servant_; + TAO_Operation_Details const * const operation_details_; + TAO::Argument * const * const args_; +}; + +/** + * @class _repository_id_Upcall_Command + * + * @brief Execution class for _repository_id when through POA option is used. + * + * + */ +class _repository_id_Upcall_Command + : public TAO::Upcall_Command +{ +public: + inline _repository_id_Upcall_Command ( + TAO_ServantBase * servant, + TAO::Argument * const args[]) + : servant_ (servant) + , args_ (args) + { + } + + virtual void execute (void); + +private: + TAO_ServantBase * const servant_; + TAO::Argument * const * const args_; +}; + +#endif /* TAO_HAS_MINIMUM_CORBA */ + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_SUPCALL_COMMANDS_H */ diff --git a/TAO/tao/PortableServer/Servant_Base.cpp b/TAO/tao/PortableServer/Servant_Base.cpp index 4c33eb15523..b8693bf5abb 100644 --- a/TAO/tao/PortableServer/Servant_Base.cpp +++ b/TAO/tao/PortableServer/Servant_Base.cpp @@ -7,12 +7,26 @@ #include "tao/PortableServer/POA_Current_Impl.h" #include "tao/PortableServer/Direct_Collocation_Upcall_Wrapper.h" +#include "tao/PortableInterceptor.h" +#include "tao/PortableServer/SUpcall_commands.h" + +#include "tao/PortableServer/SArg_Traits_T.h" +#include "tao/PortableServer/Basic_SArguments.h" +#include "tao/PortableServer/Special_Basic_SArguments.h" +#include "tao/PortableServer/Fixed_Size_SArgument_T.h" +#include "tao/PortableServer/Var_Size_SArgument_T.h" +#include "tao/PortableServer/Object_SArg_Traits.h" +#include "tao/PortableServer/UB_String_SArguments.h" +#include "tao/PortableServer/get_arg.h" +#include "tao/Object.h" + #include "tao/Timeprobe.h" #include "tao/ORB_Core.h" #include "tao/TSS_Resources.h" #include "tao/Stub.h" #include "tao/TAO_Server_Request.h" #include "tao/IFR_Client_Adapter.h" +#include "tao/Basic_Types.h" #include "ace/Dynamic_Service.h" #include "ace/OS_NS_string.h" @@ -25,10 +39,10 @@ #if defined (ACE_ENABLE_TIMEPROBES) -static const char *TAO_Servant_Base_Timeprobe_Description[] = +static const char *TAO_ServantBase_Timeprobe_Description[] = { - "Servant_Base::_find - start", - "Servant_Base::_find - end" + "TAO_ServantBase::_find - start", + "TAO_ServantBase::_find - end" }; enum @@ -38,7 +52,7 @@ enum }; // Setup Timeprobes -ACE_TIMEPROBE_EVENT_DESCRIPTIONS (TAO_Servant_Base_Timeprobe_Description, +ACE_TIMEPROBE_EVENT_DESCRIPTIONS (TAO_ServantBase_Timeprobe_Description, TAO_SERVANT_BASE_FIND_START); #endif /* ACE_ENABLE_TIMEPROBES */ @@ -78,6 +92,364 @@ TAO_ServantBase::_default_POA (void) return PortableServer::POA::_narrow (object.in ()); } + +void +TAO_ServantBase::_is_a_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; + TAO::SArg_Traits< char *>::in_arg_val _tao_repository_id; + + TAO::Argument * const args[] = + { + &retval, + &_tao_repository_id + }; + + static size_t const nargs = 2; + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _is_a_Upcall_Command command ( + impl, + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); +} + +void +TAO_ServantBase::_is_a_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; + TAO::SArg_Traits< char *>::in_arg_val _tao_repository_id; + + TAO::Argument * const args[] = + { + &retval, + &_tao_repository_id + }; + + static size_t const nargs = 2; + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _is_a_thru_poa_Upcall_Command command ( + impl, + server_request.operation_details (), + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); +} + + +#if (TAO_HAS_MINIMUM_CORBA == 0) +void +TAO_ServantBase::_non_existent_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; + + TAO::Argument * const args[] = + { + &retval + }; + + static size_t const nargs = 1; + + TAO_ServantBase * const impl = static_cast<TAO_ServantBase *> (servant); + + _non_existent_Upcall_Command command ( + impl, + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); +} + +void TAO_ServantBase::_non_existent_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; + + TAO::Argument * const args[] = + { + &retval + }; + + static size_t const nargs = 1; + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _non_existent_thru_poa_Upcall_Command command ( + impl, + server_request.operation_details (), + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); +} + + +# if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) +void +TAO_ServantBase::_interface_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* /* servant_upcall */, + void * servant) +{ + TAO_IFR_Client_Adapter *_tao_adapter = + ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance ( + TAO_ORB_Core::ifr_client_adapter_name ()); + + if (!_tao_adapter) + { + throw ::CORBA::INTF_REPOS (::CORBA::OMGVMCID | 1, ::CORBA::COMPLETED_NO); + } + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + ::CORBA::InterfaceDef_ptr _tao_retval = impl->_get_interface (); + server_request.init_reply (); + TAO_OutputCDR &_tao_out = *server_request.outgoing (); + + ::CORBA::Boolean const _tao_result = + _tao_adapter->interfacedef_cdr_insert (_tao_out, _tao_retval); + + _tao_adapter->dispose (_tao_retval); + + if (!_tao_result) + { + throw ::CORBA::MARSHAL (); + } +} + +void +TAO_ServantBase::_component_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< ::CORBA::Object>::ret_val retval; + + TAO::Argument * const args[] = + { + &retval + }; + + static size_t const nargs = 1; + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _get_component_Upcall_Command command ( + impl, + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); +} + +void +TAO_ServantBase::_component_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< ::CORBA::Object>::ret_val retval; + + TAO::Argument * const args[] = + { + &retval + }; + + static size_t const nargs = 1; + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _get_component_thru_poa_Upcall_Command command ( + impl, + server_request.operation_details (), + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); +} + +# endif /* !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */ + + + +void +TAO_ServantBase::_repository_id_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< char *>::ret_val retval; + + TAO::Argument * const args[] = + { + &retval + }; + + static size_t const nargs = 1; + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _repository_id_Upcall_Command command ( + impl, + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); +} + +void +TAO_ServantBase::_repository_id_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* TAO_INTERCEPTOR (servant_upcall), + void * servant) +{ +#if TAO_HAS_INTERCEPTORS == 1 + static ::CORBA::TypeCode_ptr const * const exceptions = 0; + static ::CORBA::ULong const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< char *>::ret_val retval; + + TAO::Argument * const args[] = + { + &retval + }; + + static size_t const nargs = 1; + + TAO_ServantBase * const impl = + static_cast<TAO_ServantBase *> (servant); + + _repository_id_thru_poa_Upcall_Command command ( + impl, + server_request.operation_details (), + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ); +} +#endif /* TAO_HAS_MINIMUM_CORBA */ + CORBA::Boolean TAO_ServantBase::_is_a (const char *logical_type_id) { @@ -182,9 +554,11 @@ TAO_ServantBase::_create_stub (void) return stub; } -void TAO_ServantBase::synchronous_upcall_dispatch (TAO_ServerRequest & req, - void * servant_upcall, - void * derived_this) +void +TAO_ServantBase::synchronous_upcall_dispatch ( + TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * derived_this) { TAO_Skeleton skel; char const * const opname = req.operation (); @@ -251,13 +625,13 @@ void TAO_ServantBase::synchronous_upcall_dispatch (TAO_ServerRequest & req, req.tao_send_reply_exception (ex); } } - - return; } -void TAO_ServantBase::asynchronous_upcall_dispatch (TAO_ServerRequest & req, - void * servant_upcall, - void * derived_this) +void +TAO_ServantBase::asynchronous_upcall_dispatch ( + TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * derived_this) { TAO_Skeleton skel; const char *opname = req.operation (); @@ -294,7 +668,6 @@ void TAO_ServantBase::asynchronous_upcall_dispatch (TAO_ServerRequest & req, // Return immediately. Do not send a reply; this is an // asynchronous upcall. (unless, of course there is a system // exception. - } catch (const ::CORBA::Exception& ex) { diff --git a/TAO/tao/PortableServer/Servant_Base.h b/TAO/tao/PortableServer/Servant_Base.h index f2e43803cb4..12eee3ffd64 100644 --- a/TAO/tao/PortableServer/Servant_Base.h +++ b/TAO/tao/PortableServer/Servant_Base.h @@ -70,6 +70,43 @@ public: /// Destructor. virtual ~TAO_ServantBase (void); + + static void _is_a_skel (TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); + + static void _is_a_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); + +#if (TAO_HAS_MINIMUM_CORBA == 0) + static void _non_existent_skel (TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); + static void _non_existent_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); + +# if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) + static void _interface_skel (TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); + + static void _component_skel (TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); + static void _component_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); +# endif /* !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */ + static void _repository_id_skel (TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); + static void _repository_id_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * servant); +#endif /* TAO_HAS_MINIMUM_CORBA */ + /// Returns the default POA for this servant. virtual PortableServer::POA_ptr _default_POA (void); @@ -98,7 +135,9 @@ public: * results and out parameters (if any) or the exceptions thrown into * @a request. */ - virtual void _dispatch (TAO_ServerRequest &request, void *servant_upcall) = 0; + virtual void _dispatch ( + TAO_ServerRequest &request, + TAO::Portable_Server::Servant_Upcall* servant_upcall) = 0; /// Please see documentation in tao/Abstract_Servant_Base.h for /// details. @@ -154,13 +193,15 @@ protected: /// Assignment operator. TAO_ServantBase &operator= (const TAO_ServantBase &); - virtual void synchronous_upcall_dispatch (TAO_ServerRequest & req, - void * servant_upcall, - void * derived_this); + virtual void synchronous_upcall_dispatch ( + TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * derived_this); - virtual void asynchronous_upcall_dispatch (TAO_ServerRequest & req, - void * servant_upcall, - void * derived_this); + virtual void asynchronous_upcall_dispatch ( + TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + void * derived_this); protected: /// Reference counter. diff --git a/TAO/tao/PortableServer/Upcall_Wrapper.cpp b/TAO/tao/PortableServer/Upcall_Wrapper.cpp index f3dad5e121c..501da0d9e18 100644 --- a/TAO/tao/PortableServer/Upcall_Wrapper.cpp +++ b/TAO/tao/PortableServer/Upcall_Wrapper.cpp @@ -28,7 +28,7 @@ TAO::Upcall_Wrapper::upcall (TAO_ServerRequest & server_request, size_t nargs, TAO::Upcall_Command & command #if TAO_HAS_INTERCEPTORS == 1 - , void * servant_upcall + , TAO::Portable_Server::Servant_Upcall *servant_upcall , CORBA::TypeCode_ptr const * exceptions , CORBA::ULong nexceptions #endif /* TAO_HAS_INTERCEPTORS == 1 */ diff --git a/TAO/tao/PortableServer/Upcall_Wrapper.h b/TAO/tao/PortableServer/Upcall_Wrapper.h index 2138e0b62e9..6fc288086bd 100644 --- a/TAO/tao/PortableServer/Upcall_Wrapper.h +++ b/TAO/tao/PortableServer/Upcall_Wrapper.h @@ -43,6 +43,11 @@ namespace TAO class Argument; class Upcall_Command; + namespace Portable_Server + { + class Servant_Upcall; + }; + /** * @class Upcall_Wrapper * @@ -68,7 +73,6 @@ namespace TAO * argument list. * @param command @c Command object that performs the * actual upcall into the servant. - * * @param servant_upcall Object containing information for POA * that dispatched the servant. * @param exceptions Array of user exceptions the operation @@ -81,7 +85,7 @@ namespace TAO size_t nargs, TAO::Upcall_Command & command #if TAO_HAS_INTERCEPTORS == 1 - , void * servant_upcall + , TAO::Portable_Server::Servant_Upcall *servant_upcall , CORBA::TypeCode_ptr const * exceptions , CORBA::ULong nexceptions #endif /* TAO_HAS_INTERCEPTORS == 1 */ diff --git a/TAO/tao/ServerRequestInterceptor_Adapter.h b/TAO/tao/ServerRequestInterceptor_Adapter.h index 5a3f55db4bb..a04fe3d7662 100644 --- a/TAO/tao/ServerRequestInterceptor_Adapter.h +++ b/TAO/tao/ServerRequestInterceptor_Adapter.h @@ -56,6 +56,11 @@ namespace TAO class PICurrent_Impl; class Upcall_Command; + namespace Portable_Server + { + class Servant_Upcall; + }; + /** * @class ServerRequestInterceptor_Adapter */ @@ -80,7 +85,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions, CORBA::OctetSeq_out oc) = 0; @@ -97,7 +102,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) = 0; @@ -106,7 +111,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) = 0; @@ -116,7 +121,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) = 0; @@ -126,7 +131,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) = 0; @@ -136,7 +141,7 @@ namespace TAO TAO_ServerRequest &server_request, TAO::Argument * const args[], size_t nargs, - void * servant_upcall, + TAO::Portable_Server::Servant_Upcall *servant_upcall, CORBA::TypeCode_ptr const * exceptions, CORBA::ULong nexceptions) = 0; //@} @@ -148,8 +153,7 @@ namespace TAO /// Register an interceptor with policies. virtual void add_interceptor ( PortableInterceptor::ServerRequestInterceptor_ptr interceptor, - const CORBA::PolicyList& policies - ) = 0; + const CORBA::PolicyList& policies) = 0; virtual TAO::PICurrent_Impl *allocate_pi_current (void) = 0; diff --git a/TAO/tests/Bug_1330_Regression/Test_i.h b/TAO/tests/Bug_1330_Regression/Test_i.h index e1f38a78323..5c5077d8532 100644 --- a/TAO/tests/Bug_1330_Regression/Test_i.h +++ b/TAO/tests/Bug_1330_Regression/Test_i.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_1482_Regression/Hello.h b/TAO/tests/Bug_1482_Regression/Hello.h index 0230d9b4da6..96c88856c65 100644 --- a/TAO/tests/Bug_1482_Regression/Hello.h +++ b/TAO/tests/Bug_1482_Regression/Hello.h @@ -20,7 +20,7 @@ public: virtual CORBA::ULong next_prime (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Bug_2084_Regression/EventNode.h b/TAO/tests/Bug_2084_Regression/EventNode.h index b3e62f57e7c..b2bb74f28de 100644 --- a/TAO/tests/Bug_2084_Regression/EventNode.h +++ b/TAO/tests/Bug_2084_Regression/EventNode.h @@ -26,7 +26,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Bug_2084_Regression/Hello.h b/TAO/tests/Bug_2084_Regression/Hello.h index 0f8f1ada1ce..6a101baded5 100644 --- a/TAO/tests/Bug_2084_Regression/Hello.h +++ b/TAO/tests/Bug_2084_Regression/Hello.h @@ -26,7 +26,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Bug_2183_Regression/Hello.h b/TAO/tests/Bug_2183_Regression/Hello.h index 76d00d09df0..c3338228150 100644 --- a/TAO/tests/Bug_2183_Regression/Hello.h +++ b/TAO/tests/Bug_2183_Regression/Hello.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_2186_Regression/Hello.h b/TAO/tests/Bug_2186_Regression/Hello.h index 59e72ed2695..e2799f520b1 100644 --- a/TAO/tests/Bug_2186_Regression/Hello.h +++ b/TAO/tests/Bug_2186_Regression/Hello.h @@ -24,7 +24,7 @@ public: virtual void request_callback (Test::Hello_ptr call_me); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_2241_Regression/Hello.h b/TAO/tests/Bug_2241_Regression/Hello.h index 1d5e27d075f..3a25039b7ab 100644 --- a/TAO/tests/Bug_2241_Regression/Hello.h +++ b/TAO/tests/Bug_2241_Regression/Hello.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Bug_2328_Regression/Hello.h b/TAO/tests/Bug_2328_Regression/Hello.h index 883a1a610d7..421ccc5e2bd 100644 --- a/TAO/tests/Bug_2328_Regression/Hello.h +++ b/TAO/tests/Bug_2328_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_2593_Regression/Hello.h b/TAO/tests/Bug_2593_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_2593_Regression/Hello.h +++ b/TAO/tests/Bug_2593_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_2654_Regression/Hello.h b/TAO/tests/Bug_2654_Regression/Hello.h index 5ac669ccd98..2efb6c22796 100644 --- a/TAO/tests/Bug_2654_Regression/Hello.h +++ b/TAO/tests/Bug_2654_Regression/Hello.h @@ -21,7 +21,7 @@ public: private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; Test::CallBack_var callback_; diff --git a/TAO/tests/Bug_2683_Regression/test_i.h b/TAO/tests/Bug_2683_Regression/test_i.h index 9cbd85b3468..c749c436001 100644 --- a/TAO/tests/Bug_2683_Regression/test_i.h +++ b/TAO/tests/Bug_2683_Regression/test_i.h @@ -34,7 +34,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. ORB_Killer *killer_; }; diff --git a/TAO/tests/Bug_2768_Regression/Messenger_i.h b/TAO/tests/Bug_2768_Regression/Messenger_i.h index 8655c1c68be..1178f378987 100644 --- a/TAO/tests/Bug_2768_Regression/Messenger_i.h +++ b/TAO/tests/Bug_2768_Regression/Messenger_i.h @@ -12,7 +12,7 @@ public: virtual void send (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_2966_Regression/Hello.h b/TAO/tests/Bug_2966_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_2966_Regression/Hello.h +++ b/TAO/tests/Bug_2966_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3299_Regression/Hello.h b/TAO/tests/Bug_3299_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_3299_Regression/Hello.h +++ b/TAO/tests/Bug_3299_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3333_Regression/Hello.h b/TAO/tests/Bug_3333_Regression/Hello.h index 782b1b2f573..af231fe1540 100644 --- a/TAO/tests/Bug_3333_Regression/Hello.h +++ b/TAO/tests/Bug_3333_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3430_Regression/Hello.h b/TAO/tests/Bug_3430_Regression/Hello.h index e53a0789ce8..dadef8e03c6 100644 --- a/TAO/tests/Bug_3430_Regression/Hello.h +++ b/TAO/tests/Bug_3430_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3479_Regression/Hello.h b/TAO/tests/Bug_3479_Regression/Hello.h index fe1b77ce0e8..be97f9b6c82 100644 --- a/TAO/tests/Bug_3479_Regression/Hello.h +++ b/TAO/tests/Bug_3479_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3547_Regression/Stock_Quoter_i.h b/TAO/tests/Bug_3547_Regression/Stock_Quoter_i.h index fc0320bcc73..76b19672d68 100644 --- a/TAO/tests/Bug_3547_Regression/Stock_Quoter_i.h +++ b/TAO/tests/Bug_3547_Regression/Stock_Quoter_i.h @@ -17,7 +17,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3553_Regression/Hello.h b/TAO/tests/Bug_3553_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_3553_Regression/Hello.h +++ b/TAO/tests/Bug_3553_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3558_Regression/Hello.h b/TAO/tests/Bug_3558_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_3558_Regression/Hello.h +++ b/TAO/tests/Bug_3558_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3598a_Regression/Hello.h b/TAO/tests/Bug_3598a_Regression/Hello.h index 782b1b2f573..af231fe1540 100644 --- a/TAO/tests/Bug_3598a_Regression/Hello.h +++ b/TAO/tests/Bug_3598a_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3636_Regression/Hello.h b/TAO/tests/Bug_3636_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_3636_Regression/Hello.h +++ b/TAO/tests/Bug_3636_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3676_Regression/Hello.h b/TAO/tests/Bug_3676_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_3676_Regression/Hello.h +++ b/TAO/tests/Bug_3676_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3746_Regression/Test_i.h b/TAO/tests/Bug_3746_Regression/Test_i.h index 5d51398d2f7..454a4e75c3e 100644 --- a/TAO/tests/Bug_3746_Regression/Test_i.h +++ b/TAO/tests/Bug_3746_Regression/Test_i.h @@ -25,7 +25,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3748_Regression/Hello.h b/TAO/tests/Bug_3748_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_3748_Regression/Hello.h +++ b/TAO/tests/Bug_3748_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3790_Regression/simple_test_i.h b/TAO/tests/Bug_3790_Regression/simple_test_i.h index 4b82ae9c26f..0a5f17eeeda 100644 --- a/TAO/tests/Bug_3790_Regression/simple_test_i.h +++ b/TAO/tests/Bug_3790_Regression/simple_test_i.h @@ -18,7 +18,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3837_Regression/Hello.h b/TAO/tests/Bug_3837_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_3837_Regression/Hello.h +++ b/TAO/tests/Bug_3837_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3896_Regression/Hello.h b/TAO/tests/Bug_3896_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_3896_Regression/Hello.h +++ b/TAO/tests/Bug_3896_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_3954_Regression/Hello.h b/TAO/tests/Bug_3954_Regression/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Bug_3954_Regression/Hello.h +++ b/TAO/tests/Bug_3954_Regression/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Bug_933_Regression/Messenger_i.h b/TAO/tests/Bug_933_Regression/Messenger_i.h index c975b416424..486c2e3ee67 100644 --- a/TAO/tests/Bug_933_Regression/Messenger_i.h +++ b/TAO/tests/Bug_933_Regression/Messenger_i.h @@ -21,7 +21,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/COIOP/Hello.h b/TAO/tests/COIOP/Hello.h index 1d5e27d075f..3a25039b7ab 100644 --- a/TAO/tests/COIOP/Hello.h +++ b/TAO/tests/COIOP/Hello.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h b/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h +++ b/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Cache_Growth_Test/Hello.h b/TAO/tests/Cache_Growth_Test/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Cache_Growth_Test/Hello.h +++ b/TAO/tests/Cache_Growth_Test/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Client_Leaks/Process.h b/TAO/tests/Client_Leaks/Process.h index dab625cabb5..7906a4a0d7d 100644 --- a/TAO/tests/Client_Leaks/Process.h +++ b/TAO/tests/Client_Leaks/Process.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Client_Leaks/Process_Factory.h b/TAO/tests/Client_Leaks/Process_Factory.h index 2131b6a37cf..1fc6c346097 100644 --- a/TAO/tests/Client_Leaks/Process_Factory.h +++ b/TAO/tests/Client_Leaks/Process_Factory.h @@ -27,7 +27,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Collocated_Best/Collocated_Best_Direct/Hello.h b/TAO/tests/Collocated_Best/Collocated_Best_Direct/Hello.h index 1d5e27d075f..3a25039b7ab 100644 --- a/TAO/tests/Collocated_Best/Collocated_Best_Direct/Hello.h +++ b/TAO/tests/Collocated_Best/Collocated_Best_Direct/Hello.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Collocated_Best/Collocated_Best_NoColl/Hello.h b/TAO/tests/Collocated_Best/Collocated_Best_NoColl/Hello.h index 1d5e27d075f..3a25039b7ab 100644 --- a/TAO/tests/Collocated_Best/Collocated_Best_NoColl/Hello.h +++ b/TAO/tests/Collocated_Best/Collocated_Best_NoColl/Hello.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Collocated_Best/Collocated_Best_ThuP/Hello.h b/TAO/tests/Collocated_Best/Collocated_Best_ThuP/Hello.h index 1d5e27d075f..3a25039b7ab 100644 --- a/TAO/tests/Collocated_Best/Collocated_Best_ThuP/Hello.h +++ b/TAO/tests/Collocated_Best/Collocated_Best_ThuP/Hello.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Collocated_DerivedIF/Hello.h b/TAO/tests/Collocated_DerivedIF/Hello.h index a028b36b192..0ee5d3cc2da 100644 --- a/TAO/tests/Collocated_DerivedIF/Hello.h +++ b/TAO/tests/Collocated_DerivedIF/Hello.h @@ -25,7 +25,7 @@ private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; ACE_thread_t thr_id_; diff --git a/TAO/tests/Collocated_NoColl/Hello.h b/TAO/tests/Collocated_NoColl/Hello.h index 1d5e27d075f..3a25039b7ab 100644 --- a/TAO/tests/Collocated_NoColl/Hello.h +++ b/TAO/tests/Collocated_NoColl/Hello.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Collocated_ThruP_Sp/Hello.h b/TAO/tests/Collocated_ThruP_Sp/Hello.h index 1d5e27d075f..3a25039b7ab 100644 --- a/TAO/tests/Collocated_ThruP_Sp/Hello.h +++ b/TAO/tests/Collocated_ThruP_Sp/Hello.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Collocated_ThruP_Sp_Gd/Hello.h b/TAO/tests/Collocated_ThruP_Sp_Gd/Hello.h index 1d5e27d075f..3a25039b7ab 100644 --- a/TAO/tests/Collocated_ThruP_Sp_Gd/Hello.h +++ b/TAO/tests/Collocated_ThruP_Sp_Gd/Hello.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Collocation_Exception_Test/Hello.h b/TAO/tests/Collocation_Exception_Test/Hello.h index 4f4b64b9646..884af0f60bb 100644 --- a/TAO/tests/Collocation_Exception_Test/Hello.h +++ b/TAO/tests/Collocation_Exception_Test/Hello.h @@ -36,7 +36,7 @@ public: private: void throw_internal_b (void); - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Collocation_Oneway_Tests/Hello.h b/TAO/tests/Collocation_Oneway_Tests/Hello.h index afd234e120e..df2092153ed 100644 --- a/TAO/tests/Collocation_Oneway_Tests/Hello.h +++ b/TAO/tests/Collocation_Oneway_Tests/Hello.h @@ -30,7 +30,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Collocation_Tests/Hello.h b/TAO/tests/Collocation_Tests/Hello.h index 1d5e27d075f..3a25039b7ab 100644 --- a/TAO/tests/Collocation_Tests/Hello.h +++ b/TAO/tests/Collocation_Tests/Hello.h @@ -23,7 +23,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/Connect_Strategy_Test/Hello.h b/TAO/tests/Connect_Strategy_Test/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Connect_Strategy_Test/Hello.h +++ b/TAO/tests/Connect_Strategy_Test/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/DII_Collocation_Tests/oneway/Hello.h b/TAO/tests/DII_Collocation_Tests/oneway/Hello.h index e2f9c1c9a8c..699055f9daf 100644 --- a/TAO/tests/DII_Collocation_Tests/oneway/Hello.h +++ b/TAO/tests/DII_Collocation_Tests/oneway/Hello.h @@ -125,7 +125,7 @@ public: CORBA::ULong error_count () const; private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/DII_Collocation_Tests/twoway/Hello.h b/TAO/tests/DII_Collocation_Tests/twoway/Hello.h index 059d4f52de8..98fa55930f2 100644 --- a/TAO/tests/DII_Collocation_Tests/twoway/Hello.h +++ b/TAO/tests/DII_Collocation_Tests/twoway/Hello.h @@ -132,7 +132,7 @@ public: CORBA::ULong error_count () const; private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; diff --git a/TAO/tests/DSI_AMH/Roundtrip.cpp b/TAO/tests/DSI_AMH/Roundtrip.cpp index a3451a93331..3fd90cc406d 100644 --- a/TAO/tests/DSI_AMH/Roundtrip.cpp +++ b/TAO/tests/DSI_AMH/Roundtrip.cpp @@ -96,8 +96,7 @@ Roundtrip::_primary_interface (const PortableServer::ObjectId &, void Roundtrip::_dispatch (TAO_ServerRequest &request, - void * //context - ) + TAO::Portable_Server::Servant_Upcall * /* context */) { // No need to do any of this if the client isn't waiting. if (request.response_expected ()) @@ -148,8 +147,7 @@ Roundtrip::_dispatch (TAO_ServerRequest &request, } void -Roundtrip::invoke (CORBA::ServerRequest_ptr request) +Roundtrip::invoke (CORBA::ServerRequest_ptr) { - ACE_UNUSED_ARG (request); throw CORBA::NO_IMPLEMENT(); } diff --git a/TAO/tests/DSI_AMH/Roundtrip.h b/TAO/tests/DSI_AMH/Roundtrip.h index 01296676961..f6436ec5f32 100644 --- a/TAO/tests/DSI_AMH/Roundtrip.h +++ b/TAO/tests/DSI_AMH/Roundtrip.h @@ -27,9 +27,9 @@ public: // = The DSI methods + /// Turns around and calls invoke, but using AMH style handler virtual void _dispatch (TAO_ServerRequest &request, - void *context); - // Turns around and calls invoke, but using AMH style handler + TAO::Portable_Server::Servant_Upcall *context); void invoke (CORBA::ServerRequest_ptr request); @@ -40,7 +40,7 @@ public: PortableServer::POA_ptr poa); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/DSI_AMI_Gateway/test_dsi.h b/TAO/tests/DSI_AMI_Gateway/test_dsi.h index 4f33fc644f8..8f43c163ba1 100644 --- a/TAO/tests/DSI_AMI_Gateway/test_dsi.h +++ b/TAO/tests/DSI_AMI_Gateway/test_dsi.h @@ -40,7 +40,7 @@ public: * */ virtual void _dispatch (TAO_ServerRequest &request, - void *context); + TAO::Portable_Server::Servant_Upcall *context); // we need this because it is a pure virtual method in // its parent class @@ -50,11 +50,9 @@ public: virtual CORBA::RepositoryId _primary_interface ( const PortableServer::ObjectId &oid, - PortableServer::POA_ptr poa - ); + PortableServer::POA_ptr poa); - virtual PortableServer::POA_ptr _default_POA ( - ); + virtual PortableServer::POA_ptr _default_POA (void); private: /// The ORB diff --git a/TAO/tests/Hello/Hello.h b/TAO/tests/Hello/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Hello/Hello.h +++ b/TAO/tests/Hello/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/IPV6/Hello.h b/TAO/tests/IPV6/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/IPV6/Hello.h +++ b/TAO/tests/IPV6/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/LongDouble/LongDoubleTest.h b/TAO/tests/LongDouble/LongDoubleTest.h index 76b0674dd75..c48cd001181 100644 --- a/TAO/tests/LongDouble/LongDoubleTest.h +++ b/TAO/tests/LongDouble/LongDoubleTest.h @@ -22,7 +22,7 @@ public: virtual void shutdown (); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/MT_Timeout/Sleep_Service.h b/TAO/tests/MT_Timeout/Sleep_Service.h index 9a360fa9420..0107c5836ec 100644 --- a/TAO/tests/MT_Timeout/Sleep_Service.h +++ b/TAO/tests/MT_Timeout/Sleep_Service.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/ORB_Local_Config/Two_DLL_ORB/Test_i.h b/TAO/tests/ORB_Local_Config/Two_DLL_ORB/Test_i.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/ORB_Local_Config/Two_DLL_ORB/Test_i.h +++ b/TAO/tests/ORB_Local_Config/Two_DLL_ORB/Test_i.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/ORB_shutdown/Foo_Bar.h b/TAO/tests/ORB_shutdown/Foo_Bar.h index 36a17fc941d..aaa691f51c8 100644 --- a/TAO/tests/ORB_shutdown/Foo_Bar.h +++ b/TAO/tests/ORB_shutdown/Foo_Bar.h @@ -21,7 +21,7 @@ public: private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Ondemand_Write/Hello.h b/TAO/tests/Ondemand_Write/Hello.h index 9f8734f5684..04fb3af1932 100644 --- a/TAO/tests/Ondemand_Write/Hello.h +++ b/TAO/tests/Ondemand_Write/Hello.h @@ -26,7 +26,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/POA/Deactivate_Object/Hello.h b/TAO/tests/POA/Deactivate_Object/Hello.h index b81881e71cb..594576de08e 100644 --- a/TAO/tests/POA/Deactivate_Object/Hello.h +++ b/TAO/tests/POA/Deactivate_Object/Hello.h @@ -20,7 +20,7 @@ public: virtual char * get_string (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/POA/EndpointPolicy/Hello.h b/TAO/tests/POA/EndpointPolicy/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/POA/EndpointPolicy/Hello.h +++ b/TAO/tests/POA/EndpointPolicy/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Parallel_Connect_Strategy/Test_i.h b/TAO/tests/Parallel_Connect_Strategy/Test_i.h index 516e746b2f9..1017fb7be50 100644 --- a/TAO/tests/Parallel_Connect_Strategy/Test_i.h +++ b/TAO/tests/Parallel_Connect_Strategy/Test_i.h @@ -24,7 +24,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Portable_Interceptors/Bug_2133/Hello.h b/TAO/tests/Portable_Interceptors/Bug_2133/Hello.h index 782b1b2f573..af231fe1540 100644 --- a/TAO/tests/Portable_Interceptors/Bug_2133/Hello.h +++ b/TAO/tests/Portable_Interceptors/Bug_2133/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Reliable_Oneways/Oneway_Receiver.h b/TAO/tests/Reliable_Oneways/Oneway_Receiver.h index 2b4a9a6518a..6808ff66e5c 100644 --- a/TAO/tests/Reliable_Oneways/Oneway_Receiver.h +++ b/TAO/tests/Reliable_Oneways/Oneway_Receiver.h @@ -24,7 +24,7 @@ public: virtual Test::Shutdown_Helper_ptr get_shutdown_helper (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Reliable_Oneways/Shutdown_Helper.h b/TAO/tests/Reliable_Oneways/Shutdown_Helper.h index 44fb581fce5..7262e575081 100644 --- a/TAO/tests/Reliable_Oneways/Shutdown_Helper.h +++ b/TAO/tests/Reliable_Oneways/Shutdown_Helper.h @@ -20,7 +20,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Servant_To_Reference_Test/Test_i.h b/TAO/tests/Servant_To_Reference_Test/Test_i.h index 23c41190da1..c478d11253c 100644 --- a/TAO/tests/Servant_To_Reference_Test/Test_i.h +++ b/TAO/tests/Servant_To_Reference_Test/Test_i.h @@ -19,7 +19,7 @@ public: virtual char * get_string (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; @@ -35,7 +35,7 @@ public: virtual char * get_string (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; @@ -51,7 +51,7 @@ public: virtual char * get_string (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Server_Leaks/Ping_Service.h b/TAO/tests/Server_Leaks/Ping_Service.h index 06ebbe49590..b1f459c1cf2 100644 --- a/TAO/tests/Server_Leaks/Ping_Service.h +++ b/TAO/tests/Server_Leaks/Ping_Service.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Server_Port_Zero/Hello.h b/TAO/tests/Server_Port_Zero/Hello.h index f87205c3011..3a840d3d88d 100644 --- a/TAO/tests/Server_Port_Zero/Hello.h +++ b/TAO/tests/Server_Port_Zero/Hello.h @@ -22,7 +22,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; }; diff --git a/TAO/tests/Skeleton_Inheritance/client.cpp b/TAO/tests/Skeleton_Inheritance/client.cpp new file mode 100644 index 00000000000..d09c7da24f6 --- /dev/null +++ b/TAO/tests/Skeleton_Inheritance/client.cpp @@ -0,0 +1,102 @@ +// $Id$ + +#include "idl_3C.h" + +#include "ace/Get_Opt.h" + +const ACE_TCHAR *ior = ACE_TEXT ("file://test.ior"); + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:")); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + ior = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-k <ior> " + "\n", + argv [0]), + -1); + } + // Indicates successful parsing of the command line + return 0; +} + +int +ACE_TMAIN(int argc, ACE_TCHAR *argv[]) +{ + try + { + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + if (parse_args (argc, argv) != 0) + return 1; + + CORBA::Object_var tmp = orb->string_to_object(ior); + + ::Skeleton_Inheritance::Interface_3_var if_3 = + ::Skeleton_Inheritance::Interface_3::_narrow(tmp.in ()); + + if (CORBA::is_nil (if_3.in ())) + { + ACE_ERROR_RETURN ((LM_DEBUG, + "Nil ::Skeleton_Inheritance::Interface_1 " + "reference <%s>\n", + ior), + 1); + } + + ACE_DEBUG ((LM_DEBUG, "Invoking operation 3\n")); + CORBA::String_var if_result_3 = if_3->operation_3 (); + ACE_DEBUG ((LM_DEBUG, "Invoking operation 2\n")); + CORBA::String_var if_result_2 = if_3->operation_2 (); + ACE_DEBUG ((LM_DEBUG, "Invoking operation 1\n")); + CORBA::String_var if_result_1 = if_3->operation_1 (); + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) - strings returned:\n\t<%C>\n\t<%C>\n\t<%C>\n", + if_result_1.in (), + if_result_2.in (), + if_result_3.in ())); + + if (if_3->_is_a("no_name")) + { + ACE_ERROR ((LM_ERROR, "ERROR: no_name is known.\n")); + } + else + { + ACE_DEBUG ((LM_DEBUG, "OK: no_name is unknown.\n")); + } + const char * name = "IDL:Skeleton_Inheritance/Interface_1:1.0"; + if (if_3->_is_a(name)) + { + ACE_DEBUG ((LM_DEBUG, "OK: <%C> is known.\n", + name)); + } + else + { + ACE_ERROR ((LM_ERROR, "ERROR: <%C> is unknown\n", + name)); + } + + if_3->shutdown (); + + orb->destroy (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Exception caught:"); + return 1; + } + + return 0; +} diff --git a/TAO/tests/Skeleton_Inheritance/idl_1.idl b/TAO/tests/Skeleton_Inheritance/idl_1.idl new file mode 100644 index 00000000000..d9f1d7950c4 --- /dev/null +++ b/TAO/tests/Skeleton_Inheritance/idl_1.idl @@ -0,0 +1,13 @@ +// +// $Id$ +// + +module Skeleton_Inheritance +{ + interface Interface_1 + { + string operation_1 (); + + attribute long attribute_1; + }; +}; diff --git a/TAO/tests/Skeleton_Inheritance/idl_2.idl b/TAO/tests/Skeleton_Inheritance/idl_2.idl new file mode 100644 index 00000000000..ccf628c4436 --- /dev/null +++ b/TAO/tests/Skeleton_Inheritance/idl_2.idl @@ -0,0 +1,15 @@ +// +// $Id$ +// + +#include "idl_1.idl" + +module Skeleton_Inheritance +{ + interface Interface_2 : Interface_1 + { + string operation_2 (); + + readonly attribute string attribute_2; + }; +}; diff --git a/TAO/tests/Skeleton_Inheritance/idl_3.idl b/TAO/tests/Skeleton_Inheritance/idl_3.idl new file mode 100644 index 00000000000..edb70e292f6 --- /dev/null +++ b/TAO/tests/Skeleton_Inheritance/idl_3.idl @@ -0,0 +1,17 @@ +// +// $Id$ +// + +#include "idl_2.idl" + +module Skeleton_Inheritance +{ + interface Interface_3 : Interface_2 + { + string operation_3 (); + + oneway void shutdown (); + + attribute short attribute_3; + }; +}; diff --git a/TAO/tests/Skeleton_Inheritance/interface_3_i.cpp b/TAO/tests/Skeleton_Inheritance/interface_3_i.cpp new file mode 100644 index 00000000000..d4a5267eea0 --- /dev/null +++ b/TAO/tests/Skeleton_Inheritance/interface_3_i.cpp @@ -0,0 +1,68 @@ +// $Id$ +#include "interface_3_i.h" + +interface_3_i::interface_3_i (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +// INTERFACE 1 +char * +interface_3_i::operation_1 (void) +{ + return CORBA::string_dup ("Invoked operation one"); +} + +::CORBA::Long +interface_3_i::attribute_1 (void) +{ + return 10; +} + +void +interface_3_i::attribute_1 (::CORBA::Long attribute_1) +{ + ACE_UNUSED_ARG (attribute_1); +} + +// INTERFACE 2 + +char * +interface_3_i::operation_2 (void) +{ + return CORBA::string_dup ("Invoked operation two"); +} + +char * +interface_3_i::attribute_2 (void) +{ + return CORBA::string_dup ("Returning attribute_2"); +} + +//INTERFACE 3 + +char * +interface_3_i::operation_3 (void) +{ + return CORBA::string_dup ("Invoked operation three"); +} + +void +interface_3_i::shutdown (void) +{ + this->orb_->shutdown (); +} + +::CORBA::Short +interface_3_i::attribute_3 (void) +{ + return 10; +} + +void +interface_3_i::attribute_3 (::CORBA::Short attribute_3) +{ + ACE_UNUSED_ARG (attribute_3); +} + + diff --git a/TAO/tests/Skeleton_Inheritance/interface_3_i.h b/TAO/tests/Skeleton_Inheritance/interface_3_i.h new file mode 100644 index 00000000000..632ffeb6f6e --- /dev/null +++ b/TAO/tests/Skeleton_Inheritance/interface_3_i.h @@ -0,0 +1,39 @@ +// +// $Id$ +// + +#ifndef INTERFACE_3_I_H_ +#define INTERFACE_3_I_H_ +#include /**/ "ace/pre.h" + +#include "idl_3S.h" + +class interface_3_i + : public virtual POA_Skeleton_Inheritance::Interface_3 +{ +public: + /// Constructor + interface_3_i (CORBA::ORB_ptr orb); + + virtual char * operation_1 (void); + virtual char * operation_2 (void); + virtual char * operation_3 (void); + + virtual void shutdown (void); + + virtual ::CORBA::Long attribute_1 (void); + virtual void attribute_1 (::CORBA::Long attribute_1); + + virtual char * attribute_2 (void); + + virtual ::CORBA::Short attribute_3 (void); + virtual void attribute_3 (::CORBA::Short attribute_3); + +private: + /// Use an ORB reference to convert strings to objects and shutdown + /// the application. + CORBA::ORB_var orb_; +}; + +#include /**/ "ace/post.h" +#endif /* INTERFACE_3_I_H_ */ diff --git a/TAO/tests/Skeleton_Inheritance/run_test.pl b/TAO/tests/Skeleton_Inheritance/run_test.pl new file mode 100755 index 00000000000..f45d4729c86 --- /dev/null +++ b/TAO/tests/Skeleton_Inheritance/run_test.pl @@ -0,0 +1,76 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +$status = 0; +$debug_level = '0'; +$cdebug_level = '0'; +foreach $i (@ARGV) { + if ($i eq '-debug') { + $debug_level = '10'; + } + if ($i eq '-cdebug') { + $cdebug_level = '10'; + } +} + +my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n"; +my $client = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n"; + +my $iorbase = "server.ior"; +my $server_iorfile = $server->LocalFile ($iorbase); +my $client_iorfile = $client->LocalFile ($iorbase); +$server->DeleteFile($iorbase); +$client->DeleteFile($iorbase); + +$SV = $server->CreateProcess ("server", "-ORBdebuglevel $debug_level -o $server_iorfile"); +$CL = $client->CreateProcess ("client", "-ORBdebuglevel $cdebug_level -k file://$client_iorfile"); +$server_status = $SV->Spawn (); + +if ($server_status != 0) { + print STDERR "ERROR: server returned $server_status\n"; + exit 1; +} + +if ($server->WaitForFileTimed ($iorbase, + $server->ProcessStartWaitInterval()) == -1) { + print STDERR "ERROR: cannot find file <$server_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +if ($server->GetFile ($iorbase) == -1) { + print STDERR "ERROR: cannot retrieve file <$server_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} +if ($client->PutFile ($iorbase) == -1) { + print STDERR "ERROR: cannot set file <$client_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$client_status = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval()); + +if ($client_status != 0) { + print STDERR "ERROR: client returned $client_status\n"; + $status = 1; +} + +$server_status = $SV->WaitKill ($server->ProcessStopWaitInterval()); + +if ($server_status != 0) { + print STDERR "ERROR: server returned $server_status\n"; + $status = 1; +} + +$server->DeleteFile($iorbase); +$client->DeleteFile($iorbase); + +exit $status; diff --git a/TAO/tests/Skeleton_Inheritance/server.cpp b/TAO/tests/Skeleton_Inheritance/server.cpp new file mode 100644 index 00000000000..d9b0660b7a4 --- /dev/null +++ b/TAO/tests/Skeleton_Inheritance/server.cpp @@ -0,0 +1,103 @@ +// $Id$ + +#include "interface_3_i.h" + +#include "ace/Get_Opt.h" +#include "ace/OS_NS_stdio.h" + +const ACE_TCHAR *ior_output_file = ACE_TEXT ("test.ior"); + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:")); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'o': + ior_output_file = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-o <iorfile>" + "\n", + argv [0]), + -1); + } + // Indicates successful parsing of the command line + return 0; +} + +int +ACE_TMAIN(int argc, ACE_TCHAR *argv[]) +{ + try + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv); + + CORBA::Object_var poa_object = + orb->resolve_initial_references("RootPOA"); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in ()); + + if (CORBA::is_nil (root_poa.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Panic: nil RootPOA\n"), + 1); + + PortableServer::POAManager_var poa_manager = root_poa->the_POAManager (); + + if (parse_args (argc, argv) != 0) + return 1; + + interface_3_i *if_3_impl = 0; + ACE_NEW_RETURN (if_3_impl, + interface_3_i (orb.in ()), + 1); + PortableServer::ServantBase_var owner_transfer(if_3_impl); + + PortableServer::ObjectId_var id = + root_poa->activate_object (if_3_impl); + + CORBA::Object_var object = root_poa->id_to_reference (id.in ()); + + ::Skeleton_Inheritance::Interface_3_var if_3 = + ::Skeleton_Inheritance::Interface_3::_narrow (object.in ()); + + CORBA::String_var ior = orb->object_to_string (if_3.in ()); + + // Output the IOR to the <ior_output_file> + FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s\n", + ior_output_file), + 1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + + poa_manager->activate (); + + orb->run (); + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n")); + + root_poa->destroy (1, 1); + + orb->destroy (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Exception caught:"); + return 1; + } + + return 0; +} diff --git a/TAO/tests/Skeleton_Inheritance/skel_inheritance.mpc b/TAO/tests/Skeleton_Inheritance/skel_inheritance.mpc new file mode 100644 index 00000000000..d4edfd769dc --- /dev/null +++ b/TAO/tests/Skeleton_Inheritance/skel_inheritance.mpc @@ -0,0 +1,211 @@ +// -*- MPC -*- +// $Id$ + +project(idl_one_gen): taoidldefaults { + custom_only = 1 + + idlflags += -Wb,stub_export_macro=SKELETON_INHERITANCE_STUB_1_Export \ + -Wb,stub_export_include=skeleton_inheritance_stub_1_export.h \ + -Wb,skel_export_macro=SKELETON_INHERITANCE_SKEL_1_Export \ + -Wb,skel_export_include=skeleton_inheritance_skel_1_export.h \ + -Gxhst -Gxhsk + + IDL_Files { + idl_1.idl + } +} + +project(idl_two_gen): taoidldefaults { + custom_only = 1 + + idlflags += -Wb,stub_export_macro=SKELETON_INHERITANCE_STUB_2_Export \ + -Wb,stub_export_include=skeleton_inheritance_stub_2_export.h \ + -Wb,skel_export_macro=SKELETON_INHERITANCE_SKEL_2_Export \ + -Wb,skel_export_include=skeleton_inheritance_skel_2_export.h \ + -Gxhst -Gxhsk + + IDL_Files { + idl_2.idl + } +} + +project(idl_three_gen): taoidldefaults { + custom_only = 1 + + idlflags += -Wb,stub_export_macro=SKELETON_INHERITANCE_STUB_3_Export \ + -Wb,stub_export_include=skeleton_inheritance_stub_3_export.h \ + -Wb,skel_export_macro=SKELETON_INHERITANCE_SKEL_3_Export \ + -Wb,skel_export_include=skeleton_inheritance_skel_3_export.h \ + -Gxhst -Gxhsk + + IDL_Files { + idl_3.idl + } +} + +project(stub_one): taolib { + sharedname = stub_one + after += idl_one_gen + + dynamicflags += SKELETON_INHERITANCE_STUB_1_BUILD_DLL + + Source_Files { + idl_1C.cpp + } + + Header_Files { + idl_1C.h + skeleton_inheritance_stub_1_export.h + } + + Inline_Files { + idl_1C.inl + } +} + +project(skel_one): taolib, portableserver { + after += idl_one_gen stub_one + libs += stub_one + + sharedname = skel_one + dynamicflags += SKELETON_INHERITANCE_SKEL_1_BUILD_DLL + + Source_Files { + idl_1S.cpp + } + + Header_Files { + idl_1S.h + skeleton_inheritance_skel_1_export.h + } + + Inline_Files { + idl_1S.inl + } +} + + +project(stub_two): taolib { + sharedname = stub_two + after += idl_two_gen idl_one_gen stub_one + libs += stub_one + + dynamicflags += SKELETON_INHERITANCE_STUB_2_BUILD_DLL + + Source_Files { + idl_2C.cpp + } + + Header_Files { + idl_2C.h + skeleton_inheritance_stub_2_export.h + } + + Inline_Files { + idl_2C.inl + } +} + +project(skel_two): taolib, portableserver { + after += idl_two_gen stub_two skel_one + libs += stub_two skel_one + + sharedname = skel_two + dynamicflags += SKELETON_INHERITANCE_SKEL_2_BUILD_DLL + + Source_Files { + idl_2S.cpp + } + + Header_Files { + idl_2S.h + skeleton_inheritance_skel_2_export.h + } + + Inline_Files { + idl_2S.inl + } +} + + +project(stub_three): taolib { + sharedname = stub_three + after += idl_three_gen idl_two_gen idl_one_gen \ + stub_one stub_two + libs += stub_one stub_two + + dynamicflags += SKELETON_INHERITANCE_STUB_3_BUILD_DLL + + Source_Files { + idl_3C.cpp + } + + Header_Files { + idl_3C.h + skeleton_inheritance_stub_3_export.h + } + + Inline_Files { + idl_3C.inl + } +} + +project(skel_three): taolib, portableserver { + after += idl_three_gen stub_three skel_one skel_two + libs += stub_three skel_one skel_two + + sharedname = skel_three + dynamicflags += SKELETON_INHERITANCE_SKEL_3_BUILD_DLL + + Source_Files { + idl_3S.cpp + } + + Header_Files { + idl_3S.h + skeleton_inheritance_skel_3_export.h + } + + Inline_Files { + idl_3S.inl + } +} + +project(*Server): taoserver { + after += idl_gen \ + stub_one skel_one \ + stub_two skel_two \ + stub_three skel_three + libs += stub_one skel_one \ + stub_two skel_two \ + stub_three skel_three + + Source_Files { + interface_3_i.cpp + server.cpp + } + + Header_Files { + interface_3_i.h + } + IDL_Files { + } +} + +project(*Client): taoclient { + after += idl_gen \ + stub_one \ + stub_two \ + stub_three + libs += stub_one \ + stub_two \ + stub_three + + Source_Files { + client.cpp + } + + IDL_Files { + } +} + diff --git a/TAO/tests/Two_Objects/First_i.h b/TAO/tests/Two_Objects/First_i.h index 618fcf042be..2c66560aa93 100644 --- a/TAO/tests/Two_Objects/First_i.h +++ b/TAO/tests/Two_Objects/First_i.h @@ -26,7 +26,7 @@ public: private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; ACE_Auto_Event &two_way_done_; diff --git a/TAO/tests/Two_Objects/Object_Factory_i.h b/TAO/tests/Two_Objects/Object_Factory_i.h index 6599e00f80f..5735a295a6b 100644 --- a/TAO/tests/Two_Objects/Object_Factory_i.h +++ b/TAO/tests/Two_Objects/Object_Factory_i.h @@ -26,7 +26,7 @@ public: Two_Objects_Test::Second_ptr create_second (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; CORBA::ULong length_; diff --git a/TAO/tests/Two_Objects/Second_i.h b/TAO/tests/Two_Objects/Second_i.h index 214b9be1ece..b14d017012f 100644 --- a/TAO/tests/Two_Objects/Second_i.h +++ b/TAO/tests/Two_Objects/Second_i.h @@ -26,7 +26,7 @@ public: void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ORB_var orb_; CORBA::ULong length_; diff --git a/TAO/tests/ZIOP/Hello.h b/TAO/tests/ZIOP/Hello.h index 6209a6541e8..239f659a2a0 100644 --- a/TAO/tests/ZIOP/Hello.h +++ b/TAO/tests/ZIOP/Hello.h @@ -25,7 +25,7 @@ public: virtual void shutdown (void); private: - /// Use an ORB reference to conver strings to objects and shutdown + /// Use an ORB reference to convert strings to objects and shutdown /// the application. CORBA::ULong length_; |