diff options
Diffstat (limited to 'TAO')
403 files changed, 11295 insertions, 9277 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 901d48cd6ca..41fa1dce919 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,2884 +1,159 @@ -Wed Nov 02 08:30:13 UTC 2011 Martin Corino <mcorino@remedy.nl> +Wed Dec 7 17:54:41 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - Merged changes from Remedy work branch. + * TAO_IDL/util/utl_stack.cpp(UTL_ScopeStack::pop): - === start changelog === - - Tue Nov 1 14:29:07 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_visitor_component/executor_exs.cpp: - Fixed link issues on windows. - - Tue Nov 1 12:52:03 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_visitor_component/component_ex_idl.cpp: - * TAO_IDL/be/be_visitor_component/component_exh.cpp: - * TAO_IDL/be/be_visitor_component/executor_exh.cpp: - * TAO_IDL/be/be_visitor_component/executor_exs.cpp: - Reverted a few of my last changes. An derived executor - is not directly derived from its base anymore (on - executor IDL level as well as on implementation level). - - Mon Oct 31 15:14:05 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_type.cpp: - Fixed new line. - - Fri Oct 28 11:22:03 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/Bug_3768_Regression/TestCallback.cpp: - * tests/Bug_3768_Regression/TestServer.cpp: - * tests/Bug_3768_Regression/client.cpp: - * tests/Bug_3768_Regression/server.cpp: - Fuzz. + Checks if the top scope has a #pragma prefix associated with it, + and if so, pops the prefix (from its own stack) along with the + scope. Fixed the check to be more robust. Thanks to Simon Massey + for reporting the problem, which was revealed as an error message + reporting a bogus prefix inconsistency between a forward declared + struct and its full definition. - Fri Oct 28 10:35:06 UTC 2011 Martin Corino <mcorino@remedy.nl> +Wed Dec 7 10:47:15 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - * tests/Bug_3531b_Regression/server.cpp: + Merged in the changes to update AMI4CCM to match the initial revision + with the synchronous port and the new pragma's added - Fix for Windoze runtime problem with TSS. + === start changelog === - Fri Oct 28 10:22:48 UTC 2011 Marcel Smit <msmit@remedy.nl> + Tue Dec 6 14:42:39 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> - * TAO_IDL/be/be_array.cpp: - * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_component.cpp: * TAO_IDL/be/be_interface.cpp: - * TAO_IDL/be/be_type.cpp: - * TAO_IDL/be/be_visitor_array/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_array/array_ch.cpp: - * TAO_IDL/be/be_visitor_array/array_cs.cpp: + * TAO_IDL/be/be_visitor_component/component_svh.cpp: + * TAO_IDL/be/be_visitor_component/component_svs.cpp: * TAO_IDL/be/be_visitor_component/servant_svh.cpp: * TAO_IDL/be/be_visitor_component/servant_svs.cpp: - * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: - * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_exception/exception_ch.cpp: - * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: - * TAO_IDL/be/be_visitor_interface/amh_rh_ss.cpp: - * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: - * TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp: - * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: - * TAO_IDL/be/be_visitor_interface/interface_ih.cpp: - * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: - * TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp: - * TAO_IDL/be/be_visitor_operation/amh_rh_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/ami_handler_reply_stub_operation_cs.cpp: - * TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp: - * TAO_IDL/be/be_visitor_operation/operation_ch.cpp: + * TAO_IDL/be/be_visitor_operation/operation_sh.cpp: * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: - * TAO_IDL/be/be_visitor_operation/tie_ss.cpp: - * TAO_IDL/be/be_visitor_root/root_ch.cpp: - * TAO_IDL/be/be_visitor_root/root_sth.cpp: - * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp: - * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp: - * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_structure/structure_cs.cpp: - * TAO_IDL/be/be_visitor_template_export.cpp: - * TAO_IDL/be/be_visitor_typedef/typedef_ci.cpp: - * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_union/discriminant_ci.cpp: - * TAO_IDL/be/be_visitor_union_branch/public_ci.cpp: - * TAO_IDL/be/be_visitor_valuebox/cdr_op_cs.cpp: - * TAO_IDL/be/be_visitor_valuebox/valuebox_ci.cpp: - * TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp: - * TAO_IDL/be/be_visitor_valuetype/cdr_op_cs.cpp: - * TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp: - * TAO_IDL/be/be_visitor_valuetype/field_cs.cpp: - * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp: - * TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp: - * TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp: - * TAO_IDL/be/be_visitor_valuetype/valuetype_init_cs.cpp: - * TAO_IDL/be/be_visitor_valuetype/valuetype_ss.cpp: - Reduced whitespaces in generated code. - - * TAO_IDL/be/be_visitor_interface/tie_ss.cpp: - Removed tabs from generated code. - - - Fri Oct 28 09:23:52 UTC 2011 Martin Corino <mcorino@remedy.nl> - - * tests/Bug_3531b_Regression/server.cpp: - - Fix for Windoze compile problem. - - Fri Oct 28 07:36:43 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_visitor_component/executor_exh.cpp: - * TAO_IDL/be/be_visitor_component/executor_exs.cpp: - * TAO_IDL/be/be_visitor_component/executor_private_exh.cpp: - * TAO_IDL/be/be_visitor_component/facet_exh.cpp: - * TAO_IDL/be/be_visitor_component/facet_exs.cpp: - Fixed compile issues. - - Thu Oct 27 08:05:28 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_visitor_component/executor_exh.cpp: - * TAO_IDL/be/be_visitor_component/executor_exs.cpp: - Removed the overrides of _is_a, marshal and _repository_id since - these methods are not needed anymore. - - Wed Oct 26 13:38:02 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_visitor_component/component_ex_idl.cpp: - * TAO_IDL/be/be_visitor_component/component_exh.cpp: - * TAO_IDL/be/be_visitor_component/component_exs.cpp: - * TAO_IDL/be/be_visitor_component/executor_exh.cpp: - * TAO_IDL/be/be_visitor_component/executor_exs.cpp: - * TAO_IDL/be/be_visitor_component/executor_exs_attr_init.cpp: - * TAO_IDL/be/be_visitor_component/executor_private_exh.cpp: - * TAO_IDL/be/be_visitor_component/facet_exh.cpp: - * TAO_IDL/be/be_visitor_component/facet_exs.cpp: - Fixed issues regarding derived components. Derived component - were not derived from the base implementation. Instead of deriving - from the base implementation, a whole new base executor was - generated and still wasn't derived from this. Now there's - one base implementation where the derived executor is derived from. - - * TAO_IDL/be/be_visitor_component/executor_ex_idl.cpp: - Fixed compile issues when a derived interface supports - another interface. - - Mon Oct 24 11:50:33 UTC 2011 Martin Corino <mcorino@remedy.nl> - - * tao/Connection_Handler.cpp: - * tao/Leader_Follower.h: - * tao/Leader_Follower.inl: - * tao/Leader_Follower.cpp: - * tao/Wait_On_LF_No_Upcall.h: - * tao/Wait_On_LF_No_Upcall.cpp: - * tao/Wait_On_Leader_Follower.h: - * tao/Wait_Strategy.h: - * tao/Wait_Strategy.cpp: - - Implemented a solution for two known problems: - a) deadlocking possibility because of upcall handling - in client leader threads without abdicating - leadership - b) inefficient handling of nested upcalls in - client leader threads in case MT_NOUPCALL - strategy - This solution implements leadership abdication - (as also proposed by Russell Mora in Bugzilla #3531 - and David Kinder in Bugzilla #3768) when a client - leader thread receives an upcall (triggering a - call to Leader_Follower::set_upcall_thread) so - any waiting (regular) leader thread could now - take over. Futhermore leader abdication for client - leader threads is also implemented in case an event - causes a client leader thread to wake up and it detects - leader threads waiting which are capable to take over - leadership. - With this out of the way the solution for MT_NOUPCALL - could now be optimized with a 'handle deferring' - mechanism which allows a client leader thread to - temporarily defer an upcall until the client leader - thread has abdicated and leadership switches (which - should happen almost immediately after the client - leader thread deferred the upcall handle(r)). - - * tao/Resume_Handle_Deferred.h: - * tao/Resume_Handle_Deferred.cpp: - - Removed these files. Part of previous, non-optimal, - MT_NOUPCALL solution. - - * tao/tao.mpc: - - Removed Resume_Handle_Deferred.{h,cpp} - - * tests/Bug_3531b_Regression/Bug_3531b_Regression.mpc: - * tests/Bug_3531b_Regression/server.cpp: - - Fixed compile problems due to TAO version - incompatibilities and removed dummy_label - restriction. - - * tests/Bug_3768_Regression: - * tests/Bug_3768_Regression/Bug_3768_Test.mpc: - * tests/Bug_3768_Regression/Test.idl: - * tests/Bug_3768_Regression/TestCallback.h: - * tests/Bug_3768_Regression/TestCallback.cpp: - * tests/Bug_3768_Regression/TestServer.h: - * tests/Bug_3768_Regression/TestServer.cpp: - * tests/Bug_3768_Regression/client.cpp: - * tests/Bug_3768_Regression/run_test.pl: - * tests/Bug_3768_Regression/server.cpp: - - Added new test for Bugzilla #3768. + revert changes after 2011-11-30 (ChangeLog.BRANCH missing those items) - * bin/tao_orb_tests.lst + Wed Nov 30 16:45:10 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - Added Bug_3531_Regression, Bug_3531b_Regression and - Bug_3768_Regression to regular test runs. - - === end changelog === - -Tue Nov 01 14:34:13 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> - * On_Demand_Act_Direct_Coll/Collocated_Test.cpp: - * On_Demand_Act_Direct_Coll/test_i.cpp: - * On_Demand_Act_Direct_Coll/test_i.h: - * On_Demand_Act_Direct_Coll/Client_Task.cpp: - * On_Demand_Act_Direct_Coll/test.idl: - Clean up test. - - -Tue Nov 01 10:54:13 UTC 2011 Martin Corino <mcorino@remedy.nl> - - Merged changes from Remedy SA work branch. - - === start changelog === - - Mon Oct 31 13:14:04 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> - - * TAO_IDL/be/be_visitor_component/servant_svs.cpp: - Add safe_servant_base in CIAO consumers servant - - - Fri Oct 28 11:37:40 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> - - * TAO_IDL/be/be_visitor_component/servant_svs.cpp: - Changes for removing activators for CIAO consumers + * TAO_IDL/be/be_visitor_connector/executor_ami_exs.cpp: + * TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp: + * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: - Wed Oct 26 07:18:40 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + Wed Nov 30 14:19:10 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> * TAO_IDL/be/be_codegen.cpp: - Remove include files for ciao servant- and port_activator. - - * TAO_IDL/be/be_visitor_component/servant_svs.cpp: - Changes for removing activators in CIAO - - === end changelog === - -Thu Oct 27 16:16:09 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> - - * utils/logWalker/HostProcess.h: - * utils/logWalker/HostProcess.cpp: - * utils/logWalker/Log.cpp: - - Clean up treatment of connection closure and reuse of handles. - -Thu Oct 27 12:13:40 UTC 2011 Simon Massey <sma at prismtech dot com> - - * tao/PI_Server/PI_Server_include.pidl: - Was duplicating the tao/PortableServer/PortableServer_include.pidl - #define guard name. - -Tue Oct 25 08:10:00 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> - - * tests/POA/On_Demand_Act_Direct_Coll/Client_Task.cpp: - Solved error in destroying the orb. - -Fri Oct 21 14:44:28 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/IORManipulation/IORManipulation.mpc: - * tao/IORTable/IORTable.mpc: - * tao/ZIOP/ZIOP.mpc: - Generate export files as part of the build - - * tao/IORManipulation/ior_manip_export.h: - * tao/IORTable/iortable_export.h: - * tao/ZIOP/ziop_export.h: - Removed these files. - - * tao/ZIOP/ZIOP.h: - Doxygen fix - -Thu Oct 20 17:34:00 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tests/POA/On_Demand_Act_Direct_Coll/On_Demand_Act_D_Coll.mpc: - Don't build this test with minimum corba and CORBA/e - -Thu Oct 20 12:50:09 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be_include/be_interface.h: - Fixed gcc warning - -Tue Oct 20 09:30:13 UTC 2011 Martin Corino <mcorino@remedy.nl> - - Merged changes from Remedy work branch. - - === start changelog === - - Thu Oct 20 08:42:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - - * On_Demand_Act_Direct_Coll: - * On_Demand_Act_Direct_Coll/Collocated_Test.cpp: - * On_Demand_Act_Direct_Coll/Servant_Activator.cpp: - * On_Demand_Act_Direct_Coll/test_i.cpp: - * On_Demand_Act_Direct_Coll/Server_Task.h: - * On_Demand_Act_Direct_Coll/run_test.pl: - * On_Demand_Act_Direct_Coll/test_i.h: - * On_Demand_Act_Direct_Coll/Client_Task.cpp: - * On_Demand_Act_Direct_Coll/Server_Task.cpp: - * On_Demand_Act_Direct_Coll/Servant_Activator.h: - * On_Demand_Act_Direct_Coll/Client_Task.h: - * On_Demand_Act_Direct_Coll/On_Demand_Act_D_Coll.mpc: - * On_Demand_Act_Direct_Coll/test.idl: - Test with Servant Activator and thru_poa- and direct collocation. - - * bin/tao_orb_tests.lst - Added On_Demand_Act_Direct_Coll test. - - - Wed Oct 19 14:15:57 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * docs/tutorials/Quoter/RTCORBA/Broker.cpp: - * docs/tutorials/Quoter/RTCORBA/docs/distributor.html: - Fixed typos. - - * orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.h: - Fixed typo. - - * orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.cpp: - ++x instead of x++; - - Tue Oct 18 13:47:54 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_visitor_component/context_svh.cpp: - * TAO_IDL/be/be_visitor_component/context_svs.cpp: - Reverted last changes. Need a more robust implementation to - fix re-entrancy - - Tue Oct 18 11:35:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: - Layout changes to the generated code - - Tue Oct 18 10:51:21 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_visitor_component/context_svh.cpp: - * TAO_IDL/be/be_visitor_component/context_svs.cpp: - Using recursive mutexes instead of normal mutexes. - - Tue Oct 18 10:39:23 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_visitor_component/context_svs.cpp: - Fixed a minor indentation issue. - - Tue Oct 18 10:03:32 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_visitor_component/servant_svs.cpp: - Using the container_ variable in a thread safe way. - - Tue Oct 18 07:01:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - * tests/Collocated_DerivedIF/Collocated_DerivedIF.mpc: - Changes for duplicate project names. - - Mon Oct 17 13:08:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - * tests/Collocated_DerivedIF: - * tests/Collocated_DerivedIF/Client_Task.h: - * tests/Collocated_DerivedIF/Client_Task.cpp: - * tests/Collocated_DerivedIF/Collocated_DerivedIF.mpc: - * tests/Collocated_DerivedIF/Collocated_Test.cpp: - * tests/Collocated_DerivedIF/Hello.h: - * tests/Collocated_DerivedIF/Hello.cpp: - * tests/Collocated_DerivedIF/Server_Task.h: - * tests/Collocated_DerivedIF/Server_Task.cpp: - * tests/Collocated_DerivedIF/Test.idl: - * tests/Collocated_DerivedIFl/run_test.pl: - * tests/Collocated_DerivedIFl/README: - Test for -ORBCollocationStrategy direct and interface inheritance - - * tests/Collocated_Best/README: - Add ID - - Mon Oct 17 12:33:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - * docs/Options.html - Added new define TAO_DEFAULT_COLLOCATION_STRATEGY . - - Mon Oct 17 11:41:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - * docs/Options.html - Add new ORBCollocationStrategy best . - - Thu Oct 13 12:57:25 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be_include/be_valuetype.h: - * TAO_IDL/be/be_valuetype.cpp: - Removed gen_skel_helper from here, not used at all - - * orbsvcs/tests/Notify/lib/Options_Parser.cpp: - Fixed compile error with gcc 4.6 - - Thu Oct 13 12:14:00 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_interface.cpp: - * TAO_IDL/be/be_visitor_interface/amh_si.cpp: - static_cast seems to be required, not sure why, reverting this part - to get our branch build green again - - Thu Oct 13 11:15:06 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/AnyTypeCode/Any_Impl.cpp: - Layout changes - - * tao/LocalObject.cpp: - * tao/Object.cpp: - Log an error before throwing a NO_IMPLEMENT system exception - - Thu Oct 13 07:15:34 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_interface.cpp: - * TAO_IDL/be/be_visitor_interface/amh_si.cpp: - Further reduction of code being generated in case of interface - inheritance - - Thu Oct 13 06:46:25 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_interface.cpp: - Fixed problem with num_args that still was generated for arguments - - Wed Oct 12 14:14:32 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_interface.cpp: - * TAO_IDL/be/be_visitor_interface/interface_si.cpp: - Changed indentation and removed not needed static cast in the - generated code - - Wed Oct 12 12:06:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - * tests/Collocated_NoColl: - * tests/Collocated_NoColl/Client_Task.h: - * tests/Collocated_NoColl/Client_Task.cpp: - * tests/Collocated_NoColl/Collocated_NoColl.mpc: - * tests/Collocated_NoColl/Collocated_Test.cpp: - * tests/Collocated_NoColl/Hello.h: - * tests/Collocated_NoColl/Hello.cpp: - * tests/Collocated_NoColl/Server_Task.h: - * tests/Collocated_NoColl/Server_Task.cpp: - * tests/Collocated_NoColl/Test.idl: - * tests/Collocated_NoColl/run_test.pl: - Test for -ORBCollocation NO - - - Wed Oct 12 12:02:04 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Collocation_Strategy.h: - * tao/Invocation_Adapter.cpp: - Print the collocation strategy that we have determined - - * tests/Hello/run_test.pl: - Added -cdebug that enables ORBDebugLevel 10 for the client - - Wed Oct 12 10:09:25 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp: - * TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp: - * tao/Abstract_Servant_Base.h: - * tao/PortableServer/Direct_Collocation_Upcall_Wrapper.cpp: - * tao/PortableServer/Operation_Table.h: - Removed the num_args argument for the direct collocation skeleton - functions because it was not used at all - - Wed Oct 12 09:55:38 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: - * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: - * tao/Object_T.h: - * tao/Object_T.cpp: - * tao/PolicyC.cpp: - * tao/Valuetype/AbstractBase_T.h: - * tao/Valuetype/AbstractBase_T.cpp: - unchecked_narrow method was available with and without repository_id - argument but that wasn't used at all. merged both methods into one - and updated tao_idl code generation to not generate the repository_id - anymore - - Wed Oct 12 09:01:19 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: - * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: - * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: - * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: - * tao/Object_T.h: - * tao/Object_T.cpp: - * tao/PolicyC.cpp: - * tao/PortableServer/PolicyS.cpp: - * tao/Valuetype/AbstractBase_T.h: - * tao/Valuetype/AbstractBase_T.cpp: - Removed the collocation opportunity from the narrow calls, the - boolean collocated only means whether the servant is collocated or - not and shouldn't include the fact whether we have a collocation - opportunity or not - - Tue Oct 11 17:38:06 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tests/Collocated_Best/Collocated_Best_Direct/Client_Task.cpp: - * tests/Collocated_Best/Collocated_Best_NoColl/Client_Task.cpp: - * tests/Collocated_Best/Collocated_Best_ThuP/Client_Task.cpp: - Also check the string that returned - - Tue Oct 11 10:53:17 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Object_T.cpp: - Don't use collocation opportunity, just determine whether the - object is collocated or not. If this doesn't break any tests, we - need to do some more cleanup here - - Tue Oct 11 10:41:02 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/CORBANAME_Parser.cpp: - * tao/Remote_Object_Proxy_Broker.cpp: - Enable through poa collocation by default - - Tue Oct 11 07:17:47 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: - Layout changes and just always generate the orb optimize flags - - Mon Oct 10 17:43:50 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/IIOP_Connector.cpp: - * tao/Invocation_Adapter.h: - * tao/Invocation_Adapter.cpp: - * tao/ORB_Core.h: - * tao/ORB_Core.cpp: - Moved collocation_strategy from the orb core to the invocation adapter - - * tests/Collocated_ThruP_Sp/Collocated_Test.cpp: - * tests/Collocated_ThruP_Sp/README: - * tests/Collocated_ThruP_Sp/Server_Task.cpp: - * tests/Collocated_ThruP_Sp/run_test.pl: - * tests/Collocated_ThruP_Sp_Gd/README: - * tests/Collocated_ThruP_Sp_Gd/run_test.pl: - Add -debug to the script, layout changes, missing Id - - Fri Oct 7 10:54:09 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/ORB_Core.cpp: - Tweaked collocation strategy a little bit more, for direct we need - a servant, not for poa. If we are not collocated, we just go remote and - not give an exception - - Fri Oct 7 09:17:36 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: - Layout change to generated code - - * tao/Invocation_Adapter.cpp: - Removed the check that servant != 0 before being able to invoke - collocated, collocation opportunities test shows a case where this - happens - - * tao/ORB_Core.cpp: - Added logging before we throw an exception related to collocation - mis configuration. If we are collocated with best opportunity without - any opportunity we default to remote instead of having an exception. - Through poa seems possible without a servant pointer - - Thu Oct 6 09:34:57 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> - - * tao/DynamicInterface/DII_Invocation_Adapter.cpp: - Set collocation_opportunity to TAO_CO_THRU_POA_STRATEGY instead of 0. - - Thu Oct 6 08:56:57 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc: - * orbsvcs/examples/RtEC/IIOPGateway/RtEC_IIOPGateway.mpc: - * tests/Oneway_Buffering/Oneway_Buffering.mpc: - * tests/Policies/Policies.mpc: - requires for corba_messaging is already pulled in through the - base projects - - Wed Oct 5 18:49:30 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_interface.cpp: - * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: - * TAO_IDL/be/be_visitor_root/root_ch.cpp: - * TAO_IDL/be_include/be_global.h: - * TAO_IDL/be_include/be_interface.h: - * TAO_IDL/be_include/be_visitor_root/root_ch.h: - Even more cleanup of old stuff - - Wed Oct 5 18:42:43 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_home.cpp: - * TAO_IDL/be/be_interface.cpp: - * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: - * TAO_IDL/be_include/be_interface.h: - * TAO_IDL/be/be_visitor_operation/base_proxy_impl_ch.cpp: - * TAO_IDL/be/be_visitor_operation/remote_proxy_impl_cs.cpp: - More cleanup - - * TAO_IDL/be_include/be_visitor_operation/base_proxy_impl_ch.h: - * TAO_IDL/be_include/be_visitor_operation/remote_proxy_impl_cs.h: - Removed these files. - - Wed Oct 5 18:34:21 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_home.cpp: - * TAO_IDL/be/be_interface.cpp: - * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: - * TAO_IDL/be_include/be_interface.h: - Cleanup of very old stuff - - * TAO_IDL/be/be_visitor_operation/ami_cs.cpp: - Fixed cpb - - * tao/Valuetype/AbstractBase_T.h: - * tao/Valuetype/AbstractBase_T.cpp: - Updated for changes below - - * tests/CSD_Collocation/svc.conf.csd: - Removed deprecated arguments - - Wed Oct 5 13:01:20 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - - * tests/Collocated_Best/README - * tests/Collocated_ThruP_Sp/README - * tests/Collocated_ThruP_Sp_Gd/README - * tests/Bug_2241_Regression/README - Add README's - - * bin/tao_orb_tests.lst - Added Collocated_ThruP_Sp_Gd test. - - Wed Oct 5 12:41:20 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - - * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: - * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: - * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: - * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: - * TAO_IDL/be/be_visitor_operation/operation.cpp: - * tao/PolicyC.cpp: - * tao/Collocation_Strategy.h: - * tao/PortableServer/PolicyS.cpp: - Change define TAO_CO_DIRECT_POA,remove POA + // remove debug info + * TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp: + * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: + * TAO_IDL/be_include/be_visitor_connector/facet_ami_exs.h: + Add visit_attribute functionality. - * tao/DynamicInterface/DII_Invocation_Adapter.h: - * tao/DynamicInterface/DII_Invocation_Adapter.cpp: - * tao/Messaging/Asynch_Invocation_Adapter.h: - * tao/Messaging/Asynch_Invocation_Adapter.cpp: - * tao/Valuetype/AbstractBase_Invocation_Adapter.h: - * tao/Valuetype/AbstractBase_Invocation_Adapter.cpp: - Change proxybroker for collocation opertunities + Tue Nov 29 12:59:03 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: + Correct check nil pointer in facet operation - * tao/ORB_Core.cpp: - * tao/Invocation_Adapter.cpp: - Extended collocation_strategy with opertunities - Handling of BEST strategy and checking other strategies. + Mon Nov 28 15:26:03 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - * tests/Collocated_Best/Collocated_Best_Direct/run_test.pl: + * TAO_IDL/be/be_visitor_connector/executor_ami_exh.cpp: + * TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp: + * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: + * TAO_IDL/be_include/be_visitor_connector/facet_ami_exh.h: + * TAO_IDL/be_include/be_visitor_connector/facet_ami_exs.h: + Add traverse_inheritance_graph, needed for derived interfaces + Wed Nov 23 14:00:38 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: + Changed return of sync operations. - Wed Oct 5 08:35:20 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + Mon Nov 21 13:32:38 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_component.cpp: - * TAO_IDL/be/be_interface.cpp: - * TAO_IDL/be/be_visitor_interface.cpp: - * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: - * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: - * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: - * TAO_IDL/be/be_visitor_interface/interface_ci.cpp: - * TAO_IDL/be/be_visitor_interface/interface_cs.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/ami_cs.cpp: - * TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp: - * TAO_IDL/be/be_visitor_operation/operation.cpp: - * TAO_IDL/be/be_visitor_root/root_ch.cpp: - * TAO_IDL/be/be_visitor_valuetype/valuetype_sh.cpp: - * TAO_IDL/be_include/be_component.h: - * TAO_IDL/be_include/be_interface.h: - * TAO_IDL/be_include/be_visitor_interface.h: - * tao/Abstract_Servant_Base.h: - * tao/Collocated_Invocation.h: - * tao/Collocated_Invocation.cpp: - * tao/Collocation_Strategy.h: - * tao/Invocation_Adapter.h: - * tao/Invocation_Adapter.inl: - * tao/Invocation_Adapter.cpp: - * tao/ORB_Core.h: - * tao/ORB_Core.cpp: - * tao/Object.h: - * tao/Object.cpp: - * tao/Object_T.h: - * tao/Object_T.cpp: - * tao/PolicyC.h: - * tao/PolicyC.inl: - * tao/PolicyC.cpp: - * tao/PortableServer/Direct_Collocation_Upcall_Wrapper.h: - * tao/PortableServer/PolicyS.h: - * tao/PortableServer/PolicyS.cpp: - * tao/PortableServer/Servant_Base.h: - * tao/PortableServer/Servant_Base.cpp: - * tao/tao.mpc: - Rough reimplementatin of handling of collocated call. A pre condition - for using collocation is having a servant pointer. The core of TAO - also couldn't detect whether through poa collocation is requested - without having -Gp being enabled. The collocated proxy broker (cpb) - was only used for direct collocation, but didn't contain any interface - specific code. TAO_IDL now generated a collocation opportunity to - indicate which support it did generate, when the core than has - a servant pointer it can determine which opportunities it has an - what is requested. - - As side effect we get smaller generated code, less complexity, and - better performance - - This has to be finished but committing it right now. - - * TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp: - * TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp: - * TAO_IDL/be_include/be_visitor_interface/strategized_proxy_broker_sh.h: - * TAO_IDL/be_include/be_visitor_interface/strategized_proxy_broker_ss.h: - * tao/Collocation_Proxy_Broker.h: - * tao/Collocation_Proxy_Broker.cpp: - Removed these files. - - Wed Oct 5 07:15:46 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + Exclude include *.AE.idl in *E.idl - * tao/PortableServer/Collocated_Object_Proxy_Broker.cpp: - Add prefix TAO_COLLOCATION_ to Collocated strategy Thru_POA - - Tue Oct 4 16:36:46 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - - * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: - Clean up debug text - - * tao/Invocation_Adapter.cpp: - * tao/ORB_Core.h: - * tao/ORB_Core.cpp: - Change Exception for collocated errors. - Add prefix TAO_COLLOCATION_ to Collocated strategies DIrect, Best and Thru_POA - Add TAO_DEFAULT_COLLOCATION_STRATEGY - - * tao/orbconf.h: - Add TAO_DEFAULT_COLLOCATION_STRATEGY - - * tests/Bug_2241_Regression/run_test.pl: - * tests/Collocated_Best/Collocated_Best_Direct/Collocated_Best_Direct.mpc: - * tests/Collocated_Best/Collocated_Best_NoColl/Hello.cpp: - * tests/Collocated_Best/Collocated_Best_ThuP/Collocated_Best_ThruP.mpc: - - * tests/Collocated_ThruP_Sp_Gd: - * tests/Collocated_ThruP_Sp_Gd/Client_Task.h: - * tests/Collocated_ThruP_Sp_Gd/Client_Task.cpp: - * tests/Collocated_ThruP_Sp_Gd/Collocated_Test.cpp: - * tests/Collocated_ThruP_Sp_Gd/Collocated_ThruP_Sp_Gd.mpc: - * tests/Collocated_ThruP_Sp_Gd/Hello.h: - * tests/Collocated_ThruP_Sp_Gd/Hello.cpp: - * tests/Collocated_ThruP_Sp_Gd/Server_Task.h: - * tests/Collocated_ThruP_Sp_Gd/Server_Task.cpp: - * tests/Collocated_ThruP_Sp_Gd/Test.idl: - * tests/Collocated_ThruP_Sp_Gd/run_test.pl: - New test for combination Sp and Gd - - Mon Oct 3 15:33:35 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - - * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: - Change dead to 0 for Collocation_Proxy_Broker - - * tao/Collocation_Strategy.h: - * tao/Invocation_Adapter.cpp: - * tao/ORB_Core.h: - * tao/ORB_Core.cpp: - Add exceptions for situations if not used -Gp or used -Sp idl flags and - ORBCollocationStrategies Direct and Thru_Poa. Add strategie BEST. - To do: add prefix COLLOCATION_. - - * tests/Bug_2241_Regression/Client_Task.cpp: - * tests/Bug_2241_Regression/Hello.cpp: - * tests/Bug_2241_Regression/run_test.pl: - Catch expected exceptions. - - * tests/Collocated_Best: - * tests/Collocated_Best/Collocated_Best_Direct: - * tests/Collocated_Best/Collocated_Best_Direct/Client_Task.h: - * tests/Collocated_Best/Collocated_Best_Direct/Client_Task.cpp: - * tests/Collocated_Best/Collocated_Best_Direct/Collocated_Best_Direct.mpc: - * tests/Collocated_Best/Collocated_Best_Direct/Collocated_Test.cpp: - * tests/Collocated_Best/Collocated_Best_Direct/Hello.h: - * tests/Collocated_Best/Collocated_Best_Direct/Hello.cpp: - * tests/Collocated_Best/Collocated_Best_Direct/Server_Task.h: - * tests/Collocated_Best/Collocated_Best_Direct/Server_Task.cpp: - * tests/Collocated_Best/Collocated_Best_Direct/Test.idl: - * tests/Collocated_Best/Collocated_Best_Direct/run_test.pl: - - * tests/Collocated_Best/Collocated_Best_NoColl: - - * tests/Collocated_Best/Collocated_Best_NoColl/Client_Task.h: - * tests/Collocated_Best/Collocated_Best_NoColl/Client_Task.cpp: - * tests/Collocated_Best/Collocated_Best_NoColl/Collocated_Best_NoColl.mpc: - * tests/Collocated_Best/Collocated_Best_NoColl/Collocated_Test.cpp: - * tests/Collocated_Best/Collocated_Best_NoColl/Hello.h: - * tests/Collocated_Best/Collocated_Best_NoColl/Hello.cpp: - * tests/Collocated_Best/Collocated_Best_NoColl/Server_Task.h: - * tests/Collocated_Best/Collocated_Best_NoColl/Server_Task.cpp: - * tests/Collocated_Best/Collocated_Best_NoColl/Test.idl: - * tests/Collocated_Best/Collocated_Best_NoColl/run_test.pl: - - * tests/Collocated_Best/Collocated_Best_ThuP: - - * tests/Collocated_Best/Collocated_Best_ThuP/Client_Task.h: - * tests/Collocated_Best/Collocated_Best_ThuP/Client_Task.cpp: - * tests/Collocated_Best/Collocated_Best_ThuP/Collocated_Best_ThruP.mpc: - * tests/Collocated_Best/Collocated_Best_ThuP/Collocated_Test.cpp: - * tests/Collocated_Best/Collocated_Best_ThuP/Hello.h: - * tests/Collocated_Best/Collocated_Best_ThuP/Hello.cpp: - * tests/Collocated_Best/Collocated_Best_ThuP/Server_Task.h: - * tests/Collocated_Best/Collocated_Best_ThuP/Server_Task.cpp: - * tests/Collocated_Best/Collocated_Best_ThuP/Test.idl: - * tests/Collocated_Best/Collocated_Best_ThuP/run_test.pl: + * TAO_IDL/be/be_visitor_connector/connector_ami_exs.cpp: + * TAO_IDL/be/be_visitor_connector/executor_ami_exh.cpp: + * TAO_IDL/be/be_visitor_connector/executor_ami_exs.cpp: + * TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp: + * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: + * TAO_IDL/be_include/be_visitor_connector/facet_ami_exh.h: + * TAO_IDL/be_include/be_visitor_connector/facet_ami_exs.h: + Changes for sync port on AMI connector - * tests/Collocated_ThruP_Sp: + Mon Nov 7 13:02:55 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> - * tests/Collocated_ThruP_Sp/Client_Task.h: - * tests/Collocated_ThruP_Sp/Client_Task.cpp: - * tests/Collocated_ThruP_Sp/Collocated_Test.cpp: - * tests/Collocated_ThruP_Sp/Collocated_ThruP_Sp.mpc: - * tests/Collocated_ThruP_Sp/Hello.h: - * tests/Collocated_ThruP_Sp/Hello.cpp: - * tests/Collocated_ThruP_Sp/Server_Task.h: - * tests/Collocated_ThruP_Sp/Server_Task.cpp: - * tests/Collocated_ThruP_Sp/Test.idl: - * tests/Collocated_ThruP_Sp/run_test.pl: - tests for COLLOCATION_DIRECT. To do: add readme + * TAO_IDL/fe/idl.ll: + * TAO_IDL/fe/lex.yy.cpp: + Add beside pragma's 'ciao ami4ccm ...' the pragma's 'ami4ccm ...' , according to ami4ccm spec. + In the future '#pragma ciao ami4ccm ...' has to be removed. === end changelog === -Mon Oct 10 08:48:51 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO version 2.0.5 released. - -Fri Oct 7 10:45:41 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * docs/tutorials/Quoter/Event_Service/stock_list.txt: - * docs/tutorials/Quoter/Event_Service/stock_list1.txt: - * docs/tutorials/Quoter/Event_Service/stock_list2.txt: - - * docs/tutorials/Quoter/Simple/ImprovedServer/stock_list.txt: - - * orbsvcs/examples/Notify/MC/TkMonitor/modules/GeometryStore.pm: - * orbsvcs/examples/Notify/MC/TkMonitor/modules/MonitorControl.pm: - - * performance-tests/Protocols/set_lksctp_params.sh: - * performance-tests/Protocols/set_sctp_params.sh: - * performance-tests/Protocols/show_lksctp_params.sh: - * performance-tests/Protocols/show_sctp_params.sh: - Fuzz - -Fri Oct 7 09:45:58 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * docs/PP_Memory_Management.txt: - * orbsvcs/tests/FT_App/replica.cmd: - * orbsvcs/tests/InterfaceRepo/Union_Forward_Test/README.txt: - * orbsvcs/tests/Log/README: - * orbsvcs/tests/Time/README: - Fuzz. - -Fri Oct 7 09:12:23 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * DevGuideExamples/AMH/README: - * DevGuideExamples/AMH_AMI/README: - * DevGuideExamples/BiDirectionalGIOP/README: - * DevGuideExamples/GettingStarted/README: - * DevGuideExamples/Messaging/AMIcallback/README: - * DevGuideExamples/Messaging/RelativeRoundtripTimeout/README: - * DevGuideExamples/Multithreading/GracefulShutdown/README: - * DevGuideExamples/Multithreading/README: - * DevGuideExamples/Multithreading/Reactive/README: - * DevGuideExamples/Multithreading/ThreadPerConnection/README: - * DevGuideExamples/Multithreading/ThreadPool/README: - * DevGuideExamples/PortableInterceptors/Auth/README: - * DevGuideExamples/PortableInterceptors/IOR/README: - * DevGuideExamples/PortableInterceptors/PICurrent/README: - * DevGuideExamples/PortableInterceptors/SimpleCodec/README: - * DevGuideExamples/RTCORBA/README: - * DevGuideExamples/SmartProxies/README: - * DevGuideExamples/ValueTypes/Bank/README: - * DevGuideExamples/ValueTypes/Messenger/README: - * DevGuideExamples/readme.txt: - * README: - * examples/AMI/FL_Callback/README: - * examples/Buffered_AMI/README: - * examples/Buffered_Oneways/README: - * examples/CSD_Strategy/ThreadPool/README: - * examples/CSD_Strategy/ThreadPool2/README: - * examples/CSD_Strategy/ThreadPool3/README: - * examples/CSD_Strategy/ThreadPool4/README: - * examples/CSD_Strategy/ThreadPool6/README: - * examples/Load_Balancing/README: - * examples/OBV/Typed_Events/README: - * examples/RTCORBA/Activity/README: - * interop-tests/wchar/README: - * orbsvcs/DevGuideExamples/EventServices/OMG_Basic/README: - * orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/README: - * orbsvcs/DevGuideExamples/EventServices/OMG_TypedEC/README: - * orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/README: - * orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/README: - * orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/README: - * orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/README: - * orbsvcs/DevGuideExamples/ImplRepo/README: - * orbsvcs/DevGuideExamples/NamingService/Messenger/README: - * orbsvcs/DevGuideExamples/NamingService/Naming_Client/README: - * orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/README: - * orbsvcs/DevGuideExamples/NamingService/Naming_Server/README: - * orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/README: - * orbsvcs/DevGuideExamples/NotifyService/EventSequence/README: - * orbsvcs/DevGuideExamples/NotifyService/Filtering/README: - * orbsvcs/DevGuideExamples/NotifyService/Messenger/README: - * orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/README: - * orbsvcs/DevGuideExamples/NotifyService/QoSProperties/README: - * orbsvcs/DevGuideExamples/NotifyService/RTNotify/README: - * orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/README: - * orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/README: - * orbsvcs/DevGuideExamples/Security/PolicyControllingApp/README: - * orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/README: - * orbsvcs/DevGuideExamples/ValueTypes/Notify/readme.txt: - * orbsvcs/FT_ReplicationManager/README: - * orbsvcs/ImplRepo_Service/README.txt: - * orbsvcs/LoadBalancer/README: - * orbsvcs/TAO_Service/README: - * orbsvcs/examples/CosEC/Factory/README: - * orbsvcs/examples/CosEC/RtEC_Based/README: - * orbsvcs/examples/CosEC/RtEC_Based/bin/README: - * orbsvcs/examples/CosEC/RtEC_Based/tests/Multiple/README: - * orbsvcs/examples/CosEC/Simple/README: - * orbsvcs/examples/Log/Basic/README: - * orbsvcs/examples/Log/Event/README: - * orbsvcs/examples/Log/Notify/README: - * orbsvcs/examples/Log/README: - * orbsvcs/examples/Log/RTEvent/README: - * orbsvcs/examples/Notify/Federation/Agent/README: - * orbsvcs/examples/Notify/Federation/SpaceCraft/README: - * orbsvcs/examples/Notify/Filter/README: - * orbsvcs/examples/Notify/Lanes/README: - * orbsvcs/examples/Notify/MC/TkMonitor/README: - * orbsvcs/examples/Notify/README: - * orbsvcs/examples/Notify/Subscribe/README: - * orbsvcs/examples/Notify/ThreadPool/README: - * orbsvcs/examples/RtEC/IIOPGateway/README: - * orbsvcs/examples/RtEC/MCast/README: - * orbsvcs/examples/RtEC/Schedule/README: - * orbsvcs/examples/RtEC/Simple/README: - * orbsvcs/examples/Security/README: - * orbsvcs/examples/Security/SecurityLevel1/README: - * orbsvcs/orbsvcs/HTIOP/README.txt: - * orbsvcs/orbsvcs/Naming/README: - * orbsvcs/tests/AVStreams/Component_Switching/README: - * orbsvcs/tests/AVStreams/Latency/README: - * orbsvcs/tests/AVStreams/Multicast/README: - * orbsvcs/tests/AVStreams/Multicast_Full_Profile/README: - * orbsvcs/tests/AVStreams/README: - * orbsvcs/tests/AVStreams/Simple_Three_Stage/README: - * orbsvcs/tests/AVStreams/mpeg/README.uav: - * orbsvcs/tests/Bug_1334_Regression/README: - * orbsvcs/tests/Bug_1393_Regression/README: - * orbsvcs/tests/Bug_1395_Regression/README: - * orbsvcs/tests/Bug_1436_Regression/README: - * orbsvcs/tests/Bug_1437_Regression/README: - * orbsvcs/tests/Bug_2137_Regression/README: - * orbsvcs/tests/Bug_2247_Regression/README: - * orbsvcs/tests/Bug_2248_Regression/README: - * orbsvcs/tests/Bug_2285_Regression/README: - * orbsvcs/tests/Bug_2287_Regression/README: - * orbsvcs/tests/Bug_2615_Regression/README: - * orbsvcs/tests/Bug_2709_Regression/README: - * orbsvcs/tests/Bug_2777_Regression/README: - * orbsvcs/tests/Bug_3215_Regression/README: - * orbsvcs/tests/Bug_3216_Regression/README: - * orbsvcs/tests/CosEvent/Timeout/README: - * orbsvcs/tests/EC_Custom_Marshal/README: - * orbsvcs/tests/EC_MT_Mcast/README: - * orbsvcs/tests/EC_Mcast/README: - * orbsvcs/tests/EC_Multiple/README: - * orbsvcs/tests/EC_Throughput/README: - * orbsvcs/tests/Event/Mcast/AddrServer/README: - * orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated/README: - * orbsvcs/tests/Event/Mcast/Two_Way/README: - * orbsvcs/tests/Event/Performance/README: - * orbsvcs/tests/Event/lib/README: - * orbsvcs/tests/FaultTolerance/IOGR/README: - * orbsvcs/tests/ImplRepo/Bug_2604_Regression/README: - * orbsvcs/tests/InterfaceRepo/Bug_2962_Regression/ReadMe.txt: - * orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/ReadMe.txt: - * orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/ReadMe.txt: - * orbsvcs/tests/InterfaceRepo/IFR_Self_Recursive_IDL_Test/README: - * orbsvcs/tests/InterfaceRepo/Union_Forward_Test/README.txt: - * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/README: - * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/README: - * orbsvcs/tests/Log/Basic_Log_Test/README: - * orbsvcs/tests/Notify/lib/README: - * orbsvcs/tests/Notify/performance-tests/scripts/1_Path_Period_0_Lanes/README: - * orbsvcs/tests/Notify/performance-tests/scripts/3_Path_Period_10ms_Lanes/README: - * orbsvcs/tests/Notify/performance-tests/scripts/Max_Throughput/README: - * orbsvcs/tests/Redundant_Naming/README: - * orbsvcs/tests/Security/Big_Request/README: - * orbsvcs/tests/Security/Bug_1107_Regression/README: - * orbsvcs/tests/Security/Bug_2908_Regression/README: - * orbsvcs/tests/Security/Callback/README: - * orbsvcs/tests/Security/Secure_Invocation/README: - * orbsvcs/tests/Security/cert/README: - * orbsvcs/tests/Security/ssliop_CSD/README: - * orbsvcs/tests/Simple_Naming/README: - * orbsvcs/tests/unit/Notify/MC/MonitorControlExt/README: - * performance-tests/Cubit/README: - * performance-tests/Latency/README: - * performance-tests/README: - * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/README: - * performance-tests/RTCorba/Multiple_Endpoints/Single_Endpoint/README: - * performance-tests/Sequence_Latency/Sequence_Operations_Time/README.txt: - * tests/Any/Recursive/README: - * tests/BiDirectional_DelayedUpcall/README: - * tests/Big_AMI/README: - * tests/Bug_1330_Regression/README: - * tests/Bug_1551_Regression/README: - * tests/Bug_1627_Regression/README: - * tests/Bug_2119_Regression/README: - * tests/Bug_2122_Regression/README: - * tests/Bug_2124_Regression/README: - * tests/Bug_2126_Regression/README: - * tests/Bug_2134_Regression/README: - * tests/Bug_2183_Regression/README: - * tests/Bug_2186_Regression/README: - * tests/Bug_2289_Regression/README: - * tests/Bug_2375_Regression/README: - * tests/Bug_2399_Regression/README: - * tests/Bug_2419_Regression/README: - * tests/Bug_2424_Regression/README: - * tests/Bug_2429_Regression/README: - * tests/Bug_2549_Regression/README: - * tests/Bug_2669_Regression/README: - * tests/Bug_2791_Regression/README: - * tests/Bug_2805_Regression/README.txt: - * tests/Bug_2935_Regression/README.txt: - * tests/Bug_3068_Regression/README: - * tests/Bug_3276_Regression/README: - * tests/Bug_3299_Regression/README: - * tests/Bug_3311_Regression/README: - * tests/Bug_3513_Regression/README: - * tests/Bug_3524_Regression/README: - * tests/Bug_3574_Regression/README: - * tests/Bug_3575_Regression/README: - * tests/Bug_3632_Regression/README: - * tests/Bug_3676_Regression/README: - * tests/Bug_3743_Regression/README: - * tests/Bug_3748_Regression/README: - * tests/Bug_3755_Ext_Regression/README: - * tests/Bug_3790_Regression/README: - * tests/Bug_3821_Regression/README: - * tests/Bug_3827_Regression/README: - * tests/Bug_3837_Regression/README: - * tests/Bug_3926_Regression/README: - * tests/Bug_3941_Regression/README: - * tests/CSD_Strategy_Tests/TP_Test_4/README: - * tests/CodeSets/simple/README: - * tests/Collocation_Opportunities/README: - * tests/DIOP/README: - * tests/DSI_Gateway/README: - * tests/FL_Cube/README: - * tests/Faults/README: - * tests/HandleExhaustion/README: - * tests/Hello/README: - * tests/ICMG_Any_Bug/README: - * tests/IPV6/README: - * tests/Leader_Followers/README: - * tests/LongUpcalls/README: - * tests/MProfile/README: - * tests/MProfile_Connection_Timeout/README: - * tests/MT_BiDir/README: - * tests/MT_Client/README: - * tests/MT_Server/README: - * tests/MT_Timeout/README: - * tests/Multiple/README: - * tests/Multiple_Inheritance/README: - * tests/Muxed_GIOP_Versions/README: - * tests/Muxing/README: - * tests/Native_Exceptions/README: - * tests/Nested_Event_Loop/README: - * tests/No_Server_MT_Connect_Test/README: - * tests/OBV/Any/README: - * tests/OBV/Supports/README: - * tests/ORB_Local_Config/Bug_1459/README: - * tests/ORB_Local_Config/Bug_3049/README: - * tests/ORB_Local_Config/README: - * tests/ORB_Local_Config/Two_DLL_ORB/README: - * tests/ORB_destroy/README: - * tests/Object_Loader/README: - * tests/Objref_Sequence_Test/README: - * tests/OctetSeq/README: - * tests/POA/Adapter_Activator/README: - * tests/POA/Bug_1592_Regression/README: - * tests/POA/DSI/README: - * tests/POA/Explicit_Activation/Alt_Resources/README: - * tests/POA/Explicit_Activation/README: - * tests/POA/FindPOA/README: - * tests/POA/README: - * tests/POA/Reference_Counted_Servant/README: - * tests/POA/RootPOA/README: - * tests/Policies/README: - * tests/Portable_Interceptors/Benchmark/README: - * tests/Portable_Interceptors/Dynamic/README: - * tests/Portable_Interceptors/ForwardRequest/README: - * tests/Portable_Interceptors/IORInterceptor/README: - * tests/Portable_Interceptors/ORB_Shutdown/README: - * tests/Portable_Interceptors/PICurrent/README: - * tests/Portable_Interceptors/Request_Interceptor_Flow/README: - * tests/RTScheduling/Current/README: - * tests/RTScheduling/DT_Spawn/README: - * tests/RTScheduling/Thread_Cancel/README: - * tests/RTScheduling/VoidData/README: - * tests/Smart_Proxies/Collocation/README: - * tests/Timed_Buffered_Oneways/README: - * tests/Timeout/README: - * tests/TransportCurrent/Framework/README: - * tests/Xt_Stopwatch/README: - Fuzz: Missing Id-tags. - -Fri Oct 7 07:55:46 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * examples/PluggableUDP/tests/Performance/svc.conf.xml: - * examples/PluggableUDP/tests/SimplePerformance/svc.conf.xml: - * examples/Simple/time-date/client.conf.xml: - * examples/Simple/time-date/svc.conf.xml: - * interop-tests/wchar/build.xml: - * orbsvcs/Concurrency_Service/svc.conf.xml: - * orbsvcs/ImplRepo_Service/repository.xml: - * orbsvcs/Notify_Service/svc.conf.xml: - * orbsvcs/TAO_Service/svc.conf.xml: - * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/svc.conf.xml: - * orbsvcs/tests/CosEvent/Basic/svc.pull.conf.xml: - * orbsvcs/tests/Event/Basic/control.conf.xml: - * orbsvcs/tests/Event/UDP/svc.conf.xml: - * orbsvcs/tests/FaultTolerance/IOGR/svc.conf.xml: - * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/windows.conf.xml: - * orbsvcs/tests/LoadBalancing/GenericFactory/DeadMemberDetection_Inf_Ctrl/windows.conf.xml: - * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/windows.conf.xml: - * orbsvcs/tests/LoadBalancing/GenericFactory/Manage_Object_Group/windows.conf.xml: - * orbsvcs/tests/Miop/McastHello/client.conf.xml: - * orbsvcs/tests/Miop/McastHello/server.conf.xml: - * orbsvcs/tests/Notify/performance-tests/RedGreen/listener.conf.xml: - * orbsvcs/tests/Notify/performance-tests/RedGreen/lookup.conf.xml: - * orbsvcs/tests/Notify/performance-tests/RedGreen/reactive.conf.xml: - * orbsvcs/tests/Notify/performance-tests/RedGreen/svc.conf.xml: - * orbsvcs/tests/Security/MT_IIOP_SSL/client.conf.xml: - * orbsvcs/tests/Security/MT_IIOP_SSL/server.conf.xml: - * orbsvcs/tests/Security/MT_SSLIOP/client.conf.xml: - * orbsvcs/tests/Security/MT_SSLIOP/server.conf.xml: - * orbsvcs/tests/Security/ssliop_corbaloc/client.conf.xml: - * orbsvcs/tests/Security/ssliop_corbaloc/server.conf.xml: - * orbsvcs/tests/unit/Notify/MC/MonitorManager/svc.conf.xml: - * performance-tests/RTCorba/Thread_Pool/native-svc.conf.xml: - * performance-tests/RTCorba/Thread_Pool/svc.conf.xml: - * performance-tests/Throughput/svc.conf.xml: - * tests/AMI/exclusive.conf.xml: - * tests/AMI/muxed.conf.xml: - * tests/AMI/server.conf.xml: - * tests/AMI_Timeouts/svc.conf.xml: - * tests/Bug_3251_Regression/Bug_3251.conf.xml: - * tests/Bug_3801_Regression/exclusive.conf.xml: - * tests/Bug_3801_Regression/muxed.conf.xml: - * tests/ORB_Local_Config/Service_Dependency/Service_Config_Test.conf.xml: - * tests/POA/Explicit_Activation/alternate.conf.xml: - * tests/RTCORBA/Banded_Connections/svc.conf.xml: - * tests/RTCORBA/Client_Propagated/svc.conf.xml: - * tests/RTCORBA/Client_Protocol/svc.conf.xml: - * tests/RTCORBA/Collocation/continuous.conf.xml: - * tests/RTCORBA/Collocation/svc.conf.xml: - * tests/RTCORBA/Destroy_Thread_Pool/continuous.conf.xml: - * tests/RTCORBA/Dynamic_Thread_Pool/continuous.conf.xml: - * tests/RTCORBA/Dynamic_Thread_Pool/svc.conf.xml: - * tests/RTCORBA/Explicit_Binding/svc.conf.xml: - * tests/RTCORBA/Linear_Priority/svc.conf.xml: - * tests/RTCORBA/MT_Client_Protocol_Priority/svc.conf.xml: - * tests/RTCORBA/Persistent_IOR/continuous.conf.xml: - * tests/RTCORBA/Policy_Combinations/svc.conf.xml: - * tests/RTCORBA/Priority_Inversion_With_Bands/continuous.conf.xml: - * tests/RTCORBA/Priority_Inversion_With_Bands/svc.conf.xml: - * tests/RTCORBA/Server_Declared/continuous.conf.xml: - * tests/RTCORBA/Server_Declared/svc.conf.xml: - * tests/RTCORBA/Server_Protocol/server_iiop.conf.xml: - * tests/RTCORBA/Server_Protocol/server_reverse.conf.xml: - * tests/RTCORBA/Server_Protocol/server_reverse_nt.conf.xml: - * tests/RTCORBA/Server_Protocol/server_shmiop.conf.xml: - * tests/RTCORBA/Server_Protocol/server_uiop.conf.xml: - * tests/RTCORBA/Thread_Pool/continuous.conf.xml: - * tests/RTCORBA/Thread_Pool/svc.conf.xml: - Fuzz: No Id-tags. - -Wed Sep 28 12:46:14 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/BiDir_GIOP/BiDir_GIOP.mpc: - * tao/CodecFactory/CodecFactory.mpc: - Added the generated export files so that they get installed - -Wed Sep 28 12:42:14 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Generic_Sequence_T.h: - * tao/Valuetype/AbstractBase.h: - * tao/Valuetype/Valuetype_Adapter_Impl.h: - Doxygen changes - - * tao/Object.cpp: - * tao/PortableServer/Basic_SArgument_T.h: - * tao/DynamicAny/DynAny_i.h: - Layout changes - -Wed Sep 28 12:39:12 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * orbsvcs/orbsvcs/AV/AVStreams_i.h: - * orbsvcs/tests/Notify/lib/Peer_T.cpp: - Layout changes and cleanup +Wed Dec 7 10:28:00 UTC 2011 Simon Massey <simon dot massey at prismtech dot com> -Wed Sep 28 12:37:05 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + * tests/IDL_Test/IDL_Tests.mpc: - * examples/Persistent_Grid/Grid_i.h: - * examples/Simple/bank/AccountManager_i.h: - * examples/Simple/echo/Echo_i.h: - * examples/Simple/grid/Grid_i.h: - * examples/Simple/time/Time_i.h: - Layout changes, remove workarounds + Since the below modification removed the -GA from the valuetype.idl + generation step in the mpc file, the valuetypeA.cpp is now + not generated, thus this file should not be mentioned in the + DLL projects Source_Files section. Machines were compiling and + linking the old file or stating that it was not found. -Wed Sep 28 12:35:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> +Mon Dec 5 20:32:56 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - * TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp: - * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: - Layout changes to the generated code - -Wed Sep 28 12:34:31 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tests/Bug_3683_Regression/Echo_i.h: - Remove workaround - - * tests/IDL_Test/typedef.idl: - * tests/Smart_Proxies/Collocation/Smart_Proxy_Impl.h: - Layout changes - -Wed Sep 28 12:31:44 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tests/HandleExhaustion/run_test.pl: - Added missing GetFile - -Wed Sep 28 11:39:31 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> - - * tests/Bug_2241_Regression: - * tests/Bug_2241_Regression/Bug_2241_Regression.mpc: - * tests/Bug_2241_Regression/Client_Task.h: - * tests/Bug_2241_Regression/Client_Task.cpp: - * tests/Bug_2241_Regression/Collocated_Test.cpp: - * tests/Bug_2241_Regression/Hello.h: - * tests/Bug_2241_Regression/Hello.cpp: - * tests/Bug_2241_Regression/Server_Task.h: - * tests/Bug_2241_Regression/Server_Task.cpp: - * tests/Bug_2241_Regression/Test.idl: - * tests/Bug_2241_Regression/run_test.pl: - * bin/tao_orb_tests.lst: - New test for '-ORBCollocationStrategy direct' - -Sun Sep 25 17:02:27 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/Parallel_Connect_Strategy/run_test.pl: - Copy only those configuration files that are needed by the targets. - We don't want to solve this in the test framework; the script knows - which configuration files should be copied. - -Wed Sep 21 13:40:30 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tests/MT_Client/run_test.pl: - Removed conf files that are not in the repo at all - -Tue Sep 20 06:43:33 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/AMI/run_mt_noupcall.pl: - * tests/MT_Client/run_test.pl: - Copy only those configuration files that are needed by the targets. - We don't want to solve this in the test framework; the script knows - which configuration files should be copied. - -Tue Sep 20 06:27:42 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/Oneway_Send_Timeouts/run_test.pl: - Fixed runtime issues - -Fri Sep 16 12:01:35 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * DevGuideExamples/Multithreading/ThreadPerConnection/run_test.pl: - * tests/CSD_Collocation/run_test.pl: - * tests/Connection_Purging/run_test.pl: - * tests/Hang_Shutdown/run_test.pl: - * tests/LongUpcalls/run_test.pl: - Copy only those configuration files that are needed by the targets. - We don't want to solve this in the test framework; the script knows - which configuration files should be copied. - -Fri Sep 16 07:55:50 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/Faults/run_test.pl: - * tests/Faults/run_test_pp.pl: - * tests/MT_NoUpcall_Client_Leader/run_test.pl: - * tests/POA/EndpointPolicy/run_test_dh.pl: - Copy only those configuration files that are needed by the targets. - We don't want to solve this in the test framework; the script knows - which configuration files should be copied. - -Fri Sep 16 07:37:12 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/Connect_Strategy_Test/run_test.pl: - * tests/MT_BiDir/run_test.pl: - * tests/MT_Server/run_test.pl: - * tests/No_Server_MT_Connect_Test/run_test.pl: - * tests/RTCORBA/Server_Protocol/run_test.pl: - Copy only those configuration files that are needed by the targets. - We don't want to solve this in the test framework; the script knows - which configuration files should be copied. - -Fri Sep 16 07:02:26 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/Bug_3163_Regression/run_test.pl: - * tests/Bug_3630_Regression/run_test.pl: - * tests/Bug_3683_Regression/run_test.pl: - Copy only those configuration files that are needed by the targets. - We don't want to solve this in the test framework; the script knows - which configuration files should be copied. - - * tests/Bug_3630_Regression/server.cpp: - Added \n - -Thu Sep 15 07:42:01 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/AMI/run_test.pl: - * tests/Bug_2183_Regression/run_test.pl: - * tests/Bug_2186_Regression/run_test.pl: - * tests/Bug_2935_Regression/run_test.pl: - * tests/Bug_3068_Regression/run_test.pl: - * tests/Leader_Followers/run_test.pl: - * tests/Oneway_Send_Timeouts/run_test.pl: - Copy only those configuration files that are needed by the targets. - We don't want to solve this in the test framework; the script knows - which configuration files should be copied. - -Wed Sep 14 07:34:56 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/TAO_Internal.cpp: - When we can't find the service config file output a message that - has error in it, so that the scoreboard parser also detects those - errors - -Wed Sep 7 18:07:24 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/CodecFactory/CodecFactory.h: - * tao/CodecFactory/CodecFactory.cpp: - * tao/CodecFactory/CodecFactory.mpc: - export file is now generated by tao_idl - - * tao/CodecFactory/codecfactory_export.h: - Removed this file. - -Wed Sep 7 17:31:31 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/BiDir_GIOP/BiDirGIOP.h: - * tao/BiDir_GIOP/BiDirGIOP.cpp: - * tao/BiDir_GIOP/BiDirPolicy_Validator.h: - * tao/BiDir_GIOP/BiDir_GIOP.mpc: - export file is now generated by tao_idl - - * tao/BiDir_GIOP/bidirgiop_export.h: - Removed this file. + * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp: -Wed Sep 7 17:27:01 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + Added missing switch cases in visit_union() and visit_typedef(). + Not all context states were covered and we were seeing errors + and bailouts. - * MPC/modules/IDLHelper.pm: - * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_global.cpp: - * TAO_IDL/be/be_util.cpp: - * TAO_IDL/be_include/be_global.h: - Added skel_export_file and stub_export_file to define an explicit - filename for these export files that are different than the stub/skel - export_include which could be a full path. This fixes bugzilla 3980 + * tests/IDL_Test/valuetype.idl: + * tests/IDL_Test/IDL_Tests.mpc: -Tue Sep 6 11:45:16 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + Added test case for the above problem, also removed -GA IDL + compiler option for valuetype.idl, since the new test case + has IDL constructed types declared inside a valuetype - the + generated typecode for the nested types cannot be in a separate + file since the generated valuetype class declaration cannot + be reopened. Thanks to Simon Massey <simon dot massey at + prismtech dot com> for reporting the problem and supplying + example IDL. - * tao/PortableServer/Servant_Base.h: - Fixed problem with versioned namespace support +Mon Dec 5 19:57:02 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> -Tue Sep 6 08:14:42 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/AnyTypeCode/Any.h: - * tao/AnyTypeCode/Any.cpp: - Added support for std::wstring - -Tue Sep 6 08:06:46 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/PortableServer/Basic_SArguments.h: - Added support for std::wstring - -Thu Sep 1 09:59:22 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.h: - * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.cpp: - * tao/AnyTypeCode_Adapter.h: - * tao/Basic_Arguments.h: - Added support for std::wstring - -Thu Sep 1 06:31:53 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/PortableServer/BD_String_SArgument_T.cpp: - * tao/PortableServer/Basic_SArgument_T.cpp: - * tao/PortableServer/Fixed_Array_SArgument_T.cpp: - * tao/PortableServer/Fixed_Size_SArgument_T.cpp: - * tao/PortableServer/Object_SArgument_T.cpp: - * tao/PortableServer/Special_Basic_SArgument_T.cpp: - * tao/PortableServer/UB_String_SArgument_T.cpp: - * tao/PortableServer/Var_Array_SArgument_T.cpp: - * tao/PortableServer/Var_Size_SArgument_T.cpp: - * tao/PortableServer/Vector_SArgument_T.cpp: - Fixed coverity issues - -Mon Aug 29 07:20:29 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.cpp: - Fixed runtime issues in orbsvcs. - - * tests/OBV/ValueBox/client.cpp: - Fixed runtime issues. - -Fri Aug 26 11:09:12 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * DevGuideExamples/ValueTypes/Bank/client.cpp: + * examples/AMH/Sink_Server/Base_Server.h: + * examples/AMH/Sink_Server/Base_Server.cpp: + * examples/AMH/Sink_Server/Client_Task.cpp: + * examples/AMH/Sink_Server/MT_AMH_Server.cpp: * examples/AMH/Sink_Server/client.cpp: - * examples/Event_Comm/supplier.cpp: - * examples/Simple/bank/server.cpp: - * examples/Simple/echo/server.cpp: - * examples/Simple/grid/server.cpp: - * examples/Simple/time/server.cpp: - * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.cpp: - * orbsvcs/tests/Bug_2112_Regression/client.cpp: - * orbsvcs/tests/InterfaceRepo/Bug_2962_Regression/client.cpp: - * orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/test_idl.cpp: - * orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/test_idl.cpp: - * orbsvcs/tests/InterfaceRepo/Union_Forward_Test/client.cpp: - * performance-tests/Sequence_Latency/Sequence_Operations_Time/test.cpp: - * tests/Bug_1383_Regression/SimpleClient.cpp: - * tests/Bug_3506_Regression/client.cpp: - * tests/Bug_3548_Regression/client.cpp: - * tests/CDR/allocator.cpp: - * tests/Connection_Failure/client.cpp: - * tests/DII_AMI_Forward/client.cpp: - * tests/DynAny_Test/driver.cpp: - * tests/OBV/ValueBox/client.cpp: - * tests/POA/EndpointPolicy/server.cpp: - * tests/POA/Loader/server.cpp: - * tests/Param_Test/driver.cpp: - * tests/Portable_Interceptors/AdvSlot/client.cpp: - * tests/Portable_Interceptors/AdvSlot/server.cpp: - * tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp: - * tests/Portable_Interceptors/AdvSlotExt/client.cpp: - * tests/RTScheduling/Scheduling_Interceptor/test_client.cpp: - * tests/RTScheduling/VoidData/test_client.cpp: - * tests/Sequence_Unit_Tests/bounded_object_reference_sequence_ut.cpp: - * tests/Sequence_Unit_Tests/bounded_sequence_cdr_ut.cpp: - * tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp: - * tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp: - * tests/Sequence_Unit_Tests/object_reference_sequence_element_ut.cpp: - * tests/Sequence_Unit_Tests/string_sequence_element_ut.cpp: - * tests/Sequence_Unit_Tests/testing_allocation_traits_ut.cpp: - * tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp: - * tests/Sequence_Unit_Tests/unbounded_octet_sequence_nocopy_ut.cpp: - * tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp: - * tests/Sequence_Unit_Tests/unbounded_sequence_cdr_ut.cpp: - * tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp: - * tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp: - * utils/nslist/nsadd.cpp: - * utils/nslist/nsdel.cpp: - * utils/nslist/nslist.cpp: - Fixed issues regarding exceptions which are not caught. - -Tue Aug 23 18:19:01 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * NEWS: - Prepared for next release - -Tue Aug 23 19:01:44 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO version 2.0.4 released. - -Mon Aug 22 15:39:52 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> - - * orbsvcs/tests/Security/BiDirectional/ssl/ca.pem: - * orbsvcs/tests/Security/BiDirectional/ssl/client-cert.pem: - * orbsvcs/tests/Security/BiDirectional/ssl/client-key.pem: - * orbsvcs/tests/Security/BiDirectional/ssl/server-cert.pem: - * orbsvcs/tests/Security/BiDirectional/ssl/server-key.pem: - - Regenerated these certs so the test works. - -Thu Aug 11 18:55:10 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * NEWS: - - Edited existing entry about generation of argument traits. - -Mon Aug 8 14:26:30 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: - Don't generate arg traits if they are disabled - -Mon Aug 8 09:01:55 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_global.cpp: - * TAO_IDL/be/be_util.cpp: - * TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp: - * TAO_IDL/be/be_visitor_root/root_ch.cpp: - * TAO_IDL/be/be_visitor_root/root_cs.cpp: - * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: - * TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp: - * TAO_IDL/be/be_visitor_structure/structure_cs.cpp: - * TAO_IDL/be/be_visitor_traits.cpp: - * TAO_IDL/be_include/be_global.h: - Added support for -Scdr which suppresses the CDR streaming operations. - This safes footprint when we are using IDL defined types, but these - are not intended to be send through remote CORBA interfaces - -Thu Aug 4 15:47:33 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> - - * TAO-INSTALL.html: - - Added note about building for Android. - - * tests/Sequence_Unit_Tests/string_sequence_tester.hpp: - - Additional compiler macro added to build on Android. - - Thanks to Trevor Fields of OCI for doing the heavy lifting - for porting TAO to Android. - -Sat Jul 23 22:40:39 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> - - * TAO_IDL/be/be_visitor_arg_traits.cpp: - - Fuzz fix. + * examples/AMH/Sink_Server/mt_server.cpp: + * examples/AMH/Sink_Server/run_test.pl: + * examples/AMH/Sink_Server/st_server.cpp: + Improving this test, looks the crashing on some build systems is + mostly timing due to a badly written example -Sat Jul 23 14:55:15 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> +Mon Dec 5 12:30:15 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - * TAO/tao/IFR_Client/IFR_Client.mpc + * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: + const fix - Fixed dependencies on new IFR_Client_Skel project so it - builds on windows. + * TAO_IDL/be/be_visitor_valuetype/field_cs.cpp: + Layout changes and generate doxygen style documentation -Wed Jul 20 18:53:29 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/ast/ast_interface: - - Removed an unnecessary 'seen' flag for arg traits, it was - not only unneeded, but also pulling in #includes in the - *S.h file that wouldn't compile if the IDL contains - valuetypes and no non-local interfaces. - -Tue Jul 19 13:25:22 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_visitor_arg_traits.cpp: - - Added global scope double colons to code generation of - arg traits template plate arg names. Some builds had - confusion, thinking that the name was scoped inside the - TAO namespace. - - * TAO_IDL/be/be_codegen.cpp: - - Added #include generation check for valuetypes/valueboxes - when generating the proper arg traits base class - includes. - -Mon Jul 18 20:02:59 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_visitor_arg_traits.cpp: - * TAO_IDL/be/be_global.cpp: - * TAO_IDL/be_include/be_global.h: - - Added new option to IDL compiler -Gata, which - generates arg traits instantiations using the - AnyTypeCode_Adapter version of the last template - parameter (if Any support is not suppressed). The - option is used when processing IDL for the - sequences of basic types, so their arg traits - may be included by application whether or not - the application is suppressing Any support. - - * tao/tao.mpc: - - Added the new option to the basic sequence PIDL files. - - * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.h: - * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.cpp: - * tao/AnyTypeCode_Adapter.h: - - Added new overloads to the AnyTypeCode_Adapter and - AnyTypeCode_Adapter_Impl classes, with the basic - type sequences as the second argument. - - * docs/compiler.html: - - Documented the new IDL compiler option. - -Mon Jul 18 19:01:17 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> - - * MPC/config/ifr_client_skel.mpb: - - Fix suggested by Johnny to get build order correct on windows. - -Mon Jul 18 18:22:55 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> - - * orbsvcs/IFR_Service/IFR_Service.cpp: - - Fixed the include path for IFR_ComponentS.h - -Mon Jul 18 06:37:53 UTC 2011 Martin Corino <mcorino@remedy.nl> - - * TAO_IDL/be/be_codegen.cpp: - Changed server header start and end generation in case of - skeleton file suppression (-SS) to fix versioning bracketing - problems as a result of changed arg traits generation. - -Fri Jul 15 12:46:14 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_visitor_root/root_sh.cpp: - * TAO_IDL/be/be_visitor_root/root_ch.cpp: - - Added missing check for suppress option before generating - skeleton arg traits, and made layout changes to both stub - and skeleton root visitors. - -Fri Jul 15 11:59:37 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Monitor/Monitor.h: - Fixed compile error - -Fri Jul 15 09:00:55 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_util.cpp: - Fixed layout of one of the help messages - -Fri Jul 15 08:33:20 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * MPC/config/ifr_client_skel.mpb: - * MPC/config/ifrservice.mpb: - * orbsvcs/IFR_Service/IFR_Service.mpc: - * orbsvcs/orbsvcs/IFRService.mpc: - * orbsvcs/orbsvcs/IFRService/ComponentContainer_i.h: - * orbsvcs/orbsvcs/IFRService/ComponentDef_i.h: - * orbsvcs/orbsvcs/IFRService/EventPortDef_i.h: - * orbsvcs/orbsvcs/IFRService/HomeDef_i.h: - * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp: - * orbsvcs/orbsvcs/IFRService/IRObject_i.h: - * orbsvcs/orbsvcs/IFRService/ProvidesDef_i.cpp: - * tao/IFR_Client/IFR_Client.mpc: - * tao/IFR_Client/ifr_client_skel_export.h: - Generate a new IFR_Client_skel library that contains all - skeletons for the IFR_Client. This is generated under TAO/tao/IFR_Client - and than used by the IFRService - - * orbsvcs/orbsvcs/IFRService/IFR_BaseS.h: - * orbsvcs/orbsvcs/IFRService/IFR_BaseS.inl: - * orbsvcs/orbsvcs/IFRService/IFR_BaseS.cpp: - * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.h: - * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.inl: - * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.cpp: - * orbsvcs/orbsvcs/IFRService/IFR_BasicS.h: - * orbsvcs/orbsvcs/IFRService/IFR_BasicS.inl: - * orbsvcs/orbsvcs/IFRService/IFR_BasicS.cpp: - * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.h: - * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.inl: - * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.cpp: - * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.h: - * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.inl: - * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.cpp: - * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.h: - * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.inl: - * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.cpp: - * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.h: - * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.inl: - * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.cpp: - * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.h: - * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.inl: - * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.cpp: - Removed these files, it are generated files that shouldn't be in - the repository - -Fri Jul 15 07:29:03 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * orbsvcs/orbsvcs/IFRService/AliasDef_i.h: - * orbsvcs/orbsvcs/IFRService/ArrayDef_i.h: - * orbsvcs/orbsvcs/IFRService/InterfaceAttrExtension_i.h: - * orbsvcs/orbsvcs/IFRService/LocalInterfaceDef_i.h: - * orbsvcs/orbsvcs/IFRService/ModuleDef_i.h: - * orbsvcs/orbsvcs/IFRService/NativeDef_i.h: - * orbsvcs/orbsvcs/IFRService/OperationDef_i.h: - * orbsvcs/orbsvcs/IFRService/PrimitiveDef_i.h: - * orbsvcs/orbsvcs/IFRService/ProvidesDef_i.h: - * orbsvcs/orbsvcs/IFRService/PublishesDef_i.h: - * orbsvcs/orbsvcs/IFRService/Repository_i.h: - * orbsvcs/orbsvcs/IFRService/SequenceDef_i.h: - * orbsvcs/orbsvcs/IFRService/StringDef_i.h: - * orbsvcs/orbsvcs/IFRService/StructDef_i.h: - * orbsvcs/orbsvcs/IFRService/TypedefDef_i.h: - * orbsvcs/orbsvcs/IFRService/ValueMemberDef_i.h: - * orbsvcs/orbsvcs/IFRService/WstringDef_i.h: - Layout changes - -Fri Jul 15 07:11:02 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/IFR_Client/IFR_Client_Adapter_Impl.h: - * tao/IFR_Client/IFR_Client_Adapter_Impl.cpp: - Layout changes, removed hardcrafted arg_trait - -Thu Jul 14 19:49:02 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tao/PolicyC.cpp: - * tao/PortableServer/PolicyS.cpp: - - Removed arg traits instantiations and #includes from these - hand_crafted files. - - * tao/tao.mpc: - - - Added IDL compiler option to suppress Any operator - generation for Policy_Forward.pidl. - - - Added new IDL compiler option (see below) to - suppress arg traits generation for ParameterMode.pidl. - - * tests/Param_Test/Param_Test.mpc: - - Added header and inline file lists. - - * TAO_IDL/include/idl_global.h: - * TAO_IDL/be/be_attribute.cpp: - * TAO_IDL/be/be_visitor_arg_traits.cpp: - * TAO_IDL/be/be_valuetype.cpp: - * TAO_IDL/be/be_visitor_operation/arglist.cpp: - * TAO_IDL/be/be_visitor_operation/operation_cs.cpp: - * TAO_IDL/be/be_visitor_operation/operation.cpp: - * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_visitor_valuebox.cpp: - * TAO_IDL/be/be_visitor_union.cpp: - * TAO_IDL/be/be_visitor_structure.cpp: - * TAO_IDL/be/be_visitor_root/root_cs.cpp: - * TAO_IDL/be/be_visitor_root/root_sh.cpp: - * TAO_IDL/be/be_visitor_root/root_ss.cpp: - * TAO_IDL/be/be_visitor_root/root_ch.cpp: - * TAO_IDL/be/be_type.cpp: - * TAO_IDL/be/be_visitor_valuebox/valuebox_ch.cpp: - * TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp: - * TAO_IDL/be/be_valuebox.cpp: - * TAO_IDL/be/be_decl.cpp: - * TAO_IDL/be/be_util.cpp: - * TAO_IDL/be/be_visitor_sequence.cpp: - * TAO_IDL/be/be_visitor_array/array_ch.cpp: - * TAO_IDL/be/be_argument.cpp: - * TAO_IDL/be/be_visitor_valuetype.cpp: - * TAO_IDL/be/be_global.cpp: - * TAO_IDL/be/be_visitor_enum/enum_ch.cpp: - * TAO_IDL/be/be_sequence.cpp: - * TAO_IDL/be/be_operation.cpp: - * TAO_IDL/be/be_enum.cpp: - * TAO_IDL/be/be_string.cpp: - * TAO_IDL/ast/ast_interface.cpp: - * TAO_IDL/ast/ast_interface_fwd.cpp: - * TAO_IDL/be_include/be_visitor_root/root_ch.h: - * TAO_IDL/be_include/be_visitor_root/root_cs.h: - * TAO_IDL/be_include/be_visitor_root/root_sh.h: - * TAO_IDL/be_include/be_visitor_root/root_ss.h: - * TAO_IDL/be_include/be_codegen.h: - * TAO_IDL/be_include/be_util.h: - * TAO_IDL/be_include/be_decl.h: - * TAO_IDL/be_include/be_global.h: - * TAO_IDL/util/utl_global.cpp: - - - Moved arg traits generation targets from the stub - and skeleton source files to the corresponding - header files. This checking addresses [BUGID:3969]. - - - Many changes to #include file generation logic, - since arg traits generation is now triggered from the IDL - declaration and not from its use as an operation argument. - - - Added a new command line option -Sat to suppress - the generation of arg tratis altogether. - - * tao/docs/compiler.html: - - Added the new IDL compiler command line option to the table. - -Tue Jul 12 13:15:24 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_codegen.cpp: - - Added code generation of a preprocessor version check that - will output an error message if the generated file's version - doesn't match the IDL compiler's (TAO's) version. This fix - closes [BUGID:3979]. - -Mon Jul 11 14:55:57 UTC 2011 Adam Mitz <mitza@ociweb.com> - - * TAO_IDL/be/be_util.cpp: - - Removed usage text for command line options that were - removed a long time ago. - -Fri Jul 8 14:57:31 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_visitor_arg_traits.cpp: - - Relocated the spot where a typedef node is marked as having - its arg traits instantiation generated. There is a use case - where the old location gave rise to infinite recursion and - a stack overflow. Thanks to Johnny Willemsen - <jwillemsen@remedy.nl> for uncovering the bug and submitting - example IDL. This fix closes [BUGID:3978]. - - * tests/IDL_Test/interface.cpp: - - Added the example IDL above to the test. - -Fri Jul 8 06:39:27 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/PortableServer/Servant_Base.h: - Added some typedefs useful for template meta programming - -Mon Jul 4 11:02:28 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * orbsvcs/ImplRepo_Service/ImR_Locator_i.h: - * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp: - Fixed Coverity error - - * orbsvcs/tests/Notify/performance-tests/Throughput/Throughput.cpp: - Fixed mismatched delete as reported by Coverity - -Wed Jun 29 12:44:21 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * examples/Advanced/TO-DO: - * examples/Advanced/ch_21/client.cpp: - * examples/Quoter/Quoter_i.cpp: - * examples/Simple/bank/README: - Cleanup - -Wed Jun 29 11:27:19 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tests/OBV/Simple/Client_i.h: - * tests/OBV/Simple/OBV_impl.h: - * tests/OBV/Simple/Server_i.h: - * tests/OBV/Simple/Server_i.cpp: - * tests/OBV/Simple/server.cpp: - Cleanup - -Wed Jun 29 11:13:02 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/AnyTypeCode/TypeCode_Case_T.h: - * tao/Basic_Argument_T.h: - * tao/Invocation_Adapter.h: - * tao/Bounded_Basic_String_Sequence_T.h: - * tao/Generic_Sequence_T.h: - Layout changes - - * tao/Object.cpp: - Fixed coverity errors - - * tao/Incoming_Message_Stack.h: - Removed borland workaround - -Wed Jun 29 10:47:05 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/ORB_Core.cpp: - Fixed coverity errors - -Mon Jun 27 10:28:15 UTC 2011 Martin Corino <mcorino@remedy.nl> - - * tao/CDR.h: - * tao/CDR.inl: - Added CDR streaming ops for std::wstring and helper classes - and streaming ops to extract bounded strings into std strings. - -Thu Jun 23 12:39:08 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * etc/*.doxygen: - Disable html help, seems doxygen now disables the search option - when html help is enabled - -Thu Jun 23 13:46:08 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO version 2.0.3 released. - -Wed Jun 22 18:25:21 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tao/AnyTypeCode/Any_Basic_Impl.cpp: - * tao/AnyTypeCode/Any_Basic_Impl.h: - * tests/LongDouble/client.cpp: - * tests/IDL_Test/constants.idl: - * tests/IDL_Test/union.idl: - * TAO_IDL/include/ast_expression.h: - * TAO_IDL/be/be_helper.cpp: - * TAO_IDL/be/be_visitor_constant/constant_cs.cpp: - * TAO_IDL/be/be_visitor_constant/constant_ch.cpp: - * TAO_IDL/ast/ast_constant.cpp: - * TAO_IDL/ast/ast_expression.cpp: - * NEWS: - - Reverted all changes related to support for long double - constants in IDL. - -Wed Jun 22 15:15:05 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> - - * orbsvcs/orbsvcs/Naming/Naming_Server.cpp: - - Ensure the naming service can use the CSD_TP strategy if necessary. - Since the naming service is single threaded, it can become a - bottleneck when there is very heavy use. - - The need for this change may also indicate a problem with the - CSD strategy implementation. It appears that the thread pool at - least is only initialized when the POA Manager is activated. If - A POA is created with using a POA Manager already in the active - state, the TP is not initialized. Alternatively this might be a - problem with the POA creation, that create_POA can be supplied a - POA Manager that is already been activated, and the new POA is - itself instantly active. - -Wed Jun 22 14:49:09 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * orbsvcs/tests/Security/BiDirectional/run_test.pl: - * orbsvcs/tests/Security/Big_Request/run_test.pl: - Added -clog and -slog to write a separate client and server log file - to disk - -Tue Jun 21 13:07:15 UTC 2011 Olli Savia <ops@iki.fi> - - * TAO_IDL/util/utl_err.cpp: - Fixed typo. - -Thu Jun 16 15:30:23 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tests/IDL_Test/constants.idl: - - Guarded out the long double constant set to the double max - value, for MinGW, which outputs a floating point error - for this value. - -Thu Jun 16 14:00:53 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tests/LongDouble/client.cpp: - - Replaced '==' with equivalent '<' and '>' expressions for - a long double, some platoforms warn that '==' shouldn't - be used with floating point types. - -Thu Jun 16 07:56:54 UTC 2011 Simon Massey <sma at prismtech dot com> - - * orbsvcs/tests/Security/Big_Request/cacert.pem: - * orbsvcs/tests/Security/Big_Request/client_cert.pem: - * orbsvcs/tests/Security/Big_Request/client_key.pem: - * orbsvcs/tests/Security/Big_Request/server_cert.pem: - * orbsvcs/tests/Security/Big_Request/server_key.pem: - - Updated certificates - Missed one. - -Wed Jun 15 14:36:54 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu> - - * orbsvcs/tests/Security/Bug_1107_Regression/cacert.pem: - * orbsvcs/tests/Security/Bug_1107_Regression/client_cert.pem: - * orbsvcs/tests/Security/Bug_1107_Regression/client_key.pem: - * orbsvcs/tests/Security/Bug_1107_Regression/server_cert.pem: - * orbsvcs/tests/Security/Bug_1107_Regression/server_key.pem: - * orbsvcs/tests/Security/Callback/cacert.pem: - * orbsvcs/tests/Security/Callback/client_cert.pem: - * orbsvcs/tests/Security/Callback/client_key.pem: - * orbsvcs/tests/Security/Callback/server_cert.pem: - * orbsvcs/tests/Security/Callback/server_key.pem: - * orbsvcs/tests/Security/Crash_Test/cacert.pem: - * orbsvcs/tests/Security/Crash_Test/client_cert.pem: - * orbsvcs/tests/Security/Crash_Test/client_key.pem: - * orbsvcs/tests/Security/Crash_Test/server_cert.pem: - * orbsvcs/tests/Security/Crash_Test/server_key.pem: - * orbsvcs/tests/Security/Null_Cipher/cacert.pem: - * orbsvcs/tests/Security/Null_Cipher/client_cert.pem: - * orbsvcs/tests/Security/Null_Cipher/client_key.pem: - * orbsvcs/tests/Security/Null_Cipher/server_cert.pem: - * orbsvcs/tests/Security/Null_Cipher/server_key.pem: - * orbsvcs/tests/Security/Secure_Invocation/cacert.pem: - * orbsvcs/tests/Security/Secure_Invocation/client_cert.pem: - * orbsvcs/tests/Security/Secure_Invocation/client_key.pem: - * orbsvcs/tests/Security/Secure_Invocation/server_cert.pem: - * orbsvcs/tests/Security/Secure_Invocation/server_key.pem: - * orbsvcs/tests/Security/mixed_security_test/cacert.pem: - * orbsvcs/tests/Security/mixed_security_test/client_cert.pem: - * orbsvcs/tests/Security/mixed_security_test/client_key.pem: - * orbsvcs/tests/Security/mixed_security_test/server_cert.pem: - * orbsvcs/tests/Security/mixed_security_test/server_key.pem: - - Updated certificates. - - * orbsvcs/tests/Security/cert: - * orbsvcs/tests/Security/cert/DOCCA: - * orbsvcs/tests/Security/cert/DOCCA/cacert.pem: - * orbsvcs/tests/Security/cert/DOCCA/certs: - * orbsvcs/tests/Security/cert/DOCCA/index.txt: - * orbsvcs/tests/Security/cert/DOCCA/index.txt.attr: - * orbsvcs/tests/Security/cert/DOCCA/index.txt.attr.old: - * orbsvcs/tests/Security/cert/DOCCA/index.txt.old: - * orbsvcs/tests/Security/cert/DOCCA/newcerts: - * orbsvcs/tests/Security/cert/DOCCA/newcerts/1000.pem: - * orbsvcs/tests/Security/cert/DOCCA/newcerts/1001.pem: - * orbsvcs/tests/Security/cert/DOCCA/private: - * orbsvcs/tests/Security/cert/DOCCA/private/cakey.pem: - * orbsvcs/tests/Security/cert/DOCCA/serial: - * orbsvcs/tests/Security/cert/DOCCA/serial.old: - * orbsvcs/tests/Security/cert/README: - * orbsvcs/tests/Security/cert/cacert.pem: - * orbsvcs/tests/Security/cert/client_cert.pem: - * orbsvcs/tests/Security/cert/client_key.pem: - * orbsvcs/tests/Security/cert/openssl.cnf: - * orbsvcs/tests/Security/cert/server_cert.pem: - * orbsvcs/tests/Security/cert/server_key.pem: - - Added the full CA information used to sign the above certs. These certs - are good for the next 20 years. - - * orbsvcs/tests/Security/Secure_Invocation/client_key_nopasswd.pem: - * orbsvcs/tests/Security/Secure_Invocation/server_key_nopasswd.pem: - * orbsvcs/tests/Security/mixed_security_test/client_key_nopasswd.pem: - * orbsvcs/tests/Security/mixed_security_test/server_key_nopasswd.pem: - - Removed these files. - -Wed Jun 15 08:54:50 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_operation/operation_ch.cpp: - Reverted 3971 change, broke some CCM tests - -Tue Jun 14 13:12:05 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_valuetype.cpp: - * TAO_IDL/be/be_valuetype.h: - * TAO_IDL/be/be_visitor_amh_pre_proc.cpp: - * TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp: - - Added code generation for AMH exception holder's default - constructor to initialize the CORBA::Exception* member - to 0. This fix closes [BUGID:3970]. - -Tue Jun 14 12:18:00 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_operation/operation_ch.cpp: - Only the methods for operations in local interfaces need to be - virtual. This reduces footprint and improves performance, this - fixes bugzilla 3971 - -Fri Jun 10 19:08:19 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_helper.cpp: - - Used the recently added ACE_LONG_DOUBLE_FORMAT_SPECIFIER_ASCII - to generate long double literals portably. - -Fri Jun 10 12:41:00 UTC 2011 Simon Massey <sma at prismtech dot com> - - * tests/MT_NoUpcall_Client_Leader/run_test.pl: - - This test wasn't capable of exiting with an error, it was - always successful even if the test failed. - - * tests/MT_NoUpcall_Client_Leader/client.cpp: - * tests/MT_NoUpcall_Client_Leader/server.cpp: - - The mutex needed to be locked prior to worker thread creation - and the stop_condition.wait condition, then released after, - otherwise worker threads can signal prior to the server/client - being ready to deal with the event. Client needed to - pause before the issuing the shutdown request to the server - so as to allow it to finish its own worker thread. - - * tests/MT_NoUpcall_Client_Leader/police.cpp: - - The stat test in the loop was occationally detecting the creation - of the ior file before the contents had been written. Moving - the sleep after the stat and before the test allows the contents to - be output before allowing the client/server to use the ior it - has just detected. - - * tests/MT_NoUpcall_Client_Leader/chatter.cpp: - * tests/MT_NoUpcall_Client_Leader/chatter.h: - - Need to mutex control access to the two nrequests_ and nreplies_ - counts, as the client has two concurrent worker threads competing - to update them, these counts also need to be volitile. - -Thu Jun 9 19:38:48 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_helper.cpp: - - Changed print format of long double literal to be conditional, - based on the existence of a native 16-byte long double, in - order to eliminate warnings of rhs and lhs type mismatch. - -Thu Jun 9 17:28:25 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_visitor_constant/constant_ch.cpp: - * TAO_IDL/be/be_visitor_constant/constant_cs.cpp: - - Changed generated code to always use a constructor with an - ACE_CDR::LongDoubleAssign argument for long double constants. - -Thu Jun 9 07:05:59 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * orbsvcs/examples/FaultTolerance/RolyPoly/client.cpp: - * orbsvcs/tests/Bug_2709_Regression/Client_Task.cpp: - Fixed gcc 4.6 warnings - -Thu Jun 9 01:09:40 UTC 2011 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu> - - * orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp (TAO_Notify_ThreadPool_Task::execute): - Fixed a memory leak that occurred when the enqueue() failed. - Thanks to Jochen Meier <gesammeltimusenet2009 at arcor dot de> for - reporting this and suggesting a fix. - -Mon Jun 6 19:53:54 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tao/AnyTypeCode/Any_Basic_Impl.cpp: - * tao/AnyTypeCode/Any_Basic_Impl.h: - - Restored the long double member back to the member union of - Any_Basic_Impl. A change suggested by Adam Mitz <mitza at - ociweb dot com> enabled the use of the LongDouble emulator - struct without constructors or assignment operators. - - * TAO_IDL/be/be_visitor_constant/constant_ch.cpp: - * TAO_IDL/be/be_visitor_constant/constant_cs.cpp: - - Changed code generation for long double constant initialization, - when 16-byte native long double does not exist, to use the - new LongDoubleAssign struct in ACE_CDR. - - * tests/IDL_Test/union.idl: - - Added a test case of a union containing a long double, to - test that the generated union doesn't contain a member - with a constructor. - -Mon Jun 6 18:59:41 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_helper.cpp: - - Restored minimum significant digit suggestions for the format - string for double, and added them to the format string for - long double. - -Mon Jun 6 17:28:05 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tao/AnyTypeCode/Any_Basic_Impl.cpp: - * tao/AnyTypeCode/Any_Basic_Impl.h: - - Added a separate member for long doubles, rather than have - support for long doubles on all platforms disabled because - the struct that is now used for some long double representations - has a constructor. - - * tests/DynAny_Test/test_dynany.cpp: - - Reverted the change in - - Fri Jun 3 18:54:59 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - since that part of the test will work again. - -Mon Jun 6 15:06:42 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_global.cpp: - * TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp: - * TAO_IDL/be_include/be_global.h: - * TAO_IDL/fe/lex.yy.cpp: - * TAO_IDL/include/idl_global.h: - * TAO_IDL/util/utl_global.cpp: - Extended DDS support - -Fri Jun 3 18:54:59 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tao/AnyTypeCode/Any_Basic_Impl.cpp: - * tao/AnyTypeCode/Any_Basic_Impl.h: - - On platforms where native long doubles aren't 16 bytes, - eliminated case where an Any contains a CORBA::LongDouble. - The class contains a C++ union, which can't contain a - non-native LongDouble ( a struct) since it now has a constructor. - A fair tradeoff since in return for the recent changes to - ACE_CDR::LongDouble, we now have support for IDL constants - of type CORBA::LongDouble on all platforms. - - * tests/DynAny_Test/test_dynany.cpp: - - Similarly to the above item, eliminated the test for long - double on platforms where a non-native struct alternative - is used. - -Thu Jun 2 12:24:59 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/be/be_helper.cpp: - - - Fixed print format for long double, eliminated warnings. - - Added '#' flag to all floating point print formats, forces - printing of decimal point even if not present in IDL. - -Wed Jun 1 19:39:08 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> - - * TAO_IDL/include/AST_Expression.h: - * TAO_IDL/ast/AST_Expression.cpp - * TAO_IDL/ast/AST_Constant.cpp - * TAO_IDL/be/be_helper.cpp: - * TAO_IDL/be/be_visitor_constant/constant_ch.cpp: - * TAO_IDL/be/be_visitor_constant/constant_cs.cpp: - - Added support for long double constants in IDL. - - * tests/IDL_Test/constants.idl: - - Added test cases for long double constants. - - * NEWS: - - Added item about long double constant support. - -Wed Jun 1 09:46:54 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp: - * orbsvcs/tests/Log/Basic_Log_Test/client.cpp: - * tests/ORB_Local_Config/Two_DLL_ORB/client.cpp: - * tests/ORB_Local_Config/Two_DLL_ORB/server.cpp: - Fixed Coverity warnings regarding uncaught exceptions. - -Tue May 31 05:47:19 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/Sequence_Unit_Tests/string_sequence_tester.hpp: - Fixed gcc 4.6 warnings: variable was set but not used. - -Mon May 30 10:21:08 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * examples/Logging/Logger_i.cpp: - Resolved gcc 4.6 warning: variable may be used uninitialized - in this function - -Mon May 30 10:00:33 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * orbsvcs/LoadBalancer/LoadMonitor.cpp: - Fixed compiler error on Windows. - -Mon May 30 06:39:12 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/Sequence_Unit_Tests/string_sequence_tester.hpp: - * tests/Smart_Proxies/Benchmark/client.cpp: - Resolved gcc 4.6 warnings: variable was set but not used. - -Fri May 27 14:35:57 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/Bug_2936_Regression/bug2936.cpp: - * tests/Bug_3926_Regression/Client_Request_Interceptor.cpp: - * tests/Exposed_Policies/RT_Properties.cpp: - * tests/IOR_Endpoint_Hostnames/list_interfaces.cpp: - Resolved gcc 4.6 warnings: variable was set but not used. - - * tests/POA/Bug_2511_Regression/server.cpp: - Resolved gcc 4.6 warnings: variable was set but not used. - Code alignment. - -Fri May 27 14:13:08 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * performance-tests/POA/Demux/demux_test_server.cpp: - * tests/Bug_2677_Regression/DllORB.cpp: - * tests/Bug_2683_Regression/server.cpp: - Resolved gcc 4.6 warnings: variable was set but not used. - -Fri May 27 13:52:37 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_union/union_ch.cpp: - Removed generation of holder_ member of an union, it is not used - at all - -Fri May 27 10:09:25 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * orbsvcs/examples/ImR/Advanced/TestClient.cpp: - * orbsvcs/tests/IOR_MCast/client.cpp: - * orbsvcs/tests/Security/Bug_1107_Regression/client.cpp: - Statisfy Coverity and the GNU 4.6 gcc compiler. Using a - returned value either by using ACE_UNUSED_ARG or to print - in a log message. - - * tests/Sequence_Unit_Tests/value_sequence_tester.hpp: - Fuzz. - -Fri May 27 09:14:29 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * orbsvcs/LoadBalancer/LoadMonitor.cpp: - * orbsvcs/examples/ImR/Advanced/TestClient.cpp: - * orbsvcs/tests/Bug_3486_Regression/server.cpp: - * orbsvcs/tests/IOR_MCast/client.cpp: - * orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp: - * orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp: - * orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp: - * orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp: - * orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp: - * orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp: - * orbsvcs/tests/Security/Bug_1107_Regression/client.cpp: - Resolved gcc 4.6 warnings: variable was set but not used. - -Thu May 26 15:25:36 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/fe/fe_utils.cpp: - tmp variable wasn't necessary. Removed it. - -Thu May 26 14:13:05 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * TAO_IDL/be/be_visitor_valuebox/valuebox_ci.cpp: - * TAO_IDL/fe/fe_utils.cpp: - * tao/Strategies/COIOP_Acceptor.cpp: - Resolved gcc 4.6 warnings: variable was set but not used. - -Thu May 26 13:48:29 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tests/Sequence_Unit_Tests/Bounded_Simple_Types.cpp: - * tests/Sequence_Unit_Tests/Bounded_String.cpp: - * tests/Sequence_Unit_Tests/Unbounded_Octet.cpp: - * tests/Sequence_Unit_Tests/Unbounded_Simple_Types.cpp: - * tests/Sequence_Unit_Tests/Unbounded_String.cpp: - Catch uncaught exceptions in main. - -Thu May 26 13:11:19 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tao/Generic_Sequence_T.h: - Added file name to doxygen documentation - - * tests/Sequence_Unit_Tests/value_sequence_tester.hpp: - Resolved Coverity warning: catching a uncaught BAD_PARAM exception. - -Fri May 20 22:07:56 UTC 2011 Adam Mitz <mitza@ociweb.com> - - * tao/AnyTypeCode/TAO_AnyTypeCode.rc: - * tao/Codeset/TAO_Codeset.rc: - * tao/PI/TAO_PI.rc: - * tao/PI_Server/TAO_PI_Server.rc: - * tao/Utils/TAO_Utils.rc: - * tao/ZIOP/TAO_ZIOP.rc: - - Add resource files to get TAO version number on DLLs. - -Fri May 20 14:20:53 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tests/Oneway_Timeouts/test.mpc: - Added explicit idl project to get correct build order on VMS - -Thu May 19 14:53:55 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> - - * tests/QtTests/client.cpp: - * tests/QtTests/client.h: - * tests/QtTests/QtTests.mpc: - * tests/QtTests/server.cpp: - * tests/QtTests/test_i.h: - Adapted to qt4. - -Tue May 17 19:20:55 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tests/OBV/Indirection/MessengerServer.cpp: - * tests/Portable_Interceptors/Slot/driver.cpp: - Catch exceptions in main - -Tue May 17 11:32:18 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: - * TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp: Layout changes to the generated code -Fri May 13 08:04:48 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tao/Bounded_Basic_String_Sequence_T.h: - * tao/Bounded_Object_Reference_Sequence_T.h: - * tao/Bounded_Value_Sequence_T.h: - * tao/Unbounded_Basic_String_Sequence_T.h: - * tao/Unbounded_Object_Reference_Sequence_T.h: - Doxygen changes. - -Wed May 11 18:43:15 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/ObjectKey_Table.h: - * tao/orbconf.h: - * tao/params.h: - Doxygen changes - -Wed May 11 13:35:28 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> - - * tao/QtResource/QtResource_Loader.h: - Changed for QT4 deprecated include QT/.. - -Tue May 10 18:15:28 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/ImR_Client/ImR_Client.cpp: - changed variable name to not match method argument - - * utils/catior/catior.cpp: - * utils/nslist/nsadd.cpp: - * utils/nslist/nsdel.cpp: - * utils/nslist/nslist.cpp: - Fixed coverity errors, not leak exceptions - -Tue May 10 06:15:43 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * tao/IORManipulation/IORManip_IIOP_Filter.cpp: - Fixed compile error. - -Mon May 9 19:10:54 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_interface.cpp: - * tao/CSD_ThreadPool/CSD_TP_Task.cpp: - * tao/IORManipulation/IORManip_IIOP_Filter.cpp: - Fixed coverity errors - -Wed Apr 27 13:35:10 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO.mwc: - Exclude DAnCE, thanks to Remko Duppen <remko dot duppen at syntel dot nl> - for reporting this - -Tue Apr 26 13:12:03 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp: - * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: - Layout changes generated code - -Tue Apr 26 13:04:11 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Collocation_Resolver.h: - * tao/Connect_Strategy.h: - * tao/Endpoint_Selector_Factory.h: - * tao/GIOP_Message_Base.h: - * tao/GIOP_Message_Generator_Parser.h: - * tao/GIOP_Message_Generator_Parser_10.h: - * tao/GIOP_Message_Generator_Parser_11.h: - * tao/GIOP_Message_Generator_Parser_Impl.h: - * tao/GIOP_Message_State.h: - * tao/GIOP_Utils.h: - * tao/GUIResource_Factory.h: - * tao/LF_Connect_Strategy.h: - * tao/LF_Follower.cpp: - Doxygen changes - -Tue Apr 26 12:50:24 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/ORB_Core.cpp: - * tao/Thread_Lane_Resources.h: - * tao/Thread_Lane_Resources_Manager.h: - * tao/Thread_Per_Connection_Handler.h: - * tao/Transport.h: - * tao/Transport_Connector.h: - * tao/TypeCodeFactory_Adapter.h: - Doxygen changes - -Tue Apr 26 12:21:05 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Acceptor_Impl.h: - * tao/Acceptor_Impl.cpp: - * tao/Acceptor_Registry.h: - * tao/Adapter_Registry.h: - * tao/Bind_Dispatcher_Guard.h: - * tao/Blocked_Connect_Strategy.h: - * tao/Blocked_Connect_Strategy.cpp: - * tao/Cleanup_Func_Registry.h: - * tao/Collocated_Invocation.cpp: - * tao/LF_Event_Loop_Thread_Helper.inl: - * tao/LF_Follower_Auto_Adder.inl: - * tao/Leader_Follower.cpp: - * tao/Queued_Message.h: - * tao/Transport_Cache_Manager_T.cpp: - * tao/Wait_On_LF_No_Upcall.h: - * tao/Wait_On_LF_No_Upcall.cpp: - * tao/Wait_On_Reactor.h: - * tao/Wait_On_Read.h: - Doxygen changes - -Tue Apr 26 11:57:42 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Leader_Follower.h: - * tao/Leader_Follower.inl: - * tao/Wait_On_LF_No_Upcall.h: - * tao/Wait_On_Leader_Follower.h: - * tao/Wait_On_Reactor.h: - * tao/Wait_On_Read.h: - * tao/Wait_Strategy.h: - Use explicit for single argument constructors, doxygen improvements - -Tue Apr 26 11:13:59 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tests/MT_NoUpcall_Client_Leader/client.cpp: - * tests/MT_NoUpcall_Client_Leader/run_test.pl: - * tests/MT_NoUpcall_Client_Leader/server.cpp: - Make it possible to pass number of threads through the commandline - -Tue Apr 26 09:42:36 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Leader_Follower.h: - * tao/Leader_Follower.inl: - Use bool instead of int for several methods - - * tao/Thread_Lane_Resources.cpp: - Simplied some code - -Tue Apr 26 09:26:48 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * bin/tao_orb_tests.lst: - MT_NoUpcall_Client_Leader shouldn't run when there is no messaging - -Tue Apr 26 09:00:31 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * bin/tao_orb_tests.lst: - Disabled some tests with CORBA/e micro - - * tao/Connection_Handler.cpp: - * tao/Resume_Handle_Deferred.h: - * tao/Resume_Handle_Deferred.cpp: - Use reference counting for deletion, also log an error and return -1 - when schedule_timer fails, we have a critical error at that moment - - * tao/Policy_Validator.cpp: - * tao/TAO_Singleton.cpp: - * tao/Leader_Follower.cpp: - Use %@ for logging pointers - -Fri Apr 22 12:41:53 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * orbsvcs/tests/Bug_3418_Regression/b.conf: - * orbsvcs/tests/HTIOP/HT_Config.conf: - * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/windows.conf: - * orbsvcs/tests/LoadBalancing/GenericFactory/DeadMemberDetection_App_Ctrl/non-windows.conf: - * orbsvcs/tests/LoadBalancing/GenericFactory/DeadMemberDetection_App_Ctrl/windows.conf: - * orbsvcs/tests/LoadBalancing/GenericFactory/DeadMemberDetection_Inf_Ctrl/non-windows.conf: - * orbsvcs/tests/LoadBalancing/GenericFactory/DeadMemberDetection_Inf_Ctrl/windows.conf: - * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/windows.conf: - * orbsvcs/tests/LoadBalancing/GenericFactory/Manage_Object_Group/windows.conf: - * orbsvcs/tests/Notify/Lanes/consumer.conf: - * orbsvcs/tests/Notify/Lanes/notify.conf: - * performance-tests/Protocols/lksctp_params.conf: - * performance-tests/Protocols/sctp_params.conf: - * performance-tests/RTCorba/Thread_Pool/native-svc.conf: - * tests/Bug_3068_Regression/server.conf: - * tests/ORB_Local_Config/Bug_1459/m.conf: - * tests/ORB_Local_Config/Two_DLL_ORB/secondary-empty.conf: - * tests/RTCORBA/Explicit_Binding/svc.conf: - Fuzz: added $Id string - -Fri Apr 22 12:14:18 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Connection_Handler.cpp: - * tao/Resume_Handle_Deferred.h: - * tao/Resume_Handle_Deferred.cpp: - Notify a specific event handler - - * tao/Resume_Handle_Deferred.inl: - Removed this file, virtual methods may not be inline - -Fri Apr 22 11:56:20 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Resume_Handle_Deferred.h: - * tao/Resume_Handle_Deferred.inl: - * tao/Resume_Handle_Deferred.cpp: - We should only trigger the reactor - - * tao/Transport.cpp: - Doxygen changes - -Fri Apr 22 07:28:43 UTC 2011 Marcel Smit <msmit@remedy.nl> - - * DevGuideExamples/Multithreading/Reactive/svc.conf: - * DevGuideExamples/Multithreading/ThreadPerConnection/server.conf: - * DevGuideExamples/RTCORBA/svc.conf: - * docs/tutorials/Quoter/Event_Service/ec.conf: - * examples/PluggableUDP/tests/Performance/svc.conf: - * examples/PluggableUDP/tests/SimplePerformance/svc.conf: - * examples/RTCORBA/Activity/client.conf: - * examples/RTCORBA/Activity/server.conf: - * examples/RTCORBA/Activity/svc.conf.client: - * examples/RTCORBA/Activity/svc.conf.server: - * examples/RTScheduling/Fixed_Priority_Scheduler/svc.conf.client: - * examples/RTScheduling/Fixed_Priority_Scheduler/svc.conf.server: - * examples/RTScheduling/MIF_Scheduler/svc.conf.client: - * examples/RTScheduling/MIF_Scheduler/svc.conf.server: - * orbsvcs/Concurrency_Service/svc.conf: - * orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/supplier.conf: - * orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/ec.conf: - * orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/supplier.conf: - * orbsvcs/DevGuideExamples/NotifyService/RTNotify/notify.conf: - * orbsvcs/DevGuideExamples/NotifyService/RTNotify/nsclient.conf: - * orbsvcs/DevGuideExamples/ValueTypes/Notify/notify.conf: - * orbsvcs/Event_Service/svc.conf: - * orbsvcs/Logging_Service/Notify_Logging_Service/svc.conf: - * orbsvcs/TAO_Service/svc.conf: - * orbsvcs/examples/ImR/Combined_Service/dynserver.conf: - * orbsvcs/examples/ImR/Combined_Service/start_all.conf: - * orbsvcs/examples/Notify/Lanes/client.conf: - * orbsvcs/examples/Notify/Lanes/notify.conf: - * orbsvcs/examples/Notify/ThreadPool/client.conf: - * orbsvcs/examples/Notify/ThreadPool/notify.conf: - * orbsvcs/examples/RtEC/IIOPGateway/ec.conf: - * orbsvcs/examples/RtEC/IIOPGateway/gateway.conf: - * orbsvcs/examples/RtEC/Kokyu/svc.conf: - * orbsvcs/examples/RtEC/MCast/svc.conf: - * orbsvcs/examples/RtEC/Schedule/svc.conf: - * orbsvcs/examples/RtEC/Simple/ec.conf: - * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.dispatching_reactive.conf: - * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.dispatching_rtcorba.conf: - * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.dispatching_threaded.conf: - * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.filter_null.conf: - * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.filter_per_supplier.conf: - * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.locking_copy_on_read.conf: - * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.locking_copy_on_write.conf: - * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.locking_delayed.conf: - * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.locking_immediate.conf: - * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/roundtrip.conf: - * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/realtime.conf: - * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/realtime.conf: - * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.dispatching_reactive.conf: - * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.dispatching_rtcorba.conf: - * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.dispatching_threaded.conf: - * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.locking_copy_on_read.conf: - * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.locking_copy_on_write.conf: - * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.locking_delayed.conf: - * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.locking_immediate.conf: - * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.supplier_filter_null.conf: - * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.supplier_filter_per_supplier.conf: - * orbsvcs/performance-tests/RTEvent/Roundtrip/roundtrip.conf: - * orbsvcs/tests/AVStreams/Component_Switching/components_svc.conf: - * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/svc.conf: - * orbsvcs/tests/Bug_2316_Regression/svc.conf: - * orbsvcs/tests/Bug_2377_Regression/svc.conf: - * orbsvcs/tests/Bug_2925_Regression/svc.conf: - * orbsvcs/tests/Bug_3387_Regression/NotSvc.conf: - * orbsvcs/tests/Bug_3418_Regression/m.conf: - * orbsvcs/tests/Bug_3444_Regression/diop_svc.conf: - * orbsvcs/tests/Bug_3444_Regression/miop_svc.conf: - * orbsvcs/tests/CosEvent/Basic/svc.pull.conf: - * orbsvcs/tests/CosEvent/Timeout/cosevent.conf: - * orbsvcs/tests/EC_MT_Mcast/svc.conf: - * orbsvcs/tests/EC_Mcast/svc.conf: - * orbsvcs/tests/EC_Throughput/ec.conf: - * orbsvcs/tests/Event/Basic/control.conf: - * orbsvcs/tests/Event/Basic/mt.svc.conf: - * orbsvcs/tests/Event/Basic/observer.conf: - * orbsvcs/tests/Event/Basic/svc.complex.conf: - * orbsvcs/tests/Event/Basic/svc.conf: - * orbsvcs/tests/Event/Mcast/Complex/consumer-ec.conf: - * orbsvcs/tests/Event/Mcast/Complex/supplier-ec.conf: - * orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated/supplier.conf: - * orbsvcs/tests/Event/Mcast/Two_Way/gateway.conf: - * orbsvcs/tests/Event/Performance/ec.list.conf: - * orbsvcs/tests/Event/Performance/ec.mt.conf: - * orbsvcs/tests/Event/Performance/ec.rb_tree.conf: - * orbsvcs/tests/Event/Performance/ec.st.conf: - * orbsvcs/tests/Event/Performance/latency.conf: - * orbsvcs/tests/Event/UDP/svc.conf: - * orbsvcs/tests/HTIOP/AMI/exclusive.conf: - * orbsvcs/tests/HTIOP/AMI/muxed.conf: - * orbsvcs/tests/ImplRepo/scale/client.conf: - * orbsvcs/tests/InterfaceRepo/Persistence_Test/svc.conf: - * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/svc.conf: - * orbsvcs/tests/Miop/McastHello/svc.conf: - * orbsvcs/tests/Notify/Basic/notify.mt.conf: - * orbsvcs/tests/Notify/Basic/notify.reactive.conf: - * orbsvcs/tests/Notify/Basic/notify.rt.conf: - * orbsvcs/tests/Notify/Blocking/notify.conf: - * orbsvcs/tests/Notify/Bug_1385_Regression/notify.conf: - * orbsvcs/tests/Notify/Bug_1884_Regression/ecf.conf: - * orbsvcs/tests/Notify/Lanes/consumer.conf: - * orbsvcs/tests/Notify/Persistent_Filter/NS.conf: - * orbsvcs/tests/Notify/PluggableTopology/plugtop_ns.conf: - * orbsvcs/tests/Notify/Reconnecting/event.conf: - * orbsvcs/tests/Notify/Reconnecting/ns_mt.conf: - * orbsvcs/tests/Notify/Reconnecting/ns_mt_both.conf: - * orbsvcs/tests/Notify/Reconnecting/ns_mt_topo.conf: - * orbsvcs/tests/Notify/Reconnecting/ns_st.conf: - * orbsvcs/tests/Notify/Reconnecting/ns_st_both.conf: - * orbsvcs/tests/Notify/Reconnecting/ns_st_topo.conf: - * orbsvcs/tests/Notify/ThreadPool/consumer.conf: - * orbsvcs/tests/Notify/ThreadPool/notify.conf: - * orbsvcs/tests/Notify/ThreadPool/supplier.conf: - * orbsvcs/tests/Notify/Validate_Client/notify.conf: - * orbsvcs/tests/Notify/XML_Persistence/svc.conf: - * orbsvcs/tests/Notify/performance-tests/RedGreen/listener.conf: - * orbsvcs/tests/Notify/performance-tests/RedGreen/lookup.conf: - * orbsvcs/tests/Notify/performance-tests/RedGreen/svc.conf: - * orbsvcs/tests/Notify/performance-tests/scripts/1_Path_Period_0_Lanes/cos_notify.conf: - * orbsvcs/tests/Notify/performance-tests/scripts/1_Path_Period_0_Lanes/rt_notify.conf: - * orbsvcs/tests/Notify/performance-tests/scripts/3_Path_Period_10ms_Lanes/cos_notify.conf: - * orbsvcs/tests/Notify/performance-tests/scripts/3_Path_Period_10ms_Lanes/rt_notify.conf: - * orbsvcs/tests/Notify/performance-tests/scripts/Max_Throughput/Notify/notify.conf: - * orbsvcs/tests/Notify/performance-tests/scripts/Max_Throughput/Notify_RTCORBA/notify.conf: - * orbsvcs/tests/Notify/performance-tests/scripts/Paths_vs_Throughput/cos_notify.conf: - * orbsvcs/tests/Notify/performance-tests/scripts/Paths_vs_Throughput/rt_notify.conf: - * orbsvcs/tests/Security/BiDirectional/client.conf: - * orbsvcs/tests/Security/BiDirectional/server.conf: - * orbsvcs/tests/Security/Bug_2908_Regression/client.conf: - * orbsvcs/tests/Security/Bug_2908_Regression/server.conf: - * orbsvcs/tests/Security/EndpointPolicy/svc.conf: - * orbsvcs/tests/Security/InsecureReferences/client.conf: - * orbsvcs/tests/Security/MT_IIOP_SSL/client.conf: - * orbsvcs/tests/Security/MT_IIOP_SSL/server.conf: - * orbsvcs/tests/Security/MT_SSLIOP/client.conf: - * orbsvcs/tests/Security/MT_SSLIOP/server.conf: - * orbsvcs/tests/Security/ssliop_CSD/csd.conf: - * orbsvcs/tests/Security/ssliop_corbaloc/client.conf: - * orbsvcs/tests/Security/ssliop_corbaloc/server.conf: - * orbsvcs/tests/unit/Notify/MC/MonitorManager/svc.conf: - * performance-tests/Protocols/altq.conf: - * performance-tests/Protocols/svc.conf: - * performance-tests/RTCorba/Thread_Pool/svc.conf: - * tests/AMI/muxed.conf: - * tests/AMI_Timeouts/svc.conf: - * tests/Bug_2186_Regression/server.conf: - * tests/Bug_2935_Regression/middle.conf: - * tests/Bug_3000_Regression/rw.conf: - * tests/Bug_3068_Regression/client.conf: - * tests/Bug_3163_Regression/server.conf: - * tests/Bug_3251_Regression/Bug_3251.conf: - * tests/Bug_3598a_Regression/svc.conf: - * tests/Bug_3630_Regression/TAO Conf File.conf: - * tests/Bug_3630_Regression/TAO_Conf_File.conf: - * tests/Bug_3683_Regression/svc.conf: - * tests/Bug_3801_Regression/exclusive.conf: - * tests/Bug_3801_Regression/muxed.conf: - * tests/Bug_3837_Regression/logger.conf: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/svc.conf: - * tests/CSD_Strategy_Tests/TP_Test_Static/svc.conf: - * tests/CodeSets/simple/cs_test.conf: - * tests/CodeSets/simple/svc.conf: - * tests/CodeSets/simple/wcs_test.conf: - * tests/Collocation_Opportunities/svc.conf: - * tests/Exposed_Policies/svc.conf: - * tests/Leader_Followers/select_mt.conf: - * tests/Leader_Followers/tp.conf: - * tests/ORB_Local_Config/Bug_1459/a.conf: - * tests/ORB_Local_Config/Bug_1459/b.conf: - * tests/ORB_Local_Config/Bug_1459/d.conf: - * tests/ORB_Local_Config/Bug_1459/m1.conf: - * tests/ORB_Local_Config/Bug_3049/a.conf: - * tests/ORB_Local_Config/Service_Dependency/Service_Config_Test.conf: - * tests/ORB_Local_Config/Two_DLL_ORB/primary-csd.conf: - * tests/ORB_Local_Config/Two_DLL_ORB/primary-ssl.conf: - * tests/ORB_Local_Config/Two_DLL_ORB/secondary-csd.conf: - * tests/ORB_Local_Config/Two_DLL_ORB/secondary-ssl.conf: - * tests/Oneway_Send_Timeouts/block_flush.conf: - * tests/Oneway_Send_Timeouts/lf_flush.conf: - * tests/Oneway_Send_Timeouts/reactive_flush.conf: - * tests/Optimized_Connection/oc_svc.conf: - * tests/POA/EndpointPolicy/multi_prot.conf: - * tests/POA/Explicit_Activation/alternate.conf: - * tests/Parallel_Connect_Strategy/blocked.conf: - * tests/Parallel_Connect_Strategy/reactive.conf: - * tests/RTCORBA/Banded_Connections/svc.conf: - * tests/RTCORBA/Bug_3382_Regression/svc.conf: - * tests/RTCORBA/Bug_3643_Regression/svc.conf.dynamic: - * tests/RTCORBA/Client_Propagated/svc.conf: - * tests/RTCORBA/Client_Protocol/svc.conf: - * tests/RTCORBA/Collocation/continuous.conf: - * tests/RTCORBA/Collocation/svc.conf: - * tests/RTCORBA/Destroy_Thread_Pool/continuous.conf: - * tests/RTCORBA/Dynamic_Thread_Pool/continuous.conf: - * tests/RTCORBA/Dynamic_Thread_Pool/svc.conf: - * tests/RTCORBA/Linear_Priority/svc.conf: - * tests/RTCORBA/MT_Client_Protocol_Priority/svc.conf: - * tests/RTCORBA/Persistent_IOR/continuous.conf: - * tests/RTCORBA/Policy_Combinations/svc.conf: - * tests/RTCORBA/Priority_Inversion_With_Bands/continuous.conf: - * tests/RTCORBA/Priority_Inversion_With_Bands/svc.conf: - * tests/RTCORBA/Profile_And_Endpoint_Selection/svc.conf: - * tests/RTCORBA/Server_Declared/continuous.conf: - * tests/RTCORBA/Server_Declared/svc.conf: - * tests/RTCORBA/Server_Protocol/server_iiop.conf: - * tests/RTCORBA/Server_Protocol/server_iiop_shmiop.conf: - * tests/RTCORBA/Server_Protocol/server_iiop_uiop.conf: - * tests/RTCORBA/Server_Protocol/server_reverse.conf: - * tests/RTCORBA/Server_Protocol/server_reverse_nt.conf: - * tests/RTCORBA/Server_Protocol/server_shmiop.conf: - * tests/RTCORBA/Server_Protocol/server_uiop.conf: - * tests/RTCORBA/Thread_Pool/continuous.conf: - * tests/RTCORBA/Thread_Pool/svc.conf: - * tests/TransportCurrent/Framework/client-static.conf: - * tests/TransportCurrent/Framework/client.conf: - * tests/TransportCurrent/Framework/server-static.conf: - * tests/TransportCurrent/Framework/server.conf: - * tests/TransportCurrent/IIOP/client_dynamic.conf: - * tests/TransportCurrent/IIOP/client_static.conf: - * tests/TransportCurrent/IIOP/server_dynamic.conf: - * tests/TransportCurrent/IIOP/server_static.conf: - Fuzz. Added lacking $Id string. - -Thu Apr 21 13:02:25 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * bin/tao_orb_tests.lst: - Updated test list - - * tests/AMI/mt_noupcall.conf: - * tests/AMI/run_mt_noupcall.pl: - * tests/AMI/run_test.pl: - New run_mt_noupcall, the existing script was using -ORBCollocation no - which doesn't work with AMI and mt_noupcall - - * tests/AMI/simple_client.cpp: - Layout change - -Thu Apr 21 12:07:41 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * bin/tao_orb_tests.lst: - Run AMI test with more options - - * tests/AMI/exclusive.conf: - * tests/AMI/server.conf: - Added Id tag - - * tests/AMI/mt_noupcall.conf: - New file for testing with mt_noupcall - - * tests/AMI/run_test.pl: - Add option -mt_noupcall and give client/server separate debug levels - -Thu Apr 21 11:17:36 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Wait_On_LF_No_Upcall.cpp: - Log transport id - -Thu Apr 21 10:31:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Connection_Handler.cpp: - Use the orb core reactor which is the LF reactor - -Wed Apr 20 08:59:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp: - Improved portability - - * bin/tao_orb_tests.lst: - Added new test - - * tao/Leader_Follower.h: - Layout change - - * tao/Strategies/SHMIOP_Acceptor.cpp: - * tao/Wait_On_LF_No_Upcall.cpp: - Fixed coverity errors - - * tests/Bug_3531b_Regression: - * tests/Bug_3531b_Regression/Bug_3531b_Regression.mpc: - * tests/Bug_3531b_Regression/run_test.pl: - * tests/Bug_3531b_Regression/server.cpp: - New test + * examples/AMH/Sink_Server/run_test.pl: + * tao/PortableServer/Adapter_Activator.h: + * tests/Multiple/Multiple_Impl.h: + Zapped empty lines -Wed Apr 20 09:52:52 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl> + * tests/Multiple/server.cpp: + Fixed typo in comment - * TAO version 2.0.2 released. + * tests/POA/DSI/server.cpp: + * tests/POA/Explicit_Activation/server.cpp: + * tests/POA/On_Demand_Act_Direct_Coll/Server_Task.cpp: + * tests/POA/On_Demand_Loading/Server_Manager.cpp: + * tests/POA/Reference_Counted_Servant/server.cpp: + Close file descriptors earlier to resolve Coverity errors Local Variables: mode: change-log add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time)) indent-tabs-mode: nil End: -ambiguous diff --git a/TAO/ChangeLogs/ChangeLog-2011b b/TAO/ChangeLogs/ChangeLog-2011b new file mode 100644 index 00000000000..4d387011a94 --- /dev/null +++ b/TAO/ChangeLogs/ChangeLog-2011b @@ -0,0 +1,3954 @@ +Sun Dec 04 11:51:30 CET 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO version 2.0.6 released. + +Fri Dec 2 10:07:48 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tao/Leader_Follower.cpp: + * tao/Messaging/Messaging_Queueing_Strategies.h: + * tao/Messaging/Messaging_Queueing_Strategies.cpp: + * tao/ORB_Core.cpp: + * tao/Transport.cpp: + * tao/params.h: + * tao/params.inl: + * tao/params.cpp: + + Reverting timer changes to be replaced by better and more + flexible changes after the coming release. + +Wed Nov 30 15:55:22 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Bug_2285_Regression/Hello.cpp: + * orbsvcs/tests/Bug_2285_Regression/client2.cpp: + Code cleanup + + * tests/Mixed_Sync_ASync_Events/main.cpp: + * tests/Mixed_Sync_ASync_Events/test_i.cpp: + Fixed LynxOS compile warnings + +Tue Nov 29 15:50:06 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tao/ORB_Core.cpp: + * tao/params.h: + * tao/params.inl: + * tao/params.cpp: + + Added -ORBUseHighresTimer ORB parameter switch to specifiy + if the ORB should use the HR timer for the reactor timer queue + and related objects (like countdowns). + + * tao/Transport.cpp: + * tao/Leader_Follower.cpp: + * tao/Messaging/Messaging_Queueing_Strategies.h: + * tao/Messaging/Messaging_Queueing_Strategies.cpp: + + Changes to support the new UseHighresTimer switch. + +Tue Nov 29 14:07:11 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Messaging/AMH_Skeletons.h: + * tao/PortableServer/SUpcall_commands.h: + Fixed pragma once warnings + +Tue Nov 29 12:21:12 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Enable some more tests in the static configuration + + * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp: + Doxygen changes and small code improvements + +Tue Nov 29 12:15:13 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/tao.mpc: + Added PolicyC.inl + + * TAO_IDL/be/be_visitor_interface/interface_ci.cpp: + Layout changes to the generated code + +Tue Nov 29 09:54:05 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: + Layout and fixed msvc problems + + * TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp: + First do a dynamic_cast and check the result before using it + +Mon Nov 28 20:36:09 UTC 2011 Adam Mitz <mitza@ociweb.com> + + * tao/tao.mpc: + + Set skel_export_macro and skel_export_include for Policy.pidl. + +Mon Nov 28 19:14:23 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/tao.mpc: + Policy.pidl shouldn't use -Sorb + +Mon Nov 28 15:41:10 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp: + * TAO_IDL/be_include/be_interface.h: + Reduced amount of static methods generated for direct collocation. + Next step is to move the direct collocation static methods into + the regular skeleton, there is really no need for its own + special class hierarchy + + * tests/Skeleton_Inheritance/skel_inheritance.mpc: + Enable direct collocation + +Mon Nov 28 14:29:45 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ImR_Client/ImR_Client.cpp: + * tao/ImR_Client/ImplRepo.pidl: + * tao/PortableServer/Operation_Table_Dynamic_Hash.cpp: + * tao/PortableServer/Operation_Table_Perfect_Hash.cpp: + Const and layout changes + +Mon Nov 28 14:09:16 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: + Generate _tao_type for policy exceptions + +Mon Nov 28 12:57:57 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * bin/tao_orb_tests.lst: + + Removed !FIXED_BUGS_ONLY for Bug_3000_Regression since this + might be fixed. + +Mon Nov 28 12:28:14 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Servant_Base.h: + * tao/PortableServer/Servant_Base.cpp: + Disable serveral methods with CORBA/e or minimum corba, fixes + bugzilla 3019 + +Mon Nov 28 10:49:43 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * MPC/config/taobaseidldefaults.mpb: + Handle the S extension also manually, needed when using -oS + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + When generating CORBA::Policy add some special methods + + * tao/AnyTypeCode/AnyTypeCode.mpc: + * tao/PolicyS.h: + * tao/PortableServer/PortableServer.mpc: + * tao/tao.mpc: + Generate the Policy.pidl as part of the build process, prevents + us from doing manual hacks in the generated code + + * tao/AnyTypeCode/PolicyA.h: + * tao/AnyTypeCode/PolicyA.cpp: + * tao/PolicyC.h: + * tao/PolicyC.inl: + * tao/PolicyC.cpp: + * tao/PortableServer/PolicyS.h: + * tao/PortableServer/PolicyS.cpp: + * tao/PortableServer/PolicyS_T.h: + * tao/PortableServer/PolicyS_T.inl: + * tao/PortableServer/PolicyS_T.cpp: + Removed these files. + +Mon Nov 28 08:26:29 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/facet_svth.cpp: + * TAO_IDL/be/be_visitor_component/facet_svts.cpp: + * TAO_IDL/be_include/be_visitor_component/facet_svth.h: + * TAO_IDL/be_include/be_visitor_component/facet_svts.h: + * TAO_IDL/be_include/be_visitor_root/root_svth.h: + Fuzz. + +Sun Nov 27 18:19:18 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + Merging in another set of changes. The skeletons got refactored even + more and now the S.inl files are not generated anymore. For CIAO + we now generate the facet servants in new _svnt_T.{h,cpp} files, which + is the first step in a major refactoring and simplification of the + CCM servants which is also a first step in the direction of a Common + Component Model + + === start changelog === + + Sat Nov 26 11:58:18 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_provides.cpp: + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + Fixed keyword clash regarding c++ keywords. + + Fri Nov 25 13:28:08 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/facet_svth.cpp: + * TAO_IDL/be/be_visitor_component/facet_svts.cpp: + * TAO_IDL/be_include/be_visitor_component/facet_svth.h: + * TAO_IDL/be_include/be_visitor_component/facet_svts.h: + Templated servants for connector were not generated. Fixed this. + + Thu Nov 24 14:23:25 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + Added appropriate ifdefs for including templated source + files. + + * TAO_IDL/be/be_visitor_attribute/attribute.cpp: + Also generate the setters in case templated code, + + Thu Nov 24 12:19:07 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_attribute/attribute.cpp: + Fixed an issues related to the generation of attribute + getter and setter methods. + + Thu Nov 24 11:14:31 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + Don't use the fullname for the included template source. + + Thu Nov 24 10:59:28 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_provides.cpp: + * TAO_IDL/be/be_visitor_operation/operation_svs.cpp: + Included templated source file into the templated header. + Fixed some compile issues related to this. + + Thu Nov 24 07:43:27 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/facet_svth.cpp: + * TAO_IDL/be/be_visitor_component/facet_svts.cpp: + Fixed warnings on windows. + + Thu Nov 24 07:25:47 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + Fixed generation issue in case a component is not part of + module. + + Wed Nov 23 15:07:59 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * MPC/config/taobaseidldefaults.mpb: + Prevent building a second time when make was invoked a + second time. + + Fri Nov 4 15:45:54 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * examples/AMI/FL_Callback/FL_Callback.mpc: + * examples/RTScheduling/Job.mpc: + * examples/RTScheduling/Synch.mpc: + * orbsvcs/orbsvcs/CosConcurrency.mpc: + * orbsvcs/orbsvcs/CosEvent.mpc: + * orbsvcs/orbsvcs/CosLifeCycle.mpc: + * orbsvcs/orbsvcs/CosNaming_Skel.mpc: + * orbsvcs/orbsvcs/CosNotification.mpc: + * orbsvcs/orbsvcs/CosProperty.mpc: + * orbsvcs/orbsvcs/CosTime.mpc: + * orbsvcs/orbsvcs/CosTrading.mpc: + * orbsvcs/orbsvcs/DsEventLogAdmin.mpc: + * orbsvcs/orbsvcs/DsLogAdmin.mpc: + * orbsvcs/orbsvcs/DsNotifyLogAdmin.mpc: + * orbsvcs/orbsvcs/RTEventLogAdmin.mpc: + * orbsvcs/orbsvcs/RTEvent_Skel.mpc: + * orbsvcs/orbsvcs/ec_typed_events_skel.mpb: + * tao/IFR_Client/IFR_Client.mpc: + * tests/Alt_Mapping/alt_mapping.mpc: + * tests/IDL_Inherited_Operation/InheritedOp.mpc: + * tests/Monitor/Marshal_Buffer/marshal_buffer.mpc: + * tests/Param_Test/Param_Test.mpc: + Removed all S.inl entries from the MPC files + + Fri Nov 4 16:17:33 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/tao_idl.1: + * docs/compiler.html: + * docs/tutorials/Quoter/Simple/Client/index.html: + * orbsvcs/tests/Bug_1393_Regression/run_test.pl: + * tests/Bug_3743_Regression/run_test.pl: + Removed references to S.inl files. + + Wed Nov 23 10:17:10 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_provides.cpp: + * TAO_IDL/be/be_visitor_operation/operation_svs.cpp: + * TAO_IDL/be_include/be_visitor_operation/operation_svs.h: + Found a better way whether we need to use a templated + class definition + + Fri Nov 4 16:24:26 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * MPC/config/taobaseidldefaults.mpb: + Don't generate S.inl extensions in the make files. + + Tue Nov 22 15:53:18 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_provides.cpp: + * TAO_IDL/be/be_visitor_component/facet_svth.cpp: + * TAO_IDL/be/be_visitor_component/facet_svts.cpp: + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + * TAO_IDL/be/be_visitor_module/module.cpp: + * TAO_IDL/be/be_visitor_operation/operation_svs.cpp: + * TAO_IDL/be_include/be_visitor_component/facet_svth.h: + * TAO_IDL/be_include/be_visitor_component/facet_svts.h: + * TAO_IDL/be_include/be_visitor_operation/operation_svs.h: + Rename actions and prevented template declarations when not needed. + + Tue Nov 22 10:51:12 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL: + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_produce.cpp: + * TAO_IDL/be/be_util.cpp: + + * TAO_IDL/be/be_visitor_component/component.cpp: + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + + * TAO_IDL/be/be_visitor_interface.cpp: + + * TAO_IDL/be/be_visitor_interface/amh_sh.cpp: + * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: + * TAO_IDL/be/be_visitor_interface/interface.cpp: + * TAO_IDL/be/be_visitor_interface/interface_sh.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + + * TAO_IDL/be/be_visitor_module/module.cpp: + + * TAO_IDL/be/be_visitor_root.cpp: + * TAO_IDL/be/be_visitor_valuetype.cpp: + + * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp: + + * TAO_IDL/be_include/be_codegen.h: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/be_include/be_interface.h: + * TAO_IDL/be_include/be_visitor_interface.h: + + * TAO_IDL/be_include/be_visitor_interface/amh_ss.h: + * TAO_IDL/be_include/be_visitor_interface/interface_ss.h: + + * TAO_IDL/be_include/be_visitor_root.h: + * TAO_IDL/be_include/be_visitor_valuetype.h: + + * TAO_IDL/tao_idl.1: + Merged in skeleton refactoring which now should work, no S.inl + files are generated anymore + + * TAO_IDL/be/be_visitor_interface/interface_si.cpp: + * TAO_IDL/be/be_visitor_root/root_si.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_si.cpp: + * TAO_IDL/be_include/be_visitor_interface/amh_si.h: + * TAO_IDL/be_include/be_visitor_interface/interface_si.h: + * TAO_IDL/be_include/be_visitor_root/root_si.h: + * TAO_IDL/be_include/be_visitor_valuetype/valuetype_si.h: + Removed these files. + + Mon Nov 21 16:48:25 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_provides.cpp: + Removed _get_component method. + + * TAO_IDL/be/be_visitor_operation/operation_svs.cpp: + Added template argument to method declaration. + + Mon Nov 21 15:35:54 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_provides.cpp: + Layout changes in generated code. + + Mon Nov 21 15:21:53 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_provides.cpp: + * TAO_IDL/be/be_visitor_component.cpp: + * TAO_IDL/be/be_visitor_component/executor_exh.cpp: + * TAO_IDL/be/be_visitor_component/facet_svth.cpp: + * TAO_IDL/be/be_visitor_component/facet_svts.cpp: + * TAO_IDL/be/be_visitor_component/servant_svh.cpp: + * TAO_IDL/be_include/be_provides.h: + * TAO_IDL/be_include/be_visitor_component.h: + * TAO_IDL/be_include/be_visitor_component/facet_svth.h: + * TAO_IDL/be_include/be_visitor_component/facet_svts.h: + Template code for header is saved to _svnt_T.h. + + * TAO_IDL/be/be_visitor_component/facet_svh.cpp: + * TAO_IDL/be/be_visitor_component/facet_svs.cpp: + * TAO_IDL/be_include/be_visitor_component/facet_svh.h: + * TAO_IDL/be_include/be_visitor_component/facet_svs.h: + Renamed these files. + + Mon Nov 21 09:17:14 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_visitor_component/component_svh.cpp: + * TAO_IDL/be/be_visitor_component/component_svs.cpp: + * TAO_IDL/be/be_visitor_component/facet_svh.cpp: + * TAO_IDL/be/be_visitor_component/facet_svs.cpp: + * TAO_IDL/be/be_visitor_module/module.cpp: + * TAO_IDL/be_include/be_codegen.h: + * TAO_IDL/be_include/be_helper.h: + * TAO_IDL/be_include/be_visitor_component/facet_svh.h: + * TAO_IDL/be_include/be_visitor_component/facet_svs.h: + Determined the right file to write to (_svnt_T.cpp/h). + + Thu Nov 17 15:55:04 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface/amh_si.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/Messaging/AMH_Skeletons.h: + * tao/Messaging/AMH_Skeletons.cpp: + * tao/PortableServer/Operation_Table.h: + * tao/PortableServer/PolicyS.h: + * tao/PortableServer/PolicyS.cpp: + * tao/PortableServer/Servant_Base.h: + * tao/PortableServer/Servant_Base.cpp: + Changed the third argument of the skel methods from void* to + TAO_ServantBase*. As a result the static_cast in the skeleton + methods has been replaced with a dynamic_cast, something we couldn't + use in the past when we wheren't allowed to use RTTI. + + Thu Nov 17 11:33:52 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Abstract_Servant_Base.h: + synchronous_upcall_dispatch is not needed here + + * tao/PortableServer/PS_ForwardC.h: + Removed LocalServantBase, not part of CORBA anymore + + * tao/PortableServer/Servant_Base.h: + * tao/PortableServer/Servant_Base.cpp: + Start changing void* to TAO_ServantBase* + + * tao/PortableServer/Local_Servant_Base.cpp: + * tao/PortableServer/Local_Servant_Base.inl: + * tao/PortableServer/Local_Servant_Base.h: + Removed these files, not part of the CORBA spec anymore + + Thu Nov 17 10:46:22 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * MPC/config/taobaseidldefaults.mpb: + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_produce.cpp: + * TAO_IDL/be/be_visitor_component/component.cpp: + * TAO_IDL/be/be_visitor_component/facet_svh.cpp: + * TAO_IDL/be/be_visitor_component/facet_svs.cpp: + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + * TAO_IDL/be/be_visitor_module/module.cpp: + * TAO_IDL/be/be_visitor_root.cpp: + * TAO_IDL/be/be_visitor_root/root_svth.cpp: + * TAO_IDL/be/be_visitor_root/root_svts.cpp: + * TAO_IDL/be_include/be_codegen.h: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/be_include/be_visitor_root.h: + * TAO_IDL/be_include/be_visitor_root/root_svth.h: + * TAO_IDL/be_include/be_visitor_root/root_svts.h: + The IDL compileren doesn't generated the facet servants + in the _svnt.cpp/h files. + The IDL compiler now uses the template facet servant + implementation (which still need to be generated) + in the _svnt.cpp file. + The IDL compiler now creates the _svnt_T.cpp/h files and + initialize them. + + === end changelog === + +Thu Nov 24 08:33:42 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Mixed_Sync_ASync_Events/main.cpp: + * tests/Mixed_Sync_ASync_Events/test_i.cpp: + + Fixed OpenVMS build errors. + +Wed Nov 23 14:37:02 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * MPC/config/taobaseidldefaults.mpb: + * MPC/modules/IDLHelper.pm: + + Moved addition of generated executor files (-Gex) from + taobaseidldefaults.mpb to IDLHelper.pm to be able to + correctly and transparently handle -oE and -oN switches. + +Tue Nov 22 12:46:00 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Bug_3531b_Regression/server.cpp: + + Fix ST build errors. + +Mon Nov 21 11:59:40 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Upcall_Wrapper.h: + Fixed gcc warnings + +Mon Nov 21 08:37:38 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Mixed_Sync_ASync_Events/test_i.h: + * tests/Mixed_Sync_ASync_Events/test_i.cpp: + New attempt to silence some compiler warnings. + +Sun Nov 20 19:22:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Abstract_Servant_Base.h: + * tao/PortableServer/Operation_Table.h: + * tao/ServerRequestInterceptor_Adapter.h: + Fixed gcc warnings + +Sun Nov 20 19:16:59 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Skeleton_Inheritance/skel_inheritance.mpc: + Fixed windows link errors + +Thu Nov 17 17:15:35 UTC 2011 Trevor Fields <fields_t@ociweb.com> + + * bin/tao_other_tests.lst: + + Added orbsvcs/tests/Security/MT_BiDir_SSL test. + +Thu Nov 17 11:30:59 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/ForwardUponObjectNotExist/client.cpp: + First shutdown the ORB before destroying it + +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: + * orbsvcs/tests/Security/MT_BiDir_SSL/client.conf: + * orbsvcs/tests/Security/MT_BiDir_SSL/client.conf.xml: + * orbsvcs/tests/Security/MT_BiDir_SSL/client.cpp: + * orbsvcs/tests/Security/MT_BiDir_SSL/Client_Task.cpp: + * orbsvcs/tests/Security/MT_BiDir_SSL/Client_Task.h: + * orbsvcs/tests/Security/MT_BiDir_SSL/MT_BiDir_SSL.mpc: + * orbsvcs/tests/Security/MT_BiDir_SSL/README: + * orbsvcs/tests/Security/MT_BiDir_SSL/Receiver.idl: + * orbsvcs/tests/Security/MT_BiDir_SSL/Receiver_i.cpp: + * orbsvcs/tests/Security/MT_BiDir_SSL/Receiver_i.h: + * orbsvcs/tests/Security/MT_BiDir_SSL/run_test.pl: + * orbsvcs/tests/Security/MT_BiDir_SSL/Sender.idl: + * orbsvcs/tests/Security/MT_BiDir_SSL/Sender_i.cpp: + * orbsvcs/tests/Security/MT_BiDir_SSL/Sender_i.h: + * orbsvcs/tests/Security/MT_BiDir_SSL/server.conf: + * orbsvcs/tests/Security/MT_BiDir_SSL/server.conf.xml: + * orbsvcs/tests/Security/MT_BiDir_SSL/server.cpp: + * orbsvcs/tests/Security/MT_BiDir_SSL/Server_Task.cpp: + * orbsvcs/tests/Security/MT_BiDir_SSL/Server_Task.h: + * orbsvcs/tests/Security/MT_BiDir_SSL/ssl: + * orbsvcs/tests/Security/MT_BiDir_SSL/ssl/ca.pem: + * orbsvcs/tests/Security/MT_BiDir_SSL/ssl/client-cert.pem: + * orbsvcs/tests/Security/MT_BiDir_SSL/ssl/client-key.pem: + * orbsvcs/tests/Security/MT_BiDir_SSL/ssl/make-client-keys: + * orbsvcs/tests/Security/MT_BiDir_SSL/ssl/server-cert.pem: + * orbsvcs/tests/Security/MT_BiDir_SSL/ssl/server-key.pem: + + Test for SSLIOP creating connections to exceed the + ORBMuxedConnectionMax setting. + +Tue Nov 15 22:13:12 UTC 2011 Trevor Fields <fields_t@ociweb.com> + + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp: + + Check whether creating a new connection exceeds the + ORBMuxedConnectionMax setting. + +Tue Nov 15 15:43:31 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Bug_3531b_Regression/server.cpp: + Fixed ST build compile error. + + * tests/Mixed_Sync_ASync_Events/test_i.cpp: + Trying to silence strict aliasing warnings. + +Tue Nov 15 08:23:08 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * NEWS: + * docs/Options.html: + + Updated for RW & EXCLUSIVE changes. + +Mon Nov 14 09:22:08 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Mixed_Sync_ASync_Events/MixedSyncASyncEvents.mpc: + * tests/Mixed_Sync_ASync_Events/main.cpp: + * tests/Mixed_Sync_ASync_Events/test.idl: + * tests/Mixed_Sync_ASync_Events/test_i.cpp: + + Fuzz fixes. + +Mon Nov 14 06:39:28 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.cpp: + + Fixed unused arguments. + +Sun Nov 13 21:40:34 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.cpp: + + Fixed signature for virtual override. + + * tests/Mixed_Sync_ASync_Events/main.cpp: + + Fixed WChar build error. + +Sun Nov 13 12:00:36 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Mixed_Sync_ASync_Events/test_i.cpp: + + Extended test. + +Sun Nov 13 11:31:21 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Mixed_Sync_ASync_Events/main.cpp: + * tests/Mixed_Sync_ASync_Events/test_i.h: + * tests/Mixed_Sync_ASync_Events/test_i.cpp: + + Fixed more Win32 warnings and compile errors :-( + +Sun Nov 13 11:03:23 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Mixed_Sync_ASync_Events/main.cpp: + * tests/Mixed_Sync_ASync_Events/test.idl: + * tests/Mixed_Sync_ASync_Events/test_i.h: + * tests/Mixed_Sync_ASync_Events/test_i.cpp: + + Fixed Win32 compiler errors. + +Sat Nov 12 10:41:33 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h: + + Fixed compile errors because of core changes from branch merge. + +Fri Nov 11 11:22:13 UTC 2011 Martin Corino <mcorino@remedy.nl> + + Merged rw_block_strategy branch. + + === start changelog === + + Thu Nov 10 08:04:29 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * TAO/tests/Bug_3531b_Regression/server.cpp: + + Fixed compiler error due to core changes. + + Wed Nov 9 08:24:29 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Mixed_Sync_ASync_Events/MixedSyncASyncEvents.mpc: + * tests/Mixed_Sync_ASync_Events/main.cpp: + * tests/Mixed_Sync_ASync_Events/run_test.pl: + * tests/Mixed_Sync_ASync_Events/test.idl: + * tests/Mixed_Sync_ASync_Events/test_i.cpp: + * tests/Mixed_Sync_ASync_Events/test_i.h: + + Added new regression test mixing Synch requests with + Asynch (AMI) and timer and notification events in a + (semi) random order. + + * tests/Mixed_Sync_ASync_Events/exclusive_rw.conf: + * tests/Mixed_Sync_ASync_Events/exclusive_rw.conf.xml: + * tests/Mixed_Sync_ASync_Events/run_exclusive_rw.pl: + + Config and script to run the new test in full blocking + mode (RW, Exclusive TMS, blocking connect and flushing). + + * bin/tao_orb_tests.lst: + + Added new regression tests. + + Tue Nov 8 11:50:29 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/AMI/client.cpp: + * tests/AMI/exclusive_rw.conf: + * tests/AMI/exclusive_rw.conf.xml: + * tests/AMI/run_exclusive_rw.pl: + + Adedd test variant for full blocking configuration + (RW + EXCLUSIVE TMS + blocking connect and flushing) + + Sun Nov 6 18:08:29 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tao/CDR.cpp: + * tao/Exclusive_TMS.cpp: + * tao/GIOP_Message_Base.cpp: + * tao/IIOP_Transport.h: + * tao/LocateRequest_Invocation.cpp: + * tao/Message_Semantics.h: + * tao/Messaging/AMH_Response_Handler.cpp: + * tao/Messaging/Asynch_Invocation.cpp: + * tao/Strategies/COIOP_Transport.h: + * tao/Strategies/DIOP_Transport.h: + * tao/Strategies/SCIOP_Transport.h: + * tao/Strategies/SHMIOP_Transport.h: + * tao/Strategies/UIOP_Transport.h: + * tao/Synch_Invocation.cpp: + * tao/TAO_Server_Request.cpp: + * tao/Transport.cpp: + * tao/Transport.h: + * tao/Wait_On_Leader_Follower.cpp: + * tao/Wait_On_Leader_Follower.h: + * tao/Wait_On_Read.cpp: + * tao/Wait_On_Read.h: + * tao/Wait_Strategy.cpp: + * tao/Wait_Strategy.h: + + Changes to make the RW client wait strategy (in combination with + the Exclusive transport muxing strategy) play nice with AMI. + The essence of the problem of RW not working with AMI was that + AMI requires transports to be registered with the reactor (so + reply events can be handled) which is what RW prevented for all + client transports. + The changes provide a means for RW to recognize transports for + Async client requests and register these with the reactor just + before sending the request and removing them from the reactor + again when the request has finished (reply received, timed out + or disconnected). + + Sun Nov 6 11:54:29 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/AMI/simple_client.cpp: + + Extended test. + + Sun Nov 6 11:42:29 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tao/default_client.cpp: + * tao/default_resource.cpp: + + Add support for additional compiletime selection macros + for Client Wait strategy, Client connect strategy, + TMS strategy and flushing strategy. + + Fri Nov 4 22:0:29 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tao/Exclusive_TMS.cpp: + * tao/Messaging/Asynch_Invocation.cpp: + * tao/Messaging/Asynch_Reply_Dispatcher.cpp: + + Fixed to allow use of Exclusive TMS with AMI requests. + + === end changelog === + +Wed Nov 9 13:34:13 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> + + * utils/logWalker/Log.cpp: + + Fix compile-time warning. + +Wed Nov 9 10:25:09 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Bug_3768_Regression/TestCallback.cpp: + * tests/Bug_3768_Regression/server.cpp: + + Cleaned up test to behave more properly to fix segfaults + and other failures. + +Tue Nov 8 19:11:46 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/ImplRepo_Service/ImR_Activator.idl: + * orbsvcs/ImplRepo_Service/ImR_Locator.idl: + * orbsvcs/ImplRepo_Service/ImR_Locator_i.h: + * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp: + * orbsvcs/ImplRepo_Service/Locator_Options.h: + * orbsvcs/ImplRepo_Service/Locator_Repository.h: + * orbsvcs/ImplRepo_Service/Locator_Repository.cpp: + * orbsvcs/ImplRepo_Service/Server_Info.cpp: + * orbsvcs/ImplRepo_Service/tao_imr_i.cpp: + Doxygen and unicode improvements + +Mon Nov 7 22:07:18 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> + + * utils/logWalker/HostProcess.h: + * utils/logWalker/HostProcess.cpp: + * utils/logWalker/Invocation.cpp: + * utils/logWalker/Log.h: + * utils/logWalker/Log.cpp: + * utils/logWalker/PeerProcess.cpp: + * utils/logWalker/Session.h: + * utils/logWalker/Session.cpp: + * utils/logWalker/logWalker.cpp: + + Added basic support for tracking SSLIOP connections. Fixed some + memory leak issues reported by valgrind. Added a new date format + selector to accommodate two different time/date formats used by + -ORBVerboseLogging 1. + +Mon Nov 07 10:31:14 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * docs/compilet.html: + Add option -oE and -oN . + +Mon Nov 07 10:10:14 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_produce.cpp: + * TAO_IDL/be/be_util.cpp: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/be_include/be_util.h: + Add option -oE: Output directory for the generated CIAO executor files + and option -oN for not overwrite CIAO executor files. + +Sat Nov 05 18:18:13 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Bug_3531b_Regression/server.cpp: + Fixed WChar build problems. + +Fri Nov 4 07:28:29 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/Options.html: + Extended documentation for ORBWaitStrategy mt_noupcall + +Thu Nov 03 09:51:13 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + Fixed error in previous commit + +Thu Nov 03 08:45:13 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Bug_3531b_Regression/server.cpp: + Fixed compile warning on Solaris10 build. + +Wed Nov 02 13:30:13 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + Put narrow in var, use ACE_NEW with CIAO_FACET + + +Wed Nov 02 08:30:13 UTC 2011 Martin Corino <mcorino@remedy.nl> + + Merged changes from Remedy work branch. + + === start changelog === + + Tue Nov 1 14:29:07 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/executor_exs.cpp: + Fixed link issues on windows. + + Tue Nov 1 12:52:03 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/component_ex_idl.cpp: + * TAO_IDL/be/be_visitor_component/component_exh.cpp: + * TAO_IDL/be/be_visitor_component/executor_exh.cpp: + * TAO_IDL/be/be_visitor_component/executor_exs.cpp: + Reverted a few of my last changes. An derived executor + is not directly derived from its base anymore (on + executor IDL level as well as on implementation level). + + Mon Oct 31 15:14:05 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_type.cpp: + Fixed new line. + + Fri Oct 28 11:22:03 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Bug_3768_Regression/TestCallback.cpp: + * tests/Bug_3768_Regression/TestServer.cpp: + * tests/Bug_3768_Regression/client.cpp: + * tests/Bug_3768_Regression/server.cpp: + Fuzz. + + Fri Oct 28 10:35:06 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Bug_3531b_Regression/server.cpp: + + Fix for Windoze runtime problem with TSS. + + Fri Oct 28 10:22:48 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_array.cpp: + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_component.cpp: + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_type.cpp: + * TAO_IDL/be/be_visitor_array/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_array/array_ch.cpp: + * TAO_IDL/be/be_visitor_array/array_cs.cpp: + * TAO_IDL/be/be_visitor_component/servant_svh.cpp: + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: + * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_exception/exception_ch.cpp: + * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: + * TAO_IDL/be/be_visitor_interface/amh_rh_ss.cpp: + * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: + * TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ih.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + * TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp: + * TAO_IDL/be/be_visitor_operation/amh_rh_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/ami_handler_reply_stub_operation_cs.cpp: + * TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp: + * TAO_IDL/be/be_visitor_operation/operation_ch.cpp: + * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: + * TAO_IDL/be/be_visitor_operation/tie_ss.cpp: + * TAO_IDL/be/be_visitor_root/root_ch.cpp: + * TAO_IDL/be/be_visitor_root/root_sth.cpp: + * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp: + * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/structure_cs.cpp: + * TAO_IDL/be/be_visitor_template_export.cpp: + * TAO_IDL/be/be_visitor_typedef/typedef_ci.cpp: + * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_union/discriminant_ci.cpp: + * TAO_IDL/be/be_visitor_union_branch/public_ci.cpp: + * TAO_IDL/be/be_visitor_valuebox/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_ci.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/field_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_init_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_ss.cpp: + Reduced whitespaces in generated code. + + * TAO_IDL/be/be_visitor_interface/tie_ss.cpp: + Removed tabs from generated code. + + + Fri Oct 28 09:23:52 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tests/Bug_3531b_Regression/server.cpp: + + Fix for Windoze compile problem. + + Fri Oct 28 07:36:43 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/executor_exh.cpp: + * TAO_IDL/be/be_visitor_component/executor_exs.cpp: + * TAO_IDL/be/be_visitor_component/executor_private_exh.cpp: + * TAO_IDL/be/be_visitor_component/facet_exh.cpp: + * TAO_IDL/be/be_visitor_component/facet_exs.cpp: + Fixed compile issues. + + Thu Oct 27 08:05:28 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/executor_exh.cpp: + * TAO_IDL/be/be_visitor_component/executor_exs.cpp: + Removed the overrides of _is_a, marshal and _repository_id since + these methods are not needed anymore. + + Wed Oct 26 13:38:02 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/component_ex_idl.cpp: + * TAO_IDL/be/be_visitor_component/component_exh.cpp: + * TAO_IDL/be/be_visitor_component/component_exs.cpp: + * TAO_IDL/be/be_visitor_component/executor_exh.cpp: + * TAO_IDL/be/be_visitor_component/executor_exs.cpp: + * TAO_IDL/be/be_visitor_component/executor_exs_attr_init.cpp: + * TAO_IDL/be/be_visitor_component/executor_private_exh.cpp: + * TAO_IDL/be/be_visitor_component/facet_exh.cpp: + * TAO_IDL/be/be_visitor_component/facet_exs.cpp: + Fixed issues regarding derived components. Derived component + were not derived from the base implementation. Instead of deriving + from the base implementation, a whole new base executor was + generated and still wasn't derived from this. Now there's + one base implementation where the derived executor is derived from. + + * TAO_IDL/be/be_visitor_component/executor_ex_idl.cpp: + Fixed compile issues when a derived interface supports + another interface. + + Mon Oct 24 11:50:33 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tao/Connection_Handler.cpp: + * tao/Leader_Follower.h: + * tao/Leader_Follower.inl: + * tao/Leader_Follower.cpp: + * tao/Wait_On_LF_No_Upcall.h: + * tao/Wait_On_LF_No_Upcall.cpp: + * tao/Wait_On_Leader_Follower.h: + * tao/Wait_Strategy.h: + * tao/Wait_Strategy.cpp: + + Implemented a solution for two known problems: + a) deadlocking possibility because of upcall handling + in client leader threads without abdicating + leadership + b) inefficient handling of nested upcalls in + client leader threads in case MT_NOUPCALL + strategy + This solution implements leadership abdication + (as also proposed by Russell Mora in Bugzilla #3531 + and David Kinder in Bugzilla #3768) when a client + leader thread receives an upcall (triggering a + call to Leader_Follower::set_upcall_thread) so + any waiting (regular) leader thread could now + take over. Futhermore leader abdication for client + leader threads is also implemented in case an event + causes a client leader thread to wake up and it detects + leader threads waiting which are capable to take over + leadership. + With this out of the way the solution for MT_NOUPCALL + could now be optimized with a 'handle deferring' + mechanism which allows a client leader thread to + temporarily defer an upcall until the client leader + thread has abdicated and leadership switches (which + should happen almost immediately after the client + leader thread deferred the upcall handle(r)). + + * tao/Resume_Handle_Deferred.h: + * tao/Resume_Handle_Deferred.cpp: + + Removed these files. Part of previous, non-optimal, + MT_NOUPCALL solution. + + * tao/tao.mpc: + + Removed Resume_Handle_Deferred.{h,cpp} + + * tests/Bug_3531b_Regression/Bug_3531b_Regression.mpc: + * tests/Bug_3531b_Regression/server.cpp: + + Fixed compile problems due to TAO version + incompatibilities and removed dummy_label + restriction. + + * tests/Bug_3768_Regression: + * tests/Bug_3768_Regression/Bug_3768_Test.mpc: + * tests/Bug_3768_Regression/Test.idl: + * tests/Bug_3768_Regression/TestCallback.h: + * tests/Bug_3768_Regression/TestCallback.cpp: + * tests/Bug_3768_Regression/TestServer.h: + * tests/Bug_3768_Regression/TestServer.cpp: + * tests/Bug_3768_Regression/client.cpp: + * tests/Bug_3768_Regression/run_test.pl: + * tests/Bug_3768_Regression/server.cpp: + + Added new test for Bugzilla #3768. + + * bin/tao_orb_tests.lst + + Added Bug_3531_Regression, Bug_3531b_Regression and + Bug_3768_Regression to regular test runs. + + === end changelog === + +Tue Nov 01 14:34:13 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + * On_Demand_Act_Direct_Coll/Collocated_Test.cpp: + * On_Demand_Act_Direct_Coll/test_i.cpp: + * On_Demand_Act_Direct_Coll/test_i.h: + * On_Demand_Act_Direct_Coll/Client_Task.cpp: + * On_Demand_Act_Direct_Coll/test.idl: + Clean up test. + + +Tue Nov 01 10:54:13 UTC 2011 Martin Corino <mcorino@remedy.nl> + + Merged changes from Remedy SA work branch. + + === start changelog === + + Mon Oct 31 13:14:04 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + Add safe_servant_base in CIAO consumers servant + + + Fri Oct 28 11:37:40 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + Changes for removing activators for CIAO consumers + + Wed Oct 26 07:18:40 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + Remove include files for ciao servant- and port_activator. + + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + Changes for removing activators in CIAO + + === end changelog === + +Thu Oct 27 16:16:09 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> + + * utils/logWalker/HostProcess.h: + * utils/logWalker/HostProcess.cpp: + * utils/logWalker/Log.cpp: + + Clean up treatment of connection closure and reuse of handles. + +Thu Oct 27 12:13:40 UTC 2011 Simon Massey <sma at prismtech dot com> + + * tao/PI_Server/PI_Server_include.pidl: + Was duplicating the tao/PortableServer/PortableServer_include.pidl + #define guard name. + +Tue Oct 25 08:10:00 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * tests/POA/On_Demand_Act_Direct_Coll/Client_Task.cpp: + Solved error in destroying the orb. + +Fri Oct 21 14:44:28 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IORManipulation/IORManipulation.mpc: + * tao/IORTable/IORTable.mpc: + * tao/ZIOP/ZIOP.mpc: + Generate export files as part of the build + + * tao/IORManipulation/ior_manip_export.h: + * tao/IORTable/iortable_export.h: + * tao/ZIOP/ziop_export.h: + Removed these files. + + * tao/ZIOP/ZIOP.h: + Doxygen fix + +Thu Oct 20 17:34:00 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/POA/On_Demand_Act_Direct_Coll/On_Demand_Act_D_Coll.mpc: + Don't build this test with minimum corba and CORBA/e + +Thu Oct 20 12:50:09 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be_include/be_interface.h: + Fixed gcc warning + +Tue Oct 20 09:30:13 UTC 2011 Martin Corino <mcorino@remedy.nl> + + Merged changes from Remedy work branch. + + === start changelog === + + Thu Oct 20 08:42:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + + * On_Demand_Act_Direct_Coll: + * On_Demand_Act_Direct_Coll/Collocated_Test.cpp: + * On_Demand_Act_Direct_Coll/Servant_Activator.cpp: + * On_Demand_Act_Direct_Coll/test_i.cpp: + * On_Demand_Act_Direct_Coll/Server_Task.h: + * On_Demand_Act_Direct_Coll/run_test.pl: + * On_Demand_Act_Direct_Coll/test_i.h: + * On_Demand_Act_Direct_Coll/Client_Task.cpp: + * On_Demand_Act_Direct_Coll/Server_Task.cpp: + * On_Demand_Act_Direct_Coll/Servant_Activator.h: + * On_Demand_Act_Direct_Coll/Client_Task.h: + * On_Demand_Act_Direct_Coll/On_Demand_Act_D_Coll.mpc: + * On_Demand_Act_Direct_Coll/test.idl: + Test with Servant Activator and thru_poa- and direct collocation. + + * bin/tao_orb_tests.lst + Added On_Demand_Act_Direct_Coll test. + + + Wed Oct 19 14:15:57 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * docs/tutorials/Quoter/RTCORBA/Broker.cpp: + * docs/tutorials/Quoter/RTCORBA/docs/distributor.html: + Fixed typos. + + * orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.h: + Fixed typo. + + * orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.cpp: + ++x instead of x++; + + Tue Oct 18 13:47:54 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/context_svh.cpp: + * TAO_IDL/be/be_visitor_component/context_svs.cpp: + Reverted last changes. Need a more robust implementation to + fix re-entrancy + + Tue Oct 18 11:35:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: + Layout changes to the generated code + + Tue Oct 18 10:51:21 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/context_svh.cpp: + * TAO_IDL/be/be_visitor_component/context_svs.cpp: + Using recursive mutexes instead of normal mutexes. + + Tue Oct 18 10:39:23 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/context_svs.cpp: + Fixed a minor indentation issue. + + Tue Oct 18 10:03:32 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_component/servant_svs.cpp: + Using the container_ variable in a thread safe way. + + Tue Oct 18 07:01:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + * tests/Collocated_DerivedIF/Collocated_DerivedIF.mpc: + Changes for duplicate project names. + + Mon Oct 17 13:08:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + * tests/Collocated_DerivedIF: + * tests/Collocated_DerivedIF/Client_Task.h: + * tests/Collocated_DerivedIF/Client_Task.cpp: + * tests/Collocated_DerivedIF/Collocated_DerivedIF.mpc: + * tests/Collocated_DerivedIF/Collocated_Test.cpp: + * tests/Collocated_DerivedIF/Hello.h: + * tests/Collocated_DerivedIF/Hello.cpp: + * tests/Collocated_DerivedIF/Server_Task.h: + * tests/Collocated_DerivedIF/Server_Task.cpp: + * tests/Collocated_DerivedIF/Test.idl: + * tests/Collocated_DerivedIFl/run_test.pl: + * tests/Collocated_DerivedIFl/README: + Test for -ORBCollocationStrategy direct and interface inheritance + + * tests/Collocated_Best/README: + Add ID + + Mon Oct 17 12:33:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + * docs/Options.html + Added new define TAO_DEFAULT_COLLOCATION_STRATEGY . + + Mon Oct 17 11:41:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + * docs/Options.html + Add new ORBCollocationStrategy best . + + Thu Oct 13 12:57:25 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be_include/be_valuetype.h: + * TAO_IDL/be/be_valuetype.cpp: + Removed gen_skel_helper from here, not used at all + + * orbsvcs/tests/Notify/lib/Options_Parser.cpp: + Fixed compile error with gcc 4.6 + + Thu Oct 13 12:14:00 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface/amh_si.cpp: + static_cast seems to be required, not sure why, reverting this part + to get our branch build green again + + Thu Oct 13 11:15:06 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/Any_Impl.cpp: + Layout changes + + * tao/LocalObject.cpp: + * tao/Object.cpp: + Log an error before throwing a NO_IMPLEMENT system exception + + Thu Oct 13 07:15:34 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface/amh_si.cpp: + Further reduction of code being generated in case of interface + inheritance + + Thu Oct 13 06:46:25 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + Fixed problem with num_args that still was generated for arguments + + Wed Oct 12 14:14:32 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface/interface_si.cpp: + Changed indentation and removed not needed static cast in the + generated code + + Wed Oct 12 12:06:33 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + * tests/Collocated_NoColl: + * tests/Collocated_NoColl/Client_Task.h: + * tests/Collocated_NoColl/Client_Task.cpp: + * tests/Collocated_NoColl/Collocated_NoColl.mpc: + * tests/Collocated_NoColl/Collocated_Test.cpp: + * tests/Collocated_NoColl/Hello.h: + * tests/Collocated_NoColl/Hello.cpp: + * tests/Collocated_NoColl/Server_Task.h: + * tests/Collocated_NoColl/Server_Task.cpp: + * tests/Collocated_NoColl/Test.idl: + * tests/Collocated_NoColl/run_test.pl: + Test for -ORBCollocation NO + + + Wed Oct 12 12:02:04 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Collocation_Strategy.h: + * tao/Invocation_Adapter.cpp: + Print the collocation strategy that we have determined + + * tests/Hello/run_test.pl: + Added -cdebug that enables ORBDebugLevel 10 for the client + + Wed Oct 12 10:09:25 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp: + * TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp: + * tao/Abstract_Servant_Base.h: + * tao/PortableServer/Direct_Collocation_Upcall_Wrapper.cpp: + * tao/PortableServer/Operation_Table.h: + Removed the num_args argument for the direct collocation skeleton + functions because it was not used at all + + Wed Oct 12 09:55:38 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + * tao/Object_T.h: + * tao/Object_T.cpp: + * tao/PolicyC.cpp: + * tao/Valuetype/AbstractBase_T.h: + * tao/Valuetype/AbstractBase_T.cpp: + unchecked_narrow method was available with and without repository_id + argument but that wasn't used at all. merged both methods into one + and updated tao_idl code generation to not generate the repository_id + anymore + + Wed Oct 12 09:01:19 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: + * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + * tao/Object_T.h: + * tao/Object_T.cpp: + * tao/PolicyC.cpp: + * tao/PortableServer/PolicyS.cpp: + * tao/Valuetype/AbstractBase_T.h: + * tao/Valuetype/AbstractBase_T.cpp: + Removed the collocation opportunity from the narrow calls, the + boolean collocated only means whether the servant is collocated or + not and shouldn't include the fact whether we have a collocation + opportunity or not + + Tue Oct 11 17:38:06 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Collocated_Best/Collocated_Best_Direct/Client_Task.cpp: + * tests/Collocated_Best/Collocated_Best_NoColl/Client_Task.cpp: + * tests/Collocated_Best/Collocated_Best_ThuP/Client_Task.cpp: + Also check the string that returned + + Tue Oct 11 10:53:17 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Object_T.cpp: + Don't use collocation opportunity, just determine whether the + object is collocated or not. If this doesn't break any tests, we + need to do some more cleanup here + + Tue Oct 11 10:41:02 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/CORBANAME_Parser.cpp: + * tao/Remote_Object_Proxy_Broker.cpp: + Enable through poa collocation by default + + Tue Oct 11 07:17:47 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + Layout changes and just always generate the orb optimize flags + + Mon Oct 10 17:43:50 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IIOP_Connector.cpp: + * tao/Invocation_Adapter.h: + * tao/Invocation_Adapter.cpp: + * tao/ORB_Core.h: + * tao/ORB_Core.cpp: + Moved collocation_strategy from the orb core to the invocation adapter + + * tests/Collocated_ThruP_Sp/Collocated_Test.cpp: + * tests/Collocated_ThruP_Sp/README: + * tests/Collocated_ThruP_Sp/Server_Task.cpp: + * tests/Collocated_ThruP_Sp/run_test.pl: + * tests/Collocated_ThruP_Sp_Gd/README: + * tests/Collocated_ThruP_Sp_Gd/run_test.pl: + Add -debug to the script, layout changes, missing Id + + Fri Oct 7 10:54:09 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB_Core.cpp: + Tweaked collocation strategy a little bit more, for direct we need + a servant, not for poa. If we are not collocated, we just go remote and + not give an exception + + Fri Oct 7 09:17:36 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + Layout change to generated code + + * tao/Invocation_Adapter.cpp: + Removed the check that servant != 0 before being able to invoke + collocated, collocation opportunities test shows a case where this + happens + + * tao/ORB_Core.cpp: + Added logging before we throw an exception related to collocation + mis configuration. If we are collocated with best opportunity without + any opportunity we default to remote instead of having an exception. + Through poa seems possible without a servant pointer + + Thu Oct 6 09:34:57 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * tao/DynamicInterface/DII_Invocation_Adapter.cpp: + Set collocation_opportunity to TAO_CO_THRU_POA_STRATEGY instead of 0. + + Thu Oct 6 08:56:57 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc: + * orbsvcs/examples/RtEC/IIOPGateway/RtEC_IIOPGateway.mpc: + * tests/Oneway_Buffering/Oneway_Buffering.mpc: + * tests/Policies/Policies.mpc: + requires for corba_messaging is already pulled in through the + base projects + + Wed Oct 5 18:49:30 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: + * TAO_IDL/be/be_visitor_root/root_ch.cpp: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/be_include/be_interface.h: + * TAO_IDL/be_include/be_visitor_root/root_ch.h: + Even more cleanup of old stuff + + Wed Oct 5 18:42:43 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_home.cpp: + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: + * TAO_IDL/be_include/be_interface.h: + * TAO_IDL/be/be_visitor_operation/base_proxy_impl_ch.cpp: + * TAO_IDL/be/be_visitor_operation/remote_proxy_impl_cs.cpp: + More cleanup + + * TAO_IDL/be_include/be_visitor_operation/base_proxy_impl_ch.h: + * TAO_IDL/be_include/be_visitor_operation/remote_proxy_impl_cs.h: + Removed these files. + + Wed Oct 5 18:34:21 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_home.cpp: + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: + * TAO_IDL/be_include/be_interface.h: + Cleanup of very old stuff + + * TAO_IDL/be/be_visitor_operation/ami_cs.cpp: + Fixed cpb + + * tao/Valuetype/AbstractBase_T.h: + * tao/Valuetype/AbstractBase_T.cpp: + Updated for changes below + + * tests/CSD_Collocation/svc.conf.csd: + Removed deprecated arguments + + Wed Oct 5 13:01:20 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + + * tests/Collocated_Best/README + * tests/Collocated_ThruP_Sp/README + * tests/Collocated_ThruP_Sp_Gd/README + * tests/Bug_2241_Regression/README + Add README's + + * bin/tao_orb_tests.lst + Added Collocated_ThruP_Sp_Gd test. + + Wed Oct 5 12:41:20 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + + * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: + * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + * TAO_IDL/be/be_visitor_operation/operation.cpp: + * tao/PolicyC.cpp: + * tao/Collocation_Strategy.h: + * tao/PortableServer/PolicyS.cpp: + Change define TAO_CO_DIRECT_POA,remove POA + + * tao/DynamicInterface/DII_Invocation_Adapter.h: + * tao/DynamicInterface/DII_Invocation_Adapter.cpp: + * tao/Messaging/Asynch_Invocation_Adapter.h: + * tao/Messaging/Asynch_Invocation_Adapter.cpp: + * tao/Valuetype/AbstractBase_Invocation_Adapter.h: + * tao/Valuetype/AbstractBase_Invocation_Adapter.cpp: + Change proxybroker for collocation opertunities + + * tao/ORB_Core.cpp: + * tao/Invocation_Adapter.cpp: + Extended collocation_strategy with opertunities + Handling of BEST strategy and checking other strategies. + + * tests/Collocated_Best/Collocated_Best_Direct/run_test.pl: + + + + Wed Oct 5 08:35:20 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_component.cpp: + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_interface.cpp: + * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: + * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ci.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.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/ami_cs.cpp: + * TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp: + * TAO_IDL/be/be_visitor_operation/operation.cpp: + * TAO_IDL/be/be_visitor_root/root_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_sh.cpp: + * TAO_IDL/be_include/be_component.h: + * TAO_IDL/be_include/be_interface.h: + * TAO_IDL/be_include/be_visitor_interface.h: + * tao/Abstract_Servant_Base.h: + * tao/Collocated_Invocation.h: + * tao/Collocated_Invocation.cpp: + * tao/Collocation_Strategy.h: + * tao/Invocation_Adapter.h: + * tao/Invocation_Adapter.inl: + * tao/Invocation_Adapter.cpp: + * tao/ORB_Core.h: + * tao/ORB_Core.cpp: + * tao/Object.h: + * tao/Object.cpp: + * tao/Object_T.h: + * tao/Object_T.cpp: + * tao/PolicyC.h: + * tao/PolicyC.inl: + * tao/PolicyC.cpp: + * tao/PortableServer/Direct_Collocation_Upcall_Wrapper.h: + * tao/PortableServer/PolicyS.h: + * tao/PortableServer/PolicyS.cpp: + * tao/PortableServer/Servant_Base.h: + * tao/PortableServer/Servant_Base.cpp: + * tao/tao.mpc: + Rough reimplementatin of handling of collocated call. A pre condition + for using collocation is having a servant pointer. The core of TAO + also couldn't detect whether through poa collocation is requested + without having -Gp being enabled. The collocated proxy broker (cpb) + was only used for direct collocation, but didn't contain any interface + specific code. TAO_IDL now generated a collocation opportunity to + indicate which support it did generate, when the core than has + a servant pointer it can determine which opportunities it has an + what is requested. + + As side effect we get smaller generated code, less complexity, and + better performance + + This has to be finished but committing it right now. + + * TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp: + * TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp: + * TAO_IDL/be_include/be_visitor_interface/strategized_proxy_broker_sh.h: + * TAO_IDL/be_include/be_visitor_interface/strategized_proxy_broker_ss.h: + * tao/Collocation_Proxy_Broker.h: + * tao/Collocation_Proxy_Broker.cpp: + Removed these files. + + Wed Oct 5 07:15:46 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + + * tao/PortableServer/Collocated_Object_Proxy_Broker.cpp: + Add prefix TAO_COLLOCATION_ to Collocated strategy Thru_POA + + Tue Oct 4 16:36:46 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + Clean up debug text + + * tao/Invocation_Adapter.cpp: + * tao/ORB_Core.h: + * tao/ORB_Core.cpp: + Change Exception for collocated errors. + Add prefix TAO_COLLOCATION_ to Collocated strategies DIrect, Best and Thru_POA + Add TAO_DEFAULT_COLLOCATION_STRATEGY + + * tao/orbconf.h: + Add TAO_DEFAULT_COLLOCATION_STRATEGY + + * tests/Bug_2241_Regression/run_test.pl: + * tests/Collocated_Best/Collocated_Best_Direct/Collocated_Best_Direct.mpc: + * tests/Collocated_Best/Collocated_Best_NoColl/Hello.cpp: + * tests/Collocated_Best/Collocated_Best_ThuP/Collocated_Best_ThruP.mpc: + + * tests/Collocated_ThruP_Sp_Gd: + * tests/Collocated_ThruP_Sp_Gd/Client_Task.h: + * tests/Collocated_ThruP_Sp_Gd/Client_Task.cpp: + * tests/Collocated_ThruP_Sp_Gd/Collocated_Test.cpp: + * tests/Collocated_ThruP_Sp_Gd/Collocated_ThruP_Sp_Gd.mpc: + * tests/Collocated_ThruP_Sp_Gd/Hello.h: + * tests/Collocated_ThruP_Sp_Gd/Hello.cpp: + * tests/Collocated_ThruP_Sp_Gd/Server_Task.h: + * tests/Collocated_ThruP_Sp_Gd/Server_Task.cpp: + * tests/Collocated_ThruP_Sp_Gd/Test.idl: + * tests/Collocated_ThruP_Sp_Gd/run_test.pl: + New test for combination Sp and Gd + + Mon Oct 3 15:33:35 UTC 2011 Marijke Hengstmengel <hengstmengel_m@remedy.nl> + + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + Change dead to 0 for Collocation_Proxy_Broker + + * tao/Collocation_Strategy.h: + * tao/Invocation_Adapter.cpp: + * tao/ORB_Core.h: + * tao/ORB_Core.cpp: + Add exceptions for situations if not used -Gp or used -Sp idl flags and + ORBCollocationStrategies Direct and Thru_Poa. Add strategie BEST. + To do: add prefix COLLOCATION_. + + * tests/Bug_2241_Regression/Client_Task.cpp: + * tests/Bug_2241_Regression/Hello.cpp: + * tests/Bug_2241_Regression/run_test.pl: + Catch expected exceptions. + + * tests/Collocated_Best: + * tests/Collocated_Best/Collocated_Best_Direct: + * tests/Collocated_Best/Collocated_Best_Direct/Client_Task.h: + * tests/Collocated_Best/Collocated_Best_Direct/Client_Task.cpp: + * tests/Collocated_Best/Collocated_Best_Direct/Collocated_Best_Direct.mpc: + * tests/Collocated_Best/Collocated_Best_Direct/Collocated_Test.cpp: + * tests/Collocated_Best/Collocated_Best_Direct/Hello.h: + * tests/Collocated_Best/Collocated_Best_Direct/Hello.cpp: + * tests/Collocated_Best/Collocated_Best_Direct/Server_Task.h: + * tests/Collocated_Best/Collocated_Best_Direct/Server_Task.cpp: + * tests/Collocated_Best/Collocated_Best_Direct/Test.idl: + * tests/Collocated_Best/Collocated_Best_Direct/run_test.pl: + + * tests/Collocated_Best/Collocated_Best_NoColl: + + * tests/Collocated_Best/Collocated_Best_NoColl/Client_Task.h: + * tests/Collocated_Best/Collocated_Best_NoColl/Client_Task.cpp: + * tests/Collocated_Best/Collocated_Best_NoColl/Collocated_Best_NoColl.mpc: + * tests/Collocated_Best/Collocated_Best_NoColl/Collocated_Test.cpp: + * tests/Collocated_Best/Collocated_Best_NoColl/Hello.h: + * tests/Collocated_Best/Collocated_Best_NoColl/Hello.cpp: + * tests/Collocated_Best/Collocated_Best_NoColl/Server_Task.h: + * tests/Collocated_Best/Collocated_Best_NoColl/Server_Task.cpp: + * tests/Collocated_Best/Collocated_Best_NoColl/Test.idl: + * tests/Collocated_Best/Collocated_Best_NoColl/run_test.pl: + + * tests/Collocated_Best/Collocated_Best_ThuP: + + * tests/Collocated_Best/Collocated_Best_ThuP/Client_Task.h: + * tests/Collocated_Best/Collocated_Best_ThuP/Client_Task.cpp: + * tests/Collocated_Best/Collocated_Best_ThuP/Collocated_Best_ThruP.mpc: + * tests/Collocated_Best/Collocated_Best_ThuP/Collocated_Test.cpp: + * tests/Collocated_Best/Collocated_Best_ThuP/Hello.h: + * tests/Collocated_Best/Collocated_Best_ThuP/Hello.cpp: + * tests/Collocated_Best/Collocated_Best_ThuP/Server_Task.h: + * tests/Collocated_Best/Collocated_Best_ThuP/Server_Task.cpp: + * tests/Collocated_Best/Collocated_Best_ThuP/Test.idl: + * tests/Collocated_Best/Collocated_Best_ThuP/run_test.pl: + + * tests/Collocated_ThruP_Sp: + + * tests/Collocated_ThruP_Sp/Client_Task.h: + * tests/Collocated_ThruP_Sp/Client_Task.cpp: + * tests/Collocated_ThruP_Sp/Collocated_Test.cpp: + * tests/Collocated_ThruP_Sp/Collocated_ThruP_Sp.mpc: + * tests/Collocated_ThruP_Sp/Hello.h: + * tests/Collocated_ThruP_Sp/Hello.cpp: + * tests/Collocated_ThruP_Sp/Server_Task.h: + * tests/Collocated_ThruP_Sp/Server_Task.cpp: + * tests/Collocated_ThruP_Sp/Test.idl: + * tests/Collocated_ThruP_Sp/run_test.pl: + tests for COLLOCATION_DIRECT. To do: add readme + + === end changelog === + +Mon Oct 10 08:48:51 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO version 2.0.5 released. + +Fri Oct 7 10:45:41 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * docs/tutorials/Quoter/Event_Service/stock_list.txt: + * docs/tutorials/Quoter/Event_Service/stock_list1.txt: + * docs/tutorials/Quoter/Event_Service/stock_list2.txt: + + * docs/tutorials/Quoter/Simple/ImprovedServer/stock_list.txt: + + * orbsvcs/examples/Notify/MC/TkMonitor/modules/GeometryStore.pm: + * orbsvcs/examples/Notify/MC/TkMonitor/modules/MonitorControl.pm: + + * performance-tests/Protocols/set_lksctp_params.sh: + * performance-tests/Protocols/set_sctp_params.sh: + * performance-tests/Protocols/show_lksctp_params.sh: + * performance-tests/Protocols/show_sctp_params.sh: + Fuzz + +Fri Oct 7 09:45:58 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * docs/PP_Memory_Management.txt: + * orbsvcs/tests/FT_App/replica.cmd: + * orbsvcs/tests/InterfaceRepo/Union_Forward_Test/README.txt: + * orbsvcs/tests/Log/README: + * orbsvcs/tests/Time/README: + Fuzz. + +Fri Oct 7 09:12:23 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * DevGuideExamples/AMH/README: + * DevGuideExamples/AMH_AMI/README: + * DevGuideExamples/BiDirectionalGIOP/README: + * DevGuideExamples/GettingStarted/README: + * DevGuideExamples/Messaging/AMIcallback/README: + * DevGuideExamples/Messaging/RelativeRoundtripTimeout/README: + * DevGuideExamples/Multithreading/GracefulShutdown/README: + * DevGuideExamples/Multithreading/README: + * DevGuideExamples/Multithreading/Reactive/README: + * DevGuideExamples/Multithreading/ThreadPerConnection/README: + * DevGuideExamples/Multithreading/ThreadPool/README: + * DevGuideExamples/PortableInterceptors/Auth/README: + * DevGuideExamples/PortableInterceptors/IOR/README: + * DevGuideExamples/PortableInterceptors/PICurrent/README: + * DevGuideExamples/PortableInterceptors/SimpleCodec/README: + * DevGuideExamples/RTCORBA/README: + * DevGuideExamples/SmartProxies/README: + * DevGuideExamples/ValueTypes/Bank/README: + * DevGuideExamples/ValueTypes/Messenger/README: + * DevGuideExamples/readme.txt: + * README: + * examples/AMI/FL_Callback/README: + * examples/Buffered_AMI/README: + * examples/Buffered_Oneways/README: + * examples/CSD_Strategy/ThreadPool/README: + * examples/CSD_Strategy/ThreadPool2/README: + * examples/CSD_Strategy/ThreadPool3/README: + * examples/CSD_Strategy/ThreadPool4/README: + * examples/CSD_Strategy/ThreadPool6/README: + * examples/Load_Balancing/README: + * examples/OBV/Typed_Events/README: + * examples/RTCORBA/Activity/README: + * interop-tests/wchar/README: + * orbsvcs/DevGuideExamples/EventServices/OMG_Basic/README: + * orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/README: + * orbsvcs/DevGuideExamples/EventServices/OMG_TypedEC/README: + * orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/README: + * orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/README: + * orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/README: + * orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/README: + * orbsvcs/DevGuideExamples/ImplRepo/README: + * orbsvcs/DevGuideExamples/NamingService/Messenger/README: + * orbsvcs/DevGuideExamples/NamingService/Naming_Client/README: + * orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/README: + * orbsvcs/DevGuideExamples/NamingService/Naming_Server/README: + * orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/README: + * orbsvcs/DevGuideExamples/NotifyService/EventSequence/README: + * orbsvcs/DevGuideExamples/NotifyService/Filtering/README: + * orbsvcs/DevGuideExamples/NotifyService/Messenger/README: + * orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/README: + * orbsvcs/DevGuideExamples/NotifyService/QoSProperties/README: + * orbsvcs/DevGuideExamples/NotifyService/RTNotify/README: + * orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/README: + * orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/README: + * orbsvcs/DevGuideExamples/Security/PolicyControllingApp/README: + * orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/README: + * orbsvcs/DevGuideExamples/ValueTypes/Notify/readme.txt: + * orbsvcs/FT_ReplicationManager/README: + * orbsvcs/ImplRepo_Service/README.txt: + * orbsvcs/LoadBalancer/README: + * orbsvcs/TAO_Service/README: + * orbsvcs/examples/CosEC/Factory/README: + * orbsvcs/examples/CosEC/RtEC_Based/README: + * orbsvcs/examples/CosEC/RtEC_Based/bin/README: + * orbsvcs/examples/CosEC/RtEC_Based/tests/Multiple/README: + * orbsvcs/examples/CosEC/Simple/README: + * orbsvcs/examples/Log/Basic/README: + * orbsvcs/examples/Log/Event/README: + * orbsvcs/examples/Log/Notify/README: + * orbsvcs/examples/Log/README: + * orbsvcs/examples/Log/RTEvent/README: + * orbsvcs/examples/Notify/Federation/Agent/README: + * orbsvcs/examples/Notify/Federation/SpaceCraft/README: + * orbsvcs/examples/Notify/Filter/README: + * orbsvcs/examples/Notify/Lanes/README: + * orbsvcs/examples/Notify/MC/TkMonitor/README: + * orbsvcs/examples/Notify/README: + * orbsvcs/examples/Notify/Subscribe/README: + * orbsvcs/examples/Notify/ThreadPool/README: + * orbsvcs/examples/RtEC/IIOPGateway/README: + * orbsvcs/examples/RtEC/MCast/README: + * orbsvcs/examples/RtEC/Schedule/README: + * orbsvcs/examples/RtEC/Simple/README: + * orbsvcs/examples/Security/README: + * orbsvcs/examples/Security/SecurityLevel1/README: + * orbsvcs/orbsvcs/HTIOP/README.txt: + * orbsvcs/orbsvcs/Naming/README: + * orbsvcs/tests/AVStreams/Component_Switching/README: + * orbsvcs/tests/AVStreams/Latency/README: + * orbsvcs/tests/AVStreams/Multicast/README: + * orbsvcs/tests/AVStreams/Multicast_Full_Profile/README: + * orbsvcs/tests/AVStreams/README: + * orbsvcs/tests/AVStreams/Simple_Three_Stage/README: + * orbsvcs/tests/AVStreams/mpeg/README.uav: + * orbsvcs/tests/Bug_1334_Regression/README: + * orbsvcs/tests/Bug_1393_Regression/README: + * orbsvcs/tests/Bug_1395_Regression/README: + * orbsvcs/tests/Bug_1436_Regression/README: + * orbsvcs/tests/Bug_1437_Regression/README: + * orbsvcs/tests/Bug_2137_Regression/README: + * orbsvcs/tests/Bug_2247_Regression/README: + * orbsvcs/tests/Bug_2248_Regression/README: + * orbsvcs/tests/Bug_2285_Regression/README: + * orbsvcs/tests/Bug_2287_Regression/README: + * orbsvcs/tests/Bug_2615_Regression/README: + * orbsvcs/tests/Bug_2709_Regression/README: + * orbsvcs/tests/Bug_2777_Regression/README: + * orbsvcs/tests/Bug_3215_Regression/README: + * orbsvcs/tests/Bug_3216_Regression/README: + * orbsvcs/tests/CosEvent/Timeout/README: + * orbsvcs/tests/EC_Custom_Marshal/README: + * orbsvcs/tests/EC_MT_Mcast/README: + * orbsvcs/tests/EC_Mcast/README: + * orbsvcs/tests/EC_Multiple/README: + * orbsvcs/tests/EC_Throughput/README: + * orbsvcs/tests/Event/Mcast/AddrServer/README: + * orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated/README: + * orbsvcs/tests/Event/Mcast/Two_Way/README: + * orbsvcs/tests/Event/Performance/README: + * orbsvcs/tests/Event/lib/README: + * orbsvcs/tests/FaultTolerance/IOGR/README: + * orbsvcs/tests/ImplRepo/Bug_2604_Regression/README: + * orbsvcs/tests/InterfaceRepo/Bug_2962_Regression/ReadMe.txt: + * orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/ReadMe.txt: + * orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/ReadMe.txt: + * orbsvcs/tests/InterfaceRepo/IFR_Self_Recursive_IDL_Test/README: + * orbsvcs/tests/InterfaceRepo/Union_Forward_Test/README.txt: + * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/README: + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/README: + * orbsvcs/tests/Log/Basic_Log_Test/README: + * orbsvcs/tests/Notify/lib/README: + * orbsvcs/tests/Notify/performance-tests/scripts/1_Path_Period_0_Lanes/README: + * orbsvcs/tests/Notify/performance-tests/scripts/3_Path_Period_10ms_Lanes/README: + * orbsvcs/tests/Notify/performance-tests/scripts/Max_Throughput/README: + * orbsvcs/tests/Redundant_Naming/README: + * orbsvcs/tests/Security/Big_Request/README: + * orbsvcs/tests/Security/Bug_1107_Regression/README: + * orbsvcs/tests/Security/Bug_2908_Regression/README: + * orbsvcs/tests/Security/Callback/README: + * orbsvcs/tests/Security/Secure_Invocation/README: + * orbsvcs/tests/Security/cert/README: + * orbsvcs/tests/Security/ssliop_CSD/README: + * orbsvcs/tests/Simple_Naming/README: + * orbsvcs/tests/unit/Notify/MC/MonitorControlExt/README: + * performance-tests/Cubit/README: + * performance-tests/Latency/README: + * performance-tests/README: + * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/README: + * performance-tests/RTCorba/Multiple_Endpoints/Single_Endpoint/README: + * performance-tests/Sequence_Latency/Sequence_Operations_Time/README.txt: + * tests/Any/Recursive/README: + * tests/BiDirectional_DelayedUpcall/README: + * tests/Big_AMI/README: + * tests/Bug_1330_Regression/README: + * tests/Bug_1551_Regression/README: + * tests/Bug_1627_Regression/README: + * tests/Bug_2119_Regression/README: + * tests/Bug_2122_Regression/README: + * tests/Bug_2124_Regression/README: + * tests/Bug_2126_Regression/README: + * tests/Bug_2134_Regression/README: + * tests/Bug_2183_Regression/README: + * tests/Bug_2186_Regression/README: + * tests/Bug_2289_Regression/README: + * tests/Bug_2375_Regression/README: + * tests/Bug_2399_Regression/README: + * tests/Bug_2419_Regression/README: + * tests/Bug_2424_Regression/README: + * tests/Bug_2429_Regression/README: + * tests/Bug_2549_Regression/README: + * tests/Bug_2669_Regression/README: + * tests/Bug_2791_Regression/README: + * tests/Bug_2805_Regression/README.txt: + * tests/Bug_2935_Regression/README.txt: + * tests/Bug_3068_Regression/README: + * tests/Bug_3276_Regression/README: + * tests/Bug_3299_Regression/README: + * tests/Bug_3311_Regression/README: + * tests/Bug_3513_Regression/README: + * tests/Bug_3524_Regression/README: + * tests/Bug_3574_Regression/README: + * tests/Bug_3575_Regression/README: + * tests/Bug_3632_Regression/README: + * tests/Bug_3676_Regression/README: + * tests/Bug_3743_Regression/README: + * tests/Bug_3748_Regression/README: + * tests/Bug_3755_Ext_Regression/README: + * tests/Bug_3790_Regression/README: + * tests/Bug_3821_Regression/README: + * tests/Bug_3827_Regression/README: + * tests/Bug_3837_Regression/README: + * tests/Bug_3926_Regression/README: + * tests/Bug_3941_Regression/README: + * tests/CSD_Strategy_Tests/TP_Test_4/README: + * tests/CodeSets/simple/README: + * tests/Collocation_Opportunities/README: + * tests/DIOP/README: + * tests/DSI_Gateway/README: + * tests/FL_Cube/README: + * tests/Faults/README: + * tests/HandleExhaustion/README: + * tests/Hello/README: + * tests/ICMG_Any_Bug/README: + * tests/IPV6/README: + * tests/Leader_Followers/README: + * tests/LongUpcalls/README: + * tests/MProfile/README: + * tests/MProfile_Connection_Timeout/README: + * tests/MT_BiDir/README: + * tests/MT_Client/README: + * tests/MT_Server/README: + * tests/MT_Timeout/README: + * tests/Multiple/README: + * tests/Multiple_Inheritance/README: + * tests/Muxed_GIOP_Versions/README: + * tests/Muxing/README: + * tests/Native_Exceptions/README: + * tests/Nested_Event_Loop/README: + * tests/No_Server_MT_Connect_Test/README: + * tests/OBV/Any/README: + * tests/OBV/Supports/README: + * tests/ORB_Local_Config/Bug_1459/README: + * tests/ORB_Local_Config/Bug_3049/README: + * tests/ORB_Local_Config/README: + * tests/ORB_Local_Config/Two_DLL_ORB/README: + * tests/ORB_destroy/README: + * tests/Object_Loader/README: + * tests/Objref_Sequence_Test/README: + * tests/OctetSeq/README: + * tests/POA/Adapter_Activator/README: + * tests/POA/Bug_1592_Regression/README: + * tests/POA/DSI/README: + * tests/POA/Explicit_Activation/Alt_Resources/README: + * tests/POA/Explicit_Activation/README: + * tests/POA/FindPOA/README: + * tests/POA/README: + * tests/POA/Reference_Counted_Servant/README: + * tests/POA/RootPOA/README: + * tests/Policies/README: + * tests/Portable_Interceptors/Benchmark/README: + * tests/Portable_Interceptors/Dynamic/README: + * tests/Portable_Interceptors/ForwardRequest/README: + * tests/Portable_Interceptors/IORInterceptor/README: + * tests/Portable_Interceptors/ORB_Shutdown/README: + * tests/Portable_Interceptors/PICurrent/README: + * tests/Portable_Interceptors/Request_Interceptor_Flow/README: + * tests/RTScheduling/Current/README: + * tests/RTScheduling/DT_Spawn/README: + * tests/RTScheduling/Thread_Cancel/README: + * tests/RTScheduling/VoidData/README: + * tests/Smart_Proxies/Collocation/README: + * tests/Timed_Buffered_Oneways/README: + * tests/Timeout/README: + * tests/TransportCurrent/Framework/README: + * tests/Xt_Stopwatch/README: + Fuzz: Missing Id-tags. + +Fri Oct 7 07:55:46 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * examples/PluggableUDP/tests/Performance/svc.conf.xml: + * examples/PluggableUDP/tests/SimplePerformance/svc.conf.xml: + * examples/Simple/time-date/client.conf.xml: + * examples/Simple/time-date/svc.conf.xml: + * interop-tests/wchar/build.xml: + * orbsvcs/Concurrency_Service/svc.conf.xml: + * orbsvcs/ImplRepo_Service/repository.xml: + * orbsvcs/Notify_Service/svc.conf.xml: + * orbsvcs/TAO_Service/svc.conf.xml: + * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/svc.conf.xml: + * orbsvcs/tests/CosEvent/Basic/svc.pull.conf.xml: + * orbsvcs/tests/Event/Basic/control.conf.xml: + * orbsvcs/tests/Event/UDP/svc.conf.xml: + * orbsvcs/tests/FaultTolerance/IOGR/svc.conf.xml: + * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/windows.conf.xml: + * orbsvcs/tests/LoadBalancing/GenericFactory/DeadMemberDetection_Inf_Ctrl/windows.conf.xml: + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/windows.conf.xml: + * orbsvcs/tests/LoadBalancing/GenericFactory/Manage_Object_Group/windows.conf.xml: + * orbsvcs/tests/Miop/McastHello/client.conf.xml: + * orbsvcs/tests/Miop/McastHello/server.conf.xml: + * orbsvcs/tests/Notify/performance-tests/RedGreen/listener.conf.xml: + * orbsvcs/tests/Notify/performance-tests/RedGreen/lookup.conf.xml: + * orbsvcs/tests/Notify/performance-tests/RedGreen/reactive.conf.xml: + * orbsvcs/tests/Notify/performance-tests/RedGreen/svc.conf.xml: + * orbsvcs/tests/Security/MT_IIOP_SSL/client.conf.xml: + * orbsvcs/tests/Security/MT_IIOP_SSL/server.conf.xml: + * orbsvcs/tests/Security/MT_SSLIOP/client.conf.xml: + * orbsvcs/tests/Security/MT_SSLIOP/server.conf.xml: + * orbsvcs/tests/Security/ssliop_corbaloc/client.conf.xml: + * orbsvcs/tests/Security/ssliop_corbaloc/server.conf.xml: + * orbsvcs/tests/unit/Notify/MC/MonitorManager/svc.conf.xml: + * performance-tests/RTCorba/Thread_Pool/native-svc.conf.xml: + * performance-tests/RTCorba/Thread_Pool/svc.conf.xml: + * performance-tests/Throughput/svc.conf.xml: + * tests/AMI/exclusive.conf.xml: + * tests/AMI/muxed.conf.xml: + * tests/AMI/server.conf.xml: + * tests/AMI_Timeouts/svc.conf.xml: + * tests/Bug_3251_Regression/Bug_3251.conf.xml: + * tests/Bug_3801_Regression/exclusive.conf.xml: + * tests/Bug_3801_Regression/muxed.conf.xml: + * tests/ORB_Local_Config/Service_Dependency/Service_Config_Test.conf.xml: + * tests/POA/Explicit_Activation/alternate.conf.xml: + * tests/RTCORBA/Banded_Connections/svc.conf.xml: + * tests/RTCORBA/Client_Propagated/svc.conf.xml: + * tests/RTCORBA/Client_Protocol/svc.conf.xml: + * tests/RTCORBA/Collocation/continuous.conf.xml: + * tests/RTCORBA/Collocation/svc.conf.xml: + * tests/RTCORBA/Destroy_Thread_Pool/continuous.conf.xml: + * tests/RTCORBA/Dynamic_Thread_Pool/continuous.conf.xml: + * tests/RTCORBA/Dynamic_Thread_Pool/svc.conf.xml: + * tests/RTCORBA/Explicit_Binding/svc.conf.xml: + * tests/RTCORBA/Linear_Priority/svc.conf.xml: + * tests/RTCORBA/MT_Client_Protocol_Priority/svc.conf.xml: + * tests/RTCORBA/Persistent_IOR/continuous.conf.xml: + * tests/RTCORBA/Policy_Combinations/svc.conf.xml: + * tests/RTCORBA/Priority_Inversion_With_Bands/continuous.conf.xml: + * tests/RTCORBA/Priority_Inversion_With_Bands/svc.conf.xml: + * tests/RTCORBA/Server_Declared/continuous.conf.xml: + * tests/RTCORBA/Server_Declared/svc.conf.xml: + * tests/RTCORBA/Server_Protocol/server_iiop.conf.xml: + * tests/RTCORBA/Server_Protocol/server_reverse.conf.xml: + * tests/RTCORBA/Server_Protocol/server_reverse_nt.conf.xml: + * tests/RTCORBA/Server_Protocol/server_shmiop.conf.xml: + * tests/RTCORBA/Server_Protocol/server_uiop.conf.xml: + * tests/RTCORBA/Thread_Pool/continuous.conf.xml: + * tests/RTCORBA/Thread_Pool/svc.conf.xml: + Fuzz: No Id-tags. + +Wed Sep 28 12:46:14 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/BiDir_GIOP/BiDir_GIOP.mpc: + * tao/CodecFactory/CodecFactory.mpc: + Added the generated export files so that they get installed + +Wed Sep 28 12:42:14 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Generic_Sequence_T.h: + * tao/Valuetype/AbstractBase.h: + * tao/Valuetype/Valuetype_Adapter_Impl.h: + Doxygen changes + + * tao/Object.cpp: + * tao/PortableServer/Basic_SArgument_T.h: + * tao/DynamicAny/DynAny_i.h: + Layout changes + +Wed Sep 28 12:39:12 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/AV/AVStreams_i.h: + * orbsvcs/tests/Notify/lib/Peer_T.cpp: + Layout changes and cleanup + +Wed Sep 28 12:37:05 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Persistent_Grid/Grid_i.h: + * examples/Simple/bank/AccountManager_i.h: + * examples/Simple/echo/Echo_i.h: + * examples/Simple/grid/Grid_i.h: + * examples/Simple/time/Time_i.h: + Layout changes, remove workarounds + +Wed Sep 28 12:35:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: + Layout changes to the generated code + +Wed Sep 28 12:34:31 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_3683_Regression/Echo_i.h: + Remove workaround + + * tests/IDL_Test/typedef.idl: + * tests/Smart_Proxies/Collocation/Smart_Proxy_Impl.h: + Layout changes + +Wed Sep 28 12:31:44 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/HandleExhaustion/run_test.pl: + Added missing GetFile + +Wed Sep 28 11:39:31 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * tests/Bug_2241_Regression: + * tests/Bug_2241_Regression/Bug_2241_Regression.mpc: + * tests/Bug_2241_Regression/Client_Task.h: + * tests/Bug_2241_Regression/Client_Task.cpp: + * tests/Bug_2241_Regression/Collocated_Test.cpp: + * tests/Bug_2241_Regression/Hello.h: + * tests/Bug_2241_Regression/Hello.cpp: + * tests/Bug_2241_Regression/Server_Task.h: + * tests/Bug_2241_Regression/Server_Task.cpp: + * tests/Bug_2241_Regression/Test.idl: + * tests/Bug_2241_Regression/run_test.pl: + * bin/tao_orb_tests.lst: + New test for '-ORBCollocationStrategy direct' + +Sun Sep 25 17:02:27 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Parallel_Connect_Strategy/run_test.pl: + Copy only those configuration files that are needed by the targets. + We don't want to solve this in the test framework; the script knows + which configuration files should be copied. + +Wed Sep 21 13:40:30 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/MT_Client/run_test.pl: + Removed conf files that are not in the repo at all + +Tue Sep 20 06:43:33 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/AMI/run_mt_noupcall.pl: + * tests/MT_Client/run_test.pl: + Copy only those configuration files that are needed by the targets. + We don't want to solve this in the test framework; the script knows + which configuration files should be copied. + +Tue Sep 20 06:27:42 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Oneway_Send_Timeouts/run_test.pl: + Fixed runtime issues + +Fri Sep 16 12:01:35 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * DevGuideExamples/Multithreading/ThreadPerConnection/run_test.pl: + * tests/CSD_Collocation/run_test.pl: + * tests/Connection_Purging/run_test.pl: + * tests/Hang_Shutdown/run_test.pl: + * tests/LongUpcalls/run_test.pl: + Copy only those configuration files that are needed by the targets. + We don't want to solve this in the test framework; the script knows + which configuration files should be copied. + +Fri Sep 16 07:55:50 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Faults/run_test.pl: + * tests/Faults/run_test_pp.pl: + * tests/MT_NoUpcall_Client_Leader/run_test.pl: + * tests/POA/EndpointPolicy/run_test_dh.pl: + Copy only those configuration files that are needed by the targets. + We don't want to solve this in the test framework; the script knows + which configuration files should be copied. + +Fri Sep 16 07:37:12 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Connect_Strategy_Test/run_test.pl: + * tests/MT_BiDir/run_test.pl: + * tests/MT_Server/run_test.pl: + * tests/No_Server_MT_Connect_Test/run_test.pl: + * tests/RTCORBA/Server_Protocol/run_test.pl: + Copy only those configuration files that are needed by the targets. + We don't want to solve this in the test framework; the script knows + which configuration files should be copied. + +Fri Sep 16 07:02:26 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Bug_3163_Regression/run_test.pl: + * tests/Bug_3630_Regression/run_test.pl: + * tests/Bug_3683_Regression/run_test.pl: + Copy only those configuration files that are needed by the targets. + We don't want to solve this in the test framework; the script knows + which configuration files should be copied. + + * tests/Bug_3630_Regression/server.cpp: + Added \n + +Thu Sep 15 07:42:01 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/AMI/run_test.pl: + * tests/Bug_2183_Regression/run_test.pl: + * tests/Bug_2186_Regression/run_test.pl: + * tests/Bug_2935_Regression/run_test.pl: + * tests/Bug_3068_Regression/run_test.pl: + * tests/Leader_Followers/run_test.pl: + * tests/Oneway_Send_Timeouts/run_test.pl: + Copy only those configuration files that are needed by the targets. + We don't want to solve this in the test framework; the script knows + which configuration files should be copied. + +Wed Sep 14 07:34:56 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/TAO_Internal.cpp: + When we can't find the service config file output a message that + has error in it, so that the scoreboard parser also detects those + errors + +Wed Sep 7 18:07:24 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/CodecFactory/CodecFactory.h: + * tao/CodecFactory/CodecFactory.cpp: + * tao/CodecFactory/CodecFactory.mpc: + export file is now generated by tao_idl + + * tao/CodecFactory/codecfactory_export.h: + Removed this file. + +Wed Sep 7 17:31:31 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/BiDir_GIOP/BiDirGIOP.h: + * tao/BiDir_GIOP/BiDirGIOP.cpp: + * tao/BiDir_GIOP/BiDirPolicy_Validator.h: + * tao/BiDir_GIOP/BiDir_GIOP.mpc: + export file is now generated by tao_idl + + * tao/BiDir_GIOP/bidirgiop_export.h: + Removed this file. + +Wed Sep 7 17:27:01 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * MPC/modules/IDLHelper.pm: + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_util.cpp: + * TAO_IDL/be_include/be_global.h: + Added skel_export_file and stub_export_file to define an explicit + filename for these export files that are different than the stub/skel + export_include which could be a full path. This fixes bugzilla 3980 + +Tue Sep 6 11:45:16 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Servant_Base.h: + Fixed problem with versioned namespace support + +Tue Sep 6 08:14:42 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/Any.h: + * tao/AnyTypeCode/Any.cpp: + Added support for std::wstring + +Tue Sep 6 08:06:46 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Basic_SArguments.h: + Added support for std::wstring + +Thu Sep 1 09:59:22 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.h: + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.cpp: + * tao/AnyTypeCode_Adapter.h: + * tao/Basic_Arguments.h: + Added support for std::wstring + +Thu Sep 1 06:31:53 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/BD_String_SArgument_T.cpp: + * tao/PortableServer/Basic_SArgument_T.cpp: + * tao/PortableServer/Fixed_Array_SArgument_T.cpp: + * tao/PortableServer/Fixed_Size_SArgument_T.cpp: + * tao/PortableServer/Object_SArgument_T.cpp: + * tao/PortableServer/Special_Basic_SArgument_T.cpp: + * tao/PortableServer/UB_String_SArgument_T.cpp: + * tao/PortableServer/Var_Array_SArgument_T.cpp: + * tao/PortableServer/Var_Size_SArgument_T.cpp: + * tao/PortableServer/Vector_SArgument_T.cpp: + Fixed coverity issues + +Mon Aug 29 07:20:29 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.cpp: + Fixed runtime issues in orbsvcs. + + * tests/OBV/ValueBox/client.cpp: + Fixed runtime issues. + +Fri Aug 26 11:09:12 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * DevGuideExamples/ValueTypes/Bank/client.cpp: + * examples/AMH/Sink_Server/client.cpp: + * examples/Event_Comm/supplier.cpp: + * examples/Simple/bank/server.cpp: + * examples/Simple/echo/server.cpp: + * examples/Simple/grid/server.cpp: + * examples/Simple/time/server.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.cpp: + * orbsvcs/tests/Bug_2112_Regression/client.cpp: + * orbsvcs/tests/InterfaceRepo/Bug_2962_Regression/client.cpp: + * orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/test_idl.cpp: + * orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/test_idl.cpp: + * orbsvcs/tests/InterfaceRepo/Union_Forward_Test/client.cpp: + * performance-tests/Sequence_Latency/Sequence_Operations_Time/test.cpp: + * tests/Bug_1383_Regression/SimpleClient.cpp: + * tests/Bug_3506_Regression/client.cpp: + * tests/Bug_3548_Regression/client.cpp: + * tests/CDR/allocator.cpp: + * tests/Connection_Failure/client.cpp: + * tests/DII_AMI_Forward/client.cpp: + * tests/DynAny_Test/driver.cpp: + * tests/OBV/ValueBox/client.cpp: + * tests/POA/EndpointPolicy/server.cpp: + * tests/POA/Loader/server.cpp: + * tests/Param_Test/driver.cpp: + * tests/Portable_Interceptors/AdvSlot/client.cpp: + * tests/Portable_Interceptors/AdvSlot/server.cpp: + * tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp: + * tests/Portable_Interceptors/AdvSlotExt/client.cpp: + * tests/RTScheduling/Scheduling_Interceptor/test_client.cpp: + * tests/RTScheduling/VoidData/test_client.cpp: + * tests/Sequence_Unit_Tests/bounded_object_reference_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/bounded_sequence_cdr_ut.cpp: + * tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/object_reference_sequence_element_ut.cpp: + * tests/Sequence_Unit_Tests/string_sequence_element_ut.cpp: + * tests/Sequence_Unit_Tests/testing_allocation_traits_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_octet_sequence_nocopy_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_sequence_cdr_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp: + * utils/nslist/nsadd.cpp: + * utils/nslist/nsdel.cpp: + * utils/nslist/nslist.cpp: + Fixed issues regarding exceptions which are not caught. + +Tue Aug 23 18:19:01 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * NEWS: + Prepared for next release + +Tue Aug 23 19:01:44 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO version 2.0.4 released. + +Mon Aug 22 15:39:52 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> + + * orbsvcs/tests/Security/BiDirectional/ssl/ca.pem: + * orbsvcs/tests/Security/BiDirectional/ssl/client-cert.pem: + * orbsvcs/tests/Security/BiDirectional/ssl/client-key.pem: + * orbsvcs/tests/Security/BiDirectional/ssl/server-cert.pem: + * orbsvcs/tests/Security/BiDirectional/ssl/server-key.pem: + + Regenerated these certs so the test works. + +Thu Aug 11 18:55:10 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * NEWS: + + Edited existing entry about generation of argument traits. + +Mon Aug 8 14:26:30 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + Don't generate arg traits if they are disabled + +Mon Aug 8 09:01:55 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_util.cpp: + * TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp: + * TAO_IDL/be/be_visitor_root/root_ch.cpp: + * TAO_IDL/be/be_visitor_root/root_cs.cpp: + * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/structure_cs.cpp: + * TAO_IDL/be/be_visitor_traits.cpp: + * TAO_IDL/be_include/be_global.h: + Added support for -Scdr which suppresses the CDR streaming operations. + This safes footprint when we are using IDL defined types, but these + are not intended to be send through remote CORBA interfaces + +Thu Aug 4 15:47:33 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> + + * TAO-INSTALL.html: + + Added note about building for Android. + + * tests/Sequence_Unit_Tests/string_sequence_tester.hpp: + + Additional compiler macro added to build on Android. + + Thanks to Trevor Fields of OCI for doing the heavy lifting + for porting TAO to Android. + +Sat Jul 23 22:40:39 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> + + * TAO_IDL/be/be_visitor_arg_traits.cpp: + + Fuzz fix. + +Sat Jul 23 14:55:15 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> + + * TAO/tao/IFR_Client/IFR_Client.mpc + + Fixed dependencies on new IFR_Client_Skel project so it + builds on windows. + +Wed Jul 20 18:53:29 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/ast/ast_interface: + + Removed an unnecessary 'seen' flag for arg traits, it was + not only unneeded, but also pulling in #includes in the + *S.h file that wouldn't compile if the IDL contains + valuetypes and no non-local interfaces. + +Tue Jul 19 13:25:22 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_arg_traits.cpp: + + Added global scope double colons to code generation of + arg traits template plate arg names. Some builds had + confusion, thinking that the name was scoped inside the + TAO namespace. + + * TAO_IDL/be/be_codegen.cpp: + + Added #include generation check for valuetypes/valueboxes + when generating the proper arg traits base class + includes. + +Mon Jul 18 20:02:59 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_arg_traits.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be_include/be_global.h: + + Added new option to IDL compiler -Gata, which + generates arg traits instantiations using the + AnyTypeCode_Adapter version of the last template + parameter (if Any support is not suppressed). The + option is used when processing IDL for the + sequences of basic types, so their arg traits + may be included by application whether or not + the application is suppressing Any support. + + * tao/tao.mpc: + + Added the new option to the basic sequence PIDL files. + + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.h: + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.cpp: + * tao/AnyTypeCode_Adapter.h: + + Added new overloads to the AnyTypeCode_Adapter and + AnyTypeCode_Adapter_Impl classes, with the basic + type sequences as the second argument. + + * docs/compiler.html: + + Documented the new IDL compiler option. + +Mon Jul 18 19:01:17 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> + + * MPC/config/ifr_client_skel.mpb: + + Fix suggested by Johnny to get build order correct on windows. + +Mon Jul 18 18:22:55 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> + + * orbsvcs/IFR_Service/IFR_Service.cpp: + + Fixed the include path for IFR_ComponentS.h + +Mon Jul 18 06:37:53 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + Changed server header start and end generation in case of + skeleton file suppression (-SS) to fix versioning bracketing + problems as a result of changed arg traits generation. + +Fri Jul 15 12:46:14 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_root/root_sh.cpp: + * TAO_IDL/be/be_visitor_root/root_ch.cpp: + + Added missing check for suppress option before generating + skeleton arg traits, and made layout changes to both stub + and skeleton root visitors. + +Fri Jul 15 11:59:37 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Monitor/Monitor.h: + Fixed compile error + +Fri Jul 15 09:00:55 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_util.cpp: + Fixed layout of one of the help messages + +Fri Jul 15 08:33:20 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * MPC/config/ifr_client_skel.mpb: + * MPC/config/ifrservice.mpb: + * orbsvcs/IFR_Service/IFR_Service.mpc: + * orbsvcs/orbsvcs/IFRService.mpc: + * orbsvcs/orbsvcs/IFRService/ComponentContainer_i.h: + * orbsvcs/orbsvcs/IFRService/ComponentDef_i.h: + * orbsvcs/orbsvcs/IFRService/EventPortDef_i.h: + * orbsvcs/orbsvcs/IFRService/HomeDef_i.h: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp: + * orbsvcs/orbsvcs/IFRService/IRObject_i.h: + * orbsvcs/orbsvcs/IFRService/ProvidesDef_i.cpp: + * tao/IFR_Client/IFR_Client.mpc: + * tao/IFR_Client/ifr_client_skel_export.h: + Generate a new IFR_Client_skel library that contains all + skeletons for the IFR_Client. This is generated under TAO/tao/IFR_Client + and than used by the IFRService + + * orbsvcs/orbsvcs/IFRService/IFR_BaseS.h: + * orbsvcs/orbsvcs/IFRService/IFR_BaseS.inl: + * orbsvcs/orbsvcs/IFRService/IFR_BaseS.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.h: + * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.inl: + * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS.h: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS.inl: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.h: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.inl: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.h: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.inl: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.h: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.inl: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.h: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.inl: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.h: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.inl: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.cpp: + Removed these files, it are generated files that shouldn't be in + the repository + +Fri Jul 15 07:29:03 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/IFRService/AliasDef_i.h: + * orbsvcs/orbsvcs/IFRService/ArrayDef_i.h: + * orbsvcs/orbsvcs/IFRService/InterfaceAttrExtension_i.h: + * orbsvcs/orbsvcs/IFRService/LocalInterfaceDef_i.h: + * orbsvcs/orbsvcs/IFRService/ModuleDef_i.h: + * orbsvcs/orbsvcs/IFRService/NativeDef_i.h: + * orbsvcs/orbsvcs/IFRService/OperationDef_i.h: + * orbsvcs/orbsvcs/IFRService/PrimitiveDef_i.h: + * orbsvcs/orbsvcs/IFRService/ProvidesDef_i.h: + * orbsvcs/orbsvcs/IFRService/PublishesDef_i.h: + * orbsvcs/orbsvcs/IFRService/Repository_i.h: + * orbsvcs/orbsvcs/IFRService/SequenceDef_i.h: + * orbsvcs/orbsvcs/IFRService/StringDef_i.h: + * orbsvcs/orbsvcs/IFRService/StructDef_i.h: + * orbsvcs/orbsvcs/IFRService/TypedefDef_i.h: + * orbsvcs/orbsvcs/IFRService/ValueMemberDef_i.h: + * orbsvcs/orbsvcs/IFRService/WstringDef_i.h: + Layout changes + +Fri Jul 15 07:11:02 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IFR_Client/IFR_Client_Adapter_Impl.h: + * tao/IFR_Client/IFR_Client_Adapter_Impl.cpp: + Layout changes, removed hardcrafted arg_trait + +Thu Jul 14 19:49:02 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/PolicyC.cpp: + * tao/PortableServer/PolicyS.cpp: + + Removed arg traits instantiations and #includes from these + hand_crafted files. + + * tao/tao.mpc: + + - Added IDL compiler option to suppress Any operator + generation for Policy_Forward.pidl. + + - Added new IDL compiler option (see below) to + suppress arg traits generation for ParameterMode.pidl. + + * tests/Param_Test/Param_Test.mpc: + + Added header and inline file lists. + + * TAO_IDL/include/idl_global.h: + * TAO_IDL/be/be_attribute.cpp: + * TAO_IDL/be/be_visitor_arg_traits.cpp: + * TAO_IDL/be/be_valuetype.cpp: + * TAO_IDL/be/be_visitor_operation/arglist.cpp: + * TAO_IDL/be/be_visitor_operation/operation_cs.cpp: + * TAO_IDL/be/be_visitor_operation/operation.cpp: + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_visitor_valuebox.cpp: + * TAO_IDL/be/be_visitor_union.cpp: + * TAO_IDL/be/be_visitor_structure.cpp: + * TAO_IDL/be/be_visitor_root/root_cs.cpp: + * TAO_IDL/be/be_visitor_root/root_sh.cpp: + * TAO_IDL/be/be_visitor_root/root_ss.cpp: + * TAO_IDL/be/be_visitor_root/root_ch.cpp: + * TAO_IDL/be/be_type.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp: + * TAO_IDL/be/be_valuebox.cpp: + * TAO_IDL/be/be_decl.cpp: + * TAO_IDL/be/be_util.cpp: + * TAO_IDL/be/be_visitor_sequence.cpp: + * TAO_IDL/be/be_visitor_array/array_ch.cpp: + * TAO_IDL/be/be_argument.cpp: + * TAO_IDL/be/be_visitor_valuetype.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_visitor_enum/enum_ch.cpp: + * TAO_IDL/be/be_sequence.cpp: + * TAO_IDL/be/be_operation.cpp: + * TAO_IDL/be/be_enum.cpp: + * TAO_IDL/be/be_string.cpp: + * TAO_IDL/ast/ast_interface.cpp: + * TAO_IDL/ast/ast_interface_fwd.cpp: + * TAO_IDL/be_include/be_visitor_root/root_ch.h: + * TAO_IDL/be_include/be_visitor_root/root_cs.h: + * TAO_IDL/be_include/be_visitor_root/root_sh.h: + * TAO_IDL/be_include/be_visitor_root/root_ss.h: + * TAO_IDL/be_include/be_codegen.h: + * TAO_IDL/be_include/be_util.h: + * TAO_IDL/be_include/be_decl.h: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/util/utl_global.cpp: + + - Moved arg traits generation targets from the stub + and skeleton source files to the corresponding + header files. This checking addresses [BUGID:3969]. + + - Many changes to #include file generation logic, + since arg traits generation is now triggered from the IDL + declaration and not from its use as an operation argument. + + - Added a new command line option -Sat to suppress + the generation of arg tratis altogether. + + * tao/docs/compiler.html: + + Added the new IDL compiler command line option to the table. + +Tue Jul 12 13:15:24 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + + Added code generation of a preprocessor version check that + will output an error message if the generated file's version + doesn't match the IDL compiler's (TAO's) version. This fix + closes [BUGID:3979]. + +Mon Jul 11 14:55:57 UTC 2011 Adam Mitz <mitza@ociweb.com> + + * TAO_IDL/be/be_util.cpp: + + Removed usage text for command line options that were + removed a long time ago. + +Fri Jul 8 14:57:31 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_arg_traits.cpp: + + Relocated the spot where a typedef node is marked as having + its arg traits instantiation generated. There is a use case + where the old location gave rise to infinite recursion and + a stack overflow. Thanks to Johnny Willemsen + <jwillemsen@remedy.nl> for uncovering the bug and submitting + example IDL. This fix closes [BUGID:3978]. + + * tests/IDL_Test/interface.cpp: + + Added the example IDL above to the test. + +Fri Jul 8 06:39:27 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Servant_Base.h: + Added some typedefs useful for template meta programming + +Mon Jul 4 11:02:28 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/ImplRepo_Service/ImR_Locator_i.h: + * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp: + Fixed Coverity error + + * orbsvcs/tests/Notify/performance-tests/Throughput/Throughput.cpp: + Fixed mismatched delete as reported by Coverity + +Wed Jun 29 12:44:21 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Advanced/TO-DO: + * examples/Advanced/ch_21/client.cpp: + * examples/Quoter/Quoter_i.cpp: + * examples/Simple/bank/README: + Cleanup + +Wed Jun 29 11:27:19 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/OBV/Simple/Client_i.h: + * tests/OBV/Simple/OBV_impl.h: + * tests/OBV/Simple/Server_i.h: + * tests/OBV/Simple/Server_i.cpp: + * tests/OBV/Simple/server.cpp: + Cleanup + +Wed Jun 29 11:13:02 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/TypeCode_Case_T.h: + * tao/Basic_Argument_T.h: + * tao/Invocation_Adapter.h: + * tao/Bounded_Basic_String_Sequence_T.h: + * tao/Generic_Sequence_T.h: + Layout changes + + * tao/Object.cpp: + Fixed coverity errors + + * tao/Incoming_Message_Stack.h: + Removed borland workaround + +Wed Jun 29 10:47:05 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB_Core.cpp: + Fixed coverity errors + +Mon Jun 27 10:28:15 UTC 2011 Martin Corino <mcorino@remedy.nl> + + * tao/CDR.h: + * tao/CDR.inl: + Added CDR streaming ops for std::wstring and helper classes + and streaming ops to extract bounded strings into std strings. + +Thu Jun 23 12:39:08 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/*.doxygen: + Disable html help, seems doxygen now disables the search option + when html help is enabled + +Thu Jun 23 13:46:08 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO version 2.0.3 released. + +Wed Jun 22 18:25:21 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/AnyTypeCode/Any_Basic_Impl.cpp: + * tao/AnyTypeCode/Any_Basic_Impl.h: + * tests/LongDouble/client.cpp: + * tests/IDL_Test/constants.idl: + * tests/IDL_Test/union.idl: + * TAO_IDL/include/ast_expression.h: + * TAO_IDL/be/be_helper.cpp: + * TAO_IDL/be/be_visitor_constant/constant_cs.cpp: + * TAO_IDL/be/be_visitor_constant/constant_ch.cpp: + * TAO_IDL/ast/ast_constant.cpp: + * TAO_IDL/ast/ast_expression.cpp: + * NEWS: + + Reverted all changes related to support for long double + constants in IDL. + +Wed Jun 22 15:15:05 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com> + + * orbsvcs/orbsvcs/Naming/Naming_Server.cpp: + + Ensure the naming service can use the CSD_TP strategy if necessary. + Since the naming service is single threaded, it can become a + bottleneck when there is very heavy use. + + The need for this change may also indicate a problem with the + CSD strategy implementation. It appears that the thread pool at + least is only initialized when the POA Manager is activated. If + A POA is created with using a POA Manager already in the active + state, the TP is not initialized. Alternatively this might be a + problem with the POA creation, that create_POA can be supplied a + POA Manager that is already been activated, and the new POA is + itself instantly active. + +Wed Jun 22 14:49:09 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Security/BiDirectional/run_test.pl: + * orbsvcs/tests/Security/Big_Request/run_test.pl: + Added -clog and -slog to write a separate client and server log file + to disk + +Tue Jun 21 13:07:15 UTC 2011 Olli Savia <ops@iki.fi> + + * TAO_IDL/util/utl_err.cpp: + Fixed typo. + +Thu Jun 16 15:30:23 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/IDL_Test/constants.idl: + + Guarded out the long double constant set to the double max + value, for MinGW, which outputs a floating point error + for this value. + +Thu Jun 16 14:00:53 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/LongDouble/client.cpp: + + Replaced '==' with equivalent '<' and '>' expressions for + a long double, some platoforms warn that '==' shouldn't + be used with floating point types. + +Thu Jun 16 07:56:54 UTC 2011 Simon Massey <sma at prismtech dot com> + + * orbsvcs/tests/Security/Big_Request/cacert.pem: + * orbsvcs/tests/Security/Big_Request/client_cert.pem: + * orbsvcs/tests/Security/Big_Request/client_key.pem: + * orbsvcs/tests/Security/Big_Request/server_cert.pem: + * orbsvcs/tests/Security/Big_Request/server_key.pem: + + Updated certificates - Missed one. + +Wed Jun 15 14:36:54 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu> + + * orbsvcs/tests/Security/Bug_1107_Regression/cacert.pem: + * orbsvcs/tests/Security/Bug_1107_Regression/client_cert.pem: + * orbsvcs/tests/Security/Bug_1107_Regression/client_key.pem: + * orbsvcs/tests/Security/Bug_1107_Regression/server_cert.pem: + * orbsvcs/tests/Security/Bug_1107_Regression/server_key.pem: + * orbsvcs/tests/Security/Callback/cacert.pem: + * orbsvcs/tests/Security/Callback/client_cert.pem: + * orbsvcs/tests/Security/Callback/client_key.pem: + * orbsvcs/tests/Security/Callback/server_cert.pem: + * orbsvcs/tests/Security/Callback/server_key.pem: + * orbsvcs/tests/Security/Crash_Test/cacert.pem: + * orbsvcs/tests/Security/Crash_Test/client_cert.pem: + * orbsvcs/tests/Security/Crash_Test/client_key.pem: + * orbsvcs/tests/Security/Crash_Test/server_cert.pem: + * orbsvcs/tests/Security/Crash_Test/server_key.pem: + * orbsvcs/tests/Security/Null_Cipher/cacert.pem: + * orbsvcs/tests/Security/Null_Cipher/client_cert.pem: + * orbsvcs/tests/Security/Null_Cipher/client_key.pem: + * orbsvcs/tests/Security/Null_Cipher/server_cert.pem: + * orbsvcs/tests/Security/Null_Cipher/server_key.pem: + * orbsvcs/tests/Security/Secure_Invocation/cacert.pem: + * orbsvcs/tests/Security/Secure_Invocation/client_cert.pem: + * orbsvcs/tests/Security/Secure_Invocation/client_key.pem: + * orbsvcs/tests/Security/Secure_Invocation/server_cert.pem: + * orbsvcs/tests/Security/Secure_Invocation/server_key.pem: + * orbsvcs/tests/Security/mixed_security_test/cacert.pem: + * orbsvcs/tests/Security/mixed_security_test/client_cert.pem: + * orbsvcs/tests/Security/mixed_security_test/client_key.pem: + * orbsvcs/tests/Security/mixed_security_test/server_cert.pem: + * orbsvcs/tests/Security/mixed_security_test/server_key.pem: + + Updated certificates. + + * orbsvcs/tests/Security/cert: + * orbsvcs/tests/Security/cert/DOCCA: + * orbsvcs/tests/Security/cert/DOCCA/cacert.pem: + * orbsvcs/tests/Security/cert/DOCCA/certs: + * orbsvcs/tests/Security/cert/DOCCA/index.txt: + * orbsvcs/tests/Security/cert/DOCCA/index.txt.attr: + * orbsvcs/tests/Security/cert/DOCCA/index.txt.attr.old: + * orbsvcs/tests/Security/cert/DOCCA/index.txt.old: + * orbsvcs/tests/Security/cert/DOCCA/newcerts: + * orbsvcs/tests/Security/cert/DOCCA/newcerts/1000.pem: + * orbsvcs/tests/Security/cert/DOCCA/newcerts/1001.pem: + * orbsvcs/tests/Security/cert/DOCCA/private: + * orbsvcs/tests/Security/cert/DOCCA/private/cakey.pem: + * orbsvcs/tests/Security/cert/DOCCA/serial: + * orbsvcs/tests/Security/cert/DOCCA/serial.old: + * orbsvcs/tests/Security/cert/README: + * orbsvcs/tests/Security/cert/cacert.pem: + * orbsvcs/tests/Security/cert/client_cert.pem: + * orbsvcs/tests/Security/cert/client_key.pem: + * orbsvcs/tests/Security/cert/openssl.cnf: + * orbsvcs/tests/Security/cert/server_cert.pem: + * orbsvcs/tests/Security/cert/server_key.pem: + + Added the full CA information used to sign the above certs. These certs + are good for the next 20 years. + + * orbsvcs/tests/Security/Secure_Invocation/client_key_nopasswd.pem: + * orbsvcs/tests/Security/Secure_Invocation/server_key_nopasswd.pem: + * orbsvcs/tests/Security/mixed_security_test/client_key_nopasswd.pem: + * orbsvcs/tests/Security/mixed_security_test/server_key_nopasswd.pem: + + Removed these files. + +Wed Jun 15 08:54:50 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_operation/operation_ch.cpp: + Reverted 3971 change, broke some CCM tests + +Tue Jun 14 13:12:05 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_valuetype.cpp: + * TAO_IDL/be/be_valuetype.h: + * TAO_IDL/be/be_visitor_amh_pre_proc.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp: + + Added code generation for AMH exception holder's default + constructor to initialize the CORBA::Exception* member + to 0. This fix closes [BUGID:3970]. + +Tue Jun 14 12:18:00 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_operation/operation_ch.cpp: + Only the methods for operations in local interfaces need to be + virtual. This reduces footprint and improves performance, this + fixes bugzilla 3971 + +Fri Jun 10 19:08:19 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_helper.cpp: + + Used the recently added ACE_LONG_DOUBLE_FORMAT_SPECIFIER_ASCII + to generate long double literals portably. + +Fri Jun 10 12:41:00 UTC 2011 Simon Massey <sma at prismtech dot com> + + * tests/MT_NoUpcall_Client_Leader/run_test.pl: + + This test wasn't capable of exiting with an error, it was + always successful even if the test failed. + + * tests/MT_NoUpcall_Client_Leader/client.cpp: + * tests/MT_NoUpcall_Client_Leader/server.cpp: + + The mutex needed to be locked prior to worker thread creation + and the stop_condition.wait condition, then released after, + otherwise worker threads can signal prior to the server/client + being ready to deal with the event. Client needed to + pause before the issuing the shutdown request to the server + so as to allow it to finish its own worker thread. + + * tests/MT_NoUpcall_Client_Leader/police.cpp: + + The stat test in the loop was occationally detecting the creation + of the ior file before the contents had been written. Moving + the sleep after the stat and before the test allows the contents to + be output before allowing the client/server to use the ior it + has just detected. + + * tests/MT_NoUpcall_Client_Leader/chatter.cpp: + * tests/MT_NoUpcall_Client_Leader/chatter.h: + + Need to mutex control access to the two nrequests_ and nreplies_ + counts, as the client has two concurrent worker threads competing + to update them, these counts also need to be volitile. + +Thu Jun 9 19:38:48 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_helper.cpp: + + Changed print format of long double literal to be conditional, + based on the existence of a native 16-byte long double, in + order to eliminate warnings of rhs and lhs type mismatch. + +Thu Jun 9 17:28:25 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_constant/constant_ch.cpp: + * TAO_IDL/be/be_visitor_constant/constant_cs.cpp: + + Changed generated code to always use a constructor with an + ACE_CDR::LongDoubleAssign argument for long double constants. + +Thu Jun 9 07:05:59 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/examples/FaultTolerance/RolyPoly/client.cpp: + * orbsvcs/tests/Bug_2709_Regression/Client_Task.cpp: + Fixed gcc 4.6 warnings + +Thu Jun 9 01:09:40 UTC 2011 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp (TAO_Notify_ThreadPool_Task::execute): + Fixed a memory leak that occurred when the enqueue() failed. + Thanks to Jochen Meier <gesammeltimusenet2009 at arcor dot de> for + reporting this and suggesting a fix. + +Mon Jun 6 19:53:54 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/AnyTypeCode/Any_Basic_Impl.cpp: + * tao/AnyTypeCode/Any_Basic_Impl.h: + + Restored the long double member back to the member union of + Any_Basic_Impl. A change suggested by Adam Mitz <mitza at + ociweb dot com> enabled the use of the LongDouble emulator + struct without constructors or assignment operators. + + * TAO_IDL/be/be_visitor_constant/constant_ch.cpp: + * TAO_IDL/be/be_visitor_constant/constant_cs.cpp: + + Changed code generation for long double constant initialization, + when 16-byte native long double does not exist, to use the + new LongDoubleAssign struct in ACE_CDR. + + * tests/IDL_Test/union.idl: + + Added a test case of a union containing a long double, to + test that the generated union doesn't contain a member + with a constructor. + +Mon Jun 6 18:59:41 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_helper.cpp: + + Restored minimum significant digit suggestions for the format + string for double, and added them to the format string for + long double. + +Mon Jun 6 17:28:05 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/AnyTypeCode/Any_Basic_Impl.cpp: + * tao/AnyTypeCode/Any_Basic_Impl.h: + + Added a separate member for long doubles, rather than have + support for long doubles on all platforms disabled because + the struct that is now used for some long double representations + has a constructor. + + * tests/DynAny_Test/test_dynany.cpp: + + Reverted the change in + + Fri Jun 3 18:54:59 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + since that part of the test will work again. + +Mon Jun 6 15:06:42 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/fe/lex.yy.cpp: + * TAO_IDL/include/idl_global.h: + * TAO_IDL/util/utl_global.cpp: + Extended DDS support + +Fri Jun 3 18:54:59 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/AnyTypeCode/Any_Basic_Impl.cpp: + * tao/AnyTypeCode/Any_Basic_Impl.h: + + On platforms where native long doubles aren't 16 bytes, + eliminated case where an Any contains a CORBA::LongDouble. + The class contains a C++ union, which can't contain a + non-native LongDouble ( a struct) since it now has a constructor. + A fair tradeoff since in return for the recent changes to + ACE_CDR::LongDouble, we now have support for IDL constants + of type CORBA::LongDouble on all platforms. + + * tests/DynAny_Test/test_dynany.cpp: + + Similarly to the above item, eliminated the test for long + double on platforms where a non-native struct alternative + is used. + +Thu Jun 2 12:24:59 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_helper.cpp: + + - Fixed print format for long double, eliminated warnings. + - Added '#' flag to all floating point print formats, forces + printing of decimal point even if not present in IDL. + +Wed Jun 1 19:39:08 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/include/AST_Expression.h: + * TAO_IDL/ast/AST_Expression.cpp + * TAO_IDL/ast/AST_Constant.cpp + * TAO_IDL/be/be_helper.cpp: + * TAO_IDL/be/be_visitor_constant/constant_ch.cpp: + * TAO_IDL/be/be_visitor_constant/constant_cs.cpp: + + Added support for long double constants in IDL. + + * tests/IDL_Test/constants.idl: + + Added test cases for long double constants. + + * NEWS: + + Added item about long double constant support. + +Wed Jun 1 09:46:54 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp: + * orbsvcs/tests/Log/Basic_Log_Test/client.cpp: + * tests/ORB_Local_Config/Two_DLL_ORB/client.cpp: + * tests/ORB_Local_Config/Two_DLL_ORB/server.cpp: + Fixed Coverity warnings regarding uncaught exceptions. + +Tue May 31 05:47:19 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Sequence_Unit_Tests/string_sequence_tester.hpp: + Fixed gcc 4.6 warnings: variable was set but not used. + +Mon May 30 10:21:08 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * examples/Logging/Logger_i.cpp: + Resolved gcc 4.6 warning: variable may be used uninitialized + in this function + +Mon May 30 10:00:33 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * orbsvcs/LoadBalancer/LoadMonitor.cpp: + Fixed compiler error on Windows. + +Mon May 30 06:39:12 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Sequence_Unit_Tests/string_sequence_tester.hpp: + * tests/Smart_Proxies/Benchmark/client.cpp: + Resolved gcc 4.6 warnings: variable was set but not used. + +Fri May 27 14:35:57 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Bug_2936_Regression/bug2936.cpp: + * tests/Bug_3926_Regression/Client_Request_Interceptor.cpp: + * tests/Exposed_Policies/RT_Properties.cpp: + * tests/IOR_Endpoint_Hostnames/list_interfaces.cpp: + Resolved gcc 4.6 warnings: variable was set but not used. + + * tests/POA/Bug_2511_Regression/server.cpp: + Resolved gcc 4.6 warnings: variable was set but not used. + Code alignment. + +Fri May 27 14:13:08 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * performance-tests/POA/Demux/demux_test_server.cpp: + * tests/Bug_2677_Regression/DllORB.cpp: + * tests/Bug_2683_Regression/server.cpp: + Resolved gcc 4.6 warnings: variable was set but not used. + +Fri May 27 13:52:37 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_union/union_ch.cpp: + Removed generation of holder_ member of an union, it is not used + at all + +Fri May 27 10:09:25 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * orbsvcs/examples/ImR/Advanced/TestClient.cpp: + * orbsvcs/tests/IOR_MCast/client.cpp: + * orbsvcs/tests/Security/Bug_1107_Regression/client.cpp: + Statisfy Coverity and the GNU 4.6 gcc compiler. Using a + returned value either by using ACE_UNUSED_ARG or to print + in a log message. + + * tests/Sequence_Unit_Tests/value_sequence_tester.hpp: + Fuzz. + +Fri May 27 09:14:29 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * orbsvcs/LoadBalancer/LoadMonitor.cpp: + * orbsvcs/examples/ImR/Advanced/TestClient.cpp: + * orbsvcs/tests/Bug_3486_Regression/server.cpp: + * orbsvcs/tests/IOR_MCast/client.cpp: + * orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp: + * orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp: + * orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp: + * orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp: + * orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp: + * orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp: + * orbsvcs/tests/Security/Bug_1107_Regression/client.cpp: + Resolved gcc 4.6 warnings: variable was set but not used. + +Thu May 26 15:25:36 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/fe/fe_utils.cpp: + tmp variable wasn't necessary. Removed it. + +Thu May 26 14:13:05 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * TAO_IDL/be/be_visitor_valuebox/valuebox_ci.cpp: + * TAO_IDL/fe/fe_utils.cpp: + * tao/Strategies/COIOP_Acceptor.cpp: + Resolved gcc 4.6 warnings: variable was set but not used. + +Thu May 26 13:48:29 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tests/Sequence_Unit_Tests/Bounded_Simple_Types.cpp: + * tests/Sequence_Unit_Tests/Bounded_String.cpp: + * tests/Sequence_Unit_Tests/Unbounded_Octet.cpp: + * tests/Sequence_Unit_Tests/Unbounded_Simple_Types.cpp: + * tests/Sequence_Unit_Tests/Unbounded_String.cpp: + Catch uncaught exceptions in main. + +Thu May 26 13:11:19 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tao/Generic_Sequence_T.h: + Added file name to doxygen documentation + + * tests/Sequence_Unit_Tests/value_sequence_tester.hpp: + Resolved Coverity warning: catching a uncaught BAD_PARAM exception. + +Fri May 20 22:07:56 UTC 2011 Adam Mitz <mitza@ociweb.com> + + * tao/AnyTypeCode/TAO_AnyTypeCode.rc: + * tao/Codeset/TAO_Codeset.rc: + * tao/PI/TAO_PI.rc: + * tao/PI_Server/TAO_PI_Server.rc: + * tao/Utils/TAO_Utils.rc: + * tao/ZIOP/TAO_ZIOP.rc: + + Add resource files to get TAO version number on DLLs. + +Fri May 20 14:20:53 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Oneway_Timeouts/test.mpc: + Added explicit idl project to get correct build order on VMS + +Thu May 19 14:53:55 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * tests/QtTests/client.cpp: + * tests/QtTests/client.h: + * tests/QtTests/QtTests.mpc: + * tests/QtTests/server.cpp: + * tests/QtTests/test_i.h: + Adapted to qt4. + +Tue May 17 19:20:55 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/OBV/Indirection/MessengerServer.cpp: + * tests/Portable_Interceptors/Slot/driver.cpp: + Catch exceptions in main + +Tue May 17 11:32:18 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + * TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp: + Layout changes to the generated code + +Fri May 13 08:04:48 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tao/Bounded_Basic_String_Sequence_T.h: + * tao/Bounded_Object_Reference_Sequence_T.h: + * tao/Bounded_Value_Sequence_T.h: + * tao/Unbounded_Basic_String_Sequence_T.h: + * tao/Unbounded_Object_Reference_Sequence_T.h: + Doxygen changes. + +Wed May 11 18:43:15 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ObjectKey_Table.h: + * tao/orbconf.h: + * tao/params.h: + Doxygen changes + +Wed May 11 13:35:28 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * tao/QtResource/QtResource_Loader.h: + Changed for QT4 deprecated include QT/.. + +Tue May 10 18:15:28 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ImR_Client/ImR_Client.cpp: + changed variable name to not match method argument + + * utils/catior/catior.cpp: + * utils/nslist/nsadd.cpp: + * utils/nslist/nsdel.cpp: + * utils/nslist/nslist.cpp: + Fixed coverity errors, not leak exceptions + +Tue May 10 06:15:43 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * tao/IORManipulation/IORManip_IIOP_Filter.cpp: + Fixed compile error. + +Mon May 9 19:10:54 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + * tao/CSD_ThreadPool/CSD_TP_Task.cpp: + * tao/IORManipulation/IORManip_IIOP_Filter.cpp: + Fixed coverity errors + +Wed Apr 27 13:35:10 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO.mwc: + Exclude DAnCE, thanks to Remko Duppen <remko dot duppen at syntel dot nl> + for reporting this + +Tue Apr 26 13:12:03 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: + Layout changes generated code + +Tue Apr 26 13:04:11 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Collocation_Resolver.h: + * tao/Connect_Strategy.h: + * tao/Endpoint_Selector_Factory.h: + * tao/GIOP_Message_Base.h: + * tao/GIOP_Message_Generator_Parser.h: + * tao/GIOP_Message_Generator_Parser_10.h: + * tao/GIOP_Message_Generator_Parser_11.h: + * tao/GIOP_Message_Generator_Parser_Impl.h: + * tao/GIOP_Message_State.h: + * tao/GIOP_Utils.h: + * tao/GUIResource_Factory.h: + * tao/LF_Connect_Strategy.h: + * tao/LF_Follower.cpp: + Doxygen changes + +Tue Apr 26 12:50:24 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB_Core.cpp: + * tao/Thread_Lane_Resources.h: + * tao/Thread_Lane_Resources_Manager.h: + * tao/Thread_Per_Connection_Handler.h: + * tao/Transport.h: + * tao/Transport_Connector.h: + * tao/TypeCodeFactory_Adapter.h: + Doxygen changes + +Tue Apr 26 12:21:05 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Acceptor_Impl.h: + * tao/Acceptor_Impl.cpp: + * tao/Acceptor_Registry.h: + * tao/Adapter_Registry.h: + * tao/Bind_Dispatcher_Guard.h: + * tao/Blocked_Connect_Strategy.h: + * tao/Blocked_Connect_Strategy.cpp: + * tao/Cleanup_Func_Registry.h: + * tao/Collocated_Invocation.cpp: + * tao/LF_Event_Loop_Thread_Helper.inl: + * tao/LF_Follower_Auto_Adder.inl: + * tao/Leader_Follower.cpp: + * tao/Queued_Message.h: + * tao/Transport_Cache_Manager_T.cpp: + * tao/Wait_On_LF_No_Upcall.h: + * tao/Wait_On_LF_No_Upcall.cpp: + * tao/Wait_On_Reactor.h: + * tao/Wait_On_Read.h: + Doxygen changes + +Tue Apr 26 11:57:42 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Leader_Follower.h: + * tao/Leader_Follower.inl: + * tao/Wait_On_LF_No_Upcall.h: + * tao/Wait_On_Leader_Follower.h: + * tao/Wait_On_Reactor.h: + * tao/Wait_On_Read.h: + * tao/Wait_Strategy.h: + Use explicit for single argument constructors, doxygen improvements + +Tue Apr 26 11:13:59 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/MT_NoUpcall_Client_Leader/client.cpp: + * tests/MT_NoUpcall_Client_Leader/run_test.pl: + * tests/MT_NoUpcall_Client_Leader/server.cpp: + Make it possible to pass number of threads through the commandline + +Tue Apr 26 09:42:36 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Leader_Follower.h: + * tao/Leader_Follower.inl: + Use bool instead of int for several methods + + * tao/Thread_Lane_Resources.cpp: + Simplied some code + +Tue Apr 26 09:26:48 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + MT_NoUpcall_Client_Leader shouldn't run when there is no messaging + +Tue Apr 26 09:00:31 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Disabled some tests with CORBA/e micro + + * tao/Connection_Handler.cpp: + * tao/Resume_Handle_Deferred.h: + * tao/Resume_Handle_Deferred.cpp: + Use reference counting for deletion, also log an error and return -1 + when schedule_timer fails, we have a critical error at that moment + + * tao/Policy_Validator.cpp: + * tao/TAO_Singleton.cpp: + * tao/Leader_Follower.cpp: + Use %@ for logging pointers + +Fri Apr 22 12:41:53 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * orbsvcs/tests/Bug_3418_Regression/b.conf: + * orbsvcs/tests/HTIOP/HT_Config.conf: + * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/windows.conf: + * orbsvcs/tests/LoadBalancing/GenericFactory/DeadMemberDetection_App_Ctrl/non-windows.conf: + * orbsvcs/tests/LoadBalancing/GenericFactory/DeadMemberDetection_App_Ctrl/windows.conf: + * orbsvcs/tests/LoadBalancing/GenericFactory/DeadMemberDetection_Inf_Ctrl/non-windows.conf: + * orbsvcs/tests/LoadBalancing/GenericFactory/DeadMemberDetection_Inf_Ctrl/windows.conf: + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/windows.conf: + * orbsvcs/tests/LoadBalancing/GenericFactory/Manage_Object_Group/windows.conf: + * orbsvcs/tests/Notify/Lanes/consumer.conf: + * orbsvcs/tests/Notify/Lanes/notify.conf: + * performance-tests/Protocols/lksctp_params.conf: + * performance-tests/Protocols/sctp_params.conf: + * performance-tests/RTCorba/Thread_Pool/native-svc.conf: + * tests/Bug_3068_Regression/server.conf: + * tests/ORB_Local_Config/Bug_1459/m.conf: + * tests/ORB_Local_Config/Two_DLL_ORB/secondary-empty.conf: + * tests/RTCORBA/Explicit_Binding/svc.conf: + Fuzz: added $Id string + +Fri Apr 22 12:14:18 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Connection_Handler.cpp: + * tao/Resume_Handle_Deferred.h: + * tao/Resume_Handle_Deferred.cpp: + Notify a specific event handler + + * tao/Resume_Handle_Deferred.inl: + Removed this file, virtual methods may not be inline + +Fri Apr 22 11:56:20 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Resume_Handle_Deferred.h: + * tao/Resume_Handle_Deferred.inl: + * tao/Resume_Handle_Deferred.cpp: + We should only trigger the reactor + + * tao/Transport.cpp: + Doxygen changes + +Fri Apr 22 07:28:43 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * DevGuideExamples/Multithreading/Reactive/svc.conf: + * DevGuideExamples/Multithreading/ThreadPerConnection/server.conf: + * DevGuideExamples/RTCORBA/svc.conf: + * docs/tutorials/Quoter/Event_Service/ec.conf: + * examples/PluggableUDP/tests/Performance/svc.conf: + * examples/PluggableUDP/tests/SimplePerformance/svc.conf: + * examples/RTCORBA/Activity/client.conf: + * examples/RTCORBA/Activity/server.conf: + * examples/RTCORBA/Activity/svc.conf.client: + * examples/RTCORBA/Activity/svc.conf.server: + * examples/RTScheduling/Fixed_Priority_Scheduler/svc.conf.client: + * examples/RTScheduling/Fixed_Priority_Scheduler/svc.conf.server: + * examples/RTScheduling/MIF_Scheduler/svc.conf.client: + * examples/RTScheduling/MIF_Scheduler/svc.conf.server: + * orbsvcs/Concurrency_Service/svc.conf: + * orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/supplier.conf: + * orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/ec.conf: + * orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/supplier.conf: + * orbsvcs/DevGuideExamples/NotifyService/RTNotify/notify.conf: + * orbsvcs/DevGuideExamples/NotifyService/RTNotify/nsclient.conf: + * orbsvcs/DevGuideExamples/ValueTypes/Notify/notify.conf: + * orbsvcs/Event_Service/svc.conf: + * orbsvcs/Logging_Service/Notify_Logging_Service/svc.conf: + * orbsvcs/TAO_Service/svc.conf: + * orbsvcs/examples/ImR/Combined_Service/dynserver.conf: + * orbsvcs/examples/ImR/Combined_Service/start_all.conf: + * orbsvcs/examples/Notify/Lanes/client.conf: + * orbsvcs/examples/Notify/Lanes/notify.conf: + * orbsvcs/examples/Notify/ThreadPool/client.conf: + * orbsvcs/examples/Notify/ThreadPool/notify.conf: + * orbsvcs/examples/RtEC/IIOPGateway/ec.conf: + * orbsvcs/examples/RtEC/IIOPGateway/gateway.conf: + * orbsvcs/examples/RtEC/Kokyu/svc.conf: + * orbsvcs/examples/RtEC/MCast/svc.conf: + * orbsvcs/examples/RtEC/Schedule/svc.conf: + * orbsvcs/examples/RtEC/Simple/ec.conf: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.dispatching_reactive.conf: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.dispatching_rtcorba.conf: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.dispatching_threaded.conf: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.filter_null.conf: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.filter_per_supplier.conf: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.locking_copy_on_read.conf: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.locking_copy_on_write.conf: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.locking_delayed.conf: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/ec.locking_immediate.conf: + * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/roundtrip.conf: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/realtime.conf: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/realtime.conf: + * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.dispatching_reactive.conf: + * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.dispatching_rtcorba.conf: + * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.dispatching_threaded.conf: + * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.locking_copy_on_read.conf: + * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.locking_copy_on_write.conf: + * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.locking_delayed.conf: + * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.locking_immediate.conf: + * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.supplier_filter_null.conf: + * orbsvcs/performance-tests/RTEvent/Roundtrip/ec.supplier_filter_per_supplier.conf: + * orbsvcs/performance-tests/RTEvent/Roundtrip/roundtrip.conf: + * orbsvcs/tests/AVStreams/Component_Switching/components_svc.conf: + * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/svc.conf: + * orbsvcs/tests/Bug_2316_Regression/svc.conf: + * orbsvcs/tests/Bug_2377_Regression/svc.conf: + * orbsvcs/tests/Bug_2925_Regression/svc.conf: + * orbsvcs/tests/Bug_3387_Regression/NotSvc.conf: + * orbsvcs/tests/Bug_3418_Regression/m.conf: + * orbsvcs/tests/Bug_3444_Regression/diop_svc.conf: + * orbsvcs/tests/Bug_3444_Regression/miop_svc.conf: + * orbsvcs/tests/CosEvent/Basic/svc.pull.conf: + * orbsvcs/tests/CosEvent/Timeout/cosevent.conf: + * orbsvcs/tests/EC_MT_Mcast/svc.conf: + * orbsvcs/tests/EC_Mcast/svc.conf: + * orbsvcs/tests/EC_Throughput/ec.conf: + * orbsvcs/tests/Event/Basic/control.conf: + * orbsvcs/tests/Event/Basic/mt.svc.conf: + * orbsvcs/tests/Event/Basic/observer.conf: + * orbsvcs/tests/Event/Basic/svc.complex.conf: + * orbsvcs/tests/Event/Basic/svc.conf: + * orbsvcs/tests/Event/Mcast/Complex/consumer-ec.conf: + * orbsvcs/tests/Event/Mcast/Complex/supplier-ec.conf: + * orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated/supplier.conf: + * orbsvcs/tests/Event/Mcast/Two_Way/gateway.conf: + * orbsvcs/tests/Event/Performance/ec.list.conf: + * orbsvcs/tests/Event/Performance/ec.mt.conf: + * orbsvcs/tests/Event/Performance/ec.rb_tree.conf: + * orbsvcs/tests/Event/Performance/ec.st.conf: + * orbsvcs/tests/Event/Performance/latency.conf: + * orbsvcs/tests/Event/UDP/svc.conf: + * orbsvcs/tests/HTIOP/AMI/exclusive.conf: + * orbsvcs/tests/HTIOP/AMI/muxed.conf: + * orbsvcs/tests/ImplRepo/scale/client.conf: + * orbsvcs/tests/InterfaceRepo/Persistence_Test/svc.conf: + * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/svc.conf: + * orbsvcs/tests/Miop/McastHello/svc.conf: + * orbsvcs/tests/Notify/Basic/notify.mt.conf: + * orbsvcs/tests/Notify/Basic/notify.reactive.conf: + * orbsvcs/tests/Notify/Basic/notify.rt.conf: + * orbsvcs/tests/Notify/Blocking/notify.conf: + * orbsvcs/tests/Notify/Bug_1385_Regression/notify.conf: + * orbsvcs/tests/Notify/Bug_1884_Regression/ecf.conf: + * orbsvcs/tests/Notify/Lanes/consumer.conf: + * orbsvcs/tests/Notify/Persistent_Filter/NS.conf: + * orbsvcs/tests/Notify/PluggableTopology/plugtop_ns.conf: + * orbsvcs/tests/Notify/Reconnecting/event.conf: + * orbsvcs/tests/Notify/Reconnecting/ns_mt.conf: + * orbsvcs/tests/Notify/Reconnecting/ns_mt_both.conf: + * orbsvcs/tests/Notify/Reconnecting/ns_mt_topo.conf: + * orbsvcs/tests/Notify/Reconnecting/ns_st.conf: + * orbsvcs/tests/Notify/Reconnecting/ns_st_both.conf: + * orbsvcs/tests/Notify/Reconnecting/ns_st_topo.conf: + * orbsvcs/tests/Notify/ThreadPool/consumer.conf: + * orbsvcs/tests/Notify/ThreadPool/notify.conf: + * orbsvcs/tests/Notify/ThreadPool/supplier.conf: + * orbsvcs/tests/Notify/Validate_Client/notify.conf: + * orbsvcs/tests/Notify/XML_Persistence/svc.conf: + * orbsvcs/tests/Notify/performance-tests/RedGreen/listener.conf: + * orbsvcs/tests/Notify/performance-tests/RedGreen/lookup.conf: + * orbsvcs/tests/Notify/performance-tests/RedGreen/svc.conf: + * orbsvcs/tests/Notify/performance-tests/scripts/1_Path_Period_0_Lanes/cos_notify.conf: + * orbsvcs/tests/Notify/performance-tests/scripts/1_Path_Period_0_Lanes/rt_notify.conf: + * orbsvcs/tests/Notify/performance-tests/scripts/3_Path_Period_10ms_Lanes/cos_notify.conf: + * orbsvcs/tests/Notify/performance-tests/scripts/3_Path_Period_10ms_Lanes/rt_notify.conf: + * orbsvcs/tests/Notify/performance-tests/scripts/Max_Throughput/Notify/notify.conf: + * orbsvcs/tests/Notify/performance-tests/scripts/Max_Throughput/Notify_RTCORBA/notify.conf: + * orbsvcs/tests/Notify/performance-tests/scripts/Paths_vs_Throughput/cos_notify.conf: + * orbsvcs/tests/Notify/performance-tests/scripts/Paths_vs_Throughput/rt_notify.conf: + * orbsvcs/tests/Security/BiDirectional/client.conf: + * orbsvcs/tests/Security/BiDirectional/server.conf: + * orbsvcs/tests/Security/Bug_2908_Regression/client.conf: + * orbsvcs/tests/Security/Bug_2908_Regression/server.conf: + * orbsvcs/tests/Security/EndpointPolicy/svc.conf: + * orbsvcs/tests/Security/InsecureReferences/client.conf: + * orbsvcs/tests/Security/MT_IIOP_SSL/client.conf: + * orbsvcs/tests/Security/MT_IIOP_SSL/server.conf: + * orbsvcs/tests/Security/MT_SSLIOP/client.conf: + * orbsvcs/tests/Security/MT_SSLIOP/server.conf: + * orbsvcs/tests/Security/ssliop_CSD/csd.conf: + * orbsvcs/tests/Security/ssliop_corbaloc/client.conf: + * orbsvcs/tests/Security/ssliop_corbaloc/server.conf: + * orbsvcs/tests/unit/Notify/MC/MonitorManager/svc.conf: + * performance-tests/Protocols/altq.conf: + * performance-tests/Protocols/svc.conf: + * performance-tests/RTCorba/Thread_Pool/svc.conf: + * tests/AMI/muxed.conf: + * tests/AMI_Timeouts/svc.conf: + * tests/Bug_2186_Regression/server.conf: + * tests/Bug_2935_Regression/middle.conf: + * tests/Bug_3000_Regression/rw.conf: + * tests/Bug_3068_Regression/client.conf: + * tests/Bug_3163_Regression/server.conf: + * tests/Bug_3251_Regression/Bug_3251.conf: + * tests/Bug_3598a_Regression/svc.conf: + * tests/Bug_3630_Regression/TAO Conf File.conf: + * tests/Bug_3630_Regression/TAO_Conf_File.conf: + * tests/Bug_3683_Regression/svc.conf: + * tests/Bug_3801_Regression/exclusive.conf: + * tests/Bug_3801_Regression/muxed.conf: + * tests/Bug_3837_Regression/logger.conf: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/svc.conf: + * tests/CSD_Strategy_Tests/TP_Test_Static/svc.conf: + * tests/CodeSets/simple/cs_test.conf: + * tests/CodeSets/simple/svc.conf: + * tests/CodeSets/simple/wcs_test.conf: + * tests/Collocation_Opportunities/svc.conf: + * tests/Exposed_Policies/svc.conf: + * tests/Leader_Followers/select_mt.conf: + * tests/Leader_Followers/tp.conf: + * tests/ORB_Local_Config/Bug_1459/a.conf: + * tests/ORB_Local_Config/Bug_1459/b.conf: + * tests/ORB_Local_Config/Bug_1459/d.conf: + * tests/ORB_Local_Config/Bug_1459/m1.conf: + * tests/ORB_Local_Config/Bug_3049/a.conf: + * tests/ORB_Local_Config/Service_Dependency/Service_Config_Test.conf: + * tests/ORB_Local_Config/Two_DLL_ORB/primary-csd.conf: + * tests/ORB_Local_Config/Two_DLL_ORB/primary-ssl.conf: + * tests/ORB_Local_Config/Two_DLL_ORB/secondary-csd.conf: + * tests/ORB_Local_Config/Two_DLL_ORB/secondary-ssl.conf: + * tests/Oneway_Send_Timeouts/block_flush.conf: + * tests/Oneway_Send_Timeouts/lf_flush.conf: + * tests/Oneway_Send_Timeouts/reactive_flush.conf: + * tests/Optimized_Connection/oc_svc.conf: + * tests/POA/EndpointPolicy/multi_prot.conf: + * tests/POA/Explicit_Activation/alternate.conf: + * tests/Parallel_Connect_Strategy/blocked.conf: + * tests/Parallel_Connect_Strategy/reactive.conf: + * tests/RTCORBA/Banded_Connections/svc.conf: + * tests/RTCORBA/Bug_3382_Regression/svc.conf: + * tests/RTCORBA/Bug_3643_Regression/svc.conf.dynamic: + * tests/RTCORBA/Client_Propagated/svc.conf: + * tests/RTCORBA/Client_Protocol/svc.conf: + * tests/RTCORBA/Collocation/continuous.conf: + * tests/RTCORBA/Collocation/svc.conf: + * tests/RTCORBA/Destroy_Thread_Pool/continuous.conf: + * tests/RTCORBA/Dynamic_Thread_Pool/continuous.conf: + * tests/RTCORBA/Dynamic_Thread_Pool/svc.conf: + * tests/RTCORBA/Linear_Priority/svc.conf: + * tests/RTCORBA/MT_Client_Protocol_Priority/svc.conf: + * tests/RTCORBA/Persistent_IOR/continuous.conf: + * tests/RTCORBA/Policy_Combinations/svc.conf: + * tests/RTCORBA/Priority_Inversion_With_Bands/continuous.conf: + * tests/RTCORBA/Priority_Inversion_With_Bands/svc.conf: + * tests/RTCORBA/Profile_And_Endpoint_Selection/svc.conf: + * tests/RTCORBA/Server_Declared/continuous.conf: + * tests/RTCORBA/Server_Declared/svc.conf: + * tests/RTCORBA/Server_Protocol/server_iiop.conf: + * tests/RTCORBA/Server_Protocol/server_iiop_shmiop.conf: + * tests/RTCORBA/Server_Protocol/server_iiop_uiop.conf: + * tests/RTCORBA/Server_Protocol/server_reverse.conf: + * tests/RTCORBA/Server_Protocol/server_reverse_nt.conf: + * tests/RTCORBA/Server_Protocol/server_shmiop.conf: + * tests/RTCORBA/Server_Protocol/server_uiop.conf: + * tests/RTCORBA/Thread_Pool/continuous.conf: + * tests/RTCORBA/Thread_Pool/svc.conf: + * tests/TransportCurrent/Framework/client-static.conf: + * tests/TransportCurrent/Framework/client.conf: + * tests/TransportCurrent/Framework/server-static.conf: + * tests/TransportCurrent/Framework/server.conf: + * tests/TransportCurrent/IIOP/client_dynamic.conf: + * tests/TransportCurrent/IIOP/client_static.conf: + * tests/TransportCurrent/IIOP/server_dynamic.conf: + * tests/TransportCurrent/IIOP/server_static.conf: + Fuzz. Added lacking $Id string. + +Thu Apr 21 13:02:25 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Updated test list + + * tests/AMI/mt_noupcall.conf: + * tests/AMI/run_mt_noupcall.pl: + * tests/AMI/run_test.pl: + New run_mt_noupcall, the existing script was using -ORBCollocation no + which doesn't work with AMI and mt_noupcall + + * tests/AMI/simple_client.cpp: + Layout change + +Thu Apr 21 12:07:41 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Run AMI test with more options + + * tests/AMI/exclusive.conf: + * tests/AMI/server.conf: + Added Id tag + + * tests/AMI/mt_noupcall.conf: + New file for testing with mt_noupcall + + * tests/AMI/run_test.pl: + Add option -mt_noupcall and give client/server separate debug levels + +Thu Apr 21 11:17:36 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Wait_On_LF_No_Upcall.cpp: + Log transport id + +Thu Apr 21 10:31:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Connection_Handler.cpp: + Use the orb core reactor which is the LF reactor + +Wed Apr 20 08:59:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp: + Improved portability + + * bin/tao_orb_tests.lst: + Added new test + + * tao/Leader_Follower.h: + Layout change + + * tao/Strategies/SHMIOP_Acceptor.cpp: + * tao/Wait_On_LF_No_Upcall.cpp: + Fixed coverity errors + + * tests/Bug_3531b_Regression: + * tests/Bug_3531b_Regression/Bug_3531b_Regression.mpc: + * tests/Bug_3531b_Regression/run_test.pl: + * tests/Bug_3531b_Regression/server.cpp: + New test + +Wed Apr 20 09:52:52 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO version 2.0.2 released. + +Local Variables: +mode: change-log +add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time)) +indent-tabs-mode: nil +End: +ambiguous diff --git a/TAO/MPC/config/taobaseidldefaults.mpb b/TAO/MPC/config/taobaseidldefaults.mpb index 510dcce15a0..8f40f508f9a 100644 --- a/TAO/MPC/config/taobaseidldefaults.mpb +++ b/TAO/MPC/config/taobaseidldefaults.mpb @@ -20,7 +20,7 @@ project: build_files { libpath = $(ACE_ROOT)/lib inputext = .idl source_pre_extension = C - header_pre_extension = C, S + header_pre_extension = C source_outputext = .cpp, .cxx, .cc, .C header_outputext = .h, .hpp, .hxx, .hh keyword idlflags = commandflags @@ -30,9 +30,6 @@ project: build_files { commandflags(!-SS && !-Ssi || !-Sci || -GT && !-SS && !-oS) += .inl, .i } optional(inline_pre_extension) { - commandflags(!-SS && !-Ssi && !-oS) += S - } - optional(inline_pre_extension) { commandflags(!-Sci) += C } @@ -46,6 +43,9 @@ project: build_files { optional(header_outputext) { commandflags(-SS && !-oS) += S } + optional(header_pre_extension) { + commandflags(!-oS) += S + } // Other optional(template_outputext) { @@ -59,11 +59,11 @@ project: build_files { } optional(source_pre_extension) { - commandflags(-Gsv) += _svnt + commandflags(-Gsv) += _svnt, _svnt_T } optional(header_pre_extension) { - commandflags(-Gsv) += _svnt + commandflags(-Gsv) += _svnt, _svnt_T } optional(source_pre_extension) { @@ -74,14 +74,6 @@ project: build_files { commandflags(-Gcn) += _conn } - optional(source_pre_extension) { - commandflags(-Gex) += _exec - } - - optional(header_pre_extension) { - commandflags(-Gex) += _exec - } - optional(generic_outputext) { commandflags(-Glem || -GM) += .idl } diff --git a/TAO/MPC/modules/IDLHelper.pm b/TAO/MPC/modules/IDLHelper.pm index 553d93207de..cc33ad2ddf9 100644 --- a/TAO/MPC/modules/IDLHelper.pm +++ b/TAO/MPC/modules/IDLHelper.pm @@ -10,6 +10,19 @@ sub get_output { my($self, $file, $flags) = @_; my @out; + # handle generated executor files (if any) + if ($flags =~ /-Gex/ && !($flags =~ /-oN/)) { + my $gendir = ''; + if ($flags =~ /-oE\s*(\S+)/) { + $gendir = $1; + if (!($gendir =~ /(\\|\/)$/)) { + $gendir .= '/'; + } + } + $file =~ /^(.*)(\.p?idl)$/; + push(@out, $gendir.$1."_exec.h"); + push(@out, $gendir.$1."_exec.cpp"); + } if ($flags =~ /-Gxhex/ && $flags =~ /-Wb,exec_export_include=(\S*)/) { push(@out, $1); } @@ -1,4 +1,7 @@ -USER VISIBLE CHANGES BETWEEN TAO-2.0.5 and TAO-2.1.0 +USER VISIBLE CHANGES BETWEEN TAO-2.0.6 and TAO-2.1.0 +==================================================== + +USER VISIBLE CHANGES BETWEEN TAO-2.0.5 and TAO-2.0.6 ==================================================== . Added new define TAO_DEFAULT_COLLOCATION_STRATEGY (default = thru_poa) @@ -8,6 +11,19 @@ USER VISIBLE CHANGES BETWEEN TAO-2.0.5 and TAO-2.1.0 possible collocation, first direct if possible, then through_poa if possible else no collocation. +. Enhanced the RW -ORBWaitStrategy and the EXCLUSIVE -ORBTransportMuxStrategy + to also work with AMI requests. + +. mt_noupcall has been improved and generically speaking the handling of client + leader threads in LF has been improved and fixed of potential deadlock + situations + +. The TAO skeletons got refactored to reduced footprint, a footprint saving + for the skeletons between 10 and 60% has been achieved. For the full + distribution including CIAO, DAnCE, OpenDDS, and DDS4CCM using RTI DDS this + resulted in a reduction of 650,000 lines of code. Also the S.inl files are + not generated anymore + USER VISIBLE CHANGES BETWEEN TAO-2.0.4 and TAO-2.0.5 ==================================================== diff --git a/TAO/PROBLEM-REPORT-FORM b/TAO/PROBLEM-REPORT-FORM index 0e87ae48e5c..2f51c8f5bb0 100644 --- a/TAO/PROBLEM-REPORT-FORM +++ b/TAO/PROBLEM-REPORT-FORM @@ -40,8 +40,8 @@ To: tao-bugs@list.isis.vanderbilt.edu Subject: [area]: [synopsis] - TAO VERSION: 2.0.5 - ACE VERSION: 6.0.5 + TAO VERSION: 2.0.6 + ACE VERSION: 6.0.6 HOST MACHINE and OPERATING SYSTEM: If on Windows based OS's, which version of WINSOCK do you diff --git a/TAO/TAO-INSTALL.html b/TAO/TAO-INSTALL.html index 256d8dc5b61..0dfd27c5502 100644 --- a/TAO/TAO-INSTALL.html +++ b/TAO/TAO-INSTALL.html @@ -103,9 +103,9 @@ bundle as a single piece instead of trying to mix and match things up.<P> <LI>Build and install the TAO release under <CODE>$TAO_ROOT</CODE>. <P> TAO also uses GNUmakefiles and project files generated - from MPC to compile. The beta or the release distribution will - come with stock GNUmakefiles, project files (for VC7.1 and VC - 8) and Borland makefiles which were all generated by + from MPC to compile. The full distribution will + come with stock GNUmakefiles, project files (for VC9 and VC + 10) awhich were all generated by MPC. </P> <P>The easiest and recommended way to compile the @@ -193,11 +193,6 @@ GNU Make can be obtained from various places in source and binary form. Please see <a href="../ACE/ACE-INSTALL.html">ACE-INSTALL.html</a> for details from where they can be obtained.<P> -<h2><strong><a name="makenotes">Explicit templates</a></strong></h2> - -It is not possible to use TAO with explicit templates. Your compiler -must support implicit templates. <P> - <HR><P> <h3>Using cross compilation</h3> @@ -438,22 +433,6 @@ points are also relevant to users who are trying to use TAO with VC++ files. If something is missing then it is probably a bug with MPC. Please report such bugs to the tao-users newsgroups. -<H4>Borland C++ Builder</H4> <P> - -To build TAO using C++Builder please follow the -<A HREF="../ACE/ACE-INSTALL.html#borland">ACE installation notes</A>, with the -difference being that you first build ACE and then you -give the following command in the $ACE_ROOT\TAO directory:<BR> -<BLOCKQUOTE><CODE> -make -f Makefile.bor -</CODE></BLOCKQUOTE><P> - -For more detailed information on building and using TAO with Borland's -C++ Builder environment, please see the <A -HREF="http://www.tenermerx.com/programming/corba/tao_bcb/index.html">online</A> help -provided by <A HREF="mailto:chris@kohlhoff.com">Christopher -Kohlhoff</A>. <P> - <H4>Upgrading From Older Releases</H4> <P>When a newer version of ACE/TAO is installed, rebuild all should be @@ -497,17 +476,6 @@ The scripts may work on earlier versions of perl, but we cannot say for sure that they do.</P> <HR> -<H3>Native Exceptions</H3> - -<P>TAO will use native exceptions if ACE_HAS_EXCEPTIONS is defined when it is -compiled. This can be accomplished in two ways: by defining ACE_HAS_EXCEPTIONS -in the config.h or config-*.h files (such as on Windows) or by using -<CODE>make exceptions=1</CODE> when you compile TAO.</P> - -<P>Take note though, that this only enables support in ACE/TAO, the correct -compiler flags must also be given to the compiler to enable them.</P> - -<HR> <P> <H3>Minimum CORBA</H3> diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp index 856b20614c4..8604cf44788 100644 --- a/TAO/TAO_IDL/be/be_codegen.cpp +++ b/TAO/TAO_IDL/be/be_codegen.cpp @@ -43,12 +43,13 @@ TAO_CodeGen::TAO_CodeGen (void) server_template_header_ (0), server_skeletons_ (0), server_template_skeletons_ (0), - server_inline_ (0), anyop_header_ (0), anyop_source_ (0), gperf_input_stream_ (0), ciao_svnt_header_ (0), ciao_svnt_source_ (0), + ciao_svnt_template_header_ (0), + ciao_svnt_template_source_ (0), ciao_exec_header_ (0), ciao_exec_source_ (0), ciao_exec_idl_ (0), @@ -495,7 +496,7 @@ TAO_CodeGen::start_server_header (const char *fname) // We must include all the skeleton headers corresponding to // IDL files included by the current IDL file. // We will use the included IDL file names as they appeared - // in the original main IDL file, not the one which went + // in the original main IDL file, not the one which went // thru CC preprocessor. for (size_t j = 0; j < idl_global->n_included_idl_files (); @@ -676,18 +677,6 @@ TAO_CodeGen::start_server_skeletons (const char *fname) this->gen_skel_src_includes (); - // Only when we generate a server inline file generate the include - if (be_global->gen_server_inline ()) - { - // Generate the code that includes the inline file if not included in the - // header file. - *this->server_skeletons_ << "\n\n#if !defined (__ACE_INLINE__)\n"; - *this->server_skeletons_ << "#include \"" - << be_global->be_get_server_inline_fname (1) - << "\"\n"; - *this->server_skeletons_ << "#endif /* !defined INLINE */"; - } - // Begin versioned namespace support after initial headers have been // included, but before the inline file and post include // directives. @@ -756,39 +745,6 @@ TAO_CodeGen::server_template_skeletons (void) return this->server_template_skeletons_; } -// Set the server inline stream. -int -TAO_CodeGen::start_server_inline (const char *fname) -{ - // Clean up between multiple files. - delete this->server_inline_; - - ACE_NEW_RETURN (this->server_inline_, - TAO_OutStream, - -1); - - if (this->server_inline_->open (fname, TAO_OutStream::TAO_SVR_INL) == -1) - { - return -1; - } - - // Generate the ident string, if any. - this->gen_ident_string (this->server_inline_); - - // Begin versioned namespace support after initial headers, if any, have been - // included. - *this->server_inline_ << be_global->versioning_begin (); - - return 0; -} - -// Get the server inline stream. -TAO_OutStream * -TAO_CodeGen::server_inline (void) -{ - return this->server_inline_; -} - int TAO_CodeGen::start_anyop_header (const char *fname) { @@ -1112,7 +1068,7 @@ TAO_CodeGen::start_ciao_svnt_header (const char *fname) << "# pragma once\n" << "#endif /* ACE_LACKS_PRAGMA_ONCE */\n"; - this->gen_svnt_hdr_includes (); + this->gen_svnt_hdr_includes (this->ciao_svnt_header_); return 0; } @@ -1154,9 +1110,131 @@ TAO_CodeGen::start_ciao_svnt_source (const char *fname) *this->ciao_svnt_source_ << "#include \"" << be_global->be_get_ciao_svnt_hdr_fname (true) + << "\"" << be_nl; + + *this->ciao_svnt_source_ + << "#include \"" + << be_global->be_get_ciao_tmpl_svnt_hdr_fname(true) << "\""; - this->gen_svnt_src_includes (); + this->gen_svnt_src_includes (this->ciao_svnt_source_); + + return 0; +} + +int +TAO_CodeGen::start_ciao_svnt_template_header (const char *fname) +{ + // Clean up between multiple files. + delete this->ciao_svnt_template_header_; + + ACE_NEW_RETURN (this->ciao_svnt_template_header_, + TAO_OutStream, + -1); + + int status = + this->ciao_svnt_template_header_->open (fname, + TAO_OutStream::CIAO_SVNT_T_HDR); + + if (status == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("TAO_CodeGen::start_ciao_svnt_template_header - ") + ACE_TEXT ("Error opening file\n")), + -1); + } + + TAO_OutStream &os = *this->ciao_svnt_template_header_; + + os << be_nl + << "// TAO_IDL - Generated from" << be_nl + << "// " << __FILE__ << ":" << __LINE__ + << be_nl_2; + + // Generate the #ident string, if any. + this->gen_ident_string (this->ciao_svnt_template_header_); + + // Generate the #ifndef clause. + this->gen_ifndef_string (fname, + this->ciao_svnt_template_header_, + "CIAO_SESSION_", + "_H_"); + + if (be_global->pre_include () != 0) + { + os << "#include /**/ \"" + << be_global->pre_include () + << "\"\n"; + } + + // All CIAO examples so far have component skeleton and servant + // generated code in the same library, using the skel export macro, + // so the values for the servant export default to the skel values. + // Eventually, there should be a way to completely decouple them. + if (be_global->svnt_export_include () != 0) + { + os << "\n#include /**/ \"" + << be_global->svnt_export_include () + << "\"\n"; + } + else if (be_global->skel_export_include () != 0) + { + os << "\n#include /**/ \"" + << be_global->skel_export_include () + << "\"\n"; + } + + // Some compilers don't optimize the #ifndef header include + // protection, but do optimize based on #pragma once. + os << "\n#if !defined (ACE_LACKS_PRAGMA_ONCE)\n" + << "# pragma once\n" + << "#endif /* ACE_LACKS_PRAGMA_ONCE */\n"; + + this->gen_svnt_hdr_includes (this->ciao_svnt_template_header_); + + return 0; +} + +int +TAO_CodeGen::start_ciao_svnt_template_source (const char *fname) +{ + // Clean up between multiple files. + delete this->ciao_svnt_template_source_; + + ACE_NEW_RETURN (this->ciao_svnt_template_source_, + TAO_OutStream, + -1); + + int status = + this->ciao_svnt_template_source_->open (fname, + TAO_OutStream::CIAO_SVNT_T_IMPL); + + if (status == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("TAO_CodeGen::") + ACE_TEXT ("start_ciao_svnt_template_source - ") + ACE_TEXT ("Error opening file\n")), + -1); + } + + TAO_OutStream &os = *this->ciao_svnt_template_source_; + + os << be_nl + << "// TAO_IDL - Generated from" << be_nl + << "// " << __FILE__ << ":" << __LINE__ + << be_nl_2; + + // Generate the #ident string, if any. + this->gen_ident_string (this->ciao_svnt_template_source_); + + // Generate the include statement for the server header. + *this->ciao_svnt_template_source_ + << "#include \"" + << be_global->be_get_ciao_svnt_hdr_fname (true) + << "\"" << be_nl; + + this->gen_svnt_src_includes (this->ciao_svnt_template_source_); return 0; } @@ -1172,6 +1250,19 @@ TAO_CodeGen::ciao_svnt_source (void) { return this->ciao_svnt_source_; } + +TAO_OutStream * +TAO_CodeGen::ciao_svnt_template_header (void) +{ + return this->ciao_svnt_template_header_; +} + +TAO_OutStream * +TAO_CodeGen::ciao_svnt_template_source (void) +{ + return this->ciao_svnt_template_source_; +} + int TAO_CodeGen::start_ciao_exec_header (const char *fname) { @@ -1183,8 +1274,8 @@ TAO_CodeGen::start_ciao_exec_header (const char *fname) -1); int status = - this->ciao_exec_header_->open (fname, - TAO_OutStream::CIAO_EXEC_HDR); + this->ciao_exec_header_->open (fname, + TAO_OutStream::CIAO_EXEC_HDR); if (status == -1) { @@ -1240,7 +1331,6 @@ TAO_CodeGen::start_ciao_exec_source (const char *fname) int status = this->ciao_exec_source_->open (fname, TAO_OutStream::CIAO_EXEC_IMPL); - if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, @@ -1654,17 +1744,6 @@ TAO_CodeGen::end_server_header (void) << be_global->be_get_server_template_hdr_fname (true) << "\"\n"; } - - // Only when we generate a server inline file generate the include - if (be_global->gen_server_inline ()) - { - // Insert the code to include the inline file. - *os << "\n#if defined (__ACE_INLINE__)\n"; - *os << "#include \"" - << be_global->be_get_server_inline_fname (1) - << "\"\n"; - *os << "#endif /* defined INLINE */"; - } } if (be_global->post_include () != 0) @@ -1682,18 +1761,6 @@ TAO_CodeGen::end_server_header (void) return 0; } -void -TAO_CodeGen::end_server_inline (void) -{ - *this->server_inline_ << "\n"; - - // End versioned namespace support. Do not place include directives - // before this. - *this->server_inline_ << be_global->versioning_end (); - - *this->server_inline_ << "\n"; -} - int TAO_CodeGen::end_implementation_header (const char *fname) { @@ -1869,6 +1936,43 @@ TAO_CodeGen::end_ciao_svnt_source (void) } int +TAO_CodeGen::end_ciao_svnt_template_header (void) +{ + *this->ciao_svnt_template_header_ << be_nl + << "#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)" + << be_nl << "#include \"" + << be_global->be_get_ciao_tmpl_svnt_src_fname (true) + << "\"" << be_nl + << "#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */" + << be_nl_2 + << "#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)" + << be_nl << "#pragma implementation (\"" + << be_global->be_get_ciao_tmpl_svnt_src_fname (true) + << "\")" + << be_nl << "#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */" + << be_nl; + + if (be_global->post_include () != 0) + { + *this->ciao_svnt_template_header_ << "\n\n#include /**/ \"" + << be_global->post_include () + << "\""; + } + + *this->ciao_svnt_template_header_ << "\n\n#endif /* ifndef */\n"; + + return 0; +} + +int +TAO_CodeGen::end_ciao_svnt_template_source (void) +{ + *this->ciao_svnt_template_source_ << "\n"; + + return 0; +} + +int TAO_CodeGen::end_ciao_exec_header (void) { if (be_global->post_include () != 0) @@ -2045,7 +2149,7 @@ TAO_CodeGen::gen_export_file (const char *filename, ACE_CString file_str; const char *output_path = - be_util::get_output_path (false, for_skel); + be_util::get_output_path (false, for_skel, false); if (output_path != 0) { @@ -2775,6 +2879,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"); } @@ -3198,7 +3304,7 @@ TAO_CodeGen::gen_typecode_includes (TAO_OutStream * stream) } void -TAO_CodeGen::gen_svnt_hdr_includes (void) +TAO_CodeGen::gen_svnt_hdr_includes (TAO_OutStream *stream) { ACE_CString container_file ("ciao/Containers/"); container_file += be_global->ciao_container_type (); @@ -3207,7 +3313,7 @@ TAO_CodeGen::gen_svnt_hdr_includes (void) container_file += "_ContainerC.h"; this->gen_standard_include ( - this->ciao_svnt_header_, + stream, container_file.c_str ()); ACE_CString context_file ("ciao/Contexts/"); @@ -3217,55 +3323,59 @@ TAO_CodeGen::gen_svnt_hdr_includes (void) context_file += "_Context_T.h"; this->gen_standard_include ( - this->ciao_svnt_header_, - context_file.c_str ()); + stream, + context_file.c_str ()); ACE_CString servant_file ("ciao/Servants/"); servant_file += be_global->ciao_container_type (); servant_file += "/Servant_Impl_T.h"; this->gen_standard_include ( - this->ciao_svnt_header_, + stream, servant_file.c_str ()); this->gen_standard_include ( - this->ciao_svnt_header_, + stream, "ciao/Servants/Home_Servant_Impl_T.h"); - *this->ciao_svnt_header_ << be_nl; + this->gen_standard_include ( + stream, + "ciao/Servants/Facet_Servant_Base_T.h"); + + *stream << be_nl; this->gen_standard_include ( - this->ciao_svnt_header_, + stream, be_global->be_get_ciao_exec_stub_hdr_fname (true)); - *this->ciao_svnt_header_ << be_nl; + *stream << be_nl; this->gen_standard_include ( - this->ciao_svnt_header_, + stream, be_global->be_get_server_hdr_fname (true)); } void -TAO_CodeGen::gen_svnt_src_includes (void) +TAO_CodeGen::gen_svnt_src_includes (TAO_OutStream *stream) { this->gen_standard_include ( - this->ciao_svnt_source_, + stream, "ciao/Valuetype_Factories/Cookies.h"); this->gen_standard_include ( - this->ciao_svnt_source_, + stream, "tao/SystemException.h"); this->gen_standard_include ( - this->ciao_svnt_source_, + stream, "tao/Valuetype/ValueFactory.h"); this->gen_standard_include ( - this->ciao_svnt_source_, + stream, "tao/ORB_Core.h"); this->gen_standard_include ( - this->ciao_svnt_source_, + stream, "ace/SString.h"); } @@ -3372,11 +3482,31 @@ TAO_CodeGen::gen_exec_idl_includes (void) const char *exec_idl_fname = be_global->be_get_ciao_exec_idl_fname (true); - /// No need to have the exec IDL file include itself. - if (ACE_OS::strcmp (*path_tmp, exec_idl_fname) != 0) + bool skip_incl = false; + // special case for ami4ccm, if xxxE.idl. don't include xxxAE.idl. + char *exe_idl_fname = ACE_OS::strdup(exec_idl_fname); + char * base = ACE_OS::strstr(exe_idl_fname, "E.idl"); + if (base != 0) { - this->gen_standard_include (this->ciao_exec_idl_, *path_tmp); - } + static char test[MAXPATHLEN]; + ACE_OS::memset (test, 0, MAXPATHLEN); + + ACE_OS::strncpy(test, exe_idl_fname, base - exe_idl_fname); + ACE_OS::strcat (test, "AE.idl"); + + if (ACE_OS::strstr ( *path_tmp, test) != 0) + { + //skip include + skip_incl = true; + } + + } + /// No need to have the exec IDL file include itself. + if ((ACE_OS::strcmp (*path_tmp, exec_idl_fname) != 0) && + (!skip_incl)) + { + this->gen_standard_include (this->ciao_exec_idl_, *path_tmp); + } } } @@ -3620,7 +3750,6 @@ TAO_CodeGen::destroy (void) delete this->server_skeletons_; delete this->server_template_skeletons_; delete this->client_inline_; - delete this->server_inline_; delete this->anyop_source_; delete this->anyop_header_; delete this->ciao_svnt_header_; diff --git a/TAO/TAO_IDL/be/be_global.cpp b/TAO/TAO_IDL/be/be_global.cpp index d24446abc8e..7fbf68871e3 100644 --- a/TAO/TAO_IDL/be/be_global.cpp +++ b/TAO/TAO_IDL/be/be_global.cpp @@ -72,9 +72,10 @@ BE_GlobalData::BE_GlobalData (void) server_template_hdr_ending_ (ACE::strnew ("S_T.h")), server_skeleton_ending_ (ACE::strnew ("S.cpp")), server_template_skeleton_ending_ (ACE::strnew ("S_T.cpp")), - server_inline_ending_ (ACE::strnew ("S.inl")), anyop_hdr_ending_ (ACE::strnew ("A.h")), anyop_src_ending_ (ACE::strnew ("A.cpp")), + ciao_svnt_hdr_template_ending_ (ACE::strnew ("_svnt_T.h")), + ciao_svnt_src_template_ending_ (ACE::strnew ("_svnt_T.cpp")), ciao_svnt_hdr_ending_ (ACE::strnew ("_svnt.h")), ciao_svnt_src_ending_ (ACE::strnew ("_svnt.cpp")), ciao_exec_hdr_ending_ (ACE::strnew ("_exec.h")), @@ -92,6 +93,7 @@ BE_GlobalData::BE_GlobalData (void) stub_include_dir_ (0), skel_output_dir_ (0), anyop_output_dir_ (0), + exec_output_dir_ (0), any_support_ (true), cdr_support_ (true), tc_support_ (true), @@ -126,7 +128,6 @@ BE_GlobalData::BE_GlobalData (void) gen_anyop_files_ (false), gen_skel_files_ (true), gen_client_inline_ (true), - gen_server_inline_ (true), gen_client_stub_ (true), gen_server_skeleton_ (true), gen_local_iface_anyops_ (true), @@ -139,6 +140,7 @@ BE_GlobalData::BE_GlobalData (void) gen_ciao_exec_idl_ (false), gen_ciao_exec_impl_ (false), gen_ciao_exec_reactor_impl_ (false), + overwrite_not_exec_(false), gen_ciao_conn_impl_ (false), gen_dds_typesupport_idl_ (false), gen_ciao_valuefactory_reg_ (true), @@ -182,7 +184,8 @@ be_change_idl_file_extension (UTL_String* idl_file, const char *new_extension, bool base_name_only = false, bool for_anyop = false, - bool for_skel = false) + bool for_skel = false, + bool for_exec = false) { // @@ This shouldn't happen anyway; but a better error handling // mechanism is needed. @@ -227,7 +230,7 @@ be_change_idl_file_extension (UTL_String* idl_file, // Anyop * skel file output defaults to general output dir if not set. const char *output_path = - be_util::get_output_path (for_anyop, for_skel); + be_util::get_output_path (for_anyop, for_skel, for_exec); if (!base_name_only && output_path != 0) { @@ -272,7 +275,6 @@ be_change_idl_file_extension (UTL_String* idl_file, // Append the newextension. ACE_OS::strcat (fname, new_extension); - return fname; } @@ -389,17 +391,6 @@ BE_GlobalData::be_get_server_template_skeleton (UTL_String *idl_file_name, } const char * -BE_GlobalData::be_get_server_inline (UTL_String *idl_file_name, - bool base_name_only) -{ - return be_change_idl_file_extension (idl_file_name, - be_global->server_inline_ending (), - base_name_only, - false, - true); -} - -const char * BE_GlobalData::be_get_anyop_header (UTL_String *idl_file_name, bool base_name_only) { @@ -429,6 +420,16 @@ BE_GlobalData::be_get_ciao_svnt_header (UTL_String *idl_file_name, } const char * +BE_GlobalData::be_get_ciao_svnt_template_header (UTL_String *idl_file_name, + bool base_name_only) +{ + return be_change_idl_file_extension (idl_file_name, + be_global->ciao_svnt_header_template_ending (), + base_name_only); +} + + +const char * BE_GlobalData::be_get_ciao_svnt_source (UTL_String *idl_file_name, bool base_name_only) { @@ -438,12 +439,24 @@ BE_GlobalData::be_get_ciao_svnt_source (UTL_String *idl_file_name, } const char * +BE_GlobalData::be_get_ciao_svnt_template_source (UTL_String *idl_file_name, + bool base_name_only) +{ + return be_change_idl_file_extension (idl_file_name, + be_global->ciao_svnt_source_template_ending (), + base_name_only); +} + +const char * BE_GlobalData::be_get_ciao_exec_header (UTL_String *idl_file_name, bool base_name_only) { return be_change_idl_file_extension (idl_file_name, be_global->ciao_exec_header_ending (), - base_name_only); + base_name_only, + false, + false, + true); } const char * @@ -452,7 +465,10 @@ BE_GlobalData::be_get_ciao_exec_source (UTL_String *idl_file_name, { return be_change_idl_file_extension (idl_file_name, be_global->ciao_exec_source_ending (), - base_name_only); + base_name_only, + false, + false, + true); } const char * @@ -630,15 +646,6 @@ BE_GlobalData::be_get_server_template_skeleton_fname ( } const char * -BE_GlobalData::be_get_server_inline_fname ( - bool base_name_only) -{ - return - be_get_server_inline (idl_global->stripped_filename (), - base_name_only); -} - -const char * BE_GlobalData::be_get_anyop_source_fname ( bool base_name_only) { @@ -666,6 +673,15 @@ BE_GlobalData::be_get_ciao_svnt_hdr_fname ( } const char * +BE_GlobalData::be_get_ciao_tmpl_svnt_hdr_fname ( + bool base_name_only) +{ + return + be_get_ciao_svnt_template_header (idl_global->stripped_filename (), + base_name_only); +} + +const char * BE_GlobalData::be_get_ciao_svnt_src_fname ( bool base_name_only) { @@ -675,6 +691,15 @@ BE_GlobalData::be_get_ciao_svnt_src_fname ( } const char * +BE_GlobalData::be_get_ciao_tmpl_svnt_src_fname ( + bool base_name_only) +{ + return + be_get_ciao_svnt_template_source (idl_global->stripped_filename (), + base_name_only); +} + +const char * BE_GlobalData::be_get_ciao_exec_hdr_fname ( bool base_name_only) { @@ -1243,19 +1268,6 @@ BE_GlobalData::server_template_skeleton_ending (void) const } void -BE_GlobalData::server_inline_ending (const char* s) -{ - ACE::strdelete (this->server_inline_ending_); - this->server_inline_ending_ = ACE::strnew (s); -} - -const char* -BE_GlobalData::server_inline_ending (void) const -{ - return this->server_inline_ending_; -} - -void BE_GlobalData::anyop_header_ending (const char* s) { ACE::strdelete (this->anyop_hdr_ending_); @@ -1344,6 +1356,32 @@ BE_GlobalData::ciao_svnt_source_ending (void) const } void +BE_GlobalData::ciao_svnt_header_template_ending (const char* s) +{ + ACE::strdelete (this->ciao_svnt_hdr_template_ending_); + this->ciao_svnt_hdr_template_ending_ = ACE::strnew (s); +} + +const char* +BE_GlobalData::ciao_svnt_header_template_ending (void) const +{ + return this->ciao_svnt_hdr_template_ending_; +} + +void +BE_GlobalData::ciao_svnt_source_template_ending (const char* s) +{ + ACE::strdelete (this->ciao_svnt_src_template_ending_); + this->ciao_svnt_src_template_ending_ = ACE::strnew (s); +} + +const char* +BE_GlobalData::ciao_svnt_source_template_ending (void) const +{ + return this->ciao_svnt_src_template_ending_; +} + +void BE_GlobalData::ciao_exec_header_ending (const char* s) { ACE::strdelete (this->ciao_exec_hdr_ending_); @@ -1498,6 +1536,17 @@ BE_GlobalData::output_dir (void) const { return this->output_dir_; } +bool +BE_GlobalData::overwrite_not_exec (void) const +{ + return this->overwrite_not_exec_; +} + +void +BE_GlobalData::overwrite_not_exec (bool val) +{ + this->overwrite_not_exec_ = val; +} void BE_GlobalData::skel_output_dir (const char* s) @@ -1539,6 +1588,18 @@ BE_GlobalData::anyop_output_dir (void) const } void +BE_GlobalData::exec_output_dir (const char* s) +{ + ACE::strdelete (this->exec_output_dir_); + this->exec_output_dir_ = ACE::strnew (s); +} + +const char* +BE_GlobalData::exec_output_dir (void) const +{ + return this->exec_output_dir_; +} +void BE_GlobalData::any_support (bool val) { this->any_support_ = val; @@ -1972,9 +2033,6 @@ BE_GlobalData::destroy (void) ACE::strdelete (this->server_template_skeleton_ending_); this->server_template_skeleton_ending_ = 0; - ACE::strdelete (this->server_inline_ending_); - this->server_inline_ending_ = 0; - ACE::strdelete (this->anyop_hdr_ending_); this->anyop_hdr_ending_ = 0; @@ -2032,6 +2090,9 @@ BE_GlobalData::destroy (void) ACE::strdelete (this->anyop_output_dir_); this->anyop_output_dir_ = 0; + ACE::strdelete (this->exec_output_dir_); + this->exec_output_dir_ = 0; + if (0 != this->messaging_) { this->messaging_->destroy (); @@ -2304,18 +2365,6 @@ BE_GlobalData::gen_client_inline (bool val) } bool -BE_GlobalData::gen_server_inline (void) const -{ - return this->gen_server_inline_; -} - -void -BE_GlobalData::gen_server_inline (bool val) -{ - this->gen_server_inline_ = val; -} - -bool BE_GlobalData::gen_client_stub (void) const { return this->gen_client_stub_; @@ -2705,8 +2754,6 @@ BE_GlobalData::parse_args (long &i, char **av) // Default is "S.cpp". // <-sT Server's template skeleton file name ending> // Default is "S_T.cpp". - // <-si Server's inline file name ending> - // Default is "S.inl". // <-sI Server's implementation skeleton file name ending> // Default is "I.cpp". @@ -2722,12 +2769,6 @@ BE_GlobalData::parse_args (long &i, char **av) be_global->server_template_skeleton_ending (av[i + 1]); ++i; } - else if (av[i][2] == 'i') - { - idl_global->append_idl_flag (av[i + 1]); - be_global->server_inline_ending (av[i + 1]); - ++i; - } else if (av[i][2] == 'I') { idl_global->append_idl_flag (av[i + 1]); @@ -2736,7 +2777,7 @@ BE_GlobalData::parse_args (long &i, char **av) } else { - // I expect 's' or 'T' or 'i' or 't' after 's'. + // I expect 's' or 'T' or or 't' after 's'. ACE_ERROR (( LM_ERROR, ACE_TEXT ("IDL: I don't understand the '%C' option\n"), @@ -2924,6 +2965,61 @@ BE_GlobalData::parse_args (long &i, char **av) )); } } + else if (av[i][2] == 'E') + { + if (av[i][3] == '\0') + { + idl_global->append_idl_flag (av[i + 1]); + int result = ACE_OS::mkdir (av[i + 1]); + + #if !defined (__BORLANDC__) + if (result != 0 && errno != EEXIST) + #else + // The Borland RTL doesn't give EEXIST back, only EACCES in + // case the directory exists, reported to Borland as QC 9495 + if (result != 0 && errno != EEXIST && errno != EACCES) + #endif + { + ACE_ERROR (( + LM_ERROR, + ACE_TEXT ("IDL: unable to create directory %C") + ACE_TEXT (" specified by -oE option\n"), + av[i + 1] + )); + + break; + } + + be_global->exec_output_dir (av[i + 1]); + ++i; + } + else + { + ACE_ERROR (( + LM_ERROR, + ACE_TEXT ("IDL: I don't understand") + ACE_TEXT (" the '%C' option\n"), + av[i] + )); + } + } + else if (av[i][2] == 'N') + { + if (av[i][3] == '\0') + { + // Don't overwrite exec files. + be_global->overwrite_not_exec (true); + } + else + { + ACE_ERROR (( + LM_ERROR, + ACE_TEXT ("IDL: I don't understand") + ACE_TEXT (" the '%C' option\n"), + av[i] + )); + } + } else if (av[i][2] == 'S') { if (av[i][3] == '\0') @@ -3423,7 +3519,6 @@ BE_GlobalData::parse_args (long &i, char **av) { // Disable skeleton file generation. be_global->gen_skel_files (false); - be_global->gen_server_inline (false); be_global->gen_server_skeleton (false); } else @@ -3437,12 +3532,7 @@ BE_GlobalData::parse_args (long &i, char **av) } else if (av[i][2] == 's') { - if (av[i][3] == 'i') - { - // No skeleton inline. - be_global->gen_server_inline (false); - } - else if (av[i][3] == 'c') + if (av[i][3] == 'c') { // No skeleton inline. be_global->gen_server_skeleton (false); diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp index b0028396a15..799dd96221d 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_; } @@ -1281,7 +1407,7 @@ be_interface::gen_optable_entries (be_interface *derived_interface, if (be_global->gen_direct_collocation ()) { *os << " &" - << derived_interface->full_direct_proxy_impl_name () + << this->full_direct_proxy_impl_name () << "::" << d->local_name (); } else @@ -1310,7 +1436,7 @@ be_interface::gen_optable_entries (be_interface *derived_interface, if (be_global->gen_direct_collocation ()) { *os << " &" - << derived_interface->full_direct_proxy_impl_name () + << this->full_direct_proxy_impl_name () << "::_get_" << d->local_name (); } else @@ -1332,7 +1458,7 @@ be_interface::gen_optable_entries (be_interface *derived_interface, if (be_global->gen_direct_collocation ()) { *os << " &" - << derived_interface->full_direct_proxy_impl_name () + << this->full_direct_proxy_impl_name () << "::_set_" << d->local_name (); } else @@ -1378,15 +1504,64 @@ be_interface::gen_optable_entries (be_interface *derived_interface, // We are an operation node. We use the original // operation name, not the one with _cxx_ in it. - *os << d->original_local_name () << ",&" - << full_skeleton_name << "::" - << d->local_name () << "_skel,"; - + // We need to the name of the base class!! But since + // we don't know whether this is an AMH class, we + // need to check this, using the full_skeleton_name + // TODO: find a more elegant solution for this + ACE_CString tmp (full_skeleton_name); + if (tmp.strstr ("AMH_") != ACE_String_Base_Const::npos) + { + ACE_CString name (d->full_name ()); + ACE_String_Base_Const::size_type const last = name.rfind(':') - 1; + name = name.substring (0, last); + if (name.rfind (':') != ACE_String_Base_Const::npos) + { + ACE_CString nspace = name.substring (0, name.rfind (':') - 1); + name = name.substring (name.rfind (':') + 1); + *os << d->original_local_name () << ",&POA_" + << nspace.c_str () << "::AMH_" + << name.c_str () << "::" + << d->original_local_name () + << "_skel,"; + } + else + { + *os << d->original_local_name () << ",&POA_AMH_" + << name.c_str () << "::" + << d->original_local_name () + << "_skel,"; + } + } + else + { + if (!d->is_abstract ()) + { + *os << d->original_local_name () << ",&POA_" + << d->full_name () << "_skel,"; + } + else + { + *os << d->original_local_name () << ",&" + << full_skeleton_name << "::" + << d->original_local_name () + << "_skel,"; + } + } if (be_global->gen_direct_collocation ()) { - *os << " &" - << derived_interface->full_direct_proxy_impl_name (); - *os << "::" << d->local_name (); + if (!d->is_abstract ()) + { + *os << " &" + << this->full_direct_proxy_impl_name () + << "::" << d->local_name (); + } + else + { + *os << " &" + << derived_interface->full_direct_proxy_impl_name () + << "::" << d->local_name (); + } + } else { @@ -1408,19 +1583,47 @@ be_interface::gen_optable_entries (be_interface *derived_interface, } // Generate only the "get" entry if we are readonly. - *os << "_get_" << d->original_local_name () << ",&" - << full_skeleton_name << "::_get_" - << d->local_name () << "_skel,"; + // we need to split the full name in order to push _set_ + // or _get_ in between the namespace and attribute name. - if (be_global->gen_direct_collocation ()) + //determine the correct namespace + ACE_CString nspace (d->full_name ()); + ACE_String_Base_Const::size_type const pos = nspace.rfind(':'); + nspace = nspace.substring(0, pos + 1); + + if (!d->is_abstract ()) { - *os << " &" - << derived_interface->full_direct_proxy_impl_name () - << "::_get_" << d->local_name (); + *os << "_get_" << d->original_local_name () << ",&POA_" + << nspace.c_str () << "_get_" + << d->original_local_name () << "_skel,"; + + if (be_global->gen_direct_collocation ()) + { + *os << " &" + << this->full_direct_proxy_impl_name () + << "::_get_" << d->local_name (); + } + else + { + *os << " 0"; + } } else { - *os << " 0"; + *os << "_get_" << d->original_local_name () << ",&" + << full_skeleton_name << "::_get_" + << d->original_local_name () << "_skel,"; + + if (be_global->gen_direct_collocation ()) + { + *os << " &" + << derived_interface->full_direct_proxy_impl_name () + << "::_get_" << d->local_name (); + } + else + { + *os << " 0"; + } } *os << "\n"; @@ -1429,20 +1632,41 @@ be_interface::gen_optable_entries (be_interface *derived_interface, if (!attr->readonly ()) { - // The set method - *os << "_set_" << d->original_local_name () << ",&" - << full_skeleton_name << "::_set_" - << d->local_name () << "_skel,"; - - if (be_global->gen_direct_collocation ()) + if (!d->is_abstract ()) { - *os << " &" - << derived_interface->full_direct_proxy_impl_name () - << "::_set_" << d->local_name (); + // The set method + *os << "_set_" << d->original_local_name () << ",&POA_" + << nspace.c_str () << "_set_" + << d->original_local_name () << "_skel,"; + + if (be_global->gen_direct_collocation ()) + { + *os << " &" + << this->full_direct_proxy_impl_name () + << "::_set_" << d->local_name (); + } + else + { + *os << " 0"; + } } else { - *os << " 0"; + // The set method in case abstract + *os << "_set_" << d->original_local_name () << ",&" + << full_skeleton_name << "::_set_" + << d->original_local_name () << "_skel,"; + + if (be_global->gen_direct_collocation ()) + { + *os << " &" + << derived_interface->full_direct_proxy_impl_name () + << "::_set_" << d->local_name (); + } + else + { + *os << " 0"; + } } *os << "\n"; @@ -1464,37 +1688,6 @@ be_interface::gen_optable_entries (be_interface *derived_interface, } void -be_interface::gen_collocated_skel_body (be_interface *derived, - be_interface *ancestor, - AST_Decl *d, - const char *prefix, - bool /* direct */, - UTL_ExceptList *, - TAO_OutStream *os) -{ - *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl - << "// " << __FILE__ << ":" << __LINE__; - - // Generate the static method corresponding to this method. - *os << be_nl_2 - << "ACE_INLINE void" << be_nl - << derived->full_direct_proxy_impl_name () - << "::" << prefix << d->local_name () << " (" - << be_idt_nl - << "TAO_Abstract_ServantBase *servant," << be_nl - << "TAO::Argument ** args)" << be_uidt_nl; - - *os << "{" << be_idt_nl - << ancestor->full_direct_proxy_impl_name () - << "::" << prefix << d->local_name () << " (" - << be_idt_nl - << "servant," << be_nl - << "args);" << be_uidt - << be_uidt_nl - << "}"<< be_nl; -} - -void be_interface::gen_ostream_operator (TAO_OutStream *os, bool /* use_underscore */) { @@ -2130,375 +2323,6 @@ be_interface::is_a_helper (be_interface * /*derived*/, } int -be_interface::gen_skel_helper (be_interface *derived, - be_interface *ancestor, - TAO_OutStream *os) -{ - // If derived and ancestor are same, skip it. - if (derived == ancestor) - { - return 0; - } - - // If an operation or an attribute is abstract (declared in an - // abstract interface), we will either generate the full - // definition (if there are no concrete interfaces between the - // abstract ancestor and us) or, if there is a concrete ancestor - // in between, we will catch its definition elsewhere in this - // traversal. - if (ancestor->is_abstract ()) - { - return 0; - } - - // Else generate code that does the cast to the appropriate type. - - if (ancestor->nmembers () > 0) - { - // If there are elements in ancestor scope i.e., any operations and - // attributes defined by "ancestor", become methods on the derived - // class which call the corresponding method of the base class by - // doing the proper casting. - for (UTL_ScopeActiveIterator si (ancestor, UTL_Scope::IK_decls); - !si.is_done (); - si.next ()) - { - // Get the next AST decl node - AST_Decl *d = si.item (); - AST_Decl::NodeType nt = d->node_type (); - - if (nt == AST_Decl::NT_op) - { - be_operation *op = - be_operation::narrow_from_decl (d); - - /// These are not generated on the server side. - if (op->is_sendc_ami ()) - { - continue; - } - - *os << be_nl_2 - << "// TAO_IDL - Generated from" << be_nl - << "// " << __FILE__ << ":" << __LINE__ - << be_nl_2; - - if (os->stream_type () == TAO_OutStream::TAO_SVR_HDR) - { - // Generate the static method corresponding to this method. - *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 - << be_uidt; - } - else - { // Generate code in the inline file. - // Generate the static method corresponding to this method. - *os << "ACE_INLINE" << be_nl - << "void" << be_nl - << derived->full_skel_name () << "::" - << d->local_name () - << "_skel (" << be_idt_nl - << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall," << be_nl - << "void * servant)" - << be_uidt_nl - << "{" << be_idt_nl; - - *os << ancestor->full_skel_name () - << " * const impl =" << be_idt_nl - << "static_cast<" - << derived->full_skel_name () - << " *> (servant);" << be_uidt_nl; - - *os << ancestor->full_skel_name () - << "::" << d->local_name () - << "_skel (" << be_idt_nl - << "server_request," << be_nl - << "servant_upcall," << be_nl - << "impl);" << be_uidt - << be_uidt_nl - << "}"; - } - } - else if (nt == AST_Decl::NT_attr) - { - AST_Attribute *attr = AST_Attribute::narrow_from_decl (d); - - if (attr == 0) - { - return -1; - } - - *os << be_nl_2; - - if (os->stream_type () == TAO_OutStream::TAO_SVR_HDR) - { - // Generate the static method corresponding to this method. - *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 - << "void * servant);" << be_uidt - << be_uidt; - } - else - { // Generate code in the inline file. - // Generate the static method corresponding to this method. - *os << "ACE_INLINE" << be_nl - << "void" << be_nl - << 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 - << be_uidt_nl - << "{" << be_idt_nl; - - *os << ancestor->full_skel_name () - << " * const impl = static_cast<" - << derived->full_skel_name () - << " *> (servant);" << be_nl; - - *os << ancestor->full_skel_name () - << "::_get_" << d->local_name () - << "_skel (" << be_idt << be_idt_nl - << "server_request," << be_nl - << "servant_upcall," << be_nl - << "impl);" << be_uidt - << be_uidt << be_uidt_nl - << "}"; - } - - if (!attr->readonly ()) - { - *os << be_nl_2; - - if (os->stream_type () == TAO_OutStream::TAO_SVR_HDR) - { - // Generate the static method corresponding to - // this method. - *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 - << "void * servant);" << be_uidt - << be_uidt; - } - else - { // Generate code in the inline file. - // Generate the static method corresponding to - // this method. - *os << "ACE_INLINE" << be_nl - << "void" << be_nl - << derived->full_skel_name () - << "::_set_" << d->local_name () - << "_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall," << be_nl - << "void * servant)" << be_uidt - << be_uidt_nl - << "{" << be_idt_nl; - - *os << ancestor->full_skel_name () - << " * const impl = static_cast<" - << derived->full_skel_name () - << " *> (servant);" << be_nl; - - *os << ancestor->full_skel_name () - << "::_set_" << d->local_name () - << "_skel (" << be_idt << be_idt_nl - << "server_request," << be_nl - << "servant_upcall," << be_nl - << "impl);" << be_uidt - << be_uidt << be_uidt_nl - << "}"; - } - } - } - } // End of FOR. - } - - return 0; -} - -int -be_interface::gen_colloc_op_decl_helper (be_interface *derived, - be_interface *ancestor, - TAO_OutStream *os) -{ - // If derived and ancestor are same, skip it. - if (derived == ancestor) - { - return 0; - } - - // If an operation or an attribute is abstract (declared in an - // abstract interface), we will either generate the full - // definition (if there are no concrete interfaces between the - // abstract ancestor and us) or, if there is a concrete ancestor - // in between, we will catch its definition elsewhere in this - // traversal. - if (ancestor->is_abstract () || ancestor->nmembers () == 0) - { - return 0; - } - - for (UTL_ScopeActiveIterator si (ancestor, UTL_Scope::IK_decls); - !si.is_done (); - si.next ()) - { - // Get the next AST decl node - AST_Decl *d = si.item (); - - if (d->node_type () == AST_Decl::NT_op) - { - *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl - << "// " << __FILE__ << ":" << __LINE__ << be_nl_2; - - // Generate the static method corresponding to this method. - *os << "static void" << be_nl - << d->local_name () << " (" << be_idt_nl - << "TAO_Abstract_ServantBase *servant, " - << "TAO::Argument **args);" << be_uidt_nl; - } - else if (d->node_type () == AST_Decl::NT_attr) - { - AST_Attribute *attr = AST_Attribute::narrow_from_decl (d); - - if (attr == 0) - { - return -1; - } - - // Generate the static method corresponding to this method. - *os << "static void" << be_nl - << "_get_" << d->local_name () << " (" << be_idt_nl - << "TAO_Abstract_ServantBase *servant, " - << "TAO::Argument **args);" << be_uidt_nl; - - if (!attr->readonly ()) - { - *os << be_nl_2; - - // Generate the static method corresponding to - // this method. - *os << "static void" << be_nl - << "_set_" << d->local_name () << " (" - << be_idt_nl - << "TAO_Abstract_ServantBase *servant, " - << "TAO::Argument **args);" << be_uidt_nl; - } - } - } - - return 0; -} - -int -be_interface::gen_colloc_op_defn_helper (be_interface *derived, - be_interface *ancestor, - TAO_OutStream *os) -{ - // If derived and ancestor are same, skip it. - if (derived == ancestor) - { - return 0; - } - - // If an operation or an attribute is abstract (declared in an - // abstract interface), we will either generate the full - // definition (if there are no concrete interfaces between the - // abstract ancestor and us) or, if there is a concrete ancestor - // in between, we will catch its definition elsewhere in this - // traversal. - if (ancestor->is_abstract () || ancestor->nmembers () == 0) - { - return 0; - } - - AST_Decl *d = 0; - be_operation *op = 0; - - for (UTL_ScopeActiveIterator si (ancestor, UTL_Scope::IK_decls); - !si.is_done (); - si.next ()) - { - // Get the next AST decl node - d = si.item (); - AST_Decl::NodeType nt = d->node_type (); - - if (nt == AST_Decl::NT_op) - { - op = be_operation::narrow_from_decl (d); - - /// Skip these on the skeleton side. - if (op->is_sendc_ami ()) - { - continue; - } - - if (be_global->gen_direct_collocation ()) - { - be_interface::gen_collocated_skel_body (derived, - ancestor, - d, - "", - true, - op->exceptions (), - os); - } - } - else if (nt == AST_Decl::NT_attr) - { - AST_Attribute *attr = AST_Attribute::narrow_from_decl (d); - - if (attr == 0) - { - return -1; - } - - if (be_global->gen_direct_collocation ()) - { - be_interface::gen_collocated_skel_body ( - derived, - ancestor, - d, - "_get_", - true, - attr->get_get_exceptions (), - os - ); - } - - if (!attr->readonly ()) - { - if (be_global->gen_direct_collocation ()) - { - be_interface::gen_collocated_skel_body ( - derived, - ancestor, - d, - "_set_", - true, - attr->get_set_exceptions (), - os - ); - } - } - } - } - - return 0; -} - -int be_interface::copy_ctor_helper (be_interface *derived, be_interface *base, TAO_OutStream *os) diff --git a/TAO/TAO_IDL/be/be_produce.cpp b/TAO/TAO_IDL/be/be_produce.cpp index aa74be74b5c..9cd87e5a950 100644 --- a/TAO/TAO_IDL/be/be_produce.cpp +++ b/TAO/TAO_IDL/be/be_produce.cpp @@ -74,6 +74,7 @@ trademarks or registered trademarks of Sun Microsystems, Inc. #include "be_extern.h" #include "fe_extern.h" #include "global_extern.h" +#include "be_util.h" // Clean up before exit, whether successful or not. TAO_IDL_BE_Export void @@ -185,13 +186,6 @@ BE_produce (void) be_visitor_root_sh root_sh_visitor (&ctx); BE_visit_root (root_sh_visitor, "server header"); - if (be_global->gen_server_inline ()) - { - ctx.state (TAO_CodeGen::TAO_ROOT_SI); - be_visitor_root_si root_si_visitor (&ctx); - BE_visit_root (root_si_visitor, "server inline"); - } - if (be_global->gen_server_skeleton ()) { ctx.state (TAO_CodeGen::TAO_ROOT_SS); @@ -228,6 +222,14 @@ BE_produce (void) ctx.state (TAO_CodeGen::TAO_ROOT_SVS); be_visitor_root_svs root_svs_visitor (&ctx); BE_visit_root (root_svs_visitor, "CIAO servant source"); + + ctx.state (TAO_CodeGen::TAO_ROOT_SVTH); + be_visitor_root_svth root_svth_visitor (&ctx); + BE_visit_root (root_svth_visitor, "CIAO template servant header"); + + ctx.state (TAO_CodeGen::TAO_ROOT_SVTS); + be_visitor_root_svts root_svts_visitor (&ctx); + BE_visit_root (root_svts_visitor, "CIAO template servant source"); } if (be_global->gen_ciao_exec_idl ()) @@ -239,13 +241,17 @@ BE_produce (void) if (be_global->gen_ciao_exec_impl ()) { - ctx.state (TAO_CodeGen::TAO_ROOT_EXH); - be_visitor_root_exh root_exh_visitor (&ctx); - BE_visit_root (root_exh_visitor, "CIAO exec impl header"); - - ctx.state (TAO_CodeGen::TAO_ROOT_EXS); - be_visitor_root_exs root_exs_visitor (&ctx); - BE_visit_root (root_exs_visitor, "CIAO exec impl source"); + bool generate = be_util::overwrite_ciao_exec_files (); + if(generate) + { + ctx.state (TAO_CodeGen::TAO_ROOT_EXH); + be_visitor_root_exh root_exh_visitor (&ctx); + BE_visit_root (root_exh_visitor, "CIAO exec impl header"); + + ctx.state (TAO_CodeGen::TAO_ROOT_EXS); + be_visitor_root_exs root_exs_visitor (&ctx); + BE_visit_root (root_exs_visitor, "CIAO exec impl source"); + } } if (be_global->gen_ciao_conn_impl ()) diff --git a/TAO/TAO_IDL/be/be_provides.cpp b/TAO/TAO_IDL/be/be_provides.cpp index 5c788a3ee39..938c66559b4 100644 --- a/TAO/TAO_IDL/be/be_provides.cpp +++ b/TAO/TAO_IDL/be/be_provides.cpp @@ -47,19 +47,18 @@ be_provides::provides_type (void) const } int -be_provides::gen_facet_svnt_decl (TAO_OutStream &os) +be_provides::gen_facet_svnt_tmpl_decl (TAO_OutStream &os) { - be_type *impl = + be_type *impl = be_type::narrow_from_decl (this->provides_type ()); - if (impl->is_local () || impl->svnt_hdr_facet_gen ()) - { - return 0; - } + if (impl->is_local () || impl->svnt_hdr_facet_gen ()) + { + return 0; + } - // No '_cxx_' prefix> const char *lname = - impl->original_local_name ()->get_string (); + impl->local_name ()->get_string (); be_decl *scope = be_scope::narrow_from_scope (impl->defined_in ())->decl (); @@ -74,31 +73,22 @@ be_provides::gen_facet_svnt_decl (TAO_OutStream &os) << "namespace CIAO_FACET" << suffix.c_str () << be_nl << "{" << be_idt_nl; - const char *impl_name = "::CORBA::Object"; bool is_intf = impl->node_type () == AST_Decl::NT_interface; - if (is_intf) - { - impl_name = - be_interface::narrow_from_decl (impl)->full_skel_name (); - } - - os << "class " << lname << "_Servant" << be_idt_nl - << ": public virtual " << impl_name << be_uidt_nl - << "{" << be_nl + os << "template <typename BASE, typename EXEC, typename CONTEXT>" << be_nl + << "class " << lname << "_Servant_T" << be_idt_nl + << ": public virtual ::CIAO::Facet_Servant_Base_T<BASE, EXEC, " + << "CONTEXT>" << be_uidt_nl << "{" << be_nl << "public:" << be_idt_nl; AST_Decl *s = ScopeAsDecl (impl->defined_in ()); ACE_CString sname_str (s->full_name ()); - const char *sname = sname_str.c_str (); - const char *global = (sname_str == "" ? "" : "::"); - os << lname << "_Servant (" << be_idt_nl - << global << sname << "::CCM_" - << lname << "_ptr executor," << be_nl + os << lname << "_Servant_T (" << be_idt_nl + << "typename EXEC::_ptr_type executor," << be_nl << "::Components::CCMContext_ptr ctx);" << be_uidt_nl << be_nl; - os << "virtual ~" << lname << "_Servant (void);"; + os << "virtual ~" << lname << "_Servant_T (void);"; if (is_intf) { @@ -124,20 +114,7 @@ be_provides::gen_facet_svnt_decl (TAO_OutStream &os) } } - os << be_nl_2 << "/// Get component implementation." << be_nl - << "virtual CORBA::Object_ptr _get_component (void);" - << be_uidt_nl << be_nl; - - os << "protected:" << be_idt_nl; - - os << "/// Facet executor." << be_nl - << global << sname << "::CCM_" - << lname << "_var executor_;" << be_nl_2; - - os << "/// Context object." << be_nl - << "::Components::CCMContext_var ctx_;" << be_uidt_nl; - - os << "};" << be_nl << be_uidt_nl; + os << be_uidt_nl << "};" << be_nl << be_uidt_nl; os << "}"; @@ -146,7 +123,7 @@ be_provides::gen_facet_svnt_decl (TAO_OutStream &os) } int -be_provides::gen_facet_svnt_defn (TAO_OutStream &os) +be_provides::gen_facet_svnt_tmpl_defn (TAO_OutStream &os) { be_type *impl = be_type::narrow_from_decl (this->provides_type ()); @@ -156,16 +133,14 @@ be_provides::gen_facet_svnt_defn (TAO_OutStream &os) return 0; } - // No '_cxx_' prefix. const char *lname = - impl->original_local_name ()->get_string (); + impl->local_name ()->get_string (); be_decl *scope = be_scope::narrow_from_scope (impl->defined_in ())->decl (); ACE_CString sname_str (scope->full_name ()); - const char *sname = sname_str.c_str (); const char *global = (sname_str == "" ? "" : "::"); ACE_CString suffix (scope->flat_name ()); @@ -179,22 +154,20 @@ be_provides::gen_facet_svnt_defn (TAO_OutStream &os) << "namespace CIAO_FACET" << suffix.c_str () << be_nl << "{" << be_idt_nl; - os << lname << "_Servant::" - << lname << "_Servant (" << be_idt << be_idt_nl - << global << sname << "::CCM_" - << lname << "_ptr executor," << be_nl + os << "template <typename BASE, typename EXEC, typename CONTEXT>" << be_nl + << lname << "_Servant_T<BASE, EXEC, CONTEXT>::" + << lname << "_Servant_T (" << be_idt << be_idt_nl + << "typename EXEC::_ptr_type executor," << be_nl << "::Components::CCMContext_ptr ctx)" << be_uidt_nl - << ": executor_ ( " << global << sname - << "::CCM_" << lname - << "::_duplicate (executor))," << be_idt_nl - << "ctx_ ( ::Components::CCMContext::_duplicate (ctx))" - << be_uidt << be_uidt_nl + << ": " << global << "CIAO::Facet_Servant_Base_T<BASE, EXEC, " + << "CONTEXT> (executor, ctx)" + << be_uidt_nl << "{" << be_nl << "}"; - os << be_nl_2 - << lname << "_Servant::~" - << lname << "_Servant (void)" << be_nl + os << be_nl_2 << "template <typename BASE, typename EXEC, typename CONTEXT>" << be_nl + << lname << "_Servant_T<BASE, EXEC, CONTEXT>::~" + << lname << "_Servant_T (void)" << be_nl << "{" << be_nl << "}"; @@ -233,35 +206,7 @@ be_provides::gen_facet_svnt_defn (TAO_OutStream &os) } } - os << be_nl_2 - << "::CORBA::Object_ptr" << be_nl - << lname << "_Servant::_get_component (void)" - << be_nl - << "{" << be_idt_nl - << "::Components::" << be_global->ciao_container_type () - << "Context_var sc =" << be_idt_nl - << "::Components::" << be_global->ciao_container_type () - << "Context::_narrow (this->ctx_.in ());" - << be_uidt_nl << be_nl - << "if (! ::CORBA::is_nil (sc.in ()))" << be_idt_nl - << "{" << be_idt_nl; - - if (ACE_OS::strcmp (be_global->ciao_container_type (), "Session") == 0) - { - os << "return sc->get_CCM_object ();"; - } - else - { - os << "return ::CORBA::Object::_nil ();"; - } - - os << be_uidt_nl << "}" << be_uidt_nl << be_nl; - - os << "throw ::CORBA::INTERNAL ();" << be_uidt_nl - << "}"; - - os << be_uidt_nl - << "}"; + os << be_uidt_nl << "}"; impl->svnt_src_facet_gen (true); return 0; @@ -304,7 +249,7 @@ be_facet_op_attr_defn_helper::emit (be_interface * /* derived_interface */, be_visitor_context ctx; ctx.stream (os); - ctx.state (TAO_CodeGen::TAO_ROOT_SVS); + ctx.state (TAO_CodeGen::TAO_ROOT_SVTS); for (UTL_ScopeActiveIterator i (base_interface, UTL_Scope::IK_decls); !i.is_done (); diff --git a/TAO/TAO_IDL/be/be_util.cpp b/TAO/TAO_IDL/be/be_util.cpp index a3dd1bf7e12..4c5f786e8a1 100644 --- a/TAO/TAO_IDL/be/be_util.cpp +++ b/TAO/TAO_IDL/be/be_util.cpp @@ -789,6 +789,17 @@ be_util::usage (void) )); ACE_DEBUG (( LM_DEBUG, + ACE_TEXT (" -oE <output_dir>\tOutput directory for the generated ") + ACE_TEXT ("executor files, only when -Gex option is used.") + ACE_TEXT (" Default is current directory\n") + )); + ACE_DEBUG (( + LM_DEBUG, + ACE_TEXT (" -oN\tWhen -Gex option is used, executor files shouldn't be overwritten ") + ACE_TEXT ("if they are already in the output directory.\n") + )); + ACE_DEBUG (( + LM_DEBUG, ACE_TEXT (" -si\t\t\tServer's inline file name ending.") ACE_TEXT (" Default is S.inl\n") )); @@ -847,16 +858,11 @@ be_util::usage (void) ACE_DEBUG (( LM_DEBUG, ACE_TEXT (" -SS\t\t\tsuppress generating skeleton implementation") - ACE_TEXT (" and inline file (disabled by default)\n") - )); - ACE_DEBUG (( - LM_DEBUG, - ACE_TEXT (" -Sci\t\t\tsuppress generating client inline file") ACE_TEXT (" (disabled by default)\n") )); ACE_DEBUG (( LM_DEBUG, - ACE_TEXT (" -Ssi\t\t\tsuppress generating server inline file") + ACE_TEXT (" -Sci\t\t\tsuppress generating client inline file") ACE_TEXT (" (disabled by default)\n") )); ACE_DEBUG (( @@ -905,7 +911,8 @@ be_util::generator_init (void) const char * be_util::get_output_path (bool for_anyop, - bool for_skel) + bool for_skel, + bool for_exec) { if (for_anyop && 0 != be_global->anyop_output_dir ()) { @@ -915,12 +922,46 @@ be_util::get_output_path (bool for_anyop, { return be_global->skel_output_dir (); } + else if (for_exec && 0 != be_global->exec_output_dir ()) + { + return be_global->exec_output_dir (); + } else { return be_global->output_dir (); } } +bool +be_util::overwrite_ciao_exec_files () +{ + bool overwrite = true; + if (be_global->overwrite_not_exec()) + { + bool src_exist = false; + bool hdr_exist = false; + const char *fname_hdr = be_global->be_get_ciao_exec_hdr_fname (false); + FILE* fp_hdr = ACE_OS::fopen(fname_hdr, "r"); + if (fp_hdr) + { + // file exists, don't generate new exec files. + ACE_OS::fclose(fp_hdr); + hdr_exist = true; + } + const char *fname_src = be_global->be_get_ciao_exec_src_fname (false); + FILE* fp_src = ACE_OS::fopen(fname_src, "r"); + if (fp_src) + { + // file exists, don't generate new exec files. + ACE_OS::fclose(fp_src); + src_exist = true; + } + if (hdr_exist && src_exist) + overwrite = false; + } + return overwrite; +} + void be_util::set_arg_seen_bit (be_type *bt) { 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_attribute/attribute.cpp b/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp index 36e5969b365..db8b57209f1 100644 --- a/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp +++ b/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp @@ -171,12 +171,14 @@ be_visitor_attribute::visit_attribute (be_attribute *node) status = get_op.accept (&visitor); break; } + case TAO_CodeGen::TAO_ROOT_SVTH: case TAO_CodeGen::TAO_ROOT_SVH: { be_visitor_operation_ch visitor (&ctx); status = get_op.accept (&visitor); break; } + case TAO_CodeGen::TAO_ROOT_SVTS: case TAO_CodeGen::TAO_ROOT_SVS: { be_visitor_operation_svs visitor (&ctx); @@ -340,12 +342,14 @@ be_visitor_attribute::visit_attribute (be_attribute *node) status = set_op.accept (&visitor); break; } + case TAO_CodeGen::TAO_ROOT_SVTH: case TAO_CodeGen::TAO_ROOT_SVH: { be_visitor_operation_ch visitor (&ctx); status = set_op.accept (&visitor); break; } + case TAO_CodeGen::TAO_ROOT_SVTS: case TAO_CodeGen::TAO_ROOT_SVS: { be_visitor_operation_svs visitor (&ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_component.cpp b/TAO/TAO_IDL/be/be_visitor_component.cpp index a1e66d0c267..ac735c69cb9 100644 --- a/TAO/TAO_IDL/be/be_visitor_component.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component.cpp @@ -66,11 +66,11 @@ #include "be_visitor_component/component.cpp" #include "be_visitor_component/component_svh.cpp" -#include "be_visitor_component/facet_svh.cpp" +#include "be_visitor_component/facet_svth.cpp" #include "be_visitor_component/context_svh.cpp" #include "be_visitor_component/servant_svh.cpp" #include "be_visitor_component/component_svs.cpp" -#include "be_visitor_component/facet_svs.cpp" +#include "be_visitor_component/facet_svts.cpp" #include "be_visitor_component/context_svs.cpp" #include "be_visitor_component/servant_svs.cpp" #include "be_visitor_component/component_ex_idl.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_component/component.cpp b/TAO/TAO_IDL/be/be_visitor_component/component.cpp index 204ff9b79ad..3e1d2b5ddf2 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component.cpp @@ -117,7 +117,6 @@ be_visitor_component::visit_operation (be_operation *node) case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_SI: case TAO_CodeGen::TAO_ROOT_SVH: case TAO_CodeGen::TAO_ROOT_SVS: case TAO_CodeGen::TAO_ROOT_EXH: @@ -277,10 +276,11 @@ be_visitor_component::visit_typedef (be_typedef *node) case TAO_CodeGen::TAO_ROOT_SH: case TAO_CodeGen::TAO_ROOT_IH: case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_SI: case TAO_CodeGen::TAO_ROOT_SS: case TAO_CodeGen::TAO_ROOT_SVH: case TAO_CodeGen::TAO_ROOT_SVS: + case TAO_CodeGen::TAO_ROOT_SVTH: + case TAO_CodeGen::TAO_ROOT_SVTS: case TAO_CodeGen::TAO_ROOT_EXH: case TAO_CodeGen::TAO_ROOT_EXS: case TAO_CodeGen::TAO_ROOT_CNH: diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_svh.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_svh.cpp index 1764e19a800..b6a57eaacd2 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component_svh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component_svh.cpp @@ -47,18 +47,6 @@ be_visitor_component_svh::visit_component (be_component *node) /// code generation. node->scan (node); - // Generate the facet servant class declaration. - be_visitor_facet_svh facet_visitor (this->ctx_); - - if (facet_visitor.visit_component_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_component_svh::") - ACE_TEXT ("visit_component - ") - ACE_TEXT ("facet visitor failed\n")), - -1); - } - /// CIDL-generated namespace used 'CIDL_' + composition name. /// Now we use 'CIAO_' + component's flat name. os_ << be_nl_2 diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_svs.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_svs.cpp index 5e098aa39fa..3248f0e7a88 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component_svs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component_svs.cpp @@ -43,17 +43,6 @@ be_visitor_component_svs::visit_component (be_component *node) return 0; } - be_visitor_facet_svs facet_visitor (this->ctx_); - - if (facet_visitor.visit_component_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_component_svs::") - ACE_TEXT ("visit_component - ") - ACE_TEXT ("facet visitor failed\n")), - -1); - } - /// CIDL-generated namespace used 'CIDL_' + composition name. /// Now we use 'CIAO_' + component's flat name. os_ << be_nl_2 diff --git a/TAO/TAO_IDL/be/be_visitor_component/executor_exh.cpp b/TAO/TAO_IDL/be/be_visitor_component/executor_exh.cpp index 287ee04e09d..a9edd6fa9dc 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/executor_exh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/executor_exh.cpp @@ -224,6 +224,7 @@ be_visitor_executor_exh::visit_component (be_component *node) return 0; } + int be_visitor_executor_exh::visit_provides (be_provides *node) { diff --git a/TAO/TAO_IDL/be/be_visitor_component/facet_svh.cpp b/TAO/TAO_IDL/be/be_visitor_component/facet_svth.cpp index 4f279b95e07..8bfe0c7b184 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/facet_svh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/facet_svth.cpp @@ -1,7 +1,7 @@ //============================================================================= /** - * @file facet_svh.cpp + * @file facet_svth.cpp * * $Id$ * @@ -13,28 +13,40 @@ */ //============================================================================= -be_visitor_facet_svh::be_visitor_facet_svh (be_visitor_context *ctx) +be_visitor_facet_svth::be_visitor_facet_svth (be_visitor_context *ctx) : be_visitor_component_scope (ctx) { } -be_visitor_facet_svh::~be_visitor_facet_svh (void) +be_visitor_facet_svth::~be_visitor_facet_svth (void) { } int -be_visitor_facet_svh::visit_provides (be_provides *node) +be_visitor_facet_svth::visit_provides (be_provides *node) { - if (node->gen_facet_svnt_decl (os_) == -1) + if (node->gen_facet_svnt_tmpl_decl (os_) == -1) { ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_facet_svh") + ACE_TEXT ("be_visitor_facet_svth") ACE_TEXT ("::visit_provides - ") ACE_TEXT ("gen_facet_svnt_decl() ") ACE_TEXT ("failed\n")), -1); } + return 0; +} + +int +be_visitor_facet_svth::visit_component (be_component *node) +{ + this->visit_component_scope (node); return 0; } +int +be_visitor_facet_svth::visit_connector (be_connector *node) +{ + return this->visit_component (node); +} diff --git a/TAO/TAO_IDL/be/be_visitor_component/facet_svs.cpp b/TAO/TAO_IDL/be/be_visitor_component/facet_svts.cpp index c9127923226..6c403855962 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/facet_svs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/facet_svts.cpp @@ -1,7 +1,7 @@ //============================================================================= /** - * @file facet_svs.cpp + * @file facet_svts.cpp * * $Id$ * @@ -13,28 +13,41 @@ */ //============================================================================= -be_visitor_facet_svs::be_visitor_facet_svs (be_visitor_context *ctx) +be_visitor_facet_svts::be_visitor_facet_svts (be_visitor_context *ctx) : be_visitor_component_scope (ctx) { } -be_visitor_facet_svs::~be_visitor_facet_svs (void) +be_visitor_facet_svts::~be_visitor_facet_svts (void) { } int -be_visitor_facet_svs::visit_provides (be_provides *node) +be_visitor_facet_svts::visit_provides (be_provides *node) { - if (node->gen_facet_svnt_defn (os_) == -1) + if (node->gen_facet_svnt_tmpl_defn (os_) == -1) { ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_facet_svs") + ACE_TEXT ("be_visitor_facet_svts") ACE_TEXT ("::visit_provides - ") ACE_TEXT ("gen_facet_svnt_defn() ") ACE_TEXT ("failed\n")), -1); } + return 0; +} +int +be_visitor_facet_svts::visit_component (be_component *node) +{ + this->visit_component_scope (node); return 0; } +int +be_visitor_facet_svts::visit_connector (be_connector *node) +{ + return this->visit_component (node); +} + + diff --git a/TAO/TAO_IDL/be/be_visitor_component/servant_svh.cpp b/TAO/TAO_IDL/be/be_visitor_component/servant_svh.cpp index 0709be18cd0..315309b808e 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/servant_svh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/servant_svh.cpp @@ -140,6 +140,7 @@ be_visitor_servant_svh::visit_attribute (be_attribute *node) return v.visit_attribute (node); } + int be_visitor_servant_svh::visit_provides (be_provides *node) { diff --git a/TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp b/TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp index f099df71945..d86de6b4ae1 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp @@ -1,4 +1,3 @@ - //============================================================================= /** * @file servant_svs.cpp @@ -12,6 +11,7 @@ * @author Jeff Parsons */ //============================================================================= +#include <be_helper.h> be_visitor_servant_svs::be_visitor_servant_svs (be_visitor_context *ctx) : be_visitor_component_scope (ctx), @@ -308,13 +308,25 @@ be_visitor_servant_svs::visit_provides (be_provides *node) << "PortableServer::POA_var POA = cnt_safe->the_port_POA ();" << be_nl << "::CORBA::Object_var tmp =" << be_idt_nl << "this->get_facet_executor (\"" << port_name << "\");"<< be_uidt_nl << be_nl - << "::CIAO_FACET" << prefix_connector - << scope->flat_name () << "::" << lname - << "_Servant *" << port_name << "_servant_impl = " << be_idt_nl - << "new ::CIAO_FACET" << prefix_connector - << scope->flat_name () << "::" << lname - << "_Servant ("<< global << sname << "::CCM_" << lname << "::_narrow (tmp.in())," << be_nl - << "this->context_);" << be_uidt_nl << be_nl + << global << sname << "::CCM_" << lname << "_var tmp_var = " << be_idt_nl + << global << sname <<"::CCM_" << lname + << "::_narrow (tmp.in());" << be_uidt_nl << be_nl + << "typedef " << global << "CIAO_FACET" << prefix_connector + << scope->flat_name () << "::" << obj->local_name () << "_Servant_T <" << be_idt_nl + << "POA_" << sname << global << obj->local_name () + << "," << be_nl << global << sname <<"::CCM_" << lname << "," << be_nl + << global << "Components::" << be_global->ciao_container_type () + << "Context>" << be_idt_nl << lname + << "_type;" << be_uidt_nl << be_uidt_nl + << lname << "_type *" << port_name << "_servant_impl = 0;" << be_nl + << "ACE_NEW_THROW_EX (" << be_idt_nl + << port_name << "_servant_impl," << be_nl + << lname << "_type (" << be_idt_nl + << "tmp_var.in(), " << be_nl + << "this->context_)," << be_uidt_nl + << "CORBA::NO_MEMORY ());" << be_uidt_nl << be_nl + << "PortableServer::ServantBase_var safe_base_servant (" + << port_name << "_servant_impl);" << be_nl << be_nl << "PortableServer::ObjectId_var " << port_name << "_servant_oid =" << be_idt_nl << "PortableServer::string_to_ObjectId (obj_id.c_str());" << be_uidt_nl << be_nl << "POA->activate_object_with_id(" << port_name << "_servant_oid.in()," diff --git a/TAO/TAO_IDL/be/be_visitor_connector/executor_ami_exh.cpp b/TAO/TAO_IDL/be/be_visitor_connector/executor_ami_exh.cpp index b523c254798..8bb17ebc304 100644 --- a/TAO/TAO_IDL/be/be_visitor_connector/executor_ami_exh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_connector/executor_ami_exh.cpp @@ -86,7 +86,11 @@ be_visitor_executor_ami_exh::visit_connector (be_connector *node) ACE_CString half_stripped_name ( connector_name.substr (0, connector_name.find ("_Connector"))); - os_ << half_stripped_name.c_str () << "_exec_i *facet_exec_;"; + os_ << half_stripped_name.c_str () << "_exec_i *facet_exec_0_;" << be_nl;; + + ACE_CString double_stripped_name ( + half_stripped_name.substr (ACE_OS::strlen ("AMI4CCM_"))); + os_ << double_stripped_name.c_str () << "_exec_i *facet_exec_1_;"; os_ << be_uidt_nl << "};"; diff --git a/TAO/TAO_IDL/be/be_visitor_connector/executor_ami_exs.cpp b/TAO/TAO_IDL/be/be_visitor_connector/executor_ami_exs.cpp index aac8f39309e..9747958a30f 100644 --- a/TAO/TAO_IDL/be/be_visitor_connector/executor_ami_exs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_connector/executor_ami_exs.cpp @@ -12,7 +12,6 @@ * @author Jeff Parsons */ //============================================================================= - be_visitor_executor_ami_exs::be_visitor_executor_ami_exs ( be_visitor_context *ctx) : be_visitor_component_scope (ctx) @@ -36,14 +35,15 @@ be_visitor_executor_ami_exs::visit_connector (be_connector *node) os_ << be_nl_2 << class_name << "::" - << class_name << " (void)" << be_idt_nl - << ": facet_exec_ (new "; + << class_name << " (void)" << be_idt_nl; /// The port is the only item in the connector's scope. UTL_ScopeActiveIterator j (node, UTL_Scope::IK_decls); AST_Extended_Port *p = AST_Extended_Port::narrow_from_decl (j.item ()); + bool first = true; + int port_nr = 0; for (UTL_ScopeActiveIterator i (p->port_type (), UTL_Scope::IK_decls); !i.is_done (); i.next ()) @@ -53,19 +53,35 @@ be_visitor_executor_ami_exs::visit_connector (be_connector *node) if (p != 0) { - os_ << p->provides_type ()->local_name (); + if (first) + { + os_ << ": facet_exec_" << port_nr << "_ (new "; + os_ << p->provides_type ()->local_name (); + os_ << suffix << " ())" << be_nl; + first = false; + } + else + { + os_ << ", facet_exec_" << port_nr << "_ (new "; + os_ << p->provides_type ()->local_name (); + os_ << suffix << " ())" << be_uidt_nl; + } + port_nr++; } } - os_ << suffix << " ())" << be_uidt_nl - << "{" << be_nl + os_ << "{" << be_nl << "}"; os_ << be_nl_2 << class_name << "::~" << class_name << " (void)" << be_nl - << "{" << be_idt_nl - << "::CORBA::release (this->facet_exec_);" << be_uidt_nl + << "{" << be_idt_nl; + for (int i = 0; i < port_nr; i ++) + { + os_ << "::CORBA::release (this->facet_exec_" << i <<"_);" << be_nl; + } + os_ << be_uidt_nl << "}"; if (this->visit_scope (node) == -1) @@ -87,19 +103,25 @@ be_visitor_executor_ami_exs::visit_connector (be_connector *node) << "::Components::" << be_global->ciao_container_type () << "Context_ptr ctx)" << be_uidt_nl - << "{" << be_idt_nl - << "this->facet_exec_->set_" + << "{" << be_idt_nl; + for (int i = 0; i < port_nr; i ++) + { + os_ << "this->facet_exec_" << i << "_->set_" << tao_cg->downcase (container_type) << "_context " - << "(ctx);" << be_uidt_nl - << "}"; + << "(ctx);" << be_nl; + } + os_ << be_uidt_nl << "}"; os_ << be_nl_2 << "void" << be_nl << class_name << "::configuration_complete (void)" << be_nl - << "{" << be_idt_nl - << "this->facet_exec_->_set_component (this);" << be_uidt_nl - << "}"; + << "{" << be_idt_nl; + for (int i = 0; i < port_nr; i ++) + { + os_ << "this->facet_exec_" << i << "_->_set_component (this);" << be_nl; + } + os_ << be_uidt_nl << "}"; os_ << be_nl_2 << "void" << be_nl @@ -121,12 +143,15 @@ be_visitor_executor_ami_exs::visit_connector (be_connector *node) os_ << be_nl_2 << "void" << be_nl << class_name << "::ccm_remove (void)" << be_nl - << "{" << be_idt_nl - << "this->facet_exec_->_set_component (" << be_idt_nl + << "{" << be_idt_nl; + for (int i = 0; i < port_nr; i ++) + { + os_ << "this->facet_exec_" << i <<"_->_set_component (" << be_idt_nl << "::" << s->name () << smart_scope << "CCM_" << this->node_->local_name () - << "::_nil ());" << be_uidt << be_uidt_nl - << "}"; + << "::_nil ());" << be_uidt_nl; + } + os_ << be_uidt_nl << "}"; return 0; } @@ -135,7 +160,7 @@ int be_visitor_executor_ami_exs::visit_provides (be_provides *node) { AST_Type *t = node->provides_type (); - AST_Decl *scope = ScopeAsDecl (t->defined_in ()); + AST_Decl *scope = ScopeAsDecl (t->defined_in ()); bool global = (scope->node_type () == AST_Decl::NT_root); const char *smart_scope = (global ? "" : "::"); @@ -150,14 +175,16 @@ be_visitor_executor_ami_exs::visit_provides (be_provides *node) UTL_ScopeActiveIterator i (this->node_, UTL_Scope::IK_decls); AST_Decl *d = i.item (); - os_ << d->local_name () << "_" + const char * loc_name = node->local_name()->get_string(); + const char *exec_ext = (strstr (loc_name, "sync") ? "1" : "0"); + + os_ << d->local_name () << "_" << node->local_name () << " (void)" << be_nl << "{" << be_idt_nl << "return " << smart_scope << scope->full_name () << "::CCM_" << t->local_name () << "::_duplicate (" - << "this->facet_exec_);" << be_uidt_nl + << "this->facet_exec_" << exec_ext << "_);" << be_uidt_nl << "}"; return 0; } - diff --git a/TAO/TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp b/TAO/TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp index e8eeef9e16e..f524a05ac16 100644 --- a/TAO/TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp @@ -12,6 +12,8 @@ * @author Jeff Parsons */ //============================================================================= +#include "ast_generator.h" +#include "be_predefined_type.h" be_visitor_facet_ami_exh::be_visitor_facet_ami_exh ( be_visitor_context *ctx) @@ -19,7 +21,8 @@ be_visitor_facet_ami_exh::be_visitor_facet_ami_exh ( iface_ (0), callback_iface_ (0), scope_name_ (0), - iface_name_ (0) + iface_name_ (0), + sync_ (false) { // This is initialized in the base class to svnt_export_macro() // or skel_export_macro(), since there are many more visitor @@ -53,24 +56,89 @@ be_visitor_facet_ami_exh::visit_provides (be_provides *node) if (this->gen_reply_handler_class () == -1) { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("be_visitor_facet_ami_exh") + ACE_TEXT ("::visit_provides - ") + ACE_TEXT ("gen_reply_handler_class() ") + ACE_TEXT ("failed\n")), + -1); + } + + + if (this->gen_facet_executor_class () == -1) + { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_facet_ami_exh") ACE_TEXT ("::visit_provides - ") - ACE_TEXT ("gen_reply_handler_class() ") + ACE_TEXT ("gen_facet_executor_class() ") ACE_TEXT ("failed\n")), -1); } - if (this->gen_facet_executor_class () == -1) + return 0; +} +int +be_visitor_facet_ami_exh::visit_attribute (be_attribute *node) +{ + + be_operation get_op (node->field_type (), + AST_Operation::OP_noflags, + node->name (), + 0, + 0); + + get_op.set_name ((UTL_IdList *) node->name ()->copy ()); + if (this->visit_operation (&get_op) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_facet_ami_exh::" + "visit_attribute - " + "codegen for get_attribute failed\n"), + -1); + } + get_op.destroy (); + + if (node->readonly ()) + { + // Nothing else to do. + return 0; + } + Identifier id ("void"); + UTL_ScopedName sn (&id, 0); + + // Create the return type, which is "void" + be_predefined_type rt (AST_PredefinedType::PT_void, &sn); + + // Argument type is the same as the attribute type. + AST_Argument *arg = + idl_global->gen ()->create_argument (AST_Argument::dir_IN, + node->field_type (), + node->name ()); + + arg->set_name ((UTL_IdList *) node->name ()->copy ()); + + // Create the operation. + be_operation set_op (&rt, + AST_Operation::OP_noflags, + node->name (), + 0, + 0); + + set_op.set_name ((UTL_IdList *) node->name ()->copy ()); + set_op.be_add_argument (arg); + + if (this->visit_operation (&set_op) == -1) { ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_facet_ami_exh") - ACE_TEXT ("::visit_provides - ") - ACE_TEXT ("gen_facet_executor_class() ") - ACE_TEXT ("failed\n")), + "(%N:%l) be_visitor_facet_ami_exh::" + "visit_attribute - " + "codegen for set_attribute failed\n"), -1); } + set_op.destroy (); + rt.destroy (); + return 0; } @@ -84,7 +152,9 @@ be_visitor_facet_ami_exh::visit_operation (be_operation *node) /// connector. We want to skip the CCM-related operations /// that were added to the connector since it's a component. /// We want only the facet interface operations. - if (d->node_type () != AST_Decl::NT_interface) + /// In case of sync. attribute operations we have a node_type NT_root + if ((d->node_type () != AST_Decl::NT_interface) && + (d->node_type () != AST_Decl::NT_root)) { return 0; } @@ -139,6 +209,9 @@ be_visitor_facet_ami_exh::init (bool for_impl) AST_Decl *d = s->lookup_by_name (sn, true, false); this->callback_iface_ = be_interface::narrow_from_decl (d); + if (this->callback_iface_ == 0) + this->sync_ = true; + sn->destroy (); delete sn; sn = 0; @@ -147,9 +220,14 @@ be_visitor_facet_ami_exh::init (bool for_impl) int be_visitor_facet_ami_exh::gen_reply_handler_class (void) { + os_ << be_nl_2 << "// TAO_IDL - Generated from" << be_nl + << "// " << __FILE__ << ":" << __LINE__; + + const char *suffix = "_reply_handler"; this->init (false); - + if (this->sync_) + return 0; os_ << be_nl << "class " << this->export_macro_.c_str () << " " << this->iface_name_ << suffix << be_idt_nl @@ -194,6 +272,9 @@ be_visitor_facet_ami_exh::gen_reply_handler_class (void) int be_visitor_facet_ami_exh::gen_facet_executor_class (void) { + os_ << be_nl_2 << "// TAO_IDL - Generated from" << be_nl + << "// " << __FILE__ << ":" << __LINE__; + const char *suffix = "_exec_i"; const char *scope_name = ScopeAsDecl (this->iface_->defined_in ())->full_name (); @@ -212,15 +293,69 @@ be_visitor_facet_ami_exh::gen_facet_executor_class (void) << "virtual ~" << iface_name << suffix << " (void);"; - if (this->visit_scope (this->iface_) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_connector_ami_exh") - ACE_TEXT ("::gen_facet_executor_class - ") - ACE_TEXT ("visit_scope() on sendc ") - ACE_TEXT ("interface failed\n")), - -1); - } + + ACE_CString handler_str ( + ScopeAsDecl (this->iface_->defined_in ())->full_name ()); + ACE_CString tmp (this->iface_->local_name ()); + handler_str += "::"; + handler_str += tmp; + + if (ACE_OS::strstr (tmp.c_str(), "AMI4CCM") != 0) + this->sync_ = false; + else + this->sync_ = true; + if (this->sync_) + { + UTL_Scope *ss = this->iface_->defined_in(); + UTL_ScopedName *sn = + FE_Utils::string_to_scoped_name (handler_str.c_str ()); + AST_Decl *d = ss->lookup_by_name (sn, true); + + sn->destroy (); + delete sn; + sn = 0; + + be_interface *sync_iface = + be_interface::narrow_from_decl (d); + + /// The overload of traverse_inheritance_graph() used here + /// doesn't automatically prime the queues. + sync_iface->get_insert_queue ().reset (); + sync_iface->get_del_queue ().reset (); + sync_iface->get_insert_queue ().enqueue_tail (sync_iface); + + + + Facet_AMI_ExecH_Op_Attr_Generator op_attr_gen (this); + int status = + sync_iface->traverse_inheritance_graph( + op_attr_gen, + &os_, + false, + false); + + if (status == -1) + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("be_visitor_facet_ami_exh") + ACE_TEXT ("::gen_facet_executor_class - ") + ACE_TEXT ("traverse_inheritance_graph() on ") + ACE_TEXT ("interface failed\n"))); + + } + } + else + { + if (this->visit_scope (this->iface_) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("be_visitor_connector_ami_exh") + ACE_TEXT ("::gen_facet_executor_class - ") + ACE_TEXT ("visit_scope() on sendc ") + ACE_TEXT ("interface failed\n")), + -1); + } + } const char *container_type = be_global->ciao_container_type (); @@ -257,4 +392,18 @@ be_visitor_facet_ami_exh::gen_facet_executor_class (void) return 0; } +// ================================================== +Facet_AMI_ExecH_Op_Attr_Generator::Facet_AMI_ExecH_Op_Attr_Generator ( + be_visitor_scope * visitor) + : visitor_ (visitor) +{ +} + +int +Facet_AMI_ExecH_Op_Attr_Generator::emit (be_interface * /*derived_interface*/, + TAO_OutStream * /*os*/, + be_interface * base_interface) +{ + return visitor_->visit_scope (base_interface); +} diff --git a/TAO/TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp b/TAO/TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp index a47895645a0..be124fd2dbf 100644 --- a/TAO/TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp @@ -1,4 +1,3 @@ - //============================================================================= /** * @file facet_ami_exs.cpp @@ -12,11 +11,15 @@ * @author Jeff Parsons */ //============================================================================= +#include "ast_generator.h" +#include "be_predefined_type.h" + be_visitor_facet_ami_exs::be_visitor_facet_ami_exs ( be_visitor_context *ctx) : be_visitor_component_scope (ctx), - for_reply_handler_ (true) + for_reply_handler_ (true), + sync_(false) { } @@ -40,17 +43,18 @@ be_visitor_facet_ami_exs::visit_component (be_component *node) int be_visitor_facet_ami_exs::visit_provides (be_provides *node) { + this->iface_ = be_interface::narrow_from_decl (node->provides_type ()); - if (this->gen_reply_handler_class () == -1) + if (this->gen_reply_handler_class () == -1) { ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_facet_ami_exs") - ACE_TEXT ("::visit_provides - ") - ACE_TEXT ("gen_reply_handler_class() ") - ACE_TEXT ("failed\n")), - -1); + ACE_TEXT ("be_visitor_facet_ami_exs") + ACE_TEXT ("::visit_provides - ") + ACE_TEXT ("gen_reply_handler_class() ") + ACE_TEXT ("failed\n")), + -1); } if (this->gen_facet_executor_class () == -1) @@ -65,6 +69,70 @@ be_visitor_facet_ami_exs::visit_provides (be_provides *node) return 0; } +int +be_visitor_facet_ami_exs::visit_attribute (be_attribute *node) +{ + + be_operation get_op (node->field_type (), + AST_Operation::OP_noflags, + node->name (), + 0, + 0); + get_op.set_name ((UTL_IdList *) node->name ()->copy ()); + if (this->visit_operation (&get_op) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_facet_ami_exs::" + "visit_attribute - " + "codegen for get_attribute failed\n"), + -1); + } + + get_op.destroy (); + + if (node->readonly ()) + { + // Nothing else to do. + return 0; + } + Identifier id ("void"); + UTL_ScopedName sn (&id, 0); + + // Create the return type, which is "void" + be_predefined_type rt (AST_PredefinedType::PT_void, &sn); + + // Argument type is the same as the attribute type. + AST_Argument *arg = + idl_global->gen ()->create_argument (AST_Argument::dir_IN, + node->field_type (), + node->name ()); + + arg->set_name ((UTL_IdList *) node->name ()->copy ()); + + // Create the operation. + be_operation set_op (&rt, + AST_Operation::OP_noflags, + node->name (), + 0, + 0); + + set_op.set_name ((UTL_IdList *) node->name ()->copy ()); + set_op.be_add_argument (arg); + + if (this->visit_operation (&set_op) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_facet_ami_exs::" + "visit_attribute - " + "codegen for set_attribute failed\n"), + -1); + } + + set_op.destroy (); + rt.destroy (); + + return 0; +} int be_visitor_facet_ami_exs::visit_operation (be_operation *node) @@ -76,19 +144,37 @@ be_visitor_facet_ami_exs::visit_operation (be_operation *node) /// connector. We want to skip the CCM-related operations /// that were added to the connector since it's a component. /// We want only the facet interface operations. + + // Coming for sync attribute operations, node_type is NT_root + if (d->node_type () == AST_Decl::NT_root) + { + return gen_facet_executor_sync_op (node); + } + if (d->node_type () != AST_Decl::NT_interface) { return 0; } - if (this->for_reply_handler_) + if ((this->for_reply_handler_) && (this->sync_)) + { + return 0; + } + + if ((this->for_reply_handler_) && (!this->sync_)) { return this->gen_reply_hander_op (node); } - else + else if ((!this->for_reply_handler_) && (this->sync_)) + { + return gen_facet_executor_sync_op (node); + } + else if ((!this->for_reply_handler_) && (!this->sync_)) { return this->gen_facet_executor_op (node); } + else + return 0; } int @@ -118,12 +204,46 @@ be_visitor_facet_ami_exs::post_process (be_decl *node) return 0; } +void +be_visitor_facet_ami_exs::init (void) +{ + UTL_Scope *s = this->iface_->defined_in (); + ACE_CString handler_str ( + ScopeAsDecl (this->iface_->defined_in ())->full_name ()); + handler_str += "::AMI_"; + ACE_CString tmp (this->iface_->local_name ()); + handler_str += tmp.substr (ACE_OS::strlen ("AMI4CCM_")); + handler_str += "Handler"; + UTL_ScopedName *sn = + FE_Utils::string_to_scoped_name (handler_str.c_str ()); + AST_Decl *d = s->lookup_by_name (sn, true); + + sn->destroy (); + delete sn; + sn = 0; + + + be_interface *callback_iface = + be_interface::narrow_from_decl (d); + + if (callback_iface == 0) + this->sync_ = true; + else + this->sync_ = false; + + +} int be_visitor_facet_ami_exs::gen_reply_handler_class (void) { this->for_reply_handler_ = true; + this->init (); + if (this->sync_) + return 0; + + const char *suffix = "_reply_handler"; UTL_Scope *s = this->iface_->defined_in (); AST_Decl *scope = ScopeAsDecl (s); @@ -175,6 +295,7 @@ be_visitor_facet_ami_exs::gen_reply_handler_class (void) delete sn; sn = 0; + be_interface *callback_iface = be_interface::narrow_from_decl (d); @@ -186,7 +307,7 @@ be_visitor_facet_ami_exs::gen_reply_handler_class (void) Facet_AMI_Exec_Op_Attr_Generator op_attr_gen (this); - int status = + int const status = callback_iface->traverse_inheritance_graph ( op_attr_gen, &os_, @@ -208,6 +329,7 @@ be_visitor_facet_ami_exs::gen_reply_handler_class (void) int be_visitor_facet_ami_exs::gen_facet_executor_class (void) { + this->for_reply_handler_ = false; const char *suffix = "_exec_i"; @@ -227,15 +349,47 @@ be_visitor_facet_ami_exs::gen_facet_executor_class (void) << "{" << be_nl << "}"; - - if (this->visit_scope (this->iface_) == -1) - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("be_visitor_connector_ami_exs") - ACE_TEXT ("::gen_reply_handler_class - ") - ACE_TEXT ("visit_scope() on sendc ") - ACE_TEXT ("interface failed\n"))); - } + ACE_CString handler_str ( + ScopeAsDecl (this->iface_->defined_in ())->full_name ()); + ACE_CString tmp (this->iface_->local_name ()); + handler_str += "::"; + handler_str += tmp; + + UTL_Scope *ss = this->iface_->defined_in(); + UTL_ScopedName *sn = + FE_Utils::string_to_scoped_name (handler_str.c_str ()); + AST_Decl *d = ss->lookup_by_name (sn, true); + + sn->destroy (); + delete sn; + sn = 0; + + be_interface *sync_iface = + be_interface::narrow_from_decl (d); + + /// The overload of traverse_inheritance_graph() used here + /// doesn't automatically prime the queues. + sync_iface->get_insert_queue ().reset (); + sync_iface->get_del_queue ().reset (); + sync_iface->get_insert_queue ().enqueue_tail (sync_iface); + + Facet_AMI_Exec_Op_Attr_Generator op_attr_gen (this); + int status = + sync_iface->traverse_inheritance_graph( + op_attr_gen, + &os_, + false, + false); + + if (status == -1) + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("be_visitor_facet_ami_exh") + ACE_TEXT ("::gen_facet_executor_class - ") + ACE_TEXT ("traverse_inheritance_graph() on ") + ACE_TEXT ("interface failed\n"))); + + } ACE_CString scope_str (scope_name, 0, false); @@ -299,6 +453,7 @@ be_visitor_facet_ami_exs::gen_facet_executor_class (void) int be_visitor_facet_ami_exs::gen_reply_hander_op (be_operation *node) { + os_ << be_nl_2 << "void" << be_nl << this->iface_->local_name () << "_reply_handler::" @@ -384,7 +539,12 @@ be_visitor_facet_ami_exs::gen_reply_hander_op (be_operation *node) int be_visitor_facet_ami_exs::gen_facet_executor_op (be_operation *node) { - os_ << be_nl_2 + + // do not handle not sendc operations. + if (ACE_OS::strstr (node->local_name()->get_string (), "sendc_")== 0) + return 0; + + os_ << be_nl_2 << "void" << be_nl << this->iface_->local_name () << "_exec_i::" << node->local_name (); @@ -486,7 +646,110 @@ be_visitor_facet_ami_exs::gen_facet_executor_op (be_operation *node) return 0; } +int +be_visitor_facet_ami_exs::gen_facet_executor_sync_op (be_operation *node) +{ + + if (node->is_sendc_ami()) + return 0; + + os_ << be_nl_2; + // generate the return type. + be_type *bt = be_type::narrow_from_decl (node->return_type ()); + + if (!bt) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("be_visitor_operation_ch::") + ACE_TEXT ("gen_facet_executor_sync_op - ") + ACE_TEXT ("Bad return type\n")), + -1); + } + + // Grab the right visitor to generate the return type. + be_visitor_operation_rettype oro_visitor (this->ctx_); + + if (bt->accept (&oro_visitor) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) facet_ami_exs::" + "gen_facet_executor_sync_op - " + "codegen for return type failed\n"), + -1); + } + + os_ << be_nl + << this->iface_->local_name () << "_exec_i::" + << node->local_name (); + be_visitor_operation_arglist al_visitor (this->ctx_); + + if (node->accept (&al_visitor) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("be_visitor_facet_ami_exs::") + ACE_TEXT ("gen_facet_executor_op - ") + ACE_TEXT ("codegen for argument ") + ACE_TEXT ("list failed\n")), + -1); + } + + AST_Decl *scope = ScopeAsDecl (this->iface_->defined_in ()); + bool global = (scope->node_type () == AST_Decl::NT_root); + const char *smart_scope = (global ? "" : "::"); + + ACE_CString iface_str (this->iface_->local_name ()); + const char *orig_iface_name = iface_str.c_str (); + os_ << be_nl + << "{" << be_idt_nl; + + AST_PredefinedType *pdt = 0; + pdt = AST_PredefinedType::narrow_from_decl (bt); + bool ret = true; + if ((pdt != 0) && (pdt->pt () == AST_PredefinedType::PT_void)) + ret =false; + + os_ << "::" << scope->full_name () << smart_scope + << orig_iface_name << "_var receptacle_objref =" << be_idt_nl + << "this->context_->get_connection_ami4ccm_port_ami4ccm_uses ();" + << be_uidt_nl << be_nl; + + os_ << "if (::CORBA::is_nil (receptacle_objref.in ()))" + << be_idt_nl + << "{" << be_idt_nl + << "throw ::CORBA::INV_OBJREF ();" << be_uidt_nl + << "}" << be_uidt_nl << be_nl; + if (ret) + { + os_ << "return " ; + } + os_ << "receptacle_objref->" << node->local_name () + << " (" << be_idt << be_idt_nl; + + unsigned long index = 0UL; + + /// Quick scope iteration to catch all the args . + for (UTL_ScopeActiveIterator i (node, UTL_Scope::IK_decls); + !i.is_done (); + i.next (), ++index) + { + AST_Decl *d = i.item (); + if (index == 0UL) + { + os_ << d->local_name (); + } + else + { + os_ << "," << be_nl + << d->local_name (); + } + } + + os_ << ");" << be_uidt << be_uidt << be_uidt_nl; + os_ << "}"; + + return 0; +} // ================================================== Facet_AMI_Exec_Op_Attr_Generator::Facet_AMI_Exec_Op_Attr_Generator ( @@ -496,10 +759,11 @@ Facet_AMI_Exec_Op_Attr_Generator::Facet_AMI_Exec_Op_Attr_Generator ( } int -Facet_AMI_Exec_Op_Attr_Generator::emit (be_interface * /*derived_interface */, - TAO_OutStream * /* os */, +Facet_AMI_Exec_Op_Attr_Generator::emit (be_interface * /*derived_interface*/, + TAO_OutStream * /*os*/ , be_interface * base_interface) { return visitor_->visit_scope (base_interface); } + diff --git a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp index 6c2dbd5b4ae..38979db785e 100644 --- a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp @@ -54,9 +54,9 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node) << "template<>" << be_nl << "::CORBA::Boolean" << be_nl << "Any_Dual_Impl_T<" << node->name () - << ">::demarshal_value (" << be_idt << be_idt_nl - << "TAO_InputCDR & cdr" << be_uidt_nl - << ")" << be_uidt_nl + << ">::demarshal_value (" + << "TAO_InputCDR & cdr" + << ")" << be_nl << "{" << be_idt_nl << "::CORBA::String_var id;" << be_nl_2 << "if (!(cdr >> id.out ()))" << be_idt_nl diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp index ed83ceca8a5..2996ce87e57 100644 --- a/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp @@ -277,6 +277,27 @@ int be_visitor_exception_cs::visit_exception (be_exception *node) *os << "}" << be_nl_2; } + if ((ACE_OS::strcmp (node->full_name (), "CORBA::InvalidPolicies") == 0) || + (ACE_OS::strcmp (node->full_name (), "CORBA::PolicyError") == 0)) + { + *os << "// TAO extension - the virtual _type method." << be_nl + << "::CORBA::TypeCode_ptr " << node->name () + << "::_tao_type (void) const" << be_nl + << "{" << be_idt_nl + << "TAO_AnyTypeCode_Adapter *adapter =" << be_idt_nl + << "ACE_Dynamic_Service<TAO_AnyTypeCode_Adapter>::instance (" + << "\"AnyTypeCode_Adapter\");" << be_uidt_nl + << "if (adapter == 0)" << be_idt_nl + << "{" << be_idt_nl + << "ACE_ERROR_RETURN ((LM_ERROR," << be_idt_nl + << "ACE_TEXT (\"TAO \")," << be_nl + << "ACE_TEXT (\"Unable to find the \")" << be_nl + << "ACE_TEXT (\"AnyTypeCode Adapter instance\")), 0);" << be_uidt << be_uidt_nl + << "}" << be_uidt_nl + << "return adapter->_tao_type_" << node->local_name () << "();" << be_uidt_nl + << "}"; + } + // Switch streams to the *A.cpp file if we are using this option. if (be_global->gen_anyop_files ()) { @@ -284,14 +305,18 @@ int be_visitor_exception_cs::visit_exception (be_exception *node) *os << be_nl_2; } - if (be_global->tc_support ()) + if ((ACE_OS::strcmp (node->full_name (), "CORBA::InvalidPolicies") != 0) && + (ACE_OS::strcmp (node->full_name (), "CORBA::PolicyError") != 0)) { - *os << "// TAO extension - the virtual _type method." << be_nl; - *os << "::CORBA::TypeCode_ptr " << node->name () - << "::_tao_type (void) const" << be_nl; - *os << "{" << be_idt_nl; - *os << "return ::" << node->tc_name () << ";" << be_uidt_nl; - *os << "}"; + if (be_global->tc_support ()) + { + *os << "// TAO extension - the virtual _type method." << be_nl; + *os << "::CORBA::TypeCode_ptr " << node->name () + << "::_tao_type (void) const" << be_nl; + *os << "{" << be_idt_nl; + *os << "return ::" << node->tc_name () << ";" << be_uidt_nl; + *os << "}"; + } } // Make sure we are generating to *C.cpp regardless of the above. diff --git a/TAO/TAO_IDL/be/be_visitor_interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface.cpp index 76d01092d19..b77d531b463 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface.cpp @@ -64,7 +64,6 @@ #include "be_visitor_interface/interface_cs.cpp" #include "be_visitor_interface/interface_sh.cpp" #include "be_visitor_interface/interface_ih.cpp" -#include "be_visitor_interface/interface_si.cpp" #include "be_visitor_interface/interface_ss.cpp" #include "be_visitor_interface/interface_is.cpp" #include "be_visitor_interface/interface_ex_idl.cpp" @@ -91,7 +90,6 @@ // AMH #include "be_visitor_interface/amh_ch.cpp" #include "be_visitor_interface/amh_ss.cpp" -#include "be_visitor_interface/amh_si.cpp" #include "be_visitor_interface/amh_sh.cpp" #include "be_visitor_interface/amh_rh_ss.cpp" #include "be_visitor_interface/amh_rh_sh.cpp" 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..4a969a016e1 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,11 @@ 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); @@ -187,18 +140,6 @@ be_visitor_amh_interface_sh::visit_interface (be_interface *node) -1); } - // Generate skeletons for operations of our base classes. These - // skeletons just cast the pointer to the appropriate type - // before invoking the call. - if (node->traverse_inheritance_graph (be_interface::gen_skel_helper, os) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_amh_interface_sh::" - "visit_interface - " - "inheritance graph traversal failed\n"), - -1); - } - *os << be_uidt_nl << "};"; diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_si.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_si.cpp deleted file mode 100644 index 11b3910effa..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/amh_si.cpp +++ /dev/null @@ -1,233 +0,0 @@ -//============================================================================= -/** -* @file amh_si.cpp -* -* $Id$ -* -* Specialized interface visitor for AMH generates code that is -* specific to AMH interfaces. -* -* @author Jeff Parsons <j.parsons@vanderbilt.edu> -*/ -//============================================================================= - -be_visitor_amh_interface_si::be_visitor_amh_interface_si ( - be_visitor_context *ctx) - : be_visitor_interface_si (ctx) -{ -} - -be_visitor_amh_interface_si::~be_visitor_amh_interface_si (void) -{ -} - -int -be_visitor_amh_interface_si::visit_interface (be_interface *node) -{ - if (node->srv_inline_gen () || node->imported () || node->is_local ()) - { - return 0; - } - - // Do not generate AMH classes for any sort of implied IDL. - if (node->original_interface () != 0) - { - return 0; - } - - TAO_OutStream *os = this->ctx_->stream (); - - int status = - node->traverse_inheritance_graph ( - be_visitor_amh_interface_si::gen_skel_helper, os); - - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_amh_interface_si::" - "visit_interface - " - "inheritance graph traversal failed\n"), - -1); - } - - return 0; -} - -int -be_visitor_amh_interface_si::gen_skel_helper (be_interface *derived, - be_interface *ancestor, - TAO_OutStream *os) -{ - // If derived and ancestor are same, skip it. - if (derived == ancestor) - { - return 0; - } - - // If an operation or an attribute is abstract (declared in an - // abstract interface), we will either generate the full - // definition (if there are no concrete interfaces between the - // abstract ancestor and us) or, if there is a concrete ancestor - // in between, we will catch its definition elsewhere in this - // traversal. - if (ancestor->is_abstract ()) - { - return 0; - } - - // Else generate code that does the cast to the appropriate type. - - if (ancestor->nmembers () > 0) - { - // If there are elements in ancestor scope i.e., any operations and - // attributes defined by "ancestor", become methods on the derived class - // which call the corresponding method of the base class by doing the - // proper casting. - - ACE_CString ancestor_name ("POA_"); - char *buf = 0; - ancestor->compute_full_name ("AMH_", "", buf); - ancestor_name += buf; - // buf was allocated by ACE_OS::strdup, so we need to use free instead - // of delete. - ACE_OS::free (buf); - buf = 0; - - const char *ancestor_amh_name = ancestor_name.fast_rep (); - - ACE_CString derived_name ("POA_"); - derived->compute_full_name ("AMH_", "", buf); - derived_name += buf; - // buf was allocated by ACE_OS::strdup, so we need to use free instead - // of delete. - ACE_OS::free (buf); - buf = 0; - - const char *derived_amh_name = derived_name.fast_rep (); - - for (UTL_ScopeActiveIterator si (ancestor, UTL_Scope::IK_decls); - !si.is_done (); - si.next ()) - { - // Get the next AST decl node - AST_Decl *d = si.item (); - AST_Decl::NodeType nt = d->node_type (); - - if (nt == AST_Decl::NT_op) - { - be_operation *op = - be_operation::narrow_from_decl (d); - - /// These implied IDL operations are for stub-side only. - if (op->is_sendc_ami ()) - { - continue; - } - - *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl - << "// " << __FILE__ << ":" << __LINE__; - - *os << be_nl_2; - - // Generate code in the inline file. - // Generate the static method corresponding to this method. - *os << "ACE_INLINE" << be_nl - << "void" << be_nl - << derived_amh_name << "::" - << d->local_name () - << "_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest & req," << be_nl - << "void * context," << be_nl - << "void * obj)" << be_uidt - << be_uidt_nl - << "{" << be_idt_nl; - *os << ancestor_amh_name - << "* const impl = static_cast<" - << derived_amh_name - << " *> (obj);" << be_nl; - *os << ancestor_amh_name - << "::" << d->local_name () - << "_skel (" << be_idt_nl - << "req," << be_nl - << "context," << be_nl - << "impl);" << be_uidt - << be_uidt_nl - << "}"; - } - else if (nt == AST_Decl::NT_attr) - { - be_attribute *attr = be_attribute::narrow_from_decl (d); - - if (attr == 0) - { - return -1; - } - - *os << be_nl_2; - - // Generate code in the inline file. - // Generate the static method corresponding to this method. - *os << "ACE_INLINE" << be_nl - << "void" << be_nl - << 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 - << be_uidt_nl - << "{" << be_idt_nl; - - *os << ancestor_amh_name - << "* const impl = static_cast<" - << derived_amh_name - << " *> (obj);" << be_nl; - - *os << ancestor_amh_name - << "::_get_" << d->local_name () - << "_skel (" << be_idt << be_idt_nl - << "req," << be_nl - << "context," << be_nl - << "impl);" << be_uidt - << be_uidt << be_uidt_nl - << "}"; - - if (!attr->readonly ()) - { - *os << be_nl_2; - - // Generate code in the inline file. - // Generate the static method corresponding to - // this method. - *os << "ACE_INLINE" << be_nl - << "void" << be_nl - << 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 - << be_uidt_nl - << "{" << be_idt_nl; - - *os << ancestor_amh_name - << "* const impl = static_cast<" - << derived_amh_name - << " *> (obj);" << be_nl; - - *os << ancestor_amh_name - << "::_set_" << d->local_name () - << "_skel (" << be_idt << be_idt_nl - << "req," << be_nl - << "context," << be_nl - << "impl);" << be_uidt - << be_uidt << be_uidt_nl - << "}"; - } - } - } // End of FOR - } - - return 0; -} - 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..41d97645066 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp @@ -118,25 +118,18 @@ 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 << "}"; } -void -be_visitor_amh_interface_ss::generate_send_reply (TAO_OutStream * os) -{ - *os << be_nl_2 - << "server_request.tao_send_reply ();"; -} - int be_visitor_amh_interface_ss::generate_amh_classes (be_interface *) { diff --git a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp index 6426205be58..4766f0afb9a 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp @@ -91,23 +91,6 @@ be_visitor_interface_direct_proxy_impl_sh::visit_interface ( -1); } - // Generate static collocated operations for operations of our base - // classes. - int status = - node->traverse_inheritance_graph ( - be_interface::gen_colloc_op_decl_helper, - os - ); - - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_direct_proxy_impl_sh::" - "visit_interface - " - "inheritance graph traversal failed\n"), - -1); - } - *os << be_uidt_nl << "};" << be_nl_2 << "//" << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp index 2881de3760a..345e80863bc 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp @@ -497,7 +497,6 @@ be_visitor_interface::visit_operation (be_operation *node) case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_SI: return 0; // nothing to be done default: { diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp index c7f2c0abd69..eb9bfbe2caf 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp @@ -158,11 +158,21 @@ be_visitor_interface_ch::visit_interface (be_interface *node) *os << "virtual const char* _interface_repository_id " << "(void) const;"; - // The virtual marshal method, to prevent marshal of local iterfaces. + // The virtual marshal method, to prevent marshal of local interfaces. *os << be_nl << "virtual ::CORBA::Boolean marshal " << "(TAO_OutputCDR &cdr);"; + // If we are generating CORBA Policy we need to add some more methods + if (ACE_OS::strcmp (node->full_name (), "CORBA::Policy") == 0) + { + *os << be_nl + << "virtual CORBA::Boolean _tao_encode (TAO_OutputCDR &);" << be_nl + << "virtual CORBA::Boolean _tao_decode (TAO_InputCDR &);" << be_nl + << "virtual TAO_Cached_Policy_Type _tao_cached_type (void) const;" << be_nl + << "virtual TAO_Policy_Scope _tao_scope (void) const;" << be_nl; + } + if (c == 0 && be_global->gen_ostream_operators ()) { *os << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp index e4944a84974..554c40f5875 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp @@ -91,9 +91,9 @@ be_visitor_interface_ci::visit_interface (be_interface *node) << be_idt << be_idt_nl << "::IOP::IOR *ior," << be_nl << "TAO_ORB_Core *oc)" << be_uidt_nl; - *os << ": ::CORBA::Object (ior, oc)" << be_idt_nl; + *os << ": ::CORBA::Object (ior, oc)"; - *os << be_uidt << be_uidt_nl + *os << be_uidt_nl << "{" << be_nl << "}" ; } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp index 0680d6e970b..fb2d3352040 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp @@ -101,6 +101,7 @@ be_visitor_interface_cs::visit_interface (be_interface *node) << "{" << be_idt_nl << "return "; + if (node->is_abstract () || c != 0) { *os << "cdr << p;"; @@ -114,6 +115,32 @@ be_visitor_interface_cs::visit_interface (be_interface *node) << "}"; } + // If we are generating CORBA Policy we need to add some more methods + if (ACE_OS::strcmp (node->full_name (), "CORBA::Policy") == 0) + { + *os << be_nl + << "CORBA::Boolean" << be_nl + << "CORBA::Policy::_tao_encode (TAO_OutputCDR &)" << be_nl + << "{" << be_nl + << " return false;" << be_nl + << "}" << be_nl << be_nl + << "CORBA::Boolean" << be_nl + << "CORBA::Policy::_tao_decode (TAO_InputCDR &)" << be_nl + << "{" << be_nl + << " return false;" << be_nl + << "}" << be_nl << be_nl + << "TAO_Cached_Policy_Type" << be_nl + << "CORBA::Policy::_tao_cached_type (void) const" << be_nl + << "{" << be_nl + << "return TAO_CACHED_POLICY_UNCACHED;" << be_nl + << "}" << be_nl << be_nl + << "TAO_Policy_Scope" << be_nl + << "CORBA::Policy::_tao_scope (void) const" << be_nl + << "{" << be_nl + << " return TAO_POLICY_DEFAULT_SCOPE;" << be_nl + << "}" << be_nl; + } + if (c == 0 && be_global->gen_ostream_operators ()) { *os << be_nl_2 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..25018bb4a05 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); @@ -200,24 +150,6 @@ be_visitor_interface_sh::visit_interface (be_interface *node) -1); } - // Generate skeletons for operations of our base classes. These - // skeletons just cast the pointer to the appropriate type - // before invoking the call. - int const status = - node->traverse_inheritance_graph ( - be_interface::gen_skel_helper, - os); - - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_interface_sh::") - ACE_TEXT ("visit_interface - ") - ACE_TEXT ("inheritance graph ") - ACE_TEXT ("traversal failed\n")), - -1); - } - *os << be_uidt_nl << "};"; be_visitor_context ctx (*this->ctx_); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp deleted file mode 100644 index 465650b6dc1..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp +++ /dev/null @@ -1,122 +0,0 @@ - -//============================================================================= -/** - * @file interface_si.cpp - * - * $Id$ - * - * Visitor generating code for Interfaces in the server inline file - * - * - * @author Aniruddha Gokhale - */ -//============================================================================= - -// ************************************************************************ -// Interface visitor for server inline -// ************************************************************************ - -be_visitor_interface_si::be_visitor_interface_si (be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_si::~be_visitor_interface_si (void) -{ -} - -int -be_visitor_interface_si::visit_interface (be_interface *node) -{ - if (node->srv_inline_gen () - || node->imported () - || node->is_local () - || node->is_abstract ()) - { - return 0; - } - - TAO_OutStream *os = this->ctx_->stream (); - - // Determine if we are in some form of a multiple inheritance. - int status = - node->traverse_inheritance_graph (be_interface::in_mult_inheritance_helper, - 0); - - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_interface_si::") - ACE_TEXT ("visit_interface ") - ACE_TEXT ("error determining mult ") - ACE_TEXT ("inheritance\n")), - -1); - } - - // Generate skeletons for operations of our base classes. These skeletons - // just cast the pointer to the appropriate type before invoking the - // call. Hence we generate these in the inline file. - status = node->traverse_inheritance_graph (be_interface::gen_skel_helper, - os); - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_interface_si::") - ACE_TEXT ("visit_interface - ") - ACE_TEXT ("codegen for base ") - ACE_TEXT ("class skeletons failed\n")), - -1); - } - - if (this->generate_amh_classes (node) == -1) - { - return -1; - } - - if (be_global->gen_direct_collocation ()) - { - status = - node->traverse_inheritance_graph ( - be_interface::gen_colloc_op_defn_helper, - os); - - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_interface_si::") - ACE_TEXT ("visit_interface - ") - ACE_TEXT ("codegen for collocated base ") - ACE_TEXT ("class skeletons failed\n")), - -1); - } - } - - return 0; -} - -int -be_visitor_interface_si::visit_component (be_component *node) -{ - return this->visit_interface (node); -} - -int -be_visitor_interface_si::visit_connector (be_connector *node) -{ - return this->visit_interface (node); -} - -int -be_visitor_interface_si::generate_amh_classes (be_interface *node) -{ - // We have to check for an abstract ancestor until AMH is integrated - // with abstract interfaces. If the node itself is abstract, this - // visitor would not be created. - if (be_global->gen_amh_classes () && !node->has_mixed_parentage ()) - { - be_visitor_amh_interface_si amh_intf (this->ctx_); - return amh_intf.visit_interface (node); - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp index 4298c71e52f..6528801c099 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,7 @@ 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 @@ -927,12 +419,6 @@ be_visitor_interface_ss::this_method (be_interface *node) } void -be_visitor_interface_ss::generate_send_reply (TAO_OutStream *) -{ - // no-op for regular interfaces -} - -void be_visitor_interface_ss::dispatch_method (be_interface *node) { TAO_OutStream *os = this->ctx_->stream (); @@ -945,8 +431,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_module/module.cpp b/TAO/TAO_IDL/be/be_visitor_module/module.cpp index 70965c24dc2..8402c983f6f 100644 --- a/TAO/TAO_IDL/be/be_visitor_module/module.cpp +++ b/TAO/TAO_IDL/be/be_visitor_module/module.cpp @@ -289,12 +289,6 @@ be_visitor_module::visit_interface (be_interface *node) status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_SI: - { - be_visitor_interface_si visitor (&ctx); - status = node->accept (&visitor); - break; - } case TAO_CodeGen::TAO_ROOT_SS: { be_visitor_interface_ss visitor (&ctx); @@ -353,6 +347,8 @@ be_visitor_module::visit_interface (be_interface *node) case TAO_CodeGen::TAO_ROOT_EXS: case TAO_CodeGen::TAO_ROOT_CNH: case TAO_CodeGen::TAO_ROOT_CNS: + case TAO_CodeGen::TAO_ROOT_SVTH: + case TAO_CodeGen::TAO_ROOT_SVTS: { // Nothing to be done for these cases. return 0; @@ -484,7 +480,6 @@ be_visitor_module::visit_valuebox (be_valuebox *node) break; } case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: case TAO_CodeGen::TAO_ROOT_SS: { break; @@ -564,12 +559,6 @@ be_visitor_module::visit_valuetype (be_valuetype *node) status = node->accept (&visitor); break; } - case TAO_CodeGen::TAO_ROOT_SI: - { - be_visitor_valuetype_si visitor (&ctx); - status = node->accept (&visitor); - break; - } case TAO_CodeGen::TAO_ROOT_SS: { be_visitor_valuetype_ss visitor (&ctx); @@ -669,7 +658,6 @@ be_visitor_module::visit_component (be_component *node) case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: case TAO_CodeGen::TAO_ROOT_SS: return this->visit_interface (node); @@ -679,6 +667,18 @@ be_visitor_module::visit_component (be_component *node) case TAO_CodeGen::TAO_ROOT_CNH: case TAO_CodeGen::TAO_ROOT_CNS: break; + case TAO_CodeGen::TAO_ROOT_SVTH: + { + be_visitor_facet_svth visitor (&ctx); + status = node->accept (&visitor); + break; + } + case TAO_CodeGen::TAO_ROOT_SVTS: + { + be_visitor_facet_svts visitor (&ctx); + status = node->accept (&visitor); + break; + } case TAO_CodeGen::TAO_ROOT_SVH: { be_visitor_component_svh visitor (&ctx); 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..604677bb249 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 + << "TAO_ServantBase *_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 da9362998b9..0df2834e727 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/amh_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/amh_ss.cpp @@ -336,9 +336,9 @@ 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 - << "void * _tao_servant" << be_uidt_nl - << ")" << be_uidt_nl; + << "TAO::Portable_Server::Servant_Upcall * /* context */," << be_nl + << "TAO_ServantBase * _tao_servant)" << be_uidt + << be_uidt_nl; // Generate the actual code for the skeleton. // last argument @@ -346,7 +346,7 @@ be_visitor_amh_operation_ss::generate_shared_prologue (be_decl *node, // Get the right object implementation. *os << amh_skel_name.c_str () << " * const _tao_impl =" << be_idt_nl - << "static_cast<" << amh_skel_name.c_str () << " *> (" + << "dynamic_cast<" << amh_skel_name.c_str () << " *> (" << "_tao_servant" << ");" << be_uidt_nl; return 0; diff --git a/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp index c69901bbc09..6cc527087ba 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp @@ -88,6 +88,15 @@ be_visitor_operation_direct_proxy_impl_ss::visit_operation ( *os << be_uidt_nl << "{" << be_idt_nl; + *os << intf->full_skel_name () << "_ptr _tao_ptr = " << be_idt_nl + << "dynamic_cast<" << intf->full_skel_name () << "_ptr> (" + << "servant);" << be_uidt_nl; + + *os << "if (!_tao_ptr)" << be_idt_nl + << "{" << be_idt_nl + << "throw CORBA::INTERNAL ();" << be_uidt_nl + << "}" << be_uidt_nl << be_nl; + if (!node->void_return_type ()) { *os << "((TAO::Arg_Traits< "; @@ -99,9 +108,7 @@ be_visitor_operation_direct_proxy_impl_ss::visit_operation ( *os << ">::ret_val *) args[0])->arg () =" << be_idt_nl; } - *os << "dynamic_cast<" << be_idt - << intf->full_skel_name () << "_ptr>" << be_nl << "(" - << "servant)" << be_uidt_nl; + *os << "_tao_ptr"; be_visitor_context ctx; 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..034344a7d96 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp @@ -107,9 +107,9 @@ 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 - << "void * servant);" << be_uidt + << "TAO_ServerRequest &server_request," << be_nl + << "TAO::Portable_Server::Servant_Upcall *servant_upcall," << be_nl + << "TAO_ServantBase *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..80a6ff9a21b 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp @@ -191,8 +191,8 @@ 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 - << "void * servant)" << be_uidt << be_uidt_nl; + << "TAO::Portable_Server::Servant_Upcall *TAO_INTERCEPTOR (servant_upcall)," << be_nl + << "TAO_ServantBase *servant)" << be_uidt << be_uidt_nl; // Generate the actual code for the skeleton. However, if any of the // argument types is "native", we do not generate any skeleton @@ -246,7 +246,7 @@ be_visitor_operation_ss::gen_skel_operation_body (be_operation * node, // Get the right object implementation. *os << intf->full_skel_name () << " * const impl =" << be_idt_nl - << "static_cast<" + << "dynamic_cast<" << intf->full_skel_name () << " *> (servant);" << be_uidt << be_uidt_nl; // Upcall_Command instantiation. diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_svs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_svs.cpp index 68084dc7420..4b6d36e3524 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_svs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_svs.cpp @@ -11,6 +11,7 @@ * @author Jeff Parsons */ //============================================================================= +#include <be_visitor_operation/operation_svs.h> be_visitor_operation_svs::be_visitor_operation_svs ( be_visitor_context *ctx) @@ -30,6 +31,12 @@ be_visitor_operation_svs::visit_operation (be_operation *node) os_ << be_nl_2; + + if (this->ctx_->state () == TAO_CodeGen::TAO_ROOT_SVTS) + { + os_ << "template <typename BASE, typename EXEC, typename CONTEXT>" + << be_nl; + } // Retrieve the operation return type. be_type *bt = be_type::narrow_from_decl (node->return_type ()); @@ -56,9 +63,19 @@ be_visitor_operation_svs::visit_operation (be_operation *node) } // Generate the operation name, avoiding possible _cxx_ prefix. - os_ << be_nl - << scope_->original_local_name ()->get_string () - << "_Servant"; + // USE STATE con the context!!!!!!! + if (this->ctx_->state () == TAO_CodeGen::TAO_ROOT_SVTS) + { + os_ << be_nl + << scope_->original_local_name ()->get_string () + << "_Servant_T<BASE, EXEC, CONTEXT>"; + } + else + { + os_ << be_nl + << scope_->original_local_name ()->get_string () + << "_Servant"; + } os_ << "::" << node->local_name (); diff --git a/TAO/TAO_IDL/be/be_visitor_root.cpp b/TAO/TAO_IDL/be/be_visitor_root.cpp index 92456f48d4a..046c3c67913 100644 --- a/TAO/TAO_IDL/be/be_visitor_root.cpp +++ b/TAO/TAO_IDL/be/be_visitor_root.cpp @@ -67,13 +67,14 @@ #include "be_visitor_root/root_ci.cpp" #include "be_visitor_root/root_cs.cpp" #include "be_visitor_root/root_sh.cpp" -#include "be_visitor_root/root_si.cpp" #include "be_visitor_root/root_ss.cpp" #include "be_visitor_root/root_sth.cpp" #include "be_visitor_root/root_is.cpp" #include "be_visitor_root/root_ih.cpp" #include "be_visitor_root/root_svh.cpp" #include "be_visitor_root/root_svs.cpp" +#include "be_visitor_root/root_svth.cpp" +#include "be_visitor_root/root_svts.cpp" #include "be_visitor_root/root_ex_idl.cpp" #include "be_visitor_root/root_exh.cpp" #include "be_visitor_root/root_exs.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_si.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_si.cpp deleted file mode 100644 index 35b082bc11b..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_root/root_si.cpp +++ /dev/null @@ -1,71 +0,0 @@ - -//============================================================================= -/** - * @file root_si.cpp - * - * $Id$ - * - * Visitor generating code for the Root in the server inline file - * - * - * @author Aniruddha Gokhale - */ -//============================================================================= - -// *********************************************** -// Root visitor for server inline -// *********************************************** - -be_visitor_root_si::be_visitor_root_si (be_visitor_context *ctx) - : be_visitor_root (ctx) -{ -} - -be_visitor_root_si::~be_visitor_root_si (void) -{ -} - -int -be_visitor_root_si::visit_root (be_root *node) -{ - if (this->init () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_root_si::init - ") - ACE_TEXT ("failed to initialize\n")), - -1); - } - - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_root_si::visit_root - ") - ACE_TEXT ("codegen for scope failed\n")), - -1); - } - - (void) tao_cg->end_server_inline (); - - return 0; -} - -int -be_visitor_root_si::init (void) -{ - /// First open the server-side file for writing - int status = - tao_cg->start_server_inline ( - be_global->be_get_server_inline_fname ()); - - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("be_visitor_root_si::init - ") - ACE_TEXT ("Error opening server inline file\n")), - -1); - } - - /// Initialize the stream. - this->ctx_->stream (tao_cg->server_inline ()); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_svth.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_svth.cpp new file mode 100644 index 00000000000..c4b4a10e963 --- /dev/null +++ b/TAO/TAO_IDL/be/be_visitor_root/root_svth.cpp @@ -0,0 +1,73 @@ + +//============================================================================= +/** + * @file root_svth.cpp + * + * $Id$ + * + * Visitor generating code for Root in the CIAO template servant header + * + * + * @author Marcel Smit + */ +//============================================================================= + +// ******************************** +// Root visitor for CIAO template servant header +// ******************************** + +be_visitor_root_svth::be_visitor_root_svth (be_visitor_context *ctx) + : be_visitor_root (ctx) +{ +} + +be_visitor_root_svth::~be_visitor_root_svth (void) +{ +} + +int +be_visitor_root_svth::visit_root (be_root *node) +{ + if (this->init () == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("be_visitor_root_svth::init - ") + ACE_TEXT ("failed to initialize\n")), + -1); + } + + if (this->visit_scope (node) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("be_visitor_root_svth::visit_root - ") + ACE_TEXT ("codegen for scope failed\n")), + -1); + } + + (void) tao_cg->end_ciao_svnt_template_header (); + + return 0; +} + +int +be_visitor_root_svth::init (void) +{ + /// First open the file for writing. + int status = + tao_cg->start_ciao_svnt_template_header ( + be_global->be_get_ciao_tmpl_svnt_hdr_fname ()); + + if (status == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("be_visitor_root_svth::init - ") + ACE_TEXT ("Error opening CIAO servant ") + ACE_TEXT ("header file\n")), + -1); + } + + /// Initialize the stream. + this->ctx_->stream (tao_cg->ciao_svnt_template_header ()); + + return 0; +} diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_svts.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_svts.cpp new file mode 100644 index 00000000000..cfe25bf2e18 --- /dev/null +++ b/TAO/TAO_IDL/be/be_visitor_root/root_svts.cpp @@ -0,0 +1,73 @@ + +//============================================================================= +/** + * @file root_svts.cpp + * + * $Id$ + * + * Visitor generating code for Root in the CIAO template servant source + * + * + * @author Marcel Smit + */ +//============================================================================= + +// ******************************** +// Root visitor for CIAO template servant source +// ******************************** + +be_visitor_root_svts::be_visitor_root_svts (be_visitor_context *ctx) + : be_visitor_root (ctx) +{ +} + +be_visitor_root_svts::~be_visitor_root_svts (void) +{ +} + +int +be_visitor_root_svts::visit_root (be_root *node) +{ + if (this->init () == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("be_visitor_root_svts::init - ") + ACE_TEXT ("failed to initialize\n")), + -1); + } + + if (this->visit_scope (node) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("be_visitor_root_svts::visit_root - ") + ACE_TEXT ("codegen for scope failed\n")), + -1); + } + + (void) tao_cg->end_ciao_svnt_template_source (); + + return 0; +} + +int +be_visitor_root_svts::init (void) +{ + // First open the client-side header file for writing. + int status = + tao_cg->start_ciao_svnt_template_source ( + be_global->be_get_ciao_tmpl_svnt_src_fname ()); + + if (status == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("be_visitor_root_svts::init - ") + ACE_TEXT ("Error opening CIAO servant ") + ACE_TEXT ("source file\n")), + -1); + } + + // Initialize the stream. + this->ctx_->stream (tao_cg->ciao_svnt_template_source ()); + + return 0; +} diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype.cpp index a05039ae09b..0a9d72c2e74 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype.cpp @@ -69,7 +69,6 @@ #include "be_visitor_valuetype/valuetype_ci.cpp" #include "be_visitor_valuetype/valuetype_cs.cpp" #include "be_visitor_valuetype/valuetype_sh.cpp" -#include "be_visitor_valuetype/valuetype_si.cpp" #include "be_visitor_valuetype/valuetype_ss.cpp" #include "be_visitor_valuetype/valuetype_obv_ch.cpp" #include "be_visitor_valuetype/valuetype_obv_ci.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp index 5c78a4feb29..dfd31b10afa 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp @@ -16,8 +16,7 @@ be_visitor_valuetype_field_cs::be_visitor_valuetype_field_cs ( - be_visitor_context *ctx - ) + be_visitor_context *ctx) : be_visitor_decl (ctx), in_obv_space_ (0) { @@ -144,7 +143,7 @@ be_visitor_valuetype_field_cs::visit_array (be_array *node) *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl_2; - *os << "// Accessor to set the member." << be_nl + *os << "/// Accessor to set the member." << be_nl << this->pre_op () << "void" << be_nl; this->op_name (bu, @@ -589,7 +588,7 @@ be_visitor_valuetype_field_cs::visit_predefined_type (be_predefined_type *node) *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl_2; - *os << "// Accessor to set the member." << be_nl + *os << "/// Accessor to set the member." << be_nl << this->pre_op () << "void" << be_nl; this->op_name (bu, os); @@ -646,7 +645,7 @@ be_visitor_valuetype_field_cs::visit_predefined_type (be_predefined_type *node) { case AST_PredefinedType::PT_pseudo: case AST_PredefinedType::PT_object: - *os << "// Retrieve the member" << be_nl + *os << "/// Retrieve the member" << be_nl << this->pre_op () << "::" << bt->name () << "_ptr" << be_nl; this->op_name (bu, @@ -765,7 +764,7 @@ be_visitor_valuetype_field_cs::visit_sequence (be_sequence *node) << "// " << __FILE__ << ":" << __LINE__ << be_nl_2; // (1) set from a const - *os << "// Accessor to set the member." << be_nl + *os << "/// Accessor to set the member." << be_nl << this->pre_op () << "void" << be_nl; this->op_name (bu, @@ -781,7 +780,7 @@ be_visitor_valuetype_field_cs::visit_sequence (be_sequence *node) << " = val;" << be_uidt_nl; *os << "}" << be_nl_2; - *os << "// Readonly get method." << be_nl + *os << "/// Readonly get method." << be_nl << this->pre_op () << "const " << bt->name () << " &" << be_nl; this->op_name (bu, @@ -796,7 +795,7 @@ be_visitor_valuetype_field_cs::visit_sequence (be_sequence *node) << ";" << be_uidt_nl << "}" << be_nl_2; - *os << "// Read/write get method." << be_nl + *os << "/// Read/write get method." << be_nl << this->pre_op () << bt->name () << " &" << be_nl; this->op_name (bu, @@ -836,7 +835,7 @@ be_visitor_valuetype_field_cs::visit_string (be_string *node) *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl_2; - *os << "// Accessor to set the member." << be_nl + *os << "/// Accessor to set the member." << be_nl << this->pre_op () << "void" << be_nl; this->op_name (bu, @@ -860,7 +859,7 @@ be_visitor_valuetype_field_cs::visit_string (be_string *node) << "}" << be_nl_2; // (2) Set method from const char * or const wchar*. - *os << "// Accessor to set the member." << be_nl + *os << "/// Accessor to set the member." << be_nl << this->pre_op () << "void" << be_nl; this->op_name (bu, @@ -896,7 +895,7 @@ be_visitor_valuetype_field_cs::visit_string (be_string *node) *os << "}" << be_nl_2; // (3) Set from const String_var&. - *os << "// Accessor to set the member." << be_nl + *os << "/// Accessor to set the member." << be_nl << this->pre_op () << "void" << be_nl; this->op_name (bu, @@ -1006,7 +1005,7 @@ be_visitor_valuetype_field_cs::visit_structure (be_structure *node) << "// " << __FILE__ << ":" << __LINE__ << be_nl_2; // (1) Set from a const. - *os << "// Accessor to set the member." << be_nl + *os << "/// Accessor to set the member." << be_nl << this->pre_op () << "void" << be_nl; this->op_name (bu, @@ -1023,7 +1022,7 @@ be_visitor_valuetype_field_cs::visit_structure (be_structure *node) *os << "}" << be_nl; - *os << "// Readonly get method." << be_nl + *os << "/// Readonly get method." << be_nl << this->pre_op () << "const " << bt->name () << " &" << be_nl; this->op_name (bu, @@ -1037,7 +1036,7 @@ be_visitor_valuetype_field_cs::visit_structure (be_structure *node) << ";" << be_uidt_nl; *os << "}" << be_nl; - *os << "// Read/write get method." << be_nl + *os << "/// Read/write get method." << be_nl << this->pre_op () << bt->name () << " &" << be_nl; this->op_name (bu, @@ -1122,7 +1121,7 @@ be_visitor_valuetype_field_cs::visit_union (be_union *node) *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl_2; - *os << "// Accessor to set the member" << be_nl + *os << "/// Accessor to set the member" << be_nl << this->pre_op () << "void" << be_nl; this->op_name (bu, @@ -1135,7 +1134,7 @@ be_visitor_valuetype_field_cs::visit_union (be_union *node) << bu->field_pd_postfix () << " = val;" << be_uidt_nl; *os << "}" << be_nl; - *os << "// Readonly get method." << be_nl + *os << "/// Readonly get method." << be_nl << this->pre_op () << "const " << bt->name () << " &" << be_nl; this->op_name (bu, @@ -1149,7 +1148,7 @@ be_visitor_valuetype_field_cs::visit_union (be_union *node) << ";" << be_uidt_nl << "}" << be_nl; - *os << "// Read/write get method." << be_nl + *os << "/// Read/write get method." << be_nl << this->pre_op () << bt->name () << " &" << be_nl; this->op_name (bu, diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp index 09db8aea597..dbe0de1df37 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp @@ -193,7 +193,6 @@ be_visitor_valuetype::visit_constant (be_constant *node) case TAO_CodeGen::TAO_ROOT_SH: case TAO_CodeGen::TAO_ROOT_IH: case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_SI: case TAO_CodeGen::TAO_ROOT_SS: return 0; // Nothing to be done. default: @@ -268,7 +267,6 @@ be_visitor_valuetype::visit_enum (be_enum *node) case TAO_CodeGen::TAO_ROOT_SH: case TAO_CodeGen::TAO_ROOT_IH: case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_SI: case TAO_CodeGen::TAO_ROOT_SS: return 0; // Nothing to be done. default: @@ -512,10 +510,11 @@ be_visitor_valuetype::visit_union (be_union *node) break; } case TAO_CodeGen::TAO_VALUETYPE_OBV_CH: + case TAO_CodeGen::TAO_MODULE_OBV_CI: + case TAO_CodeGen::TAO_MODULE_OBV_CS: case TAO_CodeGen::TAO_ROOT_SH: case TAO_CodeGen::TAO_ROOT_IH: case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_SI: case TAO_CodeGen::TAO_ROOT_SS: return 0; // Nothing to be done. default: @@ -630,7 +629,6 @@ be_visitor_valuetype::visit_typedef (be_typedef *node) case TAO_CodeGen::TAO_ROOT_SH: case TAO_CodeGen::TAO_ROOT_IH: case TAO_CodeGen::TAO_ROOT_IS: - case TAO_CodeGen::TAO_ROOT_SI: case TAO_CodeGen::TAO_ROOT_SS: return 0; // Nothing to be done. default: diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp index 69c39553917..18c10a03b78 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp @@ -74,8 +74,7 @@ be_visitor_valuetype_obv_cs::visit_valuetype (be_valuetype *node) unsigned long index = 0; this->gen_obv_init_constructor_args (node, index); - *os << be_uidt_nl - << ")" << be_uidt << be_uidt_nl + *os << ")" << be_uidt << be_uidt << be_uidt_nl << ": require_truncation_ (false)" << be_nl << "{" << be_idt; diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_si.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_si.cpp deleted file mode 100644 index 7b49825afb5..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_si.cpp +++ /dev/null @@ -1,41 +0,0 @@ - -//============================================================================= -/** - * @file valuetype_si.cpp - * - * $Id$ - * - * Visitor generating code for Interfaces in the server inline file - * - * - * @author Jeff Parsons - */ -//============================================================================= - - -// ************************************************************************ -// Valuetype visitor for server inline -// ************************************************************************ - -be_visitor_valuetype_si::be_visitor_valuetype_si (be_visitor_context *ctx) - : be_visitor_valuetype (ctx) -{ -} - -be_visitor_valuetype_si::~be_visitor_valuetype_si (void) -{ -} - -int -be_visitor_valuetype_si::visit_valuetype (be_valuetype *) -{ - // Nothing needed for now, but the visitor is here just in case. - return 0; -} - -int -be_visitor_valuetype_si::visit_eventtype (be_eventtype *node) -{ - return this->visit_valuetype (node); -} - diff --git a/TAO/TAO_IDL/be_include/be_codegen.h b/TAO/TAO_IDL/be_include/be_codegen.h index b0611b2bb8a..03f7442c765 100644 --- a/TAO/TAO_IDL/be_include/be_codegen.h +++ b/TAO/TAO_IDL/be_include/be_codegen.h @@ -119,7 +119,6 @@ public: TAO_ROOT_CI, TAO_ROOT_CS, TAO_ROOT_SH, - TAO_ROOT_SI, TAO_ROOT_SS, TAO_ROOT_TIE_SH, TAO_ROOT_TIE_SS, @@ -127,6 +126,8 @@ public: TAO_ROOT_IS, TAO_ROOT_SVH, TAO_ROOT_SVS, + TAO_ROOT_SVTH, + TAO_ROOT_SVTS, TAO_ROOT_EXH, TAO_ROOT_EXS, TAO_ROOT_CNH, @@ -226,9 +227,6 @@ public: /// Set the server template header stream. int start_server_template_header (const char *fname); - /// Set the server inline stream. - int start_server_inline (const char *fname); - /// Set the server skeletons stream. int start_server_skeletons (const char *fname); @@ -243,6 +241,8 @@ public: int start_ciao_svnt_header (const char *fname); int start_ciao_svnt_source (const char *fname); + int start_ciao_svnt_template_header (const char *fname); + int start_ciao_svnt_template_source (const char *fname); int start_ciao_exec_header (const char *fname); int start_ciao_exec_source (const char *fname); int start_ciao_exec_idl (const char *fname); @@ -263,9 +263,6 @@ public: /// Put a last #endif in the server header. int end_server_header (void); - /// Generate necessary code at end of server inline file. - void end_server_inline (void); - /// Put a last #endif in the server header. int end_implementation_header (const char *fname); @@ -289,6 +286,8 @@ public: int end_ciao_svnt_header (void); int end_ciao_svnt_source (void); + int end_ciao_svnt_template_header (void); + int end_ciao_svnt_template_source (void); int end_ciao_exec_header (void); int end_ciao_exec_source (void); int end_ciao_exec_idl (void); @@ -323,9 +322,6 @@ public: /// Get the server template skeletons stream. TAO_OutStream *server_template_skeletons (void); - /// Get the server inline stream. - TAO_OutStream *server_inline (void); - /// Get the server template inline stream. TAO_OutStream *server_template_inline (void); @@ -341,6 +337,12 @@ public: /// Get the CIAO servant source stream. TAO_OutStream *ciao_svnt_source (void); + /// Get the CIAO template servant header stream. + TAO_OutStream *ciao_svnt_template_header (void); + + /// Get the CIAO template servant source stream. + TAO_OutStream *ciao_svnt_template_source (void); + /// Get the CIAO executor impl header stream. TAO_OutStream *ciao_exec_header (void); @@ -417,8 +419,8 @@ private: void gen_typecode_includes (TAO_OutStream * stream); /// Used if one or both of the CIAO code gen flags are set. - void gen_svnt_hdr_includes (void); - void gen_svnt_src_includes (void); + void gen_svnt_hdr_includes (TAO_OutStream *stream); + void gen_svnt_src_includes (TAO_OutStream *stream); void gen_exec_hdr_includes (void); void gen_exec_src_includes (void); void gen_exec_idl_includes (void); @@ -463,9 +465,6 @@ private: /// Server skeleton template stream. TAO_OutStream *server_template_skeletons_; - /// Server side inline file. - TAO_OutStream *server_inline_; - /// Anyop header file. TAO_OutStream *anyop_header_; @@ -481,6 +480,12 @@ private: /// Component servant source file. TAO_OutStream *ciao_svnt_source_; + /// Template component servant header file. + TAO_OutStream *ciao_svnt_template_header_; + + /// Template component servant source file. + TAO_OutStream *ciao_svnt_template_source_; + /// Component executor impl header file. TAO_OutStream *ciao_exec_header_; diff --git a/TAO/TAO_IDL/be_include/be_global.h b/TAO/TAO_IDL/be_include/be_global.h index 4838d0b77ff..e65c4d30646 100644 --- a/TAO/TAO_IDL/be_include/be_global.h +++ b/TAO/TAO_IDL/be_include/be_global.h @@ -99,9 +99,6 @@ public: static const char *be_get_server_template_skeleton_fname ( bool base_name_only = false); - static const char *be_get_server_inline_fname ( - bool base_name_only = false); - static const char *be_get_anyop_source_fname ( bool base_name_only = false); @@ -111,9 +108,15 @@ public: static const char *be_get_ciao_svnt_hdr_fname ( bool base_name_only = false); + static const char *be_get_ciao_tmpl_svnt_hdr_fname ( + bool base_name_only=false); + static const char *be_get_ciao_svnt_src_fname ( bool base_name_only = false); + static const char *be_get_ciao_tmpl_svnt_src_fname ( + bool base_name_only=false); + static const char *be_get_ciao_exec_hdr_fname ( bool base_name_only = false); @@ -180,10 +183,6 @@ public: UTL_String *idl_file_name, bool base_name_only = false); - static const char *be_get_server_inline ( - UTL_String *idl_file_name, - bool base_name_only = false); - static const char *be_get_anyop_header ( UTL_String *idl_file_name, bool base_name_only = false); @@ -196,10 +195,18 @@ public: UTL_String *idl_file_name, bool base_name_only = false); + static const char *be_get_ciao_svnt_template_header ( + UTL_String *idl_file_name, + bool base_name_only = false); + static const char *be_get_ciao_svnt_source ( UTL_String *idl_file_name, bool base_name_only = false); + static const char *be_get_ciao_svnt_template_source ( + UTL_String *idl_file_name, + bool base_name_only = false); + static const char *be_get_ciao_exec_header ( UTL_String *idl_file_name, bool base_name_only = false); @@ -481,12 +488,6 @@ public: /// Get the server_template_skeleton_ending. const char* server_template_skeleton_ending (void) const; - /// Set the server_inline_ending. - void server_inline_ending (const char* s); - - /// Get the server_inline_ending. - const char* server_inline_ending (void) const; - /// Set the anyop_header_ending. void anyop_header_ending (const char* s); @@ -501,6 +502,12 @@ public: /// Similar to above, but for CIAO servant and executor /// impl and executor IDL files, if generated. + void ciao_svnt_header_template_ending (const char* s); + const char* ciao_svnt_header_template_ending (void) const; + + void ciao_svnt_source_template_ending (const char* s); + const char* ciao_svnt_source_template_ending (void) const; + void ciao_svnt_header_ending (const char* s); const char* ciao_svnt_header_ending (void) const; @@ -603,6 +610,20 @@ public: /// to be kept. Default is output_dir_. const char* anyop_output_dir (void) const; + /// Set the directory where all the *exec.* files are + /// to be kept. Default is output_dir_. + void exec_output_dir (const char* s); + + /// Get the directory where all the *exec.* files are + /// to be kept. Default is output_dir_. + const char* exec_output_dir (void) const; + + ///Get the flag for not overwriting already existing exec files. + bool overwrite_not_exec (void) const; + + ///Set the flag for not overwriting already existing exec files. + void overwrite_not_exec (bool val); + /// Set any support. void any_support (bool); @@ -797,10 +818,6 @@ public: bool gen_client_inline (void) const; void gen_client_inline (bool val); - /// Accessors for the member gen_server_inline_. - bool gen_server_inline (void) const; - void gen_server_inline (bool val); - /// Accessors for the member gen_client_stub_. bool gen_client_stub (void) const; void gen_client_stub (bool val); @@ -967,15 +984,18 @@ private: /// "S_T.cpp". char* server_template_skeleton_ending_; - /// Server's inline file name ending. Default is "S.i". - char* server_inline_ending_; - /// Anyop header file name ending. Default is "A.h". char* anyop_hdr_ending_; /// Anyop source file name ending. Default is "A.cpp". char* anyop_src_ending_; + /// CIAO servant template header file name ending. Default is "_svnt_T.h". + char* ciao_svnt_hdr_template_ending_; + + /// CIAO servant template source file name ending. Default is "_svnt_T.cpp". + char* ciao_svnt_src_template_ending_; + /// CIAO servant header file name ending. Default is "_svnt.h". char* ciao_svnt_hdr_ending_; @@ -1045,6 +1065,14 @@ private: */ char* anyop_output_dir_; + /** + * Directory where all the *exec.* files are to be + * kept. Default value is 0 for this string which means the + * value for output_dir_ is used. + */ + char* exec_output_dir_; + + /// do we support Any operators? bool any_support_; @@ -1160,10 +1188,6 @@ private: bool gen_client_inline_; /// True by default, but a command line option can turn this off so - /// that we don't generate a server inline file - bool gen_server_inline_; - - /// True by default, but a command line option can turn this off so /// that we don't generate a client stub file bool gen_client_stub_; @@ -1206,6 +1230,10 @@ private: bool gen_ciao_exec_impl_; bool gen_ciao_exec_reactor_impl_; + ///Flag to indicate whether generated exec files should + ///overwritten already existing exe files + bool overwrite_not_exec_; + /// False by default, this flag triggers code generation /// for CCM connector implementations. bool gen_ciao_conn_impl_; diff --git a/TAO/TAO_IDL/be_include/be_helper.h b/TAO/TAO_IDL/be_include/be_helper.h index fa1938ef12a..a34083dc2af 100644 --- a/TAO/TAO_IDL/be_include/be_helper.h +++ b/TAO/TAO_IDL/be_include/be_helper.h @@ -110,6 +110,8 @@ public: TAO_GPERF_INPUT, CIAO_SVNT_HDR, CIAO_SVNT_IMPL, + CIAO_SVNT_T_HDR, + CIAO_SVNT_T_IMPL, CIAO_EXEC_HDR, CIAO_EXEC_IMPL, CIAO_EXEC_IDL, diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h index ca64c76bdfd..46e95ec8235 100644 --- a/TAO/TAO_IDL/be_include/be_interface.h +++ b/TAO/TAO_IDL/be_include/be_interface.h @@ -185,24 +185,6 @@ public: be_interface *, TAO_OutStream *os); - /// Helper method passed to the template method to generate code for the - /// skeletons in the header and inline files. - static int gen_skel_helper (be_interface *, - be_interface *, - TAO_OutStream *); - - /// Helper method passed to the template method to generate code for the - /// collocated functions in the header file. - static int gen_colloc_op_decl_helper (be_interface *derived, - be_interface *ancestor, - TAO_OutStream *os); - - /// Helper method passed to the template method to generate code for the - /// collocated functions in the source file. - static int gen_colloc_op_defn_helper (be_interface *derived, - be_interface *ancestor, - TAO_OutStream *os); - /// Helper method passed to the template method to invoke ctors of all the /// base classes. static int copy_ctor_helper (be_interface *, @@ -247,15 +229,6 @@ public: /// pure virtual. int convert_parent_ops (be_visitor *visitor); - /// Common code called from gen_colloc_op_defn_helper(). - static void gen_collocated_skel_body (be_interface *derived, - be_interface *ancestor, - AST_Decl *d, - const char *prefix, - bool direct, - UTL_ExceptList *list, - TAO_OutStream *os); - /// Overridden from class be_type. virtual void gen_ostream_operator (TAO_OutStream *os, bool use_underscore); @@ -412,6 +385,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/TAO_IDL/be_include/be_provides.h b/TAO/TAO_IDL/be_include/be_provides.h index 0effaf3ce33..6c32155c6b1 100644 --- a/TAO/TAO_IDL/be_include/be_provides.h +++ b/TAO/TAO_IDL/be_include/be_provides.h @@ -25,8 +25,8 @@ public: be_type *provides_type (void) const; // Common code called by visitors. - int gen_facet_svnt_decl (TAO_OutStream &os); - int gen_facet_svnt_defn (TAO_OutStream &os); + int gen_facet_svnt_tmpl_decl (TAO_OutStream &os); + int gen_facet_svnt_tmpl_defn (TAO_OutStream &os); // Narrowing. DEF_NARROW_FROM_DECL(be_provides); diff --git a/TAO/TAO_IDL/be_include/be_util.h b/TAO/TAO_IDL/be_include/be_util.h index 26f05ee0bd7..7152e910841 100644 --- a/TAO/TAO_IDL/be_include/be_util.h +++ b/TAO/TAO_IDL/be_include/be_util.h @@ -63,7 +63,14 @@ public: /// Called from various places. static const char * - get_output_path (bool for_anyop, bool for_skel); + get_output_path (bool for_anyop, bool for_skel, bool for_exec); + + static const char * + get_complete_file_name (bool for_exec); + + /// Called from various places. + static bool + overwrite_ciao_exec_files (void); // Called by each node upon construction. static void set_arg_seen_bit (be_type *); diff --git a/TAO/TAO_IDL/be_include/be_visitor_component.h b/TAO/TAO_IDL/be_include/be_visitor_component.h index deb945c9eab..1fd4cfdf9b1 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_component.h +++ b/TAO/TAO_IDL/be_include/be_visitor_component.h @@ -21,11 +21,11 @@ #include "be_visitor_component/component.h" #include "be_visitor_component/component_svh.h" -#include "be_visitor_component/facet_svh.h" +#include "be_visitor_component/facet_svth.h" #include "be_visitor_component/context_svh.h" #include "be_visitor_component/servant_svh.h" #include "be_visitor_component/component_svs.h" -#include "be_visitor_component/facet_svs.h" +#include "be_visitor_component/facet_svts.h" #include "be_visitor_component/context_svs.h" #include "be_visitor_component/servant_svs.h" #include "be_visitor_component/component_ex_idl.h" diff --git a/TAO/TAO_IDL/be_include/be_visitor_component/facet_svh.h b/TAO/TAO_IDL/be_include/be_visitor_component/facet_svth.h index 93d83b4eb57..819e0dc8161 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_component/facet_svh.h +++ b/TAO/TAO_IDL/be_include/be_visitor_component/facet_svth.h @@ -1,7 +1,7 @@ /* -*- c++ -*- */ //============================================================================= /** - * @file facet_svh.h + * @file facet_svth.h * * $Id$ * @@ -18,20 +18,22 @@ #define _BE_COMPONENT_FACET_SVH_H_ /** - * @class be_visitor_facet_svh + * @class be_visitor_facet_svth * - * @brief be_visitor_facet_svh + * @brief be_visitor_facet_svth * * This is a concrete visitor to generate the facet servant decl * for a component. */ -class be_visitor_facet_svh : public be_visitor_component_scope +class be_visitor_facet_svth : public be_visitor_component_scope { public: - be_visitor_facet_svh (be_visitor_context *ctx); + be_visitor_facet_svth (be_visitor_context *ctx); - ~be_visitor_facet_svh (void); + ~be_visitor_facet_svth (void); + virtual int visit_connector (be_connector *node); + virtual int visit_component (be_component *node); virtual int visit_provides (be_provides *node); }; diff --git a/TAO/TAO_IDL/be_include/be_visitor_component/facet_svs.h b/TAO/TAO_IDL/be_include/be_visitor_component/facet_svts.h index 46658f60257..771fd5c74df 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_component/facet_svs.h +++ b/TAO/TAO_IDL/be_include/be_visitor_component/facet_svts.h @@ -1,7 +1,7 @@ /* -*- c++ -*- */ //============================================================================= /** - * @file facet_svs.h + * @file facet_svts.h * * $Id$ * @@ -18,20 +18,22 @@ #define _BE_COMPONENT_FACET_SVS_H_ /** - * @class be_visitor_facet_svs + * @class be_visitor_facet_svts * - * @brief be_visitor_facet_svs + * @brief be_visitor_facet_svts * * This is a concrete visitor to generate the facet servant defn * for a component. */ -class be_visitor_facet_svs : public be_visitor_component_scope +class be_visitor_facet_svts : public be_visitor_component_scope { public: - be_visitor_facet_svs (be_visitor_context *ctx); + be_visitor_facet_svts (be_visitor_context *ctx); - ~be_visitor_facet_svs (void); + ~be_visitor_facet_svts (void); + virtual int visit_connector (be_connector *node); + virtual int visit_component (be_component *node); virtual int visit_provides (be_provides *node); }; diff --git a/TAO/TAO_IDL/be_include/be_visitor_connector/facet_ami_exh.h b/TAO/TAO_IDL/be_include/be_visitor_connector/facet_ami_exh.h index 1ab59a3edef..4041ff91eac 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_connector/facet_ami_exh.h +++ b/TAO/TAO_IDL/be_include/be_visitor_connector/facet_ami_exh.h @@ -36,6 +36,7 @@ public: virtual int visit_component (be_component *node); virtual int visit_provides (be_provides *node); virtual int visit_operation (be_operation *node); + virtual int visit_attribute (be_attribute *node); protected: /// Common the this class and derived class. @@ -48,11 +49,28 @@ protected: const char *scope_name_; const char *iface_name_; const char *smart_scope_; + bool sync_; private: int gen_reply_handler_class (void); int gen_facet_executor_class (void); }; + //============================================================== + /// Worker class passed to traverse_inheritance_graph(), + /// collects all operations and attributes. + class Facet_AMI_ExecH_Op_Attr_Generator + : public TAO_IDL_Inheritance_Hierarchy_Worker + { + public: + Facet_AMI_ExecH_Op_Attr_Generator (be_visitor_scope * visitor); + + virtual int emit (be_interface * derived_interface, + TAO_OutStream * os, + be_interface * base_interface); + + private: + be_visitor_scope * visitor_; + }; #endif /* _BE_COMPONENT_FACET_AMI_EXH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_connector/facet_ami_exs.h b/TAO/TAO_IDL/be_include/be_visitor_connector/facet_ami_exs.h index 525e9cfa439..95fb47a81ea 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_connector/facet_ami_exs.h +++ b/TAO/TAO_IDL/be_include/be_visitor_connector/facet_ami_exs.h @@ -37,14 +37,17 @@ public: virtual int visit_provides (be_provides *node); virtual int visit_operation (be_operation *node); virtual int visit_argument (be_argument *node); + virtual int visit_attribute (be_attribute *node); virtual int post_process (be_decl *node); private: + void init (void); int gen_reply_handler_class (void); int gen_facet_executor_class (void); int gen_reply_hander_op (be_operation *node); int gen_facet_executor_op (be_operation *node); + int gen_facet_executor_sync_op (be_operation *node); private: /// Storage for the interface type of the facet. @@ -53,6 +56,7 @@ private: /// Flag to tell us which operation body (reply handler /// or sendc_* class) we are generating. bool for_reply_handler_; + bool sync_; }; //============================================================== diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface.h b/TAO/TAO_IDL/be_include/be_visitor_interface.h index 740fa08dcae..a9334086554 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_interface.h +++ b/TAO/TAO_IDL/be_include/be_visitor_interface.h @@ -27,7 +27,6 @@ #include "be_visitor_interface/interface_cs.h" #include "be_visitor_interface/interface_sh.h" #include "be_visitor_interface/interface_ih.h" -#include "be_visitor_interface/interface_si.h" #include "be_visitor_interface/interface_ss.h" #include "be_visitor_interface/interface_is.h" #include "be_visitor_interface/interface_ex_idl.h" @@ -54,7 +53,6 @@ // AMH #include "be_visitor_interface/amh_ch.h" #include "be_visitor_interface/amh_sh.h" -#include "be_visitor_interface/amh_si.h" #include "be_visitor_interface/amh_ss.h" #include "be_visitor_interface/amh_rh_sh.h" #include "be_visitor_interface/amh_rh_ss.h" diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/amh_si.h b/TAO/TAO_IDL/be_include/be_visitor_interface/amh_si.h deleted file mode 100644 index 77eb09dc377..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/amh_si.h +++ /dev/null @@ -1,31 +0,0 @@ -//============================================================================= -/** - * @file amh_si.h - * - * $Id$ - * - * Specialized interface visitor for AMH - * - * @author Jeff Parsons <j.parsons@vanderbilt.edu> - */ -//============================================================================= - -#ifndef AMH_SH_I_ -#define AMH_SH_I_ - -class be_visitor_amh_interface_si : public be_visitor_interface_si -{ -public: - be_visitor_amh_interface_si (be_visitor_context *ctx); - ~be_visitor_amh_interface_si (void); - - int visit_interface (be_interface *node); - - // Helper method passed to the template method to generate code for the - // AMH skeletons in the inline files. - static int gen_skel_helper (be_interface *, - be_interface *, - TAO_OutStream *); -}; - -#endif /* AMH_SH_I_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/amh_ss.h b/TAO/TAO_IDL/be_include/be_visitor_interface/amh_ss.h index c65578519df..d14fdf2ba03 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/amh_ss.h +++ b/TAO/TAO_IDL/be_include/be_visitor_interface/amh_ss.h @@ -31,8 +31,6 @@ protected: virtual void this_method (be_interface *node); virtual void dispatch_method (be_interface *node); - virtual void generate_send_reply (TAO_OutStream * os); - virtual int generate_amh_classes (be_interface *node); virtual int generate_proxy_classes (be_interface *node); // virtual int generate_downcast_implementation (be_interface *node, diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_si.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_si.h deleted file mode 100644 index cbf85d0f780..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_si.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- c++ -*- */ -//============================================================================= -/** - * @file interface_si.h - * - * $Id$ - * - * Concrete visitor for the Interface node. - * This provides for code generation in the server inline - * - * - * @author Aniruddha Gokhale - */ -//============================================================================= - -#ifndef _BE_INTERFACE_INTERFACE_SI_H_ -#define _BE_INTERFACE_INTERFACE_SI_H_ - -/** - * @class be_visitor_interface_si - * - * @brief be_visitor_interface_si - * - * This is a concrete visitor to generate the server inline for interface - */ -class be_visitor_interface_si : public be_visitor_interface -{ -public: - be_visitor_interface_si (be_visitor_context *ctx); - ~be_visitor_interface_si (void); - - virtual int visit_interface (be_interface *node); - virtual int visit_component (be_component *node); - virtual int visit_connector (be_connector *node); - -protected: - virtual int generate_amh_classes (be_interface *node); -}; - -#endif /* _BE_INTERFACE_INTERFACE_SI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h index f86a68aa722..440aceef479 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h +++ b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h @@ -46,13 +46,6 @@ protected: virtual void this_method (be_interface *node); virtual void dispatch_method (be_interface *node); - // Some AMH skeletons must explicitly send the reply, for regular - // classes the following function is empty, for AMH code it - // generates the explicit call. - virtual void generate_send_reply (TAO_OutStream * os); - -/// virtual int generate_downcast_implementation (be_interface *node, -/// TAO_OutStream *os); virtual int generate_amh_classes (be_interface *node); virtual int generate_proxy_classes (be_interface *node); virtual int generate_copy_ctor (be_interface *node, diff --git a/TAO/TAO_IDL/be_include/be_visitor_root.h b/TAO/TAO_IDL/be_include/be_visitor_root.h index 7cd109881cb..03bb3e7722a 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_root.h +++ b/TAO/TAO_IDL/be_include/be_visitor_root.h @@ -24,13 +24,14 @@ #include "be_visitor_root/root_ci.h" #include "be_visitor_root/root_cs.h" #include "be_visitor_root/root_sh.h" -#include "be_visitor_root/root_si.h" #include "be_visitor_root/root_ss.h" #include "be_visitor_root/root_sth.h" #include "be_visitor_root/root_is.h" #include "be_visitor_root/root_ih.h" #include "be_visitor_root/root_svh.h" #include "be_visitor_root/root_svs.h" +#include "be_visitor_root/root_svth.h" +#include "be_visitor_root/root_svts.h" #include "be_visitor_root/root_ex_idl.h" #include "be_visitor_root/root_exh.h" #include "be_visitor_root/root_exs.h" diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root_si.h b/TAO/TAO_IDL/be_include/be_visitor_root/root_si.h deleted file mode 100644 index f89c54e951d..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root/root_si.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- c++ -*- */ - -//============================================================================= -/** - * @file root_si.h - * - * $Id$ - * - * Concrete visitor for the Root class - * This one provides code generation for elements of the Root node in the - * server inline. - * - * - * @author Aniruddha Gokhale - */ -//============================================================================= - -#ifndef _BE_VISITOR_ROOT_ROOT_SI_H_ -#define _BE_VISITOR_ROOT_ROOT_SI_H_ - -/** - * @class be_visitor_root_si - * - * @brief be_visitor_root_si - * - * This is a concrete visitor to generate the server inline for root - */ -class be_visitor_root_si : public be_visitor_root -{ -public: - be_visitor_root_si (be_visitor_context *ctx); - - ~be_visitor_root_si (void); - - virtual int visit_root (be_root *node); - -private: - /// Open file and initialize stream. - int init (void); -}; - -#endif /* _BE_VISITOR_ROOT_ROOT_SI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root_svth.h b/TAO/TAO_IDL/be_include/be_visitor_root/root_svth.h new file mode 100644 index 00000000000..c871779a766 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_root/root_svth.h @@ -0,0 +1,43 @@ +/* -*- c++ -*- */ + +//============================================================================= +/** + * @file root_svth.h + * + * $Id$ + * + * Concrete visitor for the Root class + * This one provides code generation for elements of the Root node in the + * CIAO servant header. + * + * + * @author Marcel Smit + */ +//============================================================================= + +#ifndef _BE_VISITOR_ROOT_ROOT_SVTH_H_ +#define _BE_VISITOR_ROOT_ROOT_SVTH_H_ + +/** + * @class be_visitor_root_svth + * + * @brief be_visitor_root_svth + * + * This is a concrete visitor to generate the CIAO template servant + * header for root + */ +class be_visitor_root_svth : public be_visitor_root +{ +public: + be_visitor_root_svth (be_visitor_context *ctx); + + ~be_visitor_root_svth (void); + + virtual int visit_root (be_root *node); + +private: + /// Open file and initialize stream. + int init (void); +}; + +#endif /* _BE_VISITOR_ROOT_ROOT_SVTH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root_svts.h b/TAO/TAO_IDL/be_include/be_visitor_root/root_svts.h new file mode 100644 index 00000000000..28dcf4909a3 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_root/root_svts.h @@ -0,0 +1,43 @@ +/* -*- c++ -*- */ + +//============================================================================= +/** + * @file root_svts.h + * + * $Id$ + * + * Concrete visitor for the Root class + * This one provides code generation for elements of the Root node in the + * CIAO servant source. + * + * + * @author Marcel Smit + */ +//============================================================================= + +#ifndef _BE_VISITOR_ROOT_ROOT_SVTS_H_ +#define _BE_VISITOR_ROOT_ROOT_SVTS_H_ + +/** + * @class be_visitor_root_svts + * + * @brief be_visitor_root_svts + * + * This is a concrete visitor to generate the CIAO template servant + * source for root + */ +class be_visitor_root_svts : public be_visitor_root +{ +public: + be_visitor_root_svts (be_visitor_context *ctx); + + ~be_visitor_root_svts (void); + + virtual int visit_root (be_root *node); + +private: + /// Set the right context and make a visitor. + int init (void); +}; + +#endif /* _BE_VISITOR_ROOT_ROOT_SVTS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_valuetype.h b/TAO/TAO_IDL/be_include/be_visitor_valuetype.h index d2b8edfb80e..a8a73cc1846 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_valuetype.h +++ b/TAO/TAO_IDL/be_include/be_visitor_valuetype.h @@ -26,7 +26,6 @@ #include "be_visitor_valuetype/valuetype_ci.h" #include "be_visitor_valuetype/valuetype_cs.h" #include "be_visitor_valuetype/valuetype_sh.h" -#include "be_visitor_valuetype/valuetype_si.h" #include "be_visitor_valuetype/valuetype_ss.h" #include "be_visitor_valuetype/any_op_ch.h" #include "be_visitor_valuetype/any_op_cs.h" diff --git a/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype_si.h b/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype_si.h deleted file mode 100644 index 698c702d03e..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype_si.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- c++ -*- */ -//============================================================================= -/** - * @file valuetype_si.h - * - * $Id$ - * - * Concrete visitor for the valuetype node. - * This provides for code generation in the server inline - * - * - * @author Jeff Parsons - */ -//============================================================================= - - -#ifndef _BE_VALUETYPE_VALUETYPE_SI_H_ -#define _BE_VALUETYPE_VALUETYPE_SI_H_ - -/** - * @class be_visitor_valuetype_si - * - * @brief be_visitor_valuetype_si - * - * This is a concrete visitor to generate the server inline for valuetype - */ -class be_visitor_valuetype_si : public be_visitor_valuetype -{ -public: - /// constructor - be_visitor_valuetype_si (be_visitor_context *ctx); - - /// destructor - ~be_visitor_valuetype_si (void); - - virtual int visit_valuetype (be_valuetype *node); - virtual int visit_eventtype (be_eventtype *node); -}; - -#endif /* _BE_VALUETYPE_VALUETYPE_SI_H_ */ diff --git a/TAO/TAO_IDL/fe/idl.ll b/TAO/TAO_IDL/fe/idl.ll index dfe41a3e039..ff88c20ada1 100644 --- a/TAO/TAO_IDL/fe/idl.ll +++ b/TAO/TAO_IDL/fe/idl.ll @@ -846,7 +846,8 @@ idl_store_pragma (char *buf) // Delete tmp since add_ciao_spl_ts_file_names() doesn't take its ownership. delete [] tmp; } - else if (ACE_OS::strncmp (buf + 8, "ciao ami4ccm interface", 22) == 0) + else if ((ACE_OS::strncmp (buf + 8, "ciao ami4ccm interface", 22) == 0) || + (ACE_OS::strncmp (buf + 8, "ami4ccm interface", 17) == 0)) { if (idl_global->in_main_file ()) { @@ -857,7 +858,8 @@ idl_store_pragma (char *buf) delete [] tmp; } } - else if (ACE_OS::strncmp (buf + 8, "ciao ami4ccm receptacle", 23) == 0) + else if ((ACE_OS::strncmp (buf + 8, "ciao ami4ccm receptacle", 23) == 0)|| + (ACE_OS::strncmp (buf + 8, "ami4ccm receptacle", 18) == 0)) { char *tmp = idl_get_pragma_string (buf); @@ -876,7 +878,8 @@ idl_store_pragma (char *buf) // Delete tmp since add_ciao_spl_ts_file_names() doesn't take its ownership. delete [] tmp; } - else if (ACE_OS::strncmp (buf + 8, "ciao ami4ccm idl", 16) == 0) + else if ((ACE_OS::strncmp (buf + 8, "ciao ami4ccm idl", 16) == 0) || + (ACE_OS::strncmp (buf + 8, "ami4ccm idl", 11) == 0)) { char *tmp = idl_get_pragma_string (buf); diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp b/TAO/TAO_IDL/fe/lex.yy.cpp index 1ba2ff65fac..e0242d36959 100644 --- a/TAO/TAO_IDL/fe/lex.yy.cpp +++ b/TAO/TAO_IDL/fe/lex.yy.cpp @@ -3368,7 +3368,8 @@ idl_store_pragma (char *buf) // Delete tmp since add_ciao_spl_ts_file_names() doesn't take its ownership. delete [] tmp; } - else if (ACE_OS::strncmp (buf + 8, "ciao ami4ccm interface", 22) == 0) + else if ((ACE_OS::strncmp (buf + 8, "ciao ami4ccm interface", 22) == 0) || + (ACE_OS::strncmp (buf + 8, "ami4ccm interface", 17) == 0)) { if (idl_global->in_main_file ()) { @@ -3379,7 +3380,8 @@ idl_store_pragma (char *buf) delete [] tmp; } } - else if (ACE_OS::strncmp (buf + 8, "ciao ami4ccm receptacle", 23) == 0) + else if ((ACE_OS::strncmp (buf + 8, "ciao ami4ccm receptacle", 23) == 0) || + (ACE_OS::strncmp (buf + 8, "ami4ccm receptacle", 18) == 0)) { char *tmp = idl_get_pragma_string (buf); @@ -3398,7 +3400,8 @@ idl_store_pragma (char *buf) // Delete tmp since add_ciao_spl_ts_file_names() doesn't take its ownership. delete [] tmp; } - else if (ACE_OS::strncmp (buf + 8, "ciao ami4ccm idl", 16) == 0) + else if ((ACE_OS::strncmp (buf + 8, "ciao ami4ccm idl", 16) == 0) || + (ACE_OS::strncmp (buf + 8, "ami4ccm idl", 11) == 0)) { char *tmp = idl_get_pragma_string (buf); diff --git a/TAO/TAO_IDL/include/idl_global.h b/TAO/TAO_IDL/include/idl_global.h index 0ae8a618e35..435a3275158 100644 --- a/TAO/TAO_IDL/include/idl_global.h +++ b/TAO/TAO_IDL/include/idl_global.h @@ -916,7 +916,8 @@ private: // ...but we need to do it only once. ACE_Unbounded_Queue<char *> ciao_ami_idl_fnames_; - // Stores directives from #pragma ciao ami4ccm idl "xxx". + // Stores directives from #pragma ciao ami4ccm idl "xxx" + // or #pragma ami4ccm idl "xxx". ACE_Unbounded_Queue<char *> dds4ccm_impl_fnames_; // Stores directives from #pragma dds4ccm impl "xxx". diff --git a/TAO/TAO_IDL/util/utl_stack.cpp b/TAO/TAO_IDL/util/utl_stack.cpp index aac41c094af..70c0168fe62 100644 --- a/TAO/TAO_IDL/util/utl_stack.cpp +++ b/TAO/TAO_IDL/util/utl_stack.cpp @@ -129,9 +129,11 @@ UTL_ScopeStack::pop (void) return; } + UTL_Scope *current = this->top (); + // If our top scope has a #pragma prefix associated with it, // it goes away with the scope. - if (this->top_non_null ()->has_prefix ()) + if (current != 0 && current->has_prefix ()) { char *trash = 0; idl_global->pragma_prefixes ().pop (trash); diff --git a/TAO/VERSION b/TAO/VERSION index 766b958c9ec..2326855913d 100644 --- a/TAO/VERSION +++ b/TAO/VERSION @@ -1,4 +1,4 @@ -This is TAO version 2.0.5, released Mon Oct 10 08:48:51 CEST 2011 +This is TAO version 2.0.6, released Sun Dec 04 11:51:30 CET 2011 If you have any problems with or questions about TAO, please send e-mail to the TAO mailing list (tao-bugs@list.isis.vanderbilt.edu), diff --git a/TAO/bin/tao_orb_tests.lst b/TAO/bin/tao_orb_tests.lst index 260dbb7cd5f..a2c2e659dab 100644 --- a/TAO/bin/tao_orb_tests.lst +++ b/TAO/bin/tao_orb_tests.lst @@ -29,6 +29,7 @@ TAO/tests/Param_Test/run_test_dii.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO ! TAO/tests/AMI/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/tests/AMI/run_test.pl -exclusive: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/tests/AMI/run_mt_noupcall.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO +TAO/tests/AMI/run_exclusive_rw.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/tests/AMI_Timeouts/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST TAO/tests/AMH_Exceptions/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_ToFix_LynxOS_x86 !ACE_FOR_TAO TAO/tests/AMH_Oneway/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_ToFix_LynxOS_x86 !ACE_FOR_TAO @@ -130,7 +131,7 @@ TAO/tests/Bug_2935_Regression/run_test.pl: TAO/tests/Bug_2936_Regression/run_test.pl: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !LynxOS !STATIC TAO/tests/Bug_2953_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST TAO/tests/Bug_2966_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO -TAO/tests/Bug_3000_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !FIXED_BUGS_ONLY +TAO/tests/Bug_3000_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/tests/Bug_3042_Regression/run_test.pl: TAO/tests/Bug_3068_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_BIDIR !ST TAO/tests/Bug_3108_Regression/run_test.pl: !ST @@ -267,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 @@ -275,6 +277,8 @@ TAO/tests/CallbackTest/run_test_mixed_ip.pl: IPV6 !MINIMUM !CORBA_E_COMPACT !COR TAO/tests/Crashed_Callback/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !OpenVMS_IA64Crash # Disabled Crash On Write on Win32, see bugzilla 959 why !LabVIEW_RT !WinCE TAO/tests/Crash_On_Write/run_test.pl: !ST !Win32 +TAO/tests/Mixed_Sync_ASync_Events/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO +TAO/tests/Mixed_Sync_ASync_Events/run_exclusive_rw.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/tests/MT_NoUpcall_Client_Leader/run_test.pl: !ST !CORBA_E_MICRO !NO_MESSAGING TAO/tests/Nested_Upcall_Crash/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !OpenVMS_IA64Crash !QUICK TAO/tests/Nested_Upcall_Crash/run_test.pl -quick: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !OpenVMS_IA64Crash QUICK @@ -312,11 +316,11 @@ TAO/tests/POA/Default_Servant2/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_M TAO/tests/POA/Explicit_Activation/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO TAO/tests/POA/FindPOA/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/tests/POA/NewPOA/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO -TAO/tests/POA/On_Demand_Act_Direct_Coll/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO +TAO/tests/POA/On_Demand_Act_Direct_Coll/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO TAO/tests/POA/On_Demand_Activation/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO -TAO/tests/POA/On_Demand_Loading/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !KCC_Linux !ACE_FOR_TAO +TAO/tests/POA/On_Demand_Loading/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO TAO/tests/POA/Reference_Counted_Servant/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO -TAO/tests/POA/Loader/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !KCC_Linux !ACE_FOR_TAO +TAO/tests/POA/Loader/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO TAO/tests/POA/RootPOA/run_test.pl: TAO/tests/DiffServ/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/tests/IORManipulation/run_test.pl: diff --git a/TAO/bin/tao_other_tests.lst b/TAO/bin/tao_other_tests.lst index b72c4809398..c1ee7bdb412 100644 --- a/TAO/bin/tao_other_tests.lst +++ b/TAO/bin/tao_other_tests.lst @@ -185,6 +185,7 @@ TAO/orbsvcs/tests/Security/Crash_Test/run_test.pl -quick: SSL QUICK !STATIC !DIS TAO/orbsvcs/tests/Security/InsecureReferences/run_test.pl: SSL !STATIC !DISABLE_INTERCEPTORS !ACE_FOR_TAO !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/orbsvcs/tests/Security/EndpointPolicy/run_test.pl: SSL !STATIC !DISABLE_INTERCEPTORS !ACE_FOR_TAO !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/orbsvcs/tests/Security/Null_Cipher/run_test.pl: SSL !STATIC !DISABLE_INTERCEPTORS !ACE_FOR_TAO !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO +TAO/orbsvcs/tests/Security/MT_BiDir_SSL/run_test.pl: SSL !STATIC !DISABLE_INTERCEPTORS !ACE_FOR_TAO !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !GIOP10 !DISABLE_BIDIR !LynxOS TAO/orbsvcs/tests/Miop/McastHello/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !NO_MCAST # The following 2 tests use dynamic loading to change the default reactor on Windows !VxWorks !VxWorks_RTP !LabVIEW_RT TAO/orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !STATIC !ACE_FOR_TAO !LynxOS !ST diff --git a/TAO/docs/Options.html b/TAO/docs/Options.html index 40995028e39..bf2f01eca8a 100644 --- a/TAO/docs/Options.html +++ b/TAO/docs/Options.html @@ -1550,27 +1550,31 @@ of multiple threads with a single Reactor. </p> instead of waiting in the Reactor using the Leader/Followers pattern. The <em>RW</em> strategy only works when the application does not have to worry about new request showing up when waiting for a -response. Further, this strategy cannot be used with Asynchronous -Method Invocation (AMI) calls and when using BiDIR GIOP. -Therefore, this strategy is appropriate -only for "pure" synchronous clients. Note that applications that -require nested upcalls are not "pure" synchronous clients. Also note that this -strategy will only affect two way calls, since there is no waiting for -one way calls. This strategy can also be used in an application that -is both a client and a server if the server side is handled by a -separate thread and the client threads are "pure" clients. When this strategy -is set to RW, then also the -ORBFlushingStrategy (which is part of the -Resource_Factory) has to be set to <code>blocking</code>.</p> <p> - <CODE>MT_NOUPCALL</CODE> <b>(EXPERIMENTAL!)</b> means use a client connection handler that +response. Further, this strategy cannot be used with BiDIR GIOP. +Note that applications that require nested upcalls are not compatible +with this strategy. Also note that this strategy will only affect synchronous +two way calls, since there is no waiting for one way calls or AMI requests +(at least not in the same sense as for synchronous two way calls). +This strategy can also be used in an application that +is both a client and a server where the server side is handled by a +separate thread and the client threads are "pure" clients. +Use in single threaded applications with both client and server roles is +also possible but in these cases special care has to be taken to avoid +deadlocks because of nested synchronous calls. Mixing in AMI requests and/or +other asynchronous reactor (timer/notification) events might help solve +such issues. +When this strategy is set to RW, then also the -ORBFlushingStrategy +(which is part of the Resource_Factory) has to be set to <code>blocking</code>.</p> +<p> + <CODE>MT_NOUPCALL</CODE> means use a client connection handler that participates in the leader-follower model like MT, but, like - RW, does not allow handling of nested upcalls within the - waiting thread. Note that with this strategy it is possible + RW, does not allow handling of nested CORBA upcalls within the + waiting thread. It does allow handling of other non CORBA (ACE reactor events) + like timers and ACE notification queue events. Note that with + this strategy it is possible to "run out of threads" in a thread pool, and that TAO doesn't grow thread pools. Unlike RW, this does not require <a href="#ORBTransportMuxStrategy">-ORBTransportMuxStrategy <em>EXCLUSIVE</em></a>. -<!-- -I'm not sure what the affect of AMI on this option is. ---> </p> <p>Default for this option is <em>MT</em>. </p> </td> @@ -1584,7 +1588,7 @@ I'm not sure what the affect of AMI on this option is. handlers setup for sending messages need to be cleaned up when errors occur. This option has an effect only for <em> -ORBClientConnectionHandler RW </em>. Rest of the - options for <em> -ORBCleintConnectionHandler </em> have been + options for <em> -ORBClientConnectionHandler </em> have been automatically set up for cleaning the connection handlers. Setting the option to <em> 1 </em> has a side effect of registering and unregistering the connection diff --git a/TAO/docs/compiler.html b/TAO/docs/compiler.html index 604920dad12..a9afc4c9c24 100644 --- a/TAO/docs/compiler.html +++ b/TAO/docs/compiler.html @@ -53,7 +53,7 @@ these files:) <P> <LI> <B><EM>Client stubs</EM></B>, <EM>i.e.</EM>, <tt>*C.h</tt>, <tt>*C.inl</tt>, and <tt>*C.cpp</tt>. Pure client applications only need to <code>#include</code> and link with these files. - <LI> <B><EM>Server skeletons</EM></B>, <EM>i.e.</EM>, <tt>*S.h</tt>, <tt>*S.inl</tt>, and + <LI> <B><EM>Server skeletons</EM></B>, <EM>i.e.</EM>, <tt>*S.h</tt>, and <tt>*S.cpp</tt>. Servers need to <code>#include</code> and link with these files. Generation of these files may be suppressed with the <tt>-SS</tt> option. <LI> <B><EM>Server skeleton templates</EM></B>, <EM>i.e.</EM>, <tt>*S_T.h</tt>, <tt>S_T.inl</tt>, @@ -681,6 +681,21 @@ also receives other options that are specific to it.<p> <td>Default is value of -o option or current directory </td> </tr> + <tr><a name="oE"> + <td><tt>-oE </tt><i>path</i></td> + + <td>Same as -o option but applies only to generated *_exec.* files </td> + <td>Default is value of -o option or current directory </td> + </tr> + + <tr><a name="oN"> + <td><tt>-oN </tt><i>path</i></td> + + <td>Do not overwrite *_exec.* files </td> + <td>When -Gex option is used, executor implementation files shouldn't be overwritten + if they are already in the output directory. </td> + </tr> + <tr><a name="hc"> <td><tt>-hc</tt></td> @@ -730,13 +745,6 @@ also receives other options that are specific to it.<p> <td> </td> </tr> - <tr><a name="si"> - <td><tt>-si</tt></td> - - <td>Server inline skeleton file name ending. Default is "S.inl".</td> - <td> </td> - </tr> - <tr><a name="t"> <td><tt>-t</tt></td> diff --git a/TAO/docs/tutorials/Quoter/Simple/Client/index.html b/TAO/docs/tutorials/Quoter/Simple/Client/index.html index 26adb26483b..33a8cca7092 100644 --- a/TAO/docs/tutorials/Quoter/Simple/Client/index.html +++ b/TAO/docs/tutorials/Quoter/Simple/Client/index.html @@ -105,7 +105,7 @@ $ $ACE_ROOT/TAO/TAO_IDL/tao_idl Quoter.idl generated from <CODE>QuoterC.cpp</CODE>. </P> <P> - Similarly, <CODE>QuoterS.h</CODE>, <CODE>QuoterS.inl</CODE> + Similarly, <CODE>QuoterS.h</CODE>, and <CODE>QuoterS.cpp</CODE> contain the server-side <EM>skeletons</EM>. Servers must link the object files generated from <CODE>QuoterS.cpp</CODE> <STRONG>and</STRONG> <CODE>QuoterC.cpp</CODE>. @@ -149,9 +149,9 @@ int main (int argc, char* argv[]) "" /* the ORB name, it can be anything! */); </PRE> <P>IDL supports variable-length types whose sizes are not known - at compile time, hence they must be dynamically allocated at run + at compile time, hence they must be dynamically allocated at run time. <CODE>_var</CODE> types relieve us of the explicit memory - management of the variable-length types and thus hide the + management of the variable-length types and thus hide the differences between fixed and variable-length structured types. </P> <P>Since the ORB initialization can fail, and in fact, any CORBA @@ -225,9 +225,9 @@ int main (int argc, char* argv[]) Quoter::Stock_Factory_var factory = Quoter::Stock_Factory::_narrow (factory_object.in ()); </PRE> - <P>The <CODE>_narrow()</CODE> is used to test if a reference - is of the specified type. If the reference is of the specified - type, it returns a non-nil reference, else it returns a nil. + <P>The <CODE>_narrow()</CODE> is used to test if a reference + is of the specified type. If the reference is of the specified + type, it returns a non-nil reference, else it returns a nil. </P> <P>There are a few interesting things about TAO: First, it supports the <CODE>file:</CODE> scheme for object references, so the first diff --git a/TAO/examples/AMH/Sink_Server/Base_Server.cpp b/TAO/examples/AMH/Sink_Server/Base_Server.cpp index 1d75f403db2..f4c2a9f81d9 100644 --- a/TAO/examples/AMH/Sink_Server/Base_Server.cpp +++ b/TAO/examples/AMH/Sink_Server/Base_Server.cpp @@ -22,17 +22,6 @@ Base_Server::Base_Server (int &argc, ACE_TCHAR **argv) Base_Server::~Base_Server (void) { - try - { - this->root_poa_->destroy (1, 1); - - this->orb_->destroy (); - } - catch (const CORBA::Exception& ex) - { - ex._tao_print_exception ( - "Exception caught while destroying Base_Server\n"); - } } int @@ -103,6 +92,28 @@ Base_Server::try_RT_scheduling (void) } int +Base_Server::shutdown_orb_and_poa (void) +{ + try + { + this->root_poa_->destroy (1, 1); + this->root_poa_ = PortableServer::POA::_nil (); + + this->orb_->destroy (); + this->orb_ = CORBA::ORB::_nil (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Exception raised shutting down ORB or POA"); + return -1; + } + + // If we have got to this point, everything has gone well. return + // normally + return 1; +} + +int Base_Server::start_orb_and_poa (void) { try @@ -123,7 +134,6 @@ Base_Server::start_orb_and_poa (void) this->root_poa_->the_POAManager (); poa_manager->activate (); - } catch (const CORBA::Exception& ex) { diff --git a/TAO/examples/AMH/Sink_Server/Base_Server.h b/TAO/examples/AMH/Sink_Server/Base_Server.h index ab0055f94aa..ef22b3a62c7 100644 --- a/TAO/examples/AMH/Sink_Server/Base_Server.h +++ b/TAO/examples/AMH/Sink_Server/Base_Server.h @@ -59,6 +59,8 @@ public: /// ORB inititalisation stuff int start_orb_and_poa (void); + int shutdown_orb_and_poa (void); + /// register the servant with the poa virtual void register_servant (AMH_Servant *servant); diff --git a/TAO/examples/AMH/Sink_Server/Client_Task.cpp b/TAO/examples/AMH/Sink_Server/Client_Task.cpp index bbbf8f7a0fb..810db72ea71 100644 --- a/TAO/examples/AMH/Sink_Server/Client_Task.cpp +++ b/TAO/examples/AMH/Sink_Server/Client_Task.cpp @@ -127,7 +127,6 @@ Client_Task::run_test (void) this->roundtrip_->end_test (); test_end = ACE_OS::gethrtime (); - } catch (const CORBA::Exception&) { diff --git a/TAO/examples/AMH/Sink_Server/MT_AMH_Server.cpp b/TAO/examples/AMH/Sink_Server/MT_AMH_Server.cpp index a7111fcc335..ac39d9958d4 100644 --- a/TAO/examples/AMH/Sink_Server/MT_AMH_Server.cpp +++ b/TAO/examples/AMH/Sink_Server/MT_AMH_Server.cpp @@ -30,7 +30,7 @@ MT_AMH_Server::usage (const char *message) // something we normally do. // // Mayur: Seems cleaner to me this way. - ACE_ERROR ((LM_ERROR, "%s : %s", message, usage)); + ACE_ERROR ((LM_ERROR, "%C : %C", message, usage)); } diff --git a/TAO/examples/AMH/Sink_Server/client.cpp b/TAO/examples/AMH/Sink_Server/client.cpp index c5d6a00e3f5..2cbdaac57a3 100644 --- a/TAO/examples/AMH/Sink_Server/client.cpp +++ b/TAO/examples/AMH/Sink_Server/client.cpp @@ -26,6 +26,8 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) } task.run_test(); + + orb->destroy (); } catch (const ::CORBA::Exception &ex) { diff --git a/TAO/examples/AMH/Sink_Server/mt_server.cpp b/TAO/examples/AMH/Sink_Server/mt_server.cpp index ac0c2174eda..53419811254 100644 --- a/TAO/examples/AMH/Sink_Server/mt_server.cpp +++ b/TAO/examples/AMH/Sink_Server/mt_server.cpp @@ -26,6 +26,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) amh_server.register_servant (&servant); amh_server.start_threads (); + amh_server.shutdown_orb_and_poa (); return 1; } diff --git a/TAO/examples/AMH/Sink_Server/run_test.pl b/TAO/examples/AMH/Sink_Server/run_test.pl index 94bd8e83859..95642572fb5 100755 --- a/TAO/examples/AMH/Sink_Server/run_test.pl +++ b/TAO/examples/AMH/Sink_Server/run_test.pl @@ -76,13 +76,12 @@ if ($client->PutFile ($iorbase) == -1) { exit 1; } - # Run client. print STDERR "\n Client making $iterations calls to server: \n"; $evt_per_sec = 1000/$delay_time/1000; print STDERR "\n(Expect less than $evt_per_sec Events/sec) \n\n"; -$client_status = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval() + 285); +$client_status = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval() + 60); if ($client_status != 0) { print STDERR "ERROR: client returned $client_status\n"; diff --git a/TAO/examples/AMH/Sink_Server/st_server.cpp b/TAO/examples/AMH/Sink_Server/st_server.cpp index 74a5fbffa15..bc3477c888b 100644 --- a/TAO/examples/AMH/Sink_Server/st_server.cpp +++ b/TAO/examples/AMH/Sink_Server/st_server.cpp @@ -41,6 +41,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) amh_server.register_servant (&servant); amh_server.run_event_loop (); + amh_server.shutdown_orb_and_poa (); return 0; } diff --git a/TAO/examples/AMI/FL_Callback/FL_Callback.mpc b/TAO/examples/AMI/FL_Callback/FL_Callback.mpc index b92be693ead..26dfc3111de 100644 --- a/TAO/examples/AMI/FL_Callback/FL_Callback.mpc +++ b/TAO/examples/AMI/FL_Callback/FL_Callback.mpc @@ -28,7 +28,6 @@ project(*progress): taoexe, messaging, ami, portableserver, tao_flresource { Inline_Files { testC.inl - testS.inl } IDL_Files { @@ -54,7 +53,6 @@ project(*peer): taoexe, strategies, messaging, ami, portableserver { Inline_Files { testC.inl - testS.inl } IDL_Files { diff --git a/TAO/examples/RTScheduling/Job.mpc b/TAO/examples/RTScheduling/Job.mpc index 103df7d95ce..8e46c315901 100644 --- a/TAO/examples/RTScheduling/Job.mpc +++ b/TAO/examples/RTScheduling/Job.mpc @@ -26,6 +26,5 @@ project(Job): portableserver { Inline_Files { JobC.inl - JobS.inl } } diff --git a/TAO/examples/RTScheduling/Synch.mpc b/TAO/examples/RTScheduling/Synch.mpc index 23920a77023..77a2ae1d681 100644 --- a/TAO/examples/RTScheduling/Synch.mpc +++ b/TAO/examples/RTScheduling/Synch.mpc @@ -27,6 +27,5 @@ project(RTSchedSynch): portableserver { Inline_Files { SynchC.inl - SynchS.inl } } diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl index aa0fecbd401..03b6a55385a 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl @@ -8,7 +8,7 @@ module ImplementationRepository { interface Activator { - // Tells the activator to launch a server with the given information. + /// Tells the activator to launch a server with the given information. void start_server(in string name, in string cmdline, in string dir, in EnvironmentList env) raises(CannotActivate); diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.idl b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.idl index acae98bb07f..604081c7c68 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.idl +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.idl @@ -1,5 +1,4 @@ // -*- IDL -*- - // $Id$ #include "ImR_Activator.idl" @@ -8,14 +7,15 @@ module ImplementationRepository { interface Locator : Administration { - // returns a token that can be used (along with activator name) to unregister the activator. + /// returns a token that can be used (along with activator name) to + /// unregister the activator. long register_activator (in string name, in Activator act); - // You must pass in the token returned from register_activator. + /// You must pass in the token returned from register_activator. void unregister_activator (in string name, in long token); - // The ImR_Activator calls this method to notify death of child - // process that it had started. + /// The ImR_Activator calls this method to notify death of child + /// process that it had started. void notify_child_death (in string name); }; }; diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp index b8204ebca0e..79d217939cf 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp @@ -1,4 +1,4 @@ -// $Id$ +// // $Id$ #include "ImR_Locator_i.h" #include "utils.h" @@ -23,10 +23,11 @@ static const int DEFAULT_START_LIMIT = 1; static const int PING_RETRY_SCHEDULE[] = {0, 10, 100, 500, 1000, 1000, 1000, 1000, 5000, 5000}; static const ACE_Time_Value DEFAULT_SERVER_TIMEOUT (0, 10 * 1000); // 10ms -// We want to give shutdown a little more time to work, so that we -// can guarantee to the tao_imr utility that it has shutdown. The tao_imr -// utility prints a different message depending on whether shutdown succeeds -// or times out. + +/// We want to give shutdown a little more time to work, so that we +/// can guarantee to the tao_imr utility that it has shutdown. The tao_imr +/// utility prints a different message depending on whether shutdown succeeds +/// or times out. static const ACE_Time_Value DEFAULT_SHUTDOWN_TIMEOUT (0, 5000 * 1000); static PortableServer::POA_ptr @@ -111,7 +112,7 @@ ImR_Locator_i::init_with_orb (CORBA::ORB_ptr orb, Options& opts) obj = this->imr_poa_->id_to_reference (id.in ()); if (startup_timeout_ > ACE_Time_Value::zero) { - obj = set_timeout_policy (obj.in (), startup_timeout_); + obj = this->set_timeout_policy (obj.in (), startup_timeout_); } waiter_ = ImplementationRepository::AsyncStartupWaiter::_narrow (obj.in ()); @@ -761,8 +762,9 @@ ImR_Locator_i::set_timeout_policy (CORBA::Object_ptr obj, const ACE_Time_Value& } void -ImR_Locator_i::add_or_update_server (const char* server, - const ImplementationRepository::StartupOptions &options) +ImR_Locator_i::add_or_update_server ( + const char* server, + const ImplementationRepository::StartupOptions &options) { ACE_ASSERT (server != 0); @@ -853,7 +855,7 @@ ImR_Locator_i::remove_server (const char* name) if (this->read_only_) { ACE_ERROR ((LM_ERROR, - "ImR: Can't remove server <%s> due to locked database.\n", name)); + "ImR: Can't remove server <%C> due to locked database.\n", name)); throw CORBA::NO_PERMISSION ( CORBA::SystemException::_tao_minor_code ( TAO_IMPLREPO_MINOR_CODE, @@ -922,7 +924,7 @@ ImR_Locator_i::shutdown_server (const char* server) throw ImplementationRepository::NotFound (); } - connect_server (*info); + this->connect_server (*info); if (CORBA::is_nil (info->server.in ())) { @@ -933,7 +935,7 @@ ImR_Locator_i::shutdown_server (const char* server) try { - CORBA::Object_var obj = set_timeout_policy (info->server.in (), DEFAULT_SHUTDOWN_TIMEOUT); + CORBA::Object_var obj = this->set_timeout_policy (info->server.in (), DEFAULT_SHUTDOWN_TIMEOUT); ImplementationRepository::ServerObject_var server = ImplementationRepository::ServerObject::_unchecked_narrow (obj.in ()); server->shutdown (); @@ -1086,7 +1088,7 @@ ImR_Locator_i::server_is_shutting_down (const char* server) info->reset (); - int err = this->repository_.update_server (*info); + int const err = this->repository_.update_server (*info); ACE_ASSERT (err == 0); ACE_UNUSED_ARG (err); } @@ -1109,7 +1111,7 @@ ImR_Locator_i::find (const char* server, { ACE_NEW_THROW_EX (imr_info, ImplementationRepository::ServerInformation, CORBA::NO_MEMORY ()); imr_info->startup.activation= ImplementationRepository::NORMAL; - if (debug_ > 1) + if (this->debug_ > 1) ACE_DEBUG ((LM_DEBUG, "ImR: Cannot find server <%C>\n", server)); } } @@ -1213,7 +1215,7 @@ ImR_Locator_i::connect_activator (Activator_Info& info) if (startup_timeout_ > ACE_Time_Value::zero) { - obj = set_timeout_policy (obj.in (), startup_timeout_); + obj = this->set_timeout_policy (obj.in (), startup_timeout_); } info.activator = @@ -1298,7 +1300,7 @@ ImR_Locator_i::connect_server (Server_Info& info) return; } - obj = set_timeout_policy (obj.in (), DEFAULT_SERVER_TIMEOUT); + obj = this->set_timeout_policy (obj.in (), DEFAULT_SERVER_TIMEOUT); info.server = ImplementationRepository::ServerObject::_unchecked_narrow (obj.in ()); @@ -1413,7 +1415,7 @@ ImR_Locator_i::is_alive_i (Server_Info& info) return 1; } - connect_server (info); + this->connect_server (info); if (CORBA::is_nil (info.server.in ())) { diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h index 7d6ecadacb3..fc26f46433e 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h @@ -29,10 +29,10 @@ ACE_END_VERSIONED_NAMESPACE_DECL class INS_Locator; -// Gets a request from a client and depending on the POA name, -// requests an activator to take care of activating the -// corresponding server and raises a forward exception to the -// client pointing to the correct server. +/// Gets a request from a client and depending on the POA name, +/// requests an activator to take care of activating the +/// corresponding server and raises a forward exception to the +/// client pointing to the correct server. class Locator_Export ImR_Locator_i : public virtual POA_ImplementationRepository::Locator { diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h index 50af16887ac..6f041cfdd71 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h @@ -109,10 +109,10 @@ private: int load_registry_options(); private: - // xml, heap, or registry + /// xml, heap, or registry RepoMode repo_mode_; - // do we clear out the repository on load + /// Do we clear out the repository on load bool erase_repo_; /// Debug level. diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp index 9b83c9acb41..5833e0f4e98 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp @@ -211,7 +211,7 @@ static void saveAsXML (const ACE_CString& fname, Locator_Repository& repo) FILE* fp = ACE_OS::fopen (fname.c_str (), "w"); if (fp == 0) { - ACE_ERROR ((LM_ERROR, "Couldn't write to file %s\n", fname.c_str())); + ACE_ERROR ((LM_ERROR, "Couldn't write to file %C\n", fname.c_str())); return; } ACE_OS::fprintf (fp,"<?xml version=\"1.0\"?>\n"); @@ -362,7 +362,7 @@ Locator_Repository::unregister_if_address_reused ( if (this->debug_ > 0) { ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)ImR: checking reuse address ") - ACE_TEXT ("for server \"%s %s\" ior \"%s\"\n"), + ACE_TEXT ("for server \"%C %C\" ior \"%C\"\n"), server_id.c_str(), name.c_str (), partial_ior)); } @@ -377,7 +377,7 @@ Locator_Repository::unregister_if_address_reused ( if (this->debug_) { ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)ImR: iterating - registered server") - ACE_TEXT ("\"%s %s\" ior \"%s\"\n"), info->server_id.c_str(), + ACE_TEXT ("\"%C %C\" ior \"%C\"\n"), info->server_id.c_str(), info->name.c_str (), info->partial_ior.c_str ())); } @@ -387,8 +387,8 @@ Locator_Repository::unregister_if_address_reused ( { if (this->debug_) { - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)ImR: reuse address %s so remove") - ACE_TEXT ("server %s \n"), info->partial_ior.c_str (), info->name.c_str ())); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)ImR: reuse address %C so remove") + ACE_TEXT ("server %C \n"), info->partial_ior.c_str (), info->name.c_str ())); } if (! info->name.empty ()) { diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h index b41e75d4426..7d7092769bc 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h @@ -103,15 +103,15 @@ public: const char* repo_mode(); private: - // Type mechanism to use for persistence. + /// Type mechanism to use for persistence. Options::RepoMode rmode_; - // The in-memory list of the server information. + /// The in-memory list of the server information. SIMap server_infos_; - // The in-memory list of the activator information. + /// The in-memory list of the activator information. AIMap activator_infos_; - // Several rmode_ values require this. + /// Several rmode_ values require this. ACE_Auto_Ptr<ACE_Configuration> config_; - // XML requires the file name + /// XML requires the file name ACE_CString fname_; unsigned int debug_; diff --git a/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp b/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp index 94a37c57b05..d87476130f8 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp @@ -13,8 +13,7 @@ Server_Info::Server_Info int limit, const ACE_CString& partial_ior, const ACE_CString& server_ior, - ImplementationRepository::ServerObject_ptr svrobj - ) + ImplementationRepository::ServerObject_ptr svrobj) : server_id (serverId) , name (server_name) , activator (aname) diff --git a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp index 3c80579dd5f..674a60b437a 100644 --- a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp @@ -211,9 +211,9 @@ TAO_IMR_Op::display_server_information (const ImplementationRepository::ServerIn " Activator: %s\n" " Command Line: %s\n" " Working Directory: %s\n" - " Activation Mode: %s\n" + " Activation Mode: %C\n" " Number of retries: %d\n" - "%s", + "%C", info.startup.activator.in (), info.startup.command_line.in (), info.startup.working_directory.in (), diff --git a/TAO/orbsvcs/orbsvcs/CosConcurrency.mpc b/TAO/orbsvcs/orbsvcs/CosConcurrency.mpc index 8c1cce3a75e..f22d6d23160 100644 --- a/TAO/orbsvcs/orbsvcs/CosConcurrency.mpc +++ b/TAO/orbsvcs/orbsvcs/CosConcurrency.mpc @@ -63,7 +63,6 @@ project(CosConcurrency_Skel): orbsvcslib, orbsvcs_output, install, concurrency, } Inline_Files { - CosConcurrencyControlS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/CosEvent.mpc b/TAO/orbsvcs/orbsvcs/CosEvent.mpc index af96ca992fe..80efa635a0a 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent.mpc +++ b/TAO/orbsvcs/orbsvcs/CosEvent.mpc @@ -71,8 +71,6 @@ project (CosEvent_Skel) : orbsvcslib, orbsvcs_output, install, avoids_minimum_co } Inline_Files { - CosEventCommS.inl - CosEventChannelAdminS.inl } Template_Files { 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/orbsvcs/CosLifeCycle.mpc b/TAO/orbsvcs/orbsvcs/CosLifeCycle.mpc index debd95904d2..1820a1ecc27 100644 --- a/TAO/orbsvcs/orbsvcs/CosLifeCycle.mpc +++ b/TAO/orbsvcs/orbsvcs/CosLifeCycle.mpc @@ -67,8 +67,6 @@ project(CosLifeCycle_Skel) : orbsvcslib, orbsvcs_output, install, lifecycle, por } Inline_Files { - CosLifeCycleS.inl - LifeCycleServiceS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/CosNaming_Skel.mpc b/TAO/orbsvcs/orbsvcs/CosNaming_Skel.mpc index 30a30181bac..f7b411099d9 100644 --- a/TAO/orbsvcs/orbsvcs/CosNaming_Skel.mpc +++ b/TAO/orbsvcs/orbsvcs/CosNaming_Skel.mpc @@ -19,7 +19,6 @@ project(CosNaming_Skel) : orbsvcslib, orbsvcs_output, install, naming, portables } Inline_Files { - CosNamingS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/CosNotification.mpc b/TAO/orbsvcs/orbsvcs/CosNotification.mpc index 74027108963..142088974dd 100644 --- a/TAO/orbsvcs/orbsvcs/CosNotification.mpc +++ b/TAO/orbsvcs/orbsvcs/CosNotification.mpc @@ -95,12 +95,6 @@ project(CosNotification_Skel) : orbsvcslib, orbsvcs_output, install, notificatio } Inline_Files { - CosNotificationS.inl - CosNotifyCommS.inl - CosNotifyFilterS.inl - CosNotifyChannelAdminS.inl - NotifyExtS.inl - Event_ForwarderS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/CosProperty.mpc b/TAO/orbsvcs/orbsvcs/CosProperty.mpc index feabcd709f0..1a6d99258fe 100644 --- a/TAO/orbsvcs/orbsvcs/CosProperty.mpc +++ b/TAO/orbsvcs/orbsvcs/CosProperty.mpc @@ -62,7 +62,6 @@ project(CosProperty_Skel) : orbsvcslib, orbsvcs_output, install, property, porta } Inline_Files { - CosPropertyS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/CosTime.mpc b/TAO/orbsvcs/orbsvcs/CosTime.mpc index 803b03e131f..712e71e15f2 100644 --- a/TAO/orbsvcs/orbsvcs/CosTime.mpc +++ b/TAO/orbsvcs/orbsvcs/CosTime.mpc @@ -61,7 +61,6 @@ project(CosTime_Skel) : orbsvcslib, orbsvcs_output, install, time, portableserve } Inline_Files { - TimeServiceS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/CosTrading.mpc b/TAO/orbsvcs/orbsvcs/CosTrading.mpc index 870470e0a30..bd69cd8d01d 100644 --- a/TAO/orbsvcs/orbsvcs/CosTrading.mpc +++ b/TAO/orbsvcs/orbsvcs/CosTrading.mpc @@ -77,9 +77,6 @@ project(CosTrading_Skel) : orbsvcslib, orbsvcs_output, install, trading, portabl } Inline_Files { - CosTradingS.inl - CosTradingReposS.inl - CosTradingDynamicS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/DsEventLogAdmin.mpc b/TAO/orbsvcs/orbsvcs/DsEventLogAdmin.mpc index 7b0769e0dd6..657348872be 100644 --- a/TAO/orbsvcs/orbsvcs/DsEventLogAdmin.mpc +++ b/TAO/orbsvcs/orbsvcs/DsEventLogAdmin.mpc @@ -63,7 +63,6 @@ project(DsEventLogAdmin_Skel) : orbsvcslib, orbsvcs_output, install, dseventloga } Inline_Files { - DsEventLogAdminS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/DsLogAdmin.mpc b/TAO/orbsvcs/orbsvcs/DsLogAdmin.mpc index aeaa96fab09..8e21e951446 100644 --- a/TAO/orbsvcs/orbsvcs/DsLogAdmin.mpc +++ b/TAO/orbsvcs/orbsvcs/DsLogAdmin.mpc @@ -70,8 +70,6 @@ project(DsLogAdmin_Skel) : orbsvcslib, orbsvcs_output, install, dslogadmin, port } Inline_Files { - DsLogAdminS.inl - DsLogNotificationS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/DsNotifyLogAdmin.mpc b/TAO/orbsvcs/orbsvcs/DsNotifyLogAdmin.mpc index 03174af7e38..940016b3e03 100644 --- a/TAO/orbsvcs/orbsvcs/DsNotifyLogAdmin.mpc +++ b/TAO/orbsvcs/orbsvcs/DsNotifyLogAdmin.mpc @@ -64,7 +64,6 @@ project(DsNotifyLogAdmin_Skel) : orbsvcslib, orbsvcs_output, install, dsnotifylo } Inline_Files { - DsNotifyLogAdminS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h b/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h index 5fae591d76b..4a0406d2692 100644 --- a/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h +++ b/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h @@ -104,7 +104,7 @@ namespace TAO virtual int send_message (TAO_OutputCDR &stream, TAO_Stub *stub = 0, TAO_Message_Semantics message_semantics = - TAO_TWOWAY_REQUEST, + TAO_Message_Semantics (), ACE_Time_Value *max_time_wait = 0); virtual int tear_listen_point_list (TAO_InputCDR &cdr); diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h index 3a485b98b72..a6f831160ca 100644 --- a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h +++ b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h @@ -87,7 +87,8 @@ public: virtual int send_message (TAO_OutputCDR &stream, TAO_Stub *stub = 0, - TAO_Message_Semantics message_semantics = TAO_TWOWAY_REQUEST, + TAO_Message_Semantics message_semantics = + TAO_Message_Semantics (), ACE_Time_Value *max_time_wait = 0); //@} diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.cpp index 0b914a84235..38d39c17e91 100644 --- a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.cpp +++ b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.cpp @@ -35,7 +35,8 @@ TAO_UIPMC_Wait_Never::can_process_upcalls (void) const } int -TAO_UIPMC_Wait_Never::sending_request (TAO_ORB_Core *, int) +TAO_UIPMC_Wait_Never::sending_request (TAO_ORB_Core *, + TAO_Message_Semantics ) { return 0; } diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.h b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.h index ff56a990894..06958186f7c 100644 --- a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.h +++ b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.h @@ -43,7 +43,7 @@ public: // = Documented in TAO_Wait_Strategy. virtual int sending_request (TAO_ORB_Core *orb_core, - int two_way); + TAO_Message_Semantics msg_semantics); virtual int wait (ACE_Time_Value *max_wait_time, TAO_Synch_Reply_Dispatcher &rd); virtual int register_handler (void); diff --git a/TAO/orbsvcs/orbsvcs/RTEventLogAdmin.mpc b/TAO/orbsvcs/orbsvcs/RTEventLogAdmin.mpc index ac0f8b9fbb3..5ccb28ebc3b 100644 --- a/TAO/orbsvcs/orbsvcs/RTEventLogAdmin.mpc +++ b/TAO/orbsvcs/orbsvcs/RTEventLogAdmin.mpc @@ -62,7 +62,6 @@ project(RTEventLogAdmin_Skel) : orbsvcslib, orbsvcs_output, install, rteventloga } Inline_Files { - RTEventLogAdminS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/RTEvent_Skel.mpc b/TAO/orbsvcs/orbsvcs/RTEvent_Skel.mpc index e2fa2a25037..e9f5730760b 100644 --- a/TAO/orbsvcs/orbsvcs/RTEvent_Skel.mpc +++ b/TAO/orbsvcs/orbsvcs/RTEvent_Skel.mpc @@ -29,10 +29,6 @@ project(RTEvent_Skel) : orbsvcslib, orbsvcs_output, install, rtevent, portablese } Inline_Files { - RtecDefaultEventDataS.inl - RtecEventCommS.inl - RtecEventChannelAdminS.inl - RtecUDPAdminS.inl } Template_Files { diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp index d6d908922b3..4752e20c531 100644 --- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp @@ -483,12 +483,14 @@ TAO::SSLIOP::Connector::ssliop_connect ( } // Check the Cache first for connections - size_t busy_count = 0; //not used but needed for the call - if (this->orb_core ()->lane_resources ().transport_cache ().find_transport ( + size_t busy_count = 0; + TAO::Transport_Cache_Manager::Find_Result found = + this->orb_core ()->lane_resources ().transport_cache ().find_transport ( desc, transport, - busy_count) - == TAO::Transport_Cache_Manager::CACHE_FOUND_AVAILABLE) + busy_count); + + if (found == TAO::Transport_Cache_Manager::CACHE_FOUND_AVAILABLE) { // ...eliminate svc_handle memory leak... ACE_Event_Handler_var @@ -517,223 +519,238 @@ TAO::SSLIOP::Connector::ssliop_connect ( } else { - if (TAO_debug_level > 4) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("TAO (%P|%t) - SSLIOP_Connector::ssliop_connect, ") - ACE_TEXT ("making a new connection\n"))); - - // Purge connections (if necessary) - this->orb_core ()->lane_resources ().transport_cache ().purge (); - - // The svc_handler is created beforehand so that we can get - // access to the underlying ACE_SSL_SOCK_Stream (the peer) and - // its SSL pointer member prior to descending into the - // ACE_Strategy_Connector (the "base_connector_"). This is - // thread-safe and reentrant, hence no synchronization is - // necessary. - if (svc_handler == 0 && - this->base_connector_.creation_strategy ()->make_svc_handler ( - svc_handler) != 0) + + bool make_new_connection = + (found == TAO::Transport_Cache_Manager::CACHE_FOUND_NONE) || + (found == TAO::Transport_Cache_Manager::CACHE_FOUND_BUSY + && this->new_connection_is_ok (busy_count)); + + if (make_new_connection) { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("TAO (%P|%t) Unable to create SSLIOP ") - ACE_TEXT ("service handler.\n"))); - return 0; - } + if (TAO_debug_level > 4) + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("TAO (%P|%t) - SSLIOP_Connector::ssliop_connect, ") + ACE_TEXT ("making a new connection\n"))); + + // Purge connections (if necessary) + this->orb_core ()->lane_resources ().transport_cache ().purge (); + + // The svc_handler is created beforehand so that we can get + // access to the underlying ACE_SSL_SOCK_Stream (the peer) and + // its SSL pointer member prior to descending into the + // ACE_Strategy_Connector (the "base_connector_"). This is + // thread-safe and reentrant, hence no synchronization is + // necessary. + if (svc_handler == 0 && + this->base_connector_.creation_strategy ()->make_svc_handler ( + svc_handler) != 0) + { + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) Unable to create SSLIOP ") + ACE_TEXT ("service handler.\n"))); - ACE_Event_Handler_var - safe_handler (svc_handler); + return 0; + } - // Setup the establishment of trust connection properties, if - // any. - int verify_mode = 0; - - // On the server side, "trust_in_client" requires that a peer - // (client) certificate exist. Fail if one doesn't exist. - // - // In SSLIOP's case, trust_in_client also implies - // trust_in_target. - if (trust.trust_in_client) - verify_mode = SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT; - - // Require verification of the target's certificate. - else if (trust.trust_in_target) - verify_mode = SSL_VERIFY_PEER; - - // Trust in neither the client nor the target is explicitly - // specified. Use the default setting. - else - verify_mode = ACE_SSL_Context::instance ()->default_verify_mode (); - - ::SSL_set_verify (svc_handler->peer ().ssl (), verify_mode, 0); - - // The "eNULL" cipher disables encryption but still uses a - // secure hash (e.g. SHA1 or MD5) to ensure integrity. (Try the - // command "openssl ciphers -v eNULL".) - // - // Note that it is not possible to completely disable protection - // here. - if ((qop == ::Security::SecQOPNoProtection - || qop == ::Security::SecQOPIntegrity) - && ::SSL_set_cipher_list (svc_handler->peer ().ssl (), - "eNULL") == 0) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("(%P|%t) Unable to set eNULL ") - ACE_TEXT ("SSL cipher.\n"))); + ACE_Event_Handler_var + safe_handler (svc_handler); - throw CORBA::INV_POLICY (); - } + // Setup the establishment of trust connection properties, if + // any. + int verify_mode = 0; - // svc_handler is never reset..it still has the value - (void)safe_handler.release (); + // On the server side, "trust_in_client" requires that a peer + // (client) certificate exist. Fail if one doesn't exist. + // + // In SSLIOP's case, trust_in_client also implies + // trust_in_target. + if (trust.trust_in_client) + verify_mode = SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT; - // Get the right synch options - ACE_Synch_Options synch_options; + // Require verification of the target's certificate. + else if (trust.trust_in_target) + verify_mode = SSL_VERIFY_PEER; - this->active_connect_strategy_->synch_options (max_wait_time, - synch_options); + // Trust in neither the client nor the target is explicitly + // specified. Use the default setting. + else + verify_mode = ACE_SSL_Context::instance ()->default_verify_mode (); + + ::SSL_set_verify (svc_handler->peer ().ssl (), verify_mode, 0); + + // The "eNULL" cipher disables encryption but still uses a + // secure hash (e.g. SHA1 or MD5) to ensure integrity. (Try the + // command "openssl ciphers -v eNULL".) + // + // Note that it is not possible to completely disable protection + // here. + if ((qop == ::Security::SecQOPNoProtection + || qop == ::Security::SecQOPIntegrity) + && ::SSL_set_cipher_list (svc_handler->peer ().ssl (), + "eNULL") == 0) + { + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_ERROR, + ACE_TEXT ("(%P|%t) Unable to set eNULL ") + ACE_TEXT ("SSL cipher.\n"))); - // The code used to set the timeout to zero, with the intent of - // polling the reactor for connection completion. However, the side-effect - // was to cause the connection to timeout immediately. + throw CORBA::INV_POLICY (); + } - // We obtain the transport in the <svc_handler> variable. As we - // know now that the connection is not available in Cache we can - // make a new connection - result = this->base_connector_.connect (svc_handler, - remote_address, - synch_options); + // svc_handler is never reset..it still has the value + (void)safe_handler.release (); - // Make sure that we always do a remove_reference - ACE_Event_Handler_var svc_handler_auto_ptr (svc_handler); + // Get the right synch options + ACE_Synch_Options synch_options; - transport = - svc_handler->transport (); + this->active_connect_strategy_->synch_options (max_wait_time, + synch_options); - if (result == -1) - { - // No immediate result, wait for completion - if (errno == EWOULDBLOCK) + // The code used to set the timeout to zero, with the intent of + // polling the reactor for connection completion. However, the side-effect + // was to cause the connection to timeout immediately. + + // We obtain the transport in the <svc_handler> variable. As we + // know now that the connection is not available in Cache we can + // make a new connection + result = this->base_connector_.connect (svc_handler, + remote_address, + synch_options); + + // Make sure that we always do a remove_reference + ACE_Event_Handler_var svc_handler_auto_ptr (svc_handler); + + transport = + svc_handler->transport (); + + if (result == -1) { - // Try to wait until connection completion. Incase we block, then we - // get a connected transport or not. In case of non block we get - // a connected or not connected transport - if (!this->wait_for_connection_completion (resolver, - *desc, - transport, - max_wait_time)) + // No immediate result, wait for completion + if (errno == EWOULDBLOCK) + { + // Try to wait until connection completion. Incase we block, then we + // get a connected transport or not. In case of non block we get + // a connected or not connected transport + if (!this->wait_for_connection_completion (resolver, + *desc, + transport, + max_wait_time)) + { + if (TAO_debug_level > 2) + ACE_ERROR ((LM_ERROR, "TAO (%P|%t) - SSLIOP_Connector::" + "ssliop_connect, " + "wait for completion failed\n")); + } + } + else { - if (TAO_debug_level > 2) - ACE_ERROR ((LM_ERROR, "TAO (%P|%t) - SSLIOP_Connector::" - "ssliop_connect, " - "wait for completion failed\n")); + // Transport is not usable + transport = 0; } } - else + + // In case of errors transport is zero + if (transport == 0) { - // Transport is not usable - transport = 0; + // Give users a clue to the problem. + if (TAO_debug_level) + { + char buffer [MAXHOSTNAMELEN + 6 + 1]; + ssl_endpoint->addr_to_string (buffer, + sizeof (buffer) - 1); + ACE_DEBUG ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) - SSL connection to ") + ACE_TEXT ("<%s:%d> failed (%p)\n"), + buffer, + remote_address.get_port_number (), + ACE_TEXT ("errno"))); + } + + return 0; } - } - // In case of errors transport is zero - if (transport == 0) - { - // Give users a clue to the problem. - if (TAO_debug_level) + // fix for bug 2654 + if (svc_handler->keep_waiting ()) { - char buffer [MAXHOSTNAMELEN + 6 + 1]; - ssl_endpoint->addr_to_string (buffer, - sizeof (buffer) - 1); - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("TAO (%P|%t) - SSL connection to ") - ACE_TEXT ("<%s:%d> failed (%p)\n"), - buffer, - remote_address.get_port_number (), - ACE_TEXT ("errno"))); + svc_handler->connection_pending (); } - return 0; - } + // fix for bug 2654 + if (svc_handler->error_detected ()) + { + svc_handler->cancel_pending_connection (); + } - // fix for bug 2654 - if (svc_handler->keep_waiting ()) - { - svc_handler->connection_pending (); - } + // At this point, the connection has be successfully connected. + // #REFCOUNT# is one. + if (TAO_debug_level > 2) + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - SSLIOP_Connector::ssliop_connect, " + "new SSL connection to port %d on transport[%d]\n", + remote_address.get_port_number (), + svc_handler->peer ().get_handle ())); + + // Add the handler to Cache + int retval = + this->orb_core ()-> + lane_resources ().transport_cache ().cache_transport (desc, + transport); + + // Failure in adding to cache. + if (retval == -1) + { + // Close the handler. + svc_handler->close (); - // fix for bug 2654 - if (svc_handler->error_detected ()) - { - svc_handler->cancel_pending_connection (); - } + if (TAO_debug_level > 0) + { + ACE_ERROR ((LM_ERROR, + "TAO (%P|%t) - SLIIOP_Connector::ssliop_connect, " + "could not add the new connection to cache\n")); + } - // At this point, the connection has be successfully connected. - // #REFCOUNT# is one. - if (TAO_debug_level > 2) - ACE_DEBUG ((LM_DEBUG, - "TAO (%P|%t) - SSLIOP_Connector::ssliop_connect, " - "new SSL connection to port %d on transport[%d]\n", - remote_address.get_port_number (), - svc_handler->peer ().get_handle ())); - - // Add the handler to Cache - int retval = - this->orb_core ()-> - lane_resources ().transport_cache ().cache_transport (desc, - transport); - - // Failure in adding to cache. - if (retval == -1) - { - // Close the handler. - svc_handler->close (); + return 0; + } - if (TAO_debug_level > 0) + // fix for bug 2654 + if (svc_handler->error_detected ()) { - ACE_ERROR ((LM_ERROR, - "TAO (%P|%t) - SLIIOP_Connector::ssliop_connect, " - "could not add the new connection to cache\n")); + svc_handler->cancel_pending_connection (); + transport->purge_entry(); + return 0; } - return 0; - } + if (transport->is_connected () && + transport->wait_strategy ()->register_handler () != 0) + { + // Registration failures. - // fix for bug 2654 - if (svc_handler->error_detected ()) - { - svc_handler->cancel_pending_connection (); - transport->purge_entry(); - return 0; - } + // Purge from the connection cache, if we are not in the cache, this + // just does nothing. + (void) transport->purge_entry (); - if (transport->is_connected () && - transport->wait_strategy ()->register_handler () != 0) - { - // Registration failures. + // Close the handler. + (void) transport->close_connection (); - // Purge from the connection cache, if we are not in the cache, this - // just does nothing. - (void) transport->purge_entry (); + if (TAO_debug_level > 0) + ACE_ERROR ((LM_ERROR, + "TAO (%P|%t) - SSLIOP_Connector [%d]::ssliop_connect, " + "could not register the transport " + "in the reactor.\n", + transport->id ())); - // Close the handler. - (void) transport->close_connection (); + return 0; + } - if (TAO_debug_level > 0) - ACE_ERROR ((LM_ERROR, - "TAO (%P|%t) - SSLIOP_Connector [%d]::ssliop_connect, " - "could not register the transport " - "in the reactor.\n", - transport->id ())); + svc_handler_auto_ptr.release (); - return 0; } - - svc_handler_auto_ptr.release (); + else // not making new connection + { + (void) this->wait_for_transport (resolver, transport, max_wait_time, true); + } } return transport; diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h index 50f2fc551f1..10b2f901539 100644 --- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h @@ -108,7 +108,7 @@ namespace TAO virtual int send_message (TAO_OutputCDR &stream, TAO_Stub *stub = 0, TAO_Message_Semantics message_semantics = - TAO_TWOWAY_REQUEST, + TAO_Message_Semantics (), ACE_Time_Value *max_time_wait = 0); /// Open teh service context list and process it. diff --git a/TAO/orbsvcs/orbsvcs/ec_typed_events_skel.mpb b/TAO/orbsvcs/orbsvcs/ec_typed_events_skel.mpb index b5316d32dab..5eec5e72e58 100644 --- a/TAO/orbsvcs/orbsvcs/ec_typed_events_skel.mpb +++ b/TAO/orbsvcs/orbsvcs/ec_typed_events_skel.mpb @@ -18,8 +18,6 @@ feature(ec_typed_events) { } Inline_Files { - CosTypedEventCommS.inl - CosTypedEventChannelAdminS.inl } Template_Files { 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_1393_Regression/run_test.pl b/TAO/orbsvcs/tests/Bug_1393_Regression/run_test.pl index ddfff9c21e6..fffd0bf4161 100755 --- a/TAO/orbsvcs/tests/Bug_1393_Regression/run_test.pl +++ b/TAO/orbsvcs/tests/Bug_1393_Regression/run_test.pl @@ -10,7 +10,7 @@ use PerlACE::TestTarget; $status = 0; -my @generated_files = ("testC.h", "testC.cpp", "testC.inl", "testS.h", "testS.cpp", "testS.inl"); +my @generated_files = ("testC.h", "testC.cpp", "testC.inl", "testS.h", "testS.cpp"); # The location of the IFR_Service binary my $ifr_service_bin = "../../IFR_Service"; diff --git a/TAO/orbsvcs/tests/Bug_2285_Regression/Hello.cpp b/TAO/orbsvcs/tests/Bug_2285_Regression/Hello.cpp index 8814ead3a6c..8414a6d3d2c 100644 --- a/TAO/orbsvcs/tests/Bug_2285_Regression/Hello.cpp +++ b/TAO/orbsvcs/tests/Bug_2285_Regression/Hello.cpp @@ -3,10 +3,8 @@ // #include "Hello.h" - - CORBA::Boolean -Hello::ids_differ_ = 1; +Hello::ids_differ_ = true; Hello::Hello (CORBA::ORB_ptr orb, Test::Hello_ptr server, CORBA::ULong server_id) : orb_ (CORBA::ORB::_duplicate (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_2285_Regression/client2.cpp b/TAO/orbsvcs/tests/Bug_2285_Regression/client2.cpp index 8f46138e1ef..1c3a986f0c3 100644 --- a/TAO/orbsvcs/tests/Bug_2285_Regression/client2.cpp +++ b/TAO/orbsvcs/tests/Bug_2285_Regression/client2.cpp @@ -154,9 +154,8 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) result = 1; ACE_DEBUG ((LM_ERROR, "Error: REGRESSION identified by server %u. Test Failed !!\n", last_server)); } - catch (const CORBA::COMM_FAILURE& my_ex) + catch (const CORBA::COMM_FAILURE&) { - ACE_UNUSED_ARG (my_ex); // We can't use the word exception for fear of upsetting the build log parser ACE_DEBUG ((LM_DEBUG, "Client caught one of those things that is normally used to indicate a problem (" "although it doesn't in this case) and which we cannot name because the autobuild " 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/orbsvcs/tests/Security/MT_BiDir_SSL/Client_Task.cpp b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Client_Task.cpp new file mode 100644 index 00000000000..24d1baf9ead --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Client_Task.cpp @@ -0,0 +1,34 @@ +// +// $Id$ +// + +#include "Client_Task.h" + +Client_Task::Client_Task (CORBA::ORB_ptr orb, + ACE_Thread_Manager *thr_mgr) + : ACE_Task_Base (thr_mgr) + , orb_ (CORBA::ORB::_duplicate (orb)) + { +} + +int +Client_Task::svc (void) +{ + ACE_DEBUG ((LM_DEBUG, "(%P|%t) Starting client task\n")); + + // Wait for 2 minutes... + ACE_Time_Value tv (60,0); + + try + { + this->orb_->run (tv); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("(%P|%t) Client_Task::svc exception!!!\n"); + + } + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) Client task finished\n")); + return 0; +} diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Client_Task.h b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Client_Task.h new file mode 100644 index 00000000000..4b8f586e00a --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Client_Task.h @@ -0,0 +1,35 @@ +// +// $Id$ +// + +#ifndef MT_BIDIR__CLIENT_TASK_H +#define MT_BIDIR_CLIENT_TASK_H +#include /**/ "ace/pre.h" + +#include "ace/Task.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/ORB.h" + + +/// Implement a Task to run the experiments using multiple threads. +class Client_Task : public ACE_Task_Base +{ +public: + /// Constructor + Client_Task (CORBA::ORB_ptr orb, + ACE_Thread_Manager *thr_mgr); + + /// Thread entry point + int svc (void); + +private: + /// Reference to the ORB + CORBA::ORB_var orb_; +}; + +#include /**/ "ace/post.h" +#endif /* MT_BIDIR_CLIENT_TASK_H */ diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/MT_BiDir_SSL.mpc b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/MT_BiDir_SSL.mpc new file mode 100644 index 00000000000..b9de35dbb68 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/MT_BiDir_SSL.mpc @@ -0,0 +1,43 @@ +// -*- MPC -*- +// $Id$ + +project(*idl): taoidldefaults { + IDL_Files { + Receiver.idl + Sender.idl + } + custom_only = 1 +} + +project(*Server): taoserver, avoids_minimum_corba, bidir_giop, avoids_corba_e_micro { + after += *idl + Source_Files { + Sender_i.cpp + Server_Task.cpp + server.cpp + } + Source_Files { + ReceiverC.cpp + SenderC.cpp + SenderS.cpp + } + IDL_Files { + } +} + +project(*Client): taoserver, avoids_minimum_corba, bidir_giop, avoids_corba_e_micro { + exename = client + after += *idl + Source_Files { + Client_Task.cpp + Receiver_i.cpp + client.cpp + } + Source_Files { + ReceiverC.cpp + ReceiverS.cpp + SenderC.cpp + } + IDL_Files { + } +} diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/README b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/README new file mode 100644 index 00000000000..28e9973ebe4 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/README @@ -0,0 +1,19 @@ +/** + +$Id$ + +@page MT_BiDir_SSL Test README File + + This is a stress test that exercises the birectional GIOP +connection implementation with multiple threads in TAO using SSLIOP. + +To run the test use the run_test.pl script: + +$ ./run_test.pl + +the script returns 0 if the test was successful. + +*/ + + + diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Receiver.idl b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Receiver.idl new file mode 100644 index 00000000000..b8e7383670e --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Receiver.idl @@ -0,0 +1,11 @@ +// +// $Id$ +// + +interface Receiver +{ + typedef sequence<octet> Payload; + + /// A simple remote call + void receive_payload (in Receiver::Payload pay); +}; diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Receiver_i.cpp b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Receiver_i.cpp new file mode 100644 index 00000000000..72b6bf4f7aa --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Receiver_i.cpp @@ -0,0 +1,26 @@ +// +// $Id$ +// +#include "Receiver_i.h" + +Receiver_i::Receiver_i (void) + : message_count_ (0) + , byte_count_ (0) +{ +} + + +void +Receiver_i::receive_payload (const Receiver::Payload &payload) +{ + ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->mutex_); + this->message_count_++; + this->byte_count_ += payload.length (); +} + +CORBA::Long +Receiver_i::get_event_count (void) +{ + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, 0); + return this->message_count_; +} diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Receiver_i.h b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Receiver_i.h new file mode 100644 index 00000000000..398955cca27 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Receiver_i.h @@ -0,0 +1,35 @@ +// +// $Id$ +// + +#ifndef MT_BIDIR_RECEIVER_I_H +#define MT_BIDIR_RECEIVER_I_H +#include /**/ "ace/pre.h" + +#include "ReceiverS.h" + +/** + * Simply print count how many bytes were received. + */ +class Receiver_i + : public virtual POA_Receiver +{ +public: + /// Constructor + Receiver_i (void); + + + /// Get the number of events that have been received, local method + CORBA::Long get_event_count (void); + + // = The skeleton methods + virtual void receive_payload (const Receiver::Payload &payload); + +private: + TAO_SYNCH_MUTEX mutex_; + CORBA::ULong message_count_; + CORBA::ULong byte_count_; +}; + +#include /**/ "ace/post.h" +#endif /* MUXING_RECEIVER_H */ diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Sender.idl b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Sender.idl new file mode 100644 index 00000000000..9aa036f3327 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Sender.idl @@ -0,0 +1,14 @@ +// +// $Id$ +// +#include "Receiver.idl" + +interface Sender +{ + + exception Table_Full {}; + + /// Receive the Receiver object and return a id for the object. + long receiver_object (in Receiver recv) + raises (Table_Full); +}; diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Sender_i.cpp b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Sender_i.cpp new file mode 100644 index 00000000000..35f2360528c --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Sender_i.cpp @@ -0,0 +1,62 @@ +// $Id$ + +#include "Sender_i.h" +#include "ace/Manual_Event.h" + +Sender_i::Sender_i (CORBA::ULong no_clients, + ACE_Manual_Event &event) + : event_ (event) + , receivers_ (0) + , no_clients_ (no_clients) + , last_index_ (0) + , payload_ (32768) +{ + ACE_NEW (this->receivers_, + Receiver_var [no_clients]); + + // Okay to have a magic number... + this->payload_.length (32768); + + for (CORBA::ULong j = 0; j != this->payload_.length (); ++j) + this->payload_[j] = (j % 256); +} + +Sender_i::~Sender_i (void) +{ + delete []this->receivers_; +} + +CORBA::Long +Sender_i::receiver_object (Receiver_ptr recv) +{ + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, + ace_mon, + this->mutex_,-1); + + if (this->no_clients_ == this->last_index_) + throw Sender::Table_Full (); + + this->receivers_[this->last_index_] = + Receiver::_duplicate (recv); + + ++this->last_index_; + + if (this->last_index_ == this->no_clients_) + { + this->event_.signal (); + } + + return this->last_index_; +} + + +void +Sender_i::send_message (void) +{ + // NOTE:No synchronization with purpose. Synchrnozing this is + // going to spoil the whole purpose of this test. + CORBA::ULong send_to = + static_cast<CORBA::ULong> (ACE_OS::rand () % this->no_clients_); + + this->receivers_[send_to]->receive_payload (this->payload_); +} diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Sender_i.h b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Sender_i.h new file mode 100644 index 00000000000..79032e33f6f --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Sender_i.h @@ -0,0 +1,55 @@ +// -*- C++ -*- +// +// $Id$ + +#ifndef MT_BIDIR_RECEIVER_H +#define MT_BIDIR_RECEIVER_H +#include /**/ "ace/pre.h" + +#include "SenderS.h" + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL +class ACE_Manual_Event; +ACE_END_VERSIONED_NAMESPACE_DECL + +/** + * Simply print count how many bytes were received. + */ +class Sender_i + : public virtual POA_Sender +{ +public: + /// Constructor + Sender_i (CORBA::ULong no_clients, + ACE_Manual_Event &event); + + virtual ~Sender_i (void); + + // = The skeleton methods + virtual CORBA::Long receiver_object (Receiver *recv); + + /// Public method defined locally + void send_message (void); + +private: + /// Synchronizing acces to this class + TAO_SYNCH_MUTEX mutex_; + + /// An event for waking other threads + ACE_Manual_Event &event_; + + /// An array of receiver pointers + Receiver_var *receivers_; + + /// Size of the <this->receivers_> array + CORBA::ULong no_clients_; + + /// Receiver index + CORBA::ULong last_index_; + + /// Payload that is being sent + Receiver::Payload payload_; +}; + +#include /**/ "ace/post.h" +#endif /* MUXING_RECEIVER_H */ diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Server_Task.cpp b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Server_Task.cpp new file mode 100644 index 00000000000..d095f295801 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Server_Task.cpp @@ -0,0 +1,75 @@ +// +// $Id$ +// + +#include "Server_Task.h" +#include "Sender_i.h" +#include "tao/ORB_Core.h" +#include "tao/Thread_Lane_Resources.h" +#include "tao/Transport_Cache_Manager.h" +#include "ace/Manual_Event.h" + +Server_Task::Server_Task (Sender_i *sender, + ACE_Manual_Event &event, + int no_iterations, + CORBA::ORB_ptr orb, + ACE_Thread_Manager *thr_mgr) + : ACE_Task_Base (thr_mgr) + , sender_ (sender) + , event_ (event) + , no_iterations_ (no_iterations) + , orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +int +Server_Task::svc (void) +{ + ACE_DEBUG ((LM_DEBUG, "(%P|%t) Wait for the Event\n")); + + /// Wait on the event + /// Yes, wait on event twice. One for making sure that we have got + /// all the clients come and register with us. + this->event_.wait (); + + + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) Start doing some work....\n")); + + + try + { + // Before start + CORBA::ULong connection_no = + this->orb_->orb_core ()->lane_resources ().transport_cache ().current_size (); + + for (int i = 0; i != this->no_iterations_; ++i) + { + if (i%50 == 0) + ACE_DEBUG ((LM_DEBUG, "(%P|%t) Sending message ....\n")); + + this->sender_->send_message (); + + // Sanity check for connections.. + if (connection_no < + this->orb_->orb_core ()->lane_resources ().transport_cache ().current_size ()) + { + // Get the latest and the greatest.. + connection_no = + this->orb_->orb_core ()->lane_resources ().transport_cache ().current_size (); + ACE_ERROR ((LM_DEBUG, + "(%P|%t) ERROR: New connections have been created\n")); + ACE_ERROR ((LM_DEBUG, + "(%P|%t) ERROR: We will crash now...\n")); + ACE_OS::abort (); + } + + } + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Caught exception in iteration.\n"); + } + + return 0; +} diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Server_Task.h b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Server_Task.h new file mode 100644 index 00000000000..42686741b21 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/Server_Task.h @@ -0,0 +1,54 @@ +// -*- C++ -*- +// +// $Id$ + +#ifndef MT_BIDIR_SERVER_TASK_H +#define MT_BIDIR_SERVER_TASK_H + +#include /**/ "ace/pre.h" + +#include "ace/Task.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/ORB.h" + +class Sender_i; + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL +class ACE_Manual_Event; +ACE_END_VERSIONED_NAMESPACE_DECL + +/// Implement a Task to run the experiments using multiple threads. +class Server_Task : public ACE_Task_Base +{ +public: + /// Constructor + Server_Task (Sender_i *s, + ACE_Manual_Event &event, + int no_iterations, + CORBA::ORB_ptr orb, + ACE_Thread_Manager *thr_mgr); + + /// Thread entry point + int svc (void); + +private: + /// The sender object + Sender_i *sender_; + + /// The synchronizer + ACE_Manual_Event &event_; + + /// Number of messages that needs to be sent + int no_iterations_; + + /// The ORB on which we run.. + CORBA::ORB_var orb_; +}; + +#include /**/ "ace/post.h" + +#endif /* MT_BIDIR_SERVER_TASK_H */ diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/client.conf b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/client.conf new file mode 100644 index 00000000000..13aca91454e --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/client.conf @@ -0,0 +1,12 @@ +# $Id$ + +dynamic SSLIOP_Factory Service_Object * + TAO_SSLIOP:_make_TAO_SSLIOP_Protocol_Factory() + "-SSLAuthenticate SERVER_AND_CLIENT -SSLPrivateKey 'PEM:ssl/client-key.pem' -SSLCertificate 'PEM:ssl/client-cert.pem' -SSLCAFile 'PEM:ssl/ca.pem'" + +dynamic Advanced_Resource_Factory Service_Object* + TAO_Strategies:_make_TAO_Advanced_Resource_Factory () + "-ORBProtocolFactory SSLIOP_Factory -ORBMuxedConnectionMax 1" + +static Client_Strategy_Factory "-ORBConnectStrategy blocked" + diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/client.conf.xml b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/client.conf.xml new file mode 100644 index 00000000000..6e34a5555df --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/client.conf.xml @@ -0,0 +1,14 @@ +<?xml version='1.0'?> +<!-- Converted from ./orbsvcs/tests/Security/MT_SSLIOP/client.conf by svcconf-convert.pl --> +<ACE_Svc_Conf> + <!-- --> + <!-- $Id$ --> + <!-- --> + <dynamic id="SSLIOP_Factory" type="Service_Object"> + <initializer path="TAO_SSLIOP" init="_make_TAO_SSLIOP_Protocol_Factory" params="-SSLAuthenticate SERVER_AND_CLIENT -SSLPrivateKey PEM:ssl/client-key.pem -SSLCertificate PEM:ssl/client-cert.pem -SSLCAFile PEM:ssl/ca.pem"/> + </dynamic> +<dynamic id="Advanced_Resource_Factory" type="Service_Object"> + <initializer path="TAO_Strategies" init="_make_TAO_Advanced_Resource_Factory" params="-ORBProtocolFactory SSLIOP_Factory -ORBMuxedConnectionMax 1"/> + </dynamic> + <static id="Resource_Factory" params="-ORBConnectStrategy blocked"/> +</ACE_Svc_Conf> diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/client.cpp b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/client.cpp new file mode 100644 index 00000000000..abf16e115a9 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/client.cpp @@ -0,0 +1,152 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "Receiver_i.h" +#include "SenderC.h" +#include "tao/BiDir_GIOP/BiDirGIOP.h" +#include "tao/AnyTypeCode/Any.h" +#include "Client_Task.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.optarg; + 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 poa_object = + orb->resolve_initial_references ("RootPOA"); + + if (CORBA::is_nil (poa_object.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to initialize the POA.\n"), + 1); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in ()); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (); + + // Policies for the childPOA to be created. + CORBA::PolicyList policies (1); + policies.length (1); + + CORBA::Any pol; + pol <<= BiDirPolicy::BOTH; + policies[0] = + orb->create_policy (BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, + pol); + + // Create POA as child of RootPOA with the above policies. This POA + // will receive request in the same connection in which it sent + // the request + PortableServer::POA_var child_poa = + root_poa->create_POA ("childPOA", + poa_manager.in (), + policies); + + // Creation of childPOA is over. Destroy the Policy objects. + for (CORBA::ULong i = 0; + i < policies.length (); + ++i) + { + policies[i]->destroy (); + } + + poa_manager->activate (); + + CORBA::Object_var object = + orb->string_to_object (ior); + + Sender_var sender = + Sender::_narrow (object.in ()); + + if (CORBA::is_nil (sender.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Object reference <%s> is nil.\n", + ior), + 1); + } + + + Receiver_i *receiver; + ACE_NEW_RETURN (receiver, + Receiver_i (), + -1); + + PortableServer::ServantBase_var owner_transfer (receiver); + + PortableServer::ObjectId_var id = + root_poa->activate_object (receiver); + + CORBA::Object_var object_act = root_poa->id_to_reference (id.in ()); + + Receiver_var receiver_obj = + Receiver::_narrow (object_act.in ()); + + // Send the calback object to the server + sender->receiver_object (receiver_obj.in ()); + + // Threads that will handle the call backs + Client_Task client_task (orb.in (), + ACE_Thread_Manager::instance ()); + + if (client_task.activate (THR_NEW_LWP | THR_JOINABLE, 4, 1) == -1) + { + ACE_ERROR ((LM_ERROR, "Error activating client task\n")); + } + + ACE_Thread_Manager::instance ()->wait (); + + CORBA::Long count = + receiver->get_event_count (); + + ACE_DEBUG ((LM_DEBUG, + "(%P|%t) Number of events received.. [%d]\n", + count)); + + root_poa->destroy (1, + 1); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Caught exception:"); + return 1; + } + + return 0; +} diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/run_test.pl b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/run_test.pl new file mode 100755 index 00000000000..a6125da53b2 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/run_test.pl @@ -0,0 +1,148 @@ +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'; + +foreach $i (@ARGV) { + if ($i eq '-debug') { + $debug_level = '10'; + } +} + +my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n"; +my $client1 = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n"; +my $client2 = PerlACE::TestTarget::create_target (3) || die "Create target 3 failed\n"; +my $client3 = PerlACE::TestTarget::create_target (4) || die "Create target 4 failed\n"; + +my $iorbase = "server.ior"; +my $server_iorfile = $server->LocalFile ($iorbase); +my $client1_iorfile = $client1->LocalFile ($iorbase); +my $client2_iorfile = $client2->LocalFile ($iorbase); +my $client3_iorfile = $client3->LocalFile ($iorbase); +$server->DeleteFile($iorbase); +$client1->DeleteFile($iorbase); +$client2->DeleteFile($iorbase); +$client3->DeleteFile($iorbase); + +my $server_conf_base = "server$PerlACE::svcconf_ext"; +my $server_conf = $server->LocalFile ($server_conf_base); + +my $client_conf_base = "client$PerlACE::svcconf_ext"; + +# Copy the configuration file to the target. +if ($server->PutFile ($server_conf_base) == -1) { + print STDERR "ERROR: cannot set file <$server_conf>\n"; + exit 1; +} + +$SV = $server->CreateProcess ("server", + "-ORBdebuglevel $debug_level -ORBSvcConf $server_conf " . + "-o $server_iorfile -c 3 -i 100"); +$CL1 = $client1->CreateProcess ("client", "-ORBSvcConf $client_conf_base -k file://$client1_iorfile"); +$CL2 = $client2->CreateProcess ("client", "-ORBSvcConf $client_conf_base -k file://$client2_iorfile"); +$CL3 = $client3->CreateProcess ("client", "-ORBSvcConf $client_conf_base -k file://$client3_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 ($client1->PutFile ($iorbase) == -1) { + print STDERR "ERROR: cannot set file <$client1_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} +if ($client2->PutFile ($iorbase) == -1) { + print STDERR "ERROR: cannot set file <$client2_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} +if ($client3->PutFile ($iorbase) == -1) { + print STDERR "ERROR: cannot set file <$client3_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$client_status = $CL1->Spawn (); + +if ($client_status != 0) { + print STDERR "ERROR: client returned $client_status\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$client_status = $CL2->Spawn (); + +if ($client_status != 0) { + print STDERR "ERROR: client returned $client_status\n"; + $SV->Kill (); $SV->TimedWait (1); + $CL1->Kill (); $CL1->TimedWait (1); + exit 1; +} + +$client_status = $CL3->Spawn (); + +if ($client_status != 0) { + print STDERR "ERROR: client returned $client_status\n"; + $SV->Kill (); $SV->TimedWait (1); + $CL1->Kill (); $CL1->TimedWait (1); + $CL2->Kill (); $CL2->TimedWait (1); + exit 1; +} + +$client_status = $CL1->WaitKill ($client1->ProcessStopWaitInterval() + 60); + +if ($client_status != 0) { + print STDERR "ERROR: client returned $client_status\n"; + $status = 1; +} + +$client_status = $CL2->WaitKill ($client2->ProcessStopWaitInterval() + 60); + +if ($client_status != 0) { + print STDERR "ERROR: client returned $client_status\n"; + $status = 1; +} + +$client_status = $CL3->WaitKill ($client3->ProcessStopWaitInterval() + 60); + +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); +$client1->DeleteFile($iorbase); +$client2->DeleteFile($iorbase); +$client3->DeleteFile($iorbase); + +exit $status; diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/server.conf b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/server.conf new file mode 100644 index 00000000000..6453d89749c --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/server.conf @@ -0,0 +1,11 @@ +# $Id$ +# +dynamic SSLIOP_Factory Service_Object * + TAO_SSLIOP:_make_TAO_SSLIOP_Protocol_Factory() + "-SSLAuthenticate SERVER_AND_CLIENT -SSLPrivateKey 'PEM:ssl/server-key.pem' -SSLCertificate 'PEM:ssl/server-cert.pem' -SSLCAFile 'PEM:ssl/ca.pem'" + +dynamic Advanced_Resource_Factory Service_Object* + TAO_Strategies:_make_TAO_Advanced_Resource_Factory () + "-ORBProtocolFactory SSLIOP_Factory -ORBMuxedConnectionMax 1" + +static Client_Strategy_Factory "-ORBConnectStrategy blocked" diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/server.conf.xml b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/server.conf.xml new file mode 100644 index 00000000000..bc593d14981 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/server.conf.xml @@ -0,0 +1,13 @@ +<?xml version='1.0'?> +<!-- Converted from ./tests/MT_BiDir/server.conf by svcconf-convert.pl --> +<ACE_Svc_Conf> + <!-- $Id$ --> + <!-- --> +<dynamic id="SSLIOP_Factory" type="Service_Object"> + <initializer path="TAO_SSLIOP" init="_make_TAO_SSLIOP_Protocol_Factory" params="-SSLAuthenticate SERVER_AND_CLIENT -SSLPrivateKey PEM:ssl/server-key.pem -SSLCertificate PEM:ssl/server-cert.pem -SSLCAFile PEM:ssl/ca.pem"/> + </dynamic> +<dynamic id="Advanced_Resource_Factory" type="Service_Object"> + <initializer path="TAO_Strategies" init="_make_TAO_Advanced_Resource_Factory" params="-ORBProtocolFactory SSLIOP_Factory -ORBMuxedConnectionMax 1"/> + </dynamic> + <static id="Resource_Factory" params="-ORBConnectStrategy blocked"/> +</ACE_Svc_Conf> diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/server.cpp b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/server.cpp new file mode 100644 index 00000000000..043ed95d566 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/server.cpp @@ -0,0 +1,178 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "Sender_i.h" +#include "tao/BiDir_GIOP/BiDirGIOP.h" +#include "tao/AnyTypeCode/Any.h" +#include "Server_Task.h" +#include "tao/ORB_Core.h" +#include "tao/Thread_Lane_Resources.h" +#include "tao/Transport_Cache_Manager.h" +#include "ace/Manual_Event.h" + +const ACE_TCHAR *ior_output_file = 0; +static int no_iterations = 10; +static int no_clients = 2; + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:i:c:")); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'o': + ior_output_file = get_opts.optarg; + break; + case 'c': + no_clients = ACE_OS::atoi (get_opts.optarg); + break; + case 'i': + no_iterations = ACE_OS::atoi (get_opts.optarg); + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-o <iorfile>" + "-c <no_clients>" + "-i <no_iterations>" + "\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 poa_object = + orb->resolve_initial_references ("RootPOA"); + + if (CORBA::is_nil (poa_object.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to initialize the POA.\n"), + 1); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in ()); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (); + + // Policies for the childPOA to be created. + CORBA::PolicyList policies (1); + policies.length (1); + + CORBA::Any pol; + pol <<= BiDirPolicy::BOTH; + policies[0] = + orb->create_policy (BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, + pol); + + // Create POA as child of RootPOA with the above policies. This POA + // will receive request in the same connection in which it sent + // the request + PortableServer::POA_var child_poa = + root_poa->create_POA ("childPOA", + poa_manager.in (), + policies); + + // Creation of childPOA is over. Destroy the Policy objects. + for (CORBA::ULong i = 0; + i < policies.length (); + ++i) + { + policies[i]->destroy (); + } + + poa_manager->activate (); + + ACE_Manual_Event manual_event; + + Sender_i *sender = 0; + ACE_NEW_RETURN (sender, + Sender_i (no_clients, + manual_event), + -1); + + PortableServer::ServantBase_var owner_transfer (sender); + + PortableServer::ObjectId_var id = + child_poa->activate_object (sender); + + CORBA::Object_var obj = + child_poa->id_to_reference (id.in ()); + + CORBA::String_var ior = + orb->object_to_string (obj.in ()); + + ACE_DEBUG ((LM_DEBUG, "Activated as <%C>\n", ior.in ())); + + // If the ior_output_file exists, output the ior to it + if (ior_output_file != 0) + { + 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", + ior_output_file), + 1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + } + + + // Get the main thread id.. + ACE_thread_t thr_id = ACE_Thread::self (); + + Server_Task server_task (sender, + manual_event, + no_iterations, + orb.in (), + ACE_Thread_Manager::instance ()); + + + if (server_task.activate (THR_NEW_LWP | THR_JOINABLE, 4, 1) == -1) + { + ACE_ERROR ((LM_ERROR, "Error activating server task\n")); + } + + // Only the main thread gets to run the ORB + if (thr_id == ACE_Thread::self ()) + { + // run the ORB for at most 60 seconds... + ACE_Time_Value tv (60, 0); + + // Call the ORB run from the main thread + orb->run (tv); + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) event loop finished\n")); + } + + ACE_Thread_Manager::instance ()->wait (); + + root_poa->destroy (1, + 1); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Caught exception:"); + return 1; + } + + return 0; +} diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/ca.pem b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/ca.pem new file mode 100644 index 00000000000..f580b756820 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/ca.pem @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +MIICyDCCAjGgAwIBAgIJAJLBvLx9WUXKMA0GCSqGSIb3DQEBBQUAME0xCzAJBgNV +BAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQK +EwNPQ0kxDzANBgNVBAMTBnNlcnZlcjAeFw0xMTA4MjIxNTMyMjNaFw0xMjA4MjEx +NTMyMjNaME0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3Qu +IExvdWlzMQwwCgYDVQQKEwNPQ0kxDzANBgNVBAMTBnNlcnZlcjCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEAzqVyUomhG3Zjvn6up7p2QCtjVOWMzeVr1aWYu2Ce +W+ts/bwhmLVnp2qiANYQbQF47sHkxtL3KYa3aQy2JFwmJqPa4k478mg/316Fy9Yc +MxL7l9rDC3GLdSyq4M6xqtYz12RepUydFwGfphvpL7augq/iKOjYsotezpUH87Ok +vtkCAwEAAaOBrzCBrDAdBgNVHQ4EFgQUE+ZKmmcNsspWePyp/z0dRJor4IowfQYD +VR0jBHYwdIAUE+ZKmmcNsspWePyp/z0dRJor4IqhUaRPME0xCzAJBgNVBAYTAlVT +MQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQKEwNPQ0kx +DzANBgNVBAMTBnNlcnZlcoIJAJLBvLx9WUXKMAwGA1UdEwQFMAMBAf8wDQYJKoZI +hvcNAQEFBQADgYEALoJCh6ZO52X3BfO/WbuBmvLbjwoX5LQdR+P/Ckz5ZKNdVTSI +SkDDS+DUB77DMstAq65kcfq+gFwedb2k82Uk1TkenQ0BX3dBkAO2w5M2ipqHN2ez +3kQ//pzWh/+k8QNgbQSwxKA2UwkbXBhDc2KbT+klhqCGA2hl0KySImgX5Jk= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICyDCCAjGgAwIBAgIJAJfoN7qD0W7YMA0GCSqGSIb3DQEBBQUAME0xCzAJBgNV +BAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQK +EwNPQ0kxDzANBgNVBAMTBmNsaWVudDAeFw0xMTA4MjIxNTMyMjRaFw0xMjA4MjEx +NTMyMjRaME0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3Qu +IExvdWlzMQwwCgYDVQQKEwNPQ0kxDzANBgNVBAMTBmNsaWVudDCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEA2qjlVQ1oFxHyEc6FueJf1ZgpU5TFCzW47eNTDWSg +mZELK72neyZ9rtBHqUGmOYU4pNMDz9vqc3gZ29c0wesNgKRM9Xsc/9CXLZK3eSYY +qiqxjrwG/2EnAXprskgK2Mrt26HdfKUBq7wdQwmLrleNtUoeKHyQyfe+eL/BTMSP +GMMCAwEAAaOBrzCBrDAdBgNVHQ4EFgQUnO1q8yoFZPjmMm0Wu3TJT0gOFuIwfQYD +VR0jBHYwdIAUnO1q8yoFZPjmMm0Wu3TJT0gOFuKhUaRPME0xCzAJBgNVBAYTAlVT +MQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQKEwNPQ0kx +DzANBgNVBAMTBmNsaWVudIIJAJfoN7qD0W7YMAwGA1UdEwQFMAMBAf8wDQYJKoZI +hvcNAQEFBQADgYEArzMbOXyqBde8fjozyOOWEQcP+MppUbOVAXfdntbDwVYEld7S +PofHVJ9jMNFN3HR5B7/5+NcwQRX6qivudMA5CXGyBTkH8Eeuth9E76tb6QJv8nTX +bnIkk87foDoTxjHNkeBsNV89k2lMF721084yaISR4JJAJ5tRU0xXOzNkkpw= +-----END CERTIFICATE----- diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/client-cert.pem b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/client-cert.pem new file mode 100644 index 00000000000..cc35017c829 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/client-cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICyDCCAjGgAwIBAgIJAJfoN7qD0W7YMA0GCSqGSIb3DQEBBQUAME0xCzAJBgNV +BAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQK +EwNPQ0kxDzANBgNVBAMTBmNsaWVudDAeFw0xMTA4MjIxNTMyMjRaFw0xMjA4MjEx +NTMyMjRaME0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3Qu +IExvdWlzMQwwCgYDVQQKEwNPQ0kxDzANBgNVBAMTBmNsaWVudDCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEA2qjlVQ1oFxHyEc6FueJf1ZgpU5TFCzW47eNTDWSg +mZELK72neyZ9rtBHqUGmOYU4pNMDz9vqc3gZ29c0wesNgKRM9Xsc/9CXLZK3eSYY +qiqxjrwG/2EnAXprskgK2Mrt26HdfKUBq7wdQwmLrleNtUoeKHyQyfe+eL/BTMSP +GMMCAwEAAaOBrzCBrDAdBgNVHQ4EFgQUnO1q8yoFZPjmMm0Wu3TJT0gOFuIwfQYD +VR0jBHYwdIAUnO1q8yoFZPjmMm0Wu3TJT0gOFuKhUaRPME0xCzAJBgNVBAYTAlVT +MQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQKEwNPQ0kx +DzANBgNVBAMTBmNsaWVudIIJAJfoN7qD0W7YMAwGA1UdEwQFMAMBAf8wDQYJKoZI +hvcNAQEFBQADgYEArzMbOXyqBde8fjozyOOWEQcP+MppUbOVAXfdntbDwVYEld7S +PofHVJ9jMNFN3HR5B7/5+NcwQRX6qivudMA5CXGyBTkH8Eeuth9E76tb6QJv8nTX +bnIkk87foDoTxjHNkeBsNV89k2lMF721084yaISR4JJAJ5tRU0xXOzNkkpw= +-----END CERTIFICATE----- diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/client-key.pem b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/client-key.pem new file mode 100644 index 00000000000..adfbf067d3d --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/client-key.pem @@ -0,0 +1,32 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDaqOVVDWgXEfIRzoW54l/VmClTlMULNbjt41MNZKCZkQsrvad7 +Jn2u0EepQaY5hTik0wPP2+pzeBnb1zTB6w2ApEz1exz/0Jctkrd5JhiqKrGOvAb/ +YScBemuySArYyu3bod18pQGrvB1DCYuuV421Sh4ofJDJ9754v8FMxI8YwwIDAQAB +AoGBAKVNs/olpYBzX6aYk74gZkTqwKtgN8qutXyaM6pXXZZa8bACs7/FLJTg/pv1 +dn3buiPZJvOYFNlwfVQWkNrdIRmuvtPOhdacBTcZiYWQ8GesNfwlHwBXCI9vrRq2 +FJh196mHwbRx2b8IsymilQ24TMvwkvEpFqLA02d/igdUokghAkEA8zSVZ1OOE8so +aSAj45ZcdQJ8hPPDqabacjEHnLXj7rJCof2M1VQwLMj8krLxoMTA29fYzwWF5lpT +3zWbgS02kwJBAOYpvSItytP2LA5PrSC03Wa+cPJdBBQBmsRaNulcP+CZKiY2e7nh +1zXN7QOdBTXsCE/A8QXqpl+Omt3HUg1iQxECQQCcyrrDSYfgVOpxk8nvcMGcogS7 +BhiPqEVOtzNMIauX+I6itr7zzXnddZn3zaufVRls4iQhm1Lu5i8KSRo+1nJHAkBg +lfdmlmzdUhrezpTKetvGN/jR3DLP6nR2HZ2ZhDrSF7RWYNq/AIT9cTMbJxN+s1Qx +k7gRUY0L4J4gn3pRX4DhAkEA8Unw8+j8wbQ6gH9erqpRSlEtYZePh/cY10h3SBZ3 +eD6ZFqsYIHtAJMVqzSZFuWjBIk0e57RH7NRgfCFPl3VJew== +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIICyDCCAjGgAwIBAgIJAJfoN7qD0W7YMA0GCSqGSIb3DQEBBQUAME0xCzAJBgNV +BAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQK +EwNPQ0kxDzANBgNVBAMTBmNsaWVudDAeFw0xMTA4MjIxNTMyMjRaFw0xMjA4MjEx +NTMyMjRaME0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3Qu +IExvdWlzMQwwCgYDVQQKEwNPQ0kxDzANBgNVBAMTBmNsaWVudDCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEA2qjlVQ1oFxHyEc6FueJf1ZgpU5TFCzW47eNTDWSg +mZELK72neyZ9rtBHqUGmOYU4pNMDz9vqc3gZ29c0wesNgKRM9Xsc/9CXLZK3eSYY +qiqxjrwG/2EnAXprskgK2Mrt26HdfKUBq7wdQwmLrleNtUoeKHyQyfe+eL/BTMSP +GMMCAwEAAaOBrzCBrDAdBgNVHQ4EFgQUnO1q8yoFZPjmMm0Wu3TJT0gOFuIwfQYD +VR0jBHYwdIAUnO1q8yoFZPjmMm0Wu3TJT0gOFuKhUaRPME0xCzAJBgNVBAYTAlVT +MQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQKEwNPQ0kx +DzANBgNVBAMTBmNsaWVudIIJAJfoN7qD0W7YMAwGA1UdEwQFMAMBAf8wDQYJKoZI +hvcNAQEFBQADgYEArzMbOXyqBde8fjozyOOWEQcP+MppUbOVAXfdntbDwVYEld7S +PofHVJ9jMNFN3HR5B7/5+NcwQRX6qivudMA5CXGyBTkH8Eeuth9E76tb6QJv8nTX +bnIkk87foDoTxjHNkeBsNV89k2lMF721084yaISR4JJAJ5tRU0xXOzNkkpw= +-----END CERTIFICATE----- diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/make-client-keys b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/make-client-keys new file mode 100755 index 00000000000..6ba5894dde9 --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/make-client-keys @@ -0,0 +1,16 @@ +#!/bin/bash -x + +openssl req -new -x509 -days 365 -nodes -newkey rsa:1024 \ + -out server-cert.pem -keyout server-key.pem \ + -subj "/C=US/ST=MO/L=St. Louis/O=OCI/CN=server" + +cat server-cert.pem >>server-key.pem +cat server-cert.pem >ca.pem + +openssl req -new -x509 -days 365 -nodes -newkey rsa:1024 \ + -out client-cert.pem -keyout client-key.pem \ + -subj "/C=US/ST=MO/L=St. Louis/O=OCI/CN=client" + +cat client-cert.pem >>client-key.pem +cat client-cert.pem >>ca.pem + diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/server-cert.pem b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/server-cert.pem new file mode 100644 index 00000000000..5438e2a4dda --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/server-cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICyDCCAjGgAwIBAgIJAJLBvLx9WUXKMA0GCSqGSIb3DQEBBQUAME0xCzAJBgNV +BAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQK +EwNPQ0kxDzANBgNVBAMTBnNlcnZlcjAeFw0xMTA4MjIxNTMyMjNaFw0xMjA4MjEx +NTMyMjNaME0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3Qu +IExvdWlzMQwwCgYDVQQKEwNPQ0kxDzANBgNVBAMTBnNlcnZlcjCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEAzqVyUomhG3Zjvn6up7p2QCtjVOWMzeVr1aWYu2Ce +W+ts/bwhmLVnp2qiANYQbQF47sHkxtL3KYa3aQy2JFwmJqPa4k478mg/316Fy9Yc +MxL7l9rDC3GLdSyq4M6xqtYz12RepUydFwGfphvpL7augq/iKOjYsotezpUH87Ok +vtkCAwEAAaOBrzCBrDAdBgNVHQ4EFgQUE+ZKmmcNsspWePyp/z0dRJor4IowfQYD +VR0jBHYwdIAUE+ZKmmcNsspWePyp/z0dRJor4IqhUaRPME0xCzAJBgNVBAYTAlVT +MQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQKEwNPQ0kx +DzANBgNVBAMTBnNlcnZlcoIJAJLBvLx9WUXKMAwGA1UdEwQFMAMBAf8wDQYJKoZI +hvcNAQEFBQADgYEALoJCh6ZO52X3BfO/WbuBmvLbjwoX5LQdR+P/Ckz5ZKNdVTSI +SkDDS+DUB77DMstAq65kcfq+gFwedb2k82Uk1TkenQ0BX3dBkAO2w5M2ipqHN2ez +3kQ//pzWh/+k8QNgbQSwxKA2UwkbXBhDc2KbT+klhqCGA2hl0KySImgX5Jk= +-----END CERTIFICATE----- diff --git a/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/server-key.pem b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/server-key.pem new file mode 100644 index 00000000000..673dcab56db --- /dev/null +++ b/TAO/orbsvcs/tests/Security/MT_BiDir_SSL/ssl/server-key.pem @@ -0,0 +1,32 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDOpXJSiaEbdmO+fq6nunZAK2NU5YzN5WvVpZi7YJ5b62z9vCGY +tWenaqIA1hBtAXjuweTG0vcphrdpDLYkXCYmo9riTjvyaD/fXoXL1hwzEvuX2sML +cYt1LKrgzrGq1jPXZF6lTJ0XAZ+mG+kvtq6Cr+Io6Niyi17OlQfzs6S+2QIDAQAB +AoGBAM3ZOZzGxNoagRnOECW9NPaPQg/b6vtfwp+8qfxeLuHaD2Ri+ASrEGpRarfy +hcJQaStNspvso5GWRTY8F2T49nZVDa2gKstfKAVFVUXkIcDUxbBeDgE294+5bhvQ +8wzzCaHo8N//csfK40wjZkXjKu9tMN1YO0bPnUg+jAUh5kjRAkEA6e1kzuI/TXYT +FOJEYXe6iMxkd7tnFJH9C6OP+oLQ5EEU/fzs2Denr2N4qGP/6t70K2Dox9tlChEg +rtfE/974dwJBAOIlEYc5B2fSPCpqP9i/Xg2WB3gN91GpjsZUM0QGE+jrShljJOrX +QB4ZxI2QaY87Gcl42VKxm/OiISvUeL69Jy8CQFlSC+vy97jcHO0ceH++97rEUJhn +NjTkiXqoOZGt4ZVGRH221bi5h42wraGejVlhSFpH5pppa2ssnw4j1VTeDoECQEA6 +EOlbvAuzfNz7AhkX+KlZI9Pn+4bY5jDTtx+prjvnn0roipKcAZzK6rTd/+zq9x7u +UKKYyNcAA/XDyWs6o4cCQQCZpu6c99L3O7MfdSCkqaJyybHAURAxrt3r50VTGg+z +52LZUCv0UD9aeHrOEkaw8RFriuEiKGRmb8iuqqhNSJ7w +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIICyDCCAjGgAwIBAgIJAJLBvLx9WUXKMA0GCSqGSIb3DQEBBQUAME0xCzAJBgNV +BAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQK +EwNPQ0kxDzANBgNVBAMTBnNlcnZlcjAeFw0xMTA4MjIxNTMyMjNaFw0xMjA4MjEx +NTMyMjNaME0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3Qu +IExvdWlzMQwwCgYDVQQKEwNPQ0kxDzANBgNVBAMTBnNlcnZlcjCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEAzqVyUomhG3Zjvn6up7p2QCtjVOWMzeVr1aWYu2Ce +W+ts/bwhmLVnp2qiANYQbQF47sHkxtL3KYa3aQy2JFwmJqPa4k478mg/316Fy9Yc +MxL7l9rDC3GLdSyq4M6xqtYz12RepUydFwGfphvpL7augq/iKOjYsotezpUH87Ok +vtkCAwEAAaOBrzCBrDAdBgNVHQ4EFgQUE+ZKmmcNsspWePyp/z0dRJor4IowfQYD +VR0jBHYwdIAUE+ZKmmcNsspWePyp/z0dRJor4IqhUaRPME0xCzAJBgNVBAYTAlVT +MQswCQYDVQQIEwJNTzESMBAGA1UEBxMJU3QuIExvdWlzMQwwCgYDVQQKEwNPQ0kx +DzANBgNVBAMTBnNlcnZlcoIJAJLBvLx9WUXKMAwGA1UdEwQFMAMBAf8wDQYJKoZI +hvcNAQEFBQADgYEALoJCh6ZO52X3BfO/WbuBmvLbjwoX5LQdR+P/Ckz5ZKNdVTSI +SkDDS+DUB77DMstAq65kcfq+gFwedb2k82Uk1TkenQ0BX3dBkAO2w5M2ipqHN2ez +3kQ//pzWh/+k8QNgbQSwxKA2UwkbXBhDc2KbT+klhqCGA2hl0KySImgX5Jk= +-----END CERTIFICATE----- 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..37778759279 100644 --- a/TAO/tao/Abstract_Servant_Base.h +++ b/TAO/tao/Abstract_Servant_Base.h @@ -36,6 +36,7 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL class TAO_ServerRequest; class TAO_Stub; class TAO_Abstract_ServantBase; +class TAO_ServantBase; namespace CORBA { @@ -51,13 +52,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 *, + TAO_ServantBase *); typedef void (*TAO_Collocated_Skeleton)( TAO_Abstract_ServantBase *, @@ -150,12 +155,9 @@ 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; /// Get this interface's repository id (TAO specific). virtual const char *_interface_repository_id (void) const = 0; diff --git a/TAO/tao/AnyTypeCode/AnyTypeCode.mpc b/TAO/tao/AnyTypeCode/AnyTypeCode.mpc index e6167b6c359..cda80b7bfb8 100644 --- a/TAO/tao/AnyTypeCode/AnyTypeCode.mpc +++ b/TAO/tao/AnyTypeCode/AnyTypeCode.mpc @@ -130,6 +130,7 @@ project(AnyTypeCode) : taolib, tao_output, install, extra_anytypecode, taoidldef OctetSeqA.h PI_ForwardA.h ParameterModeA.h + PolicyA.h Policy_CurrentA.h Policy_ForwardA.h Policy_ManagerA.h diff --git a/TAO/tao/AnyTypeCode/PolicyA.cpp b/TAO/tao/AnyTypeCode/PolicyA.cpp deleted file mode 100644 index 0ec8e48a7b4..00000000000 --- a/TAO/tao/AnyTypeCode/PolicyA.cpp +++ /dev/null @@ -1,401 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -#include "tao/AnyTypeCode/PolicyA.h" -#include "tao/AnyTypeCode/Null_RefCount_Policy.h" -#include "tao/AnyTypeCode/TypeCode_Constants.h" -#include "tao/AnyTypeCode/Alias_TypeCode_Static.h" -#include "tao/AnyTypeCode/Objref_TypeCode_Static.h" -#include "tao/AnyTypeCode/Struct_TypeCode_Static.h" -#include "tao/AnyTypeCode/TypeCode_Struct_Field.h" -#include "tao/CDR.h" -#include "tao/AnyTypeCode/Any.h" -#include "tao/AnyTypeCode/Any_Impl_T.h" -#include "tao/AnyTypeCode/Any_Dual_Impl_T.h" - -#include "tao/AnyTypeCode/UShortSeqA.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -// TAO_IDL - Generated from -// be\be_visitor_typecode/alias_typecode.cpp:50 - -static TAO::TypeCode::Alias<char const *, - CORBA::TypeCode_ptr const *, - TAO::Null_RefCount_Policy> - _tao_tc_CORBA_PolicyErrorCode ( - CORBA::tk_alias, - "IDL:omg.org/CORBA/PolicyErrorCode:1.0", - "PolicyErrorCode", - &CORBA::_tc_short); - -namespace CORBA -{ - ::CORBA::TypeCode_ptr const _tc_PolicyErrorCode = - &_tao_tc_CORBA_PolicyErrorCode; -} - - - -// TAO_IDL - Generated from -// be\be_visitor_typecode/struct_typecode.cpp:87 - -static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const _tao_fields_CORBA_PolicyError[] = - { - { "reason", &CORBA::_tc_PolicyErrorCode } - - }; -static TAO::TypeCode::Struct<char const *, - CORBA::TypeCode_ptr const *, - TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const *, - TAO::Null_RefCount_Policy> - _tao_tc_CORBA_PolicyError ( - CORBA::tk_except, - "IDL:omg.org/CORBA/PolicyError:1.0", - "PolicyError", - _tao_fields_CORBA_PolicyError, - 1); - -namespace CORBA -{ - ::CORBA::TypeCode_ptr const _tc_PolicyError = - &_tao_tc_CORBA_PolicyError; -} - - - -// TAO_IDL - Generated from -// be\be_visitor_typecode/struct_typecode.cpp:87 - - - -// TAO_IDL - Generated from -// be\be_visitor_typecode/typecode_defn.cpp:937 - -static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const _tao_fields_CORBA_InvalidPolicies[] = - { - { "indices", &CORBA::_tc_UShortSeq } - - }; -static TAO::TypeCode::Struct<char const *, - CORBA::TypeCode_ptr const *, - TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const *, - TAO::Null_RefCount_Policy> - _tao_tc_CORBA_InvalidPolicies ( - CORBA::tk_except, - "IDL:omg.org/CORBA/InvalidPolicies:1.0", - "InvalidPolicies", - _tao_fields_CORBA_InvalidPolicies, - 1); - -namespace CORBA -{ - ::CORBA::TypeCode_ptr const _tc_InvalidPolicies = - &_tao_tc_CORBA_InvalidPolicies; -} - - - -// TAO_IDL - Generated from -// be\be_visitor_typecode/objref_typecode.cpp:76 - -static TAO::TypeCode::Objref<char const *, - TAO::Null_RefCount_Policy> - _tao_tc_CORBA_Policy ( - CORBA::tk_objref, - "IDL:omg.org/CORBA/Policy:1.0", - "Policy"); - -namespace CORBA -{ - ::CORBA::TypeCode_ptr const _tc_Policy = - &_tao_tc_CORBA_Policy; -} - - - -// TAO_IDL - Generated from -// be\be_visitor_exception/any_op_cs.cpp:50 - -namespace TAO -{ - template<> - CORBA::Boolean - Any_Dual_Impl_T<CORBA::PolicyError>::demarshal_value ( - TAO_InputCDR & cdr - ) - { - CORBA::String_var id; - - if (!(cdr >> id.out ())) - { - return false; - } - - try - { - this->value_->_tao_decode (cdr); - } - catch (const ::CORBA::Exception&) - { - return false; - } - - return true; - } -} - -#ifdef ACE_ANY_OPS_USE_NAMESPACE -namespace CORBA -{ -#endif - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const CORBA::PolicyError &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<CORBA::PolicyError>::insert_copy ( - _tao_any, - CORBA::PolicyError::_tao_any_destructor, - CORBA::_tc_PolicyError, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - CORBA::PolicyError *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<CORBA::PolicyError>::insert ( - _tao_any, - CORBA::PolicyError::_tao_any_destructor, - CORBA::_tc_PolicyError, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - CORBA::PolicyError *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const CORBA::PolicyError *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const CORBA::PolicyError *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<CORBA::PolicyError>::extract ( - _tao_any, - CORBA::PolicyError::_tao_any_destructor, - CORBA::_tc_PolicyError, - _tao_elem - ); -} - -#ifdef ACE_ANY_OPS_USE_NAMESPACE -} -#endif - -// TAO_IDL - Generated from -// be\be_visitor_exception/any_op_cs.cpp:50 - -namespace TAO -{ - template<> - CORBA::Boolean - Any_Dual_Impl_T<CORBA::InvalidPolicies>::demarshal_value ( - TAO_InputCDR & cdr - ) - { - CORBA::String_var id; - - if (!(cdr >> id.out ())) - { - return false; - } - - try - { - this->value_->_tao_decode (cdr); - } - catch (const ::CORBA::Exception&) - { - return false; - } - - return true; - } -} - -#ifdef ACE_ANY_OPS_USE_NAMESPACE -namespace CORBA -{ -#endif - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const CORBA::InvalidPolicies &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<CORBA::InvalidPolicies>::insert_copy ( - _tao_any, - CORBA::InvalidPolicies::_tao_any_destructor, - CORBA::_tc_InvalidPolicies, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - CORBA::InvalidPolicies *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<CORBA::InvalidPolicies>::insert ( - _tao_any, - CORBA::InvalidPolicies::_tao_any_destructor, - CORBA::_tc_InvalidPolicies, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - CORBA::InvalidPolicies *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const CORBA::InvalidPolicies *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const CORBA::InvalidPolicies *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<CORBA::InvalidPolicies>::extract ( - _tao_any, - CORBA::InvalidPolicies::_tao_any_destructor, - CORBA::_tc_InvalidPolicies, - _tao_elem - ); -} - -#ifdef ACE_ANY_OPS_USE_NAMESPACE -} -#endif - -// TAO_IDL - Generated from -// be\be_visitor_interface/any_op_cs.cpp:50 - -namespace TAO -{ - template<> - CORBA::Boolean - Any_Impl_T<CORBA::Policy>::to_object ( - CORBA::Object_ptr &_tao_elem - ) const - { - _tao_elem = CORBA::Object::_duplicate (this->value_); - return true; - } -} - -#ifdef ACE_ANY_OPS_USE_NAMESPACE -namespace CORBA -{ -#endif - -// Copying insertion. -void -operator<<= ( - CORBA::Any &_tao_any, - CORBA::Policy_ptr _tao_elem - ) -{ - CORBA::Policy_ptr _tao_objptr = - CORBA::Policy::_duplicate (_tao_elem); - _tao_any <<= &_tao_objptr; -} - -// Non-copying insertion. -void -operator<<= ( - CORBA::Any &_tao_any, - CORBA::Policy_ptr *_tao_elem - ) -{ - TAO::Any_Impl_T<CORBA::Policy>::insert ( - _tao_any, - CORBA::Policy::_tao_any_destructor, - CORBA::_tc_Policy, - *_tao_elem - ); -} - -CORBA::Boolean -operator>>= ( - const CORBA::Any &_tao_any, - CORBA::Policy_ptr &_tao_elem - ) -{ - return - TAO::Any_Impl_T<CORBA::Policy>::extract ( - _tao_any, - CORBA::Policy::_tao_any_destructor, - CORBA::_tc_Policy, - _tao_elem - ); -} - -#ifdef ACE_ANY_OPS_USE_NAMESPACE -} -#endif - -// TAO_IDL - Generated from -// be\be_visitor_interface/any_op_cs.cpp:50 - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/AnyTypeCode/PolicyA.h b/TAO/tao/AnyTypeCode/PolicyA.h deleted file mode 100644 index 1abfdbcdd0a..00000000000 --- a/TAO/tao/AnyTypeCode/PolicyA.h +++ /dev/null @@ -1,134 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// be\be_codegen.cpp:153 - -#ifndef _TAO_IDL_ORIG_POLICYA_H_ -#define _TAO_IDL_ORIG_POLICYA_H_ - -#include /**/ "ace/pre.h" - - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/AnyTypeCode/TAO_AnyTypeCode_Export.h" -#include "tao/AnyTypeCode/AnyTypeCode_methods.h" -#include "tao/PolicyC.h" - -#if defined (TAO_EXPORT_MACRO) -#undef TAO_EXPORT_MACRO -#endif -#define TAO_EXPORT_MACRO TAO_AnyTypeCode_Export - -#if defined(_MSC_VER) -#pragma warning(push) -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -// TAO_IDL - Generated from -// be\be_visitor_module/module_ch.cpp:48 - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace CORBA -{ - - // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - - extern TAO_AnyTypeCode_Export ::CORBA::TypeCode_ptr const _tc_PolicyErrorCode; - - // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - - extern TAO_AnyTypeCode_Export ::CORBA::TypeCode_ptr const _tc_PolicyError; - - // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - - extern TAO_AnyTypeCode_Export ::CORBA::TypeCode_ptr const _tc_InvalidPolicies; - - // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - - extern TAO_AnyTypeCode_Export ::CORBA::TypeCode_ptr const _tc_Policy; - -// TAO_IDL - Generated from -// be\be_visitor_module/module_ch.cpp:66 - -} // module CORBA - -#ifdef ACE_ANY_OPS_USE_NAMESPACE -namespace CORBA -{ -#endif -// TAO_IDL - Generated from -// be\be_visitor_exception/any_op_ch.cpp:52 - -TAO_AnyTypeCode_Export void operator<<= (CORBA::Any &, const CORBA::PolicyError &); // copying version -TAO_AnyTypeCode_Export void operator<<= (CORBA::Any &, CORBA::PolicyError*); // noncopying version -TAO_AnyTypeCode_Export CORBA::Boolean operator>>= (const CORBA::Any &, CORBA::PolicyError *&); // deprecated -TAO_AnyTypeCode_Export CORBA::Boolean operator>>= (const CORBA::Any &, const CORBA::PolicyError *&); - -// TAO_IDL - Generated from -// be\be_visitor_exception/any_op_ch.cpp:52 - -TAO_AnyTypeCode_Export void operator<<= (CORBA::Any &, const CORBA::InvalidPolicies &); // copying version -TAO_AnyTypeCode_Export void operator<<= (CORBA::Any &, CORBA::InvalidPolicies*); // noncopying version -TAO_AnyTypeCode_Export CORBA::Boolean operator>>= (const CORBA::Any &, CORBA::InvalidPolicies *&); // deprecated -TAO_AnyTypeCode_Export CORBA::Boolean operator>>= (const CORBA::Any &, const CORBA::InvalidPolicies *&); - -// TAO_IDL - Generated from -// be\be_visitor_interface/any_op_ch.cpp:52 - -TAO_AnyTypeCode_Export void operator<<= (CORBA::Any &, CORBA::Policy_ptr); // copying -TAO_AnyTypeCode_Export void operator<<= (CORBA::Any &, CORBA::Policy_ptr *); // non-copying -TAO_AnyTypeCode_Export CORBA::Boolean operator>>= (const CORBA::Any &, CORBA::Policy_ptr &); - -#ifdef ACE_ANY_OPS_USE_NAMESPACE -} -#endif - -// TAO_IDL - Generated from -// be\be_codegen.cpp:955 - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include /**/ "ace/post.h" - -#endif /* ifndef */ - - diff --git a/TAO/tao/CDR.cpp b/TAO/tao/CDR.cpp index 668d4b7b557..3b56db02be5 100644 --- a/TAO/tao/CDR.cpp +++ b/TAO/tao/CDR.cpp @@ -68,7 +68,7 @@ TAO_OutputCDR::TAO_OutputCDR (size_t size, , more_fragments_ (false) , request_id_ (0) , stub_ (0) - , message_semantics_ (TAO_TWOWAY_REQUEST) + , message_semantics_ (TAO_Message_Semantics::TAO_TWOWAY_REQUEST) , timeout_ (0) { ACE_FUNCTION_TIMEPROBE (TAO_OUTPUT_CDR_CTOR1_ENTER); @@ -104,7 +104,7 @@ TAO_OutputCDR::TAO_OutputCDR (char *data, , more_fragments_ (false) , request_id_ (0) , stub_ (0) - , message_semantics_ (TAO_TWOWAY_REQUEST) + , message_semantics_ (TAO_Message_Semantics::TAO_TWOWAY_REQUEST) , timeout_ (0) { ACE_FUNCTION_TIMEPROBE (TAO_OUTPUT_CDR_CTOR2_ENTER); @@ -133,7 +133,7 @@ TAO_OutputCDR::TAO_OutputCDR (char *data, , more_fragments_ (false) , request_id_ (0) , stub_ (0) - , message_semantics_ (TAO_TWOWAY_REQUEST) + , message_semantics_ (TAO_Message_Semantics::TAO_TWOWAY_REQUEST) , timeout_ (0) { ACE_FUNCTION_TIMEPROBE (TAO_OUTPUT_CDR_CTOR3_ENTER); @@ -153,7 +153,7 @@ TAO_OutputCDR::TAO_OutputCDR (ACE_Message_Block *data, , more_fragments_ (false) , request_id_ (0) , stub_ (0) - , message_semantics_ (TAO_TWOWAY_REQUEST) + , message_semantics_ (TAO_Message_Semantics::TAO_TWOWAY_REQUEST) , timeout_ (0) { ACE_FUNCTION_TIMEPROBE (TAO_OUTPUT_CDR_CTOR4_ENTER); @@ -176,7 +176,7 @@ TAO_OutputCDR::TAO_OutputCDR (ACE_Data_Block *data_block, , more_fragments_ (false) , request_id_ (0) , stub_ (0) - , message_semantics_ (TAO_TWOWAY_REQUEST) + , message_semantics_ (TAO_Message_Semantics::TAO_TWOWAY_REQUEST) , timeout_ (0) { ACE_FUNCTION_TIMEPROBE (TAO_OUTPUT_CDR_CTOR5_ENTER); 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/Exclusive_TMS.cpp b/TAO/tao/Exclusive_TMS.cpp index 4a95529e3d1..b2ea77be367 100644 --- a/TAO/tao/Exclusive_TMS.cpp +++ b/TAO/tao/Exclusive_TMS.cpp @@ -129,7 +129,23 @@ TAO_Exclusive_TMS::reply_timed_out (CORBA::ULong request_id) bool TAO_Exclusive_TMS::idle_after_send (void) { - return false; + // if there is no reply dispatcher (possible in case of AMI requests) + // release the transport now + if (this->rd_ != 0) + { + return false; + } + else + { + if (this->transport_ != 0) + { + // let WS know we're finished + this->transport_->wait_strategy ()->finished_request (); + + (void) this->transport_->make_idle (); + } + return true; + } } bool @@ -139,7 +155,12 @@ TAO_Exclusive_TMS::idle_after_reply (void) // return true. If *this* class is not successful in idling the // transport no one can. if (this->transport_ != 0) + { + // let WS know we're finished + this->transport_->wait_strategy ()->finished_request (); + (void) this->transport_->make_idle (); + } return true; } diff --git a/TAO/tao/GIOP_Message_Base.cpp b/TAO/tao/GIOP_Message_Base.cpp index bae56ecbf68..35b83c76230 100644 --- a/TAO/tao/GIOP_Message_Base.cpp +++ b/TAO/tao/GIOP_Message_Base.cpp @@ -1012,7 +1012,7 @@ TAO_GIOP_Message_Base::process_request ( output.message_attributes (request_id, 0, - TAO_REPLY, + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY), 0); // Make the GIOP header and Reply header @@ -1032,7 +1032,7 @@ TAO_GIOP_Message_Base::process_request ( int const result = transport->send_message (output, 0, - TAO_REPLY); + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)); if (result == -1) { if (TAO_debug_level > 0) @@ -1285,7 +1285,7 @@ TAO_GIOP_Message_Base::make_send_locate_reply (TAO_Transport *transport, // Send the message int const result = transport->send_message (output, 0, - TAO_REPLY); + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)); // Print out message if there is an error if (result == -1) @@ -1502,7 +1502,7 @@ TAO_GIOP_Message_Base::send_reply_exception ( output.more_fragments (false); - return transport->send_message (output, 0, TAO_REPLY); + return transport->send_message (output, 0, TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)); } void diff --git a/TAO/tao/IFR_Client/IFR_Client.mpc b/TAO/tao/IFR_Client/IFR_Client.mpc index 1d50a825948..84c7d98cf6e 100644 --- a/TAO/tao/IFR_Client/IFR_Client.mpc +++ b/TAO/tao/IFR_Client/IFR_Client.mpc @@ -83,10 +83,6 @@ project(IFR_Client_skel) : ifr_client, taolib, tao_output, install, anytypecode, } Inline_Files { - IFR_BaseS.inl - IFR_BasicS.inl - IFR_ComponentsS.inl - IFR_ExtendedS.inl } specific { diff --git a/TAO/tao/IIOP_Transport.h b/TAO/tao/IIOP_Transport.h index a908ed36d87..b61559b0399 100644 --- a/TAO/tao/IIOP_Transport.h +++ b/TAO/tao/IIOP_Transport.h @@ -109,7 +109,7 @@ public: virtual int send_message (TAO_OutputCDR &stream, TAO_Stub *stub = 0, - TAO_Message_Semantics message_semantics = TAO_TWOWAY_REQUEST, + TAO_Message_Semantics message_semantics = TAO_Message_Semantics (), ACE_Time_Value *max_time_wait = 0); virtual int tear_listen_point_list (TAO_InputCDR &cdr); diff --git a/TAO/tao/ImR_Client/ImR_Client.cpp b/TAO/tao/ImR_Client/ImR_Client.cpp index f0cd9e424de..010b938b876 100644 --- a/TAO/tao/ImR_Client/ImR_Client.cpp +++ b/TAO/tao/ImR_Client/ImR_Client.cpp @@ -121,13 +121,13 @@ namespace TAO ACE_CString serverId = poa->orb_core ().server_id (); ACE_CString name; if (serverId.empty ()) - { - name = poa->name(); - } + { + name = poa->name(); + } else - { - name = serverId + ":" + poa->name(); - } + { + name = serverId + ":" + poa->name(); + } imr_locator->server_is_running (name.c_str (), partial_ior.c_str(), @@ -216,7 +216,7 @@ namespace TAO root_poa->deactivate_object_i (id.in()); - server_object_ = 0; + this->server_object_ = 0; } } diff --git a/TAO/tao/ImR_Client/ImR_Client.mpc b/TAO/tao/ImR_Client/ImR_Client.mpc index 6412aa51688..26d5027ea46 100644 --- a/TAO/tao/ImR_Client/ImR_Client.mpc +++ b/TAO/tao/ImR_Client/ImR_Client.mpc @@ -2,7 +2,7 @@ project(*idl) : tao_versioning_idl_defaults, install { custom_only = 1 IDL_Files { - idlflags += -Gp -Ssi -Gd -Sorb -GA \ + idlflags += -Gp -Gd -Sorb -GA \ -Wb,export_macro=TAO_IMR_Client_Export \ -Wb,export_include=tao/ImR_Client/imr_client_export.h \ -iC tao/ImR_Client @@ -11,7 +11,7 @@ project(*idl) : tao_versioning_idl_defaults, install { } IDL_Files { - idlflags += -Gp -Ssi -Gd -Sorb -GX \ + idlflags += -Gp -Gd -Sorb -GX \ -Wb,export_macro=TAO_IMR_Client_Export \ -Wb,export_include=tao/ImR_Client/imr_client_export.h \ -iC tao/ImR_Client diff --git a/TAO/tao/ImR_Client/ImplRepo.pidl b/TAO/tao/ImR_Client/ImplRepo.pidl index 383d7dcef23..d713d44bbca 100644 --- a/TAO/tao/ImR_Client/ImplRepo.pidl +++ b/TAO/tao/ImR_Client/ImplRepo.pidl @@ -103,7 +103,7 @@ module ImplementationRepository */ interface Administration { - /// Activate server that is named <server>. + /// Activate server that is named @a server. /// /// The <NotFound> exception is raised when <server> is not found /// in the Implementation Repository. The <CannotActivate> exception @@ -112,37 +112,37 @@ module ImplementationRepository void activate_server (in string server) raises (NotFound, CannotActivate); - /// Add/Update the the <server> + /// Add/Update the the @a server. /// The <NotFound> exception is raised when the activator specified /// in the options is not registered. void add_or_update_server (in string server, in StartupOptions options) raises(NotFound); - /// Remove <server> from the Implementation Repository. + /// Remove @a server from the Implementation Repository. /// - /// The <NotFound> exception is raised when <server> is not found + /// The <NotFound> exception is raised when @a server is not found /// in the Implementation Repository. void remove_server (in string server) raises (NotFound); /// Tries to shutdown the server, first gracefully, then ungracefully. /// - /// The <NotFound> exception is raised when <server> is not found + /// The <NotFound> exception is raised when @a server is not found /// in the Implementation Repository. void shutdown_server (in string server) raises (NotFound); - /// Used to notify the Implementation Repository that <server> is alive - /// and well at <partial_ior>. + /// Used to notify the Implementation Repository that @a server is alive + /// and well at @a partial_ior. /// - /// The <NotFound> exception is raised when <server> is not found + /// The <NotFound> exception is raised when @a server is not found /// in the Implementation Repository. void server_is_running (in string server, in string partial_ior, in ServerObject server_object) raises (NotFound); - /// Used to tell the Implementation Repository that <server> is shutting + /// Used to tell the Implementation Repository that @a server is shutting /// down. /// /// The <NotFound> exception is raised when <server> is not found @@ -151,14 +151,14 @@ module ImplementationRepository void server_is_shutting_down (in string server) raises (NotFound); - /// Returns the startup information for a given <server>. + /// Returns the startup information for a given @a server. void find (in string server, out ServerInformation info); - /// Returns at most <how_many> servers in <server_list>. If there + /// Returns at most @a how_many servers in @a server_list. If there /// are additional servers, they can be received through the - /// <server_iterator>. If there are no more servers, then - /// <server_iterator> is null. - /// If how_many == 0, then returns all servers. + /// @a server_iterator. If there are no more servers, then + /// @a server_iterator is null. + /// If @a how_many == 0, then returns all servers. void list (in unsigned long how_many, out ServerInformationList server_list, out ServerInformationIterator server_iterator); diff --git a/TAO/tao/LocateRequest_Invocation.cpp b/TAO/tao/LocateRequest_Invocation.cpp index b5e08d87471..db8f26c7910 100644 --- a/TAO/tao/LocateRequest_Invocation.cpp +++ b/TAO/tao/LocateRequest_Invocation.cpp @@ -117,7 +117,7 @@ namespace TAO countdown.update (); - s = this->send_message (cdr, TAO_TWOWAY_REQUEST, max_wait_time); + s = this->send_message (cdr, TAO_Message_Semantics (), max_wait_time); } if (s != TAO_INVOKE_SUCCESS) diff --git a/TAO/tao/Message_Semantics.h b/TAO/tao/Message_Semantics.h index 1a838a2966c..59abacfd2d1 100644 --- a/TAO/tao/Message_Semantics.h +++ b/TAO/tao/Message_Semantics.h @@ -23,11 +23,33 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL -enum TAO_Message_Semantics +struct TAO_Message_Semantics { - TAO_ONEWAY_REQUEST = 0, - TAO_TWOWAY_REQUEST = 1, - TAO_REPLY + enum Type + { + TAO_ONEWAY_REQUEST = 0, + TAO_TWOWAY_REQUEST = 1, + TAO_REPLY + }; + + enum Mode + { + TAO_SYNCH_MODE, + TAO_ASYNCH_CALLBACK, + TAO_ASYNCH_POLL + }; + + TAO_Message_Semantics () + : type_ (TAO_TWOWAY_REQUEST), mode_ (TAO_SYNCH_MODE) {} + TAO_Message_Semantics (Type type) + : type_ (type), mode_ (TAO_SYNCH_MODE) {} + TAO_Message_Semantics (Type type, Mode mode) + : type_ (type), mode_ (mode) {} + TAO_Message_Semantics (const TAO_Message_Semantics& ms) + : type_ (ms.type_), mode_ (ms.mode_) {} + + Type type_; + Mode mode_; }; TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/Messaging/AMH_Response_Handler.cpp b/TAO/tao/Messaging/AMH_Response_Handler.cpp index 65e1103bcde..76d617628e5 100644 --- a/TAO/tao/Messaging/AMH_Response_Handler.cpp +++ b/TAO/tao/Messaging/AMH_Response_Handler.cpp @@ -147,7 +147,7 @@ TAO_AMH_Response_Handler::_tao_rh_send_reply (void) // Send the message. int result = this->transport_->send_message (this->_tao_out, 0, - TAO_REPLY); + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)); if (result == -1) { @@ -212,7 +212,7 @@ TAO_AMH_Response_Handler::_tao_rh_send_exception (const CORBA::Exception &ex) // Send the Exception if (this->transport_->send_message (this->_tao_out, 0, - TAO_REPLY) == -1) + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)) == -1) { if (TAO_debug_level > 0) ACE_ERROR ((LM_ERROR, @@ -278,7 +278,7 @@ TAO_AMH_Response_Handler::_tao_rh_send_location_forward (CORBA::Object_ptr fwd, // Send the Exception if (this->transport_->send_message (this->_tao_out, 0, - TAO_REPLY) == -1) + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)) == -1) { if (TAO_debug_level > 0) ACE_ERROR ((LM_ERROR, diff --git a/TAO/tao/Messaging/AMH_Response_Handler.h b/TAO/tao/Messaging/AMH_Response_Handler.h index 416ab8f0962..df4fd4b836c 100644 --- a/TAO/tao/Messaging/AMH_Response_Handler.h +++ b/TAO/tao/Messaging/AMH_Response_Handler.h @@ -57,7 +57,7 @@ typedef ACE_Allocator TAO_AMH_BUFFER_ALLOCATOR; * * One RH is created for every client request and the RH can be used * only once i.e., the asynchronous method can be called only once. - * This class also encapsulates various initialisation and + * This class also encapsulates various initialization and * response-sending functionality that is common to all RHs (generated * by the IDL compiler). Thus the IDL-compiler has to generate less * code which in turn reduces the overall code size for an diff --git a/TAO/tao/Messaging/AMH_Skeletons.cpp b/TAO/tao/Messaging/AMH_Skeletons.cpp new file mode 100644 index 00000000000..3afeb52af8a --- /dev/null +++ b/TAO/tao/Messaging/AMH_Skeletons.cpp @@ -0,0 +1,269 @@ +// -*- 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), + TAO_ServantBase *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; + + _is_a_amh_Upcall_Command command ( + servant, + 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), + TAO_ServantBase *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; + + _non_existent_amh_Upcall_Command command ( + servant, + 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 */, + TAO_ServantBase *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); + } + + ::CORBA::InterfaceDef_ptr _tao_retval = servant->_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), + TAO_ServantBase *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; + + _get_component_amh_Upcall_Command command ( + servant, + 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), + TAO_ServantBase *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; + + _repository_id_amh_Upcall_Command command ( + servant, + 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..05bdba0fc7f --- /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" + +#include "tao/PortableServer/Upcall_Command.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/Messaging/messaging_export.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, + TAO_ServantBase *servant); + +#if (TAO_HAS_MINIMUM_CORBA == 0) + static void _non_existent_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *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, + TAO_ServantBase *servant); + + static void _component_amh_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *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, + TAO_ServantBase *servant); +#endif /* TAO_HAS_MINIMUM_CORBA */ +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* AMH_SKELETONS_H */ diff --git a/TAO/tao/Messaging/Asynch_Invocation.cpp b/TAO/tao/Messaging/Asynch_Invocation.cpp index 642d4a4f10c..db7a892ab72 100644 --- a/TAO/tao/Messaging/Asynch_Invocation.cpp +++ b/TAO/tao/Messaging/Asynch_Invocation.cpp @@ -72,7 +72,8 @@ namespace TAO // call. cdr.message_attributes (this->details_.request_id (), this->resolver_.stub (), - TAO_ONEWAY_REQUEST, + TAO_Message_Semantics (TAO_Message_Semantics::TAO_ONEWAY_REQUEST, + TAO_Message_Semantics::TAO_ASYNCH_CALLBACK), max_wait_time); this->write_header (cdr); @@ -107,7 +108,8 @@ namespace TAO // paraphernalia within the ORB to fire, like buffering if // send blocks etc. s = this->send_message (cdr, - TAO_ONEWAY_REQUEST, + TAO_Message_Semantics (TAO_Message_Semantics::TAO_ONEWAY_REQUEST, + TAO_Message_Semantics::TAO_ASYNCH_CALLBACK), max_wait_time); ace_mon.release(); @@ -138,10 +140,12 @@ namespace TAO if (s != TAO_INVOKE_SUCCESS) return s; - // NOTE: Not sure how things are handles with exclusive muxed - // strategy. - if (transport->idle_after_send ()) - (void) this->resolver_.transport_released (); + // transport strategy takes care of idling transport or not + transport->idle_after_send (); + // release transport from resolver in any case since we don't + // want the resolver to make the transport idle if the strategy + // told it not to + this->resolver_.transport_released (); #if TAO_HAS_INTERCEPTORS == 1 } diff --git a/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp b/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp index 90a1c4223a7..1f1c099cb99 100644 --- a/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp +++ b/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp @@ -6,6 +6,7 @@ #include "tao/debug.h" #include "tao/ORB_Core.h" #include "tao/Transport.h" +#include "tao/Transport_Mux_Strategy.h" TAO_BEGIN_VERSIONED_NAMESPACE_DECL @@ -42,6 +43,13 @@ TAO_Asynch_Reply_Dispatcher::dispatch_reply (TAO_Pluggable_Reply_Params ¶ms) // AMI Timeout Handling End } + // With Asynch requests the invocation handler can't call idle_after_reply () + // since it does not handle the reply. + // So we have to do that here in case f.i. the Exclusive TMS left the transport + // busy after the send + if (this->transport_ != 0) + this->transport_->tms ()->idle_after_reply (); + if (!params.input_cdr_) return -1; @@ -67,7 +75,7 @@ TAO_Asynch_Reply_Dispatcher::dispatch_reply (TAO_Pluggable_Reply_Params ¶ms) } // See whether we need to delete the data block by checking the - // flags. We cannot be happy that we initally allocated the + // flags. We cannot be happy that we initially allocated the // datablocks of the stack. If this method is called twice, as is in // some cases where the same invocation object is used to make two // invocations like forwarding, the release becomes essential. @@ -203,6 +211,13 @@ TAO_Asynch_Reply_Dispatcher::reply_timed_out (void) this->timeout_handler_ = 0; } + // With Asynch requests the invocation handler can't call idle_after_reply () + // since it does not handle the reply. + // So we have to do that here in case f.i. the Exclusive TMS left the transport + // busy after the send + if (this->transport_ != 0) + this->transport_->tms ()->idle_after_reply (); + // This is okay here... Everything relies on our refcount being // held by the timeout handler, whose refcount in turn is held // by the reactor. diff --git a/TAO/tao/Messaging/Messaging.mpc b/TAO/tao/Messaging/Messaging.mpc index 557d5dc7327..06d2cc6ddc2 100644 --- a/TAO/tao/Messaging/Messaging.mpc +++ b/TAO/tao/Messaging/Messaging.mpc @@ -51,7 +51,7 @@ project(*idl) : tao_versioning_idl_defaults, install { } IDL_Files { - idlflags += -Ssi -GA -Gp -Gd -Sorb -Sal \ + idlflags += -GA -Gp -Gd -Sorb -Sal \ -Wb,export_macro=TAO_Messaging_Export \ -Wb,export_include=tao/Messaging/messaging_export.h \ -Wb,include_guard=TAO_MESSAGING_SAFE_INCLUDE \ diff --git a/TAO/tao/Monitor/Monitor.mpc b/TAO/tao/Monitor/Monitor.mpc index c4e7f7c083d..7b8f3cb270d 100644 --- a/TAO/tao/Monitor/Monitor.mpc +++ b/TAO/tao/Monitor/Monitor.mpc @@ -12,7 +12,7 @@ project (*idl): tao_versioning_idl_defaults, install { IDL_Files { idlflags += -Wb,include_guard=TAO_MONITOR_SAFE_INCLUDE \ - -Wb,safe_include=tao/Monitor/Monitor.h -Ssi + -Wb,safe_include=tao/Monitor/Monitor.h Monitor.pidl } 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/PolicyC.cpp b/TAO/tao/PolicyC.cpp deleted file mode 100644 index 58b400fc979..00000000000 --- a/TAO/tao/PolicyC.cpp +++ /dev/null @@ -1,683 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// be\be_codegen.cpp:291 - - -#include "tao/PolicyC.h" -#include "tao/CDR.h" -#include "tao/SystemException.h" -#include "tao/Invocation_Adapter.h" -#include "tao/Object_T.h" -#include "tao/Basic_Arguments.h" -#include "ace/OS_NS_string.h" -#include "tao/AnyTypeCode_Adapter.h" -#include "ace/Dynamic_Service.h" - -#if !defined (__ACE_INLINE__) -#include "tao/PolicyC.inl" -#endif /* !defined INLINE */ - -// TAO_IDL - Generated from -// be\be_visitor_arg_traits.cpp:70 - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -// TAO specific stuff. -namespace CORBA -{ - class Policy; - typedef Policy *Policy_ptr; - typedef TAO_Objref_Var_T<Policy> Policy_var; - typedef TAO_Objref_Out_T<Policy> Policy_out; -} - -namespace TAO -{ - -#if TAO_HAS_INTERCEPTORS == 1 - -#endif /* TAO_HAS_INTERCEPTORS */ - -} - -// TAO_IDL - Generated from -// be\be_visitor_exception/exception_cs.cpp:63 - -CORBA::PolicyError::PolicyError (void) - : CORBA::UserException ( - "IDL:omg.org/CORBA/PolicyError:1.0", - "PolicyError" - ) -{ -} - -CORBA::PolicyError::~PolicyError (void) -{ -} - -CORBA::PolicyError::PolicyError (const ::CORBA::PolicyError &_tao_excp) - : CORBA::UserException ( - _tao_excp._rep_id (), - _tao_excp._name () - ) -{ - this->reason = _tao_excp.reason; -} - -CORBA::PolicyError& -CORBA::PolicyError::operator= (const ::CORBA::PolicyError &_tao_excp) -{ - this->::CORBA::UserException::operator= (_tao_excp); - this->reason = _tao_excp.reason; - return *this; -} - -void CORBA::PolicyError::_tao_any_destructor (void *_tao_void_pointer) -{ - PolicyError *_tao_tmp_pointer = - static_cast<PolicyError *> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -CORBA::PolicyError * -CORBA::PolicyError::_downcast (CORBA::Exception *_tao_excp) -{ - return dynamic_cast<PolicyError *> (_tao_excp); -} - -const CORBA::PolicyError * -CORBA::PolicyError::_downcast (CORBA::Exception const *_tao_excp) -{ - return dynamic_cast<const PolicyError *> (_tao_excp); -} - -CORBA::Exception *CORBA::PolicyError::_alloc (void) -{ - CORBA::Exception *retval = 0; - ACE_NEW_RETURN (retval, ::CORBA::PolicyError, 0); - return retval; -} - -CORBA::Exception * -CORBA::PolicyError::_tao_duplicate (void) const -{ - CORBA::Exception *result = 0; - ACE_NEW_RETURN ( - result, - ::CORBA::PolicyError (*this), - 0 - ); - return result; -} - -void CORBA::PolicyError::_raise (void) const -{ - throw *this; -} - -void CORBA::PolicyError::_tao_encode ( - TAO_OutputCDR &cdr - - ) const -{ - if (cdr << *this) - { - return; - } - - throw ::CORBA::MARSHAL (); -} - -void CORBA::PolicyError::_tao_decode ( - TAO_InputCDR &cdr - - ) -{ - if (cdr >> *this) - { - return; - } - - throw ::CORBA::MARSHAL (); -} - - - -// TAO_IDL - Generated from -// be\be_visitor_exception/exception_ctor.cpp:66 - -CORBA::PolicyError::PolicyError ( - CORBA::PolicyErrorCode _tao_reason - ) - : CORBA::UserException ( - "IDL:omg.org/CORBA/PolicyError:1.0", - "PolicyError" - ) -{ - this->reason = _tao_reason; -} - -// TAO extension - the virtual _type method. -CORBA::TypeCode_ptr CORBA::PolicyError::_tao_type (void) const -{ - TAO_AnyTypeCode_Adapter *adapter = - ACE_Dynamic_Service<TAO_AnyTypeCode_Adapter>::instance ( - "AnyTypeCode_Adapter" - ); - if (adapter != 0) - return adapter->_tao_type_PolicyError (); - else - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("(%P|%t) %p\n"), - ACE_TEXT ("Unable to find the ") - ACE_TEXT ("AnyTypeCode Adapter instance"))); - return 0; - } -} - -// TAO_IDL - Generated from -// be\be_visitor_exception/exception_cs.cpp:63 - -CORBA::InvalidPolicies::InvalidPolicies (void) - : CORBA::UserException ( - "IDL:omg.org/CORBA/InvalidPolicies:1.0", - "InvalidPolicies" - ) -{ -} - -CORBA::InvalidPolicies::~InvalidPolicies (void) -{ -} - -CORBA::InvalidPolicies::InvalidPolicies (const ::CORBA::InvalidPolicies &_tao_excp) - : CORBA::UserException ( - _tao_excp._rep_id (), - _tao_excp._name () - ) -{ - this->indices = _tao_excp.indices; -} - -CORBA::InvalidPolicies& -CORBA::InvalidPolicies::operator= (const ::CORBA::InvalidPolicies &_tao_excp) -{ - this->::CORBA::UserException::operator= (_tao_excp); - this->indices = _tao_excp.indices; - return *this; -} - -void CORBA::InvalidPolicies::_tao_any_destructor (void *_tao_void_pointer) -{ - InvalidPolicies *_tao_tmp_pointer = - static_cast<InvalidPolicies *> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -CORBA::InvalidPolicies * -CORBA::InvalidPolicies::_downcast (CORBA::Exception *_tao_excp) -{ - return dynamic_cast<InvalidPolicies *> (_tao_excp); -} - -const CORBA::InvalidPolicies * -CORBA::InvalidPolicies::_downcast (CORBA::Exception const *_tao_excp) -{ - return dynamic_cast<const InvalidPolicies *> (_tao_excp); -} - -CORBA::Exception *CORBA::InvalidPolicies::_alloc (void) -{ - CORBA::Exception *retval = 0; - ACE_NEW_RETURN (retval, ::CORBA::InvalidPolicies, 0); - return retval; -} - -CORBA::Exception * -CORBA::InvalidPolicies::_tao_duplicate (void) const -{ - CORBA::Exception *result = 0; - ACE_NEW_RETURN ( - result, - ::CORBA::InvalidPolicies (*this), - 0 - ); - return result; -} - -void CORBA::InvalidPolicies::_raise (void) const -{ - throw *this; -} - -void CORBA::InvalidPolicies::_tao_encode (TAO_OutputCDR &cdr) const -{ - if (cdr << *this) - { - return; - } - - throw ::CORBA::MARSHAL (); -} - -void CORBA::InvalidPolicies::_tao_decode (TAO_InputCDR &cdr) -{ - if (cdr >> *this) - { - return; - } - - throw ::CORBA::MARSHAL (); -} - - - -// TAO_IDL - Generated from -// be\be_visitor_exception/exception_ctor.cpp:66 - -CORBA::InvalidPolicies::InvalidPolicies ( - const CORBA::UShortSeq & _tao_indices - ) - : CORBA::UserException ( - "IDL:omg.org/CORBA/InvalidPolicies:1.0", - "InvalidPolicies" - ) -{ - this->indices = _tao_indices; -} - -// TAO extension - the virtual _type method. -CORBA::TypeCode_ptr CORBA::InvalidPolicies::_tao_type (void) const -{ - TAO_AnyTypeCode_Adapter *adapter = - ACE_Dynamic_Service<TAO_AnyTypeCode_Adapter>::instance ( - "AnyTypeCode_Adapter" - ); - if (adapter != 0) - return adapter->_tao_type_InvalidPolicies (); - else - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("(%P|%t) %p\n"), - ACE_TEXT ("Unable to find the ") - ACE_TEXT ("AnyTypeCode Adapter instance"))); - return 0; - } -} - -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_cs.cpp:60 - -// Traits specializations for CORBA::Policy. - -CORBA::Policy_ptr -TAO::Objref_Traits<CORBA::Policy>::duplicate ( - CORBA::Policy_ptr p - ) -{ - return CORBA::Policy::_duplicate (p); -} - -void -TAO::Objref_Traits<CORBA::Policy>::release ( - CORBA::Policy_ptr p - ) -{ - ::CORBA::release (p); -} - -CORBA::Policy_ptr -TAO::Objref_Traits<CORBA::Policy>::nil (void) -{ - return CORBA::Policy::_nil (); -} - -CORBA::Boolean -TAO::Objref_Traits<CORBA::Policy>::marshal ( - const CORBA::Policy_ptr p, - TAO_OutputCDR & cdr - ) -{ - return CORBA::Object::marshal (p, cdr); -} - -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 - -CORBA::PolicyType CORBA::Policy::policy_type ( - - ) -{ - if (!this->is_evaluated ()) - { - ::CORBA::Object::tao_object_initialize (this); - } - - TAO::Arg_Traits< ::CORBA::PolicyType>::ret_val _tao_retval; - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 1, - "_get_policy_type", - 16, - TAO::TAO_CO_NONE | TAO::TAO_CO_DIRECT_STRATEGY | TAO::TAO_CO_THRU_POA_STRATEGY - ); - - _tao_call.invoke (0, 0); - - return _tao_retval.retn (); -} - -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 - -::CORBA::Policy_ptr CORBA::Policy::copy ( - - ) -{ - if (!this->is_evaluated ()) - { - ::CORBA::Object::tao_object_initialize (this); - } - - TAO::Arg_Traits< ::CORBA::Policy>::ret_val _tao_retval; - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 1, - "copy", - 4, - TAO::TAO_CO_NONE | TAO::TAO_CO_DIRECT_STRATEGY | TAO::TAO_CO_THRU_POA_STRATEGY - ); - - _tao_call.invoke (0, 0); - - return _tao_retval.retn (); -} - -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 - -void CORBA::Policy::destroy ( - - ) -{ - if (!this->is_evaluated ()) - { - ::CORBA::Object::tao_object_initialize (this); - } - - TAO::Arg_Traits< void>::ret_val _tao_retval; - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 1, - "destroy", - 7, - TAO::TAO_CO_NONE | TAO::TAO_CO_DIRECT_STRATEGY | TAO::TAO_CO_THRU_POA_STRATEGY - ); - - _tao_call.invoke (0, 0); -} - -CORBA::Policy::Policy (void) -{ -} - -CORBA::Policy::~Policy (void) -{} - -void -CORBA::Policy::_tao_any_destructor (void *_tao_void_pointer) -{ - Policy *_tao_tmp_pointer = - static_cast<Policy *> (_tao_void_pointer); - ::CORBA::release (_tao_tmp_pointer); -} - -CORBA::Policy_ptr -CORBA::Policy::_narrow (CORBA::Object_ptr _tao_objref) -{ - return - TAO::Narrow_Utils<Policy>::narrow ( - _tao_objref, - "IDL:omg.org/CORBA/Policy:1.0"); -} - -CORBA::Policy_ptr -CORBA::Policy::_unchecked_narrow (CORBA::Object_ptr _tao_objref) -{ - return - TAO::Narrow_Utils<Policy>::unchecked_narrow (_tao_objref); -} - -CORBA::Policy_ptr -CORBA::Policy::_duplicate (Policy_ptr obj) -{ - if (! ::CORBA::is_nil (obj)) - { - obj->_add_ref (); - } - - return obj; -} - -void -CORBA::Policy::_tao_release (Policy_ptr obj) -{ - ::CORBA::release (obj); -} - -CORBA::Boolean -CORBA::Policy::_is_a ( - const char *value - - ) -{ - if ( - !ACE_OS::strcmp ( - value, - "IDL:omg.org/CORBA/Policy:1.0" - ) || - !ACE_OS::strcmp ( - value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return true; // success using local knowledge - } - else - { - return this->::CORBA::Object::_is_a ( - value - - ); - } -} - -const char* CORBA::Policy::_interface_repository_id (void) const -{ - return "IDL:omg.org/CORBA/Policy:1.0"; -} - -CORBA::Boolean -CORBA::Policy::marshal (TAO_OutputCDR &cdr) -{ - return (cdr << this); -} - -// TAO_IDL - Generated from -// be\be_visitor_exception/cdr_op_cs.cpp:60 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const CORBA::PolicyError &_tao_aggregate - ) -{ - // First marshal the repository ID. - if (strm << _tao_aggregate._rep_id ()) - { - // Now marshal the members (if any). - return ( - (strm << _tao_aggregate.reason) - ); - } - else - { - return false; - } -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - CORBA::PolicyError &_tao_aggregate - ) -{ - // Demarshal the members. - return ( - (strm >> _tao_aggregate.reason) - ); -} - -// TAO_IDL - Generated from -// be\be_visitor_exception/cdr_op_cs.cpp:60 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const CORBA::InvalidPolicies &_tao_aggregate - ) -{ - // First marshal the repository ID. - if (strm << _tao_aggregate._rep_id ()) - { - // Now marshal the members (if any). - return ( - (strm << _tao_aggregate.indices) - ); - } - else - { - return false; - } -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - CORBA::InvalidPolicies &_tao_aggregate - ) -{ - // Demarshal the members. - return ( - (strm >> _tao_aggregate.indices) - ); -} - -// Hand crafted. -// -// **************************************************************** -CORBA::Boolean -CORBA::Policy::_tao_encode (TAO_OutputCDR &) -{ - return false; -} - -CORBA::Boolean -CORBA::Policy::_tao_decode (TAO_InputCDR &) -{ - return false; -} - -TAO_Cached_Policy_Type -CORBA::Policy::_tao_cached_type (void) const -{ - return TAO_CACHED_POLICY_UNCACHED; -} - -TAO_Policy_Scope -CORBA::Policy::_tao_scope (void) const -{ - return TAO_POLICY_DEFAULT_SCOPE; -} -// **************************************************************** - -// TAO_IDL - Generated from -// be\be_visitor_interface/cdr_op_cs.cpp:63 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const CORBA::Policy_ptr _tao_objref - ) -{ - CORBA::Object_ptr _tao_corba_obj = _tao_objref; - return (strm << _tao_corba_obj); -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - CORBA::Policy_ptr &_tao_objref - ) -{ - CORBA::Object_var obj; - - if (!(strm >> obj.inout ())) - { - return false; - } - - typedef ::CORBA::Policy RHS_SCOPED_NAME; - - // Narrow to the right type. - _tao_objref = - TAO::Narrow_Utils<RHS_SCOPED_NAME>::unchecked_narrow ( - obj.in ()); - - return 1; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/PolicyC.h b/TAO/tao/PolicyC.h deleted file mode 100644 index c37bfeb1cfd..00000000000 --- a/TAO/tao/PolicyC.h +++ /dev/null @@ -1,414 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// be\be_codegen.cpp:153 - -#ifndef _TAO_IDL_ORIG_POLICYC_H_ -#define _TAO_IDL_ORIG_POLICYC_H_ - -#include /**/ "ace/pre.h" - - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include /**/ "tao/TAO_Export.h" -#include "tao/ORB.h" -#include "tao/Environment.h" -#include "tao/Object.h" -#include "tao/Objref_VarOut_T.h" - -#include "tao/UShortSeqC.h" -#include "tao/CurrentC.h" -#include "tao/Policy_ForwardC.h" - -#if defined (TAO_EXPORT_MACRO) -#undef TAO_EXPORT_MACRO -#endif -#define TAO_EXPORT_MACRO TAO_Export - -#if defined(_MSC_VER) -#pragma warning(push) -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -// TAO_IDL - Generated from -// be\be_visitor_root/root_ch.cpp:62 - -namespace TAO -{ - template<typename T> class Narrow_Utils; -} - -// TAO_IDL - Generated from -// be\be_visitor_module/module_ch.cpp:48 - -namespace CORBA -{ - - // TAO_IDL - Generated from - // be\be_visitor_typedef/typedef_ch.cpp:379 - - typedef CORBA::Short PolicyErrorCode; - typedef CORBA::Short_out PolicyErrorCode_out; - - // TAO_IDL - Generated from - // be\be_visitor_constant/constant_ch.cpp:52 - - const CORBA::PolicyErrorCode BAD_POLICY = 0; - - // TAO_IDL - Generated from - // be\be_visitor_constant/constant_ch.cpp:52 - - const CORBA::PolicyErrorCode UNSUPPORTED_POLICY = 1; - - // TAO_IDL - Generated from - // be\be_visitor_constant/constant_ch.cpp:52 - - const CORBA::PolicyErrorCode BAD_POLICY_TYPE = 2; - - // TAO_IDL - Generated from - // be\be_visitor_constant/constant_ch.cpp:52 - - const CORBA::PolicyErrorCode BAD_POLICY_VALUE = 3; - - // TAO_IDL - Generated from - // be\be_visitor_constant/constant_ch.cpp:52 - - const CORBA::PolicyErrorCode UNSUPPORTED_POLICY_VALUE = 4; - - // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ch.cpp:53 - -#if !defined (_CORBA_POLICYERROR_CH_) -#define _CORBA_POLICYERROR_CH_ - - class TAO_Export PolicyError : public CORBA::UserException - { - public: - - CORBA::PolicyErrorCode reason; - PolicyError (void); - PolicyError (const PolicyError &); - ~PolicyError (void); - - PolicyError &operator= (const PolicyError &); - - static void _tao_any_destructor (void *); - - static PolicyError *_downcast (CORBA::Exception *); - static const PolicyError *_downcast (CORBA::Exception const *); - - static CORBA::Exception *_alloc (void); - - virtual CORBA::Exception *_tao_duplicate (void) const; - - virtual void _raise (void) const; - - virtual void _tao_encode ( - TAO_OutputCDR & - - ) const; - - virtual void _tao_decode ( - TAO_InputCDR & - - ); - - // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ctor.cpp:66 - - PolicyError ( - ::CORBA::PolicyErrorCode _tao_reason - ); - - // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ch.cpp:129 - - virtual CORBA::TypeCode_ptr _tao_type (void) const; - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ch.cpp:53 - -#if !defined (_CORBA_INVALIDPOLICIES_CH_) -#define _CORBA_INVALIDPOLICIES_CH_ - - class TAO_Export InvalidPolicies : public CORBA::UserException - { - public: - - CORBA::UShortSeq indices; - InvalidPolicies (void); - InvalidPolicies (const InvalidPolicies &); - ~InvalidPolicies (void); - - InvalidPolicies &operator= (const InvalidPolicies &); - - static void _tao_any_destructor (void *); - - static InvalidPolicies *_downcast (CORBA::Exception *); - static const InvalidPolicies *_downcast (CORBA::Exception const *); - - static CORBA::Exception *_alloc (void); - - virtual CORBA::Exception *_tao_duplicate (void) const; - - virtual void _raise (void) const; - - virtual void _tao_encode ( - TAO_OutputCDR & - - ) const; - - virtual void _tao_decode ( - TAO_InputCDR & - - ); - - // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ctor.cpp:66 - - InvalidPolicies ( - const ::CORBA::UShortSeq & _tao_indices - ); - - // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ch.cpp:129 - - virtual CORBA::TypeCode_ptr _tao_type (void) const; - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // be\be_interface.cpp:598 - -#if !defined (_CORBA_POLICY__VAR_OUT_CH_) -#define _CORBA_POLICY__VAR_OUT_CH_ - - class Policy; - typedef Policy *Policy_ptr; - - typedef - TAO_Objref_Var_T< - Policy - > - Policy_var; - - typedef - TAO_Objref_Out_T< - Policy - > - Policy_out; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // be\be_visitor_interface/interface_ch.cpp:54 - -#if !defined (_CORBA_POLICY_CH_) -#define _CORBA_POLICY_CH_ - - class TAO_Export Policy - : public virtual CORBA::Object - { - public: - friend class TAO::Narrow_Utils<Policy>; - typedef Policy_ptr _ptr_type; - typedef Policy_var _var_type; - typedef Policy_out _out_type; - - // The static operations. - static Policy_ptr _duplicate (Policy_ptr obj); - - static void _tao_release (Policy_ptr obj); - - static Policy_ptr _narrow ( - CORBA::Object_ptr obj - - ); - - static Policy_ptr _unchecked_narrow ( - CORBA::Object_ptr obj - - ); - - static Policy_ptr _nil (void) - { - return static_cast<Policy_ptr> (0); - } - - static void _tao_any_destructor (void *); - - // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - - virtual CORBA::PolicyType policy_type ( - void - ); - - // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - - virtual ::CORBA::Policy_ptr copy ( - void - ); - - // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - - virtual void destroy ( - void - ); - - // TAO_IDL - Generated from - // be\be_visitor_interface/interface_ch.cpp:210 - - virtual CORBA::Boolean _is_a ( - const char *type_id - - ); - - virtual const char* _interface_repository_id (void) const; - virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr); - - // Handcrafted - // **************************************************************** - virtual CORBA::Boolean _tao_encode (TAO_OutputCDR &); - virtual CORBA::Boolean _tao_decode (TAO_InputCDR &); - virtual TAO_Cached_Policy_Type _tao_cached_type (void) const; - virtual TAO_Policy_Scope _tao_scope (void) const; - // **************************************************************** - - protected: - // Concrete interface only. - Policy (void); - - // Concrete non-local interface only. - Policy ( - IOP::IOR *ior, - TAO_ORB_Core *orb_core - ); - - // Non-local interface only. - Policy ( - TAO_Stub *objref, - CORBA::Boolean _tao_collocated = false, - TAO_Abstract_ServantBase *servant = 0, - TAO_ORB_Core *orb_core = 0 - ); - - virtual ~Policy (void); - - private: - // Private and unimplemented for concrete interfaces. - Policy (const Policy &); - - void operator= (const Policy &); - }; - -#endif /* end #if !defined */ - -// TAO_IDL - Generated from -// be\be_visitor_module/module_ch.cpp:66 - -} // module CORBA - -// TAO_IDL - Generated from -// be\be_visitor_traits.cpp:61 - -// Traits specializations. -namespace TAO -{ - -#if !defined (_CORBA_POLICY__TRAITS_) -#define _CORBA_POLICY__TRAITS_ - - template<> - struct TAO_Export Objref_Traits< ::CORBA::Policy> - { - static ::CORBA::Policy_ptr duplicate ( - ::CORBA::Policy_ptr - ); - static void release ( - ::CORBA::Policy_ptr - ); - static ::CORBA::Policy_ptr nil (void); - static CORBA::Boolean marshal ( - const ::CORBA::Policy_ptr p, - TAO_OutputCDR & cdr - ); - }; - -#endif /* end #if !defined */ -} - -// TAO_IDL - Generated from -// be\be_visitor_exception/cdr_op_ch.cpp:52 - -TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const CORBA::PolicyError &); -TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &, CORBA::PolicyError &); - -// TAO_IDL - Generated from -// be\be_visitor_exception/cdr_op_ch.cpp:52 - -TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const CORBA::InvalidPolicies &); -TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &, CORBA::InvalidPolicies &); - -// TAO_IDL - Generated from -// be\be_visitor_interface/cdr_op_ch.cpp:55 - -TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const CORBA::Policy_ptr ); -TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &, CORBA::Policy_ptr &); - -// TAO_IDL - Generated from -// be\be_codegen.cpp:955 - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "tao/PolicyC.inl" -#endif /* defined INLINE */ - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include /**/ "ace/post.h" - -#endif /* ifndef */ - - diff --git a/TAO/tao/PolicyC.inl b/TAO/tao/PolicyC.inl deleted file mode 100644 index 05a60494650..00000000000 --- a/TAO/tao/PolicyC.inl +++ /dev/null @@ -1,57 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - - -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ci.cpp:70 - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -#if !defined (_CORBA_POLICY___CI_) -#define _CORBA_POLICY___CI_ - -ACE_INLINE -CORBA::Policy::Policy ( - TAO_Stub *objref, - CORBA::Boolean _tao_collocated, - TAO_Abstract_ServantBase *servant, - TAO_ORB_Core *oc) - : ::CORBA::Object (objref, _tao_collocated, servant, oc) -{ -} - -ACE_INLINE -CORBA::Policy::Policy ( - IOP::IOR *ior, - TAO_ORB_Core *oc) - : ::CORBA::Object (ior, oc) -{ -} - -#endif /* end #if !defined */ - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/PolicyS.h b/TAO/tao/PolicyS.h index 46912353c2e..6730d925b57 100644 --- a/TAO/tao/PolicyS.h +++ b/TAO/tao/PolicyS.h @@ -20,5 +20,4 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ - #endif /* TAO_PIDL_POLICY_S_H*/ diff --git a/TAO/tao/PortableServer/Adapter_Activator.h b/TAO/tao/PortableServer/Adapter_Activator.h index 199896689d4..c5edd4ef3c4 100644 --- a/TAO/tao/PortableServer/Adapter_Activator.h +++ b/TAO/tao/PortableServer/Adapter_Activator.h @@ -47,7 +47,6 @@ namespace TAO const char *name); protected: - /// POA Manager PortableServer::POAManager_var poa_manager_; }; diff --git a/TAO/tao/PortableServer/Local_Servant_Base.cpp b/TAO/tao/PortableServer/Local_Servant_Base.cpp deleted file mode 100644 index f63bb146c87..00000000000 --- a/TAO/tao/PortableServer/Local_Servant_Base.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// $Id$ - -#include "tao/PortableServer/Local_Servant_Base.h" -#include "tao/SystemException.h" - -#if !defined (__ACE_INLINE__) -# include "tao/PortableServer/Local_Servant_Base.inl" -#endif /* ! __ACE_INLINE__ */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -void -TAO_Local_ServantBase::_dispatch (TAO_ServerRequest &, void *) -{ - throw ::CORBA::BAD_OPERATION (); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/PortableServer/Local_Servant_Base.h b/TAO/tao/PortableServer/Local_Servant_Base.h deleted file mode 100644 index 50931390395..00000000000 --- a/TAO/tao/PortableServer/Local_Servant_Base.h +++ /dev/null @@ -1,60 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Local_Servant_Base.h - * - * $Id$ - * - * @author Irfan Pyarali <irfan@cs.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_LOCAL_SERVANT_BASE_H -#define TAO_LOCAL_SERVANT_BASE_H - -#include /**/ "ace/pre.h" - -#include "tao/PortableServer/portableserver_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/PortableServer/Servant_Base.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class TAO_Local_ServantBase - * - * @brief Base class for local servants. - * - * This servant does not register with the POA and does not - * produce a valid stub, i.e., object references of this servant - * cannot be exported. The (collocated) stubs of these servants - * will always be direct, i.e., call directly to the servant and - * don't call through the POA since this servant is not - * registered with the POA. - */ -class TAO_PortableServer_Export TAO_Local_ServantBase - : public virtual TAO_ServantBase -{ -protected: - /// This is an auxiliary method for _this(). Make sure *not* to - /// register with the default POA. - TAO_Stub *_create_stub (void); - - /// Throws CORBA::BAD_OPERATION exception. - void _dispatch (TAO_ServerRequest &request, void *servant_upcall); -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -# include "tao/PortableServer/Local_Servant_Base.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_LOCAL_SERVANT_BASE_H */ diff --git a/TAO/tao/PortableServer/Local_Servant_Base.inl b/TAO/tao/PortableServer/Local_Servant_Base.inl deleted file mode 100644 index 20eaf3f2e55..00000000000 --- a/TAO/tao/PortableServer/Local_Servant_Base.inl +++ /dev/null @@ -1,13 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE TAO_Stub * -TAO_Local_ServantBase::_create_stub (void) -{ - return 0; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/PortableServer/Operation_Table.h b/TAO/tao/PortableServer/Operation_Table.h index 9a11e5f1b5a..c0dc04faba3 100644 --- a/TAO/tao/PortableServer/Operation_Table.h +++ b/TAO/tao/PortableServer/Operation_Table.h @@ -28,11 +28,20 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL class TAO_ServerRequest; class TAO_Abstract_ServantBase; +class TAO_ServantBase; + +namespace TAO +{ + namespace Portable_Server + { + class Servant_Upcall; + } +} typedef void (*TAO_Skeleton)( TAO_ServerRequest &, - void *, - void *); + TAO::Portable_Server::Servant_Upcall *, + TAO_ServantBase *); typedef void (*TAO_Collocated_Skeleton)( TAO_Abstract_ServantBase *, diff --git a/TAO/tao/PortableServer/Operation_Table_Dynamic_Hash.cpp b/TAO/tao/PortableServer/Operation_Table_Dynamic_Hash.cpp index eae26a71e4e..918c6f5e765 100644 --- a/TAO/tao/PortableServer/Operation_Table_Dynamic_Hash.cpp +++ b/TAO/tao/PortableServer/Operation_Table_Dynamic_Hash.cpp @@ -74,8 +74,7 @@ int TAO_Dynamic_Hash_OpTable::bind (const char *opname, const TAO::Operation_Skeletons skel_ptr) { - return this->hash_.bind (CORBA::string_dup (opname), - skel_ptr); + return this->hash_.bind (CORBA::string_dup (opname), skel_ptr); } int @@ -86,9 +85,7 @@ TAO_Dynamic_Hash_OpTable::find (const char *opname, ACE_FUNCTION_TIMEPROBE (TAO_DYNAMIC_HASH_OPTABLE_FIND_START); TAO::Operation_Skeletons s; - int retval = - this->hash_.find ((const char *)opname, - s); + int const retval = this->hash_.find (opname, s); if (retval != -1) { @@ -108,8 +105,7 @@ TAO_Dynamic_Hash_OpTable::find (const char *opname, TAO::Operation_Skeletons skel; - int retval = - this->hash_.find ((const char *)opname, skel); + int const retval = this->hash_.find (opname, skel); if (retval != -1) { diff --git a/TAO/tao/PortableServer/Operation_Table_Perfect_Hash.cpp b/TAO/tao/PortableServer/Operation_Table_Perfect_Hash.cpp index da100f9802e..53444157d75 100644 --- a/TAO/tao/PortableServer/Operation_Table_Perfect_Hash.cpp +++ b/TAO/tao/PortableServer/Operation_Table_Perfect_Hash.cpp @@ -65,8 +65,7 @@ TAO_Perfect_Hash_OpTable::find (const char *opname, { ACE_FUNCTION_TIMEPROBE (TAO_PERFECT_HASH_OPTABLE_FIND_START); - TAO_operation_db_entry const * const entry = lookup (opname, - length); + TAO_operation_db_entry const * const entry = lookup (opname, length); if (entry == 0) { skelfunc = 0; // insure that somebody can't call a wrong function! diff --git a/TAO/tao/PortableServer/PS_ForwardC.h b/TAO/tao/PortableServer/PS_ForwardC.h index 592be9ab1e9..6f45d439eeb 100644 --- a/TAO/tao/PortableServer/PS_ForwardC.h +++ b/TAO/tao/PortableServer/PS_ForwardC.h @@ -69,7 +69,6 @@ namespace PortableServer typedef Servant_var<TAO_ServantBase> ServantBase_var; typedef ServantBase *Servant; - typedef TAO_Local_ServantBase LocalServantBase; typedef TAO_DynamicImplementation DynamicImplementation; // TAO_IDL - Generated from diff --git a/TAO/tao/PortableServer/PolicyS.cpp b/TAO/tao/PortableServer/PolicyS.cpp deleted file mode 100644 index 6a533af379a..00000000000 --- a/TAO/tao/PortableServer/PolicyS.cpp +++ /dev/null @@ -1,928 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - - -// TAO_IDL - Generated from -// be\be_codegen.cpp:599 - -#ifndef _TAO_IDL_ORIG_POLICYS_CPP_ -#define _TAO_IDL_ORIG_POLICYS_CPP_ - - -#include "tao/AnyTypeCode/TypeCode.h" -#include "tao/AnyTypeCode/Any.h" -#include "tao/PortableServer/PolicyS.h" -#include "tao/PortableServer/Operation_Table_Perfect_Hash.h" -#include "tao/PortableServer/Direct_Collocation_Upcall_Wrapper.h" -#include "tao/PortableServer/Upcall_Command.h" -#include "tao/PortableServer/Upcall_Wrapper.h" -#include "tao/PortableServer/Basic_SArguments.h" -#include "tao/PortableServer/Object_SArgument_T.h" -#include "tao/PortableServer/Special_Basic_SArguments.h" -#include "tao/PortableServer/UB_String_SArguments.h" -#include "tao/PortableServer/TypeCode_SArg_Traits.h" -#include "tao/PortableServer/Object_SArg_Traits.h" -#include "tao/PortableServer/get_arg.h" -#include "tao/Special_Basic_Arguments.h" -#include "tao/UB_String_Arguments.h" -#include "tao/TAO_Server_Request.h" -#include "tao/ORB_Core.h" -#include "tao/Profile.h" -#include "tao/Stub.h" -#include "tao/IFR_Client_Adapter.h" -#include "tao/Object_T.h" -#include "tao/CDR.h" -#include "tao/operation_details.h" -#include "tao/PortableInterceptor.h" -#include "tao/Basic_Arguments.h" -#include "tao/Object_Argument_T.h" -#include "ace/Dynamic_Service.h" -#include "ace/Malloc_Allocator.h" - -// TAO_IDL - Generated from -// be\be_visitor_arg_traits.cpp:69 - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -// Arg traits specializations. -namespace TAO -{ - -#if !defined (_CORBA_POLICY__SARG_TRAITS_SS_) -#define _CORBA_POLICY__SARG_TRAITS_SS_ -/* - template<> - class SArg_Traits<CORBA::Policy> - : public - Object_SArg_Traits_T< - CORBA::Policy_ptr, - CORBA::Policy_var, - CORBA::Policy_out, - TAO::Any_Insert_Policy_Stream - > - { - }; - */ -#endif /* end #if !defined */ -} - -// TAO_IDL - Generated from -// be\be_interface.cpp:1455 - -class TAO_CORBA_Policy_Perfect_Hash_OpTable - : public TAO_Perfect_Hash_OpTable -{ -private: - unsigned int hash (const char *str, unsigned int len); - -public: - const TAO_operation_db_entry * lookup (const char *str, unsigned int len); -}; - -/* C++ code produced by gperf version 2.8 (ACE version) */ -/* Command-line: c:\ACE\latest\ACE_wrappers\bin\gperf.exe -m -M -J -c -C -D -E -T -f 0 -F 0,0 -a -o -t -p -K opname -L C++ -Z TAO_CORBA_Policy_Perfect_Hash_OpTable -N lookup */ -unsigned int -TAO_CORBA_Policy_Perfect_Hash_OpTable::hash (const char *str, unsigned int len) -{ - static const unsigned char asso_values[] = - { -#if defined (ACE_MVS) - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, - 22, 0, 0, 5, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 0, 22, 22, 22, 22, 0, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, -#else - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 0, 22, 0, 22, 0, - 0, 5, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 0, 22, 22, 22, - 22, 0, 22, 22, 22, 22, 22, 22, -#endif /* ACE_MVS */ - }; - return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]]; -} - -const TAO_operation_db_entry * -TAO_CORBA_Policy_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len) -{ - enum - { - TOTAL_KEYWORDS = 7, - MIN_WORD_LENGTH = 4, - MAX_WORD_LENGTH = 16, - MIN_HASH_VALUE = 4, - MAX_HASH_VALUE = 21, - HASH_VALUE_RANGE = 18, - DUPLICATES = 0, - WORDLIST_SIZE = 11 - }; - - static const TAO_operation_db_entry wordlist[] = - { - {"",0,0},{"",0,0},{"",0,0},{"",0,0}, - {"copy", &POA_CORBA::Policy::copy_skel, &POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::copy}, - {"_is_a", &POA_CORBA::Policy::_is_a_skel, 0}, - {"",0,0}, - {"destroy", &POA_CORBA::Policy::destroy_skel, &POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::destroy}, - {"",0,0},{"",0,0}, - {"_component", &POA_CORBA::Policy::_component_skel, 0}, - {"",0,0},{"",0,0}, - {"_non_existent", &POA_CORBA::Policy::_non_existent_skel, 0}, - {"",0,0}, - {"_interface", &POA_CORBA::Policy::_interface_skel, 0}, - {"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0}, - {"_get_policy_type", &POA_CORBA::Policy::_get_policy_type_skel, &POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::_get_policy_type}, - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - unsigned int key = hash (str, len); - - if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE) - { - const char *s = wordlist[key].opname; - - if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) - return &wordlist[key]; - } - } - return 0; -} - -static TAO_CORBA_Policy_Perfect_Hash_OpTable tao_CORBA_Policy_optable; - -/////////////////////////////////////////////////////////////////////// -// Direct Proxy Implementation -// - -POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::_TAO_Policy_Direct_Proxy_Impl (void) -{} - -POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::~_TAO_Policy_Direct_Proxy_Impl (void) -{} - -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::_get_policy_type ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args) -{ - ((TAO::Arg_Traits< ::CORBA::PolicyType>::ret_val *) args[0])->arg () = - dynamic_cast<POA_CORBA::Policy_ptr> - (servant) - ->policy_type (); -} -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::copy ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args) -{ - ((TAO::Arg_Traits< CORBA::Policy>::ret_val *) args[0])->arg () = - dynamic_cast<POA_CORBA::Policy_ptr> - (servant) - ->copy (); -} -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::destroy ( - TAO_Abstract_ServantBase *servant, - TAO::Argument **) -{ - dynamic_cast<POA_CORBA::Policy_ptr> - (servant) - ->destroy (); -} - - -// -// End Direct Proxy Implementation -/////////////////////////////////////////////////////////////////////// - -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:103 - -POA_CORBA::Policy::Policy (void) - : TAO_ServantBase () -{ - this->optable_ = &tao_CORBA_Policy_optable; -} - -POA_CORBA::Policy::Policy (const Policy& rhs) - : TAO_Abstract_ServantBase (rhs), - TAO_ServantBase (rhs) -{ -} - -POA_CORBA::Policy::~Policy (void) -{ -} -namespace POA_CORBA -{ - - - // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - - class _get_policy_type_Policy - : public TAO::Upcall_Command - { - public: - inline _get_policy_type_Policy ( - POA_CORBA::Policy * servant, - TAO_Operation_Details const * operation_details, - TAO::Argument * const args[]) - : servant_ (servant) - , operation_details_ (operation_details) - , args_ (args) - { - } - - virtual void execute (void) - { - TAO::SArg_Traits< ::CORBA::PolicyType>::ret_arg_type retval = - TAO::Portable_Server::get_ret_arg< ::CORBA::PolicyType> ( - this->operation_details_, - this->args_); - - - retval = - this->servant_->policy_type ( - ); - - } - - private: - POA_CORBA::Policy * const servant_; - 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 - - ) -{ - - -#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::PolicyType>::ret_val retval; - - TAO::Argument * const args[] = - { - &retval - }; - - static size_t const nargs = 1; - - POA_CORBA::Policy * const impl = - static_cast<POA_CORBA::Policy *> (servant); - - _get_policy_type_Policy 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 */ - ); - -} -namespace POA_CORBA -{ - - - // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - - class copy_Policy - : public TAO::Upcall_Command - { - public: - inline copy_Policy ( - POA_CORBA::Policy * servant, - TAO_Operation_Details const * operation_details, - TAO::Argument * const args[]) - : servant_ (servant) - , operation_details_ (operation_details) - , args_ (args) - { - } - - virtual void execute (void) - { - TAO::SArg_Traits< CORBA::Policy>::ret_arg_type retval = - TAO::Portable_Server::get_ret_arg< CORBA::Policy> ( - this->operation_details_, - this->args_); - - - retval = - this->servant_->copy ( - ); - - } - - private: - POA_CORBA::Policy * const servant_; - 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::copy_skel ( - TAO_ServerRequest & server_request, - void * 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::Policy>::ret_val retval; - - TAO::Argument * const args[] = - { - &retval - }; - - static size_t const nargs = 1; - - POA_CORBA::Policy * const impl = - static_cast<POA_CORBA::Policy *> (servant); - - copy_Policy 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 */ - ); - -} -namespace POA_CORBA -{ - - - // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - - class destroy_Policy - : public TAO::Upcall_Command - { - public: - inline destroy_Policy ( - POA_CORBA::Policy * servant) - : servant_ (servant) - { - } - - virtual void execute (void) - { - this->servant_->destroy ( - ); - - } - - private: - POA_CORBA::Policy * const servant_; - }; - -} - - -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 - -void POA_CORBA::Policy::destroy_skel ( - TAO_ServerRequest & server_request, - void * 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< void>::ret_val retval; - - TAO::Argument * const args[] = - { - &retval - }; - - static size_t const nargs = 1; - - POA_CORBA::Policy * const impl = - static_cast<POA_CORBA::Policy *> (servant); - - destroy_Policy command ( - impl); - - 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 */ - ); - -} - -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:169 - -namespace POA_CORBA -{ - - - // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - - class _is_a_Policy_Upcall_Command - : public TAO::Upcall_Command - { - public: - inline _is_a_Policy_Upcall_Command ( - POA_CORBA::Policy * servant, - TAO_Operation_Details const * operation_details, - TAO::Argument * const args[]) - : servant_ (servant) - , operation_details_ (operation_details) - , args_ (args) - { - } - - virtual void 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< CORBA::Char *>::in_arg_type arg_1 = - TAO::Portable_Server::get_in_arg< CORBA::Char *> ( - this->operation_details_, - this->args_, - 1); - - - retval = - this->servant_-> _is_a ( - arg_1 - ); - - } - - private: - POA_CORBA::Policy * const servant_; - TAO_Operation_Details const * const operation_details_; - TAO::Argument * const * const args_; - }; - -} -void POA_CORBA::Policy::_is_a_skel ( - TAO_ServerRequest & server_request, - void * 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< CORBA::Char *>::in_arg_val _tao_repository_id; - - TAO::Argument * const args[] = - { - &retval, - &_tao_repository_id - }; - - static size_t const nargs = 2; - - POA_CORBA::Policy * const impl = - static_cast<POA_CORBA::Policy *> (servant); - - _is_a_Policy_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 */ - ); - -} - -namespace POA_CORBA -{ - - - // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - - class _non_existent_Policy_Upcall_Command - : public TAO::Upcall_Command - { - public: - inline _non_existent_Policy_Upcall_Command ( - POA_CORBA::Policy * servant, - TAO_Operation_Details const * operation_details, - TAO::Argument * const args[]) - : servant_ (servant) - , operation_details_ (operation_details) - , args_ (args) - { - } - - virtual void 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 ( - ); - - } - - private: - POA_CORBA::Policy * const servant_; - TAO_Operation_Details const * const operation_details_; - TAO::Argument * const * const args_; - }; - -} -void POA_CORBA::Policy::_non_existent_skel ( - TAO_ServerRequest & server_request, - void * 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; - - POA_CORBA::Policy * const impl = - static_cast<POA_CORBA::Policy *> (servant); - - _non_existent_Policy_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 */ - ); - -} - - - -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:393 - - - -void POA_CORBA::Policy::_interface_skel ( - TAO_ServerRequest & server_request, - void * /* 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 == 0) - { - throw ::CORBA::INTF_REPOS (CORBA::OMGVMCID | 1, CORBA::COMPLETED_NO); - } - - POA_CORBA::Policy * const impl = - static_cast<POA_CORBA::Policy *> (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 == 0) - { - throw ::CORBA::MARSHAL (); - } -} - -namespace POA_CORBA -{ - - - // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - - class _get_component_Policy_Upcall_Command - : public TAO::Upcall_Command - { - public: - inline _get_component_Policy_Upcall_Command ( - POA_CORBA::Policy * servant, - TAO_Operation_Details const * operation_details, - TAO::Argument * const args[]) - : servant_ (servant) - , operation_details_ (operation_details) - , args_ (args) - { - } - - virtual void 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 ( - ); - - } - - private: - POA_CORBA::Policy * const servant_; - TAO_Operation_Details const * const operation_details_; - TAO::Argument * const * const args_; - }; - -} -void POA_CORBA::Policy::_component_skel ( - TAO_ServerRequest & server_request, - void * 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; - - POA_CORBA::Policy * const impl = - static_cast<POA_CORBA::Policy *> (servant); - - _get_component_Policy_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 */ - ); - -} - -CORBA::Boolean POA_CORBA::Policy::_is_a ( - const char* value - - ) -{ - return - ( - !ACE_OS::strcmp ( - value, - "IDL:omg.org/CORBA/Policy:1.0" - ) || - !ACE_OS::strcmp ( - value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ); -} - -const char* POA_CORBA::Policy::_interface_repository_id (void) const -{ - return "IDL:omg.org/CORBA/Policy:1.0"; -} - -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:940 - -void POA_CORBA::Policy::_dispatch ( - TAO_ServerRequest & req, - void * servant_upcall - - ) -{ - this->synchronous_upcall_dispatch (req, - servant_upcall, - this - ); -} - -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:891 - -CORBA::Policy * -POA_CORBA::Policy::_this (void) -{ - TAO_Stub *stub = this->_create_stub (); - - TAO_Stub_Auto_Ptr safe_stub (stub); - CORBA::Object_ptr tmp = CORBA::Object::_nil (); - - CORBA::Boolean _tao_opt_colloc = - stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects (); - - ACE_NEW_RETURN ( - tmp, - CORBA::Object (stub, _tao_opt_colloc, this), - 0 - ); - - CORBA::Object_var obj = tmp; - (void) safe_stub.release (); - - typedef ::CORBA::Policy STUB_SCOPED_NAME; - return - TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow ( - obj.in ()); -} - -#endif /* ifndef */ - - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/PortableServer/PolicyS.h b/TAO/tao/PortableServer/PolicyS.h deleted file mode 100644 index fc076ae73b5..00000000000 --- a/TAO/tao/PortableServer/PolicyS.h +++ /dev/null @@ -1,247 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// be\be_codegen.cpp:391 - -#ifndef _TAO_IDL_ORIG_POLICYS_H_ -#define _TAO_IDL_ORIG_POLICYS_H_ - -#include /**/ "ace/pre.h" - -#include "tao/PolicyC.h" -#include "tao/UShortSeqS.h" -#include "tao/CurrentS.h" -#include "tao/Policy_ForwardS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/PortableServer/PortableServer.h" -#include "tao/PortableServer/Servant_Base.h" - -#if defined(_MSC_VER) -#pragma warning(push) -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -#include "tao/PortableServer/portableserver_export.h" - -#if defined (TAO_EXPORT_MACRO) -#undef TAO_EXPORT_MACRO -#endif -#define TAO_EXPORT_MACRO TAO_PortableServer_Export - -// TAO_IDL - Generated from -// be\be_visitor_module/module_sh.cpp:49 - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace POA_CORBA -{ - - - // TAO_IDL - Generated from - // be\be_visitor_interface/interface_sh.cpp:87 - - class Policy; - typedef Policy *Policy_ptr; - - class TAO_PortableServer_Export Policy - : public virtual PortableServer::ServantBase - { - protected: - Policy (void); - - public: - // Useful for template programming. - typedef ::CORBA::Policy _stub_type; - typedef ::CORBA::Policy_ptr _stub_ptr_type; - typedef ::CORBA::Policy_var _stub_var_type; - - Policy (const Policy& rhs); - virtual ~Policy (void); - - virtual CORBA::Boolean _is_a ( - const char* logical_type_id - - ); - - static void _is_a_skel ( - TAO_ServerRequest & req, - void * servant_upcall, - void * servant - - ); - - static void _non_existent_skel ( - TAO_ServerRequest & req, - void * servant_upcall, - void * servant - - ); - - static void _interface_skel ( - TAO_ServerRequest & req, - void * servant_upcall, - void * servant - - ); - - static void _component_skel ( - TAO_ServerRequest & req, - void * servant_upcall, - void * servant - - ); - - virtual void _dispatch ( - TAO_ServerRequest & req, - void * servant_upcall - - ); - - ::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; - - static void _get_policy_type_skel ( - TAO_ServerRequest & server_request, - void * servant_upcall, - void * servant - - ); - - // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - - virtual ::CORBA::Policy_ptr copy ( - void - ) - = 0; - - static void copy_skel ( - TAO_ServerRequest & server_request, - void * servant_upcall, - void * servant - - ); - - // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - - virtual void destroy ( - void - ) - = 0; - - static void destroy_skel ( - TAO_ServerRequest & server_request, - void * servant_upcall, - void * servant - - ); - }; - - - - // TAO_IDL - Generated from - // be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 - - /////////////////////////////////////////////////////////////////////// - // Direct Impl. Declaration - // - - class TAO_PortableServer_Export _TAO_Policy_Direct_Proxy_Impl - { - public: - _TAO_Policy_Direct_Proxy_Impl (void); - - virtual ~_TAO_Policy_Direct_Proxy_Impl (void); - - // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - _get_policy_type ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args); - - // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - copy ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args); - - // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - destroy ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args); - }; - - // - // Direct Proxy Impl. Declaration - /////////////////////////////////////////////////////////////////////// - - - -// TAO_IDL - Generated from -// be\be_visitor_module/module_sh.cpp:80 - -} // module CORBA - -// TAO_IDL - Generated from -// be\be_codegen.cpp:995 - -TAO_END_VERSIONED_NAMESPACE_DECL - -#include "tao/PortableServer/PolicyS_T.h" - - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include /**/ "ace/post.h" -#endif /* ifndef */ - diff --git a/TAO/tao/PortableServer/PolicyS_T.cpp b/TAO/tao/PortableServer/PolicyS_T.cpp deleted file mode 100644 index 312a1e2f507..00000000000 --- a/TAO/tao/PortableServer/PolicyS_T.cpp +++ /dev/null @@ -1,41 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// be\be_codegen.cpp:677 - -#ifndef _TAO_IDL_ORIG_POLICYS_T_CPP_ -#define _TAO_IDL_ORIG_POLICYS_T_CPP_ - -#include "tao/PortableServer/PolicyS_T.h" - -#if !defined (__ACE_INLINE__) -#include "tao/PortableServer/PolicyS_T.inl" -#endif /* !defined INLINE */ - - -#endif /* ifndef */ diff --git a/TAO/tao/PortableServer/PolicyS_T.h b/TAO/tao/PortableServer/PolicyS_T.h deleted file mode 100644 index ef5c094ce39..00000000000 --- a/TAO/tao/PortableServer/PolicyS_T.h +++ /dev/null @@ -1,145 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// be\be_codegen.cpp:536 - -#ifndef _TAO_IDL_ORIG_POLICYS_T_H_ -#define _TAO_IDL_ORIG_POLICYS_T_H_ - -#include /**/ "ace/pre.h" - -#if defined(_MSC_VER) -#pragma warning(push) -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -// TAO_IDL - Generated from -// be\be_visitor_root/root_sth.cpp:116 - -namespace POA_CORBA -{ - - // TAO_IDL - Generated from - // be\be_visitor_interface/tie_sh.cpp:87 - - // TIE class: Refer to CORBA v2.2, Section 20.34.4 - template <class T> - class Policy_tie : public Policy - { - public: - Policy_tie (T &t); - // the T& ctor - Policy_tie (T &t, PortableServer::POA_ptr poa); - // ctor taking a POA - Policy_tie (T *tp, CORBA::Boolean release = true); - // ctor taking pointer and an ownership flag - Policy_tie ( - T *tp, - PortableServer::POA_ptr poa, - CORBA::Boolean release = true - ); - // ctor with T*, ownership flag and a POA - ~Policy_tie (void); - // dtor - - // TIE specific functions - T *_tied_object (void); - // return the underlying object - void _tied_object (T &obj); - // set the underlying object - void _tied_object (T *obj, CORBA::Boolean release = true); - // set the underlying object and the ownership flag - CORBA::Boolean _is_owner (void); - // do we own it - void _is_owner (CORBA::Boolean b); - // set the ownership - - // overridden ServantBase operations - PortableServer::POA_ptr _default_POA ( - void - ); - - // TAO_IDL - Generated from - // be\be_visitor_operation/tie_sh.cpp:60 - - CORBA::PolicyType policy_type ( - void - ); - - // TAO_IDL - Generated from - // be\be_visitor_operation/tie_sh.cpp:60 - - ::CORBA::Policy_ptr copy ( - void - ); - - // TAO_IDL - Generated from - // be\be_visitor_operation/tie_sh.cpp:60 - - void destroy ( - void - ); - - private: - T *ptr_; - PortableServer::POA_var poa_; - CORBA::Boolean rel_; - - // copy and assignment are not allowed - Policy_tie (const Policy_tie &); - void operator= (const Policy_tie &); - }; -} // module CORBA - -// TAO_IDL - Generated from -// be\be_codegen.cpp:1096 - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "tao/PortableServer/PolicyS_T.inl" -#endif /* defined INLINE */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "tao/PortableServer/PolicyS_T.cpp" -#endif /* defined REQUIRED SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("PolicyS_T.cpp") -#endif /* defined REQUIRED PRAGMA */ - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include /**/ "ace/post.h" -#endif /* ifndef */ - diff --git a/TAO/tao/PortableServer/PolicyS_T.inl b/TAO/tao/PortableServer/PolicyS_T.inl deleted file mode 100644 index b72444d2753..00000000000 --- a/TAO/tao/PortableServer/PolicyS_T.inl +++ /dev/null @@ -1,162 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -// TAO_IDL - Generated from -// be\be_visitor_interface/tie_si.cpp:96 - -template <class T> ACE_INLINE -POA_CORBA::Policy_tie<T>::Policy_tie (T &t) - : ptr_ (&t), - poa_ (PortableServer::POA::_nil ()), - rel_ (0) -{} - -template <class T> ACE_INLINE -POA_CORBA::Policy_tie<T>::Policy_tie (T &t, PortableServer::POA_ptr poa) - : ptr_ (&t), - poa_ (PortableServer::POA::_duplicate (poa)), - rel_ (0) -{} - -template <class T> ACE_INLINE -POA_CORBA::Policy_tie<T>::Policy_tie (T *tp, CORBA::Boolean release) - : ptr_ (tp), - poa_ (PortableServer::POA::_nil ()), - rel_ (release) -{} - -template <class T> ACE_INLINE -POA_CORBA::Policy_tie<T>::Policy_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release) - : ptr_ (tp), - poa_ (PortableServer::POA::_duplicate (poa)), - rel_ (release) -{} - -template <class T> ACE_INLINE -POA_CORBA::Policy_tie<T>::~Policy_tie (void) -{ - if (this->rel_) - { - delete this->ptr_; - } -} - -template <class T> ACE_INLINE T * -POA_CORBA::Policy_tie<T>::_tied_object (void) -{ - return this->ptr_; -} - -template <class T> ACE_INLINE void -POA_CORBA::Policy_tie<T>::_tied_object (T &obj) -{ - if (this->rel_) - { - delete this->ptr_; - } - - this->ptr_ = &obj; - this->rel_ = 0; -} - -template <class T> ACE_INLINE void -POA_CORBA::Policy_tie<T>::_tied_object (T *obj, CORBA::Boolean release) -{ - if (this->rel_) - { - delete this->ptr_; - } - - this->ptr_ = obj; - this->rel_ = release; -} - -template <class T> ACE_INLINE CORBA::Boolean -POA_CORBA::Policy_tie<T>::_is_owner (void) -{ - return this->rel_; -} - -template <class T> ACE_INLINE void -POA_CORBA::Policy_tie<T>::_is_owner (CORBA::Boolean b) -{ - this->rel_ = b; -} - -template <class T> ACE_INLINE PortableServer::POA_ptr -POA_CORBA::Policy_tie<T>::_default_POA (void) -{ - if (!CORBA::is_nil (this->poa_.in ())) - { - return PortableServer::POA::_duplicate (this->poa_.in ()); - } - - return this->Policy::_default_POA (); -} - -// TAO_IDL - Generated from -// be\be_visitor_operation/tie_si.cpp:68 - -template <class T> ACE_INLINE -CORBA::PolicyType POA_CORBA::Policy_tie<T>::policy_type ( - - ) -{ - return this->ptr_->policy_type ( - - ); -} - -// TAO_IDL - Generated from -// be\be_visitor_operation/tie_si.cpp:68 - -template <class T> ACE_INLINE -::CORBA::Policy_ptr POA_CORBA::Policy_tie<T>::copy ( - ) -{ - return this->ptr_->copy ( - - ); -} - -// TAO_IDL - Generated from -// be\be_visitor_operation/tie_si.cpp:68 - -template <class T> ACE_INLINE -void POA_CORBA::Policy_tie<T>::destroy ( - - ) -{ - this->ptr_->destroy ( - - ); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/PortableServer/PortableServer.mpc b/TAO/tao/PortableServer/PortableServer.mpc index bfdcd5b0bd7..fec90ddd602 100644 --- a/TAO/tao/PortableServer/PortableServer.mpc +++ b/TAO/tao/PortableServer/PortableServer.mpc @@ -91,6 +91,7 @@ project(PortableServer) : taolib, tao_output, install, anytypecode, taoidldefaul POAManagerC.cpp POAManagerFactoryC.cpp POAC.cpp + PolicyS.cpp PS_CurrentC.cpp PortableServer_includeC.cpp PortableServerC.cpp @@ -122,6 +123,8 @@ project(PortableServer) : taolib, tao_output, install, anytypecode, taoidldefaul POAC.h POAManagerC.h POAManagerFactoryC.h + PolicyS.h + PolicyS_T.h PortableServerC.h PortableServer_includeC.h PS_CurrentC.h @@ -169,6 +172,7 @@ project(PortableServer) : taolib, tao_output, install, anytypecode, taoidldefaul Template_Files { Servant_var.cpp + PolicyS_T.cpp *_T.cpp } 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..4b44d4667b0 --- /dev/null +++ b/TAO/tao/PortableServer/SUpcall_commands.h @@ -0,0 +1,269 @@ +// -*- 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" + +#include "tao/PortableServer/Upcall_Command.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#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..5de55231790 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,340 @@ 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* TAO_INTERCEPTOR(servant_upcall), + TAO_ServantBase *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; + + _is_a_Upcall_Command command ( + servant, + 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), + TAO_ServantBase *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; + + _is_a_thru_poa_Upcall_Command command ( + servant, + 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), + TAO_ServantBase *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; + + _non_existent_Upcall_Command command ( + servant, + 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), + TAO_ServantBase *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; + + _non_existent_thru_poa_Upcall_Command command ( + servant, + 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 */, + TAO_ServantBase *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); + } + + ::CORBA::InterfaceDef_ptr _tao_retval = servant->_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), + TAO_ServantBase *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; + + _get_component_Upcall_Command command ( + servant, + 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), + TAO_ServantBase *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; + + _get_component_thru_poa_Upcall_Command command ( + servant, + 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), + TAO_ServantBase *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; + + _repository_id_Upcall_Command command ( + servant, + 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), + TAO_ServantBase *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; + + _repository_id_thru_poa_Upcall_Command command ( + servant, + 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) { @@ -85,6 +433,7 @@ TAO_ServantBase::_is_a (const char *logical_type_id) return ACE_OS::strcmp (logical_type_id, id) == 0; } +#if (TAO_HAS_MINIMUM_CORBA == 0) CORBA::Boolean TAO_ServantBase::_non_existent (void) { @@ -109,17 +458,19 @@ TAO_ServantBase::_get_interface (void) this->_interface_repository_id ()); } +#if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) CORBA::Object_ptr TAO_ServantBase::_get_component (void) { return CORBA::Object::_nil (); } - +#endif char * TAO_ServantBase::_repository_id (void) { return CORBA::string_dup (this->_interface_repository_id ()); } +#endif /* TAO_HAS_MINIMUM_CORBA */ int TAO_ServantBase::_find (const char *opname, @@ -182,9 +533,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, + TAO_ServantBase *derived_this) { TAO_Skeleton skel; char const * const opname = req.operation (); @@ -216,7 +569,7 @@ void TAO_ServantBase::synchronous_upcall_dispatch (TAO_ServerRequest & req, { // Invoke the skeleton, it will demarshal the arguments, invoke // the right operation on the skeleton class, and marshal any - // results. De/marshaling will only occur in the uncollocated + // results. De/marshaling will only occur in the not collocated // case. skel (req, servant_upcall, derived_this); @@ -251,13 +604,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, + TAO_ServantBase *derived_this) { TAO_Skeleton skel; const char *opname = req.operation (); @@ -284,7 +637,7 @@ void TAO_ServantBase::asynchronous_upcall_dispatch (TAO_ServerRequest & req, { // Invoke the skeleton, it will demarshal the arguments, invoke // the right operation on the skeleton class, and marshal any - // results. De/marshaling will only occur in the uncollocated + // results. De/marshaling will only occur in the not collocated // case. skel (req, servant_upcall, derived_this); @@ -294,7 +647,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) { @@ -302,8 +654,6 @@ void TAO_ServantBase::asynchronous_upcall_dispatch (TAO_ServerRequest & req, // the appropriate reply to the client req.tao_send_reply_exception (ex); } - - return; } void diff --git a/TAO/tao/PortableServer/Servant_Base.h b/TAO/tao/PortableServer/Servant_Base.h index f2e43803cb4..59718ff0ae2 100644 --- a/TAO/tao/PortableServer/Servant_Base.h +++ b/TAO/tao/PortableServer/Servant_Base.h @@ -70,23 +70,63 @@ public: /// Destructor. virtual ~TAO_ServantBase (void); + static void _is_a_skel (TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *servant); + + static void _is_a_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *servant); + +#if (TAO_HAS_MINIMUM_CORBA == 0) + static void _non_existent_skel (TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *servant); + static void _non_existent_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *servant); + +# if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) + static void _interface_skel (TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *servant); + + static void _component_skel (TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *servant); + static void _component_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *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, + TAO_ServantBase *servant); + static void _repository_id_thru_poa_skel (TAO_ServerRequest & server_request, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *servant); +#endif /* TAO_HAS_MINIMUM_CORBA */ + /// Returns the default POA for this servant. virtual PortableServer::POA_ptr _default_POA (void); /// Local implementation of the CORBA::Object::_is_a method. virtual CORBA::Boolean _is_a (const char *logical_type_id); +#if (TAO_HAS_MINIMUM_CORBA == 0) /// Default _non_existent: always returns false. virtual CORBA::Boolean _non_existent (void); /// Query the Interface Repository for the interface definition. virtual CORBA::InterfaceDef_ptr _get_interface (void); +#if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) /// Default _get_component: always returns CORBA::Object::_nil(). virtual CORBA::Object_ptr _get_component (void); +#endif /// Get the repository id. virtual char * _repository_id (void); +#endif /* TAO_HAS_MINIMUM_CORBA */ /// This is an auxiliary method for _this() and _narrow(). virtual TAO_Stub *_create_stub (void); @@ -98,7 +138,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 +196,15 @@ protected: /// Assignment operator. TAO_ServantBase &operator= (const TAO_ServantBase &); - virtual void synchronous_upcall_dispatch (TAO_ServerRequest & req, - void * servant_upcall, - void * derived_this); + void synchronous_upcall_dispatch ( + TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *derived_this); - virtual void asynchronous_upcall_dispatch (TAO_ServerRequest & req, - void * servant_upcall, - void * derived_this); + void asynchronous_upcall_dispatch ( + TAO_ServerRequest & req, + TAO::Portable_Server::Servant_Upcall* servant_upcall, + TAO_ServantBase *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..98d88847e87 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..6b3577c198d 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/tao/Strategies/COIOP_Transport.h b/TAO/tao/Strategies/COIOP_Transport.h index 597899a0b71..e80adec2978 100644 --- a/TAO/tao/Strategies/COIOP_Transport.h +++ b/TAO/tao/Strategies/COIOP_Transport.h @@ -99,7 +99,7 @@ public: virtual int send_message (TAO_OutputCDR &stream, TAO_Stub *stub = 0, - TAO_Message_Semantics message_semantics = TAO_TWOWAY_REQUEST, + TAO_Message_Semantics message_semantics = TAO_Message_Semantics (), ACE_Time_Value *max_time_wait = 0); private: diff --git a/TAO/tao/Strategies/DIOP_Transport.h b/TAO/tao/Strategies/DIOP_Transport.h index 3aefc215c63..1cba2212e5c 100644 --- a/TAO/tao/Strategies/DIOP_Transport.h +++ b/TAO/tao/Strategies/DIOP_Transport.h @@ -98,7 +98,7 @@ public: virtual int send_message (TAO_OutputCDR &stream, TAO_Stub *stub = 0, - TAO_Message_Semantics message_semantics = TAO_TWOWAY_REQUEST, + TAO_Message_Semantics message_semantics = TAO_Message_Semantics (), ACE_Time_Value *max_time_wait = 0); private: diff --git a/TAO/tao/Strategies/SCIOP_Transport.h b/TAO/tao/Strategies/SCIOP_Transport.h index 7f1787c40b2..b46bbda512f 100644 --- a/TAO/tao/Strategies/SCIOP_Transport.h +++ b/TAO/tao/Strategies/SCIOP_Transport.h @@ -90,7 +90,7 @@ public: virtual int send_message (TAO_OutputCDR &association, TAO_Stub *stub = 0, - TAO_Message_Semantics message_semantics = TAO_TWOWAY_REQUEST, + TAO_Message_Semantics message_semantics = TAO_Message_Semantics (), ACE_Time_Value *max_time_wait = 0); /*virtual int send_reply (TAO_OutputCDR &stream, diff --git a/TAO/tao/Strategies/SHMIOP_Transport.h b/TAO/tao/Strategies/SHMIOP_Transport.h index 63d446f547a..186f6a62860 100644 --- a/TAO/tao/Strategies/SHMIOP_Transport.h +++ b/TAO/tao/Strategies/SHMIOP_Transport.h @@ -96,7 +96,7 @@ public: virtual int send_message (TAO_OutputCDR &stream, TAO_Stub *stub = 0, - TAO_Message_Semantics message_semantics = TAO_TWOWAY_REQUEST, + TAO_Message_Semantics message_semantics = TAO_Message_Semantics (), ACE_Time_Value *max_time_wait = 0); private: diff --git a/TAO/tao/Strategies/UIOP_Transport.h b/TAO/tao/Strategies/UIOP_Transport.h index a0dfe3fbda3..d103a35da5f 100644 --- a/TAO/tao/Strategies/UIOP_Transport.h +++ b/TAO/tao/Strategies/UIOP_Transport.h @@ -90,7 +90,7 @@ public: virtual int send_message (TAO_OutputCDR &stream, TAO_Stub *stub = 0, - TAO_Message_Semantics message_semantics = TAO_TWOWAY_REQUEST, + TAO_Message_Semantics message_semantics = TAO_Message_Semantics (), ACE_Time_Value *max_time_wait = 0); //@} diff --git a/TAO/tao/Synch_Invocation.cpp b/TAO/tao/Synch_Invocation.cpp index de7f3e18ad4..29b16cef49d 100644 --- a/TAO/tao/Synch_Invocation.cpp +++ b/TAO/tao/Synch_Invocation.cpp @@ -92,7 +92,7 @@ namespace TAO cdr.message_attributes (this->details_.request_id (), this->resolver_.stub (), - TAO_TWOWAY_REQUEST, + TAO_Message_Semantics (), max_wait_time); this->write_header (cdr); @@ -118,7 +118,7 @@ namespace TAO countdown.update (); s = this->send_message (cdr, - TAO_TWOWAY_REQUEST, + TAO_Message_Semantics (), max_wait_time); ace_mon.release(); @@ -143,7 +143,7 @@ namespace TAO countdown.update (); // For some strategies one may want to release the transport - // back to cache. If the idling is successful let the + // back to cache. If the idling is successful let the // resolver about that. if (transport->idle_after_send ()) this->resolver_.transport_released (); @@ -152,7 +152,7 @@ namespace TAO // here; need to investigate. Client threads would frequently be // canceled sometime during recv_request ... the correct action to // take on being canceled is to issue a CancelRequest message to the - // server and then imediately let other client-side cancellation + // server and then immediately let other client-side cancellation // handlers do their jobs. // // In C++, that basically means to unwind the stack using almost @@ -690,7 +690,7 @@ namespace TAO cdr.message_attributes (this->details_.request_id (), this->resolver_.stub (), - TAO_ONEWAY_REQUEST, + TAO_Message_Semantics (TAO_Message_Semantics::TAO_ONEWAY_REQUEST), max_wait_time); this->write_header (cdr); @@ -703,7 +703,7 @@ namespace TAO { // We have a connected transport so we can send the message s = this->send_message (cdr, - TAO_ONEWAY_REQUEST, + TAO_Message_Semantics (TAO_Message_Semantics::TAO_ONEWAY_REQUEST), max_wait_time); } else diff --git a/TAO/tao/TAO_Server_Request.cpp b/TAO/tao/TAO_Server_Request.cpp index b1c13838012..db0dd223551 100644 --- a/TAO/tao/TAO_Server_Request.cpp +++ b/TAO/tao/TAO_Server_Request.cpp @@ -266,7 +266,7 @@ TAO_ServerRequest::init_reply (void) this->outgoing_->message_attributes (this->request_id_, 0, - TAO_REPLY, + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY), 0); // Construct a REPLY header. @@ -313,7 +313,7 @@ TAO_ServerRequest::send_no_exception_reply (void) this->outgoing_->message_attributes (this->request_id_, 0, - TAO_REPLY, + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY), 0); // Construct a REPLY header. @@ -324,7 +324,7 @@ TAO_ServerRequest::send_no_exception_reply (void) // Send the message. int const result = this->transport_->send_message (*this->outgoing_, 0, - TAO_REPLY); + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)); if (result == -1) { @@ -351,7 +351,7 @@ TAO_ServerRequest::tao_send_reply (void) int const result = this->transport_->send_message (*this->outgoing_, 0, - TAO_REPLY); + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)); if (result == -1) { if (TAO_debug_level > 0) @@ -439,7 +439,7 @@ TAO_ServerRequest::tao_send_reply_exception (const CORBA::Exception &ex) // Send the message if (this->transport_->send_message (*this->outgoing_, 0, - TAO_REPLY) == -1) + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)) == -1) { ACE_ERROR ((LM_ERROR, ACE_TEXT ("TAO (%P|%t) - ServerRequest::") @@ -520,7 +520,7 @@ TAO_ServerRequest::send_cached_reply (CORBA::OctetSeq &s) this->outgoing_->message_attributes (this->request_id_, 0, - TAO_REPLY, + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY), 0); // Make the reply message @@ -550,7 +550,7 @@ TAO_ServerRequest::send_cached_reply (CORBA::OctetSeq &s) // Send the message if (this->transport_->send_message (*this->outgoing_, 0, - TAO_REPLY) == -1) + TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)) == -1) { ACE_ERROR ((LM_ERROR, ACE_TEXT ("TAO (%P|%t) - ServerRequest::send_cached_reply, ") diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp index a0978632a82..ce7224a2287 100644 --- a/TAO/tao/Transport.cpp +++ b/TAO/tao/Transport.cpp @@ -387,6 +387,14 @@ TAO_Transport::register_handler (void) return 0; } + if (TAO_debug_level > 6) + { + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("TAO (%P|%t) - Transport[%d]::register_handler - ") + ACE_TEXT ("registering event handler with reactor\n"), + this->id ())); + } + // Set the flag in the Connection Handler and in the Wait Strategy // @@Maybe we should set these flags after registering with the // reactor. What if the registration fails??? @@ -397,6 +405,64 @@ TAO_Transport::register_handler (void) ACE_Event_Handler::READ_MASK); } +int +TAO_Transport::remove_handler (void) +{ + if (TAO_debug_level > 4) + { + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("TAO (%P|%t) - Transport[%d]::remove_handler\n"), + this->id ())); + } + + ACE_Reactor * const r = this->orb_core_->reactor (); + + // @@note: This should be okay since the remove handler call will + // not make a nested call into the transport. + ACE_GUARD_RETURN (ACE_Lock, + ace_mon, + *this->handler_lock_, + false); + + + if (this->event_handler_i ()->reactor () == 0) + { + return 0; + } + + if (TAO_debug_level > 6) + { + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("TAO (%P|%t) - Transport[%d]::remove_handler - ") + ACE_TEXT ("removing event handler from reactor\n"), + this->id ())); + } + + // Set the flag in the Wait Strategy + this->ws_->is_registered (false); + + // Remove the handler from the reactor + if (r->remove_handler (this->event_handler_i (), + ACE_Event_Handler::READ_MASK| + ACE_Event_Handler::DONT_CALL) == -1) + { + if (TAO_debug_level > 0) + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) - Transport[%d]::remove_handler - ") + ACE_TEXT ("reactor->remove_handler failed\n"), + this->id ())); + return -1; + } + else + { + // reset the reactor property of the event handler or + // Transport::register_handler() will not re-register + // when called after us again. + this->event_handler_i ()->reactor (0); + return 0; + } +} + #if TAO_HAS_SENDFILE == 1 ssize_t TAO_Transport::sendfile (TAO_MMAP_Allocator * /* allocator */, @@ -1317,17 +1383,17 @@ TAO_Transport::send_message_shared_i (TAO_Stub *stub, size_t const message_length = message_block->length (); #endif /* TAO_HAS_TRANSPORT_CURRENT == 1 */ - switch (message_semantics) + switch (message_semantics.type_) { - case TAO_TWOWAY_REQUEST: + case TAO_Message_Semantics::TAO_TWOWAY_REQUEST: ret = this->send_synchronous_message_i (message_block, max_wait_time); break; - case TAO_REPLY: + case TAO_Message_Semantics::TAO_REPLY: ret = this->send_reply_message_i (message_block, max_wait_time); break; - case TAO_ONEWAY_REQUEST: + case TAO_Message_Semantics::TAO_ONEWAY_REQUEST: ret = this->send_asynchronous_message_i (stub, message_block, max_wait_time); diff --git a/TAO/tao/Transport.h b/TAO/tao/Transport.h index 5a768714b81..47fd8e3b4a0 100644 --- a/TAO/tao/Transport.h +++ b/TAO/tao/Transport.h @@ -244,14 +244,14 @@ namespace TAO * - Minimize locking and copying overhead when trying to attack the * above. * - * <H3> Parsing messages (GIOP) & processing the message:</H3> + * <H3>Parsing messages (GIOP) & processing the message:</H3> * * The messages should be checked for validity and the right * information should be sent to the higher layer for processing. The * process of doing a sanity check and preparing the messages for the * higher layers of the ORB are done by the messaging protocol. * - * <H3> Design forces and Challenges </H3> + * <H3>Design forces and Challenges </H3> * * To keep things as efficient as possible for medium sized requests, * it would be good to minimize data copying and locking along the @@ -293,7 +293,7 @@ namespace TAO * message from the queue and processes that. Once the queue * is drained the last thread resumes the handle. * - * <H3> Sending Replies </H3> + * <H3>Sending Replies </H3> * * We could use the outgoing path of the ORB to send replies. This * would allow us to reuse most of the code in the outgoing data @@ -304,7 +304,7 @@ namespace TAO * Reactor could potentially handle other messages (incoming or * outgoing) and the stack starts growing leading to crashes. * - * <H4> Solution to the nesting problem </H4> + * <H4>Solution to the nesting problem </H4> * * The solution that we (plan to) adopt is pretty straight * forward. The thread sending replies will not block to send the @@ -474,6 +474,9 @@ public: */ virtual int register_handler (void); + /// Remove the handler from the reactor. + virtual int remove_handler (void); + /// Write the complete Message_Block chain to the connection. /** * This method serializes on handler_lock_, guaranteeing that only @@ -757,7 +760,7 @@ public: */ virtual int send_message (TAO_OutputCDR &stream, TAO_Stub *stub = 0, - TAO_Message_Semantics message_semantics = TAO_TWOWAY_REQUEST, + TAO_Message_Semantics message_semantics = TAO_Message_Semantics (), ACE_Time_Value *max_time_wait = 0) = 0; /// Sent the contents of @a message_block diff --git a/TAO/tao/Transport_Mux_Strategy.h b/TAO/tao/Transport_Mux_Strategy.h index 94eeef24060..ba7ebd62068 100644 --- a/TAO/tao/Transport_Mux_Strategy.h +++ b/TAO/tao/Transport_Mux_Strategy.h @@ -58,7 +58,7 @@ public: /** * Unbind the dispatcher, the client is no longer waiting for the - * request, for example, because the request timedout. + * request, for example, because the request timed out. * The strategy can (must) cleanup any resources associated with the * request. * A later reply for that request should be ignored. diff --git a/TAO/tao/Version.h b/TAO/tao/Version.h index 6d076dcb9c2..f4fd56ca3ed 100644 --- a/TAO/tao/Version.h +++ b/TAO/tao/Version.h @@ -5,5 +5,5 @@ #define TAO_MAJOR_VERSION 2 #define TAO_MINOR_VERSION 0 -#define TAO_BETA_VERSION 5 -#define TAO_VERSION "2.0.5" +#define TAO_BETA_VERSION 6 +#define TAO_VERSION "2.0.6" diff --git a/TAO/tao/Wait_On_Leader_Follower.cpp b/TAO/tao/Wait_On_Leader_Follower.cpp index 75c8282e18a..b0571018861 100644 --- a/TAO/tao/Wait_On_Leader_Follower.cpp +++ b/TAO/tao/Wait_On_Leader_Follower.cpp @@ -46,7 +46,7 @@ TAO_Wait_On_Leader_Follower::non_blocking (void) const int TAO_Wait_On_Leader_Follower::sending_request (TAO_ORB_Core *orb_core, - int two_way) + TAO_Message_Semantics msg_semantics) { // Register the handler. if (!this->is_registered_) @@ -56,7 +56,7 @@ TAO_Wait_On_Leader_Follower::sending_request (TAO_ORB_Core *orb_core, // Send the request. //@@ LF_WAIT_STRATEGY_SPL_SENDING_REQUEST_HOOK - return this->TAO_Wait_Strategy::sending_request (orb_core, two_way); + return this->TAO_Wait_Strategy::sending_request (orb_core, msg_semantics); } int diff --git a/TAO/tao/Wait_On_Leader_Follower.h b/TAO/tao/Wait_On_Leader_Follower.h index c10247bb8d9..ab824f0c3a0 100644 --- a/TAO/tao/Wait_On_Leader_Follower.h +++ b/TAO/tao/Wait_On_Leader_Follower.h @@ -48,7 +48,7 @@ public: virtual ~TAO_Wait_On_Leader_Follower (void); /*! @copydoc TAO_Wait_Strategy::sending_request() */ - virtual int sending_request (TAO_ORB_Core *orb_core, int two_way); + virtual int sending_request (TAO_ORB_Core *orb_core, TAO_Message_Semantics msg_semantics); /*! @copydoc TAO_Wait_Strategy::wait() */ virtual int wait (ACE_Time_Value *max_wait_time, diff --git a/TAO/tao/Wait_On_Read.cpp b/TAO/tao/Wait_On_Read.cpp index 4127b6b8c5f..bb9ce367838 100644 --- a/TAO/tao/Wait_On_Read.cpp +++ b/TAO/tao/Wait_On_Read.cpp @@ -30,6 +30,49 @@ TAO_Wait_On_Read::~TAO_Wait_On_Read (void) //@@ WAIT_STRATEGY_SPL_COPY_HOOK_START +int +TAO_Wait_On_Read::sending_request (TAO_ORB_Core *orb_core, + TAO_Message_Semantics msg_semantics) +{ + if ((this->transport_->opened_as () == TAO::TAO_CLIENT_ROLE) && + (this->transport_->bidirectional_flag () == -1)) + { + // register the transport for event handling in case of AMI requests because + // for these requests explicitly require event handling. + if (msg_semantics.type_ == TAO_Message_Semantics::TAO_ONEWAY_REQUEST && + msg_semantics.mode_ == TAO_Message_Semantics::TAO_ASYNCH_CALLBACK) + { + // Register the handler unless already registered (should never happen). + if (!this->is_registered_) + { + this->transport_->register_handler (); + } + } + } + + // Send the request. +//@@ LF_WAIT_STRATEGY_SPL_SENDING_REQUEST_HOOK + return this->TAO_Wait_Strategy::sending_request (orb_core, msg_semantics); +} + +void +TAO_Wait_On_Read::finished_request () +{ + if ((this->transport_->opened_as () == TAO::TAO_CLIENT_ROLE) && + (this->transport_->bidirectional_flag () == -1)) + { + // ORB finished request handling so if the transport was registered for + // an AMI call, deregister it now + if (this->is_registered_) + { + this->transport_->remove_handler (); + } + } + + //@@ LF_WAIT_STRATEGY_SPL_SENDING_REQUEST_HOOK + this->TAO_Wait_Strategy::finished_request (); +} + // Wait on the read operation. int TAO_Wait_On_Read::wait (ACE_Time_Value * max_wait_time, diff --git a/TAO/tao/Wait_On_Read.h b/TAO/tao/Wait_On_Read.h index f5cd69e2652..686342702a1 100644 --- a/TAO/tao/Wait_On_Read.h +++ b/TAO/tao/Wait_On_Read.h @@ -38,6 +38,12 @@ public: /// Destructor. virtual ~TAO_Wait_On_Read (void); + /*! @copydoc TAO_Wait_Strategy::sending_request() */ + virtual int sending_request (TAO_ORB_Core *orb_core, TAO_Message_Semantics msg_semantics); + + /*! @copydoc TAO_Wait_Strategy::finished_request() */ + virtual void finished_request (); + /*! @copydoc TAO_Wait_Strategy::wait() */ virtual int wait (ACE_Time_Value *max_wait_time, TAO_Synch_Reply_Dispatcher &rd); diff --git a/TAO/tao/Wait_Strategy.cpp b/TAO/tao/Wait_Strategy.cpp index cff977b9031..30e1707ac62 100644 --- a/TAO/tao/Wait_Strategy.cpp +++ b/TAO/tao/Wait_Strategy.cpp @@ -33,12 +33,17 @@ TAO_Wait_Strategy::defer_upcall (ACE_Event_Handler*) */ //@@ LF_WAIT_STRATEGY_SPL_COMMENT_HOOK_START int -TAO_Wait_Strategy::sending_request (TAO_ORB_Core *, int) +TAO_Wait_Strategy::sending_request (TAO_ORB_Core *, TAO_Message_Semantics) { return 0; } //@@ LF_WAIT_STRATEGY_SPL_COMMENT_HOOK_END +void +TAO_Wait_Strategy::finished_request () +{ +} + /* * Hook to specialize the Wait Strategy */ diff --git a/TAO/tao/Wait_Strategy.h b/TAO/tao/Wait_Strategy.h index 78cf346fce2..8b53e41e829 100644 --- a/TAO/tao/Wait_Strategy.h +++ b/TAO/tao/Wait_Strategy.h @@ -22,9 +22,11 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include /**/ "tao/TAO_Export.h" +#include /**/ "tao/Message_Semantics.h" ACE_BEGIN_VERSIONED_NAMESPACE_DECL class ACE_Time_Value; +class ACE_Event_Handler; ACE_END_VERSIONED_NAMESPACE_DECL TAO_BEGIN_VERSIONED_NAMESPACE_DECL @@ -32,7 +34,6 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL class TAO_ORB_Core; class TAO_Transport; class TAO_Synch_Reply_Dispatcher; -class ACE_Event_Handler; /** * @class TAO_Wait_Strategy @@ -55,7 +56,11 @@ public: * variables because the reply may arrive *before* the user calls * wait. */ - virtual int sending_request (TAO_ORB_Core *orb_core, int two_way); + virtual int sending_request (TAO_ORB_Core *orb_core, TAO_Message_Semantics msg_semantics); + + // The ORB finished handling the request; either the reply was received + // and dispatched, the request timed out or the connection was closed. + virtual void finished_request (); /// Base class virtual method. Wait till the @c reply_received flag is /// true or the time expires. diff --git a/TAO/tao/default_client.cpp b/TAO/tao/default_client.cpp index 785d5909c98..ac2e0c1a57c 100644 --- a/TAO/tao/default_client.cpp +++ b/TAO/tao/default_client.cpp @@ -1,5 +1,5 @@ // -*- C++ -*- -// $Id$ +// $Id: default_client.cpp 93686 2011-03-31 12:12:12Z johnnyw $ #include "tao/default_client.h" #include "tao/Wait_On_Read.h" @@ -34,6 +34,8 @@ TAO_Default_Client_Strategy_Factory::TAO_Default_Client_Strategy_Factory (void) this->wait_strategy_ = TAO_WAIT_ON_REACTOR; #elif defined (TAO_USE_WAIT_ON_LF_NO_UPCALL) this->wait_strategy_ = TAO_WAIT_ON_LF_NO_UPCALL; +#elif defined (TAO_USE_WAIT_RW_STRATEGY) + this->wait_strategy_ = TAO_WAIT_ON_READ; #else this->wait_strategy_ = TAO_WAIT_ON_LEADER_FOLLOWER; #endif /* TAO_USE_ST_CLIENT_CONNECTION_HANDLER */ @@ -44,8 +46,14 @@ TAO_Default_Client_Strategy_Factory::TAO_Default_Client_Strategy_Factory (void) this->transport_mux_strategy_ = TAO_EXCLUSIVE_TMS; #endif /* TAO_USE_MUXED_TRANSPORT_MUX_STRATEGY */ +#if defined (TAO_USE_BLOCKING_CONNECT_STRATEGY) + this->connect_strategy_ = TAO_BLOCKED_CONNECT; +#elif defined (TAO_USE_REACTIVE_CONNECT_STRATEGY) + this->connect_strategy_ = TAO_REACTIVE_CONNECT; +#else // @todo: will be changed when other strategies are implemented. this->connect_strategy_ = TAO_LEADER_FOLLOWER_CONNECT; +#endif } TAO_Default_Client_Strategy_Factory::~TAO_Default_Client_Strategy_Factory (void) diff --git a/TAO/tao/default_resource.cpp b/TAO/tao/default_resource.cpp index ed57244617e..cf02fc6404d 100644 --- a/TAO/tao/default_resource.cpp +++ b/TAO/tao/default_resource.cpp @@ -1,5 +1,5 @@ // -*- C++ -*- -// $Id$ +// $Id: default_resource.cpp 93496 2011-03-07 09:37:27Z johnnyw $ #include "tao/default_resource.h" @@ -119,7 +119,13 @@ TAO_Default_Resource_Factory::TAO_Default_Resource_Factory (void) , use_local_memory_pool_ (false) #endif , cached_connection_lock_type_ (TAO_THREAD_LOCK) +#if defined (TAO_USE_BLOCKING_FLUSHING) + , flushing_strategy_type_ (TAO_BLOCKING_FLUSHING) +#elif defined (TAO_USE_REACTIVE_FLUSHING) + , flushing_strategy_type_ (TAO_REACTIVE_FLUSHING) +#else , flushing_strategy_type_ (TAO_LEADER_FOLLOWER_FLUSHING) +#endif , char_codeset_parameters_ () , wchar_codeset_parameters_ () , resource_usage_strategy_ (TAO_Resource_Factory::TAO_EAGER) diff --git a/TAO/tao/tao.mpc b/TAO/tao/tao.mpc index e13989706e0..acd680317d0 100644 --- a/TAO/tao/tao.mpc +++ b/TAO/tao/tao.mpc @@ -62,11 +62,20 @@ project(TAO_Core_idl) : tao_versioning_idl_defaults, gen_ostream, install, pidl_ WStringSeq.pidl >> AnyTypeCode/WStringSeqA.h AnyTypeCode/WStringSeqA.cpp } + IDL_Files { + idlflags += -GT -oS PortableServer -Gd \ + -Wb,safe_include=tao/PolicyC.h \ + -Wb,skel_export_macro=TAO_PortableServer_Export \ + -Wb,skel_export_include=tao/PortableServer/portableserver_export.h + idlflags -= -SS + idlflags -= -Sorb + Policy.pidl >> PortableServer/PolicyS.h PortableServer/PolicyS.cpp PortableServer/PolicyS_T.h PortableServer/PolicyS_T.cpp AnyTypeCode/PolicyA.h AnyTypeCode/PolicyA.cpp + } + PidlInstallWithoutBuilding_Files { InterfaceDef.pidl InvalidName.pidl Object_Key.pidl - Policy.pidl Typecode_types.pidl WrongTransaction.pidl orb.idl @@ -656,6 +665,7 @@ project(TAO) : acelib, install, tao_output, taodefaults, pidl, extra_core, taoid Inline_Files { GIOPC.inl + PolicyC.inl *.inl } diff --git a/TAO/tests/AMH_Exceptions/client.cpp b/TAO/tests/AMH_Exceptions/client.cpp index 4145de92f4b..1f6cb71e638 100644 --- a/TAO/tests/AMH_Exceptions/client.cpp +++ b/TAO/tests/AMH_Exceptions/client.cpp @@ -70,6 +70,8 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) roundtrip->shutdown (); } + + orb->destroy (); } catch (const CORBA::Exception& ex) { diff --git a/TAO/tests/AMH_Exceptions/server.cpp b/TAO/tests/AMH_Exceptions/server.cpp index f8132bca70e..7f724da1493 100644 --- a/TAO/tests/AMH_Exceptions/server.cpp +++ b/TAO/tests/AMH_Exceptions/server.cpp @@ -84,7 +84,7 @@ public: virtual void run_event_loop (); public: - /// Accesor method (for servants) to the initialised ORB + /// Accesor method (for servants) to the initialized ORB CORBA::ORB_ptr orb () { return this->orb_.in (); } protected: diff --git a/TAO/tests/AMI/client.cpp b/TAO/tests/AMI/client.cpp index f1855318f91..066eeb5f5ae 100644 --- a/TAO/tests/AMI/client.cpp +++ b/TAO/tests/AMI/client.cpp @@ -22,6 +22,8 @@ const ACE_TCHAR *ior = ACE_TEXT("file://test.ior"); int nthreads = 5; int niterations = 5; int debug = 0; +int shutdown_flag = 0; +int perform_work_flag = 1; int number_of_replies = 0; CORBA::Long in_number = 931232; @@ -31,7 +33,7 @@ int parameter_corruption = 0; int parse_args (int argc, ACE_TCHAR *argv[]) { - ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("dk:n:i:")); + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("dk:n:i:xw")); int c; while ((c = get_opts ()) != -1) @@ -49,6 +51,12 @@ parse_args (int argc, ACE_TCHAR *argv[]) case 'i': niterations = ACE_OS::atoi (get_opts.opt_arg ()); break; + case 'x': + shutdown_flag = 1; + break; + case 'w': + perform_work_flag = 0; + break; case '?': default: ACE_ERROR_RETURN ((LM_ERROR, @@ -57,6 +65,7 @@ parse_args (int argc, ACE_TCHAR *argv[]) "-k <ior> " "-n <nthreads> " "-i <niterations> " + "-x" "\n", argv [0]), -1); @@ -233,35 +242,49 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) // <nthreads*niterations> replies. number_of_replies = nthreads *niterations; - if (debug) + if (perform_work_flag) { - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) : Entering perform_work loop to receive <%d> replies\n", - number_of_replies)); - } + if (debug) + { + ACE_DEBUG ((LM_DEBUG, + "(%P|%t) : Entering perform_work loop to receive <%d> replies\n", + number_of_replies)); + } - // ORB loop. + // ORB loop. - while (number_of_replies > 0) - { - CORBA::Boolean pending = orb->work_pending(); + while (number_of_replies > 0) + { + CORBA::Boolean pending = orb->work_pending(); + + if (pending) + { + orb->perform_work(); + } + } - if (pending) + if (debug) { - orb->perform_work(); + ACE_DEBUG ((LM_DEBUG, + "(%P|%t) : Exited perform_work loop\n")); } } + client.thr_mgr ()->wait (); + + ACE_DEBUG ((LM_DEBUG, "threads finished\n")); + if (debug) { ACE_DEBUG ((LM_DEBUG, - "(%P|%t) : Exited perform_work loop Received <%d> replies\n", + "(%P|%t) : Received <%d> replies\n", (nthreads*niterations) - number_of_replies)); } - client.thr_mgr ()->wait (); - - ACE_DEBUG ((LM_DEBUG, "threads finished\n")); + if (shutdown_flag) + { + server->shutdown (); + } root_poa->destroy (1, // ethernalize objects 0); // wait for completion diff --git a/TAO/tests/AMI/exclusive_rw.conf b/TAO/tests/AMI/exclusive_rw.conf new file mode 100644 index 00000000000..d7ed9ec9d14 --- /dev/null +++ b/TAO/tests/AMI/exclusive_rw.conf @@ -0,0 +1,4 @@ +# $Id$ + +static Client_Strategy_Factory "-ORBTransportMuxStrategy EXCLUSIVE -ORBClientConnectionHandler RW -ORBConnectStrategy blocked" +static Resource_Factory "-ORBFlushingStrategy blocking" diff --git a/TAO/tests/AMI/exclusive_rw.conf.xml b/TAO/tests/AMI/exclusive_rw.conf.xml new file mode 100644 index 00000000000..d9fdac7d3ae --- /dev/null +++ b/TAO/tests/AMI/exclusive_rw.conf.xml @@ -0,0 +1,9 @@ +<?xml version='1.0'?> +<!-- Converted from ./tests/AMI/exclusive.conf by svcconf-convert.pl --> +<ACE_Svc_Conf> + <!-- --> + <!-- $Id$ --> + <!-- --> + <static id="Client_Strategy_Factory" params="-ORBTransportMuxStrategy EXCLUSIVE -ORBclientconnectionhandler RW -ORBConnectStrategy blocked"/> + <static id="Resource_Factory" params="-ORBFlushingStrategy blocking"/> +</ACE_Svc_Conf> diff --git a/TAO/tests/AMI/run_exclusive_rw.pl b/TAO/tests/AMI/run_exclusive_rw.pl new file mode 100755 index 00000000000..d89427bd6be --- /dev/null +++ b/TAO/tests/AMI/run_exclusive_rw.pl @@ -0,0 +1,88 @@ +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; + +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"; + +$client_conf_base = "exclusive_rw$PerlACE::svcconf_ext"; +$client_conf = $client->LocalFile ($client_conf_base); +if ($client->PutFile ($client_conf_base) == -1) { + print STDERR "ERROR: cannot set file <$client_conf>\n"; + exit 1; +} + +$server_debug_level = '0'; +$client_debug_level = '0'; +$iterations = '5'; +$threads = '5'; + +foreach $i (@ARGV) { + if ($i eq '-debug') { + $server_debug_level = '10'; + $client_debug_level = '10'; + } +} + +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 $server_debug_level -o $server_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 get 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; +} + +$CL = $client->CreateProcess ("client", + "-ORBsvcconf $client_conf " + . "-ORBdebuglevel $client_debug_level" + . " -k file://$client_iorfile " + . " -n $threads -i $iterations -d -x"); + +$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/AMI/simple_client.cpp b/TAO/tests/AMI/simple_client.cpp index c7860c02cb5..c8dd6fb68b8 100644 --- a/TAO/tests/AMI/simple_client.cpp +++ b/TAO/tests/AMI/simple_client.cpp @@ -267,6 +267,34 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) l, "Let's talk SMI."); + for (ssize_t ni = 0; ni < niterations; ni++) + { + ACE_DEBUG ((LM_DEBUG, + "Sending another asynch message: %d\n", + ni)); + + ami_test_var->sendc_foo (the_handler_var.in (), + l, + "Let's talk AMI."); + } + + if (debug) + { + ACE_DEBUG ((LM_DEBUG, + "<%d> more asynchronous methods issued\n", + niterations)); + } + + if (debug) + { + ACE_DEBUG ((LM_DEBUG, + "Issuing a synchronous method to collect the AMI replies again\n")); + } + + number = ami_test_var->foo (l, + l, + "Let's talk SMI."); + if (debug) { ACE_DEBUG ((LM_DEBUG, diff --git a/TAO/tests/Alt_Mapping/alt_mapping.mpc b/TAO/tests/Alt_Mapping/alt_mapping.mpc index 302f66953ee..44dd5ab336a 100644 --- a/TAO/tests/Alt_Mapping/alt_mapping.mpc +++ b/TAO/tests/Alt_Mapping/alt_mapping.mpc @@ -30,7 +30,6 @@ project(*Server): taoserver, codeset, avoids_minimum_corba, avoids_corba_e_compa } Inline_Files { - alt_mappingS.inl alt_mappingC.inl } } 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_3531b_Regression/server.cpp b/TAO/tests/Bug_3531b_Regression/server.cpp index 086d101761f..153e1cfec84 100644 --- a/TAO/tests/Bug_3531b_Regression/server.cpp +++ b/TAO/tests/Bug_3531b_Regression/server.cpp @@ -13,6 +13,8 @@ #include "tao/TAO_Export.h" #include "ace/TP_Reactor.h" +#if defined (ACE_HAS_THREADS) + int nthreads = 4; bool debug = false; @@ -32,9 +34,9 @@ bool debug = false; class Worker; int -parse_args (int argc, char *argv[]) +parse_args (int argc, ACE_TCHAR *argv[]) { - ACE_Get_Opt get_opts (argc, argv, "d"); + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT ("d")); int c; while ((c = get_opts ()) != -1) @@ -68,7 +70,7 @@ public: // NOTE: Do *NOT* put the same msg into the msg queue more than once. // This will confuse the msg queue and result it in dropping messages ////////////////////////////////////////////////////////////////////// -class Worker: public ACE_Task<ACE_MT_SYNCH> +class Worker: public ACE_Task<ACE_SYNCH> { public: Worker (void) @@ -92,7 +94,7 @@ ACE_TSS<Worker> *workers_p = 0; int Worker::svc (void) { if (debug) - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Worker thread starting up.\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Worker thread starting up.\n"))); // Register this worker workers.ts_object (const_cast<Worker*> (this)); int retval = 0; @@ -101,7 +103,7 @@ int Worker::svc (void) retval = this->process_cmd (); } if (debug) - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Worker thread shutting down.\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Worker thread shutting down.\n"))); return retval; } @@ -122,7 +124,7 @@ int Worker::process_cmd (void) ACE_Message_Block *mb = 0; if (this->getq (mb, 0) == -1) { - ACE_ERROR ((LM_ERROR, "Error calling getq: $!\n")); + ACE_ERROR ((LM_ERROR, ACE_TEXT ("Error calling getq: $!\n"))); // Strangely, message queues return this instead of ETIME if (errno == EWOULDBLOCK || errno == ESHUTDOWN) return 0; @@ -161,7 +163,7 @@ public: virtual int handle_events (ACE_Time_Value * = 0) { if (TAO_debug_level > 10) - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Executing Test_Reactor::handle_events\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Executing Test_Reactor::handle_events\n"))); // This is called by client leader threads. Note, the loop here // glosses over the fact that the Leader_Follower code does not // work quite the way we want it to. Namely, this logic: @@ -185,6 +187,11 @@ public: workers->process_cmd (); return 0; }; + + virtual int handle_events (ACE_Time_Value &) + { + return this->handle_events (); + } }; // Our own Resource_Factory for testing purposes. This just returns @@ -242,7 +249,7 @@ public: void complete_event (TAO_Leader_Follower &lf) { if (debug) - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Completing event\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Completing event\n"))); this->state_changed (TAO_LF_Event::LFS_SUCCESS, lf); } @@ -283,7 +290,7 @@ public: virtual int send_message (TAO_OutputCDR &, TAO_Stub * = 0, - TAO_Message_Semantics = TAO_TWOWAY_REQUEST, + TAO_Message_Semantics = TAO_Message_Semantics (), ACE_Time_Value * = 0) { return 0; @@ -337,7 +344,7 @@ public: virtual int execute (Worker* worker) { if (debug) - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Shutdown cmd\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Shutdown cmd\n"))); worker->shutdown (true); return 0; } @@ -360,7 +367,7 @@ public: virtual int execute (Worker*) { if (debug) - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Executing TSS_Assert(%d,%d,%d) cmd\n", + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Executing TSS_Assert(%d,%d,%d) cmd\n"), elt_count_, clt_count_, leader_available_)); TAO_Leader_Follower &leader_follower = orb_core_->leader_follower (); TAO_ORB_Core_TSS_Resources* tss = orb_core_->get_tss_resources (); @@ -388,7 +395,7 @@ public: virtual int execute (Worker*) { if (debug) - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Executing Wait_For_Event cmd\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Executing Wait_For_Event cmd\n"))); int retval = lf_.wait_for_event (&event_, &transport_, 0); // The worker has probably been shutdown in order for the client // leader event loop to exit - reactivate the worker so it from @@ -414,7 +421,7 @@ public: virtual int execute (Worker*) { if (debug) - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Executing Cond_Signal cmd\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Executing Cond_Signal cmd\n"))); ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, guard ,this->cond_.mutex (), 0); return this->cond_.signal (); } @@ -454,7 +461,7 @@ public: virtual int execute (Worker* worker) { if (debug) - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Executing Event_Loop_Thread cmd\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Executing Event_Loop_Thread cmd\n"))); TAO_LF_Event_Loop_Thread_Helper elt (lf_, lf_strategy_, 0); while (!worker->shutdown()) worker->process_cmd (); @@ -479,7 +486,7 @@ public: virtual int execute (Worker*) { if (debug) - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Executing Set_Upcall_Thread cmd\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Executing Set_Upcall_Thread cmd\n"))); lf_.set_upcall_thread (); return 0; } @@ -509,8 +516,8 @@ void Test_1 (TAO_ORB_Core* orb_core) TAO_Leader_Follower &leader_follower = orb_core->leader_follower (); TAO_ORB_Core_TSS_Resources* tss = orb_core->get_tss_resources (); - ACE_DEBUG ((LM_DEBUG, "==========\n")); - ACE_DEBUG ((LM_DEBUG, "TEST #1 - Simple Event Loop call\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("==========\n"))); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TEST #1 - Simple Event Loop call\n"))); TSS_ASSERT (tss, leader_follower, 0, 0, false); @@ -530,8 +537,8 @@ void Test_2 (TAO_ORB_Core* orb_core) TAO_LF_Strategy &lf_strategy = orb_core->lf_strategy (); TAO_Leader_Follower &leader_follower = orb_core->leader_follower (); TAO_ORB_Core_TSS_Resources* tss = orb_core->get_tss_resources (); - ACE_DEBUG ((LM_DEBUG, "==========\n")); - ACE_DEBUG ((LM_DEBUG, "TEST #2 - 2 nested Event Loop calls\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("==========\n"))); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TEST #2 - 2 nested Event Loop calls\n"))); TSS_ASSERT (tss, leader_follower, 0, 0, false); @@ -558,8 +565,8 @@ void Test_3 (TAO_ORB_Core* orb_core) TAO_LF_Strategy &lf_strategy = orb_core->lf_strategy (); TAO_Leader_Follower &leader_follower = orb_core->leader_follower (); TAO_ORB_Core_TSS_Resources* tss = orb_core->get_tss_resources (); - ACE_DEBUG ((LM_DEBUG, "==========\n")); - ACE_DEBUG ((LM_DEBUG, "TEST #3 - 2 nested Event Loop calls with set_upcall_thread\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("==========\n"))); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TEST #3 - 2 nested Event Loop calls with set_upcall_thread\n"))); TSS_ASSERT (tss, leader_follower, 0, 0, false); @@ -587,8 +594,8 @@ void Test_3 (TAO_ORB_Core* orb_core) void Test_4 (TAO_ORB_Core* orb_core) { TAO_Leader_Follower &leader_follower = orb_core->leader_follower (); - ACE_DEBUG ((LM_DEBUG, "==========\n")); - ACE_DEBUG ((LM_DEBUG, "TEST #4 - Simple Client Leader thread\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("==========\n"))); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TEST #4 - Simple Client Leader thread\n"))); // Activate a thread Worker wrk1; @@ -626,8 +633,8 @@ void Test_4 (TAO_ORB_Core* orb_core) void Test_5 (TAO_ORB_Core* orb_core) { TAO_Leader_Follower &leader_follower = orb_core->leader_follower (); - ACE_DEBUG ((LM_DEBUG, "==========\n")); - ACE_DEBUG ((LM_DEBUG, "TEST #5 - 2 nested Client Leader calls\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("==========\n"))); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TEST #5 - 2 nested Client Leader calls\n"))); // Activate a thread Worker wrk1; @@ -687,8 +694,8 @@ void Test_5 (TAO_ORB_Core* orb_core) void Test_6 (TAO_ORB_Core* orb_core) { TAO_Leader_Follower &leader_follower = orb_core->leader_follower (); - ACE_DEBUG ((LM_DEBUG, "==========\n")); - ACE_DEBUG ((LM_DEBUG, "TEST #6 - 2 nested Client Leader calls with set_upcall_thread\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("==========\n"))); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TEST #6 - 2 nested Client Leader calls with set_upcall_thread\n"))); // Activate a thread Worker wrk1; @@ -752,8 +759,8 @@ void Test_6 (TAO_ORB_Core* orb_core) void Test_7 (TAO_ORB_Core* orb_core) { TAO_Leader_Follower &leader_follower = orb_core->leader_follower (); - ACE_DEBUG ((LM_DEBUG, "==========\n")); - ACE_DEBUG ((LM_DEBUG, "TEST #7 - Client Leader yields to another client thread\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("==========\n"))); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TEST #7 - Client Leader yields to another client thread\n"))); // Activate a thread Worker wrk1; @@ -821,8 +828,8 @@ void Test_8 (TAO_ORB_Core* orb_core) { TAO_LF_Strategy &lf_strategy = orb_core->lf_strategy (); TAO_Leader_Follower &leader_follower = orb_core->leader_follower (); - ACE_DEBUG ((LM_DEBUG, "==========\n")); - ACE_DEBUG ((LM_DEBUG, "TEST #8 - client becomes leader when event thread dispatched\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("==========\n"))); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TEST #8 - client becomes leader when event thread dispatched\n"))); // Activate a thread Worker wrk1; @@ -886,8 +893,8 @@ void Test_9 (TAO_ORB_Core* orb_core) { TAO_LF_Strategy &lf_strategy = orb_core->lf_strategy (); TAO_Leader_Follower &leader_follower = orb_core->leader_follower (); - ACE_DEBUG ((LM_DEBUG, "==========\n")); - ACE_DEBUG ((LM_DEBUG, "TEST #9 - Client Leader thread yields to Event Loop thread\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("==========\n"))); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TEST #9 - Client Leader thread yields to Event Loop thread\n"))); // Activate a thread Worker wrk1; @@ -967,8 +974,8 @@ void Test_10 (TAO_ORB_Core* orb_core ) { TAO_LF_Strategy &lf_strategy = orb_core->lf_strategy (); TAO_Leader_Follower &leader_follower = orb_core->leader_follower (); - ACE_DEBUG ((LM_DEBUG, "==========\n")); - ACE_DEBUG ((LM_DEBUG, "TEST #10 - ET1437460\n")); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("==========\n"))); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TEST #10 - ET1437460\n"))); // This scenario involves: // - an event loop thread @@ -1097,4 +1104,16 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) return 0; } +#else + +int +ACE_TMAIN(int /*argc*/, ACE_TCHAR * /*argv*/ []) +{ + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("This test only makes sense in an MT build.\n"))); + + return 0; +} + +#endif // !ACE_HAS_THREADS + // **************************************************************** 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_3743_Regression/run_test.pl b/TAO/tests/Bug_3743_Regression/run_test.pl index d1079904971..1ddd6b7b05c 100755 --- a/TAO/tests/Bug_3743_Regression/run_test.pl +++ b/TAO/tests/Bug_3743_Regression/run_test.pl @@ -21,7 +21,7 @@ if (exists $ENV{HOST_ROOT}) { my $test_idlfile = $test->LocalFile ("Test.idl"); # Files to delete after test -my @generated_files = ("TestC.cpp", "TestS.cpp", "TestC.inl", "TestS.inl", "Test.skel.h", "Test.stub.h"); +my @generated_files = ("TestC.cpp", "TestS.cpp", "TestC.inl", "Test.skel.h", "Test.stub.h"); # The IDL compiler $TAO_IDL = $test->CreateProcess ("$tao_idl"); 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_3768_Regression/TestCallback.cpp b/TAO/tests/Bug_3768_Regression/TestCallback.cpp index 9923c07418a..7f760f62544 100644 --- a/TAO/tests/Bug_3768_Regression/TestCallback.cpp +++ b/TAO/tests/Bug_3768_Regression/TestCallback.cpp @@ -13,8 +13,8 @@ void TestCallback::start_threads_and_block (void) { ACE_DEBUG ((LM_DEBUG, "(%P|%t) client - start_threads_and_block\n")); - work_.activate(0,10); - ACE_OS::sleep(-1); + work_.activate(THR_NEW_LWP | THR_JOINABLE | THR_INHERIT_SCHED,10); + work_.wait (); // blocks forever as the worker threads never end } void @@ -26,6 +26,6 @@ TestCallback::test_call (void) void TestCallback::shutdown (void) { - ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - test completed\n")); + ACE_DEBUG ((LM_DEBUG, "(%P|%t) client - test completed\n")); exit (0); } diff --git a/TAO/tests/Bug_3768_Regression/server.cpp b/TAO/tests/Bug_3768_Regression/server.cpp index c18aac37313..e9226e4af11 100644 --- a/TAO/tests/Bug_3768_Regression/server.cpp +++ b/TAO/tests/Bug_3768_Regression/server.cpp @@ -103,7 +103,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) // Run a CORBA worker thread Worker work (orb.in()); - work.activate (0,1); + work.activate (THR_NEW_LWP | THR_JOINABLE | THR_INHERIT_SCHED, 1); ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - waiting for client to call\n")); ACE_OS::sleep (10); if (test_impl->got_callback() == false) { @@ -123,6 +123,10 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - test completed\n")); + orb->shutdown (); // shutdown our ORB + + work.wait (); // wait for the worker to finish + root_poa->destroy (1, 1); orb->destroy (); 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.cpp b/TAO/tests/DSI_AMI_Gateway/test_dsi.cpp index 5f7fecd6224..1b56a99114f 100644 --- a/TAO/tests/DSI_AMI_Gateway/test_dsi.cpp +++ b/TAO/tests/DSI_AMI_Gateway/test_dsi.cpp @@ -14,7 +14,7 @@ #endif /* __ACE_INLINE__ */ void -DSI_Simple_Server::_dispatch (TAO_ServerRequest &request, void *) +DSI_Simple_Server::_dispatch (TAO_ServerRequest &request, TAO::Portable_Server::Servant_Upcall *) { // No need to do any of this if the client isn't waiting. if (request.response_expected ()) 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/ForwardUponObjectNotExist/client.cpp b/TAO/tests/ForwardUponObjectNotExist/client.cpp index 70666db32e1..33a50754c6d 100755 --- a/TAO/tests/ForwardUponObjectNotExist/client.cpp +++ b/TAO/tests/ForwardUponObjectNotExist/client.cpp @@ -6,9 +6,9 @@ const ACE_TCHAR *ior = ACE_TEXT("file://test.ior"); int nthreads = 1; -int do_shutdown = 0; +bool do_shutdown = 0; static const ACE_TCHAR corbaloc_prefix[] = ACE_TEXT("corbaloc:"); -int expected_object_not_exist = 0; +bool expected_object_not_exist = false; int parse_args (int argc, ACE_TCHAR *argv[]) @@ -20,7 +20,7 @@ parse_args (int argc, ACE_TCHAR *argv[]) switch (c) { case 'x': - do_shutdown = 1; + do_shutdown = true; break; case 'k': @@ -54,22 +54,21 @@ parse_args (int argc, ACE_TCHAR *argv[]) class Worker : public ACE_Task_Base { public: + /// Constructor Worker (CORBA::ORB_ptr orb); - // Constructor + /// The actual implementation of the test virtual void run_test (void); - // The actual implementation of the test - // = The Task_Base methods virtual int svc (void); - // Caught OBJECT_NOT_EXIST exception ? - int got_object_not_exist () const; + /// Caught OBJECT_NOT_EXIST exception ? + bool got_object_not_exist () const; private: CORBA::ORB_var orb_; // The ORB reference - int got_object_not_exist_; + bool got_object_not_exist_; }; int @@ -111,10 +110,12 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) server->shutdown (); } - orb->destroy (); + orb->shutdown (); worker.thr_mgr ()->wait (); + orb->destroy (); + if (worker.got_object_not_exist () != expected_object_not_exist) { ACE_ERROR_RETURN ((LM_ERROR, @@ -139,7 +140,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) Worker::Worker (CORBA::ORB_ptr orb) : orb_ (CORBA::ORB::_duplicate (orb)), - got_object_not_exist_ (0) + got_object_not_exist_ (false) { } @@ -152,7 +153,7 @@ Worker::svc (void) } catch (const CORBA::OBJECT_NOT_EXIST &) { - got_object_not_exist_ = 1; + got_object_not_exist_ = true; } catch (...) { @@ -187,7 +188,7 @@ Worker::run_test (void) r)); } -int +bool Worker::got_object_not_exist () const { return got_object_not_exist_; 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/IDL_Inherited_Operation/InheritedOp.mpc b/TAO/tests/IDL_Inherited_Operation/InheritedOp.mpc index ab64f74834c..40f1c93b523 100644 --- a/TAO/tests/IDL_Inherited_Operation/InheritedOp.mpc +++ b/TAO/tests/IDL_Inherited_Operation/InheritedOp.mpc @@ -26,7 +26,6 @@ project(*Server): taoserver { Inline_Files { InheritedOpC.inl - InheritedOpS.inl } IDL_Files { diff --git a/TAO/tests/IDL_Test/IDL_Test.mpc b/TAO/tests/IDL_Test/IDL_Test.mpc index 8c58bdf1d55..13d97910bce 100644 --- a/TAO/tests/IDL_Test/IDL_Test.mpc +++ b/TAO/tests/IDL_Test/IDL_Test.mpc @@ -59,13 +59,13 @@ project(*IDL): taoserver, messaging, gen_ostream { sequence.idl union.idl anyunion.idl + valuetype.idl } IDL_Files { idlflags += -GA -as anonymous.idl dif2.idl - valuetype.idl } IDL_Files { @@ -210,7 +210,6 @@ project(*DLL): taoidldefaults, taolib, messaging { typeprefixS.cpp unionC.cpp unionS.cpp - valuetypeA.cpp valuetypeC.cpp valuetypeS.cpp } diff --git a/TAO/tests/IDL_Test/attribute.idl b/TAO/tests/IDL_Test/attribute.idl index f5dc3e90845..9762b92bed7 100644 --- a/TAO/tests/IDL_Test/attribute.idl +++ b/TAO/tests/IDL_Test/attribute.idl @@ -9,9 +9,15 @@ module Hello { }; + typedef short MyType; + // Sender/Receiver interface interface MyFoo { + attribute MyType rw_attrib_mytype + getraises (InternalErrorA) + setraises (InternalErrorB); + attribute short rw_attrib getraises (InternalErrorA) setraises (InternalErrorB); diff --git a/TAO/tests/IDL_Test/valuetype.idl b/TAO/tests/IDL_Test/valuetype.idl index de7d0f56ea3..3213f6f4b03 100644 --- a/TAO/tests/IDL_Test/valuetype.idl +++ b/TAO/tests/IDL_Test/valuetype.idl @@ -1,5 +1,5 @@ +//============================================================================= -//============================================================================= /** * @file valuetype.idl * @@ -13,6 +13,7 @@ * * @author Gary Duzan <gduzan@bbn.com> Jeff Parsons <j.parsons@vanderbilt.edu> */ + //============================================================================= @@ -23,6 +24,7 @@ // A valuetype factory can have exceptions, so the declaration must pull in // an #include of SystemException.h. + valuetype MyValueType { public string my_string_value; @@ -72,4 +74,43 @@ module X typedef sequence<BXXX> BSeq; }; +// The original problem with the construct below was probably the +// union member, but other features from the original example IDL +// have been left in just in case. +module ModSelection +{ + module SelectionDefns + { + abstract valuetype Criterion + { + void setCriterionRequiredAttributes (inout string theSelectedAttrs); + boolean isValid (in wstring theTrackSelectionAttrs); + }; + + valuetype CriterionExpr : Criterion + { + struct RightCriterionInfos + { + long theCriterionId; + CriterionExpr theRightExpr; + }; + + union RightCriterionExpr switch (boolean) + { + case TRUE: string theRightCriterionInfos; + }; + + public Criterion theLeftCriterion; + public RightCriterionExpr theRightCriterionExpr; + + factory createWithCriterionLink (in Criterion theLeftCriterion, + in string link, + in CriterionExpr theRightCriterion); + + factory createWithSingleCriterion (in Criterion theSingleCriterion); + }; + }; +}; + #endif /* IDL_TEST_VALUETYPE_IDL */ + 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/Mixed_Sync_ASync_Events/MixedSyncASyncEvents.mpc b/TAO/tests/Mixed_Sync_ASync_Events/MixedSyncASyncEvents.mpc new file mode 100644 index 00000000000..b8130b84a4d --- /dev/null +++ b/TAO/tests/Mixed_Sync_ASync_Events/MixedSyncASyncEvents.mpc @@ -0,0 +1,23 @@ +// -*- MPC -*- +// $Id$ + +project(*idl): taoidldefaults, ami { + IDL_Files { + test.idl + } + custom_only = 1 +} + +project(*Exe): taoserver, messaging, ami { + exename = tester + after += *idl + Source_Files { + test_i.cpp + testS.cpp + testC.cpp + main.cpp + } + IDL_Files { + } +} + diff --git a/TAO/tests/Mixed_Sync_ASync_Events/exclusive_rw.conf b/TAO/tests/Mixed_Sync_ASync_Events/exclusive_rw.conf new file mode 100644 index 00000000000..d7ed9ec9d14 --- /dev/null +++ b/TAO/tests/Mixed_Sync_ASync_Events/exclusive_rw.conf @@ -0,0 +1,4 @@ +# $Id$ + +static Client_Strategy_Factory "-ORBTransportMuxStrategy EXCLUSIVE -ORBClientConnectionHandler RW -ORBConnectStrategy blocked" +static Resource_Factory "-ORBFlushingStrategy blocking" diff --git a/TAO/tests/Mixed_Sync_ASync_Events/exclusive_rw.conf.xml b/TAO/tests/Mixed_Sync_ASync_Events/exclusive_rw.conf.xml new file mode 100644 index 00000000000..d9fdac7d3ae --- /dev/null +++ b/TAO/tests/Mixed_Sync_ASync_Events/exclusive_rw.conf.xml @@ -0,0 +1,9 @@ +<?xml version='1.0'?> +<!-- Converted from ./tests/AMI/exclusive.conf by svcconf-convert.pl --> +<ACE_Svc_Conf> + <!-- --> + <!-- $Id$ --> + <!-- --> + <static id="Client_Strategy_Factory" params="-ORBTransportMuxStrategy EXCLUSIVE -ORBclientconnectionhandler RW -ORBConnectStrategy blocked"/> + <static id="Resource_Factory" params="-ORBFlushingStrategy blocking"/> +</ACE_Svc_Conf> diff --git a/TAO/tests/Mixed_Sync_ASync_Events/main.cpp b/TAO/tests/Mixed_Sync_ASync_Events/main.cpp new file mode 100644 index 00000000000..c5094d29282 --- /dev/null +++ b/TAO/tests/Mixed_Sync_ASync_Events/main.cpp @@ -0,0 +1,186 @@ +//============================================================================= +/** + * @file main.cpp + * + * $Id$ + * + * Implementation of the server. + * + * + * @author Alexander Babu Arulanthu <alex@cs.wustl.edu> + * @author Michael Kircher <Michael.Kircher@mchp.siemens.de> + */ +//============================================================================= + + +#include "test_i.h" +#include "tao/debug.h" +#include "ace/OS_NS_stdio.h" +#include "ace/Get_Opt.h" +#include "ace/OS_NS_unistd.h" + +const ACE_TCHAR *ior_output_file = 0; +const ACE_TCHAR *input_ior = 0; +A::RunMode mode_flag = A::RM_SLAVE; +CORBA::ULong max_count = 20; + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:k:c:dm")); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'o': + ior_output_file = get_opts.opt_arg (); + break; + case 'k': + input_ior = get_opts.opt_arg (); + break; + case 'm': + mode_flag = A::RM_MASTER; + if (ior_output_file == 0) + ior_output_file = ACE_TEXT ("master.ior"); + break; + case 'c': + max_count = ACE_OS::atoi (get_opts.opt_arg ()); + break; + case 'd': + TAO_debug_level++; + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-o <iorfile>" + "\n", + argv [0]), + -1); + break; + } + + if (ior_output_file == 0) + ior_output_file = ACE_TEXT ("slave.ior"); + + if (input_ior == 0) + input_ior = (mode_flag == A::RM_SLAVE ? ACE_TEXT ("file://master.ior") : ACE_TEXT ("file://slave.ior")); + + // 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"); + + if (CORBA::is_nil (poa_object.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to initialize the POA.\n"), + 1); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in ()); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (); + + if (parse_args (argc, argv) != 0) + return 1; + + // create, activate and initialize AMI reply handler + Test_Reply_i test_i_rh_srv(orb.in (), + max_count, + mode_flag); + PortableServer::ObjectId_var id = + root_poa->activate_object (&test_i_rh_srv); + + CORBA::Object_var object = root_poa->id_to_reference (id.in ()); + + A::AMI_TestHandler_var rh = + A::AMI_TestHandler::_narrow (object.in ()); + + test_i_rh_srv.test_handler ().set_reply_handler (rh.in ()); + + // create and activate test servant + Test_i test_i_srv (orb.in (), rh.in (), max_count, mode_flag); + + id = root_poa->activate_object (&test_i_srv); + + object = root_poa->id_to_reference (id.in ()); + + A::Test_var test_var = + A::Test::_narrow (object.in ()); + + CORBA::String_var ior = + orb->object_to_string (test_var.in ()); + + ACE_DEBUG ((LM_DEBUG, "Servant activated\n")); + + // If the ior_output_file exists, output the ior to it + if (ior_output_file != 0) + { + 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", + ior_output_file), + 1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + } + + poa_manager->activate (); + + A::Test_var opponent; + do { + if (mode_flag == A::RM_SLAVE) + ACE_OS::sleep (ACE_Time_Value (0, 100)); + + // get object reference for opponent + object = orb->string_to_object (input_ior); + opponent = A::Test::_narrow (object.in ()); + } while (mode_flag == A::RM_SLAVE && CORBA::is_nil (opponent.in ())); + + if (CORBA::is_nil (opponent.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot resolve opponent IOR: %s", + input_ior), + 1); + } + + // register opponent + test_i_srv.set_opponent (opponent.in ()); + test_i_rh_srv.test_handler ().set_opponent (opponent.in ()); + + // start the show + if (mode_flag == A::RM_MASTER) + test_i_rh_srv.test_handler ().start (); + + orb->run (); + + root_poa->destroy (1, // ethernalize objects + 0 // wait for completion + ); + + orb->destroy (); + + ACE_DEBUG ((LM_DEBUG, "event loop finished\n")); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Caught exception:"); + return 1; + } + + return 0; +} diff --git a/TAO/tests/Mixed_Sync_ASync_Events/run_exclusive_rw.pl b/TAO/tests/Mixed_Sync_ASync_Events/run_exclusive_rw.pl new file mode 100755 index 00000000000..04c2c4777d9 --- /dev/null +++ b/TAO/tests/Mixed_Sync_ASync_Events/run_exclusive_rw.pl @@ -0,0 +1,122 @@ +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; + +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"; + +$client_conf_base = "exclusive_rw$PerlACE::svcconf_ext"; +$client_conf = $client->LocalFile ($client_conf_base); +if ($client->PutFile ($client_conf_base) == -1) { + print STDERR "ERROR: cannot set file <$client_conf>\n"; + exit 1; +} +$server_conf = $server->LocalFile ($client_conf_base); +if ($server->PutFile ($client_conf_base) == -1) { + print STDERR "ERROR: cannot set file <$server_conf>\n"; + exit 1; +} + +$server_debug_level = '0'; +$client_debug_level = '0'; + +foreach $i (@ARGV) { + if ($i eq '-debug') { + $server_debug_level = '10'; + $client_debug_level = '10'; + } +} + +my $iorbase_master = "master.ior"; +my $iorbase_slave = "slave.ior"; +my $server_master_iorfile = $server->LocalFile ($iorbase_master); +my $server_slave_iorfile = $server->LocalFile ($iorbase_slave); +my $client_master_iorfile = $client->LocalFile ($iorbase_master); +my $client_slave_iorfile = $client->LocalFile ($iorbase_slave); +$server->DeleteFile($iorbase_master); +$server->DeleteFile($iorbase_slave); +$client->DeleteFile($iorbase_master); +$client->DeleteFile($iorbase_slave); + +$SV = $server->CreateProcess ("tester", "-ORBsvcconf $server_conf -ORBdebuglevel $server_debug_level -o $server_slave_iorfile -k file://$server_master_iorfile"); + +$server_status = $SV->Spawn (); + +if ($server_status != 0) { + print STDERR "ERROR: server returned $server_status\n"; + exit 1; +} + +if ($server->WaitForFileTimed ($iorbase_slave, + $server->ProcessStartWaitInterval()) == -1) { + print STDERR "ERROR: cannot find file <$server_slave_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} +if ($server->GetFile ($iorbase_slave) == -1) { + print STDERR "ERROR: cannot get file <$server_slave_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} +if ($client->PutFile ($iorbase_slave) == -1) { + print STDERR "ERROR: cannot set file <$client_slave_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$CL = $client->CreateProcess ("tester", + "-ORBsvcconf $client_conf " + . "-ORBdebuglevel $client_debug_level" + . " -o $client_master_iorfile" + . " -m -k file://$client_slave_iorfile "); + +$client_status = $CL->Spawn (); + +if ($client_status != 0) { + print STDERR "ERROR: client returned $client_status\n"; + $status = 1; +} + +if ($client->WaitForFileTimed ($iorbase_master, + $client->ProcessStartWaitInterval()) == -1) { + print STDERR "ERROR: cannot find file <$client_master_iorfile>\n"; + $CL->Kill (); $CL->TimedWait (1); + exit 1; +} +if ($client->GetFile ($iorbase_master) == -1) { + print STDERR "ERROR: cannot get file <$client_master_iorfile>\n"; + $CL->Kill (); $CL->TimedWait (1); + exit 1; +} +if ($server->PutFile ($iorbase_master) == -1) { + print STDERR "ERROR: cannot set file <$server_master_iorfile>\n"; + $CL->Kill (); $CL->TimedWait (1); + exit 1; +} + +$client_status = $CL->WaitKill ($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_master); +$server->DeleteFile($iorbase_slave); +$client->DeleteFile($iorbase_master); +$client->DeleteFile($iorbase_slave); + +exit $status; diff --git a/TAO/tests/Mixed_Sync_ASync_Events/run_test.pl b/TAO/tests/Mixed_Sync_ASync_Events/run_test.pl new file mode 100755 index 00000000000..6e5b4b10765 --- /dev/null +++ b/TAO/tests/Mixed_Sync_ASync_Events/run_test.pl @@ -0,0 +1,110 @@ +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; + +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"; + + +$server_debug_level = '0'; +$client_debug_level = '0'; + +foreach $i (@ARGV) { + if ($i eq '-debug') { + $server_debug_level = '10'; + $client_debug_level = '10'; + } +} + +my $iorbase_master = "master.ior"; +my $iorbase_slave = "slave.ior"; +my $server_master_iorfile = $server->LocalFile ($iorbase_master); +my $server_slave_iorfile = $server->LocalFile ($iorbase_slave); +my $client_master_iorfile = $client->LocalFile ($iorbase_master); +my $client_slave_iorfile = $client->LocalFile ($iorbase_slave); +$server->DeleteFile($iorbase_master); +$server->DeleteFile($iorbase_slave); +$client->DeleteFile($iorbase_master); +$client->DeleteFile($iorbase_slave); + +$SV = $server->CreateProcess ("tester", "-ORBdebuglevel $server_debug_level -o $server_slave_iorfile -k file://$server_master_iorfile"); + +$server_status = $SV->Spawn (); + +if ($server_status != 0) { + print STDERR "ERROR: server returned $server_status\n"; + exit 1; +} + +if ($server->WaitForFileTimed ($iorbase_slave, + $server->ProcessStartWaitInterval()) == -1) { + print STDERR "ERROR: cannot find file <$server_slave_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} +if ($server->GetFile ($iorbase_slave) == -1) { + print STDERR "ERROR: cannot get file <$server_slave_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} +if ($client->PutFile ($iorbase_slave) == -1) { + print STDERR "ERROR: cannot set file <$client_slave_iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$CL = $client->CreateProcess ("tester", + "-ORBdebuglevel $client_debug_level" + . " -o $client_master_iorfile" + . " -m -k file://$client_slave_iorfile "); + +$client_status = $CL->Spawn (); + +if ($client_status != 0) { + print STDERR "ERROR: client returned $client_status\n"; + $status = 1; +} + +if ($client->WaitForFileTimed ($iorbase_master, + $client->ProcessStartWaitInterval()) == -1) { + print STDERR "ERROR: cannot find file <$client_master_iorfile>\n"; + $CL->Kill (); $CL->TimedWait (1); + exit 1; +} +if ($client->GetFile ($iorbase_master) == -1) { + print STDERR "ERROR: cannot get file <$client_master_iorfile>\n"; + $CL->Kill (); $CL->TimedWait (1); + exit 1; +} +if ($server->PutFile ($iorbase_master) == -1) { + print STDERR "ERROR: cannot set file <$server_master_iorfile>\n"; + $CL->Kill (); $CL->TimedWait (1); + exit 1; +} + +$client_status = $CL->WaitKill ($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_master); +$server->DeleteFile($iorbase_slave); +$client->DeleteFile($iorbase_master); +$client->DeleteFile($iorbase_slave); + +exit $status; diff --git a/TAO/tests/Mixed_Sync_ASync_Events/test.idl b/TAO/tests/Mixed_Sync_ASync_Events/test.idl new file mode 100644 index 00000000000..2479ae84d9e --- /dev/null +++ b/TAO/tests/Mixed_Sync_ASync_Events/test.idl @@ -0,0 +1,41 @@ +//============================================================================= +/** + * @file test.idl + * + * $Id$ + * + * IDL description of the Test interface + * + * @author Martin Corino <mcorino@remedy.nl> + */ +//============================================================================= + +module A + { + enum RunMode + { + RM_SLAVE, + RM_MASTER + }; + + enum RequestMode + { + RQM_SYNCH, + RQM_ASYNCH + }; + + enum FollowUp + { + FU_TIMER, + FU_NOTIFICATION + }; + + interface Test + { + void request (in RequestMode mode, inout unsigned long counter, out FollowUp follow_up); + + void report (in string msg); + + oneway void shutdown (); + }; + }; diff --git a/TAO/tests/Mixed_Sync_ASync_Events/test_i.cpp b/TAO/tests/Mixed_Sync_ASync_Events/test_i.cpp new file mode 100644 index 00000000000..1dfb79e253c --- /dev/null +++ b/TAO/tests/Mixed_Sync_ASync_Events/test_i.cpp @@ -0,0 +1,275 @@ +//============================================================================= +/** + * @file test_i.cpp + * + * $Id$ + * + * Implementation of the Test interface. + * + */ +//============================================================================= + +#include "test_i.h" +#include "tao/debug.h" +#include "tao/ORB_Core.h" +#include "ace/Reactor.h" +#include "ace/OS_NS_time.h" + +Test_i::Test_i (CORBA::ORB_ptr orb, + A::AMI_TestHandler_ptr rh, + CORBA::ULong max_count, + A::RunMode mode) + : orb_ (CORBA::ORB::_duplicate (orb)), + rh_ (A::AMI_TestHandler::_duplicate (rh)), + max_count_ (max_count), + mode_(mode) +{ + time_t _tm = ACE_OS::time (); + this->seed_ = (unsigned int)_tm; +} + +void +Test_i::set_opponent (A::Test_ptr opp) +{ + this->opponent_ = A::Test::_duplicate (opp); +} + +void +Test_i::request ( + ::A::RequestMode reqmode, + ::CORBA::ULong & counter, + ::A::FollowUp_out follow_up) +{ + ++counter; + + ACE_DEBUG ((LM_DEBUG, + "%N:%l:(%P:%t):Test_i::request: (%C) %C - %d\n", + (reqmode == A::RQM_SYNCH ? "SYNCH" : "ASYNCH"), + (this->mode_ == A::RM_MASTER ? "master" : "slave"), + counter)); + + const char* follow_up_str; + switch (ACE_OS::rand_r (&this->seed_) % 2) + { + case 0: + follow_up = (reqmode == A::RQM_SYNCH ? A::FU_TIMER : A::FU_NOTIFICATION); + follow_up_str = (reqmode == A::RQM_SYNCH ? "TIMER" : "NOTIFICATION"); + break; + case 1: + default: + follow_up = (reqmode == A::RQM_ASYNCH ? A::FU_TIMER : A::FU_NOTIFICATION); + follow_up_str = (reqmode == A::RQM_ASYNCH ? "TIMER" : "NOTIFICATION"); + break; + } + + if (!CORBA::is_nil(this->opponent_.in ())) + { + char buf[1024]; + ACE_OS::snprintf (buf, sizeof(buf), "request #%d followup [%s]", counter, follow_up_str); + + if (reqmode == A::RQM_SYNCH) + { + if (!CORBA::is_nil (this->rh_.in ())) + this->opponent_->sendc_report(this->rh_.in (), buf); + } + else + { + this->opponent_->report (buf); + } + } +} + +void +Test_i::report ( + const char * msg) +{ + ACE_DEBUG ((LM_DEBUG, + "%N:%l:(%P:%t):Test_i::report: %C - %C\n", + (this->mode_ == A::RM_MASTER ? "master" : "slave"), + msg)); +} + +void +Test_i::shutdown (void) +{ + if (this->mode_ == A::RM_SLAVE && !CORBA::is_nil (this->opponent_.in ())) + { + this->opponent_->shutdown (); + } + this->orb_->shutdown (0); +} + +Test_Reply_i::Test_Reply_i (CORBA::ORB_ptr orb, + CORBA::ULong max_count, + A::RunMode mode) + : evh_ (orb, max_count, mode) +{ +} + +void +Test_Reply_i::request ( + ::CORBA::ULong counter, + ::A::FollowUp follow_up) +{ + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "%N:%l:(%P:%t):Test_Reply_i::request\n")); + + this->evh_.handle_followup (follow_up, counter); +} + +void Test_Reply_i::request_excep ( + ::Messaging::ExceptionHolder * ) +{ + ACE_DEBUG ((LM_ERROR, + "%N:%l:(%P:%t):Test_Reply_i::request_excep: %C - unexpected exception\n", + (this->evh_.mode () == A::RM_MASTER ? "master" : "slave"))); + if (!CORBA::is_nil (this->evh_.opponent ())) + this->evh_.opponent ()->shutdown (); + if (this->evh_.mode () == A::RM_SLAVE) + this->evh_.orb ()->shutdown (0); +} + +void +Test_Reply_i::report ( + void) +{ + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "%N:%l:(%P:%t):Test_Reply_i::report\n")); +} + +void +Test_Reply_i::report_excep ( + ::Messaging::ExceptionHolder * ) +{ + ACE_DEBUG ((LM_ERROR, + "%N:%l:(%P:%t):Test_Reply_i::report_excep: %C - unexpected exception\n", + (this->evh_.mode () == A::RM_MASTER ? "master" : "slave"))); + if (!CORBA::is_nil (this->evh_.opponent ())) + this->evh_.opponent ()->shutdown (); + if (this->evh_.mode () == A::RM_SLAVE) + this->evh_.orb ()->shutdown (0); +} + +TestHandler::TestHandler (CORBA::ORB_ptr orb, + CORBA::ULong max_count, + A::RunMode mode) + : orb_ (CORBA::ORB::_duplicate (orb)), + max_count_ (max_count), + mode_ (mode), + counter_ (0) +{ + time_t _tm = ACE_OS::time (); + this->seed_ = (unsigned int)_tm; +} + +void +TestHandler::set_counter (CORBA::ULong counter) +{ + this->counter_ = counter; +} + +void +TestHandler::set_opponent (A::Test_ptr opp) +{ + this->opponent_ = A::Test::_duplicate (opp); +} + +void +TestHandler::set_reply_handler (A::AMI_TestHandler_ptr rh) +{ + this->rh_ = A::AMI_TestHandler::_duplicate (rh); +} + +int +TestHandler::handle_timeout (const ACE_Time_Value &, + const void *) +{ + this->orb_->orb_core ()->reactor ()->cancel_timer (this); + if ((ACE_OS::rand_r (&this->seed_) % 2) == 0) + { + A::FollowUp followup; + if (!CORBA::is_nil (this->opponent_)) + { + this->opponent_->request(A::RQM_SYNCH, this->counter_, followup); + this->handle_followup (followup, this->counter_); + } + } + else + { + if (!CORBA::is_nil (this->opponent_)) + { + this->opponent_->sendc_request(this->rh_.in (), A::RQM_ASYNCH, this->counter_); + } + } + return 0; +} + +int +TestHandler::handle_exception (ACE_HANDLE) +{ + if ((ACE_OS::rand_r (&this->seed_) % 2) == 0) + { + A::FollowUp followup; + if (!CORBA::is_nil (this->opponent_)) + { + this->opponent_->request(A::RQM_SYNCH, this->counter_, followup); + this->handle_followup (followup, this->counter_); + } + } + else + { + if (!CORBA::is_nil (this->opponent_)) + { + this->opponent_->sendc_request(this->rh_.in (), A::RQM_ASYNCH, this->counter_); + } + } + return 0; +} + +void TestHandler::start () +{ + this->orb_->orb_core ()->reactor ()->notify (this); +} + +void +TestHandler::handle_followup (A::FollowUp fup, CORBA::ULong counter) +{ + if (counter > this->max_count_) + { + if (this->mode_ == A::RM_MASTER && !CORBA::is_nil (this->opponent_)) + { + this->opponent_->shutdown (); + } + } + else + { + if (this->mode_ == A::RM_MASTER && !CORBA::is_nil (this->opponent_)) + { + char buf[1024]; + ACE_OS::snprintf (buf, sizeof(buf), "request #%d followup [%s]", + counter, + (fup == A::FU_TIMER ? "TIMER" : "NOTIFICATION")); + this->opponent_->report (buf); + } + + if (TAO_debug_level > 0) + { + ACE_DEBUG ((LM_DEBUG, + "%N:%l:(%P:%t):TestHandler::handle_followup\n")); + } + + this->set_counter (counter); + if (fup == A::FU_TIMER) + { + this->orb_->orb_core ()->reactor ()->schedule_timer (this, 0, + ACE_Time_Value (0, 100), + ACE_Time_Value (0, 100)); + } + else + { + this->orb_->orb_core ()->reactor ()->notify (this); + } + } +} diff --git a/TAO/tests/Mixed_Sync_ASync_Events/test_i.h b/TAO/tests/Mixed_Sync_ASync_Events/test_i.h new file mode 100644 index 00000000000..1110efb4ead --- /dev/null +++ b/TAO/tests/Mixed_Sync_ASync_Events/test_i.h @@ -0,0 +1,125 @@ + +//============================================================================= +/** + * @file test_i.h + * + * $Id$ + * + */ +//============================================================================= + +#ifndef TAO_MSAE_TEST_I_H +#define TAO_MSAE_TEST_I_H + +#include "testS.h" + +/** + * @class Test_i + * + * @brief Test implementation + * + * Implements the Test interface in test.idl + */ +class Test_i : public POA_A::Test +{ +public: + /// ctor + Test_i (CORBA::ORB_ptr orb, + A::AMI_TestHandler_ptr rh, + CORBA::ULong max_count = 10, + A::RunMode mode = A::RM_SLAVE); + + void set_opponent (A::Test_ptr opp); + + virtual void request ( + ::A::RequestMode mode, + ::CORBA::ULong & counter, + ::A::FollowUp_out follow_up); + + virtual void report ( + const char * msg); + + void shutdown (void); + +private: + CORBA::ORB_var orb_; + + A::AMI_TestHandler_var rh_; + + A::Test_var opponent_; + + CORBA::ULong max_count_; + + A::RunMode mode_; + + unsigned int seed_; +}; + +class TestHandler + : public ACE_Event_Handler +{ +public: + TestHandler (CORBA::ORB_ptr orb, + CORBA::ULong max_count, + A::RunMode mode); + + void set_counter (CORBA::ULong counter); + + void set_opponent (A::Test_ptr opp); + + void set_reply_handler (A::AMI_TestHandler_ptr rh); + + virtual int handle_timeout (const ACE_Time_Value &tv, + const void *arg); + + virtual int handle_exception (ACE_HANDLE fc = ACE_INVALID_HANDLE); + + void handle_followup (A::FollowUp fup, CORBA::ULong counter); + + void start (); + + CORBA::ORB_ptr orb () { return this->orb_.in (); } + A::Test_ptr opponent () { return this->opponent_.in (); } + CORBA::ULong max_count () { return this->max_count_; } + A::RunMode mode () { return this->mode_; } + +private: + CORBA::ORB_var orb_; + A::Test_var opponent_; + A::AMI_TestHandler_var rh_; + CORBA::ULong max_count_; + A::RunMode mode_; + CORBA::ULong counter_; + unsigned int seed_; +}; + +class Test_Reply_i : public POA_A::AMI_TestHandler +{ +public: + Test_Reply_i (CORBA::ORB_ptr orb, + CORBA::ULong max_count, + A::RunMode mode); + + virtual void request ( + ::CORBA::ULong counter, + ::A::FollowUp follow_up); + + virtual void request_excep ( + ::Messaging::ExceptionHolder * excep_holder); + + virtual void report ( + void); + + virtual void report_excep ( + ::Messaging::ExceptionHolder * excep_holder); + + TestHandler& test_handler () { return this->evh_; } + +private: + TestHandler evh_; +}; + + + +#endif /* TAO_MSAE_TEST_I_H */ + diff --git a/TAO/tests/Monitor/Marshal_Buffer/marshal_buffer.mpc b/TAO/tests/Monitor/Marshal_Buffer/marshal_buffer.mpc index c96fdb5f6f3..200b4ec6fa6 100644 --- a/TAO/tests/Monitor/Marshal_Buffer/marshal_buffer.mpc +++ b/TAO/tests/Monitor/Marshal_Buffer/marshal_buffer.mpc @@ -50,7 +50,6 @@ project(*server): taoserver { Inline_Files { testC.inl - testS.inl } } diff --git a/TAO/tests/Multiple/Multiple_Impl.h b/TAO/tests/Multiple/Multiple_Impl.h index e53381aef39..cb1cf3bc6c6 100644 --- a/TAO/tests/Multiple/Multiple_Impl.h +++ b/TAO/tests/Multiple/Multiple_Impl.h @@ -12,8 +12,6 @@ */ //============================================================================= - - #ifndef TAO_MULTIPLE_IMPL_H_ #define TAO_MULTIPLE_IMPL_H_ @@ -32,7 +30,6 @@ class Bottom_Impl : public virtual POA_Multiple::Bottom { public: - // Ctor-Dtor Bottom_Impl (CORBA::ORB_ptr orb); virtual ~Bottom_Impl (void); @@ -49,11 +46,8 @@ public: virtual void shutdown (void); private: CORBA::ORB_var orb_; - }; - - /** * @class Delegated_Bottom_Impl * diff --git a/TAO/tests/Multiple/server.cpp b/TAO/tests/Multiple/server.cpp index a3ee10f8edd..c20b1a7d488 100644 --- a/TAO/tests/Multiple/server.cpp +++ b/TAO/tests/Multiple/server.cpp @@ -71,7 +71,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) Multiple::Bottom_var bottom = Multiple::Bottom::_narrow (object_act.in ()); - // Now we stringfy the object reference. + // Now we stringify the object reference. CORBA::String_var ior = orb->object_to_string (bottom.in ()); 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/DSI/server.cpp b/TAO/tests/POA/DSI/server.cpp index f702a4a42c8..4d74ddfce0a 100644 --- a/TAO/tests/POA/DSI/server.cpp +++ b/TAO/tests/POA/DSI/server.cpp @@ -60,6 +60,9 @@ write_iors_to_file (const char *first_ior) result = ACE_OS::fprintf (output_file, "%s", first_ior); + + ACE_OS::fclose (output_file); + if (result < 0 || static_cast<size_t> (result) != ACE_OS::strlen (first_ior)) ACE_ERROR_RETURN ((LM_ERROR, @@ -68,8 +71,6 @@ write_iors_to_file (const char *first_ior) ior_output_file), -1); - ACE_OS::fclose (output_file); - return 0; } 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/POA/Explicit_Activation/server.cpp b/TAO/tests/POA/Explicit_Activation/server.cpp index 54d1e76aa4d..b82f4b1bdef 100644 --- a/TAO/tests/POA/Explicit_Activation/server.cpp +++ b/TAO/tests/POA/Explicit_Activation/server.cpp @@ -78,6 +78,9 @@ write_iors_to_file (const char *first_ior, result = ACE_OS::fprintf (output_file_1, "%s", first_ior); + + ACE_OS::fclose (output_file_1); + if (result != ACE_OS::strlen (first_ior)) ACE_ERROR_RETURN ((LM_ERROR, "ACE_OS::fprintf failed while writing %C to %s\n", @@ -88,6 +91,9 @@ write_iors_to_file (const char *first_ior, result = ACE_OS::fprintf (output_file_2, "%s", second_ior); + + ACE_OS::fclose (output_file_2); + if (result != ACE_OS::strlen (second_ior)) ACE_ERROR_RETURN ((LM_ERROR, "ACE_OS::fprintf failed while writing %C to %s\n", @@ -98,6 +104,9 @@ write_iors_to_file (const char *first_ior, result = ACE_OS::fprintf (output_file_3, "%s", third_ior); + + ACE_OS::fclose (output_file_3); + if (result != ACE_OS::strlen (third_ior)) ACE_ERROR_RETURN ((LM_ERROR, "ACE_OS::fprintf failed while writing %C to %s\n", @@ -105,9 +114,6 @@ write_iors_to_file (const char *first_ior, ior_output_file_3), -1); - ACE_OS::fclose (output_file_1); - ACE_OS::fclose (output_file_2); - ACE_OS::fclose (output_file_3); return 0; } diff --git a/TAO/tests/POA/On_Demand_Act_Direct_Coll/Server_Task.cpp b/TAO/tests/POA/On_Demand_Act_Direct_Coll/Server_Task.cpp index 687ad1e98b6..09ccb0a27f0 100644 --- a/TAO/tests/POA/On_Demand_Act_Direct_Coll/Server_Task.cpp +++ b/TAO/tests/POA/On_Demand_Act_Direct_Coll/Server_Task.cpp @@ -20,6 +20,9 @@ write_iors_to_file (const char *first_ior) int result = ACE_OS::fprintf (output_file, "%s", first_ior); + + ACE_OS::fclose (output_file); + if (result <= 0 || static_cast<size_t> (result) != ACE_OS::strlen (first_ior)) ACE_ERROR_RETURN ((LM_ERROR, @@ -28,7 +31,6 @@ write_iors_to_file (const char *first_ior) ior_output_file), -1); - ACE_OS::fclose (output_file); return 0; } diff --git a/TAO/tests/POA/On_Demand_Loading/Server_Manager.cpp b/TAO/tests/POA/On_Demand_Loading/Server_Manager.cpp index d7ae92ac6a8..bc7526091aa 100644 --- a/TAO/tests/POA/On_Demand_Loading/Server_Manager.cpp +++ b/TAO/tests/POA/On_Demand_Loading/Server_Manager.cpp @@ -54,8 +54,8 @@ int Server_i::write_iors_to_file (const char *first_ior, const char *second_ior) { + // No filename was specified; simply return if (ior_output_file_ == 0) - // No filename was specified; simply return return 0; ACE_TCHAR ior_output_file_1[BUFSIZ]; @@ -83,10 +83,11 @@ Server_i::write_iors_to_file (const char *first_ior, int result = ACE_OS::fprintf (output_file_1, "%s", first_ior); + ACE_OS::fclose (output_file_1); if (result <= 0 || static_cast<size_t> (result) != ACE_OS::strlen (first_ior)) ACE_ERROR_RETURN ((LM_ERROR, - "ACE_OS::fprintf failed while writing %s to %s\n", + "ACE_OS::fprintf failed while writing %C to %s\n", first_ior, ior_output_file_1), -1); @@ -94,24 +95,21 @@ Server_i::write_iors_to_file (const char *first_ior, result = ACE_OS::fprintf (output_file_2, "%s", second_ior); + ACE_OS::fclose (output_file_2); if (result <= 0 || static_cast<size_t> (result) != ACE_OS::strlen (second_ior)) ACE_ERROR_RETURN ((LM_ERROR, - "ACE_OS::fprintf failed while writing %s to %s\n", + "ACE_OS::fprintf failed while writing %C to %s\n", second_ior, ior_output_file_2), -1); - ACE_OS::fclose (output_file_1); - ACE_OS::fclose (output_file_2); return 0; } -// Initialisation of the ORB and POA. - +// Initialization of the ORB and POA. int Server_i::init (int argc, ACE_TCHAR **argv) { - try { // Initialize the ORB. diff --git a/TAO/tests/POA/Reference_Counted_Servant/server.cpp b/TAO/tests/POA/Reference_Counted_Servant/server.cpp index 73ec73fae99..e11da6ae7f1 100644 --- a/TAO/tests/POA/Reference_Counted_Servant/server.cpp +++ b/TAO/tests/POA/Reference_Counted_Servant/server.cpp @@ -87,6 +87,8 @@ write_iors_to_file (const char *ior) result = ACE_OS::fprintf (output_file, "%s", ior); + ACE_OS::fclose (output_file); + if (result != ACE_OS::strlen (ior)) ACE_ERROR_RETURN ((LM_ERROR, "ACE_OS::fprintf failed while writing %C to %s\n", @@ -94,8 +96,6 @@ write_iors_to_file (const char *ior) ior_output_file), -1); - ACE_OS::fclose (output_file); - return 0; } 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/Param_Test/Param_Test.mpc b/TAO/tests/Param_Test/Param_Test.mpc index 97a74931b30..0b887ef7890 100644 --- a/TAO/tests/Param_Test/Param_Test.mpc +++ b/TAO/tests/Param_Test/Param_Test.mpc @@ -26,7 +26,6 @@ project(*Server): taoserver, codeset, avoids_minimum_corba, avoids_corba_e_compa } Inline_Files { - param_testS.inl param_testC.inl } diff --git a/TAO/tests/Policies/Manipulation.cpp b/TAO/tests/Policies/Manipulation.cpp index 7e1169fb0f6..28603617dc6 100644 --- a/TAO/tests/Policies/Manipulation.cpp +++ b/TAO/tests/Policies/Manipulation.cpp @@ -114,6 +114,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) ACE_DEBUG ((LM_DEBUG, "threads finished\n")); + orb->destroy (); } catch (const CORBA::Exception& ex) { 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/RTCORBA/Banded_Connections/client.cpp b/TAO/tests/RTCORBA/Banded_Connections/client.cpp index 77b7ba0bb6f..fb15c1bfa9d 100644 --- a/TAO/tests/RTCORBA/Banded_Connections/client.cpp +++ b/TAO/tests/RTCORBA/Banded_Connections/client.cpp @@ -272,14 +272,10 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) try { // Initialize ORB. - CORBA::ORB_var orb = - CORBA::ORB_init (argc, - argv); + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); // Parse arguments. - int result = - parse_args (argc, - argv); + int result = parse_args (argc, argv); if (result != 0) return result; @@ -324,6 +320,8 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) result = thread_manager.wait (); ACE_ASSERT (result != -1); + + orb->destroy (); } catch (const CORBA::Exception& ex) { diff --git a/TAO/tests/RTCORBA/Persistent_IOR/client.cpp b/TAO/tests/RTCORBA/Persistent_IOR/client.cpp index e38d91d6d8f..540c1e002a2 100644 --- a/TAO/tests/RTCORBA/Persistent_IOR/client.cpp +++ b/TAO/tests/RTCORBA/Persistent_IOR/client.cpp @@ -85,6 +85,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { test->shutdown (); } + + orb->destroy (); } catch (const CORBA::Exception& ex) { diff --git a/TAO/tests/RTCORBA/Policies/Policies.cpp b/TAO/tests/RTCORBA/Policies/Policies.cpp index 78b61e238c8..cd99d329e8a 100644 --- a/TAO/tests/RTCORBA/Policies/Policies.cpp +++ b/TAO/tests/RTCORBA/Policies/Policies.cpp @@ -173,6 +173,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) "%s successful\n", argv[0])); + orb->destroy (); } catch (const CORBA::Exception& ex) { 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..78d643353fd --- /dev/null +++ b/TAO/tests/Skeleton_Inheritance/skel_inheritance.mpc @@ -0,0 +1,209 @@ +// -*- 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 -Gd + + 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 -Gd + + 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 -Gd + + 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 stub_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_two stub_one + + 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_two stub_two skel_one stub_one + + 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 += skel_three stub_three \ + stub_two skel_two \ + skel_one stub_one + + 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_three stub_two stub_one + + 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_; diff --git a/TAO/utils/logWalker/HostProcess.cpp b/TAO/utils/logWalker/HostProcess.cpp index 40c99037617..d68d518bfd8 100644 --- a/TAO/utils/logWalker/HostProcess.cpp +++ b/TAO/utils/logWalker/HostProcess.cpp @@ -14,6 +14,11 @@ PeerNode::PeerNode (long h, PeerProcess *p) { } +PeerNode::~PeerNode (void) +{ + delete peer_; +} + HostProcess::HostProcess (const ACE_CString &src, long pid) : pid_(pid), logfile_name_(src) @@ -34,15 +39,24 @@ HostProcess::~HostProcess (void) { delete reinterpret_cast<Thread *>(i.next()->item_); } -#if 0 - for (PeerProcs::ITERATOR i = by_addr_.begin(); i != servers_.end(); i++) + + for (PeerArray::ITERATOR i(this->by_handle_); !i.done(); i++) { - PeerProcs::ENTRY *entry; + ACE_DLList_Node *entry; if (i.next(entry) == 0) break; - delete entry->item(); + //i.remove (); + + PeerNode *node = reinterpret_cast<PeerNode*>(entry->item_); + PeerProcess *pp = node->peer_; + const ACE_CString &addr = pp->is_server() ? + pp->server_addr() : pp->last_client_addr(); + this->by_addr_.unbind (addr); + delete node; } -#endif + + this->by_addr_.close(); + } void diff --git a/TAO/utils/logWalker/HostProcess.h b/TAO/utils/logWalker/HostProcess.h index 045d2ce0ab9..d92e9dd2630 100644 --- a/TAO/utils/logWalker/HostProcess.h +++ b/TAO/utils/logWalker/HostProcess.h @@ -27,6 +27,7 @@ class Thread; struct PeerNode { PeerNode (long h, PeerProcess *p); + ~PeerNode (void); long handle_; PeerProcess *peer_; bool closed_; diff --git a/TAO/utils/logWalker/Invocation.cpp b/TAO/utils/logWalker/Invocation.cpp index fd357bf9d0e..7e8dc980154 100644 --- a/TAO/utils/logWalker/Invocation.cpp +++ b/TAO/utils/logWalker/Invocation.cpp @@ -21,6 +21,8 @@ static const char *size_leadin = 0; static size_t leadin_len = 0; static const size_t giop_header_len = 12; +static const int date_format = 2; + // GIOP 1.2 header: 12 bytes // Magic: 4 // ver: 2 @@ -138,6 +140,12 @@ Invocation::GIOP_Buffer::GIOP_Buffer(const char *text, ACE_OS::strncpy(timebuf, text, (time_tok - text)); timebuf[time_tok - text] = 0; char *hms = ACE_OS::strchr (timebuf,' '); + if (Session::date_format() == 2) // MMM DD hh:mm:ss.msec YYYY + { + if (hms != 0) + hms = ACE_OS::strchr (hms+1,' '); + } + if (hms != 0) { int hr, min, sec, msec; diff --git a/TAO/utils/logWalker/Log.cpp b/TAO/utils/logWalker/Log.cpp index b8ebdb070a9..0f2ebfa7889 100644 --- a/TAO/utils/logWalker/Log.cpp +++ b/TAO/utils/logWalker/Log.cpp @@ -629,6 +629,60 @@ Log::parse_handler_open (Log *this_, char *line, size_t offset) } void +Log::parse_SSLIOP_from_client (Log *this_, char *line, size_t offset) +{ + long pid = 0; + long tid = 0; + this_->get_pid_tid(pid,tid,line); + + HostProcess *hp = this_->get_host(pid); + Thread *thr = hp == 0 ? 0 : hp->find_thread (tid); + + char *addr = ACE_OS::strchr(line,'<') +1; + char *c = ACE_OS::strchr(addr,'>'); + *c = '\0'; + c = ACE_OS::strstr(c+1,"on ["); + + PeerProcess *pp = thr->pending_peer(); + if (pp == 0) + { + pp = new PeerProcess (offset, false); + thr->pending_peer (pp); + } + + pp->set_server_addr(addr); +} +void +Log::parse_SSLIOP_from_server (Log *this_, char *line, size_t offset) +{ + long pid = 0; + long tid = 0; + this_->get_pid_tid(pid,tid,line); + + HostProcess *hp = this_->get_host(pid); + Thread *thr = hp == 0 ? 0 : hp->find_thread (tid); + + char *addr = ACE_OS::strchr(line,'<') +1; + char *c = ACE_OS::strchr(addr,'>'); + *c = '\0'; + c = ACE_OS::strstr(c+1,"on ["); + long handle = ACE_OS::strtol(c + 4,0,10); + PeerProcess *pp = thr->pending_peer(); + if (pp == 0) + { + ACE_ERROR ((LM_ERROR,"%d: no pending peer for file %s\n", + offset, this_->origin_.c_str())); + return; + } + + Transport *trans = new Transport (addr,false,offset); + pp->add_transport(trans); + trans->handle_ = handle; + thr->pending_peer(0); + hp->add_peer(handle,pp); +} + +void Log::parse_begin_connection (Log *this_, char *line, size_t offset) { long pid = 0; @@ -651,6 +705,20 @@ Log::parse_begin_connection (Log *this_, char *line, size_t offset) } void +Log::parse_SSLIOP_begin_connection (Log *this_, char *line, size_t offset) +{ + long pid = 0; + long tid = 0; + this_->get_pid_tid(pid,tid,line); + + HostProcess *hp = this_->get_host(pid); + Thread *thr = hp == 0 ? 0 : hp->find_thread (tid); + + PeerProcess *pp = new PeerProcess(offset,true); + thr->pending_peer (pp); +} + +void Log::parse_local_addr (Log *this_, char *line, size_t offset) { long pid = 0; @@ -711,6 +779,7 @@ Log::parse_line (char *line, size_t offset) { "GIOP_Message_Base::dump_msg,", parse_dump_msg }, { "GIOP message - HEXDUMP", parse_HEXDUMP }, { "open_i, listening on:", parse_open_listener }, + { "open_i - listening on:", parse_open_listener }, { "Muxed_TMS[", parse_muxed_tms }, { "Exclusive_TMS::request_id", parse_exclusive_tms }, { "process_parsed_messages", parse_process_parsed_msgs }, @@ -718,6 +787,9 @@ Log::parse_line (char *line, size_t offset) { "Wait_On_Read", parse_wait_on_read }, { "::cleanup_queue, byte_count", parse_cleanup_queue }, { "close_connection_eh", parse_close_connection }, + { "ssliop_connect, making a new ", parse_SSLIOP_begin_connection }, + { "SSLIOP connection from client", parse_SSLIOP_from_client }, + { "SSLIOP connection accepted from server", parse_SSLIOP_from_server }, { "IIOP_Connector::begin_connection, to ", parse_begin_connection }, { "IIOP_Connection_Handler::open, The local addr is", parse_local_addr }, { "opened as TAO_SERVER_ROLE", parse_open_as_server }, diff --git a/TAO/utils/logWalker/Log.h b/TAO/utils/logWalker/Log.h index 6d4e2b4da09..3aaffa8853d 100644 --- a/TAO/utils/logWalker/Log.h +++ b/TAO/utils/logWalker/Log.h @@ -45,6 +45,7 @@ private: void parse_line (char* line, size_t offset); static void parse_handler_open (Log *this_, char *line, size_t offset); + static void parse_SSLIOP_handler_open (Log *this_, char *line, size_t offset); static void parse_dump_msg (Log *this_, char *line, size_t offset); static void parse_HEXDUMP (Log *this_, char *line, size_t offset); static void parse_open_listener (Log *this_, char *line, size_t offset); @@ -57,6 +58,9 @@ private: static void parse_cleanup_queue (Log *this_, char *line, size_t offset); static void parse_close_connection (Log *this_, char *line, size_t offset); static void parse_begin_connection (Log *this_, char *line, size_t offset); + static void parse_SSLIOP_begin_connection (Log *this_, char *line, size_t offset); + static void parse_SSLIOP_from_client (Log *this_, char *line, size_t offset); + static void parse_SSLIOP_from_server (Log *this_, char *line, size_t offset); static void parse_local_addr (Log *this_, char *line, size_t offset); static void parse_open_as_server (Log *this_, char *line, size_t offset); diff --git a/TAO/utils/logWalker/PeerProcess.cpp b/TAO/utils/logWalker/PeerProcess.cpp index a2d76cd08d8..10669845dda 100644 --- a/TAO/utils/logWalker/PeerProcess.cpp +++ b/TAO/utils/logWalker/PeerProcess.cpp @@ -54,6 +54,14 @@ PeerProcess::~PeerProcess (void) break; delete entry->item(); } + for (TransportList::ITERATOR i(this->transports_); !i.done(); i++) + { + ACE_DLList_Node *entry; + if (i.next(entry) == 0) + break; + //i.remove (); + delete reinterpret_cast<Transport*>(entry->item_); + } } void diff --git a/TAO/utils/logWalker/Session.cpp b/TAO/utils/logWalker/Session.cpp index 898be5e84c6..ad497703eb9 100644 --- a/TAO/utils/logWalker/Session.cpp +++ b/TAO/utils/logWalker/Session.cpp @@ -9,6 +9,8 @@ long Session::tao_version_ = 200; +int +Session::date_format_ = 1; Session::Session (void) { @@ -51,6 +53,24 @@ Session::tao_version (void) return tao_version_; } +bool +Session::set_date_format (ACE_TCHAR *str) +{ + if (ACE_OS::strncmp(str, ACE_TEXT("1"), 1)== 0) + date_format_ = 1; + else if (ACE_OS::strncmp (str, ACE_TEXT("2"), 1) == 0) + date_format_ = 2; + else + return false; + return true; +} + +int +Session::date_format (void) +{ + return date_format_; +} + void Session::add_process (HostProcess *proc) { diff --git a/TAO/utils/logWalker/Session.h b/TAO/utils/logWalker/Session.h index 2219921469a..7e944fc5701 100644 --- a/TAO/utils/logWalker/Session.h +++ b/TAO/utils/logWalker/Session.h @@ -33,6 +33,9 @@ public: static bool set_tao_version (ACE_TCHAR *str); static long tao_version (void); + static int date_format (void); + static bool set_date_format (ACE_TCHAR *ser); + void alternate_address (const char *string); void default_service (const char *string); @@ -53,6 +56,7 @@ private: ACE_CString base_dir_; ACE_CString outfile_; static long tao_version_; + static int date_format_; }; #endif // LOG_WALKER_SESSION_H diff --git a/TAO/utils/logWalker/logWalker.cpp b/TAO/utils/logWalker/logWalker.cpp index 4e99f33de40..cbd0c7375c3 100644 --- a/TAO/utils/logWalker/logWalker.cpp +++ b/TAO/utils/logWalker/logWalker.cpp @@ -111,12 +111,13 @@ void print_help (void) { ACE_DEBUG ((LM_DEBUG, "tao_logWalker recongizes the following arguments\n")); - ACE_DEBUG ((LM_DEBUG, "-o <filename> - write all output to specified file\n")); - ACE_DEBUG ((LM_DEBUG, "-d <directory> - create separate output files, one per log, and put them in specified directory.\n Either -o or -d may be set but not both. Default output to stdout.\n")); - ACE_DEBUG ((LM_DEBUG, "-m <manifest> - Take inputs from named manifest file\n")); - ACE_DEBUG ((LM_DEBUG, "-t <1.5 .. 2.0> - set source TAO version, default 2.0\n")); - ACE_DEBUG ((LM_DEBUG, "-a <name=address> - bind an alias to a host address.\n Repeat as many times as necessary.\n")); - ACE_DEBUG ((LM_DEBUG, "-p <service=address> - bind a service such as Naming to a specific endpoint address\n")); + ACE_DEBUG ((LM_DEBUG, "-outfile <filename> - write all output to specified file\n")); + ACE_DEBUG ((LM_DEBUG, "-dir <directory> - create separate output files, one per log, and put them in specified directory.\n Either -outfile or -dir may be set but not both. Default output to stdout.\n")); + ACE_DEBUG ((LM_DEBUG, "-manifest <manifest> - Take inputs from named manifest file\n")); + ACE_DEBUG ((LM_DEBUG, "-tao <1.5 .. 2.0> - set source TAO version, default 2.0\n")); + ACE_DEBUG ((LM_DEBUG, "-date <1|2> - interpret dates as 1) YYYY-MM-DD hh:mm:ss.sss, or 2) MMM DD hh:mm:ss.sss YYYY\n")); + ACE_DEBUG ((LM_DEBUG, "-alias <name=address> - bind an alias to a host address.\n Repeat as many times as necessary.\n")); + ACE_DEBUG ((LM_DEBUG, "-proc <service=address> - bind a service such as Naming to a specific endpoint address\n")); } int @@ -131,7 +132,8 @@ ACE_TMAIN (int argc, ACE_TCHAR **argv) Session session; for (int i = 1; i < argc; i++) { - if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-o")) == 0) + if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-outfile")) == 0 || + ACE_OS::strcasecmp (argv[i], ACE_TEXT("-o")) == 0) { if (session.has_dir()) ACE_ERROR_RETURN ((LM_ERROR, @@ -140,7 +142,8 @@ ACE_TMAIN (int argc, ACE_TCHAR **argv) session.outfile(ACE_TEXT_ALWAYS_CHAR(argv[++i])); continue; } - if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-d")) == 0) + if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-dir")) == 0 || + ACE_OS::strcasecmp (argv[i], ACE_TEXT("-d")) == 0) { if (session.has_outfile()) ACE_ERROR_RETURN ((LM_ERROR, @@ -149,12 +152,14 @@ ACE_TMAIN (int argc, ACE_TCHAR **argv) session.make_dir (ACE_TEXT_ALWAYS_CHAR(argv[++i])); continue; } - if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-m")) == 0) + if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-manifest")) == 0 || + ACE_OS::strcasecmp (argv[i], ACE_TEXT("-m")) == 0) { parse_manifest (session, argv[++i]); continue; } - if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-t")) == 0) + if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-tao")) == 0 || + ACE_OS::strcasecmp (argv[i], ACE_TEXT("-t")) == 0) { if (Session::set_tao_version (argv[++i])) continue; @@ -162,12 +167,23 @@ ACE_TMAIN (int argc, ACE_TCHAR **argv) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT("TAO version must be 1.5, 1.6, 1.7, 1.8, or 2.0 \n")), 0); } - if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-a")) == 0) + if (ACE_OS::strcasecmp (argv[i], ACE_TEXT ("-date")) == 0) + { + if (Session::set_date_format (argv[++i])) + continue; + else + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT("Date format option must be 1 or 2\n")), 0); + } + + if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-alias")) == 0 || + ACE_OS::strcasecmp (argv[i], ACE_TEXT("-a")) == 0) { session.alternate_address (ACE_TEXT_ALWAYS_CHAR (argv[++i])); continue; } - if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-p")) == 0) + if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-proc")) == 0 || + ACE_OS::strcasecmp (argv[i], ACE_TEXT("-p")) == 0) { session.default_service (ACE_TEXT_ALWAYS_CHAR (argv[++i])); continue; |