summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstanleyk <stanleyk@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2013-01-24 16:18:05 +0000
committerstanleyk <stanleyk@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2013-01-24 16:18:05 +0000
commitae57a14a1a610c41826087da6b9028c1e127c658 (patch)
tree114eddd42356171b7e50234fb1379884405cc52a
parentb6c7a75fde9de4b5d2cf7c6caed0f40f9ca3243d (diff)
downloadATCD-ae57a14a1a610c41826087da6b9028c1e127c658.tar.gz
Merged DOC group trunk to branch.
-rw-r--r--ACE/COPYING2
-rw-r--r--ACE/ChangeLog673
-rw-r--r--ACE/NEWS22
-rw-r--r--ACE/PROBLEM-REPORT-FORM2
-rw-r--r--ACE/THANKS3
-rw-r--r--ACE/VERSION2
-rw-r--r--ACE/ace/ACE.cpp8
-rw-r--r--ACE/ace/Acceptor.cpp18
-rw-r--r--ACE/ace/Auto_Event.cpp45
-rw-r--r--ACE/ace/Auto_Event.h55
-rw-r--r--ACE/ace/Auto_Event.inl3
-rw-r--r--ACE/ace/CDR_Size.h4
-rw-r--r--ACE/ace/CDR_Stream.cpp48
-rw-r--r--ACE/ace/Condition_Attributes.cpp4
-rw-r--r--ACE/ace/Condition_Attributes.h6
-rw-r--r--ACE/ace/Condition_Attributes.inl1
-rw-r--r--ACE/ace/ETCL/ETCL_Constraint.inl1
-rw-r--r--ACE/ace/Event.cpp81
-rw-r--r--ACE/ace/Event.h118
-rw-r--r--ACE/ace/Event.inl14
-rw-r--r--ACE/ace/Event_Base.cpp76
-rw-r--r--ACE/ace/Event_Base.h141
-rw-r--r--ACE/ace/Event_Base.inl18
-rw-r--r--ACE/ace/Malloc.cpp4
-rw-r--r--ACE/ace/Manual_Event.cpp48
-rw-r--r--ACE/ace/Manual_Event.h54
-rw-r--r--ACE/ace/Manual_Event.inl3
-rw-r--r--ACE/ace/Message_Queue.h4
-rw-r--r--ACE/ace/Message_Queue_Vx.inl12
-rw-r--r--ACE/ace/Naming_Context.cpp3
-rw-r--r--ACE/ace/Naming_Context.h1
-rw-r--r--ACE/ace/OS_NS_Thread.cpp51
-rw-r--r--ACE/ace/OS_NS_Thread.h51
-rw-r--r--ACE/ace/OS_NS_Thread.inl144
-rw-r--r--ACE/ace/OS_NS_netdb.cpp33
-rw-r--r--ACE/ace/OS_NS_netdb.inl4
-rw-r--r--ACE/ace/OS_NS_sys_shm.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_socket.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_stat.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_uio.cpp2
-rw-r--r--ACE/ace/Obchunk.h1
-rw-r--r--ACE/ace/Obstack_T.cpp8
-rw-r--r--ACE/ace/Obstack_T.h14
-rw-r--r--ACE/ace/POSIX_Proactor.cpp6
-rw-r--r--ACE/ace/Parse_Node.cpp1
-rw-r--r--ACE/ace/Reactor.h15
-rw-r--r--ACE/ace/Read_Buffer.cpp11
-rw-r--r--ACE/ace/Recursive_Thread_Mutex.cpp4
-rw-r--r--ACE/ace/SOCK_Dgram.cpp30
-rw-r--r--ACE/ace/SSL/SSL_Context.cpp10
-rw-r--r--ACE/ace/SSL/SSL_Context.h4
-rw-r--r--ACE/ace/SV_Message_Queue.cpp3
-rw-r--r--ACE/ace/SV_Message_Queue.inl2
-rw-r--r--ACE/ace/SV_Semaphore_Simple.cpp3
-rw-r--r--ACE/ace/Service_Config.h58
-rw-r--r--ACE/ace/Sig_Adapter.cpp11
-rw-r--r--ACE/ace/Sig_Handler.cpp6
-rw-r--r--ACE/ace/Signal.h2
-rw-r--r--ACE/ace/Strategies_T.cpp4
-rw-r--r--ACE/ace/TSS_T.inl4
-rw-r--r--ACE/ace/Test_and_Set.h12
-rw-r--r--ACE/ace/Throughput_Stats.cpp8
-rw-r--r--ACE/ace/Timer_Hash_T.h1
-rw-r--r--ACE/ace/Timer_Queue_Iterator.cpp4
-rw-r--r--ACE/ace/Timer_Queue_Iterator.h4
-rw-r--r--ACE/ace/Version.h4
-rw-r--r--ACE/ace/XML_Utils/ACE_XML_Utils.pc.in11
-rw-r--r--ACE/ace/XML_Utils/XML.mpc4
-rw-r--r--ACE/ace/ace.mpc8
-rw-r--r--ACE/ace/ace_for_tao.mpc8
-rw-r--r--ACE/ace/config-hpux-11.00.h7
-rw-r--r--ACE/ace/config-macosx-mountain-lion.h7
-rwxr-xr-xACE/bin/diff-builds-and-group-fixed-tests-only.sh2
-rwxr-xr-xACE/bin/fuzz.pl1
-rw-r--r--ACE/debian/ACE-DPKG.mwc34
-rw-r--r--ACE/debian/README.source8
-rw-r--r--ACE/debian/TAO-DPKG.mwc27
-rw-r--r--ACE/debian/ace-netsvcs.doc-base10
-rw-r--r--ACE/debian/ace-netsvcs.docs3
-rw-r--r--ACE/debian/ace-netsvcs.install2
-rw-r--r--ACE/debian/ace-netsvcs.manpages1
-rw-r--r--ACE/debian/ace.dsc6
-rw-r--r--ACE/debian/debian.changelog38
-rw-r--r--ACE/debian/debian.compat1
-rw-r--r--ACE/debian/debian.control129
-rw-r--r--ACE/debian/debian.rules56
-rw-r--r--ACE/debian/default.features1
-rw-r--r--ACE/debian/libace-6.1.7.docs (renamed from ACE/debian/libace-6.1.4.docs)0
-rw-r--r--ACE/debian/libace-6.1.7.install (renamed from ACE/debian/libace-6.1.4.install)0
-rw-r--r--ACE/debian/libace-flreactor-6.1.7.install (renamed from ACE/debian/libace-flreactor-6.1.4.install)0
-rw-r--r--ACE/debian/libace-foxreactor-6.1.7.install (renamed from ACE/debian/libace-foxreactor-6.1.4.install)0
-rw-r--r--ACE/debian/libace-htbp-6.1.7.install (renamed from ACE/debian/libace-htbp-6.1.4.install)0
-rw-r--r--ACE/debian/libace-inet-6.1.7.install (renamed from ACE/debian/libace-inet-6.1.4.install)0
-rw-r--r--ACE/debian/libace-inet-ssl-6.1.7.install (renamed from ACE/debian/libace-inet-ssl-6.1.4.install)0
-rw-r--r--ACE/debian/libace-qtreactor-6.1.7.install (renamed from ACE/debian/libace-qtreactor-6.1.4.install)0
-rw-r--r--ACE/debian/libace-rmcast-6.1.7.install (renamed from ACE/debian/libace-rmcast-6.1.4.install)0
-rw-r--r--ACE/debian/libace-ssl-6.1.7.NEWS (renamed from ACE/debian/libace-ssl-6.1.4.NEWS)0
-rw-r--r--ACE/debian/libace-ssl-6.1.7.install (renamed from ACE/debian/libace-ssl-6.1.4.install)0
-rw-r--r--ACE/debian/libace-tkreactor-6.1.7.install (renamed from ACE/debian/libace-tkreactor-6.1.4.install)0
-rw-r--r--ACE/debian/libace-tmcast-6.1.7.install (renamed from ACE/debian/libace-tmcast-6.1.4.install)0
-rw-r--r--ACE/debian/libace-xml-utils-6.1.7.install1
-rw-r--r--ACE/debian/libace-xml-utils-dev.install3
-rw-r--r--ACE/debian/libace-xtreactor-6.1.7.install (renamed from ACE/debian/libace-xtreactor-6.1.4.install)0
-rw-r--r--ACE/debian/libacexml-6.1.7.docs (renamed from ACE/debian/libacexml-6.1.4.docs)0
-rw-r--r--ACE/debian/libacexml-6.1.7.install (renamed from ACE/debian/libacexml-6.1.4.install)0
-rw-r--r--ACE/debian/libkokyu-6.1.7.docs (renamed from ACE/debian/libkokyu-6.1.4.docs)0
-rw-r--r--ACE/debian/libkokyu-6.1.7.install (renamed from ACE/debian/libkokyu-6.1.4.install)0
-rw-r--r--ACE/debian/libnetsvcs-6.1.2.install1
-rw-r--r--ACE/debian/libnetsvcs-dev.docs2
-rw-r--r--ACE/debian/libnetsvcs-dev.install3
-rw-r--r--ACE/debian/libtao-2.1.4.docs4
-rw-r--r--ACE/debian/libtao-2.1.7.docs (renamed from ACE/debian/libnetsvcs-6.1.2.docs)4
-rw-r--r--ACE/debian/libtao-2.1.7.install (renamed from ACE/debian/libtao-2.1.4.install)2
-rw-r--r--ACE/debian/libtao-dev.docs6
-rw-r--r--ACE/debian/libtao-dev.install5
-rw-r--r--ACE/debian/libtao-doc.docs2
-rw-r--r--ACE/debian/libtao-flresource-2.1.7.install (renamed from ACE/debian/libtao-flresource-2.1.4.install)0
-rw-r--r--ACE/debian/libtao-foxresource-2.1.7.install (renamed from ACE/debian/libtao-foxresource-2.1.4.install)0
-rw-r--r--ACE/debian/libtao-orbsvcs-2.1.7.NEWS (renamed from ACE/debian/libtao-orbsvcs-2.1.4.NEWS)0
-rw-r--r--ACE/debian/libtao-orbsvcs-2.1.7.install (renamed from ACE/debian/libtao-orbsvcs-2.1.4.install)0
-rw-r--r--ACE/debian/libtao-qtresource-2.1.7.install (renamed from ACE/debian/libtao-qtresource-2.1.4.install)0
-rw-r--r--ACE/debian/libtao-tkresource-2.1.7.install (renamed from ACE/debian/libtao-tkresource-2.1.4.install)0
-rw-r--r--ACE/debian/libtao-xtresource-2.1.7.install (renamed from ACE/debian/libtao-xtresource-2.1.4.install)0
-rw-r--r--ACE/debian/mpc-ace.manpages2
-rw-r--r--ACE/debian/patches/15-fix-lzo-flags.diff22
-rw-r--r--ACE/debian/patches/20-versioned_libs.diff137
-rw-r--r--ACE/debian/patches/34-bts386713.diff389
-rw-r--r--ACE/debian/patches/35_disable_sslv2.diff114
-rw-r--r--ACE/debian/patches/series4
-rw-r--r--ACE/debian/platform_macros.GNU3
-rw-r--r--ACE/debian/platform_macros.GNU.in127
-rw-r--r--ACE/debian/tao-concurrency.docs2
-rw-r--r--ACE/debian/tao-cosconcurrency.docs2
-rw-r--r--ACE/debian/tao-cosevent.docs2
-rw-r--r--ACE/debian/tao-cosnaming.docs2
-rw-r--r--ACE/debian/tao-cosnotification.docs2
-rw-r--r--ACE/debian/tao-costime.docs2
-rw-r--r--ACE/debian/tao-costrading.docs2
-rw-r--r--ACE/debian/tao-event.docs2
-rw-r--r--ACE/debian/tao-ft.docs2
-rw-r--r--ACE/debian/tao-idl.manpages1
-rw-r--r--ACE/debian/tao-ifr.docs2
-rw-r--r--ACE/debian/tao-imr.docs2
-rw-r--r--ACE/debian/tao-load.docs2
-rw-r--r--ACE/debian/tao-log.docs2
-rw-r--r--ACE/debian/tao-log.install2
-rw-r--r--ACE/debian/tao-log.manpages4
-rw-r--r--ACE/debian/tao-naming.docs2
-rw-r--r--ACE/debian/tao-notify.docs2
-rw-r--r--ACE/debian/tao-time.docs2
-rw-r--r--ACE/debian/tao-tls.docs2
-rw-r--r--ACE/debian/tao-tls.manpages4
-rw-r--r--ACE/debian/tao-trading.docs2
-rw-r--r--ACE/debian/tao-utils.docs3
-rw-r--r--ACE/debian/tao-utils.manpages4
-rw-r--r--ACE/docs/ACE-monotonic-timer.html63
-rw-r--r--ACE/docs/Download.html108
-rw-r--r--ACE/docs/bczar/bczar.html14
-rw-r--r--ACE/etc/index.html3
-rw-r--r--ACE/html/Stats/index.shtml3
-rw-r--r--ACE/include/makeinclude/platform_cegcc.GNU2
-rw-r--r--ACE/include/makeinclude/platform_g++_common.GNU13
-rw-r--r--ACE/include/makeinclude/platform_linux_clang.GNU2
-rw-r--r--ACE/include/makeinclude/platform_macosx_mountain_lion.GNU4
-rw-r--r--ACE/include/makeinclude/platform_rtems.x_g++.GNU2
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.2.GNU2
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.3.GNU2
-rw-r--r--ACE/include/makeinclude/rules.lib.GNU32
-rw-r--r--ACE/include/makeinclude/rules.local.GNU18
-rw-r--r--ACE/include/makeinclude/wrapper_macros.GNU5
-rw-r--r--ACE/protocols/ace/INet/HTTP_Simple_exec.cpp14
-rwxr-xr-xACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl7
-rwxr-xr-xACE/protocols/tests/HTBP/Send_Large_Msg/run_test.pl7
-rwxr-xr-xACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl7
-rwxr-xr-xACE/protocols/tests/HTBP/ping/run_test.pl7
-rw-r--r--ACE/protocols/tests/RMCast/Receiver.cpp2
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency2
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosevent4
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming2
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification2
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-costrading2
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-rtevent2
-rw-r--r--ACE/rpmbuild/ace-tao.spec9
-rw-r--r--ACE/tests/Bug_3744_Regression_Test.cpp4
-rw-r--r--ACE/tests/Bug_4055_Regression_Test.cpp8
-rw-r--r--ACE/tests/FlReactor_Test.cpp4
-rw-r--r--ACE/tests/Manual_Event_Test.cpp11
-rw-r--r--ACE/tests/Monotonic_Manual_Event_Test.cpp332
-rw-r--r--ACE/tests/Monotonic_Message_Queue_Test.cpp7
-rw-r--r--ACE/tests/Monotonic_Task_Test.cpp7
-rw-r--r--ACE/tests/Network_Adapters_Test.cpp11
-rw-r--r--ACE/tests/Network_Adapters_Test.h2
-rw-r--r--ACE/tests/Obstack_Test.cpp4
-rw-r--r--ACE/tests/run_test.lst3
-rw-r--r--ACE/tests/tests.mpc7
-rw-r--r--CIAO/COPYING2
-rw-r--r--CIAO/ChangeLog186
-rw-r--r--CIAO/MPC/config/taobaseidl3toidl2defaults.mpb4
-rw-r--r--CIAO/MPC/config/taoidl3toxmidefaults.mpb4
-rw-r--r--CIAO/NEWS15
-rw-r--r--CIAO/PROBLEM-REPORT-FORM6
-rw-r--r--CIAO/VERSION2
-rw-r--r--CIAO/bin/ciao_tests.lst5
-rw-r--r--CIAO/ccm/CCM_Transaction.idl1
-rw-r--r--CIAO/ciao/Base/CIAO_Base.mpc2
-rw-r--r--CIAO/ciao/Deployment/Interceptors/Deployment_Interceptors.cpp6
-rw-r--r--CIAO/ciao/Version.h4
-rw-r--r--CIAO/connectors/dds4ccm/idl/ndds/ndds_dcps.idl61
-rw-r--r--CIAO/connectors/dds4ccm/impl/DataReaderListener_T.cpp16
-rw-r--r--CIAO/connectors/dds4ccm/impl/DomainParticipantManager.cpp20
-rw-r--r--CIAO/connectors/dds4ccm/impl/Utils.h8
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/Condition.cpp3
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/ContentFilteredTopic.cpp2
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp2
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp5
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.h2
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.cpp2
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/WaitSet.cpp6
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h7
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/convertors/TypeConsistencyEnforcementQosPolicy.h30
-rw-r--r--CIAO/connectors/dds4ccm/tests/On_Inconsistent_Topic/Base/OIT_Test_Base.idl2
-rw-r--r--CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.cpp11
-rw-r--r--CIAO/connectors/dds4ccm/tests/Policies/policies.mpc1
-rw-r--r--CIAO/connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.cpp18
-rw-r--r--CIAO/connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.h23
-rw-r--r--CIAO/docs/fm/CIAO.htm4
-rw-r--r--CIAO/tests/Bug_3769_Regression/Foo.idl26
-rw-r--r--CIAO/tests/Bug_3769_Regression/Foo_exec.cpp65
-rw-r--r--CIAO/tests/Bug_3769_Regression/Foo_exec.h8
-rw-r--r--CIAO/tests/Bug_3769_Regression/descriptors/DeploymentPlan.cdp77
-rwxr-xr-xCIAO/tests/Bug_3769_Regression/descriptors/run_test_cdr.pl251
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl2
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl2
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl2
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl2
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl2
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl2
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl2
-rw-r--r--CIAO/tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc6
-rw-r--r--CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc6
-rw-r--r--DAnCE/COPYING2
-rw-r--r--DAnCE/ChangeLog51
-rw-r--r--DAnCE/NEWS15
-rw-r--r--DAnCE/PROBLEM-REPORT-FORM6
-rw-r--r--DAnCE/VERSION2
-rw-r--r--DAnCE/dance/Deployment/Deployment_Core.mpc2
-rw-r--r--DAnCE/dance/LocalityManager/Handler/Inst_Handler_Impl.cpp18
-rw-r--r--DAnCE/dance/NodeApplication/NodeApplication_Impl.cpp3
-rw-r--r--DAnCE/dance/Plan_Launcher/EM_Launcher.cpp4
-rw-r--r--DAnCE/dance/Plan_Launcher/LM_Launcher.cpp3
-rw-r--r--DAnCE/dance/Plan_Launcher/NM_Launcher.cpp3
-rw-r--r--DAnCE/dance/Version.h4
-rw-r--r--DAnCE/tools/Logger_Backend/ndds/Log_Backend.h6
-rw-r--r--TAO/COPYING2
-rw-r--r--TAO/ChangeLog494
-rw-r--r--TAO/NEWS23
-rw-r--r--TAO/OCI_RE_ChangeLog4
-rw-r--r--TAO/PROBLEM-REPORT-FORM4
-rw-r--r--TAO/TAO_IDL/ast/ast_module.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_component.cpp10
-rw-r--r--TAO/TAO_IDL/be/be_util.cpp5
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp37
-rw-r--r--TAO/TAO_IDL/include/ast_module.h6
-rw-r--r--TAO/TAO_IDL/util/utl_global.cpp8
-rw-r--r--TAO/TAO_IDL/util/utl_scope.cpp12
-rw-r--r--TAO/VERSION2
-rw-r--r--TAO/bin/tao_orb_tests.lst1
-rw-r--r--TAO/bin/tao_other_tests.lst1
-rw-r--r--TAO/docs/interop-naming.eps29808
-rw-r--r--TAO/examples/Simple/Simple_util.cpp2
-rw-r--r--TAO/examples/Simple/time/Time_Client_i.cpp3
-rw-r--r--TAO/examples/Simple/time/server.cpp10
-rw-r--r--TAO/orbsvcs/Concurrency_Service/Concurrency_Service.mpc4
-rw-r--r--TAO/orbsvcs/CosEvent_Service/CosEvent_Service.mpc4
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc10
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/README (renamed from TAO/orbsvcs/ImplRepo_Service/README.txt)2
-rw-r--r--TAO/orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.mpc4
-rw-r--r--TAO/orbsvcs/Naming_Service/Naming_Service.mpc8
-rw-r--r--TAO/orbsvcs/Notify_Service/Notify_Service.mpc8
-rw-r--r--TAO/orbsvcs/Time_Service/Time_Service.mpc8
-rw-r--r--TAO/orbsvcs/Trading_Service/Trading_Service.mpc4
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/PG_Group_List_Store.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.cpp27
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.h2
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp75
-rw-r--r--TAO/orbsvcs/orbsvcs/SL3CSI.idl353
-rw-r--r--TAO/orbsvcs/orbsvcs/SL3TCPIP.idl203
-rw-r--r--TAO/orbsvcs/orbsvcs/SL3TLS.idl350
-rw-r--r--TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp6
-rw-r--r--TAO/orbsvcs/tests/Bug_4080_Regression/Bug_4080_Regression.mpc36
-rw-r--r--TAO/orbsvcs/tests/Bug_4080_Regression/README29
-rw-r--r--TAO/orbsvcs/tests/Bug_4080_Regression/client.cpp102
-rwxr-xr-xTAO/orbsvcs/tests/Bug_4080_Regression/run_test.pl90
-rw-r--r--TAO/orbsvcs/tests/Bug_4080_Regression/server.cpp173
-rw-r--r--TAO/orbsvcs/tests/Bug_4080_Regression/svc.conf6
-rw-r--r--TAO/orbsvcs/tests/Bug_4080_Regression/test.idl7
-rw-r--r--TAO/orbsvcs/tests/Bug_4080_Regression/test_impl.cpp43
-rw-r--r--TAO/orbsvcs/tests/Bug_4080_Regression/test_impl.h26
-rw-r--r--TAO/orbsvcs/tests/Miop/McastHello/svc.conf2
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp6
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp6
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp6
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp6
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp9
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp6
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp9
-rw-r--r--TAO/tao/AnyTypeCode/Alias_TypeCode.cpp3
-rw-r--r--TAO/tao/AnyTypeCode/Alias_TypeCode_Static.cpp6
-rw-r--r--TAO/tao/AnyTypeCode/Any.cpp6
-rw-r--r--TAO/tao/AnyTypeCode/Any_Basic_Impl.cpp3
-rw-r--r--TAO/tao/AnyTypeCode/Any_Impl_T.cpp2
-rw-r--r--TAO/tao/AnyTypeCode/Any_Special_Impl_T.cpp6
-rw-r--r--TAO/tao/AnyTypeCode/Objref_TypeCode.cpp3
-rw-r--r--TAO/tao/AnyTypeCode/Objref_TypeCode.h9
-rw-r--r--TAO/tao/AnyTypeCode/Objref_TypeCode_Static.cpp6
-rw-r--r--TAO/tao/AnyTypeCode/Sequence_TypeCode_Static.h12
-rw-r--r--TAO/tao/AnyTypeCode/String_TypeCode.h9
-rw-r--r--TAO/tao/AnyTypeCode/String_TypeCode_Static.h9
-rw-r--r--TAO/tao/AnyTypeCode/Struct_TypeCode_Static.h15
-rw-r--r--TAO/tao/AnyTypeCode/Union_TypeCode.h18
-rw-r--r--TAO/tao/Any_Insert_Policy_T.h6
-rw-r--r--TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp3
-rw-r--r--TAO/tao/Cache_Entries_T.h2
-rw-r--r--TAO/tao/Codeset/Codeset_Manager_i.cpp6
-rw-r--r--TAO/tao/GIOP_Message_Base.cpp4
-rw-r--r--TAO/tao/LocateRequest_Invocation.cpp2
-rw-r--r--TAO/tao/Messaging/AMH_Response_Handler.h9
-rw-r--r--TAO/tao/Monitor/Monitor.cpp4
-rw-r--r--TAO/tao/ORBInitializer_Registry.cpp3
-rw-r--r--TAO/tao/ORB_Core.cpp33
-rw-r--r--TAO/tao/ObjRefTemplate/ORT_Adapter_Factory_Impl.h2
-rw-r--r--TAO/tao/ObjRefTemplate/ORT_Adapter_Impl.h2
-rw-r--r--TAO/tao/PI/ORBInitInfo.cpp3
-rw-r--r--TAO/tao/PortableServer/LifespanStrategyPersistent.cpp4
-rw-r--r--TAO/tao/PortableServer/POA.pidl4
-rw-r--r--TAO/tao/PortableServer/Root_POA.cpp90
-rw-r--r--TAO/tao/PortableServer/Root_POA.h7
-rw-r--r--TAO/tao/RTCORBA/RT_ORBInitializer.cpp3
-rw-r--r--TAO/tao/RTScheduling/Request_Interceptor.cpp2
-rw-r--r--TAO/tao/TAO_Internal.cpp3
-rw-r--r--TAO/tao/Transport.cpp7
-rw-r--r--TAO/tao/Transport.h12
-rw-r--r--TAO/tao/Transport.inl11
-rw-r--r--TAO/tao/Transport_Cache_Manager_T.cpp4
-rw-r--r--TAO/tao/Transport_Connector.cpp5
-rw-r--r--TAO/tao/Utils/PolicyList_Destroyer.cpp22
-rw-r--r--TAO/tao/Version.h4
-rw-r--r--TAO/tao/params.cpp4
-rw-r--r--TAO/tests/Bug_4082_Regression/Bug_4082_Regression.cpp35
-rw-r--r--TAO/tests/Bug_4082_Regression/Bug_4082_Regression.idl4
-rw-r--r--TAO/tests/Bug_4082_Regression/Bug_4082_Regression.mpc3
-rwxr-xr-xTAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl2
-rw-r--r--TAO/tests/IDL_Test/IDL_Test.mpc10
-rw-r--r--TAO/tests/IDL_Test/PEMNaming.idl61
-rw-r--r--TAO/tests/IDL_Test/loader_const.idl20
-rw-r--r--TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp3
-rw-r--r--TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp9
-rw-r--r--TAO/tests/TransportCurrent/Framework/simple.cpp3
-rw-r--r--TAO/utils/catior/catior.mpc5
-rw-r--r--TAO/utils/nslist/nsadd.cpp1
-rw-r--r--TAO/utils/nslist/nslist.mpc4
362 files changed, 4823 insertions, 32796 deletions
diff --git a/ACE/COPYING b/ACE/COPYING
index 226708461b9..8038408462b 100644
--- a/ACE/COPYING
+++ b/ACE/COPYING
@@ -8,7 +8,7 @@
(henceforth referred to as "DOC software") are copyrighted by
[5]Douglas C. Schmidt and his [6]research group at [7]Washington
University, [8]University of California, Irvine, and [9]Vanderbilt
- University, Copyright (c) 1993-2012, all rights reserved. Since DOC
+ University, Copyright (c) 1993-2013, all rights reserved. Since DOC
software is open-source, freely available software, you are free to
use, modify, copy, and distribute--perpetually and irrevocably--the
DOC software source code and object code produced from the source, as
diff --git a/ACE/ChangeLog b/ACE/ChangeLog
index 332700bbbc9..17abc81c3f8 100644
--- a/ACE/ChangeLog
+++ b/ACE/ChangeLog
@@ -1,3 +1,676 @@
+Tue Jan 22 12:28:19 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/CDR_Size.h:
+ Doxygen changs
+
+ * tests/FlReactor_Test.cpp:
+ Unicode fixes
+
+Mon Jan 21 08:24:11 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/index.shtml:
+ Corrected link
+
+Thu Jan 17 12:25:40 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/debian.control:
+ Fixed depencency on libssl-dev, thanks to Michael Ganz
+ <michael_ganz at t-online dot de> for reporting this
+
+Thu Jan 17 12:23:42 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Sig_Handler.cpp:
+ Layout changes
+
+ * docs/bczar/bczar.html:
+ Updated packages
+
+ * html/Stats/index.shtml:
+ Added another page
+
+Fri Jan 4 21:52:14 UTC 2013 Adam Mitz <mitza@ociweb.com>
+
+ * include/makeinclude/platform_linux_clang.GNU:
+
+ Added clang command-line option required to build TAO.
+
+Fri Jan 4 12:11:12 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosevent:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-costrading:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-rtevent:
+ Add $network to Required-Start line, thanks to John Fletcher
+ <john dot fletcher at rd dot bbc dot co dot uk> for reporting
+ this.
+
+Thu Jan 3 22:53:44 UTC 2013 Steve Huston <shuston@riverace.com>
+
+ * ace/OS_NS_netdb.cpp (ACE_OS::getmacaddress): On Linux, search for
+ an interface to get the MAC address for; don't assume eth0 is
+ present and usable.
+
+ * tests/Bug_3744_Regression_Test.cpp: Fix ACE_LOG_MSG output.
+
+Wed Jan 2 19:19:58 UTC 2013 Thomas Girard <thomas.g.girard@free.fr>
+
+ * ace/Service_Config.h: ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE
+ fix when ACE_VERSIONED_SO=2. Because of '.' in the version,
+ addition of prefix ACE_DLL_PREDIX and suffix ACE_DLL_SUFFIX
+ is skipped, preventing ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE
+ from working when ACE+TAO is built with versioned_so=2.
+
+Thu Dec 27 09:18:39 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * docs/bczar/bczar.html:
+ * etc/index.html:
+ Updated in preparation of next release
+
+Thu Dec 27 10:00:49 CET 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 6.1.7 released.
+
+Fri Dec 21 09:22:41 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * protocols/tests/HTBP/Reactor_Tests/run_test.pl:
+ * protocols/tests/HTBP/Send_Large_Msg/run_test.pl:
+ * protocols/tests/HTBP/Send_Recv_Tests/run_test.pl:
+ * protocols/tests/HTBP/ping/run_test.pl:
+ Check return value of spawn, if it fails directly exit the
+ test run
+
+Wed Dec 19 14:46:24 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cegcc.GNU:
+ * include/makeinclude/platform_g++_common.GNU:
+ * include/makeinclude/platform_rtems.x_g++.GNU:
+ * include/makeinclude/platform_vxworks6.2.GNU:
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ Install tao_idl3_to_idl2 and tao_idl3_to_xmi into ACE_ROOT/bin
+ to handle cross compilation in a flat layout more easily, this
+ way we can use the same approach as tao_idl does
+
+Mon Dec 17 20:53:22 UTC 2012 Adam Mitz <mitza@ociweb.com>
+
+ * ace/Message_Queue_Vx.inl:
+
+ Updated for VxWorks 6.9 32-bit kernel mode.
+
+Mon Dec 17 18:26:27 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Acceptor.cpp:
+ Fixed warning
+
+Mon Dec 17 13:40:00 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
+
+ * ace/SOCK_Dgram.cpp: ACE_SOCK_Dgram::make_multicast_ifaddr ()
+ Uncovered due to TAO UIPMC option -ORBListenOnAll 1 being
+ enabled. The SOCK_Dgram_Mcast.cpp ACE_SOCK_Dgram_Mcast::subscribe_ifs()
+ call iterates through the list of IP addresses for all interfaces
+ NOT the list of Interface Names. This works only for windows and newer
+ linuxes (where they are automatically converted into interface names).
+ Older linuxes do not and expect the actual interface names (eg. "Eth0")
+ to be given. This fix allows both forms to be given on older linuxes as well.
+ (Test TAO/orbscvc/tests/Miop/McastHello updated to enable -ORBListenOnAll 1.)
+
+Mon Dec 17 09:59:45 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.inl:
+ * ace/OS_NS_sys_shm.cpp:
+ * ace/OS_NS_sys_socket.cpp:
+ * ace/OS_NS_sys_stat.cpp:
+ * ace/OS_NS_sys_uio.cpp:
+ Zapped empty lines
+
+Mon Dec 17 09:31:49 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Acceptor.cpp:
+ Fixed one-shot acceptor, could call null ptr
+
+ * ace/Throughput_Stats.cpp:
+ Simplified code
+
+ * protocols/tests/RMCast/Receiver.cpp:
+ Fixed incorrect argument to memcpy
+
+Fri Dec 14 19:36:20 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/bczar/bczar.html:
+ Added patch
+
+Sun Dec 9 14:38:27 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/POSIX_Proactor.cpp:
+ * ace/Parse_Node.cpp:
+ * ace/SV_Message_Queue.inl:
+ * ace/SV_Message_Queue.cpp:
+ Fixed coverity errors
+
+Fri Dec 7 20:14:27 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Improved support for gcov=1
+
+Fri Dec 7 13:06:07 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Strategies_T.cpp:
+ Check return value of enable (ACE_NONBLOCK), fixes Coverity
+ reported errors
+
+Thu Nov 29 15:08:26 UTC 2012 Steve Huston <shuston@riverace.com>
+
+ * ace/ACE.cpp (handle_timed_complete): Adapt to an occasionally seen
+ scenario where only the POLLERR bit is set on a failed connect.
+ This is for the poll() case, not select().
+
+Thu Nov 29 10:31:05 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/CDR_Stream.cpp:
+ Removed another occurance of arm handling here, gets handled
+ at a lower layer already
+
+Thu Nov 29 10:10:56 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Service_Config.h:
+ Fixed compile errors in xml builds
+
+Thu Nov 29 08:49:39 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/CDR_Stream.cpp:
+ Removed arm handling here, gets handled at a lower layer
+ already
+
+Wed Nov 28 09:34:00 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/libace-dev.install:
+ rle has no install files
+
+Wed Nov 28 08:55:49 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/ace.dsc:
+ * debian/debian.changelog:
+ * debian/debian.compat:
+ * debian/debian.control:
+ * debian/debian.rules:
+ * debian/libace-6.1.6.install:
+ * debian/libace-dev.install:
+ * debian/libtao-dev.install:
+ Added rle compressor and added files as currently work
+ on OBS
+
+Wed Nov 28 07:35:14 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/debian.control:
+ * debian/ace-netsvcs.doc-base:
+ * debian/ace-netsvcs.docs:
+ * debian/ace-netsvcs.install:
+ * debian/ace-netsvcs.manpages:
+ * debian/libnetsvcs-6.1.6.docs:
+ * debian/libnetsvcs-6.1.6.install:
+ * debian/libnetsvcs-dev.docs:
+ * debian/libnetsvcs-dev.install:
+ * debian/mwc_workspace.txt:
+ Don't package netsvcs
+
+Tue Nov 27 14:41:19 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/ace-netsvcs.manpages:
+ * debian/tao-idl.manpages:
+ * debian/tao-log.manpages:
+ * debian/tao-tls.manpages:
+ * debian/tao-utils.manpages:
+ No manpage for the moment
+
+Tue Nov 27 14:10:46 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/mpc-ace.manpages:
+ No manpage for the moment
+
+Tue Nov 27 12:43:06 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/tao-log.docs:
+ Debian package improvements
+
+Tue Nov 27 11:53:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/tao-trading.docs:
+ Debian package improvements
+
+Tue Nov 27 11:23:41 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/tao-naming.docs:
+ * debian/tao-notify.docs:
+ Debian package improvements
+
+Tue Nov 27 10:26:32 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/tao-utils.docs:
+ Don't install test
+
+Mon Nov 26 12:37:04 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/mwc_workspace.txt:
+ Added netsvcs/servers
+
+Sun Nov 25 20:08:55 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/rules.local.GNU:
+ Fixex AIX errors
+
+Sun Nov 25 20:05:25 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/mwc_workspace.txt:
+ * debian/TAO_ACE.mwc:
+ Renamed to .txt, resolves problems on windows builds
+
+Fri Nov 23 19:28:35 UTC 2012 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * THANKS:
+
+ Added Sergey Onuchin <sonuchin at parallels dot com>.
+
+Fri Nov 23 16:49:35 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/tao-imr.docs:
+ * debian/tao-log.docs:
+ * debian/tao-notify.docs:
+ * debian/tao-trading.docs:
+ Updated README locations
+
+Fri Nov 23 15:26:38 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/tao-concurrency.docs:
+ * debian/tao-cosconcurrency.docs:
+ * debian/tao-cosevent.docs:
+ * debian/tao-cosnotification.docs:
+ * debian/tao-costime.docs:
+ * debian/tao-costrading.docs:
+ * debian/tao-event.docs:
+ * debian/tao-ft.docs:
+ * debian/tao-ifr.docs:
+ * debian/tao-imr.docs:
+ * debian/tao-load.docs:
+ * debian/tao-log.docs:
+ * debian/tao-naming.docs:
+ * debian/tao-notify.docs:
+ * debian/tao-time.docs:
+ * debian/tao-tls.docs:
+ * debian/tao-utils.docs:
+ We are going to install the README files also
+
+Fri Nov 23 14:21:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/tao-cosnaming.docs:
+ Updated path
+
+Fri Nov 23 12:58:40 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/libtao-doc.docs:
+ Install fix
+
+Fri Nov 23 12:33:16 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/rules.lib.GNU:
+ Fix for AIX
+
+Fri Nov 23 12:28:20 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Service_Config.h:
+ msvc fix
+
+Fri Nov 23 12:19:09 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/libace-dev.docs:
+ * debian/libace-doc.docs:
+ * debian/libnetsvcs-6.1.6.docs:
+ * debian/libnetsvcs-6.1.6.install:
+ * debian/libtao-2.1.6.docs:
+ * debian/libtao-dev.docs:
+ * debian/libnetsvcs-6.1.2.docs:
+ * debian/libnetsvcs-6.1.2.install:
+ Doc install fixes
+
+Fri Nov 23 09:51:01 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/README.source:
+ Removed comment of patch that got integrated
+
+ * debian/libtao-2.1.6.install:
+ * debian/libtao-dev.install:
+ Added missing libraries
+
+Fri Nov 23 09:39:17 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/TAO_ACE.mwc:
+ * debian/libace-6.1.6.docs:
+ * debian/libace-dev.docs:
+ * debian/libace-dev.install:
+ * debian/libace-doc.docs:
+ * debian/libtao-2.1.6.docs:
+ * debian/libtao-dev.docs:
+ * debian/libtao-doc.docs:
+ More install fixes
+
+Fri Nov 23 08:07:23 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ETCL/ETCL_Constraint.inl:
+ Fixed coverity error by initializing pointer value
+
+ * ace/Message_Queue.h:
+ * ace/Timer_Queue_Iterator.h:
+ Doxygen improvements
+
+ * ace/Timer_Queue_Iterator.cpp:
+ Initialize all members in default constructor
+
+Thu Nov 22 13:31:20 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/tao-log.install:
+ Fixed executable name
+
+Thu Nov 22 12:56:20 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/ACE-DPKG.mwc:
+ * debian/TAO-DPKG.mwc:
+ Removed these files.
+
+Thu Nov 22 12:55:05 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/default.features:
+ * debian/libtao-2.1.6.install:
+ * debian/libtao-dev.install:
+ * debian/platform_macros.GNU:
+ Remove lzo1 compressor
+
+Thu Nov 22 12:38:34 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Service_Config.h:
+ Added new ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE which accepts
+ an explicit version to be loaded. Needed for debian for example
+
+ * debian/patches/series:
+ * debian/patches/15-fix-lzo-flags.diff:
+ * debian/patches/34-bts386713.diff:
+ Cleanup
+
+ * debian/platform_macros.GNU:
+ Set versioned_so=2
+
+ * include/makeinclude/platform_g++_common.GNU:
+ When versioned_so=2 add ACE_VERSIONED_SO=2 as
+ define
+
+Thu Nov 22 09:20:46 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ * include/makeinclude/rules.lib.GNU:
+ * include/makeinclude/rules.local.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+ Added support for versioned_so=2, that will create
+ for example libACE-6.1.6.so instead of libACE.so.6.1.6
+
+ * debian/patches/20-versioned_libs.diff:
+ Removed this file.
+
+Wed Nov 21 10:18:22 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/libace-xml-utils-6.1.6.install:
+ * debian/libace-xml-utils-dev.install:
+ New files
+
+ * debian/platform_macros.GNU.in:
+ Removed this file.
+
+Tue Nov 20 23:55:57 UTC 2012 Steve Huston <shuston@riverace.com>
+
+ * ace/config-hpux-11.00.h:
+ * ace/OS_NS_netdb.inl: Although HP-UX 11 doesn't have the _r
+ netdb calls, the regular ones are reentrant for multiple threads.
+ Therefore, do not use the mutex-acquiring wrapper for HP-UX 11.
+
+Tue Nov 20 19:10:38 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/XML_Utils/ACE_XML_Utils.pc.in:
+ * ace/XML_Utils/XML.mpc:
+ Added missing pc.in file for ACE_XML_Utils
+
+Tue Nov 13 18:17:24 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/run_test.lst:
+ Bug_4055_Regression_Test needs threads
+
+Tue Nov 13 13:29:28 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Condition_Attributes.h:
+ * ace/Condition_Attributes.inl:
+ * ace/Condition_Attributes.cpp:
+ Now also needed in single threaded builds
+
+Mon Nov 12 19:26:41 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Malloc.cpp:
+ * ace/Naming_Context.h:
+ * ace/Naming_Context.cpp:
+ * ace/Read_Buffer.cpp:
+ * ace/Recursive_Thread_Mutex.cpp:
+ * ace/SV_Semaphore_Simple.cpp:
+ Coverity fixes
+
+Mon Nov 12 17:21:25 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.inl:
+ Fixed win32 compile errors
+
+Mon Nov 12 13:34:35 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Sig_Adapter.cpp:
+ Fixed coverity errors
+
+ * ace/Signal.h:
+ Doxygen change
+
+Mon Nov 12 12:19:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.inl:
+ Fixed missing ACE_INLINE
+
+Mon Nov 12 10:45:51 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.h:
+ * ace/OS_NS_Thread.inl:
+ Added constructor for ACE_event_t to initialize pointers
+ explicitly to 0, fixes coverity #743165
+
+ * tests/Bug_4055_Regression_Test.cpp:
+ Check return value of clock_settime, fixes coverity #743164
+
+Mon Nov 12 10:06:57 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * docs/bczar/bczar.html:
+ * etc/index.html:
+ Updated for next release
+
+Mon Nov 12 09:34:14 CET 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 6.1.6 released.
+
+Sun Nov 11 14:26:17 UTC 2012 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Monotonic_Manual_Event_Test.cpp:
+ * tests/Monotonic_Message_Queue_Test.cpp:
+ * tests/Monotonic_Task_Test.cpp:
+ Further narrowing of preprocessor test to prevent running
+ test on unsupported platforms.
+
+Sat Nov 10 11:35:57 UTC 2012 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Monotonic_Manual_Event_Test.cpp:
+ * tests/Monotonic_Message_Queue_Test.cpp:
+ * tests/Monotonic_Task_Test.cpp:
+ Further narrowing of preprocessor test to prevent running
+ test on unsupported platforms.
+ Small logging changes.
+
+Fri Nov 9 10:29:37 UTC 2012 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Monotonic_Manual_Event_Test.cpp:
+ * tests/Monotonic_Message_Queue_Test.cpp:
+ * tests/Monotonic_Task_Test.cpp:
+ Narrowing down the selection test for supported platforms.
+
+Fri Nov 9 08:28:23 UTC 2012 Martin Corino <mcorino@remedy.nl>
+
+ * ace/OS_NS_Thread.inl:
+ Fixed compile error resulting from previous change.
+
+Wed Nov 7 19:16:47 UTC 2012 Martin Corino <mcorino@remedy.nl>
+
+ * ace/OS_NS_Thread.inl:
+ Fix for unused arg warnings.
+
+Wed Nov 7 13:51:14 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SSL/SSL_Context.h:
+ * ace/SSL/SSL_Context.cpp:
+ * protocols/ace/INet/HTTP_Simple_exec.cpp:
+ Resolve compile problems with OpenSSL on recent debian/ubuntu
+ versions which don't ship SSLv2 anymore
+
+ * debian/patches/series:
+ * debian/patches/35_disable_sslv2.diff:
+ Patch is not needed anymore
+
+Sat Oct 20 14:13:07 UTC 2012 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Timer_Hash_T.h: Added a forward declaration of
+ ACE_Event_Handler to ensure ACE compiles properly on certain
+ platforms. Thanks to Peng Xu <pengxu7 at gmail dot com> for
+ reporting this.
+
+Tue Nov 6 18:59:48 UTC 2012 Martin Corino <mcorino@remedy.nl>
+
+ * ace/ace_for_tao.mpc:
+ Reflect fact that Event classes are now templates.
+ Added new Event base class.
+
+Tue Nov 6 14:44:38 UTC 2012 Steve Huston <shuston@riverace.com>
+
+ * ace/OS_NS_Thread.cpp (ACE_TSS_Cleanup::thread_detach_key): If
+ given a key which was never set, ignore it. Only throw an assertion
+ if the key's table slot is used but does not match the key asked
+ to free. The never-set case happens if a ACE_TSS object fails
+ when setting its value; the later cleanup would cause an assert.
+
+Tue Nov 6 13:34:20 UTC 2012 Martin Corino <mcorino@remedy.nl>
+
+ * NEWS:
+ Updated for new time policy support for ACE Events.
+
+Tue Nov 6 11:46:45 UTC 2012 Martin Corino <mcorino@remedy.nl>
+
+ * bin/fuzz.pl:
+ Fixed missing 'next;' in check_for_ACE_Thread_Mutex()
+ fuzzer.
+
+Tue Nov 6 11:42:26 UTC 2012 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Monotonic_Manual_Event_Test.cpp:
+ Fixed file comment.
+
+Tue Nov 6 10:55:47 UTC 2012 Martin Corino <mcorino@remedy.nl>
+
+ * ace/OS_NS_Thread.h:
+ * ace/OS_NS_Thread.inl:
+ * ace/OS_NS_Thread.cpp:
+ Extended OS wrappers for event and sema with
+ variants excepting condition attributes.
+
+ * ace/Event_Base.h:
+ * ace/Event_Base.inl:
+ * ace/Event_Base.cpp:
+ Added non-template base class for events.
+
+ * ace/Auto_Event.h:
+ * ace/Auto_Event.inl:
+ * ace/Auto_Event.cpp:
+ * ace/Event.h:
+ * ace/Event.inl:
+ * ace/Event.cpp:
+ * ace/Manual_Event.h:
+ * ace/Manual_Event.inl:
+ * ace/Manual_Event.cpp:
+ Refactored into TIME_POLICY based templates.
+ Added inlined derived classes of default
+ template instantiations to satisfy old code.
+
+ * ace/ace.mpc:
+ Reflect fact that Event classes are now templates.
+ Added new Event base class.
+
+ * docs/ACE-monotonic-timer.html:
+ Added documentation concerning Event changes.
+
+ * tests/Manual_Event_Test.cpp:
+ Removed dead code.
+
+ * tests/Monotonic_Manual_Event_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Added new regression test for time policy
+ support of events.
+
+Tue Oct 30 07:48:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao.spec:
+ Fixes for OpenSuSE 12.2
+
+Sat Oct 27 18:59:36 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/TSS_T.inl:
+ Use the word error in the ACE_ERROR messages in this file
+
+Tue Oct 23 20:09:07 UTC 2012 Abdullah Sowayan <sowayan@gmail.com>
+
+ * ace/config-macosx-mountain-lion.h:
+ * include/makeinclude/platform_macosx_mountain_lion.GNU:
+
+ Adding Mountain Lion support
+
+Fri Oct 12 10:50:28 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * docs/bczar/bczar.html:
+ * etc/index.html:
+ Updated for x.1.5
+
+Fri Oct 12 11:20:25 CEST 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 6.1.5 released.
+
+Wed Oct 10 22:45:23 UTC 2012 Steve Huston <shuston@riverace.com>
+
+ * ace/Reactor.h: Corrected the comments concerning removal of
+ signal handler registrations - they DO call handle_close() now.
+
+ * tests/Network_Adapters_Test.{cpp, h}: Corrected the call to remove
+ signal handlers and added a check in Stop_Handler::handle_close()
+ to ignore calls as a result of removing a signal handler.
+
+Wed Oct 10 18:47:12 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/bczar/bczar.html:
+ Package updates
+
Mon Oct 8 13:27:58 UTC 2012 Steve Huston <shuston@riverace.com>
* ace/Sig_Handler.{cpp, inl}: Reverted change from:
diff --git a/ACE/NEWS b/ACE/NEWS
index c6b2c2b7dad..a332e899300 100644
--- a/ACE/NEWS
+++ b/ACE/NEWS
@@ -1,3 +1,25 @@
+USER VISIBLE CHANGES BETWEEN ACE-6.1.7 and ACE-6.1.8
+====================================================
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.6 and ACE-6.1.7
+====================================================
+
+. Integrated several patches to simplify Debian/Ubuntu
+ packaging
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.5 and ACE-6.1.6
+====================================================
+
+. Added new event and sema initialization methods to OS_NS_Thread
+ to allow passing pre-initialized condition attributes providing
+ basic support for using time policies in ACE Event classes.
+
+. Added TIME_POLICY support to ACE_Event classes to allow for
+ monotonic timer support for ACE Events.
+
+. Added new regression test:
+ Monotonic_Manual_Event_Test
+
USER VISIBLE CHANGES BETWEEN ACE-6.1.4 and ACE-6.1.5
====================================================
diff --git a/ACE/PROBLEM-REPORT-FORM b/ACE/PROBLEM-REPORT-FORM
index 5442db735b5..62fb06db0fb 100644
--- a/ACE/PROBLEM-REPORT-FORM
+++ b/ACE/PROBLEM-REPORT-FORM
@@ -40,7 +40,7 @@
To: ace-bugs@list.isis.vanderbilt.edu
Subject: [area]: [synopsis]
- ACE VERSION: 6.1.4
+ ACE VERSION: 6.1.7
HOST MACHINE and OPERATING SYSTEM:
If on Windows based OS's, which version of WINSOCK do you
diff --git a/ACE/THANKS b/ACE/THANKS
index a420f5a9cbe..d66fc9835b7 100644
--- a/ACE/THANKS
+++ b/ACE/THANKS
@@ -2370,6 +2370,9 @@ Mohsin Zaidi <mohsinrzaidi at gmail dot com>
Milind Pangarkar <Milind dot Pangarkar at amdocs dot com>
Ali Akbar Zarezadeh <akzare at cs dot uni-potsdam dot de>
Andrés Senac González <andres at senac dot es>
+Peng Xu <pengxu7 at gmail dot com>
+Sergey Onuchin <sonuchin at parallels dot com>
+Michael Ganz <michael_ganz at t-online dot de>
I would particularly like to thank Paul Stephenson, who worked with me
at Ericsson in the early 1990's. Paul devised the recursive Makefile
diff --git a/ACE/VERSION b/ACE/VERSION
index 144300e4267..e21d14264a3 100644
--- a/ACE/VERSION
+++ b/ACE/VERSION
@@ -1,4 +1,4 @@
-This is ACE version 6.1.4, released Wed Aug 29 08:16:04 CEST 2012
+This is ACE version 6.1.7, released Thu Dec 27 10:00:49 CET 2012
If you have any problems with or questions about ACE, please send
e-mail to the ACE mailing list (ace-bugs@list.isis.vanderbilt.edu),
diff --git a/ACE/ace/ACE.cpp b/ACE/ace/ACE.cpp
index ee52c700827..67b510e9084 100644
--- a/ACE/ace/ACE.cpp
+++ b/ACE/ace/ACE.cpp
@@ -2548,7 +2548,13 @@ ACE::handle_timed_complete (ACE_HANDLE h,
else
# if defined (ACE_HAS_POLL)
- need_to_check = (fds.revents & POLLIN);
+ {
+ // The "official" bit for failed connect is POLLIN. However, POLLERR
+ // is often set and there are occasional cases seen with some kernels
+ // where only POLLERR is set on a failed connect.
+ need_to_check = (fds.revents & POLLIN) || (fds.revents & POLLERR);
+ known_failure = (fds.revents & POLLERR);
+ }
# else
need_to_check = true;
# endif /* ACE_HAS_POLL */
diff --git a/ACE/ace/Acceptor.cpp b/ACE/ace/Acceptor.cpp
index f78c74882b8..d2752b39703 100644
--- a/ACE/ace/Acceptor.cpp
+++ b/ACE/ace/Acceptor.cpp
@@ -288,7 +288,9 @@ ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::accept_svc_handler
bool reset_new_handle;
if (reactor)
- reset_new_handle = reactor->uses_event_associations ();
+ {
+ reset_new_handle = reactor->uses_event_associations ();
+ }
else
{
// Acceptor is closed, so reject this call
@@ -1142,16 +1144,20 @@ ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input (ACE_HANDLE
// created handle. This is because the newly created handle will
// inherit the properties of the listen handle, including its event
// associations.
- bool const reset_new_handle = this->reactor ()->uses_event_associations ();
+ ACE_Reactor *reactor = this->reactor ();
+ bool reset_new_handle = false;
// There is a use-case whereby this object will be gone upon return
// from shared_accept - if the Svc_Handler deletes this Oneshot_Acceptor
// during the shared_accept/activation steps. So, do whatever we need
// to do with this object before calling shared_accept.
- if (this->reactor ())
- this->reactor ()->remove_handler
- (this,
- ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL);
+ if (reactor)
+ {
+ reset_new_handle = reactor->uses_event_associations ();
+ reactor->remove_handler
+ (this,
+ ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL);
+ }
if (this->shared_accept (this->svc_handler_, // stream
0, // remote address
diff --git a/ACE/ace/Auto_Event.cpp b/ACE/ace/Auto_Event.cpp
index 595e57142aa..1e517696bc8 100644
--- a/ACE/ace/Auto_Event.cpp
+++ b/ACE/ace/Auto_Event.cpp
@@ -8,37 +8,42 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-ACE_Auto_Event::ACE_Auto_Event (int initial_state,
- int type,
- const char *name,
- void *arg)
- : ACE_Event (0,
- initial_state,
- type,
- ACE_TEXT_CHAR_TO_TCHAR (name),
- arg)
+template <class TIME_POLICY>
+ACE_Auto_Event_T<TIME_POLICY>::ACE_Auto_Event_T (
+ int initial_state,
+ int type,
+ const char *name,
+ void *arg)
+ : ACE_Event_T<TIME_POLICY> (0,
+ initial_state,
+ type,
+ ACE_TEXT_CHAR_TO_TCHAR (name),
+ arg)
{
}
#if defined (ACE_HAS_WCHAR)
-ACE_Auto_Event::ACE_Auto_Event (int initial_state,
- int type,
- const wchar_t *name,
- void *arg)
- : ACE_Event (0,
- initial_state,
- type,
- ACE_TEXT_WCHAR_TO_TCHAR (name),
- arg)
+template <class TIME_POLICY>
+ACE_Auto_Event_T<TIME_POLICY>::ACE_Auto_Event_T (
+ int initial_state,
+ int type,
+ const wchar_t *name,
+ void *arg)
+ : ACE_Event_T<TIME_POLICY> (0,
+ initial_state,
+ type,
+ ACE_TEXT_WCHAR_TO_TCHAR (name),
+ arg)
{
}
#endif /* ACE_HAS_WCHAR */
+template <class TIME_POLICY>
void
-ACE_Auto_Event::dump (void) const
+ACE_Auto_Event_T<TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_Event::dump ();
+ ACE_Event_T<TIME_POLICY>::dump ();
#endif /* ACE_HAS_DUMP */
}
diff --git a/ACE/ace/Auto_Event.h b/ACE/ace/Auto_Event.h
index 64bc69e6d27..3cf0aaf889d 100644
--- a/ACE/ace/Auto_Event.h
+++ b/ACE/ace/Auto_Event.h
@@ -36,25 +36,26 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* support. However, only Win32 platforms support global naming and
* system-scope locking support.
*/
-class ACE_Export ACE_Auto_Event : public ACE_Event
+template <class TIME_POLICY = ACE_System_Time_Policy>
+class ACE_Auto_Event_T : public ACE_Event_T<TIME_POLICY>
{
public:
/// Constructor which will create auto event
- ACE_Auto_Event (int initial_state = 0,
- int type = USYNC_THREAD,
- const char *name = 0,
- void *arg = 0);
+ ACE_Auto_Event_T (int initial_state = 0,
+ int type = USYNC_THREAD,
+ const char *name = 0,
+ void *arg = 0);
#if defined (ACE_HAS_WCHAR)
/// Constructor which will create auto event (wchar_t version)
- ACE_Auto_Event (int initial_state,
- int type,
- const wchar_t *name,
- void *arg = 0);
+ ACE_Auto_Event_T (int initial_state,
+ int type,
+ const wchar_t *name,
+ void *arg = 0);
#endif /* ACE_HAS_WCHAR */
/// Default dtor.
- ~ACE_Auto_Event (void);
+ virtual ~ACE_Auto_Event_T (void);
/// Dump the state of an object.
void dump (void) const;
@@ -63,11 +64,45 @@ public:
ACE_ALLOC_HOOK_DECLARE;
};
+class ACE_Auto_Event :
+ public ACE_Auto_Event_T<ACE_System_Time_Policy>
+{
+public:
+ /// Constructor which will create auto event
+ ACE_Auto_Event (int initial_state = 0,
+ int type = USYNC_THREAD,
+ const char *name = 0,
+ void *arg = 0)
+ : ACE_Auto_Event_T<ACE_System_Time_Policy> (initial_state, type, name, arg)
+ {}
+
+#if defined (ACE_HAS_WCHAR)
+ /// Constructor which will create auto event (wchar_t version)
+ ACE_Auto_Event (int initial_state,
+ int type,
+ const wchar_t *name,
+ void *arg = 0)
+ : ACE_Auto_Event_T<ACE_System_Time_Policy> (initial_state, type, name, arg)
+ {}
+#endif /* ACE_HAS_WCHAR */
+
+ /// Default dtor.
+ virtual ~ACE_Auto_Event (void) {}
+};
+
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
#include "ace/Auto_Event.inl"
#endif /* __ACE_INLINE__ */
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Auto_Event.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Auto_Event.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
#include /**/ "ace/post.h"
#endif /* ACE_AUTO_EVENT_H */
diff --git a/ACE/ace/Auto_Event.inl b/ACE/ace/Auto_Event.inl
index 80048c29b99..8f7d769dcfd 100644
--- a/ACE/ace/Auto_Event.inl
+++ b/ACE/ace/Auto_Event.inl
@@ -4,8 +4,9 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+template <class TIME_POLICY>
ACE_INLINE
-ACE_Auto_Event::~ACE_Auto_Event (void)
+ACE_Auto_Event_T<TIME_POLICY>::~ACE_Auto_Event_T (void)
{
}
diff --git a/ACE/ace/CDR_Size.h b/ACE/ace/CDR_Size.h
index 7ee009e0fdd..184be24e2ed 100644
--- a/ACE/ace/CDR_Size.h
+++ b/ACE/ace/CDR_Size.h
@@ -42,7 +42,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @class ACE_SizeCDR
*
* @brief A CDR stream for calculating size of the representation.
- *
*/
class ACE_Export ACE_SizeCDR
{
@@ -54,15 +53,12 @@ public:
/// Returns @c false if an error has ocurred.
bool good_bit (void) const;
-
/// Reset current size.
void reset (void);
-
/// Return current size.
size_t total_length (void) const;
-
// Return 0 on failure and 1 on success.
//@{ @name Size-calculating pseudo-write operations
ACE_CDR::Boolean write_boolean (ACE_CDR::Boolean x);
diff --git a/ACE/ace/CDR_Stream.cpp b/ACE/ace/CDR_Stream.cpp
index 3dedd83cc33..2be7882c46c 100644
--- a/ACE/ace/CDR_Stream.cpp
+++ b/ACE/ace/CDR_Stream.cpp
@@ -531,22 +531,10 @@ ACE_OutputCDR::write_8 (const ACE_CDR::ULongLong *x)
if (this->adjust (ACE_CDR::LONGLONG_SIZE, buf) == 0)
{
-#if defined (__arm__) && !defined (ACE_HAS_IPHONE)
- // Convert to Intel format (12345678 => 56781234)
- const char *orig = reinterpret_cast<const char *> (x);
- char *target = buf;
- register ACE_UINT32 x =
- *reinterpret_cast<const ACE_UINT32 *> (orig);
- register ACE_UINT32 y =
- *reinterpret_cast<const ACE_UINT32 *> (orig + 4);
- *reinterpret_cast<ACE_UINT32 *> (target) = y;
- *reinterpret_cast<ACE_UINT32 *> (target + 4) = x;
- return true;
-#else
-# if !defined (ACE_ENABLE_SWAP_ON_WRITE)
+#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
*reinterpret_cast<ACE_CDR::ULongLong *> (buf) = *x;
return true;
-# else
+#else
if (!this->do_byte_swap_)
{
*reinterpret_cast<ACE_CDR::ULongLong *> (buf) = *x;
@@ -557,8 +545,7 @@ ACE_OutputCDR::write_8 (const ACE_CDR::ULongLong *x)
ACE_CDR::swap_8 (reinterpret_cast<const char*> (x), buf);
return true;
}
-# endif /* ACE_ENABLE_SWAP_ON_WRITE */
-#endif /* !__arm__ */
+#endif /* ACE_ENABLE_SWAP_ON_WRITE */
}
return false;
@@ -1839,39 +1826,10 @@ ACE_InputCDR::read_8 (ACE_CDR::ULongLong *x)
if (this->adjust (ACE_CDR::LONGLONG_SIZE, buf) == 0)
{
#if !defined (ACE_DISABLE_SWAP_ON_READ)
-# if defined (__arm__) && !defined (ACE_HAS_IPHONE)
- if (!this->do_byte_swap_)
- {
- // Convert from Intel format (12345678 => 56781234)
- const char *orig = buf;
- char *target = reinterpret_cast<char *> (x);
- register ACE_UINT32 x =
- *reinterpret_cast<const ACE_UINT32 *> (orig);
- register ACE_UINT32 y =
- *reinterpret_cast<const ACE_UINT32 *> (orig + 4);
- *reinterpret_cast<ACE_UINT32 *> (target) = y;
- *reinterpret_cast<ACE_UINT32 *> (target + 4) = x;
- }
- else
- {
- // Convert from Sparc format (12345678 => 43218765)
- const char *orig = buf;
- char *target = reinterpret_cast<char *> (x);
- register ACE_UINT32 x =
- *reinterpret_cast<const ACE_UINT32 *> (orig);
- register ACE_UINT32 y =
- *reinterpret_cast<const ACE_UINT32 *> (orig + 4);
- x = (x << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) | (x >> 24);
- y = (y << 24) | ((y & 0xff00) << 8) | ((y & 0xff0000) >> 8) | (y >> 24);
- *reinterpret_cast<ACE_UINT32 *> (target) = x;
- *reinterpret_cast<ACE_UINT32 *> (target + 4) = y;
- }
-# else
if (!this->do_byte_swap_)
*x = *reinterpret_cast<ACE_CDR::ULongLong *> (buf);
else
ACE_CDR::swap_8 (buf, reinterpret_cast<char *> (x));
-# endif /* !__arm__ */
#else
*x = *reinterpret_cast<ACE_CDR::ULongLong *> (buf);
#endif /* ACE_DISABLE_SWAP_ON_READ */
diff --git a/ACE/ace/Condition_Attributes.cpp b/ACE/ace/Condition_Attributes.cpp
index 45534e0a7c3..265a7432f41 100644
--- a/ACE/ace/Condition_Attributes.cpp
+++ b/ACE/ace/Condition_Attributes.cpp
@@ -12,10 +12,6 @@
#include "ace/Condition_Thread_Mutex.h"
#include "ace/Condition_Attributes.h"
-#if defined (ACE_HAS_THREADS)
-
#if !defined (__ACE_INLINE__)
#include "ace/Condition_Attributes.inl"
#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_THREADS */
diff --git a/ACE/ace/Condition_Attributes.h b/ACE/ace/Condition_Attributes.h
index fef2a52103e..11c37fbad49 100644
--- a/ACE/ace/Condition_Attributes.h
+++ b/ACE/ace/Condition_Attributes.h
@@ -24,10 +24,6 @@
#include "ace/OS_NS_Thread.h"
-#if defined (ACE_HAS_THREADS)
-
-// ACE platform supports some form of threading.
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_Condition_Attributes
@@ -95,7 +91,5 @@ ACE_END_VERSIONED_NAMESPACE_DECL
#include "ace/Condition_Attributes.inl"
#endif /* __ACE_INLINE__ */
-#endif /* !ACE_HAS_THREADS */
-
#include /**/ "ace/post.h"
#endif /* ACE_CONDITION_ATTRIBUTES_H */
diff --git a/ACE/ace/Condition_Attributes.inl b/ACE/ace/Condition_Attributes.inl
index be524f7c06a..48825e294d3 100644
--- a/ACE/ace/Condition_Attributes.inl
+++ b/ACE/ace/Condition_Attributes.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/ETCL/ETCL_Constraint.inl b/ACE/ace/ETCL/ETCL_Constraint.inl
index 914a0ef640f..99878b78f2f 100644
--- a/ACE/ace/ETCL/ETCL_Constraint.inl
+++ b/ACE/ace/ETCL/ETCL_Constraint.inl
@@ -309,6 +309,7 @@ ETCL_Binary_Expr::lhs (void) const
ACE_INLINE
ETCL_Preference::ETCL_Preference (void)
+ : subexpr_ (0)
{}
ACE_INLINE
diff --git a/ACE/ace/Event.cpp b/ACE/ace/Event.cpp
index 80a37043983..95ed88c0968 100644
--- a/ACE/ace/Event.cpp
+++ b/ACE/ace/Event.cpp
@@ -7,87 +7,36 @@
#endif /* __ACE_INLINE__ */
#include "ace/Log_Msg.h"
-
-
+#include "ace/Condition_Attributes.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-ACE_Event::ACE_Event (int manual_reset,
- int initial_state,
- int type,
- const ACE_TCHAR *name,
- void *arg,
- LPSECURITY_ATTRIBUTES sa)
- : removed_ (false)
+template <class TIME_POLICY>
+ACE_Event_T<TIME_POLICY>::ACE_Event_T (int manual_reset,
+ int initial_state,
+ int type,
+ const ACE_TCHAR *name,
+ void *arg,
+ LPSECURITY_ATTRIBUTES sa)
+ : ACE_Event_Base ()
{
+ ACE_Condition_Attributes_T<TIME_POLICY> cond_attr (type);
if (ACE_OS::event_init (&this->handle_,
+ type,
+ &const_cast<ACE_condattr_t&> (cond_attr.attributes ()),
manual_reset,
initial_state,
- type,
name,
arg,
sa) != 0)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Event::ACE_Event")));
-}
-
-ACE_Event::~ACE_Event (void)
-{
- this->remove ();
-}
-
-int
-ACE_Event::remove (void)
-{
- int result = 0;
- if (!this->removed_)
- {
- this->removed_ = true;
- result = ACE_OS::event_destroy (&this->handle_);
- }
- return result;
-}
-
-int
-ACE_Event::wait (void)
-{
- return ACE_OS::event_wait (&this->handle_);
-}
-
-int
-ACE_Event::wait (const ACE_Time_Value *abstime, int use_absolute_time)
-{
- return ACE_OS::event_timedwait (&this->handle_,
- const_cast <ACE_Time_Value *> (abstime),
- use_absolute_time);
-}
-
-int
-ACE_Event::signal (void)
-{
- return ACE_OS::event_signal (&this->handle_);
-}
-
-int
-ACE_Event::pulse (void)
-{
- return ACE_OS::event_pulse (&this->handle_);
-}
-
-int
-ACE_Event::reset (void)
-{
- return ACE_OS::event_reset (&this->handle_);
+ ACE_TEXT ("ACE_Event_T<TIME_POLICY>::ACE_Event_T")));
}
-void
-ACE_Event::dump (void) const
+template <class TIME_POLICY>
+ACE_Event_T<TIME_POLICY>::~ACE_Event_T (void)
{
-#if defined (ACE_HAS_DUMP)
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* ACE_HAS_DUMP */
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Event.h b/ACE/ace/Event.h
index 177c0039df1..de21752d334 100644
--- a/ACE/ace/Event.h
+++ b/ACE/ace/Event.h
@@ -22,12 +22,14 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "ace/OS_NS_Thread.h"
+#include "ace/Event_Base.h"
+#include "ace/Time_Policy.h"
+#include "ace/Time_Value_T.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
- * @class ACE_Event
+ * @class ACE_Event_T
*
* @brief A wrapper around the Win32 event locking mechanism.
*
@@ -36,108 +38,58 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* process-scope locking support. However, only Win32 platforms
* support global naming and system-scope locking support.
*/
-class ACE_Export ACE_Event
+template <class TIME_POLICY = ACE_System_Time_Policy>
+class ACE_Event_T : public ACE_Event_Base
{
public:
/// Constructor that creates event.
- ACE_Event (int manual_reset = 0,
- int initial_state = 0,
- int type = USYNC_THREAD,
- const ACE_TCHAR *name = 0,
- void *arg = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
+ ACE_Event_T (int manual_reset = 0,
+ int initial_state = 0,
+ int type = USYNC_THREAD,
+ const ACE_TCHAR *name = 0,
+ void *arg = 0,
+ LPSECURITY_ATTRIBUTES sa = 0);
/// Implicitly destroy the event variable.
- ~ACE_Event (void);
-
- /**
- * Explicitly destroy the event variable. Note that only one thread
- * should call this method since it doesn't protect against race
- * conditions.
- */
- int remove (void);
-
- /// Underlying handle to event.
- ACE_event_t handle (void) const;
-
- /**
- * Set the underlying handle to event. Note that this method assumes
- * ownership of the <handle> and will close it down in <remove>. If
- * you want the <handle> to stay open when <remove> is called make
- * sure to call <dup> on the <handle> before closing it. You are
- * responsible for the closing the existing <handle> before
- * overwriting it.
- */
- void handle (ACE_event_t new_handle);
-
- /**
- * if MANUAL reset
- * sleep till the event becomes signaled
- * event remains signaled after wait() completes.
- * else AUTO reset
- * sleep till the event becomes signaled
- * event resets wait() completes.
- */
- int wait (void);
-
- /// Same as wait() above, but this one can be timed
- /// @a abstime is absolute time-of-day if if @a use_absolute_time
- /// is non-0, else it is relative time.
- int wait (const ACE_Time_Value *abstime,
- int use_absolute_time = 1);
-
- /**
- * if MANUAL reset
- * wake up all waiting threads
- * set to signaled state
- * else AUTO reset
- * if no thread is waiting, set to signaled state
- * if thread(s) are waiting, wake up one waiting thread and
- * reset event
- */
- int signal (void);
-
- /**
- * if MANUAL reset
- * wakeup all waiting threads and
- * reset event
- * else AUTO reset
- * wakeup one waiting thread (if present) and
- * reset event
- */
- int pulse (void);
-
- /// Set to nonsignaled state.
- int reset (void);
-
- /// Dump the state of an object.
- void dump (void) const;
+ virtual ~ACE_Event_T (void);
+
+ /// Get the current time of day according to the queue's TIME_POLICY.
+ /// Allows users to initialize timeout values using correct time policy.
+ ACE_Time_Value_T<TIME_POLICY> gettimeofday (void) const;
+
+ /// Allows applications to control how the event gets the time
+ /// of day.
+ void set_time_policy (TIME_POLICY const & time_policy);
/// Declare the dynamic allocation hooks
ACE_ALLOC_HOOK_DECLARE;
protected:
- /// The underlying handle.
- ACE_event_t handle_;
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
- /// destructor. This flag isn't protected by a lock, so make sure
- /// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
- bool removed_;
+ /// The policy to return the current time of day
+ TIME_POLICY time_policy_;
private:
// = Prevent copying.
- ACE_Event (const ACE_Event& event);
- const ACE_Event &operator= (const ACE_Event &rhs);
+ ACE_Event_T (const ACE_Event_T<TIME_POLICY>& event);
+ const ACE_Event_T &operator= (const ACE_Event_T<TIME_POLICY> &rhs);
};
+typedef ACE_Event_T<ACE_System_Time_Policy> ACE_Event;
+
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
#include "ace/Event.inl"
#endif /* __ACE_INLINE__ */
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Event.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Event.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
#include /**/ "ace/post.h"
#endif /* ACE_EVENT_H */
diff --git a/ACE/ace/Event.inl b/ACE/ace/Event.inl
index 188d7c202cf..79cc3da2e5e 100644
--- a/ACE/ace/Event.inl
+++ b/ACE/ace/Event.inl
@@ -3,16 +3,18 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-ACE_INLINE ACE_event_t
-ACE_Event::handle (void) const
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY>
+ACE_Event_T<TIME_POLICY>::gettimeofday (void) const
{
- return this->handle_;
+ return this->time_policy_ ();
}
-ACE_INLINE void
-ACE_Event::handle (ACE_event_t new_handle)
+template <class TIME_POLICY>
+void
+ACE_Event_T<TIME_POLICY>::set_time_policy (TIME_POLICY const & rhs)
{
- this->handle_ = new_handle;
+ this->time_policy_ = rhs;
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Event_Base.cpp b/ACE/ace/Event_Base.cpp
new file mode 100644
index 00000000000..277427d46c2
--- /dev/null
+++ b/ACE/ace/Event_Base.cpp
@@ -0,0 +1,76 @@
+// $Id$
+
+#include "ace/Event_Base.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/Event_Base.inl"
+#endif /* __ACE_INLINE__ */
+
+#include "ace/Log_Msg.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_Event_Base::ACE_Event_Base ()
+ : removed_ (false)
+{
+}
+
+ACE_Event_Base::~ACE_Event_Base (void)
+{
+ this->remove ();
+}
+
+int
+ACE_Event_Base::remove (void)
+{
+ int result = 0;
+ if (!this->removed_)
+ {
+ this->removed_ = true;
+ result = ACE_OS::event_destroy (&this->handle_);
+ }
+ return result;
+}
+
+int
+ACE_Event_Base::wait (void)
+{
+ return ACE_OS::event_wait (&this->handle_);
+}
+
+int
+ACE_Event_Base::wait (const ACE_Time_Value *abstime, int use_absolute_time)
+{
+ return ACE_OS::event_timedwait (&this->handle_,
+ const_cast <ACE_Time_Value *> (abstime),
+ use_absolute_time);
+}
+
+int
+ACE_Event_Base::signal (void)
+{
+ return ACE_OS::event_signal (&this->handle_);
+}
+
+int
+ACE_Event_Base::pulse (void)
+{
+ return ACE_OS::event_pulse (&this->handle_);
+}
+
+int
+ACE_Event_Base::reset (void)
+{
+ return ACE_OS::event_reset (&this->handle_);
+}
+
+void
+ACE_Event_Base::dump (void) const
+{
+#if defined (ACE_HAS_DUMP)
+ ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
+ ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
+#endif /* ACE_HAS_DUMP */
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Event_Base.h b/ACE/ace/Event_Base.h
new file mode 100644
index 00000000000..2657ce6f5a0
--- /dev/null
+++ b/ACE/ace/Event_Base.h
@@ -0,0 +1,141 @@
+// -*- C++ -*-
+
+//==========================================================================
+/**
+ * @file Event_Base.h
+ *
+ * $Id$
+ *
+ * Moved from Synch.h.
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+//==========================================================================
+
+#ifndef ACE_EVENT_BASE_H
+#define ACE_EVENT_BASE_H
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/ACE_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/OS_NS_Thread.h"
+#include "ace/Time_Value.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class ACE_Event_Base
+ *
+ * @brief A base class for wrappers around the Win32 event locking
+ * mechanism.
+ *
+ * Portable implementation of an Event mechanism, which is native to
+ * Win32, but must be emulated on UNIX. All platforms support
+ * process-scope locking support. However, only Win32 platforms
+ * support global naming and system-scope locking support.
+ */
+class ACE_Export ACE_Event_Base
+{
+public:
+ /// Implicitly destroy the event variable.
+ virtual ~ACE_Event_Base (void);
+
+ /**
+ * Explicitly destroy the event variable. Note that only one thread
+ * should call this method since it doesn't protect against race
+ * conditions.
+ */
+ int remove (void);
+
+ /// Underlying handle to event.
+ ACE_event_t handle (void) const;
+
+ /**
+ * Set the underlying handle to event. Note that this method assumes
+ * ownership of the <handle> and will close it down in <remove>. If
+ * you want the <handle> to stay open when <remove> is called make
+ * sure to call <dup> on the <handle> before closing it. You are
+ * responsible for the closing the existing <handle> before
+ * overwriting it.
+ */
+ void handle (ACE_event_t new_handle);
+
+ /**
+ * if MANUAL reset
+ * sleep till the event becomes signaled
+ * event remains signaled after wait() completes.
+ * else AUTO reset
+ * sleep till the event becomes signaled
+ * event resets wait() completes.
+ */
+ int wait (void);
+
+ /// Same as wait() above, but this one can be timed
+ /// @a abstime is absolute time-of-day if if @a use_absolute_time
+ /// is non-0, else it is relative time.
+ int wait (const ACE_Time_Value *abstime,
+ int use_absolute_time = 1);
+
+ /**
+ * if MANUAL reset
+ * wake up all waiting threads
+ * set to signaled state
+ * else AUTO reset
+ * if no thread is waiting, set to signaled state
+ * if thread(s) are waiting, wake up one waiting thread and
+ * reset event
+ */
+ int signal (void);
+
+ /**
+ * if MANUAL reset
+ * wakeup all waiting threads and
+ * reset event
+ * else AUTO reset
+ * wakeup one waiting thread (if present) and
+ * reset event
+ */
+ int pulse (void);
+
+ /// Set to nonsignaled state.
+ int reset (void);
+
+ /// Dump the state of an object.
+ void dump (void) const;
+
+ /// Declare the dynamic allocation hooks
+ ACE_ALLOC_HOOK_DECLARE;
+
+protected:
+ /// Only derived classes allowed to construct event.
+ ACE_Event_Base ();
+
+
+ /// The underlying handle.
+ ACE_event_t handle_;
+
+ /// Keeps track of whether <remove> has been called yet to avoid
+ /// multiple <remove> calls, e.g., explicitly and implicitly in the
+ /// destructor. This flag isn't protected by a lock, so make sure
+ /// that you don't have multiple threads simultaneously calling
+ /// <remove> on the same object, which is a bad idea anyway...
+ bool removed_;
+
+private:
+ // = Prevent copying.
+ ACE_Event_Base (const ACE_Event_Base& event);
+ const ACE_Event_Base &operator= (const ACE_Event_Base &rhs);
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/Event_Base.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_EVENT_BASE_H */
diff --git a/ACE/ace/Event_Base.inl b/ACE/ace/Event_Base.inl
new file mode 100644
index 00000000000..fe6789194d7
--- /dev/null
+++ b/ACE/ace/Event_Base.inl
@@ -0,0 +1,18 @@
+// -*- C++ -*-
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE ACE_event_t
+ACE_Event_Base::handle (void) const
+{
+ return this->handle_;
+}
+
+ACE_INLINE void
+ACE_Event_Base::handle (ACE_event_t new_handle)
+{
+ this->handle_ = new_handle;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Malloc.cpp b/ACE/ace/Malloc.cpp
index 4a7672b5041..a31ff854f7e 100644
--- a/ACE/ace/Malloc.cpp
+++ b/ACE/ace/Malloc.cpp
@@ -98,6 +98,10 @@ ACE_Control_Block::dump (void) const
}
ACE_Control_Block::ACE_Name_Node::ACE_Name_Node (void)
+ : name_ (0),
+ pointer_ (0),
+ next_ (0),
+ prev_ (0)
{
ACE_TRACE ("ACE_Control_Block::ACE_Name_Node::ACE_Name_Node");
}
diff --git a/ACE/ace/Manual_Event.cpp b/ACE/ace/Manual_Event.cpp
index 1ed621f54b6..5467ed6dae8 100644
--- a/ACE/ace/Manual_Event.cpp
+++ b/ACE/ace/Manual_Event.cpp
@@ -6,42 +6,44 @@
#include "ace/Manual_Event.inl"
#endif /* __ACE_INLINE__ */
-
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-ACE_Manual_Event::ACE_Manual_Event (int initial_state,
- int type,
- const char *name,
- void *arg)
- : ACE_Event (1,
- initial_state,
- type,
- ACE_TEXT_CHAR_TO_TCHAR (name),
- arg)
+template <class TIME_POLICY>
+ACE_Manual_Event_T<TIME_POLICY>::ACE_Manual_Event_T (
+ int initial_state,
+ int type,
+ const char *name,
+ void *arg)
+ : ACE_Event_T<TIME_POLICY> (1,
+ initial_state,
+ type,
+ ACE_TEXT_CHAR_TO_TCHAR (name),
+ arg)
{
}
#if defined (ACE_HAS_WCHAR)
-ACE_Manual_Event::ACE_Manual_Event (int initial_state,
- int type,
- const wchar_t *name,
- void *arg)
- : ACE_Event (1,
- initial_state,
- type,
- ACE_TEXT_WCHAR_TO_TCHAR (name),
- arg)
+template <class TIME_POLICY>
+ACE_Manual_Event_T<TIME_POLICY>::ACE_Manual_Event_T (
+ int initial_state,
+ int type,
+ const wchar_t *name,
+ void *arg)
+ : ACE_Event_T<TIME_POLICY> (1,
+ initial_state,
+ type,
+ ACE_TEXT_WCHAR_TO_TCHAR (name),
+ arg)
{
}
#endif /* ACE_HAS_WCHAR */
+template <class TIME_POLICY>
void
-ACE_Manual_Event::dump (void) const
+ACE_Manual_Event_T<TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_Event::dump ();
+ ACE_Event_T<TIME_POLICY>::dump ();
#endif /* ACE_HAS_DUMP */
}
diff --git a/ACE/ace/Manual_Event.h b/ACE/ace/Manual_Event.h
index e83fa04ee9c..e2873c09d74 100644
--- a/ACE/ace/Manual_Event.h
+++ b/ACE/ace/Manual_Event.h
@@ -36,25 +36,26 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* support. However, only Win32 platforms support global naming and
* system-scope locking support.
*/
-class ACE_Export ACE_Manual_Event : public ACE_Event
+template <class TIME_POLICY = ACE_System_Time_Policy>
+class ACE_Manual_Event_T : public ACE_Event_T<TIME_POLICY>
{
public:
/// Constructor which will create manual event
- ACE_Manual_Event (int initial_state = 0,
- int type = USYNC_THREAD,
- const char *name = 0,
- void *arg = 0);
+ ACE_Manual_Event_T (int initial_state = 0,
+ int type = USYNC_THREAD,
+ const char *name = 0,
+ void *arg = 0);
#if defined (ACE_HAS_WCHAR)
/// Constructor which will create manual event (wchar_t version)
- ACE_Manual_Event (int initial_state,
- int type,
- const wchar_t *name,
- void *arg = 0);
+ ACE_Manual_Event_T (int initial_state,
+ int type,
+ const wchar_t *name,
+ void *arg = 0);
#endif /* ACE_HAS_WCHAR */
/// Default dtor.
- ~ACE_Manual_Event (void);
+ ~ACE_Manual_Event_T (void);
/// Dump the state of an object.
void dump (void) const;
@@ -63,12 +64,45 @@ public:
ACE_ALLOC_HOOK_DECLARE;
};
+class ACE_Manual_Event :
+ public ACE_Manual_Event_T<ACE_System_Time_Policy>
+{
+public:
+ /// Constructor which will create auto event
+ ACE_Manual_Event (int initial_state = 0,
+ int type = USYNC_THREAD,
+ const char *name = 0,
+ void *arg = 0)
+ : ACE_Manual_Event_T<ACE_System_Time_Policy> (initial_state, type, name, arg)
+ {}
+
+#if defined (ACE_HAS_WCHAR)
+ /// Constructor which will create auto event (wchar_t version)
+ ACE_Manual_Event (int initial_state,
+ int type,
+ const wchar_t *name,
+ void *arg = 0)
+ : ACE_Manual_Event_T<ACE_System_Time_Policy> (initial_state, type, name, arg)
+ {}
+#endif /* ACE_HAS_WCHAR */
+
+ /// Default dtor.
+ virtual ~ACE_Manual_Event (void) {}
+};
+
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
#include "ace/Manual_Event.inl"
#endif /* __ACE_INLINE__ */
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Manual_Event.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Manual_Event.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
#include /**/ "ace/post.h"
#endif /* ACE_MANUAL_EVENT_H */
diff --git a/ACE/ace/Manual_Event.inl b/ACE/ace/Manual_Event.inl
index 42bf94f6404..ccfd875e793 100644
--- a/ACE/ace/Manual_Event.inl
+++ b/ACE/ace/Manual_Event.inl
@@ -4,8 +4,9 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+template <class TIME_POLICY>
ACE_INLINE
-ACE_Manual_Event::~ACE_Manual_Event (void)
+ACE_Manual_Event_T<TIME_POLICY>::~ACE_Manual_Event_T (void)
{
}
diff --git a/ACE/ace/Message_Queue.h b/ACE/ace/Message_Queue.h
index a3e9beca101..63f049b31a0 100644
--- a/ACE/ace/Message_Queue.h
+++ b/ACE/ace/Message_Queue.h
@@ -190,10 +190,10 @@ public:
/// and 0 if the queue's state is ACTIVATED or PULSED.
virtual int deactivated (void) = 0;
- /// Get the notification strategy for the <Message_Queue>
+ /// Get the notification strategy for the Message_Queue
virtual ACE_Notification_Strategy *notification_strategy (void) = 0;
- /// Set the notification strategy for the <Message_Queue>
+ /// Set the notification strategy for the Message_Queue
virtual void notification_strategy (ACE_Notification_Strategy *s) = 0;
// = Notification hook.
diff --git a/ACE/ace/Message_Queue_Vx.inl b/ACE/ace/Message_Queue_Vx.inl
index 741b4b8fdda..0712eb99fa4 100644
--- a/ACE/ace/Message_Queue_Vx.inl
+++ b/ACE/ace/Message_Queue_Vx.inl
@@ -11,7 +11,17 @@ ACE_INLINE MSG_Q_ID
ACE_Message_Queue_Vx::msgq (void)
{
// Hijack the tail_ field to store the MSG_Q_ID.
- return static_cast<MSG_Q_ID> (reinterpret_cast<long> (tail_));
+ return static_cast<MSG_Q_ID> (
+#if defined __LP64__ && defined __RTP__
+ // In RTP-mode only MSG_Q_ID is an int; in a 64-bit build the size of MSG_Q_ID
+ // doesn't match the size of a pointer, tail_, so first treat it as 64-bit.
+ reinterpret_cast<long> (tail_)
+#elif defined __RTP__
+ reinterpret_cast<int> (tail_)
+#else
+ tail_
+#endif
+ );
}
#endif /* ACE_VXWORKS */
diff --git a/ACE/ace/Naming_Context.cpp b/ACE/ace/Naming_Context.cpp
index 131abb65ebc..f45c355c59b 100644
--- a/ACE/ace/Naming_Context.cpp
+++ b/ACE/ace/Naming_Context.cpp
@@ -140,7 +140,8 @@ ACE_Naming_Context::close (void)
ACE_Naming_Context::ACE_Naming_Context (void)
: name_options_ (0),
- name_space_ (0)
+ name_space_ (0),
+ netnameserver_host_ (0)
{
ACE_TRACE ("ACE_Naming_Context::ACE_Naming_Context");
diff --git a/ACE/ace/Naming_Context.h b/ACE/ace/Naming_Context.h
index 9d85b65b74f..d260fae0245 100644
--- a/ACE/ace/Naming_Context.h
+++ b/ACE/ace/Naming_Context.h
@@ -269,7 +269,6 @@ private:
/// 1 if we're on the same local machine as the name server, else 0.
int local (void);
-
};
/**
diff --git a/ACE/ace/OS_NS_Thread.cpp b/ACE/ace/OS_NS_Thread.cpp
index 9aec524ae8f..9b8fedbd49a 100644
--- a/ACE/ace/OS_NS_Thread.cpp
+++ b/ACE/ace/OS_NS_Thread.cpp
@@ -885,8 +885,12 @@ ACE_TSS_Cleanup::thread_detach_key (ACE_thread_key_t key)
ACE_TSS_CLEANUP_GUARD
u_int key_index = key;
- ACE_ASSERT (key_index < sizeof(this->table_)/sizeof(this->table_[0])
- && this->table_[key_index].key_ == key);
+ ACE_ASSERT (key_index < sizeof(this->table_)/sizeof(this->table_[0]));
+ // If this entry was never set, just bug out. If it is set, but is the
+ // wrong key, assert.
+ if (this->table_[key_index].key_ == 0)
+ return 0;
+ ACE_ASSERT (this->table_[key_index].key_ == key);
ACE_TSS_Info &info = this->table_ [key_index];
// sanity check
@@ -2496,15 +2500,17 @@ ACE_OS::event_destroy (ACE_event_t *event)
int
ACE_OS::event_init (ACE_event_t *event,
+ int type,
+ ACE_condattr_t *attributes,
int manual_reset,
int initial_state,
- int type,
const char *name,
void *arg,
LPSECURITY_ATTRIBUTES sa)
{
#if defined (ACE_WIN32)
ACE_UNUSED_ARG (type);
+ ACE_UNUSED_ARG (attributes);
ACE_UNUSED_ARG (arg);
SECURITY_ATTRIBUTES sa_buffer;
SECURITY_DESCRIPTOR sd_buffer;
@@ -2612,10 +2618,15 @@ ACE_OS::event_init (ACE_event_t *event,
# if (defined (ACE_HAS_PTHREADS) && defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_CONDATTR_PSHARED)) || \
(!defined (ACE_USES_FIFO_SEM) && \
(!defined (ACE_HAS_POSIX_SEM) || !defined (ACE_HAS_POSIX_SEM_TIMEOUT) || defined (ACE_LACKS_NAMED_POSIX_SEM)))
- int result = ACE_OS::cond_init (&event->eventdata_->condition_,
- static_cast<short> (type),
- name,
- arg);
+ int result = attributes == 0 ?
+ ACE_OS::cond_init (&event->eventdata_->condition_,
+ type,
+ name,
+ arg) :
+ ACE_OS::cond_init (&event->eventdata_->condition_,
+ *attributes,
+ name,
+ arg);
# else
char sem_name[128];
ACE_OS::strncpy (sem_name,
@@ -2625,6 +2636,7 @@ ACE_OS::event_init (ACE_event_t *event,
int result = ACE_OS::sema_init (&event->semaphore_,
0,
type,
+ attributes,
sem_name,
arg);
# endif
@@ -2648,6 +2660,7 @@ ACE_OS::event_init (ACE_event_t *event,
result = ACE_OS::sema_init (&event->lock_,
0,
type,
+ attributes,
lck_name,
arg);
if (result == 0)
@@ -2662,9 +2675,9 @@ ACE_OS::event_init (ACE_event_t *event,
event->name_ = 0;
event->eventdata_ = evtdata;
-#if (!defined (ACE_HAS_PTHREADS) || !defined (_POSIX_THREAD_PROCESS_SHARED) || defined (ACE_LACKS_CONDATTR_PSHARED)) && \
- (defined (ACE_USES_FIFO_SEM) || \
- (defined (ACE_HAS_POSIX_SEM) && defined (ACE_HAS_POSIX_SEM_TIMEOUT) && !defined (ACE_LACKS_NAMED_POSIX_SEM)))
+# if (!defined (ACE_HAS_PTHREADS) || !defined (_POSIX_THREAD_PROCESS_SHARED) || defined (ACE_LACKS_CONDATTR_PSHARED)) && \
+ (defined (ACE_USES_FIFO_SEM) || \
+ (defined (ACE_HAS_POSIX_SEM) && defined (ACE_HAS_POSIX_SEM_TIMEOUT) && !defined (ACE_LACKS_NAMED_POSIX_SEM)))
char sem_name[128];
ACE_OS::strncpy (sem_name,
name,
@@ -2673,6 +2686,7 @@ ACE_OS::event_init (ACE_event_t *event,
result = ACE_OS::sema_init(&event->semaphore_,
0,
type,
+ attributes,
sem_name,
arg);
# endif
@@ -2692,6 +2706,7 @@ ACE_OS::event_init (ACE_event_t *event,
result = ACE_OS::sema_init (&event->lock_,
0,
type,
+ attributes,
lck_name,
arg);
}
@@ -2714,14 +2729,20 @@ ACE_OS::event_init (ACE_event_t *event,
# if (defined (ACE_HAS_PTHREADS) && defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_CONDATTR_PSHARED)) || \
(!defined (ACE_USES_FIFO_SEM) && \
(!defined (ACE_HAS_POSIX_SEM) || !defined (ACE_HAS_POSIX_SEM_TIMEOUT) || defined (ACE_LACKS_NAMED_POSIX_SEM)))
- int result = ACE_OS::cond_init (&event->eventdata_->condition_,
- static_cast<short> (type),
- name,
- arg);
+ int result = attributes == 0 ?
+ ACE_OS::cond_init (&event->eventdata_->condition_,
+ type,
+ name,
+ arg) :
+ ACE_OS::cond_init (&event->eventdata_->condition_,
+ *attributes,
+ name,
+ arg);
# else
int result = ACE_OS::sema_init (&event->semaphore_,
0,
type,
+ attributes,
name,
arg);
# endif
@@ -2738,6 +2759,7 @@ ACE_OS::event_init (ACE_event_t *event,
result = ACE_OS::sema_init (&event->lock_,
0,
type,
+ attributes,
name,
arg);
if (result == 0)
@@ -2751,6 +2773,7 @@ ACE_OS::event_init (ACE_event_t *event,
ACE_UNUSED_ARG (manual_reset);
ACE_UNUSED_ARG (initial_state);
ACE_UNUSED_ARG (type);
+ ACE_UNUSED_ARG (attributes);
ACE_UNUSED_ARG (name);
ACE_UNUSED_ARG (arg);
ACE_UNUSED_ARG (sa);
diff --git a/ACE/ace/OS_NS_Thread.h b/ACE/ace/OS_NS_Thread.h
index e6aaee61bba..2cbe9679a77 100644
--- a/ACE/ace/OS_NS_Thread.h
+++ b/ACE/ace/OS_NS_Thread.h
@@ -1086,6 +1086,9 @@ namespace ACE_OS {
int type = ACE_DEFAULT_SYNCH_TYPE);
ACE_NAMESPACE_INLINE_FUNCTION
+ int condattr_synctype (ACE_condattr_t &attributes, int& type);
+
+ ACE_NAMESPACE_INLINE_FUNCTION
int condattr_destroy (ACE_condattr_t &attributes);
ACE_NAMESPACE_INLINE_FUNCTION
@@ -1184,7 +1187,7 @@ namespace ACE_OS {
extern ACE_Export
int event_destroy (ACE_event_t *event);
- extern ACE_Export
+ ACE_NAMESPACE_INLINE_FUNCTION
int event_init (ACE_event_t *event,
int manual_reset = 0,
int initial_state = 0,
@@ -1193,6 +1196,16 @@ namespace ACE_OS {
void *arg = 0,
LPSECURITY_ATTRIBUTES sa = 0);
+ extern ACE_Export
+ int event_init (ACE_event_t *event,
+ int type,
+ ACE_condattr_t *attributes,
+ int manual_reset = 0,
+ int initial_state = 0,
+ const char *name = 0,
+ void *arg = 0,
+ LPSECURITY_ATTRIBUTES sa = 0);
+
# if defined (ACE_HAS_WCHAR)
ACE_NAMESPACE_INLINE_FUNCTION
int event_init (ACE_event_t *event,
@@ -1202,6 +1215,16 @@ namespace ACE_OS {
const wchar_t *name,
void *arg = 0,
LPSECURITY_ATTRIBUTES sa = 0);
+
+ ACE_NAMESPACE_INLINE_FUNCTION
+ int event_init (ACE_event_t *event,
+ int type,
+ ACE_condattr_t *attributes,
+ int manual_reset,
+ int initial_state,
+ const wchar_t *name,
+ void *arg = 0,
+ LPSECURITY_ATTRIBUTES sa = 0);
# endif /* ACE_HAS_WCHAR */
extern ACE_Export
@@ -1421,6 +1444,16 @@ namespace ACE_OS {
int max = 0x7fffffff,
LPSECURITY_ATTRIBUTES sa = 0);
+ ACE_NAMESPACE_INLINE_FUNCTION
+ int sema_init (ACE_sema_t *s,
+ u_int count,
+ int type,
+ ACE_condattr_t *attributes,
+ const char *name = 0,
+ void *arg = 0,
+ int max = 0x7fffffff,
+ LPSECURITY_ATTRIBUTES sa = 0);
+
# if defined (ACE_HAS_WCHAR)
ACE_NAMESPACE_INLINE_FUNCTION
int sema_init (ACE_sema_t *s,
@@ -1430,6 +1463,16 @@ namespace ACE_OS {
void *arg = 0,
int max = 0x7fffffff,
LPSECURITY_ATTRIBUTES sa = 0);
+
+ ACE_NAMESPACE_INLINE_FUNCTION
+ int sema_init (ACE_sema_t *s,
+ u_int count,
+ int type,
+ ACE_condattr_t *attributes,
+ const wchar_t *name,
+ void *arg = 0,
+ int max = 0x7fffffff,
+ LPSECURITY_ATTRIBUTES sa = 0);
# endif /* ACE_HAS_WCHAR */
ACE_NAMESPACE_INLINE_FUNCTION
@@ -1833,12 +1876,18 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_event_t
{
friend int ACE_OS::event_init(ACE_event_t*, int, int, int, const char*, void*,int);
+ friend int ACE_OS::event_init(ACE_event_t*, int, ACE_condattr_t*, int, int, const char*, void*,int);
friend int ACE_OS::event_destroy(ACE_event_t*);
friend int ACE_OS::event_wait(ACE_event_t*);
friend int ACE_OS::event_timedwait(ACE_event_t*, ACE_Time_Value*, int);
friend int ACE_OS::event_signal(ACE_event_t*);
friend int ACE_OS::event_pulse(ACE_event_t*);
friend int ACE_OS::event_reset(ACE_event_t*);
+
+public:
+ /// Constructor initializing all pointer fields to null
+ ACE_event_t (void);
+
protected:
/// Event name if process shared.
diff --git a/ACE/ace/OS_NS_Thread.inl b/ACE/ace/OS_NS_Thread.inl
index 4ffc46a1920..054f9187a3d 100644
--- a/ACE/ace/OS_NS_Thread.inl
+++ b/ACE/ace/OS_NS_Thread.inl
@@ -184,6 +184,40 @@ ACE_OS::condattr_init (ACE_condattr_t &attributes, int type)
}
ACE_INLINE int
+ACE_OS::condattr_synctype (ACE_condattr_t &attributes, int& type)
+{
+# if defined (ACE_HAS_THREADS)
+# if defined (ACE_HAS_PTHREADS)
+# if !defined (ACE_LACKS_CONDATTR) && defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_CONDATTR_PSHARED)
+ int result = -1;
+
+ if (
+ ACE_ADAPT_RETVAL (pthread_condattr_getpshared (&attributes, &type),
+ result) == 0
+ )
+ {
+ result = 0;
+ }
+# else
+ ACE_UNUSED_ARG (attributes);
+ int result = 0;
+ type = USYNC_THREAD;
+# endif /* !ACE_LACKS_CONDATTR && _POSIX_THREAD_PROCESS_SHARED && ! ACE_LACKS_CONDATTR_PSHARED */
+
+ return result;
+# else
+ type = attributes.type;
+ return 0;
+# endif /* ACE_HAS_PTHREADS */
+
+# else
+ ACE_UNUSED_ARG (attributes);
+ ACE_UNUSED_ARG (type);
+ ACE_NOTSUP_RETURN (-1);
+# endif /* ACE_HAS_THREADS */
+}
+
+ACE_INLINE int
ACE_OS::condattr_setclock (ACE_condattr_t &attributes, clockid_t clock_id)
{
# if defined (ACE_HAS_THREADS)
@@ -453,6 +487,19 @@ ACE_OS::mutex_lock (ACE_mutex_t *m,
return timeout == 0 ? ACE_OS::mutex_lock (m) : ACE_OS::mutex_lock (m, *timeout);
}
+ACE_INLINE int
+ACE_OS::event_init (ACE_event_t *event,
+ int manual_reset,
+ int initial_state,
+ int type,
+ const char *name,
+ void *arg,
+ LPSECURITY_ATTRIBUTES sa)
+{
+ ACE_condattr_t *pattr = 0;
+ return ACE_OS::event_init (event, type, pattr, manual_reset, initial_state, name, arg, sa);
+}
+
#if defined (ACE_HAS_WCHAR)
ACE_INLINE int
ACE_OS::event_init (ACE_event_t *event,
@@ -489,6 +536,45 @@ ACE_OS::event_init (ACE_event_t *event,
sa);
#endif /* ACE_WIN32 */
}
+
+ACE_INLINE int
+ACE_OS::event_init (ACE_event_t *event,
+ int type,
+ ACE_condattr_t *attributes,
+ int manual_reset,
+ int initial_state,
+ const wchar_t *name,
+ void *arg,
+ LPSECURITY_ATTRIBUTES sa)
+{
+#if defined (ACE_WIN32)
+ ACE_UNUSED_ARG (type);
+ ACE_UNUSED_ARG (attributes);
+ ACE_UNUSED_ARG (arg);
+ SECURITY_ATTRIBUTES sa_buffer;
+ SECURITY_DESCRIPTOR sd_buffer;
+ *event = ::CreateEventW (ACE_OS::default_win32_security_attributes_r
+ (sa, &sa_buffer, &sd_buffer),
+ manual_reset,
+ initial_state,
+ name);
+ if (*event == 0)
+ ACE_FAIL_RETURN (-1);
+
+ // Make sure to set errno to ERROR_ALREADY_EXISTS if necessary.
+ ACE_OS::set_errno_to_last_error ();
+ return 0;
+#else /* ACE_WIN32 */
+ return ACE_OS::event_init (event,
+ type,
+ attributes,
+ manual_reset,
+ initial_state,
+ ACE_Wide_To_Ascii (name).char_rep (),
+ arg,
+ sa);
+#endif /* ACE_WIN32 */
+}
#endif /* ACE_HAS_WCHAR */
ACE_INLINE long
@@ -1427,6 +1513,20 @@ ACE_OS::sema_init (ACE_sema_t *s,
int max,
LPSECURITY_ATTRIBUTES sa)
{
+ ACE_condattr_t *pattr = 0;
+ return ACE_OS::sema_init (s, count, type, pattr, name, arg, max, sa);
+}
+
+ACE_INLINE int
+ACE_OS::sema_init (ACE_sema_t *s,
+ u_int count,
+ int type,
+ ACE_condattr_t *attributes,
+ const char *name,
+ void *arg,
+ int max,
+ LPSECURITY_ATTRIBUTES sa)
+{
ACE_OS_TRACE ("ACE_OS::sema_init");
#if defined (ACE_HAS_POSIX_SEM)
ACE_UNUSED_ARG (max);
@@ -1435,12 +1535,15 @@ ACE_OS::sema_init (ACE_sema_t *s,
s->name_ = 0;
# if defined (ACE_HAS_POSIX_SEM_TIMEOUT) || defined (ACE_DISABLE_POSIX_SEM_TIMEOUT_EMULATION)
ACE_UNUSED_ARG (arg);
+ ACE_UNUSED_ARG (attributes);
# else
int result = -1;
if (ACE_OS::mutex_init (&s->lock_, type, name,
(ACE_mutexattr_t *) arg) == 0
- && ACE_OS::cond_init (&s->count_nonzero_, (short)type, name, arg) == 0
+ && (attributes == 0 ?
+ ACE_OS::cond_init (&s->count_nonzero_, type, name, arg) :
+ ACE_OS::cond_init (&s->count_nonzero_, *attributes, name, arg)) == 0
&& ACE_OS::mutex_lock (&s->lock_) == 0)
{
if (ACE_OS::mutex_unlock (&s->lock_) == 0)
@@ -1644,6 +1747,7 @@ ACE_OS::sema_init (ACE_sema_t *s,
ACE_UNUSED_ARG (name);
ACE_UNUSED_ARG (max);
ACE_UNUSED_ARG (sa);
+ ACE_UNUSED_ARG (attributes);
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_init (s, count, type, arg), result),
int, -1);
@@ -1654,7 +1758,9 @@ ACE_OS::sema_init (ACE_sema_t *s,
if (ACE_OS::mutex_init (&s->lock_, type, name,
(ACE_mutexattr_t *) arg) == 0
- && ACE_OS::cond_init (&s->count_nonzero_, type, name, arg) == 0
+ && (attributes == 0 ?
+ ACE_OS::cond_init (&s->count_nonzero_, type, name, arg) :
+ ACE_OS::cond_init (&s->count_nonzero_, *attributes, name, arg)) == 0
&& ACE_OS::mutex_lock (&s->lock_) == 0)
{
s->count_ = count;
@@ -1671,6 +1777,7 @@ ACE_OS::sema_init (ACE_sema_t *s,
}
return result;
# elif defined (ACE_HAS_WTHREADS)
+ ACE_UNUSED_ARG (attributes);
# if ! defined (ACE_USES_WINCE_SEMA_SIMULATION)
ACE_UNUSED_ARG (type);
ACE_UNUSED_ARG (arg);
@@ -1740,6 +1847,7 @@ ACE_OS::sema_init (ACE_sema_t *s,
ACE_UNUSED_ARG (s);
ACE_UNUSED_ARG (count);
ACE_UNUSED_ARG (type);
+ ACE_UNUSED_ARG (attributes);
ACE_UNUSED_ARG (name);
ACE_UNUSED_ARG (arg);
ACE_UNUSED_ARG (max);
@@ -1758,7 +1866,22 @@ ACE_OS::sema_init (ACE_sema_t *s,
int max,
LPSECURITY_ATTRIBUTES sa)
{
+ ACE_condattr_t *pattr = 0;
+ return ACE_OS::sema_init (s, count, type, pattr, name, arg, max, sa);
+}
+
+ACE_INLINE int
+ACE_OS::sema_init (ACE_sema_t *s,
+ u_int count,
+ int type,
+ ACE_condattr_t *attributes,
+ const wchar_t *name,
+ void *arg,
+ int max,
+ LPSECURITY_ATTRIBUTES sa)
+{
# if defined (ACE_HAS_WTHREADS)
+ ACE_UNUSED_ARG (attributes);
# if ! defined (ACE_USES_WINCE_SEMA_SIMULATION)
ACE_UNUSED_ARG (type);
ACE_UNUSED_ARG (arg);
@@ -1817,7 +1940,7 @@ ACE_OS::sema_init (ACE_sema_t *s,
# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
# else /* ACE_HAS_WTHREADS */
// Just call the normal char version.
- return ACE_OS::sema_init (s, count, type, ACE_Wide_To_Ascii (name).char_rep (), arg, max, sa);
+ return ACE_OS::sema_init (s, count, type, attributes, ACE_Wide_To_Ascii (name).char_rep (), arg, max, sa);
# endif /* ACE_HAS_WTHREADS */
}
#endif /* ACE_HAS_WCHAR */
@@ -3522,7 +3645,9 @@ ACE_OS::thread_mutex_trylock (ACE_thread_mutex_t *m)
# if defined (ACE_HAS_WIN32_TRYLOCK)
BOOL result = ::TryEnterCriticalSection (m);
if (result == TRUE)
- return 0;
+ {
+ return 0;
+ }
else
{
errno = EBUSY;
@@ -3720,4 +3845,15 @@ ACE_Thread_ID::operator!= (const ACE_Thread_ID &rhs) const
return !(*this == rhs);
}
+#if !defined (ACE_WIN32)
+
+ACE_INLINE
+ACE_event_t::ACE_event_t (void) :
+ name_ (0),
+ eventdata_ (0)
+{
+}
+
+#endif /* !ACE_WIN32 */
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_NS_netdb.cpp b/ACE/ace/OS_NS_netdb.cpp
index cd3608a9b9b..345870838c0 100644
--- a/ACE/ace/OS_NS_netdb.cpp
+++ b/ACE/ace/OS_NS_netdb.cpp
@@ -15,6 +15,10 @@
#include "ace/OS_NS_stropts.h"
#include "ace/OS_NS_sys_socket.h"
+#if defined (ACE_LINUX) && !defined (ACE_LACKS_NETWORKING)
+# include "ace/os_include/os_ifaddrs.h"
+#endif /* ACE_LINUX && !ACE_LACKS_NETWORKING */
+
// Include if_arp so that getmacaddr can use the
// arp structure.
#if defined (sun)
@@ -166,7 +170,34 @@ ACE_OS::getmacaddress (struct macaddr_node_t *node)
#elif defined (ACE_LINUX) && !defined (ACE_LACKS_NETWORKING)
+ // It's easiest to know the first MAC-using interface. Use the BSD
+ // getifaddrs function that simplifies access to connected interfaces.
+ struct ifaddrs *ifap = 0;
+ struct ifaddrs *p_if = 0;
+
+ if (::getifaddrs (&ifap) != 0)
+ return -1;
+
+ for (p_if = ifap; p_if != 0; p_if = p_if->ifa_next)
+ {
+ if (p_if->ifa_addr == 0)
+ continue;
+
+ // Check to see if it's up and is not either PPP or loopback
+ if ((p_if->ifa_flags & IFF_UP) == IFF_UP &&
+ (p_if->ifa_flags & (IFF_LOOPBACK | IFF_POINTOPOINT)) == 0)
+ break;
+ }
+ if (p_if == 0)
+ {
+ errno = ENODEV;
+ ::freeifaddrs (ifap);
+ return -1;
+ }
+
struct ifreq ifr;
+ ACE_OS::strcpy (ifr.ifr_name, p_if->ifa_name);
+ ::freeifaddrs (ifap);
ACE_HANDLE handle =
ACE_OS::socket (PF_INET, SOCK_DGRAM, 0);
@@ -174,8 +205,6 @@ ACE_OS::getmacaddress (struct macaddr_node_t *node)
if (handle == ACE_INVALID_HANDLE)
return -1;
- ACE_OS::strcpy (ifr.ifr_name, "eth0");
-
if (ACE_OS::ioctl (handle/*s*/, SIOCGIFHWADDR, &ifr) < 0)
{
ACE_OS::close (handle);
diff --git a/ACE/ace/OS_NS_netdb.inl b/ACE/ace/OS_NS_netdb.inl
index 4d574487f1a..dc17a38d76a 100644
--- a/ACE/ace/OS_NS_netdb.inl
+++ b/ACE/ace/OS_NS_netdb.inl
@@ -7,7 +7,7 @@
#include "ace/OS_NS_errno.h"
#if defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
+# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) && !defined (HPUX_11)
# define ACE_NETDBCALL_RETURN(OP,TYPE,FAILVALUE,TARGET,SIZE) \
do \
{ \
@@ -25,7 +25,7 @@
return ace_result_; \
} \
} while(0)
-# else /* ! (ACE_MT_SAFE && ACE_MT_SAFE != 0) */
+# else /* ! (ACE_MT_SAFE && ACE_MT_SAFE != 0 && !HPUX_11) */
# define ACE_NETDBCALL_RETURN(OP,TYPE,FAILVALUE,TARGET,SIZE) \
do \
{ \
diff --git a/ACE/ace/OS_NS_sys_shm.cpp b/ACE/ace/OS_NS_sys_shm.cpp
index db85a33b459..6ebbafa4bb0 100644
--- a/ACE/ace/OS_NS_sys_shm.cpp
+++ b/ACE/ace/OS_NS_sys_shm.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_sys_shm.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_shm.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_sys_socket.cpp b/ACE/ace/OS_NS_sys_socket.cpp
index 014b8b1d6cf..bb469decd75 100644
--- a/ACE/ace/OS_NS_sys_socket.cpp
+++ b/ACE/ace/OS_NS_sys_socket.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_sys_socket.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_socket.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_sys_stat.cpp b/ACE/ace/OS_NS_sys_stat.cpp
index 952ac724b3c..6da87462219 100644
--- a/ACE/ace/OS_NS_sys_stat.cpp
+++ b/ACE/ace/OS_NS_sys_stat.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_sys_stat.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_stat.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_sys_uio.cpp b/ACE/ace/OS_NS_sys_uio.cpp
index b56b88b7ab5..741a84f64a7 100644
--- a/ACE/ace/OS_NS_sys_uio.cpp
+++ b/ACE/ace/OS_NS_sys_uio.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_sys_uio.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_uio.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/Obchunk.h b/ACE/ace/Obchunk.h
index 9690c39f9d1..cd1abb4369d 100644
--- a/ACE/ace/Obchunk.h
+++ b/ACE/ace/Obchunk.h
@@ -10,7 +10,6 @@
*/
//=============================================================================
-
#ifndef ACE_OBCHUNK_H
#define ACE_OBCHUNK_H
#include /**/ "ace/pre.h"
diff --git a/ACE/ace/Obstack_T.cpp b/ACE/ace/Obstack_T.cpp
index dc1d0acfc6c..961f065213a 100644
--- a/ACE/ace/Obstack_T.cpp
+++ b/ACE/ace/Obstack_T.cpp
@@ -54,8 +54,8 @@ ACE_Obstack_T<ACE_CHAR_T>::request (size_t len)
// chunk or will need a new one.
if (this->curr_->cur_ + len >= this->curr_->end_)
{
- // Need a new chunk. Save the current one so the current string can be
- // copied to the new chunk.
+ // Need a new chunk. Save the current one so the current string
+ // can be copied to the new chunk.
ACE_Obchunk *temp = this->curr_;
if (this->curr_->next_ == 0)
{
@@ -122,7 +122,7 @@ ACE_Obstack_T<ACE_CHAR_T>::new_chunk (void)
template <class ACE_CHAR_T>
ACE_Obstack_T<ACE_CHAR_T>::ACE_Obstack_T (size_t size,
- ACE_Allocator *allocator_strategy)
+ ACE_Allocator *allocator_strategy)
: allocator_strategy_ (allocator_strategy),
size_ (size),
head_ (0),
@@ -156,7 +156,7 @@ ACE_Obstack_T<ACE_CHAR_T>::~ACE_Obstack_T (void)
template <class ACE_CHAR_T> ACE_CHAR_T *
ACE_Obstack_T<ACE_CHAR_T>::copy (const ACE_CHAR_T *s,
- size_t len)
+ size_t len)
{
ACE_TRACE ("ACE_Obstack_T<ACE_CHAR_T>::copy");
diff --git a/ACE/ace/Obstack_T.h b/ACE/ace/Obstack_T.h
index bba7595771c..b0ed606734b 100644
--- a/ACE/ace/Obstack_T.h
+++ b/ACE/ace/Obstack_T.h
@@ -47,11 +47,11 @@ public:
/// a new string. Return -1 if fail, 0 if success.
int request (size_t len);
- /// Inserting a new ACE_CHAR_T \a c into the current building
- /// block without freezing (null terminating) the block.
- /// This function will create new chunk by checking the
- /// boundary of current Obchunk. Return
- /// the location \a c gets inserted to, or 0 if error.
+ /// Inserting a new ACE_CHAR_T \a c into the current building block
+ /// without freezing (null terminating) the block. This function
+ /// will create new chunk by checking the boundary of current
+ /// Obchunk. Return the location \a c gets inserted to, or 0 if
+ /// error.
ACE_CHAR_T *grow (ACE_CHAR_T c);
/// Inserting a new ACE_CHAR_T \a c into the current building
@@ -78,7 +78,7 @@ public:
/// in the stack is released. Otherwise, @a obj must be an address of an
/// object allocated in the stack. In this case, @a obj is released along
/// with everthing allocated in the Obstack since @a obj.
- void unwind (void* obj);
+ void unwind (void *obj);
/// "Release" the entire stack of Obchunks, putting it back on the free
/// list.
@@ -95,7 +95,7 @@ protected:
/// Search through the list of Obchunks and release them. Helper funtion
/// used by unwind.
- void unwind_i (void* obj);
+ void unwind_i (void *obj);
/// Pointer to the allocator used by this Obstack.
ACE_Allocator *allocator_strategy_;
diff --git a/ACE/ace/POSIX_Proactor.cpp b/ACE/ace/POSIX_Proactor.cpp
index 5f9c4bc4c28..eec70234c90 100644
--- a/ACE/ace/POSIX_Proactor.cpp
+++ b/ACE/ace/POSIX_Proactor.cpp
@@ -630,7 +630,11 @@ ACE_AIOCB_Notify_Pipe_Manager::ACE_AIOCB_Notify_Pipe_Manager (ACE_POSIX_AIOCB_Pr
read_stream_ (posix_aiocb_proactor)
{
// Open the pipe.
- this->pipe_.open ();
+ if (this->pipe_.open () == -1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("%N:%l:%p\n"),
+ ACE_TEXT("ACE_AIOCB_Notify_Pipe_Manager::ACE_AIOCB_Notify_Pipe_Manager:")
+ ACE_TEXT("Open of pipe failed")));
// Set write side in NONBLOCK mode
ACE::set_flags (this->pipe_.write_handle (), ACE_NONBLOCK);
diff --git a/ACE/ace/Parse_Node.cpp b/ACE/ace/Parse_Node.cpp
index 73b4d20ada1..3e8cbdc7268 100644
--- a/ACE/ace/Parse_Node.cpp
+++ b/ACE/ace/Parse_Node.cpp
@@ -426,6 +426,7 @@ ACE_Location_Node::dump (void) const
ACE_Location_Node::ACE_Location_Node (void)
: pathname_ (0),
+ must_delete_ (0),
dll_ (),
symbol_ (0)
{
diff --git a/ACE/ace/Reactor.h b/ACE/ace/Reactor.h
index de3991f2800..23d973c0c68 100644
--- a/ACE/ace/Reactor.h
+++ b/ACE/ace/Reactor.h
@@ -462,15 +462,12 @@ public:
* Install the new disposition (if given) and return the previous
* disposition (if desired by the caller).
*
- * Note that, unlike removing handler for I/O events,
- * ACE_Event_Handler::handle_close() will not be called when the
- * handler is removed. Neither will any reference-counting activity be
- * involved.
- *
- * @note There's an existing enhancement request in Bugzilla,
- * #2368, to change this behavior so that ACE_Event_Handler::handle_close()
- * is called when the signal handler is removed. Thus, there's some chance
- * this behavior will change in a future version of ACE.
+ * Note that the registered handler's ACE_Event_Handler::handle_close ()
+ * callback will be called to indicate the signal handler has been removed.
+ * Unlike with I/O handles, there is no way to prevent this callback. The
+ * handle_close() callback can check the passed mask for the value
+ * ACE_Event_Handler::SIGNAL_MASK to tell when the callback is the result
+ * of a signal handler removal.
*/
int remove_handler (int signum,
ACE_Sig_Action *new_disp,
diff --git a/ACE/ace/Read_Buffer.cpp b/ACE/ace/Read_Buffer.cpp
index 0c18bfe3ad0..544b407f934 100644
--- a/ACE/ace/Read_Buffer.cpp
+++ b/ACE/ace/Read_Buffer.cpp
@@ -13,9 +13,6 @@
#include "ace/Service_Config.h"
#include "ace/OS_NS_stdio.h"
-
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
void
@@ -35,7 +32,9 @@ ACE_Read_Buffer::dump (void) const
ACE_Read_Buffer::ACE_Read_Buffer (FILE *fp,
bool close_on_delete,
ACE_Allocator *alloc)
- : stream_ (fp),
+ : size_ (0),
+ occurrences_ (0),
+ stream_ (fp),
close_on_delete_ (close_on_delete),
allocator_ (alloc)
{
@@ -48,7 +47,9 @@ ACE_Read_Buffer::ACE_Read_Buffer (FILE *fp,
ACE_Read_Buffer::ACE_Read_Buffer (ACE_HANDLE handle,
bool close_on_delete,
ACE_Allocator *alloc)
- : stream_ (ACE_OS::fdopen (handle, ACE_TEXT ("r"))),
+ : size_ (0),
+ occurrences_ (0),
+ stream_ (ACE_OS::fdopen (handle, ACE_TEXT ("r"))),
close_on_delete_ (close_on_delete),
allocator_ (alloc)
{
diff --git a/ACE/ace/Recursive_Thread_Mutex.cpp b/ACE/ace/Recursive_Thread_Mutex.cpp
index 07603a9cc4e..1b43bbb6e61 100644
--- a/ACE/ace/Recursive_Thread_Mutex.cpp
+++ b/ACE/ace/Recursive_Thread_Mutex.cpp
@@ -103,10 +103,6 @@ ACE_Recursive_Thread_Mutex::get_nesting_level (void)
#endif /* !ACE_HAS_WINCE */
}
-ACE_Recursive_Thread_Mutex::ACE_Recursive_Thread_Mutex (const ACE_Recursive_Thread_Mutex &)
-{
-}
-
void
ACE_Recursive_Thread_Mutex::dump (void) const
{
diff --git a/ACE/ace/SOCK_Dgram.cpp b/ACE/ace/SOCK_Dgram.cpp
index d451b94bee8..4195e439371 100644
--- a/ACE/ace/SOCK_Dgram.cpp
+++ b/ACE/ace/SOCK_Dgram.cpp
@@ -543,7 +543,7 @@ ACE_SOCK_Dgram::make_multicast_ifaddr (ip_mreq *ret_mreq,
const ACE_INET_Addr &mcast_addr,
const ACE_TCHAR *net_if)
{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::make_multicast_ifaddr");
+ ACE_TRACE ("ACE_SOCK_Dgram::make_multicast_ifaddr");
ip_mreq lmreq; // Scratch copy.
if (net_if != 0)
{
@@ -556,17 +556,29 @@ ACE_SOCK_Dgram::make_multicast_ifaddr (ip_mreq *ret_mreq,
ACE_HTONL (interface_addr.get_ip_address ());
#else
ifreq if_address;
-
ACE_OS::strcpy (if_address.ifr_name, ACE_TEXT_ALWAYS_CHAR (net_if));
-
if (ACE_OS::ioctl (this->get_handle (),
SIOCGIFADDR,
&if_address) == -1)
- return -1;
-
- sockaddr_in *socket_address =
- reinterpret_cast<sockaddr_in*> (&if_address.ifr_addr);
- lmreq.imr_interface.s_addr = socket_address->sin_addr.s_addr;
+ {
+ // The net_if name failed to be found. It seems that older linux
+ // kernals only support the actual interface name (eg. "eth0"),
+ // not the IP address string of the interface (eg. "192.168.0.1"),
+ // which newer kernals seem to automatically translate.
+ // So assume that we have been given an IP Address and translate
+ // that instead, similar to the above for windows.
+ ACE_INET_Addr interface_addr;
+ if (interface_addr.set (mcast_addr.get_port_number (), net_if) == -1)
+ return -1; // Still doesn't work, unknown device specified.
+ lmreq.imr_interface.s_addr =
+ ACE_HTONL (interface_addr.get_ip_address ());
+ }
+ else
+ {
+ sockaddr_in *socket_address =
+ reinterpret_cast<sockaddr_in*> (&if_address.ifr_addr);
+ lmreq.imr_interface.s_addr = socket_address->sin_addr.s_addr;
+ }
#endif /* ACE_WIN32 || __INTERIX */
}
else
@@ -589,7 +601,7 @@ ACE_SOCK_Dgram::make_multicast_ifaddr6 (ipv6_mreq *ret_mreq,
const ACE_INET_Addr &mcast_addr,
const ACE_TCHAR *net_if)
{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::make_multicast_ifaddr6");
+ ACE_TRACE ("ACE_SOCK_Dgram::make_multicast_ifaddr6");
ipv6_mreq lmreq; // Scratch copy.
ACE_OS::memset (&lmreq,
diff --git a/ACE/ace/SSL/SSL_Context.cpp b/ACE/ace/SSL/SSL_Context.cpp
index cca47377cde..4da213484a7 100644
--- a/ACE/ace/SSL/SSL_Context.cpp
+++ b/ACE/ace/SSL/SSL_Context.cpp
@@ -236,6 +236,7 @@ ACE_SSL_Context::set_mode (int mode)
switch (mode)
{
+#if !defined (OPENSSL_NO_SSL2)
case ACE_SSL_Context::SSLv2_client:
method = ::SSLv2_client_method ();
break;
@@ -245,6 +246,7 @@ ACE_SSL_Context::set_mode (int mode)
case ACE_SSL_Context::SSLv2:
method = ::SSLv2_method ();
break;
+#endif /* OPENSSL_NO_SSL2 */
case ACE_SSL_Context::SSLv3_client:
method = ::SSLv3_client_method ();
break;
@@ -339,10 +341,12 @@ ACE_SSL_Context::load_trusted_ca (const char* ca_file,
|| mode_ == SSLv23_server
|| mode_ == TLSv1
|| mode_ == TLSv1_server
- || mode_ == SSLv3
- || mode_ == SSLv3_server
+#if !defined (OPENSSL_NO_SSL2)
|| mode_ == SSLv2
- || mode_ == SSLv2_server)
+ || mode_ == SSLv2_server
+#endif /* !OPENSSL_NO_SSL2 */
+ || mode_ == SSLv3
+ || mode_ == SSLv3_server)
{
// Note: The STACK_OF(X509_NAME) pointer is a copy of the pointer in
// the CTX; any changes to it by way of these function calls will
diff --git a/ACE/ace/SSL/SSL_Context.h b/ACE/ace/SSL/SSL_Context.h
index 438fb19eb81..252613d389a 100644
--- a/ACE/ace/SSL/SSL_Context.h
+++ b/ACE/ace/SSL/SSL_Context.h
@@ -104,10 +104,12 @@ public:
enum {
INVALID_METHOD = -1,
+#if !defined (OPENSSL_NO_SSL2)
SSLv2_client = 1,
SSLv2_server,
SSLv2,
- SSLv3_client,
+#endif /* !OPENSSL_NO_SSL2 */
+ SSLv3_client = 4,
SSLv3_server,
SSLv3,
SSLv23_client,
diff --git a/ACE/ace/SV_Message_Queue.cpp b/ACE/ace/SV_Message_Queue.cpp
index 332464d52df..6118fce8c40 100644
--- a/ACE/ace/SV_Message_Queue.cpp
+++ b/ACE/ace/SV_Message_Queue.cpp
@@ -21,7 +21,8 @@ ACE_SV_Message_Queue::dump (void) const
#endif /* ACE_HAS_DUMP */
}
-ACE_SV_Message_Queue::ACE_SV_Message_Queue (void)
+ACE_SV_Message_Queue::ACE_SV_Message_Queue (void) :
+ internal_id_ (-1)
{
ACE_TRACE ("ACE_SV_Message_Queue::ACE_SV_Message_Queue");
}
diff --git a/ACE/ace/SV_Message_Queue.inl b/ACE/ace/SV_Message_Queue.inl
index b84f6379901..a8cd134776c 100644
--- a/ACE/ace/SV_Message_Queue.inl
+++ b/ACE/ace/SV_Message_Queue.inl
@@ -38,7 +38,7 @@ ACE_INLINE int
ACE_SV_Message_Queue::remove (void)
{
ACE_TRACE ("ACE_SV_Message_Queue::remove");
- int result = this->control (IPC_RMID);
+ int const result = this->control (IPC_RMID);
this->internal_id_ = -1;
return result;
}
diff --git a/ACE/ace/SV_Semaphore_Simple.cpp b/ACE/ace/SV_Semaphore_Simple.cpp
index dbc8f139580..bdf4531f4e1 100644
--- a/ACE/ace/SV_Semaphore_Simple.cpp
+++ b/ACE/ace/SV_Semaphore_Simple.cpp
@@ -211,7 +211,8 @@ ACE_SV_Semaphore_Simple::~ACE_SV_Semaphore_Simple (void)
this->close ();
}
-ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple (void)
+ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple (void) :
+ sem_number_ (0)
{
ACE_TRACE ("ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple");
this->init ();
diff --git a/ACE/ace/Service_Config.h b/ACE/ace/Service_Config.h
index d25e72ed280..3865e75b152 100644
--- a/ACE/ace/Service_Config.h
+++ b/ACE/ace/Service_Config.h
@@ -57,6 +57,33 @@ class ACE_DLL;
ACE_TEXT ("() \"") \
ACE_TEXT (parameters) \
ACE_TEXT ("\"")
+#if defined (ACE_VERSIONED_SO) && (ACE_VERSIONED_SO == 2)
+#define ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(ident, libpathname, version, objectclass, parameters) \
+ ACE_TEXT ("dynamic ") \
+ ACE_TEXT (ident) \
+ ACE_TEXT (" Service_Object * ") \
+ ACE_DLL_PREFIX \
+ ACE_TEXT (libpathname) \
+ ACE_TEXT ("-") \
+ ACE_TEXT (version) \
+ ACE_DLL_SUFFIX \
+ ACE_TEXT (":") \
+ ACE_TEXT (objectclass) \
+ ACE_TEXT ("() \"") \
+ ACE_TEXT (parameters) \
+ ACE_TEXT ("\"")
+#else
+#define ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(ident, libpathname, version, objectclass, parameters) \
+ ACE_TEXT ("dynamic ") \
+ ACE_TEXT (ident) \
+ ACE_TEXT (" Service_Object * ") \
+ ACE_TEXT (libpathname) \
+ ACE_TEXT (":") \
+ ACE_TEXT (objectclass) \
+ ACE_TEXT ("() \"") \
+ ACE_TEXT (parameters) \
+ ACE_TEXT ("\"")
+#endif /* ACE_VERSIONED_SO */
#define ACE_REMOVE_SERVICE_DIRECTIVE(ident) \
ACE_TEXT ("remove ") \
ACE_TEXT (ident)
@@ -80,6 +107,37 @@ class ACE_Svc_Conf_Param;
ACE_TEXT (" params=\"") \
ACE_TEXT (parameters) \
ACE_TEXT ("\"/></dynamic></ACE_Svc_Conf>")
+#if defined (ACE_VERSIONED_SO) && (ACE_VERSIONED_SO == 2)
+#define ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(ident, libpathname, version, objectclass, parameters) \
+ ACE_TEXT ("<ACE_Svc_Conf><dynamic id=\"") \
+ ACE_TEXT (ident) \
+ ACE_TEXT ("\" type=\"Service_Object\">") \
+ ACE_TEXT ("<initializer path=\"") \
+ ACE_DLL_PREFIX \
+ ACE_TEXT (libpathname) \
+ ACE_TEXT ("-") \
+ ACE_TEXT (version) \
+ ACE_DLL_SUFFIX \
+ ACE_TEXT ("\" init=\"") \
+ ACE_TEXT (objectclass) \
+ ACE_TEXT ("\"") \
+ ACE_TEXT (" params=\"") \
+ ACE_TEXT (parameters) \
+ ACE_TEXT ("\"/></dynamic></ACE_Svc_Conf>")
+#else
+#define ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(ident, libpathname, version, objectclass, parameters) \
+ ACE_TEXT ("<ACE_Svc_Conf><dynamic id=\"") \
+ ACE_TEXT (ident) \
+ ACE_TEXT ("\" type=\"Service_Object\">") \
+ ACE_TEXT ("<initializer path=\"") \
+ ACE_TEXT (libpathname) \
+ ACE_TEXT ("\" init=\"") \
+ ACE_TEXT (objectclass) \
+ ACE_TEXT ("\"") \
+ ACE_TEXT (" params=\"") \
+ ACE_TEXT (parameters) \
+ ACE_TEXT ("\"/></dynamic></ACE_Svc_Conf>")
+#endif
#define ACE_REMOVE_SERVICE_DIRECTIVE(ident) \
ACE_TEXT ("<ACE_Svc_Conf><remove id=\"") \
ACE_TEXT (ident) \
diff --git a/ACE/ace/Sig_Adapter.cpp b/ACE/ace/Sig_Adapter.cpp
index 3fec1f5c2a3..9de42c7f525 100644
--- a/ACE/ace/Sig_Adapter.cpp
+++ b/ACE/ace/Sig_Adapter.cpp
@@ -2,13 +2,12 @@
#include "ace/Sig_Adapter.h"
-
-
-
ACE_Sig_Adapter::ACE_Sig_Adapter (ACE_Sig_Action &sa, int sigkey)
: sigkey_ (sigkey),
type_ (SIG_ACTION),
- sa_ (sa)
+ sa_ (sa),
+ eh_ (0),
+ sig_func_ (0)
{
// ACE_TRACE ("ACE_Sig_Adapter::ACE_Sig_Adapter");
}
@@ -17,7 +16,8 @@ ACE_Sig_Adapter::ACE_Sig_Adapter (ACE_Event_Handler *eh,
int sigkey)
: sigkey_ (sigkey),
type_ (ACE_HANDLER),
- eh_ (eh)
+ eh_ (eh),
+ sig_func_ (0)
{
// ACE_TRACE ("ACE_Sig_Adapter::ACE_Sig_Adapter");
}
@@ -26,6 +26,7 @@ ACE_Sig_Adapter::ACE_Sig_Adapter (ACE_Sig_Handler_Ex sig_func,
int sigkey)
: sigkey_ (sigkey),
type_ (C_FUNCTION),
+ eh_ (0),
sig_func_ (sig_func)
{
// ACE_TRACE ("ACE_Sig_Adapter::ACE_Sig_Adapter");
diff --git a/ACE/ace/Sig_Handler.cpp b/ACE/ace/Sig_Handler.cpp
index 7f9d35ce4c7..87b052162fa 100644
--- a/ACE/ace/Sig_Handler.cpp
+++ b/ACE/ace/Sig_Handler.cpp
@@ -215,8 +215,10 @@ ACE_Sig_Handler::remove_handler_i (int signum,
// Allow the event handler to close down if necessary.
if (eh)
- eh->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::SIGNAL_MASK);
+ {
+ eh->handle_close (ACE_INVALID_HANDLE,
+ ACE_Event_Handler::SIGNAL_MASK);
+ }
// Register either the new disposition or restore the default.
return new_disp->register_action (signum, old_disp);
diff --git a/ACE/ace/Signal.h b/ACE/ace/Signal.h
index 406181d04df..15ab3d34519 100644
--- a/ACE/ace/Signal.h
+++ b/ACE/ace/Signal.h
@@ -28,7 +28,7 @@
#include "ace/OS_NS_signal.h"
-// Type of the extended signal handler.
+/// Type of the extended signal handler.
typedef void (*ACE_Sig_Handler_Ex) (int, siginfo_t *siginfo, ucontext_t *ucontext);
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Strategies_T.cpp b/ACE/ace/Strategies_T.cpp
index d4feb31c62b..f62f8ae2195 100644
--- a/ACE/ace/Strategies_T.cpp
+++ b/ACE/ace/Strategies_T.cpp
@@ -314,7 +314,9 @@ ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open
// socket handle is "ready" and when we call <accept>. During this
// interval, the client can shutdown the connection, in which case,
// the <accept> call can hang!
- this->peer_acceptor_.enable (ACE_NONBLOCK);
+ if (this->peer_acceptor_.enable (ACE_NONBLOCK) == -1)
+ return -1;
+
return 0;
}
diff --git a/ACE/ace/TSS_T.inl b/ACE/ace/TSS_T.inl
index a6351ec6448..a566320dde8 100644
--- a/ACE/ace/TSS_T.inl
+++ b/ACE/ace/TSS_T.inl
@@ -76,7 +76,7 @@ ACE_TSS<TYPE>::ts_value (ACE_TSS_Adapter *new_tss_adapter) const
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Thread::setspecific() failed!")));
+ ACE_TEXT ("Error: ACE_Thread::setspecific() failed!")));
return -1;
}
@@ -90,7 +90,7 @@ ACE_TSS<TYPE>::ts_value (TYPE *new_ts_obj) const
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Thread::setspecific() failed!")));
+ ACE_TEXT ("Error: ACE_Thread::setspecific() failed!")));
return -1;
}
diff --git a/ACE/ace/Test_and_Set.h b/ACE/ace/Test_and_Set.h
index d72c3d474b0..c26836d139c 100644
--- a/ACE/ace/Test_and_Set.h
+++ b/ACE/ace/Test_and_Set.h
@@ -26,13 +26,11 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
*
* @brief Implements the classic ``test and set'' operation.
*
- *
- * This class keeps track of the status of <is_set_>, which can
- * be set based on various events (such as receipt of a
- * signal). This class is derived from ACE_Event_Handler so
- * that it can be "signaled" by a Reactor when a signal occurs.
- * We assume that <TYPE> is a data type that can be assigned the
- * value 0 or 1.
+ * This class keeps track of the status of <is_set_>, which can be
+ * set based on various events (such as receipt of a signal).
+ * This class is derived from ACE_Event_Handler so that it can be
+ * "signaled" by a Reactor when a signal occurs. We assume that
+ * <TYPE> is a data type that can be assigned the value 0 or 1.
*/
template <class ACE_LOCK, class TYPE>
class ACE_Test_and_Set : public ACE_Event_Handler
diff --git a/ACE/ace/Throughput_Stats.cpp b/ACE/ace/Throughput_Stats.cpp
index 9753c0c2481..a021fe2a705 100644
--- a/ACE/ace/Throughput_Stats.cpp
+++ b/ACE/ace/Throughput_Stats.cpp
@@ -40,11 +40,11 @@ ACE_Throughput_Stats::accumulate (const ACE_Throughput_Stats &rhs)
if (this->samples_count () == 0u)
{
this->throughput_last_ = rhs.throughput_last_;
- return;
}
-
- if (this->throughput_last_ < rhs.throughput_last_)
- this->throughput_last_ = rhs.throughput_last_;
+ else if (this->throughput_last_ < rhs.throughput_last_)
+ {
+ this->throughput_last_ = rhs.throughput_last_;
+ }
}
void
diff --git a/ACE/ace/Timer_Hash_T.h b/ACE/ace/Timer_Hash_T.h
index 77200c943bc..75b0d1ee8fc 100644
--- a/ACE/ace/Timer_Hash_T.h
+++ b/ACE/ace/Timer_Hash_T.h
@@ -29,6 +29,7 @@ template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME
class ACE_Timer_Hash_T;
template <typename TYPE>
class Hash_Token;
+class ACE_Event_Handler;
/**
* @class ACE_Timer_Hash_Upcall
diff --git a/ACE/ace/Timer_Queue_Iterator.cpp b/ACE/ace/Timer_Queue_Iterator.cpp
index 7a6b4b8d137..83d8d16f9b3 100644
--- a/ACE/ace/Timer_Queue_Iterator.cpp
+++ b/ACE/ace/Timer_Queue_Iterator.cpp
@@ -33,6 +33,10 @@ ACE_Timer_Node_T<TYPE>::dump (void) const
template <class TYPE>
ACE_Timer_Node_T<TYPE>::ACE_Timer_Node_T (void)
+ : act_ (0),
+ prev_ (0),
+ next_ (0),
+ timer_id_ (-1)
{
ACE_TRACE ("ACE_Timer_Node_T::ACE_Timer_Node_T");
}
diff --git a/ACE/ace/Timer_Queue_Iterator.h b/ACE/ace/Timer_Queue_Iterator.h
index 66145fa2e33..b852df5f06e 100644
--- a/ACE/ace/Timer_Queue_Iterator.h
+++ b/ACE/ace/Timer_Queue_Iterator.h
@@ -115,9 +115,9 @@ public:
void set_timer_id (long timer_id);
/// Get the dispatch info. The dispatch information is got
- /// through <info>. This form helps us in preventing allocation and
+ /// through @a info. This form helps us in preventing allocation and
/// deleting data along the criticl path.
- /// @@TODO: We may want to have a copying version too, so that our
+ /// @todo We may want to have a copying version too, so that our
/// interface will be complete..
void get_dispatch_info (ACE_Timer_Node_Dispatch_Info_T <TYPE> &info);
diff --git a/ACE/ace/Version.h b/ACE/ace/Version.h
index d87b6661a85..d775c5abd6c 100644
--- a/ACE/ace/Version.h
+++ b/ACE/ace/Version.h
@@ -5,5 +5,5 @@
#define ACE_MAJOR_VERSION 6
#define ACE_MINOR_VERSION 1
-#define ACE_BETA_VERSION 4
-#define ACE_VERSION "6.1.4"
+#define ACE_BETA_VERSION 7
+#define ACE_VERSION "6.1.7"
diff --git a/ACE/ace/XML_Utils/ACE_XML_Utils.pc.in b/ACE/ace/XML_Utils/ACE_XML_Utils.pc.in
new file mode 100644
index 00000000000..9b267ae548a
--- /dev/null
+++ b/ACE/ace/XML_Utils/ACE_XML_Utils.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: ACE_XML_Utils
+Description: ACE XML Utilities Library
+Requires: ACE
+Version: @VERSION@
+Libs: -L${libdir} -lACE_XML_Utils
+Cflags: -I${includedir}
diff --git a/ACE/ace/XML_Utils/XML.mpc b/ACE/ace/XML_Utils/XML.mpc
index dc83dd836b8..a1ff434efbf 100644
--- a/ACE/ace/XML_Utils/XML.mpc
+++ b/ACE/ace/XML_Utils/XML.mpc
@@ -37,4 +37,8 @@ project (ACE_XML_Utils) : install, acelib, xerces, ace_output {
XML_Schema_Resolver.cpp
XML_Typedefs.cpp
}
+
+ Pkgconfig_Files {
+ ACE_XML_Utils.pc.in
+ }
}
diff --git a/ACE/ace/ace.mpc b/ACE/ace/ace.mpc
index 454e3d461f4..7dddd64d40d 100644
--- a/ACE/ace/ace.mpc
+++ b/ACE/ace/ace.mpc
@@ -27,7 +27,6 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
ATM_Stream.cpp
Atomic_Op.cpp
Atomic_Op_Sparc.c
- Auto_Event.cpp
Barrier.cpp
Base_Thread_Adapter.cpp
Based_Pointer_Repository.cpp
@@ -61,7 +60,7 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Dump.cpp
Dynamic.cpp
Dynamic_Message_Strategy.cpp
- Event.cpp
+ Event_Base.cpp
Event_Handler.cpp
Event_Handler_Handle_Timeout_Upcall.cpp
FIFO.cpp
@@ -109,7 +108,6 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
LSOCK_Stream.cpp
Malloc.cpp
Malloc_Allocator.cpp
- Manual_Event.cpp
MEM_Acceptor.cpp
MEM_Addr.cpp
MEM_Connector.cpp
@@ -295,6 +293,7 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Asynch_Connector.cpp
Atomic_Op_T.cpp
Atomic_Op_GCC_T.cpp
+ Auto_Event.cpp
Auto_Functor.cpp
Auto_IncDec_T.cpp
Auto_Ptr.cpp
@@ -311,6 +310,7 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Dump_T.cpp
Dynamic_Service.cpp
Env_Value_T.cpp
+ Event.cpp
Event_Handler_T.cpp
Framework_Component_T.cpp
Free_List.cpp
@@ -331,6 +331,7 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Lock_Adapter_T.cpp
Malloc_T.cpp
Managed_Object.cpp
+ Manual_Event.cpp
Map_Manager.cpp
Map_T.cpp
Message_Block_T.cpp
@@ -403,6 +404,7 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Condition_T.h
Countdown_Time.h
Default_Constants.h
+ Event_Base.h
Global_Macros.h
Guard_T.h
Hash_Map_Manager.h
diff --git a/ACE/ace/ace_for_tao.mpc b/ACE/ace/ace_for_tao.mpc
index 3b719ed8f6c..1ddad6ddd26 100644
--- a/ACE/ace/ace_for_tao.mpc
+++ b/ACE/ace/ace_for_tao.mpc
@@ -24,7 +24,6 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Argv_Type_Converter.cpp
Assert.cpp
Atomic_Op.cpp
- Auto_Event.cpp
Barrier.cpp // Required by orbsvcs/tests/Notify/lib
Base_Thread_Adapter.cpp
Based_Pointer_Repository.cpp
@@ -48,7 +47,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Dump.cpp
Dynamic.cpp
Dynamic_Message_Strategy.cpp
- Event.cpp
+ Event_Base.cpp
Event_Handler.cpp
Event_Handler_Handle_Timeout_Upcall.cpp
FILE.cpp
@@ -81,7 +80,6 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Logging_Strategy.cpp
Malloc.cpp
Malloc_Allocator.cpp
- Manual_Event.cpp
Mem_Map.cpp
Message_Block.cpp
Message_Queue.cpp
@@ -217,6 +215,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Arg_Shifter.cpp
ARGV.cpp
Atomic_Op_T.cpp
+ Auto_Event.cpp
Auto_Functor.cpp
Auto_IncDec_T.cpp
Auto_Ptr.cpp
@@ -233,6 +232,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Dump_T.cpp
Dynamic_Service.cpp
Env_Value_T.cpp
+ Event.cpp
Event_Handler_T.cpp
Framework_Component_T.cpp
Free_List.cpp
@@ -247,6 +247,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Lock_Adapter_T.cpp
Malloc_T.cpp
Managed_Object.cpp
+ Manual_Event.cpp
Map_Manager.cpp
Map_T.cpp
Message_Block_T.cpp
@@ -312,6 +313,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Condition_T.h
Countdown_Time.h
Default_Constants.h
+ Event_Base.h
Exception_Macros.h
Global_Macros.h
Guard_T.h
diff --git a/ACE/ace/config-hpux-11.00.h b/ACE/ace/config-hpux-11.00.h
index 7df5bd584a3..505f703434f 100644
--- a/ACE/ace/config-hpux-11.00.h
+++ b/ACE/ace/config-hpux-11.00.h
@@ -231,10 +231,9 @@
// HP-UX 11 has reentrant netdb functions. The catch is that the old
// functions (gethostbyname, etc.) are thread-safe and the _r versions are
-// not used and will be removed at some point. So, define things so
-// the _r versions are not used. This will slow things down a bit due to
-// the extra mutex lock in the ACE_NETDBCALL_RETURN macro, and will be fixed
-// in the future (problem ID P64).
+// obsolescent. So, define things so the _r versions are not used.
+// OS_NS_netdb.inl ensures no funny lock games are played in the
+// ACE_NETDBCALL_RETURN macro.
#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
/* Platform lacks pri_t (e.g., Tandem NonStop UNIX). */
diff --git a/ACE/ace/config-macosx-mountain-lion.h b/ACE/ace/config-macosx-mountain-lion.h
new file mode 100644
index 00000000000..4173495276c
--- /dev/null
+++ b/ACE/ace/config-macosx-mountain-lion.h
@@ -0,0 +1,7 @@
+// $Id$
+#ifndef ACE_CONFIG_MACOSX_MOUNTAIN_LION_H
+#define ACE_CONFIG_MACOSX_MOUNTAIN_LION_H
+
+#include "ace/config-macosx-lion.h"
+
+#endif // ACE_CONFIG_MACOSX_MOUNTAIN_LION_H
diff --git a/ACE/bin/diff-builds-and-group-fixed-tests-only.sh b/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
index 5004090f340..6389dd876ce 100755
--- a/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
+++ b/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
@@ -3,7 +3,7 @@
if test -z $1; then newdate=`date -u +%Y_%m_%d`; else newdate=$1; fi
if test -z $2; then prefix=`date -u +%Y%m%d%a`; else prefix=$2; fi
-if test -z $3; then olddate=2012_08_29; else olddate=$3; fi
+if test -z $3; then olddate=2012_12_27; else olddate=$3; fi
if test -z $ACE_ROOT; then ACE_ROOT=..; fi
if test -z $TAO_ROOT; then TAO_ROOT=${ACE_ROOT}/TAO; fi
if test -z $CIAO_ROOT; then CIAO_ROOT=${TAO_ROOT}/CIAO; fi
diff --git a/ACE/bin/fuzz.pl b/ACE/bin/fuzz.pl
index 87bc223b140..f916e9263c0 100755
--- a/ACE/bin/fuzz.pl
+++ b/ACE/bin/fuzz.pl
@@ -472,6 +472,7 @@ sub check_for_ACE_Thread_Mutex ()
}
if (/FUZZ\: enable check_for_ACE_Thread_Mutex/) {
$disable = 0;
+ next;
}
if ($disable == 0 and /ACE_Thread_Mutex/) {
# It is okay to use ACE_Thread_Mutex in ACE
diff --git a/ACE/debian/ACE-DPKG.mwc b/ACE/debian/ACE-DPKG.mwc
deleted file mode 100644
index 1aaacf13c94..00000000000
--- a/ACE/debian/ACE-DPKG.mwc
+++ /dev/null
@@ -1,34 +0,0 @@
-// $Id$
-
-workspace {
- exclude {
- .pc
-
- TAO
- performance-tests
-
- examples
- ACEXML/examples
- ASNMP
-
- tests
- Kokyu/tests
- ACEXML/tests
- apps/gperf/tests
- apps/drwho
- apps/Gateway
- apps/AWS
- apps/JAWS
- apps/JAWS2
- apps/JAWS3
- apps/mkcsregdb
- apps/soreduce
-
- websvcs
- contrib
- protocols/tests
- protocols/examples
-
- netsvcs/clients
- }
-}
diff --git a/ACE/debian/README.source b/ACE/debian/README.source
index f975b7c97c2..33734bbdb11 100644
--- a/ACE/debian/README.source
+++ b/ACE/debian/README.source
@@ -11,9 +11,7 @@
When preparing a new release, there are several things to remember:
- - Update patch 34-bts386713 (change soversions)
-
- - Regenerate the list of include files for libace-inet-dev and
+- Regenerate the list of include files for libace-inet-dev and
libace-inet-ssl-dev:
From debian/tmp:
@@ -21,14 +19,14 @@ When preparing a new release, there are several things to remember:
$ find . -type f | grep -vi https | grep -vi ssl --> These go to libace-inet-dev
The ones matching HTTPS or SSL go in libace-inet-ssl-dev.install:
-
+
usr/include/ace/INet/*SSL*
usr/include/ace/INet/*HTTPS*
But that might need updating if ACE_INet_SSL starts supporting FTPS or others
libace-inet-ssl-dev requires libace-inet-dev
-
+
Also, make sure none of the files in libace-inet-dev include anything from
libace-inet-ssl-dev. Test with:
diff --git a/ACE/debian/TAO-DPKG.mwc b/ACE/debian/TAO-DPKG.mwc
deleted file mode 100644
index 4726bfa99ab..00000000000
--- a/ACE/debian/TAO-DPKG.mwc
+++ /dev/null
@@ -1,27 +0,0 @@
-// $Id$
-
-workspace {
- exclude {
- .pc
- examples
- orbsvcs/examples
-
- performance-tests
- orbsvcs/tests/Notify/performance-tests
- orbsvcs/performance-tests
-
- interop-tests
-
- tests
- examples/PluggableUDP/tests
- orbsvcs/tests
- orbsvcs/examples/CosEC/RtEC_Based/tests
-
- docs
- DevGuideExamples
- orbsvcs/DevGuideExamples
- utils/logWalker
- utils/monitor
- }
-}
-
diff --git a/ACE/debian/ace-netsvcs.doc-base b/ACE/debian/ace-netsvcs.doc-base
deleted file mode 100644
index 9e20176dac6..00000000000
--- a/ACE/debian/ace-netsvcs.doc-base
+++ /dev/null
@@ -1,10 +0,0 @@
-Document: ace-netsvcs
-Title: ACE network services
-Author: Douglas C. Schmidt and his research group
-Abstract: This document describes the ACE network services: naming, time,
- token, and logging services.
-Section: Programming/C++
-
-Format: html
-Index: /usr/share/doc/ace-netsvcs/ACE-netsvcs.html
-Files: /usr/share/doc/ace-netsvcs/*.html
diff --git a/ACE/debian/ace-netsvcs.docs b/ACE/debian/ace-netsvcs.docs
deleted file mode 100644
index 307913e25f2..00000000000
--- a/ACE/debian/ace-netsvcs.docs
+++ /dev/null
@@ -1,3 +0,0 @@
-PROBLEM-REPORT-FORM
-netsvcs/servers/README
-netsvcs/ACE-netsvcs.html
diff --git a/ACE/debian/ace-netsvcs.install b/ACE/debian/ace-netsvcs.install
deleted file mode 100644
index 61f06619abb..00000000000
--- a/ACE/debian/ace-netsvcs.install
+++ /dev/null
@@ -1,2 +0,0 @@
-../../netsvcs/servers/ace_netsvcs usr/bin
-../../netsvcs/servers/svc.conf* usr/share/ace-netsvcs
diff --git a/ACE/debian/ace-netsvcs.manpages b/ACE/debian/ace-netsvcs.manpages
deleted file mode 100644
index 43bf0f7a731..00000000000
--- a/ACE/debian/ace-netsvcs.manpages
+++ /dev/null
@@ -1 +0,0 @@
-debian/ace_netsvcs.1
diff --git a/ACE/debian/ace.dsc b/ACE/debian/ace.dsc
index bb734b56f06..81ce56052f1 100644
--- a/ACE/debian/ace.dsc
+++ b/ACE/debian/ace.dsc
@@ -1,10 +1,10 @@
Format: 1.0
-Source: ACE+TAO+CIAO-src-6.1.4
-Version: 2.1.4
+Source: ACE+TAO+CIAO-src-6.1.7
+Version: 2.1.7
Binary: ace
Maintainer: Johnny Willemsen <jwillemsen@remedy.nl>
Architecture: any
Build-Depends: gcc, make, g++, debhelper (>= 5), libssl-dev (>= 0.9.7d), dpatch (>= 2.0.10), libxt-dev (>= 4.3.0), libfltk1.1-dev (>= 1.1.4), libqt4-dev (>= 4.4~rc1-4), tk-dev (>= 8.4.7), zlib1g-dev, docbook-to-man, bzip2, autoconf, automake, libtool, autotools-dev, doxygen, graphviz
Files:
- 65b34001c9605f056713a7e146b052d1 46346654 ACE+TAO+CIAO-src-6.1.4.tar.gz
+ 65b34001c9605f056713a7e146b052d1 46346654 ACE+TAO+CIAO-src-6.1.7.tar.gz
diff --git a/ACE/debian/debian.changelog b/ACE/debian/debian.changelog
index bddb3b02cd7..bd10dc517d8 100644
--- a/ACE/debian/debian.changelog
+++ b/ACE/debian/debian.changelog
@@ -1,3 +1,15 @@
+ace (6.1.7-1) experimental; urgency=low
+
+ * New upstream release.
+
+ -- Johnny Willemsen <jwillemsen@remedy.nl> Thu, 27 Dec 2012 11:16:01 +0200
+
+ace (6.1.6-1) experimental; urgency=low
+
+ * New upstream release.
+
+ -- Johnny Willemsen <jwillemsen@remedy.nl> Wed, 28 Nov 2012 20:51:01 +0200
+
ace (6.1.2-1) experimental; urgency=low
* New upstream release.
@@ -189,7 +201,7 @@ ace (5.7.7-3) unstable; urgency=low
[ Marek Brudka ]
* Configuration file for KFreeBSD created. Closes: #591586.
* Restored pkgconfig files. Closes: #591610.
- * Provided manpages for tao_catior, tao_nslist, tao_nsdel,
+ * Provided manpages for tao_catior, tao_nslist, tao_nsdel,
tao_nsadd, ace_netsvcs.
[ Thomas Girard ]
@@ -293,7 +305,7 @@ ace (5.6.3-6) unstable; urgency=low
[ Pau Garcia i Quiles ]
* Add new patches:
- Remove duplicate files from .mpc files so that Makefile.am files do
- not have duplicates
+ not have duplicates
- Run autoupdate and autoreconf in the ACE and TAO directories in order
to update from libtool 1.5 (what upstream uses) to libtool 2.2
@@ -553,9 +565,9 @@ ace (5.4.7-6) unstable; urgency=low
* debian/patches/16-g++4-visibility-tweaks.dpatch:
Backport upstream tweaks for g++ 4 visibility feature and disable
visibility hiding for now. (Closes: #324271).
- * debian/rules: g++ 4.0.2 was ICE'ing on #pragma once. This is no
+ * debian/rules: g++ 4.0.2 was ICE'ing on #pragma once. This is no
longer true as of g++-4.0_4.0.2-4, so we can use g++4 again. For the
- record, another possible fix was to #define ACE_LACKS_PRAGMA_ONCE in
+ record, another possible fix was to #define ACE_LACKS_PRAGMA_ONCE in
`$ACE_ROOT/ace/config.h`.
* Add `c2a` suffix to all libs for libstdc++ allocator change.
(Closes: #339142).
@@ -606,7 +618,7 @@ ace (5.4.7-1) unstable; urgency=low
-- Konstantinos Margaritis <markos@debian.org> Fri, 12 Aug 2005 12:45:13 +0300
ace (5.4.2.1.0-4) unstable; urgency=high
-
+
* Thomas Girard <thomas.g.girard@free.fr>
- debian/control:
o libacexml-dev depends on libace-dev.
@@ -617,7 +629,7 @@ ace (5.4.2.1.0-4) unstable; urgency=high
reported by lintian.
- debian/libciao-dev.install: add missing .idl and .pidl files.
(Closes: #307258)
-
+
-- Thomas Girard <thomas.g.girard@free.fr> Mon, 2 May 2005 19:30:01 +0200
ace (5.4.2.1.0-3) unstable; urgency=high
@@ -711,9 +723,9 @@ ace (5.4.2.1-1) unstable; urgency=low
* Konstantinos Margaritis
- Fixed missed path for libACE.so.5.4.2 in dh_shlibdeps
- Fixed incorrect timestamp of original archive (1970 etc).
-
+
-- Konstantinos Margaritis <markos@debian.org> Thu, 2 Sep 2004 23:04:56 +0200
-
+
ace (5.4.0.1-1.1) unstable; urgency=low
* Fixed ACE_NDEBUG configuration of ACE. (Closes: #242881)
@@ -779,7 +791,7 @@ ace (5.3.1-7) unstable; urgency=low
ace (5.3.1-6) unstable; urgency=low
- * Added the ORB services .idl files that were left out from the
+ * Added the ORB services .idl files that were left out from the
libtao-orbsvcs-dev package. (Closes: #213568)
-- Konstantinos Margaritis <markos@debian.org> Sun, 5 Oct 2003 12:31:21 +0300
@@ -805,7 +817,7 @@ ace (5.3.1-3) unstable; urgency=low
* Updated to new standards version 3.6.1
* Fixed the section of a couple of packages.
- * Now the getrlimit, etc functions are always defined
+ * Now the getrlimit, etc functions are always defined
as ints. g++ 3.x does not complain anymore (Closes: #104681).
-- Konstantinos Margaritis <markos@debian.org> Tue, 16 Sep 2003 10:31:03 +0300
@@ -820,7 +832,7 @@ ace (5.3.1-2) unstable; urgency=low
* Full doxygen documentation not included due to size concerns.
(Closes: #108749).
* tao-config included in libtao-dev. (Closes: #159234).
- * All -dev packages carry their respective examples in full and
+ * All -dev packages carry their respective examples in full and
uncompressed. (Closes: #52145, #76967).
* libACE.a is compiled with thread support enabled. (Closes: #126717).
dbbalancer now builds successfully with -static.
@@ -861,7 +873,7 @@ ace (5.2.4-1.2) unstable; urgency=low
ace (5.2.4-1.1) unstable; urgency=low
- * gcc-3.2 transition, NMU patch by Andreas Metzler <ametzler@debian.org>
+ * gcc-3.2 transition, NMU patch by Andreas Metzler <ametzler@debian.org>
* (Closes: #188328)
-- Konstantinos Margaritis <markos@debian.org> Fri, 11 Apr 2003 23:25:38 +0200
@@ -931,7 +943,7 @@ ace (5.1.8-5) unstable; urgency=low
5.0 debian packages, since both sets of packages have files with the
same name. libace5.1-dev also conflicts with libace4.6-dev. (#74031)
* Added xlib6g-dev to the list of build dependencies. The X11 libraries
- aren't strictly necessary to build ACE, but the Debian packages enable
+ aren't strictly necessary to build ACE, but the Debian packages enable
ACE's XtReactor support.
* Updated `README.Debian'. The Debian ACE packages are no longer built
using experimental ACE Configuration Project distributions. They are
diff --git a/ACE/debian/debian.compat b/ACE/debian/debian.compat
new file mode 100644
index 00000000000..45a4fb75db8
--- /dev/null
+++ b/ACE/debian/debian.compat
@@ -0,0 +1 @@
+8
diff --git a/ACE/debian/debian.control b/ACE/debian/debian.control
index aa36bdbf02c..eb5bd5f260b 100644
--- a/ACE/debian/debian.control
+++ b/ACE/debian/debian.control
@@ -4,7 +4,7 @@ Priority: optional
Maintainer: Debian ACE+TAO maintainers <pkg-ace-devel@lists.alioth.debian.org>
Uploaders: Thomas Girard <thomas.g.girard@free.fr>, Pau Garcia i Quiles <pgquiles@elpauer.org>, Marek Brudka <mbrudka@aster.pl>
DM-Upload-Allowed: yes
-Build-Depends: debhelper (>= 8.9.7), dpkg-dev (>= 1.16.2), libssl-dev (>= 0.9.7d), libxt-dev (>= 4.3.0), libfltk1.1-dev (>= 1.1.4), libqt4-dev (>= 4.4~rc1-4), tk-dev (>= 8.5), libfox-1.6-dev, zlib1g-dev, libzzip-dev, liblzo2-dev, docbook-to-man, bzip2, libbz2-dev
+Build-Depends: debhelper (>= 5), dpkg-dev, libssl-dev (>= 0.9.7d), libxt-dev (>= 4.3.0), libfltk1.1-dev (>= 1.1.4), libqt4-dev (>= 4.4~rc1-4), tk-dev, libfox-1.6-dev, zlib1g-dev, libzzip-dev, docbook-to-man, bzip2, libbz2-dev
Build-Depends-Indep: doxygen, graphviz
Standards-Version: 3.9.2
Vcs-Git: git://anonscm.debian.org/pkg-ace/pkg-ace.git
@@ -28,7 +28,7 @@ Description: makefile, project, and workspace creator
* mpc-ace: generates project files for a single target
* mwc-ace: generates workspace files for a set of projects
-Package: libace-6.1.4
+Package: libace-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -46,7 +46,7 @@ Description: C++ network programming framework
Package: libace-dev
Architecture: any
Section: libdevel
-Depends: libace-6.1.4 (= ${binary:Version}), ${misc:Depends}
+Depends: libace-6.1.7 (= ${binary:Version}), ${misc:Depends}
Suggests: libace-doc, libtao-dev, pkg-config
Replaces: mpc-ace (<< 5.6.3-4)
Description: C++ network programming framework - development files
@@ -63,7 +63,7 @@ Description: C++ network programming framework - documentation
This package contains the ACE overview documentation, tutorials,
examples, and information regarding upstream development.
-Package: libace-ssl-6.1.4
+Package: libace-ssl-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -74,12 +74,12 @@ Description: ACE secure socket layer library
Package: libace-ssl-dev
Architecture: any
Section: libdevel
-Depends: libace-ssl-6.1.2 (= ${binary:Version}), libace-dev (= ${binary:Version}), libssl-dev (>= 6.1.4d), ${misc:Depends}
+Depends: libace-ssl-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libssl-dev (>= 0.9.7d), ${misc:Depends}
Description: ACE secure socket layer library - development files
This package contains the header files and static library for the ACE
SSL library.
-Package: libace-rmcast-6.1.4
+Package: libace-rmcast-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -93,12 +93,12 @@ Description: ACE reliable multicast library
Package: libace-rmcast-dev
Architecture: any
Section: libdevel
-Depends: libace-rmcast-6.1.4 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libace-rmcast-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE reliable multicast library - development files
This package contains the header files and static library for the ACE
reliable multicast library.
-Package: libace-tmcast-6.1.4
+Package: libace-tmcast-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -112,12 +112,12 @@ Description: ACE transactional multicast library
Package: libace-tmcast-dev
Architecture: any
Section: libdevel
-Depends: libace-tmcast-6.1.4 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libace-tmcast-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE transactional multicast library - development files
This package contains the header files and static library for the ACE
transactional multicast library.
-Package: libace-htbp-6.1.4
+Package: libace-htbp-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -131,12 +131,12 @@ Description: ACE protocol over HTTP tunneling library
Package: libace-htbp-dev
Architecture: any
Section: libdevel
-Depends: libace-htbp-6.1.4 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libace-htbp-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE protocol over HTTP tunneling library - development files
This package contains the header files and static library for the ACE
HTBP library.
-Package: libace-inet-6.1.4
+Package: libace-inet-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -147,15 +147,15 @@ Description: ACE Inet protocol library
Package: libace-inet-dev
Architecture: any
Section: libdevel
-Depends: libace-inet-6.1.4 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libace-inet-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE Inet protocol library - development files
This package contains the header files and static library for the ACE
Inet protocol library.
-Package: libace-inet-ssl-6.1.4
+Package: libace-inet-ssl-6.1.7
Architecture: any
Section: libs
-Depends: libace-inet-6.1.2, libace-ssl-6.1.4, ${shlibs:Depends}, ${misc:Depends}
+Depends: libace-inet-6.1.7, libace-ssl-6.1.7, ${shlibs:Depends}, ${misc:Depends}
Description: ACE SSL-enabled Inet protocol library
This package provides an ACE addon library for clients (and possibly
servers at some point) using Inet protocols which support SSL, such as
@@ -164,7 +164,7 @@ Description: ACE SSL-enabled Inet protocol library
Package: libace-inet-ssl-dev
Architecture: any
Section: libdevel
-Depends: libace-inet-ssl-6.1.4 (= ${binary:Version}), libace-inet-dev (= ${binary:Version}), libace-ssl-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libace-inet-ssl-6.1.7 (= ${binary:Version}), libace-inet-dev (= ${binary:Version}), libace-ssl-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE SSL-enabled Inet protocol library - development files
This package contains the header files and static library for the ACE
SSL-enabled Inet protocol library.
@@ -191,7 +191,7 @@ Description: ACE perfect hash function generator (transitional package)
.
It can be safely removed after installation.
-Package: libacexml-6.1.4
+Package: libacexml-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -207,16 +207,16 @@ Package: libacexml-dev
Architecture: any
Section: libdevel
Replaces: libace-dev (<< 5.7.7-4)
-Depends: libacexml-6.1.4 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libacexml-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE SAX based XML parsing library - development files
This package contains the header files and static library for the ACE
XML parsing library.
-Package: libkokyu-6.1.4
+Package: libkokyu-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
-Suggests: libtao-2.1.2, libtao-orbsvcs-2.1.4
+Suggests: libtao-2.1.2, libtao-orbsvcs-2.1.7
Description: ACE scheduling and dispatching library
Kokyu is a library designed to provide flexible scheduling and
dispatching services.
@@ -227,12 +227,12 @@ Description: ACE scheduling and dispatching library
Package: libkokyu-dev
Architecture: any
Section: libdevel
-Depends: libkokyu-6.1.4 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libkokyu-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE scheduling and dispatching library - development files
This package contains the header files and static library for the ACE
scheduling and dispatching library.
-Package: libace-qtreactor-6.1.4
+Package: libace-qtreactor-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -251,12 +251,12 @@ Description: ACE-GUI reactor integration for Qt
Package: libace-qtreactor-dev
Architecture: any
Section: libdevel
-Depends: libace-qtreactor-6.1.4 (= ${binary:Version}), libace-dev (= ${binary:Version}), libqt4-dev, ${misc:Depends}
+Depends: libace-qtreactor-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libqt4-dev, ${misc:Depends}
Description: ACE-GUI reactor integration for Qt - development files
This package contains header files and static library for the ACE-Qt
reactor integration.
-Package: libace-xtreactor-6.1.4
+Package: libace-xtreactor-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -274,12 +274,12 @@ Description: ACE-GUI reactor integration for Xt
Package: libace-xtreactor-dev
Architecture: any
Section: libdevel
-Depends: libace-xtreactor-6.1.2 (= ${binary:Version}), libace-dev (= ${binary:Version}), libxt-dev (>= 6.1.4), ${misc:Depends}
+Depends: libace-xtreactor-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libxt-dev (>= 6.1.7), ${misc:Depends}
Description: ACE-GUI reactor integration for Xt - development files
This package contains header files and static library for the ACE-Xt
reactor integration.
-Package: libace-tkreactor-6.1.4
+Package: libace-tkreactor-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -298,12 +298,12 @@ Description: ACE-GUI reactor integration for Tk
Package: libace-tkreactor-dev
Architecture: any
Section: libdevel
-Depends: libace-tkreactor-6.1.4 (= ${binary:Version}), libace-dev (= ${binary:Version}), tk-dev (>= 8.5), ${misc:Depends}
+Depends: libace-tkreactor-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), tk-dev (>= 8.5), ${misc:Depends}
Description: ACE-GUI reactor integration for Tk - development files
This package contains header files and static library for the ACE-Tk
reactor integration.
-Package: libace-flreactor-6.1.4
+Package: libace-flreactor-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -321,12 +321,12 @@ Description: ACE-GUI reactor integration for Fl
Package: libace-flreactor-dev
Architecture: any
Section: libdevel
-Depends: libace-flreactor-6.1.2 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfltk1.1-dev (>= 6.1.4), ${misc:Depends}
+Depends: libace-flreactor-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfltk1.1-dev (>= 6.1.7), ${misc:Depends}
Description: ACE-GUI reactor integration for Fl - development files
This package contains header files and static library for the ACE-Fl
reactor integration.
-Package: libace-foxreactor-6.1.4
+Package: libace-foxreactor-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -343,12 +343,12 @@ Description: ACE-GUI reactor integration for FOX
Package: libace-foxreactor-dev
Architecture: any
Section: libdevel
-Depends: libace-foxreactor-6.1.4 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfox-1.6-dev, ${misc:Depends}
+Depends: libace-foxreactor-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfox-1.6-dev, ${misc:Depends}
Description: ACE-GUI reactor integration for FOX - development files
This package contains header files and static library for the ACE-FOX
reactor integration.
-Package: libtao-2.1.4
+Package: libtao-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -363,7 +363,7 @@ Package: libtao-dev
Architecture: any
Section: libdevel
Replaces: libtao-orbsvcs-dev (<< 5.7.7-4)
-Depends: libtao-2.1.4 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-2.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Suggests: libtao-doc, libtao-orbsvcs-dev
Description: ACE based CORBA ORB core libraries - development files
This package contains the header files for TAO. Due to the size of
@@ -379,7 +379,7 @@ Description: ACE based CORBA ORB core libraries - documentation
This package contains the TAO overview documentation, tutorials,
examples, and information regarding upstream development.
-Package: libtao-orbsvcs-2.1.4
+Package: libtao-orbsvcs-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -390,14 +390,14 @@ Package: libtao-orbsvcs-dev
Architecture: any
Section: libdevel
Replaces: libtao-dev (<< 5.7.7-4)
-Depends: libtao-orbsvcs-2.1.4 (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-orbsvcs-2.1.7 (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO CORBA services - development files
This package contains the header files for the TAO CORBA services.
.
The examples and some documentation have been included as well, but the
static libraries have been left out due to their size (over 400MB).
-Package: libtao-qtresource-2.1.4
+Package: libtao-qtresource-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -408,12 +408,12 @@ Description: TAO-GUI reactor integration for Qt
Package: libtao-qtresource-dev
Architecture: any
Section: libdevel
-Depends: libtao-qtresource-2.1.4 (= ${binary:Version}), libace-qtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-qtresource-2.1.7 (= ${binary:Version}), libace-qtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO-GUI reactor integration for Qt - development files
This package contains header files and static library for the TAO-Qt
reactor integration.
-Package: libtao-xtresource-2.1.4
+Package: libtao-xtresource-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -424,12 +424,12 @@ Description: TAO-GUI reactor integration for Xt
Package: libtao-xtresource-dev
Architecture: any
Section: libdevel
-Depends: libtao-xtresource-2.1.4 (= ${binary:Version}), libace-xtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-xtresource-2.1.7 (= ${binary:Version}), libace-xtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO-GUI reactor integration for Xt - development files
This package contains header files and static library for the TAO-Xt
reactor integration.
-Package: libtao-flresource-2.1.4
+Package: libtao-flresource-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -440,12 +440,12 @@ Description: TAO-GUI reactor integration for Fl
Package: libtao-flresource-dev
Architecture: any
Section: libdevel
-Depends: libtao-flresource-2.1.4 (= ${binary:Version}), libace-flreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-flresource-2.1.7 (= ${binary:Version}), libace-flreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO-GUI reactor integration for Fl - development files
This package contains header files and static library for the TAO-Fl
reactor integration.
-Package: libtao-tkresource-2.1.4
+Package: libtao-tkresource-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -456,12 +456,12 @@ Description: TAO-GUI reactor integration for Tk
Package: libtao-tkresource-dev
Architecture: any
Section: libdevel
-Depends: libtao-tkresource-2.1.4 (= ${binary:Version}), libace-tkreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-tkresource-2.1.7 (= ${binary:Version}), libace-tkreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO-GUI reactor integration for Tk - development files
This package contains header files and static library for the TAO-Tk
reactor integration.
-Package: libtao-foxresource-2.1.4
+Package: libtao-foxresource-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -472,14 +472,14 @@ Description: TAO-GUI reactor integration for FOX
Package: libtao-foxresource-dev
Architecture: any
Section: libdevel
-Depends: libtao-foxresource-2.1.4 (= ${binary:Version}), libace-foxreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-foxresource-2.1.7 (= ${binary:Version}), libace-foxreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO-GUI reactor integration for FOX - development files
This package contains header files and static library for the TAO-FOX
reactor integration.
Package: tao-idl
Architecture: any
-Depends: g++, libtao-2.1.4 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Depends: g++, libtao-2.1.7 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: TAO IDL to C++ compiler
This package provides an Interface Definition Language (IDL) to C++
compiler.
@@ -489,7 +489,7 @@ Description: TAO IDL to C++ compiler
Package: tao-ifr
Architecture: any
-Depends: g++, libtao-2.1.4 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Depends: g++, libtao-2.1.7 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: TAO interface repository
CORBA-aware programs can contact an interface repository to get
objects' interfaces at run-time. Then they can use the Dynamic
@@ -774,38 +774,3 @@ Description: TAO time service (transitional package)
This package is a transitional package to tao-costime.
.
It can be safely removed after installation.
-
-Package: ace-netsvcs
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: ACE network service implementations
- ACE network services provide reusable components for common
- distributed system tasks such as logging, naming, locking, and time
- synchronization.
- .
- This package contains driver programs and example configuration
- files to link the various ACE network services together, either
- statically or dynamically, and form complete server programs.
-
-Package: libnetsvcs-6.1.2
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: ACE network service implementations - libraries
- ACE network services provide reusable components for common
- distributed system tasks such as logging, naming, locking, and time
- synchronization.
- .
- This package contains runtime libraries for ACE network services.
-
-Package: libnetsvcs-dev
-Architecture: any
-Section: libdevel
-Depends: libnetsvcs-6.1.2 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
-Description: ACE network service implementations - development files
- ACE network services provide reusable components for common
- distributed system tasks such as logging, naming, locking, and time
- synchronization.
- .
- This package contains header files and static library for the ACE
- network services library.
diff --git a/ACE/debian/debian.rules b/ACE/debian/debian.rules
index 9487350e616..ad2c1e37095 100644
--- a/ACE/debian/debian.rules
+++ b/ACE/debian/debian.rules
@@ -8,10 +8,10 @@
MWCFLAGS := -type gnuace -noreldefs
DSO_MAKE_FLAG := versioned_so=2
-INSTALL_FLAGS := DESTDIR=$(CURDIR)/debian/tmp INSTALL_PREFIX=/usr install_rpath=0 $(DSO_MAKE_FLAG)
+export DESTDIR := $(CURDIR)/debian/tmp
+INSTALL_FLAGS := install_rpath=0 $(DSO_MAKE_FLAG)
-MAN1 := debian/ace_netsvcs.1 \
- debian/tao_catior.1 \
+MAN1 := debian/tao_catior.1 \
debian/tao_nslist.1 \
debian/tao_nsadd.1 \
debian/tao_nsdel.1 \
@@ -38,7 +38,8 @@ export MPC_ROOT := $(ACE_ROOT)/MPC
export TAO_ROOT := $(ACE_ROOT)/TAO
export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(ACE_ROOT)/lib
export QTDIR := /usr/share/qt4
-
+export INSTALL_PREFIX := /usr
+export DESTDIR := $(CURDIR)/debian/tmp
%:
dh $@
@@ -50,21 +51,20 @@ configure-stamp:
cp debian/platform_macros.GNU $(ACE_ROOT)/include/makeinclude
cp debian/config*.h $(ACE_ROOT)/ace/
cp debian/default.features $(ACE_ROOT)/bin/MakeProjectCreator/config
- cp debian/ACE-DPKG.mwc $(ACE_ROOT)
- cd $(ACE_ROOT) && $(ACE_ROOT)/bin/mwc.pl $(MWCFLAGS) ACE-DPKG.mwc
- cp debian/TAO-DPKG.mwc $(TAO_ROOT)
- cd $(TAO_ROOT) && $(ACE_ROOT)/bin/mwc.pl $(MWCFLAGS) TAO-DPKG.mwc
+ cd $(TAO_ROOT) && $(ACE_ROOT)/bin/mwc.pl $(MWCFLAGS) TAO_ACE.mwc
touch $@
-override_dh_auto_build-arch: configure-stamp
- $(MAKE) -C $(ACE_ROOT) $(DSO_MAKE_FLAG) $(FIXUP)
- $(MAKE) -C $(TAO_ROOT) $(DSO_MAKE_FLAG) $(FIXUP)
+build: configure-stamp
+ $(MAKE) -j 3 -C $(TAO_ROOT) $(DSO_MAKE_FLAG) $(FIXUP)
-override_dh_auto_install-arch: manpages-stamp
- $(MAKE) -C $(ACE_ROOT) install $(INSTALL_FLAGS) $(FIXUP)
+override_dh_auto_install:
+ dh_auto_install
$(MAKE) -C $(TAO_ROOT) install $(INSTALL_FLAGS) $(FIXUP)
- mkdir -p $(DT)/usr/share/man/man1
- cp $(ACE_ROOT)/apps/gperf/ace_gperf.1 $(DT)/usr/share/man/man1
+ echo create direc
+ mkdir -p -v $(DESTDIR)/usr/share/man/man1
+ echo created
+ cp -v $(ACE_ROOT)/apps/gperf/ace_gperf.1 $(DESTDIR)/usr/share/man/man1
+# touch $(DT)/usr/share/man/man1
# Relocate .idl and .pidl files
cd $(DT) && for f in $$(find usr/include -name '*.idl' -o -name '*.pidl') ; do \
g=$$(echo $${f%%include*}share/idl/$${f##*usr/include/}) ; \
@@ -77,45 +77,41 @@ override_dh_auto_install-arch: manpages-stamp
mv $(DT)/usr/bin/tao_idl $(DT)/usr/bin/tao_ifr $(DT)/usr/lib/ace/TAO
cp debian/tao_idl debian/tao_ifr $(DT)/usr/bin
-override_dh_auto_install-indep:
-
-override_dh_auto_clean-arch:
- [ -f $(ACE_ROOT)/GNUmakefile ] && $(MAKE) -C $(ACE_ROOT) realclean $(DSO_MAKE_FLAG) $(FIXUP) || true
+clean:
[ -f $(TAO_ROOT)/GNUmakefile ] && $(MAKE) -C $(TAO_ROOT) realclean $(DSO_MAKE_FLAG) $(FIXUP) || true
find $(ACE_ROOT) -name 'GNUmakefile*' -o -name '.depend.*' | xargs -r rm
rm -f $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
rm -f $(ACE_ROOT)/bin/MakeProjectCreator/config/default.features
rm -f $(ACE_ROOT)/ace/config.h $(ACE_ROOT)/ace/config-hurd.h
- rm -f $(ACE_ROOT)/ACE-DPKG.mwc $(TAO_ROOT)/TAO-DPKG.mwc
rm -f debian/*.1 debian/mpc-ace.sgml
rm -f *-stamp
# Remove stubs that get generated during TAO compilation but for some reason
# are not removed on make realclean
rm -f `cat debian/TOREMOVE`
-override_dh_auto_clean-indep:
+clean-indep:
rm -Rf $(ACE_ROOT)/html/libace-doc $(ACE_ROOT)/html/libtao-doc $(ACE_ROOT)/html/libacexml-doc
-override_dh_compress:
+compress:
dh_compress -Xexamples
-# Add --list-missing to make sure we don't miss new binaries
-override_dh_install:
- dh_install --list-missing
-
# ACE+TAO has different changelogs. Use the right one in every package.
-override_dh_installchangelogs:
+installchangelogs:
dh_installchangelogs -pace-gperf -pgperf-ace apps/gperf/ChangeLog
dh_installchangelogs -pmpc-ace MPC/ChangeLog
dh_installchangelogs $(addprefix -p,$(ALL_TAO)) TAO/ChangeLog
dh_installchangelogs $(addprefix -p,$(ALL_ACEXML)) ACEXML/ChangeLog
dh_installchangelogs --remaining-packages ChangeLog
+# Add --list-missing to make sure we don't miss new binariesoverride_dh_install: dh_install --list-missing
+
+# Add --list-missing to make sure we don't miss new binaries
+
+override_dh_install:
+ dh_install --list-missing
override_dh_fixperms:
ifneq (,$(filter libtao-doc, $(shell dh_listpackages)))
- chmod -x debian/libtao-doc/usr/share/doc/libtao-doc/examples/RTCORBA/Activity/svc.conf.client
- chmod -x debian/libtao-doc/usr/share/doc/libtao-doc/examples/RTCORBA/Activity/svc.conf.server
- chmod -x debian/libtao-doc/usr/share/doc/libtao-doc/examples/Simulator/DOVEBrowser/make.bat
+# chmod -x debian/libtao-doc/usr/share/doc/libtao-doc/examples/Simulator/DOVEBrowser/make.bat
endif
ifneq (,$(filter libace-doc libtao-doc, $(shell dh_listpackages)))
find debian -name '*.pl' | xargs -r sed -i -e '1i#!/usr/bin/perl'
diff --git a/ACE/debian/default.features b/ACE/debian/default.features
index 8651c9baa7a..1af8d4036cf 100644
--- a/ACE/debian/default.features
+++ b/ACE/debian/default.features
@@ -32,4 +32,3 @@ tao_foxresource = 1
zlib = 1
zzip = 1
bzip2 = 1
-lzo1 = 1
diff --git a/ACE/debian/libace-6.1.4.docs b/ACE/debian/libace-6.1.7.docs
index 3bdab5b0089..3bdab5b0089 100644
--- a/ACE/debian/libace-6.1.4.docs
+++ b/ACE/debian/libace-6.1.7.docs
diff --git a/ACE/debian/libace-6.1.4.install b/ACE/debian/libace-6.1.7.install
index d9afda38c12..d9afda38c12 100644
--- a/ACE/debian/libace-6.1.4.install
+++ b/ACE/debian/libace-6.1.7.install
diff --git a/ACE/debian/libace-flreactor-6.1.4.install b/ACE/debian/libace-flreactor-6.1.7.install
index 528836aacee..528836aacee 100644
--- a/ACE/debian/libace-flreactor-6.1.4.install
+++ b/ACE/debian/libace-flreactor-6.1.7.install
diff --git a/ACE/debian/libace-foxreactor-6.1.4.install b/ACE/debian/libace-foxreactor-6.1.7.install
index e360f29f5af..e360f29f5af 100644
--- a/ACE/debian/libace-foxreactor-6.1.4.install
+++ b/ACE/debian/libace-foxreactor-6.1.7.install
diff --git a/ACE/debian/libace-htbp-6.1.4.install b/ACE/debian/libace-htbp-6.1.7.install
index 08103fd5cad..08103fd5cad 100644
--- a/ACE/debian/libace-htbp-6.1.4.install
+++ b/ACE/debian/libace-htbp-6.1.7.install
diff --git a/ACE/debian/libace-inet-6.1.4.install b/ACE/debian/libace-inet-6.1.7.install
index 59a73a509d0..59a73a509d0 100644
--- a/ACE/debian/libace-inet-6.1.4.install
+++ b/ACE/debian/libace-inet-6.1.7.install
diff --git a/ACE/debian/libace-inet-ssl-6.1.4.install b/ACE/debian/libace-inet-ssl-6.1.7.install
index b9b8b9045f7..b9b8b9045f7 100644
--- a/ACE/debian/libace-inet-ssl-6.1.4.install
+++ b/ACE/debian/libace-inet-ssl-6.1.7.install
diff --git a/ACE/debian/libace-qtreactor-6.1.4.install b/ACE/debian/libace-qtreactor-6.1.7.install
index 1d371e1e571..1d371e1e571 100644
--- a/ACE/debian/libace-qtreactor-6.1.4.install
+++ b/ACE/debian/libace-qtreactor-6.1.7.install
diff --git a/ACE/debian/libace-rmcast-6.1.4.install b/ACE/debian/libace-rmcast-6.1.7.install
index 86e78259853..86e78259853 100644
--- a/ACE/debian/libace-rmcast-6.1.4.install
+++ b/ACE/debian/libace-rmcast-6.1.7.install
diff --git a/ACE/debian/libace-ssl-6.1.4.NEWS b/ACE/debian/libace-ssl-6.1.7.NEWS
index e5bd0e4aa10..e5bd0e4aa10 100644
--- a/ACE/debian/libace-ssl-6.1.4.NEWS
+++ b/ACE/debian/libace-ssl-6.1.7.NEWS
diff --git a/ACE/debian/libace-ssl-6.1.4.install b/ACE/debian/libace-ssl-6.1.7.install
index 8df45a6d55f..8df45a6d55f 100644
--- a/ACE/debian/libace-ssl-6.1.4.install
+++ b/ACE/debian/libace-ssl-6.1.7.install
diff --git a/ACE/debian/libace-tkreactor-6.1.4.install b/ACE/debian/libace-tkreactor-6.1.7.install
index 12ab35062d2..12ab35062d2 100644
--- a/ACE/debian/libace-tkreactor-6.1.4.install
+++ b/ACE/debian/libace-tkreactor-6.1.7.install
diff --git a/ACE/debian/libace-tmcast-6.1.4.install b/ACE/debian/libace-tmcast-6.1.7.install
index e066131dea0..e066131dea0 100644
--- a/ACE/debian/libace-tmcast-6.1.4.install
+++ b/ACE/debian/libace-tmcast-6.1.7.install
diff --git a/ACE/debian/libace-xml-utils-6.1.7.install b/ACE/debian/libace-xml-utils-6.1.7.install
new file mode 100644
index 00000000000..2428ec9f109
--- /dev/null
+++ b/ACE/debian/libace-xml-utils-6.1.7.install
@@ -0,0 +1 @@
+usr/lib/libACE_XML_Utils-*.so
diff --git a/ACE/debian/libace-xml-utils-dev.install b/ACE/debian/libace-xml-utils-dev.install
new file mode 100644
index 00000000000..b1539d17224
--- /dev/null
+++ b/ACE/debian/libace-xml-utils-dev.install
@@ -0,0 +1,3 @@
+usr/lib/libACE_XML_Utils.so
+usr/include/ace/XML_Utils/*
+usr/lib/pkgconfig/ACE_XML_Utils.pc
diff --git a/ACE/debian/libace-xtreactor-6.1.4.install b/ACE/debian/libace-xtreactor-6.1.7.install
index c53614c7208..c53614c7208 100644
--- a/ACE/debian/libace-xtreactor-6.1.4.install
+++ b/ACE/debian/libace-xtreactor-6.1.7.install
diff --git a/ACE/debian/libacexml-6.1.4.docs b/ACE/debian/libacexml-6.1.7.docs
index 002855d7915..002855d7915 100644
--- a/ACE/debian/libacexml-6.1.4.docs
+++ b/ACE/debian/libacexml-6.1.7.docs
diff --git a/ACE/debian/libacexml-6.1.4.install b/ACE/debian/libacexml-6.1.7.install
index d3e912ffa51..d3e912ffa51 100644
--- a/ACE/debian/libacexml-6.1.4.install
+++ b/ACE/debian/libacexml-6.1.7.install
diff --git a/ACE/debian/libkokyu-6.1.4.docs b/ACE/debian/libkokyu-6.1.7.docs
index e8869c513b2..e8869c513b2 100644
--- a/ACE/debian/libkokyu-6.1.4.docs
+++ b/ACE/debian/libkokyu-6.1.7.docs
diff --git a/ACE/debian/libkokyu-6.1.4.install b/ACE/debian/libkokyu-6.1.7.install
index 62854308f96..62854308f96 100644
--- a/ACE/debian/libkokyu-6.1.4.install
+++ b/ACE/debian/libkokyu-6.1.7.install
diff --git a/ACE/debian/libnetsvcs-6.1.2.install b/ACE/debian/libnetsvcs-6.1.2.install
deleted file mode 100644
index c7a04b16213..00000000000
--- a/ACE/debian/libnetsvcs-6.1.2.install
+++ /dev/null
@@ -1 +0,0 @@
-../../netsvcs/lib/libnetsvcs-*.so usr/lib
diff --git a/ACE/debian/libnetsvcs-dev.docs b/ACE/debian/libnetsvcs-dev.docs
deleted file mode 100644
index 0b03c55b91f..00000000000
--- a/ACE/debian/libnetsvcs-dev.docs
+++ /dev/null
@@ -1,2 +0,0 @@
-netsvcs/lib/README
-PROBLEM-REPORT-FORM
diff --git a/ACE/debian/libnetsvcs-dev.install b/ACE/debian/libnetsvcs-dev.install
deleted file mode 100644
index 74d21fd30a7..00000000000
--- a/ACE/debian/libnetsvcs-dev.install
+++ /dev/null
@@ -1,3 +0,0 @@
-../../netsvcs/lib/*.h usr/include/netsvcs
-../../netsvcs/lib/*_T.cpp usr/include/netsvcs
-../../netsvcs/lib/libnetsvcs.so usr/lib
diff --git a/ACE/debian/libtao-2.1.4.docs b/ACE/debian/libtao-2.1.4.docs
deleted file mode 100644
index 6ed40bf21ea..00000000000
--- a/ACE/debian/libtao-2.1.4.docs
+++ /dev/null
@@ -1,4 +0,0 @@
-TAO/README
-TAO/VERSION
-TAO/PROBLEM-REPORT-FORM
-TAO/NEWS
diff --git a/ACE/debian/libnetsvcs-6.1.2.docs b/ACE/debian/libtao-2.1.7.docs
index 0b03c55b91f..803353aba72 100644
--- a/ACE/debian/libnetsvcs-6.1.2.docs
+++ b/ACE/debian/libtao-2.1.7.docs
@@ -1,2 +1,4 @@
-netsvcs/lib/README
+README
+VERSION
PROBLEM-REPORT-FORM
+NEWS
diff --git a/ACE/debian/libtao-2.1.4.install b/ACE/debian/libtao-2.1.7.install
index 65d040bd469..a80041c6986 100644
--- a/ACE/debian/libtao-2.1.4.install
+++ b/ACE/debian/libtao-2.1.7.install
@@ -10,6 +10,7 @@ usr/lib/libTAO_DynamicAny-*.so
usr/lib/libTAO_DynamicInterface-*.so
usr/lib/libTAO_EndpointPolicy-*.so
usr/lib/libTAO_IFR_Client-*.so
+usr/lib/libTAO_IFR_Client_skel-*.so
usr/lib/libTAO_IORInterceptor-*.so
usr/lib/libTAO_IORManip-*.so
usr/lib/libTAO_IORTable-*.so
@@ -32,7 +33,6 @@ usr/lib/libTAO_ImR_Client-*.so
usr/lib/libTAO_DiffServPolicy-*.so
usr/lib/libTAO_ZlibCompressor-*.so
usr/lib/libTAO_Bzip2Compressor-*.so
-usr/lib/libTAO_LzoCompressor-*.so
usr/lib/libTAO_IFR_BE-*.so
usr/lib/libTAO_IDL_FE-*.so
usr/lib/libTAO_IDL_BE-*.so
diff --git a/ACE/debian/libtao-dev.docs b/ACE/debian/libtao-dev.docs
index 1e1354684a1..25184a4bb03 100644
--- a/ACE/debian/libtao-dev.docs
+++ b/ACE/debian/libtao-dev.docs
@@ -1,3 +1,3 @@
-TAO/README
-TAO/VERSION
-TAO/PROBLEM-REPORT-FORM
+README
+VERSION
+PROBLEM-REPORT-FORM
diff --git a/ACE/debian/libtao-dev.install b/ACE/debian/libtao-dev.install
index 2ec4f80d1dc..7b09d87f5cd 100644
--- a/ACE/debian/libtao-dev.install
+++ b/ACE/debian/libtao-dev.install
@@ -25,6 +25,7 @@ usr/include/tao/EndpointPolicy
usr/lib/libTAO_EndpointPolicy.so
usr/include/tao/IFR_Client
usr/lib/libTAO_IFR_Client.so
+usr/lib/libTAO_IFR_Client_skel.so
usr/include/tao/ImR_Client
usr/lib/libTAO_ImR_Client.so
usr/include/tao/IORInterceptor
@@ -68,12 +69,11 @@ usr/include/tao/ZIOP
usr/lib/libTAO_ZIOP.so
usr/lib/libTAO_ZlibCompressor.so
usr/lib/libTAO_Bzip2Compressor.so
-usr/lib/libTAO_LzoCompressor.so
usr/include/tao/ETCL
usr/lib/libTAO_ETCL.so
usr/include/tao/Monitor
usr/lib/libTAO_Monitor.so
-../../TAO/MPC/config usr/lib/ace/TAO/MPC
+usr/share/tao/MPC/config usr/lib/ace/TAO/MPC
../../TAO/rules.tao.GNU usr/lib/ace/TAO
usr/lib/libTAO_IFR_BE.so
usr/lib/libTAO_IDL_FE.so
@@ -83,7 +83,6 @@ usr/lib/pkgconfig/TAO_DynamicInterface.pc
usr/lib/pkgconfig/TAO_ZlibCompressor.pc
usr/lib/pkgconfig/TAO_AnyTypeCode.pc
usr/lib/pkgconfig/TAO_Bzip2Compressor.pc
-usr/lib/pkgconfig/TAO_LzoCompressor.pc
usr/lib/pkgconfig/TAO_Valuetype.pc
usr/lib/pkgconfig/TAO_BiDirGIOP.pc
usr/lib/pkgconfig/TAO_IORInterceptor.pc
diff --git a/ACE/debian/libtao-doc.docs b/ACE/debian/libtao-doc.docs
index 8f1da4a785d..23de2f58b00 100644
--- a/ACE/debian/libtao-doc.docs
+++ b/ACE/debian/libtao-doc.docs
@@ -1,2 +1,2 @@
-TAO/docs
+docs
html/libtao-doc/*
diff --git a/ACE/debian/libtao-flresource-2.1.4.install b/ACE/debian/libtao-flresource-2.1.7.install
index 5d4ee6ce57a..5d4ee6ce57a 100644
--- a/ACE/debian/libtao-flresource-2.1.4.install
+++ b/ACE/debian/libtao-flresource-2.1.7.install
diff --git a/ACE/debian/libtao-foxresource-2.1.4.install b/ACE/debian/libtao-foxresource-2.1.7.install
index 6ceb47601aa..6ceb47601aa 100644
--- a/ACE/debian/libtao-foxresource-2.1.4.install
+++ b/ACE/debian/libtao-foxresource-2.1.7.install
diff --git a/ACE/debian/libtao-orbsvcs-2.1.4.NEWS b/ACE/debian/libtao-orbsvcs-2.1.7.NEWS
index ea0759e0ade..ea0759e0ade 100644
--- a/ACE/debian/libtao-orbsvcs-2.1.4.NEWS
+++ b/ACE/debian/libtao-orbsvcs-2.1.7.NEWS
diff --git a/ACE/debian/libtao-orbsvcs-2.1.4.install b/ACE/debian/libtao-orbsvcs-2.1.7.install
index e0e491e9095..e0e491e9095 100644
--- a/ACE/debian/libtao-orbsvcs-2.1.4.install
+++ b/ACE/debian/libtao-orbsvcs-2.1.7.install
diff --git a/ACE/debian/libtao-qtresource-2.1.4.install b/ACE/debian/libtao-qtresource-2.1.7.install
index 172f4c45db8..172f4c45db8 100644
--- a/ACE/debian/libtao-qtresource-2.1.4.install
+++ b/ACE/debian/libtao-qtresource-2.1.7.install
diff --git a/ACE/debian/libtao-tkresource-2.1.4.install b/ACE/debian/libtao-tkresource-2.1.7.install
index 7f543154b5b..7f543154b5b 100644
--- a/ACE/debian/libtao-tkresource-2.1.4.install
+++ b/ACE/debian/libtao-tkresource-2.1.7.install
diff --git a/ACE/debian/libtao-xtresource-2.1.4.install b/ACE/debian/libtao-xtresource-2.1.7.install
index ab5151ed073..ab5151ed073 100644
--- a/ACE/debian/libtao-xtresource-2.1.4.install
+++ b/ACE/debian/libtao-xtresource-2.1.7.install
diff --git a/ACE/debian/mpc-ace.manpages b/ACE/debian/mpc-ace.manpages
index 59e55053a00..8b137891791 100644
--- a/ACE/debian/mpc-ace.manpages
+++ b/ACE/debian/mpc-ace.manpages
@@ -1 +1 @@
-debian/mpc-ace.1
+
diff --git a/ACE/debian/patches/15-fix-lzo-flags.diff b/ACE/debian/patches/15-fix-lzo-flags.diff
deleted file mode 100644
index 59d14458bc6..00000000000
--- a/ACE/debian/patches/15-fix-lzo-flags.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-Description: hardcode LZO headers location
- Use LZO2 instead of LZO, and replace variable with Debian path
-Forwarded: not-needed
-Author: Thomas Girard <thomas.g.girard@free.fr>
-Last-Update: 2011-02-13
-
---- a/MPC/config/lzo1.mpb
-+++ b/MPC/config/lzo1.mpb
-@@ -8,11 +8,11 @@ feature(lzo1) {
- LZO1_INCDIR
- $(LZO1_ROOT)/include
- }
-- includes += $(LZO1_INCDIR)
-+ includes += /usr/include/lzo
- libpaths += $(LZO1_ROOT)/lib
- specific (prop:microsoft) {
- lit_libs += liblzo
- } else {
-- lit_libs += lzo
-+ lit_libs += lzo2
- }
- }
diff --git a/ACE/debian/patches/20-versioned_libs.diff b/ACE/debian/patches/20-versioned_libs.diff
deleted file mode 100644
index bbb934a2688..00000000000
--- a/ACE/debian/patches/20-versioned_libs.diff
+++ /dev/null
@@ -1,137 +0,0 @@
-Description: Change versioning from libACE.so.x.y.z to libACE-x.y.z.so
- ACE+TAO library names (and SONAMEs) default to libfoo.so.x.y.z. Since no
- ABI/API is guaranteed between ACE+TAO versions, this patch implements
- recommended (e.g. libtool) naming in these cases, i.e. libfoo-x.y.z.so.
-Forwarded: submitted, more work needed before acceptance
-Author: Thomas Girard <thomas.g.girard@free.fr>
-Last-Update: 2010-12-26
-
---- pkg-ace.orig/include/makeinclude/wrapper_macros.GNU
-+++ pkg-ace/include/makeinclude/wrapper_macros.GNU
-@@ -78,7 +78,10 @@
- # If versioned_so is 1 (enabled), the SOVERSION make
- # variable can also be set to specify the version info
- # to append to the name - it should have a leading '.' -
--# else it defaults to .ACE_MAJOR.ACE_MINOR.ACE_BETA.
-+# else it defaults to .ACE_MAJOR.ACE_MINOR.ACE_BETA. If 2,
-+# the version will be appended to the name but *before* the
-+# $(SOEXT) - it should have a lead '-' - else it defaults to
-+# -ACE_MAJOR.ACE_MINOR.ACE_BETA.
- # wfmo Build with wfmo support (Win32 only)
- # winregistry Build with windows registry support (Win32 only)
- # winnt Build WinNT-specific projects (Win32 only)
---- pkg-ace.orig/MPC/prj_install.pl
-+++ pkg-ace/MPC/prj_install.pl
-@@ -186,7 +186,7 @@
- my $fh = new FileHandle();
- if (opendir($fh, $odir)) {
- foreach my $file (grep(!/^\.\.?$/, readdir($fh))) {
-- if ($file =~ /^lib$name\.(a|so|sl|dylib)/ ||
-+ if ($file =~ /^lib$name(-[0-9]+(\.[0-9]+)*)?\.(a|so|sl|dylib)/ ||
- $file =~ /^(lib)?$name.*\.(dll|lib)$/i) {
- push(@libs, "$dir$insdir$binarydir$file");
- }
---- pkg-ace.orig/include/makeinclude/platform_g++_common.GNU
-+++ pkg-ace/include/makeinclude/platform_g++_common.GNU
-@@ -102,7 +102,7 @@
- # If the platform file didn't already set versioned_so, default to 1.
- versioned_so ?= 1
- with_ld ?=
--ifeq ($(versioned_so),1)
-+ifneq ($(versioned_so),0)
- ifeq ($(with_ld),hpux)
- SOFLAGS += -Wl,+h -Wl,$(SONAME)
- else
---- pkg-ace.orig/include/makeinclude/rules.lib.GNU
-+++ pkg-ace/include/makeinclude/rules.lib.GNU
-@@ -11,7 +11,7 @@
- # Library versioning
- #---------------------------------------------------------------------------
-
--ifeq ($(versioned_so),1)
-+ifneq ($(versioned_so),0)
- # Turn on symbol versioning. The scheme that we follow is to allow
- # applications dependent on libraries, with same version numbers (major,
- # minor and beta) to run, but applications with dependencies on libraries
-@@ -20,13 +20,23 @@
- # Version number of the libraries
- #
- ifeq ($(SOVERSION),)
-- SOVERSION = .$(GNUACE_PROJECT_VERSION)
-+ ifeq ($(versioned_so),1)
-+ SOVERSION = .$(GNUACE_PROJECT_VERSION)
-+ else ifeq ($(versioned_so),2)
-+ SOVERSION = -$(GNUACE_PROJECT_VERSION)
-+ else
-+ $(error unknown value for versioned_so: $(versioned_so))
-+ endif
- endif # SOVERSION
-
- # Name that will be written into the dynamic library
- #
- ifeq ($(SONAME),)
-- SONAME = $(SHLIB)$(SOVERSION)
-+ ifeq ($(versioned_so),1)
-+ SONAME = $(SHLIB)$(SOVERSION)
-+ else ifeq ($(versioned_so),2)
-+ SONAME = $(patsubst %.$(SOEXT),%,$(SHLIB))$(SOVERSION).$(SOEXT)
-+ endif
- endif # SONAME
- endif # versioned_so
-
-@@ -47,9 +57,15 @@
- # Setup shared library variables, including versions.
- VSHLIB_NO_VER = $(ARCH_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
- CLEANUP_VSHLIB_NO_VER = $(CLEANUP_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
--VSHLIB = $(VSHLIB_NO_VER:%=%$(SOVERSION))
--CLEANUP_VSHLIB = $(CLEANUP_VSHLIB_NO_VER:%=%$(SOVERSION))
--SHLIB_WITH_VER = $(SHLIB:%=%$(SOVERSION))
-+ifneq ($(versioned_so),2)
-+ VSHLIB = $(VSHLIB_NO_VER:%=%$(SOVERSION))
-+ CLEANUP_VSHLIB = $(CLEANUP_VSHLIB_NO_VER:%=%$(SOVERSION))
-+ SHLIB_WITH_VER = $(SHLIB:%=%$(SOVERSION))
-+else
-+ VSHLIB = $(patsubst %.$(SOEXT),%,$(VSHLIB_NO_VER))$(SOVERSION).$(SOEXT)
-+ CLEANUP_VSHLIB = $(patsubst %.$(SOEXT),%,$(CLEANUP_VSHLIB_NO_VER))$(SOVERSION).$(SOEXT)
-+ SHLIB_WITH_VER = $(patsubst %.$(SOEXT),%,$(SHLIB))$(SOVERSION).$(SOEXT)
-+endif
-
- SHLIBA ?=
- VSHLIBA = $(ARCH_SHLIBA:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
---- pkg-ace.orig/include/makeinclude/rules.local.GNU
-+++ pkg-ace/include/makeinclude/rules.local.GNU
-@@ -312,13 +312,23 @@
- fi
- else #firstword of LN_S is not cp, so we're using real symlinks
- ifneq ($(SOVERSION),)
-- @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
-+ ifneq ($(versioned_so),2)
-+ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
- if test ! -s $@ ; then \
- $(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- fi ; \
-- fi
-+ fi
-+ else
-+ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
-+ if test ! -s $@ ; then \
-+ $(RM) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \
-+ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \
-+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \
-+ fi ; \
-+ fi
-+ endif #versioned_so
- endif #SOVERSION
- @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
- if test ! -s $@ ; then \
-@@ -351,6 +361,8 @@
- -$(RM) $(SHLIB_UNCHECKED)
- ifeq ($(versioned_so),1)
- -$(RM) $(SHLIB_UNCHECKED)$(SOVERSION)
-+else ifeq ($(versioned_so),2)
-+ -$(RM) $(SHLIB_UNCHECKED:.$(SOEXT)=$(SOVERSION).$(SOEXT))
- endif
- endif
-
diff --git a/ACE/debian/patches/34-bts386713.diff b/ACE/debian/patches/34-bts386713.diff
deleted file mode 100644
index 5e75c7272ae..00000000000
--- a/ACE/debian/patches/34-bts386713.diff
+++ /dev/null
@@ -1,389 +0,0 @@
-Description: Hardcode TAO library names so that dynamic loading works
- ACE allows to dynamically load a library with ACE_DYNAMIC_SERVICE_DIRECTIVE
- macro, and this mechanism is used to load some TAO libraries when needed. The
- name used in macro invocations is the short library name, i.e. libfoo.so.
- .
- Debian usually ships libfoo.so symlinks in -dev packages. So to make the
- dynamic loading work without the need for the -dev package being installed,
- we use long names (libfoo-x.y.z.so) in the macro invocation.
-Forwarded: not-needed
-Author: Pau Garcia i Quiles <pgquiles@elpauer.org>
-Last-Update: 2011-06-26
-
---- pkg-ace.orig/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp
-+++ pkg-ace/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp
-@@ -10,7 +10,7 @@
-
- static const char pg_poa_factory_name[] = "TAO_GOA";
- static const ACE_TCHAR pg_poa_factory_directive[] = ACE_DYNAMIC_SERVICE_DIRECTIVE(
-- "TAO_GOA", "TAO_PortableGroup", "_make_TAO_PG_Object_Adapter_Factory", "");
-+ "TAO_GOA", "libTAO_PortableGroup-2.1.2.so", "_make_TAO_PG_Object_Adapter_Factory", "");
-
- TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
---- pkg-ace.orig/TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp
-+++ pkg-ace/TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp
-@@ -18,7 +18,7 @@
-
- ACE_TCHAR const * const scpc_loadNamingService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "testNamingService",
-- "TAO_CosNaming_Serv",
-+ "libTAO_CosNaming_Serv-2.1.2.so",
- "_make_TAO_Naming_Loader",
- ""
- );
---- pkg-ace.orig/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp
-+++ pkg-ace/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp
-@@ -20,7 +20,7 @@
-
- ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "testNotifyService",
-- "TAO_CosNotification_Serv",
-+ "libTAO_CosNotification_Serv-2.1.2.so",
- "_make_TAO_CosNotify_Service",
- ""
- );
---- pkg-ace.orig/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp
-+++ pkg-ace/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp
-@@ -23,7 +23,7 @@
-
- ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "testNotifyService",
-- "TAO_CosNotification_Serv",
-+ "libTAO_CosNotification_Serv-2.1.2.so",
- "_make_TAO_CosNotify_Service",
- "-UseSeparateDispatchingORB 1"
- );
---- pkg-ace.orig/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp
-+++ pkg-ace/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp
-@@ -20,7 +20,7 @@
-
- ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "testNotifyService",
-- "TAO_Notify_Service",
-+ "libTAO_Notify_Service-2.1.2.so",
- "_make_TAO_Notify_Service_Driver",
- "-NoNameSvc -RunThreads 0"
- );
---- pkg-ace.orig/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp
-+++ pkg-ace/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp
-@@ -23,7 +23,7 @@
-
- ACE_TCHAR scpc_loadNotifyService[max_length] = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "testNotifyService",
-- "TAO_Notify_Service",
-+ "libTAO_Notify_Service-2.1.2.so",
- "_make_TAO_Notify_Service_Driver",
- "-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 0 -ORBInitRef NameService=iioploc://%s:%s/NameService -IORoutput %s"
- );
---- pkg-ace.orig/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp
-+++ pkg-ace/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp
-@@ -20,7 +20,7 @@
-
- ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "testNotifyService",
-- "TAO_Notify_Service",
-+ "libTAO_Notify_Service-2.1.2.so",
- "_make_TAO_Notify_Service_Driver",
- "-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 10 -ORBInitRef NameService=file://naming.ior -IORoutput notify.ior"
- );
-@@ -29,7 +29,7 @@
-
- ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "testNamingService",
-- "TAO_CosNaming_Serv",
-+ "libTAO_CosNaming_Serv-2.1.2.so",
- "_make_TAO_Naming_Loader",
- "testNameService testNameService -ORBId testDllOrb -m 0 -o naming.ior"
- );
---- pkg-ace.orig/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp
-+++ pkg-ace/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp
-@@ -20,7 +20,7 @@
-
- ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "testNotifyService",
-- "TAO_Notify_Service",
-+ "libTAO_Notify_Service-2.1.2.so",
- "_make_TAO_Notify_Service_Driver_INCORRECT",
- "-NoNameSvc -RunThreads 0"
- );
---- pkg-ace.orig/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp
-+++ pkg-ace/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp
-@@ -24,7 +24,7 @@
-
- ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "testNamingService",
-- "TAO_CosNaming_Serv",
-+ "libTAO_CosNaming_Serv-2.1.2.so",
- "_make_TAO_Naming_Loader",
- "testNameService testNameService -ORBId testDllOrb -m 0 -o naming.ior"
- );
-@@ -34,7 +34,7 @@
-
- ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "testNotifyService",
-- "TAO_Notify_Service",
-+ "libTAO_Notify_Service-2.1.2.so",
- "_make_TAO_Notify_Service_Driver",
- "-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 1 -ORBInitRef NameService=file://naming.ior -IORoutput notify.ior"
- );
---- pkg-ace.orig/TAO/tao/Codeset/Codeset_Manager_i.cpp
-+++ pkg-ace/TAO/tao/Codeset/Codeset_Manager_i.cpp
-@@ -353,7 +353,7 @@
- if (fact == 0)
- ACE_Service_Config::process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE ("UTF8_Latin1_Factory",
-- "TAO_Codeset",
-+ "libTAO_Codeset-2.1.2.so",
- "_make_TAO_UTF8_Latin1_Factory",
- ""));
- else
-@@ -370,7 +370,7 @@
- if (fact == 0)
- ACE_Service_Config::process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE ("UTF16_BOM_Factory",
-- "TAO_Codeset",
-+ "libTAO_Codeset-2.1.2.so",
- "_make_TAO_UTF16_BOM_Factory",
- ""));
- else
---- pkg-ace.orig/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp
-+++ pkg-ace/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp
-@@ -10,7 +10,7 @@
- static const ACE_TCHAR csd_poa_factory_directive[] =
- ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "TAO_CSD_Object_Adapter_Factory",
-- "TAO_CSD_Framework",
-+ "libTAO_CSD_Framework-2.1.2.so",
- "_make_TAO_CSD_Object_Adapter_Factory",
- "");
-
---- pkg-ace.orig/TAO/tao/ORB_Core.cpp
-+++ pkg-ace/TAO/tao/ORB_Core.cpp
-@@ -1660,7 +1660,7 @@
- {
- this->configuration ()->process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("PolicyFactory_Loader",
-- "TAO_PI",
-+ "libTAO_PI-2.1.2.so",
- "_make_TAO_PolicyFactory_Loader",
- ""));
- loader =
-@@ -1712,7 +1712,7 @@
- {
- this->configuration ()->process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE ("ORBInitializer_Registry",
-- "TAO_PI",
-+ "libTAO_PI-2.1.2.so",
- "_make_ORBInitializer_Registry",
- ""));
- this->orbinitializer_registry_ =
-@@ -2467,7 +2467,7 @@
- {
- this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TypeCodeFactory",
-- "TAO_TypeCodeFactory",
-+ "libTAO_TypeCodeFactory-2.1.2.so",
- "_make_TAO_TypeCodeFactory_Loader",
- ""));
- loader =
-@@ -2500,7 +2500,7 @@
- {
- this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory",
-- "TAO_CodecFactory",
-+ "libTAO_CodecFactory-2.1.2.so",
- "_make_TAO_CodecFactory_Loader",
- ""));
- loader =
-@@ -2527,7 +2527,7 @@
- {
- this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("Compression",
-- "TAO_Compression",
-+ "libTAO_Compression-2.1.2.so",
- "_make_TAO_Compression_Loader",
- ""));
- loader =
-@@ -2553,7 +2553,7 @@
- {
- this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_POA_Current_Factory",
-- "TAO_PortableServer",
-+ "libTAO_PortableServer-2.1.2.so",
- "_make_TAO_POA_Current_Factory",
- ""));
- loader =
-@@ -2582,7 +2582,7 @@
- {
- this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("PICurrent_Loader",
-- "TAO_PI",
-+ "libTAO_PI-2.1.2.so",
- "_make_TAO_PICurrent_Loader",
- ""));
- loader =
-@@ -2613,7 +2613,7 @@
- {
- this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("DynamicAny_Loader",
-- "TAO_DynamicAny",
-+ "libTAO_DynamicAny-2.1.2.so",
- "_make_TAO_DynamicAny_Loader",
- ""));
- loader =
-@@ -2640,7 +2640,7 @@
- {
- this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("IORManip_Loader",
-- "TAO_IORManip",
-+ "libTAO_IORManip-2.1.2.so",
- "_make_TAO_IORManip_Loader",
- ""));
- loader =
-@@ -2666,7 +2666,7 @@
- {
- this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_IORTable",
-- "TAO_IORTable",
-+ "libTAO_IORTable-2.1.2.so",
- "_make_TAO_Table_Adapter_Factory",
- ""));
- factory =
-@@ -2701,7 +2701,7 @@
- {
- this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("Monitor_Init",
-- "TAO_Monitor",
-+ "libTAO_Monitor-2.1.2.so",
- "_make_TAO_Monitor_Init",
- ""));
- loader =
---- pkg-ace.orig/TAO/tao/ORBInitializer_Registry.cpp
-+++ pkg-ace/TAO/tao/ORBInitializer_Registry.cpp
-@@ -48,7 +48,7 @@
- {
- ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("ORBInitializer_Registry",
-- "TAO_PI",
-+ "libTAO_PI-2.1.2.so",
- "_make_ORBInitializer_Registry",
- ""));
- orbinitializer_registry_ =
---- pkg-ace.orig/TAO/tao/params.cpp
-+++ pkg-ace/TAO/tao/params.cpp
-@@ -55,7 +55,7 @@
- , poa_factory_name_ ("TAO_Object_Adapter_Factory")
- , poa_factory_directive_
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_Object_Adapter_Factory",
-- "TAO_PortableServer",
-+ "libTAO_PortableServer-2.1.2.so",
- "_make_TAO_Object_Adapter_Factory",
- ""))
- , forward_invocation_on_object_not_exist_ (false)
---- pkg-ace.orig/TAO/tao/PI/ORBInitInfo.cpp
-+++ pkg-ace/TAO/tao/PI/ORBInitInfo.cpp
-@@ -117,7 +117,7 @@
- {
- ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory",
-- "TAO_CodecFactory",
-+ "libTAO_CodecFactory-2.1.2.so",
- "_make_TAO_CodecFactory_Loader",
- ""));
- loader =
---- pkg-ace.orig/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp
-+++ pkg-ace/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp
-@@ -79,7 +79,7 @@
- {
- ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE(
-- "ImR_Client_Adapter", "TAO_ImR_Client",
-+ "ImR_Client_Adapter", "libTAO_ImR_Client-2.1.2.so",
- "_make_ImR_Client_Adapter_Impl", ""));
-
- adapter =
---- pkg-ace.orig/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
-+++ pkg-ace/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
-@@ -38,7 +38,7 @@
- static const ACE_TCHAR rt_poa_factory_directive[] =
- ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "TAO_RT_Object_Adapter_Factory",
-- "TAO_RTPortableServer",
-+ "libTAO_RTPortableServer-2.1.2.so",
- "_make_TAO_RT_Object_Adapter_Factory",
- "");
-
---- pkg-ace.orig/TAO/tao/TAO_Internal.cpp
-+++ pkg-ace/TAO/tao/TAO_Internal.cpp
-@@ -614,7 +614,7 @@
- ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE (
- "TAO_Codeset",
-- "TAO_Codeset",
-+ "libTAO_Codeset-2.1.2.so",
- "_make_TAO_Codeset_Manager_Factory",
- ""));
-
---- pkg-ace.orig/TAO/tests/DLL_ORB/client.cpp
-+++ pkg-ace/TAO/tests/DLL_ORB/client.cpp
-@@ -30,7 +30,7 @@
- if (ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "Client_Module",
-- "Test_Client_Module",
-+ "libTest_Client_Module-2.1.2.so",
- "_make_Test_Client_Module",
- "-k file://test.ior")) != 0)
- {
---- pkg-ace.orig/TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp
-+++ pkg-ace/TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp
-@@ -13,7 +13,7 @@
- // each parameter CANNOT be split into multiple quoted strings "line1" "nextline" with the expectation that
- // they will be join together. Hence the long parameter 4.
- ACE_DYNAMIC_SERVICE_DIRECTIVE ("testDllOrb",
-- "DllOrb",
-+ "DllOrb.so",
- "_make_DllOrb",
- "DllOrb -t 1 -ORBGestalt Local -ORBDebugLevel 3 -ORBId testORB -ORBInitRef NameService=file:///tmp/test-ns.ior -ORBDottedDecimalAddresses 1"
- );
---- pkg-ace.orig/TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp
-+++ pkg-ace/TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp
-@@ -153,7 +153,7 @@
- {
- one->process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("ORBInitializer_Registry",
-- "TAO_PI",
-+ "libTAO_PI-2.1.2.so",
- "_make_ORBInitializer_Registry",
- ""));
- oir =
-@@ -252,7 +252,7 @@
-
- one->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("PolicyFactory_Loader",
-- "TAO_PI",
-+ "libTAO_PI-2.1.2.so",
- "_make_TAO_PolicyFactory_Loader",
- ""));
-
-@@ -292,7 +292,7 @@
-
- int result = one->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_Codeset",
-- "TAO_Codeset",
-+ "libTAO_Codeset-2.1.2.so",
- "_make_TAO_Codeset_Manager_Factory",
- ""));
- if (result != 0)
---- pkg-ace.orig/TAO/tests/TransportCurrent/Framework/simple.cpp
-+++ pkg-ace/TAO/tests/TransportCurrent/Framework/simple.cpp
-@@ -56,7 +56,7 @@
- #if !defined (TAO_AS_STATIC_LIBS)
- int ret = ACE_Service_Config::process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_Transport_Current_Loader",
-- "TAO_Transport_Current",
-+ "libTAO_Transport_Current-2.1.2.so",
- "_make_TAO_Transport_Current_Loader",
- ""));
- ACE_ASSERT (ret == 0);
diff --git a/ACE/debian/patches/35_disable_sslv2.diff b/ACE/debian/patches/35_disable_sslv2.diff
deleted file mode 100644
index efa0461cc6c..00000000000
--- a/ACE/debian/patches/35_disable_sslv2.diff
+++ /dev/null
@@ -1,114 +0,0 @@
-Description: SSLv2 was disabled in Debian in OpenSSL 1.0.0d, remove it from ACE too
-Forwarded: yes
-Author: Pau Garcia i Quiles <pgquiles@elpauer.org>
-Last-Update: 2011-04-26
-
---- a/ace/SSL/SSL_Context.cpp
-+++ b/ace/SSL/SSL_Context.cpp
-@@ -236,15 +236,6 @@ ACE_SSL_Context::set_mode (int mode)
-
- switch (mode)
- {
-- case ACE_SSL_Context::SSLv2_client:
-- method = ::SSLv2_client_method ();
-- break;
-- case ACE_SSL_Context::SSLv2_server:
-- method = ::SSLv2_server_method ();
-- break;
-- case ACE_SSL_Context::SSLv2:
-- method = ::SSLv2_method ();
-- break;
- case ACE_SSL_Context::SSLv3_client:
- method = ::SSLv3_client_method ();
- break;
-@@ -254,15 +245,6 @@ ACE_SSL_Context::set_mode (int mode)
- case ACE_SSL_Context::SSLv3:
- method = ::SSLv3_method ();
- break;
-- case ACE_SSL_Context::SSLv23_client:
-- method = ::SSLv23_client_method ();
-- break;
-- case ACE_SSL_Context::SSLv23_server:
-- method = ::SSLv23_server_method ();
-- break;
-- case ACE_SSL_Context::SSLv23:
-- method = ::SSLv23_method ();
-- break;
- case ACE_SSL_Context::TLSv1_client:
- method = ::TLSv1_client_method ();
- break;
-@@ -335,14 +317,10 @@ ACE_SSL_Context::load_trusted_ca (const
-
- // For TLS/SSL servers scan all certificates in ca_file and ca_dir and
- // list them as acceptable CAs when requesting a client certificate.
-- if (mode_ == SSLv23
-- || mode_ == SSLv23_server
-- || mode_ == TLSv1
-+ if (mode_ == TLSv1
- || mode_ == TLSv1_server
- || mode_ == SSLv3
-- || mode_ == SSLv3_server
-- || mode_ == SSLv2
-- || mode_ == SSLv2_server)
-+ || mode_ == SSLv3_server)
- {
- // Note: The STACK_OF(X509_NAME) pointer is a copy of the pointer in
- // the CTX; any changes to it by way of these function calls will
---- a/ace/SSL/SSL_Context.h
-+++ b/ace/SSL/SSL_Context.h
-@@ -82,16 +82,16 @@ public:
-
- enum {
- INVALID_METHOD = -1,
-- SSLv2_client = 1,
-+/* SSLv2_client = 1,
- SSLv2_server,
-- SSLv2,
-- SSLv3_client,
-+ SSLv2, */
-+ SSLv3_client = 4,
- SSLv3_server,
- SSLv3,
-- SSLv23_client,
-+/* SSLv23_client,
- SSLv23_server,
-- SSLv23,
-- TLSv1_client,
-+ SSLv23, */
-+ TLSv1_client = 10,
- TLSv1_server,
- TLSv1
- };
-@@ -114,7 +114,7 @@ public:
- * If the mode is not set, then the class automatically initializes
- * itself to the default mode.
- */
-- int set_mode (int mode = ACE_SSL_Context::SSLv23);
-+ int set_mode (int mode = ACE_SSL_Context::SSLv3);
-
- int get_mode (void) const;
-
---- a/protocols/ace/INet/HTTP_Simple_exec.cpp
-+++ b/protocols/ace/INet/HTTP_Simple_exec.cpp
-@@ -35,7 +35,7 @@ usage (void)
- std::cout << "\t-p <port> \t\tproxy port to connect to\n";
- std::cout << "\t-o <filename> \t\tfile to write output to\n";
- #if defined (ACE_HAS_SSL) && ACE_HAS_SSL == 1
-- std::cout << "\t-v <ssl version>\t\tSSL version to use: 2, 23, 3\n";
-+ std::cout << "\t-v <ssl version>\t\tSSL version to use: '3' for SSLv3 or '1' for TLS 1.0\n";
- std::cout << "\t-n \t\tno peer certificate verification\n";
- std::cout << "\t-i \t\tignore peer certificate verification failures\n";
- std::cout << "\t-c <filename> \t\tcertificate file (PEM format)\n";
-@@ -78,10 +78,8 @@ parse_args (int argc, ACE_TCHAR *argv []
- case 'v':
- {
- ACE_CString ver = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
-- if (ver == "2")
-- ssl_mode = ACE_SSL_Context::SSLv2;
-- else if (ver == "23")
-- ssl_mode = ACE_SSL_Context::SSLv23;
-+ if (ver == "1")
-+ ssl_mode = ACE_SSL_Context::TLSv1;
- else if (ver != "3") // default mode
- {
- std::cerr << "ERROR: Invalid SSL mode [" << ver << "] specfied!" << std::endl;
diff --git a/ACE/debian/patches/series b/ACE/debian/patches/series
index c64bad37c0d..ab8b3888dc8 100644
--- a/ACE/debian/patches/series
+++ b/ACE/debian/patches/series
@@ -1,8 +1,4 @@
reduce-doxygen-doc.diff
-15-fix-lzo-flags.diff
-20-versioned_libs.diff
-34-bts386713.diff
-35_disable_sslv2.diff
90-patch-mpc-basedir.diff
91-patch-dg-basedir.diff
92-default-ACE_ROOT.diff
diff --git a/ACE/debian/platform_macros.GNU b/ACE/debian/platform_macros.GNU
index 76b032671f5..145e79a7cf1 100644
--- a/ACE/debian/platform_macros.GNU
+++ b/ACE/debian/platform_macros.GNU
@@ -14,9 +14,10 @@ qt4 = 1
ace_qt4reactor = 1
bzip2 = 1
-lzo1 = 1
zlib = 1
+versioned_so = 2
+
# Work-around #593225
ARMEL_TARGET := $(shell echo '__ARMEL__' | $(CC) -E - | tail -n 1)
ifeq ($(ARMEL_TARGET),1)
diff --git a/ACE/debian/platform_macros.GNU.in b/ACE/debian/platform_macros.GNU.in
deleted file mode 100644
index 4ab8f0aac88..00000000000
--- a/ACE/debian/platform_macros.GNU.in
+++ /dev/null
@@ -1,127 +0,0 @@
-# -*- Makefile -*-
-ifeq (@BUILD_EXCEPTIONS_TRUE@,)
- exceptions ?= 1
-else
- exceptions ?= 0
-endif
-
-ifneq ($(findstring -g,@CXXFLAGS@),)
- debug ?= 1
-else
- debug ?= 0
-endif
-
-ifneq ($(filter -O2 -O3,@CXXFLAGS@),)
- optimize ?= 1
-else
- optimize ?= 0
-endif
-
-ifneq ($(findstring -pthread,@CXXFLAGS@),)
- threads ?= 1
-else
- threads ?= 0
-endif
-
-insure ?= 0
-
-PLATFORM_XT_CPPFLAGS = @ACE_XT_CPPFLAGS@
-PLATFORM_XT_LIBS = @ACE_XT_LIBS@
-PLATFORM_XT_LDFLAGS = @ACE_XT_LDFLAGS@
-
-PLATFORM_FL_CPPFLAGS = @ACE_FLTK_CPPFLAGS@
-PLATFORM_FL_LIBS = @ACE_FLTK_LIBS@
-
-PLATFORM_X11_CPPFLAGS = @ACE_X11_CPPFLAGS@
-PLATFORM_X11_LIBS = @ACE_X11_LIBS@
-PLATFORM_X11_LDFLAGS = @ACE_X11_LDFLAGS@
-
-PLATFORM_FOX_CPPFLAGS = @ACE_FOX_CPPFLAGS@
-PLATFORM_FOX_LIBS = @ACE_FOX_LIBS@
-
-PLATFORM_TCL_CPPFLAGS = @ACE_TCL_CPPFLAGS@
-PLATFORM_TCL_LIBS = @ACE_TCL_LIBS@
-
-PLATFORM_TK_CPPFLAGS = @ACE_TK_CPPFLAGS@
-PLATFORM_TK_LIBS = @ACE_TK_LIBS@
-
-PLATFORM_QT_CPPFLAGS = @ACE_QT_CPPFLAGS@
-PLATFORM_QT_LIBS = @ACE_QT_LIBS@
-
-ifeq (@BUILD_SSL_TRUE@,)
- ssl ?= 1
-else
- ssl ?= 0
-endif
-
-ifeq ($(insure),1)
- CC = insure
- CXX = insure
-endif
-
-PIC = -fPIC
-AR ?= @AR@
-ARFLAGS = rsuv
-RANLIB = @RANLIB@
-
-ifeq ($(insure),0)
- CC ?= @CC@
- CXX ?= @CXX@
- CXX_FOR_VERSION_TEST ?= $(CXX)
-else
- CXX_FOR_VERSION_TEST ?= @CXX@
-endif
-
-ifneq ($(findstring -pipe,@CXXFLAGS@),)
- pipes ?= 1
-else
- pipes ?= 0
-endif
-
-CXX_FULL_VERSION := $(shell $(CXX_FOR_VERSION_TEST) --version)
-
-FLAGS_C_CC += $(filter-out -g -O2 -O3 -pipe,@CXXFLAGS@)
-
-ifeq ($(buildbits),32)
- FLAGS_C_CC += -m32
- LDFLAGS += -m32
-endif
-ifeq ($(buildbits),64)
- FLAGS_C_CC += -m64
-endif
-
-DCFLAGS += -g
-DCCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LIBS += @LIBS@
-
-ifeq ($(optimize),1)
- SOFLAGS += -Wl,-O2
-endif
-
-SOFLAGS += $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<; \
- $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
-PRELIB = @true
-
-# Test for template instantiation, add to SOFLAGS if SONAME set,
-# add -E to LDFLAGS if using GNU ld
-#
-include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-OCFLAGS ?= -O2
-OCCFLAGS ?= -O2
-
-CFLAGS += $(FLAGS_C_CC)
-CCFLAGS += $(FLAGS_C_CC) $(TEMPLATES_FLAG)
-
-# Added line below to support "Executable Shared Object" files (as
-# needed by the service configurator).
-# Marius Kjeldahl <mariusk@sn.no, marius@funcom.com>
-ifeq ($(threads),1)
- ESOBUILD = $(COMPILEESO.cc) $(PIC) -shared -o $(VSHDIR)$*.so $<
- ifndef PRELIB
- PRELIB = @true
- endif # ! PRELIB
-endif
diff --git a/ACE/debian/tao-concurrency.docs b/ACE/debian/tao-concurrency.docs
index 27759070d95..e845566c06f 100644
--- a/ACE/debian/tao-concurrency.docs
+++ b/ACE/debian/tao-concurrency.docs
@@ -1 +1 @@
-ACE_wrappers/TAO/orbsvcs/Concurrency_Service/README
+README
diff --git a/ACE/debian/tao-cosconcurrency.docs b/ACE/debian/tao-cosconcurrency.docs
index b34db41e92e..e845566c06f 100644
--- a/ACE/debian/tao-cosconcurrency.docs
+++ b/ACE/debian/tao-cosconcurrency.docs
@@ -1 +1 @@
-TAO/orbsvcs/Concurrency_Service/README
+README
diff --git a/ACE/debian/tao-cosevent.docs b/ACE/debian/tao-cosevent.docs
index dc5762182b9..e845566c06f 100644
--- a/ACE/debian/tao-cosevent.docs
+++ b/ACE/debian/tao-cosevent.docs
@@ -1 +1 @@
-TAO/orbsvcs/CosEvent_Service/README
+README
diff --git a/ACE/debian/tao-cosnaming.docs b/ACE/debian/tao-cosnaming.docs
index dc28f691e58..e845566c06f 100644
--- a/ACE/debian/tao-cosnaming.docs
+++ b/ACE/debian/tao-cosnaming.docs
@@ -1 +1 @@
-TAO/orbsvcs/Naming_Service/README
+README
diff --git a/ACE/debian/tao-cosnotification.docs b/ACE/debian/tao-cosnotification.docs
index aa2625a27bf..e845566c06f 100644
--- a/ACE/debian/tao-cosnotification.docs
+++ b/ACE/debian/tao-cosnotification.docs
@@ -1 +1 @@
-TAO/orbsvcs/Notify_Service/README
+README
diff --git a/ACE/debian/tao-costime.docs b/ACE/debian/tao-costime.docs
index 74a3dc26c68..e845566c06f 100644
--- a/ACE/debian/tao-costime.docs
+++ b/ACE/debian/tao-costime.docs
@@ -1 +1 @@
-TAO/orbsvcs/Time_Service/README
+README
diff --git a/ACE/debian/tao-costrading.docs b/ACE/debian/tao-costrading.docs
index 3a6ce8b6215..e845566c06f 100644
--- a/ACE/debian/tao-costrading.docs
+++ b/ACE/debian/tao-costrading.docs
@@ -1 +1 @@
-TAO/orbsvcs/Trading_Service/README
+README
diff --git a/ACE/debian/tao-event.docs b/ACE/debian/tao-event.docs
index 323dd9c38cc..e845566c06f 100644
--- a/ACE/debian/tao-event.docs
+++ b/ACE/debian/tao-event.docs
@@ -1 +1 @@
-ACE_wrappers/TAO/orbsvcs/CosEvent_Service/README
+README
diff --git a/ACE/debian/tao-ft.docs b/ACE/debian/tao-ft.docs
index 8230b9fe69c..e845566c06f 100644
--- a/ACE/debian/tao-ft.docs
+++ b/ACE/debian/tao-ft.docs
@@ -1 +1 @@
-TAO/orbsvcs/FT_ReplicationManager/README
+README
diff --git a/ACE/debian/tao-idl.manpages b/ACE/debian/tao-idl.manpages
index b7c65cc54d0..e69de29bb2d 100644
--- a/ACE/debian/tao-idl.manpages
+++ b/ACE/debian/tao-idl.manpages
@@ -1 +0,0 @@
-TAO/TAO_IDL/tao_idl.1
diff --git a/ACE/debian/tao-ifr.docs b/ACE/debian/tao-ifr.docs
index 8354c00338e..e845566c06f 100644
--- a/ACE/debian/tao-ifr.docs
+++ b/ACE/debian/tao-ifr.docs
@@ -1 +1 @@
-TAO/orbsvcs/IFR_Service/README
+README
diff --git a/ACE/debian/tao-imr.docs b/ACE/debian/tao-imr.docs
index 59142b41b2e..e845566c06f 100644
--- a/ACE/debian/tao-imr.docs
+++ b/ACE/debian/tao-imr.docs
@@ -1 +1 @@
-TAO/orbsvcs/ImplRepo_Service/README.txt
+README
diff --git a/ACE/debian/tao-load.docs b/ACE/debian/tao-load.docs
index 0946c566d7d..e845566c06f 100644
--- a/ACE/debian/tao-load.docs
+++ b/ACE/debian/tao-load.docs
@@ -1 +1 @@
-TAO/orbsvcs/LoadBalancer/README
+README
diff --git a/ACE/debian/tao-log.docs b/ACE/debian/tao-log.docs
index 8a75e5909f2..e845566c06f 100644
--- a/ACE/debian/tao-log.docs
+++ b/ACE/debian/tao-log.docs
@@ -1 +1 @@
-ACE_wrappers/TAO/orbsvcs/Logging_Service/README
+README
diff --git a/ACE/debian/tao-log.install b/ACE/debian/tao-log.install
index 227add0d8c5..130f25fd8eb 100644
--- a/ACE/debian/tao-log.install
+++ b/ACE/debian/tao-log.install
@@ -1,4 +1,4 @@
usr/bin/tao_tls_basic
usr/bin/tao_tls_event
usr/bin/tao_tls_notify
-usr/bin/RTtao_tls_event
+usr/bin/tao_tls_event
diff --git a/ACE/debian/tao-log.manpages b/ACE/debian/tao-log.manpages
index b94e70dc2db..e69de29bb2d 100644
--- a/ACE/debian/tao-log.manpages
+++ b/ACE/debian/tao-log.manpages
@@ -1,4 +0,0 @@
-debian/Basic_Logging_Service.1
-debian/Event_Logging_Service.1
-debian/Notify_Logging_Service.1
-debian/RTEvent_Logging_Service.1
diff --git a/ACE/debian/tao-naming.docs b/ACE/debian/tao-naming.docs
index 1f38248a647..e845566c06f 100644
--- a/ACE/debian/tao-naming.docs
+++ b/ACE/debian/tao-naming.docs
@@ -1 +1 @@
-ACE_wrappers/TAO/orbsvcs/Naming_Service/README
+README
diff --git a/ACE/debian/tao-notify.docs b/ACE/debian/tao-notify.docs
index 08af3d3f8fe..e845566c06f 100644
--- a/ACE/debian/tao-notify.docs
+++ b/ACE/debian/tao-notify.docs
@@ -1 +1 @@
-ACE_wrappers/TAO/orbsvcs/Notify_Service/README
+README
diff --git a/ACE/debian/tao-time.docs b/ACE/debian/tao-time.docs
index d474eb065e6..e845566c06f 100644
--- a/ACE/debian/tao-time.docs
+++ b/ACE/debian/tao-time.docs
@@ -1 +1 @@
-ACE_wrappers/TAO/orbsvcs/Time_Service/README
+README
diff --git a/ACE/debian/tao-tls.docs b/ACE/debian/tao-tls.docs
index 1fc456582d9..e845566c06f 100644
--- a/ACE/debian/tao-tls.docs
+++ b/ACE/debian/tao-tls.docs
@@ -1 +1 @@
-TAO/orbsvcs/Logging_Service/README
+README
diff --git a/ACE/debian/tao-tls.manpages b/ACE/debian/tao-tls.manpages
index 5e5ad07e5c9..e69de29bb2d 100644
--- a/ACE/debian/tao-tls.manpages
+++ b/ACE/debian/tao-tls.manpages
@@ -1,4 +0,0 @@
-debian/tao_tls_basic.1
-debian/tao_tls_event.1
-debian/tao_tls_notify.1
-debian/tao_tls_rtevent.1
diff --git a/ACE/debian/tao-trading.docs b/ACE/debian/tao-trading.docs
index 5c5869da934..e845566c06f 100644
--- a/ACE/debian/tao-trading.docs
+++ b/ACE/debian/tao-trading.docs
@@ -1 +1 @@
-ACE_wrappers/TAO/orbsvcs/Trading_Service/README
+README
diff --git a/ACE/debian/tao-utils.docs b/ACE/debian/tao-utils.docs
index 08a71a77081..8b137891791 100644
--- a/ACE/debian/tao-utils.docs
+++ b/ACE/debian/tao-utils.docs
@@ -1,4 +1 @@
-TAO/utils/nslist/README.nslist
-TAO/utils/catior/README.catior
-TAO/utils/catior/test
diff --git a/ACE/debian/tao-utils.manpages b/ACE/debian/tao-utils.manpages
index f6c7976d1bd..e69de29bb2d 100644
--- a/ACE/debian/tao-utils.manpages
+++ b/ACE/debian/tao-utils.manpages
@@ -1,4 +0,0 @@
-debian/tao_catior.1
-debian/tao_nslist.1
-debian/tao_nsadd.1
-debian/tao_nsdel.1
diff --git a/ACE/docs/ACE-monotonic-timer.html b/ACE/docs/ACE-monotonic-timer.html
index bb394b7ab05..43edb33fefc 100644
--- a/ACE/docs/ACE-monotonic-timer.html
+++ b/ACE/docs/ACE-monotonic-timer.html
@@ -34,22 +34,22 @@
<P STYLE="margin-bottom: 0in">Author: M.J.N. Corino Copyright <FONT FACE="Liberation Serif, serif">©</FONT><FONT FACE="Liberation Serif, serif">
2012, Remedy IT</FONT></P>
<P STYLE="margin-bottom: 0.2in"><FONT FACE="Liberation Serif, serif">Date:
- August 20, 2012 The Netherlands</FONT></P>
+ November 06, 2012 The Netherlands</FONT></P>
</DIV>
-<H1 CLASS="western">Monotonic timer support for ACE condition
-variables</H1>
+<H1 CLASS="western">Monotonic timer support for ACE conditions and events</H1>
<H2 CLASS="western">Introduction</H2>
<P>This document describes how to use the changes to the ACE API
-which provide support to use monotonic timers for condition variables
-to solve the problem of system timeshift vulnerability of the ACE
-Condition variable timeout functionality.</P>
+which provide support to use monotonic timers for condition and event
+variables to solve the problem of system timeshift vulnerability of
+the ACE Condition and Event variable timeout functionality.</P>
<H3 CLASS="western">Background</H3>
-<P>ACE Condition variables implement an API to wait for a condition
-to be signalled with a maximum wait timeout value. This timeout value
-must be specified as <B>absolute time</B><SPAN STYLE="font-weight: normal">
+<P>ACE Condition and Event variables implement an API to wait for the
+condition or event to be signalled with a maximum wait timeout value.
+This timeout value must be specified as <B>absolute time</B><SPAN STYLE="font-weight: normal">
(this API spec has been derived from the POSIX threading API,
pthread, the most widely available, standardized, threading API
-available).</SPAN></P>
+available) or, in the case of events, optionally as relative time
+(converted to absolute time by ACE on certain platforms).</SPAN></P>
<P><SPAN STYLE="font-weight: normal">Currently ACE expects the
timeout value to be based on the system time clock through the ACE
API support for that clock (</SPAN><I><SPAN STYLE="font-weight: normal">ACE_OS::gettimeofday
@@ -57,8 +57,8 @@ API support for that clock (</SPAN><I><SPAN STYLE="font-weight: normal">ACE_OS::
default for the POSIX API (originally POSIX did not support anything
else).</SPAN></P>
<P STYLE="font-weight: normal">This dependency on the system time
-clock however makes ACE Condition variables vulnerable to system
-clock time shifts since a change in the system clock time setting
+clock however makes ACE Condition and Event variables vulnerable to
+system clock time shifts since a change in the system clock time setting
after an absolute time value has been determined (based on the
unchanged system clock) will influence the outstanding wait
operations based on these time values.</P>
@@ -71,7 +71,7 @@ expects). Since this conversion is based on the system time clock
here also a vulnerability exists.</P>
<P STYLE="font-weight: normal">To resolve this vulnerability the
notion of MONOTONIC timer sources should be integrated into the ACE
-Condition support. MONOTONIC timers are timer sources which are
+Condition and Event support. MONOTONIC timers are timer sources which are
independent of the system time clock and will always return time
values which are correct relative to previously returned time values
(at least within the lifetime of a single running process).</P>
@@ -79,7 +79,8 @@ values which are correct relative to previously returned time values
while making use of the ACE_Message_Queue classes in the
implementation of their application. The enqueu/dequeue functionality
of the message queues makes heavy use of the ACE Condition variable
-timed wait support.</P>
+timed wait support. The customer also used ACE_Event derived classes
+which suffer from the same vulnerability.</P>
<H3 CLASS="western">Requirements</H3>
<P STYLE="font-weight: normal">Prerequisites for the solution are:</P>
<UL>
@@ -98,9 +99,9 @@ timed wait support.</P>
<H2 CLASS="western"><B>Solution</B></H2>
<P STYLE="font-weight: normal">The implemented solution involves
adding support for the ACE Time_Policy traits in the ACE Condition
-API and those classes directly related to the ACE Condition timed
-wait functionality that are used by the customer (like
-ACE_Message_Queue and ACE_Task). Also some classes tightly linked to
+and Event APIs and those classes directly related to the ACE Condition
+and Event timed wait functionality that are used by the customer (like
+ACE_Event, ACE_Message_Queue and ACE_Task). Also some classes tightly linked to
those classes have been updated.</P>
<P STYLE="font-weight: normal">The newly added monotonic time policy,
ACE_Monotonic_Time_Policy, provides support for monotonic time values
@@ -186,6 +187,31 @@ msg_queue_.enqueue (msg_block, &amp;timeout_);
…</PRE><P STYLE="font-weight: normal">
<BR><BR>
</P>
+<P STYLE="font-weight: normal">Similar changes apply to the refactored ACE_Event classes. In
+addition to the added support for time policies also a new base class is introduced to allow
+for generic use of an Event variable after instantiation of a specific time policy based type.</P>
+<PRE CLASS="western" STYLE="font-weight: normal">
+…
+// declare an Event variable
+ACE_Event_Base &amp;evt;
+…
+// initialize Event variable
+ACE_Manual_Event_T&lt;ACE_Monotonic_Time_Policy&gt; mono_evt;
+evt = mono_evt;
+…
+// wait 5 sec for event to be signalled
+ACE_Time_Value_T&lt;ACE_Monotonic_Time_Policy&gt; timeout_;
+timeout_ = timeout_.now ();
+timeout_ += ACE_Time_Value (5,0);
+evt.wait (&amp;timeout_);
+…
+// OR (using relative timeout)
+…
+ACE_Time_Value_T&lt;ACE_Monotonic_Time_Policy&gt; timeout_ (5,0);
+evt.wait (&amp;timeout_, 0);
+</PRE><P STYLE="font-weight: normal">
+<BR><BR>
+</P>
<P><B>NOTE:</B><SPAN STYLE="font-weight: normal"> To function
properly the ACE_Time_Value pointer passed to the timed wait methods
</SPAN><B>MUST</B><SPAN STYLE="font-weight: normal"> be the address
@@ -195,7 +221,7 @@ layers now rely on the new time policy aware virtual methods of the
ACE_Time_Value classes to perform time calculations (to_relative_time
(), to_absolute_time (), now ()).<BR>Unfortunately due to backward
compatibility issues it was not possible to change the signatures of
-the timed wait methods to type safe versions excepting only correct
+the timed wait methods to type safe versions accepting only correct
time value instances.</SPAN></P>
<P><B>NOTE2:</B><SPAN STYLE="font-weight: normal"> Please be aware of
the differences in behaviour of the time calculation operations.</SPAN></P>
@@ -230,6 +256,7 @@ can be found in the following regression tests</P>
<LI><P STYLE="font-style: normal; font-weight: normal">$ACE_ROOT/tests/Bug_4055_Regression</P>
<LI><P STYLE="font-style: normal; font-weight: normal">$ACE_ROOT/tests/Monotonic_Task_Test</P>
<LI><P STYLE="font-style: normal; font-weight: normal">$ACE_ROOT/tests/Monotonic_Message_Queue_Test</P>
+ <LI><P STYLE="font-style: normal; font-weight: normal">$ACE_ROOT/tests/Monotonic_Manual_Event_Test</P>
</UL>
<DIV TYPE=FOOTER>
<P STYLE="margin-top: 0.2in; margin-bottom: 0in"><BR>
diff --git a/ACE/docs/Download.html b/ACE/docs/Download.html
index f217fe8a147..011337a6c65 100644
--- a/ACE/docs/Download.html
+++ b/ACE/docs/Download.html
@@ -101,128 +101,128 @@ of the ACE, TAO, and CIAO micro release kit is available for
<TR><TH>Filename</TH><TH>Description</TH><TH>Full</TH><TH>Sources only</TH></TR>
<TR><TD>ACE+TAO+CIAO.tar.gz</TD>
<TD>ACE+TAO+CIAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.4.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.4.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.4.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.4.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+CIAO.tar.bz2</TD>
<TD>ACE+TAO+CIAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.4.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.4.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.4.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.4.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+CIAO.zip</TD>
<TD>ACE+TAO+CIAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.4.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.4.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.4.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.4.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+DAnCE.tar.gz</TD>
<TD>ACE+TAO+DAnCE (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.4.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.4.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.4.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.4.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+DAnCE.tar.bz2</TD>
<TD>ACE+TAO+DAnCE (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.4.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.4.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.4.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.4.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+DAnCE.zip</TD>
<TD>ACE+TAO+DAnCE (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.4.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.4.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.4.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.4.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.tar.gz</TD>
<TD>ACE+TAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.4.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.4.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.4.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.4.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.tar.bz2</TD>
<TD>ACE+TAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.4.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.4.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.4.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.4.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.zip</TD>
<TD>ACE+TAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.4.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.4.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.4.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.4.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.tar.gz</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.4.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.4.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.tar.bz2</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.4.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.4.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.zip</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.4.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.4.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.tar.gz</TD>
<TD>ACE only (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.4.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.4.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.4.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.4.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.tar.bz2</TD>
<TD>ACE only (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.4.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.4.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.4.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.4.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.zip</TD>
<TD>ACE only (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.4.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.4.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.4.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.4.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.zip">FTP</A>]
</TD>
</TR>
</TABLE>
diff --git a/ACE/docs/bczar/bczar.html b/ACE/docs/bczar/bczar.html
index 45f0e441f1d..673b693d566 100644
--- a/ACE/docs/bczar/bczar.html
+++ b/ACE/docs/bczar/bczar.html
@@ -112,7 +112,7 @@
</ul>
If you want to perform a full build with qt support, than run:
<ul>
- <li><code>yum libcgroup-devel ant setuptool system-config-network-tui system-config-firewall-tui install lcov gnuplot java-1.6.0-openjdk git-svn perl svn screen pysvn automake doxygen bzip2 tar gzip openssh graphviz zip libtool gcc-c++ boost-devel valgrind openssl-devel gcc qt4 fltk-devel bzip2-devel rsync openssl lzo-devel zziplib-devel acpid acpi nfs-utils java xerces-c xerces-c-devel mc qt qt-devel icecream ruby ruby-devel lksctp-tools-devel git glibc.i686 libstdc++.i686 ncurses-libs.i686 zlib.i686 telnet GitPython NetworkManager wget mailx</code></li>
+ <li><code>yum install clang make patch libcgroup-devel ant setuptool system-config-network-tui system-config-firewall-tui lcov gnuplot java-1.7.0-openjdk git-svn perl svn screen pysvn automake doxygen bzip2 tar gzip openssh graphviz zip libtool gcc-c++ boost-devel valgrind openssl-devel gcc qt4 fltk-devel bzip2-devel rsync openssl lzo-devel zziplib-devel acpid acpi nfs-utils java xerces-c xerces-c-devel mc qt qt-devel icecream ruby ruby-devel lksctp-tools-devel git glibc.i686 libstdc++.i686 ncurses-libs.i686 zlib.i686 telnet GitPython NetworkManager wget mailx</code></li>
</ul>
</li>
<li>
@@ -231,7 +231,7 @@
export DOC_ROOT=$PWD/DOC_ROOT<br>
export SIGNATURE="Johnny Willemsen"<br>
export MAILID=jwillemsen@remedy.nl<br>
- wget https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/ACE/docs/svn/config?view=co -O $HOME/.subversion/config<br>
+ wget https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/ACE/docs/svn/config?view=co -O $HOME/.subversion/config<br>
svn co --username johnnyw https://svn.dre.vanderbilt.edu/DOC/Middleware/trunk DOC_ROOT<br>
svn co --username johnnyw https://svn.dre.vanderbilt.edu/DOC/MPC/trunk DOC_ROOT/ACE/MPC<br>
cd DOC_ROOT/<br>
@@ -315,11 +315,11 @@
rm -rf doxygen<br>
mkdir doxygen<br>
cd doxygen<br>
- wget https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/ACE/docs/svn/config?view=co -O $HOME/.subversion/config<br>
- svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_4/ACE ACE_wrappers<br>
- svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_4/TAO ACE_wrappers/TAO<br>
- svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_4/CIAO ACE_wrappers/TAO/CIAO<br>
- svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_4/DAnCE ACE_wrappers/TAO/DAnCE<br>
+ wget https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/ACE/docs/svn/config?view=co -O $HOME/.subversion/config<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_7/ACE ACE_wrappers<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_7/TAO ACE_wrappers/TAO<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_7/CIAO ACE_wrappers/TAO/CIAO<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_7/DAnCE ACE_wrappers/TAO/DAnCE<br>
cd ACE_wrappers<br>
export ACE_ROOT=$PWD<br>
export TAO_ROOT=$ACE_ROOT/TAO<br>
diff --git a/ACE/etc/index.html b/ACE/etc/index.html
index b940a797f13..85cece6e762 100644
--- a/ACE/etc/index.html
+++ b/ACE/etc/index.html
@@ -35,6 +35,9 @@
<hr>
We do have the documentation for previous releases
<ul>
+ <LI><P><A HREF="6.1.7/html">6.1.7</A></P></LI>
+ <LI><P><A HREF="6.1.6/html">6.1.6</A></P></LI>
+ <LI><P><A HREF="6.1.5/html">6.1.5</A></P></LI>
<LI><P><A HREF="6.1.4/html">6.1.4</A></P></LI>
<LI><P><A HREF="6.1.3/html">6.1.3</A></P></LI>
<LI><P><A HREF="6.1.2/html">6.1.2</A></P></LI>
diff --git a/ACE/html/Stats/index.shtml b/ACE/html/Stats/index.shtml
index f3c06f23378..8ff22840f3b 100644
--- a/ACE/html/Stats/index.shtml
+++ b/ACE/html/Stats/index.shtml
@@ -67,6 +67,9 @@ In addition to the statistics described above, a number of other ACE/TAO/CIAO/DA
<a href="regular/index.html">Footprint Regular CORBA</a>
</li>
<li>
+ <a href="versioned/index.html">Footprint versioned namespaces CORBA</a>
+</li>
+<li>
<a href="performance.shtml">Performance metrics Regular CORBA</a>
</li>
</ul>
diff --git a/ACE/include/makeinclude/platform_cegcc.GNU b/ACE/include/makeinclude/platform_cegcc.GNU
index a5502a40167..67f6c77e585 100644
--- a/ACE/include/makeinclude/platform_cegcc.GNU
+++ b/ACE/include/makeinclude/platform_cegcc.GNU
@@ -50,7 +50,7 @@ endif
ifneq (,$(HOST_ROOT))
TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/ace_gperf
TAO_IDL = $(HOST_ROOT)/bin/tao_idl$(HOST_EXE_EXT)
-TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_idl2$(HOST_EXE_EXT)
+TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/bin/tao_idl3_to_idl2$(HOST_EXE_EXT)
TAO_IDL_DEP = $(TAO_IDL)
TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
else
diff --git a/ACE/include/makeinclude/platform_g++_common.GNU b/ACE/include/makeinclude/platform_g++_common.GNU
index 8dd0d9f7a55..73f9235a690 100644
--- a/ACE/include/makeinclude/platform_g++_common.GNU
+++ b/ACE/include/makeinclude/platform_g++_common.GNU
@@ -29,9 +29,9 @@ else
TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/ace_gperf
TAO_IDL = $(HOST_ROOT)/bin/tao_idl
TAO_IDL_DEP = $(TAO_IDL)
- TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_idl2
+ TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/bin/tao_idl3_to_idl2
TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
- TAO_IDL3_TO_XMI = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_xmi
+ TAO_IDL3_TO_XMI = $(HOST_ROOT)/bin/tao_idl3_to_xmi
TAO_IDL3_TO_XMI_DEP = $(TAO_IDL3_TO_XMI)
# make sure to use the target compiler, not the cross-compiler
# as preprocessor for the cross-compiled idl tools
@@ -67,7 +67,8 @@ ifeq ($(c++0x),1)
endif
ifeq ($(gcov),1)
- FLAGS_C_CC += -fprofile-arcs -ftest-coverage
+ CCFLAGS += --coverage
+ LDFLAGS += --coverage
endif
ifeq ($(CXX),insure)
@@ -105,7 +106,7 @@ templates ?= automatic
# If the platform file didn't already set versioned_so, default to 1.
versioned_so ?= 1
with_ld ?=
-ifeq ($(versioned_so),1)
+ifneq ($(versioned_so),0)
ifeq ($(with_ld),hpux)
SOFLAGS += -Wl,+h -Wl,$(SONAME)
else
@@ -117,6 +118,10 @@ ifeq ($(versioned_so),1)
endif
endif
+ifeq ($(versioned_so),2)
+ FLAGS_C_CC += -DACE_VERSIONED_SO=2
+endif
+
static_libs_only ?=
CXX_FULL_VERSION := $(shell $(CXX_FOR_VERSION_TEST) --version)
diff --git a/ACE/include/makeinclude/platform_linux_clang.GNU b/ACE/include/makeinclude/platform_linux_clang.GNU
index da65d116e32..81f23450da3 100644
--- a/ACE/include/makeinclude/platform_linux_clang.GNU
+++ b/ACE/include/makeinclude/platform_linux_clang.GNU
@@ -53,6 +53,8 @@ ifeq ($(shared_libs), 1)
endif
endif
+# Compiling TAO requires relaxing strict 2-phase name lookup rules:
+CCFLAGS += -fdelayed-template-parsing
# Added line below to support "Executable Shared Object" files (as
# needed by the service configurator).
diff --git a/ACE/include/makeinclude/platform_macosx_mountain_lion.GNU b/ACE/include/makeinclude/platform_macosx_mountain_lion.GNU
new file mode 100644
index 00000000000..5899db19fa2
--- /dev/null
+++ b/ACE/include/makeinclude/platform_macosx_mountain_lion.GNU
@@ -0,0 +1,4 @@
+# $Id$
+
+include $(ACE_ROOT)/include/makeinclude/platform_macosx_lion.GNU
+
diff --git a/ACE/include/makeinclude/platform_rtems.x_g++.GNU b/ACE/include/makeinclude/platform_rtems.x_g++.GNU
index 785c1a9d197..4c4636d425c 100644
--- a/ACE/include/makeinclude/platform_rtems.x_g++.GNU
+++ b/ACE/include/makeinclude/platform_rtems.x_g++.GNU
@@ -15,7 +15,7 @@ rwho = 0
ifneq (,$(HOST_ROOT))
TAO_IDL = $(HOST_ROOT)/bin/tao_idl
- TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_idl2
+ TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/bin/tao_idl3_to_idl2
TAO_IDL_DEP = $(TAO_IDL)
TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
endif
diff --git a/ACE/include/makeinclude/platform_vxworks6.2.GNU b/ACE/include/makeinclude/platform_vxworks6.2.GNU
index ff77b1b63a1..040f9740fea 100644
--- a/ACE/include/makeinclude/platform_vxworks6.2.GNU
+++ b/ACE/include/makeinclude/platform_vxworks6.2.GNU
@@ -68,7 +68,7 @@ ifneq (,$(HOST_ROOT))
TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/ace_gperf
ifeq ("$(WIND_HOST_TYPE)","x86-win32")
TAO_IDL = $(HOST_ROOT)/bin/tao_idl.exe
- TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_idl2.exe
+ TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/bin/tao_idl3_to_idl2.exe
else
TAO_IDL = $(HOST_ROOT)/bin/tao_idl
TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/bin/tao_idl3_to_idl2
diff --git a/ACE/include/makeinclude/platform_vxworks6.3.GNU b/ACE/include/makeinclude/platform_vxworks6.3.GNU
index 05b3914782f..35302b9a078 100644
--- a/ACE/include/makeinclude/platform_vxworks6.3.GNU
+++ b/ACE/include/makeinclude/platform_vxworks6.3.GNU
@@ -69,7 +69,7 @@ endif # x86-win32
ifneq (,$(HOST_ROOT))
TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/ace_gperf
TAO_IDL = $(HOST_ROOT)/bin/tao_idl$(HOST_EXE_EXT)
-TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_idl2$(HOST_EXE_EXT)
+TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/bin/tao_idl3_to_idl2$(HOST_EXE_EXT)
TAO_IDL_DEP = $(TAO_IDL)
TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
else
diff --git a/ACE/include/makeinclude/rules.lib.GNU b/ACE/include/makeinclude/rules.lib.GNU
index 5a93b35934f..f1269e63d52 100644
--- a/ACE/include/makeinclude/rules.lib.GNU
+++ b/ACE/include/makeinclude/rules.lib.GNU
@@ -11,7 +11,7 @@
# Library versioning
#---------------------------------------------------------------------------
-ifeq ($(versioned_so),1)
+ifneq ($(versioned_so),0)
# Turn on symbol versioning. The scheme that we follow is to allow
# applications dependent on libraries, with same version numbers (major,
# minor and beta) to run, but applications with dependencies on libraries
@@ -20,13 +20,27 @@ ifeq ($(versioned_so),1)
# Version number of the libraries
#
ifeq ($(SOVERSION),)
- SOVERSION = .$(GNUACE_PROJECT_VERSION)
+ ifeq ($(versioned_so),1)
+ SOVERSION = .$(GNUACE_PROJECT_VERSION)
+ else
+ ifeq ($(versioned_so),2)
+ SOVERSION = -$(GNUACE_PROJECT_VERSION)
+ else
+ $(error unknown value for versioned_so: $(versioned_so))
+ endif
+ endif
endif # SOVERSION
# Name that will be written into the dynamic library
#
ifeq ($(SONAME),)
- SONAME = $(SHLIB)$(SOVERSION)
+ ifeq ($(versioned_so),1)
+ SONAME = $(SHLIB)$(SOVERSION)
+ else
+ ifeq ($(versioned_so),2)
+ SONAME = $(patsubst %.$(SOEXT),%,$(SHLIB))$(SOVERSION).$(SOEXT)
+ endif
+ endif
endif # SONAME
endif # versioned_so
@@ -47,9 +61,15 @@ SHLIB ?=
# Setup shared library variables, including versions.
VSHLIB_NO_VER = $(ARCH_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
CLEANUP_VSHLIB_NO_VER = $(CLEANUP_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
-VSHLIB = $(VSHLIB_NO_VER:%=%$(SOVERSION))
-CLEANUP_VSHLIB = $(CLEANUP_VSHLIB_NO_VER:%=%$(SOVERSION))
-SHLIB_WITH_VER = $(SHLIB:%=%$(SOVERSION))
+ifneq ($(versioned_so),2)
+ VSHLIB = $(VSHLIB_NO_VER:%=%$(SOVERSION))
+ CLEANUP_VSHLIB = $(CLEANUP_VSHLIB_NO_VER:%=%$(SOVERSION))
+ SHLIB_WITH_VER = $(SHLIB:%=%$(SOVERSION))
+else
+ VSHLIB = $(patsubst %.$(SOEXT),%,$(VSHLIB_NO_VER))$(SOVERSION).$(SOEXT)
+ CLEANUP_VSHLIB = $(patsubst %.$(SOEXT),%,$(CLEANUP_VSHLIB_NO_VER))$(SOVERSION).$(SOEXT)
+ SHLIB_WITH_VER = $(patsubst %.$(SOEXT),%,$(SHLIB))$(SOVERSION).$(SOEXT)
+endif
SHLIBA ?=
VSHLIBA = $(ARCH_SHLIBA:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
diff --git a/ACE/include/makeinclude/rules.local.GNU b/ACE/include/makeinclude/rules.local.GNU
index ff9d3def7bd..16b06d2028e 100644
--- a/ACE/include/makeinclude/rules.local.GNU
+++ b/ACE/include/makeinclude/rules.local.GNU
@@ -312,13 +312,23 @@ else #not vxworks_ntbuild
fi
else #firstword of LN_S is not cp, so we're using real symlinks
ifneq ($(SOVERSION),)
- @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
+ ifneq ($(versioned_so),2)
+ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
if test ! -s $@ ; then \
$(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
$(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
fi ; \
- fi
+ fi
+ else
+ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
+ if test ! -s $@ ; then \
+ $(RM) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \
+ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \
+ fi ; \
+ fi
+ endif #versioned_so
endif #SOVERSION
@if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
if test ! -s $@ ; then \
@@ -351,6 +361,10 @@ ifneq ($(SHLIB_UNCHECKED),)
-$(RM) $(SHLIB_UNCHECKED)
ifeq ($(versioned_so),1)
-$(RM) $(SHLIB_UNCHECKED)$(SOVERSION)
+else
+ ifeq ($(versioned_so),2)
+ -$(RM) $(SHLIB_UNCHECKED:.$(SOEXT)=$(SOVERSION).$(SOEXT))
+ endif
endif
endif
diff --git a/ACE/include/makeinclude/wrapper_macros.GNU b/ACE/include/makeinclude/wrapper_macros.GNU
index d4c888502f0..3a173884310 100644
--- a/ACE/include/makeinclude/wrapper_macros.GNU
+++ b/ACE/include/makeinclude/wrapper_macros.GNU
@@ -78,7 +78,10 @@
# If versioned_so is 1 (enabled), the SOVERSION make
# variable can also be set to specify the version info
# to append to the name - it should have a leading '.' -
-# else it defaults to .ACE_MAJOR.ACE_MINOR.ACE_BETA.
+# else it defaults to .ACE_MAJOR.ACE_MINOR.ACE_BETA. If 2,
+# the version will be appended to the name but *before* the
+# $(SOEXT) - it should have a lead '-' - else it defaults to
+# -ACE_MAJOR.ACE_MINOR.ACE_BETA.
# wfmo Build with wfmo support (Win32 only)
# winregistry Build with windows registry support (Win32 only)
# winnt Build WinNT-specific projects (Win32 only)
diff --git a/ACE/protocols/ace/INet/HTTP_Simple_exec.cpp b/ACE/protocols/ace/INet/HTTP_Simple_exec.cpp
index 65805c2c582..9dda462b99a 100644
--- a/ACE/protocols/ace/INet/HTTP_Simple_exec.cpp
+++ b/ACE/protocols/ace/INet/HTTP_Simple_exec.cpp
@@ -35,7 +35,11 @@ usage (void)
std::cout << "\t-p <port> \t\tproxy port to connect to\n";
std::cout << "\t-o <filename> \t\tfile to write output to\n";
#if defined (ACE_HAS_SSL) && ACE_HAS_SSL == 1
- std::cout << "\t-v <ssl version>\t\tSSL version to use: 2, 23, 3\n";
+ std::cout << "\t-v <ssl version>\t\tSSL version to use: ";
+#if !defined (OPENSSL_NO_SSL2)
+ std::cout << "2, ";
+#endif /* OPENSSL_NO_SSL2 */
+ std::cout << "23, 3\n";
std::cout << "\t-n \t\tno peer certificate verification\n";
std::cout << "\t-i \t\tignore peer certificate verification failures\n";
std::cout << "\t-c <filename> \t\tcertificate file (PEM format)\n";
@@ -78,10 +82,12 @@ parse_args (int argc, ACE_TCHAR *argv [])
case 'v':
{
ACE_CString ver = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
- if (ver == "2")
- ssl_mode = ACE_SSL_Context::SSLv2;
- else if (ver == "23")
+ if (ver == "23")
ssl_mode = ACE_SSL_Context::SSLv23;
+#if !defined (OPENSSL_NO_SSL2)
+ else if (ver == "2")
+ ssl_mode = ACE_SSL_Context::SSLv2;
+#endif /* ! OPENSSL_NO_SSL2*/
else if (ver != "3") // default mode
{
std::cerr << "ERROR: Invalid SSL mode [" << ver << "] specfied!" << std::endl;
diff --git a/ACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl b/ACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl
index 0ba137a10e1..adc670ca0c3 100755
--- a/ACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl
+++ b/ACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl
@@ -22,7 +22,12 @@ my $SV = $target1->CreateProcess("server", "-p $port -o $synchfile");
$target1->DeleteFile ($synchbase);
$target2->DeleteFile ($synchbase);
-$SV->Spawn ();
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
if ($target1->WaitForFileTimed ($synchbase,
$target1->ProcessStartWaitInterval()) == -1) {
diff --git a/ACE/protocols/tests/HTBP/Send_Large_Msg/run_test.pl b/ACE/protocols/tests/HTBP/Send_Large_Msg/run_test.pl
index 430f3fdf962..b0966acb519 100755
--- a/ACE/protocols/tests/HTBP/Send_Large_Msg/run_test.pl
+++ b/ACE/protocols/tests/HTBP/Send_Large_Msg/run_test.pl
@@ -23,7 +23,12 @@ my $CL = $target2->CreateProcess ("client", " -h $host -p $port");
$target1->DeleteFile ($synchbase);
$target2->DeleteFile ($synchbase);
-$SV->Spawn ();
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
if ($target1->WaitForFileTimed ($synchbase,
$target1->ProcessStartWaitInterval()) == -1) {
diff --git a/ACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl b/ACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl
index 17b9e3f2193..5cceff49104 100755
--- a/ACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl
+++ b/ACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl
@@ -23,7 +23,12 @@ my $CL = $target2->CreateProcess ("client", " -h $host -p $port");
$target1->DeleteFile ($synchbase);
$target2->DeleteFile ($synchbase);
-$SV->Spawn ();
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
if ($target1->WaitForFileTimed ($synchbase,
$target1->ProcessStartWaitInterval()) == -1) {
diff --git a/ACE/protocols/tests/HTBP/ping/run_test.pl b/ACE/protocols/tests/HTBP/ping/run_test.pl
index d5592ee3f26..aeac1a9ad14 100755
--- a/ACE/protocols/tests/HTBP/ping/run_test.pl
+++ b/ACE/protocols/tests/HTBP/ping/run_test.pl
@@ -24,7 +24,12 @@ my $CL = $target2->CreateProcess ("client", " -h $host -p $port");
$target1->DeleteFile ($synchbase);
$target2->DeleteFile ($synchbase);
-$SV->Spawn ();
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
if ($target1->WaitForFileTimed ($synchbase,
$target1->ProcessStartWaitInterval()) == -1) {
diff --git a/ACE/protocols/tests/RMCast/Receiver.cpp b/ACE/protocols/tests/RMCast/Receiver.cpp
index 59dde33a069..75969740aea 100644
--- a/ACE/protocols/tests/RMCast/Receiver.cpp
+++ b/ACE/protocols/tests/RMCast/Receiver.cpp
@@ -101,7 +101,7 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[])
if (ACE_OS::memcmp (expected_msg.payload,
msg.payload,
- payload_size) != 0)
+ payload_size * sizeof(short)) != 0)
{
damaged[msg.sn] = 1;
}
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency
index d55c72b0558..50e830ed112 100755
--- a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency
@@ -10,7 +10,7 @@
#
### BEGIN INIT INFO
# Provides: tao-cosconcurrency
-# Required-Start: $syslog $remote_fs tao-cosnaming
+# Required-Start: $syslog $remote_fs $network tao-cosnaming
# Should-Start: $time ypbind smtp
# Required-Stop: $syslog $remote_fs
# Should-Stop: $time ypbind smtp tao-cosnaming
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosevent b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosevent
index fefdf0dad41..d1822fc9b0a 100755
--- a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosevent
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosevent
@@ -16,9 +16,9 @@
#
### BEGIN INIT INFO
# Provides: TAO-cosconcurrency
-# Required-Start: $syslog $remote_fs TAO-cosnaming
+# Required-Start: $syslog $remote_fs $network tao-cosnaming
# Should-Start: $time ypbind smtp
-# Required-Stop: $syslog $remote_fs TAO-cosnaming
+# Required-Stop: $syslog $remote_fs tao-cosnaming
# Should-Stop: $time ypbind smtp
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming
index 90009676334..05638963490 100755
--- a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming
@@ -10,7 +10,7 @@
#
### BEGIN INIT INFO
# Provides: tao-cosnaming
-# Required-Start: $syslog $remote_fs
+# Required-Start: $syslog $remote_fs $network
# Should-Start: $time ypbind smtp
# Required-Stop: $syslog $remote_fs
# Should-Stop: $time ypbind smtp
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification
index 57fe9576b5f..f5bef2fc898 100755
--- a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification
@@ -10,7 +10,7 @@
#
### BEGIN INIT INFO
# Provides: tao-cosnotification
-# Required-Start: $syslog $remote_fs tao-cosnaming
+# Required-Start: $syslog $remote_fs $network tao-cosnaming
# Should-Start: $time ypbind smtp
# Required-Stop: $syslog $remote_fs tao-cosnaming
# Should-Stop: $time ypbind smtp
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-costrading b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-costrading
index ccb2fee0909..e1fc7f1ebde 100755
--- a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-costrading
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-costrading
@@ -10,7 +10,7 @@
#
### BEGIN INIT INFO
# Provides: tao-costrading
-# Required-Start: $syslog $remote_fs tao-cosnaming
+# Required-Start: $syslog $remote_fs $network tao-cosnaming
# Should-Start: $time ypbind smtp
# Required-Stop: $syslog $remote_fs tao-cosnaming
# Should-Stop: $time ypbind smtp
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-rtevent b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-rtevent
index b3e7ca7a2cc..d63b31e7d6b 100755
--- a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-rtevent
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-rtevent
@@ -10,7 +10,7 @@
#
### BEGIN INIT INFO
# Provides: TAO-rtevent
-# Required-Start: $syslog $remote_fs tao-cosnaming
+# Required-Start: $syslog $remote_fs $network tao-cosnaming
# Should-Start: $time ypbind smtp
# Required-Stop: $syslog $remote_fs tao-cosnaming
# Should-Stop: $time ypbind smtp
diff --git a/ACE/rpmbuild/ace-tao.spec b/ACE/rpmbuild/ace-tao.spec
index ce80eb3c791..d1ee8a37ac6 100644
--- a/ACE/rpmbuild/ace-tao.spec
+++ b/ACE/rpmbuild/ace-tao.spec
@@ -1,7 +1,7 @@
# Set the version number here.
-%define ACEVER 6.1.4
-%define TAOVER 2.1.4
-%define CIAOVER 1.1.4
+%define ACEVER 6.1.7
+%define TAOVER 2.1.7
+%define CIAOVER 1.1.7
# Conditional build
# Default values are
@@ -1916,6 +1916,7 @@ fi
%exclude %{_includedir}/ace/XtReactor/XtReactor.h
%exclude %{_includedir}/ace/XtReactor/ACE_XtReactor_export.h
%endif
+%exclude %{_libdir}/libACEXML*.so
%doc AUTHORS
%doc COPYING
@@ -2165,6 +2166,8 @@ fi
%defattr(-,root,root,-)
%{_datadir}/tao
%exclude %{_datadir}/tao/MPC
+%exclude %{_datadir}/tao/tao
+%exclude %{_datadir}/tao/orbsvcs
%{_libdir}/libTAO*.so.%{TAOVERSO}
diff --git a/ACE/tests/Bug_3744_Regression_Test.cpp b/ACE/tests/Bug_3744_Regression_Test.cpp
index c7adc481517..5743e193d4b 100644
--- a/ACE/tests/Bug_3744_Regression_Test.cpp
+++ b/ACE/tests/Bug_3744_Regression_Test.cpp
@@ -35,8 +35,8 @@ getmacaddress_test (void)
else
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("ACE_OS::getmacaddress() returned %d, should be 0\n"),
- retval));
+ ACE_TEXT ("ACE_OS::getmacaddress() returned %d, should be 0. %p\n"),
+ retval, ACE_TEXT ("error:")));
}
return retval;
#endif /* ACE_LACKS_NETWORKING */
diff --git a/ACE/tests/Bug_4055_Regression_Test.cpp b/ACE/tests/Bug_4055_Regression_Test.cpp
index 13760e1e448..a0b788737da 100644
--- a/ACE/tests/Bug_4055_Regression_Test.cpp
+++ b/ACE/tests/Bug_4055_Regression_Test.cpp
@@ -299,11 +299,15 @@ bool test_timer (ACE_Condition_Thread_Mutex& condition_, ACE_Time_Value& waittim
sys_time.wMinute = ACE_Utils::truncate_cast <WORD> (curdt.minute ());
sys_time.wSecond = ACE_Utils::truncate_cast <WORD> (curdt.second ());
sys_time.wMilliseconds = ACE_Utils::truncate_cast <WORD> (curdt.microsec () / 1000);
- ::SetLocalTime (&sys_time);
+ if (!::SetLocalTime (&sys_time))
# else
curts = curtime;
- ACE_OS::clock_settime (CLOCK_REALTIME, &curts);
+ if (ACE_OS::clock_settime (CLOCK_REALTIME, &curts) != 0)
# endif
+ {
+ ACE_DEBUG((LM_INFO,
+ "(%P|%t) Unable to reset OS time. Insufficient privileges or not supported.\n"));
+ }
}
ACE_DEBUG((LM_INFO,
diff --git a/ACE/tests/FlReactor_Test.cpp b/ACE/tests/FlReactor_Test.cpp
index 613cdd8f704..655a7af680d 100644
--- a/ACE/tests/FlReactor_Test.cpp
+++ b/ACE/tests/FlReactor_Test.cpp
@@ -172,7 +172,7 @@ Connection_Handler::open (void*)
this->peer ().get_remote_addr (from);
const int bufsiz = 128;
- char buf[bufsiz];
+ ACE_TCHAR buf[bufsiz];
from.addr_to_string (buf, bufsiz, 0);
@@ -254,7 +254,7 @@ int run_main (int argc, ACE_TCHAR *argv[])
acceptor.acceptor ().get_local_addr (address);
const int bufsiz = 128;
- char buf[bufsiz];
+ ACE_TCHAR buf[bufsiz];
address.addr_to_string (buf, bufsiz, 0);
diff --git a/ACE/tests/Manual_Event_Test.cpp b/ACE/tests/Manual_Event_Test.cpp
index 7d736f69282..3344ff9feb2 100644
--- a/ACE/tests/Manual_Event_Test.cpp
+++ b/ACE/tests/Manual_Event_Test.cpp
@@ -24,17 +24,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Atomic_Op.h"
-
-
-// msec that times are allowed to differ before test fails.
-#if defined (ACE_HAS_HI_RES_TIMER) || defined (ACE_HAS_AIX_HI_RES_TIMER) || \
- defined (ACE_HAS_PENTIUM) || defined (ACE_HAS_ALPHA_TIMER) || \
- defined (ACE_HAS_POWERPC_TIMER)
-# define ACE_ALLOWED_SLACK 100
-#else /* don't have a high-res timer */
-# define ACE_ALLOWED_SLACK 1100
-#endif /* don't have a high-res timer */
-
// Test results, 'success' is 0
static int test_result = 0;
diff --git a/ACE/tests/Monotonic_Manual_Event_Test.cpp b/ACE/tests/Monotonic_Manual_Event_Test.cpp
new file mode 100644
index 00000000000..1cc973850e9
--- /dev/null
+++ b/ACE/tests/Monotonic_Manual_Event_Test.cpp
@@ -0,0 +1,332 @@
+
+//=============================================================================
+/**
+ * @file Monotonic_Manual_Event_Test.cpp
+ *
+ * $Id$
+ *
+ * This test verifies the functionality of the time policy support
+ * for the <ACE_Manual_Event> implementation.
+ *
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
+#include "ace/Manual_Event.h"
+#include "ace/Thread.h"
+#include "ace/Thread_Manager.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_sys_time.h"
+#include "ace/OS_NS_time.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/Atomic_Op.h"
+
+#if defined (ACE_WIN32) || \
+ (defined (ACE_HAS_CLOCK_GETTIME) && \
+ !defined (ACE_LACKS_MONOTONIC_TIME) && \
+ !defined (ACE_LACKS_CONDATTR) && \
+ (defined (_POSIX_MONOTONIC_CLOCK) || defined (ACE_HAS_CLOCK_GETTIME_MONOTONIC)) && \
+ defined (_POSIX_CLOCK_SELECTION) && !defined (ACE_LACKS_CONDATTR_SETCLOCK))
+
+# include "ace/Monotonic_Time_Policy.h"
+# if defined (ACE_WIN32)
+# include "ace/Date_Time.h"
+# include "ace/Truncate.h"
+# endif
+
+// Test results, 'success' is 0
+static int test_result = 0;
+
+#if defined (ACE_HAS_THREADS)
+
+// Event used in the tests. Start it "unsignalled" (i.e., its initial
+// state is 0).
+static ACE_Event_Base *evt = 0;
+
+// use monotonic or system time policy
+static bool use_monotonic = true;
+
+// Number of worker threads.
+static long n_workers = 10;
+
+// Absolute timeout for initial wait of workers
+static ACE_Time_Value *initial_timeout;
+
+// Number of wakeups.
+#if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
+static ACE_Atomic_Op<ACE_Thread_Mutex, long> n_awoken;
+static ACE_Atomic_Op<ACE_Thread_Mutex, long> n_awoken2;
+#else
+static long n_awoken;
+static long n_awoken2;
+#endif
+
+// Explain usage and exit.
+static void
+print_usage_and_die (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("usage: %n [-w n_workers] [-s]\n")));
+ ACE_OS::exit (1);
+}
+
+static void
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("w:s"));
+
+ int c;
+
+ while ((c = get_opt ()) != -1)
+ switch (c)
+ {
+ case 'w':
+ n_workers = ACE_OS::atoi (get_opt.opt_arg ());
+ break;
+ case 's':
+ use_monotonic = false;
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+}
+
+void set_system_time(const ACE_Time_Value& tv)
+{
+# if defined (ACE_WIN32)
+ ACE_Date_Time curdt (tv);
+ SYSTEMTIME sys_time;
+ sys_time.wDay = ACE_Utils::truncate_cast <WORD> (curdt.day ());
+ sys_time.wMonth = ACE_Utils::truncate_cast <WORD> (curdt.month ());
+ sys_time.wYear = ACE_Utils::truncate_cast <WORD> (curdt.year ());
+ sys_time.wHour = ACE_Utils::truncate_cast <WORD> (curdt.hour ());
+ sys_time.wMinute = ACE_Utils::truncate_cast <WORD> (curdt.minute ());
+ sys_time.wSecond = ACE_Utils::truncate_cast <WORD> (curdt.second ());
+ sys_time.wMilliseconds = ACE_Utils::truncate_cast <WORD> (curdt.microsec () / 1000);
+ if (!::SetLocalTime (&sys_time))
+# else
+ timespec_t curts;
+ curts = tv;
+ if (ACE_OS::clock_settime (CLOCK_REALTIME, &curts) != 0)
+# endif
+ {
+ ACE_DEBUG((LM_INFO,
+ "(%P|%t) Unable to reset OS time. Insufficient privileges or not supported.\n"));
+ }
+}
+
+// Worker tries to acquire the semaphore, hold it for a while, and
+// then manually releases it.
+
+static void *
+worker (void *)
+{
+ if (evt->wait (initial_timeout) == -1)
+ {
+ if (ACE_OS::last_error () == ETIME)
+ {
+ ACE_Time_Value tm_now = initial_timeout->now ();
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT (" (%P|%t) Timed out waiting for start pulse at %#T\n"),
+ &tm_now),
+ 0);
+ }
+ else
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT (" (%P|%t) %p\n"),
+ ACE_TEXT ("Failed waiting for pulse ()")),
+ 0);
+ }
+
+ ACE_Time_Value tm_now = initial_timeout->now ();
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" (%P|%t) awake at %#T\n"), &tm_now));
+
+ if (++n_awoken < n_workers)
+ {
+ ACE_Time_Value *tv;
+ ACE_Time_Value_T<ACE_Monotonic_Time_Policy> tm_mono;
+ ACE_Time_Value tm_sys;
+
+ //FUZZ: disable check_for_lack_ACE_OS
+ ACE_Time_Value wait (1, 0); // Wait 1 sec
+ //FUZZ: enable check_for_lack_ACE_OS
+
+ if (use_monotonic)
+ {
+ tm_mono = tm_mono.now () + wait;
+ tv = &tm_mono;
+ }
+ else
+ {
+ tm_sys = ACE_OS::gettimeofday () + wait;
+ tv = &tm_sys;
+ }
+
+ if (evt->wait (tv) == -1)
+ {
+ // verify that we have ETIME
+ if (ACE_OS::last_error () == ETIME)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" (%P|%t) timeout\n")));
+ else
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT (" (%P|%t) wait failed %p\n"),
+ ACE_TEXT ("but not with ETIME")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" (%P|%t) awake in time\n")));
+
+ if (++n_awoken2 >= (n_workers/2))
+ evt->reset (); // reset signal (rest times out)
+ }
+
+ // Check to ensure that an "infinite timeout" will work.
+ if (evt->wait (0) == -1)
+ {
+ //FUZZ: disable check_for_lack_ACE_OS
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT (" (%P|%t) %p\n"),
+ ACE_TEXT ("Failed waiting for signal ()\n")));
+ //FUZZ: enable check_for_lack_ACE_OS
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" (%P|%t) last awake; send signal\n")));
+ // last one wakes others
+ if (evt->signal () == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT (" (%P|%t) %p\n"), ACE_TEXT ("signal")));
+
+ ACE_OS::sleep (ACE_Time_Value (0, 200 * 1000 * 100)); // 200 msec
+ }
+
+ if (evt->wait () == -1)
+ {
+ //FUZZ: disable check_for_lack_ACE_OS
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT (" (%P|%t) %p\n"),
+ ACE_TEXT ("Failed waiting for signal ()\n")));
+ //FUZZ: enable check_for_lack_ACE_OS
+ }
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" (%P|%t) worker finished\n")));
+
+ return 0;
+}
+
+#endif /* ACE_HAS_THREADS */
+
+// Test event functionality.
+
+int run_main (int argc, ACE_TCHAR *argv[])
+{
+ ACE_START_TEST (ACE_TEXT ("Monotonic_Manual_Event_Test"));
+
+#if defined (ACE_HAS_THREADS)
+ ACE_Manual_Event_T<ACE_Monotonic_Time_Policy> monotonic_event (0);
+ ACE_Manual_Event systime_event (0);
+ ACE_Time_Value_T<ACE_Monotonic_Time_Policy> tm_mono;
+ ACE_Time_Value tm_sys;
+
+ parse_args (argc, argv);
+
+ //FUZZ: disable check_for_lack_ACE_OS
+ ACE_Time_Value wait (7, 0); // Wait 7 sec
+ //FUZZ: enable check_for_lack_ACE_OS
+
+ if (use_monotonic)
+ {
+ evt = &monotonic_event;
+ tm_mono = tm_mono.now () + wait;
+ initial_timeout = &tm_mono;
+ }
+ else
+ {
+ evt = &systime_event;
+ tm_sys = ACE_OS::gettimeofday () + wait;
+ initial_timeout = &tm_sys;
+ }
+
+ // shift forward in time 3 sec; this will mess up timeouts if
+ // monotonic timer is not used
+ ACE_Time_Value tv_shift (3, 0);
+ set_system_time (ACE_OS::gettimeofday () + tv_shift);
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("spawning workers - initial timeout till %#T\n"), initial_timeout));
+
+ if (ACE_Thread_Manager::instance ()->spawn_n
+ (static_cast<size_t> (n_workers),
+ ACE_THR_FUNC (worker),
+ 0,
+ THR_NEW_LWP) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("spawn_n")),
+ 1);
+
+ // gives all workers chance to start
+ ACE_OS::sleep (5);
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("finished waiting for workers to start\n")));
+
+ // restore time (workers will already have failed without monotonic timer)
+ set_system_time (ACE_OS::gettimeofday () - tv_shift);
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("sending pulse ()\n")));
+
+ // Release the all workers.
+ if (evt->pulse () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("pulse")),
+ 1);
+
+ // Wait 2 sec
+ ACE_OS::sleep (2);
+
+ //FUZZ: disable check_for_lack_ACE_OS
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("sending signal ()\n")));
+ //FUZZ: enable check_for_lack_ACE_OS
+
+ // Signal
+ if (evt->signal () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("signal")),
+ 1);
+
+ ACE_Thread_Manager::instance ()->wait ();
+#else
+ ACE_UNUSED_ARG (argc);
+ ACE_UNUSED_ARG (argv);
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("Threads not supported on this platform\n")));
+#endif /* ACE_HAS_THREADS */
+ ACE_END_TEST;
+ return test_result;
+}
+
+#else
+
+int
+run_main (int , ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Monotonic_Manual_Event_Test"));
+ ACE_DEBUG((LM_INFO,
+ "(%P|%t) ACE not compiled with monotonic time.\n"));
+ ACE_END_TEST;
+ return 0;
+}
+
+#endif
diff --git a/ACE/tests/Monotonic_Message_Queue_Test.cpp b/ACE/tests/Monotonic_Message_Queue_Test.cpp
index 57e7841c053..641cb5a0244 100644
--- a/ACE/tests/Monotonic_Message_Queue_Test.cpp
+++ b/ACE/tests/Monotonic_Message_Queue_Test.cpp
@@ -35,8 +35,11 @@
#include "ace/OS_NS_unistd.h"
#if defined (ACE_WIN32) || \
- (defined (_POSIX_MONOTONIC_CLOCK) && !defined (ACE_LACKS_MONOTONIC_TIME)) || \
- defined (ACE_HAS_CLOCK_GETTIME_MONOTONIC)
+ (defined (ACE_HAS_CLOCK_GETTIME) && \
+ !defined (ACE_LACKS_MONOTONIC_TIME) && \
+ !defined (ACE_LACKS_CONDATTR) && \
+ (defined (_POSIX_MONOTONIC_CLOCK) || defined (ACE_HAS_CLOCK_GETTIME_MONOTONIC)) && \
+ defined (_POSIX_CLOCK_SELECTION) && !defined (ACE_LACKS_CONDATTR_SETCLOCK))
# if defined (ACE_WIN32)
# include "ace/Date_Time.h"
diff --git a/ACE/tests/Monotonic_Task_Test.cpp b/ACE/tests/Monotonic_Task_Test.cpp
index 2ad30da9a75..584e254d0b7 100644
--- a/ACE/tests/Monotonic_Task_Test.cpp
+++ b/ACE/tests/Monotonic_Task_Test.cpp
@@ -38,8 +38,11 @@
#include "ace/OS_NS_unistd.h"
#if defined (ACE_WIN32) || \
- (defined (_POSIX_MONOTONIC_CLOCK) && !defined (ACE_LACKS_MONOTONIC_TIME)) || \
- defined (ACE_HAS_CLOCK_GETTIME_MONOTONIC)
+ (defined (ACE_HAS_CLOCK_GETTIME) && \
+ !defined (ACE_LACKS_MONOTONIC_TIME) && \
+ !defined (ACE_LACKS_CONDATTR) && \
+ (defined (_POSIX_MONOTONIC_CLOCK) || defined (ACE_HAS_CLOCK_GETTIME_MONOTONIC)) && \
+ defined (_POSIX_CLOCK_SELECTION) && !defined (ACE_LACKS_CONDATTR_SETCLOCK))
# if defined (ACE_WIN32)
# include "ace/Date_Time.h"
diff --git a/ACE/tests/Network_Adapters_Test.cpp b/ACE/tests/Network_Adapters_Test.cpp
index 90c2fdb87af..369a1c9d7a6 100644
--- a/ACE/tests/Network_Adapters_Test.cpp
+++ b/ACE/tests/Network_Adapters_Test.cpp
@@ -563,6 +563,7 @@ Stop_Handler::open (void)
ACE_TEXT ("(%P|%t) Stop_Handler::open: %p <%d>\n"),
ACE_TEXT ("register_handler for SIGINT"), SIGINT),
-1);
+ this->registered_signals_.sig_add (SIGINT);
#endif /* SIGINT != 0 */
#if (SIGTERM != 0)
@@ -571,6 +572,7 @@ Stop_Handler::open (void)
ACE_TEXT ("(%P|%t) Stop_Handler::open: %p <%d>\n"),
ACE_TEXT ("register_handler for SIGTERM"), SIGTERM),
-1);
+ this->registered_signals_.sig_add (SIGTERM);
#endif /* SIGTERM != 0 */
#if (SIGQUIT != 0)
@@ -579,6 +581,7 @@ Stop_Handler::open (void)
ACE_TEXT ("(%P|%t) Stop_Handler::open: %p <%d>\n"),
ACE_TEXT ("register_handler for SIGQUIT"), SIGQUIT),
-1);
+ this->registered_signals_.sig_add (SIGQUIT);
#endif /* SIGQUIT != 0 */
return 0;
}
@@ -641,9 +644,7 @@ Stop_Handler::handle_input (ACE_HANDLE handle)
}
}
- this->reactor ()->remove_handler (this,
- ACE_Event_Handler::SIGNAL_MASK |
- ACE_Event_Handler::DONT_CALL);
+ this->reactor ()->remove_handler (this->registered_signals_);
if (reactor ()->end_reactor_event_loop () == -1)
{
@@ -659,10 +660,12 @@ Stop_Handler::handle_input (ACE_HANDLE handle)
}
int
-Stop_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
+Stop_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask m)
{
ACE_DEBUG ((LM_INFO,
ACE_TEXT ("(%P|%t) Stop_Handler::handle_close - entered.\n")));
+ if (m == ACE_Event_Handler::SIGNAL_MASK)
+ return 0;
this->reactor ()->remove_handler (this,
ACE_Event_Handler::SIGNAL_MASK |
ACE_Event_Handler::DONT_CALL);
diff --git a/ACE/tests/Network_Adapters_Test.h b/ACE/tests/Network_Adapters_Test.h
index f5c8e9121ed..6cfeb9d02d2 100644
--- a/ACE/tests/Network_Adapters_Test.h
+++ b/ACE/tests/Network_Adapters_Test.h
@@ -214,6 +214,8 @@ private:
// Table to place here pointers to all tasks in the process.
ACE_Event_Handler * handlers_to_stop_[HANDLERS_TO_STOP_TABLE_SIZE];
+
+ ACE_Sig_Set registered_signals_;
};
diff --git a/ACE/tests/Obstack_Test.cpp b/ACE/tests/Obstack_Test.cpp
index ee10ff8e86a..673021a5c43 100644
--- a/ACE/tests/Obstack_Test.cpp
+++ b/ACE/tests/Obstack_Test.cpp
@@ -11,15 +11,11 @@
*/
//=============================================================================
-
#include "test_config.h"
#include "ace/OS_NS_string.h"
#include "ace/Obstack.h"
#include "ace/Log_Msg.h"
-
-
-
int run_main (int, ACE_TCHAR *[])
{
ACE_START_TEST (ACE_TEXT ("Obstack_Test"));
diff --git a/ACE/tests/run_test.lst b/ACE/tests/run_test.lst
index f00b3658f59..914b5699bb3 100644
--- a/ACE/tests/run_test.lst
+++ b/ACE/tests/run_test.lst
@@ -65,7 +65,7 @@ Bug_3911_Regression_Test: !FIXED_BUGS_ONLY !ACE_FOR_TAO
Bug_3912_Regression_Test: !STATIC
Bug_3943_Regression_Test: !ACE_FOR_TAO
Bug_3974_Regression_Test
-Bug_4055_Regression_Test:
+Bug_4055_Regression_Test: !ST
CDR_Array_Test: !ACE_FOR_TAO
CDR_File_Test: !ACE_FOR_TAO
CDR_Test
@@ -142,6 +142,7 @@ Message_Block_Test: !ACE_FOR_TAO
Message_Queue_Notifications_Test
Message_Queue_Test: !ACE_FOR_TAO
Message_Queue_Test_Ex: !ACE_FOR_TAO
+Monotonic_Manual_Event_Test
Monotonic_Message_Queue_Test: !ACE_FOR_TAO
Monotonic_Task_Test: !ACE_FOR_TAO
Multicast_Test: !ST !NO_MCAST !nsk !LynxOS !LabVIEW_RT
diff --git a/ACE/tests/tests.mpc b/ACE/tests/tests.mpc
index 8b455440055..a5c13da5c2b 100644
--- a/ACE/tests/tests.mpc
+++ b/ACE/tests/tests.mpc
@@ -986,6 +986,13 @@ project(Message Queue Test) : acetest {
}
}
+project(Monotonic_Manual_Event Test) : acetest {
+ exename = Monotonic_Manual_Event_Test
+ Source_Files {
+ Monotonic_Manual_Event_Test.cpp
+ }
+}
+
project(Monotonic_Task Test) : acetest {
avoids += ace_for_tao
exename = Monotonic_Task_Test
diff --git a/CIAO/COPYING b/CIAO/COPYING
index 226708461b9..8038408462b 100644
--- a/CIAO/COPYING
+++ b/CIAO/COPYING
@@ -8,7 +8,7 @@
(henceforth referred to as "DOC software") are copyrighted by
[5]Douglas C. Schmidt and his [6]research group at [7]Washington
University, [8]University of California, Irvine, and [9]Vanderbilt
- University, Copyright (c) 1993-2012, all rights reserved. Since DOC
+ University, Copyright (c) 1993-2013, all rights reserved. Since DOC
software is open-source, freely available software, you are free to
use, modify, copy, and distribute--perpetually and irrevocably--the
DOC software source code and object code produced from the source, as
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index e48977c0412..dd7f18638ad 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,189 @@
+Mon Jan 21 08:16:41 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/ciao_tests.lst:
+ QueryCondition DDS tests are NDDS only
+
+Thu Dec 27 09:19:07 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated in preparation of next release
+
+Thu Dec 27 10:00:49 CET 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 1.1.7 released.
+
+Sun Dec 23 11:44:31 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/IDL3_to_XMI/IDL3_TO_XMI.mpc:
+ Fixed post install
+
+Sat Dec 22 15:22:31 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Base/CIAO_Base.mpc:
+ Fixed location of ciao tools
+
+Thu Dec 20 13:55:46 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+ Fixed post install
+
+Thu Dec 20 07:13:50 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/taoidl3toxmidefaults.mpb:
+ Updated location of tao_idl3_to_xmi
+
+Wed Dec 19 14:44:43 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/taobaseidl3toidl2defaults.mpb:
+ * docs/fm/CIAO.htm:
+ * tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Array/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Native/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl:
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+ * tools/IDL3_to_XMI/IDL3_TO_XMI.mpc:
+ Install tao_idl3_to_idl2 and tao_idl3_to_xmi into ACE_ROOT/bin
+ to handle cross compilation in a flat layout more easily, this
+ way we can use the same approach as tao_idl does
+
+Wed Dec 19 08:30:15 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/idl/ndds/ndds_dcps.idl:
+ * connectors/dds4ccm/impl/Utils.h:
+ Extended PresentationQosPolicyAccessScopeKind and
+ SampleRejectedStatusKind. Both enums are extended by
+ RTI DDS 5.0.0 with some new enum values.
+
+Mon Dec 17 18:49:30 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Condition.cpp:
+ * connectors/dds4ccm/impl/ndds/ContentFilteredTopic.cpp:
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp:
+ * connectors/dds4ccm/impl/ndds/DomainParticipantListener.h:
+ * connectors/dds4ccm/impl/ndds/QueryCondition.cpp:
+ * connectors/dds4ccm/impl/ndds/WaitSet.cpp:
+ Don't include ndds_cpp.h as first include, fixes problems
+ with msvc release mode compilation
+
+Mon Dec 17 10:14:59 UTC 2012 Marcel Smit <msmit@remedy.nl>
+
+ * tests/Bug_3769_Regression/Foo_exec.cpp:
+ Using ACE::is_inequal to compare floating point and
+ double values.
+
+Sun Dec 16 09:49:50 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/tests/Policies/dr_qos_test.cpp:
+ * connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.h:
+ * connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.cpp:
+ Fixed compile error with RTI DDS < 5
+
+Fri Dec 14 18:38:56 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h:
+ Fixed compile error with RTI DDS < 5
+
+Thu Dec 13 08:40:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/idl/ndds/ndds_dcps.idl:
+ * connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h:
+ * connectors/dds4ccm/impl/ndds/convertors/TypeConsistencyEnforcementQosPolicy.h:
+ * connectors/dds4ccm/tests/Policies/dr_qos_test.cpp:
+ * connectors/dds4ccm/tests/Policies/policies.mpc:
+ * connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.h:
+ * connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.cpp:
+ Added support for the new DDS TypeConsistencyEnforcementQosPolicy
+ which is coming from the DDS X-Types specification.
+
+ * connectors/dds4ccm/tests/On_Inconsistent_Topic/Base/OIT_Test_Base.idl:
+ Made both topics completely inconsistent, the topics
+ we had where seen as concistent by the DDS X-Types
+ specification
+
+Sun Dec 9 19:36:14 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp:
+ Fixed coverity error
+
+Fri Nov 30 10:11:11 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/idl/ndds/ndds_dcps.idl:
+ * connectors/dds4ccm/impl/Utils.h:
+ Extended SampleRejectedStatusKind with the RTI defined extensions,
+ detected by Coverity
+
+Sat Nov 24 14:18:41 UTC 2012 Marcel Smit <msmit@remedy.nl>
+
+ * tests/Bug_3769_Regression/Foo_exec.cpp:
+ Fuzz : Trailing whitespaces
+
+Fri Nov 23 12:53:17 UTC 2012 Marcel Smit <msmit@remedy.nl>
+
+ * tests/Bug_3769_Regression/Foo_exec.cpp:
+ Fixed fuzz and test.
+
+ * tests/Bug_3769_Regression/descriptors/DeploymentPlan.cdp:
+ Fixed fuzz.
+
+Fri Nov 23 10:56:41 UTC 2012 Marcel Smit <msmit@remedy.nl>
+
+ * tests/Bug_3769_Regression/Foo_exec.cpp:
+ Minor layout change.
+
+ * tests/Bug_3769_Regression/descriptors/DeploymentPlan.cdp:
+ Added new attribute.
+
+ * bin/ciao_tests.lst:
+ * tests/Bug_3769_Regression/descriptors/run_test_cdr.pl:
+ New test: using CDR as input for the plan launcher.
+
+Fri Nov 23 10:28:23 UTC 2012 Marcel Smit <msmit@remedy.nl>
+
+ * tests/Bug_3769_Regression/Foo.idl:
+ * tests/Bug_3769_Regression/Foo_exec.h:
+ * tests/Bug_3769_Regression/Foo_exec.cpp:
+ Expanded test. Added a struct within a struct which
+ is placed in a separate module. checking whether the
+ correct values are set.
+
+Mon Nov 19 18:15:16 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/DataReaderListener_T.cpp:
+ Layout changes
+
+ * connectors/dds4ccm/impl/DomainParticipantManager.cpp:
+ Check for (un)registration of nil domain participants, log
+ profile during unregistration
+
+Mon Nov 12 10:07:05 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated for next release
+
+Mon Nov 12 09:34:14 CET 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 1.1.6 released.
+
+Fri Oct 12 11:18:03 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/CCM_Transaction.idl:
+ Removed old comment
+
+ * ciao/Deployment/Interceptors/Deployment_Interceptors.cpp:
+ Fixed some logging statements
+
+Fri Oct 12 10:53:23 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated for x.1.5
+
+Fri Oct 12 11:20:25 CEST 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 1.1.5 released.
+
Mon Oct 8 08:02:52 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
* ciao/Deployment/Handlers/Component_Handler.cpp:
diff --git a/CIAO/MPC/config/taobaseidl3toidl2defaults.mpb b/CIAO/MPC/config/taobaseidl3toidl2defaults.mpb
index 3c212c2499e..b79c45776a0 100644
--- a/CIAO/MPC/config/taobaseidl3toidl2defaults.mpb
+++ b/CIAO/MPC/config/taobaseidl3toidl2defaults.mpb
@@ -4,8 +4,8 @@
project {
// Set the idl3_to_idl2 compiler and flags as template values
specific {
- tao_idl3_to_idl2 = $(CIAO_ROOT)/bin/tao_idl3_to_idl2
- tao_idl3_to_idl2_dep = $(CIAO_ROOT)/bin/tao_idl3_to_idl2
+ tao_idl3_to_idl2 = $(ACE_ROOT)/bin/tao_idl3_to_idl2
+ tao_idl3_to_idl2_dep = $(ACE_ROOT)/bin/tao_idl3_to_idl2
}
Define_Custom(IDL3TOIDL2) {
diff --git a/CIAO/MPC/config/taoidl3toxmidefaults.mpb b/CIAO/MPC/config/taoidl3toxmidefaults.mpb
index fab6521f07f..d77983ab222 100644
--- a/CIAO/MPC/config/taoidl3toxmidefaults.mpb
+++ b/CIAO/MPC/config/taoidl3toxmidefaults.mpb
@@ -4,8 +4,8 @@
project : xerces {
// Set the idl3_to_xmi compiler and flags as template values
specific {
- tao_idl3_to_xmi = <%quote%>$(CIAO_ROOT)/bin/tao_idl3_to_xmi<%quote%>
- tao_idl3_to_xmi_dep = <%quote%>$(CIAO_ROOT)/bin/tao_idl3_to_xmi<%quote%>
+ tao_idl3_to_xmi = <%quote%>$(ACE_ROOT)/bin/tao_idl3_to_xmi<%quote%>
+ tao_idl3_to_xmi_dep = <%quote%>$(ACE_ROOT)/bin/tao_idl3_to_xmi<%quote%>
}
Define_Custom(IDL3TOXMI) {
diff --git a/CIAO/NEWS b/CIAO/NEWS
index 2264b297e90..bc3fadc5f5a 100644
--- a/CIAO/NEWS
+++ b/CIAO/NEWS
@@ -1,6 +1,21 @@
+USER VISIBLE CHANGES BETWEEN CIAO-1.1.7 and CIAO-1.1.8
+=======================================================
+
+USER VISIBLE CHANGES BETWEEN CIAO-1.1.6 and CIAO-1.1.7
+=======================================================
+
+. Added support for RTI DDS 5.0.0 rev00
+
+USER VISIBLE CHANGES BETWEEN CIAO-1.1.5 and CIAO-1.1.6
+=======================================================
+
+. None
+
USER VISIBLE CHANGES BETWEEN CIAO-1.1.4 and CIAO-1.1.5
=======================================================
+. Added basic hello world example
+
USER VISIBLE CHANGES BETWEEN CIAO-1.1.3 and CIAO-1.1.4
=======================================================
diff --git a/CIAO/PROBLEM-REPORT-FORM b/CIAO/PROBLEM-REPORT-FORM
index afa8c22ea5d..c48ae62af24 100644
--- a/CIAO/PROBLEM-REPORT-FORM
+++ b/CIAO/PROBLEM-REPORT-FORM
@@ -41,9 +41,9 @@
To: ciao-users@list.isis.vanderbilt.edu
Subject: [area]: [synopsis]
- CIAO VERSION: 1.1.4
- TAO VERSION : 2.1.4
- ACE VERSION : 6.1.4
+ CIAO VERSION: 1.1.7
+ TAO VERSION : 2.1.7
+ ACE VERSION : 6.1.7
HOST MACHINE and OPERATING SYSTEM:
If on Windows based OS's, which version of WINSOCK do you
diff --git a/CIAO/VERSION b/CIAO/VERSION
index a3ef6c0e8a3..5926fbbba1f 100644
--- a/CIAO/VERSION
+++ b/CIAO/VERSION
@@ -1,4 +1,4 @@
-This is CIAO version 1.1.4, released Wed Aug 29 08:16:04 CEST 2012
+This is CIAO version 1.1.7, released Thu Dec 27 10:00:49 CET 2012
If you have any problems with or questions about CIAO, please send
e-mail to the CIAO mailing list (ciao-users@list.isis.vanderbilt.edu),
diff --git a/CIAO/bin/ciao_tests.lst b/CIAO/bin/ciao_tests.lst
index e70ac1e52b1..f0e2422006b 100644
--- a/CIAO/bin/ciao_tests.lst
+++ b/CIAO/bin/ciao_tests.lst
@@ -27,6 +27,7 @@ TAO/CIAO/tests/Bug_3834_Regression/descriptors/run_test.pl:
TAO/CIAO/tests/Bug_3834_Regression/descriptors/run_test_without_ns.pl:
TAO/CIAO/tests/IDL3/Events/Any/run_test.pl: !CCM_NOEVENT
TAO/CIAO/tests/Bug_3769_Regression/descriptors/run_test.pl:
+TAO/CIAO/tests/Bug_3769_Regression/descriptors/run_test_cdr.pl:
TAO/CIAO/tests/Thread/descriptors/run_test.pl: !CCM_NOEVENT
TAO/CIAO/tests/Thread/descriptors/run_test_cdd.pl: !CCM_NOEVENT
TAO/CIAO/tests/CIF/descriptors/run_test.pl: ATIC
@@ -128,8 +129,8 @@ TAO/CIAO/connectors/dds4ccm/tests/QueryCondition/Different/descriptors/run_test.
TAO/CIAO/connectors/dds4ccm/tests/QueryCondition/TwoListeners/descriptors/run_test.pl: DDS4CCM
TAO/CIAO/connectors/dds4ccm/tests/QueryCondition/TwoQueries/descriptors/run_test.pl: DDS4CCM
TAO/CIAO/connectors/dds4ccm/tests/QueryCondition/TwoQueriesMany/descriptors/run_test.pl: DDS4CCM
-TAO/CIAO/connectors/dds4ccm/tests/QueryCondition/DDS/descriptors/run_test.pl: DDS4CCM
-TAO/CIAO/connectors/dds4ccm/tests/QueryCondition/DDS_OneByOne/descriptors/run_test.pl: DDS4CCM
+TAO/CIAO/connectors/dds4ccm/tests/QueryCondition/DDS/descriptors/run_test.pl: DDS4CCM_NDDS
+TAO/CIAO/connectors/dds4ccm/tests/QueryCondition/DDS_OneByOne/descriptors/run_test.pl: DDS4CCM_NDDS
TAO/CIAO/connectors/dds4ccm/tests/TopicName/descriptors/run_test.pl: DDS4CCM
TAO/CIAO/connectors/dds4ccm/tests/MemLeakDetection/Event_MemLeakDetection_Test/descriptors/run_test.pl: DDS4CCM
TAO/CIAO/connectors/dds4ccm/tests/MemLeakDetection/State_MemLeakDetection_Test/descriptors/run_test.pl: DDS4CCM
diff --git a/CIAO/ccm/CCM_Transaction.idl b/CIAO/ccm/CCM_Transaction.idl
index 7e85f9614e7..00170ff16a9 100644
--- a/CIAO/ccm/CCM_Transaction.idl
+++ b/CIAO/ccm/CCM_Transaction.idl
@@ -10,7 +10,6 @@ module Components
{
typeprefix Components "omg.org";
- // @@ Components::Transaction is still there.
module Transaction
{
diff --git a/CIAO/ciao/Base/CIAO_Base.mpc b/CIAO/ciao/Base/CIAO_Base.mpc
index 6b4b0bb86f5..c623313f75a 100644
--- a/CIAO/ciao/Base/CIAO_Base.mpc
+++ b/CIAO/ciao/Base/CIAO_Base.mpc
@@ -63,7 +63,7 @@ project(*_install) : install, install_data {
}
verbatim(gnuace, postinstall) {
" cp ../../rules.ciao.GNU $(INSTALL_PREFIX)/share/ciao"
-" perl -i -pe's!\\$$[{(]CIAO_ROOT[})]!$(INSTALL_PREFIX)/include!g;' -e'if (/ifndef TAO_IDL3_TO_IDL2\\b/) {print qq!TAO_IDL3_TO_IDL2=$(INSTALL_PREFIX)/share/ciao/bin/tao_idl3_to_idl2\\nTAO_IDL3_TO_IDL2_DEP=\\$$(TAO_IDL3_TO_IDL2)\\$$(EXEEXT)\\n!}' -e'if (/ifndef TAO_IDL3_TO_XMI\\b/) {print qq!TAO_IDL3_TO_XMI=$(INSTALL_PREFIX)/share/ciao/bin/tao_idl3_to_xmi\\nTAO_IDL3_TO_XMI_DEP=\\$$(TAO_IDL3_TO_XMI)\\$$(EXEEXT)\\n!}' $(INSTALL_PREFIX)/share/ciao/rules.ciao.GNU"
+" perl -i -pe's!\\$$[{(]CIAO_ROOT[})]!$(INSTALL_PREFIX)/include!g;' -e'if (/ifndef TAO_IDL3_TO_IDL2\\b/) {print qq!TAO_IDL3_TO_IDL2=$(INSTALL_PREFIX)/share/ace/bin/tao_idl3_to_idl2\\nTAO_IDL3_TO_IDL2_DEP=\\$$(TAO_IDL3_TO_IDL2)\\$$(EXEEXT)\\n!}' -e'if (/ifndef TAO_IDL3_TO_XMI\\b/) {print qq!TAO_IDL3_TO_XMI=$(INSTALL_PREFIX)/share/ace/bin/tao_idl3_to_xmi\\nTAO_IDL3_TO_XMI_DEP=\\$$(TAO_IDL3_TO_XMI)\\$$(EXEEXT)\\n!}' $(INSTALL_PREFIX)/share/ciao/rules.ciao.GNU"
" echo export CIAO_ROOT=$(INSTALL_PREFIX)/share/ciao> $(INSTALL_PREFIX)/share/ciao/ciao-devel.sh"
}
}
diff --git a/CIAO/ciao/Deployment/Interceptors/Deployment_Interceptors.cpp b/CIAO/ciao/Deployment/Interceptors/Deployment_Interceptors.cpp
index 0946d292ebb..a5f128de2d4 100644
--- a/CIAO/ciao/Deployment/Interceptors/Deployment_Interceptors.cpp
+++ b/CIAO/ciao/Deployment/Interceptors/Deployment_Interceptors.cpp
@@ -19,9 +19,9 @@ namespace CIAO
if (CORBA::is_nil (this->orb_))
{
CIAO_ERROR (1, (LM_ERROR, CLINFO
- "Container_Handler_i::configure -"
+ "CIAO_StoreReferences_i::CIAO_StoreReferences_i -"
"Unable to locate ORB.\n"));
- throw ::Deployment::StartError ("CIAO Container Handler",
+ throw ::Deployment::StartError ("CIAO_StoreReferences_i",
"Unable to locate ORB");
}
}
@@ -135,7 +135,7 @@ namespace CIAO
CIAO_ERROR (1, (LM_ERROR, CLINFO
"CIAO_ReferenceLookup_i::CIAO_ReferenceLookup_i -"
"Unable to locate ORB.\n"));
- throw ::Deployment::StartError ("CIAO Container Handler",
+ throw ::Deployment::StartError ("CIAO_ReferenceLookup_i",
"Unable to locate ORB");
}
}
diff --git a/CIAO/ciao/Version.h b/CIAO/ciao/Version.h
index adf4ee98e05..b05c2db39d0 100644
--- a/CIAO/ciao/Version.h
+++ b/CIAO/ciao/Version.h
@@ -5,5 +5,5 @@
#define CIAO_MAJOR_VERSION 1
#define CIAO_MINOR_VERSION 1
-#define CIAO_BETA_VERSION 4
-#define CIAO_VERSION "1.1.4"
+#define CIAO_BETA_VERSION 7
+#define CIAO_VERSION "1.1.7"
diff --git a/CIAO/connectors/dds4ccm/idl/ndds/ndds_dcps.idl b/CIAO/connectors/dds4ccm/idl/ndds/ndds_dcps.idl
index 573ca744dae..931d2f742e4 100644
--- a/CIAO/connectors/dds4ccm/idl/ndds/ndds_dcps.idl
+++ b/CIAO/connectors/dds4ccm/idl/ndds/ndds_dcps.idl
@@ -115,7 +115,13 @@ module DDS {
NOT_REJECTED,
REJECTED_BY_INSTANCES_LIMIT,
REJECTED_BY_SAMPLES_LIMIT,
- REJECTED_BY_SAMPLES_PER_INSTANCE_LIMIT
+ REJECTED_BY_SAMPLES_PER_INSTANCE_LIMIT,
+ REJECTED_BY_REMOTE_WRITERS_LIMIT, /* RTI Extension */
+ REJECTED_BY_REMOTE_WRITERS_PER_INSTANCE_LIMIT, /* RTI Extension */
+ REJECTED_BY_SAMPLES_PER_REMOTE_WRITER_LIMIT, /* RTI Extension */
+ REJECTED_BY_VIRTUAL_WRITERS_LIMIT, /* RTI DDS 5.0.0 Extension */
+ REJECTED_BY_REMOTE_WRITERS_PER_SAMPLE_LIMIT, /* RTI DDS 5.0.0 Extension */
+ REJECTED_BY_REMOTE_WRITER_SAMPLES_PER_VIRTUAL_QUEUE_LIMIT /* RTI DDS 5.0.0 Extension */
};
struct SampleRejectedStatus {
@@ -209,6 +215,15 @@ module DDS {
long unacknowledged_sample_count_peak;
};
+ enum TypeConsistencyKind {
+ DISALLOW_TYPE_COERCION,
+ ALLOW_TYPE_COERCION
+ };
+
+ struct TypeConsistencyEnforcementQosPolicy {
+ TypeConsistencyKind kind;
+ };
+
// ----------------------------------------------------------------------
// Listeners
// ----------------------------------------------------------------------
@@ -326,36 +341,35 @@ module DDS {
Entity get_entity();
};
- // Sample states to support reads
+ /// Sample states to support reads
typedef unsigned long SampleStateKind;
const SampleStateKind READ_SAMPLE_STATE = 0x0001 << 0;
const SampleStateKind NOT_READ_SAMPLE_STATE = 0x0001 << 1;
- // This is a bit-mask SampleStateKind
+ /// This is a bit-mask SampleStateKind
typedef unsigned long SampleStateMask;
const SampleStateMask ANY_SAMPLE_STATE = 0xffff;
- // View states to support reads
+ /// View states to support reads
typedef unsigned long ViewStateKind;
const ViewStateKind NEW_VIEW_STATE = 0x0001 << 0;
const ViewStateKind NOT_NEW_VIEW_STATE = 0x0001 << 1;
- // This is a bit-mask ViewStateKind
+ /// This is a bit-mask ViewStateKind
typedef unsigned long ViewStateMask;
const ViewStateMask ANY_VIEW_STATE = 0xffff;
- // Instance states to support reads
+ /// Instance states to support reads
typedef unsigned long InstanceStateKind;
const InstanceStateKind ALIVE_INSTANCE_STATE = 0x0001 << 0;
const InstanceStateKind NOT_ALIVE_DISPOSED_INSTANCE_STATE = 0x0001 << 1;
const InstanceStateKind NOT_ALIVE_NO_WRITERS_INSTANCE_STATE = 0x0001 << 2;
- // This is a bit-mask InstanceStateKind
+ /// This is a bit-mask InstanceStateKind
typedef unsigned long InstanceStateMask;
const InstanceStateMask ANY_INSTANCE_STATE = 0xffff;
const InstanceStateMask NOT_ALIVE_INSTANCE_STATE = 0x006;
-
local interface ReadCondition : Condition {
SampleStateMask get_sample_state_mask();
ViewStateMask get_view_state_mask();
@@ -419,8 +433,8 @@ module DDS {
const QosPolicyId_t TRANSPORTPRIORITY_QOS_POLICY_ID = 20;
const QosPolicyId_t LIFESPAN_QOS_POLICY_ID = 21;
const QosPolicyId_t DURABILITYSERVICE_QOS_POLICY_ID = 22;
+ const QosPolicyId_t TYPE_CONSISTENCY_ENFORCEMENT_QOS_POLICY_ID = 24;
-#if (CIAO_DDS4CCM_NDDS==1)
/* --- Extension QoS policies: --- */
const QosPolicyId_t WIREPROTOCOL_QOS_POLICY_ID = 1000;
const QosPolicyId_t DISCOVERY_QOS_POLICY_ID = 1001;
@@ -455,7 +469,9 @@ module DDS {
const QosPolicyId_t SUBSCRIBERPROTOCOL_QOS_POLICY_ID = 1032;
const QosPolicyId_t TOPICPROTOCOL_QOS_POLICY_ID = 1033;
const QosPolicyId_t DOMAINPARTICIPANTPROTOCOL_QOS_POLICY_ID = 1034;
-#endif
+ const QosPolicyId_t AVAILABILITY_QOS_POLICY_ID = 1035;
+ const QosPolicyId_t TRANSPORTMULTICASTMAPPING_QOS_POLICY_ID = 1036;
+ const QosPolicyId_t LOGGING_QOS_POLICY_ID = 1037;
typedef sequence<octet> OctetSeq;
struct UserDataQosPolicy {
@@ -491,7 +507,8 @@ module DDS {
enum PresentationQosPolicyAccessScopeKind {
INSTANCE_PRESENTATION_QOS,
TOPIC_PRESENTATION_QOS,
- GROUP_PRESENTATION_QOS
+ GROUP_PRESENTATION_QOS,
+ HIGHEST_OFFERED_PRESENTATION_QOS /* RTI DDS 5.0.0 Extension */
};
struct PresentationQosPolicy {
PresentationQosPolicyAccessScopeKind access_scope;
@@ -553,14 +570,11 @@ module DDS {
BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
};
-#if (CIAO_DDS4CCM_NDDS==1)
enum DestinationOrderQosPolicyScopeKind {
INSTANCE_SCOPE_DESTINATIONORDER_QOS,
TOPIC_SCOPE_DESTINATIONORDER_QOS
};
-#endif
-#if (CIAO_DDS4CCM_NDDS==1)
enum DataWriterResourceLimitsInstanceReplacementKind {
UNREGISTERED_INSTANCE_REPLACEMENT,
ALIVE_INSTANCE_REPLACEMENT,
@@ -569,14 +583,11 @@ module DDS {
DISPOSED_THEN_ALIVE_INSTANCE_REPLACEMENT,
ALIVE_OR_DISPOSED_INSTANCE_REPLACEMENT
};
-#endif
struct DestinationOrderQosPolicy {
DestinationOrderQosPolicyKind kind;
-#if (CIAO_DDS4CCM_NDDS==1)
DestinationOrderQosPolicyScopeKind scope;
Duration_t source_timestamp_tolerance;
-#endif
};
enum HistoryQosPolicyKind {
@@ -584,31 +595,25 @@ module DDS {
KEEP_ALL_HISTORY_QOS
};
-#if (CIAO_DDS4CCM_NDDS==1)
enum RefilterQosPolicyKind {
NONE_REFILTER_QOS,
ALL_REFILTER_QOS,
ON_DEMAND_REFILTER_QOS
};
-#endif
struct HistoryQosPolicy {
HistoryQosPolicyKind kind;
long depth;
-#if (CIAO_DDS4CCM_NDDS==1)
RefilterQosPolicyKind refilter;
-#endif
};
struct ResourceLimitsQosPolicy {
long max_samples;
long max_instances;
long max_samples_per_instance;
-#if (CIAO_DDS4CCM_NDDS==1)
long initial_samples;
long initial_instances;
long instance_hash_buckets;
-#endif
};
struct EntityFactoryQosPolicy {
@@ -619,7 +624,6 @@ module DDS {
boolean autodispose_unregistered_instances;
};
-#if (CIAO_DDS4CCM_NDDS==1)
struct DataReaderResourceLimitsQosPolicy {
long max_remote_writers;
long max_remote_writers_per_instance;
@@ -642,9 +646,7 @@ module DDS {
long initial_remote_virtual_writers_per_instance;
long max_query_condition_filters;
};
-#endif
-#if (CIAO_DDS4CCM_NDDS==1)
struct DataWriterResourceLimitsQosPolicy {
long initial_concurrent_blocking_threads;
long max_concurrent_blocking_threads;
@@ -656,7 +658,6 @@ module DDS {
boolean replace_empty_instances;
boolean autoregister_instances;
};
-#endif
struct ReaderDataLifecycleQosPolicy {
Duration_t autopurge_nowriter_samples_delay;
@@ -716,9 +717,7 @@ module DDS {
OwnershipStrengthQosPolicy ownership_strength;
WriterDataLifecycleQosPolicy writer_data_lifecycle;
-#if (CIAO_DDS4CCM_NDDS==1)
DataWriterResourceLimitsQosPolicy writer_resource_limits;
-#endif
};
struct PublisherQos {
@@ -743,9 +742,9 @@ module DDS {
TimeBasedFilterQosPolicy time_based_filter;
ReaderDataLifecycleQosPolicy reader_data_lifecycle;
-#if (CIAO_DDS4CCM_NDDS==1)
DataReaderResourceLimitsQosPolicy reader_resource_limits;
-#endif
+
+ TypeConsistencyEnforcementQosPolicy type_consistency;
};
struct SubscriberQos {
diff --git a/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.cpp b/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.cpp
index a89e62d4db6..24b30dfb4a3 100644
--- a/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.cpp
@@ -113,18 +113,18 @@ namespace CIAO
{
::DDS::ReadCondition_var rd = ::DDS::ReadCondition::_narrow (qc.in ());
result = reader->take_w_condition (data,
- sample_info,
- max_samples,
- rd.in ());
+ sample_info,
+ max_samples,
+ rd.in ());
}
else
{
result = reader->take (data,
- sample_info,
- max_samples,
- ::DDS::NOT_READ_SAMPLE_STATE,
- ::DDS::NEW_VIEW_STATE | ::DDS::NOT_NEW_VIEW_STATE,
- ::DDS::ANY_INSTANCE_STATE);
+ sample_info,
+ max_samples,
+ ::DDS::NOT_READ_SAMPLE_STATE,
+ ::DDS::NEW_VIEW_STATE | ::DDS::NOT_NEW_VIEW_STATE,
+ ::DDS::ANY_INSTANCE_STATE);
}
DDS4CCM_DEBUG (DDS4CCM_LOG_LEVEL_DDS_STATUS, (LM_INFO, DDS4CCM_INFO
diff --git a/CIAO/connectors/dds4ccm/impl/DomainParticipantManager.cpp b/CIAO/connectors/dds4ccm/impl/DomainParticipantManager.cpp
index e72d4b175ff..0fbf6d646da 100644
--- a/CIAO/connectors/dds4ccm/impl/DomainParticipantManager.cpp
+++ b/CIAO/connectors/dds4ccm/impl/DomainParticipantManager.cpp
@@ -151,6 +151,11 @@ namespace CIAO
ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, _guard,
this->dps_mutex_, CORBA::INTERNAL ());
+ if (::CORBA::is_nil (dp))
+ {
+ return false;
+ }
+
std::string profile;
if (qos_profile)
{
@@ -180,7 +185,7 @@ namespace CIAO
DDS4CCM_DEBUG (DDS4CCM_LOG_LEVEL_ACTION, (LM_DEBUG, DDS4CCM_INFO
"DomainParticipantManager::register_participant - "
"Added a new DomainParticipant "
- "for domain <%d> with profile<%C> handle "
+ "for domain <%d> with profile <%C> handle "
DDS_ENTITY_FORMAT_SPECIFIER ".\n",
domain_id, qos_profile,
DDS_ENTITY_LOG (dp)));
@@ -209,6 +214,11 @@ namespace CIAO
ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, _guard,
this->dps_mutex_, CORBA::INTERNAL ());
+ if (::CORBA::is_nil (dp))
+ {
+ return false;
+ }
+
std::string profile;
if (qos_profile)
{
@@ -225,9 +235,10 @@ namespace CIAO
"DomainParticipantManager::unregister_participant - "
"Delete participant "
DDS_ENTITY_FORMAT_SPECIFIER
- " for domain <%d> since ref_count is one.\n",
+ " for domain <%d> with profile <%C> since ref_count is one.\n",
DDS_ENTITY_LOG (dp),
- domain_id));
+ domain_id,
+ qos_profile));
delete iter->second;
// Save to remove from list
@@ -239,10 +250,11 @@ namespace CIAO
"DomainParticipantManager::unregister_participant - "
"Don't delete participant "
DDS_ENTITY_FORMAT_SPECIFIER
- " for domain <%d> since "
+ " for domain <%d> with profile <%C> since "
"it's still used - ref_count is <%d>\n",
DDS_ENTITY_LOG (dp),
domain_id,
+ qos_profile,
iter->second->_ref_count ()));
iter->second->_dec_ref ();
return false;
diff --git a/CIAO/connectors/dds4ccm/impl/Utils.h b/CIAO/connectors/dds4ccm/impl/Utils.h
index bccef994e9a..835b8b3694e 100644
--- a/CIAO/connectors/dds4ccm/impl/Utils.h
+++ b/CIAO/connectors/dds4ccm/impl/Utils.h
@@ -88,6 +88,14 @@ namespace CIAO
DDS4CCM_RETCODE (DDS::REJECTED_BY_INSTANCES_LIMIT);
DDS4CCM_RETCODE (DDS::REJECTED_BY_SAMPLES_LIMIT);
DDS4CCM_RETCODE (DDS::REJECTED_BY_SAMPLES_PER_INSTANCE_LIMIT);
+#if (CIAO_DDS4CCM_NDDS==1)
+ DDS4CCM_RETCODE (DDS::REJECTED_BY_REMOTE_WRITERS_LIMIT);
+ DDS4CCM_RETCODE (DDS::REJECTED_BY_REMOTE_WRITERS_PER_INSTANCE_LIMIT);
+ DDS4CCM_RETCODE (DDS::REJECTED_BY_SAMPLES_PER_REMOTE_WRITER_LIMIT);
+ DDS4CCM_RETCODE (DDS::REJECTED_BY_VIRTUAL_WRITERS_LIMIT); /* RTI DDS 5.0.0 Extension */
+ DDS4CCM_RETCODE (DDS::REJECTED_BY_REMOTE_WRITERS_PER_SAMPLE_LIMIT); /* RTI DDS 5.0.0 Extension */
+ DDS4CCM_RETCODE (DDS::REJECTED_BY_REMOTE_WRITER_SAMPLES_PER_VIRTUAL_QUEUE_LIMIT); /* RTI DDS 5.0.0 Extension */
+#endif
}
return "***Unknown enum value, update CIAO::DDS4CCM::translate_rejectedstatuskind()";
#undef DDS4CCM_RETCODE
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/Condition.cpp b/CIAO/connectors/dds4ccm/impl/ndds/Condition.cpp
index d8fcb35c29e..d2737fc95de 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/Condition.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/Condition.cpp
@@ -1,9 +1,8 @@
// $Id$
#include "Condition.h"
-
-#include "ndds/ndds_cpp.h"
#include "dds4ccm/impl/logger/Log_Macros.h"
+#include "ndds/ndds_cpp.h"
namespace CIAO
{
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/ContentFilteredTopic.cpp b/CIAO/connectors/dds4ccm/impl/ndds/ContentFilteredTopic.cpp
index eccdf9bbfd7..739ec4576dd 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/ContentFilteredTopic.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/ContentFilteredTopic.cpp
@@ -1,10 +1,10 @@
// $Id$
-#include "ndds/ndds_cpp.h"
#include "dds4ccm/impl/ndds/ContentFilteredTopic.h"
#include "dds4ccm/impl/ndds/Topic.h"
#include "dds4ccm/impl/logger/Log_Macros.h"
#include "dds4ccm/impl/ndds/convertors/StringSeq.h"
+#include "ndds/ndds_cpp.h"
namespace CIAO
{
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp
index fe949fea9e5..39fcc25ad07 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp
@@ -1,8 +1,8 @@
// $Id$
-#include "ndds/ndds_cpp.h"
#include "dds4ccm/impl/ndds/DataWriter.h"
#include "dds4ccm/impl/logger/Log_Macros.h"
+#include "ndds/ndds_cpp.h"
namespace CIAO
{
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp
index 61441d9519d..583df715559 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp
@@ -182,7 +182,10 @@ namespace CIAO
dynamic_cast < DDS_DomainParticipant_i *>
(retval.in ());
- typed_dp->set_rti_entity (dds_dp);
+ if (typed_dp)
+ {
+ typed_dp->set_rti_entity (dds_dp);
+ }
return retval._retn ();
}
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.h b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.h
index fb0f2746f20..99445dae5f8 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.h
@@ -12,7 +12,7 @@
#include "dds4ccm/idl/ndds/ndds_dcpsC.h"
#include "dds4ccm/impl/ndds/dds4ccm_ndds_export.h"
-# include "ndds/ndds_cpp.h"
+#include "ndds/ndds_cpp.h"
namespace CIAO
{
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.cpp b/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.cpp
index 572a0ab09e3..5b2edacb524 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.cpp
@@ -1,9 +1,9 @@
// $Id$
-#include "ndds/ndds_cpp.h"
#include "dds4ccm/impl/ndds/QueryCondition.h"
#include "dds4ccm/impl/ndds/convertors/StringSeq.h"
#include "dds4ccm/impl/logger/Log_Macros.h"
+#include "ndds/ndds_cpp.h"
namespace CIAO
{
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/WaitSet.cpp b/CIAO/connectors/dds4ccm/impl/ndds/WaitSet.cpp
index 54087a21ad9..b8b3ff5a885 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/WaitSet.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/WaitSet.cpp
@@ -1,17 +1,15 @@
// $Id$
#include "WaitSet.h"
-
-#include "ndds/ndds_cpp.h"
-
#include "dds4ccm/impl/ndds/Condition.h"
#include "dds4ccm/impl/ndds/QueryCondition.h"
#include "dds4ccm/impl/ndds/ReadCondition.h"
#include "dds4ccm/impl/ndds/convertors/Duration_t.h"
#include "dds4ccm/impl/ndds/convertors/InstanceHandle_t.h"
#include "dds4ccm/impl/Utils.h"
-
#include "dds4ccm/impl/logger/Log_Macros.h"
+#include "ndds/ndds_cpp.h"
+
namespace CIAO
{
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h
index c447eb696e2..c3ef3c450d0 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h
@@ -22,6 +22,7 @@
#include "TimeBasedFilterQosPolicy.h"
#include "ReaderDataLifecycleQosPolicy.h"
#include "DataReaderResourceLimitsQosPolicy.h"
+#include "TypeConsistencyEnforcementQosPolicy.h"
#include "dds4ccm/impl/dds4ccm_conf.h"
@@ -41,6 +42,9 @@ operator<<= (::DDS::DataReaderQos &ddsqos, const ::DDS_DataReaderQos & qos)
ddsqos.time_based_filter <<= qos.time_based_filter;
ddsqos.reader_data_lifecycle <<= qos.reader_data_lifecycle;
ddsqos.reader_resource_limits <<= qos.reader_resource_limits;
+#if defined (RTI_DDS_VERSION_MAJOR) && (RTI_DDS_VERSION_MAJOR >= 5)
+ ddsqos.type_consistency <<= qos.type_consistency;
+#endif
}
inline void
@@ -59,6 +63,9 @@ operator<<= (::DDS_DataReaderQos &ddsqos, const ::DDS::DataReaderQos & qos)
ddsqos.time_based_filter <<= qos.time_based_filter;
ddsqos.reader_data_lifecycle <<= qos.reader_data_lifecycle;
ddsqos.reader_resource_limits <<= qos.reader_resource_limits;
+#if defined (RTI_DDS_VERSION_MAJOR) && (RTI_DDS_VERSION_MAJOR >= 5)
+ ddsqos.type_consistency <<= qos.type_consistency;
+#endif
}
#endif /* DDS4CCM_DATAREADERQOS_H */
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/convertors/TypeConsistencyEnforcementQosPolicy.h b/CIAO/connectors/dds4ccm/impl/ndds/convertors/TypeConsistencyEnforcementQosPolicy.h
new file mode 100644
index 00000000000..e343d52e23c
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/convertors/TypeConsistencyEnforcementQosPolicy.h
@@ -0,0 +1,30 @@
+/**
+ * @author Johnny Willemsen (jwillemsen@remedy.nl)
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef DDS4CCM_TYPECONSISTENCYENFORCEMENTQOSPOLICY_H
+#define DDS4CCM_TYPECONSISTENCYENFORCEMENTQOSPOLICY_H
+
+#include "dds4ccm/impl/dds4ccm_conf.h"
+
+#if defined (RTI_DDS_VERSION_MAJOR) && (RTI_DDS_VERSION_MAJOR >= 5)
+
+inline void
+operator<<= (::DDS::TypeConsistencyEnforcementQosPolicy &ddsqos, const ::DDS_TypeConsistencyEnforcementQosPolicy & qos)
+{
+ ddsqos.kind = static_cast < ::DDS::TypeConsistencyKind> (qos.kind);
+}
+
+inline void
+operator<<= (::DDS_TypeConsistencyEnforcementQosPolicy &ddsqos, const ::DDS::TypeConsistencyEnforcementQosPolicy & qos)
+{
+ ddsqos.kind = static_cast < ::DDS_TypeConsistencyKind> (qos.kind);
+}
+
+#endif
+
+#endif /* DDS4CCM_TYPECONSISTENCYENFORCEMENTQOSPOLICY_H */
diff --git a/CIAO/connectors/dds4ccm/tests/On_Inconsistent_Topic/Base/OIT_Test_Base.idl b/CIAO/connectors/dds4ccm/tests/On_Inconsistent_Topic/Base/OIT_Test_Base.idl
index ca489d916f9..deb6cdc2a1b 100644
--- a/CIAO/connectors/dds4ccm/tests/On_Inconsistent_Topic/Base/OIT_Test_Base.idl
+++ b/CIAO/connectors/dds4ccm/tests/On_Inconsistent_Topic/Base/OIT_Test_Base.idl
@@ -30,7 +30,7 @@ typedef sequence<OIT_Receiver_Topic> OIT_Receiver_TopicSeq;
struct OIT_Sender_Topic {
string symbol; //@key
long x;
- long y;
+ short y;
long z;
};
diff --git a/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.cpp b/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.cpp
index dab0f245666..3a4fc093cdd 100644
--- a/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.cpp
+++ b/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.cpp
@@ -14,6 +14,7 @@
#include "ownership_qos_test.h"
#include "tbf_qos_test.h"
#include "rd_lifecycle_qos_test.h"
+#include "typeconsistencyenforcement_qos_test.h"
DatareaderPolicyTest::DatareaderPolicyTest ()
{
@@ -127,6 +128,16 @@ DatareaderPolicyTest::run ()
"Error in ReaderDataLifecycleQosPolicy.\n"));
++ret;
}
+
+#if defined (RTI_DDS_VERSION_MAJOR) && (RTI_DDS_VERSION_MAJOR >= 5)
+ if (!TypeConsistencyEnforcementPolicyPolicyTest::check (dds_policy.type_consistency,
+ policy.type_consistency))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in TypeConsistencyEnforcementQosPolicy.\n"));
+ ++ret;
+ }
+#endif
}
catch (...)
{
diff --git a/CIAO/connectors/dds4ccm/tests/Policies/policies.mpc b/CIAO/connectors/dds4ccm/tests/Policies/policies.mpc
index b8379b62099..95c8b697043 100644
--- a/CIAO/connectors/dds4ccm/tests/Policies/policies.mpc
+++ b/CIAO/connectors/dds4ccm/tests/Policies/policies.mpc
@@ -34,6 +34,7 @@ project(DDS_Policies_Test) : taoexe, typecode, dds4ccm_base {
user_data_qos_test.cpp
rd_lifecycle_qos_test.cpp
tbf_qos_test.cpp
+ typeconsistencyenforcement_qos_test.cpp
ownership_strength_qos_test.cpp
wr_lifecycle_qos_test.cpp
duration.cpp
diff --git a/CIAO/connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.cpp b/CIAO/connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.cpp
new file mode 100644
index 00000000000..1b268ba092f
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.cpp
@@ -0,0 +1,18 @@
+// $Id$
+
+#include "typeconsistencyenforcement_qos_test.h"
+
+#if defined (RTI_DDS_VERSION_MAJOR) && (RTI_DDS_VERSION_MAJOR >= 5)
+
+TypeConsistencyEnforcementPolicyPolicyTest::TypeConsistencyEnforcementPolicyPolicyTest ()
+{
+}
+
+bool
+TypeConsistencyEnforcementPolicyPolicyTest::check (const ::DDS_TypeConsistencyEnforcementQosPolicy & dds_qos,
+ const ::DDS::TypeConsistencyEnforcementQosPolicy & qos)
+{
+ return dds_qos.kind == static_cast <DDS_TypeConsistencyKind> (qos.kind);
+}
+
+#endif
diff --git a/CIAO/connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.h b/CIAO/connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.h
new file mode 100644
index 00000000000..e9db0f811d4
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tests/Policies/typeconsistencyenforcement_qos_test.h
@@ -0,0 +1,23 @@
+//$Id$
+
+#ifndef TYPECONSISTENCYENFORCEMENT_QOS_TEST_H_
+#define TYPECONSISTENCYENFORCEMENT_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/ndds/convertors/TypeConsistencyEnforcementQosPolicy.h"
+
+#if defined (RTI_DDS_VERSION_MAJOR) && (RTI_DDS_VERSION_MAJOR >= 5)
+
+class TypeConsistencyEnforcementPolicyPolicyTest
+{
+public:
+ TypeConsistencyEnforcementPolicyPolicyTest ();
+
+ static bool check (const ::DDS_TypeConsistencyEnforcementQosPolicy & dds_qos,
+ const ::DDS::TypeConsistencyEnforcementQosPolicy & qos);
+};
+
+#endif
+
+#endif /* TYPECONSISTENCYENFORCEMENT_QOS_TEST_H_ */
diff --git a/CIAO/docs/fm/CIAO.htm b/CIAO/docs/fm/CIAO.htm
index b6d840f8c2b..de69234ccfe 100644
--- a/CIAO/docs/fm/CIAO.htm
+++ b/CIAO/docs/fm/CIAO.htm
@@ -11676,7 +11676,7 @@ tao_idl3_to_idl2</EM>
<UL>
<LI CLASS="BodyNoLead">
<A NAME="pgfId-245832"></A>The <A NAME="marker-269413"></A>IDL3-to-IDL2 compiler executable is <EM CLASS="Code">
-$CIAO_ROOT/bin/tao_idl3_to_idl2.</EM>
+$ACE_ROOT/bin/tao_idl3_to_idl2.</EM>
<A NAME="marker-245829"></A><A NAME="marker-265290"></A></LI>
</UL>
</DIV>
@@ -11686,7 +11686,7 @@ $CIAO_ROOT/bin/tao_idl3_to_idl2.</EM>
<UL>
<LI CLASS="BodyNoLead">
<A NAME="pgfId-245323"></A>The <A NAME="marker-269414"></A>IDL3-to-IDL2 compiler executable is <EM CLASS="Code">
-%CIAO_ROOT%\bin\tao_idl3_to_idl2.exe.</EM>
+%ACE_ROOT%\bin\tao_idl3_to_idl2.exe.</EM>
<A NAME="marker-265276"></A><A NAME="marker-265292"></A> </LI>
</UL>
</DIV>
diff --git a/CIAO/tests/Bug_3769_Regression/Foo.idl b/CIAO/tests/Bug_3769_Regression/Foo.idl
index f3eb1856985..dd4e9658e7a 100644
--- a/CIAO/tests/Bug_3769_Regression/Foo.idl
+++ b/CIAO/tests/Bug_3769_Regression/Foo.idl
@@ -61,6 +61,31 @@ interface FooSupport
attribute short supported_short;
};
+module StructModule
+{
+ typedef unsigned long long Seconds;
+ typedef unsigned long NanoSecs;
+
+ struct Time
+ {
+ Seconds sec;
+ NanoSecs nanosec;
+ };
+
+ enum EndTime
+ {
+ DLT_NONE,
+ DLT_SOFT,
+ DLT_HARD
+ };
+
+ struct StructStruct
+ {
+ Time struct_time;
+ EndTime type;
+ };
+};
+
component Foo supports FooSupport
{
attribute short my_short;
@@ -86,6 +111,7 @@ component Foo supports FooSupport
attribute Baz my_baz_struct;
attribute Data my_data_union;
attribute Data2 my_var_data_union;
+ attribute StructModule::StructStruct my_struct_struct;
};
#endif /* FOO_IDL_ */
diff --git a/CIAO/tests/Bug_3769_Regression/Foo_exec.cpp b/CIAO/tests/Bug_3769_Regression/Foo_exec.cpp
index e9776398808..44edef94815 100644
--- a/CIAO/tests/Bug_3769_Regression/Foo_exec.cpp
+++ b/CIAO/tests/Bug_3769_Regression/Foo_exec.cpp
@@ -24,7 +24,8 @@ namespace CIAO_Foo_Impl
my_string_sequence_ (false),
my_fixed_string_ (false),
my_variable_string_ (false),
- supported_short_ (false)
+ supported_short_ (false),
+ my_struct_struct_ (false)
{
}
@@ -98,7 +99,7 @@ namespace CIAO_Foo_Impl
Foo_exec_i::my_float (
::CORBA::Float my_float)
{
- if(my_float != 45.67F)
+ if(ACE::is_inequal (my_float, 45.67F))
ACE_ERROR ((LM_ERROR, "ERROR: my_float != 45.67, it is %f\n", my_float));
else my_float_ = true;
@@ -115,7 +116,7 @@ namespace CIAO_Foo_Impl
Foo_exec_i::my_double (
::CORBA::Double my_double)
{
- if(my_double != 56.78)
+ if(ACE::is_inequal (my_double, 56.78))
ACE_ERROR ((LM_ERROR, "ERROR: my_double != 56.78, it is %f\n", my_double));
else my_double_ = true;
}
@@ -235,19 +236,19 @@ namespace CIAO_Foo_Impl
my_float_sequence_ = true;
- if(my_float_sequence[0] != 21.12F)
+ if(ACE::is_inequal (my_float_sequence[0], 21.12F))
{
ACE_ERROR ((LM_ERROR, "ERROR: my_float_sequence[0] != 21.12, it is %f\n", my_float_sequence[0]));
my_float_sequence_ = false;
}
- if(my_float_sequence[1] != 22.22F)
+ if(ACE::is_inequal (my_float_sequence[1], 22.22F))
{
ACE_ERROR ((LM_ERROR, "ERROR: my_float_sequence[1] != 22.22, it is %f\n", my_float_sequence[1]));
my_float_sequence_ = false;
}
- if(my_float_sequence[2] != 23.32F)
+ if(ACE::is_inequal (my_float_sequence[2], 23.32F))
{
ACE_ERROR ((LM_ERROR, "ERROR: my_float_sequence[2] != 23.32, it is %f\n", my_float_sequence[2]));
my_float_sequence_ = false;
@@ -273,20 +274,20 @@ namespace CIAO_Foo_Impl
this->my_double_sequence_ = true;
- if(my_double_sequence[0] != 621.12)
+ if(ACE::is_inequal (my_double_sequence[0], 621.12))
{
ACE_ERROR ((LM_ERROR, "ERROR: my_double_sequence[0] != 621.12, it is %f\n", my_double_sequence[0]));
this->my_double_sequence_ = false;
}
- if(my_double_sequence[1] != 622.22)
+ if(ACE::is_inequal (my_double_sequence[1], 622.22))
{
ACE_ERROR ((LM_ERROR, "ERROR: my_double_sequence[1] != 622.22, it is %f\n", my_double_sequence[1]));
this->my_double_sequence_ = false;
}
- if(my_double_sequence[2] != 623.32)
+ if(ACE::is_inequal (my_double_sequence[2], 623.32))
{
ACE_ERROR ((LM_ERROR, "ERROR: my_double_sequence[2] != 623.32, it is %f\n", my_double_sequence[2]));
this->my_double_sequence_ = false;
@@ -318,13 +319,13 @@ namespace CIAO_Foo_Impl
ACE_ERROR ((LM_ERROR, "ERROR: long value != 4, it is %d\n", my_bar_struct.l));
}
- if(my_bar_struct.f != 5.6F)
+ if(ACE::is_inequal (my_bar_struct.f, 5.6F))
{
my_bar_struct_ = false;
ACE_ERROR ((LM_ERROR, "ERROR: float value != 5.6, it is %f\n", my_bar_struct.f));
}
- if(my_bar_struct.d != 7.8)
+ if(ACE::is_inequal (my_bar_struct.d, 7.8))
{
ACE_ERROR ((LM_ERROR, "ERROR: double value != 7.8, it is %f\n", my_bar_struct.d));
my_bar_struct_ = false;
@@ -385,7 +386,7 @@ namespace CIAO_Foo_Impl
}
inc_l += 10;
- if(my_baz_struct.my_bar_sequence[i].f != 5.6F + inc_f)
+ if(ACE::is_inequal (my_baz_struct.my_bar_sequence[i].f, 5.6F + inc_f))
{
my_baz_struct_ = false;
ACE_ERROR ((LM_ERROR, "ERROR: float value != %f, it is %f\n",
@@ -395,7 +396,7 @@ namespace CIAO_Foo_Impl
inc_f += 10.0F;
- if(my_baz_struct.my_bar_sequence[i].d != 7.8 + inc_d)
+ if(ACE::is_inequal (my_baz_struct.my_bar_sequence[i].d, 7.8 + inc_d))
{
my_baz_struct_ = false;
ACE_ERROR ((LM_ERROR, "ERROR: double value != %f, it is %f\n",
@@ -522,6 +523,37 @@ namespace CIAO_Foo_Impl
{
}
+ StructModule::StructStruct Foo_exec_i::my_struct_struct (void)
+ {
+ return StructModule::StructStruct ();
+ }
+
+ void Foo_exec_i::my_struct_struct (const StructModule::StructStruct & my_struct_struct)
+ {
+ bool error_found = false;
+
+ if (my_struct_struct.type != StructModule::DLT_HARD)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR: my_struct_struct.deadline_type != 2, it is %d\n",
+ my_struct_struct.type));
+ error_found = true;
+ }
+ if (my_struct_struct.struct_time.sec != 15)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR: my_struct_struct.struct_time.sec != 15, it is %d\n",
+ my_struct_struct.struct_time.sec));
+ error_found = true;
+ }
+ if (my_struct_struct.struct_time.nanosec != 20)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR: my_struct_struct.struct_time.nanosec != 20, it is %d\n",
+ my_struct_struct.struct_time.nanosec));
+ error_found = true;
+ }
+
+ my_struct_struct_ = !error_found;
+ }
+
// Operations from Components::SessionComponent.
void
@@ -559,10 +591,15 @@ namespace CIAO_Foo_Impl
my_string_sequence_ &&
my_fixed_string_ &&
my_variable_string_ &&
- supported_short_))
+ supported_short_ &&
+ my_struct_struct_))
{
ACE_ERROR ((LM_ERROR, "ERROR: Not all expected attributes were initialized\n"));
}
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, "OK: All attributes were correctly initialized\n"));
+ }
}
void
diff --git a/CIAO/tests/Bug_3769_Regression/Foo_exec.h b/CIAO/tests/Bug_3769_Regression/Foo_exec.h
index 0b3bf4dccd9..a7040cc9099 100644
--- a/CIAO/tests/Bug_3769_Regression/Foo_exec.h
+++ b/CIAO/tests/Bug_3769_Regression/Foo_exec.h
@@ -196,6 +196,11 @@ namespace CIAO_Foo_Impl
virtual ::string_array_slice *my_string_array (void);
virtual void my_string_array (const ::string_array my_string_array);
+
+ virtual StructModule::StructStruct my_struct_struct (void);
+
+ virtual void my_struct_struct (const StructModule::StructStruct & my_struct_struct);
+
//@}
//@{
@@ -231,7 +236,8 @@ namespace CIAO_Foo_Impl
my_string_sequence_,
my_fixed_string_,
my_variable_string_,
- supported_short_;
+ supported_short_,
+ my_struct_struct_;
};
diff --git a/CIAO/tests/Bug_3769_Regression/descriptors/DeploymentPlan.cdp b/CIAO/tests/Bug_3769_Regression/descriptors/DeploymentPlan.cdp
index ef8f777f3f6..44b82e54a1b 100644
--- a/CIAO/tests/Bug_3769_Regression/descriptors/DeploymentPlan.cdp
+++ b/CIAO/tests/Bug_3769_Regression/descriptors/DeploymentPlan.cdp
@@ -542,6 +542,83 @@
</value>
</value>
</configProperty>
+
+ <configProperty>
+ <name>my_struct_struct</name>
+ <value>
+ <type>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>StructStruct</name>
+ <typeId>IDL:StructModule/StructStruct:1.0</typeId>
+ <member>
+ <name>struct_time</name>
+ <type>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>Time</name>
+ <typeId>IDL:StructModule/Time:1.0</typeId>
+ <member>
+ <name>sec</name>
+ <type>
+ <kind>tk_ulonglong</kind>
+ </type>
+ </member>
+ <member>
+ <name>nanosec</name>
+ <type>
+ <kind>tk_ulong</kind>
+ </type>
+ </member>
+ </struct>
+ </type>
+ </member>
+
+ <member>
+ <name>type</name>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>EndTime</name>
+ <typeId>IDL:StructModule/EndTime:1.0</typeId>
+ <member>DLT_NONE</member>
+ <member>DLT_SOFT</member>
+ <member>DLT_HARD</member>
+ </enum>
+ </type>
+ </member>
+
+ </struct>
+ </type>
+ <value>
+ <member>
+ <name>struct_time</name>
+ <value>
+ <member>
+ <name>sec</name>
+ <value>
+ <ulonglong>15</ulonglong>
+ </value>
+ </member>
+ <member>
+ <name>nanosec</name>
+ <value>
+ <ulong>20</ulong>
+ </value>
+ </member>
+ </value>
+ </member>
+
+ <member>
+ <name>type</name>
+ <value>
+ <enum>DLT_HARD</enum>
+ </value>
+ </member>
+ </value>
+
+ </value>
+ </configProperty>
</instance>
<artifact xmi:id="_669DBD2E-E130-11DE-B472-00242C889DAA">
diff --git a/CIAO/tests/Bug_3769_Regression/descriptors/run_test_cdr.pl b/CIAO/tests/Bug_3769_Regression/descriptors/run_test_cdr.pl
new file mode 100755
index 00000000000..ead7a7c7e98
--- /dev/null
+++ b/CIAO/tests/Bug_3769_Regression/descriptors/run_test_cdr.pl
@@ -0,0 +1,251 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$nr_daemon = 1;
+@ports = ( 60001 );
+@iorbases = ( "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne" );
+
+# ior files other than daemon
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+$status = 0;
+$cdp_file = "DeploymentPlan.cdp";
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('..');
+ # daemon
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('..');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ $tg_exe_man->AddLibPath ('..');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ $tg_executor->AddLibPath ('..');
+}
+
+sub init_ior_files {
+ $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
+ $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+ delete_ior_files ();
+}
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+}
+
+sub kill_node_daemon {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemon ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill (); $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill (); $NS->TimedWait (1);
+ }
+ # in case shutdown did not perform as expected
+ $tg_executor->KillAll ('dance_locality_manager');
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService";
+
+ print "Run dance_node_manager with $d_param\n";
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+create_targets ();
+init_ior_files ();
+
+# Invoke naming service
+
+$NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/tao_cosnaming", " -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
+
+$ns_status = $NS->Spawn ();
+
+if ($ns_status != 0) {
+ print STDERR "ERROR: Unable to execute the naming service\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print STDERR "Starting Naming Service with -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if ($tg_naming->WaitForFileTimed ($ior_nsbase,
+ $tg_naming->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill (); $NS->TimedWait (1);
+ exit 1;
+}
+
+$ns_running = 1;
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+# Invoke node daemon.
+print "Invoking node daemon\n";
+$status = run_node_daemons ();
+
+if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemon\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$cdr_file = $cdp_file;
+$cdr_file =~ s/cdp/cdr/;
+
+print "Converting $cdp_file to $cdr_file\n";
+
+$tg_executor->DeleteFile ($cdr_file);
+
+$CONVERT = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_convert_plan", "-x $cdp_file -o $cdr_file");
+
+$convert_status = $CONVERT->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($convert_status != 0) {
+ print STDERR "ERROR: Can't convert $cdp_file to $cdr_file\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$daemons_running = 1;
+
+# Invoke execution manager.
+print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
+$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+$EM->Spawn ();
+
+if ($tg_exe_man->WaitForFileTimed ($ior_embase,
+ $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$em_running = 1;
+
+# Invoke executor - start the application -.
+print "Invoking executor - launch the application -\n";
+
+print "Start dance_plan_launcher.exe with -c $cdr_file -k file://$ior_emfile\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-c $cdr_file -k file://$ior_emfile");
+$E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ());
+
+for ($i = 0; $i < $nr_daemon; ++$i) {
+ if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
+ $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
+ print STDERR "ERROR: The ior file of daemon $i could not be found\n";
+ kill_open_processes ();
+ exit 1;
+ }
+}
+
+print "Sleeping 5 seconds to allow task to complete\n";
+sleep (5);
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://$ior_emfile -c $cdr_file\n";
+
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -c $cdr_file -s");
+
+$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($pl_status != 0) {
+ print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl b/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl
index f933f6a6b50..acaceb6355c 100755
--- a/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl
@@ -20,7 +20,7 @@ my $target_dtd = $target->LocalFile ($dtd);
my $target_xmi = $target->LocalFile ($xmi);
$target->DeleteFile($xmi);
-$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+$I2X = $target->CreateProcess ("$ENV{'ACE_ROOT'}/bin/tao_idl3_to_xmi",
"-f -xd $target_dtd -of $target_xmi $target_idl");
$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
diff --git a/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl
index 6f8ea61f03c..832811a38f6 100755
--- a/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl
@@ -12,7 +12,7 @@ $status = 0;
my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
-$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi");
+$I2X = $target->CreateProcess ("$ENV{'ACE_ROOT'}/bin/tao_idl3_to_xmi");
$VAL = $target->CreateProcess ("xmlvalidator");
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl b/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
index 980bd95245b..6a57e3666f2 100755
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
@@ -20,7 +20,7 @@ my $target_dtd = $target->LocalFile ($dtd);
my $target_xmi = $target->LocalFile ($xmi);
$target->DeleteFile($xmi);
-$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+$I2X = $target->CreateProcess ("$ENV{'ACE_ROOT'}/bin/tao_idl3_to_xmi",
"-f -xd $target_dtd -of $target_xmi $target_idl");
$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl b/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
index 46c8017d5ef..e541e551a5f 100755
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
@@ -20,7 +20,7 @@ my $target_dtd = $target->LocalFile ($dtd);
my $target_xmi = $target->LocalFile ($xmi);
$target->DeleteFile($xmi);
-$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+$I2X = $target->CreateProcess ("$ENV{'ACE_ROOT'}/bin/tao_idl3_to_xmi",
"-f -xd $target_dtd -of $target_xmi $target_idl");
$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl b/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl
index 21fb910c26a..263c8c16299 100755
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl
@@ -20,7 +20,7 @@ my $target_dtd = $target->LocalFile ($dtd);
my $target_xmi = $target->LocalFile ($xmi);
$target->DeleteFile($xmi);
-$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+$I2X = $target->CreateProcess ("$ENV{'ACE_ROOT'}/bin/tao_idl3_to_xmi",
"-f -xd $target_dtd -of $target_xmi $target_idl");
$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl b/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl
index 15ec0930389..72cd283f213 100755
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl
@@ -20,7 +20,7 @@ my $target_dtd = $target->LocalFile ($dtd);
my $target_xmi = $target->LocalFile ($xmi);
$target->DeleteFile($xmi);
-$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+$I2X = $target->CreateProcess ("$ENV{'ACE_ROOT'}/bin/tao_idl3_to_xmi",
"-f -xd $target_dtd -of $target_xmi $target_idl");
$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl b/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
index d0a4ab4f6cf..f101c8e3f9b 100755
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
@@ -20,7 +20,7 @@ my $target_dtd = $target->LocalFile ($dtd);
my $target_xmi = $target->LocalFile ($xmi);
$target->DeleteFile($xmi);
-$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+$I2X = $target->CreateProcess ("$ENV{'ACE_ROOT'}/bin/tao_idl3_to_xmi",
"-f -xd $target_dtd -of $target_xmi $target_idl");
$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
diff --git a/CIAO/tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc b/CIAO/tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc
index 5dbd022c7d5..cb8e40a24f5 100644
--- a/CIAO/tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc
+++ b/CIAO/tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc
@@ -41,7 +41,7 @@ project(TAO_IDL3_TO_IDL2_EXE) : aceexe, install, ciao_output, tao_idl_fe {
exename = tao_idl3_to_idl2
libs += TAO_IDL3_TO_IDL2_BE
includes += $(TAO_ROOT)
- exeout = $(CIAO_ROOT)/bin
+ exeout = $(ACE_ROOT)/bin
// Adding a strict ordering dependency with TAO_IDL_EXE. It appears on some systems, there
// can be a race between these two projects for tao_idl.cpp, causing some erroors.
@@ -69,7 +69,7 @@ project(TAO_IDL3_TO_IDL2_EXE) : aceexe, install, ciao_output, tao_idl_fe {
}
verbatim(gnuace, postinstall) {
-" @$(MKDIR) $(INSTALL_PREFIX)/share/ciao/bin"
-" ln -sf $(INSTALL_PREFIX)/bin/tao_idl3_to_idl2 $(INSTALL_PREFIX)/share/ciao/bin"
+" @$(MKDIR) $(INSTALL_PREFIX)/share/ace/bin"
+" ln -sf $(INSTALL_PREFIX)/bin/tao_idl3_to_idl2 $(INSTALL_PREFIX)/share/ace/bin"
}
}
diff --git a/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc b/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc
index 1057dce0a6c..b518c436874 100644
--- a/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc
+++ b/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc
@@ -34,7 +34,7 @@ project(CIAO_IDL3_TO_XMI_EXE) : aceexe, install, ciao_output, ace_xml_utils, tao
exename = tao_idl3_to_xmi
libs += CIAO_IDL3_TO_XMI_BE
includes += $(TAO_ROOT) .
- exeout = $(CIAO_ROOT)/bin
+ exeout = $(ACE_ROOT)/bin
// Adding a strict ordering dependency with TAO_IDL_EXE. It appears on some systems, there
// can be a race between these two projects for tao_idl.cpp, causing some errors.
@@ -64,7 +64,7 @@ project(CIAO_IDL3_TO_XMI_EXE) : aceexe, install, ciao_output, ace_xml_utils, tao
}
verbatim(gnuace, postinstall) {
-" @$(MKDIR) $(INSTALL_PREFIX)/share/ciao/bin"
-" ln -sf $(INSTALL_PREFIX)/bin/tao_idl3_to_xmi $(INSTALL_PREFIX)/share/ciao/bin"
+" @$(MKDIR) $(INSTALL_PREFIX)/share/ace/bin"
+" ln -sf $(INSTALL_PREFIX)/bin/tao_idl3_to_xmi $(INSTALL_PREFIX)/share/ace/bin"
}
}
diff --git a/DAnCE/COPYING b/DAnCE/COPYING
index 226708461b9..8038408462b 100644
--- a/DAnCE/COPYING
+++ b/DAnCE/COPYING
@@ -8,7 +8,7 @@
(henceforth referred to as "DOC software") are copyrighted by
[5]Douglas C. Schmidt and his [6]research group at [7]Washington
University, [8]University of California, Irvine, and [9]Vanderbilt
- University, Copyright (c) 1993-2012, all rights reserved. Since DOC
+ University, Copyright (c) 1993-2013, all rights reserved. Since DOC
software is open-source, freely available software, you are free to
use, modify, copy, and distribute--perpetually and irrevocably--the
DOC software source code and object code produced from the source, as
diff --git a/DAnCE/ChangeLog b/DAnCE/ChangeLog
index 8b83c99b8a6..58f6350b4d8 100644
--- a/DAnCE/ChangeLog
+++ b/DAnCE/ChangeLog
@@ -1,3 +1,54 @@
+Thu Dec 27 09:19:10 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated in preparation of next release
+
+Thu Dec 27 10:00:49 CET 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE version 1.1.7 released.
+
+Thu Dec 20 07:39:24 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Logger_Backend/ndds/Log_Backend.h:
+ Reordered includes to fix compile errors with msvc release
+ compilation
+
+Tue Dec 18 10:17:27 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * dance/Deployment/Deployment_Core.mpc:
+ Removed commandline option we don't use anymore
+
+ * dance/NodeApplication/NodeApplication_Impl.cpp:
+ Layout change
+
+Mon Nov 12 10:07:08 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated for next release
+
+Mon Nov 12 09:34:14 CET 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE version 1.1.6 released.
+
+Fri Oct 12 11:18:36 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * dance/LocalityManager/Handler/Inst_Handler_Impl.cpp:
+ Fixed incorrect else
+
+ * dance/Plan_Launcher/EM_Launcher.cpp:
+ * dance/Plan_Launcher/LM_Launcher.cpp:
+ * dance/Plan_Launcher/NM_Launcher.cpp:
+ Layout changes
+
+Fri Oct 12 10:52:52 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated for x.1.5
+
+Fri Oct 12 11:20:25 CEST 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE version 1.1.5 released.
+
Tue Sep 25 18:36:35 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
* dance/LocalityManager/Handler/Config_Handler_Impl.h:
diff --git a/DAnCE/NEWS b/DAnCE/NEWS
index 98a3621851f..5254afb35df 100644
--- a/DAnCE/NEWS
+++ b/DAnCE/NEWS
@@ -1,6 +1,21 @@
+USER VISIBLE CHANGES BETWEEN DAnCE-1.1.7 and DAnCE-1.1.8
+=======================================================
+
+USER VISIBLE CHANGES BETWEEN DAnCE-1.1.6 and DAnCE-1.1.7
+=======================================================
+
+. None
+
+USER VISIBLE CHANGES BETWEEN DAnCE-1.1.5 and DAnCE-1.1.6
+=======================================================
+
+. None
+
USER VISIBLE CHANGES BETWEEN DAnCE-1.1.4 and DAnCE-1.1.5
=======================================================
+. None
+
USER VISIBLE CHANGES BETWEEN DAnCE-1.1.3 and DAnCE-1.1.4
=======================================================
diff --git a/DAnCE/PROBLEM-REPORT-FORM b/DAnCE/PROBLEM-REPORT-FORM
index dbc1b857c1d..5810fc908e6 100644
--- a/DAnCE/PROBLEM-REPORT-FORM
+++ b/DAnCE/PROBLEM-REPORT-FORM
@@ -41,9 +41,9 @@
To: ciao-users@list.isis.vanderbilt.edu
Subject: [area]: [synopsis]
- DAnCE VERSION: 1.1.4
- TAO VERSION : 2.1.4
- ACE VERSION : 6.1.4
+ DAnCE VERSION: 1.1.7
+ TAO VERSION : 2.1.7
+ ACE VERSION : 6.1.7
HOST MACHINE and OPERATING SYSTEM:
If on Windows based OS's, which version of WINSOCK do you
diff --git a/DAnCE/VERSION b/DAnCE/VERSION
index 08cc0ce6622..5bbaa6d38d8 100644
--- a/DAnCE/VERSION
+++ b/DAnCE/VERSION
@@ -1,4 +1,4 @@
-This is DAnCE version 1.1.4, released Wed Aug 29 08:16:04 CEST 2012
+This is DAnCE version 1.1.7, released Thu Dec 27 10:00:49 CET 2012
If you have any problems with or questions about DAnCE, please send
e-mail to the CIAO mailing list (ciao-users@list.isis.vanderbilt.edu),
diff --git a/DAnCE/dance/Deployment/Deployment_Core.mpc b/DAnCE/dance/Deployment/Deployment_Core.mpc
index 02d8c01e7a2..b6a1e548aaa 100644
--- a/DAnCE/dance/Deployment/Deployment_Core.mpc
+++ b/DAnCE/dance/Deployment/Deployment_Core.mpc
@@ -68,7 +68,7 @@ project(Deployment_TargetManager_IDL) : install, dancelib_with_idl, dance_output
-Wb,stub_export_include=Deployment_TargetManager_stub_export.h \
-Wb,skel_export_macro=DEPLOYMENT_TARGETMANAGER_SKEL_Export \
-Wb,skel_export_include=Deployment_TargetManager_skel_export.h \
- -Gxhst -Gxhsk -Ssi
+ -Gxhst -Gxhsk
IDL_Files {
Deployment_TargetManager.idl
diff --git a/DAnCE/dance/LocalityManager/Handler/Inst_Handler_Impl.cpp b/DAnCE/dance/LocalityManager/Handler/Inst_Handler_Impl.cpp
index a18c321451a..396f8f38848 100644
--- a/DAnCE/dance/LocalityManager/Handler/Inst_Handler_Impl.cpp
+++ b/DAnCE/dance/LocalityManager/Handler/Inst_Handler_Impl.cpp
@@ -153,15 +153,15 @@ namespace DAnCE
{
deps.insert (id);
}
- }
- else
- {
- DANCE_ERROR (DANCE_LOG_TERMINAL_ERROR,
- (LM_ERROR, DLINFO
- ACE_TEXT ("Inst_Handler_Impl::install_instance - ")
- ACE_TEXT ("Unable to extract dependency order from string")));
- throw ::Deployment::StartError (idd.name.in (),
- "Unable to extract dependency order from string");
+ else
+ {
+ DANCE_ERROR (DANCE_LOG_TERMINAL_ERROR,
+ (LM_ERROR, DLINFO
+ ACE_TEXT ("Inst_Handler_Impl::install_instance - ")
+ ACE_TEXT ("Unable to extract dependency order from string")));
+ throw ::Deployment::StartError (idd.name.in (),
+ "Unable to extract dependency order from string");
+ }
}
}
diff --git a/DAnCE/dance/NodeApplication/NodeApplication_Impl.cpp b/DAnCE/dance/NodeApplication/NodeApplication_Impl.cpp
index 8a8399c712f..a7abd253b3c 100644
--- a/DAnCE/dance/NodeApplication/NodeApplication_Impl.cpp
+++ b/DAnCE/dance/NodeApplication/NodeApplication_Impl.cpp
@@ -333,8 +333,7 @@ NodeApplication_Impl::finishLaunch (const ::Deployment::Connections & providedRe
try
{
- i->second->finishLaunch (providedReference,
- start);
+ i->second->finishLaunch (providedReference, start);
}
catch (CORBA::Exception &ex)
{
diff --git a/DAnCE/dance/Plan_Launcher/EM_Launcher.cpp b/DAnCE/dance/Plan_Launcher/EM_Launcher.cpp
index 68e6e91fc1a..1af0d78880c 100644
--- a/DAnCE/dance/Plan_Launcher/EM_Launcher.cpp
+++ b/DAnCE/dance/Plan_Launcher/EM_Launcher.cpp
@@ -10,11 +10,8 @@ namespace DAnCE
{
}
-
-
EM_Launcher::~EM_Launcher (void)
{
-
}
bool
@@ -67,5 +64,4 @@ namespace DAnCE
return false;
}
-
}
diff --git a/DAnCE/dance/Plan_Launcher/LM_Launcher.cpp b/DAnCE/dance/Plan_Launcher/LM_Launcher.cpp
index de595a0672c..dce9f3a88be 100644
--- a/DAnCE/dance/Plan_Launcher/LM_Launcher.cpp
+++ b/DAnCE/dance/Plan_Launcher/LM_Launcher.cpp
@@ -10,11 +10,8 @@ namespace DAnCE
{
}
-
-
LM_Launcher::~LM_Launcher (void)
{
-
}
/*
diff --git a/DAnCE/dance/Plan_Launcher/NM_Launcher.cpp b/DAnCE/dance/Plan_Launcher/NM_Launcher.cpp
index e13614250cc..05515a3e049 100644
--- a/DAnCE/dance/Plan_Launcher/NM_Launcher.cpp
+++ b/DAnCE/dance/Plan_Launcher/NM_Launcher.cpp
@@ -10,10 +10,7 @@ namespace DAnCE
{
}
-
-
NM_Launcher::~NM_Launcher (void)
{
-
}
}
diff --git a/DAnCE/dance/Version.h b/DAnCE/dance/Version.h
index f5a2e84711a..96905c8a507 100644
--- a/DAnCE/dance/Version.h
+++ b/DAnCE/dance/Version.h
@@ -5,5 +5,5 @@
#define DAnCE_MAJOR_VERSION 1
#define DAnCE_MINOR_VERSION 1
-#define DAnCE_BETA_VERSION 4
-#define DAnCE_VERSION "1.1.4"
+#define DAnCE_BETA_VERSION 7
+#define DAnCE_VERSION "1.1.7"
diff --git a/DAnCE/tools/Logger_Backend/ndds/Log_Backend.h b/DAnCE/tools/Logger_Backend/ndds/Log_Backend.h
index 7914a86a318..f8f1f6363ce 100644
--- a/DAnCE/tools/Logger_Backend/ndds/Log_Backend.h
+++ b/DAnCE/tools/Logger_Backend/ndds/Log_Backend.h
@@ -10,14 +10,14 @@
#ifndef DAnCE_LOG_BACKEND_H
#define DAnCE_LOG_BACKEND_H
-#include <string>
-#include <ndds/ndds_cpp.h>
-
#include "ace/Log_Msg_Backend.h"
#include "ace/Service_Object.h"
#include "DAnCE_NDDS_Log_Export.h"
+#include <string>
+#include <ndds/ndds_cpp.h>
+
#include "Log_RecordSupport.h"
#include "Log_RecordPlugin.h"
diff --git a/TAO/COPYING b/TAO/COPYING
index 226708461b9..8038408462b 100644
--- a/TAO/COPYING
+++ b/TAO/COPYING
@@ -8,7 +8,7 @@
(henceforth referred to as "DOC software") are copyrighted by
[5]Douglas C. Schmidt and his [6]research group at [7]Washington
University, [8]University of California, Irvine, and [9]Vanderbilt
- University, Copyright (c) 1993-2012, all rights reserved. Since DOC
+ University, Copyright (c) 1993-2013, all rights reserved. Since DOC
software is open-source, freely available software, you are free to
use, modify, copy, and distribute--perpetually and irrevocably--the
DOC software source code and object code produced from the source, as
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index c412626a7a6..1168993b06e 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,34 +1,488 @@
-Tue Jan 22 22:52:17 UTC 2013 Quynh Nguyen <nguyenq@stladvantage.com>
+Wed Jan 23 19:43:50 UTC 2013 Adam Mitz <mitza@ociweb.com>
- * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp:
+ * tao/RTScheduling/Request_Interceptor.cpp:
- * tao/ImR_Client:
- * tao/Monitor:
- * tao/Utils:
+ Use size_t consistently for generating RTScheduling::Current::IdType.
+ Some platforms have sizeof(size_t) != sizeof(long).
- Fix bug 479 caused by the Activator, which truncated a
- server's command line string it is more than 1024 bytes.
+Wed Jan 23 19:12:02 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-Tue Nov 20 22:41:56 UTC 2012 "Kevin Stanley" <stanleyk@ociweb.com>
+ * orbsvcs/orbsvcs/SL3CSI.idl:
+ * orbsvcs/orbsvcs/SL3TCPIP.idl:
+ * orbsvcs/orbsvcs/SL3TLS.idl:
+ Removed these files, not used at all
- * MPC/config/ft_naming_serv.mpb:
+Tue Jan 22 16:26:24 UTC 2013 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_component_cpp (scan):
+
+ Added scan for ancestors of supported interface, if any. An attribute
+ in such an interface would generate the servant get/set methods, but
+ not trigger the top-level set_attributes() method. Thanks to
+ Jiang Wei <jiangwei_1976 at yahoo dot com dot cn> for reporting
+ the problem and supplying a patch. Bugzilla 4086 fix.
+
+Fri Jan 18 11:03:30 UTC 2013 Simon Massey <simon dot massey at prismtech dot com>
+
+ * orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp:
+ Investigating multi-threaded MIOP servers through-put and
+ resourcing issues. Robusting/simplifying for now.
+
+Wed Jan 16 14:33:30 UTC 2013 Simon Massey <simon dot massey at prismtech dot com>
+
+ * orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp:
+ Since the notify change, (Fri Jan 4 15:48:20 UTC 2013 Simon Massey)
+ there is no requirement for the message processing while loop, the
+ reactor handles that. Also add a second check after the lock is
+ aquired before attempting to dequeue the complete message for
+ processing (another thread could have gotten there first).
+
+Wed Jan 16 08:45:30 UTC 2013 Simon Massey <simon dot massey at prismtech dot com>
+
+ * tao/GIOP_Message_Base.cpp:
+ * tao/ZIOP/ZIOP.cpp:
+ Reverted and then correctly modified these changes from
+ (Wed Dec 05 09:41:00 UTC 2012 Simon Massey)
+ The Data_Blocks were getting double deleted under some
+ circumstances within the MIOP transport. The correct
+ flags to be used in the above files is actually the
+ Message_block self_flags() NOT the datablock flags.
+ The inconsistancy was originally caused by the
+ mixup with the addition of the eairlier ZIOP merge
+ (Thu Mar 12 07:42:57 UTC 2009 Marcel Smit)
+ where the CDR's were being given the data block flags
+ instead of the message block flags. My original change
+ made them consistant with the data block flags which is
+ obviously incorrect. (All other transports use consistant
+ flag settings between the Message block and the Data Block,
+ and so this decision had very limited impact, however
+ MIOP does not).
+
+Mon Jan 14 15:28:33 UTC 2013 Adam Mitz <mitza@ociweb.com>
+
+ * tests/Bug_4082_Regression/Bug_4082_Regression.cpp:
+ * tests/Bug_4082_Regression/Bug_4082_Regression.idl:
+
+ De-fuzzed
+
+Fri Jan 11 16:53:58 UTC 2013 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp:
+
+ Fixed a bug in the logic of typecode declaration generation. Some
+ sequence typecodes were getting generated twice. Thanks to Sergey
+ Onuchin <sonuchin at parallels dot com> for reporting the bug.
+
+Thu Jan 10 20:45:55 UTC 2013 Adam Mitz <mitza@ociweb.com>
+
+ * bin/tao_orb_tests.lst:
+ * tests/Bug_4082_Regression/Bug_4082_Regression.idl:
+ * tests/Bug_4082_Regression/Bug_4082_Regression.mpc:
+ * tests/Bug_4082_Regression/Bug_4082_Regression.cpp:
+
+ Added a new test for this bug (regression currently fails).
+
+Mon Jan 7 14:00:00 UTC 2013 Simon Massey <simon dot massey at prismtech dot com>
+
+ * tao/Transport.inl:
+ The new inline function has been moved outside of the #if #endif section
+ it shouldn't have been conditional.
+
+Fri Jan 4 15:48:20 UTC 2013 Simon Massey <simon dot massey at prismtech dot com>
+
+ * orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp:
+ Correction to the placement of the notify.
+
+Fri Jan 4 15:28:20 UTC 2013 Simon Massey <simon dot massey at prismtech dot com>
+
+ * bin/tao_other_tests.lst:
+ * orbsvcs/tests/Bug_4080_Regression/Bug_4080_Regression.mpc:
+ * orbsvcs/tests/Bug_4080_Regression/client.cpp:
+ * orbsvcs/tests/Bug_4080_Regression/README:
+ * orbsvcs/tests/Bug_4080_Regression/run_test.pl:
+ * orbsvcs/tests/Bug_4080_Regression/server.cpp:
+ * orbsvcs/tests/Bug_4080_Regression/svc.conf:
+ * orbsvcs/tests/Bug_4080_Regression/test.idl:
+ * orbsvcs/tests/Bug_4080_Regression/test_impl.cpp:
+ * orbsvcs/tests/Bug_4080_Regression/test_impl.h:
+
+ Bugzilla 4080 test.
+
+ * orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.h:
+ * orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.cpp:
+ * orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp:
+ * tao/Transport.h:
+ * tao/Transport.inl:
+ * tao/Transport.cpp:
+
+ Bugzilla 4080 Fix.
+
+Fri Jan 4 12:07:03 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/Monitor/Monitor.cpp:
+ Fixed versioned namespace problem
+
+Thu Dec 27 09:19:04 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated in preparation of next release
+
+Thu Dec 27 10:00:49 CET 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * TAO version 2.1.7 released.
+
+Tue Dec 18 16:23:19 UTC 2012 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * NEWS:
+
+ Added tao_idl bug fix entry.
+
+Mon Dec 17 13:40:00 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
+
+ * orbsvcs/tests/Miop/McastHello/svc.conf:
+ Updated to enable -ORBListenOnAll 1.
+
+ Wed Dec 05 09:41:00 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
+
+ * orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp:
+ Re-fixed the memory leak in MIOP server listener (as previous).
+ Since this data block's buffer is malloced internally (heap),
+ it definatly does need to be deleted by the data block as required.
+ (Obviously when the don't delete flags was set on the data block
+ incorrectly, previous to the fix, no deletion occured at all,
+ so the allocated memory buffer leaked.) The data block itself however
+ is stack based, and so the message block doesn't need to allocate or
+ delete the data block that holds this memory buffer itself. This is
+ apparently different to most other listeners where both the message
+ and data blocks are on the stack and thus the two block's flags agree.
+
+ * tao/GIOP_Message_Base.cpp:
+ * tao/ZIOP/ZIOP.cpp:
+ Corrected the mix-up of the Message block self_flags() being used where the
+ internal data block flags() should have been. ACE_InputCDR's were being
+ initialised with copies of these malloced datablock's buffers and they were
+ being deleted premiturely since the duplication hadn't been performed correctly.
+ The check for this duplication was incorrectly using the message block self_flags()
+ instead of the data block flags() and was therefore seeing the memory buffers
+ as stack based and not requiring duplication, but the ACE_InputCDR was then being
+ passed the actual data block flags which changed this requirement so the
+ ~ACE_InputCDR duly deleted the memory block eairly.
+
+Mon Dec 3 15:28:17 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/AnyTypeCode/Sequence_TypeCode_Static.h:
+ * tao/AnyTypeCode/String_TypeCode.h:
+ * tao/AnyTypeCode/String_TypeCode_Static.h:
+ * tao/AnyTypeCode/Struct_TypeCode_Static.h:
+ * tao/AnyTypeCode/Union_TypeCode.h:
+ Layout changes
+
+Mon Dec 03 09:253:00 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
+
+ * orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp:
+ Re-introduced memory leak in MIOP server listener. Something
+ more complex and unknown is interacting with the memory block
+ requiring it's extended life.
+
+Fri Nov 30 15:23:00 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
+
+ * orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp:
+ Fixed memory leak and alignment in MIOP server listener.
+
+Fri Nov 30 12:29:48 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * utils/nslist/nsadd.cpp:
+ No need to call orb destroy in catch, we do that already a
+ few lines further
+
+Thu Nov 29 14:33:56 UTC 2012 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/PEMNaming.idl:
+
+ Fixed more fuzz errors.
+
+Thu Nov 29 10:13:16 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/DLL_ORB/client.cpp:
+ * tests/DLL_ORB/server.cpp:
+ Fixed compile problems
+
+Thu Nov 29 10:12:20 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_2677_Regression/server.cpp:
+ * tests/Bug_3542_Regression/server.cpp:
+ Fixed compile problems
+
+Wed Nov 28 14:14:51 UTC 2012 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/util/utl_global.cpp (destroy):
+
+ Added check for null before calling
+ reset_last_in_same_parent_scope() on the internal CORBA
+ module AST node. Thanks to Simon Massey
+ <simon dot massey at primstech dot com> for pointing
+ out this problem.
+
+Wed Nov 28 07:33:16 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/AnyTypeCode/Any.cpp:
+ * tao/AnyTypeCode/Any_Basic_Impl.cpp:
+ * tao/AnyTypeCode/Any_Impl_T.cpp:
+ * tao/AnyTypeCode/Any_Special_Impl_T.cpp:
+ * tao/AnyTypeCode/Objref_TypeCode.h:
+ Layout changes
+
+ * tests/Bug_2936_Regression/bug2936.cpp:
+ Fixed compile problems
+
+Tue Nov 27 21:50:14 UTC 2012 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/loader_const.idl:
+ * tests/IDL_Test/PEMNaming.idl:
+ * TAO_IDL/ast/ast_module.cpp:
+ Fixed fuzz errors.
+
+Tue Nov 27 12:43:30 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.mpc:
+ Install fixes for install data
+
+Tue Nov 27 11:52:55 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Trading_Service/Trading_Service.mpc:
+ Install fixes for install data
+
+Tue Nov 27 11:24:11 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
* orbsvcs/Naming_Service/Naming_Service.mpc:
+ * orbsvcs/Notify_Service/Notify_Service.mpc:
+ Install fixes for install data
+
+Tue Nov 27 10:27:01 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * utils/catior/catior.mpc:
+ * utils/nslist/nslist.mpc:
+ Install fixes
+
+Tue Nov 27 09:54:12 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ Set gendir tao-imr for docu files
+
+Mon Nov 26 11:50:40 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ Added install back for imr
+
+Sat Nov 24 10:02:12 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ No need to set explicit install
+
+Sat Nov 24 09:17:21 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp:
+ Fixed compile error
+
+Fri Nov 23 19:15:15 UTC 2012 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/ast/ast_module.cpp:
+ * TAO_IDL/include/ast_module.h:
+ * TAO_IDL/util/utl_global.cpp:
+
+ Fixed bug caused by (1) processing multiple IDL files in one pass
+ and (2) any IDL file except the last containing an include of
+ orb.idl. This include causes reopenings of the CORBA module,
+ in addition to the one created internally by tao_idl to contain
+ the basic types. This last is a special module, but like other
+ AST nodes, contains a reference to the most recent reopening
+ in its parent scope. Since the reopened CORBA modules are
+ destroyed after the included file is processed, this special
+ module contained a garbage reference, since it is not destroyed
+ until all IDL files are processed. Code was added to reset
+ this reference to the module itself after each file is processed.
+ Thanks to Sergey Onuchin <sonuchin at parallels dot com> for
+ reporting the bug and for supplying example IDL files.
+
+ * TAO_IDL/util/utl_scope.cpp:
+
+ Cosmetic changes.
+
+ * tests/IDL_Test/loader_const.idl:
+ * tests/IDL_Test/PEMNaming.idl:
+
+ New files that formerly reproduced the bug described above.
+
+ * tests/IDL_Test/IDL_Test.mpc:
+
+ Updated the MPC file to use the new IDL files above.
+
+Fri Nov 23 17:55:33 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ Updated for rename of readme
+
+Fri Nov 23 16:48:56 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/ImplRepo_Service/README:
+ * orbsvcs/ImplRepo_Service/README.txt:
+ Renamed to README to be consistent with other orbsvcs
+
+Fri Nov 23 15:35:46 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ Use install as base instead of install_bin
+
+Fri Nov 23 15:27:26 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Concurrency_Service/Concurrency_Service.mpc:
+ * orbsvcs/CosEvent_Service/CosEvent_Service.mpc:
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ * orbsvcs/Naming_Service/Naming_Service.mpc:
+ * orbsvcs/Notify_Service/Notify_Service.mpc:
+ * orbsvcs/Time_Service/Time_Service.mpc:
+ * orbsvcs/Trading_Service/Trading_Service.mpc:
+ * utils/catior/catior.mpc:
+ * utils/nslist/nslist.mpc:
+ Install readme files also
+
+Fri Nov 23 13:31:09 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Naming_Service/Naming_Service.mpc:
+ Also install readme
+
+Fri Nov 23 08:08:57 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp:
+ * orbsvcs/tests/Bug_3486_Regression/server.cpp:
+ * orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp:
+ * orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp:
+ * orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp:
+ * orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp:
+ * orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp:
+ * orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp:
+ * orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp:
+ * tao/CSD_Framework/CSD_ORBInitializer.cpp:
+ * tao/Codeset/Codeset_Manager_i.cpp:
+ * tao/ORBInitializer_Registry.cpp:
+ * tao/ORB_Core.cpp:
+ * tao/PI/ORBInitInfo.cpp:
+ * tao/PortableServer/LifespanStrategyPersistent.cpp:
+ * tao/RTCORBA/RT_ORBInitializer.cpp:
+ * tao/TAO_Internal.cpp:
+ * tao/params.cpp:
+ * tests/Bug_2677_Regression/server.cpp:
+ * tests/Bug_2936_Regression/bug2936.cpp:
+ * tests/Bug_3542_Regression/server.cpp:
+ * tests/DLL_ORB/client.cpp:
+ * tests/DLL_ORB/server.cpp:
+ * tests/ORB_Local_Config/Bug_2612/Test.cpp:
+ * tests/ORB_Local_Config/Service_Dependency/Test.cpp:
+ * tests/TransportCurrent/Framework/simple.cpp:
+ Use ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE with the TAO_VERSION
+ so that with Debian/Ubuntu packaged distro's we try to load
+ the correct library which for example are named libTAO-6.1.1.so
- * orbsvcs/orbsvcs/FtNaming.mpc:
+Tue Nov 20 19:32:42 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * orbsvcs/orbsvcs/Naming/FaultTolerant/FT_NamingReplication.idl:
- * orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Naming_Serv.mpc:
- * orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Naming_Server.h:
- * orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Naming_Server.cpp:
- * orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Storable_Naming_Context.h:
- * orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Storable_Naming_Context.cpp:
- * orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Storable_Naming_Context_Factory.cpp:
+ * tao/Utils/PolicyList_Destroyer.cpp:
+ Call index also in the try/catch scope because it can also
+ throw an exception
+
+Tue Nov 20 13:39:00 UTC 2012 Simon Massey <Simon dot massey at prismtech dot com>
+
+ * TAO_IDL/be/be_util.cpp:
+ Remove Help message concerning -si parameter that is no longer
+ accepted. (As of Sun Nov 27 18:19:18 UTC 2011 Johnny Willemsen
+ the S.inl files are not generated anymore.)
+
+Mon Nov 12 10:07:02 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated for next release
+
+Mon Nov 12 09:34:14 CET 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * TAO version 2.1.6 released.
+
+Fri Nov 9 12:06:03 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Simple/time/Time_Client_i.cpp:
+ Don't shutdown the orb, the client template already does
+ that
+
+ * examples/Simple/time/server.cpp:
+ Layout changes
+
+ * examples/Simple/Simple_util.cpp:
+ Fixed memory leak
+
+Tue Nov 6 14:06:48 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated for ObjRefTemplate chnages
+
+Mon Nov 5 08:25:48 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/Cache_Entries_T.h:
+ Use bool instead of CORBA::Boolean
+
+ * tao/LocateRequest_Invocation.cpp:
+ * tao/Transport.h:
+ * tao/Transport_Cache_Manager_T.cpp:
+ * tao/Transport_Connector.cpp:
+ Const, layout, and doxygen changes
+
+Wed Oct 31 09:09:25 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/PortableServer/Root_POA.cpp:
+ Updated if comparison
+
+ * tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl:
+ Increased wait time for slower targets
+
+Tue Oct 30 10:50:49 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/PortableServer/Root_POA.h:
+ * tao/PortableServer/Root_POA.cpp:
+ Cache ORT_Adapter_Factory in the POA at creation, prevents
+ a lookup when (un)registering a servant which could trigger
+ a possible deadlock when the registering of the servant is
+ coming from the init of an ACE service
+
+Fri Oct 19 07:56:56 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/AnyTypeCode/Alias_TypeCode.cpp:
+ * tao/AnyTypeCode/Alias_TypeCode_Static.cpp:
+ * tao/AnyTypeCode/Objref_TypeCode.cpp:
+ * tao/AnyTypeCode/Objref_TypeCode_Static.cpp:
+ * tao/Any_Insert_Policy_T.h:
+ Layout changes
+
+Wed Oct 17 12:31:27 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/ObjRefTemplate/ORT_Adapter_Factory_Impl.h:
+ Doxygen change
+
+ * tao/PortableServer/Root_POA.cpp:
+ Layout change
+
+Mon Oct 15 13:26:27 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/Messaging/AMH_Response_Handler.h:
+ Use virtual inheritance
+
+ * tao/PortableServer/Root_POA.h:
+ Doxygen fix
+
+Fri Oct 12 10:51:27 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated for x.1.5
- * orbsvcs/orbsvcs/Naming/Persistent_Naming_Context_Factory.cpp:
- * orbsvcs/orbsvcs/Naming/Storable_Naming_Context_Activator.cpp:
+Fri Oct 12 11:20:25 CEST 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * utils/nsgroup/run_test.pl:
+ * TAO version 2.1.5 released.
Wed Oct 3 08:25:41 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
diff --git a/TAO/NEWS b/TAO/NEWS
index 74637645be4..41ad50f40df 100644
--- a/TAO/NEWS
+++ b/TAO/NEWS
@@ -1,6 +1,27 @@
+USER VISIBLE CHANGES BETWEEN TAO-2.1.7 and TAO-2.1.8
+====================================================
+
+USER VISIBLE CHANGES BETWEEN TAO-2.1.6 and TAO-2.1.7
+====================================================
+
+. Integrated several patches to simplify Debian/Ubuntu
+ packaging
+
+. Fixed IDL compiler bug related to internal reinitialization
+ when processing multiple IDL files in a single execution.
+
+USER VISIBLE CHANGES BETWEEN TAO-2.1.5 and TAO-2.1.6
+====================================================
+
+. We only try to load the ObjRefTemplate library at POA
+ creation instead of trying to load it at each servant
+ activation
+
USER VISIBLE CHANGES BETWEEN TAO-2.1.4 and TAO-2.1.5
====================================================
+. None
+
USER VISIBLE CHANGES BETWEEN TAO-2.1.3 and TAO-2.1.4
====================================================
@@ -30,7 +51,7 @@ USER VISIBLE CHANGES BETWEEN TAO-2.1.3 and TAO-2.1.4
enabled interfaces on platforms that this is not the default. This has been
observed to be required for the UIPMCAcceptor to open on the most recent
Linux distribs.
-
+
NOTE that there is an obvious elephant in the room in testing this option,
we can't rely on any build/test machine having more than one (or any?)
interfaces so the test (TAO/orbsvcs/tests/Miop/McastPreferredInterfaces),
diff --git a/TAO/OCI_RE_ChangeLog b/TAO/OCI_RE_ChangeLog
index 3fb0034120c..316977515ce 100644
--- a/TAO/OCI_RE_ChangeLog
+++ b/TAO/OCI_RE_ChangeLog
@@ -1,3 +1,7 @@
+Thu Jan 24 16:01:37 UTC 2013 "Kevin Stanley" <stanleyk@ociweb.com>
+
+ Merged trunk to OCI_Reliability_Enhancements branch.
+
Wed Jan 23 23:05:41 UTC 2013 Phillip LaBanca <labancap@ociweb.com>
* orbsvcs/tests/FT_Naming/FaultTolerant/client.cpp:
diff --git a/TAO/PROBLEM-REPORT-FORM b/TAO/PROBLEM-REPORT-FORM
index 35c531294f0..e860e8fc45c 100644
--- a/TAO/PROBLEM-REPORT-FORM
+++ b/TAO/PROBLEM-REPORT-FORM
@@ -40,8 +40,8 @@
To: tao-bugs@list.isis.vanderbilt.edu
Subject: [area]: [synopsis]
- TAO VERSION: 2.1.4
- ACE VERSION: 6.1.4
+ TAO VERSION: 2.1.7
+ ACE VERSION: 6.1.7
HOST MACHINE and OPERATING SYSTEM:
If on Windows based OS's, which version of WINSOCK do you
diff --git a/TAO/TAO_IDL/ast/ast_module.cpp b/TAO/TAO_IDL/ast/ast_module.cpp
index 910864ecd74..bcd6c6c036c 100644
--- a/TAO/TAO_IDL/ast/ast_module.cpp
+++ b/TAO/TAO_IDL/ast/ast_module.cpp
@@ -637,3 +637,10 @@ AST_Module::fe_add_porttype (AST_PortType *t)
AST_PortType::narrow_from_decl (
this->fe_add_decl (t));
}
+
+void
+AST_Module::reset_last_in_same_parent_scope (void)
+{
+ this->last_in_same_parent_scope_ = this;
+}
+
diff --git a/TAO/TAO_IDL/be/be_component.cpp b/TAO/TAO_IDL/be/be_component.cpp
index c9daa38cda3..d1c71c371ec 100644
--- a/TAO/TAO_IDL/be/be_component.cpp
+++ b/TAO/TAO_IDL/be/be_component.cpp
@@ -267,6 +267,7 @@ be_component::scan (UTL_Scope *s)
}
AST_Component *c = AST_Component::narrow_from_scope (s);
+ AST_Interface *iface = 0;
if (c != 0)
{
@@ -282,6 +283,15 @@ be_component::scan (UTL_Scope *s)
// will be 0 and the call will return immediately.
this->scan (c->base_component ());
}
+ else if ((iface = AST_Interface::narrow_from_scope (s)) != 0)
+ {
+ for (long i = 0; i < iface->n_inherits (); ++i)
+ {
+ // Will pick up a chain of inheritance,
+ // no need to use inherits_flat().
+ this->scan (DeclAsScope (iface->inherits ()[i]));
+ }
+ }
}
void
diff --git a/TAO/TAO_IDL/be/be_util.cpp b/TAO/TAO_IDL/be/be_util.cpp
index afbcef1c159..d55869c785d 100644
--- a/TAO/TAO_IDL/be/be_util.cpp
+++ b/TAO/TAO_IDL/be/be_util.cpp
@@ -795,11 +795,6 @@ be_util::usage (void)
));
ACE_DEBUG ((
LM_DEBUG,
- ACE_TEXT (" -si\t\t\tServer's inline file name ending.")
- ACE_TEXT (" Default is S.inl\n")
- ));
- ACE_DEBUG ((
- LM_DEBUG,
ACE_TEXT (" -ss\t\t\tServer's skeleton file name ending.")
ACE_TEXT (" Default is S.cpp\n")
));
diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp
index d5dec0dcedf..ecea16ddb14 100644
--- a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp
@@ -104,30 +104,33 @@ be_visitor_typedef_ch::visit_typedef (be_typedef *node)
-1);
}
- // accept on this base type, but generate code for the typedef node.
- if (bt->accept (this) == -1)
+ if (!node->imported ())
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_typedef_ch::"
- "visit_typedef - "
- "failed to accept visitor\n"),
- -1);
- }
-
- // Generate the typecode decl for this typedef node.
- if (!node->imported () && be_global->tc_support ())
- {
- be_visitor_context ctx (*this->ctx_);
- be_visitor_typecode_decl visitor (&ctx);
-
- if (node->accept (&visitor) == -1)
+ // accept on this base type, but generate code for the typedef node.
+ if (bt->accept (this) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_typedef_ch::"
"visit_typedef - "
- "TypeCode declaration failed\n"),
+ "failed to accept visitor\n"),
-1);
}
+
+ // Generate the typecode decl for this typedef node.
+ if (be_global->tc_support ())
+ {
+ be_visitor_context ctx (*this->ctx_);
+ be_visitor_typecode_decl visitor (&ctx);
+
+ if (node->accept (&visitor) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_typedef_ch::"
+ "visit_typedef - "
+ "TypeCode declaration failed\n"),
+ -1);
+ }
+ }
}
this->ctx_->tdef (0);
diff --git a/TAO/TAO_IDL/include/ast_module.h b/TAO/TAO_IDL/include/ast_module.h
index 12e2e23e434..cf2dba748ca 100644
--- a/TAO/TAO_IDL/include/ast_module.h
+++ b/TAO/TAO_IDL/include/ast_module.h
@@ -231,6 +231,12 @@ public:
virtual
AST_PortType *fe_add_porttype (AST_PortType *pt);
+ // Reset the last_in_same_parent_scope_ member to ourself
+ // (called by AST_Root::destroy on the CORBA module containing
+ // the basic types, since it isn't destroyed between processing
+ // multiple IDL files.
+ void reset_last_in_same_parent_scope (void);
+
private: // Data
bool pd_has_nested_valuetype_;
diff --git a/TAO/TAO_IDL/util/utl_global.cpp b/TAO/TAO_IDL/util/utl_global.cpp
index 6ce41ce58a7..a43f55a6496 100644
--- a/TAO/TAO_IDL/util/utl_global.cpp
+++ b/TAO/TAO_IDL/util/utl_global.cpp
@@ -928,6 +928,14 @@ IDL_GlobalData::destroy (void)
ACE::strdelete (this->recursion_start_);
this->recursion_start_ = 0;
+ // Reset the member of the CORBA module containing the basic types
+ // to point to itself, since all the other CORBA modules (if any)
+ // will be destroyed.
+ if (this->corba_module_ != 0)
+ {
+ this->corba_module_->reset_last_in_same_parent_scope ();
+ }
+
if (0 != this->pd_root)
{
this->pd_root->destroy ();
diff --git a/TAO/TAO_IDL/util/utl_scope.cpp b/TAO/TAO_IDL/util/utl_scope.cpp
index 27e7290467f..b2120a33cf4 100644
--- a/TAO/TAO_IDL/util/utl_scope.cpp
+++ b/TAO/TAO_IDL/util/utl_scope.cpp
@@ -1127,7 +1127,7 @@ UTL_Scope::lookup_by_name_local (Identifier *e,
return 0;
}
- bool in_corba = !ACE_OS::strcmp (e->get_string (), "CORBA");
+ bool in_corba = (ACE_OS::strcmp (e->get_string (), "CORBA") == 0);
// We search only the decls here, the local types are done
// below as a last resort.
@@ -1136,16 +1136,18 @@ UTL_Scope::lookup_by_name_local (Identifier *e,
i.next ())
{
d = i.item ()->adjust_found (true, full_def_only);
- if (d)
+
+ if (d != 0)
{
Identifier *item_name = d->local_name ();
- if (item_name
+
+ if (item_name != 0
// Right now we populate the global scope with all the CORBA basic
// types, so something like 'ULong' in an IDL file will find a
// match, unless we skip over these items. This is a workaround until
// there's time to fix the code generation for CORBA basic types.
- && (in_corba || ACE_OS::strcmp (
- d->name ()->head ()->get_string (), "CORBA"))
+ && (in_corba
+ || (ACE_OS::strcmp (d->name ()->head ()->get_string (), "CORBA") != 0))
&& e->case_compare (item_name))
{
return d; // We have found the one and only one we are looking for.
diff --git a/TAO/VERSION b/TAO/VERSION
index 31b59deb00d..3282654d3d0 100644
--- a/TAO/VERSION
+++ b/TAO/VERSION
@@ -1,4 +1,4 @@
-This is TAO version 2.1.4, released Wed Aug 29 08:16:04 CEST 2012
+This is TAO version 2.1.7, released Thu Dec 27 10:00:49 CET 2012
If you have any problems with or questions about TAO, please send
e-mail to the TAO mailing list (tao-bugs@list.isis.vanderbilt.edu),
diff --git a/TAO/bin/tao_orb_tests.lst b/TAO/bin/tao_orb_tests.lst
index fa1944ea062..48045b2ba4f 100644
--- a/TAO/bin/tao_orb_tests.lst
+++ b/TAO/bin/tao_orb_tests.lst
@@ -207,6 +207,7 @@ TAO/tests/Bug_3942_Regression/run_test.pl: !FIXED_BUGS_ONLY
TAO/tests/Bug_3953_Regression/run_test.pl: !CORBA_E_MICRO
TAO/tests/Bug_3954_Regression/run_test.pl:
TAO/tests/Bug_4010_Regression/run_test.pl:
+TAO/tests/Bug_4082_Regression/run_test.pl: !FIXED_BUGS_ONLY !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
TAO/tests/DIOP/run_test.pl: !ST !NO_DIOP !ACE_FOR_TAO !CORBA_E_MICRO
TAO/tests/DIOP/run_test_ipv6.pl: IPV6 !ST !NO_DIOP !ACE_FOR_TAO !CORBA_E_MICRO
TAO/tests/RTCORBA/Activate_Object_Multiple_ORBs/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
diff --git a/TAO/bin/tao_other_tests.lst b/TAO/bin/tao_other_tests.lst
index 94a9dc5b09c..2699c01356d 100644
--- a/TAO/bin/tao_other_tests.lst
+++ b/TAO/bin/tao_other_tests.lst
@@ -74,6 +74,7 @@ TAO/orbsvcs/tests/Bug_3216_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CO
TAO/orbsvcs/tests/Bug_3418_Regression/run_test.pl: !ST SSL !STATIC !DISABLE_INTERCEPTORS !ACE_FOR_TAO !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
TAO/orbsvcs/tests/Bug_3486_Regression/run_test.pl: !NO_MESSAGING !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO !LynxOS
TAO/orbsvcs/tests/Bug_3598b_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !ACE_FOR_TAO
+TAO/orbsvcs/tests/Bug_4080_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !NO_MCAST
TAO/orbsvcs/tests/CosEvent/Basic/run_test.pl: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO
TAO/orbsvcs/tests/HTIOP/Hello/run_test.pl: !NO_UUID !ST !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO !LynxOS
TAO/orbsvcs/tests/HTIOP/AMI/run_test.pl: !NO_UUID !ST !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO
diff --git a/TAO/docs/interop-naming.eps b/TAO/docs/interop-naming.eps
deleted file mode 100644
index dd81db8c528..00000000000
--- a/TAO/docs/interop-naming.eps
+++ /dev/null
@@ -1,29808 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: 28 32 747 560
-%%Title: interop-naming
-%%Creator: Canvas
-%%CreationDate: 4161999
-%%DocumentResources: procset Deneba_CanvasCustomColors
-%%+ procset Deneba_CanvasGraphics
-%%DocumentFonts: TimesNewRoman4-1
-%%+ Arial1-1
-%%+ Arial1-3
-%%+ Arial1
-%%DocumentSuppliedResources: procset Deneba_CanvasCustomColors
-%%+ procset Deneba_CanvasGraphics
-%%+ font TimesNewRoman4-1
-%%+ font Arial1-1
-%%+ font Arial1-3
-%%+ font Arial1
-%%DocumentProcessColors: Cyan Magenta Yellow Black
-%%Copyright: (C) 1994 Deneba Systems. All Rights Reserved
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset Deneba_CanvasCustomColors
-%%Title: Deneba custom colors
-%%Version: 1.0
-%%CreationDate: 10/1/92
-%%Copyright: (C) 1994 Deneba Systems. All Rights Reserved
-/setcustomcolor where {pop true}{false}ifelse
-dup{save exch}if
-dup not{
-userdict /Deneba_CanvasCustomColors 15 dict put
-Deneba_CanvasCustomColors begin
-/initialize
-{
-Deneba_CanvasCustomColors
-{dup xcheck{bind}if pop pop}forall
-Deneba_CanvasCustomColors begin
-}def
-/terminate
-{currentdict Deneba_CanvasCustomColors eq{end}if}def
-
-/_tcust 5 array def
-
-/findcmykcustomcolor
-{Deneba_CanvasCustomColors begin _tcust astore end}def
-
-/setcustomcolor
-{
-exch
-aload pop pop
-4{4 index mul 4 1 roll}repeat
-5 -1 roll pop
-/setcmykcolor where{pop setcmykcolor}
-{
-4 1 roll 3{3 index add 1.0 exch sub 0.0 2 copy lt{exch}if pop 1.0 2 copy gt{exch}if pop 3 1 roll}repeat setrgbcolor pop
-}ifelse
-}def
-
-/setoverprint where {pop}
-{/setoverprint
-{pop}def}ifelse
-
-/currentoverprint where {pop}
-{/currentoverprint
-{false}def}ifelse
-
-/setseparationgray
-{setgray}def
-
-/setcmykoverprint
-{ 4{dup -1 eq{pop 0.0}if 4 1 roll}repeat
-/setcmykcolor where{pop setcmykcolor}
-{
-4 1 roll 3{3 index add 1.0 exch sub 0.0 2 copy lt{exch}if pop 1.0 2 copy gt{exch}if pop 3 1 roll}repeat setrgbcolor pop
-}ifelse
-}def
-
-/customcolorimage
-{pop image}def
-
-/separationimage
-{image}def
-
-end
-}if
-{restore}if
-%%EndResource
-%%BeginResource: procset Deneba_CanvasGraphics
-%%Title: Deneba standard graphics
-%%Version: 1.0
-%%CreationDate: 10/1/92
-%%Copyright: (C) 1994 Deneba Systems. All Rights Reserved
-userdict /Deneba_CanvasGraphics 300 dict put
-Deneba_CanvasGraphics begin
-/initialize
-{
-Deneba_CanvasGraphics
-{dup xcheck{bind}if pop pop}forall
-Deneba_CanvasGraphics begin
-
-currentscreen
-/_screenProc xdf
-/_screenAng xdf
-/_screenFreq xdf
-
-/setstrokeadjust where{pop true}{false}ifelse
-{
-/sa /setstrokeadjust load def
-/li /lineto load def
-/mt /moveto load def
-/ct /curveto load def
-/lh { currentpoint exch pop lineto}bind def
-/lv { currentpoint pop exch lineto}bind def
-}
-{
-/sa{{currentdict StrokeAdjustDict ne{StrokeAdjustDict begin}if}{ currentdict StrokeAdjustDict eq{end}if}ifelse} bind def
-userdict /StrokeAdjustDict 10 dict put
-StrokeAdjustDict begin
-/_xl
-{
-transform
-.25 sub round .25 add exch
-.25 sub round .25 add exch
-itransform
-}bind def
-
-/li{ _xl lineto}bind def
-/mt{ _xl moveto}bind def
-/ct{ _xl curveto}bind def
-/lh { dup _xl pop currentpoint exch pop lineto}bind def
-/lv { dup _xl pop currentpoint pop exch lineto}bind def
-/rp
-{
-_xl/cv_b xdf/cv_r xdf
-_xl/cv_t xdf/cv_l xdf
-cv_l cv_t moveto
-cv_r cv_t lineto
-cv_r cv_b lineto
-cv_l cv_b lineto
-closepath
-} bind def
-
-end
-
-}ifelse
-
-}def
-
-/terminate
-{
-userdict /StrokeAdjustDict known {currentdict StrokeAdjustDict eq{end}if}if
-currentdict Deneba_CanvasGraphics eq{end}if
-}def
-/_cvmtx matrix def
-/_rotlevel 0 def
-/_rotmatrix [ 5{matrix}repeat ] def
-/_txtmtx matrix def
-/_initmtx matrix def
-/xdf{exch def}def
-/min{2 copy gt{exch}if pop}def
-/max{2 copy lt{exch}if pop}def
-/CVvec 256 array def
-/T true def
-/F false def
-
-/_screens null def
-/_numscreens 0 def
-/_screenProc null def
-/_screenAng 0 def
-/_screenFreq 60 def
-/_id 0 def
-/_encodindex 0 def
-/_encodArr 10 array def
-/_fd 0 def
-/_textSave null def
-/_letterSpace 0 def
-/_spaceXtra 0 def
-/_PageSave null def
-
-/_fstr null def
-/_sstr null def
-
-/_ft 0 def
-/_st 0 def
-
-/_fp null def
-/_bp null def
-/_fs null def
-/_ps null def
-/_fg 1 def
-/_frgb 3 array def
-/_fcmyk 4 array def
-/_fcust 5 array def
-/_pg 0 def
-/_prgb 3 array def
-/_pcmyk 4 array def
-/_pcust 5 array def
-/_bkg 1 def
-/_bkrgb 3 array def
-/_bkcmyk 4 array def
-/_bkcust 5 array def
-/_fkg 0 def
-/_fkrgb 3 array def
-/_fkcmyk 4 array def
-/_fkcust 5 array def
-
-/_penh 1.0 def
-/_penv 1.0 def
-/_penv2 0.5 def
-/_penh2 0.5 def
-/save0 null def
-/_w 0 def
-/_h 0 def
-/st0 null def
-/st1 null def
-/st2 null def
-/st3 null def
-/stb 256 string def
-/pw 0 def
-/wdif 0 def
-/temp 0 def
-/currot 0 def
-/savehandler null def
-
-/debug
-{
-{
-/savehandler errordict /handleerror get def
-errordict
-/handleerror
-{
-$error begin
-newerror
-{
-/newerror false def
-showpage
-
-72 72 scale
-/Helvetica findfont .2 scalefont setfont
-.25 9.6 moveto
-(Error: )show
-errorname
-{
-dup type/stringtype ne
-{(converted error name will end up in this string)cvs}if
-show
-}exec
-
-.25 9.4 moveto
-(Offending Command: )show
-/command load
-{
-dup type/stringtype ne
-{(converted command name will end up in this string)cvs}if
-show
-}exec
-
-.25 9.2 moveto
-(Stack: )show
-ostack
-{
-.25 currentpoint .2 sub exch pop moveto
-dup type/stringtype ne
-{
-dup type/integertype eq
-1 index type/realtype eq or
-1 index type/nametype eq or
-not {type}if
-(converted stack will end up in this string)cvs
-}if
-show
-}forall
-showpage
-Deneba_CanvasGraphics /savehandler get exec
-}if
-end
-}put
-}if
-
-}def
-
-/lc
-{setlinecap}def
-
-/lj
-{setlinejoin}def
-
-/lm
-{setmiterlimit}def
-
-/lf
-{setflat}def
-
-/cp
-{closepath}def
-
-/np
-{newpath}def
-
-/gs
-{gsave}def
-
-/gr
-{grestore}def
-
-/printinfo{ FontDirectory /GothicBBB-Medium-83pv-RKSJ-H known
-{/GothicBBB-Medium-83pv-RKSJ-H}
-%% -- 16 bit Windows && Windows 95
-{/Times-Roman}ifelse findfont 9 scalefont setfont 0 setseparationgray show}def
-%% -- Windows NT
-%%{/Times-Roman}ifelse 9 fts sf 0 setseparationgray show}def
-
-/li
-{ lineto} def
-/lh
-{ currentpoint exch pop lineto}def
-/lv
-{ currentpoint pop exch lineto}def
-/mt
-{ moveto} def
-/mh
-{ currentpoint exch pop moveto}def
-/mv
-{ currentpoint pop exch moveto}def
-/ct
-{ curveto} def
-/rt
-{
-4 -2 roll moveto
-dup 0 exch rlineto
-exch 0 rlineto
-neg 0 exch rlineto
-closepath
-}def
-
-/sd
-{setdash}def
-
-/cd
-{[] 0 setdash}def
-/impat
-{
-/save0 save def
-currot 0 ne{currot neg rotate}if
-currentflat
-/_hr load _fm get exec
-{
-dup{gsave{flattenpath}stopped{grestore 2 mul dup setflat dup 200 ge{pop pop false exit}if}{grestore setflat true exit}ifelse}loop
-{
-flattenpath
-setflat
-pathbbox
-3 -1 roll exch
-8 div ceiling 8 mul dup 5 1 roll exch 8 div floor 8 mul
-sub abs cvi/_h xdf
-exch 8 div floor 8 mul dup 4 1 roll exch 8 div ceiling 8 mul
-sub abs cvi/_w xdf
-transform
-.25 sub round .25 add exch
-.25 sub round .25 add exch
-itransform
-translate
-_w _h scale
-/_h _h 8 mul def
-/st0 _w string def
-/temp 0 def
-_w _h T [_w 0 0 _h 0 _h]
-{
-_patstr
-temp 8 mod
-get/st1 xdf
-0 1
-st0 length 1 sub dup 0 le{pop 1}if
-{st0 exch st1 put}for
-/temp temp 1 add def
-st0
-}
-imagemask
-}if
-}{pop}ifelse
-save0 restore
-newpath
-}def
-/_fr
-{
-{
-/_fmp load _fm get exec
-}
-
-{_bp _fp impat}bind
-
-{}
-
-{}
-}def
-/_sr{
-
-{
-_cvmtx currentmatrix pop
-_penh _penv eq{_penh setlinewidth}{_penh _penv mul dup 1.0 lt{pop 1.0}if dup setlinewidth dup _penh exch div _penv exch div scale}ifelse
-currentflat
-dup{gsave{stroke}stopped{grestore 2 mul dup setflat dup 200 ge{pop exit}if}{grestore setflat exit}ifelse}loop stroke
-setflat
-_cvmtx setmatrix
-}
-
-{
-_cvmtx currentmatrix pop
-sk
-_bp _cvmtx setmatrix _fp _fm /_fm 1 def impat /_fm exch def
-}
-{}
-
-{}
-}def
-/_hr
-{
-{currentflat dup{gsave{eoclip}stopped{grestore 2 mul dup setflat dup 200 ge{pop false exit}if}{grestore setflat true exit}ifelse}loop dup {eoclip}if exch setflat}
-{currentflat dup{gsave{clip}stopped{grestore 2 mul dup setflat dup 200 ge{pop false exit}if}{grestore setflat true exit}ifelse}loop dup {clip}if exch setflat}
-}def
-/_fmp
-{
-{
-currentflat dup{gsave{eofill}stopped{grestore 2 mul dup setflat dup 200 ge{pop exit}if}{grestore setflat exit}ifelse}loop
-setflat
-newpath
-}
-{
-currentflat
-dup{gsave{fill}stopped{grestore 2 mul dup setflat dup 200 ge{pop exit}if}{grestore setflat exit}ifelse}loop
-setflat
-newpath
-}
-}def
-
-/_fill{ /_fr load _ft get exec}def
-/_stroke{ /_sr load _st get exec}def
-/fm
-{ /_fm exch def}def
-/fg{/_fg xdf /_ft 0 def/_fs{_fg setgray}def}def
-
-/fsg{/_fg xdf/_ft 0 def/_fs{_fg setseparationgray}def}def
-/f3{_frgb astore pop /_ft 0 def /_fs{_frgb aload pop setrgbcolor}def}def
-/f4{_fcmyk astore pop /_ft 0 def /_fs{_fcmyk aload pop setcmykoverprint}def}def
-/fc{/_fg xdf findcmykcustomcolor aload pop _fcust astore pop /_ft 0 def /_fs{_fcust _fg setcustomcolor}def}def
-/pg{/_pg xdf /_st 0 def/_ps{_pg setgray}def}def
-
-/psg{/_pg xdf /_st 0 def/_ps{_pg setseparationgray}def}def
-/p3{_prgb astore pop /_st 0 def/_ps{_prgb aload pop setrgbcolor}def}def
-/p4{_pcmyk astore pop /_st 0 def/_ps{_pcmyk aload pop setcmykoverprint}def}def
-/pc{/_pg xdf findcmykcustomcolor aload pop _pcust astore pop /_st 0 def /_ps{_pcust _pg setcustomcolor}def}def
-/fp
-{/_fstr xdf /_ft 1 def /_fs{/_patstr _fstr def}def}def
-/pp
-{/_sstr xdf/_st 1 def /_ps{/_patstr _sstr def}def}def
-/bg
-{/_bkg xdf /_bp{gsave _bkg setgray /_fr load 0 get exec grestore}def}def
-/b3
-{_bkrgb astore pop/_bp{gsave _bkrgb aload pop setrgbcolor /_fr load 0 get exec grestore}def}def
-/b4
-{_bkcmyk astore pop/_bp{gsave _bkcmyk aload pop setcmykoverprint /_fr load 0 get exec grestore}def}def
-/bc
-{/_bkg xdf findcmykcustomcolor aload pop _bkcust astore pop/_bp{gsave _bkcust _bkg setcustomcolor /_fr load 0 get exec grestore}def}def
-/kg
-{/_fkg xdf /_fp{_fkg setgray}def}def
-/k3
-{_fkrgb astore pop/_fp{_fkrgb aload pop setrgbcolor}def}def
-/k4
-{_fkcmyk astore pop/_fp{_fkcmyk aload pop setcmykoverprint}def}def
-/kc
-{/_fkg xdf findcmykcustomcolor aload pop _fkcust astore pop/_fp{_fkcust _fkg setcustomcolor}def}def
-/sp
-{/_penv xdf/_penh xdf/_penv2 _penv 2.0 div def/_penh2 _penh 2.0 div def}def
-/rp
-{
-/cv_b xdf/cv_r xdf
-/cv_t xdf/cv_l xdf
-cv_l cv_t moveto
-cv_r cv_t lineto
-cv_r cv_b lineto
-cv_l cv_b lineto
-closepath
-}def
-/rr
-{
-/yradius xdf
-/xradius xdf
-/cv_b xdf
-/cv_r xdf
-/cv_t xdf
-/cv_l xdf
-cv_l xradius add cv_t moveto
-cv_r xradius sub cv_t lineto
-
-_cvmtx currentmatrix pop
-currentpoint translate
-xradius yradius scale
-1 0 1 1 1 arcto 4{pop}repeat
-_cvmtx setmatrix
-
-cv_r cv_b yradius sub lineto
-
-_cvmtx currentmatrix pop
-currentpoint translate
-xradius yradius scale
-0 1 -1 1 1 arcto 4{pop}repeat
-_cvmtx setmatrix
-
-cv_l xradius add cv_b lineto
-
-_cvmtx currentmatrix pop
-currentpoint translate
-xradius yradius scale
--1 0 -1 -1 1 arcto 4{pop}repeat
-_cvmtx setmatrix
-
-cv_l cv_t yradius add lineto
-
-_cvmtx currentmatrix pop
-currentpoint translate
-xradius yradius scale
-0 -1 1 -1 1 arcto 4{pop}repeat
-_cvmtx setmatrix
-
-closepath
-}def
-/ep
-{
-_cvmtx currentmatrix pop
-translate
-scale
-1 0 moveto
-0 0 1 0 360 arc
-closepath
-_cvmtx setmatrix
-}def
-/wd
-{
-_cvmtx currentmatrix pop
-translate
-scale
-0 0 moveto
-0 0 1 5 -2 roll arcn
-closepath
-_cvmtx setmatrix
-} def
-/as
-{
-newpath
-_cvmtx currentmatrix pop
-translate
-scale
-0 0 1 5 -2 roll arcn
-_cvmtx setmatrix
-} def
-/ds
-{_ps _stroke}def
-/df
-{_fs _fill}def
-/db
-{
-_fs gsave _fill grestore
-currentdash pop length 0 ne
-{
-gsave
-[] 0 setdash
-_st /_st _ft def
-_stroke
-/_st xdf
-grestore
-}if
-_ps _stroke
-}def
-/dp
-{_ps _ft/_ft _st def _fill/_ft xdf}def
-/sk
-{
-_penh _penv eq{_penh setlinewidth}{_penh _penv mul dup 1.0 lt{pop 1.0}if dup setlinewidth dup _penh exch div _penv exch div scale}ifelse
-currentpoint
-currentflat dup{gsave{strokepath}stopped{grestore 2 mul dup setflat dup 200 ge{pop pop exit}if}{grestore setflat exit}ifelse}loop strokepath setflat
-moveto
-}def
-/ef{_bp newpath}def
-/hs{gsave newpath}def
-/hc{ /_hr load exch get exec pop newpath}def
-/he{grestore}def
-/id
-{ /_id xdf}def
-/_imatrix
-{_w 0 0 _h _id 0 ne{neg 0 _h}{0 0}ifelse _cvmtx astore}def
-%!
-% Copyright (C) 1990, 1991 by Adobe Systems Incorporated.
-% All rights reserved.
-%
-/invalidcolortable? true def
-/level2 /languagelevel where {pop languagelevel 2 ge}{false} ifelse def
-level2 { save /dontloadlevel1 xdf }if
-/startnoload
-{
-{/noload save def} if
-}def
-/endnoload
-{
-{ noload restore } if
-}def
-/testsystemdict
-{
-where
-{
-systemdict eq
-{
-true
-}{
-false
-}ifelse
-}{
-false
-}ifelse
-}def
-/ncolors 1 def
-/colorimage where { pop true}{false} ifelse
-{
-/ncolors 0
-statusdict begin
-/processcolors where
-{
-pop
-pop
-processcolors
-}{
-/deviceinfo where
-{ pop deviceinfo /Colors known
-{ pop {deviceinfo /Colors get} } if
-}if
-}ifelse
-end
-def
-ncolors 0 ne
-{
-/colorimage testsystemdict
-/setcolortransfer testsystemdict
-/currentcolortransfer testsystemdict
-/currentcmykcolor testsystemdict
-and and and not
-{
-/ncolors 0 def
-} if
-}if
-}if
-ncolors dup 1 ne exch dup 3 ne exch 4 ne and and {/ncolors 0 def}if
-ncolors 1 eq dup dup not startnoload
-{
-/doclutimage
-{
-pop /bwclut xdf
-[
-{255 mul round cvi bwclut exch get 255 div} /exec load dup
-currenttransfer exch
-] cvx bind settransfer
-_w _h 8 _imatrix {currentfile st0 readhexstring pop}
-image
-}def
-}if
-not endnoload
-ncolors dup 3 eq exch 4 eq or
-dup dup not startnoload
-{
-/nullproc { {} }def
-/concatutil
-{
-/exec load
-7 -1 roll /exec load
-}def
-/defsubclut
-{
-1 add getinterval def
-}def
-/spconcattransfer
-{
-/Dclut exch def
-/Cclut exch def
-/Bclut exch def
-/Aclut exch def
-/ncompute exch load def
-currentcolortransfer
-[
-{
-Aclut ncompute
-}
-concatutil
-] cvx
-[
-{
-Bclut ncompute
-}
-concatutil
-] cvx
-[
-{
-Cclut ncompute
-}
-concatutil
-] cvx
-[
-{
-Dclut ncompute
-}
-concatutil
-] cvx
-setcolortransfer
-}def
-/setuprgbcluts
-{
-/bit3x
-rgbclut length
-3 sub
-def
-/bit1x bit3x 3 idiv def
-/rclut rgbclut def
-/gclut rclut 1 bit3x defsubclut
-/bclut rclut 2 bit3x defsubclut
-}def
-}if
-not
-endnoload
-ncolors 3 eq
-dup dup not startnoload
-{
-/3compute
-{
-exch bit3x
-mul
-round
-cvi
-get 255 div
-} def
-/doclutimage
-{
-/rgbclut xdf
-pop
-setuprgbcluts
-/3compute rclut gclut bclut dup
-spconcattransfer
-_w _h 8 _imatrix
-[
-{currentfile st0 readhexstring pop} /exec load
-/dup load dup
-] cvx
-nullproc nullproc true 3 colorimage
-}def
-}if
-not endnoload
-ncolors 4 eq
-dup dup not startnoload
-{
-/stuffclut
-{
-cmykindex 3 -1 roll put
-}def
-/ftoint
-{
-1 exch sub 255 mul round cvi
-}def
-/4compute { exch bit4x mul round cvi get 255 div } def
-/computecmykclut
-{
-setuprgbcluts
-/bit4x
-rgbclut length
-3 idiv
-4 mul
-4 sub
-def
-/cmykclut bit4x 4 add string def
-/cclut cmykclut def
-/mclut cclut 1 bit4x defsubclut
-/yclut cclut 2 bit4x defsubclut
-/kclut cclut 3 bit4x defsubclut
-/cmykindex 0 def
-0 1 bit1x
-{
-dup /cmykindex exch
-bit1x exch sub
-4 mul def
-3 mul dup
-rclut exch get 255 div
-exch dup
-gclut exch get 255 div
-exch
-bclut exch get 255 div
-setrgbcolor currentcmykcolor
-ftoint
-kclut stuffclut
-ftoint
-yclut stuffclut
-ftoint
-mclut stuffclut
-ftoint
-cclut stuffclut
-}for
-}def
-/doclutimage
-{
-/rgbclut xdf
-pop
-invalidcolortable?
-{
-computecmykclut
-}if
-/4compute cclut mclut yclut kclut spconcattransfer
-_w _h 8 _imatrix
-[
-{currentfile st0 readhexstring pop} /exec load
-/dup load dup dup
-] cvx
-nullproc nullproc nullproc
-true 4 colorimage
-}def
-}if
-not endnoload
-ncolors 0 eq
-dup dup not startnoload
-{
-/colorexpand
-{
-mystringexp 0 rgbclut
-3 copy
-7 -1 roll
-{
-3 mul
-3 getinterval
-putinterval exch
-3 add exch 3 copy
-}
-forall
-pop pop pop pop pop
-}def
-/createexpandstr
-{
-/mystringexp exch st0 length mul string def
-}def
-/doclutimage
-{
-/rgbclut xdf
-pop
-3 createexpandstr
-_w _h 8 _imatrix
-[ {currentfile st0 readhexstring pop} /exec load /colorexpand load /exec load] cvx
-false 3 colorimage
-}def
-}if
-not endnoload
-level2 { dontloadlevel1 restore }if
-level2 not{ save /dontloadlevel2 xdf }if
-/_imagedict 9 dict dup
-begin
-/ImageType 1 def
-/MultipleDataSource false def
-end
-def
-/rgbclut 0 def
-/doclutimage
-{
-/rgbclut xdf
-pop
-/hival 255 def
-[/Indexed /DeviceRGB hival rgbclut] setcolorspace
-_imagedict dup begin
-/Width _w def
-/Height _h def
-/Decode [0 hival] def
-/ImageMatrix _imatrix def
-/DataSource {currentfile st0 readhexstring pop} def
-/BitsPerComponent 8 def
-/Interpolate false def
-end
-image
-}def
-level2 not{ dontloadlevel2 restore }if
-%%EndProcSet
-
-/cl
-{
-translate
-scale
-cvi/_h xdf
-cvi/_w xdf
-/st0 _w string def
-doclutimage
-}def
-
-/c3
-{
-translate
-scale
-cvi/_h xdf
-cvi/_w xdf
-/st0 _w 3 mul string def
-_w _h 8 _imatrix
-{currentfile st0 readhexstring pop}
-false 3 DSIColorImage
-}def
-
-/colorimage where
-{
-pop
-/DSIColorImage {colorimage} def
-}
-{
-/DSIColorImage
-{
-/ncolors xdf
-not
-{
-2 index
-8 eq
-{
-ncolors 1 gt
-{
-/proc0 xdf
-3 index 2 index mul 7 add 8 div cvi string /st1 xdf
-ncolors 3 eq
-{
-{
-proc0 dup/st0 xdf
-0 exch 3 exch
-length
-3 sub
-{
-dup
-st0 exch get .3 mul
-1 index 1 add st0 exch get .59 mul add
-1 index 2 add st0 exch get .11 mul add
-cvi
-exch 3 div cvi exch
-st1 3 1 roll put
-}for
-st1
-}
-}
-{
-{
-proc0 dup/st0 xdf
-0 exch 4 exch
-length
-4 sub
-{
-dup
-st0 exch get .3 mul
-1 index 1 add st0 exch get .59 mul add
-1 index 2 add st0 exch get .11 mul add
-1 index 3 add st0 exch get add dup 255.0 gt{pop 255.0}if
-255.0 exch sub cvi
-exch 4 div cvi exch
-st1 3 1 roll put
-}for
-st1
-}
-}ifelse
-}if
-image
-}{(Incompatable color bitimage)print flush stop}ifelse
-
-}{(Incompatable color bitimage)print flush stop}ifelse
-}def
-}ifelse
-/c4
-{
-translate
-scale
-cvi/_h xdf
-cvi dup/_w xdf
-dup string/st0 xdf
-dup string/st1 xdf
-dup string/st2 xdf
-string/st3 xdf
-_w _h 8 _imatrix
-{currentfile st0 readhexstring pop}
-{currentfile st1 readhexstring pop}
-{currentfile st2 readhexstring pop}
-{currentfile st3 readhexstring pop}
-true 4 DSIColorImage
-}def
-/im
-{
-translate
-scale
-cvi/_h xdf
-cvi/_w xdf
-/st0 _w string def
-_w _h 8 _imatrix
-{currentfile st0 readhexstring pop}
-image
-}def
-/ik
-{
-translate
-scale
-_fp
-cvi/_h xdf
-cvi/_w xdf
-/st0 _w 7 add 8 div cvi string def
-_w _h false _imatrix
-{currentfile st0 readhexstring pop}
-imagemask
-}def
-/rs
-{
- _rotmatrix _rotlevel get currentmatrix pop
- /_rotlevel _rotlevel 1 add def
-2 copy translate
-3 -1 roll neg rotate
-neg exch neg exch translate
-}def
-/re
-{
-/_rotlevel _rotlevel 1 sub def
-_rotmatrix _rotlevel get setmatrix
-}def
-
-/fd
-{
-/_fd xdf
-}def
-
-/_fontMatrix
-{
-1 0 0 _fd 0 ne{-1 0 0}{1 0 0}ifelse _cvmtx astore
-}def
-/rf{
-/_encodindex xdf
-FontDirectory 2 index known
-not{
-findfont dup length 1 add dict begin
-{1 index/FID ne{def}{pop pop}ifelse}forall
-dup /FontName exch def
-/Encoding Encoding 256 array copy def
-_encodindex 0 ge
-{
-0 _encodArr _encodindex get
-{
-dup type/nametype eq
-{
-Encoding 2 index 2 index put pop 1 add
-}
-{exch pop}ifelse
-}forall pop
-}if
-currentdict end definefont pop
-}if
-cleartomark
-}def
-/sf{
-findfont ftSize 0 0 ftSize _fd 0 ne{-1 mul}if 0 0 _cvmtx astore makefont setfont
-}def
-/mf{
-3 -1 roll findfont 3 1 roll exch ftSize mul exch ftSize mul 0 exch 0 exch _fd 0 ne{-1 mul}if 0 0 _cvmtx astore makefont setfont
-}def
-
-/wrk1 ( ) def
-/wdict 16 dict def
-/Work75 75 string def
-/Nmk{Work75 cvs dup}def
-/Npt{put cvn}def
-/dhOdh{Nmk 2 79 Npt}def
-/dhodh{Nmk 2 111 Npt}def
-/dhSdh{Nmk 2 83 Npt}def
-/sfWidth{gsave 0 0 moveto 0 0 lineto 0 0 lineto 0 0 lineto closepath clip stringwidth grestore}def
-/fts{/ftSize exch def}def
-/mkFT{
-dup/FontType get 0 eq
-{
-dup maxlength dict begin
-
-{1 index/FID ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall
-currentdict end
-dup/FDepVector 2 copy get
-[
-exch 6 index
-exch 6 index
-exch{mkFT 3 1 roll}forall pop pop
-] put dup
-}
-{
-/tempFT 12 dict def
-tempFT begin
-/FontMatrix [1 0 0 1 0 0] def
-/FontType 3 def
-dup/Encoding get/Encoding exch def
-/proc2 2 index def
-dup/ft1 exch def
-/ft2 1 array def
-/FontBBox [0 0 1 1] def
-/BuildChar
-{
-exch dup/ftdt xdf begin
-wdict begin
-/chr xdf
-/chrst wrk1 dup 0 chr put def
-ft2 0 get null eq
-{
-ft1 dup length 2 add dict begin
-{1 index/FID ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall
-/PaintType 2 def
-/StrokeWidth .24 1000 mul ftSize div dup 12 lt{pop 12}if def
-currentdict end
-/q exch definefont
-ft2 exch 0 exch put
-}if
-ftdt/proc2 get exec
-end
-end
-}def
-end
-tempFT
-}ifelse
-3 index exch
-definefont exch pop
-}def
-
-/mo{
-/_textstyle 1 def
-dup dhOdh
-FontDirectory 1 index known
-{exch pop}
-{
-dup 3 -1 roll
-findfont
-{outproc} exch
-mkFT
-pop pop pop
-}ifelse
-}def
-
-/ms{
-/_textstyle 2 def
-dup dhSdh
-FontDirectory 1 index known
-{exch pop}
-{
-dup 3 -1 roll
-findfont
-{ShadChar} exch
-mkFT
-pop pop pop
-}ifelse
-}def
-
-/outproc{
-ft1 setfont
-gsave chrst sfWidth grestore
-setcharwidth dblsh
-}def
-
-/dblsh{
-currentgray 1.0 setgray
-chrst 0 0 moveto show setgray
-ft2 0 get setfont chrst 0 0 moveto show
-}def
-
-/ShadChar{
-ft1 setfont
-gsave
-chrst sfWidth 1 index 0 ne{exch .05 add exch}if
-grestore
-setcharwidth
-chrst .06 0 moveto show
-0 .05 translate dblsh
-}def
-/tb{
-_txtmtx currentmatrix pop
-currentpoint pop /_underlinpt xdf
-/_textstyle 0 def
-}def
-
-
-/_textline
-{
-_textstyle 2 eq{
-gsave
-_underlinpt currentpoint pop sub
-currentlinewidth 2.0 div dup rmoveto
-0 rlineto
-stroke
-grestore
-}if
-
-_underlinpt currentpoint pop sub 0 rlineto
-_textstyle 0 ne
-{
-currentlinecap
-0 setlinecap
-currentpoint
-currentflat dup{gsave{strokepath}stopped{grestore 2 mul dup setflat dup 200 ge{pop pop exit}if}{grestore setflat exit}ifelse}loop strokepath setflat
-moveto
-setlinecap
-gsave 1.0 setgray eofill grestore
-setlinewidth stroke
-}
-{pop stroke}ifelse
-
-}def
-
-/_sp
-{
-{
-gsave
-currentpoint newpath moveto
-[] 0 setdash
-currentfont dup /ft1 known
-{
-dup /ft1 get begin
-/FontMatrix get FontMatrix _cvmtx concatmatrix pop
-}
-{
-begin FontMatrix _cvmtx copy pop
-}ifelse
-
-currentdict dup /StrokeWidth known
-{/StrokeWidth get dup _cvmtx dtransform pop}
-{pop .24}ifelse
-
-currentdict /FontInfo known
-{
-FontInfo /UnderlineThickness get dup _cvmtx dtransform pop setlinewidth
-FontInfo /UnderlinePosition get dup _cvmtx dtransform pop neg
-}
-{ 1 setlinewidth -100}ifelse
-0 exch _textstyle 2 eq{ 3 sub}if rmoveto
-end
-_textline
-grestore
-}
-{
-gsave
-currentpoint newpath moveto
-[] 0 setdash
-currentfont dup /ft1 known
-{
-dup /ft1 get begin
-/FontMatrix get FontMatrix _cvmtx concatmatrix pop
-}
-{
-begin FontMatrix _cvmtx copy pop
-}ifelse
-
-currentdict dup /StrokeWidth known{/StrokeWidth get dup _cvmtx dtransform pop}{pop .24}ifelse
-currentdict /FontInfo known
-{
-FontInfo /StrikeoutPosition known
-{
-FontInfo /StrikeoutThickness get dup _cvmtx dtransform pop setlinewidth
-FontInfo /StrikeoutPosition get dup _cvmtx dtransform pop neg
-}
-{
-FontInfo /UnderlineThickness get dup _cvmtx dtransform pop 2.0 div setlinewidth
-300 dup _cvmtx dtransform pop neg
-}ifelse
-}
-{ .5 setlinewidth 300}ifelse
-0 exch rmoveto
-end
-_textline
-grestore
-}
-
-{}
-
-{}
-
-{}
-
-{}
-
-{}
-
-{}
-
-}def
-
-/xe
-{
-%%/_textstyle exch def
-0 1 15
-{
-dup 1 exch bitshift
-2 index and 0 ne
-{
-/_sp load exch get exec
-}
-{pop}ifelse
-}for
-}def
-
-
-/te{ _txtmtx setmatrix}def
-
-/ta
-{
-/_letterSpace xdf /_spaceXtra xdf
-}def
-
-/ts
-{
-_ps
-show
-}def
-
-/tf
-{
-/_textWidth xdf
-/_numSpaces xdf
-/_stringLength xdf
-
-dup stringwidth pop
-
-_letterSpace _stringLength mul add
-_spaceXtra _numSpaces mul add
-_textWidth exch sub /wdif xdf
-_ps
-_spaceXtra 0 32
-wdif _stringLength div
-_letterSpace add
-0 6 -1 roll awidthshow
-}def
-
-/pb
-{
-/_PageSave save def
-/showpage {} def
-}def
-
-/pm {_pm currentmatrix pop} def
-/_pm matrix def
-
-/ps
-{
-showpage
-_pm setmatrix
-}def
-
-/pe
-{
-_PageSave restore
-}def
-end
-%%EndResource
-%%EndProlog
-/copyfont{findfont dup length 1 add dict begin
-{1 index/FID ne{def}{pop pop}ifelse}forall
-dup /FontName exch def
-/Encoding Encoding 256 array copy def
-currentdict end}bind def
-%%BeginResource: font TimesNewRoman4-1
-14 dict begin
-/FontName /TimesNewRoman4-1 def
-/FontInfo 10 dict dup begin
-/FullName (TimesNewRoman4-1) def
-/FamilyName (TimesNewRoman4-1) def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/StrikeoutPosition 300 def
-/StrikeoutThickness 25 def
-/Weight (Medium) def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end def
-/_glyph (X ) def
-/gx
-{
- 1 exch{
- dup 16 ( ) cvrs _glyph exch 1 exch putinterval 1 index exch
- _glyph cvn put
- }for
-}def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] def
-/Encoding 256 array
-0 1 255 { 1 index exch /.notdef put } for
-30 255 gx
-def
-/FontBBox [ 0 0 0 0 ] def
-currentdict end
-dup /Private 8 dict dup begin
-/RD{string currentfile exch readhexstring pop}def
-/ND{def}def
-/NP{put}def
-/BlueValues[ -250 0 2200 2200] def
-/MinFeature { 16 16} def
-/password 5839 def
-/Subrs 43 array
-ND
-2 index /CharStrings 256 dict dup begin
-/.notdef 8 RD 24ECBD053ECAD3D7 ND
-/X20 10 RD 24ECBD053EB633C991DB ND
-/X41 144 RD 24ECBD053EB83C360F4B94DE3E8B756E8012F8F9E13B1AC798A0D543B03A309B8DB07C9AAECEDE186059402E98E44A1D7015E0492EE3C63E03C18B895957CDD2ABF6B2FB21B34EF758A053FFABE8AFA1F8AF5A96F5D46B025391F328567F695BFFF4AEE6F5A7AF637574667612DFB32739E9E975252DFF8FC9327AA4
-DCE067E48412A86EDCC82879D4A37C89FF5E25DB ND
-/X42 251 RD 24ECBD053EB8753CD7B0DA1D515B5CDF6C5A35B16B2D376AEF7B0DC92B338444E23703253E9DEF8D5BE8ECEC54D1A786E1449E0F8025665830640F460819E61D97752D92D548FFD4B08504FB89AC528908930B7162D8FB104194298B79BA6FD7B0EC9EAC7579976426EA7C6F70EFCF3BCDE98746B74EDD7888E2815D
-4B193ACC8B22FC99908A03390EF61CDE8015CDA2B8243FCD6A3A0662C94D092BA690860D1C1BD3EBBE624E903998FF4316020BA7864E31D7233638D3C09D3054382DA135B73CE0DF2D24E92AFFEDFD7ECB027E422C5C47B0543ED5A9220E4241B41CAF9197DD010E797B0785B323D65666580988557C54C8704790ECBA
-0C0B ND
-/X43 178 RD 24ECBD053EB83C360E86A5A433E50C676A86C91D33D4DF445F1C4540DD97E74C3E2ED39A7DFC9B60E0A572DE5047F2519E2BE8B732C64F2C576796E266FDBAE1861EAA71B3EA4D5FA2FA78D1556A62302BB14AEDB3BCB91F319E48063EB499FA6154784C12D485711A992AE17695643A22117E343E12729FA0E79DA3
-DA72DD051384D2169C4AC028F4F6180C861E24E2AD0BD615897CA65E21FDC9C4E536A3BEFDFD5AC26A5E193C47B3B935A50A34EF7F03 ND
-/X45 195 RD 24ECBD053EB8753CD80A145BE2ABA662C43596645C456D38482A9471CA3691940CCF278EF67D34C32718B066E457B51E266FCA0F245EF54512D1E172C2B8762DEBFA1626A43E051FCE02E35AB2B1A53395AE995C3FB50DDFDAAD51EAA061425036E2809A1BA959C62FBFDDCCB0EE4D591C1E58B665794A76E167BAAD
-51EF267CEE7C3450B283D4FDFA002E64552B778B56EE9D50AFA6B9E00E61DDA099E8E8825284D71835C793996B504498C0A19AA9DCC7EE153154922BEA7F826DAB3B942CD68E7D ND
-/X46 179 RD 24ECBD053EB9DF48FFA7B3BEF9EEFEE4FAEC922CEFCCDB0C671C0066AABB66768311FCC598CB1B55533724EF4A67C1C14D5EC7511318C252E59D95EBE395744EB7DB388130CC144241935387DF620E0984164D173152D00A7D2658D020C08B09210A1233739392A391A75F7BC37DA5BDD4BEDCFA4DCD7FE6118DB750
-A3B482F3A724A75FC29FBD780B0FFD3ED5C45684C5D5BD2B911522A439BF05D7FA3FF943FFF1321197CB653983B023B57662362F7F673F ND
-/X49 126 RD 24ECBD053EB931FA65ED2DB64488963E2F46EEA7A99303FC750CACB696F33E790A6CC6077676DB6801A4A487882927B327B3F8103384D0F7C9DAEA1299AA2F557AF1F636BDCE674EAAFC22B340762853B23B1E8675B650BDB4B9457B34846A79033FEEC4824BD4334C0736F26CFDDB525C5D625C8E061A8F93EA7188
-5AC2 ND
-/X4C 152 RD 24ECBD053EB8753CD61DFD47F60D395AF284865FACE2EF9E4915D55A92FB358A8F2CF943A5976D1E1407A6392603EA42222F2CDF2C7EF9C43F0482298889E73A565F0AA079A6B3EBA9CA58E4A4C805BC1327595A775E48F3BBA2FE1C7DB0D1DB68B8088D3486C1A5DE46253FFFC87EEEB9D46478D8CA9DB7F8D0EF4A
-C726434AF164510C9C383146F7394746F8B3CACA7E9D8B594F1FFB4E ND
-/X4D 216 RD 24ECBD053EBB81A3C84CCE9184A0F7DF9AEACD3D10A4D9AD2DA5F552952AB0F98CB0EA36B8F32E33EF74146A716F36FCA074D22AFE7537D7A7798B373859A4FBCF862076122930B9F8C5426C934F45514445A864ED4C5962FEDA6A2538E69B8B2EC326FAF69DC92E426D53C2DFB5159ADE232B199E6522E557747E52
-C5DB8CFAB4B98DAADC109271147C162663AB7347D064039AA6FC83B43EBFADFBE03A9078EBC4B5003F3F0DBBBDF540BF9E4B697262B9298A2787A63B9EFA23384A6A4705D8A2DDBD763B85FEB9A0035198CDFEF65C96C3833A60853F ND
-/X4E 140 RD 24ECBD053EB83C3600ED01056A2E62F7DF6DE092A87C6B420D2C230BE5F7953CDB878DE442B0EA321226A901BF36B362F513154159EE6FEF7F971DBFCBDD67C50A57A7BC1B1735A784A3BEC533AAAF7517BF990E288D893B6F1DEF226474F3E5FDD9E76ECE597ECB94761BB84749F41B8E9531D1F25467BD680887D1
-6FA9BF9DFCA55506CC68DD6A432CD343 ND
-/X4F 152 RD 24ECBD053EB8C4E87E80336FDCBF26B41F340A180F676E38CD0777DFCA6A8A987441A6D6554C097A3978779FCF56DA8A65632B58DBAD2BD6F283041AB34DDA5BA18E2003599B6CA34D24662E0C2BD0CE74621E9CC4295DF7F1464F3A1BE66F3A21DF35867F091D5256F2EB39F97D2F621BE0D6044C9D4A7347A00E0E
-C6513E75926B32A91F0889FB7E002D464E13B10B0D285AC9E46424F1 ND
-/X52 208 RD 24ECBD053EB83C3600FE5AF197FD78E0CD12C092E4166BB6716E912F226C3B61BBC1C6595D467C7F49377010EB174C0BA342ACA6B6D25CA68B271455A87C20005C9468334ADA3582D3BD88202F41C4BB144F3AA083E3661556BA8AEE72FE787F759495D27AE2F0777E8A248A4134C0160BC3C9D5AFEC3CA81D45CCC5
-D351D92DCBB7DBC38306F2E569E430F66C070924E7601D78FFD4DE117A0FC5B063E36B86BF5C74ACB65356CA524905C492F88C064CD0C61A9D2362CB25FB1536554C1E7E93356839F95CE678DE84119E505BB88D ND
-/X53 261 RD 24ECBD053EB9E88A56C1897FDF69DC54F647A73338F74AE946182D095D741C28F465B1B0E1C84037E52BC85306DED81B75917C1DE93736F6EB9E5D78801F70BCAB59CB79272C5D8AFC80249CBFCB61F82E7BF86EB7E5AE08D26708A0AC2FF8D7CA9C6AEB0627F4C476321560371BFD80DC3920D5855240610658769D
-E1F2C27D736FB0D453328B6F9061BA414738A81FE1AF9C1E9A6B3322430283F0E04C19FF765A8DE9C2E1848E2076EB9A3634E2C6130AB07958891B8085E53F104D8E68589C7B1565F62582EAED9E63DCDC2D46BDC96A7EB1D26BC382604BCE03AB22623527833C19CE19BEF422A051CDD953EC6E8027699EE2514D20E7
-CE41FF0BEDAC58893B6505AD ND
-/X54 126 RD 24ECBD053EB8753CD61A6681CB78C8757CD195382007336EE2D0B155C4B513473426FADE3AF3F7A44C004C70BE55504CB126F954439CF581B159379C3F1419D242FE206B44D0FE13EAB1143A6F4F600AA71E6AFC0A5D9460D929A7F4E99428D3B9FFA74C514E0287A3BDA3FF86F33F5772FED4DDD6FE0FE00191247F
-D417 ND
-/X55 212 RD 24ECBD053EB83C3655135FB06453D1846156B2A0E9898F1D6D26F1C11F718137DF100E0BE258E6EC2D0D162ED0DA204F4A97779248014D3B158730E917381324DC0597E1F1F4C179567BBFFED3C844BE77242D2025F4EB93F291AFE9DB38FE8792C8302D2A152927A609969DFFD69200AD7BFA0B4FBED785F7DCDAEA
-1FFDC35E67C7AC4D1C0B1BFFA84762C009A2764CF14F95C2CAF2466033D5DDBDE038BC56788F88A52BF3F7D38DA36FCBA2EEF26D2C3FC838FAF0D951DD93EC0A2D09CFA66D2C82DEE14D9A8337AD55F5B1D9BD7DA6B42642 ND
-/X56 144 RD 24ECBD053EB83C360EF524A700354E6034E234FDF14FC7992C18436DD70EEB52F346ED424ABE692AC8D3CB40488818C9D344D680250EA1348B846B64D024FBE276946E4875310534EED93EFFCB99EC8BCB0E64C7BD8B3CA58F73E99A1A0F1F18947D2E97E0E74AC6E47667771463D399D255AF57AA1CBD5CE73AEA82
-02BF5B5D104B29EF494DBF2B40DFE053A9C57BE2 ND
-end
-end
-put
-put
-dup /FontName get exch definefont pop
-%%EndResource
-
-%%BeginResource: font Arial1-1
-14 dict begin
-/FontName /Arial1-1 def
-/FontInfo 10 dict dup begin
-/FullName (Arial1-1) def
-/FamilyName (Arial1-1) def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/StrikeoutPosition 300 def
-/StrikeoutThickness 25 def
-/Weight (Medium) def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end def
-/_glyph (X ) def
-/gx
-{
- 1 exch{
- dup 16 ( ) cvrs _glyph exch 1 exch putinterval 1 index exch
- _glyph cvn put
- }for
-}def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] def
-/Encoding 256 array
-0 1 255 { 1 index exch /.notdef put } for
-30 255 gx
-def
-/FontBBox [ 0 0 0 0 ] def
-currentdict end
-dup /Private 8 dict dup begin
-/RD{string currentfile exch readhexstring pop}def
-/ND{def}def
-/NP{put}def
-/BlueValues[ -250 0 2200 2200] def
-/MinFeature { 16 16} def
-/password 5839 def
-/Subrs 43 array
-ND
-2 index /CharStrings 256 dict dup begin
-/.notdef 8 RD 24ECBD053ECAD3D7 ND
-/X31 49 RD 24ECBD053EB9E88A56B687FD8EBF1510130CF8CCE89FFC283BE19F9C7AC27D4304E7D8D0F79221E3FBBD6DF384CC0C6D92 ND
-/X32 147 RD 24ECBD053EB9E88A562552C7B880FD7A97DBE5D605BD014C1861EE0EA6034C603D3D69533C8EC94D544C7A0C61E5F7B6FE13CED4A2B151B961FB252DD37FC0AB13F6CBEFF3AE4D346FBFA1E18C434B6FDE33180196308390B0A2B04A87A4E4898FBD2ECC8D369FB3C9481C920A27B6CE06934B867AED148638A05C72
-D43F5F0AF7E8532CADCB8D7C85E34C9501213B38895616 ND
-/X33 203 RD 24ECBD053EB9E88A1FA5FDF500F27B039D4217A4C5069ED3978BDF73FA68977A5547975478696AB2327C7D57DFE83916C110DB0F9FD6B4731220CE173B856F294E99544F8B58EA96E332D153208829A717CB471D495928739D633A8823DCB280FEF02287D26C39A66BB220CCF0DE6B1573274E2FF88A5F5AA8883C96
-D461166D6119DF30018492CF065CC1BD0A8ADB3E4012B74A5BBE38E2BABBC73C53A90B2960E5A8DB93867EA38375AF1823C46B4C134FA639D461CFA5BE5DC28891D0786493C634237E6882620AC76C ND
-/X34 61 RD 24ECBD053EB9E88A59DC12A70C7AD26B0E16E5740E9AB6E5F32C284BDA5B01CFD0A414436B837BBBB4B496175EA8E4965E724A6D82F308BE5A61940148 ND
-/X35 139 RD 24ECBD053EB9E88A198CA489BDE564B6D13358D468C5110641FD9445F3D865D9011BEA367F7DB3D88F3C5D39C3A1B8684BF19B39B1BEA07688826984A35E28983CBCDB4402430A1F0D3D167973273D11D51EE93E144E357FEF06BD75B212A575646BC0E89702077EE92393BEBF8768319F46C19452DA6B6E71B32D45
-FD843CED2F6939822D1B543B6C187C ND
-/X42 217 RD 24ECBD053EB83C362361519EBCAEEE1286C41C243C825763DD9030837403A5FF29BB4D4E1961AD2205E51E9727E2B07042B45A0EA63456130F3855502384CECDBB607CACC2AB00BCD161A171B9C78CD2F72927ABBFCEAD60B39184E52F6AE5366ADCB390FE9C7C277EEC332D7F3966EDC5A5B9B90114DE2BA551B3E5
-DCA55914194F929BA485749B0505810985BC6F12C0354D01694BB6F77579F29ADA38C3752B3C5E5BBF2404D9D5FA36BB709C8BDA2E5C2F0EF7F31D8AC9207424DAD9D2CEED5729175424018D41C446D6E12EBC506082584C855207AFED ND
-/X44 149 RD 24ECBD053EB83C362361519EBC80D67A0CFE0EFB8A0D8C8FE8EE3A4471C8FF4463B0D448C01A084E1E1C8833322D400EACDC377AC12F69825B7CA522AA5FC960471B09378856E50C5535FDE742AA34F43C2B1B70A3E080776C0C6DBF23908D238E28C686287E62E830488DFBC4C78B8B412312987327435AAFD1F421
-E2F745AEFC66E49829F8D9C215FCB2896C9B924771B8AC59C1 ND
-/X49 24 RD 24ECBD053EB6173D1E13FA0F09D52C725387A8736152D3BE ND
-/X4F 152 RD 24ECBD053EB8C4E830460C7BF3D2BA21EB94CC4A01CEE0B9C9E7F53502B20AA807DC85F870DB26D2A37D4956D015F5C6F7A4D7DFE1C77925E5F4EFBA3C8E2B951D3921217D28B8300C792F5FF0BA6F7563FD20DD909AA1AF9848229863B5976B7750157E4CB5C308175FC51BDD69AE0B1487E21CF6E91F86D02870F2
-CC61BFDA5335424BB0E84F7B3B0FAB2DB3DB04BBBF45B0715E3B7FDD ND
-/X52 163 RD 24ECBD053EB83C36238E8361F7E1EFB77C988CA18F2A9FA95ED8E11A469B47308F3BB6A6DBBCF896A23D75E3471AD866B50B1483C978DED5DAF188156993621EB438294D646F89C837315576DAA5345CAC519FFD51B2373C27F4643581EB12AA98F598C8A8EBC588933D55B45B16AC3B6AAB6AD9B5F6D3AAEBC4BBEC
-716279546D753055FA942ED244939CA5C6DD2CF38529584161370A95C4B34251604A306C2F5AF4 ND
-/X61 241 RD 24ECBD053EB9E88A5955DE9AA0A0B65DFF5F9652B9BB2BB6670A705D350D8C41549E566740D8B8E90DA4E31FF8952D5FFD3FDD512D6676B64C554947D47BBE9C977599CC5FEDD5C211358772D64CF61AD5B0C00EAC3EC139E875987A45F2C8CD5C896F318D55D8523A040B49A0CC073F1214EEFA120D87C179600891
-FF1910326E974290A0F62CA6F21E3D79A7E23ECAA1D41C8D1031AD48ED87D70608620EEC35580899148408D848DD0B279F8C76BD3B6EB99383EC27EB6C4FCE1098266DA4D0B680EF835CBC31BF047FF996F45CDC5B6D655B705E9E3B3537DB82E51B72D8087B8A79F3E84DFF3362647E47C44166AE ND
-/X65 144 RD 24ECBD053EB9E88A56A3C8C2A68E5033B043C1744B2B85CAE9379D11DF364FF7964D3AEEDB5814F5E546627ADCC290115A6FFF3F15633103BC0E89EF320F50D98CB8DA2AD965DE8E07C40A4E759EBCE6B1FCD7683F6577817150F8049E83AC717160FCD14D1DAF3977709251CF201397F33F16522606B7FAE31F0732
-D18B7658677DD746432870FBA6F3CCA5D8AFB9C0 ND
-/X66 93 RD 24ECBD053EB65CD9AD3129458B34B5A9F99990DA3CE1B7881E9686F00820ADEFB9185E8386C606C36BA718FAF23BC9653A1EC6323F1678A22F348079BD1CBC247E59F24DE2C54A5F5AB14F9250A9740EF94DE24E816E2A7E7F3278DA43 ND
-/X69 42 RD 24ECBD053EB6173D0289A48A84DB3F27BAF86BF890E5EE0823C4D0D5BFB9E1877BA6AB63807606898E09 ND
-/X6C 24 RD 24ECBD053EB6173D02672229C50C7EAF11C89C193CA8A27F ND
-/X6E 113 RD 24ECBD053EB9DF48F0539478774786C45BA0A5EA5CF4DE26B689D0E24DA1781D78E05A1213731B40B300D4D27B48341BFFAC34BB54B8C97CE271FADB8EBBA24A5FC9796AE859E6FF0F1AF19B2721818136B262353EA868B3ABB784C5B4DF385B1BFBF9BD525DC739AA5FE54289DDDA7961 ND
-/X74 110 RD 24ECBD053EB65CD9CD5FEFD5A4FCC9E1D1F74F94142C88E6E63A41489495F99B03D9B0E62250ED2C8FA20292A8D59F7A6556C090E02AF3C73003D85BDC77C981E670171DF0E16F29BE6CD698B4B55F61EA6AAA17A6F496268F2BC5DFE999BADC15DB4147DC85A1DC2CB142B3CF52 ND
-/X75 113 RD 24ECBD053EB9DF48F0D4913E6A64CBE58632EC75814B11743FD2E46C0B4541B2EBA191551138DFF94F29B113AAA6D789D92AE73F2758582F50C8F61B35F3057EFF24E13FC26299D0D33AD44765B291A2A60AD307774DD6FBA1C265A27F361DCE1CCF6F3D620BF45B4463CB17B4115E97F4 ND
-end
-end
-put
-put
-dup /FontName get exch definefont pop
-%%EndResource
-
-/Arial1-3 /Arial1-1 copyfont begin /FontMatrix FontMatrix [1 0 .2588 1 0 0] matrix concatmatrix def currentdict end definefont pop
-%%BeginResource: font Arial1
-14 dict begin
-/FontName /Arial1 def
-/FontInfo 10 dict dup begin
-/FullName (Arial1) def
-/FamilyName (Arial1) def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/StrikeoutPosition 300 def
-/StrikeoutThickness 25 def
-/Weight (Medium) def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end def
-/_glyph (X ) def
-/gx
-{
- 1 exch{
- dup 16 ( ) cvrs _glyph exch 1 exch putinterval 1 index exch
- _glyph cvn put
- }for
-}def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] def
-/Encoding 256 array
-0 1 255 { 1 index exch /.notdef put } for
-30 255 gx
-def
-/FontBBox [ 0 0 0 0 ] def
-currentdict end
-dup /Private 8 dict dup begin
-/RD{string currentfile exch readhexstring pop}def
-/ND{def}def
-/NP{put}def
-/BlueValues[ -250 0 2200 2200] def
-/MinFeature { 16 16} def
-/password 5839 def
-/Subrs 43 array
-ND
-2 index /CharStrings 256 dict dup begin
-/.notdef 8 RD 24ECBD053ECAD3D7 ND
-/X20 10 RD 24ECBD053EB6173DD80E ND
-/X28 78 RD 24ECBD053EB65CD9CDE874A7F38B4A781E7BDF63FFF2EBEBCB6221F130F6FF143AEC5FE83962C7B17A6D73C4DD71A967907650498833EC73D646FABFAC0D375757024138DD026197664EC00805D1 ND
-/X29 80 RD 24ECBD053EB65CD9CD86726E6BEBBCCB42E0F15081D05B859D7B51CA3E2C21ED91C7320907C85E4807405A42026A12D498A3C0C1961B64C308069C1F531FBA6C6C9740F53A32249E696D23F9458FD4CC ND
-/X2E 20 RD 24ECBD053EB6173D373802B30AFE214CD0757862 ND
-/X2F 26 RD 24ECBD053EB6173DAE26C78E57E2B3D4EF1319782DB818F16392 ND
-/X30 167 RD 24ECBD053EB9E88A1BEF04DD76C65F9749F66851D8FAE5FCB5950992663239BD1FC0DEB1CEC611A212B83B08967A831E3E3EB3606AF2CF6FC70A2DC696B44BCF28989BE2337A230C38A86C0BD14EE3B65BDA8142BD60D02ADA557B0DA9948E01E9ED50D010014EF8CFAC1EFE62B14928D192B609E17164C883E3686D
-BFBB800CF745B41A5503D9F807F3630268F00B1AC8CF5552B5CC27A043362EC5B26A048CB5835E004D0815 ND
-/X31 53 RD 24ECBD053EB9E88A56A329F78E9AE27980C4899C504D886A5A058AD599FECE94FCD87DC0E3736CDC3AF4A7ADF878DF8254220EF2FB ND
-/X39 230 RD 24ECBD053EB9E88A6C9E464F95DE6D18000A0166EFC0B9F7EF6F362C66D3D97CC81056F6E96D4EB52D7EC25EE8B678C84AD80F3A46CCBB47FBAD7A469604634A8670C9BA024FA1E2F98EDBD63DE19892FE17572DEE745135D5CE6EB2E4614BBBC4D83B1C27CC77281AE87F2A7EB0B7333812804F994284E0EF1CB3AA
-54AB29C90414E46884954BCA7ADE9DD642E7B12A417CD7C03A6A99E551F87950DF4967BA0C852B8A98F36050A725850C77C3B9C0E50BF9AA0C9B0D3B3EE82EFA8671A7A7386257324EEA5992AD2D1A95251658FAF25AEE3E4DEA8A1092ACEE918DDF077FB57C37C77370 ND
-/X3A 34 RD 24ECBD053EB6173D343A8D5DB088CD681C5F0C141072982859A0101E1618055BB19B ND
-/X41 71 RD 24ECBD053EB8753CA64BD936744BE88AD6C79BBB010B98ACB09FC652ACE153E21F1F0A4E91D50D2AB5E920D378858E3CF69D6A8B4F7F43D50EB778C8104ED4968E4B05E9EE8145 ND
-/X44 146 RD 24ECBD053EB83C362F50400EDD3F07BFFCCEAA6FB6F4007776F79161EC0A78EBFF29A98D6160CB7A628E1F08A767E799C3D9F109EE1045D8369FC0BEE7A2BFEE434418B62232FCAF63BC15BBD2B95F18A0211EA2AAC84C1F3AA1A252012DC6EC639E2930D4292DA4A3303EDD4BB244D945D42A94173268EAAC02F9E8
-284CC203BA011C30B48115F3F9D9171AACF0834305E2 ND
-/X49 22 RD 24ECBD053EB6173D39DCA636E0178932CFA3ABC7B0E9 ND
-/X4E 42 RD 24ECBD053EB83C36203B440ED0FBB280B971B53B160C5894F2A7D80E5E8B027572964CD4D23005A5A4F2 ND
-/X4F 164 RD 24ECBD053EB8C4E83DDAD8528B86E07E0D4FB7F50DC8EE9258D4B15DE6C0D478D9D7EB0115E53A91282EE8040AAB41F39F4197C46438F5074D0AC45C6C0C77FCD89B82D1EC34254D848A4DD7681577EFF938C212EC03F206CF765EEC5D1B693A0BBF12263D58032D58A2E7EBD1BABC4DA8B33014AB0BD16CA300B8BA
-9B27CA968CDDA57B556F118B5FBA2EA29B455F76EA8D32A84077D3FAB7B775615D4F38288F7C71D0 ND
-/X50 117 RD 24ECBD053EB8753CF7BBA03E65A3402D3A85D646DC6D715914CB700A197A0E3F0389F9BB271B61458B6859E36925ECAB51E09D8744E5D65F23CD33CBF3352650B55BEDAA2CD3B3ED0CCE3361EEF3A8FC88CDA028F33BDB72619817833EB3501EB938FCD17981E3B86D416E8EE5A02E349C88FA5226 ND
-/X52 164 RD 24ECBD053EB83C362DBFFCE0EEB3471D031DD918084C741E24FA3D81E3A58FEEF4055EF2B998F39A871B8265AED60143E2A851701054EB0C7C5F762EE77B5B74DBB86F6D9DD014A0A309569F91C5BE1CB61895B67E7B2D4B1B335BDF483646153B4253EEEF717CEBBAE67E6F28BC28534A2937A11A8D31635DC2C810
-604844FBD753DDA4A4A0E58167C2D7E76C2C7AE12087EF422662C034BA1A2E54AB538E7E0BE9B1C7 ND
-/X53 253 RD 24ECBD053EB8753C9681691D57FC64CA8F0A762D55CA04AFF8371876336FEEAA8D403EDDCFD4FB62384D5EA33FE7FECD2010E28E345C9B288FADD7A118BB1395AFED9E8016D5EFC47C51940A913ECC6D51C828140CCE7DF57AECFE8E83A7B8FDD60405D1FD4AF910BBF55538FB38C86BA2F25B8C4715B757E04C6F8B
-1E5DFCE6FBB8687124D572FF3817290D6E448C528391D88F14F18B33EECBE0837018F7C6AC88AF169AFFFB76D342E8B46DB6054FDB96CFF4A7CFED7B2F68F24F4E50CBAFBBB11D114CC56FD8CC494E91D651592AF87EB984FF0ABB3E4AFEE8B5B10274780C42DEA060C33D99AAE7C1D624B71A0837802FBE283DCFEEAB
-B27586D1 ND
-/X5F 24 RD 24ECBD053EB9E88AD253D3EAE0459F3817517DFD606D85EE ND
-/X61 263 RD 24ECBD053EB9E88A56826F5B49B0599111096F51CB6C2CBFE667712A5F3D110FABDE7AEEDFBBE4A93D2BDF99FA1011AD9284007E329FE01AF3596935CB0D3FBC91BE6796B2A9F7F16522E8A0AA83C67F14BE6E36FB78901F566A9899BB1AD84562CEDD31981803CF83502843E5B3F99339ABD21EA170A28049F9CB87
-22EE4740F00920AF319872F16BE70B64988AD280CD06F9D3C5B2FFD51623987582A340E702569C74C74B1406E5EA9EAB9262E385BCE7F49C61E39E4F1F9AFC1BE0BB3F0F5B9E74CB03F12E85D68A27D9D6172A791D5333CE6B5C778B12345252F729DFA3B305416659BB56930A5137B14DC7DD47C71DE2612D76FCD305
-F958A2412FF9F3FC9B1732208BF3 ND
-/X62 144 RD 24ECBD053EB9E88A593045882424D8E63A815FDA8DB00B2B24FA6D9604BB682D953C77C8899F1161DA9D681707E6D6B6D59E92C76A41110104DD20598EC4664A1978D3DEE29F5C23A92F65B46964EEC234926ECFD9B2345C7F11A74EC2C56DE495BA4D789DDC536F231D65E3C09F12822ED8603261A8F28841E08095
-9C2AE107F11CDAA695E5D69AF5BF858633B81E79 ND
-/X63 142 RD 24ECBD053EB9A075A9F2BCB69998874641BA3A233675A8BF9DFC48C3B75D1C55C5419F99904AC748AF1DA09E1AD44D21B5A4E0B0B361DA2CCEFA87FA70263A69939B9293FD51ECD883A3667C6209DACB22C4BA332E5F41AD43619F68E1BB5D24705E4B2B4049850E99286C3D861C2ED879B78C47D704A3C28F3E7AB2
-81D022D20B55C7045060335B2BCF2ACDE01D ND
-/X65 153 RD 24ECBD053EB9E88A5693AF17E5A520705FE586FB75BEB091B7F145A1BB26E544ADD999DA9C4CAA1F1B36520932E4C800E6EEF1EDB04AB101B30EB7B9311279AE19A29B7FB9137B4D484B74A3FFE861D3A56D1EF06444F30D70FE59673D32ACFDC5AE48569E731E4C6D8DF41CC74177877120EE06F134DAE30FA66E62
-C7B6CB1D93FF3F855FBA0EDA6AB6C716F6373414DC836C9F8DEBD9BAEE ND
-/X66 88 RD 24ECBD053EB6173D33E26F78630231A9FD7280B4AF739B52782F240ED3384F449ABFE9B1D2CAFEB339FD57627BA94AFC57F08C63C8998605D253AB6185D51E7860E40CF5F2C40D05B11B764F5790C35BBAEC891BA11394D9 ND
-/X67 207 RD 24ECBD053EB9E88A13C5553D99F2849FEADA7C0DE5895CA89E87370D96C980D7A8BD3B982B4AAD7B68491434FE9133FAA18A7FF06A4C4461419E64A26B1A77AB27C376C9841C03A883E717809FCD4ABF352A62F3049AC814C6450341ED5E71F26C55261D2CBDA0A49BF719BE2F177A19B104A7CA793328C8646B4CB0
-485374D1E84DCF75AB0703156EC4E7EC393B06277D92752FAF4797E886FAF9C43C3D72690D328EB56ACA4E6D23DF9110A17E6A5EF8F64809728DD87AD68062C64A476F827A8A2EFC65CE8AD3B8996ECF55542B ND
-/X69 36 RD 24ECBD053EB6CF82BD8317C7C03794B79BD6DB6A891C17F5F2C2E94489F741DC5108FEC1 ND
-/X6A 83 RD 24ECBD053EB6CF82BC55C3923B211F2534EC232F9FA32596AA1EB6219A0CAB772FC6604332BE64B3D0218F13BD5154F363241859C337417AC81DAF1645FF44E3600EDAC066C0F6F95AB5F7E6AE1194D2523BBF ND
-/X6C 22 RD 24ECBD053EB6CF82BBC8A00FD5B3C3BC5CD8FF89782B ND
-/X6D 159 RD 24ECBD053EB88F259F152670030CE9285C9DCCF687F4A9BB8016395C22F10139A2D1364DFBFE5A44CCCE173831E2FBDC007B2BF99461DA30B8B15B086AB111CE33A9E29D40D8B71DB25E3714329E2C7C29DD26D3B4AACE7B15D35F190D0BABFA7462CA01434A1F09F15FF1C5AEB2ED76547CBBA46ECC7E2C659209AE
-84A649BB37844C9F2F194329F0BA0B05D2338AFE4778648A7F4E708A26642C9EFC4DBE ND
-/X6E 102 RD 24ECBD053EB9E88A6331D2C7297CD097F631B7BF9575A433833FB0038EC6E5B15DCC497CC74B92CE032BEF587A61DB1733DDF08E4C3F6D32A9E7B6F8932791A8C2611945247C92EE373B1A533C34958B09B59098C7464047A20A9F809DB3DA276EBDCEB83A42 ND
-/X6F 141 RD 24ECBD053EB9E88A020752C5C98FDCBBAB9EF90A06696B41A7625CDF93F224596EEF9E92BE93E61DF3DAFF86DD7B8E4BF1861D44238515248D96118073A63C2671AB30499A333B8314A444B66C9D6924B15AAA54ADC848D8A24BD851DB816D5D6643FF372597F1A9529A5106EB5CC22D7EF02076C5E6030B0A680FE2
-A822CF5500EE68583614AA673D96D603E5 ND
-/X70 159 RD 24ECBD053EB9E88A63DC56919C2A7C393E4E31C69A482C1C06E88174525FD085735A5F3CEEB5065143B85C379D2D9DBE6508A1D22F5EB91C8B9C9C704D70D197FF0BCF00BD01AC6BC0D20B12C61D1860FA449B2503BA550BBB6E9CC5BF6ECC5772F2B1A93912DC9A2C6F8CCF87DE2212A4B196D8632BB34CEF411E94
-BF7641862399513CF976EDC773121DF431DF18A23FCD214936A25F216C618CE8AF964F ND
-/X72 76 RD 24ECBD053EB65CD9F6B0DA68B6CDEC19A39DB1647C794B2A552609141A5AE4D4C737B64A93E6D0704F0AE135A3F68C6F08AF5B9D3322DEC636077489ED0E06BBB75028F4827739BC24563847 ND
-/X73 239 RD 24ECBD053EB9A075FB0D363C5DAD5072141948E7E1754E0FA3AC319C5D112D34313856F8BB6868A3DAF2E607F4852D6A068D2F18988BDD35DF74C9670E679E0CBDA898B51F9637EDC00B1E2B3ABA53F21E13B46676BCFD4C35B8F31275833367A190FF9C05256035667E88E27A5FE706D86790585FE88405E89D71B6
-0383ACB267E7E27BCA33BBC8FB340BE8A976C6F2A6451ACCBF24BFEED8A7C6D46AC5AC8FED699342ADAD075F61D9747255E7B8DA0815F167A768C00630A03A443D79B647191A56139DD6BAF7E5F1B201C42D3AA4E6BE2FC3D3230B184464EAC1D2729E18E0886728BF4126E78E65E9614830D4 ND
-/X74 102 RD 24ECBD053EB6173D26ED46B8FA108E1533537E23559064B8DD513D9EF66DF60B8B452B065536F32266060FF25E41DC46A6779AE37613D2AA0A33C0C33484C74444B15F681F94F0F1C03863C711E3F48F06CECF2F2871C2C179A237A38EC95303826C401249F2 ND
-/X75 110 RD 24ECBD053EB9E88A5682B5185232B5EF6CCD16B2077490550A465721BE2916F30813C685A1B48F49484D13136E8DB257956E21B052CD5EDA3389854F70D0476C9E129A81FF84F4611FB9A095F84C374D6CB730B2B7A6C42872CC67476D3DE34C5FCCEED35B0308E299F6DD53DDAD ND
-/X76 53 RD 24ECBD053EB9A075A6146FCBBF0438B8CCE14C92BBD9F8854D3F46F8D1DEBD8FFF806C3248587C4448EED1BB3F5DF8F73DF68FC4DC ND
-end
-end
-put
-put
-dup /FontName get exch definefont pop
-%%EndResource
-
-/Deneba_CanvasCustomColors where{/Deneba_CanvasCustomColors get/initialize get exec}if
-/Deneba_CanvasGraphics where{/Deneba_CanvasGraphics get/initialize get exec}if
-_encodArr 0
-[
-39/quotesingle 96/grave
-128/bullet/bullet/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/bullet/bullet/bullet
-/bullet/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark
-/scaron
-/guilsinglright/oe/bullet/bullet/Ydieresis
-/bullet/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron
-/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
-/Agrave/Aacute/Acircumflex/Atilde/Adieresis
-/Aring
-/AE/Ccedilla/Egrave/Eacute/Egrave/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
-/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
-/agrave/aacute/acircumflex/atilde/adieresis
-/aring
-/ae/ccedilla/egrave/eacute/ecircumflex/edieresis
-/igrave
-/iacute
-/icircumflex
-/idieresis
-/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis
-] put
-mark /___FN4-1 /TimesNewRoman4-1 -1 rf
-mark /___FN1-1 /Arial1-1 -1 rf
-mark /___FN1-3 /Arial1-3 -1 rf
-mark /___FN1 /Arial1 -1 rf
-1 id
-1 fd
-0 fm
-%%BeginSetup
-userdict /canvassave save put
-%%EndSetup
-1. 1. sp
-0. pg
-1. fg
-cd
-F setoverprint
-0 fm
-0 lj
-2 lc
-0 592 translate 1 -1 scale%%BeginObject: RoundRect
-0. pg
-1 lc
-1 lj
-0.39843 0.60156 0.80078 f3
-38.5 342.5 589.5 559. 12.5 12.5 rr
-db
-%%EndObject
-%%BeginObject: RoundRect
-1. 1. 0.80078 f3
-277.5 363.5 560. 440. 12.5 12.5 rr
-db
-%%EndObject
-%%BeginObject: Cube
-0.91992 fg
-%%NumPoints: 4
-45.43176 32.52929 mt
-293. lh
-103.04675 lv
-45.43176 32.52929 li
-cp
-df
-%%NumPoints: 4
-28. 45.4812 mt
-275.56408 lh
-116. lv
-28. lh
-df
-%%NumPoints: 4
-45.43176 32.52929 mt
-28. 45.4812 li
-116. lv
-45.43176 103.04675 li
-df
-%%NumPoints: 4
-293. 32.52929 mt
-275.56408 45.4812 li
-116. lv
-293. 103.04675 li
-df
-%%NumPoints: 4
-45.43176 32.52929 mt
-293. lh
-275.56408 45.4812 li
-28. lh
-df
-%%NumPoints: 4
-45.43176 103.04675 mt
-293. lh
-275.56408 116. li
-28. lh
-df
-45.43176 32.52929 mt
-28. 45.4812 li
-ds
-275.56408 116. mt
-293. 103.04675 li
-ds
-293. 103.04675 mt
-32.52929 lv
-ds
-293. 32.52929 mt
-45.43176 lh
-ds
-28. 45.4812 mt
-275.56408 lh
-ds
-275.56408 45.4812 mt
-116. lv
-ds
-275.56408 116. mt
-28. lh
-ds
-28. 116. mt
-45.4812 lv
-ds
-275.56408 45.4812 mt
-293. 32.52929 li
-ds
-%%EndObject
-%%BeginObject: Rectangle
-2 lc
-0 lj
-1. fg
-28.00012 44. 275. 117. rp
-db
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-1 lc
-1 lj
-445. 292. mt
-tb
-72 fts
-/___FN4-1 1.05505 0.91259 mf
-0. 1. ta
-446.125 292. mt
-(CLIENT) 6 0 293. tf
-445. 292. mt
-(CLIENT) 6 0 293. tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Line
-0. pg
-2. 2. sp
-%%NumPoints: 4
-82. 190. mt
-87.20886 175.68701 li
-76.79101 lh
-82. 190. li
-cp
-dp
-82. 122. mt
-175.68701 lv
-ds
-%%EndObject
-%%BeginObject: Group
-%%BeginObject: RoundRect
-1. 1. sp
-0.80078 1. 1. f3
-41. 190.42187 154.99987 251.578 12.5 12.5 rr
-db
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-189.125 814. 594.875 934. rp
-df
-0. pg
-1. 1. sp
-309. 866. mt
-tb
-72 fts
-/___FN4-1 1.05517 0.91271 mf
-0. 0. ta
-310.125 866. mt
-(ORB) 3 0 163. tf
-309. 866. mt
-(ORB) 3 0 163. tf
-te
-255. 922.69787 mt
-tb
-52 fts
-/___FN4-1 1.05517 0.91271 mf
-255.8125 922.69787 mt
-(INTERFACE) 9 0 328. tf
-255. 922.69787 mt
-(INTERFACE) 9 0 328. tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%EndGroup
-%%BeginObject: RoundRect
-0. pg
-1. 1. sp
-1. 1. 0.80078 f3
-55. 362. 250. 527. 12.5 12.5 rr
-db
-%%EndObject
-%%BeginObject: Line
-2. 2. sp
-%%NumPoints: 4
-117. 346. mt
-122.20886 331.68701 li
-111.79101 lh
-117. 346. li
-cp
-dp
-117. 254. mt
-331.68701 lv
-ds
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-253. 1568. mt
-tb
-72 fts
-/___FN1-3 sf
-4. 0. ta
-254.125 1568. mt
-(ORBInitRef) 10 0 384. tf
-253. 1568. mt
-(ORBInitRef) 10 0 384. tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-1169. 1568. mt
-tb
-72 fts
-/___FN1-3 sf
-8. 0. ta
-1170.125 1568. mt
-(ORBDefaultInitRef) 17 0 628. tf
-1169. 1568. mt
-(ORBDefaultInitRef) 17 0 628. tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: RoundRect
-0. pg
-1. 1. sp
-1. fg
-83. 406. 232. 514. 12.5 12.5 rr
-db
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-385. 1716. mt
-tb
-72 fts
-/___FN1 sf
-0. -0.46667 ta
-(ObjectID : IOR) 16 4 499.53344 tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Oval
-0. pg
-1. 1. sp
-1. 0. 0. f3
-3. 3. 125. 463. ep
-db
-%%EndObject
-%%BeginObject: Oval
-3. 3. 125. 492. ep
-db
-%%EndObject
-%%BeginObject: Oval
-3. 3. 205. 492. ep
-db
-%%EndObject
-%%BeginObject: Oval
-3. 3. 205. 443. ep
-db
-%%EndObject
-%%BeginObject: Oval
-1. 0. 0.19921 f3
-3. 3. 125. 445. ep
-db
-%%EndObject
-%%BeginObject: Oval
-1. 0. 0. f3
-3. 3. 205. 463. ep
-db
-%%EndObject
-%%BeginObject: Line
-3. 3. sp
-178. 444. mt
-501. lv
-ds
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-1. pg
-1. 1. sp
-1381. 2010. mt
-tb
-96 fts
-/___FN4-1 1.05517 1. mf
-0. 0. ta
-1382.5 2010. mt
-(ORB CORE) 9 2 556. tf
-1381. 2010. mt
-(ORB CORE) 9 2 556. tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: RoundRect
-0. pg
-1. 1. sp
-1. fg
-301.5 402. 553. 432. 12.5 12.5 rr
-db
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-1261. 1696. mt
-tb
-72 fts
-/___FN1 sf
-0. -0.11999 ta
-(corbaloc::merengue:99999) 24 0 883.88012 tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Group
-%%BeginObject: Polygon
-0. pg
-0.01953 0.01953 sp
-0. fg
-%%NumPoints: 5
-505.15539 95.68762 mt
-571.55468 lh
-99.3507 lv
-505.15539 lh
-95.68762 lv
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-1. fg
-%%NumPoints: 30
-482.80908 99.03442 mt
-598.17089 lh
-598.52954 99.06823 li
-598.87133 99.18676 li
-599.34106 99.48327 li
-599.68273 99.87304 li
-599.92199 100.33056 li
-599.98168 100.69482 li
-599.9989 132.93872 li
-599.94763 133.32836 li
-599.77673 133.82824 li
-599.46069 134.23486 li
-599.00793 134.54833 li
-598.52954 134.73474 li
-598.17089 134.76013 li
-482.80908 lh
-482.4674 134.73474 li
-482.09155 134.62463 li
-481.66442 134.37048 li
-481.28857 133.98071 li
-481.05798 133.50634 li
-480.98974 133.14196 li
-100.85583 lv
-480.99816 100.5 li
-481.12634 100.15258 li
-481.4082 99.70361 li
-481.80114 99.3562 li
-482.27099 99.11901 li
-482.61267 99.05126 li
-482.80908 99.03442 li
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-%%NumPoints: 33
-499.98718 35.25036 mt
-575.24865 lh
-575.65014 35.30957 li
-576.00036 35.47058 li
-576.36767 35.69934 li
-576.85461 36.14831 li
-577.09375 36.52111 li
-577.27307 36.89379 li
-577.38415 37.28356 li
-579.21203 93.39294 li
-579.13525 93.77416 li
-579.04125 94.16381 li
-578.81921 94.52819 li
-578.40917 95.01098 li
-578.05895 95.26513 li
-577.69165 95.46008 li
-577.28161 95.57861 li
-498.10803 lh
-497.67236 95.53625 li
-497.24523 95.35839 li
-496.89501 95.10424 li
-496.42529 94.62133 li
-496.19458 94.25708 li
-496.05798 93.88427 li
-495.95544 93.39294 li
-497.8175 37.43603 li
-497.92004 37.08032 li
-498.22753 36.56347 li
-498.50085 36.19067 li
-498.82543 35.82641 li
-499.1842 35.54687 li
-499.5686 35.3435 li
-499.98718 35.25036 li
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-%%NumPoints: 30
-496.14343 106.89721 mt
-585.69067 lh
-586.1947 106.94799 li
-586.68151 107.05822 li
-587.16845 107.20214 li
-587.62976 107.34619 li
-588.04833 107.52416 li
-588.50964 107.76135 li
-597.25671 131.54113 li
-596.91503 131.74438 li
-596.41967 131.99011 li
-595.96691 132.15954 li
-595.5227 132.30358 li
-594.97607 132.43066 li
-594.40368 132.43908 li
-487.46447 lh
-486.84094 132.43066 li
-486.32849 132.30358 li
-485.84155 132.15954 li
-485.38879 131.99011 li
-485.03857 131.83764 li
-484.69689 131.6173 li
-493.27319 107.80371 li
-493.68322 107.60876 li
-494.0249 107.44787 li
-494.46057 107.28686 li
-494.92187 107.12597 li
-495.41723 106.99035 li
-495.89562 106.93103 li
-496.14343 106.89721 li
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-0.67187 fg
-%%NumPoints: 19
-486.90917 138.74951 mt
-594.33911 lh
-597.38854 137.57275 li
-597.29455 131.45166 li
-596.96142 131.68017 li
-596.44885 131.92578 li
-596.0133 132.0697 li
-595.54345 132.23046 li
-595.01391 132.34057 li
-594.44152 132.36596 li
-487.49865 lh
-486.90917 132.30676 li
-486.36254 132.17126 li
-485.89282 131.9934 li
-485.45715 131.79028 li
-485.11547 131.57861 li
-484.73962 131.40087 li
-484.65429 137.31872 li
-486.90917 138.74951 li
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-%%NumPoints: 25
-510.14392 43.50292 mt
-565.00097 lh
-565.46215 43.59606 li
-565.88073 43.81628 li
-566.22241 44.16369 li
-566.50427 44.55334 li
-566.63244 44.98547 li
-567.96496 86.64062 li
-567.88818 87.08959 li
-567.69165 87.53857 li
-567.38415 87.91137 li
-566.99975 88.17395 li
-566.52136 88.28405 li
-508.78576 lh
-508.30737 88.2163 li
-507.93151 87.93676 li
-507.58129 87.60632 li
-507.3507 87.19116 li
-507.23107 86.75915 li
-508.62341 45.11254 li
-508.72595 44.71435 li
-508.97363 44.29919 li
-509.3153 43.90954 li
-509.71679 43.62145 li
-510.14392 43.50292 li
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-0. fg
-%%NumPoints: 25
-512.48449 45.03649 mt
-563.31787 lh
-563.75341 45.11279 li
-564.13793 45.35839 li
-564.56494 45.78198 li
-564.73583 46.1632 li
-564.8468 46.53601 li
-566.05126 84.34533 li
-565.98291 84.77746 li
-565.79504 85.15869 li
-565.41918 85.57373 li
-565.05187 85.78564 li
-564.60766 85.84484 li
-511.21166 lh
-510.75048 85.76855 li
-510.40026 85.52294 li
-510.00732 85.07397 li
-509.83642 84.70971 li
-509.78527 84.34533 li
-511.01525 46.53601 li
-511.13488 46.1632 li
-511.35693 45.78198 li
-511.69006 45.42614 li
-512.06591 45.17199 li
-512.48449 45.03649 li
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-0. 1. 1. f3
-%%NumPoints: 5
-512.89453 46.80737 mt
-562.95922 lh
-563.55725 84.32165 li
-511.97204 lh
-512.89453 46.80737 li
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-%%NumPoints: 5
-515.13256 51.04382 mt
-529.50927 lh
-63.84948 lv
-515.13256 lh
-51.04382 lv
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-0. 0. 1. f3
-%%NumPoints: 5
-515.13256 50.98449 mt
-529.50927 lh
-52.70751 lv
-515.13256 lh
-50.98449 lv
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-%%NumPoints: 5
-513.66333 47.55297 mt
-562.23254 lh
-49.47937 lv
-513.66333 lh
-47.55297 lv
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-0. 1. 1. f3
-%%NumPoints: 5
-524.37524 61.61804 mt
-541.82629 lh
-74.61108 lv
-524.37524 lh
-61.61804 lv
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-0. 0. 1. f3
-%%NumPoints: 5
-524.37524 61.86376 mt
-541.82629 lh
-63.67138 lv
-524.37524 lh
-61.86376 lv
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-0. 1. 1. f3
-%%NumPoints: 5
-557.91186 67.91345 mt
-537.64111 lh
-83.37145 lv
-557.91186 lh
-67.91345 lv
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-0. 0. 1. f3
-%%NumPoints: 5
-557.91186 68.06591 mt
-537.64111 lh
-69.79736 lv
-557.91186 lh
-68.06591 lv
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-%%NumPoints: 3
-548.47265 102.07617 mt
-588.3645 lh
-105.16333 lv
-ds
-%%EndObject
-%%BeginObject: Polygon
-0. fg
-%%NumPoints: 5
-494.18725 125.75341 mt
-587.71301 lh
-582.24609 109.21032 li
-499.432 lh
-494.18725 125.75341 li
-cp
-db
-%%EndObject
-%%BeginObject: Polygon
-1. fg
-%%NumPoints: 5
-496.69873 124.83691 mt
-584.29809 lh
-580.17224 110.31176 li
-501.18322 lh
-496.69873 124.83691 li
-cp
-db
-%%EndObject
-%%BeginObject: Line
-500.19238 112.98083 mt
-581.8208 112.97534 li
-ds
-%%EndObject
-%%BeginObject: Line
-583.32458 117.03088 mt
-498.91064 117.02526 li
-ds
-%%EndObject
-%%BeginObject: Line
-497.69812 121.41137 mt
-584.60546 121.40576 li
-ds
-%%EndObject
-%%BeginObject: Line
-501.76416 124.84289 mt
-505.3258 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-506.33422 124.84289 mt
-509.83605 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-510.8872 124.84289 mt
-513.3811 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-515.4486 124.84289 mt
-517.90844 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-519.98449 124.84289 mt
-521.42773 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-524.53747 124.84289 mt
-525.93811 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-529.07336 124.84289 mt
-529.71362 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-533.62634 124.84289 mt
-533.98474 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-538.17932 124.84289 mt
-538.17895 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-542.72375 124.84289 mt
-542.28771 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-547.27673 124.84289 mt
-546.55871 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-551.82971 124.84289 mt
-550.79565 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-556.3656 124.84289 mt
-555.06677 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-560.91857 124.84289 mt
-559.3208 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-565.46289 124.84289 mt
-563.10498 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-570.01586 124.84289 mt
-567.1112 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-574.58593 124.84289 mt
-571.39086 110.30627 li
-ds
-%%EndObject
-%%BeginObject: Line
-579.10473 124.84289 mt
-575.87548 110.30627 li
-ds
-%%EndObject
-%%EndGroup
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-1037. 764. mt
-tb
-96 fts
-/___FN4-1 1.05505 0.91259 mf
-0. -8.25 ta
-1038.5 764. mt
-(MULTICAST) 9 0 523.75 tf
-1037. 764. mt
-(MULTICAST) 9 0 523.75 tf
-te
-1247. 852. mt
-tb
-72 fts
-/___FN4-1 1.05505 0.91259 mf
-4. 0. ta
-1248.125 852. mt
-(TO) 2 0 108. tf
-1247. 852. mt
-(TO) 2 0 108. tf
-te
-1131. 940. mt
-tb
-96 fts
-/___FN4-1 1.05505 0.91259 mf
-1132.5 940. mt
-(S) ts
-1131. 940. mt
-(S) ts
-te
-1185.83325 940. mt
-tb
-72 fts
-/___FN4-1 1.05505 0.91259 mf
-0. -0.16674 ta
-1186.95825 940. mt
-(ERVICE) 6 0 289. tf
-1185.83325 940. mt
-(ERVICE) 6 0 289. tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Line
-0. pg
-5. 5. sp
-199.99218 159.99218 24. 24. 244. 216. wd
-dp
-170. 216. mt
-220. lh
-ds
-%%EndObject
-%%BeginObject: Line
-2. 2. sp
-154.99609 114.99609 15. 15. 470. 105. wd
-dp
-334.99609 294.99609 15. 15. 404. 171. wd
-dp
-414.60656 160.39331 mt
-459.39331 115.60656 li
-ds
-%%EndObject
-%%BeginObject: Line
-3. 3. sp
-199.99218 159.99218 18. 18. 500. 198. wd
-dp
-415. 198. mt
-482. lh
-ds
-%%EndObject
-%%BeginObject: Line
-2. 2. sp
-244.99609 204.99609 15. 15. 470. 288. wd
-dp
-403.99987 222. mt
-459.39331 277.39331 li
-ds
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-165. 412. mt
-tb
-72 fts
-/___FN1 sf
-0. -0.07153 ta
-(resolve_initial_references \(\)) 29 1 883.92858 tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Line
-0. pg
-2. 2. sp
-219.36328 179.36328 15. 15. 408. 342. wd
-dp
-152. 252. mt
-393.84899 337.02502 li
-ds
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-2413. 212. mt
-tb
-72 fts
-/___FN1 sf
-0. -1.09094 ta
-(IIOP Agent /) 12 2 378.90917 tf
-te
-2413. 296. mt
-tb
-0. -0.30773 ta
-(Naming Service) 14 1 503.6925 tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Oval
-0. pg
-1. 1. sp
-0. 1. 0.60156 f3
-9. 11.5 61. 153.5 ep
-db
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-229. 636. mt
-tb
-56 fts
-/___FN1-1 sf
-229.875 636. mt
-(1) ts
-229. 636. mt
-(1) ts
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Oval
-0. pg
-1. 1. sp
-9. 11.5 191. 195. ep
-db
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-749. 804. mt
-tb
-56 fts
-/___FN1-1 sf
-749.875 804. mt
-(4) ts
-749. 804. mt
-(4) ts
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Oval
-0. pg
-1. 1. sp
-9. 11.5 243. 300. ep
-db
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-957. 1224. mt
-tb
-56 fts
-/___FN1-1 sf
-957.875 1224. mt
-(3) ts
-957. 1224. mt
-(3) ts
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Oval
-0. pg
-1. 1. sp
-9. 11.5 97. 291. ep
-db
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-373. 1184. mt
-tb
-56 fts
-/___FN1-1 sf
-373.875 1184. mt
-(2) ts
-373. 1184. mt
-(2) ts
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: RoundRect
-0. pg
-3. 3. sp
-1. fg
-596.5 151. 745.5 277. 12.5 12.5 rr
-db
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-2425. 732. mt
-tb
-72 fts
-/___FN1 sf
-0. -0.46667 ta
-(ObjectID : IOR) 16 4 499.53344 tf
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-%%BeginObject: Line
-0. pg
-3. 3. sp
-689. 191.5 mt
-246. lv
-ds
-%%EndObject
-%%BeginObject: Oval
-1. 1. sp
-1. 0. 0.19921 f3
-3. 3. 634. 203. ep
-db
-%%EndObject
-%%BeginObject: Oval
-3. 3. 634. 222. ep
-db
-%%EndObject
-%%BeginObject: Oval
-3. 3. 635. 257. ep
-db
-%%EndObject
-%%BeginObject: Oval
-3. 3. 715. 201. ep
-db
-%%EndObject
-%%BeginObject: Oval
-3. 3. 715. 222. ep
-db
-%%EndObject
-%%BeginObject: Oval
-3. 3. 716. 259. ep
-db
-%%EndObject
-%%BeginObject: Line
-3. 3. sp
-619. 117. mt
-669. lh
-ds
-%%EndObject
-%%BeginObject: Line
-288.20312 248.20312 18. 18. 672. 149. wd
-dp
-671. 117. mt
-671.43774 131.00878 li
-ds
-%%EndObject
-%%BeginObject: Oval
-1. 1. sp
-0. 1. 0.60156 f3
-9. 11.5 693. 113. ep
-db
-%%EndObject
-%%BeginObject: Text
-cd
-gs
- .25 .25 scale
-0. pg
-1. 1. sp
-2757. 472. mt
-tb
-56 fts
-/___FN1-1 sf
-2757.875 472. mt
-(5) ts
-2757. 472. mt
-(5) ts
-te
-gr
-1. 1. sp
-1 lc
-1 lj
-%%EndObject
-userdict /canvassave get restore
-%%Trailer
-/Deneba_CanvasGraphics where{/Deneba_CanvasGraphics get/terminate get exec}if
-/Deneba_CanvasCustomColors where{/Deneba_CanvasCustomColors get/terminate get exec}if
-showpage
-%%Trailer
-%%EOF
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/TAO/examples/Simple/Simple_util.cpp b/TAO/examples/Simple/Simple_util.cpp
index 56ceefb0546..4ecda885ac7 100644
--- a/TAO/examples/Simple/Simple_util.cpp
+++ b/TAO/examples/Simple/Simple_util.cpp
@@ -273,7 +273,7 @@ Client<ServerInterface>::read_ior (ACE_TCHAR *filename)
ACE_TEXT ("open")),
-1);
- ACE_Read_Buffer ior_buffer (f_handle);
+ ACE_Read_Buffer ior_buffer (f_handle, true);
char *data = ior_buffer.read ();
if (data == 0)
diff --git a/TAO/examples/Simple/time/Time_Client_i.cpp b/TAO/examples/Simple/time/Time_Client_i.cpp
index 3702636e5a9..fab114c2385 100644
--- a/TAO/examples/Simple/time/Time_Client_i.cpp
+++ b/TAO/examples/Simple/time/Time_Client_i.cpp
@@ -56,9 +56,6 @@ Time_Client_i::run (const char *name,
if (client_.do_shutdown () == 1)
client_->shutdown ();
-
- CORBA::ORB_var orb = client_.orb ();
- orb->destroy ();
}
catch (const CORBA::Exception& ex)
{
diff --git a/TAO/examples/Simple/time/server.cpp b/TAO/examples/Simple/time/server.cpp
index 7a19abd727f..37d0a64e62c 100644
--- a/TAO/examples/Simple/time/server.cpp
+++ b/TAO/examples/Simple/time/server.cpp
@@ -14,9 +14,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
try
{
- if (server.init ("Time",
- argc,
- argv) == -1)
+ if (server.init ("Time", argc, argv) == -1)
return 1;
else
{
@@ -26,14 +24,14 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
catch (const CORBA::UserException& userex)
{
userex._tao_print_exception ("User Exception in main");
- return -1;
+ return 1;
}
catch (const CORBA::SystemException& sysex)
{
sysex._tao_print_exception ("System Exception in main");
- return -1;
+ return 1;
}
- catch (const ::CORBA::Exception &e)
+ catch (const CORBA::Exception &e)
{
e._tao_print_exception ("CORBA exception in main");
return 1;
diff --git a/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.mpc b/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.mpc
index 06bbc518488..61c0dbcbc1a 100644
--- a/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.mpc
+++ b/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.mpc
@@ -3,4 +3,8 @@
project : orbsvcsexe, install, concurrency_serv, naming, utils, svc_utils {
exename = tao_cosconcurrency
+ InstallData_Files {
+ gendir = .
+ README
+ }
}
diff --git a/TAO/orbsvcs/CosEvent_Service/CosEvent_Service.mpc b/TAO/orbsvcs/CosEvent_Service/CosEvent_Service.mpc
index 3ddfdb0866b..c1d70b797be 100644
--- a/TAO/orbsvcs/CosEvent_Service/CosEvent_Service.mpc
+++ b/TAO/orbsvcs/CosEvent_Service/CosEvent_Service.mpc
@@ -3,4 +3,8 @@
project : orbsvcsexe, install, naming, event_serv, svc_utils, iortable, messaging_optional, portableserver {
exename = tao_cosevent
+ InstallData_Files {
+ gendir = .
+ README
+ }
}
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc b/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc
index 170d77592f2..881141bd54b 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc
+++ b/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc
@@ -120,7 +120,7 @@ project(ImR_Locator_Service) : orbsvcsexe, install_bin, avoids_minimum_corba, av
}
-project(ImR_Activator_Service) : orbsvcsexe, install_bin, acexml, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro, messaging, svc_utils, imr_client {
+project(ImR_Activator_Service) : orbsvcsexe, install, acexml, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro, messaging, svc_utils, imr_client {
exename = tao_imr_activator
after += ImR_Activator ImR_Activator_IDL ImR_Locator_IDL
libs += TAO_ImR_Activator TAO_ImR_Activator_IDL TAO_ImR_Locator_IDL
@@ -133,13 +133,17 @@ project(ImR_Activator_Service) : orbsvcsexe, install_bin, acexml, avoids_minimum
}
-project(tao_imr) : orbsvcsexe, install_bin, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro, portableserver, imr_client {
+project(tao_imr) : orbsvcsexe, install, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro, portableserver, imr_client {
+ install = $(ACE_ROOT)/bin
exename = tao_imr
- install = $(ACE_ROOT)/bin
Source_Files {
tao_imr.cpp
tao_imr_i.cpp
}
idl_files {
}
+ InstallData_Files {
+ gendir = tao-imr
+ README
+ }
}
diff --git a/TAO/orbsvcs/ImplRepo_Service/README.txt b/TAO/orbsvcs/ImplRepo_Service/README
index 30a5c1182b4..b9891ad8a33 100644
--- a/TAO/orbsvcs/ImplRepo_Service/README.txt
+++ b/TAO/orbsvcs/ImplRepo_Service/README
@@ -1,7 +1,5 @@
/** -*- HTML-Helper -*- $Id$
-$Id$
-
@mainpage Implementation Repository
@section intro Introduction
diff --git a/TAO/orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.mpc b/TAO/orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.mpc
index 7525cb07301..5afb55a219c 100644
--- a/TAO/orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.mpc
+++ b/TAO/orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.mpc
@@ -2,4 +2,8 @@
project: namingexe, iortable, install, dslogadmin_serv, valuetype {
exename = tao_tls_basic
+ InstallData_Files {
+ gendir = tao-log
+ README
+ }
}
diff --git a/TAO/orbsvcs/Naming_Service/Naming_Service.mpc b/TAO/orbsvcs/Naming_Service/Naming_Service.mpc
index cd4cb809387..e8052b297d4 100644
--- a/TAO/orbsvcs/Naming_Service/Naming_Service.mpc
+++ b/TAO/orbsvcs/Naming_Service/Naming_Service.mpc
@@ -7,6 +7,10 @@ project : orbsvcsexe, install, naming_serv, imr_client, svc_utils {
Naming_Server.cpp
Naming_Service.cpp
}
+ InstallData_Files {
+ gendir = tao-naming
+ README
+ }
}
project (FT_Naming_Service) : orbsvcsexe, install, ft_naming_serv, naming_serv, imr_client, svc_utils {
@@ -29,5 +33,9 @@ project(NT_Naming_Service) : orbsvcsexe, install, naming_serv, svc_utils {
NT_Naming_Server.cpp
NT_Naming_Service.cpp
}
+ InstallData_Files {
+ gendir = tao-naming
+ README
+ }
}
diff --git a/TAO/orbsvcs/Notify_Service/Notify_Service.mpc b/TAO/orbsvcs/Notify_Service/Notify_Service.mpc
index ffa18ca3302..d23dd40674b 100644
--- a/TAO/orbsvcs/Notify_Service/Notify_Service.mpc
+++ b/TAO/orbsvcs/Notify_Service/Notify_Service.mpc
@@ -21,6 +21,10 @@ project(Notify_Service) : orbsvcsexe, install, tao_notify_service, notify_monito
Source_Files {
Notify_Server.cpp
}
+ InstallData_Files {
+ gendir = tao-notify
+ README
+ }
}
project(NT_Notify_Service) : orbsvcsexe, install, tao_notify_service, notify_monitor_control {
@@ -34,4 +38,8 @@ project(NT_Notify_Service) : orbsvcsexe, install, tao_notify_service, notify_mon
Header_Files {
NT_Notify_Service.h
}
+ InstallData_Files {
+ gendir = tao-notify
+ README
+ }
}
diff --git a/TAO/orbsvcs/Time_Service/Time_Service.mpc b/TAO/orbsvcs/Time_Service/Time_Service.mpc
index ec6d2297206..5a984c18ae2 100644
--- a/TAO/orbsvcs/Time_Service/Time_Service.mpc
+++ b/TAO/orbsvcs/Time_Service/Time_Service.mpc
@@ -7,6 +7,10 @@ project(Time_Service_Server) : orbsvcsexe, install, time_serv, naming, utils, av
Server_i.cpp
Time_Service_Server.cpp
}
+ InstallData_Files {
+ gendir = .
+ README
+ }
}
project(Time_Service_Clerk) : orbsvcsexe, install, time_serv, naming, utils, avoids_corba_e_micro {
@@ -15,4 +19,8 @@ project(Time_Service_Clerk) : orbsvcsexe, install, time_serv, naming, utils, avo
Clerk_i.cpp
Time_Service_Clerk.cpp
}
+ InstallData_Files {
+ gendir = .
+ README
+ }
}
diff --git a/TAO/orbsvcs/Trading_Service/Trading_Service.mpc b/TAO/orbsvcs/Trading_Service/Trading_Service.mpc
index 67ddcf202e2..e6f950ecad2 100644
--- a/TAO/orbsvcs/Trading_Service/Trading_Service.mpc
+++ b/TAO/orbsvcs/Trading_Service/Trading_Service.mpc
@@ -3,5 +3,9 @@
project : orbsvcsexe, utils, install, naming, trading_serv {
exename = tao_costrading
+ InstallData_Files {
+ gendir = tao-trading
+ README
+ }
}
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Group_List_Store.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Group_List_Store.cpp
index bdec70e6bc9..9bfdebcffd0 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Group_List_Store.cpp
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Group_List_Store.cpp
@@ -230,7 +230,7 @@ TAO::PG_Group_List_Store::write (TAO::Storable_Base & stream)
{
stream.rewind ();
- unsigned int next_group_id = this->next_group_id_;
+ unsigned int next_group_id = static_cast<unsigned int> (this->next_group_id_);
stream << next_group_id;
int size = group_ids_.size ();
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp
index 8d134432c58..fb2b02000fe 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp
@@ -9,8 +9,8 @@
#include "tao/debug.h"
static const char pg_poa_factory_name[] = "TAO_GOA";
-static const ACE_TCHAR pg_poa_factory_directive[] = ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "TAO_GOA", "TAO_PortableGroup", "_make_TAO_PG_Object_Adapter_Factory", "");
+static const ACE_TCHAR pg_poa_factory_directive[] = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
+ "TAO_GOA", "TAO_PortableGroup", TAO_VERSION , "_make_TAO_PG_Object_Adapter_Factory", "");
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.cpp
index e3c4570af4f..1df45aa6f91 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.cpp
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.cpp
@@ -30,22 +30,20 @@ TAO_Portable_Group_Map::~TAO_Portable_Group_Map (void)
delete entry;
entry = next;
}
-
}
this->map_.close ();
}
-
void
TAO_Portable_Group_Map::add_groupid_objectkey_pair (
PortableGroup::TagGroupTaggedComponent *group_id,
const TAO::ObjectKey &key
)
{
- ACE_GUARD (TAO_SYNCH_MUTEX,
- guard,
- this->lock_);
+ ACE_WRITE_GUARD (TAO_SYNCH_RW_MUTEX,
+ guard,
+ this->lock_);
Map_Entry *new_entry;
@@ -66,8 +64,7 @@ TAO_Portable_Group_Map::add_groupid_objectkey_pair (
// First, check if the GroupId is already in the map.
Map_Entry *entry = 0;
- if (this->map_.find (group_id,
- entry) == 0)
+ if (this->map_.find (group_id, entry) == 0)
{
// Add the object key to the list of object keys serviced by this GroupId.
new_entry->next = entry->next;
@@ -79,8 +76,7 @@ TAO_Portable_Group_Map::add_groupid_objectkey_pair (
// Add the
int result =
- this->map_.bind (group_id,
- new_entry);
+ this->map_.bind (group_id, new_entry);
if (result != 0)
{
@@ -97,26 +93,22 @@ void
TAO_Portable_Group_Map::remove_groupid_objectkey_pair (const PortableGroup::TagGroupTaggedComponent* /*group_id*/,
const TAO::ObjectKey &/*key*/)
{
-
}
-
void
TAO_Portable_Group_Map::dispatch (PortableGroup::TagGroupTaggedComponent* group_id,
TAO_ORB_Core *orb_core,
TAO_ServerRequest &request,
CORBA::Object_out forward_to)
{
- ACE_GUARD (TAO_SYNCH_MUTEX,
- guard,
- this->lock_);
+ ACE_READ_GUARD (TAO_SYNCH_RW_MUTEX,
+ guard,
+ this->lock_);
// Look up the GroupId.
Map_Entry *entry = 0;
- if (this->map_.find (group_id,
- entry) == 0)
+ if (this->map_.find (group_id, entry) == 0)
{
-
// Save the read pointer in the message block since
// every time we dispatch the request, we need to
// reset it so that the request demarshals correctly.
@@ -148,7 +140,6 @@ TAO_GroupId_Hash::operator () (const PortableGroup::TagGroupTaggedComponent *id)
// Truncate the object_group_id in half for the has.
hash += (u_long) (id->object_group_id / 1);
-
hash += id->object_group_ref_version;
return hash;
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.h b/TAO/orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.h
index d4c8ecd01b6..d798a563e9e 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.h
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.h
@@ -120,7 +120,7 @@ public:
protected:
/// Lock used to synchronize access to map_.
- TAO_SYNCH_MUTEX lock_;
+ TAO_SYNCH_RW_MUTEX lock_;
/// Id map.
GroupId_Table map_;
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp
index 1fb5a090e1b..6e0b8762556 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Mcast_Transport.cpp
@@ -11,6 +11,7 @@
#include "tao/ORB_Core.h"
#include "tao/debug.h"
#include "tao/GIOP_Message_Base.h"
+#include "tao/Resume_Handle.h"
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -383,6 +384,11 @@ TAO_UIPMC_Mcast_Transport::recv_all (void)
// Add it to the complete queue.
this->complete_.enqueue_tail (packet);
+
+ // The following break stops the eager de-queuing of
+ // further completed MIOP messages. This should probably
+ // be configuable via a MIOP Server -ORB option.
+ break;
}
}
@@ -405,22 +411,61 @@ TAO_UIPMC_Mcast_Transport::handle_input (
this->id ()));
}
- while (this->recv_all ())
+ if (this->recv_all ())
{
+ // Unqueue the first available completed message for us to process.
TAO_PG::UIPMC_Recv_Packet *complete = 0;
-
+ ACE_Auto_Ptr<TAO_PG::UIPMC_Recv_Packet> owner (0);
{
ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, guard, this->complete_lock_, 0);
+ if (this->complete_.is_empty ())
+ return 0; // Another thread got here first, no problem.
if (this->complete_.dequeue_head (complete) == -1)
- return 0;
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("TAO (%P|%t) - TAO_UIPMC_Mcast_Transport[%d]::handle_input, ")
+ ACE_TEXT ("unable to dequeue completed message\n"),
+ this->id ()));
+ return 0;
+ }
+ ACE_auto_ptr_reset (owner, complete);
+
+ // If there is another message waiting to be processed (in addition
+ // to the one we have just taken off to be processed), notify another
+ // thread (if available) so this can also be processed in parrellel.
+ if (!this->complete_.is_empty ())
+ {
+ int const retval = this->notify_reactor_now ();
+ if (retval == 1)
+ {
+ // Now we have handed off to another thread, let the class
+ // know that it doesn't need to resume with OUR handle
+ // after we have processed our message.
+ rh.set_flag (TAO_Resume_Handle::TAO_HANDLE_LEAVE_SUSPENDED);
+ }
+ else if (retval < 0 && TAO_debug_level > 2)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("TAO (%P|%t) - TAO_UIPMC_Mcast_Transport[%d]::handle_input, ")
+ ACE_TEXT ("notify to the reactor failed.\n"),
+ this->id ()));
+ }
+ }
}
- ACE_Auto_Ptr<TAO_PG::UIPMC_Recv_Packet> owner (complete);
-
- // Create a data block.
- ACE_Data_Block db (complete->data_length (),
+ // Create a data block from our dequeued completed message.
+ char *buffer= 0;
+ ACE_NEW_THROW_EX (buffer,
+ char[complete->data_length () + ACE_CDR::MAX_ALIGNMENT],
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ TAO::VMCID,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ ACE_Auto_Array_Ptr<char> owner_buffer (buffer);
+ ACE_Data_Block db (complete->data_length () + ACE_CDR::MAX_ALIGNMENT,
ACE_Message_Block::MB_DATA,
- 0,
+ buffer,
this->orb_core_->input_cdr_buffer_allocator (),
this->orb_core_->locking_strategy (),
ACE_Message_Block::DONT_DELETE,
@@ -455,10 +500,8 @@ TAO_UIPMC_Mcast_Transport::handle_input (
ACE_TEXT ("handle_input, failed to parse input\n"),
this->id ()));
}
- continue;
}
-
- if (qd.missing_data () == TAO_MISSING_DATA_UNDEFINED)
+ else if (qd.missing_data () == TAO_MISSING_DATA_UNDEFINED)
{
// Parse/marshal error happened.
if (TAO_debug_level)
@@ -468,10 +511,8 @@ TAO_UIPMC_Mcast_Transport::handle_input (
ACE_TEXT ("handle_input, got missing data\n"),
this->id ()));
}
- continue;
}
-
- if (message_block.length () > mesg_length)
+ else if (message_block.length () > mesg_length)
{
// We read too much data.
if (TAO_debug_level)
@@ -483,11 +524,9 @@ TAO_UIPMC_Mcast_Transport::handle_input (
message_block.length (),
mesg_length));
}
- continue;
}
-
- // Process the message.
- (void) this->process_parsed_messages (&qd, rh);
+ else // Process the message.
+ (void) this->process_parsed_messages (&qd, rh);
}
return 0;
diff --git a/TAO/orbsvcs/orbsvcs/SL3CSI.idl b/TAO/orbsvcs/orbsvcs/SL3CSI.idl
deleted file mode 100644
index 3f6f3981d43..00000000000
--- a/TAO/orbsvcs/orbsvcs/SL3CSI.idl
+++ /dev/null
@@ -1,353 +0,0 @@
-//tabstop=4
-//***********************************************************************
-// ORBAsec SL3
-// ----------------------------------------------------------------------
-// Copyright (C) 2001 Adiron, LLC.
-// All rights reserved.
-// ----------------------------------------------------------------------
-// $Id$
-//***********************************************************************
-#ifndef _SL3CSIArgs_IDL_
-#define _SL3CSIArgs_IDL_
-#include <SL3/SecurityLevel3.idl>
-#include <SL3/Trust.idl>
-#include <SL3/UserPassword.idl>
-#include <SL3/TransportSecurity.idl>
-#include <SL3/SL3AQArgs.idl>
-#include <SL3OMG/ATLAS.idl>
-#include <SL3/SL3Authorization.idl>
-#include <SL3/ATLASCache.idl>
-
-#pragma prefix "adiron.com"
-
-/**
- * This module contains structures and a factory interface to
- * create tagged argument lists that will be given to the
- * args parameter of the SecurityLevel3::CredentialsCurator.
- * <p>
- * ORBAsec SL3 uses this kind of mechanism because it is the
- * easiest way to represent optional arguments.
- * <P>
- * To alleviate the hassles of dealing with any's and creating
- * them, there is a factory retrieved by ORB::resolve_initial_references
- * using "SL3:ArgumentFactory". From this object one may create an
- * acquisition argument builder. This approach takes most of the work
- * out of forming the Credentials acquisition argument.
- * The form of the arguments and their requiredness or optionality
- * are defined by the specific acquisition mechanisms using them.
- *
- * The Credentials Acquired with these arguments handle the
- * CORBA CSIv2 protocol.
- */
-module SL3CSI {
-
- /**
- * There is currently only one acquisition method for
- * CSI based Credentials.
- */
- const SecurityLevel3::AcquisitionMethod AQM_CSIArgs = "CSIArgs";
-
- /**
- * An object of this interface is created by the Argument Factory Object.
- * It aids in creating the Credentials Acquisition Argument for
- * CSI based Credentials.
- */
- local interface CSIArgBuilder : SL3AQArgs::GenericArgBuilder {
-
- /**
- * This operation explicitly disables caching of ATLAS tokens.
- * This is used in the case where CSI credentials are needed
- * in order to communicate with an external cache. If cacheing
- * were enabled in this case, then there would be a cache for
- * the cache, which gets recursively messy.
- */
- void addSetNoLocalCache();
-
- /**
- * This operation adds an already existing ATLASCache as an
- * acquisition argument. This is used in the case where an
- * externalized cache is to be used. If a cache is not
- * explicitly added to the argument, then a new cache will
- * be created by the Credentials Curator.
- */
- void addATLASCache(
- in ATLASCache::AuthTokenCache cache
- );
-
- /**
- * This operation places a user defined Password Generator
- * in the acquisition argument.
- */
- void addUserPasswordCAGenerator(
- in UserPassword::PasswordGenerator generator
- );
-
- /**
- * This operation places a user defined Password Processor
- * in the acquisition argument.
- */
- void addUserPasswordCAProcessor(
- in UserPassword::PasswordProcessor processor
- );
-
- /**
- * This operation causes the creation credentials that
- * have a "quoted" principal. CSI Credentials of this
- * type will assert the particular principal name to a server.
- */
- void addNamedQuotedPrincipal(
- in SecurityLevel3::PrincipalName principal_name
- );
-
- /**
- * This operation causes the creation credentials that
- * have a "quoted" principal. CSI Credentials of this
- * type will assert the particular identity to a server.
- */
- void addEncodedQuotedPrincipal(
- in SecurityLevel3::IdentityStatement identity
- );
-
- /**
- * This operation places a user defined Trust Decider in
- * the acquisition argument.
- */
- void addLocalTrustInServerDecider(
- in Trust::LocalTrustInServerDecider trust_decider
- );
-
- /**
- * This operation causes CSI Credentials to be created
- * over a particular transport as if you created the
- * transport credentials using the
- * TransportSecurity::CredentialsCurator and used the
- * addUseTransportCredentials operation of this object.
- */
- void addTransportCredentialsAQArgs(
- in TransportSecurity::MechanismId mechanism_id,
- in TransportSecurity::AcquisitionMethod acquisition_method,
- in any acquisition_arguments
- );
-
- /**
- * This operation causes CSI Credentials to be created
- * over a particular transport credentials that have
- * already been created by using the
- * TransportSecurity::CredentialsCurator.
- */
- void addUseTransportCredentials(
- in TransportSecurity::OwnCredentials credentials
- );
-
- /**
- * This operation adds an ATLAS to your CSI Credentials.
- * ATLAS is the Authorization Token Layer Acquisition Service.
- * Each ATLAS represents a specific Authorization context, and
- * is used to give your clients the ability to "log" in, and
- * present credentials (i.e. an Authorization Token) for which
- * to work the requests. It also gives the ability for clients
- * to cache the tokens, so performance will be better.
- * <p>
- * None of the arguments can be null.
- * <p>
- * The cache_id is the caching Id, according to the ATLAS
- * specification which must be unique to this authorization
- * context, amongst all other authorization contexts. If you
- * do not have a cache id, then this argument should be an
- * empty octet sequence.
- * <P>
- * The token_dispenser is the ATLAS AuthTokenDispenser interface.
- * This cannot be a "local" object.
- * <p>
- * The supports_delegation_by_client and requires_delegation_by_client
- * arguments tell the client the way in which it
- * will use the ATLAS. This
- * information gets put in the ATLAS Profile, which is put
- * in the IOR of the objects associated with the credentials.
- * <p>
- * The token_processor is the "sister" to the ATLAS, as it
- * understands the tokens that the ATLAS ships out to clients.
- * It is specific to the Authorization context. It may be
- * a local object, but also can make remote calls.
- */
- void addATLASObject(
- in ATLAS::ATLASCacheId cache_id,
- in ATLAS::AuthTokenDispenser token_dispenser,
- in boolean supports_delegation_by_client,
- in boolean requires_delegation_by_client,
- in SL3Authorization::TokenProcessor token_processor
- );
-
- };
-
- /**
- * This interface is a factory for arguments that will
- * be in use for ORBAsec credentials acquisition mechanisms.
- * It is retrievable off the ORB at "SL3:ArgumentFactory"
- */
- local interface ArgumentFactory {
-
- /**
- * Creates a new CSI Argument Builder object with the specified
- * Credentials usage.
- */
- CSIArgBuilder createCSIArgBuilder(
- in SecurityLevel3::CredentialsUsage usage
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * an flag that will disable the creation of the default
- * ATLASCache.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createSetNoLocalCache();
-
- /**
- * This operation creates a Tagged Argument containing
- * an ATLASCache implementation to use for caching ATLAS
- * tokens.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the CSIArgBuilder.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createATLASCache(
- in ATLASCache::AuthTokenCache cache
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring CSI credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the CSIArgBuilder.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createUserPasswordCAGenerator(
- in UserPassword::PasswordGenerator generator
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring CSI credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the CSIArgBuilder.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createUserPasswordCAProcessor(
- in UserPassword::PasswordProcessor processor
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring CSI credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the CSIArgBuilder.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createKerberosCAGenerator(
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring CSI credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the CSIArgBuilder.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createKerberosCAProcessor(
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring CSI credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the CSIArgBuilder.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createNamedQuotedPrincipal(
- in SecurityLevel3::PrincipalName prin_name
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring CSI credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the CSIArgBuilder.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createEncodedQuotedPrincipal(
- in SecurityLevel3::IdentityStatement prin_name
- );
-
- /**
- * This operation creates a Arg_TrustInServerDecider tagged
- * argument.
- */
- SL3AQArgs::Argument createLocalTrustInServerDecider(
- in Trust::LocalTrustInServerDecider trust_decider
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring CSI credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the CSIArgBuilder.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createTransportCredentialsAQArgs(
- in TransportSecurity::MechanismId mechanism_id,
- in TransportSecurity::AcquisitionMethod acquisition_method,
- in any acquisition_arguments
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring CSI credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the CSIArgBuilder.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createUseTransportCredentials(
- in TransportSecurity::OwnCredentials credentials
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring CSI credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the CSIArgBuilder.
- *
- * @see CSIArgBuilder
- */
- SL3AQArgs::Argument createATLASObject(
- in ATLAS::ATLASCacheId cache_id,
- in ATLAS::AuthTokenDispenser token_dispenser,
- in boolean supports_endorsement_by_client,
- in boolean requires_endorsement_by_client,
- in SL3Authorization::TokenProcessor token_processor
- );
-
- };
-
-};
-#endif
diff --git a/TAO/orbsvcs/orbsvcs/SL3TCPIP.idl b/TAO/orbsvcs/orbsvcs/SL3TCPIP.idl
deleted file mode 100644
index f6d2c1a5246..00000000000
--- a/TAO/orbsvcs/orbsvcs/SL3TCPIP.idl
+++ /dev/null
@@ -1,203 +0,0 @@
-//tabstop=4
-//***********************************************************************
-// ORBAsec SL3
-// ----------------------------------------------------------------------
-// Copyright (C) 2001 Adiron, LLC.
-// All rights reserved.
-// ----------------------------------------------------------------------
-// $Id$
-//***********************************************************************
-#ifndef _SL3TCPIP_IDL_
-#define _SL3TCPIP_IDL_
-#include <orb.idl>
-#include <SL3/SecurityLevel3.idl>
-#include <SL3/TransportSecurity.idl>
-#include <SL3/SL3AQArgs.idl>
-
-#pragma prefix "adiron.com"
-
-module SL3TCPIP {
-
- const TransportSecurity::MechanismId MID_TCPIP = "TCPIP";
-
- /**
- * This is the only acquisition mechanism for acquiring TCPIP
- * Transport Credentials.
- */
- const TransportSecurity::AcquisitionMethod AQM_TCPIPArgs = "TCPIPArgs";
-
- /**
- * An object of this interface is created by the Argument Factory Object.
- * It aids in creating the Credentials Acquisition Argument for
- * TCPIP based Transport Credentials.
- */
- local interface TCPIPArgBuilder : SL3AQArgs::GenericArgBuilder {
-
- /**
- * This operation adds Transport Credentials CSIv1 protocol
- * version capability.
- * @param support If false, the associated transports will
- * always be expected to carry CSIv2 information.
- * Default is true.
- * For CSIv2 capability without the ability to
- * use these credentials for CSIv1 transports, this
- * argument must be explicitly stated with a value
- * of false.
- */
- void addSupportCSIv1(
- in boolean support
- );
-
- /**
- * This operation adds Transport Credentials CSIv2 protocol
- * version capability.
- * @param support If false, the associated transports will
- * not, or be expected to carry CSIv2 information.
- * If true, they must, if CSIv1 support is false.
- * It's default value is false.
- */
- void addSupportCSIv2(
- in boolean support
- );
-
- /**
- * This operation adds Transport Credentials Initiator Options to
- * the acquisition argument. This argument is only relevant when
- * the Credentials Usage include Initiate.
- *
- * @param bind This argument contains the interface to which to bind.
- * An empty string signifies to use the operating system
- * default.
- * @param low_port If this argument is 0, the system select the port.
- * If this argument is not 0, then connections
- * will attempt to bind to this port or higher.
- * @param high_port If low_port is not 0, and this argument is greater
- * than or equal to low_port, then the lowest
- * available port within the range will be selected.
- * @param timeout Timeout (in milliseconds) for connection establishment.
- * The value 0 indicates an indefinite wait.
- */
- void addTCPIPInitiatorOptions(
- in string bind, // Interface to bind the socket to.
- // If empty, then system selects
- in long low_port, // If 0 system selects
- in long high_port, // Only if low_port != 0, high port >=low_port
- // If equal, it binds to that port.
- // If greater, it will try for ports within
- // the range.
- in long timeout // default timeout for connections.
- );
-
- /**
- * This operation adds Transport Credentials Acceptor Options to
- * the acquisition argument. This argument is only relevant when
- * the Credentials Usage include Accept.
- *
- * @param hosts This operation contains a list of "hosts", or
- * addresses that should be placed in the IOR of
- * objects associated with these credentials.
- * @param bind This argument contains the interface to which to
- * bind. An empty string signifies to use the
- * operating system default.
- * @param low_port If this argument is 0, the system select the port.
- * If this argument is not 0, then connections
- * will attempt to bind to this port or higher.
- * @param high_port If low_port is not 0, and this argument is greater
- * than or equal to low_port, then the lowest
- * available port within the range will be selected.
- * @param backlog Socket Listening Backlog. 0 means use operating
- * system default.
- * @param numeric If this argument is true, all addresses associated
- * with these credentials that are placed in IORs
- * will be in numeric form.
- */
- void addTCPIPAcceptorOptions(
- in CORBA::StringSeq hosts, // If empty, system select
- in string bind, // if not empty, must be one of hosts.
- in long low_port, // 0 means system select
- in long high_port, // Only if low_port != 0;
- in long backlog, // socket parameter
- in boolean numeric // use numeric addresses inIORs?
- );
- };
-
- /**
- * This interface is used to create the TCPIP Argument Builder
- */
- local interface ArgumentFactory : SL3AQArgs::ArgumentFactory {
-
- /**
- * This operation creates a TCPIP Transport Security
- * Credentials Acquisition Argument Builder.
- */
- TCPIPArgBuilder createTCPIPArgBuilder(
- in TransportSecurity::CredentialsUsage usage
- );
-
- /**
- * This operation creates a TaggedArgument containing
- * the following information for acquiring transport
- * credentials with CSIv1 capability turned off or on.
- *
- * @param support. If false, call GIOP requests traveling
- * over these transports is expected to
- * carry CSIv2 information.
- */
- SL3AQArgs::Argument createSupportCSIv1(
- in boolean support
- );
-
- /**
- * This operation creates a TaggedArgument containing
- * the following information for acquiring transport
- * credentials with CSIv2 capability turned off or on.
- *
- * @param support. If false, call GIOP requests traveling
- * over these transports will not and is
- * not expected to carry CSIv2 information.
- */
- SL3AQArgs::Argument createSupportCSIv2(
- in boolean support
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring TCPIP credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the TCPIPArgBuilder.
- *
- * @see TCPIPArgBuilder
- */
- SL3AQArgs::Argument createTCPIPInitiatorOptions(
- in string bind, // Interface to bind the socket to.
- // If empty, then system selects
- in long low_port, // If 0 system selects
- in long high_port, // Only if low_port != 0, high port >=low_port
- // If equal, it binds to that port.
- // If greater, it will try for ports within
- // the range.
- in long timeout // default timeout for connections.
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring TCPIP credentials.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the TCPIPArgBuilder.
- *
- * @see TCPIPArgBuilder
- */
- SL3AQArgs::Argument createTCPIPAcceptorOptions(
- in CORBA::StringSeq hosts, // If empty, system select
- in string bind, // if not empty, must be one of hosts.
- in long low_port, // 0 means system select
- in long high_port, // Only if low_port != 0;
- in long backlog, // socket parameter
- in boolean numeric // use numeric addresses inIORs?
- );
- };
-};
-
-#endif
diff --git a/TAO/orbsvcs/orbsvcs/SL3TLS.idl b/TAO/orbsvcs/orbsvcs/SL3TLS.idl
deleted file mode 100644
index c5701351e11..00000000000
--- a/TAO/orbsvcs/orbsvcs/SL3TLS.idl
+++ /dev/null
@@ -1,350 +0,0 @@
-//tabstop=4
-//***********************************************************************
-// ORBAsec SL3
-// ----------------------------------------------------------------------
-// Copyright (C) 2001 Adiron, LLC.
-// All rights reserved.
-// ----------------------------------------------------------------------
-// $Id$
-//***********************************************************************
-#ifndef _SL3TLS_IDL_
-#define _SL3TLS_IDL_
-#include <orb.idl>
-#include <SL3/SecurityLevel3.idl>
-#include <SL3/TransportSecurity.idl>
-#include <SL3/SL3AQArgs.idl>
-#include <SL3/SL3TCPIP.idl>
-
-#pragma prefix "adiron.com"
-
-module SL3TLS {
- const TransportSecurity::MechanismId MID_TLS = "TLS";
-
- /**
- * This is the only acquisition mechanism for acquiring TLS
- * Transport Credentials.
- */
- const TransportSecurity::AcquisitionMethod AQM_TLSArgs = "TLSArgs";
-
- /**
- * Implementers may create their own local version of
- * this interface to verify chains of X509 Certificates.
- */
- local interface TLSX509IdentityVerifier {
-
- /**
- * This operation is called by the security service at the
- * TLS Transport Credentials creation phase to add certificates
- * as trusted entities directed by other TLS options.
- */
- void add_trusted_authority(
- in SecurityLevel3::X509IdentityStatement auth
- );
-
- /**
- * This operation is called by the security service to determine
- * if the peer is allowed to be anonymous. This means that the
- * peer has not delivered a certificate and did not authenticate
- * itself.
- */
- boolean is_anonymous_allowed();
-
- /**
- * This operation is called by the security service at the
- * transport authentication phase, when the peer certificate
- * needs to be verified. The X509IdentityStatement will contain
- * a sequence of encoded X509 Certificates, which may be empty.
- */
- boolean verify(
- in SecurityLevel3::X509IdentityStatement ident
- );
- };
-
- /**
- * The TLS KeyStore Acquisition Builder extends the TCPIP
- * Builder. This is because the same TCPIP Acquisition Arguments
- * apply to TLS, as TCPIP sits underneath TLS.
- */
- local interface TLSKeyStoreArgBuilder : SL3TCPIP::TCPIPArgBuilder {
-
- /**
- * This operation adds a X509 Certificate Chain Identity Verifier
- * argument to the acquisition arguments.
- *
- * @param verifier The locally defined interface that will verify
- * the certificate chain.
- */
- void addTLSX509IdentityVerifier(
- in TLSX509IdentityVerifier verifier
- );
-
- /**
- * This operation is used when there is a password on
- * the keystore.
- *
- * @param keystore This argument contains the URL of the
- * keystore.
- * @param storetype This argument contains the type of the
- * keystore. Currently, one of "IAIKKeyStore"
- * or "jks".
- * @param storepass This is the password that protects the
- * key store.
- * @param keyalias This argument contains the alias of a private
- * key in the keystore. If this argument is
- * an empty string, then the credentials will
- * be considered anonymous.
- * @param keypass This argument contains the password that
- * unlocks the private key named by the keyalias.
- * @param trusted_cert_names
- * This argument contains the alias of certificates
- * in the key store that are considered trusted
- * to verify certificates of the peer during
- * authentication. A empty string sequence signifies
- * that the default chain verifier will accept
- * chains ending in any trusted certificate
- * entry found in the keystore.
- * <p>
- * Note: On the default TLSX509IdentityVerifier, anonymous
- * communication is always allowed.
- */
- void addTLSKeyStoreWithStorePass(
- in string keystore,
- in string storetype,
- in string storepass,
- in string keyalias,
- in string keypass,
- in CORBA::StringSeq trusted_cert_names
- );
-
- /**
- * This operation is used when there is no password on
- * the keystore. This approach should only be used in
- * cases where the integrity of the keystore is not an issue.
- *
- * @param keystore This argument contains the URL of the
- * keystore.
- * @param storetype This argument contains the type of the
- * keystore. Currently, one of "IAIKKeyStore"
- * or "jks".
- * @param keyalias This argument contains the alias of a private
- * key in the keystore. If this argument is
- * an empty string, then the credentials will
- * be considered anonymous.
- * @param keypass This argument contains the password that
- * unlocks the private key named by the keyalias.
- * @param trusted_cert_names
- * This argument contains the alias of certificates
- * in the key store that are considered trusted
- * to verify certificates of the peer during
- * authentication. A empty string sequence signifies
- * that the default chain verifier will accept
- * chains ending in any trusted certificate
- * entry found in the keystore.
- * <p>
- * Note: On the default TLSX509IdentityVerifier, anonymous
- * communication is always allowed.
- */
- void addTLSKeyStoreNoStorePass(
- in string keystore,
- in string storetype,
- in string keyalias,
- in string keypass,
- in CORBA::StringSeq trusted_cert_names
- );
-
- /**
- * This operation is used when there is a password on
- * the keystore.
- *
- * @param keystore This argument contains the octet
- * sequence containing the keystore.
- * @param storetype This argument contains the type of the
- * keystore. Currently, one of "IAIKKeyStore"
- * or "jks".
- * @param storepass This is the password that protects the
- * key store.
- * @param keyalias This argument contains the alias of a private
- * key in the keystore. If this argument is
- * an empty string, then the credentials will
- * be considered anonymous.
- * @param keypass This argument contains the password that
- * unlocks the private key named by the keyalias.
- * @param trusted_cert_names
- * This argument contains the alias of certificates
- * in the key store that are considered trusted
- * to verify certificates of the peer during
- * authentication. A empty string sequence signifies
- * that the default chain verifier will accept
- * chains ending in any trusted certificate
- * entry found in the keystore.
- * <p>
- * Note: On the default TLSX509IdentityVerifier, anonymous
- * communication is always allowed.
- */
- void addTLSEncodedKeyStoreWithStorePass(
- in CORBA::OctetSeq keystore,
- in string storetype,
- in string storepass,
- in string keyalias,
- in string keypass,
- in CORBA::StringSeq trusted_cert_names
- );
-
- /**
- * This operation is used when there is no password on
- * the keystore. This approach should only be used in
- * cases where the integrity of the keystore is not an issue.
- *
- * @param keystore This argument contains the octet
- * sequence containing the keystore.
- * @param storetype This argument contains the type of the
- * keystore. Currently, one of "IAIKKeyStore"
- * or "jks".
- * @param keyalias This argument contains the alias of a private
- * key in the keystore. If this argument is
- * an empty string, then the credentials will
- * be considered anonymous.
- * @param keypass This argument contains the password that
- * unlocks the private key named by the keyalias.
- * @param trusted_cert_names
- * This argument contains the alias of certificates
- * in the key store that are considered trusted
- * to verify certificates of the peer during
- * authentication. A empty string sequence signifies
- * that the default chain verifier will accept
- * chains ending in any trusted certificate
- * entry found in the keystore.
- * <p>
- * Note: On the default TLSX509IdentityVerifier, anonymous
- * communication is always allowed.
- */
- void addTLSEncodedKeyStoreNoStorePass(
- in CORBA::OctetSeq keystore,
- in string storetype,
- in string keyalias,
- in string keypass,
- in CORBA::StringSeq trusted_cert_names
- );
- };
-
- /**
- * This acquisition mechanism specifies getting TLS credential
- * information from a Java KeyStore file. The Argument Factory
- * and Builder inherit the TCPIP.
- * The arguments used in TCPIP apply
- * in setting up TCPIP sockets, because TCPIP lies
- * below SSL/TLS.
- * <p>
- * If the TCPIPInitiatorOptions and/or TCPIPAcceptorOptions
- * arguments are present, then they are followed, otherwise
- * defaults for TCPIP are used.
- * <p>
- * The Arguments should have one of
- * TLSKeyStoreWithStorePass or TLSKeyStoreNoStorePass. If
- * neither of them is specified, the resulting Credentials will
- * run in TLS anonymously.
- *
- */
- const TransportSecurity::AcquisitionMethod
- AQM_TLSKeyStoreArgs = "TLSKeyStoreArgs";
-
- /**
- * This object allows to create the Builder for use with TLS
- * and a Java KeyStore.
- */
- local interface ArgumentFactory : SL3TCPIP::ArgumentFactory {
-
- /**
- * This operation creates a TLS KeyStore Arg Builder
- * object.
- */
- TLSKeyStoreArgBuilder createTLSKeyStoreArgBuilder(
- in TransportSecurity::CredentialsUsage usage
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * a reference to a X509 Certificate Chain Verifier
- */
- SL3AQArgs::Argument createTLSX509IdentityVerifier(
- in TLSX509IdentityVerifier verifier
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring credentials
- * from a Java KeyStore that is protected with a password.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the TLSKeyStoreArgBuilder.
- *
- * @see TLSKeyStoreArgBuilder
- */
- SL3AQArgs::Argument createTLSKeyStoreWithStorePass(
- in string keystore,
- in string storetype,
- in string storepass,
- in string keyalias,
- in string keypass,
- in CORBA::StringSeq trusted_cert_names
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring credentials
- * from a Java KeyStore that may be protected with a password.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the TLSKeyStoreArgBuilder.
- *
- * @see TLSKeyStoreArgBuilder
- */
- SL3AQArgs::Argument createTLSKeyStoreNoStorePass(
- in string keystore,
- in string storetype,
- in string keyalias,
- in string keypass,
- in CORBA::StringSeq trusted_cert_names
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring credentials
- * from a Java KeyStore that is protected with a password.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the TLSKeyStoreArgBuilder.
- *
- * @see TLSKeyStoreArgBuilder
- */
- SL3AQArgs::Argument createTLSEncodedKeyStoreWithStorePass(
- in CORBA::OctetSeq keystore,
- in string storetype,
- in string storepass,
- in string keyalias,
- in string keypass,
- in CORBA::StringSeq trusted_cert_names
- );
-
- /**
- * This operation creates a Tagged Argument containing
- * the following information for acquiring credentials
- * from a Java KeyStore that may be protected with a password.
- * <p>
- * For a description of the arguments, please see the
- * corresponding operation in the TLSKeyStoreArgBuilder.
- *
- * @see TLSKeyStoreArgBuilder
- */
- SL3AQArgs::Argument createTLSEncodedKeyStoreNoStorePass(
- in CORBA::OctetSeq keystore,
- in string storetype,
- in string keyalias,
- in string keypass,
- in CORBA::StringSeq trusted_cert_names
- );
-
- };
-
-};
-#endif
diff --git a/TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp b/TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp
index 3360f87fe7e..6da6a2ea136 100644
--- a/TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp
+++ b/TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp
@@ -7,18 +7,20 @@
char const * const scpc_orbId = "testDllOrb";
-ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testDllOrb",
"bug3486",
+ TAO_VERSION,
"_make_DllORB",
"testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1"
);
ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
-ACE_TCHAR const * const scpc_loadNamingService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadNamingService = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testNamingService",
"TAO_CosNaming_Serv",
+ TAO_VERSION,
"_make_TAO_Naming_Loader",
""
);
diff --git a/TAO/orbsvcs/tests/Bug_4080_Regression/Bug_4080_Regression.mpc b/TAO/orbsvcs/tests/Bug_4080_Regression/Bug_4080_Regression.mpc
new file mode 100644
index 00000000000..4ec881e0b26
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_4080_Regression/Bug_4080_Regression.mpc
@@ -0,0 +1,36 @@
+// -*- MPC -*-
+// $Id$
+//
+
+project(*IDL): taoidldefaults {
+ IDL_Files {
+ test.idl
+ }
+ custom_only = 1
+}
+
+project(*Server) : taoserver, portablegroup {
+ exename = bug4080_server
+ after += *IDL
+
+ Source_Files {
+ test_impl.cpp
+ testC.cpp
+ testS.cpp
+ server.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project(*Client) : taoclient, portablegroup {
+ exename = bug4080_client
+ after += *IDL
+
+ Source_Files {
+ testC.cpp
+ client.cpp
+ }
+ IDL_Files {
+ }
+}
diff --git a/TAO/orbsvcs/tests/Bug_4080_Regression/README b/TAO/orbsvcs/tests/Bug_4080_Regression/README
new file mode 100644
index 00000000000..1a2e9f0b03b
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_4080_Regression/README
@@ -0,0 +1,29 @@
+// $Id$
+
+Regression test for multi-threaded server concurrent MIOP message processing.
+
+(MIOP messages were being serialised by using a single server worker thread from any pool set-up, this test checks that multiple threads can concurrently process MIOP messages that are received.)
+
+This test relies on the client being able to send all of it's MIOP messages AND the server receiving all of them (which with MIOP is not actually guarrenteed). Each thread from the servers thread pool is tied up "processing" one of the messages via a barrier, so that all threads of the server thread pool end up working at the same time. Once all threads have received a message, the server shutsdown. The server will not shutdown (and thus the test will timeout and fail) if all of the threads don't process messages concurrently.
+
+Expected successful output is below.
+
+---------------------
+$> ./run_test.pl
+MIOP object is <IOR:010000000100000000000000010000000300000040000000010100000d0000003232352e31302e31302e313000008c3801000000270000001c0000000101000007000000646f6d61696e0000010000000000000000000000>
+Starting 2 thread, thread pool
+args to be used: -k 'file:///home/tao/sma/ACE_wrappers/TAO/orbsvcs/tests/Bug_4080_Regression/server.ior' -t 2
+Sending request 1
+Server 3086908336 received a message
+Sending request 2
+Server 3076418480 received a message
+Server 3076418480 Shutting down
+Stopping thread pool
+
+Server finished successfully.
+Client shutting down
+
+Client finished successfully
+Exit test status 0
+
+--------------------
diff --git a/TAO/orbsvcs/tests/Bug_4080_Regression/client.cpp b/TAO/orbsvcs/tests/Bug_4080_Regression/client.cpp
new file mode 100644
index 00000000000..caf66622920
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_4080_Regression/client.cpp
@@ -0,0 +1,102 @@
+//
+// $Id$
+//
+
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_unistd.h"
+#include "tao/Object_T.h"
+#include "testC.h"
+
+ACE_TCHAR const *ior = ACE_TEXT ("file://test.ior");
+CORBA::ULong threads = 2u;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT ("k:t:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case 't':
+ threads = ACE_OS::strtoul (get_opts.opt_arg (), 0, 10);
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("usage: %s ")
+ ACE_TEXT ("-k <ior> ")
+ ACE_TEXT ("-t <number of threads server has> ")
+ ACE_TEXT ("\n"),
+ argv [0]),
+ -1);
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("args to be used: -k '%s' -t %d\n"),
+ ior,
+ threads));
+
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("ERROR: wrong arguments\n")),
+ -1);
+
+ CORBA::Object_var obj = orb->string_to_object (ior);
+
+ // Create Hello reference.
+ Test::UIPMC_Object_var test =
+ TAO::Narrow_Utils<Test::UIPMC_Object>::unchecked_narrow (obj.in ());
+
+ if (CORBA::is_nil (test.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("ERROR: IOR is not an UIPMC_Object\n")),
+ -1);
+
+ for (CORBA::ULong j = 0u; j < threads; ++j)
+ {
+ try
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sending request %u\n", (unsigned) (j+1u)));
+ test->process ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught during send\n");
+ }
+ }
+
+ // Give a chance to flush all OS buffers for client.
+ while (orb->work_pending ())
+ orb->perform_work ();
+
+ ACE_DEBUG ((LM_DEBUG, "Client shutting down\n"));
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught in client main ():");
+ return -1;
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("\nClient finished successfully\n")));
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Bug_4080_Regression/run_test.pl b/TAO/orbsvcs/tests/Bug_4080_Regression/run_test.pl
new file mode 100755
index 00000000000..fa35d56679c
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_4080_Regression/run_test.pl
@@ -0,0 +1,90 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+$server_level = '0';
+$client_level = '0';
+$threads = 2;
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $server_level = '10';
+ # Level enough for reporting errors.
+ $client_level = '10';
+ }
+}
+
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+my $client = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n";
+
+$uipmc = "corbaloc:miop:1.0\@1.0-domain-1/225.10.10.10:" . $server->RandomPort();
+
+my $iorbase = "server.ior";
+my $server_iorfile = $server->LocalFile ($iorbase);
+my $client_iorfile = $client->LocalFile ($iorbase);
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+
+$SV = $server->CreateProcess ("bug4080_server",
+ "-ORBdebuglevel $server_level " .
+ "-o $server_iorfile -u $uipmc -t $threads");
+$CL = $client->CreateProcess ("bug4080_client",
+ "-ORBDebugLevel $client_level " .
+ "-k file://$client_iorfile -t $threads");
+
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
+
+if ($server->WaitForFileTimed ($iorbase,
+ $server->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+if ($server->GetFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+if ($client->PutFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot set file <$client_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+$client_status = $CL->Spawn ();
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+$client_status = $CL->WaitKill ($client->ProcessStopWaitInterval() + $threads);
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+$server_status = $SV->WaitKill ($server->ProcessStopWaitInterval() + $threads);
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+}
+
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+
+print "Exit test status $status\n";
+exit $status;
diff --git a/TAO/orbsvcs/tests/Bug_4080_Regression/server.cpp b/TAO/orbsvcs/tests/Bug_4080_Regression/server.cpp
new file mode 100644
index 00000000000..509f618d3b8
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_4080_Regression/server.cpp
@@ -0,0 +1,173 @@
+//
+// $Id$
+//
+
+#include "ace/Task.h"
+#include "ace/Get_Opt.h"
+#include "orbsvcs/PortableGroup/GOA.h"
+#include "test_impl.h"
+
+ACE_TCHAR const *uipmc_url =
+ ACE_TEXT ("corbaloc:miop:1.0@1.0-test-1/225.1.1.8:32158");
+ACE_TCHAR const *ior_output_file = ACE_TEXT ("test.ior");
+CORBA::ULong threads = 2u;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT ("o:u:t:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+
+ case 'u':
+ uipmc_url = get_opts.opt_arg ();
+ break;
+
+ case 't':
+ threads = ACE_OS::strtoul (get_opts.opt_arg (), 0, 10);
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("usage: %s ")
+ ACE_TEXT ("-o <iorfile> ")
+ ACE_TEXT ("-u <uipmc_url> ")
+ ACE_TEXT ("-t <threads> ")
+ ACE_TEXT ("\n"),
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line.
+ return 0;
+}
+
+class OrbThread : public ACE_Task_Base
+{
+public:
+ OrbThread (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+ {
+ }
+
+ virtual int svc (void)
+ {
+ try
+ {
+ this->orb_->run ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught in OrbThread:");
+ return -1;
+ }
+
+ return 0;
+ }
+
+private:
+ CORBA::ORB_var orb_;
+};
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("ERROR: wrong arguments\n")),
+ -1);
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ PortableGroup::GOA_var root_goa =
+ PortableGroup::GOA::_narrow (poa_object.in ());
+
+ if (CORBA::is_nil (root_goa.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("ERROR: nil RootPOA\n")),
+ -1);
+
+ PortableServer::POAManager_var poa_manager = root_goa->the_POAManager ();
+
+ // Create UIPMC reference.
+ CORBA::Object_var obj = orb->string_to_object (uipmc_url);
+
+ // Create id.
+ PortableServer::ObjectId_var id =
+ root_goa->create_id_for_reference (obj.in ());
+
+ // Activate UIPMC Object.
+ UIPMC_Object_Impl* uipmc_impl;
+ ACE_NEW_RETURN (uipmc_impl,
+ UIPMC_Object_Impl (orb.in (), threads),
+ -1);
+ PortableServer::ServantBase_var owner_transfer1 (uipmc_impl);
+ root_goa->activate_object_with_id (id.in (), uipmc_impl);
+
+ Test::UIPMC_Object_var uipmc_obj =
+ Test::UIPMC_Object::_unchecked_narrow (obj.in ());
+
+ if (CORBA::is_nil (uipmc_obj.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("ERROR: nil Hello object\n")),
+ -1);
+ CORBA::String_var ior = orb->object_to_string (obj.in ());
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("MIOP object is <%C>\n"), ior.in ()));
+
+ //obj = hello_impl->_this ();
+
+ // If the ior_output_file exists, output the ior to it.
+ if (ior_output_file != 0)
+ {
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+
+ if (output_file == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Cannot open output file ")
+ ACE_TEXT ("for writing IOR: %s"),
+ ior_output_file),
+ -1);
+ }
+
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+ }
+
+ poa_manager->activate ();
+
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting %u thread, thread pool\n"), (unsigned) threads));
+ // start server thread pool
+ OrbThread orb_thr (orb.in ());
+ orb_thr.activate (THR_NEW_LWP | THR_JOINABLE, threads);
+ orb_thr.wait ();
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Stopping thread pool\n")));
+ }
+
+ root_goa->destroy (1, 1);
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught in server main ():");
+ return -1;
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("\nServer finished successfully.\n")));
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Bug_4080_Regression/svc.conf b/TAO/orbsvcs/tests/Bug_4080_Regression/svc.conf
new file mode 100644
index 00000000000..242adec98f6
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_4080_Regression/svc.conf
@@ -0,0 +1,6 @@
+# $Id$
+
+dynamic UIPMC_Factory Service_Object * TAO_PortableGroup:_make_TAO_UIPMC_Protocol_Factory() ""
+static Resource_Factory "-ORBProtocolFactory IIOP_Factory -ORBProtocolFactory UIPMC_Factory"
+dynamic PortableGroup_Loader Service_Object * TAO_PortableGroup:_make_TAO_PortableGroup_Loader() ""
+dynamic MIOP_Resource_Factory Service_Object * TAO_PortableGroup:_make_TAO_MIOP_Resource_Factory() ""
diff --git a/TAO/orbsvcs/tests/Bug_4080_Regression/test.idl b/TAO/orbsvcs/tests/Bug_4080_Regression/test.idl
new file mode 100644
index 00000000000..5dcd0d25041
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_4080_Regression/test.idl
@@ -0,0 +1,7 @@
+// $Id$
+
+module Test {
+ interface UIPMC_Object {
+ oneway void process ();
+ };
+};
diff --git a/TAO/orbsvcs/tests/Bug_4080_Regression/test_impl.cpp b/TAO/orbsvcs/tests/Bug_4080_Regression/test_impl.cpp
new file mode 100644
index 00000000000..9b3e442dbde
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_4080_Regression/test_impl.cpp
@@ -0,0 +1,43 @@
+//
+// $Id$
+//
+
+#include "test_impl.h"
+
+UIPMC_Object_Impl::UIPMC_Object_Impl (CORBA::ORB_ptr orb,
+ CORBA::ULong num_threads)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+ , barrier_ ((unsigned int) num_threads)
+ , lock_ ()
+{
+}
+
+UIPMC_Object_Impl::~UIPMC_Object_Impl (void)
+{
+}
+
+void
+UIPMC_Object_Impl::process ()
+{
+ ACE_DEBUG ((LM_DEBUG, "Server %t received a message\n"));
+ this->barrier_.wait ();
+ static bool shutdown=false;
+ if (!shutdown)
+ {
+ ACE_GUARD (TAO_SYNCH_MUTEX, guard, this->lock_);
+ if (!shutdown)
+ {
+ shutdown=true;
+ ACE_DEBUG ((LM_DEBUG, "Server %t Shutting down\n"));
+ try
+ {
+ this->orb_->shutdown (0);
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception (
+ "Server %t, Exception caught in shutdown():");
+ }
+ }
+ }
+}
diff --git a/TAO/orbsvcs/tests/Bug_4080_Regression/test_impl.h b/TAO/orbsvcs/tests/Bug_4080_Regression/test_impl.h
new file mode 100644
index 00000000000..4ad50da4557
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_4080_Regression/test_impl.h
@@ -0,0 +1,26 @@
+//
+// $Id$
+//
+
+#ifndef _TEST_IMPL_H_
+#define _TEST_IMPL_H_
+
+#include "testS.h"
+#include "ace/Barrier.h"
+
+class UIPMC_Object_Impl : public virtual POA_Test::UIPMC_Object
+{
+public:
+ UIPMC_Object_Impl (CORBA::ORB_ptr orb, CORBA::ULong num_threads);
+ ~UIPMC_Object_Impl (void);
+
+ // The skeleton methods
+ virtual void process ();
+
+private:
+ CORBA::ORB_var orb_;
+ ACE_Barrier barrier_;
+ TAO_SYNCH_MUTEX lock_;
+};
+
+#endif // _TEST_IMPL_H_
diff --git a/TAO/orbsvcs/tests/Miop/McastHello/svc.conf b/TAO/orbsvcs/tests/Miop/McastHello/svc.conf
index 84ef77cf1c6..5b4ee787f0b 100644
--- a/TAO/orbsvcs/tests/Miop/McastHello/svc.conf
+++ b/TAO/orbsvcs/tests/Miop/McastHello/svc.conf
@@ -1,6 +1,6 @@
# $Id$
-dynamic UIPMC_Factory Service_Object * TAO_PortableGroup:_make_TAO_UIPMC_Protocol_Factory() ""
+dynamic UIPMC_Factory Service_Object * TAO_PortableGroup:_make_TAO_UIPMC_Protocol_Factory() "-ORBListenOnAll 1"
static Resource_Factory "-ORBProtocolFactory IIOP_Factory -ORBProtocolFactory UIPMC_Factory"
#static PortableGroup_Loader ""
dynamic PortableGroup_Loader Service_Object * TAO_PortableGroup:_make_TAO_PortableGroup_Loader() ""
diff --git a/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp
index 5fc7d89a1f8..6f590f1bdef 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp
@@ -9,18 +9,20 @@
char const * const scpc_orbId = "testDllOrb";
-ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testDllOrb",
"bug2926",
+ TAO_VERSION,
"_make_DllORB",
"testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1"
);
ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
-ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testNotifyService",
"TAO_CosNotification_Serv",
+ TAO_VERSION,
"_make_TAO_CosNotify_Service",
""
);
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp
index 7d3320078be..452fe3b43b7 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp
@@ -12,18 +12,20 @@
#include "DllOrb.h"
-ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testDllOrb",
"Bug_3252",
+ TAO_VERSION,
"_make_DllOrb",
"testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -NumThreads 2 -ORBDottedDecimalAddresses 1 -ORBCollocationStrategy thru_poa"
);
ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
-ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testNotifyService",
"TAO_CosNotification_Serv",
+ TAO_VERSION,
"_make_TAO_CosNotify_Service",
"-UseSeparateDispatchingORB 1"
);
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp
index d25ac609f5a..2f5932b870c 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp
@@ -9,18 +9,20 @@
char const * const scpc_orbId = "testDllOrb";
-ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testDllOrb",
"bug3646b",
+ TAO_VERSION,
"_make_DllORB",
"testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1"
);
ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
-ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testNotifyService",
"TAO_Notify_Service",
+ TAO_VERSION,
"_make_TAO_Notify_Service_Driver",
"-NoNameSvc -RunThreads 0"
);
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp
index e1f8cf2af79..faf35b8fc10 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp
@@ -12,18 +12,20 @@ char const * const scpc_orbId = "testDllOrb";
const int max_length = 1000;
-ACE_TCHAR scpc_loadOrb[max_length] = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR scpc_loadOrb[max_length] = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testDllOrb",
"bug3646c",
+ TAO_VERSION,
"_make_DllORB",
"testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1 -ORBInitRef NameService=iioploc://%s:%s/NameService"
);
ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
-ACE_TCHAR scpc_loadNotifyService[max_length] = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR scpc_loadNotifyService[max_length] = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testNotifyService",
"TAO_Notify_Service",
+ TAO_VERSION,
"_make_TAO_Notify_Service_Driver",
"-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 0 -ORBInitRef NameService=iioploc://%s:%s/NameService -IORoutput %s"
);
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp
index 8a922af1a48..92c0813c661 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp
@@ -9,27 +9,30 @@
char const * const scpc_orbId = "testDllOrb";
-ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testDllOrb",
"bug3646d",
+ TAO_VERSION,
"_make_DllORB",
"testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1 -ORBInitRef NameService=file://naming.ior"
);
ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
-ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testNotifyService",
"TAO_Notify_Service",
+ TAO_VERSION,
"_make_TAO_Notify_Service_Driver",
"-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 10 -ORBInitRef NameService=file://naming.ior -IORoutput notify.ior"
);
ACE_TCHAR const * const scpc_unloadNotifyService = ACE_REMOVE_SERVICE_DIRECTIVE("testNotifyService");
-ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testNamingService",
"TAO_CosNaming_Serv",
+ TAO_VERSION,
"_make_TAO_Naming_Loader",
"testNameService testNameService -ORBId testDllOrb -m 0 -o naming.ior"
);
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp
index 6434be8a632..209cdb31747 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp
@@ -9,18 +9,20 @@
char const * const scpc_orbId = "testDllOrb";
-ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testDllOrb",
"bug3663",
+ TAO_VERSION,
"_make_DllORB",
"testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1"
);
ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
-ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testNotifyService",
"TAO_Notify_Service",
+ TAO_VERSION,
"_make_TAO_Notify_Service_Driver_INCORRECT",
"-NoNameSvc -RunThreads 0"
);
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp
index e0e602895c2..e5bc65f9de8 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp
@@ -13,18 +13,20 @@
char const * const scpc_orbId = "testDllOrb";
-ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testDllOrb",
"bug3688",
+ TAO_VERSION,
"_make_DllORB",
"testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1 -ORBInitRef NameService=file://naming.ior"
);
ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
-ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testNamingService",
"TAO_CosNaming_Serv",
+ TAO_VERSION,
"_make_TAO_Naming_Loader",
"testNameService testNameService -ORBId testDllOrb -m 0 -o naming.ior"
);
@@ -32,9 +34,10 @@ ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
ACE_TCHAR const * const scpc_unloadNameService = ACE_REMOVE_SERVICE_DIRECTIVE("testNamingService");
-ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"testNotifyService",
"TAO_Notify_Service",
+ TAO_VERSION,
"_make_TAO_Notify_Service_Driver",
"-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 1 -ORBInitRef NameService=file://naming.ior -IORoutput notify.ior"
);
diff --git a/TAO/tao/AnyTypeCode/Alias_TypeCode.cpp b/TAO/tao/AnyTypeCode/Alias_TypeCode.cpp
index 52fecbd4e45..4022a2dab9d 100644
--- a/TAO/tao/AnyTypeCode/Alias_TypeCode.cpp
+++ b/TAO/tao/AnyTypeCode/Alias_TypeCode.cpp
@@ -120,8 +120,7 @@ TAO::TypeCode::Alias<StringType,
{
TAO_TypeCodeFactory_Adapter * const adapter =
ACE_Dynamic_Service<TAO_TypeCodeFactory_Adapter>::instance (
- TAO_ORB_Core::typecodefactory_adapter_name ()
- );
+ TAO_ORB_Core::typecodefactory_adapter_name ());
if (adapter == 0)
{
diff --git a/TAO/tao/AnyTypeCode/Alias_TypeCode_Static.cpp b/TAO/tao/AnyTypeCode/Alias_TypeCode_Static.cpp
index 931e668c137..cb2787562b7 100644
--- a/TAO/tao/AnyTypeCode/Alias_TypeCode_Static.cpp
+++ b/TAO/tao/AnyTypeCode/Alias_TypeCode_Static.cpp
@@ -99,13 +99,11 @@ TAO::TypeCode::Alias<char const *,
CORBA::TypeCode_ptr
TAO::TypeCode::Alias<char const *,
CORBA::TypeCode_ptr const *,
- TAO::Null_RefCount_Policy>::get_compact_typecode_i (
- void) const
+ TAO::Null_RefCount_Policy>::get_compact_typecode_i (void) const
{
TAO_TypeCodeFactory_Adapter * const adapter =
ACE_Dynamic_Service<TAO_TypeCodeFactory_Adapter>::instance (
- TAO_ORB_Core::typecodefactory_adapter_name ()
- );
+ TAO_ORB_Core::typecodefactory_adapter_name ());
if (adapter == 0)
{
diff --git a/TAO/tao/AnyTypeCode/Any.cpp b/TAO/tao/AnyTypeCode/Any.cpp
index 127ceddbd01..1505b5444e9 100644
--- a/TAO/tao/AnyTypeCode/Any.cpp
+++ b/TAO/tao/AnyTypeCode/Any.cpp
@@ -464,8 +464,7 @@ operator<<= (CORBA::Any &any, CORBA::TypeCode_ptr * tc)
any,
CORBA::TypeCode::_tao_any_destructor,
CORBA::_tc_TypeCode,
- *tc
- );
+ *tc);
}
// Insertion of CORBA object - copying.
@@ -744,8 +743,7 @@ operator>>= (const CORBA::Any &any, CORBA::TypeCode_ptr &tc)
any,
CORBA::TypeCode::_tao_any_destructor,
CORBA::_tc_TypeCode,
- tc
- );
+ tc);
}
CORBA::Boolean
diff --git a/TAO/tao/AnyTypeCode/Any_Basic_Impl.cpp b/TAO/tao/AnyTypeCode/Any_Basic_Impl.cpp
index 33756904fe5..d0f95000579 100644
--- a/TAO/tao/AnyTypeCode/Any_Basic_Impl.cpp
+++ b/TAO/tao/AnyTypeCode/Any_Basic_Impl.cpp
@@ -92,8 +92,7 @@ namespace TAO
try
{
CORBA::TypeCode_ptr any_tc = any._tao_get_typecode ();
- CORBA::Boolean const _tao_equiv =
- any_tc->equivalent (tc);
+ CORBA::Boolean const _tao_equiv = any_tc->equivalent (tc);
if (!_tao_equiv)
{
diff --git a/TAO/tao/AnyTypeCode/Any_Impl_T.cpp b/TAO/tao/AnyTypeCode/Any_Impl_T.cpp
index 0416b960acf..2d5f97c515c 100644
--- a/TAO/tao/AnyTypeCode/Any_Impl_T.cpp
+++ b/TAO/tao/AnyTypeCode/Any_Impl_T.cpp
@@ -65,7 +65,7 @@ TAO::Any_Impl_T<T>::extract (const CORBA::Any & any,
CORBA::TypeCode_ptr any_tc = any._tao_get_typecode ();
CORBA::Boolean const _tao_equiv = any_tc->equivalent (tc);
- if (_tao_equiv == 0)
+ if (_tao_equiv == false)
{
return false;
}
diff --git a/TAO/tao/AnyTypeCode/Any_Special_Impl_T.cpp b/TAO/tao/AnyTypeCode/Any_Special_Impl_T.cpp
index 05dbc43b377..b7e0966eb72 100644
--- a/TAO/tao/AnyTypeCode/Any_Special_Impl_T.cpp
+++ b/TAO/tao/AnyTypeCode/Any_Special_Impl_T.cpp
@@ -85,8 +85,7 @@ TAO::Any_Special_Impl_T<T, from_T, to_T>::extract (const CORBA::Any & any,
{
CORBA::TypeCode_ptr any_type = any._tao_get_typecode ();
CORBA::TypeCode_var unaliased_any_type =
- TAO::unaliased_typecode (any_type
- );
+ TAO::unaliased_typecode (any_type);
CORBA::TCKind const any_kind =
unaliased_any_type->kind ();
@@ -133,8 +132,7 @@ TAO::Any_Special_Impl_T<T, from_T, to_T>::extract (const CORBA::Any & any,
false);
auto_ptr<TAO::Any_Special_Impl_T<T, from_T, to_T> > replacement_safety (
- replacement
- );
+ replacement);
// We know this will work since the unencoded case is covered above.
TAO::Unknown_IDL_Type * const unk =
diff --git a/TAO/tao/AnyTypeCode/Objref_TypeCode.cpp b/TAO/tao/AnyTypeCode/Objref_TypeCode.cpp
index 3860c6fb999..d38ad4e2cbd 100644
--- a/TAO/tao/AnyTypeCode/Objref_TypeCode.cpp
+++ b/TAO/tao/AnyTypeCode/Objref_TypeCode.cpp
@@ -82,8 +82,7 @@ TAO::TypeCode::Objref<StringType,
{
TAO_TypeCodeFactory_Adapter * const adapter =
ACE_Dynamic_Service<TAO_TypeCodeFactory_Adapter>::instance (
- TAO_ORB_Core::typecodefactory_adapter_name ()
- );
+ TAO_ORB_Core::typecodefactory_adapter_name ());
if (adapter == 0)
{
diff --git a/TAO/tao/AnyTypeCode/Objref_TypeCode.h b/TAO/tao/AnyTypeCode/Objref_TypeCode.h
index 5fe946cf468..98bc9eb47db 100644
--- a/TAO/tao/AnyTypeCode/Objref_TypeCode.h
+++ b/TAO/tao/AnyTypeCode/Objref_TypeCode.h
@@ -87,12 +87,9 @@ namespace TAO
* @see @c CORBA::TypeCode
*/
//@{
- virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::TypeCode_ptr get_compact_typecode_i (
- void) const;
+ virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::TypeCode_ptr get_compact_typecode_i (void) const;
virtual char const * id_i (void) const;
virtual char const * name_i (void) const;
diff --git a/TAO/tao/AnyTypeCode/Objref_TypeCode_Static.cpp b/TAO/tao/AnyTypeCode/Objref_TypeCode_Static.cpp
index d716a0d4f2e..87b3398b374 100644
--- a/TAO/tao/AnyTypeCode/Objref_TypeCode_Static.cpp
+++ b/TAO/tao/AnyTypeCode/Objref_TypeCode_Static.cpp
@@ -72,13 +72,11 @@ TAO::TypeCode::Objref<char const *, TAO::Null_RefCount_Policy>::equivalent_i (
CORBA::TypeCode_ptr
TAO::TypeCode::Objref<char const *,
- TAO::Null_RefCount_Policy>::get_compact_typecode_i (
- void) const
+ TAO::Null_RefCount_Policy>::get_compact_typecode_i (void) const
{
TAO_TypeCodeFactory_Adapter * const adapter =
ACE_Dynamic_Service<TAO_TypeCodeFactory_Adapter>::instance (
- TAO_ORB_Core::typecodefactory_adapter_name ()
- );
+ TAO_ORB_Core::typecodefactory_adapter_name ());
if (adapter == 0)
{
diff --git a/TAO/tao/AnyTypeCode/Sequence_TypeCode_Static.h b/TAO/tao/AnyTypeCode/Sequence_TypeCode_Static.h
index 717fc4ab013..76343318837 100644
--- a/TAO/tao/AnyTypeCode/Sequence_TypeCode_Static.h
+++ b/TAO/tao/AnyTypeCode/Sequence_TypeCode_Static.h
@@ -82,15 +82,11 @@ namespace TAO
* @see @c CORBA::TypeCode
*/
//@{
- virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::TypeCode_ptr get_compact_typecode_i (
- void) const;
+ virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::TypeCode_ptr get_compact_typecode_i (void) const;
virtual CORBA::ULong length_i (void) const;
- virtual CORBA::TypeCode_ptr content_type_i (
- void) const;
+ virtual CORBA::TypeCode_ptr content_type_i ( void) const;
private:
diff --git a/TAO/tao/AnyTypeCode/String_TypeCode.h b/TAO/tao/AnyTypeCode/String_TypeCode.h
index 362cfbb53fa..25307d27395 100644
--- a/TAO/tao/AnyTypeCode/String_TypeCode.h
+++ b/TAO/tao/AnyTypeCode/String_TypeCode.h
@@ -76,12 +76,9 @@ namespace TAO
* @see @c CORBA::TypeCode
*/
//@{
- virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::TypeCode_ptr get_compact_typecode_i (
- void) const;
+ virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::TypeCode_ptr get_compact_typecode_i (void) const;
virtual CORBA::ULong length_i (void) const;
private:
diff --git a/TAO/tao/AnyTypeCode/String_TypeCode_Static.h b/TAO/tao/AnyTypeCode/String_TypeCode_Static.h
index bc7419e1382..61f2e862d00 100644
--- a/TAO/tao/AnyTypeCode/String_TypeCode_Static.h
+++ b/TAO/tao/AnyTypeCode/String_TypeCode_Static.h
@@ -79,12 +79,9 @@ namespace TAO
* @see @c CORBA::TypeCode
*/
//@{
- virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::TypeCode_ptr get_compact_typecode_i (
- void) const;
+ virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::TypeCode_ptr get_compact_typecode_i (void) const;
virtual CORBA::ULong length_i (void) const;
private:
diff --git a/TAO/tao/AnyTypeCode/Struct_TypeCode_Static.h b/TAO/tao/AnyTypeCode/Struct_TypeCode_Static.h
index 4a627573908..8698e30ddbc 100644
--- a/TAO/tao/AnyTypeCode/Struct_TypeCode_Static.h
+++ b/TAO/tao/AnyTypeCode/Struct_TypeCode_Static.h
@@ -95,19 +95,14 @@ namespace TAO
* @see @c CORBA::TypeCode
*/
//@{
- virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::TypeCode_ptr get_compact_typecode_i (
- void) const;
+ virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::TypeCode_ptr get_compact_typecode_i (void) const;
virtual char const * id_i (void) const;
virtual char const * name_i (void) const;
virtual CORBA::ULong member_count_i (void) const;
- virtual char const * member_name_i (CORBA::ULong index
- ) const;
- virtual CORBA::TypeCode_ptr member_type_i (CORBA::ULong index
- ) const;
+ virtual char const * member_name_i (CORBA::ULong index) const;
+ virtual CORBA::TypeCode_ptr member_type_i (CORBA::ULong index) const;
//@}
private:
diff --git a/TAO/tao/AnyTypeCode/Union_TypeCode.h b/TAO/tao/AnyTypeCode/Union_TypeCode.h
index 54974153d1a..abc4fe801e4 100644
--- a/TAO/tao/AnyTypeCode/Union_TypeCode.h
+++ b/TAO/tao/AnyTypeCode/Union_TypeCode.h
@@ -96,21 +96,15 @@ namespace TAO
*/
//@{
virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc) const;
- virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc
- ) const;
- virtual CORBA::TypeCode_ptr get_compact_typecode_i (
- void) const;
+ virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc) const;
+ virtual CORBA::TypeCode_ptr get_compact_typecode_i (void) const;
virtual char const * id_i (void) const;
virtual char const * name_i (void) const;
virtual CORBA::ULong member_count_i (void) const;
- virtual char const * member_name_i (CORBA::ULong index
- ) const;
- virtual CORBA::TypeCode_ptr member_type_i (CORBA::ULong index
- ) const;
- virtual CORBA::Any * member_label_i (CORBA::ULong index
- ) const;
- virtual CORBA::TypeCode_ptr discriminator_type_i (
- void) const;
+ virtual char const * member_name_i (CORBA::ULong index) const;
+ virtual CORBA::TypeCode_ptr member_type_i (CORBA::ULong index) const;
+ virtual CORBA::Any * member_label_i (CORBA::ULong index) const;
+ virtual CORBA::TypeCode_ptr discriminator_type_i (void) const;
virtual CORBA::Long default_index_i (void) const;
//@}
diff --git a/TAO/tao/Any_Insert_Policy_T.h b/TAO/tao/Any_Insert_Policy_T.h
index 0745821d7cb..393e50ede71 100644
--- a/TAO/tao/Any_Insert_Policy_T.h
+++ b/TAO/tao/Any_Insert_Policy_T.h
@@ -54,8 +54,7 @@ namespace TAO
{
TAO_AnyTypeCode_Adapter *adapter =
ACE_Dynamic_Service<TAO_AnyTypeCode_Adapter>::instance (
- "AnyTypeCode_Adapter"
- );
+ "AnyTypeCode_Adapter");
if (adapter)
{
@@ -79,8 +78,7 @@ namespace TAO
{
TAO_IFR_Client_Adapter *adapter =
ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance (
- "Concrete_IFR_Client_Adapter"
- );
+ "Concrete_IFR_Client_Adapter");
adapter->interfacedef_any_insert (p, x);
}
diff --git a/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp b/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp
index bd92317f7ed..142da69b110 100644
--- a/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp
+++ b/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp
@@ -8,9 +8,10 @@
#include "tao/debug.h"
static const ACE_TCHAR csd_poa_factory_directive[] =
- ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"TAO_CSD_Object_Adapter_Factory",
"TAO_CSD_Framework",
+ TAO_VERSION,
"_make_TAO_CSD_Object_Adapter_Factory",
"");
diff --git a/TAO/tao/Cache_Entries_T.h b/TAO/tao/Cache_Entries_T.h
index 7ff66c64f85..76d41160432 100644
--- a/TAO/tao/Cache_Entries_T.h
+++ b/TAO/tao/Cache_Entries_T.h
@@ -194,7 +194,7 @@ namespace TAO
transport_descriptor_type *transport_property_;
/// Do we need to delete transport_property?
- CORBA::Boolean is_delete_;
+ bool is_delete_;
/**
* This is a supplementary index. Would be set to zero by
diff --git a/TAO/tao/Codeset/Codeset_Manager_i.cpp b/TAO/tao/Codeset/Codeset_Manager_i.cpp
index a7be918442f..1264a62973e 100644
--- a/TAO/tao/Codeset/Codeset_Manager_i.cpp
+++ b/TAO/tao/Codeset/Codeset_Manager_i.cpp
@@ -352,8 +352,9 @@ TAO_Codeset_Manager_i::open(TAO_ORB_Core& core)
instance ("UTF8_Latin1_Factory");
if (fact == 0)
ACE_Service_Config::process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE ("UTF8_Latin1_Factory",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE ("UTF8_Latin1_Factory",
"TAO_Codeset",
+ TAO_VERSION,
"_make_TAO_UTF8_Latin1_Factory",
""));
else
@@ -369,8 +370,9 @@ TAO_Codeset_Manager_i::open(TAO_ORB_Core& core)
instance ("UTF16_BOM_Factory");
if (fact == 0)
ACE_Service_Config::process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE ("UTF16_BOM_Factory",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE ("UTF16_BOM_Factory",
"TAO_Codeset",
+ TAO_VERSION,
"_make_TAO_UTF16_BOM_Factory",
""));
else
diff --git a/TAO/tao/GIOP_Message_Base.cpp b/TAO/tao/GIOP_Message_Base.cpp
index 4e2f872df50..f4ddd3473d5 100644
--- a/TAO/tao/GIOP_Message_Base.cpp
+++ b/TAO/tao/GIOP_Message_Base.cpp
@@ -695,7 +695,7 @@ TAO_GIOP_Message_Base::process_request_message (TAO_Transport *transport,
}
TAO_InputCDR input_cdr (db,
- db->flags (),
+ flg,
rd_pos,
wr_pos,
qd->byte_order (),
@@ -813,7 +813,7 @@ TAO_GIOP_Message_Base::process_reply_message (
// we pass it on to the higher layers of the ORB. So we dont to any
// copies at all here.
TAO_InputCDR input_cdr (db,
- db->flags (),
+ flg,
rd_pos,
wr_pos,
qd->byte_order (),
diff --git a/TAO/tao/LocateRequest_Invocation.cpp b/TAO/tao/LocateRequest_Invocation.cpp
index 9b1a9768335..6e6b173d912 100644
--- a/TAO/tao/LocateRequest_Invocation.cpp
+++ b/TAO/tao/LocateRequest_Invocation.cpp
@@ -126,7 +126,7 @@ namespace TAO
countdown.update ();
// For some strategies one may want to release the transport
- // back to cache. If the idling is successful let the
+ // back to cache. If the idling is successful let the
// resolver about that.
if (this->resolver_.transport ()->idle_after_send ())
this->resolver_.transport_released ();
diff --git a/TAO/tao/Messaging/AMH_Response_Handler.h b/TAO/tao/Messaging/AMH_Response_Handler.h
index df4fd4b836c..12261a60cfa 100644
--- a/TAO/tao/Messaging/AMH_Response_Handler.h
+++ b/TAO/tao/Messaging/AMH_Response_Handler.h
@@ -64,14 +64,7 @@ typedef ACE_Allocator TAO_AMH_BUFFER_ALLOCATOR;
* application.
*/
class TAO_Messaging_Export TAO_AMH_Response_Handler
-// @@ Mayur, this is not the correct way to use
-// TAO_LocalRefCounted_Object. Application code is supposed to use
-// it when necessary. You're forcing applications to use a
-// reference counted version of their AMH_Response_Handler. This
-// isn't consistent with the specified semantics detailed in the
-// CCM spec. Please remove this and place it where appropriate in
-// your AMH tests and examples.
- : public ::CORBA::LocalObject
+ : public virtual ::CORBA::LocalObject
{
public:
diff --git a/TAO/tao/Monitor/Monitor.cpp b/TAO/tao/Monitor/Monitor.cpp
index 6258b199287..70e4faff70b 100644
--- a/TAO/tao/Monitor/Monitor.cpp
+++ b/TAO/tao/Monitor/Monitor.cpp
@@ -4,10 +4,10 @@
#include "tao/Monitor/Monitor.h"
#include "tao/Monitor/Monitor_Impl.h"
-TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
#if defined (TAO_HAS_MONITOR_FRAMEWORK) && (TAO_HAS_MONITOR_FRAMEWORK == 1)
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
TAO_Monitor_Init::TAO_Monitor_Init (void)
{
}
diff --git a/TAO/tao/ORBInitializer_Registry.cpp b/TAO/tao/ORBInitializer_Registry.cpp
index de84e437005..0ec90d435f8 100644
--- a/TAO/tao/ORBInitializer_Registry.cpp
+++ b/TAO/tao/ORBInitializer_Registry.cpp
@@ -47,8 +47,9 @@ namespace PortableInterceptor
if (orbinitializer_registry_ == 0)
{
ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("ORBInitializer_Registry",
+ ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("ORBInitializer_Registry",
"TAO_PI",
+ TAO_VERSION,
"_make_ORBInitializer_Registry",
""));
orbinitializer_registry_ =
diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp
index 65b70e41fd6..4c8ca2c2464 100644
--- a/TAO/tao/ORB_Core.cpp
+++ b/TAO/tao/ORB_Core.cpp
@@ -1720,8 +1720,9 @@ TAO_ORB_Core::policy_factory_registry_i (void)
if (loader == 0)
{
this->configuration ()->process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("PolicyFactory_Loader",
+ ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("PolicyFactory_Loader",
"TAO_PI",
+ TAO_VERSION,
"_make_TAO_PolicyFactory_Loader",
""));
loader =
@@ -1772,8 +1773,9 @@ TAO_ORB_Core::orbinitializer_registry_i (void)
if (this->orbinitializer_registry_ == 0)
{
this->configuration ()->process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE ("ORBInitializer_Registry",
+ ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE ("ORBInitializer_Registry",
"TAO_PI",
+ TAO_VERSION,
"_make_ORBInitializer_Registry",
""));
this->orbinitializer_registry_ =
@@ -2527,8 +2529,9 @@ TAO_ORB_Core::resolve_typecodefactory_i (void)
if (loader == 0)
{
this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TypeCodeFactory",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("TypeCodeFactory",
"TAO_TypeCodeFactory",
+ TAO_VERSION,
"_make_TAO_TypeCodeFactory_Loader",
""));
loader =
@@ -2560,8 +2563,9 @@ TAO_ORB_Core::resolve_codecfactory_i (void)
if (loader == 0)
{
this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("CodecFactory",
"TAO_CodecFactory",
+ TAO_VERSION,
"_make_TAO_CodecFactory_Loader",
""));
loader =
@@ -2587,8 +2591,9 @@ TAO_ORB_Core::resolve_compression_manager_i (void)
if (loader == 0)
{
this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("Compression",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("Compression",
"TAO_Compression",
+ TAO_VERSION,
"_make_TAO_Compression_Loader",
""));
loader =
@@ -2613,8 +2618,9 @@ TAO_ORB_Core::resolve_poa_current_i (void)
if (loader == 0)
{
this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_POA_Current_Factory",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("TAO_POA_Current_Factory",
"TAO_PortableServer",
+ TAO_VERSION,
"_make_TAO_POA_Current_Factory",
""));
loader =
@@ -2642,8 +2648,9 @@ TAO_ORB_Core::resolve_picurrent_i (void)
if (loader == 0)
{
this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("PICurrent_Loader",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("PICurrent_Loader",
"TAO_PI",
+ TAO_VERSION,
"_make_TAO_PICurrent_Loader",
""));
loader =
@@ -2673,8 +2680,9 @@ TAO_ORB_Core::resolve_dynanyfactory_i (void)
if (loader == 0)
{
this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("DynamicAny_Loader",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("DynamicAny_Loader",
"TAO_DynamicAny",
+ TAO_VERSION,
"_make_TAO_DynamicAny_Loader",
""));
loader =
@@ -2700,8 +2708,9 @@ TAO_ORB_Core::resolve_iormanipulation_i (void)
if (loader == 0)
{
this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("IORManip_Loader",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("IORManip_Loader",
"TAO_IORManip",
+ TAO_VERSION,
"_make_TAO_IORManip_Loader",
""));
loader =
@@ -2726,8 +2735,9 @@ TAO_ORB_Core::resolve_ior_table_i (void)
if (factory == 0)
{
this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_IORTable",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("TAO_IORTable",
"TAO_IORTable",
+ TAO_VERSION,
"_make_TAO_Table_Adapter_Factory",
""));
factory =
@@ -2761,8 +2771,9 @@ TAO_ORB_Core::resolve_monitor_i (void)
if (loader == 0)
{
this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("Monitor_Init",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("Monitor_Init",
"TAO_Monitor",
+ TAO_VERSION,
"_make_TAO_Monitor_Init",
""));
loader =
diff --git a/TAO/tao/ObjRefTemplate/ORT_Adapter_Factory_Impl.h b/TAO/tao/ObjRefTemplate/ORT_Adapter_Factory_Impl.h
index b149e24a073..61fe6c718d7 100644
--- a/TAO/tao/ObjRefTemplate/ORT_Adapter_Factory_Impl.h
+++ b/TAO/tao/ObjRefTemplate/ORT_Adapter_Factory_Impl.h
@@ -48,7 +48,7 @@ namespace TAO
/// Destroy an adapter that is created by this factory
virtual void destroy (TAO::ORT_Adapter * adapter);
- // Used to force the initialization of the code.
+ /// Used to force the initialization of the code.
static int Initializer (void);
};
}
diff --git a/TAO/tao/ObjRefTemplate/ORT_Adapter_Impl.h b/TAO/tao/ObjRefTemplate/ORT_Adapter_Impl.h
index bdc9af25c20..e38048c774a 100644
--- a/TAO/tao/ObjRefTemplate/ORT_Adapter_Impl.h
+++ b/TAO/tao/ObjRefTemplate/ORT_Adapter_Impl.h
@@ -91,9 +91,7 @@ namespace TAO
/// The ORT Factory.
PortableInterceptor::ObjectReferenceFactory_var ort_factory_;
-
};
-
}
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/PI/ORBInitInfo.cpp b/TAO/tao/PI/ORBInitInfo.cpp
index cb1f7e5b9da..18e844abf28 100644
--- a/TAO/tao/PI/ORBInitInfo.cpp
+++ b/TAO/tao/PI/ORBInitInfo.cpp
@@ -116,8 +116,9 @@ TAO_ORBInitInfo::codec_factory (void)
if (loader == 0)
{
ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory",
+ ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("CodecFactory",
"TAO_CodecFactory",
+ TAO_VERSION,
"_make_TAO_CodecFactory_Loader",
""));
loader =
diff --git a/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp b/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp
index 05d7598c293..0c82a670673 100644
--- a/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp
+++ b/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp
@@ -78,8 +78,8 @@ namespace TAO
if (adapter == 0)
{
ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "ImR_Client_Adapter", "TAO_ImR_Client",
+ ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
+ "ImR_Client_Adapter", "TAO_ImR_Client", TAO_VERSION,
"_make_ImR_Client_Adapter_Impl", ""));
adapter =
diff --git a/TAO/tao/PortableServer/POA.pidl b/TAO/tao/PortableServer/POA.pidl
index 5d8b63a895a..15d562819c6 100644
--- a/TAO/tao/PortableServer/POA.pidl
+++ b/TAO/tao/PortableServer/POA.pidl
@@ -143,7 +143,6 @@ module PortableServer
# if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO) && !defined (TAO_HAS_MINIMUM_POA)
// Servant Manager registration:
-
ServantManager get_servant_manager ()
raises (WrongPolicy);
@@ -151,7 +150,6 @@ module PortableServer
raises (WrongPolicy);
// Operations for the USE_DEFAULT_SERVANT policy.
-
Servant get_servant ()
raises (NoServant,
WrongPolicy);
@@ -161,7 +159,6 @@ module PortableServer
# endif
// Object activation and deactivation.
-
ObjectId activate_object (in Servant p_servant)
raises (ServantAlreadyActive,
WrongPolicy);
@@ -176,7 +173,6 @@ module PortableServer
raises (ObjectNotActive, WrongPolicy);
// Reference creation operations.
-
Object create_reference (in CORBA::RepositoryId intf)
raises (WrongPolicy);
diff --git a/TAO/tao/PortableServer/Root_POA.cpp b/TAO/tao/PortableServer/Root_POA.cpp
index 9a16a689d7d..497ed456c83 100644
--- a/TAO/tao/PortableServer/Root_POA.cpp
+++ b/TAO/tao/PortableServer/Root_POA.cpp
@@ -199,6 +199,7 @@ TAO_Root_POA::TAO_Root_POA (const TAO_Root_POA::String &name,
profile_id_array_ (0),
policies_ (policies),
ort_adapter_ (0),
+ ort_adapter_factory_ (0),
adapter_state_ (PortableInterceptor::HOLDING),
network_priority_hook_ (0),
#if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
@@ -245,6 +246,11 @@ TAO_Root_POA::TAO_Root_POA (const TAO_Root_POA::String &name,
*this, this->policies_);
}
+ // Cache ort adapter factory
+ this->ort_adapter_factory_
+ = ACE_Dynamic_Service<TAO::ORT_Adapter_Factory>::instance
+ (orb_core_.configuration (), TAO_Root_POA::ort_adapter_factory_name ());
+
#if (TAO_HAS_MINIMUM_POA == 1)
// If this is the RootPOA, set the value of the ImplicitActivationPolicy
// to IMPLICIT_ACTIVATION since it is impossible to pass the policy
@@ -402,10 +408,10 @@ TAO_Root_POA::complete_destruction_i (void)
{
ort_adapter->release (my_array_obj_ref_template[0]);
- TAO::ORT_Adapter_Factory *ort_factory =
- this->ORT_adapter_factory ();
-
- ort_factory->destroy (ort_adapter);
+ if (this->ort_adapter_factory_)
+ {
+ this->ort_adapter_factory_->destroy (ort_adapter);
+ }
this->ort_adapter_ = 0;
}
@@ -939,10 +945,10 @@ TAO_Root_POA::destroy_i (CORBA::Boolean etherealize_objects,
{
ort_adapter->release (my_array_obj_ref_template[0]);
- TAO::ORT_Adapter_Factory *ort_factory =
- this->ORT_adapter_factory ();
-
- ort_factory->destroy (ort_adapter);
+ if (this->ort_adapter_factory_)
+ {
+ this->ort_adapter_factory_->destroy (ort_adapter);
+ }
this->ort_adapter_ = 0;
}
@@ -1313,8 +1319,7 @@ TAO_Root_POA::invoke_key_to_object_helper_i (const char * repository_id,
if (this->ORT_adapter_i ())
{
// Ask the ORT to create the object.
- return this->ort_adapter_->make_object (repository_id,
- user_oid);
+ return this->ort_adapter_->make_object (repository_id, user_oid);
}
else
{
@@ -2225,51 +2230,38 @@ TAO_Root_POA::find_servant_priority (
find_servant_priority (system_id, priority);
}
-TAO::ORT_Adapter_Factory *
-TAO_Root_POA::ORT_adapter_factory (void)
-{
- return ACE_Dynamic_Service<TAO::ORT_Adapter_Factory>::instance
- (orb_core_.configuration (),
- TAO_Root_POA::ort_adapter_factory_name ());
-}
-
TAO::ORT_Adapter *
TAO_Root_POA::ORT_adapter_i (void)
{
- if (this->ort_adapter_ != 0)
- return this->ort_adapter_;
-
- try
+ if ((this->ort_adapter_factory_) && (this->ort_adapter_ == 0))
{
- TAO::ORT_Adapter_Factory * ort_ap_factory = this->ORT_adapter_factory ();
-
- if (!ort_ap_factory)
- return 0;
-
- // Get the full adapter name of this POA, do this before we
- // create the adapter so that in case this fails, we just
- // return 0 and not a not activated adapter
- PortableInterceptor::AdapterName *adapter_name = this->adapter_name_i ();
-
- this->ort_adapter_ = ort_ap_factory->create ();
+ try
+ {
+ // Get the full adapter name of this POA, do this before we
+ // create the adapter so that in case this fails, we just
+ // return 0 and not a not activated adapter
+ PortableInterceptor::AdapterName *adapter_name = this->adapter_name_i ();
- if (!this->ort_adapter_)
- return 0;
+ this->ort_adapter_ = this->ort_adapter_factory_->create ();
- // @todo We have to look at this, we activate it but hold the POA lock,
- // in case we are called by ORT_adapter, we shouldn't keep the lock
- // here, but then the ort_adapter should be guarded against multiple
- // activations.
- this->ort_adapter_->activate (this->orb_core_.server_id (),
- this->orb_core_.orbid (),
- adapter_name,
- this);
- }
- catch (const ::CORBA::Exception& ex)
- {
- ex._tao_print_exception (
- "(%P|%t) Cannot initialize the "
- "object_reference_template_adapter\n");
+ if (this->ort_adapter_)
+ {
+ // @todo We have to look at this, we activate it but hold the POA lock,
+ // in case we are called by ORT_adapter, we shouldn't keep the lock
+ // here, but then the ort_adapter should be guarded against multiple
+ // activations.
+ this->ort_adapter_->activate (this->orb_core_.server_id (),
+ this->orb_core_.orbid (),
+ adapter_name,
+ this);
+ }
+ }
+ catch (const ::CORBA::Exception& ex)
+ {
+ ex._tao_print_exception (
+ "(%P|%t) Cannot initialize the "
+ "object_reference_template_adapter\n");
+ }
}
return this->ort_adapter_;
diff --git a/TAO/tao/PortableServer/Root_POA.h b/TAO/tao/PortableServer/Root_POA.h
index ee14f22a65d..ecb17d5b2a9 100644
--- a/TAO/tao/PortableServer/Root_POA.h
+++ b/TAO/tao/PortableServer/Root_POA.h
@@ -404,7 +404,7 @@ public:
TAO::Portable_Server::POA_Current_Impl &poa_current_impl);
/**
- * Find the the servant with ObjectId <system_id>, and retrieve
+ * Find the the servant with ObjectId @a system_id, and retrieve
* its priority. Usually used in RT CORBA with SERVER_DECLARED
* priority model.
*
@@ -649,8 +649,6 @@ protected:
/// try to create one but assumes the POA lock is already hold
TAO::ORT_Adapter *ORT_adapter_i (void);
- TAO::ORT_Adapter_Factory *ORT_adapter_factory (void);
-
CORBA::Boolean persistent (void);
static char persistent_key_char (void);
@@ -706,6 +704,9 @@ protected:
/// Pointer to the object reference template adapter.
TAO::ORT_Adapter *ort_adapter_;
+ /// Pointer to the object reference template adapter factory.
+ TAO::ORT_Adapter_Factory *ort_adapter_factory_;
+
/// Adapter can be accepting, rejecting etc.
PortableInterceptor::AdapterState adapter_state_;
diff --git a/TAO/tao/RTCORBA/RT_ORBInitializer.cpp b/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
index 0fb917121dc..7e406b772f1 100644
--- a/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
+++ b/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
@@ -36,9 +36,10 @@
static const char rt_poa_factory_name[] = "TAO_RT_Object_Adapter_Factory";
static const ACE_TCHAR rt_poa_factory_directive[] =
- ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE(
"TAO_RT_Object_Adapter_Factory",
"TAO_RTPortableServer",
+ TAO_VERSION,
"_make_TAO_RT_Object_Adapter_Factory",
"");
diff --git a/TAO/tao/RTScheduling/Request_Interceptor.cpp b/TAO/tao/RTScheduling/Request_Interceptor.cpp
index f33bd1a2241..d376ba678e0 100644
--- a/TAO/tao/RTScheduling/Request_Interceptor.cpp
+++ b/TAO/tao/RTScheduling/Request_Interceptor.cpp
@@ -39,7 +39,7 @@ Client_Interceptor::send_request (PortableInterceptor::ClientRequestInfo_ptr ri)
{
// Generate GUID.
RTScheduling::Current::IdType guid;
- guid.length (sizeof(long));
+ guid.length (sizeof(size_t));
size_t temp = ++TAO_RTScheduler_Current::guid_counter;
ACE_OS::memcpy (guid.get_buffer (),
diff --git a/TAO/tao/TAO_Internal.cpp b/TAO/tao/TAO_Internal.cpp
index 3940142bbfa..aeb47f3d6c8 100644
--- a/TAO/tao/TAO_Internal.cpp
+++ b/TAO/tao/TAO_Internal.cpp
@@ -607,9 +607,10 @@ namespace
ACE_REMOVE_SERVICE_DIRECTIVE ("TAO_Codeset"));
ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE (
+ ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE (
"TAO_Codeset",
"TAO_Codeset",
+ TAO_VERSION,
"_make_TAO_Codeset_Manager_Factory",
""));
diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp
index 4b44cd5db90..b85f65966e1 100644
--- a/TAO/tao/Transport.cpp
+++ b/TAO/tao/Transport.cpp
@@ -2632,13 +2632,8 @@ TAO_Transport::process_queue_head (TAO_Resume_Handle &rh)
}
int
-TAO_Transport::notify_reactor (void)
+TAO_Transport::notify_reactor_now (void)
{
- if (!this->ws_->is_registered ())
- {
- return 0;
- }
-
ACE_Event_Handler *eh = this->event_handler_i ();
// Get the reactor associated with the event handler
diff --git a/TAO/tao/Transport.h b/TAO/tao/Transport.h
index 69633422a97..84920bf9c7a 100644
--- a/TAO/tao/Transport.h
+++ b/TAO/tao/Transport.h
@@ -544,8 +544,8 @@ public:
* thread can execute it on the same instance concurrently.
*
* @param buffer ORB allocated buffer where the data should be
- * @@ The ACE_Time_Value *s is just a place holder for now. It is
- * not clear this this is the best place to specify this. The actual
+ * @param timeout The ACE_Time_Value *s is just a place holder for now. It is
+ * not clear this this is the best place to specify this. The actual
* timeout values will be kept in the Policies.
*/
virtual ssize_t recv (char *buffer,
@@ -1052,6 +1052,14 @@ private:
*/
int notify_reactor (void);
+protected:
+ /*
+ * Same as notify_reactor above but does NOT first check for a
+ * registered TAO_Wait_Strategy.
+ */
+ int notify_reactor_now (void);
+
+private:
/// Assume the lock is held
void send_connection_closed_notifications_i (void);
diff --git a/TAO/tao/Transport.inl b/TAO/tao/Transport.inl
index 4c17c1feaef..c3085630617 100644
--- a/TAO/tao/Transport.inl
+++ b/TAO/tao/Transport.inl
@@ -278,7 +278,18 @@ TAO::Transport::Stats::opened_since (void) const
{
return this->opened_since_;
}
+
#endif /* TAO_HAS_TRANSPORT_CURRENT == 1 */
+ACE_INLINE int
+TAO_Transport::notify_reactor (void)
+{
+ if (!this->ws_->is_registered ())
+ {
+ return 0;
+ }
+
+ return this->notify_reactor_now ();
+}
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/Transport_Cache_Manager_T.cpp b/TAO/tao/Transport_Cache_Manager_T.cpp
index 00ba766b6e7..e4b903bc5b0 100644
--- a/TAO/tao/Transport_Cache_Manager_T.cpp
+++ b/TAO/tao/Transport_Cache_Manager_T.cpp
@@ -236,8 +236,7 @@ namespace TAO
return CACHE_FOUND_NONE;
}
- Find_Result find_result = this->find (
- prop, transport, busy_count);
+ Find_Result const find_result = this->find (prop, transport, busy_count);
if (find_result != CACHE_FOUND_NONE)
{
if (find_result == CACHE_FOUND_AVAILABLE)
@@ -300,7 +299,6 @@ namespace TAO
if (this->is_entry_available_i (*entry))
{
// Successfully found a transport_type.
-
found = CACHE_FOUND_AVAILABLE;
found_entry = entry;
entry->item ().recycle_state (ENTRY_BUSY);
diff --git a/TAO/tao/Transport_Connector.cpp b/TAO/tao/Transport_Connector.cpp
index 160eec30b83..b717d8027fd 100644
--- a/TAO/tao/Transport_Connector.cpp
+++ b/TAO/tao/Transport_Connector.cpp
@@ -312,7 +312,7 @@ TAO_Connector::parallel_connect (TAO::Profile_Transport_Resolver *r,
TAO_Base_Transport_Property desc2(ep,0);
size_t busy_count = 0;
if (tcm.find_transport (&desc2, base_transport, busy_count) ==
- TAO::Transport_Cache_Manager::CACHE_FOUND_AVAILABLE )
+ TAO::Transport_Cache_Manager::CACHE_FOUND_AVAILABLE)
{
if (TAO_debug_level)
{
@@ -561,7 +561,6 @@ TAO_Connector::connect (TAO::Profile_Transport_Resolver *r,
// invocation is done with it. In that case it is up to
// a subsequent invocation to handle the connection
// completion.
-
TransportCleanupGuard tg(base_transport);
if (!this->wait_for_connection_completion (r, *desc,
base_transport,
@@ -651,7 +650,7 @@ TAO_Connector::connect (TAO::Profile_Transport_Resolver *r,
// @todo: This is not the right place for this! (bugzilla 3023)
// Purge connections (if necessary)
tcm.purge ();
- bool make_new_connection =
+ bool const make_new_connection =
(found == TAO::Transport_Cache_Manager::CACHE_FOUND_NONE) ||
(found == TAO::Transport_Cache_Manager::CACHE_FOUND_BUSY
&& this->new_connection_is_ok (busy_count));
diff --git a/TAO/tao/Utils/PolicyList_Destroyer.cpp b/TAO/tao/Utils/PolicyList_Destroyer.cpp
index adc8436e240..5e15e55e325 100644
--- a/TAO/tao/Utils/PolicyList_Destroyer.cpp
+++ b/TAO/tao/Utils/PolicyList_Destroyer.cpp
@@ -10,24 +10,20 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
TAO::Utils::PolicyList_Destroyer::~PolicyList_Destroyer() throw ()
{
-
for (CORBA::ULong i = 0; i != length(); ++i)
{
CORBA::Policy_ptr policy = (*this)[i];
- if (CORBA::is_nil (policy))
- {
- continue;
- }
-
- try
+ if (!CORBA::is_nil (policy))
{
- policy->destroy ();
+ try
+ {
+ policy->destroy ();
+ (*this)[i] = CORBA::Policy::_nil();
+ }
+ catch (...)
+ {
+ }
}
- catch (...)
- {
- }
-
- (*this)[i] = CORBA::Policy::_nil();
}
}
diff --git a/TAO/tao/Version.h b/TAO/tao/Version.h
index a9560d6af55..6a59c5fd4fb 100644
--- a/TAO/tao/Version.h
+++ b/TAO/tao/Version.h
@@ -5,5 +5,5 @@
#define TAO_MAJOR_VERSION 2
#define TAO_MINOR_VERSION 1
-#define TAO_BETA_VERSION 4
-#define TAO_VERSION "2.1.4"
+#define TAO_BETA_VERSION 7
+#define TAO_VERSION "2.1.7"
diff --git a/TAO/tao/params.cpp b/TAO/tao/params.cpp
index d9482d5dbef..bc286c1a0e5 100644
--- a/TAO/tao/params.cpp
+++ b/TAO/tao/params.cpp
@@ -2,6 +2,7 @@
#include "tao/params.h"
#include "tao/orbconf.h"
+#include "tao/Version.h"
#if !defined (__ACE_INLINE__)
# include "tao/params.inl"
@@ -59,8 +60,9 @@ TAO_ORB_Parameters::TAO_ORB_Parameters (void)
, dynamic_thread_pool_config_name_ ()
, poa_factory_name_ ("TAO_Object_Adapter_Factory")
, poa_factory_directive_
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_Object_Adapter_Factory",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("TAO_Object_Adapter_Factory",
"TAO_PortableServer",
+ TAO_VERSION,
"_make_TAO_Object_Adapter_Factory",
""))
, forward_invocation_on_object_not_exist_ (false)
diff --git a/TAO/tests/Bug_4082_Regression/Bug_4082_Regression.cpp b/TAO/tests/Bug_4082_Regression/Bug_4082_Regression.cpp
new file mode 100644
index 00000000000..609d1089361
--- /dev/null
+++ b/TAO/tests/Bug_4082_Regression/Bug_4082_Regression.cpp
@@ -0,0 +1,35 @@
+// $Id$
+#include "Bug_4082_RegressionC.h"
+#include "tao/AnyTypeCode/TypeCode.h"
+
+int ACE_TMAIN (int, ACE_TCHAR *[])
+{
+ MyLongSeq mls (2);
+ mls.length (2);
+ mls[0] = 0;
+ mls[1] = 1;
+ CORBA::Any a;
+ a <<= mls;
+
+ CORBA::TypeCode_var tc = a.type ();
+ if (!tc->equivalent (CORBA::_tc_LongSeq) || tc->equal (CORBA::_tc_LongSeq))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: Test precondition not met\n")));
+ return 1;
+ }
+
+ const CORBA::LongSeq *cls = 0;
+ if (!(a >>= cls))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: Failed to extract\n")));
+ return 1;
+ }
+
+ if (!cls || cls->length () != 2 || (*cls)[0] != 0 || (*cls)[1] != 1)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: Extract invalid data\n")));
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_4082_Regression/Bug_4082_Regression.idl b/TAO/tests/Bug_4082_Regression/Bug_4082_Regression.idl
new file mode 100644
index 00000000000..2eaf7daadc4
--- /dev/null
+++ b/TAO/tests/Bug_4082_Regression/Bug_4082_Regression.idl
@@ -0,0 +1,4 @@
+// $Id$
+#include "tao/LongSeq.pidl"
+
+typedef sequence<long> MyLongSeq;
diff --git a/TAO/tests/Bug_4082_Regression/Bug_4082_Regression.mpc b/TAO/tests/Bug_4082_Regression/Bug_4082_Regression.mpc
new file mode 100644
index 00000000000..9e239111671
--- /dev/null
+++ b/TAO/tests/Bug_4082_Regression/Bug_4082_Regression.mpc
@@ -0,0 +1,3 @@
+// $Id$
+project: taoclient, anytypecode {
+}
diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl b/TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl
index 5c38153c233..c4c07660b20 100755
--- a/TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl
+++ b/TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl
@@ -146,7 +146,7 @@ for ($i = 0; $i < $num_remote_clients; $i++) {
}
for ($i = 0; $i < $num_remote_clients; $i++) {
- $client_status = $CLS[$i]->WaitKill($client->ProcessStopWaitInterval ());
+ $client_status = $CLS[$i]->WaitKill(2 * $client->ProcessStopWaitInterval ());
if ($client_status != 0) {
print STDERR "ERROR: client $i returned $client_status\n";
diff --git a/TAO/tests/IDL_Test/IDL_Test.mpc b/TAO/tests/IDL_Test/IDL_Test.mpc
index 13d97910bce..d23f339a4e9 100644
--- a/TAO/tests/IDL_Test/IDL_Test.mpc
+++ b/TAO/tests/IDL_Test/IDL_Test.mpc
@@ -84,6 +84,13 @@ project(*IDL): taoserver, messaging, gen_ostream {
typedef.idl
typecode.idl
}
+
+ IDL_Files {
+ // Workaround to get tao_idl to process multiple files in one pass,
+ // since MPC doesn't support it.
+ idlflags += loader_const.idl
+ PEMNaming.idl
+ }
}
project(*DLL): taoidldefaults, taolib, messaging {
@@ -158,6 +165,7 @@ project(*DLL): taoidldefaults, taolib, messaging {
keywordsA.cpp
keywordsC.cpp
keywordsS.cpp
+ loader_constC.cpp
moduleA.cpp
moduleC.cpp
moduleS.cpp
@@ -177,6 +185,8 @@ project(*DLL): taoidldefaults, taolib, messaging {
old_unionS.cpp
paramsC.cpp
paramsS.cpp
+ PEMNamingC.cpp
+ PEMNamingS.cpp
pragmaA.cpp
pragmaC.cpp
pragmaS.cpp
diff --git a/TAO/tests/IDL_Test/PEMNaming.idl b/TAO/tests/IDL_Test/PEMNaming.idl
new file mode 100644
index 00000000000..9248319643c
--- /dev/null
+++ b/TAO/tests/IDL_Test/PEMNaming.idl
@@ -0,0 +1,61 @@
+// $Id$
+
+#ifndef _PEM_NAMING_IDL_
+#define _PEM_NAMING_IDL_
+
+module Plesk
+{
+ typedef long TObjectID;
+
+ enum TBool
+ {
+ TB_NO,
+ TB_YES,
+ TB_MAYBE
+ };
+
+ struct TProperty
+ {
+ string name;
+ string value;
+ };
+
+ typedef sequence<TProperty> TPropertyList;
+
+ exception ExSystem
+ {
+ string module_id;
+ long extype_id;
+ long errcode;
+ long errcode_minor;
+ string errmsg;
+ TPropertyList props;
+ TBool transient;
+ };
+
+ module Naming
+ {
+ struct NamingContext
+ {
+ string kernel_resolver_ior;
+ };
+
+ const long ERR_NO_SUCH_OBJ = 6; // don't change it
+ // reserved for Naming
+
+ interface ObjectResolver
+ {
+# pragma version ObjectResolver 1.2
+
+ Object
+ resolve (in string service_type, inout TObjectID sc_id)
+ raises (ExSystem);
+
+ Object
+ resolve_sc (in string service_type, in string version, inout TObjectID sc_id)
+ raises (ExSystem);
+ };
+ }; // module Naming
+}; // module Plesk
+
+#endif // _PEM_NAMING_IDL_
diff --git a/TAO/tests/IDL_Test/loader_const.idl b/TAO/tests/IDL_Test/loader_const.idl
new file mode 100644
index 00000000000..5eee3b0d563
--- /dev/null
+++ b/TAO/tests/IDL_Test/loader_const.idl
@@ -0,0 +1,20 @@
+// $Id$
+
+#ifndef _LOADER_CONST_IDL_
+#define _LOADER_CONST_IDL_
+
+// This include caused a crash when another IDL file is processed after
+// this one in one pass. The node in the AST corresponding to the CORBA
+// module where the basic types are declared contained garbage due to
+// subsequent openings in the included file, which are destroyed between
+// files in the list (unlike the one containing the basic types).
+#include <orb.idl>
+
+#pragma prefix ""
+
+module Plesk
+{
+ const unsigned long PLESK_VENDOR_ID = 40000;
+}; /* module Plesk */
+
+#endif /* _LOADER_CONST_IDL_ */
diff --git a/TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp b/TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp
index 33fcae3e2a7..2787fec934f 100644
--- a/TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp
+++ b/TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp
@@ -12,8 +12,9 @@
ACE_TCHAR const * const scpc_loadOrb = // NOTE due to the way ACE_DYNAMIC_SERVICE_DIRECTIVE() macro is defined,
// each parameter CANNOT be split into multiple quoted strings "line1" "nextline" with the expectation that
// they will be join together. Hence the long parameter 4.
- ACE_DYNAMIC_SERVICE_DIRECTIVE ("testDllOrb",
+ ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE ("testDllOrb",
"DllOrb",
+ TAO_VERSION,
"_make_DllOrb",
"DllOrb -t 1 -ORBGestalt Local -ORBDebugLevel 3 -ORBId testORB -ORBInitRef NameService=file:///tmp/test-ns.ior -ORBDottedDecimalAddresses 1"
);
diff --git a/TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp b/TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp
index b8e310f35f2..338701e06fa 100644
--- a/TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp
+++ b/TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp
@@ -152,8 +152,9 @@ testORBInitializer_Registry (int , ACE_TCHAR *[])
if (oir == 0)
{
one->process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("ORBInitializer_Registry",
+ ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("ORBInitializer_Registry",
"TAO_PI",
+ TAO_VERSION,
"_make_ORBInitializer_Registry",
""));
oir =
@@ -251,8 +252,9 @@ testORBInitializer_Registry (int , ACE_TCHAR *[])
" (although ORBInitializer_Registry already did it) ...\n"));
one->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("PolicyFactory_Loader",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("PolicyFactory_Loader",
"TAO_PI",
+ TAO_VERSION,
"_make_TAO_PolicyFactory_Loader",
""));
@@ -291,8 +293,9 @@ testServiceDependency (int , ACE_TCHAR *[])
ACE_Intrusive_Auto_Ptr<ACE_Service_Gestalt_Test> one (new ACE_Service_Gestalt_Test (10));
int result = one->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_Codeset",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("TAO_Codeset",
"TAO_Codeset",
+ TAO_VERSION,
"_make_TAO_Codeset_Manager_Factory",
""));
if (result != 0)
diff --git a/TAO/tests/TransportCurrent/Framework/simple.cpp b/TAO/tests/TransportCurrent/Framework/simple.cpp
index 0b5d3a458b2..4a121500240 100644
--- a/TAO/tests/TransportCurrent/Framework/simple.cpp
+++ b/TAO/tests/TransportCurrent/Framework/simple.cpp
@@ -55,8 +55,9 @@ testCurrentLoader (int, char *[])
#if !defined (TAO_AS_STATIC_LIBS)
int ret = ACE_Service_Config::process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_Transport_Current_Loader",
+ (ACE_DYNAMIC_VERSIONED_SERVICE_DIRECTIVE("TAO_Transport_Current_Loader",
"TAO_Transport_Current",
+ TAO_VERSION
"_make_TAO_Transport_Current_Loader",
""));
ACE_ASSERT (ret == 0);
diff --git a/TAO/utils/catior/catior.mpc b/TAO/utils/catior/catior.mpc
index 65b6f71fa6f..2c6a74c9c6b 100644
--- a/TAO/utils/catior/catior.mpc
+++ b/TAO/utils/catior/catior.mpc
@@ -24,4 +24,9 @@ project: namingexe, rtcorba, install, messaging, ziop {
Header_Files {
}
+
+ InstallData_Files {
+ gendir = tao-utils
+ README.catior
+ }
}
diff --git a/TAO/utils/nslist/nsadd.cpp b/TAO/utils/nslist/nsadd.cpp
index 18d03aded3e..bd3a52a6b00 100644
--- a/TAO/utils/nslist/nsadd.cpp
+++ b/TAO/utils/nslist/nsadd.cpp
@@ -411,7 +411,6 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
ACE_DEBUG ((LM_DEBUG, "\nError:\n"));
ex._tao_print_exception ("Exception in nsadd");
- orb->destroy ();
++err;
}
diff --git a/TAO/utils/nslist/nslist.mpc b/TAO/utils/nslist/nslist.mpc
index 841f314646b..5c4ae30c058 100644
--- a/TAO/utils/nslist/nslist.mpc
+++ b/TAO/utils/nslist/nslist.mpc
@@ -23,5 +23,9 @@ project(nslist): namingexe, install, svc_utils, messaging, strategies {
Source_Files {
nslist.cpp
}
+ InstallData_Files {
+ gendir = tao-utils
+ README.nslist
+ }
}