From 2ba21484da0a176c7b084b3dc956e61be7e8bb2c Mon Sep 17 00:00:00 2001 From: parsons Date: Tue, 24 Aug 2010 18:15:09 +0000 Subject: ChangeLogTag: Tue Aug 24 18:13:42 UTC 2010 Jeff Parsons --- ChangeLog | 1089 ++------------------ TAO_IDL/be/be_codegen.cpp | 12 +- TAO_IDL/be/be_sequence.cpp | 2 +- TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp | 16 +- TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp | 24 +- TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp | 23 +- TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp | 135 ++- .../be/be_visitor_sequence/serializer_op_cs.cpp | 2 +- TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp | 18 +- TAO_IDL/be_include/be_codegen.h | 2 +- tao/AnyTypeCode.mpc | 2 +- tao/AnyTypeCode/BasicTypeTraits.h | 28 +- tao/AnyTypeCode/Vector_AnyOp_T.h | 6 +- tao/CONV_FRAME.pidl | 4 +- tao/ClientRequestInterceptor_Adapter.h | 6 +- tao/Codeset/Codeset_Manager_i.cpp | 16 +- tao/GIOP_Message_Base.cpp | 4 +- tao/GIOP_Message_Generator_Parser_10.cpp | 6 +- tao/GIOP_Message_Generator_Parser_12.cpp | 2 +- tao/IIOP_Acceptor.cpp | 11 +- tao/IIOP_Connection_Handler.cpp | 2 +- tao/IIOP_Connection_Handler.h | 5 +- tao/IIOP_Profile.cpp | 45 +- tao/IIOP_Transport.cpp | 6 +- tao/IIOP_Transport.h | 3 +- tao/IOP.pidl | 3 +- tao/LocalObject.cpp | 4 +- tao/LocalObject.h | 4 +- tao/LocateRequest_Invocation_Adapter.cpp | 5 +- tao/LocateRequest_Invocation_Adapter.h | 4 +- tao/MProfile.cpp | 2 +- tao/MProfile.h | 6 +- tao/ORB.cpp | 2 +- tao/ORB.h | 27 +- tao/ORB_Core.cpp | 23 +- tao/ORB_Core.h | 14 +- tao/Object.cpp | 48 +- tao/Object.h | 6 +- tao/ObjectIdList.pidl | 4 +- tao/Object_KeyC.cpp | 58 +- tao/Object_KeyC.h | 41 +- tao/Policy_Current.cpp | 2 +- tao/Policy_Current.h | 2 +- tao/Policy_Current_Impl.cpp | 2 +- tao/Policy_Current_Impl.h | 2 +- tao/Policy_Forward.pidl | 4 +- tao/Policy_Manager.cpp | 7 +- tao/Policy_Manager.h | 2 +- tao/Policy_Set.cpp | 46 +- tao/Policy_Set.h | 2 +- tao/Policy_Set.inl | 2 +- tao/PortableServer.mpc | 2 + tao/PortableServer/Active_Object_Map.cpp | 25 +- tao/PortableServer/Active_Object_Map.h | 38 +- tao/PortableServer/Active_Object_Map.inl | 46 +- tao/PortableServer/LifespanStrategy.h | 2 +- tao/PortableServer/Object_Adapter.h | 4 +- tao/PortableServer/POAManager.cpp | 10 +- tao/PortableServer/POAManager.h | 4 +- tao/PortableServer/POAManagerFactory.cpp | 13 +- tao/PortableServer/POAManagerFactory.h | 2 +- tao/PortableServer/POA_Policy_Set.cpp | 4 +- tao/PortableServer/POA_Policy_Set.h | 2 +- tao/PortableServer/PS_ForwardC.h | 2 - tao/PortableServer/RequestProcessingStrategy.h | 2 +- .../RequestProcessingStrategyAOMOnly.cpp | 2 +- .../RequestProcessingStrategyAOMOnly.h | 2 +- .../RequestProcessingStrategyDefaultServant.cpp | 2 +- .../RequestProcessingStrategyDefaultServant.h | 2 +- .../RequestProcessingStrategyServantManager.cpp | 2 +- .../RequestProcessingStrategyServantManager.h | 2 +- tao/PortableServer/Root_POA.cpp | 234 +++-- tao/PortableServer/Root_POA.h | 54 +- tao/PortableServer/Root_POA.inl | 10 +- tao/PortableServer/ServantRetentionStrategy.h | 4 +- .../ServantRetentionStrategyNonRetain.cpp | 11 +- .../ServantRetentionStrategyNonRetain.h | 4 +- .../ServantRetentionStrategyRetain.cpp | 18 +- .../ServantRetentionStrategyRetain.h | 4 +- tao/Principal.cpp | 13 +- tao/Profile.cpp | 99 +- tao/Profile.h | 7 +- tao/Profile_Transport_Resolver.cpp | 4 +- tao/Profile_Transport_Resolver.h | 13 +- tao/Profile_Transport_Resolver.inl | 10 +- tao/ServerRequestInterceptor_Adapter.h | 6 +- tao/Service_Callbacks.h | 5 +- tao/Service_Context.cpp | 77 +- tao/Service_Context.inl | 2 +- tao/Service_Context_Handler_Registry.cpp | 2 +- tao/Services.pidl | 3 +- tao/Stub.cpp | 11 +- tao/Stub.h | 2 +- tao/Synch_Reply_Dispatcher.cpp | 11 +- tao/Synch_Reply_Dispatcher.h | 6 +- tao/TAO_Server_Request.cpp | 26 +- tao/TAO_Server_Request.h | 4 +- tao/TAO_Server_Request.inl | 4 +- tao/Tagged_Components.cpp | 67 +- tao/operation_details.inl | 4 +- tao/tao.mpc | 2 +- 101 files changed, 1010 insertions(+), 1666 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6f2c48aa13f..53ad5204e16 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,998 +1,109 @@ -Fri Aug 13 13:48:03 UTC 2010 Jeff Parsons - - * orbsvcs/IFR_Service/makefile.am: - - Updated with new file in TAO_IFR_BE. - -Wed Aug 11 20:49:43 UTC 2010 Adam Mitz - - * tao/tao.mpc: - - install orb.idl. - -Tue Aug 10 17:46:16 UTC 2010 Jeff Parsons - - * TAO_IDL/fe/fe_init.cpp(fe_populate_global_scope): - - Put "omg.org" on the pragma prefix stack temporarily - so it will be applied when creating CORBA module - and its contents. - -Tue Aug 10 12:24:31 UTC 2010 Jeff Parsons - - * tests/IDL_Test/included.idl: - - Cosmetic changes. - -Mon Aug 9 17:06:41 UTC 2010 Jeff Parsons - - * TAO_IDL/ast/ast_redef.cpp: - * TAO_IDL/Makefile.am: - - Removed the source file, since its only - method has been moved rewritten in - class FE_Utils, and updated the automake - file. - - * TAO_IDL/include/fe_utils.h: - * TAO_IDL/include/utl_scope_T.cpp: - * TAO_IDL/include/global_extern.h: - * TAO_IDL/ast/ast_module.cpp: - * TAO_IDL/ast/ast_enum.cpp: - * TAO_IDL/fe/fe_utils.cpp: - * TAO_IDL/util/utl_scope.cpp: - - Rewrote the formerly global method - can_be_redefined() in class FE_Utils, - and rerouted all calls to the new version. - This change fixes some redefinition bugs - that were introduced in x.8.1, thanks to - Robert Shectman for - reporting the problem. - - * tests/IDL_Test/interface.idl: - - Added test cases for the above change. - -Mon Aug 9 13:13:21 UTC 2010 Jeff Parsons - - * orbsvcs/tests/InterfaceRepo/Bug_3883_Regression/test.idl: - - Added id string. - -Sun Aug 8 21:10:30 UTC 2010 William R. Otte +Tue Aug 24 18:13:42 UTC 2010 Jeff Parsons + * TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp: * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_visitor_enum.cpp: - * TAO_IDL/be/be_visitor_enum/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_exception.cpp: - * TAO_IDL/be/be_visitor_exception/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_interface/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_sequence.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_structure.cpp: - * TAO_IDL/be/be_visitor_structure/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_union.cpp: - * TAO_IDL/be/be_visitor_union/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: - * tao/AnyTypeCode/Any.h: - * tao/AnyTypeCode/Any.inl: - * tao/AnyTypeCode/Any.cpp: - * tao/AnyTypeCode/ExceptionA.h: - * tao/AnyTypeCode/ExceptionA.cpp: - * tao/AnyTypeCode/PolicyA.h: - * tao/AnyTypeCode/PolicyA.cpp: - * tao/AnyTypeCode/WrongTransactionA.h: - * tao/AnyTypeCode/WrongTransactionA.cpp: - - Expanded use of the ACE_ANY_OPS_USE_NAMESPACE macro for compilers that - implement strict argument dependent lookup, especially for overloaded - operators. - - * tao/DynamicAny/DynCommon.cpp: - * tao/Messaging/Buffering_Constraint_Policy.cpp: - * tao/RTCORBA/RT_ProtocolPropertiesA.cpp: - * tao/orbconf.h: - - Various compile fixes for the Clang LLVM compiler. - -Fri Aug 6 20:24:47 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_visitor_component.cpp: - * TAO_IDL/be/be_visitor_home.cpp: - * TAO_IDL/be_include/be_visitor_home.h: - - Removed unnecessary includes. - -Fri Aug 6 20:18:12 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_visitor_home/home_ch.cpp: - * TAO_IDL/be/be_visitor_home/home_cs.cpp: - * TAO_IDL/be_include/be_visitor_home/home_cs.h: - * TAO_IDL/be_include/be_visitor_home/home_ch.h: - - Removed these visitors, their functionality has - been subsumed by the corresponding interface - visitors. - - * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: - * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: - * TAO_IDL/be/be_visitor_home.cpp: - * TAO_IDL/be/be_visitor_module/module.cpp: - * TAO_IDL/be_include/be_visitor_home.h: - - Changes related to the visitor removal described - above. - -Fri Aug 6 18:57:50 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_visitor_component/component_ss.cpp: - * TAO_IDL/be/be_visitor_component/component_sh.cpp: - * TAO_IDL/be/be_visitor_component/component_si.cpp: - * TAO_IDL/be_include/be_visitor_component/component_sh.h: - * TAO_IDL/be_include/be_visitor_component/component_si.h: - * TAO_IDL/be_include/be_visitor_component/component_ss.h: - - Removed these visitors, their functions are now taken - over by the corresponding interface visitors. - - * TAO_IDL/be/be_visitor_component.cpp: - * TAO_IDL/be/be_visitor_interface/interface_sh.cpp: - * TAO_IDL/be/be_visitor_interface/interface_si.cpp: - * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: - * TAO_IDL/be/be_component.cpp: - * TAO_IDL/be/be_visitor_component/component.cpp: - * TAO_IDL/be/be_visitor_module/module.cpp: - * TAO_IDL/be/be_interface.cpp: - * TAO_IDL/be_include/be_interface.h: - * TAO_IDL/be_include/be_component.h: - * TAO_IDL/be_include/be_visitor_interface/interface_sh.h: - * TAO_IDL/be_include/be_visitor_interface/interface_si.h: - * TAO_IDL/be_include/be_visitor_interface/interface_ss.h: - * TAO_IDL/be_include/be_visitor_component.h: - - - Refactored code from component and interface skeleton - visitors, to facilitate the removal of the former, - as described above. - - - Formatted ACE_ERROR macros to use ACE_TEXT. - - - Cosmetic changes. - -Fri Aug 6 14:43:26 UTC 2010 Jeff Parsons - - * bin/tao_other_tests.lst: - - Added new test below. - -Fri Aug 6 14:35:45 UTC 2010 Jeff Parsons - - * orbsvcs/tests/InterfaceRepo/Bug_3881_Regression/*.*: - - New test, consisiting of IDL file and perl script, to - check for reintroduction of [BUGID:3881]. - -Fri Aug 6 13:42:39 UTC 2010 Jeff Parsons - - * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp(valid_creation): - - Skipped call to pre_exist() check if the new entry represents - an IDL module, since modules may be reopened. This bug (reported - by Bogdan Jeram ) was somehow - reintroduced since 1.7.8. This fix handles any reopened - module, and closes [BUGID:3881]. - -Thu Aug 5 13:25:00 UTC 2010 Build CZar - - * tao/Valuetype/AbstractBase.h: - - Removed hard-coded 'inline' from declaration of _decr_refcount(). - -Wed Aug 4 20:52:39 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_util.cpp: - * TAO_IDL/be/be_global.cpp: - * TAO_IDL/be_include/be_global.h: - - New IDL compiler option -Sg, which disables the generation of - unique extensions on header file preprocessor guards. These - changes are from a patch supplied by Bogdan Jeram - , and close [BUGID:3867]. - - * docs/compiler.html: - - Updated IDL compiler options table. - -Wed Aug 4 19:24:15 UTC 2010 Johnny Willemsen - - * MPC/config/rtcosscheduling.mpb: - * orbsvcs/orbsvcs/RTCosScheduling: - * orbsvcs/orbsvcs/RTCosScheduling.idl: - * orbsvcs/orbsvcs/RTCosScheduling.mpc: - * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ClientScheduler_i.h: - * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ClientScheduler_i.cpp: - * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_PCP_Manager.h: - * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_PCP_Manager.inl: - * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_PCP_Manager.cpp: - * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ServerScheduler_i.h: - * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ServerScheduler_i.inl: - * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ServerScheduler_i.cpp: - * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_export.h: - * orbsvcs/tests/RTCosScheduling: - * orbsvcs/tests/RTCosScheduling/Object1_i.h: - * orbsvcs/tests/RTCosScheduling/Object1_i.cpp: - * orbsvcs/tests/RTCosScheduling/README: - * orbsvcs/tests/RTCosScheduling/RTCosScheduling.mpc: - * orbsvcs/tests/RTCosScheduling/client.cpp: - * orbsvcs/tests/RTCosScheduling/run_test.pl: - * orbsvcs/tests/RTCosScheduling/schedule.cfg: - * orbsvcs/tests/RTCosScheduling/server.ior: - * orbsvcs/tests/RTCosScheduling/server.cpp: - * orbsvcs/tests/RTCosScheduling/svc.conf: - * orbsvcs/tests/RTCosScheduling/testSched.idl: - * orbsvcs/tests/RTCosScheduling/testSched_export.h: - Removed these files, RTCosScheduling got disabled with a dummy label - 5 years ago because it used a non portable way to register - interceptors and in those 5 years nobody complained about this - -Wed Aug 4 17:54:39 UTC 2010 Jeff Parsons - - * test//Bug_3672_Regression/client.cpp: - - Changed call orb->_decr_refcnt() to new name _decr_refcount(). - - * TAO_IDL/be/be_visitor_argument/invoke_cs.cpp: - * TAO_IDL/be/be_visitor_argument/marshal_ss.cpp: - - Removed unused local variable and commented out code. - - * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: - - In the generated marshal() operation, added generation of - /*. . .*/ guards around the 'cdr' parameter if the - interface is local and parameter is not used. - - * tao/Object.h: - - Removed hard-coded 'inline' from declaration of _decr_refcount(). - -Wed Aug 4 14:48:11 UTC 2010 Adam Mitz - + * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_sequence/serializer_op_cs.cpp: + * TAO_IDL/be/be_sequence.cpp: + * TAO_IDL/be_include/be_codegen.h: + * tao/Tagged_Components.cpp: + * tao/Synch_Reply_Dispatcher.h: + * tao/ORB_Core.cpp: * tao/tao.mpc: - - orb.idl is not a Template_File. Adding it to that list causes - uninteded side-effects that produce an unusable project with vc10. - Moved it to the PIDL_Files so that it will continue to not be - compiled by tao_idl. - -Wed Aug 4 14:43:14 UTC 2010 Johnny Willemsen - - * orbsvcs/orbsvcs/Notify/XML_Loader.h: - * orbsvcs/orbsvcs/Notify/XML_Loader.cpp: - Fixed compile errors - -Wed Aug 4 13:10:21 UTC 2010 Marcel Smit - - * tao/SystemException.cpp: - Renamed TAO_SKIP_NEW_LINE_IN_EXCEPTION_LOGGING to - TAO_SUPPRESS_NEW_LINE_IN_EXCEPTION_LOGGING. - -Wed Aug 4 12:21:58 UTC 2010 Marcel Smit - - * tao/SystemException.cpp: - Added TAO_SKIP_NEW_LINE_IN_EXCEPTION_LOGGING define. When set, - no newline character will occur in the exception logging and therefor - all logging will appear on one line. - -Wed Aug 4 08:41:54 UTC 2010 Johnny Willemsen - - * orbsvcs/ImplRepo_Service/Locator_Repository.cpp: - Fixed compile errors - -Tue Aug 3 14:48:42 UTC 2010 Jeff Parsons - - * tao/Environment.cpp: - - Added Id string. - - * tao/Object.inl: - * tao/Valuetype/AbstractBase.inl: - - Replace 'inline' with 'ACE_INLINE'. - - * TAO_IDL/be/be_visitor_argument/argument.cpp: - - Added missing final newline. - -Tue Aug 3 14:17:23 UTC 2010 Vladimir Zykov - - * tests/Exposed_Policies/Policy_Verifier.cpp: - Fixed memory leaks. - -Tue Aug 3 13:59:58 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_visitor_component/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_component/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_component/component_ch.cpp: - * TAO_IDL/be/be_visitor_component/component_ci.cpp: - * TAO_IDL/be/be_visitor_component/cdr_op_ch.cpp: - * TAO_IDL/be/be_visitor_component/component_cs.cpp: - * TAO_IDL/be/be_visitor_component/cdr_op_cs.cpp: - * TAO_IDL/be_include/be_visitor_component/cdr_op_cs.h: - * TAO_IDL/be_include/be_visitor_component/any_op_ch.h: - * TAO_IDL/be_include/be_visitor_component/any_op_cs.h: - * TAO_IDL/be_include/be_visitor_component/component_ch.h: - * TAO_IDL/be_include/be_visitor_component/component_ci.h: - * TAO_IDL/be_include/be_visitor_component/cdr_op_ch.h: - * TAO_IDL/be_include/be_visitor_component/component_cs.h: - - Removed these files, the contained visitors are now - replaced in the traversal by the corresponding interface - visitor. - - * TAO_IDL/be/be_visitor_exception/exception_ch.cpp: - * TAO_IDL/be/be_visitor_typecode/typecode_decl.cpp: - * TAO_IDL/be/be_visitor_argument/invoke_cs.cpp: - * TAO_IDL/be/be_visitor_argument/argument.cpp: - * TAO_IDL/be/be_visitor_argument/upcall_ss.cpp: - * TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp: - * TAO_IDL/be/be_visitor_argument/marshal_ss.cpp: - * TAO_IDL/be/be_visitor_component.cpp: - * TAO_IDL/be/be_visitor_operation/operation_ss.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/cdr_op_ch.cpp: - * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: - * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: - * TAO_IDL/be/be_visitor_interface/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp: - * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_sequence/sequence_cs.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_component.cpp: - * TAO_IDL/be/be_visitor_interface.cpp: - * TAO_IDL/be/be_visitor_module/module.cpp: - * TAO_IDL/be/be_visitor_union/union_ch.cpp: - * TAO_IDL/be/be_visitor_structure/structure_ch.cpp: - * TAO_IDL/be/be_extended_port.cpp: - * TAO_IDL/be/be_interface.cpp: - * TAO_IDL/be_include/be_interface.h: - * TAO_IDL/be_include/be_component.h: - * TAO_IDL/be_include/be_visitor_typecode/typecode_decl.h: - * TAO_IDL/be_include/be_visitor_argument/argument.h: - * TAO_IDL/be_include/be_type.h: - * TAO_IDL/be_include/be_visitor_interface/cdr_op_cs.h: - * TAO_IDL/be_include/be_visitor_interface/any_op_ch.h: - * TAO_IDL/be_include/be_visitor_interface/interface.h: - * TAO_IDL/be_include/be_visitor_interface/any_op_cs.h: - * TAO_IDL/be_include/be_visitor_interface/interface_ch.h: - * TAO_IDL/be_include/be_visitor_interface/interface_ci.h: - * TAO_IDL/be_include/be_visitor_interface/cdr_op_ch.h: - * TAO_IDL/be_include/be_visitor_interface/interface_cs.h: - * TAO_IDL/be_include/be_visitor_component_scope.h: - * TAO_IDL/be_include/be_visitor_interface.h: - * TAO_IDL/be_include/be_visitor_component.h: - - - Factored common stub header file code generation into - a method in class be_type. - - - Abstracted differences in stub code generation between - interfaces and components into methods on the - corresponding node classes. - - - Replaced calls to component visitors for stub, cdr op - and any op generation with the corresponding interface - visitors. - - * tao/Object.inl: - * tao/AnyTypeCode/TypeCode.cpp: - * tao/AnyTypeCode/AnyTypeCode_methods.h: - * tao/AnyTypeCode/TypeCode.inl: - * tao/AnyTypeCode/NVList.h: - * tao/AnyTypeCode/NVList.cpp: - * tao/AnyTypeCode/NVList.inl: - * tao/Adapter.h: - * tao/IFR_Client/IFR_Client_Adapter_Impl.cpp: - * tao/ZIOP_Adapter.cpp: - * tao/Unbounded_Sequence_CDR_T.h: - * tao/DynamicInterface/ExceptionList.h: - * tao/DynamicInterface/Server_Request.h: - * tao/DynamicInterface/Context.h: - * tao/DynamicInterface/ExceptionList.cpp: - * tao/DynamicInterface/ExceptionList.inl: - * tao/DynamicInterface/Request.h: - * tao/DynamicInterface/DII_CORBA_methods.h: - * tao/DynamicInterface/Dynamic_Adapter_Impl.cpp: - * tao/DynamicInterface/Server_Request.inl: - * tao/DynamicInterface/Server_Request.cpp: - * tao/DynamicInterface/Context.cpp: - * tao/DynamicInterface/Context.inl: - * tao/DynamicInterface/Request.inl: - * tao/DynamicInterface/Request.cpp: - * tao/CORBA_methods.h: - * tao/Environment.h: + * tao/GIOP_Message_Base.cpp: + * tao/AnyTypeCode/Vector_AnyOp_T.h: + * tao/AnyTypeCode/BasicTypeTraits.h: + * tao/PortableServer.mpc: + * tao/Policy_Set.cpp: + * tao/PortableServer/RequestProcessingStrategyServantManager + * tao/PortableServer/ServantRetentionStrategyNonRetain.cpp: + * tao/PortableServer/RequestProcessingStrategyAOMOnly.h: + * tao/PortableServer/POA_Policy_Set.h: + * tao/PortableServer/ServantRetentionStrategyRetain.cpp: + * tao/PortableServer/POAManager.cpp: + * tao/PortableServer/POAManager.h: + * tao/PortableServer/Active_Object_Map.h: + * tao/PortableServer/Object_Adapter.h: + * tao/PortableServer/Active_Object_Map.inl: + * tao/PortableServer/ServantRetentionStrategy.h: + * tao/PortableServer/RequestProcessingStrategy.h: + * tao/PortableServer/RequestProcessingStrategyDefaultServant + * tao/PortableServer/Root_POA.inl: + * tao/PortableServer/POAManagerFactory.cpp: + * tao/PortableServer/ServantRetentionStrategyRetain.h: + * tao/PortableServer/RequestProcessingStrategyServantManager + * tao/PortableServer/POAManagerFactory.h: + * tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp: + * tao/PortableServer/RequestProcessingStrategyDefaultServant + * tao/PortableServer/Active_Object_Map.cpp: + * tao/PortableServer/Root_POA.cpp: + * tao/PortableServer/Root_POA.h: + * tao/PortableServer/LifespanStrategy.h: + * tao/PortableServer/POA_Policy_Set.cpp: + * tao/PortableServer/PS_ForwardC.h: + * tao/PortableServer/ServantRetentionStrategyNonRetain.h: + * tao/IIOP_Acceptor.cpp: + * tao/Object_KeyC.cpp: + * tao/Synch_Reply_Dispatcher.cpp: + * tao/Stub.cpp: + * tao/LocateRequest_Invocation_Adapter.cpp: + * tao/MProfile.h: + * tao/Object_KeyC.h: + * tao/Profile_Transport_Resolver.inl: + * tao/Profile_Transport_Resolver.h: + * tao/operation_details.inl: + * tao/IIOP_Transport.h: + * tao/Profile.cpp: + * tao/IIOP_Connection_Handler.cpp: + * tao/ClientRequestInterceptor_Adapter.h: + * tao/Service_Context.cpp: + * tao/Policy_Set.inl: + * tao/ORB.cpp: * tao/ORB.h: - * tao/Environment.cpp: + * tao/Policy_Current.cpp: + * tao/Profile.h: * tao/Object.h: - * tao/IORManipulation/IORManip_Filter.h: + * tao/Stub.h: + * tao/Policy_Manager.h: + * tao/Service_Callbacks.h: + * tao/TAO_Server_Request.cpp: * tao/Principal.cpp: - * tao/Principal.h: - * tao/Valuetype/AbstractBase.h: - * tao/Valuetype/AbstractBase.inl: - * tao/Valuetype/AbstractBase.cpp: - * tao/Valuetype/Value_CORBA_methods.h: - * tao/Object.cpp:: - * tao/ORB.inl - * tao/Environment.inl: - * tao/Principal.inl: - - Made CORBA::is_nil() and CORBA::release() into - template functions, and removed all the overloads. - This fix closes [BUGID:3854]. - -Tue Aug 3 12:07:11 UTC 2010 Johnny Willemsen - - * MPC/config/taodefaults.mpb: - Removed exceptions as base, we are removing non exception support - - * tao/Acceptor_Registry.cpp: - Removed not needed include - - * tao/CORBALOC_Parser.h: - Updated include base ace/Array.h will be removed soon - -Sun Aug 1 18:16:59 UTC 2010 Johnny Willemsen - - * NEWS: - Updated for next release - -Sun Aug 01 11:30:54 CEST 2010 Johnny Willemsen - - * TAO version 1.8.1 released. - -Wed Jul 28 13:34:11 UTC 2010 Jeff Parsons - - * NEWS: - - Updated with IDL compiler changes. - -Tue Jul 27 20:00:14 UTC 2010 Jeff Parsons - - * TAO_IDL/driver/drv_args.cpp: - * TAO_IDL/util/utl_err.cpp: - * TAO_IDL/util/utl_global.cpp: - * TAO_IDL/include/idl_global.h: - - Modified IDL compiler handling of anonymous types. - Default is now silence, or no output. IDL_ANON_ERROR, - IDL_ANON_WARNING, or IDL_ANON_SILENT may be defined - in config.h to select global behavior of outputting - error, warning or nothing respectively. The command - line options -ae (error), -aw (warning) or -as - (silent) may be used to override this behavior - locally. - - * MPC/config/idl_anon_error.mpb: - * MPC/config/idl_anon_warning.mpb: - * MPC/config/idl_anon_silent.mpb: - - New base project files, which simply add -ae, -aw - or -as, respectively, to the IDL compiler command - line. - - * docs/compiler.html: - - Updated IDL compiler documentation. - - * tests/IDL_Test/IDL_Test.mpc: - - Removed -as option from project, it is now the default - behavior. - -Tue Jul 27 11:51:25 UTC 2010 Marcel Smit - - * examples/CSD_Strategy/ThreadPool5/Foo.idl: - * examples/Logging/Logger.idl: - * tests/DII_Collocation_Tests/oneway/Test.idl: - - Removed anonymous constructs from test IDL and modified - test code accordingly. - -Sat Jul 24 20:41:24 UTC 2010 Johnny Willemsen - - * TAO_IDL/util/utl_global.cpp: - For the moment make -as the default, that should resolve a lot of - issues on the scoreboard and makes it possible to resolve the fallout - seperately and get a feeling on the current repo status - -Sat Jul 24 07:35:12 UTC 2010 Marcel Smit - - * tests/OBV/ValueBox/vb_struct.idl: - - Removed anonymous constructs from test IDL and modified - test code accordingly. - -Sat Jul 24 07:28:04 UTC 2010 Marcel Smit - - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B.idl: - * tests/DSI_AMI_Gateway/test.idl: - * tests/DSI_Gateway/test.idl: - - Removed anonymous constructs from test IDL and modified - test code accordingly. - -Sat Jul 24 07:15:15 UTC 2010 Marcel Smit - - * tests/Bug_3506_Regression/IF_EXE_M_R_Structs.idl: - * tests/Bug_3524_Regression/test.idl: - - Removed anonymous constructs from test IDL and modified - test code accordingly. - -Fri Jul 23 20:59:59 UTC 2010 Jeff Parsons - - * TAO_IDL/include/idl_global.h: - * TAO_IDL/fe/y.tab.cpp: - * TAO_IDL/fe/idl.yy: - * TAO_IDL/driver/drv_args.cpp: - * TAO_IDL/util/utl_global.cpp: - - Added -as option to completely silence any diagnostic - for anonymous IDL constructs. - - * docs/compiler.html: - - Updated IDL compiler options documentation. - - * tests/IDL_Test/IDL_Test.mpc: - - Replace -aw option with the new -as option. - -Fri Jul 23 19:56:53 UTC 2010 Jeff Parsons - - * tests/Param_Test/big_union.cpp: - * tests/Param_Test/param_test.idl: - * tests/Param_Test/recursive_union.cpp: - - Removed anonymous constructs from test IDL and modified - test code accordingly. - -Thu Jul 22 19:21:28 UTC 2010 Phil Mesnier - - * examples/CSD_Strategy/ThreadPool4/Foo.idl: - * orbsvcs/orbsvcs/miop.idl: - * orbsvcs/tests/InterfaceRepo/IFR_Self_Recursive_IDL_Test/Test.idl: - * performance-tests/Anyop/test.idl: - * tests/Bug_2119_Regression/test.idl: - - Fix anonymous type errors. - -Thu Jul 22 03:57:34 UTC 2010 William R. Otte - - * TAO_IDL/util/utl_err.cpp: - * TAO_IDL/util/utl_global.cpp: - - Fuzz. - -Wed Jul 21 21:38:11 UTC 2010 Phil Mesnier - - * orbsvcs/orbsvcs/RtecUDPAdmin.idl: - * orbsvcs/orbsvcs/miop.idl: - - Fix anonymous arrays that the IDL compiler now complains about. - -Wed Jul 21 16:22:38 UTC 2010 Jeff Parsons - - * TAO_IDL/fe/idl.yy: - * TAO_IDL/fe/y.tab.cpp: - - Overlooked change in error message call signature. - - * tests/IDL_Test/IDL_Test.mpc: - - Added new option -aw from - - Wed Jul 21 15:02:16 UTC 2010 Jeff Parsons - - to necessary IDL files. - -Wed Jul 21 15:54:27 UTC 2010 Phil Mesnier - - * tao/TAO_Internal.cpp: - - reverted for_TAO specific call to service gestalt open. - -Wed Jul 21 15:43:39 UTC 2010 Vladimir Zykov - - * tests/Sequence_Unit_Tests/value_sequence_tester.hpp: - Fixed a valgrind complain about uninitialized value. - -Wed Jul 21 15:02:16 UTC 2010 Jeff Parsons - - * TAO_IDL/ast/ast_array.cpp: - - Cosmetic changes. - - * TAO_IDL/include/idl_global.h: - * TAO_IDL/include/utl_err.h: - * TAO_IDL/fe/y.tab.cpp: - * TAO_IDL/fe/idl.yy: - * TAO_IDL/driver/drv_args.cpp: - * TAO_IDL/util/utl_err.cpp: - * TAO_IDL/util/utl_global.cpp: - - An error is now output when an anonymous - type is seen. For legacy IDL files, a - command line option -aw has been added, - which will cause a warning to be output - instead. - - * docs/compiler.html: - - Updated documentation with the new option above. - -Wed Jul 21 09:57:34 UTC 2010 Vladimir Zykov - - * tao/ORB_Core_TSS_Resources.cpp: - * tao/ORB_Core.cpp: - * tao/ORB_Core.inl: - * tao/ORB_Core_TSS_Resources.h: * tao/ORB_Core.h: - Fixed bug 2533. Now ORB_Core's TSS resources are cleaned during - orb destroy. - - * tests/Portable_Interceptors/Slot/driver.cpp: - Explicitely destroy orb since doing this implicitely when main() - returns is too late. - -Wed Jul 21 03:09:21 UTC 2010 Phil Mesnier - - * tao/TAO_Internal.cpp: - - Fix for premature committal error. - -Wed Jul 21 02:34:25 UTC 2010 Phil Mesnier - - * tao/TAO_Internal.cpp: - - Use the modified open method in the ACE_Service_Gestalt to get - the behavior that has been assumed since the introduction of - multiple service contexts. - -Tue Jul 20 12:28:24 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_visitor_attribute/attribute.cpp: - - Fixed typo in facet impl attribute operation generation, - similar to the fix in - - Mon Jul 19 17:14:48 UTC 2010 Jeff Parsons - -Mon Jul 19 18:25:04 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_visitor_connector/connector_ami_rh_exs.cpp: - - Fixed fuzz error. - -Mon Jul 19 18:19:22 UTC 2010 Jeff Parsons - - * TAO_IDL/driver/drv_preproc.cpp: - - Fixed typo in OpenVMS-spcific code. - -Mon Jul 19 17:14:48 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_visitor_operation/operation_exs.cpp: - - Fixed typo in facet impl operation generation. - -Sat Jul 17 14:13:33 UTC 2010 Phil Mesnier - - * tao/TAO_Internal.cpp (ORB::open_services): - - Silence compiler warnings - -Fri Jul 16 22:13:14 UTC 2010 Phil Mesnier - - * tao/TAO_Internal.cpp: - - Detect and allow an ENOENT error returned from opening a service - configuration context. That is alright because any explicitly named - service config files are checked for existence when the -ORBSvcConf - argument is processed, so the only file that could raise ENOENT is - a defaulted svc.conf. - -Thu Jul 15 13:37:06 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_codegen.cpp(end_server_header): - - Changes to avoid a mismatched versioned namespace macro - pair in *S.h when the -SS option is used. - -Thu Jul 15 12:55:54 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_visitor_connector/executor_ami_exs.cpp: - * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: - * TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp: - - Added code generation for _get_component() and - _set_component) in the AMI4CCM connector's facet executor, - as well as code to initialize and reset this value in - the corresponding connector executor. - -Thu Jul 15 09:44:25 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_visitor_connector/connector_ami_rh_exs.cpp: - * TAO_IDL/be/be_visitor_connector/connector_ami_rh_exh.cpp: - * TAO_IDL/be_include/be_visitor_connector/connector_ami_rh_exs.h: - * TAO_IDL/be_include/be_visitor_connector/connector_ami_rh_exh.h: - - New visitors, generating the AMI4CCM reply handler - implementation, with empty method bodies, and triggered by - -Gex used on the generated *A.idl file. The option -Gcn - used on this file will generate a *A_conn.{h,cpp} set - of files. The addition of -Gex to this command line - will trigger the generation of a *A_conn_i.{h,cpp} - set of files, containing the corresponding empty - implementations of the reply handler methods. - - * TAO_IDL/be/be_visitor_home/home_exs.cpp: - * TAO_IDL/be/be_visitor_operation/operation_exs.cpp: - * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_visitor_root/root_cnh.cpp: - * TAO_IDL/be/be_visitor_root/root_cns.cpp: - * TAO_IDL/be/be_visitor_connector.cpp: - * TAO_IDL/be/be_visitor_component/servant_svs.cpp: - * TAO_IDL/be/be_global.cpp: - * TAO_IDL/be/be_visitor_attribute/attribute.cpp: - * TAO_IDL/be/be_visitor_connector/connector_ami_exs.cpp: - * TAO_IDL/be/be_visitor_connector/connector_ami_exh.cpp: - * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: - * TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp: - * TAO_IDL/be/be_visitor.cpp: - * TAO_IDL/be_include/be_visitor_operation/operation_exs.h: - * TAO_IDL/be_include/be_visitor_context.h: - * TAO_IDL/be_include/be_visitor_connector.h: - * TAO_IDL/be_include/be_visitor.h: - * TAO_IDL/be_include/be_codegen.h: - * TAO_IDL/be_include/be_helper.h: - * TAO_IDL/be_include/be_visitor_attribute/attribute.h: - * TAO_IDL/be_include/be_visitor_connector/facet_ami_exh.h: - * TAO_IDL/be_include/be_visitor_connector/connector_ami_exh.h: - * TAO_IDL/be_include/be_global.h: - - Changes to existing files necessary to complete the - support of AMI4CCM reply handler implementation - generation. Also some minor cosmetic and comment changes. - -Thu Jul 15 09:23:20 UTC 2010 Johnny Willemsen - - * orbsvcs/orbsvcs/Trader/Constraint_Visitors.h: - * orbsvcs/orbsvcs/Trader/Offer_Database.h: - * orbsvcs/orbsvcs/Trader/Offer_Iterators.h: - * tao/Bounded_Basic_String_Sequence_T.h: - * tao/Bounded_Object_Reference_Sequence_T.h: - * tao/Bounded_Value_Sequence_T.h: - * tao/Endpoint.h: - * tao/Unbounded_Basic_String_Sequence_T.h: - * tao/Unbounded_Object_Reference_Sequence_T.h: - * tao/Unbounded_Octet_Sequence_T.h: - Doxygen improvements - -Tue Jul 13 11:29:59 UTC 2010 Jeff Parsons - - * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/fe/fe_utils.cpp: - * TAO_IDL/fe/y.tab.cpp: - * TAO_IDL/fe/idl.yy: - - Fixes for various code generation errors stemming from - - Mon Jul 12 08:19:49 UTC 2010 Jeff Parsons - -Tue Jul 13 11:22:49 UTC 2010 Jeff Parsons - - * tests/Alt_Mapping/ub_struct_seq.cpp: - - Changes corresponding to changes in generated code for - sequences (in this test represented by std::vector<>). - -Mon Jul 12 12:55:55 UTC 2010 Jeff Parsons - - * tao/PortableServer/PS_ForwardS.h: - - New file, an empty placeholder that is now generated as - an include by the IDL compiler. The corresponding IDL - file is not automatically processed, but it is included - in other IDL files. - -Mon Jul 12 11:32:30 UTC 2010 Jeff Parsons - - * TAO_IDL/fe/y.tab.cpp: - * TAO_IDL/fe/fe_init.cpp: - * TAO_IDL/fe/idl.yy: - * TAO_IDL/util/utl_scope.cpp: - - Changes in handling of pseudo object creation and lookup. - -Mon Jul 12 08:26:24 UTC 2010 Jeff Parsons - - * tools/IDL3_to_IDL2/be_util.cpp: - * tools/IDL3_to_IDL2/be_util.h: - - New files containing a utility class - of static methods. - - - * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc: - - Added new files to project. - - * tools/IDL3_to_IDL2/be_global.cpp: - * tools/IDL3_to_IDL2/be_global.h: - - Factored out methods that have nothing - to do with global data storage and - moved them to the new utility class. - -Mon Jul 12 08:19:49 UTC 2010 Jeff Parsons - - * TAO_IDL/include/fe_utils.h: - * TAO_IDL/include/ast_decl.h: - * TAO_IDL/include/idl_global.h: - * TAO_IDL/include/utl_scope.h: - * TAO_IDL/include/ast_interface.h: - * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp: - * TAO_IDL/be/be_visitor_interface/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp: - * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp: - * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp: - * TAO_IDL/be/be_visitor_ami_pre_proc.cpp: - * TAO_IDL/be/be_visitor_root/root_sh.cpp: - * TAO_IDL/be/be_visitor_valuebox/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_valuebox/any_op_cs.cpp: - * TAO_IDL/be/be_visitor_valuetype/any_op_ch.cpp: - * TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp: - * TAO_IDL/be/be_util.cpp: - * TAO_IDL/be/be_visitor_typecode.cpp: - * TAO_IDL/be/be_visitor_operation.cpp: - * TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp: - * TAO_IDL/be/be_visitor_constant/constant_cs.cpp: - * TAO_IDL/be/be_visitor_sequence.cpp: - * TAO_IDL/be/be_visitor_interface_fwd/any_op_ch.cpp: - * TAO_IDL/be/be_global.cpp: - * TAO_IDL/be/be_sequence.cpp: - * TAO_IDL/be/be_visitor_connector/facet_ami_exs.cpp: - * TAO_IDL/be/be_visitor_connector/facet_ami_exh.cpp: - * TAO_IDL/be/be_visitor_ccm_pre_proc.cpp: - * TAO_IDL/be/be_visitor_valuetype_fwd/any_op_ch.cpp: - * TAO_IDL/be/be_generator.cpp: - * TAO_IDL/ast/ast_visitor_reifying.cpp: - * TAO_IDL/ast/ast_decl.cpp: - * TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h: - * TAO_IDL/be_include/be_visitor_operation/upcall_command_ss.h: - * TAO_IDL/be_include/be_util.h: - * TAO_IDL/be_include/be_visitor_constant/constant_cs.h: - * TAO_IDL/be_include/be_constant.h: - * TAO_IDL/be_include/be_global.h: - * TAO_IDL/fe/fe_utils.cpp: - * TAO_IDL/fe/fe_init.cpp: - * TAO_IDL/fe/y.tab.cpp: - * TAO_IDL/fe/idl.yy: - * TAO_IDL/fe/lex.yy.cpp: - * TAO_IDL/fe/idl.ll: - * TAO_IDL/driver/drv_preproc.cpp: - * TAO_IDL/driver/drv_args.cpp: - * TAO_IDL/tao_idl.cpp: - * TAO_IDL/util/utl_global.cpp: - * TAO_IDL/util/utl_scope.cpp: - - - - Changed generation of alternate mapping sequences to be a - typedef of std::vector. - - - Refactored non-data code in FE and BE global data classes - to corresponding utils classes. - - - Changed code generation triggered by �SS to generate the - *S.h and *C.h includes, so they can be propagated to - including IDL files. - -Tue Jul 6 11:11:49 UTC 2010 Johnny Willemsen - - * etc/tao.doxygen: - * etc/tao_anytypecode.doxygen: - * etc/tao_av.doxygen: - * etc/tao_compression.doxygen: - * etc/tao_cosevent.doxygen: - * etc/tao_cosnaming.doxygen: - * etc/tao_cosnotification.doxygen: - * etc/tao_costime.doxygen: - * etc/tao_costrader.doxygen: - * etc/tao_dynamicany.doxygen: - * etc/tao_dynamicinterface.doxygen: - * etc/tao_esf.doxygen: - * etc/tao_ifr.doxygen: - * etc/tao_implrepo.doxygen: - * etc/tao_iormanip.doxygen: - * etc/tao_iortable.doxygen: - * etc/tao_pi.doxygen: - * etc/tao_pi_server.doxygen: - * etc/tao_portablegroup.doxygen: - * etc/tao_portableserver.doxygen: - * etc/tao_pss.doxygen: - * etc/tao_rtcorba.doxygen: - * etc/tao_rtevent.doxygen: - * etc/tao_rtportableserver.doxygen: - * etc/tao_security.doxygen: - * etc/tao_smartproxies.doxygen: - * etc/tao_ssliop.doxygen: - * etc/tao_strategies.doxygen: - * etc/tao_transportcurrent.doxygen: - * etc/tao_ziop.doxygen: - Reduced the size of the colloboration graphs - -Mon Jul 5 14:00:57 UTC 2010 Johnny Willemsen - - * etc/tao.doxygen: - * etc/tao_anytypecode.doxygen: - * etc/tao_av.doxygen: - * etc/tao_compression.doxygen: - * etc/tao_cosevent.doxygen: - * etc/tao_cosnaming.doxygen: - * etc/tao_cosnotification.doxygen: - * etc/tao_costime.doxygen: - * etc/tao_costrader.doxygen: - * etc/tao_dynamicany.doxygen: - * etc/tao_dynamicinterface.doxygen: - * etc/tao_esf.doxygen: - * etc/tao_ifr.doxygen: - * etc/tao_implrepo.doxygen: - * etc/tao_iormanip.doxygen: - * etc/tao_iortable.doxygen: - * etc/tao_pi.doxygen: - * etc/tao_pi_server.doxygen: - * etc/tao_portablegroup.doxygen: - * etc/tao_portableserver.doxygen: - * etc/tao_pss.doxygen: - * etc/tao_rtcorba.doxygen: - * etc/tao_rtevent.doxygen: - * etc/tao_rtportableserver.doxygen: - * etc/tao_security.doxygen: - * etc/tao_smartproxies.doxygen: - * etc/tao_ssliop.doxygen: - * etc/tao_strategies.doxygen: - * etc/tao_transportcurrent.doxygen: - * etc/tao_ziop.doxygen: - Disable include and included graphs, this should reduce the size - of the documentation a lot - -Mon Jul 5 11:43:01 UTC 2010 Johnny Willemsen - - * orbsvcs/tests/Bug_2777_Regression/run_test.pl: - Added another path - - * tao/Leader_Follower.h: - Doxygen fix - -Sun Jul 04 18:57:33 CEST 2010 Johnny Willemsen - - * TAO version 1.8 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: + * tao/Policy_Current.h: + * tao/Policy_Set.h: + * tao/IIOP_Profile.cpp: + * tao/GIOP_Message_Generator_Parser_10.cpp: + * tao/CONV_FRAME.pidl: + * tao/TAO_Server_Request.h: + * tao/Services.pidl: + * tao/ServerRequestInterceptor_Adapter.h: + * tao/AnyTypeCode.mpc: + * tao/Service_Context.inl: + * tao/Object.cpp: + * tao/LocalObject.cpp: + * tao/IIOP_Connection_Handler.h: + * tao/LocateRequest_Invocation_Adapter.h: + * tao/Policy_Forward.pidl: + * tao/TAO_Server_Request.inl: + * tao/LocalObject.h: + * tao/IOP.pidl: + * tao/Codeset/Codeset_Manager_i.cpp: + * tao/IIOP_Transport.cpp: + * tao/MProfile.cpp: + * tao/GIOP_Message_Generator_Parser_12.cpp: + * tao/Policy_Current_Impl.cpp: + * tao/Policy_Manager.cpp: + * tao/Profile_Transport_Resolver.cpp: + * tao/ObjectIdList.pidl: + * tao/Policy_Current_Impl.h: + * tao/Service_Context_Handler_Registry.cpp: + + Regenerated all ORB and POA system IDL files + with alternate mapping -Gstl option, and + partially modified C++ files as necessary + because of the string and sequence redefinition. + Also fixed bugs in IDL compiler's generation + of sequence types as typedefs of stl::vector<>. diff --git a/TAO_IDL/be/be_codegen.cpp b/TAO_IDL/be/be_codegen.cpp index de5745f5a91..9fa44f72054 100644 --- a/TAO_IDL/be/be_codegen.cpp +++ b/TAO_IDL/be/be_codegen.cpp @@ -3064,6 +3064,12 @@ TAO_CodeGen::gen_any_file_includes (TAO_OutStream * stream) { this->gen_standard_include (stream, "tao/CDR.h"); + + this->gen_cond_file_include ( + be_global->alt_mapping () + | idl_global->seq_seen_, + "tao/AnyTypeCode/Vector_AnyOp_T.h", + stream); // Any_Impl_T.cpp needs the full CORBA::Any type. this->gen_cond_file_include ( @@ -3120,13 +3126,15 @@ TAO_CodeGen::gen_var_file_includes (void) ); this->gen_cond_file_include ( - idl_global->seq_seen_, + idl_global->seq_seen_ + & !be_global->alt_mapping (), "tao/Seq_Var_T.h", this->client_header_ ); this->gen_cond_file_include ( - idl_global->seq_seen_, + idl_global->seq_seen_ + & !be_global->alt_mapping (), "tao/Seq_Out_T.h", this->client_header_ ); diff --git a/TAO_IDL/be/be_sequence.cpp b/TAO_IDL/be/be_sequence.cpp index 3a8323316a5..af460ee4d69 100644 --- a/TAO_IDL/be/be_sequence.cpp +++ b/TAO_IDL/be/be_sequence.cpp @@ -398,7 +398,7 @@ be_sequence::gen_ostream_operator (TAO_OutStream *os, << ")" << be_uidt_nl << "{" << be_idt_nl << "strm << \"" << this->name () << "[\";" << be_nl << be_nl - << "for (CORBA::ULong i = 0; i < _tao_sequence.length (); ++i)" + << "for (CORBA::ULong i = 0; i < _tao_sequence.size (); ++i)" << be_idt_nl << "{" << be_idt_nl << "if (i != 0)" << be_idt_nl diff --git a/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp b/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp index 4efb8c70596..ef6c3d6458c 100644 --- a/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp +++ b/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp @@ -48,24 +48,10 @@ be_visitor_sequence_any_op_ch::visit_sequence (be_sequence *node) *os << be_nl << be_nl; - ACE_CString name; + ACE_CString name = node->full_name (); bool alt = be_global->alt_mapping (); - if (alt) - { - be_type *bt = - be_type::narrow_from_decl (node->base_type ()); - - name = "std::vector<"; - name += bt->full_name (); - name += ">"; - } - else - { - name = node->full_name (); - } - be_module *module = 0; if (node->is_nested ()) { diff --git a/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp b/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp index ead93407e9b..c4236637691 100644 --- a/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp +++ b/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp @@ -78,11 +78,28 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node) tc = ANY_OBJREF; } + if (bt->node_type () == AST_Decl::NT_pre_defined) + { + AST_PredefinedType *pdt = + AST_PredefinedType::narrow_from_decl (bt); + + if (pdt->pt () == AST_PredefinedType::PT_pseudo) + { + ACE_CString lname ( + bt->local_name ()->get_string ()); + + if (lname == "TypeCode") + { + tc = ANY_OBJREF; + } + } + } + *os << be_nl << "void operator<<= (" << be_idt_nl << "::CORBA::Any &_tao_any," << be_nl - << "const std::vector<" << bt->full_name () - << "> &_tao_elem)" << be_uidt_nl + << "const " << node->name () + << " &_tao_elem)" << be_uidt_nl << "{" << be_idt_nl << "TAO::"; @@ -113,8 +130,7 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node) *os << be_nl << be_nl << "::CORBA::Boolean operator>>= (" << be_idt_nl << "const ::CORBA::Any &_tao_any," << be_nl - << "std::vector<" << bt->full_name () - << "> &_tao_elem)" << be_uidt_nl + << node->name () << " &_tao_elem)" << be_uidt_nl << "{" << be_idt_nl << "return" << be_idt_nl << "TAO::"; diff --git a/TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp b/TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp index e09eecb2157..980975738ab 100644 --- a/TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp +++ b/TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp @@ -77,32 +77,15 @@ be_visitor_sequence_cdr_op_ch::visit_sequence (be_sequence *node) << be_global->stub_export_macro () << " ::CORBA::Boolean" << " operator<< (" << be_idt << be_idt_nl << "TAO_OutputCDR &strm," << be_nl - << "const "; - - if (alt) - { - *os << "std::vector<" << base_type->name () << ">"; - } - else - { - *os << node->name (); - } + << "const " << node->name (); *os << " &_tao_sequence" << be_uidt_nl << ");" << be_uidt_nl; *os << be_global->stub_export_macro () << " ::CORBA::Boolean" << " operator>> (" << be_idt << be_idt_nl - << "TAO_InputCDR &strm," << be_nl; - - if (alt) - { - *os << "std::vector<" << base_type->name () << ">"; - } - else - { - *os << node->name (); - } + << "TAO_InputCDR &strm," << be_nl + << node->name (); *os << " &_tao_sequence" << be_uidt_nl << ");" << be_uidt; diff --git a/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp b/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp index 90d74dee51b..b000f6c2f95 100644 --- a/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp +++ b/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp @@ -102,6 +102,16 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node) *os << be_global->core_versioning_begin () << be_nl; + AST_PredefinedType *pdt = + AST_PredefinedType::narrow_from_decl (bt); + AST_PredefinedType::PredefinedType pt = + AST_PredefinedType::PT_abstract; + + if (pdt != 0) + { + pt = pdt->pt (); + } + // Set the sub state as generating code for the output operator. this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_OUTPUT); @@ -109,17 +119,54 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node) { *os << "::CORBA::Boolean operator<< (" << be_idt_nl << "TAO_OutputCDR &strm," << be_nl - << "const std::vector<" << bt->full_name () - << "> &_tao_vector)" + << "const " << node->name () << " &_tao_sequence)" << be_uidt_nl << "{" << be_idt_nl - << "::CORBA::ULong length = _tao_vector.size ();" + << "::CORBA::ULong length = _tao_sequence.size ();" << be_nl << "strm << length;" << be_nl << be_nl << "for ( ::CORBA::ULong i = 0UL; i < length; ++i)" << be_idt_nl - << "{" << be_idt_nl - << "if (! (strm << _tao_vector[i]))" << be_idt_nl + << "{" << be_idt_nl; + + switch (pt) + { + case AST_PredefinedType::PT_boolean: + *os << "ACE_OutputCDR::from_boolean tao_tmp (_tao_sequence[i]);" + << be_nl << be_nl; + break; + case AST_PredefinedType::PT_char: + *os << "ACE_OutputCDR::from_char tao_tmp (_tao_sequence[i]);" + << be_nl << be_nl; + break; + case AST_PredefinedType::PT_octet: + *os << "ACE_OutputCDR::from_octet tao_tmp (_tao_sequence[i]);" + << be_nl << be_nl; + break; + case AST_PredefinedType::PT_wchar: + *os << "ACE_OutputCDR::from_wchar tao_tmp (_tao_sequence[i]);" + << be_nl << be_nl; + break; + default: + break; + } + + *os << "if (! (strm << "; + + switch (pt) + { + case AST_PredefinedType::PT_boolean: + case AST_PredefinedType::PT_char: + case AST_PredefinedType::PT_octet: + case AST_PredefinedType::PT_wchar: + *os << "tao_tmp))"; + break; + default: + *os << "_tao_sequence[i]))"; + break; + } + + *os << be_idt_nl << "{" << be_idt_nl << "return false;" << be_uidt_nl << "}" << be_uidt << be_uidt_nl @@ -148,31 +195,87 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node) { *os << "::CORBA::Boolean operator>> (" << be_idt_nl << "TAO_InputCDR &strm," << be_nl - << "std::vector<" << bt->full_name () - << "> &_tao_vector)" << be_uidt_nl + << node->name () << " &_tao_sequence)" << be_uidt_nl << "{" << be_idt_nl << "::CORBA::ULong length = 0UL;" << be_nl << bt->full_name (); - if (bt->size_type () == AST_Type::VARIABLE) + AST_Interface *i = AST_Interface::narrow_from_decl (bt); + AST_ValueType *v = AST_ValueType::narrow_from_decl (bt); + bool ptr_type = false; + + if (i != 0) { - *os << " *"; + ptr_type = true; + *os << (v == 0 ? "_ptr" : " *"); } - - *os << " tmp;" << be_nl << be_nl + + if (pt == AST_PredefinedType::PT_pseudo) + { + ACE_CString lname (bt->local_name ()->get_string ()); + + if (lname == "TypeCode") + { + ptr_type = true; + *os << "_ptr"; + } + } + + *os << " tmp" << (ptr_type ? " = 0" : ""); + + *os << ";" << be_nl << be_nl << "if (! (strm >> length))" << be_idt_nl << "{" << be_idt_nl << "return false;" << be_uidt_nl << "}" << be_uidt_nl << be_nl - << "_tao_vector.resize (length);" << be_nl << be_nl + << "_tao_sequence.resize (length);" << be_nl << be_nl << "for ( ::CORBA::ULong i = 0UL; i < length; ++i)" << be_idt_nl - << "{" << be_idt_nl - << "if (! (strm >> tmp))" << be_idt_nl + << "{" << be_idt_nl; + + switch (pt) + { + case AST_PredefinedType::PT_boolean: + *os << "ACE_InputCDR::to_boolean tao_tmp (tmp);" + << be_nl << be_nl; + break; + case AST_PredefinedType::PT_char: + *os << "ACE_InputCDR::to_char tao_tmp (tmp);" + << be_nl << be_nl; + break; + case AST_PredefinedType::PT_octet: + *os << "ACE_InputCDR::to_octet tao_tmp (tmp);" + << be_nl << be_nl; + break; + case AST_PredefinedType::PT_wchar: + *os << "ACE_InputCDR::to_wchar tao_tmp (tmp);" + << be_nl << be_nl; + break; + default: + break; + } + + *os << "if (! (strm >> "; + + switch (pt) + { + case AST_PredefinedType::PT_boolean: + case AST_PredefinedType::PT_char: + case AST_PredefinedType::PT_octet: + case AST_PredefinedType::PT_wchar: + *os << "tao_tmp))"; + break; + default: + *os << "tmp))"; + break; + } + + *os << be_idt_nl << "{" << be_idt_nl << "return false;" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "_tao_vector[i] = tmp;" << be_uidt_nl + << "}" << be_uidt_nl << be_nl; + + *os << "_tao_sequence[i] = tmp;" << be_uidt_nl << "}" << be_uidt_nl << be_nl << "return true;" << be_uidt_nl << "}" << be_nl; diff --git a/TAO_IDL/be/be_visitor_sequence/serializer_op_cs.cpp b/TAO_IDL/be/be_visitor_sequence/serializer_op_cs.cpp index 9e346007206..7ff8f80573a 100644 --- a/TAO_IDL/be/be_visitor_sequence/serializer_op_cs.cpp +++ b/TAO_IDL/be/be_visitor_sequence/serializer_op_cs.cpp @@ -205,7 +205,7 @@ be_visitor_sequence_serializer_op_cs::visit_sequence (be_sequence *node) << "{" << be_idt_nl; // First encode the sequence length. - *os << "const ::CORBA::ULong _tao_seq_len = _tao_sequence.length ();" + *os << "const ::CORBA::ULong _tao_seq_len = _tao_sequence.size ();" << be_nl << be_nl; *os << "if (strm << _tao_seq_len)" << be_idt_nl << "{" << be_idt_nl; diff --git a/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp b/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp index a1fabc07f54..7dd6f451f11 100644 --- a/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp +++ b/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp @@ -463,12 +463,18 @@ be_visitor_typedef_ch::visit_sequence (be_sequence *node) // Typedef the type. *os << "typedef " << bt->nested_type_name (scope) - << " " << tdef->nested_type_name (scope) << ";" << be_nl; - // Typedef the _var and _out types. - *os << "typedef " << bt->nested_type_name (scope, "_var") - << " " << tdef->nested_type_name (scope, "_var") << ";" << be_nl; - *os << "typedef " << bt->nested_type_name (scope, "_out") - << " " << tdef->nested_type_name (scope, "_out") << ";"; + << " " << tdef->nested_type_name (scope) << ";"; + + if (!be_global->alt_mapping ()) + { + // Typedef the _var and _out types. + *os << be_nl << "typedef " + << bt->nested_type_name (scope, "_var") + << " " << tdef->nested_type_name (scope, "_var") << ";"; + *os << be_nl << "typedef " + << bt->nested_type_name (scope, "_out") + << " " << tdef->nested_type_name (scope, "_out") << ";"; + } } return 0; diff --git a/TAO_IDL/be_include/be_codegen.h b/TAO_IDL/be_include/be_codegen.h index 1899c781368..82b04c8b877 100644 --- a/TAO_IDL/be_include/be_codegen.h +++ b/TAO_IDL/be_include/be_codegen.h @@ -422,7 +422,7 @@ private: void gen_stub_src_includes (void); void gen_skel_src_includes (void); void gen_seq_file_includes (void); - void gen_any_file_includes (TAO_OutStream * stream) ; + void gen_any_file_includes (TAO_OutStream * stream); void gen_var_file_includes (void); void gen_stub_arg_file_includes (TAO_OutStream * stream); void gen_skel_arg_file_includes (TAO_OutStream * stream); diff --git a/tao/AnyTypeCode.mpc b/tao/AnyTypeCode.mpc index 2dfdfb07275..fbf2a0cac03 100644 --- a/tao/AnyTypeCode.mpc +++ b/tao/AnyTypeCode.mpc @@ -2,7 +2,7 @@ project(*idl) : tao_versioning_idl_defaults, gen_ostream, install { custom_only = 1 - idlflags += -Gp -Gd -Sci -SS -GA \ + idlflags += -Gp -Gd -Sci -SS -GA -Gstl \ -Wb,export_macro=TAO_AnyTypeCode_Export \ -Wb,export_include=tao/AnyTypeCode/TAO_AnyTypeCode_Export.h \ -o AnyTypeCode diff --git a/tao/AnyTypeCode/BasicTypeTraits.h b/tao/AnyTypeCode/BasicTypeTraits.h index ab3b3dfa917..114e6da872f 100644 --- a/tao/AnyTypeCode/BasicTypeTraits.h +++ b/tao/AnyTypeCode/BasicTypeTraits.h @@ -31,20 +31,20 @@ namespace CORBA class TypeCode; typedef TypeCode * TypeCode_ptr; - class BooleanSeq; - class CharSeq; - class OctetSeq; - class WCharSeq; - class ShortSeq; - class UShortSeq; - class LongSeq; - class ULongSeq; - class LongLongSeq; - class ULongLongSeq; - class FloatSeq; - class DoubleSeq; - class LongDoubleSeq; - class AnySeq; + typedef std::vector BooleanSeq; + typedef std::vector CharSeq; + typedef std::vector OctetSeq; + typedef std::vector WCharSeq; + typedef std::vector ShortSeq; + typedef std::vector UShortSeq; + typedef std::vector LongSeq; + typedef std::vector ULongSeq; + typedef std::vector LongLongSeq; + typedef std::vector ULongLongSeq; + typedef std::vector FloatSeq; + typedef std::vector DoubleSeq; + typedef std::vector LongDoubleSeq; + typedef std::vector AnySeq; } namespace TAO diff --git a/tao/AnyTypeCode/Vector_AnyOp_T.h b/tao/AnyTypeCode/Vector_AnyOp_T.h index 20b44708ac0..ab30c22d85f 100644 --- a/tao/AnyTypeCode/Vector_AnyOp_T.h +++ b/tao/AnyTypeCode/Vector_AnyOp_T.h @@ -48,7 +48,7 @@ namespace TAO void insert_objref_vector ( CORBA::Any &, - const std::vector &) + const std::vector &) { } @@ -57,7 +57,7 @@ namespace TAO void insert_objref_vector ( CORBA::Any &, - std::vector *) + std::vector *) { } @@ -65,7 +65,7 @@ namespace TAO bool extract_objref_vector ( const CORBA::Any &, - std::vector &) + std::vector &) { return true; } diff --git a/tao/CONV_FRAME.pidl b/tao/CONV_FRAME.pidl index 185d4221192..57af0409b60 100644 --- a/tao/CONV_FRAME.pidl +++ b/tao/CONV_FRAME.pidl @@ -11,11 +11,13 @@ #ifndef TAO_CORBA_CONV_FRAME_PIDL #define TAO_CORBA_CONV_FRAME_PIDL +#include "tao/ULongSeq.pidl" + #pragma prefix "omg.org" module CONV_FRAME { typedef unsigned long CodeSetId; - typedef sequence CodeSetIdSeq; + typedef CORBA::ULongSeq CodeSetIdSeq; struct CodeSetComponent { CodeSetId native_code_set; diff --git a/tao/ClientRequestInterceptor_Adapter.h b/tao/ClientRequestInterceptor_Adapter.h index 446e5ef78e5..f012df3aa50 100644 --- a/tao/ClientRequestInterceptor_Adapter.h +++ b/tao/ClientRequestInterceptor_Adapter.h @@ -18,6 +18,8 @@ #ifndef TAO_CLIENT_REQUEST_INTERCEPTOR_ADAPTER_H #define TAO_CLIENT_REQUEST_INTERCEPTOR_ADAPTER_H +#include + #include /**/ "ace/pre.h" #include /**/ "tao/TAO_Export.h" @@ -44,7 +46,9 @@ namespace PortableInterceptor namespace CORBA { - class PolicyList; + class Policy; + typedef Policy *Policy_ptr; + typedef std::vector PolicyList; } namespace TAO diff --git a/tao/Codeset/Codeset_Manager_i.cpp b/tao/Codeset/Codeset_Manager_i.cpp index 0e4b1fb706b..998cb3ce4a6 100644 --- a/tao/Codeset/Codeset_Manager_i.cpp +++ b/tao/Codeset/Codeset_Manager_i.cpp @@ -177,13 +177,15 @@ TAO_Codeset_Manager_i::process_service_context (TAO_ServerRequest &request) CONV_FRAME::CodeSetId tcs_c = TAO_CODESET_ID_XOPEN_UTF_8; CONV_FRAME::CodeSetId tcs_w = TAO_CODESET_ID_UNICODE; - if (service_cntx.get_context(context)) + if (service_cntx.get_context (context)) { // Convert the Service Context to Codeset Context const char *buffer = - reinterpret_cast (context.context_data.get_buffer ()); + reinterpret_cast ( + context.context_data.get_allocator ().address ( + *context.context_data.begin ())); - TAO_InputCDR cdr (buffer,context.context_data.length ()); + TAO_InputCDR cdr (buffer, context.context_data.size ()); CORBA::Boolean byte_order; if (cdr >> TAO_InputCDR::to_boolean (byte_order)) @@ -274,7 +276,7 @@ TAO_Codeset_Manager_i::isElementOf (CONV_FRAME::CodeSetId id, CONV_FRAME::CodeSetComponent &cs_comp) { for (CORBA::ULong i = 0L; - i < cs_comp.conversion_code_sets.length (); + i < cs_comp.conversion_code_sets.size (); ++i ) { if (id == cs_comp.conversion_code_sets[i]) @@ -290,7 +292,7 @@ TAO_Codeset_Manager_i::intersectionOf (CONV_FRAME::CodeSetComponent &cs_comp1, CONV_FRAME::CodeSetComponent &cs_comp2) { for(CORBA::ULong index = 0L; - index < cs_comp1.conversion_code_sets.length(); + index < cs_comp1.conversion_code_sets.size(); ++index ) { if (this->isElementOf(cs_comp1.conversion_code_sets[index], cs_comp2)) @@ -426,7 +428,7 @@ int TAO_Codeset_Manager_i::init_ccs (TAO_Codeset_Descriptor& cd, CONV_FRAME::CodeSetComponent& cs_comp) { - cs_comp.conversion_code_sets.length + cs_comp.conversion_code_sets.resize (static_cast (cd.num_translators())); CORBA::ULong index; @@ -481,7 +483,7 @@ TAO_Codeset_Manager_i::init_ccs (TAO_Codeset_Descriptor& cd, } } - cs_comp.conversion_code_sets.length(index); + cs_comp.conversion_code_sets.resize(index); return 0; } diff --git a/tao/GIOP_Message_Base.cpp b/tao/GIOP_Message_Base.cpp index 59bdd2d7506..4f6a477fc22 100644 --- a/tao/GIOP_Message_Base.cpp +++ b/tao/GIOP_Message_Base.cpp @@ -1000,7 +1000,7 @@ TAO_GIOP_Message_Base::process_request ( permanent_forward_condition ? GIOP::LOCATION_FORWARD_PERM : GIOP::LOCATION_FORWARD); - reply_params.svc_ctx_.length (0); + reply_params.svc_ctx_.resize (0); // Send back the reply service context. reply_params.service_context_notowned ( @@ -1475,7 +1475,7 @@ TAO_GIOP_Message_Base::send_reply_exception ( { TAO_Pluggable_Reply_Params_Base reply_params; reply_params.request_id_ = request_id; - reply_params.svc_ctx_.length (0); + reply_params.svc_ctx_.resize (0); // We are going to send some data reply_params.argument_flag_ = true; diff --git a/tao/GIOP_Message_Generator_Parser_10.cpp b/tao/GIOP_Message_Generator_Parser_10.cpp index 2657ca5f849..6b7d69a55a1 100644 --- a/tao/GIOP_Message_Generator_Parser_10.cpp +++ b/tao/GIOP_Message_Generator_Parser_10.cpp @@ -103,8 +103,8 @@ TAO_GIOP_Message_Generator_Parser_10::write_request_header ( #else - CORBA::OctetSeq req_principal (0); - req_principal.length (0); + CORBA::OctetSeq req_principal; + req_principal.resize (0); #endif /* TAO_PEER_REQUIRES_PRINCIPAL */ @@ -167,7 +167,7 @@ TAO_GIOP_Message_Generator_Parser_10::write_reply_header ( // But first we take it out any of them.. CORBA::ULong count = 0; IOP::ServiceContextList &svc_ctx = reply.service_context_notowned (); - CORBA::ULong const l = svc_ctx.length (); + CORBA::ULong const l = svc_ctx.size (); CORBA::ULong i; for (i = 0; i != l; ++i) diff --git a/tao/GIOP_Message_Generator_Parser_12.cpp b/tao/GIOP_Message_Generator_Parser_12.cpp index bf4a01631b5..5f3e3b061ec 100644 --- a/tao/GIOP_Message_Generator_Parser_12.cpp +++ b/tao/GIOP_Message_Generator_Parser_12.cpp @@ -291,7 +291,7 @@ TAO_GIOP_Message_Generator_Parser_12::parse_request_header ( return -1; } - if (req_service_info.length() > 0) + if (req_service_info.size () > 0) { request.orb_core ()->service_context_registry (). process_service_contexts (req_service_info, *(request.transport ())); diff --git a/tao/IIOP_Acceptor.cpp b/tao/IIOP_Acceptor.cpp index 6e007a4e283..dc4a87ea631 100644 --- a/tao/IIOP_Acceptor.cpp +++ b/tao/IIOP_Acceptor.cpp @@ -1060,11 +1060,16 @@ TAO_IIOP_Acceptor::object_key (IOP::TaggedProfile &profile, TAO::ObjectKey &object_key) { // Create the decoding stream from the encapsulation in the buffer, -#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) +#if (0)//TAO_NO_COPY_OCTET_SEQUENCES == 1) TAO_InputCDR cdr (profile.profile_data.mb ()); #else - TAO_InputCDR cdr (reinterpret_cast (profile.profile_data.get_buffer ()), - profile.profile_data.length ()); + const char *buf = + reinterpret_cast ( + profile.profile_data.get_allocator ().address ( + *profile.profile_data.begin ())); + + TAO_InputCDR cdr (buf, + profile.profile_data.size ()); #endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ CORBA::Octet major; diff --git a/tao/IIOP_Connection_Handler.cpp b/tao/IIOP_Connection_Handler.cpp index 1f27c5472fd..0fc082615c6 100644 --- a/tao/IIOP_Connection_Handler.cpp +++ b/tao/IIOP_Connection_Handler.cpp @@ -484,7 +484,7 @@ TAO_IIOP_Connection_Handler::process_listen_point_list ( IIOP::ListenPointList &listen_list) { // Get the size of the list - CORBA::ULong len = listen_list.length (); + CORBA::ULong len = listen_list.size (); if (TAO_debug_level > 0 && len == 0) { diff --git a/tao/IIOP_Connection_Handler.h b/tao/IIOP_Connection_Handler.h index a96bf0c8403..0ad5f95b65d 100644 --- a/tao/IIOP_Connection_Handler.h +++ b/tao/IIOP_Connection_Handler.h @@ -14,6 +14,8 @@ #ifndef TAO_IIOP_CONNECTION_HANDLER_H #define TAO_IIOP_CONNECTION_HANDLER_H +#include + #include /**/ "ace/pre.h" #include "tao/orbconf.h" @@ -42,7 +44,8 @@ template class TAO_Export ACE_Svc_Handler; namespace IIOP { - class ListenPointList; + struct ListenPoint; + typedef std::vector< ListenPoint> ListenPointList; } // **************************************************************** diff --git a/tao/IIOP_Profile.cpp b/tao/IIOP_Profile.cpp index 4ab9094bd05..0033a53f3cf 100644 --- a/tao/IIOP_Profile.cpp +++ b/tao/IIOP_Profile.cpp @@ -659,19 +659,19 @@ TAO_IIOP_Profile::encode_alternate_endpoints (void) tagged_component.tag = IOP::TAG_ALTERNATE_IIOP_ADDRESS; size_t length = out_cdr.total_length (); - tagged_component.component_data.length - (static_cast(length)); - CORBA::Octet *buf = - tagged_component.component_data.get_buffer (); + tagged_component.component_data.resize (length); + size_t index = 0; for (const ACE_Message_Block *iterator = out_cdr.begin (); iterator != 0; iterator = iterator->cont ()) { - size_t i_length = iterator->length (); - ACE_OS::memcpy (buf, iterator->rd_ptr (), i_length); - - buf += i_length; + char *buf = iterator->base (); + + for (size_t j = 0; j < iterator->length (); ++j) + { + tagged_component.component_data[index++] = buf[j]; + } } // Add component with encoded endpoint data to this profile's @@ -707,7 +707,7 @@ TAO_IIOP_Profile::encode_endpoints (void) // priority is not! TAO::IIOPEndpointSequence endpoints; - endpoints.length (actual_count); + endpoints.resize (actual_count); endpoint = &this->endpoint_; @@ -761,11 +761,13 @@ TAO_IIOP_Profile::decode_endpoints (void) if (this->tagged_components_.get_component (tagged_component)) { - const CORBA::Octet *buf = - tagged_component.component_data.get_buffer (); - - TAO_InputCDR in_cdr (reinterpret_cast (buf), - tagged_component.component_data.length ()); + const char *buf = + reinterpret_cast ( + tagged_component.component_data.get_allocator ().address ( + *tagged_component.component_data.begin ())); + + TAO_InputCDR in_cdr (buf, + tagged_component.component_data.size ()); // Extract the Byte Order. CORBA::Boolean byte_order; @@ -790,7 +792,7 @@ TAO_IIOP_Profile::decode_endpoints (void) // from the end of the sequence to preserve endpoint order, // since method reverses the order of endpoints // in the list. - for (CORBA::ULong i = endpoints.length () - 1; + for (CORBA::ULong i = endpoints.size () - 1; i > 0; --i) { @@ -809,15 +811,18 @@ TAO_IIOP_Profile::decode_endpoints (void) // components. IOP::MultipleComponentProfile& tc = this->tagged_components_.components(); - for (CORBA::ULong index = 0; index < tc.length(); index++) + for (CORBA::ULong index = 0; index < tc.size (); index++) { if (tc[index].tag != IOP::TAG_ALTERNATE_IIOP_ADDRESS) continue; - const CORBA::Octet *buf = - tc[index].component_data.get_buffer (); - TAO_InputCDR in_cdr (reinterpret_cast(buf), - tc[index].component_data.length ()); + const char *buf = + reinterpret_cast ( + tc[index].component_data.get_allocator ().address ( + *tc[index].component_data.begin ())); + + TAO_InputCDR in_cdr (buf, + tc[index].component_data.size ()); // Extract the Byte Order. CORBA::Boolean byte_order; diff --git a/tao/IIOP_Transport.cpp b/tao/IIOP_Transport.cpp index 9683b4292e2..f017d2340a4 100644 --- a/tao/IIOP_Transport.cpp +++ b/tao/IIOP_Transport.cpp @@ -308,7 +308,7 @@ TAO_IIOP_Transport::set_bidir_context_info (TAO_Operation_Details &opdetails) } } - if (listen_point_list.length () == 0) + if (listen_point_list.size () == 0) { if (TAO_debug_level > 0) ACE_ERROR ((LM_ERROR, @@ -405,10 +405,10 @@ TAO_IIOP_Transport::get_listen_point ( #endif /* ACE_HAS_IPV6 */ // Get the count of the number of elements - CORBA::ULong const len = listen_point_list.length (); + CORBA::ULong const len = listen_point_list.size (); // Increase the length by 1 - listen_point_list.length (len + 1); + listen_point_list.resize (len + 1); // We have the connection and the acceptor endpoint on the // same interface diff --git a/tao/IIOP_Transport.h b/tao/IIOP_Transport.h index a908ed36d87..3f7f99b3ed3 100644 --- a/tao/IIOP_Transport.h +++ b/tao/IIOP_Transport.h @@ -30,7 +30,8 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL namespace IIOP { - class ListenPointList; + struct ListenPoint; + typedef std::vector< ListenPoint> ListenPointList; } // Forward decls. diff --git a/tao/IOP.pidl b/tao/IOP.pidl index 8680989f839..70d85fc7a98 100644 --- a/tao/IOP.pidl +++ b/tao/IOP.pidl @@ -37,8 +37,9 @@ module IOP ComponentId tag; CORBA::OctetSeq component_data; }; - typedef sequence MultipleComponentProfile; + typedef sequence TaggedComponentSeq; + typedef TaggedComponentSeq MultipleComponentProfile; // @@ All security related tags are located in the Security Service // @@ related IDL files, in accordance with the Security Service 1.8 diff --git a/tao/LocalObject.cpp b/tao/LocalObject.cpp index 21b63f26cd7..f4bfa50db97 100644 --- a/tao/LocalObject.cpp +++ b/tao/LocalObject.cpp @@ -55,7 +55,7 @@ CORBA::LocalObject::_is_equivalent (CORBA::Object_ptr other_obj) // TAO's extensions -TAO::ObjectKey * +TAO::ObjectKey CORBA::LocalObject::_key (void) { if (TAO_debug_level > 0) @@ -158,7 +158,7 @@ CORBA::LocalObject::_get_policy_overrides (const CORBA::PolicyTypeSeq &) } CORBA::Boolean -CORBA::LocalObject::_validate_connection (CORBA::PolicyList_out) +CORBA::LocalObject::_validate_connection (CORBA::PolicyList &) { throw ::CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 8, CORBA::COMPLETED_NO); } diff --git a/tao/LocalObject.h b/tao/LocalObject.h index 35da4735bcb..f1eff1d422e 100644 --- a/tao/LocalObject.h +++ b/tao/LocalObject.h @@ -121,7 +121,7 @@ namespace CORBA /// Throws CORBA::NO_IMPLEMENT. CORBA::Boolean _validate_connection ( - CORBA::PolicyList_out inconsistent_policies); + CORBA::PolicyList & inconsistent_policies); #endif /* TAO_HAS_CORBA_MESSAGING == 1 */ @@ -146,7 +146,7 @@ namespace CORBA // = TAO extensions /// Throws CORBA::NO_IMPLEMENT. - virtual TAO::ObjectKey * _key (void); + virtual TAO::ObjectKey _key (void); /// Useful for template programming. typedef LocalObject_ptr _ptr_type; diff --git a/tao/LocateRequest_Invocation_Adapter.cpp b/tao/LocateRequest_Invocation_Adapter.cpp index b40480266dc..ee4e1a8de22 100644 --- a/tao/LocateRequest_Invocation_Adapter.cpp +++ b/tao/LocateRequest_Invocation_Adapter.cpp @@ -21,7 +21,6 @@ namespace TAO LocateRequest_Invocation_Adapter::LocateRequest_Invocation_Adapter ( CORBA::Object_ptr target) : target_ (target) - , list_ (0) { } @@ -103,10 +102,10 @@ namespace TAO return; } - CORBA::PolicyList * + CORBA::PolicyList LocateRequest_Invocation_Adapter::get_inconsistent_policies (void) { - return this->list_._retn (); + return this->list_; } bool diff --git a/tao/LocateRequest_Invocation_Adapter.h b/tao/LocateRequest_Invocation_Adapter.h index 4300d8aa19e..59a7fc8847e 100644 --- a/tao/LocateRequest_Invocation_Adapter.h +++ b/tao/LocateRequest_Invocation_Adapter.h @@ -64,7 +64,7 @@ namespace TAO void invoke (void); /// Accessor to the inconsistent policy list - CORBA::PolicyList *get_inconsistent_policies (void); + CORBA::PolicyList get_inconsistent_policies (void); private: @@ -78,7 +78,7 @@ namespace TAO private: CORBA::Object_ptr target_; - CORBA::PolicyList_var list_; + CORBA::PolicyList list_; }; } diff --git a/tao/MProfile.cpp b/tao/MProfile.cpp index c4c763c7f6c..4480787b92c 100644 --- a/tao/MProfile.cpp +++ b/tao/MProfile.cpp @@ -25,7 +25,7 @@ TAO_MProfile::~TAO_MProfile (void) { if (this->policy_list_ != 0) { - CORBA::ULong const len = this->policy_list_->length (); + CORBA::ULong const len = this->policy_list_->size (); for (CORBA::ULong i = 0; i < len; ++i) { try diff --git a/tao/MProfile.h b/tao/MProfile.h index bd0b6f49c93..8972b4193b3 100644 --- a/tao/MProfile.h +++ b/tao/MProfile.h @@ -16,6 +16,8 @@ #ifndef TAO_MPROFILE_H #define TAO_MPROFILE_H +#include + #include /**/ "ace/pre.h" #include "ace/Recursive_Thread_Mutex.h" @@ -34,7 +36,9 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL class TAO_Profile; namespace CORBA { - class PolicyList; + class Policy; + typedef Policy *Policy_ptr; + typedef std::vector PolicyList; } typedef CORBA::ULong TAO_PHandle; diff --git a/tao/ORB.cpp b/tao/ORB.cpp index 3f9023adf5a..17378dc0b6c 100644 --- a/tao/ORB.cpp +++ b/tao/ORB.cpp @@ -1036,7 +1036,7 @@ CORBA::ORB::unregister_initial_reference (const char * id) } #endif -CORBA::ORB::ObjectIdList_ptr +CORBA::ORB::ObjectIdList CORBA::ORB::list_initial_services (void) { this->check_shutdown (); diff --git a/tao/ORB.h b/tao/ORB.h index f031417a061..b4417cb93e1 100644 --- a/tao/ORB.h +++ b/tao/ORB.h @@ -29,8 +29,8 @@ #include "tao/objectid.h" #include "tao/VarOut_T.h" #include "tao/Pseudo_VarOut_T.h" -#include "tao/Seq_Var_T.h" -#include "tao/Seq_Out_T.h" +//#include "tao/Seq_Var_T.h" +//#include "tao/Seq_Out_T.h" #include "tao/Sequence_T.h" #include "tao/Policy_ForwardC.h" #include "tao/ServicesC.h" @@ -69,7 +69,7 @@ namespace CORBA class StructMemberSeq; class UnionMemberSeq; class ValueMemberSeq; - class ORB_ObjectIdList; + typedef std::vector ORB_ObjectIdList; class Object; typedef Object * Object_ptr; @@ -98,7 +98,7 @@ namespace CORBA typedef CORBA::ULong PolicyType; // TODO - implement OMG's 'ORBid CORBA::ORB::id (void)'. - +/* typedef TAO_VarSeq_Var_T< ORB_ObjectIdList @@ -110,7 +110,7 @@ namespace CORBA ORB_ObjectIdList > ORB_ObjectIdList_out; - +*/ class ValueFactoryBase; typedef ValueFactoryBase *ValueFactory; @@ -133,12 +133,8 @@ namespace CORBA // Typedefs for CORBA::RequestSeq, which is an argument of // send_multiple_requests_*(). - typedef - TAO::unbounded_object_reference_sequence< - CORBA::Request, CORBA::Request_var - > - RequestSeq; - + typedef std::vector RequestSeq; +/* typedef TAO_VarSeq_Var_T< RequestSeq @@ -150,6 +146,7 @@ namespace CORBA RequestSeq > RequestSeq_out; +*/ #endif /** @@ -195,9 +192,9 @@ namespace CORBA static CORBA::TypeCode_ptr const _tc_ObjectId; typedef CORBA::ORB_ObjectIdList ObjectIdList; - typedef CORBA::ORB_ObjectIdList_var ObjectIdList_var; - typedef CORBA::ORB_ObjectIdList_out ObjectIdList_out; - typedef CORBA::ORB_ObjectIdList *ObjectIdList_ptr; +// typedef CORBA::ORB_ObjectIdList_var ObjectIdList_var; +// typedef CORBA::ORB_ObjectIdList_out ObjectIdList_out; +// typedef CORBA::ORB_ObjectIdList *ObjectIdList_ptr; static CORBA::TypeCode_ptr const _tc_ObjectIdList; /// Return a duplicate of @c orb. @@ -492,7 +489,7 @@ namespace CORBA /// Returns a sequence of ObjectIds that lists which objects have /// references available via the initial references mechanism. - CORBA::ORB::ObjectIdList_ptr list_initial_services (void); + CORBA::ORB::ObjectIdList list_initial_services (void); #if !defined(CORBA_E_MICRO) CORBA::Policy_ptr create_policy (CORBA::PolicyType type, diff --git a/tao/ORB_Core.cpp b/tao/ORB_Core.cpp index 092e3a10528..7e4ef6b12b8 100644 --- a/tao/ORB_Core.cpp +++ b/tao/ORB_Core.cpp @@ -1946,7 +1946,7 @@ TAO_ORB_Core::create_stub_object (TAO_MProfile &mprofile, // became in turns the "body" of the IOP::TaggedComponent. This // conversion is a responsability of the CORBA::Profile class. (See // orbos\98-05-05.pdf Section 5.4) - if (policy_list->length () != 0) + if (policy_list->size () != 0) { TAO_Profile * profile = 0; @@ -2787,7 +2787,7 @@ TAO_ORB_Core::resolve_rir (const char *name) return CORBA::Object::_nil (); } -CORBA::ORB::ObjectIdList * +CORBA::ORB::ObjectIdList TAO_ORB_Core::list_initial_references (void) { // Unsupported initial services should NOT be included in the below list! @@ -2803,22 +2803,16 @@ TAO_ORB_Core::list_initial_references (void) + this->init_ref_map_.size () + this->object_ref_table_.current_size (); - CORBA::ORB::ObjectIdList *tmp = 0; - - ACE_NEW_THROW_EX (tmp, - CORBA::ORB::ObjectIdList ( - static_cast (total_size)), - CORBA::NO_MEMORY ()); - - CORBA::ORB::ObjectIdList_var list (tmp); - list->length (static_cast (total_size)); + CORBA::ORB::ObjectIdList list; + list.resize (total_size); CORBA::ULong index = 0; // Index for ObjectIdList members. // Iterate over the registered initial references. for (index = 0; index < initial_services_size; ++index) - list[index] = initial_services[index]; + list[index] = + const_cast (initial_services[index]); // Now iterate over the initial references created by the user and // add them to the sequence. @@ -2839,9 +2833,10 @@ TAO_ORB_Core::list_initial_references (void) for (InitRefMap::iterator j = this-> init_ref_map_.begin (); j != end; ++j, ++index) - list[index] = (*j).first.c_str (); + list[index] = + const_cast ((*j).first.c_str ()); - return list._retn (); + return list; } // **************************************************************** diff --git a/tao/ORB_Core.h b/tao/ORB_Core.h index 7d335c2f999..aafbd4d4cd1 100644 --- a/tao/ORB_Core.h +++ b/tao/ORB_Core.h @@ -32,6 +32,7 @@ #include "tao/Object_Ref_Table.h" #include "tao/ObjectKey_Table.h" #include "tao/Messaging_SyncScopeC.h" +#include "tao/IOPC.h" #include "tao/Object.h" #include "tao/Invocation_Utils.h" #include "tao/Adapter_Registry.h" @@ -113,16 +114,13 @@ namespace TAO namespace CORBA { - class ORB_ObjectIdList; // CORBA::ORB::ObjectIdList + typedef std::vector ORB_ObjectIdList; class ORB; typedef ORB *ORB_ptr; - class PolicyList; -} - -namespace IOP -{ - class ServiceContextList; + class Policy; + typedef Policy *Policy_ptr; + typedef std::vector PolicyList; } namespace PortableInterceptor @@ -688,7 +686,7 @@ public: const char *server_id (void) const; /// List all the service known by the ORB - CORBA::ORB_ObjectIdList *list_initial_references (void); + CORBA::ORB_ObjectIdList list_initial_references (void); /// Reference counting... unsigned long _incr_refcnt (void); diff --git a/tao/Object.cpp b/tao/Object.cpp index 57aa973a879..465cf1c86e3 100644 --- a/tao/Object.cpp +++ b/tao/Object.cpp @@ -97,10 +97,10 @@ if (!this->is_evaluated_) \ CORBA::Object::tao_object_initialize (this); \ } -#define TAO_OBJECT_IOR_EVALUATE_RETURN \ +#define TAO_OBJECT_IOR_EVALUATE_RETURN(retval) \ if (!this->is_evaluated_) \ { \ - ACE_GUARD_RETURN (ACE_Lock , mon, *this->object_init_lock_, 0); \ + ACE_GUARD_RETURN (ACE_Lock , mon, *this->object_init_lock_, retval); \ if (!this->is_evaluated_) \ CORBA::Object::tao_object_initialize (this); \ } @@ -204,7 +204,7 @@ CORBA::Object::_servant (void) const CORBA::Boolean CORBA::Object::_is_a (const char *type_id) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(false); // NOTE: if _stub->type_id is nonzero and we have local knowledge of // it, we can answer this question without a costly remote call. @@ -272,14 +272,14 @@ CORBA::Object::_stubobj (void) const TAO_Stub * CORBA::Object::_stubobj (void) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(0); return this->protocol_proxy_; } CORBA::ULong CORBA::Object::_hash (CORBA::ULong maximum) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(0); if (this->protocol_proxy_ != 0) return this->protocol_proxy_->hash (maximum); @@ -311,7 +311,7 @@ CORBA::Object::_is_equivalent (CORBA::Object_ptr other_obj) return true; } - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(false); if (this->protocol_proxy_ != 0) return this->protocol_proxy_->is_equivalent (other_obj); @@ -321,10 +321,10 @@ CORBA::Object::_is_equivalent (CORBA::Object_ptr other_obj) // TAO's extensions -TAO::ObjectKey * +TAO::ObjectKey CORBA::Object::_key (void) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(0); if (this->_stubobj () && this->_stubobj ()->profile_in_use ()) return this->_stubobj ()->profile_in_use ()->_key (); @@ -355,7 +355,7 @@ CORBA::Object::is_nil_i (CORBA::Object_ptr obj) // If the profile length is zero for a non-evaluted IOR it is a // null-object. - if ((!obj->is_evaluated ()) && obj->ior ().profiles.length () == 0) + if ((!obj->is_evaluated ()) && obj->ior ().profiles.size () == 0) return true; // To accomodate new definitions. @@ -452,7 +452,7 @@ CORBA::Object::_create_request (CORBA::Context_ptr ctx, CORBA::Request_ptr CORBA::Object::_request (const char *operation) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(0); if (this->protocol_proxy_) { TAO_Dynamic_Adapter *dynamic_adapter = @@ -478,7 +478,7 @@ CORBA::Object::_request (const char *operation) CORBA::Boolean CORBA::Object::_non_existent (void) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(false); CORBA::Boolean retval = false; @@ -499,14 +499,14 @@ CORBA::Object::_non_existent (void) CORBA::InterfaceDef_ptr CORBA::Object::_get_interface (void) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(0); return this->proxy_broker ()->_get_interface (this); } CORBA::Object_ptr CORBA::Object::_get_component (void) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(CORBA::Object::_nil ()); return this->proxy_broker ()->_get_component (this); } #endif @@ -514,7 +514,7 @@ CORBA::Object::_get_component (void) char* CORBA::Object::_repository_id (void) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(0); return this->proxy_broker ()->_repository_id (this); } @@ -531,7 +531,7 @@ CORBA::Object::_repository_id (void) CORBA::Policy_ptr CORBA::Object::_get_policy (CORBA::PolicyType type) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(CORBA::Policy::_nil ()); if (this->protocol_proxy_) return this->protocol_proxy_->get_policy (type); @@ -542,7 +542,7 @@ CORBA::Object::_get_policy (CORBA::PolicyType type) CORBA::Policy_ptr CORBA::Object::_get_cached_policy (TAO_Cached_Policy_Type type) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(CORBA::Policy::_nil ()); if (this->protocol_proxy_) return this->protocol_proxy_->get_cached_policy (type); @@ -555,7 +555,7 @@ CORBA::Object::_set_policy_overrides ( const CORBA::PolicyList & policies, CORBA::SetOverrideType set_add) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(CORBA::Object::_nil ()); if (!this->protocol_proxy_) throw ::CORBA::NO_IMPLEMENT (); @@ -588,10 +588,10 @@ CORBA::Object::_set_policy_overrides ( return obj; } -CORBA::PolicyList * +CORBA::PolicyList CORBA::Object::_get_policy_overrides (const CORBA::PolicyTypeSeq & types) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(CORBA::PolicyList ()); if (this->protocol_proxy_) return this->protocol_proxy_->get_policy_overrides (types); else @@ -600,11 +600,11 @@ CORBA::Object::_get_policy_overrides (const CORBA::PolicyTypeSeq & types) CORBA::Boolean CORBA::Object::_validate_connection ( - CORBA::PolicyList_out inconsistent_policies) + CORBA::PolicyList & inconsistent_policies) { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(false); - inconsistent_policies = 0; + inconsistent_policies; CORBA::Boolean retval = true; #if (TAO_HAS_MINIMUM_CORBA == 0) @@ -644,7 +644,7 @@ CORBA::Object::_get_orb (void) } else { - TAO_OBJECT_IOR_EVALUATE_RETURN; + TAO_OBJECT_IOR_EVALUATE_RETURN(CORBA::ORB::_nil ()); if (this->protocol_proxy_) return CORBA::ORB::_duplicate (this->protocol_proxy_->orb_core ()->orb ()); else @@ -704,7 +704,7 @@ operator<< (TAO_OutputCDR& cdr, const CORBA::Object* x) CORBA::Object::tao_object_initialize (CORBA::Object *obj) { CORBA::ULong const profile_count = - obj->ior_->profiles.length (); + obj->ior_->profiles.size (); // Assumption is that after calling this method, folks should test // for protocol_proxy_ or whatever to make sure that things have diff --git a/tao/Object.h b/tao/Object.h index 5a195a0969e..98399037bb6 100644 --- a/tao/Object.h +++ b/tao/Object.h @@ -212,11 +212,11 @@ namespace CORBA const CORBA::PolicyList & policies, CORBA::SetOverrideType set_add); - CORBA::PolicyList * _get_policy_overrides ( + CORBA::PolicyList _get_policy_overrides ( const CORBA::PolicyTypeSeq & types); CORBA::Boolean _validate_connection ( - CORBA::PolicyList_out inconsistent_policies); + CORBA::PolicyList & inconsistent_policies); #endif /* TAO_HAS_CORBA_MESSAGING == 1 */ @@ -275,7 +275,7 @@ namespace CORBA /// Return the object key as an out parameter. Caller should release /// return value when finished with it. - virtual TAO::ObjectKey *_key (void); + virtual TAO::ObjectKey _key (void); /// Constructor Object (TAO_Stub *p, diff --git a/tao/ObjectIdList.pidl b/tao/ObjectIdList.pidl index c0e793e799e..b60933f8903 100644 --- a/tao/ObjectIdList.pidl +++ b/tao/ObjectIdList.pidl @@ -32,12 +32,14 @@ #ifndef TAO_CORBA_ORB_OBJECTIDLIST_PIDL #define TAO_CORBA_ORB_OBJECTIDLIST_PIDL +#include "tao/StringSeq.pidl" + #pragma prefix "omg.org" module CORBA { typedef string ORB_ObjectId; - typedef sequence ORB_ObjectIdList; + typedef StringSeq ORB_ObjectIdList; }; #endif /* TAO_CORBA_ORB_OBJECTIDLIST_PIDL */ diff --git a/tao/Object_KeyC.cpp b/tao/Object_KeyC.cpp index 801f8c01b41..126a298022a 100644 --- a/tao/Object_KeyC.cpp +++ b/tao/Object_KeyC.cpp @@ -58,36 +58,6 @@ namespace TAO TAO::ObjectKey::ObjectKey (void) {} -TAO::ObjectKey::ObjectKey ( - CORBA::ULong max - ) - : TAO::unbounded_value_sequence< - CORBA::Octet - > - (max) -{} - -TAO::ObjectKey::ObjectKey ( - CORBA::ULong max, - CORBA::ULong length, - CORBA::Octet * buffer, - CORBA::Boolean release - ) - : TAO::unbounded_value_sequence< - CORBA::Octet - > - (max, length, buffer, release) -{} - -TAO::ObjectKey::ObjectKey ( - const ObjectKey &seq - ) - : TAO::unbounded_value_sequence< - CORBA::Octet - > - (seq) -{} - TAO::ObjectKey::~ObjectKey (void) {} @@ -95,7 +65,7 @@ TAO::ObjectKey::~ObjectKey (void) void TAO::ObjectKey::encode_sequence_to_string (char* & str, - TAO::unbounded_value_sequence const & seq) + std::vector const & seq) { // We must allocate a buffer which is (gag) 3 times the length // of the sequence, which is the length required in the worst-case @@ -106,7 +76,7 @@ TAO::ObjectKey::encode_sequence_to_string (char* & str, // OR, we could just return this space. The classic time-space tradeoff, // and for now we'll let time win out, which means that we only do the // allocation once. - CORBA::ULong const seq_len = seq.length (); + CORBA::ULong const seq_len = seq.size (); CORBA::ULong const len = 3 * seq_len; /* space for zero termination not needed */ str = CORBA::string_alloc (len); @@ -152,12 +122,12 @@ TAO::ObjectKey::is_legal (unsigned char c) void TAO::ObjectKey::decode_string_to_sequence ( - TAO::unbounded_value_sequence & seq, + std::vector & seq, char const * str) { if (str == 0) { - seq.length (0); + seq.resize (0); return; } @@ -174,7 +144,7 @@ TAO::ObjectKey::decode_string_to_sequence ( // Set the length of the sequence to be as long as we'll possibly // need...we'll reset it to the actual length later. - seq.length (len); + seq.resize (len); CORBA::ULong i = 0; for (; @@ -196,7 +166,7 @@ TAO::ObjectKey::decode_string_to_sequence ( } // Set the length appropriately - seq.length (i); + seq.resize (i); } /*static*/ CORBA::Boolean @@ -216,14 +186,14 @@ TAO::ObjectKey::demarshal_key (TAO::ObjectKey &key, } // Set the length of the sequence. - key.length (_tao_seq_len); + key.resize (_tao_seq_len); // If length is 0 we return true. if (0 >= _tao_seq_len) { return 1; } - +/* // Retrieve all the elements. #if (TAO_NO_COPY_OCTET_SEQUENCES == 1) if (ACE_BIT_DISABLED (strm.start ()->flags (), @@ -237,8 +207,10 @@ TAO::ObjectKey::demarshal_key (TAO::ObjectKey &key, return strm.read_octet_array (key.get_buffer (), _tao_seq_len); #else /* TAO_NO_COPY_OCTET_SEQUENCES == 0 */ - return strm.read_octet_array (key.get_buffer (), key.length ()); -#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 0 */ + +// return strm.read_octet_array (key.get_buffer (), key.length ()); + return strm >> key; +//#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 0 */ } return 0; @@ -257,7 +229,8 @@ CORBA::Boolean operator<< ( const TAO::ObjectKey &_tao_sequence ) { - return TAO::marshal_sequence(strm, _tao_sequence); + return + strm << (const std::vector &) _tao_sequence; } CORBA::Boolean operator>> ( @@ -265,7 +238,8 @@ CORBA::Boolean operator>> ( TAO::ObjectKey &_tao_sequence ) { - return TAO::demarshal_sequence(strm, _tao_sequence); + return + strm >> (std::vector &) _tao_sequence; } #endif /* _TAO_CDR_OP_TAO_ObjectKey_CPP_ */ diff --git a/tao/Object_KeyC.h b/tao/Object_KeyC.h index 503cfbe762c..2521b475b43 100644 --- a/tao/Object_KeyC.h +++ b/tao/Object_KeyC.h @@ -33,7 +33,6 @@ #include /**/ "ace/pre.h" - #include "ace/config-all.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) @@ -42,10 +41,8 @@ #include /**/ "tao/TAO_Export.h" #include "tao/ORB.h" -#include "tao/Environment.h" -#include "tao/Sequence_T.h" -#include "tao/Seq_Var_T.h" -#include "tao/Seq_Out_T.h" +//#include "tao/Environment.h" +#include "tao/OctetSeqC.h" #if defined (TAO_EXPORT_MACRO) #undef TAO_EXPORT_MACRO @@ -71,40 +68,14 @@ namespace TAO #if !defined (_TAO_OBJECTKEY_CH_) #define _TAO_OBJECTKEY_CH_ - class ObjectKey; - - typedef - TAO_FixedSeq_Var_T< - ObjectKey - > - ObjectKey_var; - - typedef - TAO_Seq_Out_T< - ObjectKey - > - ObjectKey_out; - class TAO_Export ObjectKey : public - TAO::unbounded_value_sequence< - CORBA::Octet - > + std::vector< ::CORBA::Octet> { public: ObjectKey (void); - ObjectKey (CORBA::ULong max); - ObjectKey ( - CORBA::ULong max, - CORBA::ULong length, - CORBA::Octet* buffer, - CORBA::Boolean release = false - ); - ObjectKey (const ObjectKey &); ~ObjectKey (void); - - typedef ObjectKey_var _var_type; - +/* #if (TAO_NO_COPY_OCTET_SEQUENCES == 1) ObjectKey ( CORBA::ULong length, @@ -117,10 +88,10 @@ namespace TAO static void encode_sequence_to_string ( char* & str, - TAO::unbounded_value_sequence const & seq + std::vector const & seq ); static void decode_string_to_sequence ( - TAO::unbounded_value_sequence &seq, + std::vector &seq, char const * str ); static CORBA::Boolean is_legal (unsigned char c); diff --git a/tao/Policy_Current.cpp b/tao/Policy_Current.cpp index 6015144dd5a..d428c52972e 100644 --- a/tao/Policy_Current.cpp +++ b/tao/Policy_Current.cpp @@ -41,7 +41,7 @@ TAO_Policy_Current::get_policy (CORBA::PolicyType policy) return impl.get_policy (policy); } -CORBA::PolicyList * +CORBA::PolicyList TAO_Policy_Current::get_policy_overrides (const CORBA::PolicyTypeSeq & ts) { diff --git a/tao/Policy_Current.h b/tao/Policy_Current.h index 05c18e88e90..8a926ff0851 100644 --- a/tao/Policy_Current.h +++ b/tao/Policy_Current.h @@ -50,7 +50,7 @@ public: // = The CORBA::PolicyManager operations - virtual CORBA::PolicyList * get_policy_overrides ( + virtual CORBA::PolicyList get_policy_overrides ( const CORBA::PolicyTypeSeq & ts); virtual void set_policy_overrides ( diff --git a/tao/Policy_Current_Impl.cpp b/tao/Policy_Current_Impl.cpp index 44c07ee2549..6e2c126ada3 100644 --- a/tao/Policy_Current_Impl.cpp +++ b/tao/Policy_Current_Impl.cpp @@ -22,7 +22,7 @@ TAO_Policy_Current_Impl::set_policy_overrides ( this->manager_impl_.set_policy_overrides (policies, set_add); } -CORBA::PolicyList * +CORBA::PolicyList TAO_Policy_Current_Impl::get_policy_overrides (const CORBA::PolicyTypeSeq & ts) { return this->manager_impl_.get_policy_overrides (ts); diff --git a/tao/Policy_Current_Impl.h b/tao/Policy_Current_Impl.h index ccaaca6ea1b..20b8dd97e97 100644 --- a/tao/Policy_Current_Impl.h +++ b/tao/Policy_Current_Impl.h @@ -49,7 +49,7 @@ public: // = The CORBA::PolicyManager operations - CORBA::PolicyList * get_policy_overrides (const CORBA::PolicyTypeSeq & ts); + CORBA::PolicyList get_policy_overrides (const CORBA::PolicyTypeSeq & ts); void set_policy_overrides (const CORBA::PolicyList & policies, CORBA::SetOverrideType set_add); diff --git a/tao/Policy_Forward.pidl b/tao/Policy_Forward.pidl index 3b8d09d39a9..803cce2ff4d 100644 --- a/tao/Policy_Forward.pidl +++ b/tao/Policy_Forward.pidl @@ -27,6 +27,8 @@ #ifndef TAO_CORBA_POLICY_FORWARD_PIDL #define TAO_CORBA_POLICY_FORWARD_PIDL +#include "tao/ULongSeq.pidl" + #pragma prefix "omg.org" module CORBA @@ -37,7 +39,7 @@ module CORBA typedef sequence PolicyList; - typedef sequence PolicyTypeSeq; + typedef ULongSeq PolicyTypeSeq; local interface PolicyCurrent; diff --git a/tao/Policy_Manager.cpp b/tao/Policy_Manager.cpp index bf40e768f2e..d52fee3e61d 100644 --- a/tao/Policy_Manager.cpp +++ b/tao/Policy_Manager.cpp @@ -15,10 +15,13 @@ ACE_RCSID (tao, TAO_BEGIN_VERSIONED_NAMESPACE_DECL -CORBA::PolicyList * +CORBA::PolicyList TAO_Policy_Manager::get_policy_overrides (const CORBA::PolicyTypeSeq & ts) { - ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, 0); + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, + ace_mon, + this->mutex_, + CORBA::PolicyList ()); return this->impl_.get_policy_overrides (ts); } diff --git a/tao/Policy_Manager.h b/tao/Policy_Manager.h index 3b2054c3d12..9e6c449e097 100644 --- a/tao/Policy_Manager.h +++ b/tao/Policy_Manager.h @@ -49,7 +49,7 @@ public: // = The CORBA::PolicyManager operations - virtual CORBA::PolicyList * get_policy_overrides ( + virtual CORBA::PolicyList get_policy_overrides ( const CORBA::PolicyTypeSeq & ts); virtual void set_policy_overrides (const CORBA::PolicyList & policies, diff --git a/tao/Policy_Set.cpp b/tao/Policy_Set.cpp index afbc6ae3489..c19a673301f 100644 --- a/tao/Policy_Set.cpp +++ b/tao/Policy_Set.cpp @@ -44,11 +44,11 @@ TAO_Policy_Set::TAO_Policy_Set (const TAO_Policy_Set &rhs) } // Copy over the policy list. - this->policy_list_.length (rhs.policy_list_.length ()); + this->policy_list_.resize (rhs.policy_list_.size ()); try { - for (CORBA::ULong i = 0; i < rhs.policy_list_.length (); ++i) + for (CORBA::ULong i = 0; i < rhs.policy_list_.size (); ++i) { CORBA::Policy_ptr policy = rhs.policy_list_[i]; @@ -76,7 +76,7 @@ TAO_Policy_Set::TAO_Policy_Set (const TAO_Policy_Set &rhs) ex._tao_print_exception ("TAO_Policy_Set::TAO_Policy_Set"); // "Try" to make this recoverable as we must have run out of memory. - this->policy_list_.length (0); + this->policy_list_.resize (0); } } @@ -90,7 +90,7 @@ TAO_Policy_Set::copy_from (TAO_Policy_Set *source) this->cleanup_i (); - for (CORBA::ULong i = 0; i < source->policy_list_.length (); ++i) + for (CORBA::ULong i = 0; i < source->policy_list_.size (); ++i) { CORBA::Policy_ptr policy = source->policy_list_[i]; @@ -106,8 +106,8 @@ TAO_Policy_Set::copy_from (TAO_Policy_Set *source) CORBA::Policy_var copy = policy->copy (); - CORBA::ULong const length = this->policy_list_.length (); - this->policy_list_.length (length + 1); + CORBA::ULong const length = this->policy_list_.size (); + this->policy_list_.resize (length + 1); TAO_Cached_Policy_Type const cached_type = copy->_tao_cached_type (); @@ -126,7 +126,7 @@ TAO_Policy_Set::copy_from (TAO_Policy_Set *source) void TAO_Policy_Set::cleanup_i (void) { - CORBA::ULong const len = this->policy_list_.length (); + CORBA::ULong const len = this->policy_list_.size (); // Cleanup the policy list. for (CORBA::ULong i = 0; i < len; ++i) { @@ -134,7 +134,7 @@ TAO_Policy_Set::cleanup_i (void) this->policy_list_[i] = CORBA::Policy::_nil (); } - this->policy_list_.length (0); + this->policy_list_.resize (0); // Cleanup the cache. for (CORBA::ULong j = 0; j < TAO_CACHED_POLICY_MAX_CACHED; ++j) @@ -163,7 +163,7 @@ TAO_Policy_Set::set_policy_overrides (const CORBA::PolicyList &policies, // RTCORBA::ServerProtocolPolicy during this call. bool server_protocol_set = false; - CORBA::ULong const plen = policies.length (); + CORBA::ULong const plen = policies.size (); for (CORBA::ULong i = 0; i < plen; ++i) { @@ -209,7 +209,7 @@ TAO_Policy_Set::set_policy (const CORBA::Policy_ptr policy) CORBA::Policy_var copy = policy->copy (); CORBA::ULong j = 0; - CORBA::ULong const length = this->policy_list_.length (); + CORBA::ULong const length = this->policy_list_.size (); while (j != length) { @@ -229,7 +229,7 @@ TAO_Policy_Set::set_policy (const CORBA::Policy_ptr policy) if (j == length) { - this->policy_list_.length (length + 1); + this->policy_list_.resize (length + 1); this->policy_list_[j] = copy.ptr (); } @@ -248,34 +248,38 @@ TAO_Policy_Set::set_policy (const CORBA::Policy_ptr policy) (void) copy._retn (); } -CORBA::PolicyList * +CORBA::PolicyList TAO_Policy_Set::get_policy_overrides (const CORBA::PolicyTypeSeq &types) { - CORBA::ULong const slots = types.length (); - CORBA::PolicyList *policy_list_ptr = 0; + CORBA::ULong const slots = types.size (); + CORBA::PolicyList policy_list; + +// CORBA::PolicyList *policy_list_ptr = 0; if (slots == 0) { + /* // Copy our own policy list. ACE_NEW_THROW_EX (policy_list_ptr, CORBA::PolicyList (this->policy_list_), CORBA::NO_MEMORY ()); - - return policy_list_ptr; + */ + return policy_list; } - +/* ACE_NEW_THROW_EX (policy_list_ptr, CORBA::PolicyList (slots), CORBA::NO_MEMORY ()); CORBA::PolicyList_var policy_list (policy_list_ptr); policy_list->length (slots); + */ CORBA::ULong n = 0; for (CORBA::ULong j = 0; j < slots; ++j) { CORBA::ULong const slot = types[j]; - CORBA::ULong const length = this->policy_list_.length (); + CORBA::ULong const length = this->policy_list_.size (); for (CORBA::ULong i = 0; i < length; ++i) { @@ -293,15 +297,15 @@ TAO_Policy_Set::get_policy_overrides (const CORBA::PolicyTypeSeq &types) } } - policy_list->length (n); // Truncate buffer if necessary. + policy_list.resize (n); // Truncate buffer if necessary. - return policy_list._retn (); + return policy_list; } CORBA::Policy_ptr TAO_Policy_Set::get_policy (CORBA::PolicyType type) { - CORBA::ULong const length = this->policy_list_.length (); + CORBA::ULong const length = this->policy_list_.size (); for (CORBA::ULong i = 0; i < length; ++i) { diff --git a/tao/Policy_Set.h b/tao/Policy_Set.h index 13215b72ca9..7a5092b7684 100644 --- a/tao/Policy_Set.h +++ b/tao/Policy_Set.h @@ -69,7 +69,7 @@ public: /// Get the values (if any) for the policies in @a types, if @a /// types is an empty list the method returns *all* the current /// policies. - CORBA::PolicyList * get_policy_overrides (const CORBA::PolicyTypeSeq & types); + CORBA::PolicyList get_policy_overrides (const CORBA::PolicyTypeSeq & types); /// Obtain a single policy. CORBA::Policy_ptr get_policy (CORBA::PolicyType policy); diff --git a/tao/Policy_Set.inl b/tao/Policy_Set.inl index 2263ccd4fad..73abea5e72a 100644 --- a/tao/Policy_Set.inl +++ b/tao/Policy_Set.inl @@ -21,7 +21,7 @@ TAO_Policy_Set::get_policy_by_index (CORBA::ULong index) const ACE_INLINE CORBA::ULong TAO_Policy_Set::num_policies (void) const { - return this->policy_list_.length(); + return this->policy_list_.size(); } TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/tao/PortableServer.mpc b/tao/PortableServer.mpc index 2f88a3dd39f..dc88c3a7ae7 100644 --- a/tao/PortableServer.mpc +++ b/tao/PortableServer.mpc @@ -1,6 +1,8 @@ //$Id$ project(*idl) : tao_versioning_idl_defaults, install, pidl_install { custom_only = 1 + idlflags += -Gstl + IDL_Files { idlflags += -Gp -Gd -Sci -SS -Sorb -GA \ -Wb,export_macro=TAO_PortableServer_Export \ diff --git a/tao/PortableServer/Active_Object_Map.cpp b/tao/PortableServer/Active_Object_Map.cpp index b6d7ef67b11..95ff4af547e 100644 --- a/tao/PortableServer/Active_Object_Map.cpp +++ b/tao/PortableServer/Active_Object_Map.cpp @@ -533,7 +533,7 @@ TAO_Unique_Id_Strategy::unbind_using_user_id ( int TAO_Unique_Id_Strategy::find_user_id_using_servant ( PortableServer::Servant servant, - PortableServer::ObjectId_out user_id) + PortableServer::ObjectId & user_id) { TAO_Active_Object_Map_Entry *entry = 0; int result = this->active_object_map_->servant_map_->find (servant, entry); @@ -546,9 +546,12 @@ TAO_Unique_Id_Strategy::find_user_id_using_servant ( } else { + user_id.assign (entry->user_id_.begin (), entry->user_id_.end ()); + /* ACE_NEW_RETURN (user_id, - PortableServer::ObjectId (entry->user_id_), + PortableServer::ObjectId (entry->user_id_.), -1); + */ } } @@ -558,7 +561,7 @@ TAO_Unique_Id_Strategy::find_user_id_using_servant ( int TAO_Unique_Id_Strategy::find_system_id_using_servant ( PortableServer::Servant servant, - PortableServer::ObjectId_out system_id, + PortableServer::ObjectId & system_id, CORBA::Short &priority) { TAO_Active_Object_Map_Entry *entry = 0; @@ -689,7 +692,7 @@ TAO_Multiple_Id_Strategy::unbind_using_user_id ( int TAO_Multiple_Id_Strategy::find_user_id_using_servant ( PortableServer::Servant, - PortableServer::ObjectId_out) + PortableServer::ObjectId &) { return -1; } @@ -697,7 +700,7 @@ TAO_Multiple_Id_Strategy::find_user_id_using_servant ( int TAO_Multiple_Id_Strategy::find_system_id_using_servant ( PortableServer::Servant, - PortableServer::ObjectId_out, + PortableServer::ObjectId &, CORBA::Short &) { return -1; @@ -1024,12 +1027,16 @@ TAO_Active_Hint_Strategy::hint_size (void) } int -TAO_Active_Hint_Strategy::system_id (PortableServer::ObjectId_out system_id, +TAO_Active_Hint_Strategy::system_id (PortableServer::ObjectId & system_id, TAO_Active_Object_Map_Entry &entry) { + system_id.assign (entry.system_id_.begin (), entry.system_id_.end ()); + + /* ACE_NEW_RETURN (system_id, PortableServer::ObjectId (entry.system_id_), -1); + */ return 0; } @@ -1078,12 +1085,16 @@ TAO_No_Hint_Strategy::hint_size (void) } int -TAO_No_Hint_Strategy::system_id (PortableServer::ObjectId_out system_id, +TAO_No_Hint_Strategy::system_id (PortableServer::ObjectId & system_id, TAO_Active_Object_Map_Entry &entry) { + system_id.assign (entry.user_id_.begin (), entry.user_id_.end ()); + + /* ACE_NEW_RETURN (system_id, PortableServer::ObjectId (entry.user_id_), -1); + */ return 0; } diff --git a/tao/PortableServer/Active_Object_Map.h b/tao/PortableServer/Active_Object_Map.h index bba8479e644..98943ef0cf8 100644 --- a/tao/PortableServer/Active_Object_Map.h +++ b/tao/PortableServer/Active_Object_Map.h @@ -79,14 +79,14 @@ public: bind_using_system_id_returning_system_id ( PortableServer::Servant servant, CORBA::Short priority, - PortableServer::ObjectId_out system_id); + PortableServer::ObjectId & system_id); /// Must be used with SYSTEM_ID policy. int bind_using_system_id_returning_user_id ( PortableServer::Servant servant, CORBA::Short priority, - PortableServer::ObjectId_out user_id); + PortableServer::ObjectId & user_id); /// Can be used with any policy. With the SYSTEM_ID policy, /// user_id is actually system_id. @@ -100,7 +100,7 @@ public: int find_system_id_using_user_id (const PortableServer::ObjectId &user_id, CORBA::Short priority, - PortableServer::ObjectId_out system_id); + PortableServer::ObjectId & system_id); /// Can be used with any policy. int @@ -119,13 +119,13 @@ public: /// user_id is actually system_id. int find_user_id_using_servant (PortableServer::Servant servant, - PortableServer::ObjectId_out user_id); + PortableServer::ObjectId & user_id); /// Must be used with UNIQUE_ID policy. With the SYSTEM_ID policy, /// user_id is actually system_id. int find_system_id_using_servant (PortableServer::Servant servant, - PortableServer::ObjectId_out system_id, + PortableServer::ObjectId & system_id, CORBA::Short &priority); /// Can be used with any policy. With the SYSTEM_ID policy, @@ -149,7 +149,7 @@ public: find_servant_and_system_id_using_user_id ( const PortableServer::ObjectId &user_id, PortableServer::Servant &servant, - PortableServer::ObjectId_out system_id, + PortableServer::ObjectId & system_id, CORBA::Short &priority); /// Can be used with any policy. With the SYSTEM_ID policy, @@ -166,13 +166,7 @@ public: /// the @a system_id is identical to @a user_id. int find_user_id_using_system_id (const PortableServer::ObjectId &system_id, - PortableServer::ObjectId_out user_id); - - /// Can be used with any policy. When the SYSTEM_ID policy is used, - /// the @a system_id is identical to @a user_id. - int - find_user_id_using_system_id (const PortableServer::ObjectId &system_id, - PortableServer::ObjectId &user_id); + const PortableServer::ObjectId &user_id); /// Are there any remaining activations of @a servant in the active /// object map? Can be used with any policy. @@ -296,13 +290,13 @@ public: /// @a user_id is actually @c system_id. virtual int find_user_id_using_servant (PortableServer::Servant servant, - PortableServer::ObjectId_out user_id) = 0; + PortableServer::ObjectId & user_id) = 0; /// Must be used with UNIQUE_ID policy. With the SYSTEM_ID policy, /// is actually @a system_id. virtual int find_system_id_using_servant (PortableServer::Servant servant, - PortableServer::ObjectId_out system_id, + PortableServer::ObjectId & system_id, CORBA::Short &priority) = 0; /// Can be used with any policy. With the SYSTEM_ID policy, @@ -353,13 +347,13 @@ public: /// @a user_id is actually @c system_id. virtual int find_user_id_using_servant (PortableServer::Servant servant, - PortableServer::ObjectId_out user_id); + PortableServer::ObjectId & user_id); /// Must be used with UNIQUE_ID policy. With the SYSTEM_ID policy, /// is actually @a system_id. virtual int find_system_id_using_servant (PortableServer::Servant servant, - PortableServer::ObjectId_out system_id, + PortableServer::ObjectId & system_id, CORBA::Short &priority); /// Can be used with any policy. With the SYSTEM_ID policy, @@ -402,13 +396,13 @@ public: /// @a user_id is actually @c system_id. virtual int find_user_id_using_servant (PortableServer::Servant servant, - PortableServer::ObjectId_out user_id); + PortableServer::ObjectId & user_id); /// Must be used with UNIQUE_ID policy. With the SYSTEM_ID policy, /// is actually @a system_id. virtual int find_system_id_using_servant (PortableServer::Servant servant, - PortableServer::ObjectId_out system_id, + PortableServer::ObjectId & system_id, CORBA::Short &priority); /// Can be used with any policy. With the SYSTEM_ID policy, @@ -624,7 +618,7 @@ public: /// Get the system id associated with this entry. virtual int - system_id (PortableServer::ObjectId_out system_id, + system_id (PortableServer::ObjectId & system_id, TAO_Active_Object_Map_Entry &entry) = 0; }; @@ -661,7 +655,7 @@ public: hint_size (void); virtual int - system_id (PortableServer::ObjectId_out system_id, + system_id (PortableServer::ObjectId & system_id, TAO_Active_Object_Map_Entry &entry); typedef ACE_Active_Map_Manager_Adapter< @@ -703,7 +697,7 @@ public: hint_size (void); virtual int - system_id (PortableServer::ObjectId_out system_id, + system_id (PortableServer::ObjectId & system_id, TAO_Active_Object_Map_Entry &entry); }; diff --git a/tao/PortableServer/Active_Object_Map.inl b/tao/PortableServer/Active_Object_Map.inl index 74c638753dc..b21fa16b32a 100644 --- a/tao/PortableServer/Active_Object_Map.inl +++ b/tao/PortableServer/Active_Object_Map.inl @@ -18,21 +18,21 @@ ACE_INLINE int TAO_Active_Object_Map::bind_using_system_id_returning_system_id ( PortableServer::Servant servant, CORBA::Short priority, - PortableServer::ObjectId_out system_id) + PortableServer::ObjectId & system_id) { if (servant == 0 && !this->using_active_maps_) { - PortableServer::ObjectId id; - - int result = this->user_id_map_->create_key (id); +// PortableServer::ObjectId id; + int result = this->user_id_map_->create_key (system_id); +/* if (result == 0) { ACE_NEW_RETURN (system_id, PortableServer::ObjectId (id), -1); } - +*/ return result; } @@ -56,7 +56,7 @@ ACE_INLINE int TAO_Active_Object_Map::bind_using_system_id_returning_user_id ( PortableServer::Servant servant, CORBA::Short priority, - PortableServer::ObjectId_out user_id) + PortableServer::ObjectId & user_id) { TAO_Active_Object_Map_Entry *entry = 0; @@ -65,9 +65,12 @@ TAO_Active_Object_Map::bind_using_system_id_returning_user_id ( priority, entry); if (result == 0) + user_id.assign (entry->user_id_.begin (), entry->user_id_.end ()); + /* ACE_NEW_RETURN (user_id, PortableServer::ObjectId (entry->user_id_), -1); + */ return result; } @@ -88,14 +91,17 @@ ACE_INLINE int TAO_Active_Object_Map::find_system_id_using_user_id ( const PortableServer::ObjectId &user_id, CORBA::Short priority, - PortableServer::ObjectId_out system_id) + PortableServer::ObjectId & system_id) { if (!this->using_active_maps_) { + system_id.assign (user_id.begin (), user_id.end ()); + + /* ACE_NEW_RETURN (system_id, PortableServer::ObjectId (user_id), -1); - + */ return 0; } @@ -137,7 +143,7 @@ TAO_Active_Object_Map::unbind_using_user_id ( ACE_INLINE int TAO_Active_Object_Map::find_user_id_using_servant ( PortableServer::Servant servant, - PortableServer::ObjectId_out user_id) + PortableServer::ObjectId & user_id) { return this->id_uniqueness_strategy_->find_user_id_using_servant (servant, @@ -147,7 +153,7 @@ TAO_Active_Object_Map::find_user_id_using_servant ( ACE_INLINE int TAO_Active_Object_Map::find_system_id_using_servant ( PortableServer::Servant servant, - PortableServer::ObjectId_out system_id, + PortableServer::ObjectId & system_id, CORBA::Short &priority) { return @@ -220,7 +226,7 @@ ACE_INLINE int TAO_Active_Object_Map::find_servant_and_system_id_using_user_id ( const PortableServer::ObjectId &user_id, PortableServer::Servant &servant, - PortableServer::ObjectId_out system_id, + PortableServer::ObjectId & system_id, CORBA::Short &priority) { TAO_Active_Object_Map_Entry *entry = 0; @@ -250,23 +256,7 @@ TAO_Active_Object_Map::find_servant_and_system_id_using_user_id ( ACE_INLINE int TAO_Active_Object_Map::find_user_id_using_system_id ( const PortableServer::ObjectId &system_id, - PortableServer::ObjectId_out user_id) -{ - PortableServer::ObjectId id; - if (this->id_hint_strategy_->recover_key (system_id, id) == 0) - { - ACE_NEW_RETURN (user_id, - PortableServer::ObjectId (id), - -1); - } - - return 0; -} - -ACE_INLINE int -TAO_Active_Object_Map::find_user_id_using_system_id ( - const PortableServer::ObjectId &system_id, - PortableServer::ObjectId &user_id) + const PortableServer::ObjectId &user_id) { return this->id_hint_strategy_->recover_key (system_id, user_id); } diff --git a/tao/PortableServer/LifespanStrategy.h b/tao/PortableServer/LifespanStrategy.h index 70e0c06c04d..4f9cd2f7cd9 100644 --- a/tao/PortableServer/LifespanStrategy.h +++ b/tao/PortableServer/LifespanStrategy.h @@ -50,7 +50,7 @@ namespace TAO /** * Validate the passed object key if it belongs to this POA. */ - bool validate (TAO::ObjectKey_var& key); + bool validate (TAO::ObjectKey & key); /** * Returns the length of the key type diff --git a/tao/PortableServer/Object_Adapter.h b/tao/PortableServer/Object_Adapter.h index 95e81dd97c0..63f56bcb85d 100644 --- a/tao/PortableServer/Object_Adapter.h +++ b/tao/PortableServer/Object_Adapter.h @@ -79,8 +79,8 @@ public: friend class TAO_Root_POA; typedef PortableServer::ObjectId poa_name; - typedef PortableServer::ObjectId_var poa_name_var; - typedef PortableServer::ObjectId_out poa_name_out; +// typedef PortableServer::ObjectId_var poa_name_var; + typedef PortableServer::ObjectId & poa_name_out; /// Constructor. TAO_Object_Adapter (const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters &creation_parameters, diff --git a/tao/PortableServer/POAManager.cpp b/tao/PortableServer/POAManager.cpp index 8cbd7aa4ccf..675857c1007 100644 --- a/tao/PortableServer/POAManager.cpp +++ b/tao/PortableServer/POAManager.cpp @@ -32,14 +32,14 @@ TAO_POA_Manager::TAO_POA_Manager ( poa_collection_ (), object_adapter_ (object_adapter), #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) - id_ (id == 0 ? this->generate_manager_id () : CORBA::string_dup (id)), + id_ (id == 0 ? this->generate_manager_id () : id), poa_manager_factory_ (* dynamic_cast (poa_manager_factory)), policies_ (policies) { poa_manager_factory_._add_ref (); } #else - id_ (id == 0 ? this->generate_manager_id () : CORBA::string_dup (id)) + id_ (id == 0 ? this->generate_manager_id () : id) { } #endif @@ -52,10 +52,10 @@ TAO_POA_Manager::~TAO_POA_Manager (void) #endif } -char * +std::string TAO_POA_Manager::get_id (void) { - return CORBA::string_dup (this->id_.in ()); + return this->id_; } void @@ -167,7 +167,7 @@ TAO_POA_Manager::adapter_manager_state_changed (PortableServer::POAManager::Stat if (ior_adapter) { - ior_adapter->adapter_manager_state_changed (this->id_.in (), + ior_adapter->adapter_manager_state_changed (this->id_, adapter_state); } } diff --git a/tao/PortableServer/POAManager.h b/tao/PortableServer/POAManager.h index 23768dc0a8a..4c2d3e709ab 100644 --- a/tao/PortableServer/POAManager.h +++ b/tao/PortableServer/POAManager.h @@ -77,7 +77,7 @@ public: PortableServer::POAManager::State get_state (void); - char *get_id (void); + std::string get_id (void); TAO_POA_Manager (TAO_Object_Adapter &object_adapter, #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) @@ -138,7 +138,7 @@ protected: TAO_Object_Adapter &object_adapter_; - CORBA::String_var id_; + std::string id_; #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) diff --git a/tao/PortableServer/POAManagerFactory.cpp b/tao/PortableServer/POAManagerFactory.cpp index 2c0fc32b1da..a595b7f9bf0 100644 --- a/tao/PortableServer/POAManagerFactory.cpp +++ b/tao/PortableServer/POAManagerFactory.cpp @@ -78,18 +78,19 @@ TAO_POAManager_Factory::create_POAManager ( return poamanager._retn (); } -::PortableServer::POAManagerFactory::POAManagerSeq * +::PortableServer::POAManagerFactory::POAManagerSeq TAO_POAManager_Factory::list (void) { - ::PortableServer::POAManagerFactory::POAManagerSeq_var poamanagers; + ::PortableServer::POAManagerFactory::POAManagerSeq poamanagers; CORBA::ULong number_of_poamanagers = static_cast (this->poamanager_set_.size ()); + /* ACE_NEW_THROW_EX (poamanagers, PortableServer::POAManagerFactory::POAManagerSeq ( number_of_poamanagers), CORBA::NO_MEMORY ()); - - poamanagers->length (number_of_poamanagers); + */ + poamanagers->resize (number_of_poamanagers); CORBA::ULong index = 0; for (POAMANAGERSET::iterator iterator = this->poamanager_set_.begin (); @@ -97,8 +98,8 @@ TAO_POAManager_Factory::list (void) ++iterator, ++index) { ::PortableServer::POAManager_ptr poamanager = (*iterator); - poamanagers[index] = - PortableServer::POAManager::_duplicate (poamanager); + poamanagers[index] = poamanager; +// PortableServer::POAManager::_duplicate (poamanager); } return poamanagers._retn (); diff --git a/tao/PortableServer/POAManagerFactory.h b/tao/PortableServer/POAManagerFactory.h index 30603d8db4b..6476bc223c1 100644 --- a/tao/PortableServer/POAManagerFactory.h +++ b/tao/PortableServer/POAManagerFactory.h @@ -51,7 +51,7 @@ public: const char * id, const ::CORBA::PolicyList & policies); - virtual ::PortableServer::POAManagerFactory::POAManagerSeq * list (void); + virtual ::PortableServer::POAManagerFactory::POAManagerSeq list (void); virtual ::PortableServer::POAManager_ptr find (const char * id); diff --git a/tao/PortableServer/POA_Policy_Set.cpp b/tao/PortableServer/POA_Policy_Set.cpp index d4bc8d261bd..cc4dcde4925 100644 --- a/tao/PortableServer/POA_Policy_Set.cpp +++ b/tao/PortableServer/POA_Policy_Set.cpp @@ -34,9 +34,9 @@ TAO_POA_Policy_Set::~TAO_POA_Policy_Set (void) void TAO_POA_Policy_Set::add_client_exposed_fixed_policies ( - CORBA::PolicyList *client_exposed_policies) + CORBA::PolicyList &client_exposed_policies) { - CORBA::ULong cep_index = client_exposed_policies->length (); + CORBA::ULong cep_index = client_exposed_policies.size (); for (CORBA::ULong i = 0; i < this->num_policies (); diff --git a/tao/PortableServer/POA_Policy_Set.h b/tao/PortableServer/POA_Policy_Set.h index c01e3c9c882..5e427677df9 100644 --- a/tao/PortableServer/POA_Policy_Set.h +++ b/tao/PortableServer/POA_Policy_Set.h @@ -56,7 +56,7 @@ public: TAO_ORB_Core &orb_core); /// Add all of the client exposed policies to the specified list. - void add_client_exposed_fixed_policies (CORBA::PolicyList *client_exposed_policies); + void add_client_exposed_fixed_policies (CORBA::PolicyList &client_exposed_policies); TAO_Policy_Set &policies (void); diff --git a/tao/PortableServer/PS_ForwardC.h b/tao/PortableServer/PS_ForwardC.h index 592be9ab1e9..dd2f4bf3132 100644 --- a/tao/PortableServer/PS_ForwardC.h +++ b/tao/PortableServer/PS_ForwardC.h @@ -76,8 +76,6 @@ namespace PortableServer // be\be_visitor_typedef/typedef_ch.cpp:472 typedef CORBA::OctetSeq ObjectId; - typedef CORBA::OctetSeq_var ObjectId_var; - typedef CORBA::OctetSeq_out ObjectId_out; // TAO_IDL - Generated from // be\be_interface.cpp:598 diff --git a/tao/PortableServer/RequestProcessingStrategy.h b/tao/PortableServer/RequestProcessingStrategy.h index 4ce818c67b0..90e7d54c8c6 100644 --- a/tao/PortableServer/RequestProcessingStrategy.h +++ b/tao/PortableServer/RequestProcessingStrategy.h @@ -96,7 +96,7 @@ namespace TAO virtual void etherealize_objects (CORBA::Boolean etherealize_objects) = 0; - virtual PortableServer::ObjectId *servant_to_id ( + virtual PortableServer::ObjectId servant_to_id ( PortableServer::Servant servant) = 0; virtual void post_invoke_servant_cleanup( diff --git a/tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp b/tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp index 4778aa7db48..0921a84a439 100644 --- a/tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp +++ b/tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp @@ -126,7 +126,7 @@ namespace TAO { } - PortableServer::ObjectId * + PortableServer::ObjectId RequestProcessingStrategyAOMOnly::servant_to_id ( PortableServer::Servant servant) { diff --git a/tao/PortableServer/RequestProcessingStrategyAOMOnly.h b/tao/PortableServer/RequestProcessingStrategyAOMOnly.h index 84c0cfce064..dcdd7b73ff7 100644 --- a/tao/PortableServer/RequestProcessingStrategyAOMOnly.h +++ b/tao/PortableServer/RequestProcessingStrategyAOMOnly.h @@ -78,7 +78,7 @@ namespace TAO virtual void etherealize_objects (CORBA::Boolean etherealize_objects); - virtual PortableServer::ObjectId *servant_to_id ( + virtual PortableServer::ObjectId servant_to_id ( PortableServer::Servant servant); virtual void post_invoke_servant_cleanup( diff --git a/tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp b/tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp index f773734e11b..eb53b4f0297 100644 --- a/tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp +++ b/tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp @@ -206,7 +206,7 @@ namespace TAO { } - PortableServer::ObjectId * + PortableServer::ObjectId RequestProcessingStrategyDefaultServant::servant_to_id ( PortableServer::Servant servant) { diff --git a/tao/PortableServer/RequestProcessingStrategyDefaultServant.h b/tao/PortableServer/RequestProcessingStrategyDefaultServant.h index 6976659e156..6733fa06ee1 100644 --- a/tao/PortableServer/RequestProcessingStrategyDefaultServant.h +++ b/tao/PortableServer/RequestProcessingStrategyDefaultServant.h @@ -74,7 +74,7 @@ namespace TAO virtual void etherealize_objects (CORBA::Boolean etherealize_objects); - virtual PortableServer::ObjectId *servant_to_id ( + virtual PortableServer::ObjectId servant_to_id ( PortableServer::Servant servant); virtual void post_invoke_servant_cleanup( diff --git a/tao/PortableServer/RequestProcessingStrategyServantManager.cpp b/tao/PortableServer/RequestProcessingStrategyServantManager.cpp index 2be69725f9b..f7d0822ab56 100644 --- a/tao/PortableServer/RequestProcessingStrategyServantManager.cpp +++ b/tao/PortableServer/RequestProcessingStrategyServantManager.cpp @@ -55,7 +55,7 @@ namespace TAO return this->poa_->find_servant (system_id); } - PortableServer::ObjectId * + PortableServer::ObjectId RequestProcessingStrategyServantManager::servant_to_id ( PortableServer::Servant servant) { diff --git a/tao/PortableServer/RequestProcessingStrategyServantManager.h b/tao/PortableServer/RequestProcessingStrategyServantManager.h index 7b12941991f..30924a1eedc 100644 --- a/tao/PortableServer/RequestProcessingStrategyServantManager.h +++ b/tao/PortableServer/RequestProcessingStrategyServantManager.h @@ -50,7 +50,7 @@ namespace TAO virtual PortableServer::Servant id_to_servant ( const PortableServer::ObjectId &id); - virtual PortableServer::ObjectId *servant_to_id ( + virtual PortableServer::ObjectId servant_to_id ( PortableServer::Servant servant); virtual ::PortableServer::RequestProcessingPolicyValue type() const; diff --git a/tao/PortableServer/Root_POA.cpp b/tao/PortableServer/Root_POA.cpp index 2dbda275c25..9161f443fc3 100644 --- a/tao/PortableServer/Root_POA.cpp +++ b/tao/PortableServer/Root_POA.cpp @@ -286,7 +286,7 @@ TAO_Root_POA::TAO_Root_POA (const TAO_Root_POA::String &name, result = this->object_adapter ().bind_poa (this->folded_name_, this, - this->system_name_.out ()); + this->system_name_); if (result != 0) { // Remove from POA Manager in case of errors. No checks of @@ -309,7 +309,7 @@ TAO_Root_POA::TAO_Root_POA (const TAO_Root_POA::String &name, this->poa_manager_.remove_poa (this); this->object_adapter ().unbind_poa (this, this->folded_name_, - this->system_name_.in ()); + this->system_name_); throw; } @@ -364,7 +364,7 @@ TAO_Root_POA::complete_destruction_i (void) // Remove POA from the Object Adapter. int result = this->object_adapter ().unbind_poa (this, this->folded_name_, - this->system_name_.in ()); + this->system_name_); if (result != 0) throw ::CORBA::OBJ_ADAPTER (); @@ -600,7 +600,7 @@ TAO_Root_POA::create_POA_i (const TAO_Root_POA::String &adapter_name, #if ! defined (CORBA_E_MICRO) PortableServer::POA_ptr -TAO_Root_POA::find_POA (const char *adapter_name, +TAO_Root_POA::find_POA (const std::string adapter_name, CORBA::Boolean activate_it) { // Lock access for the duration of this transaction. @@ -614,7 +614,7 @@ TAO_Root_POA::find_POA (const char *adapter_name, #if ! defined (CORBA_E_MICRO) TAO_Root_POA * -TAO_Root_POA::find_POA_i (const ACE_CString &child_name, +TAO_Root_POA::find_POA_i (const std::string &child_name, CORBA::Boolean activate_it) { TAO_Root_POA *child = 0; @@ -692,18 +692,18 @@ TAO_Root_POA::tao_poa_manager () #if ! defined (CORBA_E_MICRO) PortableServer::POA_ptr -TAO_Root_POA::create_POA (const char *adapter_name, +TAO_Root_POA::create_POA (const std::string adapter_name, PortableServer::POAManager_ptr poa_manager, const CORBA::PolicyList &policies) { // Lock access for the duration of this transaction. TAO_POA_GUARD_RETURN (0); - return this->create_POA_i (adapter_name, poa_manager, policies); + return this->create_POA_i (adapter_name.c_str (), poa_manager, policies); } #endif -PortableServer::ObjectId * +PortableServer::ObjectId TAO_Root_POA::servant_to_id (PortableServer::Servant servant) { // If we had upgradeable locks, this would initially be a read lock @@ -738,7 +738,7 @@ TAO_Root_POA::servant_to_reference (PortableServer::Servant servant) return this->servant_to_reference_i (servant); } -PortableServer::POAList * +PortableServer::POAList TAO_Root_POA::the_children (void) { // Lock access for the duration of this transaction. @@ -770,13 +770,13 @@ TAO_Root_POA::id_to_reference (const PortableServer::ObjectId &oid) #if ! defined (CORBA_E_MICRO) CORBA::Object_ptr TAO_Root_POA::create_reference_with_id (const PortableServer::ObjectId &id, - const char *intf) + const std::string intf) { // Lock access for the duration of this transaction. TAO_POA_GUARD_RETURN (CORBA::Object::_nil ()); return this->create_reference_with_id_i (id, - intf, + intf.c_str (), this->server_priority ()); } #endif @@ -975,17 +975,18 @@ TAO_Root_POA::delete_child (const TAO_Root_POA::String &child) return result; } -PortableServer::POAList * +PortableServer::POAList TAO_Root_POA::the_children_i (void) { - PortableServer::POAList_var children; + PortableServer::POAList children; CORBA::ULong child_current = static_cast (this->children_.current_size ()); + /* ACE_NEW_THROW_EX (children, PortableServer::POAList (child_current), CORBA::NO_MEMORY ()); - - children->length (child_current); +*/ + children.resize (child_current); CORBA::ULong index = 0; for (CHILDREN::iterator iterator = this->children_.begin (); @@ -993,13 +994,13 @@ TAO_Root_POA::the_children_i (void) ++iterator, ++index) { TAO_Root_POA *child_poa = (*iterator).int_id_; - children[index] = PortableServer::POA::_duplicate (child_poa); + children[index] = child_poa; } - return children._retn (); + return children; } -PortableInterceptor::AdapterName * +PortableInterceptor::AdapterName TAO_Root_POA::adapter_name_i (void) { // The adapter name is the sequence of names starting from the @@ -1020,7 +1021,8 @@ TAO_Root_POA::adapter_name_i (void) } // Empty adapter name sequence. - PortableInterceptor::AdapterName *names = 0; + PortableInterceptor::AdapterName names; + /* ACE_NEW_THROW_EX (names, PortableInterceptor::AdapterName (len), CORBA::NO_MEMORY ( @@ -1030,19 +1032,21 @@ TAO_Root_POA::adapter_name_i (void) CORBA::COMPLETED_NO)); PortableInterceptor::AdapterName_var safe_names (names); - - names->length (len); + */ + names.resize (len); poa = PortableServer::POA::_duplicate (this); - (*names)[0] = CORBA::string_dup ("RootPOA"); - +// (*names)[0] = CORBA::string_dup ("RootPOA"); + names[0] = "RootPOA"; + // Fill in the AdapterName sequence as the POA hierarchy is // traversed. CORBA::ULong ilen = len; for (CORBA::ULong i = 1; i < len; ++i) { - (*names)[--ilen] = poa->the_name (); +// (*names)[--ilen] = poa->the_name ().c_str (); + names[--ilen].assign (poa->the_name); poa = poa->the_parent (); @@ -1051,7 +1055,8 @@ TAO_Root_POA::adapter_name_i (void) ACE_ASSERT ((ilen > 0 ? !CORBA::is_nil (poa.in ()) : 1)); } - return safe_names._retn (); +// return safe_names._retn (); + return names; } void @@ -1114,7 +1119,7 @@ TAO_Root_POA::adapter_state_changed ( } } -PortableServer::ObjectId * +PortableServer::ObjectId TAO_Root_POA::activate_object_i (PortableServer::Servant servant, CORBA::Short priority, bool &wait_occurred_restart_call) @@ -1125,7 +1130,7 @@ TAO_Root_POA::activate_object_i (PortableServer::Servant servant, wait_occurred_restart_call); } -PortableServer::ObjectId * +PortableServer::ObjectId TAO_Root_POA::activate_object (PortableServer::Servant servant) { while (1) @@ -1135,7 +1140,7 @@ TAO_Root_POA::activate_object (PortableServer::Servant servant) // Lock access for the duration of this transaction. TAO_POA_GUARD_RETURN (0); - PortableServer::ObjectId *result = + PortableServer::ObjectId result = this->activate_object_i (servant, this->server_priority (), wait_occurred_restart_call); @@ -1285,12 +1290,12 @@ TAO_Root_POA::is_persistent (void) const } CORBA::Object_ptr -TAO_Root_POA::create_reference (const char *intf) +TAO_Root_POA::create_reference (const std::string intf) { // Lock access for the duration of this transaction. TAO_POA_GUARD_RETURN (CORBA::Object::_nil ()); - return this->create_reference_i (intf, + return this->create_reference_i (intf.c_str (), this->server_priority ()); } @@ -1330,7 +1335,7 @@ TAO_Root_POA::invoke_key_to_object_helper_i (const char * repository_id, #if ! defined (CORBA_E_MICRO) CORBA::Object_ptr TAO_Root_POA::create_reference_with_id_i (const PortableServer::ObjectId &user_id, - const char *intf, + std::string intf, CORBA::Short priority) { // If the POA has the SYSTEM_ID policy and it detects that the @@ -1349,11 +1354,11 @@ TAO_Root_POA::create_reference_with_id_i (const PortableServer::ObjectId &user_i } return this->active_policy_strategies_.servant_retention_strategy()-> - create_reference_with_id (user_id, intf, priority); + create_reference_with_id (user_id, intf.c_str (), priority); } #endif -PortableServer::ObjectId * +PortableServer::ObjectId TAO_Root_POA::servant_to_id_i (PortableServer::Servant servant) { return this->active_policy_strategies_.request_processing_strategy()-> @@ -1414,7 +1419,7 @@ bool TAO_Root_POA::is_poa_generated (CORBA::Object_ptr reference, PortableServer::ObjectId &system_id) { - TAO::ObjectKey_var key = reference->_key (); + TAO::ObjectKey key = reference->_key (); TAO_Object_Adapter::poa_name poa_system_name; CORBA::Boolean is_root = false; @@ -1422,7 +1427,7 @@ TAO_Root_POA::is_poa_generated (CORBA::Object_ptr reference, CORBA::Boolean is_system_id = false; TAO::Portable_Server::Temporary_Creation_Time poa_creation_time; - int const result = this->parse_key (key.in (), + int const result = this->parse_key (key, poa_system_name, system_id, is_root, @@ -1445,7 +1450,7 @@ TAO_Root_POA::is_poa_generated (CORBA::Object_ptr reference, } } -PortableServer::ObjectId * +PortableServer::ObjectId TAO_Root_POA::reference_to_id (CORBA::Object_ptr reference) { // Make sure that the reference is valid. @@ -1540,15 +1545,16 @@ TAO_Root_POA::id_to_reference_i (const PortableServer::ObjectId &id, id_to_reference (id, indirect); } -CORBA::OctetSeq * +CORBA::OctetSeq TAO_Root_POA::id (void) { +/* CORBA::OctetSeq *id = 0; ACE_NEW_THROW_EX (id, CORBA::OctetSeq (this->id_), CORBA::NO_MEMORY ()); - - return id; +*/ + return this->id_; } PortableServer::Servant @@ -1577,13 +1583,15 @@ TAO_Root_POA::parse_key (const TAO::ObjectKey &key, TAO::Portable_Server::Temporary_Creation_Time &poa_creation_time) { // Get the object key octets. - const CORBA::Octet *key_data = key.get_buffer (); +// const CORBA::Octet *key_data = key.get_buffer (); // Skip the object key prefix since we have already checked for this. CORBA::ULong starting_at = TAO_OBJECTKEY_PREFIX_SIZE; // Check the root indicator. - char root_key_type = key_data[starting_at]; +// char root_key_type = key_data[starting_at]; + char root_key_type = key[starting_at]; + if (root_key_type == TAO_Root_POA::root_key_char ()) { is_root = true; @@ -1602,7 +1610,9 @@ TAO_Root_POA::parse_key (const TAO::ObjectKey &key, starting_at += TAO_Root_POA::root_key_type_length (); // Check the system id indicator. - char system_id_key_type = key_data[starting_at]; +// char system_id_key_type = key_data[starting_at]; + char system_id_key_type = key[starting_at]; + if (system_id_key_type == TAO_Root_POA::system_id_key_char ()) { is_system_id = true; @@ -1621,7 +1631,9 @@ TAO_Root_POA::parse_key (const TAO::ObjectKey &key, starting_at += TAO_Root_POA::system_id_key_type_length (); // Check the persistence indicator - char persistent_key_type = key_data[starting_at]; +// char persistent_key_type = key_data[starting_at]; + char persistent_key_type = key[starting_at]; + if (persistent_key_type == TAO_Root_POA::persistent_key_char ()) { is_persistent = true; @@ -1681,37 +1693,66 @@ TAO_Root_POA::parse_key (const TAO::ObjectKey &key, // Grep the name if there is a name if (!is_root) { + poa_system_name.resize (poa_name_size); + + for (CORBA::ULong i = 0; i < poa_name_size; ++i) + { + poa_system_name[i] = key[starting_at++]; + } + + /* poa_system_name.replace (poa_name_size, poa_name_size, (CORBA::Octet *) key_data + starting_at, 0); starting_at += poa_name_size; + */ } // The rest is the system id. - CORBA::ULong system_id_size = key.length () - starting_at; + CORBA::ULong system_id_size = key.size () - starting_at; // Reset . - system_id.length (system_id_size); - CORBA::Octet * buf = system_id.get_buffer (); - ACE_OS::memcpy (buf, key_data + starting_at, system_id_size); + system_id.resize (system_id_size); +// CORBA::Octet * buf = system_id.get_buffer (); +// ACE_OS::memcpy (buf, key_data + starting_at, system_id_size); + + for (CORBA::ULong i = 0; i < system_id_size; ++i) + { + system_id[i] = key[starting_at++]; + } // Success return 0; } -TAO::ObjectKey * +TAO::ObjectKey TAO_Root_POA::create_object_key (const PortableServer::ObjectId &id) { // Calculate the space required for the key. CORBA::ULong buffer_size = - this->id_.length () + - id.length (); + this->id_.size () + + id.size (); // Create the buffer for the key. - CORBA::Octet *buffer = TAO::ObjectKey::allocbuf (buffer_size); +// CORBA::Octet *buffer = TAO::ObjectKey::allocbuf (buffer_size); + TAO::ObjectKey key; + key.resize (buffer_size); + CORBA::ULong i = 0; + CORBA::ULong accum = 0; + + for (i = 0; i < this->id_.size (); ++i) + { + key[accum++] = this->id_[i]; + } + + for (i = 0; i < id.size (); ++i) + { + key[accum++] = id[i]; + } +/* // First copy the POA id into the key. ACE_OS::memcpy (&buffer[0], this->id_.get_buffer (), @@ -1731,7 +1772,7 @@ TAO_Root_POA::create_object_key (const PortableServer::ObjectId &id) buffer, 1), 0); - +*/ return key; } @@ -1754,7 +1795,7 @@ TAO_Root_POA::set_id (TAO_Root_POA *parent) CORBA::ULong poa_name = 0; // Calculate the space required for the POA name. - CORBA::ULong poa_name_length = this->system_name_->length (); + CORBA::ULong poa_name_length = this->system_name_.size (); if (parent != 0) { poa_name += poa_name_length; @@ -1783,27 +1824,32 @@ TAO_Root_POA::set_id (TAO_Root_POA *parent) poa_name; // Create the buffer for the POA id. - this->id_.length (buffer_size); - CORBA::Octet *buffer = &this->id_[0]; + this->id_.resize (buffer_size); +// CORBA::Octet *buffer = &this->id_[0]; // Keeps track of where the next infomation goes; start at 0 byte. CORBA::ULong starting_at = 0; - + + for (CORBA::ULong i = starting_at; i < TAO_OBJECTKEY_PREFIX_SIZE; ++i) + { + this->id_[i] = objectkey_prefix[i]; + } +/* // Add the object key prefix. ACE_OS::memcpy (&buffer[starting_at], &objectkey_prefix[0], TAO_OBJECTKEY_PREFIX_SIZE); - +*/ starting_at += TAO_OBJECTKEY_PREFIX_SIZE; // Copy the root byte. if (parent != 0) { - buffer[starting_at] = (CORBA::Octet) TAO_Root_POA::non_root_key_char (); + this->id_[starting_at] = (CORBA::Octet) TAO_Root_POA::non_root_key_char (); } else { - buffer[starting_at] = (CORBA::Octet) TAO_Root_POA::root_key_char (); + this->id_[starting_at] = (CORBA::Octet) TAO_Root_POA::root_key_char (); } starting_at += this->root_key_type_length (); @@ -1817,19 +1863,35 @@ TAO_Root_POA::set_id (TAO_Root_POA *parent) if (add_poa_name_length) { poa_name_length = ACE_HTONL (poa_name_length); + + for (CORBA::ULong i = 0; i < sizeof (poa_name_length); ++i) + { + buffer[starting_at++] = poa_name_length[i]; + } + + /* ACE_OS::memcpy (&buffer[starting_at], &poa_name_length, sizeof (poa_name_length)); + starting_at += sizeof (poa_name_length); + */ } // Put the POA name into the key (for non-root POAs). if (parent != 0) { + for (CORBA::ULong i = 0; i < this->system_name_.size (); ++i) + { + buffer[starting_at++] = this->system_name_[i]; + } + + /* ACE_OS::memcpy (&buffer[starting_at], this->system_name_->get_buffer (), this->system_name_->length ()); starting_at += this->system_name_->length (); + */ } } @@ -1863,28 +1925,44 @@ TAO_Root_POA::set_folded_name (TAO_Root_POA *parent) if (parent != 0) { - parent_length = parent->folded_name ().length (); + parent_length = parent->folded_name ().size (); length += parent_length; } length += this->name_.length (); length += TAO_Root_POA::name_separator_length (); - this->folded_name_.length (static_cast (length)); - CORBA::Octet *folded_name_buffer = this->folded_name_.get_buffer (); + this->folded_name_.resize (length); +// CORBA::Octet *folded_name_buffer = this->folded_name_.get_buffer (); + CORBA::ULong i = 0; + CORBA::ULong index = 0; if (parent != 0) { + for (i = 0; i < parent_length; ++i) + { + this->folded_name_[index++] = parent->folded_name ()[i]; + } + + /* ACE_OS::memcpy (folded_name_buffer, parent->folded_name ().get_buffer (), parent_length); + */ + } + + for (i = 0; i < this->name_.size (); ++i) + { + this->folded_name_[index++] = this->name_[i]; } + /* ACE_OS::memcpy (&folded_name_buffer[parent_length], this->name_.c_str (), this->name_.length ()); - - folded_name_buffer[length - TAO_Root_POA::name_separator_length ()] = TAO_Root_POA::name_separator (); + */ + + this->folded_name_[length - TAO_Root_POA::name_separator_length ()] = TAO_Root_POA::name_separator (); } int @@ -1915,14 +1993,14 @@ TAO_Root_POA::object_adapter (void) CORBA::Object_ptr TAO_Root_POA::invoke_key_to_object (void) { - PortableServer::ObjectId_var &system_id = - *this->key_to_object_params_.system_id_; + PortableServer::ObjectId system_id = + this->key_to_object_params_.system_id_; // Create object key. - TAO::ObjectKey_var key = - this->create_object_key (system_id.in ()); + TAO::ObjectKey key = + this->create_object_key (system_id); - return this->key_to_object (key.in (), + return this->key_to_object (key, this->key_to_object_params_.type_id_, this->key_to_object_params_.servant_, this->key_to_object_params_.collocated_, @@ -2068,7 +2146,7 @@ TAO_Root_POA::key_to_stub_i (const TAO::ObjectKey &key, const char *type_id, CORBA::Short priority) { - CORBA::PolicyList_var client_exposed_policies = + CORBA::PolicyList client_exposed_policies = this->client_exposed_policies (priority); TAO_Acceptor_Filter* filter = 0; @@ -2234,21 +2312,25 @@ TAO_Root_POA::create_stub_object (const TAO::ObjectKey &object_key, return stub; } -CORBA::PolicyList * +CORBA::PolicyList TAO_Root_POA::client_exposed_policies (CORBA::Short /* object_priority */) { - CORBA::PolicyList *client_exposed_policies = 0; + CORBA::PolicyList client_exposed_policies; + + /* ACE_NEW_THROW_EX (client_exposed_policies, CORBA::PolicyList (), CORBA::NO_MEMORY (TAO::VMCID, CORBA::COMPLETED_NO)); CORBA::PolicyList_var policies = client_exposed_policies; - + */ + // Add in all of the client exposed policies. this->policies_.add_client_exposed_fixed_policies (client_exposed_policies); - return policies._retn (); +// return policies._retn (); + return policies; } TAO_SERVANT_LOCATION @@ -2582,14 +2664,14 @@ TAO_Root_POA::server_protocol (void) } void -TAO_Root_POA::Key_To_Object_Params::set (PortableServer::ObjectId_var &system_id, +TAO_Root_POA::Key_To_Object_Params::set (PortableServer::ObjectId system_id, const char *type_id, TAO_ServantBase *servant, CORBA::Boolean collocated, CORBA::Short priority, bool indirect) { - this->system_id_ = &system_id; + this->system_id_ = system_id; this->type_id_ = type_id; this->servant_ = servant; this->collocated_ = collocated; diff --git a/tao/PortableServer/Root_POA.h b/tao/PortableServer/Root_POA.h index 0b0603d7064..014c9d89be2 100644 --- a/tao/PortableServer/Root_POA.h +++ b/tao/PortableServer/Root_POA.h @@ -124,15 +124,15 @@ public: friend class TAO_RT_Collocation_Resolver; friend class TAO_IORInfo; - typedef ACE_CString String; + typedef std::string String; #if !defined (CORBA_E_MICRO) PortableServer::POA_ptr create_POA ( - const char *adapter_name, + const std::string adapter_name, PortableServer::POAManager_ptr poa_manager, const CORBA::PolicyList &policies); - PortableServer::POA_ptr find_POA (const char *adapter_name, + PortableServer::POA_ptr find_POA (const std::string adapter_name, CORBA::Boolean activate_it); #endif @@ -174,11 +174,11 @@ public: #endif /* TAO_HAS_MINIMUM_POA == 0 && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */ - char * the_name (void); + std::string the_name (void); PortableServer::POA_ptr the_parent (void); - PortableServer::POAList *the_children (void); + PortableServer::POAList the_children (void); PortableServer::POAManager_ptr the_POAManager (void); @@ -189,7 +189,7 @@ public: /// This method returns the adapter_name as a sequence of strings of /// length one or more or just a fixed name depending on the Object /// Adapter. Added wrt to ORT Spec. - PortableInterceptor::AdapterName *adapter_name (void); + PortableInterceptor::AdapterName adapter_name (void); /// Store the given TaggedComponent for eventual insertion into all /// object reference profiles. @@ -215,22 +215,22 @@ public: void set_servant (PortableServer::Servant servant); #endif /* TAO_HAS_MINIMUM_POA == 0 !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */ - PortableServer::ObjectId *activate_object (PortableServer::Servant p_servant); + PortableServer::ObjectId activate_object (PortableServer::Servant p_servant); void activate_object_with_id (const PortableServer::ObjectId &id, PortableServer::Servant p_servant); void deactivate_object (const PortableServer::ObjectId &oid); - CORBA::Object_ptr create_reference (const char *intf); + CORBA::Object_ptr create_reference (const std:: string intf); #if !defined (CORBA_E_MICRO) CORBA::Object_ptr create_reference_with_id ( const PortableServer::ObjectId &oid, - const char *intf); + const std::string intf); #endif - PortableServer::ObjectId *servant_to_id (PortableServer::Servant p_servant); + PortableServer::ObjectId servant_to_id (PortableServer::Servant p_servant); PortableServer::ObjectId *servant_to_user_id (PortableServer::Servant p_servant); @@ -238,13 +238,13 @@ public: PortableServer::Servant reference_to_servant (CORBA::Object_ptr reference); - PortableServer::ObjectId *reference_to_id (CORBA::Object_ptr reference); + PortableServer::ObjectId reference_to_id (CORBA::Object_ptr reference); PortableServer::Servant id_to_servant (const PortableServer::ObjectId &oid); CORBA::Object_ptr id_to_reference (const PortableServer::ObjectId &oid); - CORBA::OctetSeq *id (void); + CORBA::OctetSeq id (void); /// Accessor for POA policies. TAO_POA_Policy_Set &policies (void); @@ -254,7 +254,7 @@ public: /// This method gives the policies that are exposed to the client. /// These policies are shipped within the IOR. - virtual CORBA::PolicyList *client_exposed_policies ( + virtual CORBA::PolicyList client_exposed_policies ( CORBA::Short object_priority); TAO_Root_POA (const String &name, @@ -327,7 +327,7 @@ public: CORBA::ULong outstanding_requests (void) const; - const ACE_CString &name (void) const; + const std::string &name (void) const; CORBA::Boolean waiting_destruction (void) const; @@ -424,7 +424,7 @@ public: CORBA::Boolean is_persistent, const TAO::Portable_Server::Temporary_Creation_Time& creation_time) const; - PortableServer::ObjectId *activate_object_i ( + PortableServer::ObjectId activate_object_i ( PortableServer::Servant p_servant, CORBA::Short priority, bool &wait_occurred_restart_call); @@ -432,7 +432,7 @@ public: CORBA::Object_ptr id_to_reference_i (const PortableServer::ObjectId &oid, bool indirect); - PortableServer::ObjectId *servant_to_id_i (PortableServer::Servant servant); + PortableServer::ObjectId servant_to_id_i (PortableServer::Servant servant); TAO_SYNCH_CONDITION &servant_deactivation_condition (void); @@ -492,7 +492,7 @@ protected: PortableServer::POAManager_ptr poa_manager, const TAO_POA_Policy_Set &policies); - TAO_Root_POA *find_POA_i (const ACE_CString &child_name, + TAO_Root_POA *find_POA_i (const std::string &child_name, CORBA::Boolean activate_it); #endif @@ -501,12 +501,12 @@ protected: void complete_destruction_i (void); - PortableServer::POAList *the_children_i (void); + PortableServer::POAList the_children_i (void); /// This method returns the adapter_name as a sequence of strings of /// length one or more or just a fixed name depending on the Object /// Adapter. Added wrt to ORT Spec. - PortableInterceptor::AdapterName *adapter_name_i (void); + PortableInterceptor::AdapterName adapter_name_i (void); /// Method to notify the IOR Interceptors when there is a state /// changed not related to POAManager. @@ -566,7 +566,7 @@ protected: CORBA::Object_ptr create_reference_with_id_i ( const PortableServer::ObjectId &oid, - const char *intf, + std::string intf, CORBA::Short priority); PortableServer::Servant reference_to_servant_i (CORBA::Object_ptr reference); @@ -593,7 +593,7 @@ protected: void set_id (TAO_Root_POA *parent); - TAO::ObjectKey *create_object_key (const PortableServer::ObjectId &id); + TAO::ObjectKey create_object_key (const PortableServer::ObjectId &id); static int parse_key (const TAO::ObjectKey &key, TAO_Object_Adapter::poa_name &poa_system_name, @@ -696,7 +696,7 @@ protected: TAO_Object_Adapter::poa_name folded_name_; - TAO_Object_Adapter::poa_name_var system_name_; + TAO_Object_Adapter::poa_name system_name_; CORBA::OctetSeq id_; @@ -718,9 +718,9 @@ protected: typedef ACE_Hash_Map_Manager_Ex< - ACE_CString, TAO_Root_POA *, - ACE_Hash, - ACE_Equal_To, + std::string, TAO_Root_POA *, + ACE_Hash, + ACE_Equal_To, ACE_Null_Mutex > CHILDREN; @@ -758,14 +758,14 @@ public: struct Key_To_Object_Params { - PortableServer::ObjectId_var *system_id_; + PortableServer::ObjectId system_id_; const char *type_id_; TAO_ServantBase *servant_; CORBA::Boolean collocated_; CORBA::Short priority_; bool indirect_; - void set (PortableServer::ObjectId_var &system_id_, + void set (PortableServer::ObjectId system_id_, const char *type_id_, TAO_ServantBase *servant_, CORBA::Boolean collocated_, diff --git a/tao/PortableServer/Root_POA.inl b/tao/PortableServer/Root_POA.inl index d9da3792237..3425c04e5f3 100644 --- a/tao/PortableServer/Root_POA.inl +++ b/tao/PortableServer/Root_POA.inl @@ -28,7 +28,7 @@ TAO_Root_POA::the_parent (void) return PortableServer::POA::_nil (); } -ACE_INLINE PortableInterceptor::AdapterName * +ACE_INLINE PortableInterceptor::AdapterName TAO_Root_POA::adapter_name (void) { return this->adapter_name_i (); @@ -83,16 +83,16 @@ TAO_Root_POA::persistent (void) return (this->cached_policies_.lifespan () == PortableServer::PERSISTENT); } -ACE_INLINE const ACE_CString & +ACE_INLINE const std::string & TAO_Root_POA::name (void) const { return this->name_; } -ACE_INLINE char * +ACE_INLINE std::string TAO_Root_POA::the_name (void) { - return CORBA::string_dup (this->name_.c_str ()); + return this->name_; } ACE_INLINE const TAO_Object_Adapter::poa_name & @@ -104,7 +104,7 @@ TAO_Root_POA::folded_name (void) const ACE_INLINE const TAO_Object_Adapter::poa_name & TAO_Root_POA::system_name (void) const { - return this->system_name_.in (); + return this->system_name_; } ACE_INLINE char diff --git a/tao/PortableServer/ServantRetentionStrategy.h b/tao/PortableServer/ServantRetentionStrategy.h index 4a2b054bc47..b30e023e96b 100644 --- a/tao/PortableServer/ServantRetentionStrategy.h +++ b/tao/PortableServer/ServantRetentionStrategy.h @@ -57,7 +57,7 @@ namespace TAO const PortableServer::ObjectId &system_id, CORBA::Short &priority) = 0; - virtual PortableServer::ObjectId *activate_object ( + virtual PortableServer::ObjectId activate_object ( PortableServer::Servant servant, CORBA::Short priority, bool &wait_occurred_restart_call) = 0; @@ -73,7 +73,7 @@ namespace TAO virtual PortableServer::Servant find_servant ( const PortableServer::ObjectId &system_id) = 0; - virtual PortableServer::ObjectId *system_id_to_object_id ( + virtual PortableServer::ObjectId system_id_to_object_id ( const PortableServer::ObjectId &system_id) = 0; virtual PortableServer::Servant user_id_to_servant ( diff --git a/tao/PortableServer/ServantRetentionStrategyNonRetain.cpp b/tao/PortableServer/ServantRetentionStrategyNonRetain.cpp index 072822e94cc..b8ed38698ee 100644 --- a/tao/PortableServer/ServantRetentionStrategyNonRetain.cpp +++ b/tao/PortableServer/ServantRetentionStrategyNonRetain.cpp @@ -60,17 +60,22 @@ namespace TAO throw PortableServer::POA::WrongPolicy (); } - PortableServer::ObjectId * + PortableServer::ObjectId ServantRetentionStrategyNonRetain::system_id_to_object_id ( const PortableServer::ObjectId &system_id) { // The system id is the id (and no conversion/transformation is // needed). + /* PortableServer::ObjectId *id = 0; ACE_NEW_THROW_EX (id, PortableServer::ObjectId (system_id), CORBA::NO_MEMORY ()); - + */ + + PortableServer::ObjectId id; + id.assign (system_id.begin (), system_id.end ()); + return id; } @@ -155,7 +160,7 @@ namespace TAO throw PortableServer::POA::WrongPolicy (); } - PortableServer::ObjectId * + PortableServer::ObjectId ServantRetentionStrategyNonRetain::activate_object ( PortableServer::Servant /*servant*/, CORBA::Short /*priority*/, diff --git a/tao/PortableServer/ServantRetentionStrategyNonRetain.h b/tao/PortableServer/ServantRetentionStrategyNonRetain.h index b19bf30ed54..8d5713f90d9 100644 --- a/tao/PortableServer/ServantRetentionStrategyNonRetain.h +++ b/tao/PortableServer/ServantRetentionStrategyNonRetain.h @@ -43,7 +43,7 @@ namespace TAO CORBA::ULong waiting_servant_deactivation (void) const; virtual - PortableServer::ObjectId * + PortableServer::ObjectId activate_object (PortableServer::Servant servant, CORBA::Short priority, bool &wait_occurred_restart_call); @@ -63,7 +63,7 @@ namespace TAO virtual int is_servant_in_map (PortableServer::Servant servant, bool &wait_occurred_restart_call); - virtual PortableServer::ObjectId *system_id_to_object_id ( + virtual PortableServer::ObjectId system_id_to_object_id ( const PortableServer::ObjectId &system_id); virtual diff --git a/tao/PortableServer/ServantRetentionStrategyRetain.cpp b/tao/PortableServer/ServantRetentionStrategyRetain.cpp index 0fc827b82d5..e98f22958cc 100644 --- a/tao/PortableServer/ServantRetentionStrategyRetain.cpp +++ b/tao/PortableServer/ServantRetentionStrategyRetain.cpp @@ -170,21 +170,21 @@ namespace TAO return servant; } - PortableServer::ObjectId * + PortableServer::ObjectId ServantRetentionStrategyRetain::system_id_to_object_id ( const PortableServer::ObjectId &system_id) { // The object denoted by the reference does not have to be // active for this operation to succeed. - PortableServer::ObjectId_var user_id; + PortableServer::ObjectId user_id; if (this->active_object_map_-> find_user_id_using_system_id (system_id, - user_id.out ()) != 0) + user_id) != 0) { throw ::CORBA::OBJ_ADAPTER (); } - return user_id._retn (); + return user_id; } PortableServer::Servant @@ -694,7 +694,7 @@ namespace TAO servant->_interface_repository_id (), user_id); } - PortableServer::ObjectId * + PortableServer::ObjectId ServantRetentionStrategyRetain::activate_object ( PortableServer::Servant servant, CORBA::Short priority, @@ -723,11 +723,11 @@ namespace TAO // Otherwise, the activate_object operation generates an Object Id // and enters the Object Id and the specified servant in the Active // Object Map. The Object Id is returned. - PortableServer::ObjectId_var user_id; + PortableServer::ObjectId user_id; if (this->active_object_map_-> bind_using_system_id_returning_user_id (servant, priority, - user_id.out ()) != 0) + user_id) != 0) { throw ::CORBA::OBJ_ADAPTER (); } @@ -738,7 +738,7 @@ namespace TAO // Inform the custom servant dispatching (CSD) strategy that the // sevant is activated. - this->poa_->servant_activated_hook (servant, user_id.in ()); + this->poa_->servant_activated_hook (servant, user_id); // ATTENTION: Trick locking here, see class header for details Non_Servant_Upcall non_servant_upcall (*this->poa_); @@ -750,7 +750,7 @@ namespace TAO // same number of times. servant->_add_ref (); - return user_id._retn (); + return user_id; } void diff --git a/tao/PortableServer/ServantRetentionStrategyRetain.h b/tao/PortableServer/ServantRetentionStrategyRetain.h index 9782c6ecfea..218ee4b5224 100644 --- a/tao/PortableServer/ServantRetentionStrategyRetain.h +++ b/tao/PortableServer/ServantRetentionStrategyRetain.h @@ -46,7 +46,7 @@ namespace TAO bool &wait_occurred_restart_call); virtual - PortableServer::ObjectId * + PortableServer::ObjectId activate_object (PortableServer::Servant servant, CORBA::Short priority, bool &wait_occurred_restart_call); @@ -63,7 +63,7 @@ namespace TAO virtual PortableServer::Servant find_servant ( const PortableServer::ObjectId &system_id); - virtual PortableServer::ObjectId * system_id_to_object_id ( + virtual PortableServer::ObjectId system_id_to_object_id ( const PortableServer::ObjectId &system_id); virtual diff --git a/tao/Principal.cpp b/tao/Principal.cpp index f552ab086ae..4d9c3a30117 100644 --- a/tao/Principal.cpp +++ b/tao/Principal.cpp @@ -27,16 +27,13 @@ operator<< (TAO_OutputCDR & cdr, CORBA::Principal * x) { if (x != 0) { - CORBA::ULong length = x->id.length (); - cdr.write_long (length); - cdr.write_octet_array (x->id.get_buffer (), length); + return cdr << x->id; } else { cdr.write_ulong (0); + return (CORBA::Boolean) cdr.good_bit (); } - - return (CORBA::Boolean) cdr.good_bit (); } CORBA::Boolean @@ -48,15 +45,13 @@ operator>> (TAO_InputCDR & cdr, CORBA::Principal *& x) if (length == 0 || !cdr.good_bit ()) { x = 0; + return (CORBA::Boolean) cdr.good_bit (); } else { ACE_NEW_RETURN (x, CORBA::Principal, 0); - x->id.length (length); - cdr.read_octet_array (x->id.get_buffer (), length); + return cdr >> x->id; } - - return (CORBA::Boolean) cdr.good_bit (); } TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/tao/Profile.cpp b/tao/Profile.cpp index 7edcce46ee9..40e8dfab153 100644 --- a/tao/Profile.cpp +++ b/tao/Profile.cpp @@ -104,17 +104,19 @@ TAO_Profile::base_endpoint (void) return this->endpoint(); } -TAO::ObjectKey * +TAO::ObjectKey TAO_Profile::_key (void) const { - TAO::ObjectKey *key = 0; - + TAO::ObjectKey key; + key = this->ref_object_key_->object_key (); +/* if (this->ref_object_key_) { ACE_NEW_RETURN (key, TAO::ObjectKey (this->ref_object_key_->object_key ()), 0); } +*/ return key; } @@ -281,21 +283,26 @@ TAO_Profile::create_tagged_profile (void) CORBA::ULong const length = static_cast (encap.total_length ()); -#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) +/// No such optimization for now.... +#if (0)//(TAO_NO_COPY_OCTET_SEQUENCES == 1) // Place the message block in to the Sequence of Octets that we // have this->tagged_profile_->profile_data.replace (length, encap.begin ()); #else - this->tagged_profile_->profile_data.length (length); - CORBA::Octet *buffer = - this->tagged_profile_->profile_data.get_buffer (); + this->tagged_profile_->profile_data.resize (length); + size_t index = 0; for (const ACE_Message_Block *i = encap.begin (); i != encap.end (); i = i->next ()) { - ACE_OS::memcpy (buffer, i->rd_ptr (), i->length ()); - buffer += i->length (); + char *buf = i->base (); + + for (size_t j = 0; j < i->length (); ++j) + { + this->tagged_profile_->profile_data[index++] = + buf[j]; + } } #endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ @@ -308,21 +315,24 @@ TAO_Profile::create_tagged_profile (void) void TAO_Profile::set_tagged_components (TAO_OutputCDR &out_cdr) { - CORBA::ULong const length = static_cast (out_cdr.total_length ()); + CORBA::ULong const length = + static_cast (out_cdr.total_length ()); IOP::TaggedComponent tagged_component; tagged_component.tag = TAO_TAG_ENDPOINTS; - tagged_component.component_data.length (length); - CORBA::Octet *buf = tagged_component.component_data.get_buffer (); + tagged_component.component_data.resize (length); + size_t index = 0; for (const ACE_Message_Block *iterator = out_cdr.begin (); iterator != 0; iterator = iterator->cont ()) { - size_t const i_length = iterator->length (); - ACE_OS::memcpy (buf, iterator->rd_ptr (), i_length); - - buf += i_length; + char *buf = iterator->base (); + + for (size_t j = 0; j < iterator->length (); ++j) + { + tagged_component.component_data[index++] = buf[j]; + } } // Add component with encoded endpoint data to this profile's @@ -353,9 +363,9 @@ TAO_Profile::policies (CORBA::PolicyList *policy_list) // This loop iterates through CORBA::PolicyList to convert // each CORBA::Policy into a CORBA::PolicyValue - CORBA::ULong const plen = policy_list->length (); + CORBA::ULong const plen = policy_list->size (); - policy_value_seq.length (plen); + policy_value_seq.resize (plen); for (CORBA::ULong i = 0; i < plen; ++i) { @@ -369,9 +379,8 @@ TAO_Profile::policies (CORBA::PolicyList *policy_list) return; length = out_CDR.total_length (); - policy_value_seq[i].pvalue.length (static_cast (length)); - - buf = policy_value_seq[i].pvalue.get_buffer (); + policy_value_seq[i].pvalue.resize (length); + size_t index = 0; // Copy the CDR buffer data into the octet sequence buffer. @@ -379,8 +388,12 @@ TAO_Profile::policies (CORBA::PolicyList *policy_list) iterator != 0; iterator = iterator->cont ()) { - ACE_OS::memcpy (buf, iterator->rd_ptr (), iterator->length ()); - buf += iterator->length (); + char *buf = iterator->base (); + + for (size_t j = 0; j < iterator->length (); ++j) + { + policy_value_seq[i].pvalue[index++] = buf[j]; + } } } @@ -398,18 +411,19 @@ TAO_Profile::policies (CORBA::PolicyList *policy_list) return; length = out_cdr.total_length (); - - tagged_component.component_data.length (static_cast (length)); - buf = tagged_component.component_data.get_buffer (); + tagged_component.component_data.resize (length); + size_t index = 0; for (const ACE_Message_Block *iterator = out_cdr.begin (); iterator != 0; iterator = iterator->cont ()) { - size_t const i_length = iterator->length (); - ACE_OS::memcpy (buf, iterator->rd_ptr (), i_length); - - buf += i_length; + char *buf = iterator->base (); + + for (size_t j = 0; j < iterator->length (); ++j) + { + tagged_component.component_data[index++] = buf[j]; + } } // Eventually we add the TaggedComponent to the TAO_TaggedComponents @@ -432,11 +446,13 @@ TAO_Profile::get_policies (CORBA::PolicyList& pl) // if it exists. if (this->tagged_components_.get_component (tagged_component)) { - const CORBA::Octet *buf = - tagged_component.component_data.get_buffer (); - - TAO_InputCDR in_cdr (reinterpret_cast (buf), - tagged_component.component_data.length ()); + const char *buf = + reinterpret_cast ( + tagged_component.component_data.get_allocator ().address ( + *tagged_component.component_data.begin ())); + + TAO_InputCDR in_cdr (buf, + tagged_component.component_data.size ()); // Extract the Byte Order CORBA::Boolean byte_order; @@ -459,7 +475,7 @@ TAO_Profile::get_policies (CORBA::PolicyList& pl) // Here we extract the Messaging::PolicyValue out of the sequence // and we convert those into the proper CORBA::Policy - CORBA::ULong const length = policy_value_seq.length (); + CORBA::ULong const length = policy_value_seq.size(); for (CORBA::ULong i = 0; i < length; ++i) { @@ -471,11 +487,14 @@ TAO_Profile::get_policies (CORBA::PolicyList& pl) if (!CORBA::is_nil (policy.in ())) { - buf = policy_value_seq[i].pvalue.get_buffer (); + buf = + reinterpret_cast ( + policy_value_seq[i].pvalue.get_allocator ().address ( + *policy_value_seq[i].pvalue.begin ())); TAO_InputCDR in_cdr ( - reinterpret_cast (buf), - policy_value_seq[i].pvalue.length ()); + buf, + policy_value_seq[i].pvalue.size ()); if (!(in_cdr >> ACE_InputCDR::to_boolean (byte_order))) throw ::CORBA::INV_OBJREF (); @@ -487,7 +506,7 @@ TAO_Profile::get_policies (CORBA::PolicyList& pl) // Increase the policy length with 1 when we know we support // this policy, this way we don't get nil values in the list - pl.length (pl.length () + 1); + pl.resize (pl.size () + 1); pl[i] = policy._retn (); } diff --git a/tao/Profile.h b/tao/Profile.h index e7cd647e670..fa4ecbf16d0 100644 --- a/tao/Profile.h +++ b/tao/Profile.h @@ -39,8 +39,9 @@ class TAO_ORB_Core; namespace CORBA { - /// Forward declaration of PolicyList - class PolicyList; + class Policy; + typedef Policy *Policy_ptr; + typedef std::vector PolicyList; } /** @@ -106,7 +107,7 @@ public: /// Obtain the object key, return 0 if the profile cannot be parsed. /// The memory is owned by the caller! - TAO::ObjectKey *_key (void) const; + TAO::ObjectKey _key (void) const; //@} /** diff --git a/tao/Profile_Transport_Resolver.cpp b/tao/Profile_Transport_Resolver.cpp index 8a4c3e33212..6f7ad056e4c 100644 --- a/tao/Profile_Transport_Resolver.cpp +++ b/tao/Profile_Transport_Resolver.cpp @@ -51,7 +51,7 @@ namespace TAO this->transport_->remove_reference (); } - delete this->inconsistent_policies_; +// delete this->inconsistent_policies_; } void @@ -244,6 +244,7 @@ namespace TAO void Profile_Transport_Resolver::init_inconsistent_policies (void) { + /* ACE_NEW_THROW_EX (this->inconsistent_policies_, CORBA::PolicyList (0), CORBA::NO_MEMORY ( @@ -251,6 +252,7 @@ namespace TAO 0, ENOMEM), CORBA::COMPLETED_NO)); + */ } diff --git a/tao/Profile_Transport_Resolver.h b/tao/Profile_Transport_Resolver.h index 9bf19631f8b..a0c85df20ca 100644 --- a/tao/Profile_Transport_Resolver.h +++ b/tao/Profile_Transport_Resolver.h @@ -14,6 +14,8 @@ #ifndef TAO_PROFILE_TRANSPORT_RESOLVER_H #define TAO_PROFILE_TRANSPORT_RESOLVER_H +#include + #include /**/ "ace/pre.h" #include "ace/Global_Macros.h" @@ -37,8 +39,9 @@ class TAO_Transport_Descriptor_Interface; namespace CORBA { - class Object; - class PolicyList; + class Policy; + typedef Policy *Policy_ptr; + typedef std::vector PolicyList; class Object; typedef Object *Object_ptr; @@ -148,9 +151,9 @@ namespace TAO /// cached. void init_inconsistent_policies (void); - CORBA::PolicyList *inconsistent_policies (void) const; + CORBA::PolicyList inconsistent_policies (void) const; - CORBA::PolicyList *steal_inconsistent_policies (void); + CORBA::PolicyList steal_inconsistent_policies (void); private: /// Helper method to access get the connection timeout from the @@ -198,7 +201,7 @@ namespace TAO * Policy_ForwardC.h, and that is what we precisely want to * avoid. */ - CORBA::PolicyList *inconsistent_policies_; + CORBA::PolicyList inconsistent_policies_; /// Has the transport been idle? mutable bool is_released_; diff --git a/tao/Profile_Transport_Resolver.inl b/tao/Profile_Transport_Resolver.inl index 07e89301fa5..68854256569 100644 --- a/tao/Profile_Transport_Resolver.inl +++ b/tao/Profile_Transport_Resolver.inl @@ -16,7 +16,7 @@ namespace TAO , stub_ (stub) , transport_ (0) , profile_ (0) - , inconsistent_policies_ (0) +// , inconsistent_policies_ (0) , is_released_ (false) , blocked_ (block) { @@ -58,17 +58,17 @@ namespace TAO this->is_released_ = true; } - ACE_INLINE CORBA::PolicyList * + ACE_INLINE CORBA::PolicyList Profile_Transport_Resolver::inconsistent_policies (void) const { return this->inconsistent_policies_; } - ACE_INLINE CORBA::PolicyList * + ACE_INLINE CORBA::PolicyList Profile_Transport_Resolver::steal_inconsistent_policies (void) { - CORBA::PolicyList *tmp = this->inconsistent_policies_; - this->inconsistent_policies_ = 0; + CORBA::PolicyList tmp = this->inconsistent_policies_; + this->inconsistent_policies_.resize (0); return tmp; } } diff --git a/tao/ServerRequestInterceptor_Adapter.h b/tao/ServerRequestInterceptor_Adapter.h index 5a3f55db4bb..46398c417ac 100644 --- a/tao/ServerRequestInterceptor_Adapter.h +++ b/tao/ServerRequestInterceptor_Adapter.h @@ -16,6 +16,8 @@ #ifndef TAO_SERVER_REQUEST_INTERCEPTOR_ADAPTER_H #define TAO_SERVER_REQUEST_INTERCEPTOR_ADAPTER_H +#include + #include /**/ "ace/pre.h" #include /**/ "tao/TAO_Export.h" @@ -44,7 +46,9 @@ namespace PortableInterceptor namespace CORBA { - class PolicyList; + class Policy; + typedef Policy *Policy_ptr; + typedef std::vector PolicyList; } class TAO_ServerRequest; diff --git a/tao/Service_Callbacks.h b/tao/Service_Callbacks.h index 7fbc435152c..092970273db 100644 --- a/tao/Service_Callbacks.h +++ b/tao/Service_Callbacks.h @@ -29,6 +29,7 @@ #include "tao/Invocation_Utils.h" #include "tao/Object.h" #include "tao/Service_Context.h" +#include "tao/IOPC.h" TAO_BEGIN_VERSIONED_NAMESPACE_DECL @@ -41,12 +42,12 @@ namespace CORBA class Object; typedef Object *Object_ptr; } - +/* namespace IOP { class ServiceContextList; } - +*/ /** * @class TAO_Service_Callbacks * diff --git a/tao/Service_Context.cpp b/tao/Service_Context.cpp index c1582970bd9..a3f1858b1e5 100644 --- a/tao/Service_Context.cpp +++ b/tao/Service_Context.cpp @@ -17,11 +17,27 @@ ACE_RCSID (tao, TAO_BEGIN_VERSIONED_NAMESPACE_DECL void -TAO_Service_Context::set_context_i (IOP::ServiceId id, TAO_OutputCDR &cdr) +TAO_Service_Context::set_context_i (IOP::ServiceId id, + TAO_OutputCDR &cdr) { IOP::ServiceContext context; context.context_id = id; - + + ::CORBA::OctetSeq tmp; + TAO_InputCDR in (cdr); + + /// Don't know if this is necessary for core ORB function. + if (!(in >> tmp)) + { + ACE_ERROR ((LM_ERROR, + "TAO_Service_Context::" + "set_context_i failed\n")); + + return; + } + + context.context_data = tmp; +/* // Make a *copy* of the CDR stream... size_t const length = cdr.total_length (); context.context_data.length (static_cast (length)); @@ -34,7 +50,7 @@ TAO_Service_Context::set_context_i (IOP::ServiceId id, TAO_OutputCDR &cdr) ACE_OS::memcpy (buf, i->rd_ptr (), i->length ()); buf += i->length (); } - +*/ this->set_context_i (context); } @@ -42,6 +58,22 @@ void TAO_Service_Context::set_context_i (IOP::ServiceContext &context, TAO_OutputCDR &cdr) { + size_t length = cdr.total_length (); + context.context_data.resize (length); + size_t index = 0; + + for (const ACE_Message_Block *i = cdr.begin (); + i != 0; + i = i->cont ()) + { + char *buf = i->base (); + + for (size_t j = 0; j < i->length (); ++j) + { + context.context_data[index++] = buf[j]; + } + } +/* // Make a *copy* of the CDR stream... size_t const length = cdr.total_length (); context.context_data.length (static_cast (length)); @@ -54,6 +86,7 @@ TAO_Service_Context::set_context_i (IOP::ServiceContext &context, ACE_OS::memcpy (buf, i->rd_ptr (), i->length ()); buf += i->length (); } + */ } void @@ -66,7 +99,7 @@ int TAO_Service_Context::set_context (const IOP::ServiceContext &context, CORBA::Boolean replace) { - for (CORBA::ULong i = 0; i != this->service_context_.length (); ++i) + for (CORBA::ULong i = 0; i != this->service_context_.size (); ++i) { if (context.context_id == this->service_context_[i].context_id) { @@ -91,7 +124,7 @@ TAO_Service_Context::set_context_i (const IOP::ServiceContext& context) { // @@ TODO Some contexts can show up multiple times, others // can't find out and take appropiate action. - for (CORBA::ULong i = 0; i != this->service_context_.length (); ++i) + for (CORBA::ULong i = 0; i != this->service_context_.size (); ++i) { if (context.context_id == this->service_context_[i].context_id) { @@ -106,14 +139,15 @@ TAO_Service_Context::set_context_i (const IOP::ServiceContext& context) void TAO_Service_Context::set_context_i (IOP::ServiceContext& context) { - for (CORBA::ULong i = 0; i != this->service_context_.length (); ++i) + for (CORBA::ULong i = 0; i != this->service_context_.size (); ++i) { if (context.context_id == this->service_context_[i].context_id) { - CORBA::ULong const max = context.context_data.maximum (); - CORBA::ULong const len = context.context_data.length (); - CORBA::Octet * const buf = context.context_data.get_buffer (1); - this->service_context_[i].context_data.replace (max, len, buf, 1); +// CORBA::ULong const max = context.context_data.maximum (); +// CORBA::ULong const len = context.context_data.length (); +// CORBA::Octet * const buf = context.context_data.get_buffer (1); +// this->service_context_[i].context_data.replace (max, len, buf, 1); + this->service_context_[i].context_data = context.context_data; return; } } @@ -126,13 +160,14 @@ TAO_Service_Context::add_context_i (IOP::ServiceContext& context) { // @@ TODO Some contexts can show up multiple times, others // can't find out and take appropiate action. - CORBA::ULong const l = this->service_context_.length (); - this->service_context_.length (l + 1); + CORBA::ULong const l = this->service_context_.size (); + this->service_context_.resize (l + 1); this->service_context_[l].context_id = context.context_id; - CORBA::ULong const max = context.context_data.maximum (); - CORBA::ULong const len = context.context_data.length (); - CORBA::Octet* const buf = context.context_data.get_buffer (1); - this->service_context_[l].context_data.replace (max, len, buf, 1); +// CORBA::ULong const max = context.context_data.maximum (); +// CORBA::ULong const len = context.context_data.length (); +// CORBA::Octet* const buf = context.context_data.get_buffer (1); +// this->service_context_[l].context_data.replace (max, len, buf, 1); + this->service_context_[l].context_data = context.context_data; } void @@ -140,15 +175,15 @@ TAO_Service_Context::add_context_i (const IOP::ServiceContext& context) { // @@ TODO Some contexts can show up multiple times, others // can't find out and take appropiate action. - CORBA::ULong const l = this->service_context_.length (); - this->service_context_.length (l + 1); + CORBA::ULong const l = this->service_context_.size (); + this->service_context_.resize (l + 1); this->service_context_[l] = context; } int TAO_Service_Context::get_context (IOP::ServiceContext& context) const { - for (CORBA::ULong i = 0; i != this->service_context_.length (); ++i) + for (CORBA::ULong i = 0; i != this->service_context_.size (); ++i) { if (context.context_id == this->service_context_[i].context_id) { @@ -164,7 +199,7 @@ int TAO_Service_Context::get_context (IOP::ServiceId id, const IOP::ServiceContext **context) const { - for (CORBA::ULong i = 0; i != this->service_context_.length (); ++i) + for (CORBA::ULong i = 0; i != this->service_context_.size (); ++i) { if (id == this->service_context_[i].context_id) { @@ -180,7 +215,7 @@ int TAO_Service_Context::get_context (IOP::ServiceId id, IOP::ServiceContext_out context) { - CORBA::ULong const len = this->service_context_.length (); + CORBA::ULong const len = this->service_context_.size (); for (CORBA::ULong i = 0; i < len; ++i) { diff --git a/tao/Service_Context.inl b/tao/Service_Context.inl index 84d7ddda4ba..d36951f6e48 100644 --- a/tao/Service_Context.inl +++ b/tao/Service_Context.inl @@ -39,7 +39,7 @@ ACE_INLINE bool TAO_Service_Context::is_service_id (IOP::ServiceId id) { for (CORBA::ULong i = 0; - i != this->service_context_.length (); + i != this->service_context_.size (); ++i) { if (id == this->service_context_[i].context_id) diff --git a/tao/Service_Context_Handler_Registry.cpp b/tao/Service_Context_Handler_Registry.cpp index 8323b56f41d..83d90497249 100644 --- a/tao/Service_Context_Handler_Registry.cpp +++ b/tao/Service_Context_Handler_Registry.cpp @@ -17,7 +17,7 @@ TAO_Service_Context_Registry::process_service_contexts ( TAO_Transport& transport) { for (CORBA::ULong index = 0; - index != sc.length (); + index != sc.size (); ++index) { IOP::ServiceContext const & context = sc[index]; diff --git a/tao/Services.pidl b/tao/Services.pidl index 2543927025e..26d37adf618 100644 --- a/tao/Services.pidl +++ b/tao/Services.pidl @@ -23,6 +23,7 @@ #define TAO_CORBA_SERVICES_IDL #include "tao/OctetSeq.pidl" +#include "tao/ULongSeq.pidl" #pragma prefix "omg.org" @@ -32,7 +33,7 @@ module CORBA typedef unsigned long ServiceOption; typedef unsigned long ServiceDetailType; typedef OctetSeq ServiceDetailData; - typedef sequence ServiceOptionSeq; + typedef ULongSeq ServiceOptionSeq; const ServiceType Security = 1; diff --git a/tao/Stub.cpp b/tao/Stub.cpp index 419ba5cb684..778baf188bc 100644 --- a/tao/Stub.cpp +++ b/tao/Stub.cpp @@ -248,7 +248,7 @@ TAO_Stub::get_profile_ior_info (TAO_MProfile &profiles, IOP::IOR *&ior_info) CORBA::ULong const count = profiles.profile_count (); // Set the number of elements in the sequence of tagged_profile - ior_info->profiles.length (count); + ior_info->profiles.resize (count); // Call the create_tagged_profile one every member of the // profile and make the sequence @@ -472,17 +472,20 @@ TAO_Stub::set_policy_overrides (const CORBA::PolicyList & policies, return stub; } -CORBA::PolicyList * +CORBA::PolicyList TAO_Stub::get_policy_overrides (const CORBA::PolicyTypeSeq &types) { + CORBA::PolicyList policy_list; + if (this->policies_ == 0) { + /* CORBA::PolicyList *policy_list_ptr = 0; ACE_NEW_THROW_EX (policy_list_ptr, CORBA::PolicyList (), CORBA::NO_MEMORY ()); - - return policy_list_ptr; + */ + return policy_list; } else { diff --git a/tao/Stub.h b/tao/Stub.h index 66bb2ed25ce..9ef36c18386 100644 --- a/tao/Stub.h +++ b/tao/Stub.h @@ -82,7 +82,7 @@ public: virtual TAO_Stub* set_policy_overrides (const CORBA::PolicyList & policies, CORBA::SetOverrideType set_add); - virtual CORBA::PolicyList *get_policy_overrides ( + virtual CORBA::PolicyList get_policy_overrides ( const CORBA::PolicyTypeSeq & types); #endif diff --git a/tao/Synch_Reply_Dispatcher.cpp b/tao/Synch_Reply_Dispatcher.cpp index 20992fef308..a69467ed500 100644 --- a/tao/Synch_Reply_Dispatcher.cpp +++ b/tao/Synch_Reply_Dispatcher.cpp @@ -66,12 +66,13 @@ TAO_Synch_Reply_Dispatcher::dispatch_reply ( // Steal the buffer, that way we don't do any unnecesary copies of // this data. - CORBA::ULong const max = params.svc_ctx_.maximum (); - CORBA::ULong const len = params.svc_ctx_.length (); - IOP::ServiceContext* context_list = params.svc_ctx_.get_buffer (true); - this->reply_service_info_.replace (max, len, context_list, true); +// CORBA::ULong const max = params.svc_ctx_.maximum (); +// CORBA::ULong const len = params.svc_ctx_.length (); +// IOP::ServiceContext* context_list = params.svc_ctx_.get_buffer (true); +// this->reply_service_info_.replace (max, len, context_list, true); + this->reply_service_info_ = params.svc_ctx_; - if (this->reply_service_info_.length() > 0) + if (this->reply_service_info_.size () > 0) { orb_core_->service_context_registry (). process_service_contexts (this->reply_service_info_, *(params.transport_)); diff --git a/tao/Synch_Reply_Dispatcher.h b/tao/Synch_Reply_Dispatcher.h index 94d9e139dba..8a12d7ba268 100644 --- a/tao/Synch_Reply_Dispatcher.h +++ b/tao/Synch_Reply_Dispatcher.h @@ -25,16 +25,12 @@ #include "tao/LF_Invocation_Event.h" #include "tao/CDR.h" +#include "tao/IOPC.h" TAO_BEGIN_VERSIONED_NAMESPACE_DECL class TAO_Pluggable_Reply_Params; -namespace IOP -{ - class ServiceContextList; -} - /** * @class TAO_Synch_Reply_Dispatcher * diff --git a/tao/TAO_Server_Request.cpp b/tao/TAO_Server_Request.cpp index 69aacc00917..3afd77b071c 100644 --- a/tao/TAO_Server_Request.cpp +++ b/tao/TAO_Server_Request.cpp @@ -69,7 +69,7 @@ TAO_ServerRequest::TAO_ServerRequest (TAO_GIOP_Message_Base *mesg_base, orb_core_ (orb_core), request_id_ (0), profile_ (orb_core), - requesting_principal_ (0), +// requesting_principal_ (0), dsi_nvlist_align_ (0), operation_details_ (0), argument_flag_ (true) @@ -111,7 +111,7 @@ TAO_ServerRequest::TAO_ServerRequest (TAO_GIOP_Message_Base *mesg_base, orb_core_ (orb_core), request_id_ (request_id), profile_ (orb_core), - requesting_principal_ (0), +// requesting_principal_ (0), dsi_nvlist_align_ (0), operation_details_ (0), argument_flag_ (true) @@ -148,7 +148,7 @@ TAO_ServerRequest::TAO_ServerRequest (TAO_ORB_Core * orb_core, orb_core_ (orb_core), request_id_ (0), profile_ (orb_core), - requesting_principal_ (0), +// requesting_principal_ (0), dsi_nvlist_align_ (0), operation_details_ (&details), argument_flag_ (false) @@ -171,12 +171,14 @@ TAO_ServerRequest::TAO_ServerRequest (TAO_ORB_Core * orb_core, IOP::ServiceContextList & src_request_contexts = (const_cast (details)).request_service_info (); - + + dest_request_contexts = src_request_contexts; +/* dest_request_contexts.replace (src_request_contexts.maximum (), src_request_contexts.length (), src_request_contexts.get_buffer (), - false /* Do not release. */); - + false); // Do not release. +*/ // Don't shallow copy the reply service context. It is probably empty, // when then during the request it is used, the buffer gets allocated and // then the operation details don't get the reply service context @@ -304,7 +306,7 @@ TAO_ServerRequest::send_no_exception_reply (void) // Change this to pass back the same thing we received, as well as // leave a comment why this is important! - reply_params.svc_ctx_.length (0); + reply_params.svc_ctx_.resize (0); // Send back the reply service context. reply_params.service_context_notowned (&this->reply_service_info ()); @@ -377,7 +379,7 @@ TAO_ServerRequest::tao_send_reply_exception (const CORBA::Exception &ex) TAO_Pluggable_Reply_Params_Base reply_params; reply_params.request_id_ = this->request_id_; - reply_params.svc_ctx_.length (0); + reply_params.svc_ctx_.resize (0); // Send back the reply service context. reply_params.service_context_notowned (&this->reply_service_info ()); @@ -510,7 +512,7 @@ TAO_ServerRequest::send_cached_reply (CORBA::OctetSeq &s) reply_params.request_id_ = this->request_id_; - reply_params.svc_ctx_.length (0); + reply_params.svc_ctx_.resize (0); // Send back the empty reply service context. reply_params.service_context_notowned (&this->reply_service_info ()); @@ -535,12 +537,14 @@ TAO_ServerRequest::send_cached_reply (CORBA::OctetSeq &s) ACE_TEXT ("could not make cached reply\n"))); } - + + *this->outgoing_ << s; +/* /// Append reply here.... this->outgoing_->write_octet_array ( s.get_buffer (), s.length ()); - +*/ if (!this->outgoing_->good_bit ()) { ACE_ERROR ((LM_ERROR, diff --git a/tao/TAO_Server_Request.h b/tao/TAO_Server_Request.h index 254e721897c..394ea61a359 100644 --- a/tao/TAO_Server_Request.h +++ b/tao/TAO_Server_Request.h @@ -221,7 +221,7 @@ public: void reply_status (GIOP::ReplyStatusType except_type); /// Set the requesting principal - void requesting_principal (const CORBA::OctetSeq & principal); + void requesting_principal (const CORBA::OctetSeq principal); /// Return the reference to the tagged profile TAO_Tagged_Profile &profile (void); @@ -339,7 +339,7 @@ private: TAO_Tagged_Profile profile_; /// Identifies the requester. - CORBA::OctetSeq_var requesting_principal_; + CORBA::OctetSeq requesting_principal_; /// Used to pad CDR stream if we have used DSI. ptrdiff_t dsi_nvlist_align_; diff --git a/tao/TAO_Server_Request.inl b/tao/TAO_Server_Request.inl index ef3532f4c6c..ad6b143a8d9 100644 --- a/tao/TAO_Server_Request.inl +++ b/tao/TAO_Server_Request.inl @@ -23,7 +23,7 @@ TAO_ServerRequest::TAO_ServerRequest (void) orb_core_ (0), request_id_ (0), profile_ (0), - requesting_principal_ (0), +// requesting_principal_ (0), dsi_nvlist_align_ (0), operation_details_ (0), argument_flag_ (true) @@ -153,7 +153,7 @@ TAO_ServerRequest::request_id (CORBA::ULong req) } ACE_INLINE void -TAO_ServerRequest::requesting_principal (const CORBA::OctetSeq &principal) +TAO_ServerRequest::requesting_principal (const CORBA::OctetSeq principal) { this->requesting_principal_ = principal; } diff --git a/tao/Tagged_Components.cpp b/tao/Tagged_Components.cpp index 28d22ce41ed..e29499484da 100644 --- a/tao/Tagged_Components.cpp +++ b/tao/Tagged_Components.cpp @@ -63,10 +63,11 @@ TAO_Tagged_Components::set_code_sets_i ( CONV_FRAME::CodeSetComponent &rhs) { lhs.native_code_set = rhs.native_code_set; - CORBA::ULong const max = rhs.conversion_code_sets.maximum (); - CORBA::ULong const len = rhs.conversion_code_sets.length (); - CONV_FRAME::CodeSetId *buffer = rhs.conversion_code_sets.get_buffer (true); - lhs.conversion_code_sets.replace (max, len, buffer, true); + CORBA::ULong const max = rhs.conversion_code_sets.capacity (); + CORBA::ULong const len = rhs.conversion_code_sets.size (); +// CONV_FRAME::CodeSetId *buffer = rhs.conversion_code_sets.get_buffer (true); +// lhs.conversion_code_sets.replace (max, len, buffer, true); + lhs.conversion_code_sets = rhs.conversion_code_sets; } // **************************************************************** @@ -77,18 +78,22 @@ TAO_Tagged_Components::set_component_i (IOP::ComponentId tag, { IOP::TaggedComponent component; component.tag = tag; - + // Make a *copy* of the CDR stream... size_t length = cdr.total_length (); - component.component_data.length (static_cast (length)); - CORBA::Octet *buf = component.component_data.get_buffer (); + component.component_data.resize (length); + size_t index = 0; for (const ACE_Message_Block *i = cdr.begin (); i != 0; i = i->cont ()) { - ACE_OS::memcpy (buf, i->rd_ptr (), i->length ()); - buf += i->length (); + char *buf = i->base (); + + for (size_t j = 0; j < i->length (); ++j) + { + component.component_data[index++] = buf[j]; + } } this->set_component_i (component); @@ -134,10 +139,14 @@ void TAO_Tagged_Components::set_known_component_i ( const IOP::TaggedComponent& component) { + TAO_OutputCDR out; + out << component.component_data; + TAO_InputCDR cdr (out); +/* TAO_InputCDR cdr (reinterpret_cast ( component.component_data.get_buffer ()), component.component_data.length ()); - +*/ CORBA::Boolean byte_order; if (!(cdr >> ACE_InputCDR::to_boolean (byte_order))) @@ -179,7 +188,7 @@ TAO_Tagged_Components::set_component_i (const IOP::TaggedComponent& component) { // @@ TODO Some components can show up multiple times, others // can't find out and take appropiate action. - for (CORBA::ULong i = 0; i != this->components_.length (); ++i) + for (CORBA::ULong i = 0; i != this->components_.size (); ++i) { if (component.tag == this->components_[i].tag) { @@ -194,14 +203,15 @@ TAO_Tagged_Components::set_component_i (const IOP::TaggedComponent& component) void TAO_Tagged_Components::set_component_i (IOP::TaggedComponent& component) { - for (CORBA::ULong i = 0; i != this->components_.length (); ++i) + for (CORBA::ULong i = 0; i != this->components_.size (); ++i) { if (component.tag == this->components_[i].tag) { - CORBA::ULong max = component.component_data.maximum (); - CORBA::ULong len = component.component_data.length (); - CORBA::Octet* buf = component.component_data.get_buffer (1); - this->components_[i].component_data.replace (max, len, buf, 1); +// CORBA::ULong max = component.component_data.max_size (); +// CORBA::ULong len = component.component_data.size (); +// CORBA::Octet* buf = component.component_data.get_buffer (1); +// this->components_[i].component_data.replace (max, len, buf, 1); + this->components_[i].component_data = component.component_data; return; } } @@ -214,13 +224,14 @@ TAO_Tagged_Components::add_component_i (IOP::TaggedComponent& component) { // @@ TODO Some components can show up multiple times, others // can't find out and take appropiate action. - CORBA::ULong l = this->components_.length (); - this->components_.length (l + 1); + CORBA::ULong l = this->components_.size (); + this->components_.resize (l + 1); this->components_[l].tag = component.tag; - CORBA::ULong max = component.component_data.maximum (); - CORBA::ULong len = component.component_data.length (); - CORBA::Octet* buf = component.component_data.get_buffer (1); - this->components_[l].component_data.replace (max, len, buf, 1); +// CORBA::ULong max = component.component_data.maximum (); +// CORBA::ULong len = component.component_data.length (); +// CORBA::Octet* buf = component.component_data.get_buffer (1); +// this->components_[l].component_data.replace (max, len, buf, 1); + this->components_[l].component_data = component.component_data; } void @@ -228,8 +239,8 @@ TAO_Tagged_Components::add_component_i (const IOP::TaggedComponent& component) { // @@ TODO Some components can show up multiple times, others // can't find out and take appropiate action. - CORBA::ULong l = this->components_.length (); - this->components_.length (l + 1); + CORBA::ULong l = this->components_.size (); + this->components_.resize (l + 1); this->components_[l] = component; } @@ -270,7 +281,7 @@ int TAO_Tagged_Components::remove_component_i (IOP::ComponentId tag) { CORBA::ULong src = 0, dest = 0; - CORBA::ULong len = this->components_.length (); + CORBA::ULong len = this->components_.size (); for (;src != len;++src) { @@ -281,14 +292,14 @@ TAO_Tagged_Components::remove_component_i (IOP::ComponentId tag) } } - this->components_.length (dest); + this->components_.resize (dest); return src - dest; } int TAO_Tagged_Components::get_component (IOP::TaggedComponent& component) const { - for (CORBA::ULong i = 0; i != this->components_.length (); ++i) + for (CORBA::ULong i = 0; i != this->components_.size (); ++i) { if (component.tag == this->components_[i].tag) { @@ -320,7 +331,7 @@ TAO_Tagged_Components::decode (TAO_InputCDR& cdr) return 0; } - CORBA::ULong const l = this->components_.length (); + CORBA::ULong const l = this->components_.size (); for (CORBA::ULong i = 0; i != l; ++i) { diff --git a/tao/operation_details.inl b/tao/operation_details.inl index 3c9d6f6a35e..4626e28b572 100644 --- a/tao/operation_details.inl +++ b/tao/operation_details.inl @@ -99,12 +99,12 @@ TAO_Operation_Details::reply_service_info (void) const ACE_INLINE void TAO_Operation_Details::reset_request_service_info (void) { - this->request_service_context ().service_info ().length (0); + this->request_service_context ().service_info ().resize (0); } ACE_INLINE void TAO_Operation_Details::reset_reply_service_info (void) { - this->reply_service_context ().service_info ().length (0); + this->reply_service_context ().service_info ().resize (0); } ACE_INLINE void diff --git a/tao/tao.mpc b/tao/tao.mpc index 93de90b1d0a..c756f445fb0 100644 --- a/tao/tao.mpc +++ b/tao/tao.mpc @@ -2,7 +2,7 @@ project(TAO_Core_idl) : tao_versioning_idl_defaults, gen_ostream, install, pidl_install { custom_only = 1 - idlflags += -SS -Sorb -GA -Gp -Gd -oA AnyTypeCode \ + idlflags += -SS -Sorb -Gstl -GA -Gp -Gd -oA AnyTypeCode \ -Wb,export_macro=TAO_Export \ -Wb,export_include=tao/TAO_Export.h \ -Wb,anyop_export_macro=TAO_AnyTypeCode_Export \ -- cgit v1.2.1