diff options
author | Steve Huston <shuston@riverace.com> | 2018-04-10 18:59:38 -0400 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 2018-04-10 18:59:38 -0400 |
commit | ceb273ea994e3718d2e7197454839bf7c1fcce34 (patch) | |
tree | 273df17f62dda934429ca8b4902ec3346b979cf2 /TAO | |
parent | 3718261cb814c3cc598de91fa2bee7ddcdfffc7b (diff) | |
parent | 29c5bc48b96635cf8aba0f63e3ebd5f3802452d3 (diff) | |
download | ATCD-Riverace-case2088.tar.gz |
Merge out from masterRiverace-case2088
Diffstat (limited to 'TAO')
32 files changed, 672 insertions, 130 deletions
diff --git a/TAO/ChangeLogs/TAO-2_4_7 b/TAO/ChangeLogs/TAO-2_4_7 new file mode 100644 index 00000000000..65d37fbae34 --- /dev/null +++ b/TAO/ChangeLogs/TAO-2_4_7 @@ -0,0 +1,283 @@ +commit b1228f4bfd1be92b1590de65fe49c8511c2b71e1 +Author: Adam Mitz <mitza@ociweb.com> +Date: Tue Mar 13 10:58:36 2018 -0500 + + TAO test list: mark tests that won't run with CORBA/e compact + +commit 5a4a08e16062d6ecbf0e599fc2bdb26f103e72d3 +Author: Adam Mitz <mitza@ociweb.com> +Date: Mon Mar 12 11:19:23 2018 -0500 + + TAO NEWS for shmiop change + +commit 66e84f43246a74b1efadf60ff7aef1146a853c98 +Author: Adam Mitz <mitza@ociweb.com> +Date: Tue Mar 6 11:06:41 2018 -0600 + + Bug 1220 fix applied to SHMIOP (fixed for IIOP long ago). + + Also added a SHMIOP test, IPv6 compatibility, and fixed wrong indent in Synch_Invocation.cpp. + +commit 71a517bfb38858939cecc4e021dc3805663ff07a +Merge: 7aadef4fc59 d4c520ce4cf +Author: Adam Mitz <mitza@objectcomputing.com> +Date: Mon Feb 26 14:12:55 2018 -0600 + + Merge pull request #582 from mitza-oci/master + + NEWS for upcoming release + +commit d4c520ce4cf5fc14aa296936e6c80cccbc12757e +Author: Adam Mitz <mitza@ociweb.com> +Date: Mon Feb 26 11:24:58 2018 -0600 + + NEWS for upcoming release + +commit 73307efb832657d40b3c39492a2c4ae4b0b47762 +Author: Johnny Willemsen <jwillemsen@remedy.nl> +Date: Mon Feb 26 18:20:26 2018 +0100 + + Doxygen fixes and fixed some typos + + * TAO/orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h: + * TAO/orbsvcs/orbsvcs/Naming/Hash_Naming_Context.h: + * TAO/orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h: + * TAO/orbsvcs/orbsvcs/Naming/Storable_Naming_Context.h: + * TAO/tests/Bug_2953_Regression/client.cpp: + * TAO/tests/Bug_2953_Regression/server.cpp: + * TAO/tests/Smart_Proxies/Benchmark/client.cpp: + * TAO/tests/Smart_Proxies/Policy/client.cpp: + * TAO/tests/Smart_Proxies/client.cpp: + +commit dded6e0e48ee7e1c6c39240d60fb0b3111ceddf2 +Author: Oliver Kellogg <okellogg@users.sourceforge.net> +Date: Fri Feb 23 09:05:06 2018 +0100 + + TAO/tests/Bug_3940_Regression/test.idl + - Address issue #571 comment by jwillemsen: Disable content of IDL file + for Borland C++ Builder. The cpp32 preprocessor apparently strips out + all @ characters which inhibits processing of annotations. + +commit 35218a474eeb88b4288df227a98f04cbf0865f8b +Author: Oliver Kellogg <okellogg@users.sourceforge.net> +Date: Sun Feb 18 02:30:07 2018 +0100 + + Address https://github.com/DOCGroup/ACE_TAO/issues/571 : + Shift handling of annotation applications from lexer to parser. + + TAO/TAO_IDL/fe/idl.ll + - Remove rule matching annotation applications. + + TAO/TAO_IDL/fe/idl.ypp + - Define %type <idval> defining_id. + - Duplicate rule `id' as defining_id. + In defining_id allow for annotation applications. + - Substitute `id' by defining_id in following rules: + template_module_ref, template_module_inst, interface_decl, value_decl, + const_dcl, simple_declarator, struct_decl, union_decl, enum_type, + array_declarator, exception, component_forward_decl, component_header, + home_header, factory_decl, finder_decl, event_concrete_forward_decl, + event_abs_forward_decl, event_abs_header, event_custom_header, + event_plain_header. + - Allow for annotation applications in following rules: + definitions, at_least_one_definition, tpl_definitions, member_i, + case_branch, case_labels, enumerator, operation, init_decl, + porttype_decl, at_least_one_actual_parameter, actual_parameters, + connector_header. + - New rule `annotations' implements sequence of 0 or more annotation_appl. + - New rules annotation_appl, annotation_appl_params, annotation_appl_param + implement rules 225, 226, 227 from IDL 4.2 section 7.4.15.3. + - New rule at_least_one_annotation_appl_param implements 2nd alternative + on RHS of rule 226. + - New rule annotation_appl_named_params is auxiliary to + at_least_one_annotation_appl_param. + It implements a sequence of 0 or more annotation_appl_param. + + TAO/TAO_IDL/fe/idl.yy.cpp + - Regenerate from idl.ll using TAO/TAO_IDL/regen.sh with flex-2.6.4. + + TAO/TAO_IDL/fe/idl.tab.cpp + - Regenerate from idl.ypp using TAO/TAO_IDL/regen.sh with bison-3.0.2. + +commit cb29bd46571e428d1d71c860ec9010d29a3a1fe4 +Merge: 4665969af11 d14029823bf +Author: Johnny Willemsen <jwillemsen@remedy.nl> +Date: Fri Feb 16 16:05:33 2018 +0100 + + Merge pull request #573 from jwillemsen/jwi-taoidlleak + + Add new C++ compiler test for testing a feature TAO is using + +commit 4473a426454c16a2d7af7328778369d603d701ca +Author: Johnny Willemsen <jwillemsen@remedy.nl> +Date: Fri Feb 16 10:23:41 2018 +0100 + + Fixed typo in comment + + * TAO/tests/Bug_3683_Regression/Simple_util.h: + +commit 0b1e33835dcdb9397c9eeb23eef5db53908d87e0 +Author: Johnny Willemsen <jwillemsen@remedy.nl> +Date: Fri Feb 16 10:23:28 2018 +0100 + + Convert to doxygen style comments + + * TAO/tests/Bug_3683_Regression/Echo.idl: + +commit 4665969af11545a831900244fd4ac6fa6f30a155 +Merge: cbb40b5f6f2 c8d9edf5117 +Author: Johnny Willemsen <jwillemsen@remedy.nl> +Date: Thu Feb 15 10:32:39 2018 +0100 + + Merge pull request #572 from jwillemsen/jwi-taoidlleak + + Fixed memory leak when we have a wstrval + +commit c8d9edf5117f6aa7334bd63e351e816d4946aece +Author: Johnny Willemsen <jwillemsen@remedy.nl> +Date: Tue Feb 13 19:23:59 2018 +0100 + + Fixed memory leak when we have a wstrval + + * TAO/TAO_IDL/ast/ast_expression.cpp: + +commit e1f507ba668b0373e2ef3ab6fb74a9f792374fb3 +Author: Oliver Kellogg <okellogg@users.sourceforge.net> +Date: Sun Feb 4 19:43:06 2018 +0100 + + Followup to commit 3f751cb addresses + https://github.com/DOCGroup/ACE_TAO/pull/567#issuecomment-360504123 , + + > [...] the Solaris/SunCC build failed because its preprocessor splits + > the @ from the following token: + > + > $ echo '@foo' > /tmp/foo.c && /opt/compilers/suncc5.12/bin/CC -E \ + > /tmp/foo.c && rm /tmp/foo.c + > #1 "/tmp/foo.c" + > @ foo + + TAO/TAO_IDL/fe/idl.ll + - Modify the rule matching annotations to include an optional space + after the '@', + @ ?[A-Za-z][A-Za-z0-9_]*[ \t]*(\([^)]+\))? + +commit be871ac59565386b582b41e48ef129d509c354fc +Author: Oliver Kellogg <okellogg@users.sourceforge.net> +Date: Wed Jan 24 22:24:13 2018 +0100 + + Followup to PR #565: Address new conversion warning at + http://buildlogs.remedy.nl/win_msvc15_opendds_debug/index.html , + > fe\idl.yy.cpp(1383): warning C4267: 'argument': conversion from + > 'size_t' to 'int' + + TAO/TAO_IDL/tao_idl_fe.mpc rule lex.yy + - In the sed regexes, replace the fread related substitution by an + #include <errno.h> substitution. + As a marginal cosmetic improvement, adjust the tab substitution + to produce 4 spaces per tab. + - In the error message of the else-part, increase the minimum required + flex version to 2.6.4. + + TAO/TAO_IDL/fe/idl.yy.cpp + - Regenerate using regen.sh with flex 2.6.4. + +commit a2f4310d1beb46927e396cbfb1f563abf390eb8f +Author: Oliver Kellogg <okellogg@users.sourceforge.net> +Date: Fri Jan 19 21:43:43 2018 +0100 + + Follow suggestion by mitza-oci at + https://github.com/DOCGroup/ACE_TAO/pull/565 : + > Since it's a compile-only test, it shouldn't need a run_test.pl or a + > test.cpp (build a library instead of an executable). + + TAO/tests/Bug_3940_Regression/Bug_3940_Regression.mpc + - Change superproject to taolib_with_idl. + - Remove exename and Source_Files. + + TAO/tests/Bug_3940_Regression/test.cpp + TAO/tests/Bug_3940_Regression/run_test.pl + - Remove files. + +commit 383454e6ee7d814cbfa3e1758f506a90f96b7d13 +Author: Oliver Kellogg <okellogg@users.sourceforge.net> +Date: Wed Jan 17 22:01:45 2018 +0100 + + * TAO/tests/Bug_3940_Regression : + New test verifies that tao_idl tolerates IDL4 annotations. + +commit 3f751cb31255f9916a5b5ec31f572f4aa1758c96 +Author: Oliver Kellogg <okellogg@users.sourceforge.net> +Date: Tue Jan 16 22:09:36 2018 +0100 + + http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3940#c4 + Attachment 1524: Patch to make tao_idl ignore IDL4 annotations + + TAO/TAO_IDL/fe/idl.ll + - Add rule @[A-Za-z][A-Za-z0-9_]*[ \t]*(\([^)]+\))? with action "break". + + TAO/TAO_IDL/fe/idl.tab.cpp + TAO/TAO_IDL/fe/idl.tab.hpp + TAO/TAO_IDL/fe/idl.yy.cpp + - In directory TAO/TAO_IDL execute script regen.sh using flex 2.6.0 and + bison 3.0.2. + + TAO/TAO_IDL/fe/idl.ypp + - Fix typo in comment. + +commit 2a2491926e1a1e044da01f979dcaa4e1e2032c51 +Author: Johnny Willemsen <jwillemsen@remedy.nl> +Date: Mon Jan 15 18:14:06 2018 +0100 + + Removed reference to CIAO, moved to a separate repo, added msvc 14.1 (Visual Studio 2017) + + * TAO/TAO-INSTALL.html: + +commit 57a3da79bd35109aadaa74110f58440e4a5eab86 +Author: Oliver Kellogg <okellogg@users.sourceforge.net> +Date: Fri Jan 12 00:03:25 2018 +0100 + + - In section "Building and Installing TAO from git", mention that the + ACE_ROOT and TAO_ROOT env vars are set different from ACE_wrappers. + - Fix a few typos. + - Add a few missing </LI> tags. + +commit 6fbf5788f0589ae7cde5448baeda0d6e9b1bfc79 +Merge: ac9ffb65e75 4ac686684c6 +Author: Adam Mitz <mitza@objectcomputing.com> +Date: Tue Jan 2 09:36:50 2018 -0600 + + Merge pull request #555 from mitza-oci/singleton-restart + + ACE_Singleton should work after ACE::fini, ACE::init (fixes issue #554) + +commit dff4439b18379b9008ee696303be492d84d794dd +Author: Johnny Willemsen <jwillemsen@remedy.nl> +Date: Mon Jan 1 11:24:13 2018 +0100 + + Updated copyright to 2018 + + * ACE/tests/ACE.bsp: + Deleted, not used anymore + + * ACE/COPYING: + * TAO/COPYING: + +commit 5bbbaacd283951886642a5113300f0c0543e51c0 +Author: Adam Mitz <mitza@ociweb.com> +Date: Thu Dec 21 10:18:10 2017 -0600 + + fixed issue #554 ACE_Singleton use after ACE::fini, ACE::init + +commit 52618c6f2a83446eb15ecd95e98e9d178a013d47 +Author: Johnny Willemsen <jwillemsen@remedy.nl> +Date: Fri Dec 8 09:38:58 2017 +0100 + + Make ACE 6.4.6 and TAO 2.4.6 public + + * ACE/NEWS: + * ACE/bin/diff-builds-and-group-fixed-tests-only.sh: + * ACE/debian/debian.control: + * ACE/docs/Download.html: + * ACE/docs/bczar/bczar.html: + * ACE/etc/index.html: + * TAO/NEWS: @@ -3,6 +3,8 @@ USER VISIBLE CHANGES BETWEEN TAO-2.4.6 and TAO-2.4.7 . TAO_IDL parses and discards IDLv4 annotations (applying, not defining) +. Fixed Bug 1220 as it applies to the SHMIOP transport. + USER VISIBLE CHANGES BETWEEN TAO-2.4.5 and TAO-2.4.6 ==================================================== diff --git a/TAO/PROBLEM-REPORT-FORM b/TAO/PROBLEM-REPORT-FORM index 7d6bc051567..de278b594bf 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.4.6 - ACE VERSION: 6.4.6 + TAO VERSION: 2.4.7 + ACE VERSION: 6.4.7 HOST MACHINE and OPERATING SYSTEM: If on Windows based OS's, which version of WINSOCK do you diff --git a/TAO/VERSION b/TAO/VERSION index b1072b15d50..96091bea5bb 100644 --- a/TAO/VERSION +++ b/TAO/VERSION @@ -1,4 +1,4 @@ -This is TAO version 2.4.6, released Fri Dec 08 08:48:59 CET 2017 +This is TAO version 2.4.7, released Fri Mar 16 08:05:28 CET 2018 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 fc10728010b..6e087048ee9 100644 --- a/TAO/bin/tao_orb_tests.lst +++ b/TAO/bin/tao_orb_tests.lst @@ -203,12 +203,12 @@ TAO/tests/Bug_3919_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MI TAO/tests/Bug_3926_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS TAO/tests/Bug_3941_Regression/run_test.pl: !CORBA_E_MICRO 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_3953_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/tests/Bug_3954_Regression/run_test.pl: TAO/tests/Bug_4010_Regression/run_test.pl: TAO/tests/Bug_4059_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/tests/Bug_4082_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO -TAO/tests/Bug_4097_Regression/run_test.pl: !CORBA_E_MICRO +TAO/tests/Bug_4097_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRRO 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 @@ -267,6 +267,9 @@ TAO/tests/No_Server_MT_Connect_Test/run_test.pl: !ST !MINIMUM !CORBA_E_COMPACT ! TAO/tests/Connect_Strategy_Test/run_test.pl: # DISABLED TAO/tests/Client_Leaks/run_test.pl: !VxWorks !ST !Tru64 TAO/tests/Server_Leaks/run_test.pl: !ANDROID +TAO/tests/SHMIOP/run_test_collocated.pl: !ACE_FOR_TAO !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO +TAO/tests/SHMIOP/run_test.pl: !ACE_FOR_TAO !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO +TAO/tests/SHMIOP/run_test.pl with_collocated: !ACE_FOR_TAO !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO TAO/tests/Smart_Proxies/Policy/run_test.pl: TAO/tests/Smart_Proxies/run_test.pl: TAO/tests/Smart_Proxies/dtor/run_test.pl: diff --git a/TAO/docs/cec_options.html b/TAO/docs/cec_options.html index e91ac919a4e..1e5db2f4db5 100644 --- a/TAO/docs/cec_options.html +++ b/TAO/docs/cec_options.html @@ -452,13 +452,5 @@ static CEC_Factory "-CECDispatching reactive ....." <P><HR><P> Back to the TAO <A HREF="index.html">components documentation</A>. - - <!--#include virtual="/~schmidt/cgi-sig.html" --> - - <address><a href="mailto:coryan@cs.wustl.edu">Carlos O'Ryan</a></address> -<!-- Created: Thu Jul 1 21:44:28 CDT 1999 --> -<!-- hhmts start --> -Last modified: Fri Apr 20 15:24:09 CDT 2001 -<!-- hhmts end --> </body> </html> diff --git a/TAO/docs/documentation.html b/TAO/docs/documentation.html index 39e70620173..38bfe9d57db 100644 --- a/TAO/docs/documentation.html +++ b/TAO/docs/documentation.html @@ -25,7 +25,7 @@ bgcolor="#ffffff"> <dt> <img alt="o" src="redball.gif"> <a HREF="http://www.theaceorb.com/product/index.html">OCI TAO Developer's Guide</a> </dt><P> - <dt> <img alt="o" src="redball.gif"> <a HREF="http://www.remedy.nl/opensource/corbapg.html">Remedy TAO Programmer's Guide</a> </dt><P> + <dt> <img alt="o" src="redball.gif"> <a HREF="https://www.remedy.nl/opensource/corbapg.html">Remedy IT CORBA Programmer's Guide</a> </dt><P> <dt> <img alt="o" src="redball.gif"> <a HREF="orbsvcs.html">Online ORB Services Documentation</a> </dt><P> diff --git a/TAO/docs/releasenotes/PSS.html b/TAO/docs/releasenotes/PSS.html index 6b021fe8e06..de4907bf3ea 100644 --- a/TAO/docs/releasenotes/PSS.html +++ b/TAO/docs/releasenotes/PSS.html @@ -15,7 +15,7 @@ <p>Last Update: 2002/07/29 </p> </center> - <p>Persistent State Service (PSS) desribes a way of making a + <p>Persistent State Service (PSS) describes a way of making a service persistent. The fact that PSS is being used by a service is known only to the service (server) and not to the client which makes use of the service. PSS presents persistent diff --git a/TAO/docs/releasenotes/TODO.html b/TAO/docs/releasenotes/TODO.html index 75e33df01e6..65e12cbc427 100644 --- a/TAO/docs/releasenotes/TODO.html +++ b/TAO/docs/releasenotes/TODO.html @@ -17,10 +17,6 @@ Bugzilla </A> now. </P> - <P> - Last Updated: $Date$ $Revision$ - </P> - <HR> <P>Back to the TAO <A HREF="../index.html">documentation index</A>. <!--#include virtual="/~schmidt/cgi-sig.html" --> diff --git a/TAO/docs/releasenotes/amh.html b/TAO/docs/releasenotes/amh.html index 141d1a4eabe..556692c3d16 100644 --- a/TAO/docs/releasenotes/amh.html +++ b/TAO/docs/releasenotes/amh.html @@ -9,11 +9,10 @@ <h3>TAO's Asynchronous Method Handling (AMH) Feature</h3> Point of contact: <a href="mailto:coryan@uci.edu">Carlos O'Ryan, </a> <a href="mailto:mayur@ics.uci.edu">Mayur Deshpande</a> - <h4>Last Updated: $Date$</h4> - <p> The purpose of this document is to provide a guide to using the AMH -capability available in TAO. This capability is not specified by any -CORBA specification (as of date). This document lists the motivation for AMH, + <p> The purpose of this document is to provide a guide to using the AMH +capability available in TAO. This capability is not specified by any +CORBA specification (as of date). This document lists the motivation for AMH, how to use it and its current implementation status. </p> <HR SIZE=4 WIDTH="100%"> @@ -21,42 +20,42 @@ how to use it and its current implementation status. </p> <h3>Context</h3> For many types of distributed systems, the CORBA asynchronous method -invocation -<a href="index.html/#ami"> (AMI) </a> -mechanism can improve concurrency, scalability, and -responsiveness significantly. AMI allows clients to invoke multiple +invocation +<a href="index.html/#ami"> (AMI) </a> +mechanism can improve concurrency, scalability, and +responsiveness significantly. AMI allows clients to invoke multiple two-way requests without waiting for responses. The time normally spent waiting for replies can therefore be used to perform other -useful work. The TAO asynchronous method handling (AMH) is a -mechanism, which extends the concepts of AMI from clients to -servers. Servers with AMH capability can return immediately -from (potentially) long, blocking requests. This makes the -servers capable of higher throughput. For a detailed description -for the motivation and potential use-cases of AMH, please refer to +useful work. The TAO asynchronous method handling (AMH) is a +mechanism, which extends the concepts of AMI from clients to +servers. Servers with AMH capability can return immediately +from (potentially) long, blocking requests. This makes the +servers capable of higher throughput. For a detailed description +for the motivation and potential use-cases of AMH, please refer to <a href="http://www.cs.wustl.edu/~schmidt/PDF/AMH.pdf">AMH-Motivation. </a> <HR SIZE=4 WIDTH="100%"> <h3>Using AMH</h3> -Servers that want to take advantage of AMH capability must use -AMH-servants derived from AMH-skeletons. Invoking the +Servers that want to take advantage of AMH capability must use +AMH-servants derived from AMH-skeletons. Invoking the <a href="index.html#idl">IDL-Compiler </a> with the "-GH" option causes the IDL-Compiler to generate -AMH-skeletons for all interfaces in the ".idl" file. The signatures -of the AMH-methods differ from the original interfaces as per the -rules described in +AMH-skeletons for all interfaces in the ".idl" file. The signatures +of the AMH-methods differ from the original interfaces as per the +rules described in <a href="http://www.cs.wustl.edu/~schmidt/PDF/DOA-02.pdf"">AMH-In-Detail. </a> -Servants derived from the AMH-skeletons are registered with the POA in the usual manner -and appear to clients as "normal" servants for the corresponding -interfaces; Thus even while being transparent to the client, these -servants are now capable of handling requests asynchronously. -AMH-servants can be registered in any POA and can intermix with -"normal" servants in the same POA. The granularity of AMH is at +Servants derived from the AMH-skeletons are registered with the POA in the usual manner +and appear to clients as "normal" servants for the corresponding +interfaces; Thus even while being transparent to the client, these +servants are now capable of handling requests asynchronously. +AMH-servants can be registered in any POA and can intermix with +"normal" servants in the same POA. The granularity of AMH is at the interface level and not at the method level; Thus for an interface -compiled with the "-GH" option, all operations in that interface are +compiled with the "-GH" option, all operations in that interface are asynchronous. Currently, AMH doesn't work in conjunction with -<a href="index.html#interceptor">Interceptors </a> +<a href="index.html#interceptor">Interceptors </a> and behaviour is undefined if both are used together. <HR SIZE=4 WIDTH="100%"> @@ -73,7 +72,7 @@ and behaviour is undefined if both are used together. <li>Generation of AMH ResponseHandlers.</li> <li>AMH Exceptions.</li> <li>Fix the narrow method bug for AMH skeletons : Fixed -<li>Sending intelligent exception codes back to client in case +<li>Sending intelligent exception codes back to client in case something nasty happens in the AMH server.</li> <li>Example of using AMH available at ACE_wrappers/TAO/examples/AMH/Sink_Server.</li> <li>Test for AMH : ACE_wrappers/TAO/performance-tests/Latency/AMH</li> @@ -85,17 +84,17 @@ something nasty happens in the AMH server.</li> <h3>Credits</h3> -Original idea first proposed by -<a href="mailto:coryan@uci.edu">Carlos O'Ryan </a> -and changes to ORB for AMH first attempted by -<a href="mailto:brucetrask@aol.com">Bruce Trask. </a> -First go to get the IDL-Compiler to generate AMH code attempted by -<a href="mailto:brunsch@doc.ece.uci.edu"> Darrell Brunsch. </a> -ORB changes for AMH as they stand today put in by -<a href="mailto:mayur@ics.uci.edu">Mayur Deshpande. </a> -Second go at getting IDL-compiler to generate code attempted by Mayur and -<a href="mailto:parsons@cs.wustl.edu">Jeff Parsons. </a> -Getting the IDL-Compiler beast to generate the right AMH code finally +Original idea first proposed by +<a href="mailto:coryan@uci.edu">Carlos O'Ryan </a> +and changes to ORB for AMH first attempted by +<a href="mailto:brucetrask@aol.com">Bruce Trask. </a> +First go to get the IDL-Compiler to generate AMH code attempted by +<a href="mailto:brunsch@doc.ece.uci.edu"> Darrell Brunsch. </a> +ORB changes for AMH as they stand today put in by +<a href="mailto:mayur@ics.uci.edu">Mayur Deshpande. </a> +Second go at getting IDL-compiler to generate code attempted by Mayur and +<a href="mailto:parsons@cs.wustl.edu">Jeff Parsons. </a> +Getting the IDL-Compiler beast to generate the right AMH code finally achieved by Carlos. <HR SIZE=4 WIDTH="100%"> diff --git a/TAO/docs/releasenotes/ec.html b/TAO/docs/releasenotes/ec.html index 3a6a3bca6cb..43c142707db 100644 --- a/TAO/docs/releasenotes/ec.html +++ b/TAO/docs/releasenotes/ec.html @@ -8,7 +8,6 @@ <H3>TAO's Real-time Event Service</H3> Point of contact: <A HREF="mailto:jwillemsen@remedy.nl">Johnny Willemsen</A> - <H4>Last Updated: $Date$</H4> Documentation for the command line and service configurator options used to configure the real-time event service is available <A diff --git a/TAO/docs/releasenotes/index.html b/TAO/docs/releasenotes/index.html index a529c8898a2..f676bdf3c39 100644 --- a/TAO/docs/releasenotes/index.html +++ b/TAO/docs/releasenotes/index.html @@ -185,24 +185,6 @@ Notification Service </td> <td VALIGN=TOP> -<ul> -<b>CCM Related</b> -<br><BR> -<li> -<a href="../../../CIAO/docs/releasenotes/index.html">CORBA Component Model (CIAO)</a></li> -<li> -<a href="../../../CIAO/docs/releasenotes/dance.html">Deployment and - Configuration Engine (DAnCE)</a></li> -<li> -<a href="../../../CIAO/CIDLC/README.html">Component Implementation -Definition Language Compiler (CIDLC)</a></li> -<li> -<a href="../../../CIAO/docs/static_ciao_contents.html">Static Configuration - Support for Real-Time Platforms</a></li> -</ul> -</td> - -<td VALIGN=TOP> </td> </tr> </table> @@ -215,7 +197,7 @@ Definition Language Compiler (CIDLC)</a></li> </table> -A complete list of all modifications to TAO is available in the <a href="../../ChangeLog">ChangeLog</a>. +A complete list of all modifications to TAO is available in the <a href="../../ChangeLogs">ChangeLogs</a>. <p> <hr> <h3> @@ -2555,6 +2537,5 @@ Need to test local object support more systematically and comprehensively. <hr> <p>Back to the TAO <a href="../index.html">documentation index</a>.<!--#include virtual="/~schmidt/cgi-sig.html" --> -<hr><!-- hhmts start -->Last modified: Thu May 4 13:08:35 UTC 2006<!-- hhmts end --> </body> </html> diff --git a/TAO/docs/releasenotes/orbcore.html b/TAO/docs/releasenotes/orbcore.html index 611fb321c69..60aad951879 100644 --- a/TAO/docs/releasenotes/orbcore.html +++ b/TAO/docs/releasenotes/orbcore.html @@ -23,7 +23,6 @@ Point of contact: <a href="mailto: bala@cs.wustl.edu">Balchandran Natarajan</a> -<p>Last Update: $Date$</p> </center> <!-- ============================================================ --> diff --git a/TAO/docs/rtcorba/architecture.html b/TAO/docs/rtcorba/architecture.html index a88c762f940..b160c6fb7cf 100644 --- a/TAO/docs/rtcorba/architecture.html +++ b/TAO/docs/rtcorba/architecture.html @@ -112,6 +112,5 @@ and deposit the requests into the right queue for processing. </p> is an easier design to implement, integrate and test piece-by-piece.</li> </ul> <hr> -<p><i>Last modified: $Date$</i></p> </body> </html> diff --git a/TAO/docs/rtcorba/faq.html b/TAO/docs/rtcorba/faq.html index ac0ec52cfb4..efd90ea90c7 100644 --- a/TAO/docs/rtcorba/faq.html +++ b/TAO/docs/rtcorba/faq.html @@ -33,8 +33,6 @@ <hr> <i> -<p>Last modified: $Date$ </i></p> - <p> </p> </body> </html> diff --git a/TAO/docs/rtcorba/features.html b/TAO/docs/rtcorba/features.html index a8d1edc5d3b..c1a16aa8f28 100644 --- a/TAO/docs/rtcorba/features.html +++ b/TAO/docs/rtcorba/features.html @@ -208,7 +208,7 @@ ThreadPools are now fully supported. Endpoint priorities are no longer supported.</li> <li> By default dynamic RTCorba threads live forever after they are created. -When using the <code>RTORBDynamicThreadIdleTimeout</code> from the +When using the <code>RTORBDynamicThreadIdleTimeout</code> from the <code>RT_ORB_Loader</code> it can be specified that the dynamic threads should end after a given idle time. Timeout must be specified in microseconds, 0 means the threads @@ -838,7 +838,7 @@ priority</tt> map the RTCORBA priority to the network priority. </ul> <br> -<i>Last Modified: $Date$</i></dl> +</dl> </body> </html> diff --git a/TAO/docs/rtcorba/issues.html b/TAO/docs/rtcorba/issues.html index 9aadf5c3eb6..c94a48f40ef 100644 --- a/TAO/docs/rtcorba/issues.html +++ b/TAO/docs/rtcorba/issues.html @@ -225,7 +225,7 @@ the guidelines are followed, of course ;-) )</p> <i> -<p>Last modified: $Date$ </i></p> +</p> <p></p> </body> </html> diff --git a/TAO/docs/rtcorba/omg_issues.html b/TAO/docs/rtcorba/omg_issues.html index 33316e69210..381d0d2a840 100644 --- a/TAO/docs/rtcorba/omg_issues.html +++ b/TAO/docs/rtcorba/omg_issues.html @@ -25,7 +25,7 @@ Unnecessary <i>ClientProtocolPolicy</i> complexity</h3> in CORBA 2.4 cautions against defining policies that can be set in both places: <blockquote><br> - If the <b><font FACE="Arial" SIZE="2">Policy </font></b> can be + If the <b><font FACE="Arial" SIZE="2">Policy </font></b> can be used with <b><font FACE="Arial" SIZE="2">POA </font></b>creation to tune <b><font FACE="Arial" SIZE="2">IOR </font></b>contents and can also be specified (overridden) in the client, specify how to reconcile the policy's @@ -98,6 +98,6 @@ provide different semantics or be invalid when used in another ORB, with both ORBs being compliant with the specification. </p> <hr> -<p><i>Last Modified: $Date$</i></p> +</p> </body> </html> diff --git a/TAO/docs/rtcorba/status.html b/TAO/docs/rtcorba/status.html index 54be0cc28aa..6bb5549cbc7 100644 --- a/TAO/docs/rtcorba/status.html +++ b/TAO/docs/rtcorba/status.html @@ -126,6 +126,6 @@ for their implementation: <hr> <i> -<p>Last modified: $Date$</i></p> +</p> </body> </html> diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp b/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp index ecfe8758e38..dcae5824b66 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp @@ -322,7 +322,7 @@ Activator_Options::load_registry_options () // If there aren't any saved parameters, then that's ok. return 0; } - char tmpstr[4096]; + ACE_TCHAR tmpstr[4096]; DWORD sz = sizeof (tmpstr); DWORD type = 0; err = ACE_TEXT_RegQueryValueEx (key, ACE_TEXT("ORBInitOptions"), 0, &type, @@ -331,7 +331,7 @@ Activator_Options::load_registry_options () { ACE_ASSERT (type == REG_SZ); tmpstr[sz - 1] = '\0'; - this->cmdline_ = tmpstr; + this->cmdline_ = ACE_TEXT_ALWAYS_CHAR(tmpstr); } sz = sizeof(tmpstr); @@ -341,7 +341,7 @@ Activator_Options::load_registry_options () { ACE_ASSERT (type == REG_SZ); tmpstr[sz - 1] = '\0'; - this->ior_output_file_ = ACE_TEXT_CHAR_TO_TCHAR(tmpstr); + this->ior_output_file_ = tmpstr; } sz = sizeof(debug_); @@ -359,7 +359,7 @@ Activator_Options::load_registry_options () { ACE_ASSERT (type == REG_SZ); tmpstr[sz - 1] = '\0'; - this->name_ = tmpstr; + this->name_ = ACE_TEXT_ALWAYS_CHAR(tmpstr); } DWORD tmpint = 0; diff --git a/TAO/tao/Connector_Registry.cpp b/TAO/tao/Connector_Registry.cpp index 0f828f613b1..8d3d2eece02 100644 --- a/TAO/tao/Connector_Registry.cpp +++ b/TAO/tao/Connector_Registry.cpp @@ -165,8 +165,13 @@ TAO_Connector_Registry::create_profile (TAO_InputCDR &cdr) CORBA::ULong tag = 0; // If there is an error we abort. - if ((cdr >> tag) == 0) + if (!(cdr >> tag)) + { + TAOLIB_ERROR ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) - TAO_Connector_Registry::") + ACE_TEXT ("create_profile: Unable to extract tag from CDR stream\n"))); return 0; + } TAO_Connector *connector = this->get_connector (tag); @@ -195,7 +200,6 @@ TAO_Connector_Registry::create_profile (TAO_InputCDR &cdr) } } - TAO_Profile *pfile = 0; ACE_NEW_RETURN (pfile, TAO_Unknown_Profile (tag, @@ -203,6 +207,9 @@ TAO_Connector_Registry::create_profile (TAO_InputCDR &cdr) 0); if (pfile->decode (cdr) == -1) { + TAOLIB_ERROR ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) - TAO_Connector_Registry::") + ACE_TEXT ("create_profile: Unable to decode unknown profile from CDR stream\n"))); pfile->_decr_refcnt (); pfile = 0; } @@ -217,18 +224,36 @@ TAO_Connector_Registry::create_profile (TAO_InputCDR &cdr) // ProfileData is encoded as a sequence of octet. So first get the // length of the sequence. CORBA::ULong encap_len = 0; - if ((cdr >> encap_len) == 0) + if (!(cdr >> encap_len)) + { + TAOLIB_ERROR ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) - TAO_Connector_Registry::") + ACE_TEXT ("create_profile: Unable to extract encapsulated length from CDR stream\n"))); return 0; + } // Create the decoding stream from the encapsulation in the buffer, // and skip the encapsulation. TAO_InputCDR str (cdr, encap_len); - if (str.good_bit () == 0 - || cdr.skip_bytes (encap_len) == 0) + if (!str.good_bit () || !cdr.skip_bytes (encap_len)) + { + TAOLIB_ERROR ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) - TAO_Connector_Registry::") + ACE_TEXT ("create_profile: Unable to skip encapsulated stream from CDR stream\n"))); return 0; + } + + TAO_Profile* profile = connector->create_profile (str); + + if (!profile) + { + TAOLIB_ERROR ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) - TAO_Connector_Registry::") + ACE_TEXT ("create_profile: Connector returned null profile for tag 0x%x\n"), tag)); + } - return connector->create_profile (str); + return profile; } char diff --git a/TAO/tao/Object.cpp b/TAO/tao/Object.cpp index 3e73ac25c1c..78a7cd0d77c 100644 --- a/TAO/tao/Object.cpp +++ b/TAO/tao/Object.cpp @@ -929,9 +929,8 @@ operator>> (TAO_InputCDR& cdr, CORBA::Object*& x) // profile from the IOR. TAOLIB_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("TAO (%P|%t) - ERROR: Could not create all ") - ACE_TEXT ("profiles while extracting object [%d, %d]\n") - ACE_TEXT ("TAO (%P|%t) - ERROR: reference from the ") - ACE_TEXT ("CDR stream.\n"), + ACE_TEXT ("profiles while extracting object [%d, %d] ") + ACE_TEXT ("reference from the CDR stream.\n"), mp.profile_count (), profile_count), false); } diff --git a/TAO/tao/Strategies/SHMIOP_Acceptor.cpp b/TAO/tao/Strategies/SHMIOP_Acceptor.cpp index 2a582f8e2a5..83443fd6430 100644 --- a/TAO/tao/Strategies/SHMIOP_Acceptor.cpp +++ b/TAO/tao/Strategies/SHMIOP_Acceptor.cpp @@ -153,18 +153,9 @@ TAO_SHMIOP_Acceptor::is_collocated (const TAO_Endpoint *endpoint) if (endp == 0) return 0; - // @@ TODO The following code looks funky, why only the host - // name is compared? What if there are multiple SHMIOP - // servers in the same address? Why do SHMIOP_Endpoints keep - // a INET_Addr but not a MEM_Addr? And why is there no lazy - // evaluation of IP-addresses for SHMIOP endpoints? Is it - // because it is always 'localhost'? We need answers to - // these questions to solve: - // - // http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1220 - // - // The following code is suspec - // compare the port and sin_addr (numeric host address) + if (endp->port () != this->address_.get_port_number ()) + return 0; + return this->address_.same_host (endp->object_addr ()); } diff --git a/TAO/tao/Strategies/SHMIOP_Connector.cpp b/TAO/tao/Strategies/SHMIOP_Connector.cpp index bcf909b54ee..3f0532eb050 100644 --- a/TAO/tao/Strategies/SHMIOP_Connector.cpp +++ b/TAO/tao/Strategies/SHMIOP_Connector.cpp @@ -96,8 +96,14 @@ TAO_SHMIOP_Connector::set_validate_endpoint (TAO_Endpoint *endpoint) // Verify that the remote ACE_INET_Addr was initialized properly. // Failure can occur if hostname lookup failed when initializing the // remote ACE_INET_Addr. - if (remote_address.get_type () != AF_INET) + switch (remote_address.get_type ()) { + case AF_INET: +#ifdef ACE_HAS_IPV6 + case AF_INET6: +#endif + break; + default: if (TAO_debug_level > 0) { TAOLIB_ERROR ((LM_ERROR, @@ -111,7 +117,6 @@ TAO_SHMIOP_Connector::set_validate_endpoint (TAO_Endpoint *endpoint) } return 0; - } TAO_Transport * diff --git a/TAO/tao/Synch_Invocation.cpp b/TAO/tao/Synch_Invocation.cpp index c2159dc9049..5cc60f9ad17 100644 --- a/TAO/tao/Synch_Invocation.cpp +++ b/TAO/tao/Synch_Invocation.cpp @@ -126,18 +126,18 @@ namespace TAO { if (this->retry_state_ && this->retry_state_->forward_on_exception_increment(FOE_TRANSIENT)) - { - if (TAO_debug_level > 0) - TAOLIB_DEBUG ((LM_INFO, - ACE_TEXT ("TAO (%P|%t) - Synch_Twoway_Invocation::") - ACE_TEXT ("remote_twoway retrying on TRANSIENT ") - ACE_TEXT ("exception\n"))); - this->retry_state_->next_profile_retry (*this->stub ()); + { + if (TAO_debug_level > 0) + TAOLIB_DEBUG ((LM_INFO, + ACE_TEXT ("TAO (%P|%t) - Synch_Twoway_Invocation::") + ACE_TEXT ("remote_twoway retrying on TRANSIENT ") + ACE_TEXT ("exception\n"))); + this->retry_state_->next_profile_retry (*this->stub ()); #if TAO_HAS_INTERCEPTORS == 1 - s = this->receive_other_interception (); + s = this->receive_other_interception (); #endif /* TAO_HAS_INTERCEPTORS */ - return TAO_INVOKE_RESTART; - } + return TAO_INVOKE_RESTART; + } else { // Way back, we failed to find a profile we could connect to. diff --git a/TAO/tao/Version.h b/TAO/tao/Version.h index cc44cc260f3..8b48ae5bef1 100644 --- a/TAO/tao/Version.h +++ b/TAO/tao/Version.h @@ -4,9 +4,9 @@ #define TAO_MAJOR_VERSION 2 #define TAO_MINOR_VERSION 4 -#define TAO_MICRO_VERSION 6 -#define TAO_BETA_VERSION 6 -#define TAO_VERSION "2.4.6" -#define TAO_VERSION_CODE 132102 +#define TAO_MICRO_VERSION 7 +#define TAO_BETA_VERSION 7 +#define TAO_VERSION "2.4.7" +#define TAO_VERSION_CODE 132103 #define TAO_MAKE_VERSION_CODE(a,b,c) (((a) << 16) + ((b) << 8) + (c)) diff --git a/TAO/tests/SHMIOP/SHMIOP_Test.mpc b/TAO/tests/SHMIOP/SHMIOP_Test.mpc new file mode 100644 index 00000000000..8ccc71387cc --- /dev/null +++ b/TAO/tests/SHMIOP/SHMIOP_Test.mpc @@ -0,0 +1,11 @@ +project: taoidldefaults, taoserver, strategies { + exename = shmiop_test + + IDL_Files { + Test.idl + } + + Source_Files { + shmiop_test.cpp + } +} diff --git a/TAO/tests/SHMIOP/Test.idl b/TAO/tests/SHMIOP/Test.idl new file mode 100644 index 00000000000..1f8ff5e7970 --- /dev/null +++ b/TAO/tests/SHMIOP/Test.idl @@ -0,0 +1,9 @@ +module Test +{ + interface Hello + { + string get_string (); + + oneway void shutdown (); + }; +}; diff --git a/TAO/tests/SHMIOP/run_test.pl b/TAO/tests/SHMIOP/run_test.pl new file mode 100644 index 00000000000..a4b44408ed5 --- /dev/null +++ b/TAO/tests/SHMIOP/run_test.pl @@ -0,0 +1,84 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; +use strict; + +my $status = 0; +my $debug_level = 0; +my $cdebug_level = 0; +my $extra; +foreach my $i (@ARGV) { + if ($i eq '-debug') { + $debug_level = 10; + } + elsif ($i eq '-cdebug') { + $cdebug_level = 10; + } + elsif ($i eq 'with_collocated') { + $extra = "-s temp.ior"; + } +} + +my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n"; +my $client = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n"; + +my $iorbase = "server.ior"; +my $server_iorfile = $server->LocalFile ($iorbase); +my $client_iorfile = $client->LocalFile ($iorbase); +$server->DeleteFile ($iorbase); +$client->DeleteFile ($iorbase); + +my $shm = '-ORBSvcConf static_shmiop.conf -ORBListenEndpoints shmiop://'; + +my $SV = $server->CreateProcess ("shmiop_test", "-ORBDebugLevel $debug_level $shm -s $server_iorfile"); +my $CL = $client->CreateProcess ("shmiop_test", "-ORBDebugLevel $cdebug_level $shm -c $client_iorfile $extra"); +my $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; +} + +my $client_status = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval ()); + +if ($client_status != 0) { + print STDERR "ERROR: client returned $client_status\n"; + $status = 1; +} + +$server_status = $SV->WaitKill ($server->ProcessStopWaitInterval ()); + +if ($server_status != 0) { + print STDERR "ERROR: server returned $server_status\n"; + $status = 1; +} + +$server->DeleteFile ($iorbase); +$client->DeleteFile ($iorbase); + +if ($extra ne '') { + unlink 'temp.ior'; +} + +exit $status; diff --git a/TAO/tests/SHMIOP/run_test_collocated.pl b/TAO/tests/SHMIOP/run_test_collocated.pl new file mode 100644 index 00000000000..2a6f251b73a --- /dev/null +++ b/TAO/tests/SHMIOP/run_test_collocated.pl @@ -0,0 +1,40 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; +use strict; + +my $debug_level = 0; +foreach my $i (@ARGV) { + if ($i eq '-debug') { + $debug_level = 10; + } +} + +my $target = PerlACE::TestTarget::create_target(1) || die "Create target 1 failed\n"; + +my $iorbase = "server.ior"; +my $server_iorfile = $target->LocalFile ($iorbase); +$target->DeleteFile ($iorbase); + +my $status = 0; + +print "Collocated\n\n"; + +my $shm = '-ORBSvcConf static_shmiop.conf -ORBListenEndpoints shmiop://'; + +my $SV = $target->CreateProcess ("shmiop_test", "-ORBDebugLevel $debug_level $shm " . + "-s $server_iorfile -c $server_iorfile"); + +my $server = $SV->SpawnWaitKill ($target->ProcessStartWaitInterval ()); + +if ($server != 0) { + print STDERR "ERROR: Collocated test returned $server\n"; + $status = 1; +} + +$target->DeleteFile ($iorbase); + +exit $status; diff --git a/TAO/tests/SHMIOP/shmiop_test.cpp b/TAO/tests/SHMIOP/shmiop_test.cpp new file mode 100644 index 00000000000..dfbd3699508 --- /dev/null +++ b/TAO/tests/SHMIOP/shmiop_test.cpp @@ -0,0 +1,126 @@ +#include "TestS.h" + +#include "tao/Strategies/advanced_resource.h" + +#include "ace/Get_Opt.h" +#include "ace/OS_NS_stdio.h" +#include "ace/SString.h" +#include "ace/Task.h" + +struct Servant : virtual POA_Test::Hello +{ + explicit Servant (const CORBA::ORB_var &orb) + : orb_ (orb) + {} + + char *get_string () + { + CORBA::String_var str ("hello"); + return str._retn (); + } + + void shutdown () + { + this->orb_->shutdown (0); + } + + CORBA::ORB_var orb_; +}; + +struct ORBTask : ACE_Task_Base +{ + explicit ORBTask (const CORBA::ORB_var &orb) + : orb_ (orb) + {} + + int svc () + { + try + { + this->orb_->run (); + return 0; + } + catch (const CORBA::Exception &e) + { + e._tao_print_exception ("Exception caught from ORB::run:"); + } + catch (...) + { + ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR unknown exception caught ") + ACE_TEXT ("from ORB::run\n"))); + } + return 1; + } + + CORBA::ORB_var orb_; +}; + +int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + try + { + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + ACE_Get_Opt opts (argc, argv, ACE_TEXT ("s:c:")); + const ACE_TCHAR *server = 0, *client = 0; + for (int o; (o = opts ()) != -1;) + { + switch (o) + { + case 's': + server = opts.opt_arg (); + break; + case 'c': + client = opts.opt_arg (); + break; + } + } + + Servant srv (orb); + ORBTask task (orb); + + if (server) + { + CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA"); + PortableServer::POA_var poa = PortableServer::POA::_narrow (obj); + PortableServer::POAManager_var pm = poa->the_POAManager (); + pm->activate (); + Test::Hello_var srv_obj = srv._this (); + CORBA::String_var srv_str = orb->object_to_string (srv_obj); + FILE *f = ACE_OS::fopen (server, "w"); + ACE_OS::fputs (srv_str, f); + ACE_OS::fclose (f); + if (!client) + task.activate(); + } + + if (client) + { + ACE_CString ior ("file://"); + ior += ACE_TEXT_ALWAYS_CHAR (client); + CORBA::Object_var obj = orb->string_to_object (ior.c_str ()); + Test::Hello_var hello = Test::Hello::_narrow (obj); + CORBA::String_var str = hello->get_string (); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) - returned <%C>\n"), + str.in ())); + hello->shutdown (); + } + else if (server) + { + task.wait (); + } + + orb->destroy (); + return 0; + } + catch (const CORBA::Exception &e) + { + e._tao_print_exception ("Exception caught:"); + } + catch (...) + { + ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR unknown exception ") + ACE_TEXT ("caught in main\n"))); + } + return 1; +} diff --git a/TAO/tests/SHMIOP/static_shmiop.conf b/TAO/tests/SHMIOP/static_shmiop.conf new file mode 100644 index 00000000000..7fac80fcca5 --- /dev/null +++ b/TAO/tests/SHMIOP/static_shmiop.conf @@ -0,0 +1 @@ +static Advanced_Resource_Factory "-ORBProtocolFactory SHMIOP_Factory" |