diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-04-26 19:54:08 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-04-26 19:54:08 +0000 |
commit | d9d5d3d83831c9728147bfe5a2b53822d7ffca21 (patch) | |
tree | e5b750df314e429b4855dde4a541ec323c1dc134 | |
parent | 875b67c12fa1f5652de53df63db6e31daf839546 (diff) | |
download | ATCD-d9d5d3d83831c9728147bfe5a2b53822d7ffca21.tar.gz |
This commit was manufactured by cvs2svn to create branch
'oci_dave_wchar_refactor_branch'.
360 files changed, 87359 insertions, 0 deletions
diff --git a/ChangeLogs/ChangeLog-06a b/ChangeLogs/ChangeLog-06a new file mode 100644 index 00000000000..1aef41b5c1c --- /dev/null +++ b/ChangeLogs/ChangeLog-06a @@ -0,0 +1,11624 @@ +Tue Apr 18 08:54:49 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/SSL/SSL_Asynch_Stream_Test.cpp: + Fixed main signature to resolve link errors in the Cygwin build. + +Tue Apr 18 07:58:49 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/SSL/SSL_Asynch_Stream_Test.cpp: + Fixed warning in solaris build + +Tue Apr 18 07:55:49 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/SSL/SSL_Asynch_Stream_Test.cpp: + Fixed compile error in Cygwin build + +Tue Apr 18 07:24:49 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/msvc_static_order.lst: + Added ImR_Client lib + +Mon Apr 17 18:15:49 UTC 2006 Steve Huston <shuston@riverace.com> + + * tests/SSL/SSL_Asynch_Stream_Test.cpp: Fixed compile error correctly. + +Mon Apr 17 14:47:23 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu> + + * ace/config-macosx-tiger.h + + Added ACE_HAS_AIO_CALLS. + +Mon Apr 17 10:06:23 UTC 2006 Steve Huston <shuston@riverace.com> + + * tests/SSL/SSL_Asynch_Stream_Test.cpp: Restrict building this test + to platforms with both threads and AIO support. Fixes Cygwin + build problem. + +Sat Apr 15 10:57:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/SSL/SSL_Asynch_Stream_Test.cpp: + Fixed compile error + +Fri Apr 14 15:53:21 UTC 2006 Steve Huston <shuston@riverace.com> + + * NEWS: Updated to reflect the changes and fixes below. + + * ace/Task.{h inl cpp}: Change ACE_Task::lock_ from ACE_Thread_Mutex + to ACE_Recursive_Thread_Mutex, and hold lock_ across call to + ACE_Task::close() in ACE_Task_Base::cleanup(). This guards against + multiple threads in close() seeing a 0 thr_count() and acting on it. + Thanks to Howard Finer <hfiner at sonusnet dot com> for this fix. + Fixes Bugzilla #2339. + + * ace/SOCK_Stream.h: Explain more about how the *_n methods work and + how to use the timeout and bytes_transferred arguments. + + * examples/Threads/task_three.cpp: Change name of the file static + ACE_Thread_Mutex from lock_ to Lock to avoid clashing with the + ACE_Task-inherited member lock_. + + * ace/SSL/SSL_Asynch_Stream.{h cpp}: Changes that allow + ACE_SSL_Asynch_Stream objects to be instantiated; required adding + an implementation of the pure virtual implementation() method + inherited from ACE_Asynch_Operation. + Also moved the declaration of the ACE_SSL_Asynch_Read_Stream_Result, + ACE_SSL_Asynch_Write_Stream_Result, and ACE_SSL_Asynch_Result classes + from the .cpp file to the .h file so applications can see them. + Also corrected and enhanced a lot of the documentation. + + * tests/SSL/tests.mpc: + * tests/SSL/Makefile.am: + * tests/SSL/SSL_Asynch_Stream_Test.cpp: Added a new test that at least + tests building an application to use ACE_SSL_Asynch_Stream. + +Fri Apr 14 14:57:12 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/msvc_static_compile.pl: + + Added a work-around for devenv using the solution file to build + additional projects even when the .vcproj is specified. This only + happens when using the -CORE option to this script. First, all + .sln files are temporarily renamed and then named back when the + build is done or a SIGINT or SIGTERM is detected. + +Wed Apr 12 14:48:38 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_component_dnc.mpb + + Fixes for linking errors in OS X. + +Tue Apr 11 20:06:12 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/OS_NS_stdio.inl (rewind): Replaced SetFilePointer() with + fseek() on WinCE since it works better. Thanks to Andrey + Nechypurenko for reporting this. + +Wed Apr 12 08:14:00 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ciao_events_dnc.mpb: + Added ciao_rtevent_dnc as base project to fix link errors in the + VxWorks static builds + +Tue Apr 11 14:10:00 UTC 2006 Steve Huston <shuston@riverace.com> + + * ASNMP/asnmp/transaction.cpp (handle_input): Return 0 on successful + socket read, not the number of bytes. Thanks to Jason Zhang for this + fix. + + * THANKS: Added Jason Zhang to the Hall of Fame. + +Tue Apr 11 13:12:36 UTC 2006 Simon McQueen <sm@prismtech.com> + + * ace/Lib_Find.h: + + aCC 3.31 seems to want an extra newline at the end of this file. + + * ace/config-macros.h: + + ACE_NOTREACHED is reached for aCC up to 3.31 at least. + + * include/makeinclude/platform_hpux_aCC.GNU: + + Define ACE_LACKS_MEMBER_TEMPLATES for aCC 3.31 because it does. + +Tue Apr 11 12:41:00 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ciao_config_handlers.mpb: + Added event config handles and add all projects to the after + to get the correct build order + +Mon Apr 10 18:37:17 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * ace/ace_for_tao.mpc: + + Added Capabilities.cpp into the lib. + Required by TAO/orbsvcs/examples/ImR/Advanced to + use the getline function. The ace_for_tao lib is + increased by 0.1M. + +Mon Apr 10 18:04:00 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Don't run bug 2134 regression in a minimum build + +Mon Apr 10 14:34:00 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Object_Manager_Test.cpp: + Fixed compile problem in single threaded no inline build + +Mon Apr 10 12:28:00 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ciao_server_dnc.mpb: + * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: + Added ciao_events_dnc + +Mon Apr 10 12:06:00 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ciao_domainapplicationmanager_dnc.mpb: + New base project + +Mon Apr 10 11:52:00 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ciao_component_dnc.mpb: + * bin/MakeProjectCreator/config/ciao_container_dnc.mpb: + * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: + Changed base projects + +Mon Apr 10 10:27:03 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * tests/Unload_libACE.cpp: + Set up a guard for WIN32 && ACE_USES_WCHAR. + +Mon Apr 10 09:36:00 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ciao_rtevent_dnc.mpb: + New base project + +Mon Apr 10 09:13:00 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ciao_events_base_dnc.mpb: + New base project + +Mon Apr 10 06:23:00 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ciao_container_dnc.mpb: + New file, matches library name + + * bin/MakeProjectCreator/config/ciao_xml_utils.mpb: + Use exceptions as base project + + * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: + Use ciao_events_dnc as base project + + * bin/MakeProjectCreator/config/ciao_events_dnc.mpb: + Add ciao_container_dnc and ciao_client_dnc to make things easier to + maintain. Also use the CIAO_Dnc_Events library instead of the + two seperate libs + + * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: + * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: + Removed CIAO_DnC_Events as seperate lib + +Sun Apr 9 12:00:00 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * docs/ACE-bug-process.html: Updated this page to more accurately + reflect how the DOC group handles enhancement requests. Thanks + to David White <david dot white dot 7 at gmail dot com> for + motivating this. + +Sat Apr 8 18:32:29 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/Shared_Memory_MM.h (ACE_Shared_Memory_MM): + * ace/Shared_Memory_SV.h (ACE_Shared_Memory_SV): + Added comments that underscore that these classes should not be + used and instead ACE_Malloc or ACE_Mem_Map should be used. + Thanks to Qingbo Cai <qingbo dot cai at case dot edu> for motivating these + comments. + +Fri Apr 7 19:56:03 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_events_dnc.mpb + + Modified to make CIAO_DnC_Events_Base and CIAO_RT_Event + libraries explicitly specified in "libs +=" to resolve + linking errors in BC compilers. + +Fri Apr 7 13:13:06 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * tests/tests.mpc: + Add staticflags += ACE_AS_STATIC_LIBS for Library Unload + +Fri Apr 7 07:36:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Token.{h,inl}: + Fixed compile problem in single threaded no online build. Thanks + to Ossama Othman for reporting this + +Thu Apr 6 21:11:24 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/SSL/SSL_Context.cpp (private_key, context, dh_params): If setting + up the new file fails, reset the corresponding + ACE_SSL_Data_File member to allow retries to proceed. + + * NEWS: Added user-visible items for 5.5.1. + +Thu Apr 6 19:15:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Thread.cpp: + Fixed compile problem in single threaded no online build. Thanks + to Ossama Othman for reporting this + +Thu Apr 6 15:58:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Thu Apr 6 10:07:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/run_test.lst: + * tests/tests.mpc: + * tests/Bug_2497_Regression_Test.cpp: + Added regression for bug 2497, we have to see what the best fix + is. Thanks to Sergey Zubarev <sergant128 at mail dot ru> for + providing reporting this. + +Thu Apr 6 06:05:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-macosx-tiger.h: + Don't define ACE_SIZEOF_LONG_DOUBLE when it is already set. Can + happen when we build for OS X on Intel. Thanks to Ignacio Alvarez + <support at xentient dot com> for reporting this. This fixes bugzilla + 2496. + +Wed Apr 5 23:02:50 UTC 2006 Adam Mitz <mitza@ociweb.com> + + * bin/tao_orb_tests.lst: + + Added TAO/tests/Bug_2494_Regression. + +Wed Apr 5 22:03:52 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_events_dnc.mpb + + Modify the project dependency so its built after + CIAO_DnC_Container project. This should fix the + errors on SuSE_FP_Stats build. + +Wed Apr 5 19:32:19 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb + + Added library dependency to CIAO_Events_DnC, so static + build could resolve symbols in this library. + +Mon Apr 5 14:59:37 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * ace/SSL/SSL_Context.cpp: + * ace/SSL/SSL_Context.h: + + Addressed access to locks that have already been destroyed by + reintroducing some of the original static variable semantics. + Some, but not all, of the exception-safety fixes that introduced + the order of destruction problem were retained. + + (random_seed, egd_file, seed_file): + + Declared these methods "static" since they do not manipulate + internal ACE_SSL_Context members. + +Wed Apr 5 14:58:12 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * tests/Unload_libACE.cpp: + Set up a guard for ACE_AS_STATIC_LIBS. + + * tests/tests.mpc: + Add an empty Resource_Files section to the Library Unload project. + +Wed Apr 5 14:25:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Wed Apr 5 13:10:00 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/CDR_Stream.cpp: + Initialise local pointer with 0 + +Wed Apr 5 11:55:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Tue Apr 4 18:51:41 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/SOCK_Acceptor.cpp (shared_open): If ACE_OS::listen() fails, + guard errno before closing the socket to prevent loss of the error + value, at least on Windows. Thank you to Aleksandar Vukajlovic + <vukajlo at finsoft dot co dot yu> for this fix. + + * THANKS: Added Aleksandar Vukajlovic to the Hall of Fame. + +Tue Apr 4 15:44:03 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/README: + * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: + + Reverting my change from Mon Apr 3 12:12:27 UTC 2006 and changing + the default from directory based building/dependencies to named + targets (which is the way that all other make based MPC project + types work). This is being done by request (RT #8510). + +Tue Apr 4 15:28:00 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * tests/Unload_libACE.cpp: + Cope when log file cannot be opened. + +Tue Apr 4 15:06:00 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * tests/Unload_libACE.cpp: + Add guards for __MINGW32__ and __CYGWIN32__. + Don't error if libACE isn't found. + +Tue Apr 4 14:10:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Mon Apr 3 23:04:51 UTC 2006 Steve Huston <shuston@riverace.com> + + * include/makeinclude/platform_aix_ibm.GNU: Removed the explicit + setting of ACE_TEMPLATES_REQUIRE_SOURCE in CCFLAGS introduced at + Wed Feb 22 16:26:43 GMT 2006 Rich Seibel <seibel_r@ociweb.com>. + ACE_TEMPLATES_REQUIRE_SOURCE is set (or not) from config-aix-4.x.h + depending on what template instantiation options were specified on + the command line. + +Mon Apr 3 13:45:29 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * ace/Basic_Types.inl: + + Fixed versioned namespace related errors for configurations that + define ACE_LACKS_LONGLONG_T and/or ACE_LACKS_UNSIGNEDLONGLONG_T. + +Mon Apr 3 13:45:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Mon Apr 3 12:12:27 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/README: + * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: + + Added support for a new workspace based setting that only makes + sense to the 'gnuace' project type called 'named_targets'. If + 'named_targets' is set, the workspace (GNUmakefile) will be + generated such that each target can be built via it's project name + and directory location does not affect dependencies. + + * bin/MakeProjectCreator/templates/gnu.mpd: + + Support the new source component scoped keyword 'buildflags'. + +Mon Apr 3 10:25:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_orb_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Mon Apr 3 09:38:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Remove PRISM_ONLY tests (again arg!) + +Sat Apr 1 19:08:28 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/OS_NS_math.inl: Improved the computations for floor() and ceil(). + Thanks to Abdullah Sowayan <abdullah.sowayan@lmco.com> for this + patch. + +Sat Apr 1 17:14:59 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + * m4/compiler.m4: + + Removed special cases for *freebsd*. Thanks to Thomas Girard + <thomas dot g dot girard at free dot fr> who sent patches for + Debian GNU/kFreeBSD systems (FreeBSD kernel / GNU libc). The + changes added *k*bsd-gnu patterns to override the special cases + matched by *freebsd*. However, further investigation has proved + that they were not needed for FreeBSD either. + +Fri Mar 31 23:51:48 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Changed to #include <sys/param.h> in the <sys/sysctl.h> + feature test, avoiding the autoconf "present but cannot + be compiled" warning. + +Fri Mar 31 15:00:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Fri Mar 31 13:59:04 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * tests/Unload_libACE.cpp: + Add guard for ACE_VXWORKS and declare local main(). + + * tests/tests.mpc: + Remove Main.cpp reference from the Library Unload project. + +Fri Mar 31 11:41:54 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/OS_NS_Thread.h: + * ace/OS_NS_Thread.inl: + * ace/Recursive_Thread_Mutex.cpp: Reverted changes from + Thu Mar 30 18:51:13 UTC 2006 Steve Huston <shuston@riverace.com> + because they broke builds on many platforms. + +Fri Mar 31 10:56:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Timer_List_T.cpp: + Use prefix increment instead of postfix + + * ace/Timer_Hash_T.cpp: + Initialise pointer with 0 + + * ace/Reactor_Token_T.h: + Converted some documentation to doxygen style + + * ace/Log_Record.cpp: + Initialise some pointers with 0, made some local variables const. + + * ace/IOStream_T.h: + Fixed some doxygen warnings + +Fri Mar 31 08:33:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/compiler.bor: + Added CPU_FLAG as possible flag, this can be -3/-4/-5/-6 to optimize + things for a certain CPU, see the Borland help for more info what + these flags do. When this is set, this is passed to the compiler + + * ACE-INSTALL.html: + Document CPU_FLAG for Borland + + * ace/config-win32-borland.h: + The Borland compiler can't handle assembly in inline methods or + template methods. We do have inline assembly when building for + pentium, so when we inlining enabled and do build for pentium + we set ACE_LACKS_INLINE_ASSEMBLY to disable the inline assembly. + Thanks to Steve Orner <saorner at rdainc dot com> for reporting + this. + +Thu Mar 30 21:03:27 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * ace/Event_Handler.cpp (read_adapter): + + Fixed typo introduced in + + Thu Mar 30 10:24:50 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + +Thu Mar 30 10:24:50 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/Event_Handler.cpp (read_adapter): It was possible for + handle_close() to "delete this" so we need to cache the reactor + pointer and use it here. Thanks to Yuan <yuanhp_china at + hotmail dot com> for this fix. + +Thu Mar 30 18:51:13 UTC 2006 Steve Huston <shuston@riverace.com> + + * tests/Unload_libACE.cpp: Fixed broken fprintf() call. + + * ace/OS_NS_Thread.h (ACE_thread_mutex_t): + * ace/OS_NS_Thread.inl: For Windows, replace CRITICAL_SECTION with a + struct including a CRITICAL_SECTION as well as a recursion count. + This allows us to properly do recursion in combination with a + condition variable across all Windows editions and versions. + + * ace/Recursive_Thread_Mutex.cpp (get_nesting_level): This is now + possible for platforms with ACE_HAS_RECURSIVE_THREAD_MUTEX. + + Thanks to Adrian Tulloch <my-ace-sub at reyes-tulloch dot com> for + these improvements. + + * THANKS: Added Adrian Tulloch to the Hall of Fame. + +Thu Mar 30 17:04:48 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb + * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb + + Modified to support CIAO pub/sub service integration. + + * bin/MakeProjectCreator/config/ciao_events_dnc.mpb + + Added this mpb file for pub/sub service integration + in CIAO. + +Thu Mar 30 15:45:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tests/Unload_libACE.cpp: + Corrected missing file handle. + +Thu Mar 30 13:14:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp: + * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp: + * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp: + * apps/JAWS3/jaws3/Config_File.cpp: + Fixed value might be unitialized warnings + +Thu Mar 30 12:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Configuration.cpp: + * ace/Shared_Memory_MM.cpp: + * ace/ARGV.cpp: + * examples/APG/Containers/Stacks.cpp: + * examples/APG/Containers/RB_Tree_Functors.cpp: + * examples/APG/Containers/Queues.cpp: + * ace/RB_Tree.inl: + * tests/Hash_Map_Manager_Test.cpp: + Fixed value might be unitialized warnings + +Thu Mar 30 11:27:00 UTC 2006 Simon McQueen <sm@prismtech.com> + + * include/makeinclude/platform_sunos5_sunc++.GNU: + + Define variable ACE_CC_PREPROCESSOR to be 'cc' if the SunCC version + is 5.4. This fixes bug #2478. + + See also: Thu Mar 30 11:26:45 UTC 2006 Simon McQueen <sm@prismtech.com> + in TAO/ChangeLog. + +Thu Mar 30 11:16:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added BiDirectional_DelayedUpcall + +Thu Mar 30 11:04:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Run BiDirectional_NestedUpcall also on VxWorks + +Thu Mar 30 00:46:52 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/compiler.m4: + + Change the default of --enable-symbol-visibility option from yes + to no. + +Wed Mar 29 22:33:36 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Changed to #include <sys/types.h> in the <sys/sysctl.h> + feature test, avoiding the autoconf "present but cannot + be compiled" warning. + +Wed Mar 29 19:26:37 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.cpp: + Do not try to control DTR under LynxOS. It sets serial port + to non-functional state. + +Wed Mar 29 14:14:06 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ACE-INSTALL.html: + * m4/ace.m4: + + Changed --with-gperf to --enable-gperf to be consistant with the + intent of --with-* / --enable-* flags. Thanks to Vincent Joseph + <deskamess at yahoo dot com> for running into this. + +Wed Mar 29 13:25:12 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * ace/Log_Msg.cpp: + * include/makeinclude/platform_lynxos.GNU + + Add code to ensure cleanup in ACE_Log_Msg::close (void). + For some systems, e.g. LynxOS, we need to ensure that + any registered thread destructor action for this thread + is disabled. This is a revision of an earlier attempt to + achieve the same thing. The ACE tests pass with this edition. + + * tests/Unload_libACE.cpp + + This source does not use ACE functionality directly. + It tests that the ACE shared library can be safely loaded, + (and unloaded), by a non-ACE program exercising the + cleanup code above. + + * tests/run_test.lst + * tests/tests.mpc + + Build and run the new test + +Wed Mar 29 07:04:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Log_Msg.cpp: + Initialise pointers with 0, small const changes + +Wed Mar 29 06:44:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/*.doxygen: + Also expand ACE_ENV_ARG_DECL_NOT_USED and + ACE_ENV_SINGLE_ARG_DECL_NOT_USED + +Tue Mar 28 21:30:01 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu> + + * ace/Log_Msg.{h,cpp} + * ace/Log_Record.{cpp,h,inl}: + Updated these files to solve the stack overflow problem in ACE_Log_Msg + and ACE_Log_Record. Moves buffers that can be large in stack in malloced + memory. + Thanks to qwerty <qwerty0987654321 at mail dot ru> for motivating and + suggesting the fix to this problem. + +Tue Mar 28 18:34:26 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * bin/tao_other_tests.lst: + Added a missing semicolon. + +Tue Mar 28 14:51:19 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/compiler.m4: + + Added support for --disable-symbol-visibility flag so users + can explicitly disable symbol visibility in the cases where + it does not work (or does not work properly) but the feature + test selects it anyway. + +Tue Mar 28 09:04:55 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/OS_NS_sys_resource.inl (setrlimit): Fixed a bug where + "resource" appeared twice in the call to setrlimit(). Thanks to + Vincent Joseph <deskamess at yahoo dot com> for reporting this. + +Tue Mar 28 14:10:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_orb_tests.lst: + more !DISABLE_ToFix_LynxOS_* marks to tests + +Mon Mar 27 19:06:52 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * bin/tao_other_tests.lst: + + Added test + TAO/orbsvcs/tests/Security/MT_SSLIOP/run_test_harsh.pl to + test fix for bug in Bug 1647. + +Mon Mar 27 16:39:41 UTC 2006 Steve Huston <shuston@riverace.com> + + * tests/tests.mpc: Added a "verbatim" to get the automake-needed + setup for running the scoreboard test script for the tests. + +Mon Mar 27 14:16:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Mon Mar 27 07:46:33 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/Acceptor.h: Updated the documentation to clarify that an + acceptor can only listen on one port at a time. Thanks to + Mockey Chen <mockey dot chen @ google dot com> for motivating + this. + +Mon Mar 27 11:08:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_orb_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Mon Mar 27 09:18:07 UTC 2006 Simon McQueen <sm@prismtech.com> + + * ace/Configuration.h: + + Remove 'explicit' keyword from a two arg constructor. This is + upsetting aCC 331. + +Mon Mar 27 03:57:38 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/compiler.m4: + + Check whether "gcc" supports symbol visibility options by + invoking the compiler with those options. This addresses + configure failures due to icc's incomplete gcc emulation. + Should fix bugzilla issues 2338 and 2384. + +Sun Mar 26 21:40:10 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/TSS_T.cpp: Added patches to silence the type-punning warning + from G++ 4.x. Thanks to Ken Sedgwick for contributing this + stuff! + +Sun Mar 26 17:29:08 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/compiler.m4: + + Add ACE_CHECK_CFLAGS and ACE_CHECK_CXXFLAGS autoconf macros + to verify if c/c++ compiler supports the specified command- + line options. + +Fri Mar 24 12:05:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Thu Mar 23 16:20:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_orb_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Thu Mar 23 16:00:49 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * ace/Svc_Conf_Lexer.cpp: + + Fixed two bugs. + + 1) Line numbers were not calculated correctly as in most cases the + new line characters were thrown away but not counted. + 2) Strings were not allowed to contain nested quotes. However, + the original lexer allowed this. Thanks to JR Andreassen + <janrune@io.com> for reporting this. + +Thu Mar 23 14:37:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/vcl.mpb: + Also set specific options for the bds template + +Thu Mar 23 14:37:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/os_limits.h: + Updated documentation why we have a VxWorks specific + workaround + +Thu Mar 23 14:22:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + + * bin/PerlACE/Run_Test.pm: + Add lynxos platform default timing configuration + +Thu Mar 23 12:14:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/templates/bor.mpd: + If linkflags are available, generate them into the project + file + + * bin/MakeProjectCreator/config/vcl.mpb: + Added -aa to the link flags to indicate that we link a + windows application. This prevents a dosbox from appearing + when we start a vcl windows app. + +Thu Mar 23 03:41:18 UTC 2006 Ciju John <john_c@ociweb.com> + + * ace/Time_Value.inl (set): + + timespec_t doesn't have a 'sec' member. Changed it to 'tv_sec'. + +Wed Mar 22 18:42:36 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + From Russell Mora <russell_mora at symantec dot com> + * ace/Time_Value.inl: + + With MSVC8 the type of time_t is by default 64-bit unless + _USE_32BIT_TIME_T is defined - changed #ifdef to recognise this + and also changed other set() methods to use the version that + knows how to handle the 64-bit type. + +Wed Mar 22 17:55:48 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_events_dnc.mpb + * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb + * bin/MakeProjectCreator/config/ciao_deployment_dnc.mpb + + Reverted my earlier change + "Tue Mar 21 21:58:17 UTC 2006 Gan Deng + <gan.deng@vanderbilt.edu>". + + I will put earlier changes back in later when all the + libraries in CIAO to support pub/sub services have + been checked in. + +Wed Mar 22 16:19:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-osf1-4.0.h: + Added ACE_HAS_NONCONST_SENDMSG + +Wed Mar 22 15:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_osf1_4.x_g++.GNU: + Removed -fno-strict-prototypes from the CCFLAGS, thanks to + Karl Schmitt <Karl dot Schmitt at dfs dot de> for reporting this. + +Tue Mar 21 21:58:17 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_events_dnc.mpb + * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb + * bin/MakeProjectCreator/config/ciao_deployment_dnc.mpb + + Added a base MPC project to support pub/sub integration + in CIAO. + +Tue Mar 21 19:06:12 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + Committing on behalf of Adam Mitz <mitza@ociweb.com>. + + * bin/PerlACE/Process_Win32.pm: + + In some cases .EXE was not being added to the end of the + executable name. This change fixes that problem and also changes + Spawn() to return -1 on failure instead of exiting. + +Tue Mar 21 15:30:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Tue Mar 21 14:29:29 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + If system lacks the cpu_set_t type, skip the feature tests for + sched_getaffinity() and sched_setaffinity(). The interface of + these system calls have changed three times, and ACE currently + only supports the latter two varients. The supported varients + both have arguments of type cpu_set_t. + + On a system with the first varient, the feature tests detects + the existance of sched_getaffinity() and sched_setaffinity(), + it also detects that it's the not most current varient. This + results in feature test macros being defined for the second + varient, which causes a build failure in OS_NS_Thread.cpp. + + By avoiding the feature tests, we avoid defining any processor + affinity related feature test macros, and ACE will be compiled + as if the system does not support any form of processor + affinity. + + See bugzilla issue 2466 for details. + +Tue Mar 21 11:03:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/Misc/childbirth_time.cpp: + * examples/OS/Process/imore.cpp: + Fixed unicode build errors + +Tue Mar 21 06:49:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_other_tests.lst: + Removed all PrismTech tests + +Mon Mar 20 22:53:09 UTC 2006 Steve Huston <shuston@riverace.com> + + * tests/Makefile.am: Restored hand-inserted settings to allow running + the ACE tests during "make check". This needs to be added to the + mpc file, but we're discussing how to do this. + +Mon Mar 20 08:58:26 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_other_tests.lst: + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Mon Mar 20 08:58:26 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ACE-INSTALL.html: Removed all references to egcs, which + is hopelessly out of date.. + +Mon Mar 20 14:54:23 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/Task_Ex_T.h: + Added a workaround for buggy LynxOS 3.x compiler. + +Mon Mar 20 10:15:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/TP_Reactor.cpp (post_process_socket_event): + Before acquiring the token, first check if we really have to do some + post processing, if not, then we just don't acquire the token. This + fixes the performance drop in the TAO thread pool performance test. + Thanks to Kobi Cohen-Arazi <kobi dot cohenarazi at gmail dot com> + for noticing this drop in the performance stats. + + * ace/TP_Reactor.h: + Small documentation improvement + +Sun Mar 19 21:30:39 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ACE-INSTALL.html (href): Rearranged the order of things + so that it explains how to build and install ACE before going + into all sorts of details about various platforms and compilers. + Thanks to Axter <google at axter dot com> for motivating this. + +Sat Mar 18 15:20:45 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/Timer_Queue_Adapters.cpp (activate): Set active_ to 1 + in case we were deactivated. Thanks to Yauheni Akhotnikau + <eao197 at intervale dot ru> for reporting this. + +Fri Mar 17 16:35:36 UTC 2006 Ossama Othman <ossama@dre.vanderbilt.edu> + + * docs/Symbol_Versioning.html: + + New document that describes how to use ACE's versioned namespace + support. [Bug 2458] + +Fri Mar 17 15:50:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tests/run_test.lst + Add more !DISABLE_ToFix_LynxOS_* marks to failing tests + +Fri Mar 17 13:38:18 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciaocidldefaults.mpb: + + New file, containing cidl-related stuff removed from + ciao_servant_dnc.mpb, which now inherits from the new + base project. These changes allow CIAO applications + to set up the build either in the existing way, where + the servant build executes the CIDL compiler, then the + IDL compiler on the resulting *E.idl file, then the + C++ compiler on all the results, or to have separate + builds for CIDL files (which executes first), then + IDL files, then generated and hand-written C++ files. + + * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: + + Changes described in the item above. + +Fri Mar 17 13:37:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/TP_Reactor.cpp: + Fixed variable not used warning + +Fri Mar 17 08:56:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/TP_Reactor.{h,cpp,inl}: + Fixed bugzilla #2395. This was about a race condition in the + TP_Reactor, when the handle_x method returns -1 the handler + is removed and after that we try to resume. Normally this resume + is a noop because for the handle there is no event handler anymore. + But to resume the handle we need to reacquire the lock on the + reactor, in the time between the remove and the reacquire we could + have received a new connection for which the handle is used which + we already freed and then we can resume this handle but then for + a new eventhandler. The fix is to do the remove and resume as atomic + operation. Thanks to Bala Natarajan and Steve Huston for reviewing + the patches and Kees van Marle for debugging and analyzing this + problem. + +Thu Mar 16 21:54:29 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Timer_Heap_T.cpp (grow_heap): Reset timer_ids_min_free_ after + growing the heap. Fixes Bugzilla #2447 where timer IDs may be + improperly duplicated under certain conditions. + + * tests/Timer_Queue_Test.cpp: Added a new function, + test_unique_timer_heap_ids(), as supplied in Bugzilla #2447 to + verify the fix. + + Thank you very much to Dan Pozdol <dpozdol at wolve dot com> and + Paxton Mason <pmason at wolve dot com> for identifying the bug, + its conditions and causes, supplying the test program and supplying + the fix! + + * THANKS: Added Dan Pozdol to the Hall of Fame. + +Thu Mar 16 16:30:00 UTC 2006 simon massey <sma@prismtech.com> + + * tests/run_test.lst + Add !DISABLE_ToFix_LynxOS_* marks to failing ACE tests + +Thu Mar 16 15:53:55 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu> + + * ace/UUID.cpp + * protocols/ace/RMCast/Simulator.cpp + Updated these files to solve some potential static-cast errors. + +Thu Mar 16 13:47:56 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * ace/config-vxworks6.2.h: + + In kernel mode, VxWorks 6.2 lacks suseconds_t. + +Thu Mar 16 12:27:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/ciao_DAnCE.doxygen: + Fixed incorrect links to the location of the documentation of the + other ACE/TAO libraries + +Thu Mar 16 12:20:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * html/index.html: + Added CIAO Config Handlers + +Thu Mar 16 12:14:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/*.doxygen: + Set GENERATE_HTMLHELP to YES. This generates a few extra files + which our users can use to convert the generated htlm documentation + easily to a windows help file + +Thu Mar 16 12:05:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/*.doxygen: + Set DOT_MULTI_TARGETS to TRUE, this will speedup the doxygen + generation. + +Wed Mar 15 16:38:08 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/OS_NS_Thread.inl: + Only LynxOS 3.0.x has buggy pthread_cond_timedwait. + + * ace/Reverse_Lock_T.h: + Added a workaround for buggy LynxOS 3.x compiler. + +Wed Mar 15 15:27:51 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu> + + * ace/Capabilities.cpp + * ace/Codecs.cpp + Updated these files to solve the Capabilities_Test & Codecs_Test + tests errors. + +Wed Mar 15 12:18:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/*.doxygen: + Set SEARCHENGINE to YES for all doxygen config files, enables + the possibility to do searches in the doxygen generated + documentation + +Wed Mar 15 11:34:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Handle_Set.{cpp,inl}: + Use prefix increment/decrement instead of postfix + +Tue Mar 14 11:22:35 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/String_Base.inl (empty), + * ace/String_Base.h (ACE_String_Base): Added + an empty() method to be more like STL strings. Thanks to + Patrick Rabau <pr2345 at gmail dot com> for contributing this. + +Tue Mar 14 23:33:27 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/OS_NS_Thread.inl (recursive_mutex_cond_unlock): Fix this for + WinCE. CE doesn't have a RecursionCount, and LockCount is not an + indicator of recursion on WinCE; instead, see when it's unlocked + by watching the OwnerThread, which will change to something other + than the current thread when it's been unlocked "enough" times. + Thanks to Spencer Vanroekel <Spencer dot Vanroekel at Siemens dot + com> for the investigations leading to this solution. + + * THANKS: Added Spencer Vanroekel to the Hall of Fame. + +Tue Mar 14 20:58:12 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu> + + * ace/WIN32_Asynch_IO.cpp + * ace/ACE.cpp + * ace/Capabilities.cpp + * ace/Codecs.cpp + * ace/FIFO.cpp + * ace/FIFO.h + * ace/FIFO_Recv.cpp + * ace/FIFO_Recv.h + * ace/FIFO_Recv_Msg.cpp + * ace/FIFO_Recv_Msg.h + * ace/FIFO_Send.cpp + * ace/FIFO_Send.h + * ace/FIFO_Send_Msg.cpp + * ace/FIFO_Send_Msg.h + * ace/Get_Opt.cpp + * ace/INET_Addr.cpp + * ace/MEM_Acceptor.cpp + * ace/MEM_IO.cpp + * ace/RB_Tree.cpp + * ace/Reactor.cpp + * ace/SOCK_Dgram_Mcast.cpp + * ace/SV_Semaphore_Complex.cpp + * ace/SV_Semaphore_Complex.h + * ace/SV_Semaphore_Complex.inl + * ace/SV_Semaphore_Simple.cpp + * ace/SV_Semaphore_Simple.h + * ace/SV_Semaphore_Simple.inl + * ace/TTY_IO.cpp + * ace/UUID.cpp + * ACEXML/common/FileCharStream.cpp + * ACEXML/common/HttpCharStream.cpp + * ACEXML/common/Transcode.cpp + * ACEXML/common/XML_Macros.h + * ACEXML/parser/parser/Parser.cpp + * ACEXML/parser/parser/Parser.i + * apps/gperf/src/Gen_Perf.cpp + * apps/gperf/src/Key_List.cpp + * apps/gperf/src/List_Node.cpp + * apps/gperf/src/Options.cpp + * protocols/ace/HTBP/HTBP_ID_Requestor.cpp + Updated these files to solve the warnings when setting up "VC level + 4 warnings" on Windows. These warnings include "unreachable code", + "assignment within conditional expression", "conversion from some + type to another type, possible loss of data", "local variable may be + used without having been initialized" and so on. + Thanks to Lukas Gruetzmacher <gruetzmacher at ais-dresden dot de> + for motivating the fix to these "VC level 4 warnings". + +Tue Mar 14 15:55:08 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/Task_T.h: + Added a workaround for buggy LynxOS 3.x compiler. + + * include/makeinclude/platform_lynxos.GNU: + Made debug=0 as default for LynxOS 3.x + +Tue Mar 14 15:50:09 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/OS_NS_Thread.cpp: + Removed the :: prefix from pthread calls that are macros + on LynxOS. + +Tue Mar 14 09:51:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/generate_rel_manpages: + Updated doxygen version + +Mon Mar 13 22:01:23 UTC 2006 Olli Savia <ops@iki.fi> + + * tests/run_test.lst: + Do not run Multicast_Test and Process_Strategy_Test on LynxOS. + +Mon Mar 13 21:47:22 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/OS_NS_Thread.inl: + Removed the :: prefix from pthread calls that are macros + on LynxOS. + + * ace/config-lynxos.h: + Do not define _POSIX_THREADS_CALLS under LynxOS 4.0. + + Thanks to Abdullah Sowayan <abdullah.sowayan@lmco.com> + for reporting the problem and providing the initial patch. + +Mon Mar 13 22:21:25 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu> + + * ace/Process.h: + Changed the documentation of ACE_Process::spawn function.It + returns 1 if avoid_zombies option is set. does not return the + pid. + +Mon Mar 13 19:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/TP_Reactor.cpp: + Fixed typo in comment + + * ace/OS_NS_sys_select.inl: + Initialize pointer with 0 + + * ace/ACE.cpp: + Use prefix decrement/increment instead of postfix. Replaced + several c-style casts with C++ casts + +Mon Mar 13 17:20:47 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * ace/os_include/sys/os_time.h: + + Fixed a fuzz build error. + +Mon Mar 13 15:15:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Token.cpp: + Use prefix decrement/increment instead of postfix + +Mon Mar 13 14:59:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Select_Reactor_Base.cpp: + Initialise several pointers to 0 + +Mon Mar 13 14:02:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Handle_Set.h: + Doxygen improvements + + * ace/Handle_Set.inl: + Use prefix increment instead of postfix + +Mon Mar 13 07:51:10 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * Reverted this change + + Sun Mar 12 09:10:01 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + Since it was causing runtime failures. Thanks to Johnny for + reporting this. + +Mon Mar 13 13:26:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/TP_Reactor.cpp (handle_socket_events): + When suspend_i returns -1 return directly + +Mon Mar 13 12:11:52 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * ace/OS_NS_Thread.inl + Yank error reported by Abdullah, <abdullah.sowayan@lmco.com> fixed. + +Sun Mar 12 19:21:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Event_Handler.h: + Documentation improvement + + * ace/UTF32_Encoding_Converter.cpp: + Initialise pointer with 0 + + * ace/Select_Reactor_T.cpp (dump): + Also dump the contents of the suspend set + + * ace/Select_Reactor_Base.cpp (dump): + Improved output + +Sun Mar 12 09:10:01 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/TSS_T.cpp: Changed all calls of the form + + if (ACE_Thread::getspecific (this->key_, (void **) &tss_adapter) == -1) + + to + + void *temp = tss_adapter; // Need this temp to keep G++ from complaining. + if (ACE_Thread::getspecific (this->key_, &temp) == -1) + + to silence GCC warnings. Thanks to Lothar for this, as well. + +Sat Mar 11 09:09:35 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/CDR_Stream.inl: Changed all calls of the form + + ACE_OutputCDR::write_float (ACE_CDR::Float x) + { + return this->write_4 (reinterpret_cast<const ACE_CDR::ULong*> (&x)); + } + + to + + ACE_OutputCDR::write_float (ACE_CDR::Float x) + { + void * tmp = &x; + return this->write_4 (reinterpret_cast<const ACE_CDR::ULong*> (tmp)); + } + + to silence GCC warnings. Thanks to Lothar Werzinger for + suggesting this fix. + +Sun Mar 12 11:00:08 UTC 2006 Simon McQueen <sm@prismtech.com> + + * bin/PerlACE/Process_Win32.pm: + + Don't postfix ".EXE" onto executables if they already have it and + IgnoreExeSubDir is set. Will make this: + + $PERL_SCRIPT = new PerlACE::Process($^X); + $PERL_SCRIPT->Arguments("some_perl_script.pl"); + $PERL_SCRIPT->IgnoreExeSubDir(1); + + ... start working again. + +Sat Mar 11 12:54:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl.> + + * ace/Timer_Wheel_T.h: + Don't split the unimplemented macros over multiple lines, fixes + compile problems with the Sun compilers. Thanks to Sven-Uwe + Sieler-Hornke + <sven-uwe dot sieler-hornke at investment-cybernetics dot de> + for reporting this + +Fri Mar 10 16:01:58 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + Committing the following on behalf of Adam Mitz + <mitza at ociweb dot com>. + + * bin/tao_orb_tests.lst: + + Added TAO/tests/CollocationLockup. + +Fri Mar 10 14:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/run_test.lst: + Don't run Multicast_Test_IPV6 in ACE_FOR_TAO builds + +Fri Mar 10 08:58:52 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/pkg.m4: + + Add pkg.m4 from pkg-config 0.20 distribution, so configure + script can be regenerated on systems without it installed. + +Thu Mar 9 09:18:58 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * COPYING: Updated the date to include 2006. + Thanks to Alan Kierstead <ackierstead at fedex dot com> for + motivating the fix to this oversight. + +Thu Mar 9 15:28:53 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/config/concurrency.mpb: + * bin/MakeProjectCreator/config/concurrency_serv.mpb: + * bin/MakeProjectCreator/config/dseventlogadmin.mpb: + * bin/MakeProjectCreator/config/dslogadmin.mpb: + * bin/MakeProjectCreator/config/etcl.mpb: + * bin/MakeProjectCreator/config/event.mpb: + * bin/MakeProjectCreator/config/event_serv.mpb: + * bin/MakeProjectCreator/config/ftrteventchannel.mpb: + * bin/MakeProjectCreator/config/htiop.mpb: + * bin/MakeProjectCreator/config/naming.mpb: + * bin/MakeProjectCreator/config/naming_serv.mpb: + * bin/MakeProjectCreator/config/notification.mpb: + * bin/MakeProjectCreator/config/notification_serv.mpb: + * bin/MakeProjectCreator/config/property.mpb: + * bin/MakeProjectCreator/config/property_serv.mpb: + * bin/MakeProjectCreator/config/rtevent_serv.mpb: + * bin/MakeProjectCreator/config/rteventlogadmin.mpb: + * bin/MakeProjectCreator/config/rtkokyuevent.mpb: + * bin/MakeProjectCreator/config/rtnotify.mpb: + * bin/MakeProjectCreator/config/trading.mpb: + * bin/MakeProjectCreator/config/trading_serv.mpb: + + Updated these base projects to fix the TAO_ORBSVCS GNU Make + macro. In many cases, I just moved the 'tagchecks' setting out of + the _serv.mpb into the base for both _serv.mpb and _skel.mpb + files. In others, I had to add the missing 'tagchecks' setting. + +Thu Mar 9 08:58:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: + Removed include path that is not there anymore + +Wed Mar 8 20:58:39 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ACE-INSTALL.html: + + Improve documentation for autoconf/automake build. + +Wed Mar 8 15:06:56 UTC 2006 Simon McQueen <sm@prismtech.com> + + * bin/tao_orb_tests.lst: + + Scheduled regression test for bug #2429. See ticket for status. + +Wed Mar 8 10:17:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Reactor/TP_Reactor/run_test.pl: + Both clients should start in parallel, not after each other + +Wed Mar 8 04:53:09 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/ace.m4: + + Change ACE_PATH_FL to pass --enable-gl to fltk-config. + +Wed Mar 8 03:32:08 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/ace.m4: + + Changed ACE_ENABLE_XT_REACTOR to AC_REQUIRE() ACE_PATH_XT + instead of AC_PATH_XTRA. + + Changed ACE_PATH_FL to AC_REQUIRE() ACE_PATH_X11. + + Add ACE_PATH_XT autoconf macro that sets ACE_XT_CPPFLAGS, + ACE_XT_LDFLAGS, and ACE_XT_LIBS. + + Add ACE_PATH_X11 autoconf macro that sets ACE_X11_CPPFLAGS, + ACE_X11_LDFLAGS, and ACE_X11_LIBS. + +Tue Mar 7 18:57:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/DLL/Newsweek.cpp: + Fixed compile error + +Tue Mar 7 18:48:31 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Event_Handler.cpp (read_adapter): Never pass the handler's + handle value to handle_input(). The handle_input() call is being + made on behalf of stdin, not any other handle. It also mimics + the behavior of the non-Windows case, where ACE_STDIN is registered + with the reactor, regardless of the handler's handle value. + Thanks to Aaron Scamehorn <aaron dot scamehorn at cogcap dot com> + for noticing this problem. + + * THANKS: Added Aaron Scamehorn to the Hall of Fame. + +Tue Mar 7 13:57:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Reactor.h: + Doxygen improvements + +Tue Mar 7 09:39:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Don't run Bug_2417_Regression in ST builds + +Tue Mar 7 08:45:26 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Makefile.am: + * tests/Makefile.am: + + Regenerate. + + * bin/MakeProjectCreator/config/automake.features: + + Set athena and motif to 1 + + * bin/MakeProjectCreator/config/ace_fl.mpb: + + For autoconf build: + + Change @ACE_FLTK_CPPFLAGS@ and @ACE_FLTK_LIBS@ to + $(ACE_FLTK_CPPFLAGS) and $(ACE_FLTK_LIBS) + + Add $(ACE_FLTK_LDFLAGS) to linkflags. + + Subtract '$(ACE_X11_CPPFLAGS)' from compile_flags. + Subtract '$(ACE_X11_LDFLAGS)' from libpaths. + Subtract '$(ACE_X11_LIBS)' from macros. + + * bin/MakeProjectCreator/config/ace_qt.mpb: + + For autoconf build: + + Change @ACE_QT_CPPFLAGS@ and @ACE_QT_LIBS@ to + $(ACE_QT_CPPFLAGS) and $(ACE_QT_LIBS) + + Add $(ACE_QT_LDFLAGS) to linkflags. + + * bin/MakeProjectCreator/config/ace_tk.mpb: + + For autoconf build: + + Change @ACE_TK_CPPFLAGS@ and @ACE_TK_LIBS@ to + $(ACE_TK_CPPFLAGS) and $(ACE_TK_LIBS) + + Add $(ACE_TK_LDFLAGS) to linkflags. + + * bin/MakeProjectCreator/config/ace_xt.mpb: + + For autoconf build: + Add $(ACE_XT_CPPFLAGS) to compile_flags. + Add $(ACE_XT_LDFLAGS) to linkflags. + Add $(ACE_XT_LIBS) to pure_libs. + + * bin/MakeProjectCreator/config/ace_11.mpb: + + For autoconf build: + Add $(ACE_X11_CPPFLAGS) to compile_flags. + Add $(ACE_X11_LDFLAGS) to linkflags. + Add $(ACE_X11_LIBS) to pure_libs. + +Tue Mar 7 08:01:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/DLL/Newsweek.cpp: + * examples/DLL/Today.cpp: + * examples/Shared_Malloc/test_persistence.cpp: + Fixed compile errors + +Tue Mar 7 07:19:06 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Makefile.am: + * tests/Makefile.am: + + Regenerated. + +Tue Mar 7 07:16:40 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/ace.m4: + + Add Truncate.h to Header_Files section. + +Tue Mar 7 07:12:39 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/ace_qt.mpb: + + For autoconf build: + Subtract '$(QTDIR)/include' from includes. + Subtract '$(QTDIR)/lib' from libpaths. + Subtract 'QT_THREAD_SUPPORT' from macros. + +Tue Mar 7 05:50:31 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Regenerate. + + * bin/MakeProjectCreator/config/ace_fl.mpb: + + For autoconf build: + Add @ACE_FLTK_CPPFLAGS@ to compile_flags. + Add @ACE_FLTK_LIBS@ to pure_libs. + + * bin/MakeProjectCreator/config/ace_qt.mpb: + + For autoconf build: + Subtract 'qt-mt$(QT_VERSION)' from lit_libs. + Add @ACE_QT_CPPFLAGS@ to compile_flags. + Add @ACE_QT_LIBS@ to pure_libs. + + * m4/ace.m4: + + Implement ACE_PATH_FL. + Implement ACE_PATH_QT. + Implement ACE_ENABLE_FL_REACTOR. + Implement ACE_ENABLE_QT_REACTOR. + + Thanks to Thomas Girard <thomas dot g dot girard at free dot fr> + for these fixes. + +Mon Mar 6 18:25:41 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * ace/OS_NS_Thread.inl: + * ace/os_include/os_semaphore.h: + + Added an implementation for timed semaphore wait provided by + Gottwald Port Technology. It is very similar to the emulated + semphore in the event that ACE_HAS_POSIX_SEM is not defined. + Previously, this was not supported at all when ACE_HAS_POSIX_SEM + was defined. + + * ace/os_include/sys/os_time.h: + + Added sys to the file name to avoid Doxygen warnings. + + * bin/MakeProjectCreator/config/ace_qt.mpb: + + This change coincides with a change in MPC where the qt library + setting was changed. + + * bin/tao_other_tests.lst: + + I added !DISABLE_INTERCEPTORS to all the Security tests as + both the TAO_Security library and TAO_SSLIOP library require + interceptors. + + * include/makeinclude/rules.local.GNU: + + Removed an extra dollar sign, that GNU Make apparently didn't + care about but shouldn't have been there anyway. + + * bin/MakeProjectCreator/config/global.mpb: + + Removed this file. It is redundant to the global.mpb found in + MPC. + +Mon Mar 06 15:44:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/DLL/Newsweek.{h,cpp}: + * examples/DLL/Today.{h,cpp}: + * examples/Shared_Malloc/test_persistence.cpp: + Added operator delete, fixes warnings with icc 9.1 + + * ace/CDR_Stream.cpp: + * tests/Thread_Pool_Test.cpp: + Initialise pointer with 0 + + * ace/Pipe.inl: + Replaced c-style casts with C++ casts + + * ace/Svc_Handler.h: + Made the closing_ member an int, it is used that way, not as + char. + +Mon Mar 06 15:13:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added Bug_2417_Regression + +Sun Mar 05 11:10:32 2006 Wallace Zhang <zhangw@ociweb.com> + + * ACE version 5.5 released. + +Sun Mar 5 15:35:54 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * bin/make_release: + + Corrected a warning when generating WinCE projects. + +Sat Mar 4 14:09:44 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * ace/ATM_Acceptor.h: + + Added a missing semicolon. Thanks to Felix Li <fengli at + gmail dot com> for reporting this. + +Thu Mar 2 02:01:12 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated this file with more inputs. + +Thu Mar 2 00:51:18 UTC 2006 Steve Huston <shuston@riverace.com> + + * NEWS: Added Win64 and WinCE notes. + +Wed Mar 1 23:47:13 UTC 2006 Steve Huston <shuston@riverace.com> + + * bin/make_release: Added "wince=1" to the MPC -features option for + the WinCE file generation; helps prevents WinCE-hostile projects + from being generated. + + * ace/config-win32-msvc-8.h: VC8 still lacks sigatomic_t for WinCE 5. + + * ace/config-WinCE.h: Removed some compiler-specific settings that + were moved to compiler-specific configs previously but not updated + for CE. Updated things that are now available. + + * tests/CDR_File_Test.cpp: + * tests/CE_fostream.{h cpp}: CE iostream hack not needed for CE when + iostreams are available (VC 8, included). + + * examples/Reactor/TP_Reactor/client.cpp: + * examples/Reactor/TP_Reactor/server.cpp: + * examples/Reactor/TP_Reactor/AcceptHandler.cpp: + * examples/Reactor/TP_Reactor/ReadHandler.cpp: + * netsvcs/servers/main.cpp: + * tests/Array_Map_Test.cpp: Use ACE_TEXT around all pieces of + concatenated string; VC8 WinCE misses the line ending. + Removed ACE_TEXT around ACE_TRACE's argument; ACE_TRACE adds it. + + * netsvcs/lib/Token_Handler.{h cpp} (init, parse_args): Changed argv + from char*[] to ACE_TCHAR*[]. Also fixed some missing ACE_TEXTs. + + * protocols/ace/RMCast/Acknowledge.cpp: + * protocols/ace/RMCast/Link.cpp: + * protocols/ace/RMCast/Protocol.h: + * protocols/ace/RMCast/Retransmit.cpp: + * protocols/ace/RMCast/Socket.cpp: + * protocols/ace/TMCast/LinkListener.hpp: + * protocols/ace/TMCast/TransactionController.hpp: + * protocols/ace/TMCast/Group.cpp: ACEified naked system calls abort() + and perror(). + + * examples/APG/ThreadSafety/Tokens_Deadlock.cpp: + * examples/APG/Processes/Spawn.cpp: + * examples/APG/Processes/Process_Mutex.cpp: Add missing ACE_TEXT around + string args. + + * examples/NT_Service/NT_Service.mpc: Add avoids += wince - CE doesn't + do services. + + * examples/Web_Crawler/main.cpp: Don't try SIGFPE protection if + on WinCE. + + * examples/Web_Crawler/URL_Status.h: Changed STATUS_NOT_FOUND to + STATUS_ITEM_NOT_FOUND and STATUS_NOT_IMPLEMENTED to + STATUS_OP_NOT_IMPLEMENTED. CE apparantly has macros with these + names that messes this up. + + * examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc: Added wince to the + "avoids" clause for APC, Registry_Changes, Talker and + Window_Messages; WinCE doesn't the necessary features. + + * examples/Reactor/WFMO_Reactor/Window_Messages.cpp: Add missing + #include "ace/Auto_Event.h" + + * tests/MT_SOCK_Test.cpp: Remove the #if ACE_WIN64 from the check + for first send causes reset. This happens with 32-bit as well, + at least on Win XP-64 SP2. It's unrelated to the functionality under + test, and if there's an actual sending side botch that causes the + socket to be closed prematurely, it should show up as another error + in the server side. + +Wed Mar 1 16:12:50 UTC 2006 Steve Huston <shuston@riverace.com> + + * tests/run_test.lst: Added !BAD_AIO to the Proactor_Test and + Proactor_Test_IPV6. This makes it possible to avoid this test on + platforms that simply aren't capable of performing decent AIO. + +Wed Mar 1 10:22:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/MT_SOCK_Test.cpp: + Fixed compile problem + +Wed Mar 1 09:48:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Env_Value_T.h: + First to all template specializations before the generic one and + use template<> for the specializations, this fixes the compile + errors with GCC 4.1 + +Wed Mar 1 07:36:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Reactor/TP_Reactor/AcceptHandler.cpp: + * examples/Reactor/TP_Reactor/server.cpp: + Fixed warnings in vc6 builds + +Wed Mar 1 00:16:26 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Recursive_Thread_Mutex.cpp (get_nesting_level): On Win64 with + AMD64/EM64T, use the CRITICAL_SECTION's RecursionCount member, not + LockCount, as was changed in this entry: + Tue May 6 11:50:18 2003 Chad Elliott <elliott_c@ociweb.com> + It remains to be seen under what conditions LockCount is used (it + may be for Itanium, for example) but for now, use of RecursionCount + is conditional to AMD64. + + * tests/Reactor_Dispatch_Order_Test.cpp: Print some useful order info + rather than ACE_ASSERT everywhere. Also fixed some ACE_TEXT stuff. + +Tue Feb 28 23:28:57 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Makefile.am: + + Add DEFAULT_INCLUDES definition that got lost during regeneration. + Fixes autoconf builds on case-insensitive filesystems. + +Tue Feb 28 19:46:16 UTC 2006 Steve Huston <shuston@riverace.com> + + * tests/MT_SOCK_Test.cpp: Add a special-case check for Win64. It + appears that Win64 listen/accept side has some changed behavior + but I haven't found any Windows docs to state this; just observed + behavior. It appears that WinXP-64 will appear to accept connections + at the TCP level past the listen backlog but if data arrives before + the actual application-level accept() occurs, the connection is + reset. I can see where this would be sensible for a web server or + something like that, but it causes a problem for this use case where + the test client side connects and starts sending. + Note I also tried modifying the checks in the connect path (in + ACE.cpp, handle_timed_complete()), but the connection really does + appear to be accepted clean; a peek recv will complete without + the reset being noticed, hence my speculation that Microsoft + "enhanced" the behavior at the server side. + Also, fixed a lot of bad indentation and some missing ACE_TEXTs. + +Tue Feb 28 11:12:12 UTC 2006 Johnny Willemsen <jwilemsen@remedy.nl> + + * ace/Connector.cpp: + Initialise several pointers explicitly with 0 + +Tue Feb 28 00:21:53 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/config-WinCE.h: Don't set ACE_LACKS_IOSTREAM_TOTALLY for + MSVC 8 and up. + + * ace/CDR_Stream.cpp (grow_and_adjust): + * ace/CDR_Base.cpp (consolidate): Avoid losing data when + comparing ptrdiff_t values. + + * ace/Event_Handler.{h cpp}: Allow + ACE_Event_Handler:register_stdin_handler to build on WinCE. + + * ace/FILE_IO.cpp (send, recv): Truncate the number of iovec tuples + down to range of an int. + + * ace/OS_NS_stropts.{h cpp}: + * ace/OS_NS_sys_socket.{h cpp}: Allow QoS-enabled operations on WinCE + 5.0 and up. + + * ace/OS_NS_unistd.inl: 64-bit adjustments. + + * ace/Time_Value.{cpp inl}: + * tests/Time_Value_Test.cpp: Add ACE_WIN64 to the platforms that use + LONG_MAX/LONG_MIN rather than std::numeric_limits<time_t> for the + time bounds. On Win64, time_t is 64 bits, yet the timeval members + used internally to ACE_Time_Value are still long. This makes time + values outside the LONG_MAX, LONG_MIN range very broken and many + tests start failing in odd ways. Thanks to J.T. Conklin for this fix. + + * ace/Token_Request_Reply.{cpp inl}: 32/64 bit adjustments. + + * netsvcs/lib/Token_Handler.{h cpp} (ACE_TS_Mutex, ACE_TS_WLock, + ACE_TS_RLock): Changed the name argument from char* to ACE_TCHAR* + to build clean on wchar systems. The classes that use this and that + this uses already were ACE_TCHAR. + +Mon Feb 27 22:36:20 UTC 2006 Steve Huston <shuston@riverace.com> + + * tests/SSL/Makefile.am: Hand-corrected the addition of + ACE_TLS_CPPFLAGS, ACE_TLS_LDFLAGS, ACE_TLS_LIBS needed to pick up + user's specification of where the SSL libraries are. + +Mon Feb 27 08:17:49 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/Dev_Poll_Reactor.cpp (acquire_quietly): Moved the error message + so that it only is printed if it's a real error, not just a + timeout. Thanks to Oh Yoon Sik <boom at estsoft dot com> for + reporting this. + +Sun Feb 26 19:21:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/SOCK_IO.{cpp,inl}: + Fixed compile errors, it is ACE_Utils::Truncate, not ACE_Truncate + +Sun Feb 26 13:05:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Reactor_Timer_Test.cpp: + Replaced asserts with ace_error to fix warnings in release builds + +Sat Feb 25 22:57:32 UTC 2006 Steve Huston <shuston@riverace.com> + + * tests/Process_Manual_Event_Test.cpp: On Windows, use a complete + path name to spawn the child process with, else it doesn't work when + the test is in a subdir of ACE_wrappers/tests, as it is with + Win XP64 and WinCE. + + * ace/SOCK_IO.h: Clarify that on recvv() and sendv(), the number of + iovecs handled will be limited to the maximum value of an int. + * ace/SOCK_IO.inl (sendv, recvv): ACE_Truncate the 'n' number of + iovecs passed down to the ACE level. + * ace/SOCK_IO.cpp (send, recv): Reduce the size_t n iovec count to an + int range after dividing by 2 to fit it into the ACE_OS level. + +Sat Feb 25 12:45:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_other_tests.lst: + Removed Security Policies tests, it has been removed from the repo + +Fri Feb 24 23:43:04 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * tests/Time_Value_Test.cpp: + + use std::numeric_limits<time_t>::max() + and std::numeric_limits<time_t>::min() (or LONG_MAX and LONG_MIN + for those platforms that lack std::numeric_limits<T>) instead of + ACE_INT32_MAX and ACE_INT32_MIN for time bounds. + +Fri Feb 24 21:16:48 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_config_handlers.mpb + + Add a verbatim to disable hidden_visibility for project + dependent on Config_Handlers + +Fri Feb 24 19:08:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/auto_run_tests.pl: + If we can't chdir to the directory then don't die, but just continue + with the next test + +Fri Feb 24 17:29:47 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Truncate.h: Include all needed code inline here and mark the + function and specialization inline. + * ace/Truncate.{inl cpp}: Removed. All code for ACE_Truncate is inlined + and included in the Truncate.h file. + + * ace/ace.mpc: + * ace/Makefile.am: Removed Truncate.cpp and Truncate.inl. + +Fri Feb 24 16:31:36 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Connector.{h cpp}: Changed the non_blocking_handles_ member + used to remember handles currently in-progress with a non-blocking + connect from ACE_Handle_Set to ACE_Unbounded_Set. This enables + ACE_Connector to be used with handle values outside the range + that select() can deal with (FD_SETSIZE) and is needed to run + large numbers of handles as is now possible with the + ACE_Dev_Poll_Reactor. + Removed the deprecated internal-only + SVC_HANDLER* ACE_NonBlocking_Connect_Handler::close (void) + method. There was already a replacement close() with more + sensible arguments that performed close operations in the correct + order, avoiding accesses to event handlers that were deleted. + Don't ACE_ASSERT when seeing a ACE_Connector::close() error; log + an error and keep going. + + * ace/Container_Instantiations.cpp: Added instantiations for + ACE_Unbounded_Set<ACE_HANDLE>, used in ACE_Connector. + + * ace/Dev_Poll_Reactor.cpp (find_handler): Increment the found + handler's reference count, as the other reactor implementations do. + + * ace/Dev_Poll_Reactor.h: Fix typos. + +Fri Feb 24 15:38:20 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/ace.m4: + + Fix typo in last change: + Thu Feb 23 23:00:45 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + +Fri Feb 24 15:26:07 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * ace/config-lynxos.h + * ace/Log_Msg.cpp: + + Back out code dealing with system's that have a + BROKEN_THREAD_KEYFREE after Olli Savia <ops@iki.fi> pointed + out that it breaks Task_Ex_Test. + +Fri Feb 24 15:03:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Message_Block.h: + Doxygen improvements + +Fri Feb 24 14:34:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Process_Manager.cpp: + Initialize pointer with 0 + + * ace/Process_Manager.h: + Tag the reap() method as deprecated + +Fri Feb 24 14:10:06 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: + + Modified the 'vpath' code so that it does not require knowlege of + how MPC internally stores filename lists. It does not change any + functionality. + +Fri Feb 24 13:55:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Reactor/TP_Reactor/client.cpp: + * examples/Reactor/TP_Reactor/server.cpp: + Made these compiling with wchar enabled + +Fri Feb 24 11:51:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/ACE_export.h: + Also for borland changed ACE_INLINE_TEMPLATE_FUNCTION to + ACE_Export + +Fri Feb 24 11:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Fixed casing of Bug_2289_Regression + +Fri Feb 24 00:19:22 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/ACE_export.h: Changed ACE_INLINE_TEMPLATE_FUNCTION to use + ACE_Export instead of "extern" for Visual C++. Fixes missing + ACE_Truncate symbols outside of the ACE library on Windows. + +Thu Feb 23 23:22:18 UTC 2006 Steve Huston <shuston@riverace.com> + + * examples/APG/Logging/Callback.h: + * examples/APG/Logging/Callback-2.h: + * examples/APG/Logging/Callback-3.h: Add conditional areas for + platforms lacking IOStream support. + +Thu Feb 23 23:00:45 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/ace.m4: + + Use "eval" when setting ACE_TCL_LIB to expand any variables in + ${TCL_LIB_SPEC}. Thanks to Thomas Girard <thomas dot g dot + girard at free dot fr>. + +Thu Feb 23 19:53:51 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * tests/DLL_Test_Impl.cpp: + + Changed so nothrow operator delete has same exception + specification in declaration and definition. + +Thu Feb 23 17:01:15 UTC 2006 Simon McQueen <sm@prismtech.com> + + * bin/tao_orb_tests.lst: + + Scheduled test for bug #2186. This will fail until fixed. + +Thu Feb 23 15:56:24 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Svc_Handler.cpp: + + Fix typo (identifier-name) introduced in: + Thu Feb 23 09:02:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + +Thu Feb 23 14:44:54 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * ace/Log_Msg.cpp: + + Add code to ensure cleanup in ACE_Log_Msg::close (void). + For some systems, e.g. LynxOS, we need to ensure that + any registered thread destructor action for this thread + is disabled. + +Thu Feb 23 14:54:52 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/ace.m4: + + Tweak how ACE_TCL_CPPFLAGS, ACE_TCL_LIBS, ACE_TK_CPPFLAGS, + and ACE_TK_LIBS are defined. + + * tests/Makefile.am: + + Fix regeneration bug. + +Thu Feb 23 10:05:22 UTC 2006 Simon McQueen <sm@prismtech.com> + + * bin/tao_orb_tests.lst: + + Scheduled regression tests for bugs #2289 and #2134. + +Thu Feb 23 09:16:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Reactor/TP_Reactor/*: + Example program demonstrating the TP_Reactor. This is also a + test program for bugzilla bug 2395. For reproducing start + the perl script but also do other activity on the system, + then it can happen that the same event handler is invoked + from multiple threads. Thanks to Martin Kolleck and Tino + Riethmueller for creating this example program. + +Thu Feb 23 08:35:09 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * ace/config-lynxos-pthread.h: + Remove this file. Change handling for LynxOS' use of macros + + * include/makeinclude/platform_lynxos.GNU: + * ace/config-lynxos.h: + Revert changes for building dynamic libraries + + * ace/os_include/os_pthread.h: + Remove inclusion of ace/config-lynxos-pthread.h + + * ace/OS_NS_Thread.inl: + If it's a macro we can't say "::pthread_cancel" + +Thu Feb 23 09:02:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/DLL_Test_Impl.{h,cpp}: + Added nothrow operator delete + + * ace/TP_Reactor.h: + * ace/Signal.h: + Documentation improvement + + * ace/Time_Value.cpp (operator*): + Use correct type for usec + + * ace/Svc_Handler.cpp: + Use casts in operator delete + +Thu Feb 23 08:08:26 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Makefile.am: + * tests/Makefile.am: + + Regenerate for TK Reactor changes. + +Thu Feb 23 06:47:26 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/ace_tk.mpb: + + Add automake specific section for TCL and TK CPPFLAGS and LIBS. + + * m4/ace.m4: + + Change ace_enable_{fl,qt,tk,xt}_reactor to + ace_user_enable_{fl,qt,tk,xt}_reactor for consistency. + + Implement ACE_PATH_TCL. + + Implement ACE_PATH_TK. + + Implement ACE_ENABLE_TK_REACTOR. + + Thanks to Thomas Girard <thomas dot g dot girard at free dot fr> + for these fixes. + +Wed Feb 22 20:56:17 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/ACE_export.h: Added another macro, ACE_INLINE_TEMPLATE_FUNCTION, + to take care of the compiler differences when an inlineable + function template can be out-lined. Some compilers (e.g. Microsoft) + like an extern storage class to prevent multiple instances; others + (practically all others) refuse the extern storage class and + resolve the multiples at link time. + + * ace/Truncate.{h inl}: Change ACE_NAMESPACE_INLINE_FUNCTION use to + ACE_INLINE_TEMPLATE_FUNCTION. + +Wed Feb 22 22:18:56 UTC 2006 Olli Savia <ops@iki.fi> + + * tests/run_test.lst: + Run some more tests on LynxOS. + +Wed Feb 22 21:30:35 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/Truncate.inl: + Added include "ace/os_include/os_limits.h" to pull INT_MAX. + + * ace/config-lynxos.h: + Define ACE_LACKS_NUMERIC_LIMITS when compiling with GCC 2.x. + Define ACE_HAS_POSIX_SEM on LynxOS 4.0. + +Wed Feb 22 19:16:32 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/ACE_export.h: Add __HP_aCC 06.05 and up to the list of compilers + that don't like "extern inline". + +Wed Feb 22 16:50:16 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/String_Base.{h cpp}: Add operator= to set string from a + CHAR*. Optimizes performance in this case by removing the need + for a temporary object. Thanks to Kelly Hickel <kfh at mqsoftware + dot com> for this improvement. + + * tests/SString_Test.cpp: Added test for new operator=. + +Wed Feb 22 17:26:01 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.h: + Changed type of dtrdisable from int to bool. + + * examples/IPC_SAP/DEV_SAP/reader/reader.cpp: + * examples/IPC_SAP/DEV_SAP/writer/writer.cpp: + Changed to reflect recent changes in TTY_IO.h. + +Wed Feb 22 16:31:28 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/config/vcl.mpb: + + Added the 'bmake' type in order to support VCL. + + * bin/mpc.pl: + * bin/mwc.pl: + + Simplified these scripts by using FindBin. Also, made a + modification to preserve @ARGV so that when it is used by the + workspace creators, it contains the original arguments provided by + the user. + +Wed Feb 22 16:26:43 GMT 2006 Rich Seibel <seibel_r@ociweb.com> + + * include/makeinclude/platform_aix_ibm.GNU: + * THANKS + Added templates=manual to set manually instantiated + templates (without setting ACE_HAS_EXPLICIT_TEMPLATE_ + INSTANTIATION) and determining that -qeh=v6 is needed + to get the more general exception behavior. + + Thanks to Marc Brown and Andrew Keane for suggesting + these changes. + +Wed Feb 22 15:48:15 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Timer_Heap_T.cpp: Fixed mismatch signed/unsigned compare warning. + +Wed Feb 22 08:33:03 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * include/makeinclude/platform_lynxos.GNU + * ace/config-lynxos.h + change settings for building dynamic libraries + + * ace/config-lynxos-pthread.h + new file for handling LynxOS' use of macros + + * ace/Log_Msg.cpp + * ace/os_include/os_pthread.h + Handle broken thread key free on LynxOS + +Tue Feb 21 23:49:20 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Truncate.{h inl cpp}: New function template, ACE_Utils::Truncate, + for truncating types to int. Compares the value to the maximum int + value and, if passed value is greater, returns the max int; else + returns the original value cast to int. Useful for the many places + that return int but maintain larger types (such as size_t) + internally. There's a specialization for size_t since it's used so + much. + + * ace/ace.mpc: Add Truncate.cpp + + * ace/Makefile.am: Added Truncate.{h inl cpp} + + * ace/Message_Queue_T.cpp: + * ace/Message_Queue.cpp: Use ACE_Utils::Truncate() to return size/count + related values that may overflow the range of an int. Prevents odd + conditions that may appear as failures when dealing with very large + numbers of items in a queue. And, resolves compile warnings. + + * ace/Timer_Heap_T.cpp: In constructor, add checks to see if max_size_ + is outside the range of a long and reduce it if so. This ensures we + can cast size_t values to a long as a timer ID (pop_freelist). + NOTE!!! In grow_heap(), the size is doubled and there's no check for + failures in range or in allocation. This a problem that should be + looked at. + + * ace/Service_Manager.cpp (reconfigure_services): + * ace/WIN32_Asynch_IO.cpp: + * ace/UPIPE_Connector.cpp (connect): Fix compiler warnings. + +Tue Feb 21 23:08:38 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/OS_NS_time.cpp: Add missing close brace for blank namespace + in ACE_HAS_WINCE case. + +Tue Feb 21 20:20:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * protocols/ace/TMCast/MTQueue.hpp: + Initialise pointer to 0 to fix gcc4.1 warning + +Tue Feb 21 19:26:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_other_tests.lst: + Fixed typo in this file + + * bin/generate_compile_stats.sh: + Improved this script, print date/time after the Detail in html, also + when we can't find the footprint size of an object file, just list it + with ? as size, that way we can at least see all objects and don't + miss any. + + * include/makeinclude/wrapper_macros.GNU: + Default use_dep_libs to 1 + + * bin/MakeProjectCreator/templates/gnu.mpd: + Only when use_dep_libs is set to 1 (which is the default) set DEPLIBS. + In the footprint builds we set use_dep_libs to 0 because it causes + problems when interpreting the map files generated by the linker. + +Tue Feb 21 19:14:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Process_Manual_Event_Test.cpp: + Fixed this test + +Fri Feb 17 08:15:57 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/Asynch_Acceptor.h: Used ACE_DEFAULT_ASYNCH_BACKLOG instead + of ACE_DEFAULT_BACKLOG since the latter is set to a huge value + on Windows. Thanks to Alex Libman and Daniel <__daniel___ at icg + do tu-graz dot ac dot at> for their help. + + * ace/Default_Constants.h: Added a new macro called + ACE_DEFAULT_ASYNCH_BACKLOG that defaults to 5. + +Mon Feb 20 15:03:01 2006 Wallace Zhang <zhangw@ociweb.com> + + * ACE version 5.4.10 released. + +Sun Feb 19 13:38:32 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/make_release: + Fixed bug in excluding of mwc files + +Fri Feb 17 19:16:32 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated this file with more inputs. + +Thu Feb 16 13:38:39 2006 Wallace Zhang <zhangw@ociweb.com> + + * bin/generate_rel_manpages: + + Updated the script with latest info at naboo.dre. + +Thu Feb 16 13:38:00 UTC Simon Massey <sma@prismtech.com> + + * bin/tao_orb_tests.lst: + Added regression test for Bugzilla 2403 + +Thu Feb 16 09:23:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/make_release: + Changed the exclude of mwc files, use TAO_* and CIAO_* + +Thu Feb 16 08:33:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/performance_stats.sh: + Added AMI to the combined performance figure + +Wed Feb 15 20:06:42 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * ace/Timer_Heap_T.cpp: Fixed cancel() so that it doesn't miss any + nodes due to reheapifying during a remove. Thanks to Oh Yoon + Sik <boom at estsoft dot com> for this fix. + +Wed Feb 15 20:04:13 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + #include <sys/time.h> in ACE_HAS_POSIX_TIME feature test (if + supported by platform). Thanks to Vladimir Panov <gbr at + voidland dot org> for reporting this bug. + +Wed Feb 15 19:58:36 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/fuzz.pl: + + Modified the check_for_long_file_names function to correctly deal + with the length of the MPC project names instead of the length of + the .mpc file itself. The length of the .mpc file name does not + necessarily indicate the length of the generated project name. + +Wed Feb 15 18:16:02 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Time_Value.cpp: + + Adding/subtracting 0.999999 from max and min is required to really + represent a saturated time value. + +Wed Feb 15 12:32:37 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * ace/Svc_Conf_Lexer.cpp: + + Changed two instances of memcpy() to memmove(). The areas being + copied could possibly overlap. + +Wed Feb 16 11:40:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added new AdvSlotExt PI test + +Wed Feb 16 07:54:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_sunos5_sunc++.GNU: + Disabled visibility by default, seems to cause some issues in the + builds at this moment + +Tue Feb 14 22:56:39 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * include/makeinclude/rules.local.GNU: + + Added *.core to list of files to clean. + +Tue Feb 14 22:04:46 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/security.mpb + * bin/MakeProjectCreator/config/ssliop.mpb + + Fixes for linking errors/warnings in OS X. + +Tue Feb 14 21:43:01 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + #include <sys/types.h> before <sys/mman.h> in + ACE_LACKS_MADVISE_PROTOTYPE feature test. Thanks to Vladimir + Panov <gbr at voidland dot org> for reporting and providing a + patch for this bug. + +Tue Feb 14 18:36:16 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Time_Value.cpp: + + Changed operator *= to use std::numeric_limits<time_t>::max() + and std::numeric_limits<time_t>::min() (or LONG_MAX and LONG_MIN + for those platforms that lack std::numeric_limits<T>) instead of + ACE_INT32_MAX and ACE_INT32_MIN when saturating the results. + + This uses the correct limits for whatever underlying type time_t + is when std::numeric_limits<T> is available, and uses the limits + for the traditional type, long, when it is not. + + Removed call to normalize(), as set() already normalizes results. + +Tue Feb 14 14:47:00 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/fuzz.pl: + + When checking for maximum length of mpc files, ensure that only + .mpc files are checked. + +Tue Feb 14 08:34:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-lynxos.h: + Added ACE_HAS_CHARPTR_SHMDT + +Tue Feb 14 08:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Svc_Handler.{h cpp}: Add ACE_LACKS_PLACEMENT_OPERATOR_DELETE + around the operator delete with nothrow. This fixes the compile + errors with Borland C++ + +Mon Feb 13 17:50:49 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Svc_Handler.{h cpp}: Add placement operator delete to match + the nothrow variant placement operator new. This ensures proper + cleanup if the constructor throws an exception. + + * ace/config-hpux-11.00.h: Only set ACE_LACKS_PLACEMENT_OPERATOR_DELETE + for aC++ versions earlier than A.03.55.02. Fixes Bugzilla #2394. + +Mon Feb 13 18:23:27 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Fix typos in ACE_HAS_CHARPTR_SHMAT and ACE_HAS_CHARPTR_SHMDT + feature tests. + +Mon Feb 13 09:33:20 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * ace/config-sunos5.5.h (ACE_IMPORT_SINGLETON_DECLARATION): + (ACE_IMPORT_SINGLETON_DECLARE): + + Comment out these macro definitions. The "extern template" + extension available in MSVC++ and g++ doesn't work for Sun + Studio C++ compilers. An alternative may need to be found. + +Mon Feb 13 14:51:10 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * ace/Svc_Conf_Lexer.cpp: + + Catch the possible situation where we were unable to allocate a + converter and mark it as a conversion failure. + + * include/makeinclude/platform_vxworks5.5.x.GNU: + + If we are compiling for a PPC, we need to add the -mlongcall + option for many TAO tests (and some user applications). + +Mon Feb 13 11:49:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * netsvcs/servers/svc.conf: + * netsvcs/servers/svc.conf.xml: + Use port 20006 for the Name_Server, is the same port as we + default to in ACE. Fixes a problem that the Name_Server and + Logging Server both use the same port as default + +Mon Feb 13 11:40:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Service_Manager.h: + * ace/Service_Repository.h: + Doxygen improvements + +Mon Feb 13 10:08:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Obstack_T.h: + Doxygen improvement + +Mon Feb 13 10:01:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Proactor_Test.cpp: + Don't test certain functionality when ACE_HAS_WINNT4 is 0 + + * tests/Future_Test.cpp: + * tests/Future_Set_Test.cpp: + Moved real code out of ACE_ASSERT, fixes crashing of these + tests in release builds + +Mon Feb 13 08:57:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-borland-common.h: + Readded ACE_SIZEOF_LONG_DOUBLE 10 again + +Mon Feb 13 08:41:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_shm.inl (shmat): + Added const_cast to get rid of compile errors with LynxOS + +Mon Feb 13 08:28:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-macosx-panther.h: + Removed ACE_LACKS_USECONDS_T + +Mon Feb 13 08:22:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-aix-4.x.h: + * ace/config-hpux-11.00.h: + Added ACE_LACKS_SYS_SYSCTL_H + +Mon Feb 13 08:17:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_unistd.cpp (num_processors_online): + Made the HPUX specific implementation the last option to use + +Mon Feb 13 08:12:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks5.x.h: + Added ACE_LACKS_NUMERIC_LIMITS + +Mon Feb 13 08:09:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-cygwin32.h: + Added ACE_LACKS_SYS_SYSCTL_H + +Mon Feb 13 05:12:51 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/config-netbsd.h: + * configure.ac: + + Revert: + Sun Feb 12 19:07:39 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + Caused build failures because NetBSD doesn't support + pthread_attr_{get,set}schedpolicy(). It's not clear what + ACE_HAS_PTHREAD_SCHEDPARAM actually means. + +Sun Feb 12 19:48:19 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/config_h.m4: + + Remove AH_TEMPLATE for ACE_HAS_SIN_LEN. + +Sun Feb 12 19:43:42 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/config_h.m4: + * configure.ac: + + Removed AH_TEMPLATEs for ACE_HAS_PTHREADS_DRAFT4, + ACE_HAS_PTHREADS_DRAFT6, ACE_HAS_PTHREADS_DRAFT7, and + ACE_HAS_PTHREADS_STD from m4/config_h.m4; and add the + descriptions as the third arguments in the AC_DEFINEs + in configure.ac. + +Sun Feb 12 19:07:39 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/config-netbsd.h: + + Define ACE_HAS_PTHREAD_SCHEDPARAM. + + * configure.ac: + + Define ACE_HAS_PTHREAD_SCHEDPARAM if platform supports + pthread_getschedparam() and pthread_setschedparam(). + +Sun Feb 12 19:01:47 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/config-macosx-panther.h: + * ace/config-macosx-tiger.h: + * ace/config-macosx.h: + * ace/config-mit-pthread.h: + * ace/config-qnx-neutrino.h: + * ace/config-qnx-rtp-62x.h: + * ace/config-qnx-rtp-pre62x.h: + * ace/config-unixware-7.1.0.h: + * ace/config-unixware-7.1.0.udk.h: + + Remove ACE_HAS_PTHREAD_SIGMASK definition. This feature test + macro was deprecated and replaced with ACE_LACKS_PTHREAD_SIGMASK + some ~5 years ago. + +Sun Feb 12 13:31:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-linux-common.h: + Check for icc as the first compiler, when icc is used in gcc + compatibility mode we else incorrectly use gcc. + +Sun Feb 12 13:20:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-sunos5.5.h: + Added ACE_LACKS_SYS_SYSCTL_H + +Sun Feb 12 13:18:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_shm.inl (shmdt): + Added a const cast when ACE_HAS_CHARPTR_SHMDT is defined + +Sun Feb 12 13:08:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-sunos5.5.h: + Fixed typo in this file + +Sun Feb 12 13:01:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks5.x.h: + Added ACE_LACKS_SYS_SYSCTL_H + +Sun Feb 12 08:01:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-cygwin32.h: + Removed ACE_LACKS_USECONDS_T, Cygwin does deliver useconds_t + +Sat Feb 11 19:54:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-lynxos.h: + Added ACE_LACKS_SUSECONDS_T and ACE_LACKS_USECONDS_T + + * ace/config-hpux-11.00.h: + Added ACE_LACKS_SUSECONDS_T + +Sat Feb 11 19:48:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Time_Value.cpp: + Also undef min when defined and do it before including limits, + should fix our MingW build + +Sat Feb 11 19:09:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-cygwin32.h + * ace/config-vxworks5.x.h: + * ace/config-macosx-panther.h: + Added ACE_LACKS_SUSECONDS_T and ACE_LACKS_USECONDS_T + +Sat Feb 11 10:37:04 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/ace_wchar.inl (convert): Fixed a bug where the character + conversion was getting improperly sign converted. Thanks to + Olivier Brunet <o dot brunet at free dot fr> for this fix. + +Fri Feb 10 22:49:07 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + * ace/config-sunos5.5.h: + * include/makeinclude/platform_sunos5_sunc++.GNU: + + Added Sun Studio 8 or better symbol visibility/scope support. + Provides improved shared libraries by reducing footprint + (e.g. 17% reduction for ACE), reducing symbol clashes with + third party libraries and increasing run-time performance. + [Bug 2378] + +Fri Feb 10 21:26:42 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Added ACE_HAS_CHARPTR_SHMAT and ACE_HAS_CHARPTR_SHMDT + feature tests. Fixes bug 2388. + +Fri Feb 10 19:24:10 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/config/trading_serv.mpb: + + Added iortable as a base project as the TAO_CosTrading_Serv + library now utilizes the TAO_IORTable library. + +Fri Feb 10 16:00:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * bin/tao_orb_tests.lst: + Removed "Request_Interceptor_Flow" Portable Interceptors test + when configuration HAS_EXTENDED_FT_INTERCEPTORS as it will + fail. + +Fri Feb 10 15:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Dirent_Test.cpp: + Made this test compiling with Borland C++ with wchar enabled + +Fri Feb 10 14:25:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_linux_icc.GNU: + Disable visibility by default, seems the Intel C++ compiler + has some issues which we reported to Intel + +Fri Feb 10 14:23:06 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/PerlACE/Run_Test.pm: + + Fixed the add_path() method to work on both Windows and UNIX. + + * bin/depgen.pl: + + If the -i option is passed, create a dependency file even if there + are no source files. This will allow NMake files to proceed + without warning. + + * bin/generate_export_file.pl: + + Changed to always emit the static library code unless the -n is + used. There is no reason not to support static libraries by + default. + +Fri Feb 10 14:20:54 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu> + + * bin/ciao_tests.lst + + Reverse a previous change to ciao_tests due to concerns + for autobuild logging.A smaller test will be added instead. + +Fri Feb 10 13:22:34 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu> + + * bin/ciao_tests.lst + + Added Bug_2130_Regression test + +Fri Feb 10 13:07:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_unistd.inl (write): + Use another const cast when ACE_HAS_CHARPTR_SOCKOPT is defined + +Fri Feb 10 12:51:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/make_release: + Use *.mwc to exclude any mwc files instead of listing them + explicitly, prevents the problems which we had with x.4.9 when + we had some new mwc files which caused an overwrite of + GNUmakefiles. + +Fri Feb 10 12:42:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_linux_icc.GNU: + Removed OCFLAGS += -axK, this flag is really dependent on the CPU + that is targeted, it is just not a good idea to do this in general + when optimization is enabled + +Fri Feb 10 12:00:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Message_Queue.cpp: + * ace/WIN32_Proactor.cpp: + Applied workarounds for broken vc6 header files + +Fri Feb 10 11:03:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/wrapper_macros.GNU: + Set exceptions default to 1 + + * include/makeinclude/platform_linux_icc.GNU: + Set optimize to 1 again now Intel has fixed a bug in their IA64 + compiler, also added support for visibility + +Fri Feb 10 10:53:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ACE-INSTALL.html: + Updated link to tenermerx code + + * ace/Asynch_IO.h: + Fixed problem when ACE_HAS_WINNT4 has been set to 0. Thanks to + Karl Schmitt <Karl dot Schmitt at dfs dot de> for reporting this. + + * ace/ACE.cpp: + * ace/Select_Reactor_T.cpp: + Fixed incorrect comment after endif + + * ace/Auto_Event.h: + * ace/Based_Pointer_Repository.h: + * ace/Based_Pointer_T.h: + * ace/Default_Constants.h: + * ace/Dev_Poll_Reactor.h: + * ace/Event_Handler.h: + * ace/File_Lock.h: + * ace/Framework_Component.h: + * ace/Free_List.h: + * ace/Future.h: + * ace/Future_Set.h: + * ace/Guard_T.h: + * ace/Handle_Gobbler.h: + * ace/Handle_Set.h: + * ace/Hash_Map_Manager_T.h: + * ace/Hash_Map_With_Allocator_T.h: + * ace/Local_Tokens.h: + * ace/Map_Manager.h: + * ace/MEM_IO.h: + * ace/MEM_SAP.h: + * ace/MEM_Stream.h: + * ace/Message_Block.h: + * ace/Message_Queue.h: + * ace/Msg_WFMO_Reactor.h: + * ace/Node.h: + * ace/Null_Mutex.h: + * ace/Null_Semaphore.h: + * ace/Object_Manager.h: + * ace/Process_Manager.h: + * ace/Reactor.h: + * ace/Reactor_Notification_Strategy.h: + * ace/Proactor.h: + * ace/Recursive_Thread_Mutex.h: + * ace/Service_Object.h: + * ace/WFMO_Reactor.h: + * ace/Reactor_Impl.h: + * ace/Proactor_Impl.h: + * ace/Signal.h: + * ace/Svc_Handler.h: + * ace/SOCK_SEQPACK_Association.h: + * ace/Test_and_Set.h: + * ace/Thread_Mutex.h: + * ace/Timer_Heap_T.h: + * ace/TP_Reactor.h: + * ace/Timer_Queue_Adapters.h: + * ace/Timer_Hash_T.h: + * ace/Timer_Queue_T.h: + * ace/Unbounded_Set.h: + * ace/Select_Reactor_T.h: + * ace/Service_Config.h: + Doxygen improvements + + * ace/Auto_IncDec_T.h: + Removed incorrect comment + + * ace/config-aix-4.x.h: + * ace/config-borland-common.h: + * ace/config-cray.h: + * ace/config-cxx-common.h: + * ace/config-doxygen.h: + * ace/config-g++-common.h: + * ace/config-hpux-10.x-hpc++.h: + * ace/config-hpux-11.00.h: + * ace/config-icc-common.h: + * ace/config-integritySCA.h: + * ace/config-irix6.x-sgic++.h: + * ace/config-kcc-common.h: + * ace/config-lynxos.h: + * ace/config-netbsd.h: + * ace/config-openvms.h: + * ace/config-osf1-4.0.h: + * ace/config-sunos5.5.h: + * ace/config-sunos5.6.h: + * ace/config-tandem-nsk-mips-v2.h: + * ace/config-tandem-nsk-mips-v3.h: + * ace/config-unixware-7.1.0.udk.h: + * ace/config-vxworks5.x.h: + * ace/config-vxworks6.2.h: + * ace/config-win32-dmc.h: + * ace/config-win32-ghs.h: + * ace/config-win32-msvc-6.h: + * ace/config-win32-msvc-7.h: + * ace/config-win32-msvc-8.h: + * ace/config-win32-visualage.h: + * ace/README: + Removed ACE_HAS_USING_KEYWORD, all our compilers have it so need + for a seperate define anymore + + * ace/config-borland-common.h: + Removed ACE_LACKS_INLINE_ASSEMBLY, ACE_NEW_THROWS_EXCEPTIONS, and + ACE_SIZEOF_LONG_DOUBLE and added ACE_HAS_NEW_NOTHROW + + * ace/config-doxygen.h: + Fixed define of __ACE_INLINE__ + + * ace/config-icc-common.h: + Added custom export macros, the ICC compiler does support the + visibility attribute + + * ace/config-lynxos.h: + Added ACE_HAS_CHARPTR_SHMAT + + * ace/config-macros.h: + Always expand ACE_USING to using + + * ace/config-psos-diab-mips.h: + * ace/config-psos-diab-ppc.h: + * ace/config-psos-diab.h: + * ace/config-psos-tm.h: + * ace/config-psosim-g++.h: + Added ACE_LACKS_ENV + + * ace/config-sunos5.5.h: + Added ACE_HAS_CHARPTR_SHMDT + + * ace/config-win32-borland.h: + Removed ACE_LACKS_STDINT_H, ACE_LACKS_DIRENT_H, undef the + following defines, borland has them, ACE_LACKS_STRUCT_DIR, + ACE_LACKS_CLOSEDIR, ACE_LACKS_OPENDIR, ACE_LACKS_READDIR, + ACE_LACKS_REWINDDIR, added ACE_HAS_WOPENDIR, ACE_HAS_WCLOSEDIR, + ACE_HAS_WREADDIR, ACE_HAS_WREWINDDIR + + * ace/config-WinCE.h: + Added ACE_LACKS_PIPE + + * ace/Dirent.{h,inl}: + * ace/Dirent_Selector.{h,cpp,inl}: + * ace/os_include/os_dirent.h: + * ace/OS_NS_dirent.{h,cpp,inl}: + Borland delivers wopendir, wclosedir for wchar_t directory names + but also wdirent instead of dirent. Added a ACE_DIRENT macro that + normally expands to dirent but with Borland it can expand to + wdirent when build with ACE_USES_WCHAR + + * ace/DLL_Manager.h: + No need to export ACE_DLL_Handle, internal class + + * ace/Framework_Component.h: + Declare private copy constructor/assignment operator, + should allow making a copy + + * ace/INET_Addr.cpp: + Changed some tests for VxWorks, only a specific implementation + should be used when ACE_LACKS_GETHOSTBYNAME and + ACE_LACKS_GETHOSTBYADDR are set, with newer VxWorks version we + don't have these defines set, so we don't need to use a different + code path for VxWorks + + * ace/Local_Name_Space.cpp: + * ace/Name_Space.cpp: + * ace/Parse_Node.cpp: + Initialize all members, fixes GCC warnings + + * ace/MEM_SAP.h: + Don't export ACE_MEM_SAP_Node, it is an internal class + + * ace/Message_Queue.cpp: + * ace/WIN32_Proactor.cpp: + Removed win32 bit specific code, the 64bit case is the one also to + use for 32bit. + + * ace/Time_Value.h: + * ace/os_include/os_time.h: + Moved timespec to os_time, it belongs there. Fixes bugzilla + bug [2380]. + + * ace/Node.h: + Declare private assignment operator + + * ace/OS_NS_stdlib.inl (getenv): + Removed psos specific part, solved by adding a define to the + psos confi files + + * ace/OS_NS_sys_utsname.cpp: + Merged the two uname implementations to one method to make + the maintenance easier + + * ace/OS_NS_Thread.inl: + Replaced VXWORKS with ACE_VXWORKS + + * ace/Select_Reactor_Base.h: + Added forward declaration of ACE_Sig_Handler, this class is + used in the interfaces as pointer + + * ace/OS_NS_sys_shm.{h,inl}: + Changed the void* argument of shmdt and shmat to a const void*, + introduced ACE_HAS_CHARPTR_SHMAT and ACE_HAS_CHARPTR_SHMDT for + the platforms that have a char* version of these methods. + + * ace/TP_Reactor.{h,cpp}: + Don't export ACE_EH_Dispatch_Info and ACE_TP_Token_Guard, it are + internal classes. Renamed grab_token to acquire_read_token as the + todo mentioned, addded private copy constructor and assignment + operator for ACE_TP_Token_Guard, no copying should be allowed + + * ace/Unbounded_Queue.cpp: + * ace/Unbounded_Set.cpp: + Use prefix increment/decrement + + * ace/OS_NS_unistd.inl: + Merged the two pipe methods to one and replaced some c-style casts + with C++ casts. + + * ace/OS_NS_unistd.cpp: + Refactored num_processors, use sysconf when _SC_NPROCESSORS_CONF is + defined, when ACE_HAS_SYSCTL has been set we use sysctl + Refactored num_processors_online, use sysconf when + _SC_NPROCESSORS_ONLN is defined, when ACE_HAS_SYSCTL has been + set we use sysctl. + + * ace/Time_Value.{h,cpp,inl}: + Use suseconds_t as type for usec + + * ace/Select_Reactor_T.inl: + Added include of Signal.h to fix compile error in the solaris + autoconf build + + * bin/tao_other_tests.lst: + Also run EC_MT_MCast in a static configuration + + * bin/tao_orb_tests.lst: + Added AMH_Oneway and Bug_2319_Regression + + * bin/perltest2cpp.pl: + Removed this file + +Thu Feb 9 20:07:59 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Time_Value.cpp: + + Some platforms pollute the namespace with a max() macro, which + makes it impossible to invoke std::numeric_limits<T>::max(). + #undef max after all the headers have been #included. + +Thu Feb 9 18:51:16 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + #include <sys/types.h> in the ACE_HAS_2_PARAM_SCHED_GETAFFINITY + and ACE_HAS_2_PARAM_SCHED_SETAFFININTY feature tests. Thanks to + Doug McCorkle <mccdo at iastate dot edu> for reporting this bug. + +Thu Feb 9 20:05:00 UTC 2006 Iliyan Jeliazkov <iliyan@ociweb.com> + + * bin/tao_other_tests.lst: + + Added the new secure policies test. + +Thu Feb 9 17:40:17 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/OS_NS_string.cpp (ACE_OS::strerror): + + Don't use strlen() to see if length is zero, check if the + first char is null (O(1) vs. O(N)). + +Thu Feb 9 16:59:40 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * test/MEM_Stream_Test.cpp: + + Align test_reactive() and test_concurrent() so the same + error/warnings are emitted. + + * Flag_Manip.cpp: + * IPC_SAP.cpp + * MEM_IO.cpp: + * SOCK_Dgram.cpp: + * SSL/SSL_SOCK_Stream.cpp: + + Change type of FIONBIO and FIONREAD ioctl from u_long, + ACE_INT32, etc. to int for portability. + + * ace/Time_Value.cpp: + + Use std::numeric_limits<time_t>::max () instead of LONG_MAX + as ctor's first argument when initializing ACE_Time_Value:: + max_time if !ACE_LACKS_NUMERIC_LIMITS, as time_t may not be + a long. Fixes Timer_Queue_Reference_Counting_Test on NetBSD/amd64. + + * configure.ac: + + Added ACE_LACKS_NUMERIC_LIMITS feature test. + + * ace/README: + + Document new ACE_LACKS_NUMERIC_LIMITS feature test macro, which + should be defined to 1 if platform lacks std::numeric_limits<>. + + * ace/Cached_Connect_Strategy_T.cpp (cached_connect): + + Handle ETIMEDOUT as we do for EWOULDBLOCK. Fixes + Cached_Conn_Test on NetBSD systems. + + * ace/config-freebsd.h: + * ace/config-netbsd.h: + * ace/config-openbsd.h: + * ace/config-macosx-panther.h: + * ace/config-macosx-tiger.h: + * ace/config-macosx.h: + + Define ACE_HAS_SOCKADDR_IN6_SIN6_LEN. + This may be needed for other canned configs. + + * ace/config-aix-4.x.h: + * ace/config-cray.h: + * ace/config-freebsd.h: + * ace/config-macosx-panther.h: + * ace/config-macosx-tiger.h: + * ace/config-macosx.h: + * ace/config-mvs.h: + * ace/config-netbsd.h: + * ace/config-openbsd.h: + * ace/config-qnx-neutrino.h: + * ace/config-qnx-rtp-62x.h: + * ace/config-qnx-rtp-pre62x.h: + * ace/config-unixware-7.1.0.h: + * ace/config-unixware-7.1.0.udk.h: + * ace/config-win32-interix.h: + + Change ACE_HAS_SIN_LEN to ACE_HAS_SOCKADDR_IN_SIN_LEN. + + * ace/README: + + Document new feature test macros ACE_HAS_SOCKADDR_IN_SIN_LEN and + ACE_HAS_SOCKADDR_IN6_SIN6. + + Removed description of ACE_HAS_SIN_LEN. This macro was defined, + but not used anywhere in ACE, TAO, or CIAO. It's being removed + rather than used because the new macros follow our feature test + naming conventions. + + * ace/INET_Addr.cpp: + * ace/INET_Addr.inl: + + Set the sockaddr_in.sin_len and sockaddr_in6.sin6_len members if + new ACE_HAS_SOCKADDR_IN_SIN_LEN or ACE_HAS_SOCKADDR_IN6_SIN6_LEN + feature test macros are defined. + +Tue Feb 7 23:28:29 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/SPIPE_Acceptor.cpp (close): On Windows, wait for completion + (cancellation) of an outstanding ConnectNamedPipe operation. If + left outstanding and the ACE_SPIPE_Acceptor object is deleted, the + OS will write into deleted memory. Thanks to Nathan Bamford + <nbamford at datalever dot com> for reporting this. + + * THANKS: Added Nathan Bamford to the Hall of Fame. + +Wed Feb 08 15:46:51 2006 Wallace Zhang <zhangw@ociweb.com> + + * ACE version 5.4.9 released. + +Mon Feb 6 18:39:20 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated with info from Doug Schmidt. + +Mon Feb 6 15:49:57 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated with info from Steve Huston. + +Mon Feb 6 14:44:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ACE-INSTALL.html: + Improved documentation for the BCBVER environment setting which + is required for building with the Borland C++ compilers + +Fri Feb 3 23:48:32 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Barrier.h: Noted shutdown() was added for 5.4.9. + + * ace/Message_Queue_T.{h cpp}: Changed enqueue_head(), enqueue_tail() + to recognize that the ACE_Message_Block passed may have other + block(s) connected to it via the next() pointers. This allows a + caller to pre-connect a series of ACE_Message_Blocks and coalesce + the enqueueing of the series into a single method call. + Thanks to Guy Peleg <guy dot peleg at amdocs dot com> for suggesting + this enhancement. + Also revamped the Doxygenization of ACE_Message_Queue's + documentation. + + * tests/Message_Queue_Test.cpp: Added chained_block_test() to test + the new functionality above. + +Fri Feb 3 14:47:53 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * ace/Cleanup_Strategies_T.h: + + Added missing versioned namespace declarations. + + * ace/Guard_T.h: + + Fixed versioned namespace related errors in single-threaded + builds with that feature enabled. + + * ace/WFMO_Reactor.h: + + Forward declare the ACE_WFMO_Reactor_Test class outside of the + versioned namespace. This test class is actually declared in + the global namespace of a standalone test. + +Fri Feb 3 07:53:16 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/OS_NS_sys_socket.inl (setsockopt): Make sure to + map WSAEOPNOTSUPP to the ENOTSUP errno value so the code is + portable across versions of sockets! Thanks to David Hauck + <davidh at netacquire dot com> for this fix. + + * ace/OS_NS_sys_socket.inl (setsockopt): Only check for + WSAEOPNOTSUPP on platforms that actually support this macro! + Thanks to Wallace Zhang for reporting this. + +Thu Feb 2 23:59:37 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * html/index.html + + Removed the XML_helpers link, as that documentation is no + longer generated. + +Thu Feb 2 23:41:39 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/acedefaults.mpb + + Added zlib to the feature inherits to resolve linking errors + on Windows. + +Thu Feb 2 13:35:18 Pacific Standard Time 2006 Ossama Othman <ossama_othman at symantec dot com> + + * ace/OS_NS_Thread.h: + + Fixed versioned namespace related errors in single-threaded + builds with that feature enabled. + +Thu Feb 2 17:49:42 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/OS_NS_string.h: + + Add ACE_Export decoration to ACE_OS::fast_memcpy() declaration. + +Thu Feb 2 15:47:35 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * examples/Map_Manager/Map_Manager.mpc: + + Added an mpc file to create the right kind of project. The + symptoms of bad or missing mpc files are stray library symbolic + links. + +Thu Feb 2 14:48:03 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * Makefile.am: + + Build examples and tests subdirectories after building + protocols. I think all of the HTBP, RMCast and TMCast examples + and tests should be moved underneath protocols eventually , but + it's too close to the release to do it safely. + +Thu Feb 2 11:19:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Naming_Test.cpp: + Moved some real test code out of ACE_ASSERT calls + +Thu Feb 2 06:15:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/run_test.lst: + Fixed another error in this file + +Wed Feb 1 20:33:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Event_Handler.h: + Doxygen improvement + +Wed Feb 1 20:16:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/msvc_static_order.lst: + Added CosConcurrency_IDL + +Wed Feb 1 18:00:06 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * ace/ace_for_tao.mpc + + Added Dirent_Selector.cpp to fix the Dirent test. + +Wed Feb 1 08:17:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_shm.inl: + Reverted another part of my changes + +Wed Feb 1 07:52:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/run_test.lst: + Fixed !ACE_FOR_TAO additions + +Tue Jan 31 22:08:57 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Barrier.{h cpp}: Added a new shutdown () method which aborts all + waiting on the barrier. Thanks to John Lilley <jlilley at datalever + dot com> for contributing this method. + Also note that the wait() method can now return -1 with errno + ESHUTDOWN if the barrier is shut down while waiting for it. + + * tests/Barrier_Test.cpp: Added a test for barrier shutdown. + + * THANKS: Added John Lilley to the Hall of Fame. + +Tue Jan 31 21:34:34 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * bin/ciao_tests.lst + + Added the hello test *without* naming service so we get results + even on platforms with a broken/nonextant Naming Service. + +Tue Jan 31 16:51:27 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * bin/ciao_tests.lst + * bin/tao_other_tests.lst + * tests/run_test.lst + + Added a bunch of !ACE_FOR_TAO qualifiers to tests that are not + built/runnable when the ACE_FOR_TAO feature is used. + + * tests/run_test.lst + + Removed the avoid of ace_for_tao from the Dirent test, as Dirent.cpp + is now built as part of ace_for_tao. + +Tue Jan 31 09:44:10 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_shm.{h,inl}: + Reverted my change below, removed the const, it causes problems with + solaris, have to add a special case for solaris, but will do that + after x.4.9 is out + + Fri Jan 27 12:36:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_shm.{h,inl}: + Changed for the shmdt and shmat methods the void* argument to + const void*, this is the way posix defines these methods. + +Mon Jan 30 17:53:10 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * bin/ciao_tests.lst + + Added a !NOXERCES qualifier so it is possible to run only tests + that do not require xerces. + +Sat Jan 28 18:40:30 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Array_Base.h (class ACE_Array_Base): Changed private to + protected to enable access to certain members in derived + classes. Thanks to luxi78@gmail.com for suggesting this. + +Fri Jan 27 23:29:44 UTC 2006 James H. Hill <hillj@isis.vanderbilt.edu> + + * docs/ace_guidelines.vsmacros: + + Re-added the Visual Studio macros as a binary file. + +Fri Jan 27 23:21:49 UTC 2006 James H. Hill <hillj@isis.vanderbilt.edu> + + + * docs/ace_guidelines.vsmacros: + + Removed this file since it's a binary file. + +Fri Jan 27 18:47:34 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * ace/ace_for_tao.mpc + + Added Dirent.cpp to resolve linking errors in TAO_IDL on Windows. + +Fri Jan 27 14:53:03 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/PerlACE/Run_Test.pm: + + Added a method to get a random port number within the range of + 10002 - 32767. + +Fri Jan 27 14:10:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Reactor_Performance_Test.cpp: + Initialise some pointers with 0 + +Fri Jan 27 13:56:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/DLL_Manager.h: + Doxygen improvements + +Fri Jan 27 13:43:50 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/msvc_static_order.lst: + + More tweaks for split of CosConcurrency library --- build tests + after building the library. + +Fri Jan 27 13:42:03 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Fix typo in last change. + +Fri Jan 27 12:36:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_shm.{h,inl}: + Changed for the shmdt and shmat methods the void* argument to + const void*, this is the way posix defines these methods. + +Fri Jan 27 11:31:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Select_Reactor_T.cpp: + Forgot this file to commit, only include the .inl file when + inlining is disabled + +Fri Jan 27 11:06:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Connector.h: + Improved doxygen + +Fri Jan 27 10:43:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Swap.h: + Added a deprecated tag to this file, std::swap can be used without + problems on all platforms, we do it in TAO without problems + +Fri Jan 27 10:36:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_wait.h: + Improved doxygen + +Fri Jan 27 10:11:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Thread_Manager_Test.cpp: + Updated this test for VxWorks with pthread support + +Fri Jan 27 09:45:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * html/Stats/performance.shtml: + Changed picture to 800*600 + + * bin/performance_stats.sh: + Copy the contents of html/Stats to the destination directory, this + way any change in this directory is automatically published on + the webserver. The old contents of the webserver has been checked + to make sure we don't loose any data. + +Fri Jan 27 09:14:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor.h: + * ace/config-sunos5.5.h: + * ace/config-osf1-4.0.h: + Doxygen improvements + + * ace/Select_Reactor_T.{h,inl}: + Doxygen improvements and enabled inlining in the inline file again, + this was disabled and I could find that someone disable this 7 years + ago because of a bug in the Sun compiler at that moment. The current + supported versions don't have a problem with this, so enabled + inlining again in this core part of ACE. + +Fri Jan 27 03:09:01 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + If examples and/or tests have been disabled, don't bother + generating subdirectory hierarchies or Makefiles for them. + +Fri Jan 27 02:43:53 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * Makefile.am: + * m4/ace.m4: + + Remove support for --{enable,disable}-ace-perftests. The + performance tests are now enabled/disabled with the plain + --{enable,disable}-ace-tests option. We decided this as + flags for each type of example and test gets a unwieldly + once we factor in TAO (and sometime in the future CIAO). + +Thu Jan 26 18:53:10 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * Makefile.am (SUBDIRS): + * m4/ace.m4: Added support to enable/disable building the ACE tests, + performance tests, and examples. Thanks to Thomas E Lackey + <telackey at bozemanpass dot com> for contributing this. + +Thu Jan 26 20:25:39 UTC 2006 Steve Huston <shuston@riverace.com> + + * examples/APG/Streams/BasicTask.h: + * examples/APG/Streams/EndTask.h: Fixed ACE_Message_Block memory leaks. + +Thu Jan 26 17:59:16 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * bin/MakeProjectCreator/config/dance_extension_stub.mpb + + Added a new MPC base project for DAnCE. + +Thu Jan 26 15:38:38 UTC 2006 Steve Huston <shuston@riverace.com> + + * protocols/ace/RMCast/Template_Instantiations.cpp: Replace the + separate long and long long instantiations with u64 instantiations. + This is what the code says, and avoids issues with 64-bit + explicit instantiations builds. + +Thu Jan 26 15:20:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Singleton.h: + Doxygen improvements + +Thu Jan 26 15:05:04 UTC 2006 Steve Huston <shuston@riverace.com> + + * protocols/ace/RMCast/Template_Instantiations.cpp: Add missing + template instantiations. + +Thu Jan 26 14:02:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Message_Block_Test.cpp: + * tests/Process_Manual_Event_Test.cpp: + * tests/Process_Mutex_Test.cpp: + Moved real code out of ACE_ASSERT macro's, this functionality + wasn't executed in release mode builds. Found this because of + warnings in the Intel release build that a variable was used + before it was assigned a value. + +Thu Jan 26 13:21:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/performance_stats.sh: + Increased size of pictures to 800x600 and also put linux and + gcc version into a file which is used by the other html files + + * bin/generate_performance_chart.sh: + * bin/generate_topinfo_charts.sh: + Generate pictures of 800x600 + +Thu Jan 26 13:16:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * html/Stats/configuration.shtml: + Get linux and gcc version from the file instead of hardcoding + it in this file + + * html/Stats/simple_footprint.shtml: + Removed the smart proxies lib, it is always 0 size, added PI + and PI_Server + +Thu Jan 26 13:06:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/generate_compile_stats.sh: + Extended this script to generate a seperate page for the CIAO + footprint stats. Also made the generated png images the size + of 800x600 and get the gcc version from gcc itself instead of + generating it hardcoded + +Thu Jan 26 13:03:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/generate_footprint_chart.sh: + Generate the png images of size 800x600, little bit bigger, makes + it more easier to read + +Thu Jan 26 11:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Registry.h: + * ace/Token_Request_Reply.h: + * ace/Semaphore.h: + * ace/Hash_Map_Manager_T.h: + * ace/Sched_Params.h: + Doxygen improvements + +Thu Jan 26 10:47:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * html/Stats/detailed_footprint.shtml: + Updated header page to also mention that we gather CIAO stats + +Wed Jan 25 20:16:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_Thread.h: + * ace/config-linux-common.h: + * ace/config-macros.h: + * ace/RB_Tree.h: + Doxygen improvements + + * ace/config-freebsd.h: + * ace/config-macosx.h: + * ace/config-netbsd.h: + * ace/config-openbsd.h: + * ace/config-vxworks6.2.h: + Added ACE_HAS_SYSCTL, will be used in some new code that will + be added after x.4.9 + +Wed Jan 25 19:57:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-common.h: + Added ACE_LACKS_SUSECONDS_T and ACE_LACKS_USECONDS_T + + * ace/WIN32_Asynch_IO.h: + * ace/TSS_T.h: + * ace/Timer_Queue_T.h: + * ace/String_Base.h: + * ace/iosfwd.h: + * ace/High_Res_Timer.h: + * ace/Configuration.h: + * ace/Log_Msg.h: + * ace/Message_Queue.h: + * ace/Process.h: + * ace/SOCK_Dgram_Mcast.h: + * ace/Managed_Object.h: + * ace/Map_Manager.h: + * ace/Containers_T.h: + * ace/SString.h: + * ace/IOStream.h: + Doxygen improvements + +Wed Jan 25 19:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: + Don't use the directory group sorting with borland + +Wed Jan 25 19:22:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/sys/os_types.h: + If ACE_LACKS_SUSECONDS_T is defined then define suseconds_t as + long. If ACE_LACKS_USECONDS_T is defined then define useconds_t + as unsigned long. + +Wed Jan 25 15:05:27 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Added feature test for ACE_LACKS_SUSECONDS_T and + ACE_LACKS_USECONDS_T. + +Wed Jan 25 15:00:05 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Added feature tests for ACE_LACKS_SYS_SYSCTL_H and + ACE_HAS_SYSCTL. + +Wed Jan 25 14:38:10 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/SSL/SSL_Asynch_BIO.h: + * include/makeinclude/platform_lynxos.GNU: + Fixed compile error on LynxOS when ssl=1. + +Wed Jan 25 13:06:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Array.h: + * ace/Asynch_IO.h: + * ace/Asynch_IO_Impl.h: + * ace/Atomic_Op_T.h: + * ace/Basic_Types.h: + * ace/Caching_Utility_T.h: + * ace/CDR_Size.h: + * ace/CDR_Stream.h: + * ace/Cleanup_Strategies_T.h: + Improved documentation by using @note doxygen tag + +Wed Jan 25 12:48:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/TP_Reactor.{h,cpp}: + Improved doxygen + +Wed Jan 25 12:34:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Select_Reactor_Base.h: + Improved doxygen + +Wed Jan 25 12:13:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/vcl.mpb: + Add compile_flags that are needed to build vcl apps + + * bin/MakeProjectCreator/templates/bor.mpd: + If compile_flags is set, then add them to the CFLAGS + +Wed Jan 25 11:36:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * html/Stats/footprint.shtml: + Added link for CIAO footprint we are going to gather + +Wed Jan 25 10:43:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-common.h: + Added ACE_LACKS_SYS_SYSCTL_H + +Wed Jan 25 10:38:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/sys/os_sysctl.h: + New os_include system header include file, will be used after x.4.9 + is out because using it now can break to much builds + +Tue Jan 24 18:07:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.2.h: + Readded ACE_LACKS_MKTEMP again, the function is declared but can't + be resolved during linking, reported this to WindRiver + +Tue Jan 24 16:56:51 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/OS_NS_signal.inl: Removed explicit ACE_OS from sigaction + function - left over from trying to work around HP issues yesterday. + +Tue Jan 24 16:28:11 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Added feature tests for ACE_LACKS_KILL and ACE_LACKS_SIGACTION. + +Tue Jan 24 16:08:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_dlfcn.inl: + The symFindByName is only working with VxWorks in kernel mode + +Tue Jan 24 14:44:35 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Activation_Queue.h: Corrected @retval for enqueue(). Returns + >0 (number of requests now queued) on success, not 0. Thanks to + Guy Peleg for this correction. + +Tue Jan 24 14:00:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_stdlib.cpp: + Only with VxWorks 5.5.1 don't use limits, newer versions to have this + +Tue Jan 24 13:43:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.2.h: + Removed ACE_LACKS_MKTEMP, VxWorks 6.2 delivers this function + +Tue Jan 24 13:39:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.2.h: + Removed ACE_LACKS_MMAP and ACE_LACKS_MPROTECT, VxWorks 6.2 delivers + these functions + +Tue Jan 24 13:08:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_resource.inl: + Use the ACE_UNUSED_ARG macro for arguments that are not used + +Tue Jan 24 12:54:35 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: + + Choosed a non-group sorting method if the MPC_GNUACE_NAMED_TARGETS + environment variable is set. + +Tue Jan 24 12:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_netdb.{h,cpp,inl}: + * ace/config-vxworks5.x.h: + Simplified the vxworks specific code, VxWorks 6.2 does deliver several + of the API's we don't had with VxWorks 5.5.1. + + * ace/config-psos-diab-mips.h: + * ace/config-psos-diab-ppc.h: + * ace/config-psos-diab.h: + * ace/config-psos-tm.h: + * ace/config-psosim-g++.h: + Added ACE_LACKS_GETHOSTBYNAME + +Tue Jan 24 12:12:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_netdb.h: + * ace/OS_NS_netdb.inl: + Use ACE_VXWORKS instead of VXWORKS and introduced + ACE_LACKS_GETHOSTBYADDR, ACE_LACKS_GETPROTOBYNUMBER and + ACE_LACKS_GETPROTOBYNAME to make maintenance easier + + * ace/config-chorus.h: + * ace/config-psos-diab-mips.h: + * ace/config-psos-diab-ppc.h: + * ace/config-psos-diab.h: + * ace/config-psos-tm.h: + * ace/config-psosim-g++.h: + * ace/config-vxworks5.x.h: + * ace/config-vxworks6.2.h: + * ace/config-WinCE.h: + Added the new defines to the correct files + +Tue Jan 24 11:48:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_arpa_inet.cpp (inet_aton): + Use ACE_VXWORKS instead of VXWORKS and made it dependent on the + VxWorks version number + +Tue Jan 24 10:33:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * OS_NS_signal.inl: + Introduced ACE_LACKS_SIGACTION and ACE_LACKS_KILL to make things + easier to maintain + + * ace/config-chorus.h: + * ace/config-psos-diab-mips.h: + * ace/config-psos-diab-ppc.h: + * ace/config-psos-diab.h: + * ace/config-psos-tm.h: + * ace/config-psosim-g++.h: + * ace/config-win32-common.h: + * ace/config-WinCE.h: + Added ACE_LACKS_SIGACTION, ACE_LACKS_KILL + +Mon Jan 23 22:08:56 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/OS_NS_signal.{h inl}: + * ace/OS_TLI.h: The method-name-same-as-struct-name hack for HP aC++ + needs to go up through version 03.65. This compiler version is used + on HP-UX 11iv2 on PA-RISC, so the hack can't be expunged when + removing HP-UX 11.00 support. The hack does not appear to be needed + for aC++ on HP-UX on Integrity (aC++ v06.xx). Also see + Mon Jan 23 16:35:40 UTC 2006 Steve Huston <shuston@riverace.com> + +Mon Jan 23 20:19:25 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * bin/ciao_tests.lst + + Removed the "Exceptions" qualifier from the CIAO tests, as we + no longer support emulated exceptions, and we want these + tests to run everywhere. + +Mon Jan 23 18:07:00 UTC 2006 Steve Huston <shuston@riverace.com> + + * apps/Gateway/Gateway/Event_Channel.cpp: Put the ACE_INET_Addr + setup on separate lines to help aC++ optimizer get it right. + +Mon Jan 23 16:35:40 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/OS_TLI.{h inl}: HP aC++ 03.56 (last aC++ for HP-UX 11.00) gets + confused with struct t_optmgmt being defined as extern "C" by the OS + and referenced in namespace ACE_OS by ACE. To help this compiler + deal, typedef ACE_TOPTMGMT appropriately, with extern "C" for + aC++ less than 03.60 and normally for all other compilers. This + should take care of the odd t_optmgmt errors. + + When we remove support for HP-UX 11.00, this hack should be removed + as well. + + * apps/JAWS3/jaws3/Reactive_IO.cpp: Replace #include "ace/OS.h" with + #include "ace/OS_NS_unistd.h". Leaving OS.h gets HP aCC into a state + where it gets confused about methods and types with the same name, + in this case t_optmgmt. + +Mon Jan 23 15:51:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/ATM_Acceptor.h: + * ace/OS_NS_stdio.h: + Doxygen improvements + +Mon Jan 23 15:43:56 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/msvc_static_order.lst: + + Update for split of CosConcurrency, CosProperty, and + RTEventLogAdmin libraries. + +Mon Jan 23 08:02:08 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Pipe.cpp: Added static_cast<u_short> (0) rather than + (u_short) 0 to the ACE_INET_Addr local_any in ACE_Pipe::open(). + +Sat Jan 21 08:19:34 UTC 2006 James H. Hill <hillj@isis.vanderbilt.edu> + + * docs/ACE-guidelines.html: + * docs/ace_guidelines.vsmacros: + + Added Visual Studio .NET macros project that helps with formatting + according to ACE guidelines. Also noted the macros project in the + documentation file. + +Fri Jan 20 22:51:09 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * apps/JAWS/server/IO.h: + * apps/JAWS/server/IO.cpp: + + Fixed unused paramerer warnings. + + * apps/JAWS2/JAWS/IO.h: + * apps/JAWS2/JAWS/IO.cpp: + + tried to fix the 'cast to pointer from interger of different size' + warning. It had to do with the fact that x86_64 void* are 8 bytes and + the cast was from an int which 4 bytes. When James Hu wrote that + code there were no 64 bit archs so the error is showing up now. + +Fri Jan 20 15:05:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/WIN32_Proactor.h: + No need to export ACE_WIN32_Asynch_Timer + +Fri Jan 20 14:55:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/*.doxygen: + Updated EXPAND_AS_DEFINED so that we generate documentation with + exceptions in the interfaces + +Fri Jan 20 13:56:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-macros.h: + Replace VXWORKS with ACE_VXWORKS and guarded the following + macros with ACE_LACKS_DEPRECATED_MACROS so that usage of these + deprecated macros within ACE/TAO is prevented: ACE_USING, + ACE_SYNCH_1, and ACE_SYNCH_2 + +Fri Jan 20 11:29:54 UTC 2006 Boris Kolpackov <boris@kolpackov.net> + + * protocols/ace/RMCast/Protocol.h: + + Fixed a race condition. + + * protocols/ace/TMCast/FaultDetector.hpp: + + Added a flag to prevent a single group member from terminating + until data is received from other members. + +Fri Jan 20 11:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added new PI AdvSlot test + +Wed Jan 18 19:40:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added new PI Slot test + +Wed Jan 18 19:15:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/WFMO_Reactor.cpp: + Replace c-style cast with reinterpret_cast + + * ACE-INSTALL.html: + Small cygwin update + + * ace/Mem_Map.h: + Doxygen improvements + + * ace/Mem_Map.cpp: + ACE_OS::filesize returns off_t + +Wed Jan 18 18:22:13 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * apps/Gateway/Gateway/Event_Channel.cpp: + + Updated because constructors of ACE_INET_Addr are now explicit. + +Wed Jan 18 06:55:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-cygwin32.h: + Added ACE_HAS_4_4BSD_SENDMSG_RECVMSG + +Tue Jan 17 20:37:05 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/rteventlogadmin.mpb: + * bin/MakeProjectCreator/config/rteventlogadmin_serv.mpb: + * bin/MakeProjectCreator/config/rteventlogadmin_skel.mpb: + + Split RTEventLogAdmin Service into three libraries: + RTEventLogAdmin, RTEventLogAdmin_Skel, and RTEventLogAdmin_Serv + for client stubs, servant skeletons, and service implementation + respectively. + +Tue Jan 17 20:28:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Module.h: + Doxygen improvement + +Tue Jan 17 19:56:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-cygwin32.h: + Added ACE_HAS_P_READ_WRITE and removed ACE_LACKS_READDIR_R, this + is for Cywin 1.5.19 + +Tue Jan 17 18:50:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/INET_Addr.{h,cpp}: + Improved doxygen, changed VXWORKS to ACE_VXWORKS and make one + of the constructors that has two arguments, one has to be passed + the other has a default value explicit + +Tue Jan 17 17:38:46 UTC 2006 Steve Huston <shuston@riverace.com> + + * examples/C++NPv2/display_logfile.cpp: In the Logrec_Module + constructor, don't use base-class initialization to pass &task_ + to ACE_Module. Doing so passes &task_ before task_ has been + constructed. Thus, when ACE_Module sets the task's module + pointer, it gets overwritten when task_ is constructed after + return from ACE_Module's constructor. Calling task_'s module() + method in this case will yield a 0 pointer, which is not correct. + To remedy this, call ACE_Module::open() directly from within + the Logrec_Module constructor. + Also see Stroustrup pg 307. + Thanks to David Hawkins for pointing this out. + +Tue Jan 17 16:27:47 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/OS_NS_dlfcn.inl: + Fixed compile error on LynxOS 3.x. + +Tue Jan 17 15:37:29 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/config/taodefaults.mpb: + + If the corba_messaging feature is disabled, then add the + TAO_HAS_CORBA_MESSAGING=0 macro to ensure that TAO is built + properly. + +Tue Jan 17 14:03:14 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Module.h: Change ~ACE_Module to be virtual so that derived + classes can be cleaned up properly. Thanks to David Hawkins + <dwh at ovro dot caltech dot edu> for this fix. + + * THANKS: Added David Hawkins to the Hall of Fame. + +Tue Jan 17 01:12:35 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Pipe.cpp (open): Added a cast to u_short for the first + parameter to ACE_INET_Addr to avoid complaints on certain + compilers. Thanks to Wallace Zhang for reporting this. + +Mon Jan 16 06:59:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_dlfcn.inl: + Fixed compile errors with VxWorks 5.5 + +Mon Jan 16 15:17:22 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Pipe.cpp (open): Changed + + ACE_INET_Addr local_any ("localhost:0"); + + to + + ACE_INET_Addr local_any (0, ACE_LOCALHOST); + + so that it will work more portably. Thanks to Steve Huston for + suggesting this fix. + +Mon Jan 16 20:43:26 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/README: + Removed ACE_HAS_PREDEFINED_THREAD_CANCELLED_MACRO, it is + no longer used. + + * ace/config-lynxos.h: + Minor updates for LynxOS 4.0. + + * tests/run_test.lst: + Run a few more tests on LynxOS. + +Mon Jan 16 20:08:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Log_Record.h: + Doxygen improvement + +Mon Jan 16 19:52:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/os_errno.h: + Replaced VXWORKS with ACE_VXWORKS + +Mon Jan 16 19:44:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/SOCK_IO.cpp: + When using FIONREAD the 3rd argument should be of type int. This + fixes bugzilla bug 2360. Thanks to Michael Klein + <michael dot klein at fazi dot de> for reporting this. + + * ace/SV_Semaphore_Complex.h: + Instead of ACE_USING just use "using" + + * ace/Sched_Params.cpp: + * ace/ACE.cpp: + * ace/INET_Addr.cpp: + * ace/OS_NS_netdb.cpp: + Replaced VXWORKS with ACE_VXWORKS + + * ace/Read_Buffer.h: + * ace/Reactor.h: + Doxygen improvement + + * ace/Flag_Manip.inl: + Removed remark about VxWorks, not valid anymore with + newer versions + + * ace/OS_NS_dlfcn.inl: + Removed ACE_HAS_CHARPTR_DL, is not defined in any config file + + * ace/config-all.h: + Removed old vxworks specific part + +Mon Jan 16 17:23:42 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/config-lynxos.h: + Added ACE_HAS_POSIX_REALTIME_SIGNALS. + +Mon Jan 16 17:20:50 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/config-lynxos.h: + Do not use mmap() emulation on LynxOS 4.0. + +Mon Jan 16 17:00:26 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * apps/JAWS/server/HTTP_Handler.h: + * apps/JAWS/server/HTTP_Handler.cpp: + * apps/JAWS/server/HTTP_Server.h: + * apps/JAWS/server/HTTP_Server.cpp: + * apps/JAWS/server/IO.h: + * apps/JAWS/server/IO.cpp: + * apps/JAWS/server/README: + * apps/JAWS/server/svc.conf: + + Checking the some changes to JAWS. This is the code that adds the ability + to start the server without file caching. This functionality is necessary + for the proper coordination of file creations and deletions between JAWS + and the RepositoryManager in CIAO. The changes are explained in the README. + I have added a line in the svc.conf file which shows how to enable this new + functionality. + +Mon Jan 16 16:53:38 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/config-lynxos.h: + Removed ACE_HAS_PREDEFINED_THREAD_CANCELLED_MACRO, it is + no longer used. + +Mon Jan 16 14:35:10 UTC 2006 Olli Savia <ops@iki.fi> + + * ace/config-lynxos.h: + * include/makeinclude/platform_lynxos.GNU: + Improved shared library support for LynxOS 4.0. + +Mon Jan 16 05:54:44 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Timer_Queue_Adapters.cpp (svc): Added a fix so that + this code will work for both regular timers and high-resolution + timers. Thanks to Eric Tiangang <tgliu@utstar.com> and Robert + Iakobashvili <coroberti at gmail dot com> for this fix. This + fixes bugid 2348. + + * include/makeinclude/platform_linux.GNU (LD): + Pass -O3 to GNU-linker to reduce footprint due to ld + optimizations. Thanks to Robert Iakobashvili <coroberti at + gmail dot com> for this enhancement. + +Sun Jan 15 19:20:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/SOCK_IO.{cpp,inl}: + Removed several casts which where not needed and only cause + problems with 64bit builds + +Sun Jan 15 18:57:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Service_Config.h: + Fixed ACE_DYNAMIC_SERVICE_DIRECTIVE macro when unicode is + enabled. Thanks to Jan Ohlenburg <jan dot ohlenburg at + fit dot fraunhofer dot de>. + +Sun Jan 15 06:06:38 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/avstreams.mpb: + + Update to inherit from property_serv. as this project uses a + collocated property service --- property.mpb now only brings + in the client stubs. + + * bin/MakeProjectCreator/config/concurrency.mpb: + * bin/MakeProjectCreator/config/concurrency_serv.mpb: + * bin/MakeProjectCreator/config/concurrency_skel.mpb: + + Split CosConcurrency Service into three libraries: + CosConcurrency, CosConcurrency_Skel, and CosConcurrency_Serv for + client stubs, servant skeletons, and service implementation + respectively. + + * bin/MakeProjectCreator/config/property.mpb: + * bin/MakeProjectCreator/config/property_serv.mpb: + * bin/MakeProjectCreator/config/property_skel.mpb: + + Split CosProperty Service into three libraries: + CosProperty, CosProperty_Skel, and CosProperty_Serv for client + stubs, servant skeletons, and service implementation + respectively. + +Sat Jan 14 12:59:39 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Pipe.cpp (open): Added a workaround so that "localhost:0" + is used rather than sap_any to avoid triggering firewall rules + on Windows. Thanks to Paul Felix <pef@fluent.com> for this fix. + + * ace/ACE.h (ACE): Updated the documentation for ACE::fork() to + indicate that -1 or 1 are returned if avoid_zombies != 0. This + is a bug that needs to be fixed at some point. Thanks to Tobias + Herzke <tobias.herzke@uni-oldenburg.de> for reporting this. + +Fri Jan 13 19:06:33 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Reorder some function feature tests so they're closer to + alphabetical order. This makes it easier to maintain. + +Fri Jan 13 17:56:53 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Added ACE_LACKS_SYSTEM feature test. + +Fri Jan 13 09:38:21 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * docs/ACE-bug-process.html (HREF): Updated this document to + explain the process for submitting a patch. Thanks to Rick + Taylor <rick@tropicalstormsoftware.com> for motivating this. + +Fri Jan 13 12:22:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_Thread.cpp (~TSS_Cleanup_Instance): + Set the members to zero after a delete because it are static + ones. + +Fri Jan 13 11:47:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_stdlib.inl: + Changed ACE_OS::system to use ACE_LACKS_SYSTEM + + * ace/config-chorus.h: + * ace/config-psos-diab-mips.h: + * ace/config-psos-diab-ppc.h: + * ace/config-psos-diab.h: + * ace/config-psos-tm.h: + * ace/config-psosim-g++.h: + * ace/config-WinCE.h: + Added ACE_LACKS_SYSTEM + +Fri Jan 13 08:34:18 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * test/test_config.h: + + Changed so the very first thing we do is #undef ACE_NDEBUG. + + * test/OS_Test.cpp: + + Changed to make "test_config.h" the first header to be + #included, as it #undef's ACE_NDEBUG. This ensures ACE_ASSERT() + will be defined so it validates its expression even for debug=0 + builds. Without this, all the checks in this file are compiled + out. Fortunately unreferenced symbol warnings made us aware of + this problem. + +Fri Jan 13 07:53:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-lynxos.h: + Added ACE_LACKS_SETEGID + +Fri Jan 13 04:49:41 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Changed to use AC_SEARCH_LIBS for the -lsocket and -lnsl + libraries before calling ACE_CONFIGURATION_OPTIONS. Third party + libraries may those libraries, and if they haven't been added to + $LIBS, the feature tests will fail. + +Thu Jan 12 20:30:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_time.inl: + * ace/README: + Added ACE_HAS_CLOCK_GETTIME_MONOTONIC, this is the patch from + bugzilla bug 2358. Not closing that one yet, have to see how + to autoconf this and where this new macro should be set. Thanks + to Robert Iakobashvili <coroberti at gmail dot com> for these + patches + +Thu Jan 12 19:50:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Assert.h: + Export the __ace_assert function to resolve link errors on + Windows + +Thu Jan 12 16:44:40 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Functor.{h inl}: Using ACE_LACKS_LONGLONG_T wasn't good enough + for deciding when to do an ACE_Hash<[unsigned] long long>. MSVC6 + can't hack it. So, do the specialization for the 64-bit types if + ACE_SIZEOF_LONG < 8, avoiding a duplication of ACE_Hash<long>. + Also, since the way "unsigned long long" is declared varies across + compilers, use ACE_[U]INT64 rather than the native C++ type. + + * ace/INET_Addr.cpp (string_to_addr): u_short always compares >= 0, + so rely on the indicated end of successful scan from ACE_OS::strtol() + to say whether it scanned all digits or stopped short of the end of + the string. + +Thu Jan 12 12:59:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks6.2.GNU: + For rtp mode, set PIC correctly + +Thu Jan 12 12:01:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks6.2.GNU: + When building for rtp also set DLD + +Thu Jan 12 11:51:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks6.2.GNU: + For rtp model we don't need to make sure the shared object + directory is the same as static + +Thu Jan 12 11:45:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_unistd.inl: + Fixed some comments after endif + + * ace/config-lynxos.h: + Added ACE_LACKS_SETUID and ACE_LACKS_SETEUID + +Thu Jan 12 10:34:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks6.2.GNU: + Improved building executables for rtp + +Thu Jan 12 10:10:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + Removed all support for VxWorks 6.1, this version wa just an + intermediate step from 5.5 to 6.2. The port never completed and + we are aimin at 6.2 at this moment, so to not give false + impressions removed all the support for 6.1. + + * include/makeinclude/platform_vxworks6.1.GNU: + * ace/config-vxworks6.1.h: + Removed these files + + * ace/Sock_Connect.cpp: + * ace/OS_NS_unistd.inl: + * ace/os_include/os_time.h: + * ace/os_include/os_stdio.h: + * ace/os_include/sys/os_wait.h: + Removed references to VxWorks 6.1 + +Thu Jan 12 09:51:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks5.x.h: + Added ACE_LACKS_GETPGID + +Thu Jan 12 01:08:32 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/ACE.pc.in: + + Added @LIBS@ to Libs. + + * ace/SSL/ACE_SSL.pc.in: + + Added @ACE_TLS_LDFLAGS@ and @ACE_TLS_LIBS@ to Libs. + + Added @ACE_TLS_CPPFLAGS@ to Cflags. + +Wed Jan 11 22:17:39 UTC 2006 Steve Huston <shuston@riverace.com> + + * protocols/ace/RMCast/Template_Instantiations.cpp: Added missing + explicit instantiations. + +Wed Jan 11 21:19:21 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Functor.{h inl}: Remove the ACE_* type specializations and + add specializations for ACE_Hash for [unsigned] short, + [unsigned] int, [unsigned] long, [unsigned] long long. This + should resolve the compile errors on some platforms resulting + from the changes in: + Tue Jan 10 23:04:06 UTC 2006 Steve Huston <shuston@riverace.com> + and still allow everything to work regardless of what integral types + are used. + +Wed Jan 11 11:43:42 2006 Ossama Othman <ossama@dre.vanderbilt.edu> + + From Richard Ward <richard_ward at symantec dot com> + * ace/Auto_Ptr.h (ACE_AUTO_PTR_RESET): + + Assign "NEWPTR" macro argument to a temporary "TYPE" pointer, + and use that pointer in place of "NEWPTR" to force "NEWPTR" to + be expanded only once. Prevents a memory leak from occuring + when "NEWPTR" is an expression such as "new foo". + + Delete the object released from the auto_ptr<>. Previously it + was ignored, resulting in a memory leak. Fixes a memory leak. + + * THANKS: + + Added Richard to the Hall of Fame. + +Wed Jan 11 18:58:15 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Assert.cpp: + * ace/Assert.h: + + Added const qualifier to __ace_assert() "expression" parameter. + +Wed Jan 11 17:36:44 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Assert.h: + + Use ACE_VERSIONED_NAMESPACE_NAME prefix for __ace_assert() + invocation. + +Wed Jan 11 14:24:20 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * Makefile.am: + + Updated. + + * ace/ace.mpc: + * ace/ace_for_tao.mpc: + + Added Assert.cpp to Source_Files section. + + * ace/Global_Macros.h: + + Changed to #include "ace/Assert.h", as the ACE_FACTORY_DEFINE + macro uses ACE_ASSERT. + + * ace/Log_Msg.h: + + Changed to #include "ace/Assert.h" for backwards compatibilty + with earlier ACE releases. + + * ace/Assert.cpp: + * ace/Assert.h: + + Factor ACE_ASSERT() macro out of Log_Msg.h into new files + Assert.h, with a helper-function in Assert.cpp. This reduces + the footprint of an ACE_ASSERT() invocation to a single call. + +Wed Jan 11 13:14:52 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * include/makeinclude/rules.local.GNU: + + Corrected a problem in determining if depgen.pl is the dependency + generator. The logic can now handle the instance where the script + is preceded by /usr/bin/perl (or something similar). + +Wed Jan 11 06:47:04 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/OS_NS_Thread.cpp (~TSS_Cleanup_Instance): Delete the mutex and condition + variable to prevent memory leaks. Thanks to Domingos Monteiro + <d dot monteiro at netia dot net> for this fix. + +Tue Jan 10 23:04:06 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Functor.{h inl}: Added specialization for ACE_Hash<unsigned long> + to help the explicit instantiation build get along. + +Tue Jan 10 22:30:21 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/INET_Addr.cpp (string_to_addr): Correctly identify a specified + port number of "0". Thanks to Guy Peleg <guy dot peleg at amdocs + dot com> for this fix. + + * THANKS: Added Guy Peleg to the Hall of Fame. + +Tue Jan 10 20:05:54 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * include/makeinclude/rules.local.GNU: + + Ensure that the correct object files get cleaned up when doing a + make clean. Logic was duplicated in this file (but did not + correspond to the correct logic found in the gnu.mpd or + rules.lib.GNU). + +Tue Jan 10 17:45:10 UTC 2006 Scott Harris <harris_s@ociweb.com> + + * bin/tao_other_tests.lst: + + Added TAO/orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/run_test.pl. + +Tue Jan 10 17:09:26 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Add feature tests for ACE_LACKS_CHDIR, ACE_LACKS_DUP2, + ACE_LACKS_GETPID, ACE_LACKS_ISATTY, ACE_LACKS_SETPGID, and + ACE_LACKS_UNLINK. Re-arrange some things so the tests are + closer to alphabetical order -- this makes the file easier + to maintain. + +Tue Jan 10 16:35:35 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/ChangeLogEditor/ChangeLogEdit.pm: + * bin/cle.pl: + + Removed references to the name "CVS". At this layer, the revision + control system is unknown. + +Tue Jan 10 13:36:55 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * ace/Svc_Conf_Lexer.cpp: + + Modified GNU specific code to compile with the -pedantic option. + +Tue Jan 10 13:21:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks6.2.GNU: + Compilation for rtp mode is now the default + +Tue Jan 10 13:14:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.1.h: + * ace/config-vxworks6.2.h: + Only define ACE_MAIN in kernel mode + +Tue Jan 10 11:36:43 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Added feature tests for ACE_LACKS_DUP, ACE_LACKS_GETEGID, + ACE_LACKS_GETEUID, ACE_LACKS_GETGID, ACE_LACKS_GETUID, + ACE_LACKS_PIPE, ACE_LACKS_SETEGID, ACE_LACKS_SETEUID, + ACE_LACKS_SETSID, ACE_LACKS_SETGID, and ACE_LACKS_SETUID. + +Tue Jan 10 10:10:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-hpux-10.x.h: + * ace/config-hpux-11.00.h: + Added ACE_LACKS_SETEGUID and ACE_LACKS_SETEUID + +Tue Jan 10 10:02:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_unistd.inl: + Simplified a lot of methods in this file by adding new ACE_LACKS + macros. For VxWorks and psos we now also return -1 with notsup + for the uid methods, these methods just don't work on these + platforms because they are not there and we don't have multiple + users. This will make this file much easier to maintain + + * ace/config-chorus.h: + * ace/config-integritySCA.h: + * ace/config-psos-diab-mips.h: + * ace/config-psos-diab-ppc.h: + * ace/config-psos-diab.h: + * ace/config-psos-tm.h: + * ace/config-psosim-g++.h: + * ace/config-vxworks5.x.h: + * ace/config-vxworks6.1.h: + * ace/config-vxworks6.2.h: + * ace/config-win32-common.h: + Added the new ACE_LACKS macros from OS_NS_unistd.inl + +Tue Jan 10 07:21:19 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/C++NPv2/Makefile.am: + * examples/C++NPv2/README: + * examples/C++NPv2/Reactor_Logging_Server.cpp: + * examples/C++NPv2/Reactor_Logging_Server_Adapter.h: + * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: + * examples/C++NPv2/TP_Logging_Server.h: + * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: + * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: + + Update for change below. + + * examples/C++NPv2/Reactor_Logging_Server.h: + * examples/C++NPv2/Reactor_Logging_Server_T.h: + + Renamed Reactor_Logging_Server.h to Reactor_Logging_Server_T.h. + When ACE_TEMPLATES_REQUIRES_SOURCE is not defined (as is so in + the automake build), the Sun Studio 11 C++ compiler associates + Reactor_Logging_Server.h with Reactor_Logging_Server.cpp instead + of Reactor_Logging_Server_T.cpp when instantiating templates. + This results in interesting (and difficult to track down) errors. + +Mon Jan 9 20:20:14 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/ace.m4: + + Explicitly automake conditional BUILD_ACE_FOR_TAO to false + (at least for now). + + * ace/Makefile.am: + + Small tweaks to fix errors introduced by MPC generation. + +Mon Jan 9 20:19:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/makeicc.pl: + Removed this file, it is ancient + +Mon Jan 9 19:08:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/ace_wchar.h: + VxWorks rtp has int_t + + * ace/config-vxworks6.2.h: + Rtp has wchar.h and wctype.h + + * ace/OS_NS_String.{h,inl,cpp}: + Updated the wchar_t methods that has a int_t argument to use wchar_t + instead. That matches the opengroup definition and resolved the + compile errors with VxWorks. Also replaced some c-style and static + casts with const_casts. + + * ace/config-vxworks6.2.h: + VxWorks 6.2 in rtp mode has a lot of wchar_t functionality, use it! + +Mon Jan 9 18:32:55 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Makefile.am: + + Regenerated for Service Configurator parser changes: + Mon Jan 9 15:18:49 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * ace/ace.mpc: + + Added Hash_Map_Manager.h to Header_Files section. + +Mon Jan 9 18:03:50 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Added ACE_LACKS_GETOPT and ACE_LACKS_SYSCONF feature tests. + +Mon Jan 9 15:18:49 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * ace/Encoding_Converter.h: + * ace/Encoding_Converter.cpp: + * ace/Encoding_Converter_Factory.h: + * ace/Encoding_Converter_Factory.cpp: + * ace/Svc_Conf.h: + * ace/Svc_Conf_Lexer.h: + * ace/Svc_Conf_Lexer.cpp: + * ace/UTF16_Encoding_Converter.h: + * ace/UTF16_Encoding_Converter.inl: + * ace/UTF16_Encoding_Converter.cpp: + * ace/UTF32_Encoding_Converter.h: + * ace/UTF32_Encoding_Converter.cpp: + * ace/UTF8_Encoding_Converter.h: + * ace/UTF8_Encoding_Converter.cpp: + * ace/svcconf.mpb: + + Added Unicode support to the Service Configurator by hand-coding + the lexer portion to properly take into account non-US UTF8, + UTF16 and UTF32 encodings. Some of the UFT16 and UTF32 conversion + code came directly from Unicode, Inc. + + This is a drop-in replacement for the flex generated lexer and + heap allocates the encoding converters. However, this version + performs less heap allocations and has a smaller footprint than + the flex generated lexer. + + * tests/Service_Config_Test.UTF-16.conf: + * tests/Service_Config_Test.WCHAR_T.conf: + + Added byte order marks to ensure that they are interpreted + properly on all machines. + + * ace/Svc_Conf.l: + * ace/Svc_Conf_Lexer_Guard.h: + * ace/Svc_Conf_Lexer_Guard.cpp: + * ace/Svc_Conf_l.cpp: + + * etc/Svc_Conf_l.cpp.diff: + + Removed these files. + +Mon Jan 9 14:38:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_unisth.{h,cpp}: + Integrated patches of bugzilla bug 2357, thanks to Volker Lukas + <vlukas at gmx dot de> for delivering this. This adds setuid(uid_t), + setgid(gid_t), getuid() and getgid(). + Also introduced ACE_LACKS_SYSCONF and ACE_LACKS_GETOPT to make + the VxWorks 6.2 port cleaner + + * ace/config-integritySCA.h: + * ace/config-psos-diab-mips.h: + * ace/config-psos-diab-ppc.h: + * ace/config-psos-diab.h: + * ace/config-psos-tm.h: + * ace/config-vxworks5.x.h: + * ace/config-vxworks6.1.h: + * ace/config-vxworks6.2.h: + * ace/config-win32-common.h: + Added ACE_LACKS_SYSCONF and ACE_LACKS_GETOPT to the appropriate + config files + +Mon Jan 9 14:14:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_main.cpp.{h,cpp}: + The VxWorks specific way of handling main shouldn't be used + when building for the rtp model, then the normal main should + be used + +Mon Jan 9 13:44:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added TAO/tests/Bug_2349_Regression/run_test.pl + +Mon Jan 9 11:27:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.2.h: + * ace/OS_NS_stdlib.inl: + Added ACE_LACKS_PUTENV. VxWorks 6.2 seems to have this method + declared, but when linking in rtp model we get an unresolved + external. So, just disable it for the moment, send a test + case for this to WindRiver + +Mon Jan 9 10:47:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks6.2.GNU: + Improved build rules for the rtp model + +Mon Jan 9 09:36:29 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Fix typo in ACE_LACKS_NAMED_POSIX_SEM feature test. + +Mon Jan 9 09:30:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/PI_Malloc.h: + Doxygen improvements + +Mon Jan 9 09:16:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_stat.{h,inl}: + Changed the return type of filesize to off_t, that is the type to + be used for filesizes + +Mon Jan 9 07:59:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/os_limits.h: + VxWorks 6.2 defines PIPE_BUF as -1, this is not correct, undef it + when it is defined as -1. + +Sun Jan 8 19:34:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.2.h: + Updated some more to reflect the OS correctly. + + * ace/Sock_Connect.cpp: + Updated for vxworks 6.2 + + * ace/POSIX_Asynch_IO.cpp: + * ace/POSIX_CB_Proactor.h: + * ace/POSIX_Proactor.{h,cpp}: + Added ACE_OPCODE_ for the OpCode enums READ and WRITE, READ is also + a define under VxWorks making this problematic to enable + + * include/makeinclude/platform_vxworks6.2.GNU: + Improved rtp building rules + +Sat Jan 7 13:34:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Time_Value.{h,inl}: + For the sec accessor methods use time_t as type, that is also the + type used to store the number of seconds. + +Sat Jan 7 13:29:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-msvc-8.h: + Added ACE_HAS_NEW_NOTHROW. Msvc8 throws std::bad_alloc by default, + for the ACE_NEW macros we disable this, we just get a zero back on + out of memory. This fixes bugzilla bug 2333 + +Sat Jan 7 13:17:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-mingw.h: + Added ACE_HAS_NONCONST_WCSDUP + +Fri Jan 6 21:20:58 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Process_Manager.cpp: + * ace/Process_Manager.h: + + There can be a race condition if a process exits between the + time it is spawned and the time its handler is registered. + Changed the spawn() methods to take an optional handler so + it can be registered atomically. + +Thu Jan 5 15:37:32 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Add ACE_LACKS_UNAME feature test. + +Thu Jan 5 11:48:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/README: + * ace/config-chorus.h: + * ace/config-integritySCA.h: + * ace/config-psosim-g++.h: + * ace/config-vxworks5.x.h: + * ace/config-vxworks6.1.h: + * ace/config-vxworks6.2.h: + * ace/config-win32-common.h: + * ace/OS_NS_sys_utsname.{h,cpp}: + Introduced ACE_LACKS_UNAME and refactored ACE_OS::uname a + little bit. VxWorks 6.2 does deliver uname in the new rtp model, + this file explicitly checked for some OS defines, adding there + the new rtp check was making it real complex, so added this new + define and set it in the appropriate config files. Also handle + some new processor architecture defines windows now has. + + * ace/OS_NS_sys_utsname.inl: + Removed this file, was empty + + * ace/Makefile.am: + Updated because of removed file + +Thu Jan 5 09:52:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks6.2.GNU: + Improved rtp model support + +Wed Jan 4 21:25:11 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ChangeLog: + + Changed "add-log-time-format" to a really ugly lambda expression + that formats changelog timestamps in UTC and works with both GNU + Emacs and XEmacs. + +Wed Jan 4 19:50:27 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * bin/ChangeLogEditor/ChangeLogEntry.pm: + + Modified this to use UTC instead of local time. + +Wed Jan 4 18:44:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * netsvcs/lib/Client_Logging_Handler.cpp: + Fixed 64bit conversion warning + +Wed Jan 4 11:04:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/templates/gnu.mpd: + Generate LIBNAME and PRJ_TYPE, needed for VxWorks rtp support + +Wed Jan 4 10:49:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.2.h: + In rtp mode we can't access the WIND_TCB struct anymore, meaning + that the TSS emulation can't work anymore. + + * ace/OS_NS_Thread.{h,cpp,inl}: + Only call the native tss methods when they are available + +Wed Jan 4 09:39:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/sys/os_time.h: + Added workaround for VxWorks 6.2 that defines timeval in time.h + + * ace/High_Res_Timer.cpp: + * ace/OS_NS_time.inl: + * ace/README: + * ace/Time_Value.inl: + Removed checks for !ACE_HAS_BROKEN_TIMESPEC_MEMBERS, this define + is not set in any config file, so zapped it + +Wed Jan 4 08:30:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.2.h: + Improved support for the diab compiler + + * ace/TTY_IO.cpp: + Only define the const char arrays when they are going to be + used. Fixes unused variable warnings with vxworks + + * ace/OS_NS_dlfcn.inl: + * ace/OS_NS_stropts.inl: + * ace/OS_NS_sys_socket.inl: + * ace/OS_NS_Thread.h: + * ace/os_include/os_dirent.h: + * ace/os_include/os_fcntl.h: + * ace/os_include/os_limits.h: + * ace/os_include/os_netdb.h: + * ace/os_include/os_stropts.h: + * ace/os_include/sys/os_socket.h: + * ace/os_include/sys/os_un.h: + Made VxWorks specific includes dependent on the VxWorks version. + VxWorks is getting more and more posix compliance which means we + don't have to include special VxWorks header files. Also use + ACE_VXWORKS to check for this + +Tue Jan 3 21:31:29 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ChangeLog: + + Add "indent-tabs-mode: nil" to Local Variables at end of file. + Untabify. + Delete-trailing-whitespace. + +Tue Jan 3 14:26:12 UTC 2006 Johnny Willemsen <jwilemsen@remedy.nl> + + * ace/ACE.cpp: + Don't use maxFiles with VxWorks 6.2 + +Tue Jan 3 13:03:12 UTC 2006 Johnny Willemsen <jwilemsen@remedy.nl> + + * ace/OS_NS_Thread.cpp: + Renamed MAX_ARGS to ACE_MAX_ARGS because VxWorks 6.2 has also a + define MAX_ARGS + + * ace/config-vxworks6.2.h: + Updated based on first testing + + * ace/os_include/sys/os_select.h: + * ace/os_include/os_netdb.h: + * ace/os_include/os_signal.h: + * ace/os_include/os_unistd.h: + * ace/os_include/os_unistd.h: + * ace/OS_NS_unistd.inl: + Minor updated for vxworks 6.1 + +Mon Jan 2 10:56:57 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/OS_NS_string.cpp: + + Fix conditionals around ACE_OS::strdup_emulation(const wchar*). + Remove code that was moved to ACE_OS::strdup(const wchar*). + +Mon Jan 2 18:58:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * protocols/ace/RMCast/Protocol.h: + Initialise pointer with 0 + +Mon Jan 2 13:45:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_Thread.cpp: + Only use the spa methods in non rtp model + + * ace/os_include/sys/os_wait.h: + VxWorks 6.1 defines wait and waitpid in wait.h + +Mon Jan 2 12:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/os_stdio.h: + Added workaround for vxworks6.1 and rtp for cuserid + + * ace/os_include/os_time.h: + VxWorks 6.1 defines in kernel mode timeval in sys/times.h + + * ace/OS_NS_string.cpp: + Fixed compile error with Borland + + * ace/os_include/os_signal.h: + Don't include sigLib.h when building for rtp model + + * ace/OS_NS_Thread.{h,inl}: + Don't include special VxWorks header files when building for rtp + + * ace/Sock_Connect.cpp: + Made workaround for VxWorks dependent on version umber + +Mon Jan 2 12:04:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks5.5.x.GNU: + * include/makeinclude/platform_vxworks6.1.GNU: + * bin/MakeProjectCreator/templates/gnu.mpd: + Made it possible to build for rtp and kernel mode + + * ace/config-vxworks6.1.h: + * ace/config-vxworks6.2.h: + Improved mapping + + * ace/Sock_Connect.cpp: + Reverted removal of VxWorks specific code, this is needed + for VxWorks 5.5, for 6 we have to develop a new section + + * ace/os_include/os_stdlib.h: + Only include envLib.h when not building for rtp + + * ace/os_include/os_dlfcn.h: + Only include specific VxWorks files when not building for rtp + +Sun Jan 1 00:00:00 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * Happy New Year!!! + +Fri Dec 30 16:39:46 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/OS_NS_string.cpp: + * ace/OS_NS_string.h: + * ace/OS_NS_string.inl: + + Make ACE_OS::strdup(const char *) and ACE_OS::strdup(const + wchar_t *) inline. Provide ACE_OS::strdup_emulation(const + char *) and ACE_OS::strdup_emulation(const wchar_t *) for + systems that don't have a native (or type-safe equivalent) + strdup() and wcsdup() functions. + + * configure.ac: + + Replace scattered feature tests with calls to new + ACE_FUNC_STRCASECMP, ACE_FUNC_STRNCASECMP, ACE_FUNC_STRDUP, + ACE_FUNC_WCSCASECMP, ACE_FUNC_WCSNCASECMP, ACE_FUNC_WCSDUP + autoconf macros. + + * m4/ace_func.m4: + + New file. + + Feature tests for related features (e.g does function exist, + does it have a prototype, does it have const/non-const args, + etc.) are scattered all over configure.ac. This file is for + ACE_FUNC_FOO macros (similar to autoconf's own AC_FUNC_FOO), + which bring all these feature tests together in once place. + This clean-up makes the configure.ac easier to maintain at + the same time. + + Provide ACE_FUNC_STRCASECMP, ACE_FUNC_STRNCASECMP, + ACE_FUNC_STRDUP, ACE_FUNC_WCSCASECMP, ACE_FUNC_WCSNCASECMP, + ACE_FUNC_WCSDUP macros to start things off. + +Fri Dec 30 17:52:41 2005 Steve Huston <shuston@riverace.com> + + * ace/Dev_Poll_Reactor.cpp (work_pending_i): Upon return from + epoll_wait(), don't blindly set start_pevents_ to events_. If + epoll_wait() returns -1, this erroneously sets start_pevents_ to + a value that may not make sense. + +Fri Dec 30 12:17:17 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: + Fixed compile error due to expected implicit conversion + +Fri Dec 30 15:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks6.1.GNU: + Added rtp and pthread flags, when rtp is set to 1 we are building + for real time process model, when pthread is set to 1 we are + building with the pthread support + +Fri Dec 30 15:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_unistd.inl: + Added workaround for incorrect swab include for vxworks 6.1 + +Fri Dec 30 15:00:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.1.h: + * ace/config-vxworks6.2.h: + Updated after first testing with the RTP model + +Fri Dec 30 14:50:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/C++NPv2/Client_Logging_Daemon.cpp: + Fixed compile error due to expected implicit conversion + +Fri Dec 30 14:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Time_Value.{h,inl}: + Added assignment operator for a time_t + +Fri Dec 30 12:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_time.inl: + Instead of return -1 return ACE_Time_Value(-1) + +Fri Dec 30 12:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added Bug_2345_Regression + +Fri Dec 30 11:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Reactor/Misc/pingpong.cpp: + * examples/Reactor/Misc/pingpong.cpp: + Updated because the constructors of ACE_Time_Value are now explicit + +Fri Dec 30 11:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/Gateway/Gateway/Connection_Handler.{h,cpp}: + * apps/Gateway/Gateway/Event_Channel.cpp: + * apps/Gateway/Gateway/Gateway.cpp: + * apps/Gateway/Gateway/Options.{h,cpp}: + * netsvcs/lib/TS_Clerk_Handler.{h,cpp}: + * examples/APG/Timers/Timers.cpp: + * examples/APG/Timers/Upcall.cpp: + Updated timeouts to be a long and updated some code because + the constructors of ACE_Time_Value are now explicit + +Fri Dec 30 10:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Time_Value.{h,inl}: + Added += and -= for a time_t + + * examples/APG/ThreadManagement/Priorities.cpp: + * examples/APG/ThreadManagement/Signals2.cpp: + * examples/APG/ThreadManagement/Signals.cpp: + * examples/APG/ThreadManagement/Coop_Cancel.cpp: + Initialise pointers with 0 + +Fri Dec 30 10:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Time_Value.h: + Made all single argument constructors explicit to prevent implicit + conversions. + +Fri Dec 30 10:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Profile_Timer.cpp (elapsed_rusage): + Use ACE_Time_Value to calculate the time difference. The type + of time could be FILETIME on Windows and it is not safe to just + use the - operator on that. This did compile because the + ACE_Time_Value seems to be used because of implicit conversions + +Fri Dec 30 10:05:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Reference_Counted_Event_Handler_Test.cpp: + Explicit create ACE_Time_Value's when scheduling timers + +Fri Dec 30 09:58:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Proactor.cpp: + When setting a ACE_Time_Value to zero use ACE_Time_Value::zero + instead of 0 + +Thu Dec 29 11:55:39 2005 Steve Huston <shuston@riverace.com> + + * ace/DLL.h: Further Doxygen-ized and expanded the documentation. + + * ace/config-macros.h: Add __HP_aCC to the compilers that need to have + unreachable statements suppressed to avoid a compile diagnostic. + + * ace/config-hpux-11.00.h: Add ACE_LACKS_PERFECT_MULTICAST_FILTERING + for HP-UX 11iv2 (11.23). + +Thu Dec 29 11:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks5.5.x.GNU: + * include/makeinclude/platform_vxworks6.1.GNU: + Changed the way we set TAO_IDL + +Thu Dec 29 09:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/os_sched.h: + Another update to the way we detect if we have to define cpu_set_t, + older linux versions do have glibc2.3 but not this type. + +Wed Dec 28 11:47:17 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/acinclude.m4: + + Remove some long commented-out macros that reimplemented core + autoconf functionality. + +Wed Dec 28 19:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.2.h: + Another update for the changes in 6.2 + +Wed Dec 28 19:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.2.h: + Removed some lacks macros which 6.2 should deliver according + to the documentation + +Wed Dec 28 11:21:55 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Add ACE_LACKS_SCHED_H feature test. Use it in other tests + that #include <sched.h>. + +Wed Dec 28 11:08:18 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/config_h.m4: + + Remove ACE_HAS_3_PARAM_WCSTOK autoconf header template. + + * configure.ac: + + Added description to AC_DEFINE for ACE_HAS_3_PARAM_WCSTOK. + +Wed Dec 28 19:00:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_Thread.cpp: + Rearranged some code to make the autoconf checks for set/get + affinity easier + +Wed Dec 28 10:56:42 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Change ACE_HAS_CPU_SET_T feature test to look in <sched.h>. + + Add ACE_HAS_2_PARAM_SCHED_{GET,SET}AFFINITY feature tests. + +Wed Dec 28 16:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_Thread.cpp: + Introduced ACE_HAS_2_PARAM_SCHED_SETAFFINITY and + ACE_HAS_2_PARAM_SCHED_GETAFFINITY. Some glibc versions ship with + a two param version. + + * ace/config-linux-common.h: + Removed the setting for setaffinity/getaffinity based on + glibc version. Found that even with glibc 2.3 some systems had a + two param version, some 3. + +Wed Dec 28 12:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/os_sched.h: + Improved cpu_set_t typedef + +Wed Dec 28 11:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Message_Block.h: + Doxygen improvements + +Wed Dec 28 10:24:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-linux-common.h: + Glicc 2.3 and newer also have sched_getaffinity and + sched_setaffinity. + +Wed Dec 28 10:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-linux-common.h: + Glibc 2.3 seems to have cpu_set_t + +Wed Dec 28 09:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/os_unistd.h: + Made some workarounds dependent on BCB version + + * ace/os_include/os_sched.h: + If ACE_HAS_CPU_SET_T is not defined then typedef cpu_set_t. + If your platforms has the type cpu_set_t, then set this define + in the config file + + * ace/OS_NS_Thread.{h,cpp}: + Added thr_set_affinity and thr_get_affinity to bind a thread + to a certain CPU. This is part of the extensions proposed in + bugzilla 2342. Thanks to Robert Iakobashvili + <coroberti at gmail dot com> for these extensions. + + This will probably break some builds, where we have to add + ACE_HAS_CPU_SET_T to the config file. + + * ace/README: + Documented ACE_HAS_CPU_SET_T + +Tue Dec 27 19:21:19 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/ace.m4: + + Add ACE_ENABLE_CDR_SWAP_ON_READ, ACE_ENABLE_CDR_SWAP_ON_WRITE, + ACE_ENABLE_CDR_ALIGNMENT, ACE_ENABLE_STRDUP_EMULATION, and + ACE_ENABLE_WCSDUP_EMULATION to support --enable options of + the same name. Allows users to configure these aspects of + ACE without editing the generated config.h header. + + * configure.ac: + + Fix typo in ACE_LACKS_MADVISE_PROTOTYPE feature test. + +Tue Dec 27 15:14:05 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * THANKS: Added Vladimir Panov to the Hall of Fame. + +Tue Dec 27 14:49:20 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/config_h.m4: + + Remove ACE_HAS_STRDUP_EMULATION autoconf header template. + + * configure.ac: + + Changed strdup feature test to set ACE_LACKS_STRDUP instead + of ACE_HAS_STRDUP_EMULATION. + + Added (missing) ACE_LACKS_STRCHR feature test. + + * ace/README: + + Update ACE_HAS_STRDUP_EMULATION description. Added + ACE_HAS_WCSDUP_EMULATION, ACE_LACKS_STRCHR, ACE_LACKS_WCSCHR, + ACE_LACKS_STRDUP, and ACE_LACKS_WCSDUP descriptions. + + * ace/OS_Memory.h: + + Updated comment explaining that users may want to set + ACE_HAS_STRDUP_EMULATION if they need to control what memory + allocator is used to include ACE_HAS_WCSDUP_EMULATION. + + * ace/OS_NS_string.cpp: + + The ACE_HAS_STRDUP_EMULATION feature test macro was being used + for two purposes. One is for systems which don't have a native + strdup(). The other is for when the user needs to control/ + override what memory allocator is used. + + I've separated these options by adding a new ACE_LACKS_STRDUP + feature test macro. ACE's emulated strdup() implementation is + used if either ACE_LACK_STRDUP or ACE_HAS_STRDUP_EMULATION is + set. + + Added ACE_HAS_WCSDUP_EMULATION, similar to the above, for + symmetry with the wide character version. + +Tue Dec 27 14:17:56 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/config_h.m4: + + Remove ACE_HAS_SET_T_ERRNO autoconf header template. + + * configure.ac: + + Change ACE_HAS_SET_T_ERRNO feature test to use "standard" + ACE_CHECK_HAS_FUNC() macro. + +Tue Dec 27 13:36:22 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/os_include/sys/os_mman.h: + + Provide madvise prototype if ACE_LACKS_MADVISE_PROTOTYPE. + + * configure.ac: + + Added ACE_LACKS_MADVISE_PROTOTYPE feature test. + + This should fix bugzilla bug 2274. Thanks to Steve Williams + < steve at telxio dot com > for reporting this and providing + an initial patch. + +Tue Dec 27 13:29:27 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * apps/gperf/Makefile.am: + + Regenerated. + + * apps/gperf/gperf.mpc: + + New file. Adds rule for building/installing gperf.1 manpage. + Partially addresses bugzilla bug 2280. + +Tue Dec 27 12:45:37 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Fix typo in last change. + +Tue Dec 27 12:41:00 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Add ACE_HAS_CPU_SET_T, ACE_HAS_PTHREAD_GETAFINITY_NP, + ACE_HAS_PTHREAD_SETAFFINITY_NP, ACE_HAS_SCHED_GETAFFINITY, + and ACE_HAS_SCHED_SETAFFINITY feature tests for a patch + Johnny is preparing. + +Tue Dec 27 11:11:15 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/config_h.m4: + + Remove ACE_LACKS_SYSTEM_H autoconf header template. + + * configure.ac: + + Remove ACE_LACKS_SYSTIME_H feature test, and the use of + ACE_LACKS_SYSTIME_H in other feature test macros. C.f. + + Tue Dec 27 14:50:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + +Tue Dec 27 11:06:00 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Add ACE_LACKS_ALARM feature test. + +Tue Dec 27 15:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.1.h: + * ace/config-vxworks6.2.h: + Removed ACE_LACKS_DUP2 + +Tue Dec 27 14:50:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-cygwin32.h: + * ace/config-dgux-4.11-epc.h: + * ace/config-dgux-4.x-ghs.h: + * ace/config-freebsd.h: + * ace/config-irix5.3-g++.h: + * ace/config-irix5.3-sgic++.h: + * ace/config-irix6.x-common.h: + * ace/config-linux-common.h: + * ace/config-macosx-panther.h: + * ace/config-macosx-tiger.h: + * ace/config-macosx.h: + * ace/config-mvs.h: + * ace/config-openbsd.h: + * ace/config-psos-diab-mips.h: + * ace/config-psos-diab-ppc.h: + * ace/config-psos-diab.h: + * ace/config-psos-tm.h: + * ace/config-psosim-g++.h: + * ace/config-qnx-neutrino.h: + * ace/config-qnx-rtp-62x.h: + * ace/config-qnx-rtp-pre62x.h: + * ace/config-sco-5.0.0-mit-pthread.h: + * ace/config-sco-5.0.0.h: + * ace/config-sunos4-g++.h: + * ace/config-sunos4-sun4.1.4.h: + * ace/config-sunos4-sun4.x.h: + * ace/config-tandem-nsk-mips-v2.h: + * ace/config-tandem-nsk-mips-v3.h: + * ace/config-tandem.h: + * ace/config-tru64.h: + * ace/config-unixware-2.1.2-g++.h: + * ace/config-unixware-7.1.0.h: + * ace/config-unixware-7.1.0.udk.h: + * ace/config-vxworks5.x.h: + * ace/config-vxworks6.2.h: + * ace/config-win32-interix.h: + * ace/README: + Removed ACE_LACKS_SYSTIME_H, it is not used anymore in ACE + +Tue Dec 27 14:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.1.h: + * ace/config-vxworks6.2.h: + Added initial version of VxWorks 6.2 config file. This is updated + based on the documentation, no testing has been done + +Tue Dec 27 13:27:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/sys/os_select.h: + Only include selectLib for VxWorks when VxWorks doesn't deliver + sys/select.h + + * ace/OS_NS_unistd.inl: + Introduced ACE_LACKS_ALARM to make it easier to determine which + platform has alarm and which not + + * ace/config-chorus.h: + * ace/config-psos-diab.h: + * ace/config-win32-common.h: + Added ACE_LACKS_ALARM + + * ace/config-vxworks6.1.h: + Added some documentation about defines which we could drop for + VxWorks 6.2 according to the documentation + +Tue Dec 27 11:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.1.h: + VxWorks 6.1 has two models, kernel and real time process (rtp). + Based on the model some API's are not available. + +Tue Dec 27 09:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Time_Value.{h,inl}: + Changed the first argument of the constructor accepting two + longs to time_t to fix 64bit conversion warnings + +Sun Dec 25 09:04:50 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * Merry Christmas, 2005!!!! + +Fri Dec 23 13:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-common.h: + Added ACE_LACKS_SCHED_H, windows doesn't have sched.h + +Fri Dec 23 13:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/INET_Addr.inl: + Fixed warning about unreachable code when ipv6 is enabled + +Fri Dec 23 11:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Sock_Connect.cpp: + Added missing defined + +Fri Dec 23 08:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Buffer_Stream_Test.cpp: + Fixed ambiguity errors with vc6 + +Fri Dec 23 07:55:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Time_Value.{h,inl}: + Removed the set with time_t and changed the set with two longs to + pass seconds as time_t. This should work on all platforms fine. + Thanks to JT for the ideas. + + * ace/System_Time.cpp: + Use the set with two arguments + +Thu Dec 22 18:33:29 2005 Steve Huston <shuston@riverace.com> + + * include/makeinclude/platform_aix_ibm.GNU: Change Visual Age 6 to use + -qtemplateregistry also. It's faster and doesn't require the same + strict source organization of templates that -qtempinc does. + Also stop using the aixshr hack to strip warnings out of the + linker output - it's not needed with -qtemplateregistry. + Try removing -qstaticinline - this was an attempt to stop some of + the duplicate symbol warnings that -qtempinc triggered; hopefully, + removing this will let the linker/compiler unify singleton instances. + +Thu Dec 22 14:35:12 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/rtcorbacommon.mpb: + + Add $(srcdir) relative include path. + +Thu Dec 22 14:06:07 2005 Chad Elliott <elliott_c@ociweb.com> + + * bin/tao_orb_tests.lst: + + Added Portable_Interceptors/Processing_Mode_Policy/Collocated and + Portable_Interceptors/Processing_Mode_Policy/Remote to the list. + +Thu Dec 22 19:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Reactor/Misc/notification.cpp: + * examples/Reactor/Misc/test_signals_1.cpp: + Fixed ambiguity warnings + + * ace/Time_Value.{h,cpp,inl}: + Don't pass time_t as reference to set, just by value, moved the + method to the inline file and set tv_usec to 0, thanks to JT + for this suggestions. + +Thu Dec 22 10:43:23 2005 Chad Elliott <elliott_c@ociweb.com> + + * bin/cle.pl: + * bin/ChangeLogEditor/CVSFileLocator.pm: + * bin/ChangeLogEditor/ChangeLogEntry.pm: + * bin/ChangeLogEditor/FileLocator.pm: + * bin/ChangeLogEditor/FileLocatorFactory.pm: + * bin/ChangeLogEditor/SVNFileLocator.pm: + + Added support for Subversion. It will automatically switch to + svn if it detects that it is being run in a directory + controlled by Subversion. + + * bin/DependencyGenerator/GNUObjectGenerator.pm: + * bin/DependencyGenerator/MakeObjectGenerator.pm: + + Switch to actual arrays inside the process() method and return the + reference. It is faster to push onto an array than an array + reference. + + * bin/MakeProjectCreator/config/cidlc.mpb: + + Added nmake to the specific section for compile_flags. + + * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: + + Added .PHONY when creating named targets to avoid problems with + target executables that have the same name as the project. + + * bin/depgen.pl: + + Added a -i option to not print an error if no source files are + provided. + + * include/makeinclude/rules.local.GNU: + + Modified to pass the -i option to depgen.pl and to pass the -n + option to depgen.pl if inline=1. + +Thu Dec 22 12:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_Thread.cpp: + Use taskName to get the task name under VxWorks instead of directly + using the TCB struct + + * ace/Sock_Connect.cpp: + Use for VxWorks also the unix way of retrieving the interfaces, the + VxWorks specific way doesn't work with VxWorks 6.1 anymore + +Thu Dec 22 12:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Time_Value.{h,cpp}: + Added set that accepts time_t, time_t is a 64bit type under + Windows64. + + * ace/System_Time.cpp: + Use the new Time_Value::set method that accepts time_t + +Thu Dec 22 12:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/WIN32_Proactor.cpp: + Added workarounds for vc6 which doesn't have ULONG_PTR + +Wed Dec 21 06:40:29 2005 Steve Huston <shuston@riverace.com> + + * ace/Asynch_Acceptor.cpp (set_handle): Added return 0 to success case. + Also see: + Fri Dec 16 12:38:27 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + +Thu Dec 22 06:12:39 2005 Steve Huston <shuston@riverace.com> + + * ace/SSL/SSL_SOCK_Stream.cpp: Add missing #include "ace/OS_Memory.h" + to see ACE_NEW_RETURN. Also changed the type used with + ioctl (, FIONREAD, ) from u_long to ACE_UINT32 for portability. + + * apps/JAWS2/JAWS/Headers.cpp: Add missing + #include "ace/OS_NS_stdlib.h" to see ACE_OS::free(). + + * apps/JAWS2/JAWS/IO.cpp: Add missing #include "ace/OS_NS_string.h" + to see ACE_OS::memcpy(). Add missing #include "ace/Min_Max.h" to see + ACE_MIN. + + * apps/JAWS2/JAWS/Server.cpp: Add missing #include "ace/OS_NS_string.h" + to see ACE_OS::strcpy(). + + * apps/JAWS2/JAWS/Parse_Headers.cpp: Add missing + #include "ace/Log_Msg.h". + + * examples/APG/Containers/Map_Manager.cpp: + * examples/APG/Containers/Map_Manager_Specialization.cpp: Add missing + #include "ace/Log_Msg.h". + + * examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp: Add missing + #include "ace/OS_NS_stdlib.h" for ACE_OS::malloc()/free(). + +Wed Dec 21 12:44:19 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * THANKS: Add Jonathan Sprinkle to the Hall of Fame. + + * configure.ac: + + Define ACE_LACKS_NAMED_POSIX_SEM if platform lacks any of + sem_open(), sem_close(), or sem_unlink() are undefined. This + should help automake builds on Cygwin, which does not provide + sem_unlink(). Thanks to Jonathan Sprinkle who provided the + failing config.log. + +Wed Dec 21 12:32:10 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Time_Value.inl: + + Use g++'s __builtin_constant_p() predicate to avoid calling + ::normalize() if both arguments to ACE_Time_Value::set(long, + long) are already "normalized". This avoids an unnecessary + method call when initializing ACE_Time_Value constants. + +Wed Dec 21 11:40:53 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/OS_NS_Thread.cpp (ACE_OS::thr_create): + + If ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP and THR_SUSPENDED + is set, use pthread_attr_setcreatesuspend_np() and set thread + creation attributes so thread is started in "suspended" state. + + * configure.ac: + + Add feature test for ACE_HAS_PTHREAD_ATTR_SETCREATESUSPSEND_NP. + + * ace/README: + + Document ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP. + +Wed Dec 21 19:17:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * netsvcs/clients/Naming/Client/Client_Test.cpp: + Replaced assert with ACE_ERROR + +Wed Dec 21 19:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/vc8nmake.mpb: + With vc8 and nmake we have to pass different compiler flags then + with vc6 and vc71. To make it easier to use, you can regenerate + the nmake files for vc8 using: -type nmake -base vc8nmake -recurse + This way you get the needed flags for vc8 + +Wed Dec 21 18:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/WFMO_Reactor.cpp: + * protocols/ace/HTBP/HTBP_Session.cpp: + Initialise pointer with 0 + + * include/makeinclude/platform_vxworks6.1.GNU: + * include/makeinclude/platform_vxworks5.5.x.GNU: + Use EXEEXT instead of .exe when setting TAO_IDL + +Wed Dec 21 18:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added bug_2328_regression + +Tue Dec 20 17:24:39 2005 Steve Huston <shuston@riverace.com> + + * ace/config-aix-4.x.h: Define ACE_TEMPLATES_REQUIRE_SOURCE if + compiling with an IBM compiler and __TEMPINC__ is not defined. + This covers -qnotempinc and -qtemplateregistry cases (for XL C++ 7). + Define ACE_TEMPLATES_REQUIRE_PRAGMA if compiling with an IBM + compiler and -qtempinc was specified on the command line. This + unifies proper handling and covers both ACE+TAO builds and users' + inclusion of ACE+TAO in user projects regardless of which template + model chosen. + + * ace/Local_Name_Space.cpp: Add #include "ace/ACE.h" to see + ACE::hash_pjw(). + + * ace/Malloc_T.h: Add #include "ace/Malloc_Base.h" to see + ACE_Allocator. + + * ace/POSIX_CB_Proactor.cpp: Add #include "ace/OS_NS_sys_time.h" to see + ACE_OS::gettimeofday(). + + * ace/Sock_Connect.cpp: Removed hack at this compiler version. + + * ace/SString.inl: Add #include "ace/OS_NS_stdlib.h" to see + ACE_OS::free(). + + * ace/SString.cpp: Add #include "ace/OS_Memory.h" to see + ACE_NEW_RETURN. Change #include "ace/Malloc.h" to "ace/Malloc_T.h" + to pick up needed symbols. + + * include/makeinclude/platform_aix_ibm.GNU: Added compiler-specific + section for XL C++ 7. Also removed the explicit setting of + ACE_TEMPLATES_REQUIRE_[PRAGMA|SOURCE]. The proper one to use is + determined by whether or not -qtempinc is specified to the compiler. + Since this is knowable at compile time and what a user does may + not match what the ACE/TAO build does, proper selection of the + correct setting is moved to config-aix-4.x.h. + + * include/makeinclude/rules.local.GNU: Add templateregistry.* to the + file cleanup list. XL C/C++ 7 builds use -qtemplateregistry and + specify a name templateregistry.$(MAKEFILE). + +Tue Dec 20 20:24:39 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/UUID.cpp (ACE_Utils): Move the lock to the top of the + UUID_Generator::get_timestamp() method to avoid subtle race + conditions. Thanks to Howard Finer <hfiner@sonusnet.com> for + this fix. + +Fri Dec 16 12:38:27 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Asynch_Acceptor.{h,cpp}: Added an int return value to + set_handle() so that errors can be propagated back to callers. + Thanks to Eyal Car <eyal_car at hotmail dot com> for this fix. + This closes bugid 2261. + +Wed Dec 21 16:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/CDR_Base.cpp: + * ace/CDR_Stream.cpp: + Fixed 64bit conversion warnings from int to long + + * ace/config-vxworks6.1.h: + VxWorks 6.1 defines MAP as CPU type, if it is defined, + undef it so that we can use MAP as typedef throughout ACE/TAO + + * ace/Configuration_Import_Export.cpp: + Fixed 64bit conversion warning from u_int to u_long + + * ace/Malloc_T.cpp: + Added some checks for valid pointers before calling memset. + Thanks to Oh Yoon Sik <boom at estsoft dot com> for reporting + this. + + * ace/OS_NS_sys_stat.inl (mkdir): + Replaced c-style cast with C++ cast + + * ace/Basic_Types.h: + Removed ptr_arith_t, it is not used anymore + + * ace/OS_NS_time.cpp: + Fixed the month calculation for WinCE. + Thanks to Oh Yoon Sik <boom at estsoft dot com> for reporting + this. + + * ace/WIN32_Proactor.cpp: + The code for ACE_WIN64 should also be used for ACE_WIN32 so + zapped the ACE_WIN32 specific case + + * include/makeinclude/platform_linux_icc.GNU: + When optimizations are disabled pass -O2 to the compiler. Always + disable the floating point optimizations to get correct floats + in the IDL compiler. + + * examples/Reactor/Misc/test_demuxing.cpp: + Instead of an ACE_ASSERT, use ACE_ERROR_RETURN + + * tests/Basic_Types_Test.cpp: + Use ptr_diff_t instead of ptr_arith_t + + * tests/Buffer_Stream_Test.cpp: + Initialise pointers with 0 + + * etc/tao.doxygen: + Expand all emulated exception macros, that will improve our + documentation. I will recheck doxygen later and if things look + correct I will apply the same change to the other configuration + files. + + * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: + Updated because of changes to MPC. + +Tue Dec 20 08:02:03 2005 Simon McQueen <sm@prismtech.com> + + * ACE version 5.4.8 released. + +Mon Dec 20 09:58:00 UTC 2005 Simon Massey <simon.massey@prismtech.com> + + * bin/make_release: + Removed the $0 from the "Generated by " comment inserted into + the Version.h files. + +Mon Dec 19 16:50:00 UTC 2005 Simon Massey <simon.massey@prismtech.com> + + * bin/make_release: + Removed the extra end of line inserted into the + Id: ChangeLog,v 4.9518 2005/12/20 10:03:35 bugzilla Exp + comment from all of the Version.h generators. (Around the same + line as before.) + +Mon Dec 19 14:40:00 UTC 2005 Simon Massey <simon.massey@prismtech.com> + + * bin/make_release: + Removed the #include "ace/Versioned_Namespace.h" generator + from line 643 (it wasn't adding the correct end of line + and concensous was that it was actually in error anyway). + +Thu Dec 15 08:08:31 2005 Steve Huston <shuston@riverace.com> + + * ace/Asynch_IO.h: Clarified arguments and return value for + ACE_Asynch_Read_Stream::open. + +Thu Dec 15 08:06:29 2005 Steve Huston <shuston@riverace.com> + + * ace/Service_Templates.cpp: Only #include headers if we need to + instantiate templates; i.e., if using either form of explicit + template instantiation. This avoids the sigaction issue with + HP aC++ A.03.56. + +Tue Dec 13 12:13:26 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * COPYING: Updated this file to mention compliance issues wrt the + new "The Energy Policy Act of 2005". Thanks to Malcolm Spence + for providing this. + +Tue Dec 13 18:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/tao_cosnotification.doxygen: + Also parse the subdirectories below Notify and also add inline + files, the generated doxygen docu was not complete + +Tue Dec 13 00:54:04 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/tao_versioning_idl_defaults.mpb: + + New MPC base project containing necessary versioned namespace + related TAO_IDL flags for PIDL and IDL files in core TAO + libraries and TAO orbsvcs libraries. + +Mon Dec 12 15:31:50 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/ace_for_tao.mpc: + + Added "nmake" to the list of Windows-based build types that + should be considered when adding Windows-specific sources to the + ace_for_tao subset. + +Mon Dec 12 15:23:29 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/tests.mpc (UPIPE_SAP_Test): + + Disable this test in the ace_for_tao configuration. It depends + on features not found in the ace_for_tao subset. + +Mon Dec 12 14:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/compiler.bor: + Only when we build without VCL support add _NO_VCL to the compiler + flags + +Mon Dec 12 13:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/vcl.mpb: + Added verbatim VCL=1 to this base project. This way the correct + startup objects are linked with the application when vcl is + used + +Sun Dec 11 18:03:05 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/UPIPE_Stream.h (MT_Stream): + + Moved this typedef out of the global namespace to the + ACE_UPIPE_Stream class. It is only used within this class. + Doing so also addresses global namespace pollution issues. + + * examples/ASX/Event_Server/Event_Server/event_server.cpp: + * examples/ASX/UPIPE_Event_Server/event_server.cpp: + + Reinstated local MT_Stream typedefs. The global namespace + pollution fix described above allows this. Fixes compile-time + error in single threaded builds. + +Thu Dec 8 07:20:25 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Dynamic.h: + * ace/OS_main.cpp: + * ace/OS_main.h: + * ace/TSS_Adapter.h: + * ace/QoS/QoS_Decorator.cpp: + * ace/QoS/QoS_Decorator.h: + * ace/QoS/QoS_Manager.cpp: + * ace/QoS/QoS_Manager.h: + * ace/QoS/QoS_Session.h: + * ace/QoS/QoS_Session_Factory.cpp: + * ace/QoS/QoS_Session_Factory.h: + * ace/QoS/QoS_Session_Impl.cpp: + * ace/QoS/QoS_Session_Impl.h: + * ace/QoS/QoS_Session_Impl.i: + * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: + * ace/QoS/SOCK_Dgram_Mcast_QoS.h: + * ace/QoS/SOCK_Dgram_Mcast_QoS.i: + + Fixed versioned namespace support. The versioning macros calls + were missing. + +Thu Dec 8 08:28:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/APG/ThreadSafety/threadsafety.mpc: + Fixed error in this mpc project which caused build errors with + borland + +Wed Dec 7 05:50:01 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * apps/JAWS/clients/Caching/caching.mpc: + * apps/JAWS2/JAWS/jaws2.mpc: + * bin/MakeProjectCreator/config/winregistry.mpb: + * examples/APG/Containers/containers.mpc: + * examples/APG/Svc_Config/svc_config.mpc: + * examples/APG/ThreadSafety/threadsafety.mpc: + * examples/C++NPv2/C++NPv2.mpc: + * examples/QOS/Diffserv/QOS_Diffserv.mpc: + * examples/Reactor/Proactor/Proactor.mpc: + * examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc: + * tests/tests.mpc: + + Disable some projects in these MPC files when "ace_for_tao" is + enabled. + +Tue Dec 6 21:34:03 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * examples/ASX/Event_Server/Event_Server/event_server.cpp: + * examples/ASX/UPIPE_Event_Server/event_server.cpp: + + Removed duplicate "MT_Stream" typedef that made the same typedef + in `ace/UPIPE_Stream.h' ambiguous. Fixes a versioned namespace + build error. + +Tue Dec 6 18:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/acedefaults.mpb: + For vc8 set ExceptionHandling to 2. This enabled the structured + exception handling. Normally vc8 doesn't catch structured exceptions + but we except so for some tests and else the disabling of the + win32 error windows doesn't work. This fixes bugzilla [BUG:2290] + See also http://www.codecomments.com/archive292-2005-8-578262.html + for backgroup. Thanks to Steve Huston and Chad Elliott for + proposing to handle this in this mpb file instead of in the vc8 + base mpc template + +Tue Dec 6 01:55:12 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/config-macros.h: + + Removed "#pragma once" directive. The necessary preprocessor + symbol definitions necessary to disable this directive + are generally C++ preprocessor/compiler-specific. This + prevents proper configuration of this #pragma in the + presence of a C compiler. + +Mon Dec 5 14:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_stdio.inl: + With Borland also just use tempnam instead of _tempname + +Mon Dec 5 08:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-borland.h: + * ace/config-win32-dmc.h: + * ace/OS_NS_stdio.inl: + Introduced new macros ACE_HAS_NONCONST_TEMPNAM and + ACE_HAS_NONCONST_FDOPEN. Borland C++ Builder 6 and previous had + non compliant non const methods but this is now corrected in + BDS2006, so instead of hacking also a version check in the + OS_NS_stdio.inl just check for a define and set this in the borland + config file. Also DMC seems to have one incorrect signature + so also set it there. + +Sun Dec 4 06:49:59 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/SSL/SSL_Context.cpp: + + Use an ACE_Thread_Mutex instead of ACE_Mutex. The former is + faster and lighter weight. + +Sat Dec 3 17:56:04 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/SSL/SSL_Asynch_BIO.cpp: + * ace/SSL/SSL_Asynch_Stream.h: + + Replaced ACE_SSL_bio_{read,write} functors with a single + structure containing static read() and write() methods. + Functors are overkill in this case. + + Documented why a structure is used instead of a free + function. + + * ace/SSL/SSL_Context.h: + + Removed obsolete comment. + +Sat Dec 3 11:51:36 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Base_Thread_Adapter.h: + + Removed unnecessary "ace/Global_Macros.h" include directive in + versioned namespace case. + + * ace/SSL/SSL_Asynch_BIO.cpp: + + Fixed versioned namespace support for free functions in this + file. + + (BIO_s_Asynch): + + Removed this unnecessary function. It simply returned the + address of a global object. Just take the address directly in + the calling code. + + (BIO_new_ACE_Asynch, ACE_SSL_make_BIO): + + Renamed BIO factory function to "ACE_SSL_make_BIO", which is + more consistent with ACE naming conventions. Removed extern "C" + declaration, as well, since there's no need for it to be so. + + (ACE_SSL_bio_read, ACE_SSL_bio_write): + + New functors that that make the necessary calls on the + ACE_SSL_Asynch_Stream object. + + (ACE_Asynch_BIO_read, ACE_Asynch_BIO_write): + + Use new ACE_SSL_bio_{read,write} functors instead of making + direct calls on the ACE_SSL_Asynch_Stream object. + + * ace/SSL/SSL_Asynch_BIO.h: + + Moved extern "C" BIO callback function prototypes to + SSL_Asynch_BIO.cpp. There's no need for them to be visibile to + the user. + + Renamed BIO factory function to "ACE_SSL_make_BIO", which is + more consistent with ACE naming conventions. Removed extern "C" + declaration, as well, since there's no need for it to be so. + + * ace/SSL/SSL_Asynch_Stream.cpp (open): + + Updated name of BIO factory function. + + * ace/SSL/SSL_Asynch_Stream.h: + + Removed unnecessary free function prototypes. + + (ACE_SSL_Asynch_Stream): + + Replaced friend function declarations with friend structure + (used as functors) declarations. Works around scope qualifier + problems in Sun compilers when used on free functions. + +Fri Dec 2 10:27:47 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/msvc_static_order.lst: + + Add RTEventLogAdmin project. + +Fri Dec 2 13:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Task.inl: + Replaced c-style casts with C++ const_cast + +Fri Dec 2 11:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/os_include/sys/os_stat.h: + * ace/os_include/sys/os_timeb.h: + Made some workarounds for Borland specific on the BCB version. + That way we can remove them easier in the future when we + deprecated certain releases + +Fri Dec 2 01:25:52 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Versioned_Namespace.h: + + Update preprocessor check to use new config-macros.h specific + include guard preprocessor symbol. + + * ace/config-macros.h: + * ace/config-lite.h: + + Moved all macros, preprocessor symbols and some non-C++-specific + typedefs to the new `config-macros.h' header. Allows + configuration macros/values to be used in C sources. + + * ace/config-all.h: + + Removed redundant "ace/ace_wchar.h" include directive. It's + already included by `config-lite.h'. + + * ace/config-aix-4.x.h: + * ace/config-chorus.h: + * ace/config-cygwin32.h: + * ace/config-linux-common.h: + * ace/config-osf1-4.0.h: + * ace/config-rtems.h: + * ace/config-sunos5.5.h: + * ace/config-vxworks5.x.h: + * ace/config-vxworks6.1.h: + + Relaxed unsupported compiler preprocessor error for non-C++ + compilers. Simplifies use of configuration macros/values in + presence of C compiler. + + * ace/Makefile.am: + * ace/ace.mpc: + + Added new config-macros.h header to the appropriate header + lists. + +Fri Dec 2 00:43:12 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Module.h: + * apps/JAWS/server/HTTP_Request.h: + * apps/JAWS/server/IO.h: + * apps/JAWS2/JAWS/Cache_Object.h: + * apps/JAWS2/JAWS/IO.h: + * apps/JAWS2/JAWS/IO_Acceptor.h: + * apps/JAWS2/JAWS/IO_Handler.h: + * apps/soreduce/Obj_Module.h: + * examples/APG/Containers/Hash_Map_Hash.h: + * examples/APG/Containers/RB_Tree_Functors.h: + * examples/APG/ThreadPools/Request_Handler.h: + * examples/ASX/Event_Server/Event_Server/Options.h: + * examples/ASX/Event_Server/Event_Server/event_server.cpp: + * examples/C++NPv1/Iterative_Logging_Server.h: + * examples/C++NPv1/Logging_Handler.h: + * examples/C++NPv1/Logging_Server.h: + * examples/C++NPv2/Logging_Handler.h: + * examples/Shared_Malloc/Malloc.h: + + More versioned namespace build fixes. + +Thu Dec 1 08:07:23 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Service_Config.cpp (open_i): + * ace/Service_Config.h (ACE_Service_Config): Don't try to + register a signal handler if the signal number is < 0! Thanks + to Brian Raven <brianr at liffe dot com> for this fix. + +Wed Nov 30 13:37:59 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/cidlc.mpb + + Updated to make thie base project consistent with the semantics + of the boost base projects from MPC. + +Tue Nov 29 11:20:12 UTC 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Parse_Node.cpp (make_func_name): + + Do not use a stack instantiated variable length array. Use a + dynamically allocated array instead. Saves us a copy, and + fixes g++ build errors when using its "-pedantic" command line + option. + + Fixed string length calculation. Addresses Service + Configurator failures when versioned namespace support is + enabled. + +Wed Nov 30 00:33:21 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ACEXML/parser/parser/parser.mpc: + * bin/MakeProjectCreator/config/avstreams.mpb: + * bin/MakeProjectCreator/config/rmcast.mpb: + * netsvcs/clients/Logger/Logger.mpc: + * netsvcs/servers/servers.mpc: + + Disable these projects when "ace_for_tao" is enabled. + +Wed Nov 30 08:58:35 2005 William Otte <wotte@dre.vanderbilt.edu> + + * html/index.html + + Removed obsolete CIAO components, cleaned up the HTML a bit. + +Tue Nov 29 11:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Timer_Queue_T.cpp: + Use prefix increment operator instead of postfix + +Tue Nov 29 07:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Malloc.{h,cpp}: + Removed copy constructor and name assign methods from ACE_Name_Node, + these where implemented with an assert saying not implemented. This + is not a good thing to do and also fixes some warnings in our + Intel 9.1 beta build. If someone used these methods they would get + an assert in runtime, now they get a compile error meaning we + have to implement them + +Mon Nov 28 07:26:31 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * protocols/ace/HTBP/HTBP.mpc: + + Added missing "avoids += ace_for_tao". + +Mon Nov 28 06:50:04 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/ACE_Init_Test.cpp (run_main): + + Removed unnecessary versioned namespace related "using" + keyword. + +Sun Nov 27 22:37:44 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * ace/Array_Map.h: + + Included the Sun CC 5.8, as an additional CC compiler that + requires complete specification for a trait declaration. + + Just for information. Sun CC 5.8 comes with Studio 11, which is + free (as in FREE BEER!!). + +Sun Nov 27 04:05:52 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/ace.mpc: + * ace/ace_for_tao.mpc: + * bin/MakeProjectCreator/config/aceexe.mpb: + * bin/MakeProjectCreator/config/acelib.mpb: + * bin/MakeProjectCreator/config/versioned_namespace.mpb: + + Added versioned namespace MPC support. Disabled by default. + Add "versioned_namespace=1" to default.features to enable. + + * Kokyu/Kokyu_defs.h: + * ace/Asynch_Connector.h: + * ace/Cleanup.cpp: + * ace/Cleanup.h: + * ace/If_Then_Else.h: + * ace/OS.h: + * ace/Object_Manager.cpp: + * ace/Object_Manager.inl: + * ace/Value_Ptr.h: + * ace/SSL/SSL_Asynch_Stream.h: + * ace/SSL/SSL_SOCK_Acceptor.cpp: + * protocols/ace/HTBP/HTBP_Addr.cpp: + * protocols/ace/HTBP/HTBP_Addr.h: + * protocols/ace/HTBP/HTBP_Channel.cpp: + * protocols/ace/HTBP/HTBP_Channel.h: + * protocols/ace/HTBP/HTBP_Channel.inl: + * protocols/ace/HTBP/HTBP_Environment.cpp: + * protocols/ace/HTBP/HTBP_Environment.h: + * protocols/ace/HTBP/HTBP_Filter.cpp: + * protocols/ace/HTBP/HTBP_Filter.h: + * protocols/ace/HTBP/HTBP_Filter.inl: + * protocols/ace/HTBP/HTBP_Filter_Factory.cpp: + * protocols/ace/HTBP/HTBP_Filter_Factory.h: + * protocols/ace/HTBP/HTBP_ID_Requestor.cpp: + * protocols/ace/HTBP/HTBP_ID_Requestor.h: + * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp: + * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.h: + * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.inl: + * protocols/ace/HTBP/HTBP_Notifier.cpp: + * protocols/ace/HTBP/HTBP_Notifier.h: + * protocols/ace/HTBP/HTBP_Outside_Squid_Filter.cpp: + * protocols/ace/HTBP/HTBP_Outside_Squid_Filter.h: + * protocols/ace/HTBP/HTBP_Outside_Squid_Filter.inl: + * protocols/ace/HTBP/HTBP_Session.cpp: + * protocols/ace/HTBP/HTBP_Session.h: + * protocols/ace/HTBP/HTBP_Session.inl: + * protocols/ace/HTBP/HTBP_Stream.cpp: + * protocols/ace/HTBP/HTBP_Stream.h: + * tests/ACE_Init_Test.cpp: + * tests/Process_Strategy_Test.h: + + Corrected build errors in versioned namespace builds. + + * bin/MakeProjectCreator/config/acexml.mpb: + + Disable ACEXML libraries when "ace_for_tao" is enabled. + +Fri Nov 25 19:04:10 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * NEWS: + + Updated with latest versioned namespace information. + + * ace/ACE_Codecs_export.h: + * ace/ACE_Memory_export.h: + * ace/ACE_Reactor_export.h: + * ace/ACE_Sockets_export.h: + * ace/ACE_Threads_export.h: + * ace/ace.mwc: + * ace/ace_codecs_for_tao.mpc: + * ace/ace_configuration_for_tao.mpc: + * ace/ace_memory_for_tao.mpc: + * ace/ace_reactor_for_tao.mpc: + * ace/ace_sockets_for_tao.mpc: + * ace/ace_threads_for_tao.mpc: + * ace/ace_timer_for_tao.mpc: + * bin/MakeProjectCreator/config/acecodecslib_for_tao.mpb: + * bin/MakeProjectCreator/config/acememorylib_for_tao.mpb: + * bin/MakeProjectCreator/config/acereactorlib_for_tao.mpb: + * bin/MakeProjectCreator/config/acesocketslib_for_tao.mpb: + * bin/MakeProjectCreator/config/acethreadslib_for_tao.mpb: + * bin/MakeProjectCreator/config/acetimerlib_for_tao.mpb: + + Removed smaller ace_for_tao subsets. Only a single ace_for_tao + subset library was originally intended. + + * ace/Activation_Queue.h: + * ace/Barrier.h: + * ace/Based_Pointer_Repository.h: + * ace/Codecs.h: + * ace/Dev_Poll_Reactor.h: + * ace/File_Lock.h: + * ace/LSOCK.h: + * ace/LSOCK_Acceptor.h: + * ace/LSOCK_CODgram.h: + * ace/LSOCK_Connector.h: + * ace/LSOCK_Dgram.h: + * ace/LSOCK_Stream.h: + * ace/MEM_Acceptor.h: + * ace/MEM_Addr.h: + * ace/MEM_Connector.h: + * ace/MEM_IO.h: + * ace/MEM_SAP.h: + * ace/MEM_Stream.h: + * ace/MMAP_Memory_Pool.h: + * ace/Mem_Map.h: + * ace/Method_Request.h: + * ace/Msg_WFMO_Reactor.h: + * ace/Multihomed_INET_Addr.h: + * ace/PI_Malloc.h: + * ace/Pagefile_Memory_Pool.h: + * ace/Priority_Reactor.h: + * ace/Process.h: + * ace/Process_Manager.h: + * ace/Process_Semaphore.h: + * ace/RW_Process_Mutex.h: + * ace/SOCK_CODgram.h: + * ace/SOCK_Dgram_Bcast.h: + * ace/SOCK_Dgram_Mcast.h: + * ace/SOCK_SEQPACK_Acceptor.h: + * ace/SOCK_SEQPACK_Association.h: + * ace/SOCK_SEQPACK_Connector.h: + * ace/SV_Shared_Memory.h: + * ace/Sbrk_Memory_Pool.h: + * ace/Shared_Memory.h: + * ace/Shared_Memory_MM.h: + * ace/Shared_Memory_Pool.h: + * ace/Shared_Memory_SV.h: + * ace/Thread_Semaphore.h: + * ace/UNIX_Addr.h: + + Removed ace_for_tao subset-specific export macro calls and + include directives. They are no longer needed. + + * ace/ace_for_tao.mpc: + + Added a number of source files required to build the + Notification Service and its tests. + + * Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc: + * ace/QoS/qos.mpc: + * apps/soreduce/soreduce.mpc: + * bin/MakeProjectCreator/config/ftclientorb.mpb: + * bin/MakeProjectCreator/config/htbp.mpb: + * bin/MakeProjectCreator/config/ifrservice.mpb: + * bin/MakeProjectCreator/config/naming_serv.mpb: + * bin/MakeProjectCreator/config/portablegroup.mpb: + * bin/MakeProjectCreator/config/rtevent_serv.mpb: + * bin/MakeProjectCreator/config/ssl.mpb: + * bin/MakeProjectCreator/config/strategies.mpb: + * bin/MakeProjectCreator/config/tmcast.mpb: + * examples/APG/Active_Objects/active_objects.mpc: + * examples/APG/Config/config.mpc: + * examples/APG/Misc_IPC/misc_ipc.mpc: + * examples/APG/Naming/naming.mpc: + * examples/APG/Proactor/proactor.mpc: + * examples/APG/Processes/processes.mpc: + * examples/APG/Shared_Memory/shared_memory.mpc: + * examples/APG/Streams/streams.mpc: + * examples/APG/Svc_Config/svc_config.mpc: + * examples/APG/ThreadPools/threadpools.mpc: + * examples/APG/ThreadSafety/threadsafety.mpc: + * examples/ASX/Event_Server/Event_Server/Event.mpc: + * examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc: + * examples/C++NPv1/C++NPv1.mpc: + * examples/C++NPv2/C++NPv2.mpc: + * examples/Connection/blocking/Connection_Blocking.mpc: + * examples/Connection/misc/Connection_Misc.mpc: + * examples/Connection/non_blocking/Connection_Non_Blocking.mpc: + * examples/IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc: + * examples/IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc: + * examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc: + * examples/IPC_SAP/FILE_SAP/file_sap_client.mpc: + * examples/IPC_SAP/SOCK_SAP/sock_sap.mpc: + * examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc: + * examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc: + * examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc: + * examples/Misc/Misc.mpc: + * examples/Naming/Naming.mpc: + * examples/OS/Process/OS_Process.mpc: + * examples/Reactor/Dgram/Reactor_Dgram.mpc: + * examples/Reactor/FIFO/Reactor_FIFO.mpc: + * examples/Reactor/Proactor/Proactor.mpc: + * examples/Service_Configurator/IPC-tests/client/Svc_Cfg_IPC_Client.mpc: + * examples/Shared_Malloc/Shared_Malloc.mpc: + * examples/Shared_Memory/Shared_Memory.mpc: + * examples/Synch/Synch.mpc: + * examples/System_V_IPC/SV_Message_Queues/SV_Message_Queues.mpc: + * examples/System_V_IPC/SV_Semaphores/SV_Semaphores.mpc: + * examples/Threads/Threads.mpc: + * performance-tests/SCTP/SCTP.mpc: + * tests/tests.mpc: + + Added "avoids += ace_for_tao" to projects that require features + of ACE not found in the ace_for_tao subset. Addresses link-time + errors. + +Fri Nov 25 12:45:20 2005 Steve Huston <shuston@riverace.com> + + * tests/Proactor_Test.cpp: + * tests/Proactor_Test_IPV6.cpp: Corrected ACE_Atomic_Op instantiations + for size_t. + +Fri Nov 25 10:00:21 2005 Steve Huston <shuston@riverace.com> + + * ace/POSIX_Proactor.cpp (ACE_POSIX_Asynch_Timer): Don't explicitly + call ACE_Asynch_Result_Impl() - it's pointless and isn't listed + as an ancestor of this class. + (create_asynch_timer): Use a ACE_POSIX_Asynch_Timer * to match + the created object type. + + * ace/POSIX_Asynch_IO.cpp: Remove explicit calls to base-class + constructors from all constructors. It's not needed and seems to + cause problems on 64-bit code, at least on AIX. + + * include/makeinclude/platform_aix_ibm.GNU: AIX now uses the XPG4 tail + command syntax, requiring "-n 1" to read the last line; refuses "-1". + Thanks to Mike Knight <mike dot knight at compuware dot com> for + alerting us to this. + + * THANKS: Added Mike Knight to the Hall of Fame. + +Thu Nov 24 20:00:37 2005 Simon McQueen <sm@prismtech.com> + + * bin/tao_other_tests.lst: + + Scheduled bug #2316 regression. + +Thu Nov 24 14:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_linux_icc.GNU: + For Intel C++ 9.1 also disable warning 1684 + +Thu Nov 24 01:38:57 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * bin/fuzz.pl: + + Added a test that flags common versioned namespace related + errors/misuses. + + * bin/MakeProjectCreator/config/global.features: + + Disable versioned namespace support by default. + + * ace/Atomic_Op.h: + * ace/Auto_Ptr.h: + * ace/Barrier.h: + * ace/Base_Thread_Adapter.h: + * ace/CDR_Stream.h: + * ace/Cleanup_Strategies_T.cpp: + * ace/Dev_Poll_Reactor.h: + * ace/Functor_String.h: + * ace/High_Res_Timer.cpp: + * ace/LSOCK_Connector.inl: + * ace/Local_Name_Space_T.h: + * ace/Log_Msg.h: + * ace/Malloc.h: + * ace/Malloc_Allocator.h: + * ace/Message_Queue.h: + * ace/OS_Memory.h: + * ace/OS_NS_Thread.cpp: + * ace/OS_NS_Thread.h: + * ace/OS_NS_errno.h: + * ace/OS_NS_math.inl: + * ace/OS_NS_netdb.cpp: + * ace/OS_NS_netdb.h: + * ace/OS_NS_sys_msg.h: + * ace/OS_NS_time.h: + * ace/OS_main.cpp: + * ace/Object_Manager.h: + * ace/Parse_Node.cpp: + * ace/Ping_Socket.cpp: + * ace/Proactor.cpp: + * ace/Proactor.h: + * ace/Profile_Timer.cpp: + * ace/Profile_Timer.inl: + * ace/SOCK_Dgram_Mcast.cpp: + * ace/SOCK_Dgram_Mcast.h: + * ace/SOCK_Dgram_Mcast.inl: + * ace/SPIPE_Stream.h: + * ace/Select_Reactor_T.cpp: + * ace/Service_Config.h: + * ace/Service_Templates.cpp: + * ace/Sock_Connect.cpp: + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + * ace/Thread_Manager.cpp: + * ace/Time_Value.h: + * ace/Timeprobe.h: + * ace/Timer_Hash_T.h: + * ace/Timer_List.cpp: + * ace/Timer_Queue.cpp: + * ace/config-lite.h: + * ace/SSL/SSL_Asynch_BIO.cpp: + * ace/SSL/SSL_Context.cpp: + + Corrected build errors in versioned namespace builds. + +Wed Nov 23 19:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/wrapper_macros.GNU: + Set xerces to 1 by default if it is not set + +Wed Nov 23 11:00:46 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * docs/ACE-guidelines.html: Updated the guidelines to explain how + TAO binary options should be specified, i.e. as the integral + values 0 or 1. + +Wed Nov 23 09:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_linux_icc.GNU: + When optimize=0, disable floating point optimizations. This way we + don't get floating point overflows in the TAO IDL test. If someone + enables optimize then we just let the compiler optimize things and + we could get overflows. + +Tue Nov 22 17:42:13 2005 Kobi Cohen-Arazi <kobi.cohenarazi at gmail dot com> + + * ace/Select_Reactor_T.cpp (dispatch): + Fixed a bug which derived from bug #1890. active_handle_count + must be updated when state is changed. Every time some handler + remove add or suspend itself of another handle, state is + changed, and that should be reflected in the + active_handle_count. Thanks for Vadim Iosevich <viosevich at + gmail dot com>. + +Tue Nov 22 18:27:30 2005 Steve Huston <shuston@riverace.com> + + * m4/tls.m4: Correct botched assignment to ace_TLS_CPPFLAGS when + additional Kerberos directory is needed. + +Tue Nov 22 03:33:14 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * ace/ace_configuration_for_tao.mpc: + + Some groups require ACE_Configuration. This MPC should probably + help those groups with a smaller library to use instead of + pulling in the whole ACE library. + +Tue Nov 22 01:43:52 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/portablegroup.mpb: + + Rather than disable this project in the ACE_FOR_TAO + configuration, inherit from acesocketslib_for_tao to allow it to + be used. + +Tue Nov 22 09:40:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * NEWS: + + Added Stoyan Paunov and Arvind S. Krishna entries. + +Mon Nov 21 23:56:06 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/ace_for_tao.mpc: + * ace/ace_threads_for_tao.mpc: + + Moved ACE_crc32.cpp to ace_threads_for_tao subset within + Windows compiler conditional. It is only needed by the + SV_Semaphore_Simple listed within that conditional block. + + * ace/ace_timer_for_tao.mpc: + * bin/MakeProjectCreator/config/acetimerlib_for_tao.mpb: + + New ACE_FOR_TAO timer library subset. + + * ace/Obchunk.cpp: + * ace/Obchunk.h: + * ace/Obchunk.inl: + * ace/Object_Manager.cpp: + * ace/Object_Manager.h: + * ace/Object_Manager.inl: + * ace/Object_Manager_Base.cpp: + * ace/Object_Manager_Base.h: + * ace/Obstack.cpp: + * ace/Obstack.h: + * ace/Obstack_T.cpp: + * ace/Obstack_T.h: + * ace/Obstack_T.inl: + + Added missing versioned namespace support. + + * ace/SSL/SSL_Context.h: + + Removed ACE_SSL_locking_callback prototype since it is not part + of the public interface, and since a prototype (and definition) + already exists in the SSL_Context.cpp implementation file. + + Removed static class members and placed them in anonymous + namespace in the implementation file. + + * ace/SSL_Context.cpp: + + Static class members are now in an anonymous namespace. There's + no need to expose them in the corresponding header. + + Mangle global SSL callback functions with the appropriate + versioned namespace name, if enabled. + + Improved exception safety of lock memory management and + lock acquisition/release by taking advantage of an + ACE_Auto_Basic_Array_Ptr and ACE_Mutex, respectively. + + * Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc: + * apps/drwho/drwho.mpc: + * apps/soreduce/soreduce.mpc: + * examples/APG/Active_Objects/active_objects.mpc: + * examples/APG/Misc_IPC/misc_ipc.mpc: + * examples/APG/Shared_Memory/shared_memory.mpc: + * examples/APG/ThreadPools/threadpools.mpc: + * examples/APG/ThreadSafety/threadsafety.mpc: + * examples/ASX/Event_Server/Event_Server/Event.mpc: + + Inherit from the appropriate ACE_FOR_TAO subset MPC base + project. Addresses unresolved symbol errors. + +Tue Nov 22 09:33:30 (IST) 2005 Bala Natarajan <bala_natarajan@symantec.com> + + * bin/MakeProjectCreator/config/portablegroup.mpb: + + Do not build in ACE_FOR_TAO configuration. + +Tue Nov 22 09:27:30 (IST) 2005 Bala Natarajan <bala_natarajan@symantec.com> + + * ace/OS_NS_sys_utsname.cpp: + * ace/OS_NS_sys_utsname.h: + * ace/OS_NS_sys_utsname.inl: + + Uninlined uname (). Compiling it on Solaris 9 with Studio9, + and inline enabled is a pain. DOC's scoreboard uses inline=0 + on corona, and hence doesn't show the error. Uninlining solves + the problem. + + * ace/ace_for_tao.mpc: + + Added a few files to be built in ACE_FOR_TAO config. This fixes + many errors in gperf and orbsvcs on Solaris. + +Mon Nov 21 19:16:30 2005 Steve Huston <shuston@riverace.com> + + * m4/tls.m4: Make sure we don't lose the user's specified OpenSSL + location when searching for Kerberos files. + +Mon Nov 21 13:26:53 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * NEWS: + + Updated NEWS file to reflect additions to the latest beta. + +Mon Nov 21 11:00:02 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/cidlc.mpb + + Added a verbatim section for gnuace targets to pull in the + boost_filesystem and boost_regex libraries. + +Mon Nov 21 08:16:29 2005 Steve Huston <shuston@riverace.com> + + * ace/SSL/SSL_Context.h: Removed "::" from friend declaration to + fix compile errors on Solaris, Forte 6 Update 2. (Sun C++ 5.4). + +Fri Nov 18 23:07:09 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * include/makeinclude/wrapper_macros.GNU: + + Applied a syntax submitted by Martin Corino <mcorino@rememdy.nl> + to the setting of $LEX and $YACC. The existing syntax set + these variables only if they were not already set, but + unfortunately, GNU make sets them by default. For DOC + Group purposes, they need to be set to 'flex' and + 'bison' respectively. + +Fri Nov 18 17:22:19 2005 Steve Huston <shuston@riverace.com> + + * protocols/ace/RMCast/Template_Instantiations.cpp: Completed + template instantiations. + + * protocols/ace/RMCast/Makefile.am: + * protocols/ace/TMCast/Template_Instantiations.cpp: Explicit + instantiations needed for TMCast. + + * tests/Based_Pointer_Test.cpp: Added explicit instantiation for + ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex, + ACE_PI_Control_Block>. + + * tests/DLList_Test.cpp: #include "ace/Malloc_T.h" rather than + "ace/Malloc.h" to pick up ACE_Allocator<> before the explicit + instantiation needs it. + +Fri Nov 18 14:16:45 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/WIN32_Asynch_IO.cpp (shared_read): Added a new case for + ERROR_MORE_DATA, which isn't actually an error after all. + Thanks to Yongming Wang <wangym@gmail.com> for contributing + this. + +Fri Nov 18 10:39:01 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/cidlc.mpb + + Added rest of change intended for: + Thu Nov 17 18:08:45 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + +Thu Nov 17 18:08:45 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * bin/MakeProjectCreator/config/cidlc.mpb: + + Fix submitted by Will Otte <wotte@dre.vanderbilt.edu> intended + to be part of + + Tue Nov 15 12:44:37 2005 William Otte <wotte@dre.vanderbilt.edu> + +Thu Nov 16 13:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/compiler.bor: + When VCL is defined, set different startup obj and also define + PACKAGES + + * include/makeinclude/build_exe.bor: + Added PACKAGES to the compiler flags + +Thu Nov 16 12:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/compiler.bor: + Added extra linker paths + + * bin/MakeProjectCreator/config/vcl.mpb: + New base project, usable for building VCL application with Borland + C++ Builder + + * bin/MakeProjectCreator/config/global.features: + Disable vcl by default + +Wed Nov 16 15:48:29 2005 Steve Huston <shuston@riverace.com> + + * ace/Hash_Map_Manager_T.h: For Sun CC 5.4 and earlier with explicit + template instantiation, can't prevent seeing operator= or + ACE_Hash_Map_Manager explicit templates won't compile. Ick. + + * apps/JAWS3/jaws3/Templates.cpp: Adjusted ACE_Reactor_Token_T type + usage. Follow-up change to match those in: + Fri Aug 26 18:01:31 2005 Steve Huston <shuston@riverace.com> + + * protocols/ace/RMCast/Template_Instantiations.cpp: Added more needed + instantiations. + +Wed Nov 16 14:12:08 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * bin/tao_orb_tests.lst: + + Disabled CSD tests on VxWorks builds. + +Tue Nov 15 23:41:39 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Service_Config.cpp (ACE_FACTORY_DEFINE): + + Moved this macro call outside of the versioned namespace. It + should be in the global namespace. + + * ace/Svc_Conf.h: + * ace/Svc_Conf.l: + * ace/Svc_Conf.y: + * ace/Svc_Conf_Lexer_Guard.cpp: + * ace/Svc_Conf_Lexer_Guard.h: + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + + Added missing versioned namespace macros. + +Tue Nov 15 15:41:19 2005 Steve Huston <shuston@riverace.com> + + * NEWS: Added WinCE, VC8, ACE_Dev_Poll_Reactor, and ACE_RB_Tree notes. + + * bin/make_release: Generate VC8 files for both Win32 and WinCE. + Since VC8 uses the same suffixes as VC71, the Win32 files have + _vc8 appended, and WinCE files have _WinCE appended. WinCE files + are generated with feature uses_wchar=1, vc8 uses defaults. + + * docs/CE-status.txt: Added some info on CE support under VC8. + +Tue Nov 15 12:44:37 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/cidlc.mpb + + Added a directive to remove runtime dependancy on VC71 + runtime libraries on Windows. Thanks to Kitty for suggesting + the fix. + +Tue Nov 15 11:31:41 2005 Steve Huston <shuston@riverace.com> + + * ace/Atomic_Op.{h inl} (ACE_Atomic_Op (TYPE c)): Changed the signature + to be const TYPE& for long and unsigned long. This aligns it with the + ACE_Atomic_Op template's (const TYPE&) constructor signature and + resolves undefined references to it in the explicit template builds. + + * ace/Event_Handler.cpp: Added explicit instantiation of + ACE_Atomic_Op<ACE_SYNCH_MUTEX,long> when ACE_HAS_BUILTIN_ATOMIC_OP + is not defined. This covers the event handler reference counting + use of ACE_Atomic_Op. + + * ace/Malloc_Instantiations.cpp: Corrected header file inclusions. + + * protocols/ace/RMCast/Makefile.am: + * protocols/ace/RMCast/Template_Instantiations.cpp: New file to + hold all explicit template instantiations needed for RMCast. + This is a temporary file, only for the ACE 5.5 release. Then it + can be expunged with the test of the explicit template + instantiation support. + +Tue Nov 15 09:31:29 2005 Steve Huston <shuston@riverace.com> + + * ace/Dev_Poll_Reactor.{h cpp}: Add an optional decr_refcnt parameter + to ACE_Dev_Poll_Rector_Repository::unbind () to control whether or + not the unbound event handler's refcount is to be decremented. + When registering a handler, remember to increment its refcount if + needed; conversely, decrement it when all events are removed. + Be sure to initialize epoll_event structs. + + * tests/Dev_Poll_Reactor_Test.cpp (handle_input): Fix buffer overrun. + +Tue Nov 15 13:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_stdio.{cpp.inl}: + Fixed compile errors in BCB Unicode build + +Tue Nov 15 07:28:35 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Service_Config.cpp (initialize): Added a check to avoid + overwriting a service that's already installed without having it + explicitly removed first. Thanks to Domingos Monteiro <d dot + monteiro at netia dot net> for this fix. + +Mon Nov 14 08:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/WIN32_Asynch_IO.cpp: + * ace/Asynch_Acceptor.cpp: + Removed check for >= BCB3 + + * ace/OS_NS_sys_stat.inl: + BCB has the normal umask + + * ace/OS_NS_stdio.inl: + Replaced c-style cast with C++ cast + + * ace/os_include/os_string.h: + Some BCB specific defines are not needed with BCB6 or newer + +Mon Nov 14 07:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/boost_unit_test.mpb: + Removed this file, not used anymore + + * bin/MakeProjectCreator/config/cidlc.mpb: + Use base projects for boost_filesystem, boost_regex and + exceptions, will resolve the link errors in the icc + linux build + +Fri Nov 11 16:04:44 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/templates/gnu.mpd: + + Emit "idl_stubs" target for IDL projects defining MPC's + custom_only variable. Fixes problems with some of the + scoreboard statistics builds. + +Fri Nov 11 11:06:31 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ACEXML/common/common.mpc: + * ace/ACE_Codecs_export.h: + * ace/Codecs.h: + * ace/ace.mwc: + * ace/ace_codecs_for_tao.mpc: + * apps/JAWS/server/server.mpc: + * apps/JAWS3/jaws3/jaws3.mpc: + * examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc: + * examples/Threads/Threads.mpc: + * examples/Web_Crawler/Web_Crawler.mpc: + * netsvcs/clients/Naming/Client/Client.mpc: + * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.mpc: + * netsvcs/lib/lib.mpc: + * performance-tests/Misc/Misc.mpc: + * performance-tests/SCTP/SCTP.mpc: + * performance-tests/Server_Concurrency/Leader_Follower/Svr_Conc_Leader_Follower.mpc: + * performance-tests/Server_Concurrency/Queue_Based_Workers/Svr_Conc_Queue_Based_Workers.mpc: + * performance-tests/Synch-Benchmarks/Base_Test/Synch_Benchmarks_Base_Test.mpc: + * performance-tests/Synch-Benchmarks/Perf_Test/Synch_Benchmarks_Perf_Test.mpc: + * performance-tests/TCP/TCP.mpc: + * performance-tests/UDP/UDP.mpc: + * tests/tests.mpc: + + Addressed some "ace_for_tao" link-time failures. + +Fri Nov 11 09:21:53 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * include/makeinclude/wrapper_macros.GNU: + + Added missing "ace_for_tao" support. Addresses "ace_for_tao" + build errors in GNU Make based builds. + +Fri Nov 11 12:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_sunos5_g++.GNU: + Removed very old note + +Thu Nov 10 09:05:58 2005 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/templates/gnu.mpd: + + Added a template variable, libname_prefix, that can be set to + prefix all library names (sharedname, staticname and libs). Note + that lit_libs and pure_libs are not affected. + +Thu Nov 10 07:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.1.h: + Added ACE_HAS_SNPRINTF + +Wed Nov 9 19:44:36 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/acecodecslib_for_tao.mpb: + * ace/ace_codecs_for_tao.mpc: + * ace/QoS/qos.mpc: + * ACEXML/common/common.mpc: + + Fixed "ace_for_tao" subset related unresolved symbol errors. + +Wed Nov 9 17:05:59 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ace/config-macosx-tiger.h + + Corrected wchar support for Tiger. + + * include/makeinclude/platform_macosx_tiger_gcc3.3.GNU + * include/makeinclude/platform_macosx_tiger_gcc4.GNU + + Removed the versioned platform_macros because there were no + significant changes needed to support GCC3.3 on OS X. + + * include/makeinclude/platform_macosx_tiger.GNU + + Merged platform_macros file. Set CC and CXX to the desired + compiler if you wish to use the non-default compiler. + +Tue Nov 8 15:27:25 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ace/config-macosx-tiger.h + + Fixed size of long double for Mac OS X Tiger with GCC 3.3. + +Mon Nov 7 16:27:12 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/csd_framework.mpb + * bin/MakeProjectCreator/config/notifytest.mpb + * bin/MakeProjectCreator/config/rteventlogadmin.mpb + + Fixes for linking errors on OS X. + +Mon Nov 7 15:24:30 2005 William Otte <wotte@dre.vanderbilt.edu> + + * include/makeinclude/platform_macosx_tiger_gcc3.3.GNU + + Added a macros file for Tiger with GCC 3.3. + +Mon Nov 7 14:45:05 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * ace/Stats.h: + + Made private section of class ACE_Stats protected, for + convenient subclassing. + +Mon Nov 7 09:21:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/compiler.bor: + Added -L$(BCB)\lib\psdk always to the linker flags + +Sun Nov 6 21:19:44 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * ace/ace_sockets_for_tao.mpc: + + Fixed another bug with the MPC file. + + * protocols/ace/HTBP/HTBP.mpc: + + Reverted the avoids declaration. + +Sun Nov 6 21:02:17 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * ace/ace_for_tao.mpc: + * ace/ace_threads_for_tao.mpc: + * protocols/ace/HTBP/HTBP.mpc: + * protocols/ace/RMCast/RMCast.mpc: + * protocols/ace/TMCast/TMCast.mpc: + * protocols/examples/RMCast/Send_Msg/Send_Msg.mpc: + * protocols/tests/RMCast/RMCast.mpc: + + Fixed subtle errors with ace_for_tao builds. + +Sat Nov 5 13:28:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/APG/Shared_Memory/Hash_Map.cpp: + Replaced MAP with HASH_MAP to fix compile problems with VxWorks 6.1 + +Sat Nov 5 13:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Cache_Map_Manager_T.{h,cpp,inl}: + Replaced MAP_TYPE with CMAP_TYPE, MAP_TYPE is also used on some + platforms already + + * include/makeinclude/compiler.bor: + Fixed typo + +Fri Nov 4 09:18:17 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Dev_Poll_Reactor.h (Token_Guard): + + Fixed incorrect unimplemented constructor related error that was + introduced when removing ACE_UNIMPLEMENTED_FUNC macro usage. + +Fri Nov 4 14:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/compiler.bor: + Make sure that we always add $(BCB)\lib to the linker flags + +Fri Nov 4 12:28:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Lazy_Map_Manager_Test.cpp: + Changed MAP to LAZY_MAP + + * tests/Map_Test.cpp: + Changed MAP to TEST_MAP + +Fri Nov 4 12:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Cache_Map_Manager_T.{h,cpp,inl}: + Changed MAP to MAP_TYPE to resolve conflicts with VxWorks 6.1 + MAP define + +Fri Nov 4 11:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_unistd.inl: + For VxWorks 6.1 also include os_string.h to get swab + +Fri Nov 4 10:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Capabilities.{h,cpp}: + Changed MAP to CAPABILITIES_MAP. VxWorks 6.1 defines the cpu + type MAP which results in a compile error + + * ace/os_include/sys/os_un.h: + Only define the struct sockaddr_un with VxWorks versions older + then 6.1 + +Fri Nov 4 10:33:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-vxworks6.1.h: + * include/makeinclude/platform_vxworks6.1.GNU: + New files for VxWorks 6.1. This is just a first draft version, a lot + of porting work has to be done + + * ace/OS_NS_stdlib.cpp: + Fixed variable not used warning with VxWorks 6.1 + +Fri Nov 4 10:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_Thread.h: + Only define VX_FP_TASK when it is not defined yet + +Fri Nov 4 08:50:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Global_Macros.h: + Removed check for BCB3, that is ancient + +Thu Nov 3 12:34:30 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Service_Config.h (ACE_DYNAMIC_SERVICE_DIRECTIVE): Added a + missing '\' at near the end of a macro. Thanks to Lothar + Werzinger for this fix. + +Thu Nov 3 09:16:23 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Activation_Queue.h: + * ace/Atomic_Op.h: + * ace/Condition_Recursive_Thread_Mutex.h: + * ace/DLL.h: + * ace/DLL_Manager.h: + * ace/Dev_Poll_Reactor.h: + * ace/Framework_Component.h: + * ace/Get_Opt.h: + * ace/Mem_Map.h: + * ace/Message_Queue.cpp: + * ace/Message_Queue.h: + * ace/Method_Request.h: + * ace/Null_Mutex.h: + * ace/PI_Malloc.h: + * ace/Process.h: + * ace/Read_Buffer.h: + * ace/Select_Reactor.h: + * ace/Stats.h: + * ace/TP_Reactor.h: + + Removed unnecessary uses of ACE_UNIMPLEMENTED_FUNC macro. It is + only meant to be used for private unimplemented member functions + in class templates. + + * ace/Versioned_Namespace.h: + + Clarified preprocessor error message. + +Wed Nov 2 09:19:04 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/ACE.h (strdelete): + + Declare wchar version of ACE::strdelete() with + ACE_NAMESPACE_INLINE_FUNCTION macro since it is now inlined. + Addresses duplicate definition errors in wchar-enabled builds. + +Wed Nov 2 08:51:29 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * ace/CDR_Stream.h: + * ace/CDR_Stream.inl: + + Removed ACE_OutputCDR_Auto_Reset. Firstly + ACE_Utils::Auto_Functor should be used and secondly such classes + don't serve any purpose beyond Output_CDR. + +Tue Nov 1 22:19:03 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Makefile.am (nobase_include_HEADERS): + + Added missing "Versioned_Namespace.h" header. + + * ace/Versioned_Namespace.h: + + Clarified preprocessor error message. + +Tue Nov 1 14:28:51 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ace/config-macosx-tiger.h + + Some changes to fix compile errors in JAWS. Thanks to Johnny for + suggesting a fix. + +Tue Nov 1 15:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ACE-INSTALL.html: + Updated supported platforms + +Tue Nov 1 12:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + * bin/tao_other_tests.lst: + Moved Bug_2074_Regression to orbsvcs + +Mon Oct 31 13:38:07 MST 2005 Yan Dai <dai_y@ociweb.com> + + * bin/msvc_static_order.lst: + + Moved the TAO/tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Lib + before TAO/tests/Collocation/Collocation_Test_Stub. This should + resolve the TP_Foo_* libs compilation errors on static build. + +Mon Oct 31 09:54:18 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Makefile.am: + Removed Synch_Options.inl and TSS_Adapter.inl. + +Mon Oct 31 07:55:57 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Registry.cpp (STRING_SEPARATOR): + * ace/Registry.h (STRING_SEPARATOR): + + Reintroduced this string as a static class member. It is also + used outside of the ACE_Registry class in + ACE_Registry_Name_Space. Fixes an unresolved symbol error in + Borland builds. + +Mon Oct 31 14:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Makefile.am: + Removed Service_Manager.inl + +Mon Oct 31 13:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added Bug_2084_Regression + +Mon Oct 31 12:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added TAO/tests/Bug_2074_Regression/run_test.pl to the list + +Mon Oct 31 10:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/pre.h: + Reverted change below, makes it much easier to use ACE from + application projects + Fri Oct 28 10:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + +Mon Oct 31 09:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/gethrtime.cpp: + * ace/Base_Thread_Adapter.cpp: + Fixed fuzz errors + +Mon Oct 31 08:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/msvc_static_order.lst: + Moved CSD test lib down, let us see the impact on the vc build + +Mon Oct 31 06:55:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/UPIPE_Connector.cpp: + Added missing include for Linux builds + +Sun Oct 30 08:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Task.h: + Fixed gcc4 compile error + +Fri Oct 28 16:07:45 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/SSL/SSL_Context.cpp (ACE_SSL_locking_callback): + (ACE_SSL_thread_id): + + Removed duplicate definitions. + +Fri Oct 28 16:42:12 2005 Don Busch <busch_d@ociweb.com> + + * bin/MakeProjectCreator/config/messaging_optional.mpb + + Add "after += Messaging" to ensure that CosNaming_Serv and + CosEvent_Serv always build after Messaging + +Fri Oct 28 14:28:13 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Map_Manager.h: + + Include "ace/Default_Constants.h" to pull in + ACE_DEFAULT_MAP_SIZE definition. + +Fri Oct 28 10:42:32 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Copy_Disabled.cpp + * ace/Copy_Disabled.h: + * ace/Makefile.am (libACE_la_SOURCES): + * ace/ace.mpc: + + Reinstituted Copy_Disabled.cpp. Addresses unresolved symbol + link-time errors. + +Fri Oct 28 09:23:11 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Reverse_Lock_T.h (ACE_Acquire_Method): + + Fixed typo. + +Fri Oct 28 14:05:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Select_Reactor_Base.cpp: + Fixed possible unitialized warning + +Fri Oct 28 10:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/pre.h: + Removed several arguments for the option push, these are passed + from the commandline already + +Fri Oct 28 07:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-linux-common.h: + Added ACE_HAS_UALARM + +Fri Oct 28 00:01:06 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/ACE.cpp: + * ace/ACE.h: + * ace/ACE.inl: + * ace/ACE_crc32.cpp: + * ace/ACE_crc_ccitt.cpp: + * ace/ARGV.cpp: + * ace/ARGV.h: + * ace/ARGV.inl: + * ace/ATM_Acceptor.cpp: + * ace/ATM_Acceptor.h: + * ace/ATM_Acceptor.inl: + * ace/ATM_Addr.cpp: + * ace/ATM_Addr.h: + * ace/ATM_Addr.inl: + * ace/ATM_Connector.cpp: + * ace/ATM_Connector.h: + * ace/ATM_Connector.inl: + * ace/ATM_Params.cpp: + * ace/ATM_Params.h: + * ace/ATM_Params.inl: + * ace/ATM_QoS.cpp: + * ace/ATM_QoS.h: + * ace/ATM_QoS.inl: + * ace/ATM_Stream.cpp: + * ace/ATM_Stream.h: + * ace/ATM_Stream.inl: + * ace/Acceptor.cpp: + * ace/Acceptor.h: + * ace/Activation_Queue.cpp: + * ace/Activation_Queue.h: + * ace/Activation_Queue.inl: + * ace/Active_Map_Manager.cpp: + * ace/Active_Map_Manager.h: + * ace/Active_Map_Manager.inl: + * ace/Active_Map_Manager_T.cpp: + * ace/Active_Map_Manager_T.h: + * ace/Active_Map_Manager_T.inl: + * ace/Addr.cpp: + * ace/Addr.h: + * ace/Addr.inl: + * ace/Arg_Shifter.cpp: + * ace/Arg_Shifter.h: + * ace/Argv_Type_Converter.cpp: + * ace/Argv_Type_Converter.h: + * ace/Argv_Type_Converter.inl: + * ace/Array_Base.cpp: + * ace/Array_Base.h: + * ace/Array_Base.inl: + * ace/Array_Map.cpp: + * ace/Array_Map.h: + * ace/Array_Map.inl: + * ace/Asynch_Acceptor.cpp: + * ace/Asynch_Acceptor.h: + * ace/Asynch_Connector.cpp: + * ace/Asynch_IO.cpp: + * ace/Asynch_IO.h: + * ace/Asynch_IO_Impl.cpp: + * ace/Asynch_IO_Impl.h: + * ace/Asynch_IO_Impl.inl: + * ace/Asynch_Pseudo_Task.cpp: + * ace/Asynch_Pseudo_Task.h: + * ace/Atomic_Op.cpp: + * ace/Atomic_Op.h: + * ace/Atomic_Op.inl: + * ace/Atomic_Op_T.cpp: + * ace/Atomic_Op_T.h: + * ace/Atomic_Op_T.inl: + * ace/Auto_Event.cpp: + * ace/Auto_Event.h: + * ace/Auto_Event.inl: + * ace/Auto_Functor.cpp: + * ace/Auto_Functor.h: + * ace/Auto_Functor.inl: + * ace/Auto_IncDec_T.cpp: + * ace/Auto_IncDec_T.h: + * ace/Auto_IncDec_T.inl: + * ace/Auto_Ptr.cpp: + * ace/Auto_Ptr.h: + * ace/Auto_Ptr.inl: + * ace/Barrier.cpp: + * ace/Barrier.h: + * ace/Barrier.inl: + * ace/Base_Thread_Adapter.cpp: + * ace/Base_Thread_Adapter.h: + * ace/Base_Thread_Adapter.inl: + * ace/Based_Pointer_Repository.cpp: + * ace/Based_Pointer_Repository.h: + * ace/Based_Pointer_T.cpp: + * ace/Based_Pointer_T.h: + * ace/Based_Pointer_T.inl: + * ace/Basic_Stats.cpp: + * ace/Basic_Stats.h: + * ace/Basic_Stats.inl: + * ace/Basic_Types.cpp: + * ace/Basic_Types.h: + * ace/Basic_Types.inl: + * ace/Bound_Ptr.h: + * ace/Bound_Ptr.inl: + * ace/CDR_Base.cpp: + * ace/CDR_Base.h: + * ace/CDR_Base.inl: + * ace/CDR_Size.cpp: + * ace/CDR_Size.h: + * ace/CDR_Size.inl: + * ace/CDR_Stream.cpp: + * ace/CE_Screen_Output.cpp: + * ace/CE_Screen_Output.h: + * ace/Cache_Map_Manager_T.cpp: + * ace/Cache_Map_Manager_T.h: + * ace/Cache_Map_Manager_T.inl: + * ace/Cached_Connect_Strategy_T.cpp: + * ace/Cached_Connect_Strategy_T.h: + * ace/Caching_Strategies_T.cpp: + * ace/Caching_Strategies_T.h: + * ace/Caching_Strategies_T.inl: + * ace/Caching_Utility_T.cpp: + * ace/Caching_Utility_T.h: + * ace/Capabilities.cpp: + * ace/Capabilities.h: + * ace/Capabilities.inl: + * ace/Cleanup.cpp: + * ace/Cleanup.h: + * ace/Cleanup.inl: + * ace/Cleanup_Strategies_T.cpp: + * ace/Codecs.cpp: + * ace/Codecs.h: + * ace/Codeset_IBM1047.cpp: + * ace/Codeset_IBM1047.h: + * ace/Codeset_Registry.inl: + * ace/Condition_Recursive_Thread_Mutex.cpp: + * ace/Condition_Recursive_Thread_Mutex.h: + * ace/Condition_T.cpp: + * ace/Condition_T.h: + * ace/Condition_T.inl: + * ace/Condition_Thread_Mutex.cpp: + * ace/Condition_Thread_Mutex.h: + * ace/Condition_Thread_Mutex.inl: + * ace/Configuration.cpp: + * ace/Configuration.h: + * ace/Configuration_Import_Export.cpp: + * ace/Configuration_Import_Export.h: + * ace/Connection_Recycling_Strategy.cpp: + * ace/Connection_Recycling_Strategy.h: + * ace/Connector.cpp: + * ace/Connector.h: + * ace/Container_Instantiations.cpp: + * ace/Containers.cpp: + * ace/Containers.h: + * ace/Containers.inl: + * ace/Containers_T.cpp: + * ace/Containers_T.h: + * ace/Containers_T.inl: + * ace/Copy_Disabled.h: + * ace/Countdown_Time.cpp: + * ace/Countdown_Time.h: + * ace/DEV.cpp: + * ace/DEV.h: + * ace/DEV.inl: + * ace/DEV_Addr.cpp: + * ace/DEV_Addr.h: + * ace/DEV_Addr.inl: + * ace/DEV_Connector.cpp: + * ace/DEV_Connector.h: + * ace/DEV_Connector.inl: + * ace/DEV_IO.cpp: + * ace/DEV_IO.h: + * ace/DEV_IO.inl: + * ace/DLL.cpp: + * ace/DLL.h: + * ace/DLL_Manager.cpp: + * ace/DLL_Manager.h: + * ace/Date_Time.h: + * ace/Date_Time.inl: + * ace/Dev_Poll_Reactor.cpp: + * ace/Dev_Poll_Reactor.h: + * ace/Dev_Poll_Reactor.inl: + * ace/Dirent.h: + * ace/Dirent.inl: + * ace/Dirent_Selector.cpp: + * ace/Dirent_Selector.h: + * ace/Dirent_Selector.inl: + * ace/Dump.cpp: + * ace/Dump.h: + * ace/Dump_T.cpp: + * ace/Dump_T.h: + * ace/Dynamic.cpp: + * ace/Dynamic.h: + * ace/Dynamic.inl: + * ace/Dynamic_Service.cpp: + * ace/Dynamic_Service.h: + * ace/Dynamic_Service.inl: + * ace/Dynamic_Service_Base.cpp: + * ace/Dynamic_Service_Base.h: + * ace/Env_Value_T.cpp: + * ace/Env_Value_T.h: + * ace/Env_Value_T.inl: + * ace/Event.cpp: + * ace/Event.h: + * ace/Event.inl: + * ace/Event_Handler.cpp: + * ace/Event_Handler.h: + * ace/Event_Handler.inl: + * ace/Event_Handler_T.cpp: + * ace/Event_Handler_T.h: + * ace/Event_Handler_T.inl: + * ace/FIFO.cpp: + * ace/FIFO.h: + * ace/FIFO.inl: + * ace/FIFO_Recv.cpp: + * ace/FIFO_Recv.h: + * ace/FIFO_Recv.inl: + * ace/FIFO_Recv_Msg.cpp: + * ace/FIFO_Recv_Msg.h: + * ace/FIFO_Recv_Msg.inl: + * ace/FIFO_Send.cpp: + * ace/FIFO_Send.h: + * ace/FIFO_Send.inl: + * ace/FIFO_Send_Msg.cpp: + * ace/FIFO_Send_Msg.h: + * ace/FIFO_Send_Msg.inl: + * ace/FILE.cpp: + * ace/FILE.h: + * ace/FILE.inl: + * ace/FILE_Addr.cpp: + * ace/FILE_Addr.h: + * ace/FILE_Addr.inl: + * ace/FILE_Connector.cpp: + * ace/FILE_Connector.h: + * ace/FILE_Connector.inl: + * ace/FILE_IO.cpp: + * ace/FILE_IO.h: + * ace/FILE_IO.inl: + * ace/File_Lock.cpp: + * ace/File_Lock.h: + * ace/File_Lock.inl: + * ace/Filecache.cpp: + * ace/Filecache.h: + * ace/FlReactor.cpp: + * ace/FlReactor.h: + * ace/Flag_Manip.cpp: + * ace/Flag_Manip.h: + * ace/Flag_Manip.inl: + * ace/Framework_Component.cpp: + * ace/Framework_Component.h: + * ace/Framework_Component.inl: + * ace/Framework_Component_T.cpp: + * ace/Framework_Component_T.h: + * ace/Free_List.cpp: + * ace/Free_List.h: + * ace/Functor.cpp: + * ace/Functor.h: + * ace/Functor.inl: + * ace/Functor_String.h: + * ace/Functor_String.inl: + * ace/Functor_T.cpp: + * ace/Functor_T.h: + * ace/Functor_T.inl: + * ace/Future.cpp: + * ace/Future.h: + * ace/Future_Set.cpp: + * ace/Future_Set.h: + * ace/Get_Opt.cpp: + * ace/Get_Opt.h: + * ace/Get_Opt.inl: + * ace/Global_Macros.h: + * ace/Guard_T.cpp: + * ace/Guard_T.h: + * ace/Guard_T.inl: + * ace/Handle_Gobbler.h: + * ace/Handle_Gobbler.inl: + * ace/Handle_Ops.cpp: + * ace/Handle_Ops.h: + * ace/Handle_Set.cpp: + * ace/Handle_Set.h: + * ace/Handle_Set.inl: + * ace/Hash_Cache_Map_Manager_T.cpp: + * ace/Hash_Cache_Map_Manager_T.h: + * ace/Hash_Cache_Map_Manager_T.inl: + * ace/Hash_Map_Manager.cpp: + * ace/Hash_Map_Manager.h: + * ace/Hash_Map_Manager_T.cpp: + * ace/Hash_Map_Manager_T.h: + * ace/Hash_Map_Manager_T.inl: + * ace/Hash_Map_With_Allocator_T.cpp: + * ace/Hash_Map_With_Allocator_T.h: + * ace/Hash_Map_With_Allocator_T.inl: + * ace/Hashable.cpp: + * ace/Hashable.h: + * ace/Hashable.inl: + * ace/High_Res_Timer.cpp: + * ace/High_Res_Timer.h: + * ace/High_Res_Timer.inl: + * ace/ICMP_Socket.cpp: + * ace/ICMP_Socket.h: + * ace/ICMP_Socket.inl: + * ace/INET_Addr.cpp: + * ace/INET_Addr.h: + * ace/INET_Addr.inl: + * ace/IOStream.cpp: + * ace/IOStream.h: + * ace/IOStream_T.cpp: + * ace/IOStream_T.h: + * ace/IOStream_T.inl: + * ace/IO_Cntl_Msg.cpp: + * ace/IO_Cntl_Msg.h: + * ace/IO_Cntl_Msg.inl: + * ace/IO_SAP.cpp: + * ace/IO_SAP.h: + * ace/IO_SAP.inl: + * ace/IPC_SAP.cpp: + * ace/IPC_SAP.h: + * ace/IPC_SAP.inl: + * ace/If_Then_Else.h: + * ace/Init_ACE.cpp: + * ace/Init_ACE.h: + * ace/Intrusive_List.cpp: + * ace/Intrusive_List.h: + * ace/Intrusive_List.inl: + * ace/Intrusive_List_Node.cpp: + * ace/Intrusive_List_Node.h: + * ace/Intrusive_List_Node.inl: + * ace/LOCK_SOCK_Acceptor.cpp: + * ace/LOCK_SOCK_Acceptor.h: + * ace/LSOCK.cpp: + * ace/LSOCK.h: + * ace/LSOCK.inl: + * ace/LSOCK_Acceptor.cpp: + * ace/LSOCK_Acceptor.h: + * ace/LSOCK_CODgram.cpp: + * ace/LSOCK_CODgram.h: + * ace/LSOCK_CODgram.inl: + * ace/LSOCK_Connector.cpp: + * ace/LSOCK_Connector.h: + * ace/LSOCK_Connector.inl: + * ace/LSOCK_Dgram.cpp: + * ace/LSOCK_Dgram.h: + * ace/LSOCK_Dgram.inl: + * ace/LSOCK_Stream.cpp: + * ace/LSOCK_Stream.h: + * ace/LSOCK_Stream.inl: + * ace/Lib_Find.cpp: + * ace/Lib_Find.h: + * ace/Local_Memory_Pool.cpp: + * ace/Local_Memory_Pool.h: + * ace/Local_Name_Space.cpp: + * ace/Local_Name_Space.h: + * ace/Local_Name_Space_T.cpp: + * ace/Local_Name_Space_T.h: + * ace/Local_Tokens.cpp: + * ace/Local_Tokens.h: + * ace/Local_Tokens.inl: + * ace/Lock.cpp: + * ace/Lock.h: + * ace/Lock.inl: + * ace/Lock_Adapter_T.cpp: + * ace/Lock_Adapter_T.h: + * ace/Lock_Adapter_T.inl: + * ace/Log_Msg.cpp: + * ace/Log_Msg.h: + * ace/Log_Msg_Backend.cpp: + * ace/Log_Msg_Backend.h: + * ace/Log_Msg_Callback.cpp: + * ace/Log_Msg_Callback.h: + * ace/Log_Msg_IPC.cpp: + * ace/Log_Msg_IPC.h: + * ace/Log_Msg_NT_Event_Log.cpp: + * ace/Log_Msg_NT_Event_Log.h: + * ace/Log_Msg_UNIX_Syslog.cpp: + * ace/Log_Msg_UNIX_Syslog.h: + * ace/Log_Priority.h: + * ace/Log_Record.cpp: + * ace/Log_Record.h: + * ace/Log_Record.inl: + * ace/Logging_Strategy.cpp: + * ace/Logging_Strategy.h: + * ace/MEM_Acceptor.cpp: + * ace/MEM_Acceptor.h: + * ace/MEM_Acceptor.inl: + * ace/MEM_Addr.cpp: + * ace/MEM_Addr.h: + * ace/MEM_Addr.inl: + * ace/MEM_Connector.cpp: + * ace/MEM_Connector.h: + * ace/MEM_Connector.inl: + * ace/MEM_IO.cpp: + * ace/MEM_IO.h: + * ace/MEM_IO.inl: + * ace/MEM_SAP.cpp: + * ace/MEM_SAP.h: + * ace/MEM_SAP.inl: + * ace/MEM_Stream.cpp: + * ace/MEM_Stream.h: + * ace/MEM_Stream.inl: + * ace/MMAP_Memory_Pool.cpp: + * ace/MMAP_Memory_Pool.h: + * ace/Makefile.am: + * ace/Malloc.cpp: + * ace/Malloc.h: + * ace/Malloc.inl: + * ace/Malloc_Allocator.cpp: + * ace/Malloc_Allocator.inl: + * ace/Malloc_Base.h: + * ace/Malloc_Instantiations.cpp: + * ace/Malloc_T.cpp: + * ace/Malloc_T.h: + * ace/Malloc_T.inl: + * ace/Managed_Object.cpp: + * ace/Managed_Object.h: + * ace/Managed_Object.inl: + * ace/Manual_Event.cpp: + * ace/Manual_Event.h: + * ace/Manual_Event.inl: + * ace/Map.cpp: + * ace/Map.h: + * ace/Map_Manager.cpp: + * ace/Map_Manager.h: + * ace/Map_Manager.inl: + * ace/Map_T.cpp: + * ace/Map_T.h: + * ace/Map_T.inl: + * ace/Mem_Map.cpp: + * ace/Mem_Map.h: + * ace/Mem_Map.inl: + * ace/Message_Block.cpp: + * ace/Message_Block.h: + * ace/Message_Block.inl: + * ace/Message_Block_T.cpp: + * ace/Message_Block_T.h: + * ace/Message_Block_T.inl: + * ace/Message_Queue.cpp: + * ace/Message_Queue.h: + * ace/Message_Queue.inl: + * ace/Message_Queue_T.cpp: + * ace/Message_Queue_T.h: + * ace/Method_Object.h: + * ace/Method_Request.cpp: + * ace/Method_Request.h: + * ace/Metrics_Cache_T.cpp: + * ace/Metrics_Cache_T.h: + * ace/Metrics_Cache_T.inl: + * ace/Min_Max.h: + * ace/Module.cpp: + * ace/Module.h: + * ace/Module.inl: + * ace/Msg_WFMO_Reactor.cpp: + * ace/Msg_WFMO_Reactor.h: + * ace/Msg_WFMO_Reactor.inl: + * ace/Multihomed_INET_Addr.cpp: + * ace/Multihomed_INET_Addr.h: + * ace/Multihomed_INET_Addr.inl: + * ace/Multiplexor.h: + * ace/Multiplexor.inl: + * ace/Mutex.cpp: + * ace/Mutex.h: + * ace/Mutex.inl: + * ace/NT_Service.cpp: + * ace/NT_Service.h: + * ace/NT_Service.inl: + * ace/Name_Proxy.cpp: + * ace/Name_Proxy.h: + * ace/Name_Request_Reply.cpp: + * ace/Name_Request_Reply.h: + * ace/Name_Space.cpp: + * ace/Name_Space.h: + * ace/Naming_Context.cpp: + * ace/Naming_Context.h: + * ace/Node.cpp: + * ace/Node.h: + * ace/Notification_Strategy.cpp: + * ace/Notification_Strategy.h: + * ace/Notification_Strategy.inl: + * ace/Null_Barrier.h: + * ace/Null_Condition.h: + * ace/Null_Mutex.h: + * ace/Null_Semaphore.h: + * ace/OS.h: + * ace/OS_Errno.cpp: + * ace/OS_Errno.h: + * ace/OS_Errno.inl: + * ace/OS_Log_Msg_Attributes.h: + * ace/OS_Log_Msg_Attributes.inl: + * ace/OS_NS_Thread.cpp: + * ace/OS_NS_Thread.h: + * ace/OS_NS_Thread.inl: + * ace/OS_NS_arpa_inet.cpp: + * ace/OS_NS_arpa_inet.h: + * ace/OS_NS_arpa_inet.inl: + * ace/OS_NS_ctype.h: + * ace/OS_NS_ctype.inl: + * ace/OS_NS_dirent.cpp: + * ace/OS_NS_dirent.h: + * ace/OS_NS_dirent.inl: + * ace/OS_NS_dlfcn.cpp: + * ace/OS_NS_dlfcn.h: + * ace/OS_NS_dlfcn.inl: + * ace/OS_NS_errno.h: + * ace/OS_NS_errno.inl: + * ace/OS_NS_fcntl.cpp: + * ace/OS_NS_fcntl.h: + * ace/OS_NS_fcntl.inl: + * ace/OS_NS_math.cpp: + * ace/OS_NS_math.h: + * ace/OS_NS_math.inl: + * ace/OS_NS_netdb.cpp: + * ace/OS_NS_netdb.h: + * ace/OS_NS_netdb.inl: + * ace/OS_NS_poll.cpp: + * ace/OS_NS_poll.h: + * ace/OS_NS_poll.inl: + * ace/OS_NS_pwd.cpp: + * ace/OS_NS_pwd.h: + * ace/OS_NS_pwd.inl: + * ace/OS_NS_regex.cpp: + * ace/OS_NS_regex.h: + * ace/OS_NS_regex.inl: + * ace/OS_NS_signal.cpp: + * ace/OS_NS_signal.h: + * ace/OS_NS_signal.inl: + * ace/OS_NS_stdio.cpp: + * ace/OS_NS_stdio.h: + * ace/OS_NS_stdio.inl: + * ace/OS_NS_stdlib.cpp: + * ace/OS_NS_stdlib.h: + * ace/OS_NS_stdlib.inl: + * ace/OS_NS_string.cpp: + * ace/OS_NS_string.h: + * ace/OS_NS_string.inl: + * ace/OS_NS_strings.cpp: + * ace/OS_NS_strings.h: + * ace/OS_NS_strings.inl: + * ace/OS_NS_stropts.cpp: + * ace/OS_NS_stropts.h: + * ace/OS_NS_stropts.inl: + * ace/OS_NS_sys_mman.cpp: + * ace/OS_NS_sys_mman.h: + * ace/OS_NS_sys_mman.inl: + * ace/OS_NS_sys_msg.cpp: + * ace/OS_NS_sys_msg.inl: + * ace/OS_NS_sys_resource.cpp: + * ace/OS_NS_sys_resource.h: + * ace/OS_NS_sys_resource.inl: + * ace/OS_NS_sys_select.cpp: + * ace/OS_NS_sys_select.h: + * ace/OS_NS_sys_select.inl: + * ace/OS_NS_sys_shm.cpp: + * ace/OS_NS_sys_shm.h: + * ace/OS_NS_sys_shm.inl: + * ace/OS_NS_sys_socket.cpp: + * ace/OS_NS_sys_socket.h: + * ace/OS_NS_sys_socket.inl: + * ace/OS_NS_sys_stat.cpp: + * ace/OS_NS_sys_stat.h: + * ace/OS_NS_sys_stat.inl: + * ace/OS_NS_sys_time.cpp: + * ace/OS_NS_sys_time.h: + * ace/OS_NS_sys_time.inl: + * ace/OS_NS_sys_uio.cpp: + * ace/OS_NS_sys_uio.h: + * ace/OS_NS_sys_uio.inl: + * ace/OS_NS_sys_utsname.cpp: + * ace/OS_NS_sys_utsname.h: + * ace/OS_NS_sys_utsname.inl: + * ace/OS_NS_sys_wait.cpp: + * ace/OS_NS_sys_wait.h: + * ace/OS_NS_sys_wait.inl: + * ace/OS_NS_time.cpp: + * ace/OS_NS_time.h: + * ace/OS_NS_time.inl: + * ace/OS_NS_unistd.cpp: + * ace/OS_NS_unistd.h: + * ace/OS_NS_unistd.inl: + * ace/OS_NS_wchar.cpp: + * ace/OS_NS_wchar.h: + * ace/OS_NS_wchar.inl: + * ace/OS_QoS.cpp: + * ace/OS_QoS.h: + * ace/OS_TLI.h: + * ace/OS_TLI.inl: + * ace/OS_Thread_Adapter.cpp: + * ace/OS_Thread_Adapter.h: + * ace/OS_main.cpp: + * ace/OS_main.h: + * ace/PI_Malloc.cpp: + * ace/PI_Malloc.h: + * ace/PI_Malloc.inl: + * ace/POSIX_Asynch_IO.cpp: + * ace/POSIX_Asynch_IO.h: + * ace/POSIX_CB_Proactor.cpp: + * ace/POSIX_CB_Proactor.h: + * ace/POSIX_Proactor.cpp: + * ace/POSIX_Proactor.h: + * ace/POSIX_Proactor.inl: + * ace/Pagefile_Memory_Pool.cpp: + * ace/Pagefile_Memory_Pool.h: + * ace/Pagefile_Memory_Pool.inl: + * ace/Pair.cpp: + * ace/Pair.h: + * ace/Pair_T.cpp: + * ace/Pair_T.h: + * ace/Pair_T.inl: + * ace/Parse_Node.cpp: + * ace/Parse_Node.h: + * ace/Ping_Socket.cpp: + * ace/Ping_Socket.h: + * ace/Ping_Socket.inl: + * ace/Pipe.cpp: + * ace/Pipe.h: + * ace/Pipe.inl: + * ace/Priority_Reactor.cpp: + * ace/Priority_Reactor.h: + * ace/Proactor.cpp: + * ace/Proactor.h: + * ace/Proactor.inl: + * ace/Proactor_Impl.cpp: + * ace/Proactor_Impl.h: + * ace/Process.cpp: + * ace/Process.h: + * ace/Process.inl: + * ace/Process_Manager.cpp: + * ace/Process_Manager.h: + * ace/Process_Manager.inl: + * ace/Process_Mutex.cpp: + * ace/Process_Mutex.h: + * ace/Process_Mutex.inl: + * ace/Process_Semaphore.cpp: + * ace/Process_Semaphore.h: + * ace/Process_Semaphore.inl: + * ace/Profile_Timer.cpp: + * ace/Profile_Timer.h: + * ace/Profile_Timer.inl: + * ace/QtReactor.cpp: + * ace/QtReactor.h: + * ace/RB_Tree.cpp: + * ace/RB_Tree.h: + * ace/RB_Tree.inl: + * ace/RW_Mutex.cpp: + * ace/RW_Mutex.h: + * ace/RW_Mutex.inl: + * ace/RW_Process_Mutex.cpp: + * ace/RW_Process_Mutex.h: + * ace/RW_Process_Mutex.inl: + * ace/RW_Thread_Mutex.cpp: + * ace/RW_Thread_Mutex.h: + * ace/RW_Thread_Mutex.inl: + * ace/Reactor.cpp: + * ace/Reactor.h: + * ace/Reactor.inl: + * ace/Reactor_Impl.cpp: + * ace/Reactor_Impl.h: + * ace/Reactor_Notification_Strategy.cpp: + * ace/Reactor_Notification_Strategy.h: + * ace/Reactor_Notification_Strategy.inl: + * ace/Reactor_Timer_Interface.cpp: + * ace/Reactor_Timer_Interface.h: + * ace/Reactor_Token_T.cpp: + * ace/Reactor_Token_T.h: + * ace/Read_Buffer.cpp: + * ace/Read_Buffer.h: + * ace/Read_Buffer.inl: + * ace/Recursive_Thread_Mutex.cpp: + * ace/Recursive_Thread_Mutex.h: + * ace/Recursive_Thread_Mutex.inl: + * ace/Recyclable.cpp: + * ace/Recyclable.h: + * ace/Recyclable.inl: + * ace/Refcountable.cpp: + * ace/Refcountable.h: + * ace/Refcountable.inl: + * ace/Refcounted_Auto_Ptr.cpp: + * ace/Refcounted_Auto_Ptr.h: + * ace/Refcounted_Auto_Ptr.inl: + * ace/Registry.cpp: + * ace/Registry.h: + * ace/Registry_Name_Space.cpp: + * ace/Registry_Name_Space.h: + * ace/Remote_Name_Space.cpp: + * ace/Remote_Name_Space.h: + * ace/Remote_Tokens.cpp: + * ace/Remote_Tokens.h: + * ace/Remote_Tokens.inl: + * ace/Reverse_Lock_T.cpp: + * ace/Reverse_Lock_T.h: + * ace/Reverse_Lock_T.inl: + * ace/SOCK.cpp: + * ace/SOCK.h: + * ace/SOCK.inl: + * ace/SOCK_Acceptor.cpp: + * ace/SOCK_Acceptor.h: + * ace/SOCK_Acceptor.inl: + * ace/SOCK_CODgram.cpp: + * ace/SOCK_CODgram.h: + * ace/SOCK_CODgram.inl: + * ace/SOCK_Connector.cpp: + * ace/SOCK_Connector.h: + * ace/SOCK_Connector.inl: + * ace/SOCK_Dgram.cpp: + * ace/SOCK_Dgram.h: + * ace/SOCK_Dgram.inl: + * ace/SOCK_Dgram_Bcast.cpp: + * ace/SOCK_Dgram_Bcast.h: + * ace/SOCK_Dgram_Bcast.inl: + * ace/SOCK_IO.cpp: + * ace/SOCK_IO.h: + * ace/SOCK_IO.inl: + * ace/SOCK_SEQPACK_Acceptor.cpp: + * ace/SOCK_SEQPACK_Acceptor.h: + * ace/SOCK_SEQPACK_Acceptor.inl: + * ace/SOCK_SEQPACK_Association.cpp: + * ace/SOCK_SEQPACK_Association.h: + * ace/SOCK_SEQPACK_Association.inl: + * ace/SOCK_SEQPACK_Connector.cpp: + * ace/SOCK_SEQPACK_Connector.h: + * ace/SOCK_SEQPACK_Connector.inl: + * ace/SOCK_Stream.cpp: + * ace/SOCK_Stream.h: + * ace/SOCK_Stream.inl: + * ace/SPIPE.cpp: + * ace/SPIPE.h: + * ace/SPIPE.inl: + * ace/SPIPE_Acceptor.cpp: + * ace/SPIPE_Acceptor.h: + * ace/SPIPE_Addr.cpp: + * ace/SPIPE_Addr.h: + * ace/SPIPE_Addr.inl: + * ace/SPIPE_Connector.cpp: + * ace/SPIPE_Connector.h: + * ace/SPIPE_Connector.inl: + * ace/SPIPE_Stream.cpp: + * ace/SPIPE_Stream.inl: + * ace/SString.cpp: + * ace/SString.h: + * ace/SString.inl: + * ace/SStringfwd.h: + * ace/SUN_Proactor.cpp: + * ace/SUN_Proactor.h: + * ace/SV_Message.cpp: + * ace/SV_Message.h: + * ace/SV_Message.inl: + * ace/SV_Message_Queue.cpp: + * ace/SV_Message_Queue.h: + * ace/SV_Message_Queue.inl: + * ace/SV_Semaphore_Complex.cpp: + * ace/SV_Semaphore_Complex.h: + * ace/SV_Semaphore_Complex.inl: + * ace/SV_Semaphore_Simple.cpp: + * ace/SV_Semaphore_Simple.h: + * ace/SV_Semaphore_Simple.inl: + * ace/SV_Shared_Memory.cpp: + * ace/SV_Shared_Memory.h: + * ace/SV_Shared_Memory.inl: + * ace/Sample_History.cpp: + * ace/Sample_History.h: + * ace/Sample_History.inl: + * ace/Sbrk_Memory_Pool.cpp: + * ace/Sbrk_Memory_Pool.h: + * ace/Sched_Params.cpp: + * ace/Sched_Params.h: + * ace/Sched_Params.inl: + * ace/Select_Reactor.cpp: + * ace/Select_Reactor.h: + * ace/Select_Reactor_Base.cpp: + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_Base.inl: + * ace/Select_Reactor_T.cpp: + * ace/Select_Reactor_T.h: + * ace/Select_Reactor_T.inl: + * ace/Semaphore.cpp: + * ace/Semaphore.h: + * ace/Semaphore.inl: + * ace/Service_Config.cpp: + * ace/Service_Config.h: + * ace/Service_Config.inl: + * ace/Service_Manager.cpp: + * ace/Service_Manager.h: + * ace/Service_Manager.inl: + * ace/Service_Object.cpp: + * ace/Service_Object.h: + * ace/Service_Object.inl: + * ace/Service_Repository.cpp: + * ace/Service_Repository.h: + * ace/Service_Repository.inl: + * ace/Service_Templates.cpp: + * ace/Service_Types.cpp: + * ace/Service_Types.h: + * ace/Service_Types.inl: + * ace/Shared_Memory.cpp: + * ace/Shared_Memory.h: + * ace/Shared_Memory_MM.cpp: + * ace/Shared_Memory_MM.h: + * ace/Shared_Memory_MM.inl: + * ace/Shared_Memory_Pool.cpp: + * ace/Shared_Memory_Pool.h: + * ace/Shared_Memory_SV.cpp: + * ace/Shared_Memory_SV.h: + * ace/Shared_Memory_SV.inl: + * ace/Shared_Object.cpp: + * ace/Shared_Object.h: + * ace/Shared_Object.inl: + * ace/Signal.cpp: + * ace/Signal.h: + * ace/Signal.inl: + * ace/Singleton.cpp: + * ace/Singleton.h: + * ace/Singleton.inl: + * ace/Sock_Connect.cpp: + * ace/Sock_Connect.h: + * ace/Static_Object_Lock.h: + * ace/Stats.cpp: + * ace/Stats.h: + * ace/Stats.inl: + * ace/Strategies_T.cpp: + * ace/Strategies_T.h: + * ace/Strategies_T.inl: + * ace/Stream.cpp: + * ace/Stream.h: + * ace/Stream.inl: + * ace/Stream_Modules.cpp: + * ace/Stream_Modules.h: + * ace/String_Base.cpp: + * ace/String_Base.h: + * ace/String_Base.inl: + * ace/String_Base_Const.cpp: + * ace/String_Base_Const.h: + * ace/Svc_Conf.h: + * ace/Svc_Conf_Lexer_Guard.cpp: + * ace/Svc_Conf_Lexer_Guard.h: + * ace/Svc_Handler.cpp: + * ace/Svc_Handler.h: + * ace/Swap.cpp: + * ace/Swap.h: + * ace/Swap.inl: + * ace/Synch.cpp: + * ace/Synch_Options.cpp: + * ace/Synch_Options.h: + * ace/Synch_Options.inl: + * ace/Synch_T.cpp: + * ace/Synch_T.h: + * ace/Synch_Traits.h: + * ace/System_Time.cpp: + * ace/System_Time.h: + * ace/TLI.cpp: + * ace/TLI.h: + * ace/TLI.inl: + * ace/TLI_Acceptor.cpp: + * ace/TLI_Acceptor.h: + * ace/TLI_Connector.cpp: + * ace/TLI_Connector.h: + * ace/TLI_Connector.inl: + * ace/TLI_Stream.cpp: + * ace/TLI_Stream.h: + * ace/TLI_Stream.inl: + * ace/TP_Reactor.cpp: + * ace/TP_Reactor.h: + * ace/TP_Reactor.inl: + * ace/TSS_Adapter.cpp: + * ace/TSS_Adapter.h: + * ace/TSS_Adapter.inl: + * ace/TSS_T.cpp: + * ace/TSS_T.h: + * ace/TSS_T.inl: + * ace/TTY_IO.cpp: + * ace/TTY_IO.h: + * ace/Task.cpp: + * ace/Task.h: + * ace/Task.inl: + * ace/Task_Ex_T.cpp: + * ace/Task_Ex_T.h: + * ace/Task_Ex_T.inl: + * ace/Task_T.cpp: + * ace/Task_T.h: + * ace/Task_T.inl: + * ace/Template_Instantiations.cpp: + * ace/Test_and_Set.cpp: + * ace/Test_and_Set.h: + * ace/Thread.cpp: + * ace/Thread.h: + * ace/Thread.inl: + * ace/Thread_Adapter.cpp: + * ace/Thread_Adapter.h: + * ace/Thread_Adapter.inl: + * ace/Thread_Control.cpp: + * ace/Thread_Control.h: + * ace/Thread_Control.inl: + * ace/Thread_Exit.cpp: + * ace/Thread_Exit.h: + * ace/Thread_Hook.cpp: + * ace/Thread_Hook.h: + * ace/Thread_Manager.cpp: + * ace/Thread_Manager.h: + * ace/Thread_Manager.inl: + * ace/Thread_Mutex.cpp: + * ace/Thread_Mutex.h: + * ace/Thread_Mutex.inl: + * ace/Thread_Semaphore.cpp: + * ace/Thread_Semaphore.h: + * ace/Thread_Semaphore.inl: + * ace/Time_Request_Reply.cpp: + * ace/Time_Request_Reply.h: + * ace/Time_Value.cpp: + * ace/Time_Value.h: + * ace/Time_Value.inl: + * ace/Timeprobe.cpp: + * ace/Timeprobe.h: + * ace/Timeprobe.inl: + * ace/Timeprobe_T.cpp: + * ace/Timeprobe_T.h: + * ace/Timer_Hash.cpp: + * ace/Timer_Hash.h: + * ace/Timer_Heap.cpp: + * ace/Timer_Heap.h: + * ace/Timer_Heap_T.cpp: + * ace/Timer_Heap_T.h: + * ace/Timer_List.cpp: + * ace/Timer_List.h: + * ace/Timer_Queue.cpp: + * ace/Timer_Queue.h: + * ace/Timer_Queue_Adapters.cpp: + * ace/Timer_Queue_Adapters.h: + * ace/Timer_Queue_Adapters.inl: + * ace/Timer_Queue_T.cpp: + * ace/Timer_Queue_T.h: + * ace/Timer_Queue_T.inl: + * ace/Timer_Queuefwd.h: + * ace/Timer_Wheel.cpp: + * ace/Timer_Wheel.h: + * ace/Timer_Wheel_T.cpp: + * ace/Timer_Wheel_T.h: + * ace/TkReactor.cpp: + * ace/TkReactor.h: + * ace/Token.cpp: + * ace/Token.h: + * ace/Token.inl: + * ace/Token_Collection.cpp: + * ace/Token_Collection.h: + * ace/Token_Collection.inl: + * ace/Token_Invariants.cpp: + * ace/Token_Invariants.h: + * ace/Token_Manager.cpp: + * ace/Token_Manager.h: + * ace/Token_Manager.inl: + * ace/Token_Request_Reply.cpp: + * ace/Token_Request_Reply.h: + * ace/Token_Request_Reply.inl: + * ace/Trace.cpp: + * ace/Trace.h: + * ace/Typed_SV_Message.cpp: + * ace/Typed_SV_Message.h: + * ace/Typed_SV_Message.inl: + * ace/Typed_SV_Message_Queue.cpp: + * ace/Typed_SV_Message_Queue.h: + * ace/Typed_SV_Message_Queue.inl: + * ace/UNIX_Addr.cpp: + * ace/UNIX_Addr.h: + * ace/UNIX_Addr.inl: + * ace/UPIPE_Acceptor.cpp: + * ace/UPIPE_Acceptor.h: + * ace/UPIPE_Acceptor.inl: + * ace/UPIPE_Addr.h: + * ace/UPIPE_Connector.cpp: + * ace/UPIPE_Connector.h: + * ace/UPIPE_Connector.inl: + * ace/UPIPE_Stream.cpp: + * ace/UPIPE_Stream.h: + * ace/UPIPE_Stream.inl: + * ace/UUID.cpp: + * ace/UUID.h: + * ace/UUID.inl: + * ace/Unbounded_Queue.cpp: + * ace/Unbounded_Queue.h: + * ace/Unbounded_Queue.inl: + * ace/Unbounded_Set.cpp: + * ace/Unbounded_Set.h: + * ace/Unbounded_Set.inl: + * ace/Value_Ptr.h: + * ace/Vector_T.cpp: + * ace/Vector_T.h: + * ace/Vector_T.inl: + * ace/WFMO_Reactor.cpp: + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.inl: + * ace/WIN32_Asynch_IO.cpp: + * ace/WIN32_Asynch_IO.h: + * ace/WIN32_Proactor.cpp: + * ace/WIN32_Proactor.h: + * ace/XML_Svc_Conf.cpp: + * ace/XML_Svc_Conf.h: + * ace/XTI_ATM_Mcast.cpp: + * ace/XTI_ATM_Mcast.h: + * ace/XTI_ATM_Mcast.inl: + * ace/XtReactor.cpp: + * ace/XtReactor.h: + * ace/ace.mpc: + * ace/ace_wchar.h: + * ace/ace_wchar.inl: + * ace/config-lite.h: + * ace/gethrtime.cpp: + * ace/SSL/SSL_Asynch_Stream.cpp: + * ace/SSL/SSL_Asynch_Stream.h: + * ace/SSL/SSL_Context.cpp: + * ace/SSL/SSL_Context.h: + * ace/SSL/SSL_Context.inl: + * ace/SSL/SSL_SOCK.cpp: + * ace/SSL/SSL_SOCK.h: + * ace/SSL/SSL_SOCK.i: + * ace/SSL/SSL_SOCK_Acceptor.cpp: + * ace/SSL/SSL_SOCK_Acceptor.h: + * ace/SSL/SSL_SOCK_Acceptor.i: + * ace/SSL/SSL_SOCK_Connector.cpp: + * ace/SSL/SSL_SOCK_Connector.h: + * ace/SSL/SSL_SOCK_Connector.i: + * ace/SSL/SSL_SOCK_Stream.cpp: + * ace/SSL/SSL_SOCK_Stream.h: + * ace/SSL/SSL_SOCK_Stream.i: + + Added versioned namespace support. + + Removed some empty and/or unnecessary `.cpp' and `.inl' files. + + Hid some static class member constants declared in headers in + the corresponding implementation `.cpp' file. + +Thu Oct 27 11:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Process_Strategy_Test.cpp: + * tests/Reactor_Dispatch_Order_Test.cpp: + 64bit fixes + +Thu Oct 27 11:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Threads/barrier2.cpp: + 64bit fixes + +Thu Oct 27 11:58:07 2005 Simon McQueen <sm@prismtech.com> + + * bin/tao_other_tests.lst: + + Three new FT regression tests. + +Thu Oct 27 09:35:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added TAO Bug_2201_Regression test + +Wed Oct 26 17:22:12 2005 Don Busch <busch_d@ociweb.com> + + * bin/MakeProjectCreator/config/event_serv.mpb + * bin/MakeProjectCreator/config/messaging.mpb + * bin/MakeProjectCreator/config/messaging_optional.mpb + * bin/MakeProjectCreator/config/naming_serv.mpb + + This is a footprint reduction fix, eliminating a library dependency. + TAO 1.4 introduced a new dependency on the Messaging, Valuetype, + PI, and CodecFactory libraries for the CosNaming_Serv and + CosEvent_Serv libraries. Turning off CORBA Messaging did not remove + this dependency. Thus, any application that uses CosNaming_Serv or + CosEvent_Serv, but not CORBA Messaging, depends on those libraries + anyway. This change eliminates the CosNaming_Serv and CosEvent_Serv + dependencies on Messaging (and thus PI, CodecFactory, and Valuetype) + when CORBA Messaging and Interceptors are turned off. It reduces + the footprint in that case by about 600K. + There is a TAO ChangeLog entry with the same timestamp that + descibes the TAO changes. + +Wed Oct 26 12:26:01 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Codeset_Registry.cpp (locale_to_registry_i): + (registry_to_locale_i): + + Corrected reversed destination and source arguments in memcpy() + call. + + Improved const correctness. Revealed the above memcpy() + problem. + + * ace/Codeset_Registry.h: + * ace/Codeset_Registry_db.cpp: + + Made registry entry array "const" to prevent the above memcpy() + problem from being potentially reintroduced in the future. Also + provides the compiler with additional optimization opportunities + (e.g. placing the array in read-only memory). + + * apps/mkcsregdb/mkcsregdb.cpp (init_output, fini_output): + + Updated output to generate an array of const registry entries in + accordance with the changes made to ace/Codeset_Registry.h. + +Wed Oct 26 15:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/msvc_cidlc.pl: + Print an error if no configurations have been build, at that moment + we just didn't build something which we have to handle as error + +Wed Oct 26 12:58:17 2005 Simon McQueen <sm@prismtech.com> + + * ace/OS_NS_stdio.inl: + + Added a ACE_WIN32 implementation for ACE_OS::vsnprintf for + wide chars using ::_vsnwprintf, in the style of the existing + ACE_OS::vsnprintf for normal chars. + + This (hopefully) fixes bug #2208. + +Tue Oct 25 22:18:03 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/CDR_Stream.h (OutputCDR_Auto_Reset): + * ace/CDR_Stream.inl (OutputCDR_Auto_Reset): + + Prepend "ACE_" to this class (described in ChangeLog entry "Fri + Aug 26 11:43:01 2005 Justin Michel <michel_j@ociweb.com>") to + address potential global namespace pollution issues, and to be + consistent with ACE naming conventions. + + Adding missing ACE_Export. Addresses unresolved symbol errors + in Windows and g++ 4 builds when inlining is disabled and + TAO_RESET_OUTPUT_CDR_AFTER_SEND is defined to 1. + + Use "this" pointer to reference class members, as dictated by + ACE coding conventions/guidelines. + +Tue Oct 25 09:05:47 MST 2005 Yan Dai <dai_y@ociweb.com> + + * bin/msvc_static_order.lst: + + Rolled back + "Mon Oct 24 12:58:45 MST 2005 Yan Dai <dai_y@ociweb.com>" change, + the entry should be project file name. + +Tue Oct 25 08:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-qnx-rtp-62x.h: + Added ACE_HAS_3_PARAM_WCSTOK + +Tue Oct 25 08:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Pipe_Test.cpp: + Fixed invalid assert + +Mon Oct 24 12:58:45 MST 2005 Yan Dai <dai_y@ociweb.com> + + * bin/msvc_static_order.lst: + + Corrected the entry TAO/tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test. + The library name should be used instead of project name. + +Mon Oct 24 10:21:39 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * docs/ACE-guidelines.html: + + Added shared library guidelines. + +Mon Oct 24 14:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + + * ace/OS_NS_Thread.inl: + Fixed typo in VxWorks part + + * ace/config-vxworks5.x.h: + Added some extra ACE_LACKS_x for VxWorks + +Mon Oct 24 07:19:29 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Dev_Poll_Reactor.cpp: Fixed a couple of bugs that + were causing core dumps. Thanks to Oh Yoon Sik + <boom@estsoft.com> for these fixes. + +Sun Oct 23 13:05:33 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * tests/Pipe_Test.cpp (run_main): Updated this test to be a bit + cleaner. + + * tests/Dirent_Test.cpp: Fixed a typo in the comments - this test + exericses the ACE_Dirent class, not the ACE_OS_Dirent class. + +Fri Oct 21 07:46:47 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Dev_Poll_Reactor.cpp (open): Set notification pipe into + non-blocking mode to prevent deadlock. Thanks to Oh Yoon Sik + <boom at estsoft dot com> for this fix. + +Mon Oct 24 10:55:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/templates/gnu.mpd: + Corrected the way we pass the include paths to windres + +Mon Oct 24 08:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/wrapper_macros.GNU: + Pass RCFLAGS to the resource compiler + +Mon Oct 24 08:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_unistd.{h,inl}: + 64bit fixes + +Mon Oct 24 08:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/templates/gnu.mpd: + Generate includes for the resource compiler, this fixes compile + problems of the resource file when it contains includes that + expect an include path being set + +Mon Oct 24 06:58:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ace_qt.mpb: + Update to enable to define specific versions of the + QT library(-ies) needed to be linked for Windows based + builds as with *nix based builds. + +Sun Oct 23 22:27:45 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Global_Macros.h: + * ace/Versioned_Namespace.h: + + Disable versioned namespace support for MSVC++ 6. It's + preprocessor can't handle the required macro expansions. + +Sun Oct 23 21:48:15 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/README: + + Added documentation that describes how to override the default + versioned namespace name when ACE_HAS_VERSIONED_NAMESPACE is + defined. + + * ace/Version.h: + + Removed "ace/Versioned_Namespace.h" include directive. It + caused some resource compilers on Windows some grief. + + * ace/Versioned_Namespace.h: + + Updated required header filename in preprocessor error message. + This header should now be included through "ace/config-lite.h". + + * ace/config-lite.h: + + Include "ace/Version.h" and "ace/Versioned_Namespace.h" to pull + in versioned namespace support (disabled by default). + + * ace/post.h: + * ace/pre.h: + + Removed versioned namespace support. Versioned namespace + declarations must now be added directly to the appropriate ACE + library headers. Addresses premature closure of versioned + namespace. + +Sun Oct 23 06:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/templates/bor.mpd: + Generate new RC_FLAGS with the includes that need to be passed to + the resource compiler + + * include/makeinclude/build_dll.bor: + * include/makeinclude/build_exe.bor: + Use the new RC_FLAGS + +Sat Oct 22 11:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Codeset_Registry.h: + Doxygen improvements + +Fri Oct 21 14:28:54 MST 2005 Yan Dai <dai_y@ociweb.com> + + * bin/MakeProjectCreator/config/csd_pt_test_exe.mpb: + + Added dependency on pi base project since the PI.h is included + in the test application for the static initialization. + +Fri Oct 21 10:54:44 MST 2005 Yan Dai <dai_y@ociweb.com> + + * bin/msvc_static_order.lst: + + Added TAO/tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Lib. + +Fri Oct 21 11:44:33 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * ace/CDR_Stream.h + + Fixed a typo in the optimization description of + ACE_LACKS_CDR_ALIGNMENT flag. + +Fri Oct 21 07:09:57 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/msvc_static_order.lst: + + Add CosEvent_IDL project before CosEvent, CosEvent_Skel, and + CosEvent_Serv. + +Fri Oct 21 12:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Proactor.h: + Added virtual destructor to the dummy ACE_Proactor that is + enabled when the ACE_Proactor can't be used + +Fri Oct 21 12:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Log_Msg.cpp: + Fixed compile problem in Linux builds + +Fri Oct 21 12:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_unistd.{h,inl} (sbrk): + Use ptrdiff_t as argument type to fix 64bit conversions + +Fri Oct 21 12:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Message_Queue_T.{h,cpp}: + Changed cur_count to size_t and use prefix operators instead + of postfix + +Fri Oct 21 11:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/compiler.bor: + BCBVER must be explicitly defined by the end user and must + be set to a supported value, else just don't build. + +Fri Oct 21 10:24:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Log_Msg.cpp (log) + Check for passing of NULL pointers to %C and %w + formatting strings and replace them with "(null)" to avoid + crashes. Thanks to Scooter <im-scooter at yandex dot ru> for + reporting this. Fixes bugzilla bug 2276 + +Thu Oct 20 22:20:26 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Dev_Poll_Reactor.cpp (open): Disabling the notify pipe was + failing, but now it works. Thanks to Oh Yoon Sik <boom at + estsoft dot com> for this fix. + +Thu Oct 20 14:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/CDR_Base.cpp: + Removed character before #include + +Thu Oct 20 08:53:47 2005 Arvind S. Krishna <arvindk@doc.dre.vanderbilt.edu> + + * ace/CDR_Base.cpp: + * ace/CDR_Stream.h: + * ace/CDR_Stream.cpp: + * ace/CDR_Stream.inl: + * ace/Message_Block.cpp: + + CORBA specification mandates alignment of basic types to their + natural boundaries. However, in certain situations (1) where + such alignment is not needed by the platform and/or (2) + homogeneous systems exists on the client and server sides, this + alignment can be ignored to improve (de)marshaling + efficiency. This commit adds the ACE_LACKS_CDR_ALIGNMENT flag to + the CDR streams that enables applications to ignore alignment + during (de)marshaling. This macro should be used when ACE_CDR is + both the (de)marshaler. Additionally, use this option only when + byte orders of the two machines are the same. This restriction + is temporary and will be removed in a subsequent commit. + +Thu Oct 29 11:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_unistd.{h,inl}: + Changed the return value and arguments of ualarm from u_int + to u_long to fix 64bit problems + +Wed Oct 19 18:57:53 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/OS_NS_stdio.inl (flock_init): Only allocate the + memory for the name if the call to ACE_OS::open() succeeds. + This fixes a subtle memory leak. Thanks to Sandeep Deshpande + <sandeep dot bvb at gmail dot com> for this fix! + +Wed Oct 19 09:56:31 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * include/makeinclude/platform_macosx_tiger_gcc4.GNU: + + Disable symbol visibility support by default. Apple's g++ 4 + compiler doesn't appear to correctly support visibility + attributes, at least as well as the vanilla g++. Thanks to + Will, Kitty and J.T. for testing and tracking the problem. + +Wed Oct 19 09:26:34 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/ACE.h (strdelete): + + Declare this function with the ACE_NAMESPACE_INLINE_FUNCTION. + Addresses case where this method is inlined, and should not be + marked "extern". + +Wed Oct 19 09:23:13 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/pre.h: + + Moved include directive for "ace/Version.h" before existing + pragmas in this file. Addresses Borland preprocessor warnings + regarding duplicate "pushed" options. Thanks to Johnny for + suggesting this fix. + +Wed Oct 19 08:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/CDR_File_Test.cpp: + Fixed compile error + +Wed Oct 19 07:43:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Reactor_Token_T.h: + Removed code for including the .inl file, it is not there, just + a waste of bytes ;-) + +Wed Oct 19 00:23:02 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Global_Macros.h (ACE_FACTORY_DEFINE): + (ACE_FACTORY_NAMESPACE_DEFINE): + + Don't bother qualifying the SERVICE_CLASS name with + ACE_VERSIONED_NAMESPACE_NAME scope. That scoped is already + pulled in by a "using" clause. Addresses compile-time errors + caused by calling the ACE_FACTORY_{NAMESPACE_}DEFINE macro + within a namespace and passing the locally scoped name of the + SERVICE_CLASS rather than the fully qualified one. + +Tue Oct 18 23:23:14 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + The following changes comprise the core implementation of + "versioned namespace" support in ACE. When enabled, all ACE + library code will be wrapped within a namespace, such as + "ACE_5_4_7", to prevent symbol conflicts with other versions of + ACE shared libraries in third party libraries. This feature is + disabled by default to preserve backward compatibility. + + * ace/Global_Macros.h: + + Updated ACE Service Configurator macros to take into account + versioned namespace when enabled. + + * ace/Parse_Node.cpp (ACE_Function_Node, make_func_name): + * ace/Parse_Node.h: + + Check if factory function is using the ACE naming convention. + If so, it is likely that the ACE factory function macros + (e.g. ACE_FACTORY_DECLARE) were used to declare and define it, + so mangle the function name to include the ACE versioned + namespace name as is done in the ACE macros. Otherwise, leave + the function name as is. + + * ace/README: + + Added description for new ACE_HAS_VERSIONED_NAMESPACE + preprocessor symbol. + + * ace/Version.h: + + Include "ace/Versioned_Namespace.h" to pull in versioned + namespace macros. + + * ace/Versioned_Namespace.h: + + New header containing core versioned namespace macros. + + * ace/ace.mpc (Header_Files): + + Added "Versioned_Namespace.h" to list of headers. + + * ace/pre.h: + + Include "ace/Version.h" to pull in versioned namespace support. + + * ace/post.h: + + End versioned namespace block, if enabled. + + * bin/make_release (update_version_files): + + Generate include directive for "ace/Versioned_Namespace.h" when + creating "ace/Version.h". + +Tue Oct 18 23:08:34 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/ACE.cpp (strdelete): + * ace/ACE.inl (strdelete): + + Inlined this function. It simply calles operator delete[] on a + pointer to char or wchar_t. Reduces footprint if it is never + called, and optimizes the call at run-time slightly if it is + called. + +Tue Oct 18 20:51:19 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/csd_framework.mpb: + + Remove "core" from list of base projects. Just because + we use the CSD framework, doesn't necessarily mean that + the project should be installed. It needs to explictly + inherit from core (or install, install-bin, install-lib, + or install-headers) for that. + +Tue Oct 18 18:06:43 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/kokyu_dsrt_schedulers.mpb: + + Add $(TAO_BUILDDIR)/examples/Kokyu_dsrt_schedulers to + includes for automake builds. + +Tue Oct 18 17:24:26 MST 2005 Yan Dai <dai_y@ociweb.com> + + Merged in the CSD (Custom Servant Dispatching) feature from OCI. + + * bin/tao_orb_tests.lst: + + Added CSD tests. + + * bin/MakeProjectCreator/config/csd_framework.mpb: + * bin/MakeProjectCreator/config/csd_threadpool.mpb: + * bin/MakeProjectCreator/config/csd_tp_test_lib.mpb: + * bin/MakeProjectCreator/config/csd_tp_test_exe_c.mpb: + * bin/MakeProjectCreator/config/csd_tp_test_exe_b.mpb: + * bin/MakeProjectCreator/config/csd_tp_test_exe_a.mpb: + * bin/MakeProjectCreator/config/csd_tp_foo_c_lib.mpb: + * bin/MakeProjectCreator/config/csd_tp_foo_b_lib.mpb: + * bin/MakeProjectCreator/config/csd_tp_foo_a_lib.mpb: + * bin/MakeProjectCreator/config/csd_pt_testservant_lib.mpb: + * bin/MakeProjectCreator/config/csd_pt_testinf_lib.mpb: + * bin/MakeProjectCreator/config/csd_pt_test_exe.mpb: + + Added base projects for the CSD strategies and tests. + +Tue Oct 18 22:24:11 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.h: + Changed type of readmincharacters from int to unsigned int. + Fixes compile time warning. + +Tue Oct 18 09:53:29 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + From Mickael P. Golovin <migel at garant dot ru> + * ace/Argv_Type_Converter.cpp: + + Fixed strdup()/operator delete() mismatches. Strings allocated + by strdup() should be deallocated using free(). + +Mon Oct 17 22:05:37 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.cpp: + Removed :: qualifiers from terminal interface + function calls. This should fix compile problems + on Cygwin. + +Mon Oct 17 13:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/notifytest.mpb: + Added notication_serv as base project, needed for collocated + tests + +Mon Oct 17 10:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/FILE_IO.inl: + Removed some not needed c-style casts + + * tests/CDR_File_Test.cpp: + Explicitly initialise memory with 0 when we are using a + profiler. + +Mon Oct 17 09:21:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Time_Value.{h,inl}: + * ace/UUID.cpp: + Fixed 64bit conversion problems. Added a to_usec method + to ACE_Time_Value that returns the total of sec and usec + as ACE_UINT64 and use that in UUID.cpp. + Thanks to James Megquier <jmegq at radiance dot com>. + This fixes bugzilla 2263 + +Sun Oct 16 13:01:12 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * protocols/ace/RMCast/Acknowledge.cpp: + + Fix typo in last change. + +Sun Oct 16 12:05:45 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/config-netbsd.h: + + Define ACE_HAS_TERMIOS. + +Sun Oct 16 11:59:05 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Updated tty feature checks to define ACE_HAS_TERMIO and/or + ACE_HAS_TERMIOS. + +Sun Oct 16 19:39:10 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.h: + Fixed Doxygen tags. + +Sun Oct 16 09:27:25 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * protocols/ace/RMCast/Acknowledge.{h,cpp} + * protocols/ace/RMCast/Parameters.h: + Added some fixes so that the default size of the hash map won't + be so huge. Thanks to Felix Li <fengli at gmail dot com> for + these fixes. + +Sun Oct 16 17:17:50 2005 Olli Savia <ops@iki.fi> + + * ace/OS.h: + * ace/config-cray.h: + * ace/config-cygwin32.h: + * ace/config-dgux-4.11-epc.h: + * ace/config-dgux-4.x-ghs.h: + * ace/config-freebsd.h: + * ace/config-hpux-11.00.h: + * ace/config-irix6.x-common.h: + * ace/config-linux-common.h: + * ace/config-lynxos.h: + * ace/config-m88k.h: + * ace/config-macosx-panther.h: + * ace/config-macosx-tiger.h: + * ace/config-macosx.h: + * ace/config-openbsd.h: + * ace/config-qnx-neutrino.h: + * ace/config-qnx-rtp-62x.h: + * ace/config-qnx-rtp-pre62x.h: + * ace/config-rtems.h: + * ace/config-sco-5.0.0-mit-pthread.h: + * ace/config-sco-5.0.0.h: + * ace/config-sunos5.4-centerline-2.x.h: + * ace/config-sunos5.4-g++.h: + * ace/config-sunos5.4-sunc++-4.x.h: + * ace/config-sunos5.5.h: + * ace/config-tandem.h: + * ace/config-unixware-2.01-g++.h: + * ace/config-unixware-2.1.2-g++.h: + * ace/config-unixware-7.1.0.h: + * ace/config-unixware-7.1.0.udk.h: + * ace/config-win32-interix.h: + Replaced old TTY_IO related macros with the new + ACE_HAS_TERMIOS macro. + + * ace/TTY_IO.cpp: + Added include "ace/config-lite.h" to pull feature macro + definitions. + +Sun Oct 16 16:14:48 2005 Olli Savia <ops@iki.fi> + + * ace/README: + * ace/TTY_IO.cpp: + Introduce new macros ACE_HAS_TERMIO and ACE_HAS_TERMIOS to + select between old ioctl based interface and POSIX terminal + interface. The old macros ACE_HAS_TERM_IOCTLS and + ACE_HAS_NEW_TERMIOS_STRUCT are not used anymore. Thanks + to J.T. Conklin for motivating this change. + +Sun Oct 16 12:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Don't run Big_AMI test in minimum builds + +Sat Oct 15 00:57:19 2005 Steve Totten <totten_s@ociweb.com> + + * bin/tao_other_tests.lst: + + Added TAO/orbsvcs/examples/CosEC/TypedSimple/run_test.pl to + the nightly tests. + +Fri Oct 14 22:30:40 2005 Krishnakumar B <kitty@nospam.invalid.domain> + + * ace/config-macosx-tiger.h (ACE_HAS_NEW_TERMIOS_STRUCT): Defined + the macro ACE_HAS_NEW_TERMIOS_STRUCT to fix compilation errors + on Mac OS X Tiger. + +Fri Oct 14 14:56:16 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * ace/ACE.cpp: + * ace/SOCK_Connector.cpp: + + Reverted the change from Fri Sep 2 15:08:27 2005 Justin Michel + due to suspicions that it might be inadvertently responsible for + observed additional jitter in TAO performance tests. The + motivation for the original change and a patch to restore the + original change is documented in Bugzilla #2246. + +Fri Oct 14 11:49:29 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ACEXML/apps/svcconf/Makefile.am: + + Tweak to use pkgconfigdir and @libdir@/pkgconfig instead of + pkgconfdatadir and ${prefix}/lib/pkgconfig to be consistent with + all our other Makefile.am's. This will hold until we regenerate + all the ACE Makefile.am's from MPC. [Bug 2266] + +Fri Oct 14 14:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + Reverted the change below, causes compile problems + + Fri Oct 14 10:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + * ace/SSL/SSL_Asynch_BIO.{h,cpp}: + Fixed 64bit conversion warnings + +Fri Oct 14 12:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/soreduce/Library.cpp: + Fixed 64bit problem + +Fri Oct 14 11:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/SOCK_IO.{h,inl}: + 64bit fix + +Fri Oct 14 10:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/SSL/SSL_Asynch_BIO.{h,cpp}: + Fixed 64bit conversion warnings + + * ace/OS_NS_unistd.{h,inl}: + Let getpagesize return a long + +Fri Oct 14 08:05:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * protocols/ace/HTBP/HTBP_Session.cpp: + Fixed signed/unsigned warning + +Thu Oct 13 17:39:31 2005 Steve Huston <shuston@riverace.com> + + * ace/TTY_IO.cpp: Changed ACE_TTY_IO_{ODD EVEN MARK SPACE} to + char* from ACE_TCHAR* since the strings they're compared to (from + Serial_Params) are char* always. + + * ace/config-win32-common.h: Removed the check for UNDER_CE >= 0x400 + && UNDER_CE < 0x500 when deciding whether or not to define E... + symbols. Windows Mobile 5 requires them as well. + +Thu Oct 13 13:58:44 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/config-g++-common.h (ACE_IMPORT_SINGLETON_DECLARE): + (ACE_IMPORT_SINGLETON_DECLARATION): + + Suppress "-pedantic" error caused by use of g++ "extern + template" extension by preceding the expression with + "__extension__". + +Thu Oct 13 15:38:29 2005 Steve Huston <shuston@riverace.com> + + * ace/RB_Tree.{cpp h}: Follow-up to: + Fri Jul 9 21:23:13 2004 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + Don't include a tree pointer in each RB_Tree_Node just to be able to + get back to the tree to retrieve the allocator. Leave the allocator + pointer in ACE_RB_Tree_Base, and add a ACE_RB_Tree::remove_children_i + method that uses the allocator to release memory. Thank you to + Sergei Kuchin <skuchin at mqsoftware dot com> for this improvement. + +Thu Oct 13 20:42:00 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.cpp: + Enable noncanonical input processing on POSIX systems. + +Thu Oct 13 19:18:44 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.cpp: + Oops. Use tcsetattr() instead of tcgetattr() to set terminal + parameters. + +Thu Oct 13 18:49:15 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.cpp: + TTY_IO class now uses POSIX terminal interface if it is + available. Should fix compile problems on various + platforms. + +Thu Oct 13 15:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Threads/task_four.cpp: + * examples/Reactor/Proactor/post_completions.cpp: + Fixed warning in MinGW build + +Thu Oct 13 17:51:04 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.cpp: + Fixed wchar issues. + +Thu Oct 13 14:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Don't run the Hang_Shutdown test in a single threaded build + +Thu Oct 13 14:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_arpa_inet.cpp: + * ace/Pipe.cpp: + 64bit fixes + +Thu Oct 13 13:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Threads/tss2.cpp: + Fixed warning in MinGW build + +Thu Oct 13 13:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/msvc_static_order.lst: + Added tests/DLL_Test_Parent + +Thu Oct 13 13:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Configuration.{h,cpp}: + * ace/FILE_IO.cpp: + 64bit fixes + +Thu Oct 13 13:21:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Message_Queue.{h,cpp,inl}: + * ace/Message_Queue_T.{h,cpp}: + Changed message_count to be a size_t to fix 64bit conversion warnings + in code that uses this. + +Thu Oct 13 13:05:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_Thread.{h,inl}: + Changed return type of priority_control from int to long to fix + 64bit issues. + + * ace/Mem_Map.{h,inl}: + * ace/OS_NS_sys_shm.{h,inl}: + Fixed 64bit conversion warnings + +Thu Oct 13 11:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_stdlib.{h,cpp,inl}: + Let readline return ssize_t instead of int to fix 64bit + conversion issues + +Thu Oct 13 07:49:37 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.cpp: + Include OS_NS_string.h to fix compile error on various platforms. + +Wed Oct 12 23:55:23 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.cpp: + Rearranged includes to fix compile error on LynxOS. + +Wed Oct 12 23:08:43 2005 Olli Savia <ops@iki.fi> + + * ace/CDR_Stream.inl: + * ace/CDR_Stream.cpp: + * ace/SString.cpp: + Fixed might be unitialized warning in FC4 build. + +Wed Oct 12 22:50:39 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.cpp: + * ace/config-freebsd.h: + * ace/config-irix6.x-common.h: + * ace/config-linux-common.h: + * ace/config-openbsd.h: + * ace/config-win32-interix.h: + Changed ACE_USES_NEW_TERMIOS_STRUCT to ACE_HAS_NEW_TERMIOS_STRUCT + to better follow ACE naming conventions. + +Wed Oct 12 22:32:33 2005 Olli Savia <ops@iki.fi> + + * ace/TTY_IO.h: + * ace/TTY_IO.cpp: + TTY_IO class overhaul. See NEWS for more information. + + * NEWS: + Added TTY_IO changes. + +Wed Oct 12 12:02:46 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/Based_Pointer_Test.cpp: + * tests/dll_test_parent_lib.mpb: + * tests/tests.mpc: + + Fixed project dependencies for tests with an accompanying shared + library. + +Wed Oct 12 12:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/APG/Sockets/Basic.cpp: + * examples/APG/Streams/Util.h: + * examples/APG/Streams/CommandTasks.cpp: + * examples/APG/Threads/Message_Queue.cpp: + * examples/Reactor/Misc/notification.cpp: + * examples/Reactor/Misc/test_timer_queue.cpp: + * examples/Reactor/Multicast/server.cpp: + Fixed 64bit conversion warnings + +Wed Oct 12 09:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/ipv6.mpb: + Also for cbx we need to add an extra lib + +Wed Oct 12 08:35:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/fuzz.pl: + Also raised the level for the rir check + +Wed Oct 12 08:10:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/fuzz.pl: + Raised the level for the environment macro check to >= 6. This way + the check is there but we don't run it by default in our daily + fuzz build + +Wed Oct 12 08:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_vxworks5.5.x.GNU: + Changed the default for exceptions to 1 + +Tue Oct 11 17:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/CDR_Stream.cpp (skip_wchar): + When having a 1.1 stream, we must use + ACE_OutputCDR::wchar_maxbytes_ instead of sizeof (ACE_CDR::WChar) + to determine whether we have to read 2 or 4 bytes for a + ACE_CDR::WChar. This fixes the failing of the TAO Codec test + under fe linux + +Tue Oct 11 08:28:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/INET_Addr{.h .inl}: + Added additional "is_xx' method for IPv6 address testing. + +Tue Oct 11 01:17:10 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + From James Megquier <jmegq at radiance dot com> + * tests/DLL_Test.cpp (basic_test): + * tests/tests.mpc: + + Rename DLL_Test library to avoid MPC name conflict with DLL_Test + executable. [Bug 2258] + + * ace/config-g++-common.h: + + Sadly, G++ 4.x silently ignores visibility attributes on + template instantiations, which breaks singletons. As a + workaround, we use the GCC visibility pragmas. And to make them + fit in a macro, we use C99's _Pragma() (see + http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17470). [Bug 2260] + + * ace/Based_Pointer_Repository.h: + * ace/Obstack.h: + * ace/Timeprobe.h: + * examples/Export/dll.h: + + Declare exported (i.e. default visibility) singleton templates + prior to typedefs that reference them. Prevents g++ 4.0 from + silently making their visibility hidden. [Bug 2260] + + * include/makeinclude/platform_g++_common.GNU: + + Added "no_hidden_visibility" make flag/variable. Setting to "1" + in a platform_macros.GNU file will disable g++ 4.0 visibility + attribute support. [Bug 2259] + +Tue Oct 11 06:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Guard_T.cpp: + When ACE_HAS_DUMP is defined include Log_Msg.h to get ACE_DEBUG. + Thanks to James Megquier <jmegq at radiance dot com> for reporting + this. This fixes bugzilla bug 2257 + + * ACE-INSTALL.html: + Updated Remedy IT support platforms and added + Borland C++ Builder 2006 as new support platform. This is now + publicly announced by Borland. + +Mon Oct 10 15:45:17 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_config_handlers.mpb: + + Updated to reflect changes in config handles. + +Mon Oct 10 19:12:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_dirent.cpp: + Fixed 64bit conversion + +Mon Oct 10 13:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Reactor_Timer_Test.cpp: + Timers are of type long, so update this test to use long for timer + ids, not int. + +Mon Oct 10 10:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added new Big_AMI test + +Sun Oct 9 21:34:08 2005 Olli Savia <ops@iki.fi> + + * ace/config-lynxos.h: + Do not define ACE_LACKS_SETREGID ACE_LACKS_SETREUID + on LynxOS 4.x + +Fri Oct 7 17:52:38 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: + + Fix typo in recently added TAO_IDL_DEP definition. + +Fri Oct 7 17:35:42 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/Service_Configurator/IPC-tests/server/Makefile.am: + * tests/Makefile.am: + + Regenerate to account for recent changes. + +Fri Oct 7 13:31:10 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/taoidldefaults.mpb: + + Changed to add -Sa and -St flags to idlflags variable instead of + tao_idlflags. This ensures they will be emitted (unless they're + suppressed by anytypecode.mpb) in the automake build, where the + value of TAO_IDLFLAGS is set in AutomakeWorkspaceHelper.pm. + + This would have cought recent problems I introduced in TAO when + splitting out IDL compilation into separate projects. + +Fri Oct 7 09:32:06 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: + + Define TAO_IDL_DEP if TAO_IDL is found in the any per-project + Makefile.am as they are aggregated into the final Makefile.am. + +Fri Oct 7 12:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Upgradable_RW_Test.cpp: + Fixed might be unitialized warning in MinGW build + +Fri Oct 7 08:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-borland.h: + Removed ACE_LACKS_MODE_MASKS, it is in config-win32-common.h. + +Fri Oct 7 07:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * protocols/ace/HTBP/HTBP_Stream.{h,cpp,inl}: + * protocols/ace/HTBP/HTBP_Notifier.{h,cpp,inl}: + * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.{h,cpp,i}: + * apps/JAWS/clients/Caching/URL_Locator.{h,cpp,i}: + Removed empty inline files + + * protocols/ace/HTBP/Makefile.am: + * examples/Service_Configurator/IPC-tests/server/Makefile.am: + * apps/JAWS/clients/Caching/Makefile.am: + Removed inline files we zapped above + +Thu Oct 6 15:42:29 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/DLL_Test.cpp: + * tests/DLL_Test.h: + * tests/DLL_Test_Impl.cpp: + * tests/DLL_Test_Parent.cpp: + * tests/DLL_Test_Parent.h: + * tests/DLL_Test_Parent_Export.h: + * tests/dll_test_parent_lib.mpb: + + Moved "Parent" base class to a separate DSO/DLL to break a + cyclic dependency, in turn allowing its virtual methods to be + moved out of line. Addresses dynamic_cast<> failures in g++ 4.0 + builds. Thanks to Carlos for suggesting this change. [Bug 2143] + + Moved "Child" subclass virtual methods out of line to address + RTTI related problems when using g++ 4.0's + -fvisibility-inlines-hidden command line option. [Bug 2143] + + * tests/tests.mpc: + + Added new DLL_Test_Parent_Lib project. + + Updated DLL_Test project dependencies to reflect new DLL test + library layout. + + Corrected MPC "dynamicflags" variable for "Based Pointer Test + Lib" and "DLL Test Lib" projects. "ACE_SVC_BUILD_DLL" not + "ACE_BUILD_SVC_DLL". + +Thu Oct 6 17:56:19 2005 Steve Huston <shuston@riverace.com> + + Added support for Windows Mobile 5 and Pocket PC 2003 using + Visual Studio 2005 (Beta 2). Reorganized some of the config-win32-* + files to ensure OS things are in config-win32-common.h and compiler + things are in the various compiler files. + + * ace/config-win32-common.h: Now #includes config-WinCE.h. It's + possible that config-WinCE.h may get chopped down further and/or + subsumed into config-win32-common.h as config-WinCE.h gets refined. + + Added ACE_LACKS_MODE_MASKS. It's needed on all variants of + Windows and all compilers. + + Turn on both ACE_USES_WCHAR and UNICODE if either is set. Removed + this setting from config-WinCE.h. + + * ace/config-win32-borland.h: + * ace/config-win32-dmc.h: + * ace/config-win32-ghs.h: + * ace/config-win32-mingw.h: + * ace/config-win32-msvc-6.h: + * ace/config-win32-msvc-7.h: + * ace/config-win32-msvc-8.h: + * ace/config-win32-visualage.h: Removed ACE_LACKS_MODE_MASKS. + Removed ACE_ENDTHREADEX (moved to config-win32-msvc.h). + + * ace/config-win32-msvc.h: Added ACE_ENDTHREADEX with proper + setting depending on Windows PC vs. Mobile. + + * ace/config-win32.h: Doesn't include config-WinCE.h any longer. + + * ace/config-WinCE.h: Moved the errno value definitions to + config-win32-msvc-6.h. They're only needed for the eVC 3 and 4 + compilers, which report themselves using the same versions as + MSVC 6. + + * ace/Object_Manager.cpp (init): Only act on config.h's + ACE_DISABLE_WIN32_ERROR_WINDOWS setting if on Windows, but not CE. + + * ace/OS_NS_time.h: Only define struct tm for WinCE if compiling + on something less than Visual Studio 2005. + + * ace/OS_NS_unistd.inl (rmdir, unlink): + * ace/OS_NS_sys_stat.inl (mkdir, stat): For wchar_t version on WinCE, + specify the ...W() form of the system call rather than assume + the call maps to the W form. WinCE can do either A or W now. + + * ace/OS_NS_time.(cpp h) (day_of_week_name[], month_name[]): + * ace/OS_NS_sys_socket.cpp (socket_init, socket_fini): + Changed char array from wchar_t to ACE_TCHAR. WinCE can do either + narrow or wide and this allows it to adjust. Everything was + initialized using ACE_LIB_TEXT already. + + * ace/OS_NS_stdio.inl (fdopen, rename, freopen): For WinCE, need to + convert the ACE_TCHAR string to wchar always. There's no char* + version of fdopen, et al that I can see. + + * ace/Service_Config.(h inl): Only define the alternate + intialize/resume/suspend/remove methods for WinCE if ACE_USES_WCHAR + is set. Else there's already a char* version. + + * ace/TSS_T.cpp (ctor): Use ACE_LIB_TEXT around strings for the + MessageBox() call on CE. This resolves properly depending on the + build. CE doesn't always use unicode any more. + + * tests/Logging_Strategy_Test.cpp (get_statistics): Use time_t + instead of int to return the modified time. Makes it portable to + 64 bits. + +Thu Oct 6 10:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/fuzz.pl: + Extended empty inline files to also ignore lines starting + with /* as real contents. Will propobly reveal another few files + we should zap + +Thu Oct 6 08:24:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * netsvcs/lib/Base_Optimizer.h: + * netsvcs/lib/Client_Logging_Handler.h: + * netsvcs/lib/Log_Message_Receiver.h: + * netsvcs/lib/Name_Handler.h: + * netsvcs/lib/Server_Logging_Handler.h: + * netsvcs/lib/Server_Logging_Handler_T.h: + * netsvcs/lib/Token_Handler.h: + * netsvcs/lib/TS_Clerk_Handler.h: + * netsvcs/lib/TS_Server_Handler.h: + Converted documentation to doxygen style + +Thu Oct 6 08:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Message_Queue_Test.cpp: + * tests/Message_Queue_Test_Ex.cpp: + Fixed might be unitialized warning in MinGW build + +Thu Oct 6 08:12:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * netsvcs/ACE-netsvcs.html: + Fixed small typo + +Wed Oct 5 22:07:19 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Add check for ACE_HAS_PTHREAD_GETCONCURRENCY and + ACE_HAS_PTHREAD_SETCONCURRENCY. + + * ace/OS_NS_Thread.inl: + + Changed ACE_OS::getconcurrency () to use ::pthread_getconcurrency() + if ACE_HAS_PTHREAD_GETCONCURRENCY is set. + + Changed ACE_OS::setconcurrency () to use ::pthread_setconcurrency() + if ACE_HAS_PTHREAD_SETCONCURRENCY is set. + + * ace/README: + + Define ACE_HAS_PTHREAD_GETCONCURRENCY and + ACE_HAS_PTHREAD_SETCONCURRENCY feature test macros. + +Wed Oct 5 13:18:26 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * examples/Shared_Malloc/Malloc.cpp: + * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: + * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: + * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: + * tests/SV_Shared_Memory_Test.cpp: + + More include directive additions/fixes. + +Wed Oct 5 13:00:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/CDR_Base.h: + Doxygen fixes and removed some checks for very old msvc and borland + versions + +Wed Oct 5 12:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/svcconf.mpb: + Replaced some spaces with a tab, should fix our Cygwin build + +Wed Oct 5 10:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/APG/Processes/Spawn.cpp: + Fixed 64bit conversion warnings + +Wed Oct 5 11:11:21 2005 Simon McQueen <sm@prismtech.com> + + * bin/MakeProjectCreator/config/core_anytypecode.mpb: + + Add new base MPC base project that links with the TAO_AnyTypeCode + library but does not inherit from taoidldefaults or set any IDL + compiler flags. To be used as an alternative to anytypecode.mpb + for all projects under $ACE_ROOT/TAO/tao. + +Wed Oct 5 02:11:28 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/ace_os.mpc: + + Removed this file. It was inadvertently committed. + +Wed Oct 5 01:57:37 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * apps/JAWS2/JAWS/Cache_Manager.cpp: + * examples/APG/Active_Objects/AO.cpp: + * examples/APG/Active_Objects/AO2.cpp: + * examples/APG/Shared_Memory/Hash_Map.cpp: + * tests/Bound_Ptr_Test.cpp: + + Include appropriate headers to address incomplete type + definition related compile-time errors. Necessitated by header + dependency reductions in ACE. + +Wed Oct 5 08:18:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/SSL/SSL_Asynch_Stream.cpp: + Fixed bug 1770 and 1805. Yoav Borer + Thanks to <yoav dot borer at data-pod dot com> for reporting + these. + +Wed Oct 5 00:41:18 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Activation_Queue.cpp: + * ace/Activation_Queue.h: + + Moved "ace/Method_Request.h" include directive to implementation + file. A forward request in the header will suffice. + + * ace/SOCK_CODgram.h: + + Support export macros specific to ACE subset libraries. + + * ace/ace.mwc: + + Added missing "ace_for_tao" subset MPC files. + + * ace/ace_memory_for_tao.mpc: + * ace/ace_reactor_for_tao.mpc: + * ace/ace_sockets_for_tao.mpc: + * ace/ace_threads_for_tao.mpc: + + New TAO-specific ACE subset MPC files that were not committed + in initial "ace_for_tao" commit. + +Tue Oct 4 14:21:26 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * netsvcs/lib/TS_Clerk_Handler.h: + + More include directive fixes/additions now necessary due to + header dependency reductions in ACE. + +Tue Oct 4 11:12:31 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * apps/JAWS2/JAWS/Cache_Object.h: + * apps/JAWS2/JAWS/Cache_Object.cpp: + + Include appropriate headers to address incomplete type + definition related compile-time errors. Necessitated by header + dependency reductions in ACE. + + Declare lock members that are meant to be mutable in all cases + as "mutable", and remove casts that worked around the + unnecessary "constness" of those members. + +Tue Oct 4 10:39:24 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Service_Config.cpp: + + Include "ace/Signal.h" when ACE_LACKS_UNIX_SIGNALS is + undefined. Addresses build errors in non-Windows builds. + Necessitated by header dependency reductions in ACE. + +Tue Oct 4 10:00:00 UTC 2005 Simon Massey <simon.massey@prismtech.com> + + * ace/Obstack_T.h: + + Fix warning about nested comments. + +Mon Oct 3 13:30:58 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * examples/APG/Containers/Hash_Map.cpp: + * examples/APG/Shared_Memory/Malloc.cpp: + * examples/APG/Shared_Memory/PI_Malloc.cpp: + * examples/APG/Shared_Memory/Pool_Growth.cpp: + * examples/Shared_Malloc/Malloc.cpp: + * examples/Shared_Malloc/Malloc.h: + * examples/Shared_Malloc/test_malloc.cpp: + * examples/Shared_Malloc/test_multiple_mallocs.cpp: + * examples/Shared_Malloc/test_persistence.cpp: + * examples/Shared_Malloc/test_position_independent_malloc.cpp : + + Include appropriate headers to address incomplete type + definition related compile-time errors. Necessitated by header + dependency reductions in ACE. + +Mon Oct 3 18:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/SSL/SSL_Context.cpp: + Use prefix increment/decrement instead of postfix + +Mon Oct 3 10:48:23 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/ACE_Memory_export.h: + * ace/ACE_Reactor_export.h: + * ace/ACE_Sockets_export.h: + * ace/ACE_Threads_export.h: + + New export headers for a number of ACE subset libraries. + + * ace/Activation_Queue.cpp: + * ace/Configuration.h: + * ace/Malloc.cpp: + * ace/Obstack_T.h: + * ace/Obstack_T.cpp: + * ace/Svc_Conf_l.cpp: + * ace/Timer_Hash_T.cpp: + * tests/Based_Pointer_Test.cpp: + * tests/Malloc_Test.cpp: + * tests/Message_Block_Test.cpp: + + Include appropriate headers to address incomplete type + definition related compile-time errors. Necessitated by header + dependency reductions in ACE. + + * ace/Activation_Queue.h: + * ace/Barrier.h: + * ace/Based_Pointer_Repository.h: + * ace/Dev_Poll_Reactor.h: + * ace/File_Lock.h: + * ace/LSOCK.h: + * ace/LSOCK_Acceptor.h: + * ace/LSOCK_CODgram.h: + * ace/LSOCK_Connector.h: + * ace/LSOCK_Dgram.h: + * ace/LSOCK_Stream.h: + * ace/MEM_Acceptor.h: + * ace/MEM_Addr.h: + * ace/MEM_Connector.h: + * ace/MEM_IO.h: + * ace/MEM_SAP.h: + * ace/MEM_Stream.h: + * ace/MMAP_Memory_Pool.h: + * ace/Mem_Map.h: + * ace/Method_Request.h: + * ace/Msg_WFMO_Reactor.h: + * ace/Multihomed_INET_Addr.h: + * ace/PI_Malloc.h: + * ace/Pagefile_Memory_Pool.h: + * ace/Priority_Reactor.h: + * ace/Process.h: + * ace/Process_Manager.h: + * ace/Process_Semaphore.h: + * ace/RW_Process_Mutex.h: + * ace/SOCK_Dgram_Bcast.h: + * ace/SOCK_Dgram_Mcast.h: + * ace/SOCK_SEQPACK_Acceptor.h: + * ace/SOCK_SEQPACK_Association.h: + * ace/SOCK_SEQPACK_Connector.h: + * ace/SV_Shared_Memory.h: + * ace/Sbrk_Memory_Pool.h: + * ace/Shared_Memory.h: + * ace/Shared_Memory_MM.h: + * ace/Shared_Memory_Pool.h: + * ace/Shared_Memory_SV.h: + * ace/Thread_Semaphore.h: + * ace/UNIX_Addr.h: + + Support export macros specific to ACE subset libraries. + + * ace/Array_Map.h: + + Comment cleanup. + + * ace/High_Res_Timer.h: + + Removed trailing whitespace. + + * ace/Malloc.h: + + Removed extraneous headers unnecessary for the types declared in + this header. + + * ace/OS_NS_Thread.inl (ACE_Thread_ID): + + Prefer initialization of thread_id_ member in base member + initializer list rather than constructor body. + + * ace/ace.mpc: + * ace/ace.mwc: + * ace/ace_for_tao.mpc: + * ace/ace_os.mpc: + + Add support ACE subsets (predominantly TAO-specific). + + * ace/svcconf.mpb: + + Moved Svc_Conf parser and lexer generation Make rules to this + MPC base project. Allows subset projects to inherit these + rules. + + * bin/MakeProjectCreator/config/ace_for_tao.mpb: + * bin/MakeProjectCreator/config/acememorylib_for_tao.mpb: + * bin/MakeProjectCreator/config/acenosubsets.mpb: + * bin/MakeProjectCreator/config/acereactorlib_for_tao.mpb: + * bin/MakeProjectCreator/config/acesocketslib_for_tao.mpb: + * bin/MakeProjectCreator/config/acethreadslib_for_tao.mpb: + + New TAO-specific ACE subset MPC support. Enabled when + "ace_for_tao" is set to "1" in an MPC features file. + + * bin/MakeProjectCreator/config/aceexe.mpb: + * bin/MakeProjectCreator/config/acelib.mpb: + + Support "ace_for_tao" subset. + + * bin/MakeProjectCreator/config/global.features: + + Disabled "ace_for_tao" feature by default. + + * bin/MakeProjectCreator/config/taolib.mpb: + + Inherit "ace_for_tao" feature project. Causes TAO-based + projects to use the "ace_for_tao" subset libraries when that + feature is enabled. + +Mon Oct 3 12:50:00 2005 Simon Massey <simon.massey@prismtech.com> + + * ace/Asynch_IO.h: + + Remove some more Doxygen warnings from the scoreboard. + +Mon Oct 3 13:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: + Fixed might be unitialized warning in Cygwin build + +Mon Oct 3 12:50:00 2005 Simon Massey <simon.massey@prismtech.com> + + * ace/ACE.h: + * ace/Acceptor.h: + * ace/Stats.h: + * ace/Containers_T.h: + + Remove some Doxygen warnings from the scoreboard. + +Mon Oct 3 11:27:13 2005 Simon McQueen <sm@prismtech.com> + + * bin/tao_other_tests.lst: + + Scheduled TAO/orbsvcs/tests/Bug_2248_Regression. + +Mon Oct 3 09:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_gnuwin32_common.GNU: + Changed the default of exceptions to be 1 + +Mon Oct 3 06:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Log_Msg.{h,cpp}: + Changed type of msg_off_ from int to long to fix 64bit + conversion warnings + +Sun Oct 2 19:18:01 2005 Olli Savia <ops@iki.fi> + + * ace/config-lynxos.h: + Added contents from config-lynxos4.0.0.h to this file. + config-lynxos4.0.0.h is no longer needed. + + * ace/config-lynxos4.0.0.h: + Removed this file. + +Sat Oct 1 11:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_stdio.cpp: + Fixed _open_osfhandle call + +Fri Sep 30 14:00:36 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * bin/fuzz.pl: + + Added a new test, check_for_refcountservantbase, that will + report occurrences of PortableServer::RefCountServantBase in + code. This is good because the default is now changed in TAO to + reflect the change in the CORBA spec. + + Changed all error and warning messages to be consistently + printed with the keyword "Error: " or "Warning: " followed by + the filename and line number where the problem occurred, then + followed by a text description of the problem. This makes the + messages' format consistent with that output by grep and + compilers so that one can use tools like emacs' 'compile' mode + to step through the fuzz errors and easily fix things. + +Fri Sep 30 10:34:24 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Add feature checks for ACE_LACKS_INTMAX_T, ACE_LACKS_INTPTR_T, + ACE_LACKS_UINTMAX_T, and ACE_LACKS_UINTPTR_T. + + * ace/README: + + Define ACE_LACKS_INTMAX_T, ACE_LACKS_UINTMAX_T, and + ACE_LACKS_UINTPTR_T feature test macros. + +Fri Sep 30 13:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: + Corrected the directory changing code to take 2 or more deep + relative paths into account. Merged this fix from the MPC + templates bmake. Thanks to Chad Elliott for fixing these. + +Fri Sep 30 08:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-borland.h: + * ace/config-win32-msvc-6.h: + * ace/OS_NS_stdio.cpp: + * ace/OS_NS_stdio.inl: + * ace/OS_NS_unistd.inl: + * ace/README: + Added new ACE_LACKS_INTPTR_T and use this. This type is used to call + _open_osfhandle on windows. It seems not to be available with BCB6 + and earlier and msvc6. Thanks to Simon McQueen for notifying me that + msvc6 also lacks this. + +Fri Sep 30 07:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/SOCK_IO.cpp: + * ace/SOCK_Dgram_Bcast.cpp: + * ace/SOCK_Dgram.cpp: + * ace/OS_NS_unistd.inl: + * ace/OS_NS_stdio.inl: + * ace/OS_NS_stdio.cpp: + * ace/MEM_IO.cpp: + * ace/ACE.cpp: + Fixed 64bit conversion warnings when building on win32 with 64bit + warnings enabled + +Thu Sep 29 16:07:02 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * bin/FOCUS: + Directory where FOCUS related work will be added. + + * bin/FOCUS/ChangeLog: + * bin/FOCUS/FOCUS.pl: + * bin/FOCUS/NEWS: + * bin/FOCUS/PROBLEM-REPORT-FORM: + * bin/FOCUS/Parser: + * bin/FOCUS/README: + * bin/FOCUS/VERSION: + * bin/FOCUS/docs: + * bin/FOCUS/specializations: + + FOCUS related files and directories. Please read the Changelog + in FOCUS for more details on each component. + + * bin/FOCUS/specializations/Context-Specific-Optimizations: + * bin/FOCUS/specializations/Flushing_Strategy: + * bin/FOCUS/specializations/Messaging_Strategy: + * bin/FOCUS/specializations/Protocol_Family: + * bin/FOCUS/specializations/README: + * bin/FOCUS/specializations/Reactor_Family: + * bin/FOCUS/specializations/Wait_Strategy: + + Specializations for the different components in ACE+TAO. Each + directory contains the specialization files for specializing the + appropriate component/strategy. + + * bin/FOCUS/Parser/FOCUSParser.pm: + + Parser/weaver that reads the specialization description and + performs the transformations. + + * bin/FOCUS/docs/FOCUS.html: + + Start at the documentation effort. + + The Changelogs within the FOCUS directory will capture the + different changes henceforth. + +Thu Sep 29 13:28:29 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * bin/fuzz.pl (check_for_refcountservantbase): + + Added a new fuzz check to catch derivations to + PortableServer::RefCountServantBase. Obviously, this check only + applied to TAO, and the test itself isn't very discriminating as + it simply looks for the presence of + "PortableServer::RefCountServantBase" in a file and doesn't + attempt to detect derivation. There are also no means to turn + off the check in comments. But it's better than nothing. + +Thu Sep 29 15:18:24 2005 Simon McQueen <sm@prismtech.com> + + * bin/tao_other_tests.lst: + + Scheduled TAO/orbsvcs/tests/Bug_2247_Regression. + +Thu Sep 29 12:18:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/footprint_stats.sh: + Fixed codeset library name + +Thu Sep 29 09:03:00 UTC 2005 Simon Massey <simon.massey@prismtech.com> + + * apps/JAWS2/JAWS/IO_Acceptor.cpp: + Fixed unused parameters + +Thu Sep 29 09:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * html/Stats/footer.html: + * html/Stats/configuration.shtml: + * html/Stats/navigation.html: + * html/Stats/index.shtml: + * html/Stats/detailed_footprint.shtml: + I have taken the files currently on the webserver and updated + cvs with these versions. This way we can update these files + in cvs and update the webserver automatically. I will reconfigure + the stats build to copy all the files in this directory to + the webserver when the build is ready + + * html/Stats/footprint.shtml: + * html/Stats/img.html: + * html/Stats/simple_footprint.shtml: + * html/Stats/performance.shtml: + * html/Stats/compilation.shtml: + New files + + * bin/footprint_stats.sh: + Also generate the footprint of the new core TAO libs we added + the last months + +Thu Sep 29 08:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * html/index.html: + Fixed typo + +Thu Sep 29 07:59:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_fcntl.cpp: + Use C++ cast instead of c-style cast + + * ace/FILE_Connector.cpp: + Small layout fix + +Wed Sep 28 11:38:07 2005 Chad Elliott <elliott_c@ociweb.com> + + Committing the following change on behalf of Wallace Zhang + <zhang_w@ociweb.com>. + + * bin/tao_orb_tests.lst: + + Enabled a new Smart Proxy test,i.e., + $TAO_ROOT/tests/Smart_Proxies/dtor/run_test.pl + +Wed Sep 28 07:46:57 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Atomic_Op.cpp: + * ace/Atomic_Op.h: + * ace/Atomic_Op.inl: + * ace/Object_Manager.cpp: + + Revert change: + Fri Sep 16 19:54:20 2005 J.T. Conklin <jtc@acorntoolworks.com> + + As the new ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> + template specialization was not found responsible for the + TAO performance regressions. + +Wed Sep 28 11:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ACE-INSTALL.html: + Small updates to Borland documentation + +Wed Sep 28 07:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/compiler.bor: + At the moment BCBVER is not set, we default to BCB6. + +Tue Sep 27 13:40:45 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_config_handlers.mpb + * bin/MakeProjectCreator/config/ciao_xml_utils.mpb + + Added files that should have been part of the previous commit. + +Tue Sep 27 13:12:28 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_client.mpb + + Removed another obsolete ciao base project. + + * bin/MakeProjectCreator/config/ciao_client_dnc.mpb + * bin/MakeProjectCreator/config/ciao_component_dnc.mpb + * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb + * bin/MakeProjectCreator/config/ciao_server_dnc.mpb + + Revamped the CIAO base project structure to fix deficiencies + exposed by the especially strict linker on MacOS. + +Tue Sep 27 10:29:49 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_component.mpb + * bin/MakeProjectCreator/config/ciao_servant.mpb + * bin/MakeProjectCreator/config/ciao_server.mpb + + Removed obsolete CIAO base projects. + +Tue Sep 27 13:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/ciao_DAnCE.doxygen: + Removed zapped XML_Helpers directory + +Tue Sep 27 10:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/fuzz.pl: + Also detect ACE_THROW in an ACE_TRY block + +Mon Sep 26 10:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/fuzz.pl: + Extended fuzz check to detect ACE_THROW_RETURN in an ACE_TRY block, + in that case ACE_TRY_THROW should be used. + +Mon Sep 26 10:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/ciao_xml_helpers.doxygen: + * etc/ciao_config_handlers.doxygen: + Renamed ciao_xml_helpers to ciao_config_handlers. Corrected also + paths, fixes errors in the doxygen build + + * bin/generate_doxygen.pl: + Updated change above + +Sat Sep 24 12:56:20 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * ace/Acceptor.cpp: + * ace/Strategies_T.cpp (accept_svc_handler): + + Errno of failed accept() call is potentially not preserved due + to unguarded call of svc_handler->close(). Thus when + accept_svc_handler() returns -1 the errno value may be due to a + subsequent failure in the svc_handler->close() method rather + than the original accept() failure, making handling of the + accept() failures difficult. Thanks to Russell Mora + <russell_mora at symantec dot com> for the patch. + +Fri Sep 23 10:07:25 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ace/config-macosx-tiger.h + * include/makeinclude/platform_macosx_tiger_gcc4.GNU + + Updates for Tiger compatibility. Thanks to Michael van der + Westhuizen (r1mikey at gmail dot com) for help with tracking + down some troublesome issues in the platform_macros. + +Thu Sep 22 12:40:20 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/ace.m4: + + Set BUILD_TAO_FLRESOURCE, BUILD_TAO_QTRESOURCE, + BUILD_TAO_TKRESOURCE, and BUILD_TAO_XTRESOURCE automake + conditionals if --enable-fl-reactor, --enable-qt-reactor, + --enable-tk-reactor, or --enable-xt-reactor are specified + at configure time. + +Thu Sep 22 08:40:00 UTC 2005 Simon Massey <simon.massey@prismtech.com> + + * tests/run_test.lst: + Stop based_pointer_test running on VxWorks and Static builds. + +Thu Sep 22 08:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/ASX/Event_Server/Event_Server/event_server.cpp: + * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.h: + 64bit fix + + * bin/fuzz.pl: + Extended fuzz check to detect several corba calls without an + ACE_CHECK in between + + * ace/SOCK_Dgram.cpp: + Small layout fixes + + * ace/Service_Config.h: + Added missing ACE_LIB_TEXT to some macros + +Tue Sep 20 10:37:24 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Pipe.inl: Added #include of "ace/ACE.h" to get the + right class definition for the ACE:: methods. Thanks to Simon + Massey for reporting this. + +Tue Sep 20 15:20:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * bin/tao_orb_tests.lst: + Added new TAO/tests/CallbackTest/*.pl tests. + +Tue Sep 20 10:10:00 UTC 2005 Simon Massey <simon.massey@prismtech.com> + + * tests/Based_Pointer_Test.cpp: + Attempt to fix bug 2232 (Implimented the diffs found there). + +Tue Sep 20 08:43:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * bin/tao_other_tests.lst: + Added new IPV6 specific tests. + +Tue Sep 20 08:29:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * bin/tao_orb_tests.lst: + Added new TAO/tests/BiDirectional/run_test_ipv6.pl + IPV6 test. + +Mon Sep 19 11:43:59 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * docs/ACE-guidelines.html: Added a guideline that disallows the use of + assert() macros et al. in core ACE, TAO, and CIAO + library/framework code. Thanks to Dave Giovannini <giovanninid + at ociweb dot com> and Carlos O'Ryan for motivating this. + + * protocols/ace/RMCast/Socket.cpp: Replaced the use of ACE_OS::write() + and ACE_OS::read() with the new ACE_Pipe::send() and + ACE_Pipe::recv() methods thanks to Felix's enhancements. + + * ace/Pipe.{h,inl,cpp}: Added a full complement of send*() and recv*() + methods so that the code is portable across different operating + systems without requiring user-level #ifdefs. Thanks to Felix + Li <fengli@gmail.com> for submitting these enhancements. + +Mon Sep 19 12:35:39 2005 Justin Michel <michel_j@ociweb.com> + + * tests/MT_SOCK_Test.cpp: + + Fix use of ACE_static_cast from my Fri Sep 2 checkin. + +Mon Sep 19 10:51:26 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/generate_doxygen.pl + + Removed obsolete CIAO projects from Doxygen generation. + + * etc/ciao_xml_helpers.doxygen + + Updated path to new config_handlers. + + * etc/ciao_assembly_deployer.doxygen + * etc/ciao_componentserver.doxygen + * etc/ciao_daemon.doxygen + * etc/ciao_serveractivator.doxygen + + Removed obsolete ciao doxygen files. + +Sun Sep 18 17:28:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/INET_Addr.cpp: + Fixed bug in ACE_INET_Addr::string_to_addr(). + +Sun Sep 18 17:26:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/Log_Msg.cpp: + Fixed compile error in latest addition to code. + +Sun Sep 18 10:08:05 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Log_Msg.cpp (log): Check for passing of NULL pointers to %s + formatting strings and replace them with "(null") to avoid + crashes. Thanks to Steven Xie <steven.xie@mpathix.com> for + reporting this and to J.T. for suggesting the fix. + + * protocols/ace/RMCast/Acknowledge.cpp (ACE_RMCast): + made the default ACE_Hash_Map_Manager size be 10 rather than + 1024. Thanks to Felix Li <fengli@gmail.com> for reporting + this. + +Fri Sep 16 19:54:20 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Atomic_Op.cpp: + * ace/Atomic_Op.h: + * ace/Atomic_Op.inl: + * ace/Object_Manager.cpp: + + #if 0 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> + specialization to see if it's responsible for recent + TAO performance degradation. + +Fri Sep 16 10:57:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * bin/tao_orb_tests.lst: + + Added new TAO/tests/IPV6 test to runlist (only when config + IPV6 defined). + +Thu Sep 15 12:35:27 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * THANKS: + + Added Jin Zhi Ye. + + * ace/os_include/os_stdio.h: + + #undef fgetc and fputc if they are defined, as macro expansion + conflicts with our use of the same names in the ACE_OS wrapper + functions. Reported by Jin Zhi Ye <jinzhiye at kedacom dot com>. + +Thu Sep 15 18:55:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/Atomic_Op.inl: + + Small fix to get rid of annoying warning on Windows concerning + unary '-'. + +Wed Sep 14 13:36:34 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Changed ACE_HAS_MEMCPY_LOOP_UNROLL feature test code such that + smemcpy() correctly returns it's first argument. + + Added third argument to ACE_HAS_MEMCPY_LOOP_UNROLL's AC_DEFINE + to provide the description for config.h. + +Tue Sep 13 14:38:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * include/makeinclude/platform_vxworks5.5.x.GNU: + + Changed munching step for VxWorks SIMPC builds to generate asm + output to circumvent compiler output problem in certain files. + + * include/makeinclude/rules.lib.GNU: + + Small change to make output of prelink step visible for static + libraries build for VxWorks with -frepo. + +Tue Sep 13 09:30:03 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * ace/OS_NS_string.{h,cpp,inl}: + Updated the loop unrolled memcpy version name to fast_memcpy + rather than smemcpy. + +Tue Sep 13 09:18:54 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * configure.ac: + + Fixed the autoconf test that checks for memcpy loop unrolling + optimization, by (1) removing the testit function and replacing + it with a function pointer, (2) by properly setting the right + ACE macro when the test succeeds and (3) enabling the flag only + when the test produces a result > 10% for all sizes between + 1..16. + +Tue Sep 13 14:10:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tests/Cached_Accept_Conn_Test.cpp: + * tests/Cached_Conn_Test.cpp: + * tests/Message_Block_Test.cpp: + + Fixed problems with explicit template instantiations and + VxWorks builds. + +Tue Sep 13 11:52:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * apps/JAWS2/JAWS/Cache_Manager_T.cpp: + * examples/APG/Logging/LogManager.h: + * examples/APG/Logging/Use_Multiple_Sinks.cpp: + * examples/APG/Logging/Use_Ostream.cpp: + * examples/C++NPv1/Logging_Client.cpp: + * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: + * examples/C++NPv2/Server_Shutdown.cpp: + * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: + * examples/Export/test.cpp: + + Fixed for environments defining ACE_USES_OLD_IOSTREAMS + (which unfortunately is the case for Windows x64 at the + moment due to shortcomings in the Platform SDK). + +Tue Sep 13 10:30:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * bin/tao_orb_tests.lst: + Added Bug_2234_Regression test. + +Tue Sep 13 10:11:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * bin/tao_orb_tests.lst: + Excluded a few tests based on 'IPV6' configuration because + they use features which are not IPv6 compatible (yet) like + SHMIOP. + +Fri Sep 9 18:57:31 2005 Steve Huston <shuston@riverace.com> + + * ace/Sock_Connect.cpp (bind_port): Replace variable s_addr with + addr_p. s_addr is a macro on some systems (in this case, Solaris 8) + and caused problems. + +Fri Sep 9 11:05:27 2005 Phil Mesnier <mesnier_p@ociweb.com> + + * ace/config-lynxos4.0.0.h: + Added new config file to accomodate new version of LynxOS. + +Thu Sep 8 16:33:38 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/tls.m4: + + Added support for --with-openssl, --with-openssl-include, and + --with-openssl-libdir options so users can select or override + the location of the OpenSSL libraries. + +Thu Sep 8 18:43:12 2005 Steve Huston <shuston@riverace.com> + + * tests/Based_Pointer_Test.cpp (mmap_remap_test): Don't keep increasing + the allocation until the base pointer changes without checking for + an allocation failure. This caused all memory to be absorbed on AIX + without remapping the base, then the log file was so big that + the log processor for the scoreboard ran out of memory processing it. + +Thu Sep 8 06:47:11 2005 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: + + Allow files with .. in the path to count in the VPATH setting. + +Wed Sep 7 14:44:58 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/SSL/Makefile.am: + * examples/C++NPv2/Makefile.am: + * examples/IPC_SAP/SSL_SAP/Makefile.am: + + Regenerated. + + * bin/MakeProjectCreator/config/ace_openssl.mpb: + + Use 'compile_flags' instead of 'includes' to set compile flags + to @ACE_TLS_CPPFLAGS@. Thanks to Chad Elliot for this hint. + + Uncomment automake "specific" block. + +Tue Sep 6 22:02:16 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/ace_openssl.mpb: + + Subtract /usr/kerberos/includes from includes for automake + builds. + + Changed ${ACE_TLS_FOO} to @ACE_TLS_FOO@ so variables will be + substituted by the values obtained by the configure script. + +Tue Sep 6 21:56:43 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * m4/tls.m4: + + Changed to substitute ACE_TLS_CPPFLAGS and ACE_TLS_LDFLAGS like + was done with ACE_TLS_LIBS. + +Tue Sep 6 19:43:47 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/automake.features: + + New features file for automake build. + +Tue Sep 6 17:37:15 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/ssl.mpb: + * ace/SSL/ssl.mpc: + + Changed to inherit from ace_openssl.mpb instead of openssl.mpb. + + * bin/MakeProjectCreator/config/ace_openssl.mpb: + + New file, similar to other ace_*.mpb files, so we can + override values inherited from MPC's openssl.mpb. + +Tue Sep 6 12:20:22 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Object_Manager.cpp: + + Changed to invoke ACE_Atomic_Op<ACE_Thread_Mutex, unsigned + long>::init_functions () to initialize function pointers. + + * ace/Atomic_Op.cpp: + * ace/Atomic_Op.h: + * ace/Atomic_Op.inl: + + Added ACE_Atomic_Op<ACE_Thread_mutex, unsigned long> template + specialization using the existing atomic operations for longs + with judicious use of casts. The implementation isn't ideal, + since two sets of function pointers need to be set. This can + be revisited when we add specializations for int and unsigned + int. + +Tue Sep 6 10:32:23 2005 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/templates/gnu.mpd: + + Change the position of the use of custom 'output_option' setting. + Ensure that the input file is the last thing on the command line. + +Tue Sep 6 12:51:19 UTC 2005 Don Sharp <Donald.Sharp@prismtech.com> + + * apps/JAWS2/JAWS/IO.h + Small fix to counter LynxOS' defining ERROR_MESSAGE + +Tue Sep 6 08:46:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * include/makeinclude/platform_vxworks5.5.x.GNU: + Small fix for '-frepo' builds with shared libs. + +Mon Sep 5 14:56:53 2005 Boris Kolpackov <boris@kolpackov.net> + + * protocols/ace/RMCast/Socket.cpp: + + Reverted this change: "Replaced calls to read/write with + recv_n/send_n to make things work with BCB on Windows". + It breaks VC6. + +Sun Sep 4 22:27:19 2005 Boris Kolpackov <boris@kolpackov.net> + + * protocols/ace/RMCast/Link.cpp: + + Aligned receiving buffer manually. This is necessary because + some of the broken compilers (like BCB) do not adhere to the + standard when it some to the alignment of the buffers returned + by operator new. Thanks to Vladislav Zverev <vladislav at gtss + dot spb dot ru> for reporting this. + + * protocols/ace/RMCast/Socket.cpp: + * protocols/ace/RMCast/Socket.h: + + Added the from argument to the recv() function. Made the Reactor + interface code executed only when it is actually used. Replaced + calls to read/write with recv_n/send_n to make things work with + BCB on Windows. Thanks to Vladislav Zverev <vladislav at gtss + dot spb dot ru> for suggestions. + +Fri Sep 2 08:29:38 2005 Arvind S. Krishna <arvindk@tango.dre.vanderbilt.edu> + + * ace/OS_NS_string.h: + * ace/OS_NS_string.cpp: + * ace/OS_NS_string.inl: + + Updated the ACE_OS::memcpy optimization to factor out the loop + unrolled code into a separate function. This should enable + memcpy function itself to be inlined. Thanks to JT jtc at + acorntoolworks dot com. + +Fri Sep 2 10:44:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/SOCK_Dgram{.h .cpp}: + * ace/SOCK_Dgram_Mcast{.h .cpp}: + Added IPv6 multicast support for Win32 (>= XP Pro/Server 2003). + + * tests/Multicast_Test_IPV6.cpp: + Changed to do IPv6 multicast for non-linux systems as well. + + * bin/MakeProjectCreator/config/ipv6.mpb: + Added new feature config for IPv6 support. + Adds additional link library Iphlpapi.lib for windows projects + (MPC types vc6, vc7, vc71, vc8, nmake, borland and bmake) + and sets macro ACE_HAS_IPV6. + + * bin/MakeProjectCreator/config/global.features: + * bin/MakeProjectCreator/config/acedefaults.mpb: + Introduced 'ipv6' feature. + +Fri Sep 2 15:08:27 2005 Justin Michel <michel_j@ociweb.com> + + * ace/ACE.cpp: + + The code that waited for connections to complete had problems + with some Windows machines. The code now doesn't trust the write + bit in select() to indicate an accepted connection. + + * ace/SOCK_Connector.cpp: + + There was a workaround for ACE_WIN32 that would wait 35ms and + retry after the first connection failure. It wouldn't retry the + connect(), but would just retry select(). This workaround + appears to be unnecessary for current Windows machines, so I + changed the #ifdef ACE_WIN32 to #ifdef ACE_HAS_NON_BLOCKING_BUG. + + * ace/config-win32-common.h: + + ACE would always default to a ACE_DEFAULT_BACKLOG of 5. Changed + to default to SOMAXCONN on Win32. This special value is used by + Winsock listen() to indicate that the machine should + automatically pick a suitable default. + + * tests/MT_SOCK_Test.cpp: + + This test is really to verify that the listen() backlog feature + works correctly. Updated the code to make this testable and + consistent. The code now sleeps in the server thread to give the + 30 client threads time to attempt to connect. Only 5-9 clients + should succeed, because the Acceptor is created with a listen() + backlog=5. + +Thu Sep 1 17:28:25 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/Atomic_Op.cpp: + * ace/Atomic_Op.h: + + Added ACE_Atomic_Op<ACE_Thread_Mutex, long> template + specialization for AMD64 when compiled with GCC. + +Thu Sep 1 17:38:10 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/ciao_tests.lst + + Corrected the path to the hello test. + +Thu Sep 1 18:00:31 2005 Steve Huston <shuston@riverace.com> + + * tests/Based_Pointer_Test.cpp: Corrected to build on MSVC 6, + lacking template typedefs. Thanks to Johnny Willemsen for + this fix. + +Thu Sep 1 15:05:55 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/MakeProjectCreator/config/ciao_client_dnc.mpb + * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb + + Updates to support the CIAO reorganization. + +Thu Sep 1 19:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/templates/bor.mpd: + For MPC projects that are custom_only and only have IDL + build rules the install target didn't work anymore. If the project + is not an dll or exe, we generate an include of install.bor + and set the install types to includes. This way the install + target works for the generate borland makefiles + +Thu Sep 1 11:55:39 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * ace/OS_NS_unistd.cpp (num_processors, num_processors_online): + + Provide implementation for *BSD and MacOSX. + +Thu Sep 01 10:42:17 2005 Gary Maxey <gary.maxey@hp.com> + + * ace/config-tandem-nsk-mips-v3.h: + Defined ACE_SIZEOF_WCHAR + +Thu Sep 1 15:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/SV_Message_Queue.h: + Fixed copy/paste error + +Thu Sep 1 14:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/POSIX_Proactor.cpp: + * ace/SV_Message_Queue.{h,inl}: + Fixed 64bit warnings + + * ace/UPIPE_Connector.cpp: + Fixed formatting + +Thu Sep 1 14:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Timer_Heap_T.cpp: + Fixed 64bit conversion error + +Thu Sep 1 10:10:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/ACE.cpp: + * ace/LSOCK.{h,cpp}: + Fixed 64bit conversion problems + +Thu Sep 1 10:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_linux_icc.GNU: + Suppress warning 1684 with Intel 9. This is: + Conversion from pointer to same-sized integral type + (potential portability problem) + +Thu Sep 1 09:27:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_sys_socket.{h,inl}: + Updated return value of send/recv methods from int to ssize_t to + fix problems on 64bit systems. On 32bit systems int is size of + ssize_t so no backward compatibility issues. This is part of + bug 2203 + + * ace/OS_NS_unistd.inl: + Replaced c-style cast with C++ cast + +Thu Sep 1 08:20:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * include/makeinclude/platform_vxworks5.5.x.GNU: + Added missing library searchpath for '-frepo' builds. + +Thu Sep 1 07:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Service_Config.h: + Added ACE_REMOVE_SERVICE_DIRECTIVE that works with plain svc.conf + and the xml version. Thanks to + Lothar Werzinger <lothar at xcerla dot com> for creating this new + macro + +Wed Aug 31 14:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/DLL_Manager.cpp: + Initialize pointer to zero + +Wed Aug 31 14:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/MEM_Stream.{h,inl}: + * ace/OS_NS_sys_msg.{h,inl}: + 64bit fixes + + * ace/Framework_Component.cpp: + Initialize pointer to zero + +Wed Aug 31 08:48:19 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * configure.ac: + Added a test to see if memcpy unrolling improves performance as + opposted to a vanilla memcpy. This optimization is thanks to + Mike Martinez martinez_m at oci dot com. + + * OS_NS_string.inl: + Updated ACE_OS::memcpy to use the corresponding loop unrolling + based on a flag set by configure. + +Wed Aug 31 10:33:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Get_Opt.cpp: + Fixed 64bit conversion warning + +Wed Aug 31 10:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/LSOCK.{h,cpp} (recv_handle): + Changed the type of the len argument from int to ssize_t to + fix 64bit conversion problems + +Wed Aug 31 10:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Log_Msg_UNIX_Syslog.{h,cpp}: + * ace/Log_Record.{h,inl}: + Fixed 64bit conversion problems + +Wed Aug 31 10:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Timer_Heap_T.{h,cpp}: + Fixed 64bit conversion problems + +Wed Aug 31 07:39:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/Sock_Connect.cpp: + Fixed WChar problem. + +Wed Aug 31 06:10:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Based_Pointer_Test_Lib.cpp: + Fixed GCC 4 error + +Tue Aug 30 14:50:18 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/OS_NS_Thread.inl (ACE_Thread_ID): + + Moved small functions out-of-line. Reduces footprint and + improves performance slightly. + + From Patrick Bennett <Patrick.Bennett@inin.com> + * ace/OS_NS_Thread.cpp (operator==): + * ace/Thread_Manager.inl (operator=-): + + Corrected thread id/handle equality logic. It was previously + inverted. + +Tue Aug 30 18:50:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Based_Pointer_Test.cpp: + Corrected remap test, some platforms grow the mmap area + downwards. This fixes bugzilla bug 2226. Thanks to + James Megquier <jmegquier at gmail dot com> for reporting this and + Steve Williams <steve at telxio dot com> for validating this. + +Tue Aug 30 18:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_linux_icc.GNU: + Use -fPIC instead -KPIC + +Tue Aug 30 18:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Based_Pointer_Test.cpp: + Some more wchar fixes + +Tue Aug 30 18:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_Thread.{h,cpp}: + Made the methods id, handle and to_string of the ACE_Thread_Id + class const. Thanks to Felix Wyss <FelixW at inin dot com> + for reporting this. + +Tue Aug 30 18:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_linux_icc.GNU: + Use icpc as C++ compiler. + +Tue Aug 30 14:49:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/README: + Added description for new ACE_HAS_IPV6_V6ONLY macro. + +Tue Aug 30 13:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_win32_icc.GNU: + First version of Intel C++ compiler on Windows using GNU make + + * ace/config-win32-msvc-7.h: + Only define ACE_HAS_EXCEPTIONS when it is not defined yet + +Tue Aug 30 12:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Array_Map.h: + The 64bit version of the Intel C++ compiler can only work together + with the latest Platform SDK (June 2005). This SDK ships with an + old version of the system header files, this is not the same as + shipped with Visual C++ 2003. This SDK has the old STL implementation + as shipped with VC6, so we need the workaround for the VC6 compiler + also with the latest SDK. It seems newer system header files define + _CPPLIB_VER, when this is not defined we have old header file, so + made another check, when _MSC_VER is defined, but not _CPPLIB_VER + we assume older header files and use the vc6 way of reverse + iterator usage. Hopefully Microsoft ships a platform SDK soon which + has updated header files + +Tue Aug 30 12:22:17 2005 Simon McQueen <sm@prismtech.com> + + * apps/JAWS2/JAWS/IO.cpp: + * apps/JAWS2/JAWS/IO.h: + + Removed mispelled message type 'CONFORMATION'. + +Tue Aug 30 10:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Process_Manager.cpp: + * ace/WFMO_Reactor.cpp: + Fixed incorrect checks for MSC_VER, it should be _MSC_VER + +Tue Aug 30 10:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Based_Pointer_Test.cpp: + Fixed compile error + +Tue Aug 30 09:00:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/Default_Constants.h: + Added some new default macros for IPv6. + + * ace/INET_Addr{.cpp .h .inl}: + Added more (IPv6 specific) functionality (is_xxx methods). + Changed get_host_addr() to return IPv6 formatted string for + IPv4 mapped IPv6 addresses (argumentation inside:). + Changed string_to_addr() to recognize and handle extended + IPv6 textual address format, i.e. '[' <ipv6> ']'. + + * ace/Sock_Connect.cpp: + Added support for retrieval of IPv6 local interfaces to + ACE::get_ip_interfaces(). + Supported for Windows XP (and newer) and Linux (possibly other + *nixes as well). + +Tue Aug 30 06:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * include/makeinclude/platform_linux_icc.GNU: + When inlining is disabled, add -fno-inline to the compiler flags. + This should fix the assembler errors the Intel 9 compiler on + linux gives + +Mon Aug 29 17:26:49 2005 Steve Huston <shuston@riverace.com> + + * ace/Reactor_Token_T.h: Set the default queueing policy to + ACE_Token::FIFO, instead of ACE_TOKEN_TYPE::FIFO to work around + MSVC 6's inability to deal with the definition inside a + template class argument. This hack can be removed after + ACE 5.5 is released. + +Mon Aug 29 19:33:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Based_Pointer_Test.cpp: + Wchar fixes + +Mon Aug 29 14:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Based_Pointer_Test.cpp: + Fixed GCC compile error + +Mon Aug 29 14:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Object_Manager.cpp: + Also for Intel C++ call the _CrtSetReportMode + +Mon Aug 29 10:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/nmake.features: + New features file for the nmake project type + +Mon Aug 29 09:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/MMAP_Memory_Pool.cpp: + Fixed bugzilla bug 2218, when an ACE_MMAP_Memory_Pool memory + segment base address is moved due to a remapping operation, + the ACE_Based_Pointer_Repository is updated with the new + base address, but the old mapping was not removed. + + Thanks to Steve Williams <steve at telxio dot com> for reporting + this and supplying the fix and regression test below. + +Mon Aug 29 09:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/MMAP_Memory_Pool.cpp: + Fixed bugzilla bug 2216, when an ACE_MMAP_Memory_Pool is created + using an existing backing store, the ACE_Based_Pointer_repository + was not updated with the mapped segment information. + + Thanks to Steve Williams <steve at telxio dot com> for reporting + this and supplying the fix and regression test below. + +Mon Aug 29 09:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Based_Pointer_Repository.h: + Export the based pointer repository from the dll as singleton. + Fixes bugzilla bug 1919. + + * tests/Based_Pointer_Test.cpp: + * tests/Based_Pointer_Test_Lib.cpp: + New test for bugzilla bug 1919. Thanks to Steve Williams + <steve at telxio dot com> for creating this test + + * tests/run_test.lst: + Added Based_Pointer_Test + + * tests/tests.mpc: + Added Based_Pointer_Test + +Sun Aug 28 14:25:07 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * ace/Reactor.h: + * ace/Reactor.cpp: + * ace/Reactor.inl: + * ace/Select_Reactor.h: + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_T.cpp: + * ace/Select_Reactor_T.h: + * ace/TP_Reactor.cpp: + + The reactor framework in ACE allows plug and play of different + reactors such as Select, TP, Devpoll etc. The TAO middleware + implementation and applications that run atop TAO typically use + one particular implementation of the Reactor. For example, a + single-threaded application might use select_* reactors. The + Reactor framework uses the bridge pattern to transparently + invoke operations on the right reactors. When the concrete + Reactor is known, it should be possible to specialize the + framework to use the concrete reactor directly rather than use + the bridge. + + As a part of the Feature Oriented Customizer (FOCUS) tool being + developed in my research, we are trying to specialize frameworks + when the concrete implementation type is known a priori. FOCUS + provides an XML based transformation engine, where the + specialization transformations are captured in XML file and a + weaver specializes the code. + + To help in this transformation process, this commit adds markers + within the source code. These markers are added as special + comments. For example, //@@ + REACTOR_SPL_INCLUDE_FORWARD_DECL_ADD_HOOK represents a hook + where forward declarations and include files are added by the + weaver. As these markers are comments therefore should not + affect normal applications in *any* manner. Additionally, + applications that use multiple reactor implementations not be + affected/do not need any change. Currently, these + specializations are targeted for TAO middleware, where + applications know the target reactor a priori and want to + leverage the specialization to improve performance. + +Sun Aug 28 14:13:25 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * ace/Object_Manager.cpp: + * ace/Naming_Context.cpp: + * ace/Log_Msg.cpp: + + When ACE_HAS_TRACE flag is defined, the aforementioned files did + not include the Trace.h include. This commit fixes the + resulting compilation problems. + +Fri Aug 26 18:01:31 2005 Steve Huston <shuston@riverace.com> + + * ace/Select_Reactor.cpp: + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_T.(h cpp): + * ace/Reactor_Token_T.(h cpp): Moved the definition/implementation of + ACE_Select_Reactor_Token_T and its associated token-type selection + macros to new file Reactor_Token_T.(h cpp); retargeted + ACE_Select_Reactor_Token_T to call the ACE_Reactor_Impl interface + rather than ACE_Select_Reactor. Renamed the class + ACE_Reactor_Token_T to reflect this refactoring. This allows the + token to be used in reactor implementations that are not derived + from ACE_Select_Reactor. + + * ace/ace.mpc: + * ace/Makefile.am: Added the new files Reactor_Token_T.cpp and .h. + + * ace/Dev_Poll_Reactor.(h cpp): Replace the use of ACE_SYNCH_MUTEX with + ACE_Reactor_Token_T for the reactor's internal-protecting lock. + Allows threads wishing to twiddle with the registrations or run the + event loop to properly notify and synchronize with another thread + that's already running the event loop. + Also Clarified documentation on the queue-type members of + ACE_Dev_Poll_Reactor_Notify. + + * ace/POSIX_Proactor.cpp (ACE_POSIX_SIG_Proactor::handle_events_i): + Retry the wait on EINTR. Previous comments said this automatically + happened because ACE_OSCALL_RETURN did it; it no longer does that, + so explicit EINTR check code was added here. + + * apps/JAWS3/jaws3/Event_Dispatcher.h: Correct for the new reactor + token type defined, above. + + * tests/MT_Reference_Counted_Event_Handler_Test.cpp: Added ACE_TEXT + where needed for ACE_DEBUG statements. + + * tests/Multicast_Test.cpp: After stopping the reactor loop on test + timeout, wait for the task's thread(s) to exit or there's a race + between thread exit and deleting the task's memory. + +Fri Aug 26 10:52:38 2005 Gary Maxey <gary.maxey@hp.com> + + * ace/Array_Map.inl: + + In operator[], broke complex statement into two statements. + Compiler got confused by the original statement and generated + incorrect code. + +Fri Aug 26 11:43:01 2005 Justin Michel <michel_j@ociweb.com> + + * ace/CDR_Stream.h: + * ace/CDR_Stream.inl: + * ace/CDR_Stream.cpp: + + Add a new simple class using RAII to call reset on an output CDR + when it goes out of scope. This is used to implement a new TAO + option that will reset() output CDRs after sending each request. + + Add an optional ACE_Lock* to one of the input CDR + constructors. This is used by one of the TAO Any_Impl derived + classes to provide thread safety for its internal CDR. + +Fri Aug 26 11:02:21 2005 Chad Elliott <elliott_c@ociweb.com> + + * bin/fuzz.pl: + + Enhanced the check_for_ace_check function to detect the use of + ACE_CHECK/ACE_CHECK_RETURN from within an ACE_TRY block. + +Fri Aug 26 09:40:08 2005 Justin Michel <michel_j@ociweb.com> + + * ace/OS_NS_Thread.cpp: + + Add missing ACE_ADAPT_RETVAL functions for calls to ::pthread* + routines. This allows the caller to check the errno to find out + what went wrong. + +Fri Aug 26 09:06:32 2005 Chad Elliott <elliott_c@ociweb.com> + + * bin/fuzz.pl: + + Fixed the detection of missing ACE_CHECK/ACE_TRY_CHECK. It was + missing most ACE_ENV_ARG_PARAMETER's due to a fouled up regular + expression. + +Fri Aug 26 13:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Reactor.cpp (schedule_timer): + Fixed implicit conversion from long to int to long, found + by 64bit warnings + + * ace/POSIX_Asynch_IO.cpp: + Fixed 64bit bit conversion warning + +Thu Aug 25 18:53:31 2005 Steve Huston <shuston@riverace.com> + + * tests/Array_Map_Test.cpp: Don't attempt to build this test if + using explicit template instantiation. It's hopeless trying STL + code with explicit templates, especially portably. + + * tests/Time_Value_Test.cpp: Fixed typo. + +Thu Aug 25 11:40:36 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * ace/Task.cpp (activate): Corrected misuse of the argument + 'grp_id' rather than the data member 'grp_id_'. This prevented + activate() from being able to join existing group. Thanks to + Kevin Heifner <heifner_k at ociweb dot com> for catching this. + +Thu Aug 25 12:32:18 2005 Steve Huston <shuston@riverace.com> + + * tests/Process_Manual_Event_Test.cpp: Removed #if0 block put in + for testing and fixed compile error. + +Wed Aug 24 19:09:31 2005 Steve Huston <shuston@riverace.com> + + * configure.ac: Copied in updated copyright paragraph from COPYING. + + * ace/OS_NS_Thread.cpp: Formatting fixes. + + * tests/Process_Manual_Event_Test.cpp: ACE_ERROR formatting + corrections (%p needs a string); code format fixes. + +Wed Aug 24 17:15:28 2005 Steve Huston <shuston@riverace.com> + + * ace/Stream_Modules.h: Added some info about ACE_Stream_Head so + I don't have to keep looking it up ;-) + +Wed Aug 24 12:39:04 2005 Chad Elliott <elliott_c@ociweb.com> + + * bin/fuzz.pl: + + Fixed this script to work with the ACE_ENV_ARG_PARAMTER and + ACE_ENV_SINGLE_ARG_PARAMETER macros. This will begin to check all + of the missing ACE_CHECK/ACE_TRY_CHECK's again. + +Wed Aug 24 08:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Select_Reactor_Base.cpp: + Fixed possible unitialized used warning + +Tue Aug 23 22:56:33 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Dev_Poll_Reactor.cpp (close): + + Removed unnecessary zeroing of underlying epoll data structure + array. + + Deallocate epoll event data structure array and /dev/poll event + handler file descriptor array after closing the epoll and + /dev/poll file descriptor, respectively, to ensure consistent + finalization of resources, to prevent potential destruction of + event resources while waiting for events in another thread. + It's not clear whether such a scenario will occur since a lock + is currently held but better to be consistent. + +Tue Aug 23 22:35:00 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/Array_Map_Test.cpp (reference_count_test): + + Added some assertions to further verify correct ACE_Array_Map + operation. + + * tests/Dev_Poll_Reactor_Test.cpp (handle_input): + + Fixed loop variable increment. A for-scope variable was + shadowing the "bytes_read" value, preventing the loop variable + from being updated correctly. + +Tue Aug 23 22:24:16 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/Atomic_Op_T.cpp: + * ace/Atomic_Op_T.inl: + + Moved inlined constructor to the ".inl" inline source file. + +Tue Aug 23 22:17:29 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * apps/JAWS2/JAWS/JAWS.h: + + Fixed '"JAWS_NTRACE" is not defined' g++ 4.0 preprocessor symbol + warning. + +Tue Aug 23 19:59:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/JAWS2/JAWS/IO_Handler.{h,cpp}: + Tried to fix gcc4 errors + +Tue Aug 23 18:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Configuration.cpp: + Explicitly initialize local variables + + * ace/OS_NS_sys_socket.inl: + Removed not needed c-style casts that caused 64bit warnings + +Mon Aug 22 09:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/bmake.features + * bin/MakeProjectCreator/config/borland.features + * bin/MakeProjectCreator/config/em3.features + * bin/MakeProjectCreator/config/gnuace.features + * bin/MakeProjectCreator/config/vc6.features + * bin/MakeProjectCreator/config/vc71.features + * bin/MakeProjectCreator/config/vc8.features + New features file for each project type we ship in the release. + This files are read by MPC for the correct type when generating + makefiles. + + * bin/make_release: + No need to generate multiple default.features file in the + release proces, this is now handled in the features file + per project type + +Mon Aug 22 08:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-unixware-7.1.0.udk.h: + Removed commented out define + +Mon Aug 22 08:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-msvc-8.h: + Disable warning 4290 again + +Mon Aug 22 08:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Configuration.{h,cpp}: + Moved operator != out of header file to cpp file + +Mon Aug 22 11:09:07 2005 Olli Savia <ops@iki.fi> + + * include/makeinclude/platform_lynxos.GNU: + Improved shared library support for LynxOS 4.0 + +Sun Aug 21 13:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Select_Reactor_T.cpp (check_handles): + Pass select_handles as 0 on Win32, this was now just done for + Win64, but it is not needed on Win32 and also causes conversion + warnings when 64bit checks are enabled on win32. + +Sun Aug 21 11:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/msvc_static_order.lst: + Added the new core libs + +Fri Aug 19 14:15:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/Sock_Connect.cpp: + Reverted IPv6 related to accomodate some TAO builds which have + ACE_HAS_IPV6 but do not have my TAO IPv6 changes yet. + Will commit all at a later moment. + +Fri Aug 19 13:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Name_Request_Reply.cpp: + Fixed conversion warning + +Fri Aug 19 13:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/DLL_Manager.cpp + * ace/Log_Msg.cpp + * ace/MEM_Acceptor.cpp + * ace/MEM_IO.inl + * ace/Select_Reactor_Base.cpp + * ace/SV_Semaphore_Complex.cpp + * ace/UUID.cpp + * ace/WIN32_Asynch_IO.cpp + Fixed conversion warnings given by Visual C++ 2003 at warning + level 4. Used the correct types for intermediate variables, no + casts are needed. + +Fri Aug 19 12:28:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/CORBA_macros.h: + For HP aCC use the special ACE_THROW_RETURN to fix the warnings + that the compiler gives + +Fri Aug 19 09:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/tao_pi.doxygen: + * etc/tao_pi_server.doxygen: + * etc/tao_anytypecode.doxygen: + New config files + + * etc/tao_portableserver.doxygen: + Cleanup + + * html/index.html: + Added new libs + + * bin/generate_doxygen.pl: + Also generate documentation for the new projects + +Fri Aug 19 09:04:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/Sock_Connect.cpp: + Added include of OS_NS_stdio.h since some builds otherwise miss out + on things like ACE_OS::fopen() and such (now for real). + + * ace/SOCK_Connector.cpp: + Reverted change which was meant for Sock_Connect.cpp:-( + +Fri Aug 19 08:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-msvc-7.h: + Disable 4290 again, a scoreboard build showed that we need to + disable it, but didn't had that problem on my local systme + +Fri Aug 19 08:33:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/Sock_Connect.cpp: + Added include of OS_NS_stdio.h since some builds otherwise miss out + on things like ACE_OS::fopen() and such. + +Fri Aug 19 07:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + Merged changes from the AnyRefactor branch as below + + Wed Aug 17 07:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/anytypecode.mpb: + * bin/MakeProjectCreator/config/taoclient.mpb: + * bin/MakeProjectCreator/config/taoidldefaults.mpb: + By default we now suppress Any and Typecode generation with -Sa + and -St but when the AnyTypeCode library is used, then these + options are removed from the idl flags. This way simple apps + don't get this lib by default + + Tue Aug 16 19:00:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-msvc-7.h: + * ace/config-win32-msvc-8.h: + Removed disabling of warning 4290 + + * ace/CORBA_macros.h: + Removed special ACE_THROW_RETURN for win32 and HP aCC, this + is not needed and only gives a lot of warnings at level 4 + with msvc + + Thu Aug 11 10:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/orbsvcsexe.mpb: + Added AnyTypeCode + + Wed Aug 10 11:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/orbsvcslib.mpb: + Added AnyTypeCode as base project. + + Wed Aug 10 09:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/valuetype.mpb: + Added AnyTypeCode as base project + + Wed Aug 10 08:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/taoclient.mpb: + Just for short, added anytypecode to the client. This should really be + dependent on the idl compiler flags + + Fri Jul 29 18:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/codecfactory.mpb + * bin/MakeProjectCreator/config/dynamicany.mpb + * bin/MakeProjectCreator/config/ifr_client.mpb + * bin/MakeProjectCreator/config/iormanip.mpb + * bin/MakeProjectCreator/config/strategies.mpb + Added AnyTypeCode as base project + + Thu Jul 28 12:33:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/MakeProjectCreator/config/anytypecode.mpb: + New base project + +Thu Aug 18 09:34:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * ace/Sock_Connect.cpp: + Added support for retrieval of IPv6 local interfaces to + ACE::get_ip_interfaces(). + Supported for Windows XP (and newer) and Linux (possibly other + *nixes as well). + +Wed Aug 17 18:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Message_Block.{h,cpp,inl}: + In case a locking strategy is used, also make sure we use the + lock when accessing the reference count of the ACE_Data_Block. + Thanks to Viktor Chernenko + <viktor dot chernenko at med dot ge dot com> for reporting this + and supplying some patches to start with. This should fix + according to Viktor some crashes in the notificaion service + under high load. + +Wed Aug 17 15:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Condition_Recursive_Thread_Mutex.{h,cpp}: + Moved ACE_Condition_Recursive_Thread_Mutex constructor + implementation from header to cpp file + +Wed Aug 17 15:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/JAWS2/JAWS/Waiter.cpp: + Call find_by_index instead of find + +Tue Aug 16 19:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/JAWS2/JAWS/Assoc_Array.{h,cpp}: + * apps/JAWS2/JAWS/Concurrency.cpp: + Changed find(int) to find_by_index (int), to resolve + ambiguity warnings of the HP aCC compiler + +Tue Aug 16 11:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/JAWS2/JAWS/Pipeline_Handler_T.cpp: + Replaced c-style cast with reinterpret cast + +Tue Aug 16 11:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-hpux-11.00.h: + Added ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR + +Tue Aug 16 06:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/JAWS2/JAWS/Assoc_Array.cpp: + Removed pragma once + +Mon Aug 15 21:55:00 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * apps/JAWS2/JAWS/IO_Handler.cpp: #include "JAWS/Filecach.h" + to get the definition of JAWS_Cached_FILE. Thanks to + Simon Massey and Steve Huston for reporting this. + +Mon Aug 15 11:03:42 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * bin/MakeProjectCreator/config/dslogadmin_serv.mpb: + + Changed to inherit from utils. + +Mon Aug 15 09:12:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/DLL_Manager.cpp: + We first try to find the file using the decorator so that when a + filename with and without decorator is used, we get the file with + the same decorator as the ACE dll has and then as last resort + the one without. For example with msvc, the debug build has a "d" + decorator, but the release build has none and we really want to get + the debug version of the library in a debug application instead + of the release one. + + Thanks to Vitaly Belekhov <vitaly at megasignal dot com> for + reporting this and supply the patches. This fixed bugzilla + 2210 + +Sun Aug 14 11:27:54 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * apps/JAWS2/JAWS/IO_Handler.cpp (handle_transmit_file): Fixed + a bug where + + delete (ACE_Filecache_Handle *) result.act (); + + should have been + + delete (JAWS_Cached_FILE *) result.act (); + + Thanks to Anand Rathi <anandprathi@yahoo.co.in> for reporting + this. + +Fri Aug 12 12:00:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/JAWS2/JAWS/Parse_Headers.{h,cpp}: + Changed STATUS_CODE enum to fix compile errors with VxWorks + +Thu Aug 11 16:04:30 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * ace/OS_NS_stdio.inl (ACE_HAS_WCHAR vsnprintf): This is an + actively edited file today! Fixed the name of the last + argument in the call so that it actually matches the name + of the argument in the arg list. + +Thu Aug 11 14:13:22 2005 Chad Elliott <elliott_c@ociweb.com> + + * include/makeinclude/platform_sunos5_sunc++.GNU: + + ACE will not compile with SunCC 5.6 or 5.7 if native exceptions + are disabled unless STLPort is used. + +Thu Aug 11 12:29:39 2005 Steve Huston <shuston@riverace.com> + + * ace/Time_Value.inl (msec): When moving tv_sec to ACE_UINT64, + static cast it to the desired ACE_UINT64, not ACE_UINT32. + + * ace/ace_wchar.inl (convert): + * ace/OS_NS_unistd.inl (read): + * ace/OS_NS_stdio.inl (fread, fwrite): + * ace/OS_NS_sys_socket.inl (sendto): Use proper types portable to + 64 bits. + + * ace/Functor.inl (ACE_Hash<ACE_UINT64>): If unsigned long is + not 4 bytes, don't try to cast 64 bits down to 4 bytes. + + * ace/OS_NS_stdio.inl (ACE_HAS_WCHAR vsnprintf): This is the same + situation as ACE_OS::vsprintf - the X/Open/XPG folks got it right + and added the maxlen argument when defining wide-char *printf + functions, so just use vswprintf() - there's no such thing as + vswnprintf(). + +Thu Aug 11 06:44:44 2005 Chad Elliott <elliott_c@ociweb.com> + + * bin/depgen.pl: + * bin/DependencyGenerator/DependencyWriterFactory.pm: + * bin/DependencyGenerator/MakeDependencyWriter.pm: + * bin/DependencyGenerator/MakeObjectGenerator.pm: + * bin/DependencyGenerator/ObjectGeneratorFactory.pm: + + Added a generic make dependency generator. + + * bin/MakeProjectCreator/config/smart_proxies.mpb: + + Switched orbsvcslib with taolib_with_idl since Smart Proxies have + nothing to do with orbsvcs. + + * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: + + Added support for CIAO and a hook for correctly modifying the + library path to account for differences with the automake layout + of ACE and TAO. + + * bin/MakeProjectCreator/templates/gnu.mpd: + + If static_libs_only is set to 1, build up a list of libraries upon + which the BIN target will be dependent. This will cause binaries + to re-link in the event that a static library is updated. + +Thu Aug 11 09:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_stdio.inl: + Made the wchar vsnprintf a notsup, linux doesn't support this and + I don't have time to fix this. + +Thu Aug 11 07:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/JAWS2/JAWS/Concurrency.cpp: + Fixed single threaded build + +Thu Aug 11 07:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/OS_NS_stdio.inl: + Added wchar vsnprintf version, was declared but not implemented + +Wed Aug 10 15:43:37 2005 Gary Maxey <gary.maxey@hp.com> + + * tests/run_test.lst: + Excluded tests inappropriate for HP-NSK platform + +Wed Aug 10 11:27:01 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * ace/OS_NS_stdio.inl (vsnprintf): + + Fixed "no return statement in function returning non-void" + warning. + + Removed uses of deprecated ACE_OSCALL macro. + +Wed Aug 10 10:03:40 2005 Gary Maxey <gary.maxey@hp.com> + + * ace/OS_NS_stdio.inl: + * ace/Process.cpp + + Regarding change: + Fri Jul 22 13:29:32 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + use vsnprintf only if the platform supports it. + +Wed Aug 10 07:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/JAWS2/JAWS/IO.cpp: + * apps/JAWS2/JAWS/IO_Acceptor.cpp: + * apps/JAWS2/JAWS/IO_Handler.h: + Fixed compile errors in Cygwin build + +Wed Aug 10 07:27:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/JAWS2/JAWS/Reaper.h: + Fixed compile error in single threaded builds + +Tue Aug 9 16:57:09 2005 Phil Mesnier <mesnier_p@ociweb.com> + + * bin/MakeProjectCreator/config/taolib.mpb: + Added the codeset project to the "after" list to ensure the + codeset library is built for any project that also depends on + TAO. This is necessary because there are some executables that + depend on libTAO and may therefore depend on libTAO_Codeset, but + do not include taoexe in the MPC base project list. For example + some of the CIAO executables have no need for the build elements + brought in by taoidldefaults base project. + +Tue Aug 9 11:11:50 2005 Phil Mesnier <mesnier_p@ociweb.com> + + * bin/MakeProjectCreator/config/negotiate_codesets.mpb: + Removed unused compiler macro. + + * bin/MakeProjectCreator/config/orbsvcsexe.mpb: + * bin/MakeProjectCreator/config/rt_client.mpb: + * bin/MakeProjectCreator/config/rt_server.mpb: + Added dependency on negotiate_codesets feature so that the + TAO_Codeset library will be added in the correct order, + if desired. + + * bin/MakeProjectCreator/config/taoexe.mpb: + Added Codeset project to the After list to ensure that the + Codeset library is available for dynamic linking for those + applications that require it. + +Tue Aug 9 10:48:39 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/OS_NS_stdio.cpp (snprintf): Added a wchar_t version of + snprintf(). Thanks to Simon Massey for reporting this. + +Tue Aug 9 13:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/make_release: + Added sxd to files that should not get crlf conversion + +Tue Aug 9 13:18:43 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * ace/Global_Macros.h: + + Added missing '#' before a 'define'. + +Tue Aug 9 11:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-win32-msvc-6.h: + Added ACE_HAS_NO_THROW_SPEC + + * ace/Global_Macros.h: + Simplified ACE_THROW_SPEC specificiation. This way with vc71 and vc8 + we get exception specifications. + +Tue Aug 9 10:59:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/Svc_Conf_l.cpp: + Forced a commit of this file, will probably solve the regeneration + errors + + * apps/JAWS2/JAWS/Waiter.h: + Added missing include + +Mon Aug 8 12:54:51 2005 Steve Huston <shuston@riverace.com> + + * ace/Log_Msg.cpp (open): Reverted these changes: + Fri Apr 22 18:02:37 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Log_Msg.cpp (open): Fixed a problem with LOGGER and logger_key + and the backend_->open() call. Thanks to Jerry D. De Master + <jdemaste at rite-solutions dot com> for reporting this. + + Tue Jan 18 08:17:10 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Log_Msg.cpp (open): Fixed the logic to pass prog_name + rather than logger_key, which fixes a bug with syslog. Thanks + to Robert Iakobashvili <roberti@GoNetworks.com> for this fix. + + They broke a fix from: + Sat Dec 1 19:39:22 2001 Steve Huston <shuston@riverace.com> + + * ace/Log_Msg.h: Improved the documentation for open() to note the + role of the logger_key argument when LOGGER and SYSLOG are set in + flags. + To get the progr_name used as the syslog/event log source ID, pass + a 0 logger_key. + + * ace/SOCK_Dgram_Mcast.h: Clarified that instead of using set_option, + use ACE_SOCK::set_option(). + + * ace/DEV_Addr.{h inl cpp}: Fix non-0-terminated name possibility + when setting a new name. Thanks to James Damour + <james dot damour at request dot com> for this fix. + Also introduced a private enum to define the length of the name + buffer and use the new value to limit string copy sizes. + + * THANKS: Added James Damour to the Hall of Fame. + +Mon Aug 8 10:44:16 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ace/OS_NS_stdio.inl + * ace/Process.cpp + + Fixed a compilation problem from: + + Fri Jul 22 13:29:32 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + +Mon Aug 8 09:57:15 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ace/config-macosx-tiger.h + * include/makeinclude/platform_macosx_tiger_gcc4.GNU + + Adding preliminary support for OS X 10.4 + +Mon Aug 8 13:58:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * apps/JAWS2/JAWS/IO.cpp: + * apps/JAWS2/JAWS/Concurrency.{h,cpp}: + Fixed compile problems in single threaded build + +Sat Aug 6 17:25:04 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Svc_Conf.l: Removed the ' and " characters to avoid + problems with Lex. Thanks to Rohini Madhavan <ro_madhavan at + sify dot com> and Brian Buesker <bbuesker at qualcomm dot com> + for helping with this. + +Wed Aug 3 12:35:23 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Asynch_Acceptor.{h,cpp}: + * ace/Asynch_Connector.{h,cpp}: Fixed the code so it doesn't try + to build on Windows CE. Thanks to Alan Anderson + <Alan.Anderson@sdsmt.edu> for reporting this. + + * ace/DEV_Addr.cpp (set): NULL-terminate the devname_ string. + Thanks to James Damour <james.damour@request.com> for reporting + this problem. + +Tue Aug 2 14:01:39 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * THANKS: Added Abdel Rigumye <rigumyea at ociweb dot com>, + who is the 2000th contributor to ACE+TAO+CIAO!!!! + +Fri Jul 22 13:29:32 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * ace/Process.cpp (command_line): Changed the use of + ACE_OS::vsprintf() to use the new ACE_OS::vsnprintf(). Thanks + to Xue for this suggestion, as well. + + * ace/OS_NS_stdio.{h,inl}: Added support for ACE_OS::vsnprintf(). + Thanks to Xue Yong Zhi <seclib at seclib dot com> for this + suggestion. + +Mon Aug 8 08:58:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * bin/tao_orb_tests.lst: + Added two new collocation tests + + * apps/JAWS2/JAWS/jaws2.mpc: + New MPC file + +Fri Aug 05 07:37:20 2005 Simon Massey <sma@prismtech.com> + + * ACE version 5.4.7 released. + + diff --git a/TAO/CIAO/CIDLC/AttributeHeaderEmitters.cpp b/TAO/CIAO/CIDLC/AttributeHeaderEmitters.cpp new file mode 100644 index 00000000000..2442ef3f958 --- /dev/null +++ b/TAO/CIAO/CIDLC/AttributeHeaderEmitters.cpp @@ -0,0 +1,199 @@ +// file : CIDLC/AttributeHeaderEmitters.cpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#include "AttributeHeaderEmitters.hpp" +#include "Literals.hpp" + +using namespace StringLiterals; + +WriteAttributeHeaderEmitter::WriteAttributeHeaderEmitter (Context& c) + : EmitterBase (c), + write_type_name_emitter_ (c), + type_name_emitter_ (c) +{ + write_belongs_.node_traverser (write_type_name_emitter_); + + edge_traverser (set_raises_); + set_raises_.node_traverser (type_name_emitter_); +} + +void +WriteAttributeHeaderEmitter::pre (SemanticGraph::ReadWriteAttribute&) +{ + os << "void" << endl; +} + +void +WriteAttributeHeaderEmitter::name (SemanticGraph::ReadWriteAttribute& a) +{ + os << a.name () << " (" << endl; + + Traversal::ReadWriteAttribute::belongs (a, write_belongs_); + + os << " " << a.name () << endl + << STRS[ENV_HDR] << ")" << endl; +} + +void +WriteAttributeHeaderEmitter::get_raises (SemanticGraph::ReadWriteAttribute&) +{ +} + +void +WriteAttributeHeaderEmitter::set_raises_none (SemanticGraph::ReadWriteAttribute&) +{ + os << STRS[EXCP_SNGL]; +} + +void +WriteAttributeHeaderEmitter::set_raises_pre (SemanticGraph::ReadWriteAttribute&) +{ + os << STRS[EXCP_START] << " " + << STRS[EXCP_SYS] << "," << endl; +} + +void +WriteAttributeHeaderEmitter::set_raises_post (SemanticGraph::ReadWriteAttribute&) +{ + os << "))"; +} + +void +WriteAttributeHeaderEmitter::post (SemanticGraph::ReadWriteAttribute&) +{ + os << ";" << endl; +} + +void +WriteAttributeHeaderEmitter::comma (SemanticGraph::ReadWriteAttribute&) +{ + os << "," << endl; +} + +// ============================================================ + +AttributeHeaderEmitter::AttributeHeaderEmitter (Context& c) + : EmitterBase (c), + read_type_name_emitter_ (c), + type_name_emitter_ (c) +{ + read_belongs_.node_traverser (read_type_name_emitter_); + + edge_traverser (get_raises_); + get_raises_.node_traverser (type_name_emitter_); +} + +// ReadWriteAttribute +// +void +AttributeHeaderEmitter::pre (SemanticGraph::ReadWriteAttribute& a) +{ + os << "virtual "; + + Traversal::ReadWriteAttribute::belongs (a, read_belongs_); + + os << endl; +} + +void +AttributeHeaderEmitter::name (SemanticGraph::ReadWriteAttribute& a) +{ + os << a.name () << " (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl; +} + +void +AttributeHeaderEmitter::get_raises_none (SemanticGraph::ReadWriteAttribute&) +{ + os << STRS[EXCP_SNGL]; +} + +void +AttributeHeaderEmitter::get_raises_pre (SemanticGraph::ReadWriteAttribute&) +{ + os << STRS[EXCP_START] << " " + << STRS[EXCP_SYS] << "," << endl; +} + +void +AttributeHeaderEmitter::get_raises_post (SemanticGraph::ReadWriteAttribute&) +{ + os << "))"; +} + +void +AttributeHeaderEmitter::set_raises (SemanticGraph::ReadWriteAttribute&) +{ +} + +void +AttributeHeaderEmitter::post (SemanticGraph::ReadWriteAttribute& a) +{ + os << ";" << endl; + + WriteAttributeHeaderEmitter write_attribute_emitter (ctx); + write_attribute_emitter.traverse (a); +} + +void +AttributeHeaderEmitter::comma (SemanticGraph::ReadWriteAttribute&) +{ + os << "," << endl; +} + +// ReadAttribute +// +void +AttributeHeaderEmitter::pre (SemanticGraph::ReadAttribute& a) +{ + os << "virtual "; + + Traversal::ReadAttribute::belongs (a, read_belongs_); + + os << endl; +} + +void +AttributeHeaderEmitter::name (SemanticGraph::ReadAttribute& a) +{ + os << a.name () << " (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl; +} + +void +AttributeHeaderEmitter::get_raises_none (SemanticGraph::ReadAttribute&) +{ + os << STRS[EXCP_SNGL]; +} + +void +AttributeHeaderEmitter::get_raises_pre (SemanticGraph::ReadAttribute&) +{ + os << STRS[EXCP_START] << " " + << STRS[EXCP_SYS] << "," << endl; +} + +void +AttributeHeaderEmitter::get_raises_post (SemanticGraph::ReadAttribute&) +{ + os << "))"; +} + +void +AttributeHeaderEmitter::set_raises (SemanticGraph::ReadAttribute&) +{ +} + +void +AttributeHeaderEmitter::post (SemanticGraph::ReadAttribute&) +{ + os << ";" << endl; +} + +void +AttributeHeaderEmitter::comma (SemanticGraph::ReadAttribute&) +{ + os << "," << endl; +} + diff --git a/TAO/CIAO/CIDLC/AttributeHeaderEmitters.hpp b/TAO/CIAO/CIDLC/AttributeHeaderEmitters.hpp new file mode 100644 index 00000000000..f4318ad0073 --- /dev/null +++ b/TAO/CIAO/CIDLC/AttributeHeaderEmitters.hpp @@ -0,0 +1,119 @@ +// file : CIDLC/AttributeHeaderEmitters.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef ATTRIBUTEHEADEREMITTERS_HPP +#define ATTRIBUTEHEADEREMITTERS_HPP + +#include "CCF/CIDL/SemanticGraph.hpp" +#include "CCF/CIDL/Traversal.hpp" + +#include "CorbaTypeNameEmitters.hpp" +#include "UtilityTypeNameEmitters.hpp" +#include "EmitterBase.hpp" + +using namespace CCF::CIDL; +using namespace CCF::CIDL::SemanticGraph; + +struct WriteAttributeHeaderEmitter : Traversal::ReadWriteAttribute, + EmitterBase +{ + WriteAttributeHeaderEmitter (Context& c); + + virtual void + pre (SemanticGraph::ReadWriteAttribute&); + + virtual void + name (SemanticGraph::ReadWriteAttribute&); + + virtual void + get_raises (SemanticGraph::ReadWriteAttribute&); + + virtual void + set_raises_none (SemanticGraph::ReadWriteAttribute&); + + virtual void + set_raises_pre (SemanticGraph::ReadWriteAttribute&); + + virtual void + set_raises_post (SemanticGraph::ReadWriteAttribute&); + + virtual void + post (SemanticGraph::ReadWriteAttribute&); + + virtual void + comma (SemanticGraph::ReadWriteAttribute&); + + private: + INArgTypeNameEmitter write_type_name_emitter_; + FullTypeNameEmitter type_name_emitter_; + Traversal::Belongs write_belongs_; + Traversal::SetRaises set_raises_; +}; + +struct AttributeHeaderEmitter : Traversal::ReadAttribute, + Traversal::ReadWriteAttribute, + EmitterBase +{ + AttributeHeaderEmitter (Context&); + + // ReadWriteAttribute + // + virtual void + pre (SemanticGraph::ReadWriteAttribute&); + + virtual void + name (SemanticGraph::ReadWriteAttribute&); + + virtual void + get_raises_none (SemanticGraph::ReadWriteAttribute&); + + virtual void + get_raises_pre (SemanticGraph::ReadWriteAttribute&); + + virtual void + get_raises_post (SemanticGraph::ReadWriteAttribute&); + + virtual void + set_raises (SemanticGraph::ReadWriteAttribute&); + + virtual void + post (SemanticGraph::ReadWriteAttribute&); + + virtual void + comma (SemanticGraph::ReadWriteAttribute&); + + // ReadAttribute + // + virtual void + pre (SemanticGraph::ReadAttribute&); + + virtual void + name (SemanticGraph::ReadAttribute&); + + virtual void + get_raises_none (SemanticGraph::ReadAttribute&); + + virtual void + get_raises_pre (SemanticGraph::ReadAttribute&); + + virtual void + get_raises_post (SemanticGraph::ReadAttribute&); + + virtual void + set_raises (SemanticGraph::ReadAttribute&); + + virtual void + post (SemanticGraph::ReadAttribute&); + + virtual void + comma (SemanticGraph::ReadAttribute&); + +private: + ReturnTypeNameEmitter read_type_name_emitter_; + FullTypeNameEmitter type_name_emitter_; + Traversal::Belongs read_belongs_; + Traversal::GetRaises get_raises_; +}; + +#endif // ATTRIBUTEHEADEREMITTERS_HPP diff --git a/TAO/CIAO/CIDLC/AttributeSourceEmitters_T.hpp b/TAO/CIAO/CIDLC/AttributeSourceEmitters_T.hpp new file mode 100644 index 00000000000..6dc1aa1bb37 --- /dev/null +++ b/TAO/CIAO/CIDLC/AttributeSourceEmitters_T.hpp @@ -0,0 +1,368 @@ +// file : CIDLC/AttributeSourceEmitters_T.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef ATTRIBUTESOURCEEMITTERS_T_HPP +#define ATTRIBUTESOURCEEMITTERS_T_HPP + +#include "CCF/CIDL/SemanticGraph.hpp" +#include "CCF/CIDL/Traversal.hpp" + +#include "Literals.hpp" +#include "CorbaTypeNameEmitters.hpp" +#include "UtilityTypeNameEmitters.hpp" + +using namespace CCF::CIDL; +using namespace CCF::CIDL::SemanticGraph; +using namespace StringLiterals; + +template <typename T> +struct WriteAttributeSourceEmitter : Traversal::ReadWriteAttribute, + EmitterBase +{ + WriteAttributeSourceEmitter (Context& c, + T& scope, + bool swapping, + bool exec_src) + : EmitterBase (c), + scope_ (scope), + write_type_name_emitter_ (c), + type_name_emitter_ (c), + swapping_ (swapping), + exec_src_ (exec_src) + { + write_belongs_.node_traverser (write_type_name_emitter_); + edge_traverser (set_raises_); + set_raises_.node_traverser (type_name_emitter_); + } + + virtual void + gen_swapping_set () + { + os << "this->activate_component (" << STRS[ENV_SNGL_ARG] << ");" + << "ACE_CHECK;" << endl; + } + + virtual void + pre (SemanticGraph::ReadWriteAttribute&) + { + os << "void" << endl; + } + + virtual void + name (SemanticGraph::ReadWriteAttribute& a) + { + os << scope_.name () + << (exec_src_ ? "_exec_i::" : "_Servant::") + << a.name () << " (" << endl; + + Traversal::ReadWriteAttribute::belongs (a, write_belongs_); + + os << (exec_src_ ? " /* " : " ") + << a.name () + << (exec_src_ ? " */" : "") << endl + << (exec_src_ ? STRS[ENV_SRC_NOTUSED] : STRS[ENV_SRC]) + << ")" << endl; + } + + virtual void + get_raises (SemanticGraph::ReadWriteAttribute&) + { + } + + virtual void + set_raises_none (SemanticGraph::ReadWriteAttribute&) + { + os << STRS[EXCP_SNGL]; + } + + virtual void + set_raises_pre (SemanticGraph::ReadWriteAttribute&) + { + os << STRS[EXCP_START] << " " + << STRS[EXCP_SYS] << "," << endl; + } + + virtual void + set_raises_post (SemanticGraph::ReadWriteAttribute&) + { + os << "))" << endl; + } + + virtual void + post (SemanticGraph::ReadWriteAttribute& a) + { + os << "{"; + + if (exec_src_) + { + os << STRS[YCH]; + } + else + { + if (swapping_) + { + this->gen_swapping_set (); + } + + os << "this->executor_->" << a.name () << " (" << endl + << a.name () << endl + << STRS[ENV_ARG] << ");" << endl; + } + + os << "}"; + } + + virtual void + comma (SemanticGraph::ReadWriteAttribute&) + { + os << "," << endl; + } + +protected: + T& scope_; + Traversal::Belongs write_belongs_; + +private: + INArgTypeNameEmitter write_type_name_emitter_; + FullTypeNameEmitter type_name_emitter_; + Traversal::SetRaises set_raises_; + bool swapping_; + bool exec_src_; +}; + +template <typename T> +struct AttributeSourceEmitter : Traversal::ReadAttribute, + Traversal::ReadWriteAttribute, + EmitterBase +{ + AttributeSourceEmitter (Context& c, T& scope, bool exec_src = false) + : EmitterBase (c), + scope_ (scope), + read_type_name_emitter_ (c), + type_name_emitter_ (c), + return_emitter_ (c), + ace_check_return_emitter_ (c), + exec_src_ (exec_src) + { + read_belongs_.node_traverser (read_type_name_emitter_); + return_belongs_.node_traverser (return_emitter_); + ace_check_return_belongs_.node_traverser (ace_check_return_emitter_); + edge_traverser (get_raises_); + get_raises_.node_traverser (type_name_emitter_); + } + + // ReadWriteAttribute + // + + // Overridden by facet attribute emitter in servant source generator. + virtual void + gen_swapping_get (SemanticGraph::ReadWriteAttribute& a) + { + os << "this->activate_component (" << STRS[ENV_SNGL_ARG] << ");"; + + Traversal::ReadWriteAttribute::belongs (a, ace_check_return_belongs_); + + os << endl; + } + + // Overridden by facet attribute emitter in servant source generator. + virtual void + gen_write_operation (SemanticGraph::ReadWriteAttribute& a, + bool swapping) + { + WriteAttributeSourceEmitter<T> write_attribute_emitter (ctx, + scope_, + swapping, + exec_src_); + write_attribute_emitter.traverse (a); + } + + virtual void + pre (SemanticGraph::ReadWriteAttribute& a) + { + Traversal::ReadWriteAttribute::belongs (a, read_belongs_); + + os << endl; + } + + virtual void + name (SemanticGraph::ReadWriteAttribute& a) + { + os << scope_.name () + << (exec_src_ ? "_exec_i::" : "_Servant::") + << a.name () << " (" << endl + << (exec_src_ ? STRS[ENV_SNGL_SRC_NOTUSED] : STRS[ENV_SNGL_SRC]) + << ")" << endl; + } + + virtual void + get_raises_none (SemanticGraph::ReadWriteAttribute&) + { + os << STRS[EXCP_SNGL] << endl; + } + + virtual void + get_raises_pre (SemanticGraph::ReadWriteAttribute&) + { + os << STRS[EXCP_START] << " " + << STRS[EXCP_SYS] << "," << endl; + } + + virtual void + get_raises_post (SemanticGraph::ReadWriteAttribute&) + { + os << "))" << endl; + } + + virtual void + set_raises (SemanticGraph::ReadWriteAttribute&) + { + } + + virtual void + post (SemanticGraph::ReadWriteAttribute& a) + { + bool swapping = false; + + os << "{"; + + if (exec_src_) + { + os << STRS[YCH] << endl; + + Traversal::ReadWriteAttribute::belongs (a, return_belongs_); + } + else + { + string swap_option = ctx.cl ().get_value ("custom-container", ""); + swapping = (swap_option == "upgradeable"); + + if (swapping) + { + this->gen_swapping_get (a); + } + + os << "return this->executor_->" << a.name () << " (" << endl + << STRS[ENV_SNGL_ARG] << ");"; + } + + os << "}"; + + this->gen_write_operation (a, swapping); + } + + virtual void + comma (SemanticGraph::ReadWriteAttribute&) + { + os << "," << endl; + } + + // ReadAttribute + // + + // Overridden by facet attribute emitter in servant source generator. + virtual void + gen_swapping_get (SemanticGraph::ReadAttribute& a) + { + os << "this->activate_component (" << STRS[ENV_SNGL_ARG] << ");"; + + Traversal::ReadAttribute::belongs (a, ace_check_return_belongs_); + + os << endl; + } + + virtual void + pre (SemanticGraph::ReadAttribute& a) + { + Traversal::ReadAttribute::belongs (a, read_belongs_); + + os << endl; + } + + virtual void + name (SemanticGraph::ReadAttribute& a) + { + os << scope_.name () + << (exec_src_ ? "_exec_i::" : "_Servant::") + << a.name () << " (" << endl + << (exec_src_ ? STRS[ENV_SNGL_SRC_NOTUSED] : STRS[ENV_SNGL_SRC]) + << ")" << endl; + } + + virtual void + get_raises_none (SemanticGraph::ReadAttribute&) + { + os << STRS[EXCP_SNGL] << endl; + } + + virtual void + get_raises_pre (SemanticGraph::ReadAttribute&) + { + os << STRS[EXCP_START] << " " + << STRS[EXCP_SYS] << "," << endl; + } + + virtual void + get_raises_post (SemanticGraph::ReadAttribute&) + { + os << "))" << endl; + } + + virtual void + set_raises (SemanticGraph::ReadAttribute&) + { + } + + virtual void + post (SemanticGraph::ReadAttribute& a) + { + bool swapping = false; + + os << "{"; + + if (exec_src_) + { + os << STRS[YCH] << endl; + + Traversal::ReadAttribute::belongs (a, return_belongs_); + } + else + { + string swap_option = ctx.cl ().get_value ("custom-container", ""); + swapping = (swap_option == "upgradeable"); + + if (swapping) + { + this->gen_swapping_get (a); + } + + os << "return this->executor_->" << a.name () << " (" << endl + << STRS[ENV_SNGL_ARG] << ");"; + } + + os << "}"; + } + + virtual void + comma (SemanticGraph::ReadAttribute&) + { + os << "," << endl; + } + +protected: + T& scope_; + +private: + ReturnTypeNameEmitter read_type_name_emitter_; + FullTypeNameEmitter type_name_emitter_; + NullReturnEmitter return_emitter_; + AceCheckReturnEmitter ace_check_return_emitter_; + Traversal::Belongs read_belongs_; + Traversal::Belongs return_belongs_; + Traversal::Belongs ace_check_return_belongs_; + Traversal::GetRaises get_raises_; + bool exec_src_; +}; + +#endif // ATTRIBUTESOURCEEMITTERS_T_HPP diff --git a/TAO/CIAO/CIDLC/CompositionEmitter.cpp b/TAO/CIAO/CIDLC/CompositionEmitter.cpp new file mode 100644 index 00000000000..c7f9754b651 --- /dev/null +++ b/TAO/CIAO/CIDLC/CompositionEmitter.cpp @@ -0,0 +1,27 @@ +// file : CIDLC/CompositionEmitter.cpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#include "CompositionEmitter.hpp" +#include "Literals.hpp" + +using namespace StringLiterals; + +CompositionEmitter::CompositionEmitter (Context& c) + : EmitterBase (c) +{ +} + +void +CompositionEmitter::pre (Type& t) +{ + ctx.composition_name (t.name ().str ()); + + os << STRS[CIDL_NS] << t.name () << "{"; +} + +void +CompositionEmitter::post (Type&) +{ + os << "}"; +} diff --git a/TAO/CIAO/CIDLC/CompositionEmitter.hpp b/TAO/CIAO/CIDLC/CompositionEmitter.hpp new file mode 100644 index 00000000000..c6aeab17229 --- /dev/null +++ b/TAO/CIAO/CIDLC/CompositionEmitter.hpp @@ -0,0 +1,26 @@ +// file : CIDLC/CompositionEmitter.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef COMPOSITIONEMITTER_HPP +#define COMPOSITIONEMITTER_HPP + +#include "CCF/CIDL/SemanticGraph.hpp" +#include "CCF/CIDL/Traversal.hpp" + +#include "EmitterBase.hpp" + +using namespace CCF::CIDL; +using namespace CCF::CIDL::SemanticGraph; + +struct CompositionEmitter : Traversal::Composition, + EmitterBase +{ + CompositionEmitter (Context& c); + + virtual void pre (Type&); + + virtual void post (Type&); +}; + +#endif // COMPOSITIONEMITTER_HPP diff --git a/TAO/CIAO/CIDLC/CorbaTypeNameEmitters.cpp b/TAO/CIAO/CIDLC/CorbaTypeNameEmitters.cpp new file mode 100644 index 00000000000..390e49c6c2b --- /dev/null +++ b/TAO/CIAO/CIDLC/CorbaTypeNameEmitters.cpp @@ -0,0 +1,2235 @@ +// file : CIDLC/CorbaTypeNameEmitter.cpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#include "CorbaTypeNameEmitters.hpp" +#include "Literals.hpp" + +#include <ostream> + +using namespace std; +using namespace StringLiterals; + +CorbaTypeNameEmitter::CorbaTypeNameEmitter (Context& c) + : EmitterBase (c) +{ +} + +void +CorbaTypeNameEmitter::traverse (Void&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Boolean&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Octet&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Char&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Wchar&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Short&) +{ +} + +void +CorbaTypeNameEmitter::traverse (UnsignedShort&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Long&) +{ +} + +void +CorbaTypeNameEmitter::traverse (UnsignedLong&) +{ +} + +void +CorbaTypeNameEmitter::traverse (LongLong&) +{ +} + +void +CorbaTypeNameEmitter::traverse (UnsignedLongLong&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Float&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Double&) +{ +} + +void +CorbaTypeNameEmitter::traverse (String&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::BoundedString&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Wstring&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::BoundedWideString&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Object&) +{ +} + +void +CorbaTypeNameEmitter::traverse (ValueBase&) +{ +} + +void +CorbaTypeNameEmitter::traverse (Any&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::Array&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::Enum&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::Struct&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::Union&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::BoundedSequence&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::UnboundedSequence&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::Interface&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::ValueType&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::EventType&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::Component&) +{ +} + +void +CorbaTypeNameEmitter::traverse (SemanticGraph::Home&) +{ +} + +// ==================================================================== + +ReturnTypeNameEmitter::ReturnTypeNameEmitter (Context& c) + : CorbaTypeNameEmitter (c) +{ +} + +void +ReturnTypeNameEmitter::traverse (Void&) +{ + os << "void"; +} + +void +ReturnTypeNameEmitter::traverse (Boolean&) +{ + os << "::CORBA::Boolean"; +} + +void +ReturnTypeNameEmitter::traverse (Octet&) +{ + os << "::CORBA::Octet"; +} + +void +ReturnTypeNameEmitter::traverse (Char&) +{ + os << "::CORBA::Char"; +} + +void +ReturnTypeNameEmitter::traverse (Wchar&) +{ + os << "::CORBA::WChar"; +} + +void +ReturnTypeNameEmitter::traverse (Short&) +{ + os << "::CORBA::Short"; +} + +void +ReturnTypeNameEmitter::traverse (UnsignedShort&) +{ + os << "::CORBA::UShort"; +} + +void +ReturnTypeNameEmitter::traverse (Long&) +{ + os << "::CORBA::Long"; +} + +void +ReturnTypeNameEmitter::traverse (UnsignedLong&) +{ + os << "::CORBA::ULong"; +} + +void +ReturnTypeNameEmitter::traverse (LongLong&) +{ + os << "::CORBA::LongLong"; +} + +void +ReturnTypeNameEmitter::traverse (UnsignedLongLong&) +{ + os << "::CORBA::ULongLong"; +} + +void +ReturnTypeNameEmitter::traverse (Float&) +{ + os << "::CORBA::Float"; +} + +void +ReturnTypeNameEmitter::traverse (Double&) +{ + os << "::CORBA::Double"; +} + +void +ReturnTypeNameEmitter::traverse (String&) +{ + os << "char *"; +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::BoundedString&) +{ + os << "char *"; +} + +void +ReturnTypeNameEmitter::traverse (Wstring&) +{ + os << "::CORBA::WChar *"; +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::BoundedWideString&) +{ + os << "::CORBA::WChar *"; +} + +void +ReturnTypeNameEmitter::traverse (Object&) +{ + os << "::CORBA::Object_ptr"; +} + +void +ReturnTypeNameEmitter::traverse (ValueBase&) +{ + os << "::CORBA::ValueBase *"; +} + +void +ReturnTypeNameEmitter::traverse (Any&) +{ + os << "::CORBA::Any *"; +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::Array& a) +{ + os << a.scoped_name () << "_slice *"; +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::Enum& e) +{ + os << e.scoped_name (); +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::Struct& s) +{ + // This should always be in the context, since the SizeTypeCalculator + // is executed before the servant code generators. + bool var_size = s.context ().get<bool> (STRS[VAR_SIZE]); + + os << s.scoped_name (); + + if (var_size) + { + os << " *"; + } +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::Union& u) +{ + // This should always be in the context, since the SizeTypeCalculator + // is executed before the servant code generators. + bool var_size = u.context ().get<bool> (STRS[VAR_SIZE]); + + os << u.scoped_name (); + + if (var_size) + { + os << " *"; + } +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::BoundedSequence& s) +{ + os << s.scoped_name () << " *"; +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::UnboundedSequence& s) +{ + os << s.scoped_name () << " *"; +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::Interface& i) +{ + os << i.scoped_name () << "_ptr"; +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::ValueType& v) +{ + os << v.scoped_name () << " *"; +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::EventType& e) +{ + os << e.scoped_name () << " *"; +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::Component& c) +{ + os << c.scoped_name () << "_ptr"; +} + +void +ReturnTypeNameEmitter::traverse (SemanticGraph::Home& h) +{ + os << h.scoped_name () << "_ptr"; +} + +// =============================================================== + +INArgTypeNameEmitter::INArgTypeNameEmitter (Context& c) + : CorbaTypeNameEmitter (c) +{ +} + +void +INArgTypeNameEmitter::traverse (Boolean&) +{ + os << "::CORBA::Boolean"; +} + +void +INArgTypeNameEmitter::traverse (Octet&) +{ + os << "::CORBA::Octet"; +} + +void +INArgTypeNameEmitter::traverse (Char&) +{ + os << "::CORBA::Char"; +} + +void +INArgTypeNameEmitter::traverse (Wchar&) +{ + os << "::CORBA::WChar"; +} + +void +INArgTypeNameEmitter::traverse (Short&) +{ + os << "::CORBA::Short"; +} + +void +INArgTypeNameEmitter::traverse (UnsignedShort&) +{ + os << "::CORBA::UShort"; +} + +void +INArgTypeNameEmitter::traverse (Long&) +{ + os << "::CORBA::Long"; +} + +void +INArgTypeNameEmitter::traverse (UnsignedLong&) +{ + os << "::CORBA::ULong"; +} + +void +INArgTypeNameEmitter::traverse (LongLong&) +{ + os << "::CORBA::LongLong"; +} + +void +INArgTypeNameEmitter::traverse (UnsignedLongLong&) +{ + os << "::CORBA::ULongLong"; +} + +void +INArgTypeNameEmitter::traverse (Float&) +{ + os << "::CORBA::Float"; +} + +void +INArgTypeNameEmitter::traverse (Double&) +{ + os << "::CORBA::Double"; +} + +void +INArgTypeNameEmitter::traverse (String&) +{ + os << "const char *"; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::BoundedString&) +{ + os << "const char *"; +} + +void +INArgTypeNameEmitter::traverse (Wstring&) +{ + os << "const ::CORBA::WChar *"; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::BoundedWideString&) +{ + os << "const ::CORBA::WChar *"; +} + +void +INArgTypeNameEmitter::traverse (Object&) +{ + os << "::CORBA::Object_ptr"; +} + +void +INArgTypeNameEmitter::traverse (ValueBase&) +{ + os << "::CORBA::ValueBase *"; +} + +void +INArgTypeNameEmitter::traverse (Any&) +{ + os << "const ::CORBA::Any &"; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::Array& a) +{ + os << "const " << a.scoped_name (); +} +void +INArgTypeNameEmitter::traverse (SemanticGraph::Enum& e) +{ + os << e.scoped_name (); +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::Struct& s) +{ + os << "const " << s.scoped_name () << " &";; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::Union& u) +{ + os << "const " << u.scoped_name () << " &";; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::BoundedSequence& s) +{ + os << "const " << s.scoped_name () << " &";; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::UnboundedSequence& s) +{ + os << "const " << s.scoped_name () << " &";; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::Interface& i) +{ + os << i.scoped_name () << "_ptr"; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::ValueType& v) +{ + os << v.scoped_name () << " *"; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::EventType& e) +{ + os << e.scoped_name () << " *"; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::Component& c) +{ + os << c.scoped_name () << "_ptr"; +} + +void +INArgTypeNameEmitter::traverse (SemanticGraph::Home& h) +{ + os << h.scoped_name () << "_ptr"; +} + +// =============================================================== + +INOUTArgTypeNameEmitter::INOUTArgTypeNameEmitter (Context& c) + : CorbaTypeNameEmitter (c) +{ +} + +void +INOUTArgTypeNameEmitter::traverse (Boolean&) +{ + os << "::CORBA::Boolean &"; +} + +void +INOUTArgTypeNameEmitter::traverse (Octet&) +{ + os << "::CORBA::Octet &"; +} + +void +INOUTArgTypeNameEmitter::traverse (Char&) +{ + os << "::CORBA::Char &"; +} + +void +INOUTArgTypeNameEmitter::traverse (Wchar&) +{ + os << "::CORBA::WChar &"; +} + +void +INOUTArgTypeNameEmitter::traverse (Short&) +{ + os << "::CORBA::Short &"; +} + +void +INOUTArgTypeNameEmitter::traverse (UnsignedShort&) +{ + os << "::CORBA::UShort &"; +} + +void +INOUTArgTypeNameEmitter::traverse (Long&) +{ + os << "::CORBA::Long &"; +} + +void +INOUTArgTypeNameEmitter::traverse (UnsignedLong&) +{ + os << "::CORBA::ULong &"; +} + +void +INOUTArgTypeNameEmitter::traverse (LongLong&) +{ + os << "::CORBA::LongLong &"; +} + +void +INOUTArgTypeNameEmitter::traverse (UnsignedLongLong&) +{ + os << "::CORBA::ULongLong &"; +} + +void +INOUTArgTypeNameEmitter::traverse (Float&) +{ + os << "::CORBA::Float &"; +} + +void +INOUTArgTypeNameEmitter::traverse (Double&) +{ + os << "::CORBA::Double &"; +} + +void +INOUTArgTypeNameEmitter::traverse (String&) +{ + os << "char *&"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::BoundedString&) +{ + os << "char *&"; +} + +void +INOUTArgTypeNameEmitter::traverse (Wstring&) +{ + os << "::CORBA::WChar *&"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::BoundedWideString&) +{ + os << "::CORBA::WChar *&"; +} + +void +INOUTArgTypeNameEmitter::traverse (Object&) +{ + os << "::CORBA::Object_ptr &"; +} + +void +INOUTArgTypeNameEmitter::traverse (ValueBase&) +{ + os << "::CORBA::ValueBase *&"; +} + +void +INOUTArgTypeNameEmitter::traverse (Any&) +{ + os << "::CORBA::Any &"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::Array& a) +{ + os << a.scoped_name (); +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::Enum& e) +{ + os << e.scoped_name () << " &"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::Struct& s) +{ + os << s.scoped_name () << " &"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::Union& u) +{ + os << u.scoped_name () << " &"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::BoundedSequence& s) +{ + os << s.scoped_name () << " &"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::UnboundedSequence& s) +{ + os << s.scoped_name () << " &"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::Interface& i) +{ + os << i.scoped_name () << "_ptr &"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::ValueType& v) +{ + os << v.scoped_name () << " *&"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::EventType& e) +{ + os << e.scoped_name () << " *&"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::Component& c) +{ + os << c.scoped_name () << "_ptr &"; +} + +void +INOUTArgTypeNameEmitter::traverse (SemanticGraph::Home& h) +{ + os << h.scoped_name () << "_ptr"; +} + +// ================================================================= + +OUTArgTypeNameEmitter::OUTArgTypeNameEmitter (Context& c) + : CorbaTypeNameEmitter (c) +{ +} + +void +OUTArgTypeNameEmitter::traverse (Boolean&) +{ + os << "::CORBA::Boolean_out"; +} + +void +OUTArgTypeNameEmitter::traverse (Octet&) +{ + os << "::CORBA::Octet_out"; +} + +void +OUTArgTypeNameEmitter::traverse (Char&) +{ + os << "::CORBA::Char_out"; +} + +void +OUTArgTypeNameEmitter::traverse (Wchar&) +{ + os << "::CORBA::WChar_out"; +} + +void +OUTArgTypeNameEmitter::traverse (Short&) +{ + os << "::CORBA::Short_out"; +} + +void +OUTArgTypeNameEmitter::traverse (UnsignedShort&) +{ + os << "::CORBA::UShort_out"; +} + +void +OUTArgTypeNameEmitter::traverse (Long&) +{ + os << "::CORBA::Long_out"; +} + +void +OUTArgTypeNameEmitter::traverse (UnsignedLong&) +{ + os << "::CORBA::ULong_out"; +} + +void +OUTArgTypeNameEmitter::traverse (LongLong&) +{ + os << "::CORBA::LongLong_out"; +} + +void +OUTArgTypeNameEmitter::traverse (UnsignedLongLong&) +{ + os << "::CORBA::ULongLong_out"; +} + +void +OUTArgTypeNameEmitter::traverse (Float&) +{ + os << "::CORBA::Float_out"; +} + +void +OUTArgTypeNameEmitter::traverse (Double&) +{ + os << "::CORBA::Double_out"; +} + +void +OUTArgTypeNameEmitter::traverse (String&) +{ + os << "::CORBA::String_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::BoundedString& s) +{ + os << s.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (Wstring&) +{ + os << "::CORBA::WString_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::BoundedWideString& s) +{ + os << s.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (Object&) +{ + os << "::CORBA::Object_out"; +} + +void +OUTArgTypeNameEmitter::traverse (ValueBase&) +{ + os << "::CORBA::ValueBase_out"; +} + +void +OUTArgTypeNameEmitter::traverse (Any&) +{ + os << "::CORBA::Any_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::Array& a) +{ + os << a.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::Enum& e) +{ + os << e.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::Struct& s) +{ + os << s.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::Union& u) +{ + os << u.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::BoundedSequence& s) +{ + os << s.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::UnboundedSequence& s) +{ + os << s.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::Interface& i) +{ + os << i.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::ValueType& v) +{ + os << v.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::EventType& e) +{ + os << e.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::Component& c) +{ + os << c.scoped_name () << "_out"; +} + +void +OUTArgTypeNameEmitter::traverse (SemanticGraph::Home& h) +{ + os << h.scoped_name () << "_ptr"; +} + +// ==================================================================== + +NullReturnEmitter::NullReturnEmitter (Context& c) + : CorbaTypeNameEmitter (c) +{ +} + +void +NullReturnEmitter::traverse (Boolean&) +{ + os << "return false;"; +} + +void +NullReturnEmitter::traverse (Octet&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (Char&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (Wchar&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (Short&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (UnsignedShort&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (Long&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (UnsignedLong&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (LongLong&) +{ + os << "return ACE_CDR_LONGLONG_INITIALIZER;"; +} + +void +NullReturnEmitter::traverse (UnsignedLongLong&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (Float&) +{ + os << "return 0.0f;"; +} + +void +NullReturnEmitter::traverse (Double&) +{ + os << "return 0.0;"; +} + +void +NullReturnEmitter::traverse (String&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::BoundedString&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (Wstring&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::BoundedWideString&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (Object&) +{ + os << "return ::CORBA::Object::_nil ();"; +} + +void +NullReturnEmitter::traverse (ValueBase&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (Any&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::Array&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::Enum& e) +{ + os << e.scoped_name () << " retval;" << endl + << "return retval;"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::Struct& s) +{ + // This should always be in the context, since the SizeTypeCalculator + // is executed before the servant code generators. + bool var_size = s.context ().get<bool> (STRS[VAR_SIZE]); + + if (var_size) + { + os << "return 0;"; + } + else + { + os << s.scoped_name () << " retval;" << endl + << "return retval;"; + } +} + +void +NullReturnEmitter::traverse (SemanticGraph::Union& u) +{ + // This should always be in the context, since the SizeTypeCalculator + // is executed before the servant code generators. + bool var_size = u.context ().get<bool> (STRS[VAR_SIZE]); + + if (var_size) + { + os << "return 0;"; + } + else + { + os << u.scoped_name () << " retval;" << endl + << "return retval;"; + } +} + +void +NullReturnEmitter::traverse (SemanticGraph::BoundedSequence&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::UnboundedSequence&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::Interface& i) +{ + os << "return " << i.scoped_name () << "::_nil ();"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::ValueType&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::EventType&) +{ + os << "return 0;"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::Component& c) +{ + os << "return " << c.scoped_name () << "::_nil ();"; +} + +void +NullReturnEmitter::traverse (SemanticGraph::Home& h) +{ + os << "return " << h.scoped_name () << "::_nil ();"; +} + +// ==================================================================== + +AceCheckReturnEmitter::AceCheckReturnEmitter (Context& c) + : CorbaTypeNameEmitter (c) +{ +} + +void +AceCheckReturnEmitter::traverse (Void&) +{ + os << "ACE_CHECK;"; +} + +void +AceCheckReturnEmitter::traverse (Boolean&) +{ + os << STRS[ACE_CR] << " (false);"; +} + +void +AceCheckReturnEmitter::traverse (Octet&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (Char&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (Wchar&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (Short&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (UnsignedShort&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (Long&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (UnsignedLong&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (LongLong&) +{ + os << STRS[ACE_CR] << " (ACE_CDR_LONGLONG_INITIALIZER);"; +} + +void +AceCheckReturnEmitter::traverse (UnsignedLongLong&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (Float&) +{ + os << STRS[ACE_CR] << " (0.0f);"; +} + +void +AceCheckReturnEmitter::traverse (Double&) +{ + os << STRS[ACE_CR] << " (0.0);"; +} + +void +AceCheckReturnEmitter::traverse (String&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::BoundedString&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (Wstring&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::BoundedWideString&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (Object&) +{ + os << STRS[ACE_CR] << " (::CORBA::Object::_nil ());"; +} + +void +AceCheckReturnEmitter::traverse (ValueBase&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (Any&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::Array&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::Enum& e) +{ + os << e.scoped_name () << " retval;" + << STRS[ACE_UA] << " (retval);" + << STRS[ACE_CR] << " (retval);"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::Struct& s) +{ + // This should always be in the context, since the SizeTypeCalculator + // is executed before the servant code generators. + bool var_size = s.context ().get<bool> (STRS[VAR_SIZE]); + + if (var_size) + { + os << STRS[ACE_CR] << " (0);"; + } + else + { + os << s.scoped_name () << " retval;" + << STRS[ACE_UA] << " (retval);" + << STRS[ACE_CR] << " (retval);"; + } +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::Union& u) +{ + // This should always be in the context, since the SizeTypeCalculator + // is executed before the servant code generators. + bool var_size = u.context ().get<bool> (STRS[VAR_SIZE]); + + if (var_size) + { + os << STRS[ACE_CR] << " (0);"; + } + else + { + os << u.scoped_name () << " retval;" + << STRS[ACE_UA] << " (retval);" + << STRS[ACE_CR] << " (retval);"; + } +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::BoundedSequence&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::UnboundedSequence&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::Interface& i) +{ + os << STRS[ACE_CR] << " (" << i.scoped_name () << "::_nil ());"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::ValueType&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::EventType&) +{ + os << STRS[ACE_CR] << " (0);"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::Component& c) +{ + os << STRS[ACE_CR] << " (" << c.scoped_name () << "::_nil ());"; +} + +void +AceCheckReturnEmitter::traverse (SemanticGraph::Home& h) +{ + os << STRS[ACE_CR] << " (" << h.scoped_name () << "::_nil ());"; +} + +// ==================================================================== +/* Not currently used, but it was at one time and may be useful again. + +NullRHSEmitter::NullRHSEmitter (Context& c) + : CorbaTypeNameEmitter (c) +{ +} + +void +NullRHSEmitter::traverse (Boolean&) +{ + os << "= false;"; +} + +void +NullRHSEmitter::traverse (Octet&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (Char&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (Wchar&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (Short&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (UnsignedShort&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (Long&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (UnsignedLong&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (LongLong&) +{ + os << "= ACE_CDR_LONGLONG_INITIALIZER;"; +} + +void +NullRHSEmitter::traverse (UnsignedLongLong&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (Float&) +{ + os << "= 0.0f;"; +} + +void +NullRHSEmitter::traverse (Double&) +{ + os << "= 0.0;"; +} + +void +NullRHSEmitter::traverse (String&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::BoundedString&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (Wstring&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::BoundedWideString&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (Object&) +{ + os << "= ::CORBA::Object::_nil ();"; +} + +void +NullRHSEmitter::traverse (ValueBase&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (Any&) +{ + // This will hopefully work both if the lhs is a pointer (for example + // RetunrTypeNameEmitter) or not (for example INArgTypeNameEmitter). + os << ";"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::Array&) +{ + // This will hopefully work both if the lhs is a slice pointer (for example + // RetunrTypeNameEmitter) or not (for example INArgTypeNameEmitter). + os << ";"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::Enum&) +{ + os << ";"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::Struct& s) +{ + // This should always be in the context, since the SizeTypeCalculator + // is executed before the servant code generators. + bool var_size = s.context ().get<bool> (STRS[VAR_SIZE]); + + if (var_size) + { + os << "= 0;"; + } + else + { + os << ";"; + } +} + +void +NullRHSEmitter::traverse (SemanticGraph::Union& u) +{ + // This should always be in the context, since the SizeTypeCalculator + // is executed before the servant code generators. + bool var_size = u.context ().get<bool> (STRS[VAR_SIZE]); + + if (var_size) + { + os << "= 0;"; + } + else + { + os << ";"; + } +} + +void +NullRHSEmitter::traverse (SemanticGraph::BoundedSequence&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::UnboundedSequence&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::Interface& i) +{ + os << "= " << i.scoped_name () << "::_nil ();"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::ValueType&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::EventType&) +{ + os << "= 0;"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::Component& c) +{ + os << "= " << c.scoped_name () << "::_nil ();"; +} + +void +NullRHSEmitter::traverse (SemanticGraph::Home& h) +{ + os << "= " << h.scoped_name () << "::_nil ();"; +} +*/ +// ==================================================================== + +ExtractedTypeDeclEmitter::ExtractedTypeDeclEmitter (Context& c) + : CorbaTypeNameEmitter (c) +{ +} + +void +ExtractedTypeDeclEmitter::traverse (Boolean&) +{ + os << "::CORBA::Boolean " << STRS[EXTRACT_TMP] << " = false;" + << "::CORBA::Any::to_boolean " << STRS[EXTRACT] + << " (" << STRS[EXTRACT_TMP] << ");"; +} + +void +ExtractedTypeDeclEmitter::traverse (Octet&) +{ + os << "::CORBA::Octet " << STRS[EXTRACT_TMP] << " = 0;" + << "::CORBA::Any::to_octet " << STRS[EXTRACT] + << " (" << STRS[EXTRACT_TMP] << ");"; +} + +void +ExtractedTypeDeclEmitter::traverse (Char&) +{ + os << "::CORBA::Char " << STRS[EXTRACT_TMP] << " = 0;" + << "::CORBA::Any::to_char " << STRS[EXTRACT] + << " (" << STRS[EXTRACT_TMP] << ");"; +} + +void +ExtractedTypeDeclEmitter::traverse (Wchar&) +{ + os << "::CORBA::WChar " << STRS[EXTRACT_TMP] << " = 0;" + << "::CORBA::Any::to_wchar " << STRS[EXTRACT] + << " (" << STRS[EXTRACT_TMP] << ");"; +} + +void +ExtractedTypeDeclEmitter::traverse (Short&) +{ + os << "::CORBA::Short " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (UnsignedShort&) +{ + os << "::CORBA::UShort " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (Long&) +{ + os << "::CORBA::Long " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (UnsignedLong&) +{ + os << "::CORBA::ULong " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (LongLong&) +{ + os << "::CORBA::LongLong " << STRS[EXTRACT] + << " = ACE_CDR_LONGLONG_INITIALIZER;"; +} + +void +ExtractedTypeDeclEmitter::traverse (UnsignedLongLong&) +{ + os << "::CORBA::ULongLong " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (Float&) +{ + os << "::CORBA::Float " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (Double&) +{ + os << "::CORBA::Double " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (String&) +{ + os << "const char * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::BoundedString&) +{ + os << "const char * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (Wstring&) +{ + os << "::CORBA::WChar * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::BoundedWideString&) +{ + os << "::CORBA::WChar * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (Object&) +{ + os << "::CORBA::Object_ptr " << STRS[EXTRACT] + << " = ::CORBA::Object::_nil ();"; +} + +void +ExtractedTypeDeclEmitter::traverse (ValueBase&) +{ + os << "::CORBA::ValueBase * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (Any&) +{ + os << "::CORBA::Any * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::Array& a) +{ + os << a.scoped_name () << "_forany & " << STRS[EXTRACT] << ";"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::Enum& e) +{ + os << e.scoped_name () << " " << STRS[EXTRACT] << ";"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::Struct& s) +{ + os << s.scoped_name () << " * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::Union& u) +{ + os << u.scoped_name () << " * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::BoundedSequence& s) +{ + os << s.scoped_name () << " * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::UnboundedSequence& s) +{ + os << s.scoped_name () << " * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::Interface& i) +{ + os << i.scoped_name () << "_ptr " << STRS[EXTRACT] << " = " + << i.scoped_name () << "::_nil ();"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::ValueType& v) +{ + os << v.scoped_name () << " * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::EventType& e) +{ + os << e.scoped_name () << " * " << STRS[EXTRACT] << " = 0;"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::Component& c) +{ + os << c.scoped_name () << "_ptr " << STRS[EXTRACT] << " = " + << c.scoped_name () << "::_nil ();"; +} + +void +ExtractedTypeDeclEmitter::traverse (SemanticGraph::Home& h) +{ + os << h.scoped_name () << "_ptr " << STRS[EXTRACT] << " = " + << h.scoped_name () << "::_nil ();"; +} + +// ==================================================================== + +AssignFromExtractedEmitter::AssignFromExtractedEmitter (Context& c) + : CorbaTypeNameEmitter (c) +{ +} + +void +AssignFromExtractedEmitter::traverse (Boolean&) +{ + os << STRS[EXTRACT] << ".ref_"; +} + +void +AssignFromExtractedEmitter::traverse (Octet&) +{ + os << STRS[EXTRACT] << ".ref_"; +} + +void +AssignFromExtractedEmitter::traverse (Char&) +{ + os << STRS[EXTRACT] << ".ref_"; +} + +void +AssignFromExtractedEmitter::traverse (Wchar&) +{ + os << STRS[EXTRACT] << ".ref_"; +} + +void +AssignFromExtractedEmitter::traverse (Short&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (UnsignedShort&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (Long&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (UnsignedLong&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (LongLong&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (UnsignedLongLong&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (Float&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (Double&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (String&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::BoundedString&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (Wstring&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::BoundedWideString&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (Object&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (ValueBase&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (Any&) +{ + os << "*" << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::Array&) +{ + os << STRS[EXTRACT] << ".in ()"; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::Enum&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::Struct& s) +{ + // This should always be in the context, since the SizeTypeCalculator + // is executed before the servant code generators. + bool var_size = s.context ().get<bool> (STRS[VAR_SIZE]); + + if (!var_size) + { + os << "*"; + } + + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::Union& u) +{ + // This should always be in the context, since the SizeTypeCalculator + // is executed before the servant code generators. + bool var_size = u.context ().get<bool> (STRS[VAR_SIZE]); + + if (!var_size) + { + os << "*"; + } + + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::BoundedSequence&) +{ + os << "*" << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::UnboundedSequence&) +{ + os << "*" << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::Interface&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::ValueType&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::EventType&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::Component&) +{ + os << STRS[EXTRACT]; +} + +void +AssignFromExtractedEmitter::traverse (SemanticGraph::Home&) +{ + os << STRS[EXTRACT]; +} + +// ==================================================================== + +SetAttributeDelegationEmitter::SetAttributeDelegationEmitter ( + Context& c, + SemanticGraph::ReadWriteAttribute& a + ) + : CorbaTypeNameEmitter (c), + attr_ (a) + , assign_emitter_ (c) + , extract_emitter_ (c) +{ + assign_belongs_.node_traverser (assign_emitter_); + extract_belongs_.node_traverser (extract_emitter_); +} + +void +SetAttributeDelegationEmitter::traverse (Boolean&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (Octet&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (Char&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (Wchar&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (Short&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (UnsignedShort&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (Long&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (UnsignedLong&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (LongLong&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (UnsignedLongLong&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (Float&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (Double&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (String&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::BoundedString&) +{ + emit_error ("bounded string"); +} + +void +SetAttributeDelegationEmitter::traverse (Wstring&) +{ + emit_error ("wstring"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::BoundedWideString&) +{ + emit_error ("bounded wstring"); +} + +void +SetAttributeDelegationEmitter::traverse (Object&) +{ + emit_error ("CORBA::Object"); +} + +void +SetAttributeDelegationEmitter::traverse (ValueBase&) +{ + emit_error ("CORBA::ValueBase"); +} + +void +SetAttributeDelegationEmitter::traverse (Any&) +{ + emit_error ("CORBA::Any"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::Array&) +{ + emit_error ("array"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::Enum&) +{ + emit_delegation (); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::Struct&) +{ + emit_error ("struct"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::Union&) +{ + emit_error ("union"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::BoundedSequence&) +{ + emit_error ("bounded sequence"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::UnboundedSequence&) +{ + emit_error ("unbounded sequence"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::Interface&) +{ + emit_error ("interface"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::ValueType&) +{ + emit_error ("valuetype"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::EventType&) +{ + emit_error ("eventtype"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::Component&) +{ + emit_error ("component"); +} + +void +SetAttributeDelegationEmitter::traverse (SemanticGraph::Home&) +{ + emit_error ("home"); +} + +void +SetAttributeDelegationEmitter::emit_delegation (void) +{ + open_if_block (); + + Traversal::ReadWriteAttribute::belongs (attr_, extract_belongs_); + + os << "descr_value >>= " << STRS[EXTRACT] << ";" + << "this->" << attr_.name () << " ("; + + Traversal::ReadWriteAttribute::belongs (attr_, assign_belongs_); + + os << ");"; + + close_if_block (); +} + +void +SetAttributeDelegationEmitter::emit_error (const char *corba_kind) +{ + open_if_block (); + + os << "ACE_ERROR ((" << endl + << " LM_ERROR," << endl + << " \"Component attributes of " << corba_kind << "\"" << endl + << " \"IDL type are not yet supported by CIAO\\n\"" << endl + << " ));"; + + close_if_block (); +} + +void +SetAttributeDelegationEmitter::open_if_block (void) +{ + os << "if (ACE_OS::strcmp (descr_name, \"" + << attr_.name () << "\") == 0)" << endl + << "{"; +} + +void +SetAttributeDelegationEmitter::close_if_block (void) +{ + os << "continue;" + << "}"; +} diff --git a/TAO/CIAO/CIDLC/CorbaTypeNameEmitters.hpp b/TAO/CIAO/CIDLC/CorbaTypeNameEmitters.hpp new file mode 100644 index 00000000000..8a5a088f00c --- /dev/null +++ b/TAO/CIAO/CIDLC/CorbaTypeNameEmitters.hpp @@ -0,0 +1,511 @@ +// file : CIDLC/FullTypeNameEmitter.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef TYPENAME_EMITTER_HPP +#define TYPENAME_EMITTER_HPP + +#include "CCF/CIDL/SemanticGraph.hpp" +#include "CCF/CIDL/Traversal.hpp" + +#include "EmitterBase.hpp" + +using namespace CCF::CIDL; +using namespace CCF::CIDL::SemanticGraph; + +// Base class that holds the ostream member +// common to every other class in this file, +// and collects the ancestors in one place. +// +// Derived classes encapsulate the CORBA rules for +// the C++ mapping of different type kinds. +class CorbaTypeNameEmitter : public EmitterBase, + public Traversal::Void, + public Traversal::Boolean, + public Traversal::Octet, + public Traversal::Char, + public Traversal::Wchar, + public Traversal::Short, + public Traversal::UnsignedShort, + public Traversal::Long, + public Traversal::UnsignedLong, + public Traversal::LongLong, + public Traversal::UnsignedLongLong, + public Traversal::Float, + public Traversal::Double, + public Traversal::String, + public Traversal::BoundedString, + public Traversal::Wstring, + public Traversal::BoundedWideString, + public Traversal::Object, + public Traversal::ValueBase, + public Traversal::Any, + public Traversal::Array, + public Traversal::Enum, + public Traversal::Struct, + public Traversal::Union, + public Traversal::BoundedSequence, + public Traversal::UnboundedSequence, + public Traversal::Interface, + public Traversal::ValueType, + public Traversal::EventType, + public Traversal::Component, + public Traversal::Home +{ +public: + virtual void traverse (Void&); + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); + +protected: + CorbaTypeNameEmitter (Context&); +}; + +// Generates the name of an operation's return type. +// +// +class ReturnTypeNameEmitter : public CorbaTypeNameEmitter +{ +public: + ReturnTypeNameEmitter (Context&); + + virtual void traverse (Void&); + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); +}; + +// Generates the typename of an IN argument. +// +// +class INArgTypeNameEmitter : public CorbaTypeNameEmitter +{ +public: + INArgTypeNameEmitter (Context&); + + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); +}; + +// Generates the typename of an INOUT argument. +// +// +class INOUTArgTypeNameEmitter : public CorbaTypeNameEmitter +{ +public: + INOUTArgTypeNameEmitter (Context&); + + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); +}; + +// Generates the typename of an OUT argument. +// +// +class OUTArgTypeNameEmitter : public CorbaTypeNameEmitter +{ +public: + OUTArgTypeNameEmitter (Context&); + + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); +}; + +// Generates 'return' plus the appropriate NULL return value, +// including no output for Void. +// +// +class NullReturnEmitter : public CorbaTypeNameEmitter +{ +public: + NullReturnEmitter (Context&); + + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); +}; + +// Generates 'return' plus the appropriate NULL return value, +// including no output for Void. +// +// +class AceCheckReturnEmitter : public CorbaTypeNameEmitter +{ +public: + AceCheckReturnEmitter (Context&); + + virtual void traverse (Void&); + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); +}; + +/* Not currently used, but it was at one time and may be useful again. + +// Generates the appropriate NULL value, including the assignment operator, +// if needed, for the rhs of an assignment statement. +// +// +class NullRHSEmitter : public CorbaTypeNameEmitter +{ +public: + NullRHSEmitter (Context&); + + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); +}; +*/ +// Declares and initializes a variable to use for any extraction. +// +// +class ExtractedTypeDeclEmitter : public CorbaTypeNameEmitter +{ +public: + ExtractedTypeDeclEmitter (Context&); + + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); +}; + +// Declares and initializes a variable to use for any extraction. +// +// +class AssignFromExtractedEmitter : public CorbaTypeNameEmitter +{ +public: + AssignFromExtractedEmitter (Context&); + + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); +}; + +class SetAttributeDelegationEmitter : public CorbaTypeNameEmitter, + public Traversal::ReadWriteAttribute +{ +public: + SetAttributeDelegationEmitter (Context&, + SemanticGraph::ReadWriteAttribute&); + + virtual void traverse (Boolean&); + virtual void traverse (Octet&); + virtual void traverse (Char&); + virtual void traverse (Wchar&); + virtual void traverse (Short&); + virtual void traverse (UnsignedShort&); + virtual void traverse (Long&); + virtual void traverse (UnsignedLong&); + virtual void traverse (LongLong&); + virtual void traverse (UnsignedLongLong&); + virtual void traverse (Float&); + virtual void traverse (Double&); + virtual void traverse (String&); + virtual void traverse (SemanticGraph::BoundedString&); + virtual void traverse (Wstring&); + virtual void traverse (SemanticGraph::BoundedWideString&); + virtual void traverse (Object&); + virtual void traverse (ValueBase&); + virtual void traverse (Any&); + virtual void traverse (SemanticGraph::Array&); + virtual void traverse (SemanticGraph::Enum&); + virtual void traverse (SemanticGraph::Struct&); + virtual void traverse (SemanticGraph::Union&); + virtual void traverse (SemanticGraph::BoundedSequence&); + virtual void traverse (SemanticGraph::UnboundedSequence&); + virtual void traverse (SemanticGraph::Interface&); + virtual void traverse (SemanticGraph::ValueType&); + virtual void traverse (SemanticGraph::EventType&); + virtual void traverse (SemanticGraph::Component&); + virtual void traverse (SemanticGraph::Home&); + +private: + void emit_delegation (void); + void emit_error (const char *); + void open_if_block (void); + void close_if_block (void); + +private: + SemanticGraph::ReadWriteAttribute& attr_; + AssignFromExtractedEmitter assign_emitter_; + ExtractedTypeDeclEmitter extract_emitter_; + Traversal::Belongs assign_belongs_; + Traversal::Belongs extract_belongs_; +}; + +#endif /* TYPENAME_EMITTER_HPP */ diff --git a/TAO/CIAO/CIDLC/EmitterBase.cpp b/TAO/CIAO/CIDLC/EmitterBase.cpp new file mode 100644 index 00000000000..418db97852a --- /dev/null +++ b/TAO/CIAO/CIDLC/EmitterBase.cpp @@ -0,0 +1,11 @@ +// file : CIDLC/EmitterBase.cpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#include "EmitterBase.hpp" + +EmitterBase::EmitterBase (Context& c) + : ctx (c), + os (ctx.os ()) +{ +} diff --git a/TAO/CIAO/CIDLC/EmitterBase.hpp b/TAO/CIAO/CIDLC/EmitterBase.hpp new file mode 100644 index 00000000000..407eee8d0e0 --- /dev/null +++ b/TAO/CIAO/CIDLC/EmitterBase.hpp @@ -0,0 +1,20 @@ +// file : CIDLC/EmitterBase.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef EMITTERBASE_HPP +#define EMITTERBASE_HPP + +#include "EmitterContext.hpp" + +class EmitterBase +{ +public: + EmitterBase (Context&); + +protected: + Context& ctx; + ostream& os; +}; + +#endif // EMITTERBASE_HPP diff --git a/TAO/CIAO/CIDLC/EmitterContext.cpp b/TAO/CIAO/CIDLC/EmitterContext.cpp new file mode 100644 index 00000000000..478ae5d0027 --- /dev/null +++ b/TAO/CIAO/CIDLC/EmitterContext.cpp @@ -0,0 +1,45 @@ +// file : CIDLC/EmitterContext.cpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#include "EmitterContext.hpp" + +Context::Context (ostream& os, + string export_macro, + CommandLine const& cl) + : os_ (os), + export_macro_ (export_macro), + cl_ (cl) +{ +} + +ostream& +Context::os (void) +{ + return os_; +} + +string +Context::export_macro (void) +{ + return export_macro_; +} + +CommandLine const& +Context::cl (void) +{ + return cl_; +} + +string +Context::composition_name (void) +{ + return composition_name_; +} + +void +Context::composition_name (const string& name) +{ + composition_name_ = name; +} + diff --git a/TAO/CIAO/CIDLC/EmitterContext.hpp b/TAO/CIAO/CIDLC/EmitterContext.hpp new file mode 100644 index 00000000000..bec5e74f91d --- /dev/null +++ b/TAO/CIAO/CIDLC/EmitterContext.hpp @@ -0,0 +1,35 @@ +// file : CIDLC/EmitterContext.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef EMITTERCONTEXT_HPP +#define EMITTERCONTEXT_HPP + +#include "CCF/CodeGenerationKit/CommandLine.hpp" + +#include <ostream> +#include <string> + +using namespace std; + +class Context +{ +public: + Context (ostream& os, + string export_macro, + CommandLine const& cl); + + ostream& os (void); + string export_macro (void); + CommandLine const& cl (void); + string composition_name (void); + void composition_name (const string& name); + +private: + ostream& os_; + string export_macro_; + CommandLine const& cl_; + string composition_name_; +}; + +#endif // EMITTERCONTEXT_HPP diff --git a/TAO/CIAO/CIDLC/InterfaceEmitter.cpp b/TAO/CIAO/CIDLC/InterfaceEmitter.cpp new file mode 100644 index 00000000000..1ce524cdfab --- /dev/null +++ b/TAO/CIAO/CIDLC/InterfaceEmitter.cpp @@ -0,0 +1,26 @@ +// file : CIDLC/InterfaceEmitter.cpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#include "InterfaceEmitter.hpp" + +InterfaceEmitter::InterfaceEmitter (Context& c) + : EmitterBase (c) +{ +} + +void +InterfaceEmitter::traverse (UnconstrainedInterface& i) +{ + if (add (i)) + { + Traversal::UnconstrainedInterface::traverse (i); + } +} + +bool +InterfaceEmitter::add (UnconstrainedInterface& i) +{ + return interfaces_.insert (&i).second; +} + diff --git a/TAO/CIAO/CIDLC/InterfaceEmitter.hpp b/TAO/CIAO/CIDLC/InterfaceEmitter.hpp new file mode 100644 index 00000000000..fdd2411f912 --- /dev/null +++ b/TAO/CIAO/CIDLC/InterfaceEmitter.hpp @@ -0,0 +1,30 @@ +// file : CIDLC/InterfaceEmitter.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef INTERFACEEMITTER_HPP +#define INTERFACEEMITTER_HPP + +#include "CCF/CIDL/SemanticGraph.hpp" +#include "CCF/CIDL/Traversal.hpp" + +#include "EmitterBase.hpp" + +using namespace CCF::CIDL; +using namespace CCF::CIDL::SemanticGraph; + +struct InterfaceEmitter : Traversal::UnconstrainedInterface, + EmitterBase +{ + InterfaceEmitter (Context& c); + + virtual void traverse (UnconstrainedInterface&); + +private: + bool add (UnconstrainedInterface&); + +private: + std::set<UnconstrainedInterface*> interfaces_; +}; + +#endif // INTERFACEEMITTER_HPP diff --git a/TAO/CIAO/CIDLC/ModuleEmitter.cpp b/TAO/CIAO/CIDLC/ModuleEmitter.cpp new file mode 100644 index 00000000000..990d95ef4b8 --- /dev/null +++ b/TAO/CIAO/CIDLC/ModuleEmitter.cpp @@ -0,0 +1,22 @@ +// file : CIDLC/ModuleEmitter.cpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#include "ModuleEmitter.hpp" + +ModuleEmitter::ModuleEmitter (Context& c) + : EmitterBase (c) +{ +} + +void +ModuleEmitter::pre (Type& t) +{ + os << "namespace " << t.name () << "{"; +} + +void +ModuleEmitter::post (Type&) +{ + os << "}"; +} diff --git a/TAO/CIAO/CIDLC/ModuleEmitter.hpp b/TAO/CIAO/CIDLC/ModuleEmitter.hpp new file mode 100644 index 00000000000..9aa8de2f9ff --- /dev/null +++ b/TAO/CIAO/CIDLC/ModuleEmitter.hpp @@ -0,0 +1,24 @@ +// file : CIDLC/ModuleEmitter.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef MODULEEMITTER_HPP +#define MODULEEMITTER_HPP + +#include "CCF/CIDL/SemanticGraph.hpp" +#include "CCF/CIDL/Traversal.hpp" + +#include "EmitterBase.hpp" + +using namespace CCF::CIDL; +using namespace CCF::CIDL::SemanticGraph; + +struct ModuleEmitter : Traversal::Module, EmitterBase +{ + ModuleEmitter (Context& c); + + virtual void pre (Type&); + virtual void post (Type&); +}; + +#endif // MODULEEMITTER_HPP diff --git a/TAO/CIAO/CIDLC/OperationHeaderEmitters.cpp b/TAO/CIAO/CIDLC/OperationHeaderEmitters.cpp new file mode 100644 index 00000000000..6644e8102e6 --- /dev/null +++ b/TAO/CIAO/CIDLC/OperationHeaderEmitters.cpp @@ -0,0 +1,267 @@ +// file : CIDLC/OperationHeaderEmitters.cpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#include "OperationHeaderEmitters.hpp" +#include "Literals.hpp" + +using namespace StringLiterals; + +OperationEmitter::OperationEmitter (Context& c) + : EmitterBase (c) +{ +} + +void +OperationEmitter::pre (Type&) +{ + os << "virtual "; +} + +void +OperationEmitter::name (Type& o) +{ + os << endl << o.name (); +} + +void +OperationEmitter::receives_pre (Type&) +{ + os << " (" << endl; +} + +void +OperationEmitter::receives_none (Type&) +{ + os << " (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl; +} + +void +OperationEmitter::receives_post (Type&) +{ + os << endl << STRS[ENV_HDR] << ")" << endl; +} + +void +OperationEmitter::raises_pre (Type&) +{ + os << STRS[EXCP_START] << " " + << STRS[EXCP_SYS] << "," << endl; +} + +void +OperationEmitter::raises_none (Type&) +{ + os << STRS[EXCP_SNGL]; +} + +void +OperationEmitter::raises_post (Type&) +{ + os << "))"; +} + +void +OperationEmitter::post (Type&) +{ + os << ";" << endl; +} + +void +OperationEmitter::comma (Type&) +{ + os << "," << endl; +} + +// ================================================== + +HomeOperationEmitter::HomeOperationEmitter (Context& c) + : OperationEmitter (c) +{ +} + +void +HomeOperationEmitter::traverse (SemanticGraph::HomeFactory&) +{ +} + +void +HomeOperationEmitter::traverse (SemanticGraph::HomeFinder&) +{ +} + +// ================================================== + +FactoryOperationEmitter::FactoryOperationEmitter (Context& c, bool for_exec) + : EmitterBase (c), + returns_emitter_ (c), + for_exec_ (for_exec) +{ + returns_.node_traverser (returns_emitter_); +} + +void +FactoryOperationEmitter::pre (SemanticGraph::HomeFactory&) +{ + os << "virtual "; +} + +void +FactoryOperationEmitter::returns (SemanticGraph::HomeFactory& t) +{ + if (for_exec_) + { + os << STRS[COMP_EC] << "_ptr"; + } + else + { + Traversal::HomeFactory::returns (t, returns_); + } + + os << endl; +} + +void +FactoryOperationEmitter::name (SemanticGraph::HomeFactory& t) +{ + os << t.name (); +} + +void +FactoryOperationEmitter::receives_none (SemanticGraph::HomeFactory&) +{ + os << " (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl; +} + +void +FactoryOperationEmitter::receives_pre (SemanticGraph::HomeFactory&) +{ + os << " (" << endl; +} + +void +FactoryOperationEmitter::receives_post (SemanticGraph::HomeFactory&) +{ + os << endl << STRS[ENV_HDR] << ")" << endl; +} + +void +FactoryOperationEmitter::raises_none (SemanticGraph::HomeFactory&) +{ + os << STRS[EXCP_SNGL]; +} + +void +FactoryOperationEmitter::raises_pre (SemanticGraph::HomeFactory&) +{ + os << STRS[EXCP_START] << " " + << STRS[EXCP_SYS] << "," << endl; +} + +void +FactoryOperationEmitter::raises_post (SemanticGraph::HomeFactory&) +{ + os << "))"; +} + +void +FactoryOperationEmitter::post (SemanticGraph::HomeFactory&) +{ + os << ";" << endl; +} + +void +FactoryOperationEmitter::comma (SemanticGraph::HomeFactory&) +{ + os << "," << endl; +} + +// ================================================== + +FinderOperationEmitter::FinderOperationEmitter (Context& c, bool for_exec) + : EmitterBase (c), + returns_emitter_ (c), + for_exec_ (for_exec) +{ + returns_.node_traverser (returns_emitter_); +} + +void +FinderOperationEmitter::pre (SemanticGraph::HomeFinder&) +{ + os << "virtual "; +} + +void +FinderOperationEmitter::returns (SemanticGraph::HomeFinder& t) +{ + if (for_exec_) + { + os << STRS[COMP_EC] << "_ptr"; + } + else + { + Traversal::HomeFinder::returns (t, returns_); + } + + os << endl; +} + +void +FinderOperationEmitter::name (SemanticGraph::HomeFinder& t) +{ + os << t.name (); +} + +void +FinderOperationEmitter::receives_none (SemanticGraph::HomeFinder&) +{ + os << " (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl; +} + +void +FinderOperationEmitter::receives_pre (SemanticGraph::HomeFinder&) +{ + os << " (" << endl; +} + +void +FinderOperationEmitter::receives_post (SemanticGraph::HomeFinder&) +{ + os << endl << STRS[ENV_HDR] << ")" << endl; +} + +void +FinderOperationEmitter::raises_none (SemanticGraph::HomeFinder&) +{ + os << STRS[EXCP_SNGL]; +} + +void +FinderOperationEmitter::raises_pre (SemanticGraph::HomeFinder&) +{ + os << STRS[EXCP_START] << " " + << STRS[EXCP_SYS] << "," << endl; +} + +void +FinderOperationEmitter::raises_post (SemanticGraph::HomeFinder&) +{ + os << "))"; +} + +void +FinderOperationEmitter::post (SemanticGraph::HomeFinder&) +{ + os << ";" << endl; +} + +void +FinderOperationEmitter::comma (SemanticGraph::HomeFinder&) +{ + os << "," << endl; +} + diff --git a/TAO/CIAO/CIDLC/OperationHeaderEmitters.hpp b/TAO/CIAO/CIDLC/OperationHeaderEmitters.hpp new file mode 100644 index 00000000000..d1fc148e0c3 --- /dev/null +++ b/TAO/CIAO/CIDLC/OperationHeaderEmitters.hpp @@ -0,0 +1,151 @@ +// file : CIDLC/OperationHeaderEmitters.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef OPERATIONHEADEREMITTERS_HPP +#define OPERATIONHEADEREMITTERS_HPP + +#include "CCF/CIDL/SemanticGraph.hpp" +#include "CCF/CIDL/Traversal.hpp" + +#include "EmitterBase.hpp" +#include "CorbaTypeNameEmitters.hpp" + +using namespace CCF::CIDL; +using namespace CCF::CIDL::SemanticGraph; + +struct OperationEmitter : Traversal::Operation, + EmitterBase +{ + OperationEmitter (Context& c); + + virtual void pre (Type&); + + virtual void name (Type&); + + virtual void receives_pre (Type&); + + virtual void receives_none (Type&); + + virtual void receives_post (Type&); + + virtual void raises_pre (Type&); + + virtual void raises_none (Type&); + + virtual void raises_post (Type&); + + virtual void post (Type&); + + virtual void comma (Type&); +}; + +// HomeFactory and HomeFinder are tied to Operation in +// the front end. Since we want to treat them differently +// than regular operations in a home (we want to generate +// base class factory operations returning the base component, +// for example), we use this class for regular home operations +// that overrides HomeFactory and HomeFinder traversals +// to do nothing. +struct HomeOperationEmitter : OperationEmitter, + Traversal::HomeFactory, + Traversal::HomeFinder +{ + HomeOperationEmitter (Context& c); + + virtual void + traverse (SemanticGraph::HomeFactory&); + + virtual void + traverse (SemanticGraph::HomeFinder&); +}; + +struct FactoryOperationEmitter : Traversal::HomeFactory, + EmitterBase +{ + FactoryOperationEmitter (Context& c, bool for_exec = false); + + virtual void + pre (SemanticGraph::HomeFactory&); + + virtual void + returns (SemanticGraph::HomeFactory&); + + virtual void + name (SemanticGraph::HomeFactory&); + + virtual void + receives_none (SemanticGraph::HomeFactory&); + + virtual void + receives_pre (SemanticGraph::HomeFactory&); + + virtual void + receives_post (SemanticGraph::HomeFactory&); + + virtual void + raises_none (SemanticGraph::HomeFactory&); + + virtual void + raises_pre (SemanticGraph::HomeFactory&); + + virtual void + raises_post (SemanticGraph::HomeFactory&); + + virtual void + post (SemanticGraph::HomeFactory&); + + virtual void + comma (SemanticGraph::HomeFactory&); + +private: + ReturnTypeNameEmitter returns_emitter_; + Traversal::Returns returns_; + bool for_exec_; +}; + +struct FinderOperationEmitter : Traversal::HomeFinder, + EmitterBase +{ + FinderOperationEmitter (Context& c, bool for_exec = false); + + virtual void + pre (SemanticGraph::HomeFinder&); + + virtual void + returns (SemanticGraph::HomeFinder&); + + virtual void + name (SemanticGraph::HomeFinder&); + + virtual void + receives_none (SemanticGraph::HomeFinder&); + + virtual void + receives_pre (SemanticGraph::HomeFinder&); + + virtual void + receives_post (SemanticGraph::HomeFinder&); + + virtual void + raises_none (SemanticGraph::HomeFinder&); + + virtual void + raises_pre (SemanticGraph::HomeFinder&); + + virtual void + raises_post (SemanticGraph::HomeFinder&); + + virtual void + post (SemanticGraph::HomeFinder&); + + virtual void + comma (SemanticGraph::HomeFinder&); + +private: + ReturnTypeNameEmitter returns_emitter_; + Traversal::Returns returns_; + bool for_exec_; +}; + +#endif // OPERATIONHEADEREMITTERS_HPP diff --git a/TAO/CIAO/CIDLC/ParameterEmitter_T.hpp b/TAO/CIAO/CIDLC/ParameterEmitter_T.hpp new file mode 100644 index 00000000000..4fe0d55867f --- /dev/null +++ b/TAO/CIAO/CIDLC/ParameterEmitter_T.hpp @@ -0,0 +1,33 @@ +// file : CIDLC/ParameterEmitter_T.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef PARAMETEREMITTER_T_HPP +#define PARAMETEREMITTER_T_HPP + +#include "EmitterBase.hpp" + +// For generating parameter names. +template <typename T> +struct ParameterEmitter : T, EmitterBase +{ + ParameterEmitter (Context& c, bool for_exec_src = false) + : EmitterBase (c), + for_exec_src_ (for_exec_src) + { + } + + virtual void + name (typename T::Type& p) + { + os << " " + << (for_exec_src_ ? "/* " : "") + << p.name () + << (for_exec_src_ ? " */" : ""); + } + +private: + bool for_exec_src_; +}; + +#endif // PARAMETEREMITTER_T_HPP diff --git a/TAO/CIAO/CIDLC/Upcase.hpp b/TAO/CIAO/CIDLC/Upcase.hpp new file mode 100644 index 00000000000..cf114dd8392 --- /dev/null +++ b/TAO/CIAO/CIDLC/Upcase.hpp @@ -0,0 +1,21 @@ +// file : CIDLC/Upcase.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef UPCASE_HPP +#define UPCASE_HPP + +#include <cctype> + +namespace +{ + // On some platforms toupper can be something other than a + // function. + int + upcase (int c) + { + return std::toupper (c); + } +} + +#endif // UPCASE_HPP diff --git a/TAO/CIAO/CIDLC/UtilityTypeNameEmitters.cpp b/TAO/CIAO/CIDLC/UtilityTypeNameEmitters.cpp new file mode 100644 index 00000000000..499cf3e4086 --- /dev/null +++ b/TAO/CIAO/CIDLC/UtilityTypeNameEmitters.cpp @@ -0,0 +1,57 @@ +// file : CIDLC/UtilityTypeNameEmitters.cpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#include "UtilityTypeNameEmitters.hpp" + +FullTypeNameEmitter::FullTypeNameEmitter (Context& c) + : EmitterBase (c) +{ +} + +void +FullTypeNameEmitter::traverse (SemanticGraph::Type& t) +{ + os << t.scoped_name (); +} + +// =================================================== + +SimpleTypeNameEmitter::SimpleTypeNameEmitter (Context& c) + : EmitterBase (c) +{ +} + +void +SimpleTypeNameEmitter::traverse (SemanticGraph::Type& t) +{ + os << t.name (); +} + +// =================================================== + +EnclosingTypeNameEmitter::EnclosingTypeNameEmitter (Context& c) + : EmitterBase (c) +{ +} + +void +EnclosingTypeNameEmitter::traverse (SemanticGraph::Type& t) +{ + os << t.scoped_name ().scope_name (); +} + +// =================================================== + +StrippedTypeNameEmitter::StrippedTypeNameEmitter (Context& c) + : EmitterBase (c) +{ +} + +void +StrippedTypeNameEmitter::traverse (SemanticGraph::Type& t) +{ + ScopedName scoped (t.scoped_name ()); + os << Name (scoped.begin () + 1, scoped.end ()); +} + diff --git a/TAO/CIAO/CIDLC/UtilityTypeNameEmitters.hpp b/TAO/CIAO/CIDLC/UtilityTypeNameEmitters.hpp new file mode 100644 index 00000000000..aece771ca69 --- /dev/null +++ b/TAO/CIAO/CIDLC/UtilityTypeNameEmitters.hpp @@ -0,0 +1,56 @@ +// file : CIDLC/UtilityTypeNameEmitters.hpp +// author : Jeff Parsons <j.parsons@vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef UTILITYTYPENAMEEMITTERS_HPP +#define UTILITYTYPENAMEEMITTERS_HPP + +#include "CCF/CIDL/SemanticGraph.hpp" +#include "CCF/CIDL/Traversal.hpp" +#include "EmitterBase.hpp" + +using namespace std; +using namespace CCF::CIDL; +using namespace CCF::CIDL::SemanticGraph; + +// Emits type's full scoped name. +struct FullTypeNameEmitter : Traversal::Type, + EmitterBase +{ + FullTypeNameEmitter (Context&); + + virtual void + traverse (SemanticGraph::Type&); +}; + +// Emits type's local name. +struct SimpleTypeNameEmitter : Traversal::Type, + EmitterBase +{ + SimpleTypeNameEmitter (Context&); + + virtual void + traverse (SemanticGraph::Type&); +}; + +// Emits name of type's enclosing scope. +struct EnclosingTypeNameEmitter : Traversal::Type, + EmitterBase +{ + EnclosingTypeNameEmitter (Context&); + + virtual void + traverse (SemanticGraph::Type&); +}; + +// Emits scoped name minus the leading double colon. +struct StrippedTypeNameEmitter : Traversal::Type, + EmitterBase +{ + StrippedTypeNameEmitter (Context&); + + virtual void + traverse (SemanticGraph::Type&); +}; + +#endif // UTILITYTYPENAMEEMITTERS_HPP diff --git a/TAO/CIAO/ChangeLogs/ChangeLog-06a b/TAO/CIAO/ChangeLogs/ChangeLog-06a new file mode 100644 index 00000000000..f2d22b3e963 --- /dev/null +++ b/TAO/CIAO/ChangeLogs/ChangeLog-06a @@ -0,0 +1,8579 @@ +Tue Apr 18 00:14:56 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h + + Reverted back the two files I accidentally checked in, which + should have gone into a branch. :( + +Mon Apr 17 18:04:56 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu> + + * M docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc + * examples/BasicSP/BasicSP.mpc + * examples/BasicSP/BMClosedED/BMClosedED.mpc + * examples/BasicSP/BMDevice/BMDevice.mpc + * examples/BasicSP/BMDisplay/BMDisplay.mpc + * examples/BasicSP/EC/EC.mpc + * examples/Display/HUDisplay.mpc + * examples/Display/GPS/GPS.mpc + * examples/Display/NavDisplay/NavDisplay.mpc + * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc + * examples/Display/RateGen/RateGen.mpc + * examples/Hello/Hello_Base/Hello_Base.mpc + * examples/Hello/Receiver/Receiver.mpc + * examples/Hello/Sender/Sender.mpc + * examples/Swapping/Hello_Base/Hello_Base.mpc + * examples/Swapping/Receiver/Receiver.mpc + * examples/Swapping/Sender/Sender.mpc + * tools/Config_Handlers/Config_Handlers.mpc + + Linking fixes for OS X. + + +Mon Apr 17 02:33:44 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * RACE/Planners/SimpleBinPacker/SimpleBinPacker.mpc: + * tools/Config_Handlers/Config_Handlers.mpc: + + Avoids building with ace_for_tao. + +Fri Apr 14 14:50:47 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * examples/BasicSP/BMClosedED/BMClosedED.mpc: + * examples/BasicSP/BMDisplay/BMDisplay.mpc: + * examples/Display/GPS/GPS.mpc: + * examples/Display/RateGen/RateGen.mpc: + * examples/Hello/Sender/Sender.mpc: + * examples/Swapping/Sender/Sender.mpc: + * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc: + * tests/CIDL/CodeGen/CodeGen.mpc: + * tests/Minimum/Receiver/Receiver.mpc: + + Avoids building with ace_for_tao. + +Thu Apr 13 19:18:22 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * docs/tutorials/Quoter/Simple/Broker/Broker.mpc: + * docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc: + * examples/BasicSP/BMDevice/BMDevice.mpc: + * examples/BasicSP/EC/EC.mpc: + * examples/Display/NavDisplay/NavDisplay.mpc: + * examples/Hello/Receiver/Receiver.mpc: + * examples/Swapping/Receiver/Receiver.mpc: + * performance-tests/Benchmark/Benchmark.mpc: + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc: + * tests/Minimum/Sender/Sender.mpc: + + Avoids building with ace_for_tao. + +Apr Thu 13 03:32:35 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciaosvcs/Events/CIAO_Events.idl + + Removed this file. + + * ciaosvcs/Events/CIAO_Events.mpc + + Modified to put an empty segment of IDL_Files. + +Wed Apr 12 17:51:03 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * NEWS + + Updated the NEWS file. + +Wed Apr 12 14:47:14 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeApplication/NodeApplication.mpc + * DAnCE/NodeManager/Monitor.mpc + * DAnCE/NodeManager/NodeManager.mpc + * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc + * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc + * ciaosvcs/Events/CIAO_Events.mpc + + Fixes for linking errors/warnings on OS X builds. + +Tue Apr 11 12:39:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/Config_Handlers/Utils/Utils.mpc: + Use exceptions as base project + +Tue Apr 11 12:43:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Container_Base.cpp: + Small simplification + +Tue Apr 11 12:22:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc: + * tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc: + Updated base projects to get correct build order + +Tue Apr 11 08:43:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp: + Initialise pointers with 0 + +Tue Apr 11 06:54:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Minimum/Minimum_Base/Minimum.mpc: + * tests/IDL3/Lookup/lookup_test.mpc: + * tests/IDL3/ImpliedIDL/Homes/Homes.mpc: + * tests/IDL3/ImpliedIDL/Events/Events.mpc: + * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc: + * tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc: + * tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc: + * tests/IDL3/Homes/Inheritance/Inheritance.mpc: + * tests/IDL3/Homes/Finder/Finder.mpc: + * tests/IDL3/Homes/Factory/Factory.mpc: + * tests/IDL3/Homes/Basic/Basic.mpc: + * tests/IDL3/Homes/Attributes/HomeAttributes.mpc: + * tests/IDL3/Events/Regular/Regular.mpc: + * tests/IDL3/Events/Abstract/Abstract.mpc: + * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc: + * tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc: + * tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc: + * tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc: + * tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc: + * tests/CIDL/CodeGen/CodeGen.mpc: + * tests/Bug_2130_Regression/interfaces/ENW.mpc: + * performance-tests/Protocols/common/Protocols.mpc: + * examples/Swapping/Hello_Base/Hello_Base.mpc: + * examples/Hello/Hello_Base/Hello_Base.mpc: + * examples/Display/HUDisplay.mpc: + * examples/BasicSP/BasicSP.mpc: + * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc: + Updated base projects to get correct build order + +Tue Apr 11 06:35:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc: + Use base projects to set dependencies + +Mon Apr 10 18:48:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeApplication/NodeApplication.mpc: + Fixed base project + +Mon Apr 10 14:29:13 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp + + Modified to make _narrow to be called at the first step + when connecting supplier and config. Also modified to + make debug statements debug_level controlled. + +Mon Apr 10 12:31:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/CCM_Core.mpc: + Removed commented out line + + * DAnCE/ExecutionManager/ExecutionManager.mpc: + * DAnCE/NodeApplication/NodeApplication.mpc: + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc: + * DAnCE/NodeManager/NodeManager.mpc: + * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc: + Updated base projects + +Mon Apr 10 11:51:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc: + Readded ciao_container_dnc + + * ciao/CCM_Core.mpc: + Use more base projects + + * DAnCE/Interfaces/Interfaces.mpc: + * DAnCE/ExecutionManager/ExecutionManager.mpc: + Use other base projects to get correct build order + +Mon Apr 10 10:00:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc: + Removed ciao_container_dnc + +Mon Apr 10 09:38:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciaosvcs/Events/CIAO_Events.mpc: + Use ciao_rtevent_dnc as base + +Mon Apr 10 09:18:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc: + * ciaosvcs/Events/CIAO_Events.mpc: + Use ciao_events_base_dnc as base project + +Mon Apr 10 09:15:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/CCM_Core.mpc: + For Deployment_Stub use ciao_events_base_dnc and ciao_client_dnc + as base projects + +Mon Apr 10 08:50:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciaosvcs/Events/CIAO_Events.mpc: + Removed ciao_events_dnc as base project, we are building + this lib right now + + * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc: + Use base projects instead of libs + + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc: + Remvoed ciao_events_dnc + +Sat Apr 8 15:39:14 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc + + Fixed a linking error in SuSE_CP_Static build. + +Fri Apr 7 04:09:33 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h + + Fixed a bug in detecting External connection and Internal + connections. Earlier when an external component is detected, + not *all* connections associated with this components are + purged from the to-be-removed connections list. Added another + helper method <purge_connections> to accomplish this task. + + Modified to enforce passivation occured on all components + before any connections are removed. + +Fri Apr 7 03:55:46 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + + Fixed a bug when redeploying components using the same set + of NodeManagers. Earlier when destroying applications or + components, internal components and external/shared components + are not all unbinded from the map, which causes duplicate + instance exception thrown. + +Thu Apr 6 16:01:30 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CCF/CCF/CompilerElements/TokenStream.hpp: + + Added empty virtual destructor to template base class, to + eliminate bogus GCC warnings. + +Thu Apr 6 15:22:31 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciaosvcs/Events/CIAO_Events.mpc + + Fixed linking errors on WinXP_BCB6_Pro_Dynamic_Release build. + + * examples/Hello/descriptors_shared_components/deploymentplan.cdp + * examples/Hello/descriptors_shared_components/deploymentplan_shared_components.cdp + + Modified to illustrate the shared components scenario. + +Thu Apr 6 14:54:59 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciaosvcs/Events/CIAO_EventService_Factory_impl.h + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h + + Some cosmestic changes. + +Thu Apr 6 08:20:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/CCM_Component.idl: + Removed the forward declaration of IRObject and just include + ciao/CCM_Component.idl. The forward declaration is causing + problems with the versioned namespace support, will investigate + this later + +Wed Apr 5 20:57:32 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp + + Make debug statement debug_level controlled. + +Wed Apr 5 18:49:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp: + Fixed compile errors + +Wed Apr 5 13:18:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h: + Fixed pragma once warning + + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp: + Fixed conversion warning + +Wed Apr 5 12:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/Config_Handlers/Basic_Deployment_Data.hpp: + Fixed compile errors + +Tue Apr 4 18:11:37 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciaosvcs/Events/CIAO_EventService_Factory_impl.cpp + * ciaosvcs/Events/CIAO_EventService_Factory_impl.h + + Fixed an warning in WinXP_BCB6_Pro_Dynamic_Debug build + by modifying the name of the original "init" method. + +Tue Apr 4 17:27:52 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu> + + * tools/Config_Handlers/CIAO_Events/test.cpp + + Fixed an warning. + +Mon Apr 3 20:00:11 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/Literals.hpp: + * CIDLC/Literals.cpp: + + Changed an enum value 'SIZE' to 'LIT_SIZE' to avoid an + apparent conflict with something in WinDef.h on + Windows. + +Thu Mar 30 18:28:32 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciao/Deployment_Events.idl + * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.cpp + + Fixed fuzz errors. + +Thu Mar 30 17:16:17 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciaosvcs/Events/CIAO_Direct/* + + Removed all files under this directory since they are + no longer used. + +Thu Mar 30 17:23:12 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * tools/Config_Handlers/Config_Handlers.mpc + + Added link dependency to CIAO_Events_Handler project. + +Thu Mar 30 16:38:25 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * CIAO_DAnCE.mwc + * CIAO_TAO.mwc + * CIAO_TAO_DAnCE.mwc + + Added "ciaosvcs" into the workspace. + + * ciao/CCM_Core.mpc + * ciao/CCM_Event.idl + * ciao/Container_Base.cpp + * ciao/Container_Base.h + * ciao/Deployment_Core.idl + * ciao/Deployment_Data.idl + * ciao/Deployment_Events.idl + + Added an "CIAO_DnC_Events" project. Enhanced Deployment_Core.idl + to support configuring and deploying pub/sub services. + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp + * DAnCE/NodeApplication/NodeApplication_Impl.cpp + * DAnCE/NodeApplication/NodeApplication_Impl.h + * DAnCE/NodeApplication/NodeApplication_Impl.inl + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + + Enhanced DAnCE to support pub/sub services integration. + + * ciaosvcs/Events/CIAO_EventService_Factory_impl.cpp + * ciaosvcs/Events/CIAO_EventService_Factory_impl.h + * ciaosvcs/Events/CIAO_Events.idl + * ciaosvcs/Events/CIAO_Events.mpc + * ciaosvcs/Events/CIAO_Events_Export.h + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.cpp + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.h + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.idl + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent_Export.h + * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.cpp + * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.h + * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events.idl + * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc + * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Export.h + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEVENT_Export.h + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.idl + * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc + + Added CIAO_Event_Service support, which are some reusable + libraries and CORBA services that could be configured and + installed on demand through the DAnCE toolchain. + + * docs/schema/Basic_Deployment_Data.xsd + * docs/schema/CIAOEvents.xsd + * docs/schema/cdp.xsd + + Enhanced XML schema to capture metadata information for + configuring and deploying pub/sub services. + + * tools/Config_Handlers/Basic_Deployment_Data.cpp + * tools/Config_Handlers/Basic_Deployment_Data.hpp + * tools/Config_Handlers/CPD_Handler.cpp + * tools/Config_Handlers/Config_Handlers.mpc + * tools/Config_Handlers/DP_Handler.cpp + * tools/Config_Handlers/ESD_Handler.cpp + * tools/Config_Handlers/ESD_Handler.h + * tools/Config_Handlers/PSPE_Handler.cpp + * tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp + * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp + * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp + * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.h + * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc + * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers_Export.h + * tools/Config_Handlers/CIAO_Events/test.cpp + + Added config handler support to accomodate the above changes. + + * examples/Hello/descriptors_events/ciao-events-example-with-filters.ced + * examples/Hello/descriptors_events/ciao-events-example.ced + * examples/Hello/descriptors_events/flattened_deploymentplan_events.cdp + * examples/Hello/descriptors_events/flattened_deploymentplan_with_filters.cdp + + Added several examples to showcase the capability of CIAO + pub/sub services. + +Thu Mar 30 14:43:46 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/AttributeSourceEmitters_T.hpp: + + Added 'using namespace StringLiterals;' to this file. Thanks + to Nanbor Wang <nanbor@txcorp.com> for pointing out that + this line is also necessary on some platforms, in addition + to the change of + + Wed Mar 29 20:29:40 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + +Wed Mar 29 20:29:40 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/AttributeSourceEmitters_T.hpp: + + Added #include of Literals.hpp. Some platforms are picking up + the declarations in this file without the explicit include, + others are not. + +Wed Mar 29 19:52:54 UTC 2006 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * examples/Hello/descriptors_RTCCM/rt-config-example.csr: + Updated <cmdline> and <svcconf> element with more realistic + values. + +Wed Mar 29 04:40:58 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + + Added the functionality to honor command line arguments + and service configuration file options defined through + RT-CCM descriptors. + +Mon Mar 27 19:56:51 UTC 2006 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplication/NodeApplication.cpp (main): Added code to + print out commandline options of the NodeApplicaion. The print + out is available for CIAO_DEBUG_LEVEL > 9. + + * DAnCE/NodeApplication/Configuration_Factory.h: + * DAnCE/NodeApplication/Configuration_Factory.cpp: Changed + parse_args function to pass "argc" as reference to be consistent + with Arg_Shifter's signature. + + Double-check the "-o" flag first with exact string comparison + before extracting the parameter to avoid mistaking any of the + "-ORBxxx" command line flags as the "-o" flag. Thanks to Sandro + Andrade <sandro @dcc.ufba.br> for reporting the bug. + +Mon Mar 20 22:35:47 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * ciao/Servant_Impl_Utils_T.cpp: + + - Added 'typename' qualifier when declaring instances + of an iterator for a templatized hash map, since gcc + reminds us that leaving the compiler to implicitly + determine if the scoped name denotes a member or a + type is deprecated. + + - Added an #include of Cookies.h, which is need by compilers + that don't require the template sourced to be included in + the header file. + +Sun Mar 19 20:37:47 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/TypeNameEmitter.cpp: + * CIDLC/TypeNameEmitter.hpp: + + Removed these files, their former contents are now divided + between CorbaTypenameEmitters.{hpp,cpp} and + UtilityTypeNameEmitters.{hpp,cpp}. + +Fri Mar 17 14:23:53 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * ciao/CCM_Core.mpc: + * ciao/Servant_Impl_Base.cpp: + * ciao/Servant_Impl_Base.h + + - Changed port table types from + ACE_Hash_Map_Manager_Ex<> to ACE_Array_Map<>, + which is more lightweight and makes no + allocations if no entries are added to + the table. + + - Implemented spec-defined methods + get_all_receptacles(), get_all_publishers(), + and disconnect_consumer(). + + * ciao/Servant_Impl_Utils_T.cpp: + + New file, containing implementations of new + static template methods added to class + Servant_Impl_Base, which are called in + generated code as part of the implementation + of the spec-defined methods mentioned above. + + * CIDLC/AttributeHeaderEmitters.cpp: + * CIDLC/AttributeHeaderEmitters.hpp: + * CIDLC/AttributeSourceEmitters_T.hpp: + * CIDLC/CompositionEmitter.cpp: + * CIDLC/CompositionEmitter.hpp: + * CIDLC/CorbaTypeNameEmitters.cpp: + * CIDLC/CorbaTypeNameEmitters.hpp: + * CIDLC/EmitterBase.cpp: + * CIDLC/EmitterBase.hpp: + * CIDLC/EmitterContext.cpp: + * CIDLC/EmitterContext.hpp: + * CIDLC/InterfaceEmitter.cpp: + * CIDLC/InterfaceEmitter.hpp: + * CIDLC/ModuleEmitter.cpp: + * CIDLC/ModuleEmitter.hpp: + * CIDLC/OperationHeaderEmitters.cpp: + * CIDLC/OperationHeaderEmitters.hpp: + * CIDLC/ParameterEmitter_T.hpp: + * CIDLC/Upcase.hpp: + * CIDLC/UtilityTypeNameEmitters.cpp: + * CIDLC/UtilityTypeNameEmitters.hpp: + + New files, containing common code factored + out of the C++ source files below. + + * CIDLC/CIDLC.mpc: + * CIDLC/DescriptorGenerator.cpp: + * CIDLC/ExecImplHeaderGenerator.cpp: + * CIDLC/ExecImplSourceGenerator.cpp: + * CIDLC/ExecutorMappingGenerator.cpp: + * CIDLC/Literals.cpp: + * CIDLC/Literals.hpp: + * CIDLC/ServantHeaderGenerator.cpp: + * CIDLC/ServantSourceGenerator.cpp: + + - Added new generated code as part of the + implementation of the spec-defined methods + mentioned above. + + - Added support for attribute exceptions in + code optionally generated for the stencil + executor implementation classes. + +Thu Mar 16 16:31:51 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * ciao/CCM_Component.idl: + + Added "omg.org" prefix to the recently added opening of the + CORBA module in this file. + +Tue Mar 14 10:10:58 UTC 2006 Nilabja Roy <nilabjar@dre.vanderbilt.edu> + + * DAnCE/NodeManager/MonitorController.h: + Reverting back to previous version to avoid conflicts + +Tue Mar 14 09:46:25 UTC 2006 Nilabja Roy <nilabjar@dre.vanderbilt.edu> + + * DAnCE/NodeManager/MonitorController.cpp: + Reverting back to previous version. Mistakenly added conflicted version. + +Thu Mar 9 09:18:58 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * COPYING: Updated the date to include 2006. + Thanks to Alan Kierstead <ackierstead at fedex dot com> for + motivating the fix to this oversight. + +Thu Mar 09 08:55:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/Interfaces/ExecutionManagerDaemon.idl: + * DAnCE/Interfaces/NodeManagerDaemon.idl: + New idl files, these are the same as there are now in the directory + but then just renamed to match the interfaces in these files and + then don't conflict with the ones I created in ciao. + + * DAnCE/Interfaces/ExecutionManager.idl: + * DAnCE/Interfaces/NodeManager.idl: + Removed, file names where not correct and now conflict with files in + the ciao directory + + * DAnCE/Interfaces/Interfaces.mpc: + Updated because of file renames + + * ciao/CCM_Base.idl: + Removed old comment + + * ciao/CCM_Component.idl: + Forward declare CORBA::IRObject instead of including the IFR_Client + idl file + + * ciao/Deployment_Base.idl: + Removed not needed include + + * ciao/Dynamic_Component_Activator.h: + Reordered includes + + * ciao/Swapping_Servant_Home_Impl_Base.h: + * ciao/Upgradeable_Context_Impl_T.h: + * ciao/Swapping_Servant_Home_Impl_T.h: + * ciao/Swapping_Servant_Home_Impl_T.cpp: + Added ciao/ as prefix for the includes + + * ciao/Upgradeable_Context_Impl_T.h: + Added private default constructor + + * ciao/Deployment.idl: + * ciao/DomainApplicationManager.idl: + * ciao/ExecutionManager.idl: + * ciao/NodeApplication_Callback.idl: + * ciao/NodeApplicationManager.idl: + * ciao/NodeManager.idl: + * ciao/RepositoryManager.idl: + * ciao/CCM_Core.mpc: + Splitted Deployment.idl in multiple files so that the linker + can decide not to link in a set of object files we don't need. + This will reduce footprint for several applications + + * DAnCE/DomainApplicationManager/Deployment_Configuration.h: + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h: + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + * DAnCE/ExecutionManager/Execution_Manager_Impl.h: + * DAnCE/ExecutionManager/DAM_Map.cpp: + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h: + * DAnCE/NodeManager/NodeManager_Impl.h: + * DAnCE/NodeManager/Node_Manager.cpp: + * DAnCE/NodeManager/NodeManager.mpc: + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.{h.cpp}: + * DAnCE/TargetManager/Deployment_Configuration.h: + Updated for the idl subsetting of ciao/Deployment.idl. Also add ciao/ + prefix to several includes and try to cleanup a little. + + * DAnCE/RepositoryManager/RepositoryManager.idl: + * DAnCE/RepositoryManager/RepositoryManagerDaemon.idl: + Renamed the first file to the second, matches the interface name. + + * DAnCE/RepositoryManager/RepositoryManager.mpc: + * DAnCE/RepositoryManager/RMadmin.cpp: + * DAnCE/RepositoryManager/PC_Updater.{h,cpp}: + * DAnCE/RepositoryManager/RepositoryManager_Impl.h: + * DAnCE/RepositoryManager/RepositoryManager.cpp: + Updated because of rename above + + * DAnCE/RTNodeApplication/senv.sh: + Removed this file, no need here. + + * DAnCE/RTNodeApplication/NodeApplication_Task.h: + No need for virtual inheritance, that consumes more footprint then + needed. + + * DAnCE/RTNodeApplication/NodeApplication_Task.cpp: + Reordered includes + +Wed Mar 08 15:58:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/ServerResources.idl: + Fixed incorrect file header + +Wed Mar 08 14:01:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * rules.ciao.GNU: + Added $(CIAO_ROOT)/ciao to LDFLAGS and $(CIAO) to INCLDIRS + as we do in rules.tao.GNU, this improves the footprint stats + +Mon Mar 06 16:16:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Swapping_Container.{h,cpp}: + Made serial_number_ unsigned and documented why it is static + + * performance-tests/Benchmark/LatencyTest.h: + Removed not needed msvc pragma push/pop + +Sun Mar 05 11:16:46 2006 Wallace Zhang <zhangw@ociweb.com> + + * CIAO version 0.5 released. + +Thu Mar 2 17:50:36 UTC 2006 Boris Kolpackov <boris@kolpackov.net> + + * CCF/CCF/IDL2/SemanticGraph/Struct.cpp: + * CCF/CCF/IDL2/SemanticGraph/Union.cpp: + + Fixed a bug in the logic that determines completeness of recursive + structs and unions. + +Thu Mar 2 08:49:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeApplication/Container_Impl.cpp: + Replaced NULL with 0 + +Thu Mar 2 01:33:09 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated this file with info from Ming Xiong and Gan Deng. + +Wed Mar 1 22:34:52 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated the file with info from Ming Xiong. + +Wed Mar 1 19:34:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * CIAO-INSTALL.html: + Updated rename of CIAOTAO.mwc to CIAO_TAO.mwc + +Wed Mar 1 15:02:10 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu> + + * DAnCE/NodeApplication/Container_Impl.h + * DAnCE/NodeApplication/Container_Impl.cpp + + Added codes to unregister with naming service when removing + components + +Tue Feb 28 18:46:42 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Deployment.xsd + * DAnCE/Deployment.xsd.orig + * DAnCE/XMI.xsd + * DAnCE/XMI.xsd.orig + + Removed these schema files. They were misleading and useless. + +Fri Feb 24 21:21:02 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu> + + * tools/Config_Handlers/Config_Handlers.mpc + + Added a verbatim to disable hidden_visibility for Config_Handlers + +Fri Feb 24 18:54:52 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * DAnCE/RepositoryManager/HTTP_Handler.cpp: + * DAnCE/RepositoryManager/RM_Helper.h: + * DAnCE/RepositoryManager/RM_Helper.cpp: + * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp: + some cosmetic changes + + * DAnCE/RepositoryManager/URL_Parser.h: + made the constructor protected and made the ACE_Singleton a friend + + * DAnCE/RepositoryManager/URL_Parser.cpp: + fixed a bug and improved the robustness of the code + +Fri Feb 24 09:38:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * CIAO-INSTALL.html: + Fixed typo + +Thu Feb 23 23:35:59 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * examples/Swapping/Receiver/Receiver.mpc: + * examples/Swapping/Sender/Sender.mpc: + + I was over zealous in my previous change. I shortened too many + project names (those that are defined in projects outside of these + mpc files). + +Wed Feb 22 16:38:32 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * CIAO-INSTALL.html: + + Updated the documentation on how to build cidlc on Windows. + + * examples/Swapping/Receiver/Receiver.mpc: + * examples/Swapping/Sender/Sender.mpc: + + Shortened the project names in these MPC files to avoid fuzz + warnings. + +Wed Feb 22 01:11:59 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplication/Container_Impl.cpp + + Fixed a bug about naming service registration. + Thanks Sandro Andrade <sandro @dcc.ufba.br> for reporting + a bug about removing component error. + +Tue Feb 21 23:59:05 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciao/Deployment.idl + + Added a parameter to the perform_redeployment() operation + to the NodeApplicationManager interface to separate the + "installation of new components" from the "removal of + existing components". + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + + Modified the logic of perform_redeployment() functionality + to enforce correct order of ReDaC, which is: + (1) Install new components, + (2) Set up new connections, + (3) Remove old connections, and + (4) Remove old components. + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + + Fixed a bug about removing components when using ReDaC. + In NodeApplicationManager, after the perform_redeployment() + call calls the remove_components() method to actually + destroy components from the component server, DAnCE NAM doesn't + unbind those components from the cached component_map_, hence + when the create_connections() method is called afterwords, + NAM tries to access the destroyed components to get + their port information, which causes the Object_Not_Exist + exception thrown. + + The fix will unbind the removed components from the + cached component map. However, the trick is that after + we unbind these components, the port iinformation of + these components are also lost, then the + DomainApplicaitonManager could not handle the + "removal" of connections correctly. + + The Right Fix is to enforce correct call sequence, which + are illustrated above. + Thanks Sandro Andrade <sandro @dcc.ufba.br> for reporting + a bug about removing component error. + + * DAnCE/NodeApplication/NodeApplication_Impl.h + * DAnCE/NodeApplication/NodeApplication_Impl.cpp + + Added a component state map to keep track of component state + information. With this map, components will be activated + only when they are newly created, and will be passivated + only when they are currently active. This will also fix + a bug about the component initialization sequence. Earlier, + when components are installed, they are immediately activated + by explicitly calling ciao_preactivate, ciao_activate, and + ciao_postactivate on the comopnent object reference, + which is not compliant to the Spec defined semantics. + This fix shall ensure that the components are activated AFTER + their connections have been setup. + + * DAnCE/NodeApplication/Container_Impl.cpp + + Fixed a bug when passing object reference to a local function. + Earlier the memory of the object reference is released by + the callee, which causes the object reference becomes invalid + after the function returns. + +Tue Feb 21 19:43:11 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu> + + * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc + * performance-tests/Protocols/Controller/Controller.mpc + + Added avoids+= ace_for_tao to two additional projects. + + * examples/Display/descriptors/EM.ior + * examples/Display/descriptors/GPS.ior + * examples/Display/descriptors/NavDisplay.ior + * examples/Display/descriptors/NavDisplayGUI.ior + + Removed these ior files. + +Tue Feb 21 17:40:20 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu> + + * DAnCE/NodeManager/MonitorController.cpp: + + Fixed ACE_TRACE compilation error. + +Mon Feb 20 15:08:49 2006 Wallace Zhang <zhangw@ociweb.com> + + * CIAO version 0.4.10 released. + +Mon Feb 20 19:48:12 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu> + + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_Impl.ccd + + Removed this file because it is generated + +Fri Feb 17 19:22:21 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated this file with more inputs. + +Thu Feb 16 15:04:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * CIAO_DAnCE.mwc: + Fixed typo in this file + +Thu Feb 16 04:14:15 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu> + + * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc + * performance-tests/Protocols/Receiver/Receiver.mpc + * performance-tests/Protocols/Sender/Sender.mpc + + Disabled building some project when ace_for_tao is set. + +Wed Feb 15 19:24:31 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu> + + * CIAO.mwc + + This file now builds all of CIAO. + + * CIAODAnCE.mwc + * CIAO_DAnCE.mwc + + Renamed this file to CIAO_DAnCE.mwc + + * CIAOTAO.mwc + * CIAO_TAO.mwc + + Renamed this file to CIAO_TAO.mwc. + + Thanks to Chad Elliott (elliott_c at ociweb dot com) for suggesting + these changes. + + * CIAO_TAO_DAnCE.mwc + + Removed the DAnCE/tests/Config_Handlers exclusion, as it no + longer exists. + +Wed Feb 15 07:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp: + Replaced ACE cast macros with their C++ versions + +Wed Feb 15 07:28:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * CIDLC/ServantSourceGenerator.cpp: + Fixed generation so that it compiles with Borland + +Tue Feb 14 23:01:46 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplication/NodeApplication_Impl.cpp + + Fixed a bug when removing ReDaC components from the container. + This bug was caused by the container set indexing error when + handling newly installed components. + Thanks Sandro Andrade <sandro @dcc.ufba.br> for reporting + this issue. + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + + Some cosmetic changes. + + * DAnCE/NodeApplicationManager/ImplementationInfo.cpp + * DAnCE/NodeApplicationManager/ImplementationInfo.h + + Added a const modifier in the constructor to ensure safety. + + * DAnCE/NodeManager/NodeManager_Impl.cpp + + Fixed a bug when detecting whether a component is shared + by multiple assemblies. Earlier, when ReDaC is used, existing + components are wrongly treated as shared components. + +Tue Feb 14 22:02:59 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu> + + * CIAO_TAO_DAnCE.mwc + + Added naming service and Config_Handlers. + + * DAnCE/NodeManager/NodeManager.mpc + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc + + Fixed link time warnings on OS X. + +Tue Feb 14 19:57:32 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp + + Fixed a bug about when a component has a name with "Exec" + string in it, the _stub library could be picked up + incorrectly. + +Mon Feb 13 20:53:58 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + + Fixed a bug about removing existing components. Earlier + the logic in detecting "to-be-removed" components has + a bug. + +Mon Feb 13 20:11:35 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp + + Changed ACE_const_cast to c++ native const_cast since the + former one is deprecated. Also changed the implementation of + the acquireSession() logic, so the deadlock bug could + be reproduced. + +Mon Feb 13 20:01:38 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplication/NodeApplication_Impl.cpp + + Cosmetics change. + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + + Enhanced to call ccm_activate, ciao_preactivate, and + ciao_postactivate when installing new components. + Thanks Sandro Andrade <sandro @dcc.ufba.br> for reporting + this issue. + + Also added the logic for remove_existing_components into + the class, which has not been integrated yet. + + Refactor the code by putting these logics into separate + methods to enhance readability. + +Mon Feb 13 17:12:09 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ExecutionManager/Execution_Manager.cpp + + Fixed a bug about registering EM with naming service, originally + an invalid naming context is specified. Also allowed EM to both + register to naming service AND dump and IOR file. Thanks Sandro + Andrade <sandro at dcc dot ufba dot br> for reporting this bug. + +Mon Feb 13 15:41:21 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp + + Fixed a warning about "deprecated conversion from string + constant to `char*' on RHEL_Static_GCC-3.4.2 build. + +Mon Feb 13 11:34:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h: + Removed not allowed semicolon + +Mon Feb 13 09:22:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h: + Fixed compile error in single threaded builds + +Mon Feb 13 08:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Server_init.cpp: + * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp: + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp: + Fixed conversion warnings + +Sat Feb 11 21:39:54 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.h + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent_Factory.h + + Fixed fuzz build erros. + +Sat Feb 11 21:26:08 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * tests/Bug_2130_Regression/descriptors/run_test.pl + + Fixed the command line option to start the NodeApplication + to enable real-time support. + Thanks Roland Schimmack <Roland.Schimmack @ gmx.de> for + reporting this error. + +Sat Feb 11 21:00:00 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu> + + * ciao/Server_init.cpp + + Removed an extra explicit qualification + +Sat Feb 11 18:49:21 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciaosvcs/Events/CIAO_Events.mpc + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.mpc + Removed these files to get at least our builds running again + +Fri Feb 10 16:11:35 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciaosvcs/Events/CIAO_Events.mpc + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.mpc + + Temporarily disable the build of these projects before + the integration effort is complete to avoid pollute + the scoreboard. + +Fri Feb 10 14:28:14 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu> + + * docs/tutorials/CoSMIC/01.html + * docs/tutorials/CoSMIC/02.html + * docs/tutorials/CoSMIC/index.html + * docs/tutorials/CoSMIC/Images/fig10.jpg + * docs/tutorials/CoSMIC/Images/fig11.jpg + * docs/tutorials/CoSMIC/Images/fig2.jpg + * docs/tutorials/CoSMIC/Images/fig4.jpg + * docs/tutorials/CoSMIC/Images/fig5.jpg + * docs/tutorials/CoSMIC/Images/fig6.jpg + * docs/tutorials/CoSMIC/Images/fig7.jpg + * docs/tutorials/CoSMIC/Images/fig8.jpg + * docs/tutorials/CoSMIC/Images/fig9.jpg + * docs/tutorials/CoSMIC/Model/Quoter.xme + + Updated the CoSMIC tutorial so that it is consistent with + the latest GME and CoSMIC. + +Fri Feb 10 11:15:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Port_Activator.h: + Doxygen improvements + + * ciao/NodeApp_CB_Impl.h: + Made destructor protected + + * ciao/Container_Base.{h,cpp}: + Made the refcount unsigned long, addressed several comments and + improved documentation + +Fri Feb 10 04:56:26 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplication/Container_Impl.cpp + * DAnCE/NodeApplication/Container_Impl.h + * ciao/Server_init.cpp + * ciao/Server_init.h + + Added support for creating multicomponent naming context through + the deployment plan. Thanks Dipa Suri <dipa.suri @ lmco.com> for + contributing a NameUtility class implementation. + + * ciaosvcs/Events/CIAO_Events.idl + * ciaosvcs/Events/CIAO_Events.mpc + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.cpp + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.h + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.idl + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.mpc + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent_Factory.cpp + * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent_Factory.h + + Added some files for event channel integration for CIAO. + More file check-ins are on the way. + +Thu Feb 9 23:38:19 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu> + + * TAO/CIAO/CIAOTAO.mwc + + Updated mwc to include some dependencies required by tests + and examples. + + * tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.cidl + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_Impl.ccd + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec_export.h + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_stub_export.h + * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_svnt_export.h + * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp + * tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp + * tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat + * tests/Bug_2130_Regression/descriptors/rt-config-example.csr + * tests/Bug_2130_Regression/descriptors/run_test.pl + * tests/Bug_2130_Regression/interfaces/ENW.idl + * tests/Bug_2130_Regression/interfaces/ENW.mpc + * tests/Bug_2130_Regression/interfaces/ENW_stub_export.h + * tests/Bug_2130_Regression/interfaces/ENW_svnt_export.h + + Added a new tests for Bug_2130. + Thanks Roland Schimmack <Roland.Schimmack @ gmx.de> for + providing this test case. + +Thu Feb 9 16:48:42 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tools/IDL3_to_IDL2/be_global.h: + * tools/IDL3_to_IDL2/be_init.cpp: + * tools/IDL3_to_IDL2/be_sunsoft.cpp: + * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp: + * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h: + + Removed all usage of internal 'idl_bool' typedef in the + IDL3 to IDL2 converter, consistently with the changes to + the TAO IDL compiler front end, which is used by this + tool. + +Thu Feb 9 16:33:45 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/ADD_Handler.cpp + * tools/Config_Handlers/Any_Handler.cpp + * tools/Config_Handlers/CCD_Handler.cpp + * tools/Config_Handlers/CEPE_Handler.cpp + * tools/Config_Handlers/CPD_Handler.cpp + * tools/Config_Handlers/CRDD_Handler.cpp + * tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp + * tools/Config_Handlers/DD_Handler.cpp + * tools/Config_Handlers/DP_Handler.cpp + * tools/Config_Handlers/DP_PCD_Handler.cpp + * tools/Config_Handlers/DataType_Handler.cpp + * tools/Config_Handlers/ERE_Handler.cpp + * tools/Config_Handlers/IDD_Handler.cpp + * tools/Config_Handlers/IDREF_Base.cpp + * tools/Config_Handlers/ID_Handler.cpp + * tools/Config_Handlers/IRDD_Handler.cpp + * tools/Config_Handlers/MDD_Handler.cpp + * tools/Config_Handlers/PCD_Handler.cpp + * tools/Config_Handlers/PSPE_Handler.cpp + * tools/Config_Handlers/Property_Handler.cpp + * tools/Config_Handlers/RDD_Handler.cpp + * tools/Config_Handlers/Req_Handler.cpp + * tools/Config_Handlers/STD_PC_Intf.cpp + * tools/Config_Handlers/XML_File_Intf.cpp + + Added CIAO_TRACE statements to aid in debugging. + +Wed Feb 08 15:53:31 2006 Wallace Zhang <zhangw@ociweb.com> + + * CIAO version 0.4.9 released. + +Tue Feb 7 16:10:10 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeManager/NodeManager.mpc + + Fixed an ordering problem. + +Mon Feb 6 19:13:13 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc + + Fixed an export problem manifesting in VC8. + + * performance-tests/Benchmark/Benchmark.mpc + + Added an empty IDL_Files section to the servant to prevent + nmake from regenerating from the IDL file. + +Mon Feb 6 13:54:39 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * ciao/ComponentsC.h: + + Place TAO namespace in this pre-generated stub header within a + TAO versioned namespace, as TAO_IDL does for all stubs. Fixes + build errors in versioned-namespace enabled builds. + +Mon Feb 6 13:33:54 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeApplication/NoOp_Configurator.h + + Case sensitivity error from previous commit. + +Mon Feb 6 00:39:41 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeApplication/Configurator_Factory.cpp + * DAnCE/NodeApplication/Configurator_Factory.h + * DAnCE/NodeApplication/NodeApplication.mpc + * DAnCE/NodeApplication/NodeApplication_Core.h + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc + * DAnCE/NodeManager/MonitorController.h + * DAnCE/NodeManager/NodeManager.mpc + * DAnCE/NodeApplication/NoOp_Configurator.cpp + * DAnCE/NodeApplication/NoOp_Configurator.h + * DAnCE/NodeApplication/NoOp_Configurator_export.h + + Fixed linking errors on Borland 6. Mostly involved improper + symbol export control. + + * tools/Config_Handlers/cdd.hpp + * tools/Config_Handlers/cdp.hpp + + Added a fix for a broken <string> include in Borland 6. + +Fri Feb 3 24:30:19 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * ciao/CIAO_common.h: + + Removed extraneous "#" in "# #error" preprocessor directive. + + * ciao/Client_init.h: + + Moved CIAO namespace out of TAO-versioned namespace block. It + shouldn't have been there. Fixes namespace clashes in versioned + namespace enabled builds. + +Thu Feb 2 23:55:01 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * NEWS + + Updated the release notes. + +Thu Feb 2 22:59:23 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/RepositoryManager/ZIP_Wrapper.cpp + + Updated include from zziplib.h to zzip/zzip.h, as the former + is deprecated and absent in the most recent release. + +Thu Feb 2 15:49:31 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * docs/tutorials/CoSMIC/01.html: Commited a fix for a typo detected by + Abdullah Sowayan <abdullah dot sowayan at lmco dot com> and + fixed by Ming Xiong. + +Thu Feb 2 16:58:15 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * CIAO_TAO_DAnCE.mwc: + * CIAODAnCE.mwc: + Removed Old_Config_Handlers and spec_RepositoryManager + +Thu Feb 2 16:31:15 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeManager/BaseMonitor.h + * DAnCE/NodeManager/CIAO_Monitor.h + * DAnCE/NodeManager/MonitorCB.h + * DAnCE/NodeManager/MonitorController.cpp + * DAnCE/NodeManager/MonitorController.h + * DAnCE/TargetManager/DomainDataManager.h + + Removed extra ';' after closing braces on namespaces. + Was causing errors on GCC4 builds. + + * DAnCE/NodeManager/MonitorController.inl + + Removed this file, as it is no longer used. + +Wed Feb 1 21:21:35 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeManager/BaseMonitor.h + * DAnCE/NodeManager/CIAO_Monitor.cpp + * DAnCE/NodeManager/CIAO_Monitor.h + * DAnCE/NodeManager/MonitorCB.cpp + * DAnCE/NodeManager/MonitorCB.h + * DAnCE/NodeManager/MonitorController.cpp + * DAnCE/NodeManager/MonitorController.h + * DAnCE/TargetManager/DomainDataManager.cpp + * DAnCE/TargetManager/DomainDataManager.h + * DAnCE/TargetManager/TargetManager_exec.cpp + * DAnCE/TargetManager/TargetManager_exec.h + + Wraps the TargetManager/Monitors inside the CIAO namespace. + Thanks to Nilabja Roy (nilabjar@dre.vanderbilt.edu) for + making these changes and thanks to Johnny for noticing this! + +Wed Feb 1 20:42:42 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * CIDLC/ServantSourceGenerator.cpp + * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp + * tools/Config_Handlers/Utils/XercesString.cpp + * tools/Config_Handlers/Utils/XercesString.h + * tools/Config_Handlers/XMLSchema/Writer.hpp + + Fixes for warnings on ICC platforms. + +Wed Feb 1 14:38:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/TargetManager/DomainDataManager.h: + Small doxygein improvement + +Wed Feb 1 04:32:38 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * RACE/Planner_Manager/Component/Planner_Manager.idl + + Resolve a linking error on Windows. + +Tue Jan 31 23:33:23 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Old_Config_Handlers + * DAnCE/test/Config_Handlers_Tests + + Removed deprecated config handlers. + + * NEWS + + Commented on this removal. + +Tue Jan 31 21:51:52 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * examples/Hello/descriptors/run_test.pl + * examples/Hello/descriptors/run_test_without_ns.pl + + Added a parameter to the NodeManagers to cause them to wait + up to 30 seconds for the NodeApplications to spawn before failing. + This should fix the hello test on several platforms. + +Tue Jan 31 21:29:06 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * examples/Hello/descriptors/run_test.pl + + Updated to force naming service to not use multicast, instead + using NameServiceIOR environment variable. + + * examples/Hello/descriptors/run_test_without_ns.pl + + Updated ports to reflect new NodeManagerMap. + +Tue Jan 31 15:11:29 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * RACE/Controller/Component/Controller.mpc + + Fixed linking errors on OS X. + +Tue Jan 31 14:41:31 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/NodeManager/NodeManager_Impl.cpp + + Fixed a couple of warning on SuSE_10_0_GCC4.0.2_x86_64_Valgrind + build. + +Tue Jan 31 11:42:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeManager/NodeManager_Impl.cpp: + Fixed compile error with VxWorks 5.5.1 + +Mon Jan 30 22:43:26 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * examples/Hello/descriptors/run_NodeDaemons.pl: + + Fixing this script so that the Hello example deploys successfully. + +Mon Jan 30 21:16:40 UTC 2006 Ming Xiong <ming.xiong@vanderbilt.edu> + + * docs/tutorials/CoSMIC/01.html + * docs/tutorials/CoSMIC/02.html + * docs/tutorials/CoSMIC/03.html + * docs/tutorials/CoSMIC/04.html + * docs/tutorials/CoSMIC/index.html + * docs/tutorials/CoSMIC/Icons/AddConnMode.gif + * docs/tutorials/CoSMIC/Icons/SetMode.gif + * docs/tutorials/CoSMIC/Images/fig1.jpg + * docs/tutorials/CoSMIC/Images/fig10.jpg + * docs/tutorials/CoSMIC/Images/fig11.jpg + * docs/tutorials/CoSMIC/Images/fig2.jpg + * docs/tutorials/CoSMIC/Images/fig3.jpg + * docs/tutorials/CoSMIC/Images/fig4.jpg + * docs/tutorials/CoSMIC/Images/fig5.jpg + * docs/tutorials/CoSMIC/Images/fig6.jpg + * docs/tutorials/CoSMIC/Images/fig7.jpg + * docs/tutorials/CoSMIC/Images/fig8.jpg + * docs/tutorials/CoSMIC/Images/fig9.jpg + * docs/tutorials/CoSMIC/Model/Quoter.xme + + Added CoSMIC tutorial for /docs/tutorials/Quoter/Simple + +Mon Jan 30 17:50:38 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc + + Modified to inherit from dance_extension_stub project + so the included header file could be found. + +Mon Jan 30 17:35:12 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/Interfaces/Interfaces.mpc + * DAnCE/NodeManager/NodeManager.mpc + * DAnCE/NodeManager/NodeManager_Impl.h + + Fixed a linking error of NodeManager when trying to + link to IDL generated servant code. + + * DAnCE/NodeManager/CIAO_NodeManager_Export.h + * DAnCE/Interfaces/NodeManager_svnt_export.h + + Removed the first one and added the second one to + fix the linking error when trying to find entry + point for IDL compiler generated servant code. + +Mon Jan 30 05:07:09 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * examples/Hello/descriptors/NodeManagerMap.dat + + Corrected the ports to match those in the run_test.pl script. + +Mon Jan 30 01:59:23 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc + + Cosmetic change. + + * DAnCE/NodeManager/NodeManager.mpc + + Fixed a typo. + +Mon Jan 30 01:47:21 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeManager/NodeManager.mpc + * DAnCE/NodeManager/NodeManager_Impl.h + * DAnCE/NodeManager/NodeManager_Export.h + + Added dll import/export mechanism into NodeManager library. + +Sat Jan 28 22:24:35 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * examples/Hello/descriptors/run_test.pl + + Corrected the name of the NodeManagerMap passed to ExecutionManager. + This was causing the test to fail across all platforms. + +Sat Jan 28 05:55:45 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeManager/NodeManager.mpc + + Added a missing after clause. + +Fri Jan 27 22:42:47 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * RACE/Controller/Component/Controller.mpc + + Fixed linking errors on Windows. + +Fri Jan 27 20:58:19 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * tests/Bug_2130_Regression + + A place to host Bug 2130 test case. + +Fri Jan 27 20:42:47 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/DnC_Dump_T.h + + Silenced warnings in solaris. + +Fri Jan 27 20:30:01 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/NodeManager/NodeManager_Impl.cpp + + Fixed uninitialized variable warnings on Solaris GCC. + + *DAnCE/NodeManager/NodeManager.mpc + + Refactored the projects here so all files related to NodeManager + are only compiled once. + +Fri Jan 27 19:15:19 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu> + + * DAnCE/NodeManager/Monitor.mpc: Added the dependancy on + TargetManaer_stub + +Fri Jan 27 19:07:08 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeManager/MonitorController.h + * DAnCE/NodeManager/MonitorController.inl + + Refined the fix in + Fri Jan 27 17:29:54 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + to use ACE_SYNCH_MUTEX. Thanks to Doug Schmidt for suggesting the + improvement. + +Fri Jan 27 17:35:55 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * RACE/Controller/Component/Controller.mpc + + Fixed linking errors on Mac OS X. + +Fri Jan 27 17:29:54 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeManager/MonitorController.h + * DAnCE/NodeManager/MonitorController.inl + + Added preprocessor logic to fall back to an ACE_Mutex on + platforms that don't support ACE_Thread_Mutex. + +Fri Jan 27 16:59:11 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/NodeManager/NodeManager_Impl.cpp + + Fixed a couple of warnings on SuSE_10_0_GCC4.0.2_x86_64_Valgrind + build about pointer initialization. + +Thu Jan 26 23:48:47 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * examples/Hello/step-by-step.html + + Fixed a fuzz error about dependency on ~schmidt/ACE_wrappers. + +Thu Jan 26 19:25:06 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/TargetManager/TargetManager.mpc + + Added an empty IDL_Files segment to the _exec project, + which should clean up tons of Windows VC build erros + and warnings. + +Thu Jan 26 17:57:45 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ExecutionManager/ExecutionManager.mpc + * DAnCE/NodeManager/NodeManager.mpc + + Modified to inherit from a base project dance_extension_stub.mpb + to avoid explicily included path specification. + +Thu Jan 26 10:25:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h: + Fixed incorrect doxygen tag + + * CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl: + Added missing ACE_INLINE macro's + + +Thu Jan 26 01:44:15 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp + * DAnCE/NodeApplicationManager/Containers_Info_Map.h + * DAnCE/NodeApplicationManager/ImplementationInfo.cpp + * DAnCE/NodeApplicationManager/ImplementationInfo.h + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + * DAnCE/NodeManager/NodeManager_Impl.cpp + * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp + * ciao/Deployment.idl + + Fixed a bug of shared component capability. Originally, we + haven't differentiate between "shared components" and + "external components", so when a component ref count becomes + 0, the "shared components" will become empty, however, since + some components are installed remotely, removing it will + cause problem if we don't have such differentiation. + +Wed Jan 25 23:44:01 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu> + + * CIAOTAO.mwc: + * CIAO.mwc: + + Added RACE to the workspace. + +Wed Jan 25 22:47:30 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * CIAO_TAO_DAnCE.mwc + + Added another mwc file which builds ACE, TAO, CIAO, DAnCE + minium to run a CIAO simple example. + +Wed Jan 25 22:28:06 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ExecutionManager/ExecutionManager.mpc + * DAnCE/NodeManager/NodeManager.mpc + + Added include+= to find header files and fixed a typo. + + * DAnCE/NodeManager/NodeManager_Impl.cpp + + Fixed an error in Linux build. + +Wed Jan 25 22:11:23 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + + Changed order of the base member initialization list, which + should clear some warnings of the Linux builds. + +Wed Jan 25 21:32:44 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc + * DAnCE/NodeManager/NodeManager.mpc + + Fixed dependency problems. + +Wed Jan 25 20:28:35 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/Interfaces/ExecutionManager.idl + * DAnCE/Interfaces/Interfaces.mpc + * DAnCE/Interfaces/README + * DAnCE/Interfaces/NodeManager.idl + * DAnCE/Interfaces/NodeManager_stub_export.h + * DAnCE/Interfaces/ExecutionManager_stub_export.h + + Added these files into a separate directory + called DAnCE/Interfaces to termporarily solve the MPC + directory dependency issue. + + * DAnCE/ExecutionManager/ExecutionManager.idl + * DAnCE/NodeManager/NodeManager.idl + + Removed these files. + + * DAnCE/ExecutionManager/ExecutionManager.mpc + * DAnCE/ExecutionManager/Execution_Manager_Impl.h + * DAnCE/NodeManager/NodeManager.mpc + * DAnCE/NodeManager/NodeManager_Impl.h + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h + + Modified to accomodate the above refactoring work. + +Wed Jan 25 19:46:57 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * ciao/Deployment_common.h + + Added this new file, which is supposed to contain all the + reusable types/classes/methods across the DAnCE toolchain. + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h + * DAnCE/ExecutionManager/Execution_Manager_Impl.h + + Modified the code to accomodate the above refactoring work. + + * DAnCE/TargetManager/DomainDataManager.cpp + + Got rid of a warning message about unreferenced variable. + + * DAnCE/DomainApplicationManager/DomainApplicationManage.mpc + + Added a dependency from DAM to ExecutionManager_stub project. + +Wed Jan 25 02:53:07 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp + * DAnCE/ExecutionManager/Execution_Manager_Impl.h + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h + * ciao/Deployment.idl + + Fixed a bug about destroying *ApplicationManagers. + This fix will ensure that DAM won't be destroyed if any + components managed by itself are still up and running. + +Wed Jan 25 01:41:53 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp + + Some cosmetic changes. + + * DAnCE/NodeApplication/NodeApplication_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + + Fixed a bug about when to killing a NodeApplication process. + + * ciao/Container_Base.cpp + + Comment out meaningless debug statement. + +Wed Jan 25 00:56:39 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * examples/Hello/descriptors/run_test_without_ns.pl + + Modified to use the correct NodeManagerMap.dat file. + +Wed Jan 25 00:47:02 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * examples/Hello/descriptors_RTCCM/RTsvc.conf + * examples/Hello/descriptors_RTCCM/input.csr + * examples/Hello/descriptors_RTCCM/rt-config-example.cdp + * examples/Hello/descriptors_RTCCM/rt-config-example.csr + * examples/Hello/descriptors_RTCCM/rt-example.cdp + * examples/Hello/descriptors_RTCCM/rt_run_test.pl + * examples/Hello/descriptors_ReDaC/deploymentplan.cdp + * examples/Hello/descriptors_ReDaC/deploymentplan_add.cdp + * examples/Hello/descriptors_ReDaC/deploymentplan_remove.cdp + * examples/Hello/descriptors_naming/deploymentplan_naming.cdp + + Create some new descriptors, reorganized them, and put + them into different directories. + +Wed Jan 25 00:23:02 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * CIAODAnCE.mwc + + Added another mwc file which only builds CIAO and DAnCE. + + * examples/Hello/step-by-step.html + + Fixed an error in this documentation page. + + * examples/Hello/descriptors/RTsvc.conf + * examples/Hello/descriptors/TestNodeManagerMap.dat + * examples/Hello/descriptors/flattened_deploymentplan_without_ns_add.cdp + * examples/Hello/descriptors/rt-config-example.cdp + * examples/Hello/descriptors/rt-config-example.csr + * examples/Hello/descriptors/rt-example.cdp + * examples/Hello/descriptors/flattened_deploymentplan_without_ns_add.cdp + * examples/Hello/descriptors/rt_run_test.pl + + Removed these descriptor files and put them into separate + directories to better organize things. + + * examples/Hello/descriptors_shared_components/deploymentplan.cdp + * examples/Hello/descriptors_shared_components/ + deploymentplan_shared_components.cdp + + Added a dedicated directory to put descriptors for shared + components scenario. + +Wed Jan 25 00:10:50 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h + * DAnCE/ExecutionManager/DAM_Map.cpp + * DAnCE/ExecutionManager/DAM_Map.h + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp + * DAnCE/ExecutionManager/Execution_Manager_Impl.h + + Added capabilities to handle adding/removing + connections between components in new assembly and existing/external + components in old assemblies. This involves putting + ExecutionManager as a coordinator for different DAMs. + + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp + * DAnCE/NodeApplicationManager/Containers_Info_Map.h + * DAnCE/NodeApplicationManager/ImplementationInfo.cpp + * DAnCE/NodeApplicationManager/ImplementationInfo.h + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl + * DAnCE/NodeManager/NAM_Map.h + * DAnCE/NodeManager/NodeManager_Impl.cpp + * DAnCE/NodeManager/NodeManager_Impl.h + * DAnCE/NodeManager/Node_Manager.cpp + + Added capabilities for handling shared components across + different assemblies. This involves putting NodeManager + as a local coordinator for different NAMs. + + * DAnCE/NodeApplication/NodeApplication.cpp + * DAnCE/NodeApplication/NodeApplication_Impl.cpp + * DAnCE/NodeApplication/NodeApplication_Impl.h + + Enhancement of adding/removing connections. + + * DAnCE/Plan_Launcher/DAM_Map.cpp + * DAnCE/Plan_Launcher/DAM_Map.h + + Removed from the repo, since they are located in the other + directory as well, and we can use relative path to point + to those existing files. + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h + + Enhanced to handle shared components scenario which interacts + with *managers. + + * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp + + Fixed for working with the newly enhanced DAnCE toolchain. + + * ciao/Deployment.idl + + Adding enhancements for adding shared components capabilities + +Wed Jan 25 00:01:37 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeManager/MonitorCB.cpp + + Fixed a warning about unreferenced variable in Windows build. + + * DAnCE/NodeManager/MonitorController.h + + Included header file missing path to its directory. + + * DAnCE/TargetManager/CmpClient.cpp + + Fixed a warning about unreferenced variable in Windows build. + +Mon Jan 23 23:10:32 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + + * DAnCE/spec_RepositoryManager/HTTP_Client.h: + * DAnCE/spec_RepositoryManager/HTTP_Client.cpp: + * DAnCE/spec_RepositoryManager/HTTP_Handler.h: + * DAnCE/spec_RepositoryManager/HTTP_Handler.cpp: + * DAnCE/spec_RepositoryManager/Options.h: + * DAnCE/spec_RepositoryManager/Options.cpp: + * DAnCE/spec_RepositoryManager/PC_Updater.h: + * DAnCE/spec_RepositoryManager/PC_Updater.cpp: + * DAnCE/spec_RepositoryManager/PC_Updater_T.h: + * DAnCE/spec_RepositoryManager/PC_Updater_T.cpp: + * DAnCE/spec_RepositoryManager/README.txt: + * DAnCE/spec_RepositoryManager/RM_Helper.h: + * DAnCE/spec_RepositoryManager/RM_Helper.cpp: + * DAnCE/spec_RepositoryManager/RMadmin.cpp: + * DAnCE/spec_RepositoryManager/RepositoryManager.idl: + * DAnCE/spec_RepositoryManager/RepositoryManager.cpp: + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h: + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp: + * DAnCE/spec_RepositoryManager/URL_Parser.h: + * DAnCE/spec_RepositoryManager/URL_Parser.cpp: + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h: + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp: + * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc: + + Removed these files. Zapping the DAnCE/spec_RepositoryManager/ + directory which used to hold the implementation of the + RepositoryManager while the ExecutionManager was in the + DAnCE/RepositoryManager/ directory. + +Mon Jan 23 22:41:49 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * DAnCE/RepositoryManager/HTTP_Client.h: + * DAnCE/RepositoryManager/HTTP_Client.cpp: + * DAnCE/RepositoryManager/HTTP_Handler.h: + * DAnCE/RepositoryManager/HTTP_Handler.cpp: + * DAnCE/RepositoryManager/Options.h: + * DAnCE/RepositoryManager/Options.cpp: + * DAnCE/RepositoryManager/PC_Updater.h: + * DAnCE/RepositoryManager/PC_Updater.cpp: + * DAnCE/RepositoryManager/PC_Updater_T.h: + * DAnCE/RepositoryManager/PC_Updater_T.cpp: + * DAnCE/RepositoryManager/README.txt: + * DAnCE/RepositoryManager/RM_Helper.h: + * DAnCE/RepositoryManager/RM_Helper.cpp: + * DAnCE/RepositoryManager/RMadmin.cpp: + * DAnCE/RepositoryManager/RepositoryManager.idl: + * DAnCE/RepositoryManager/RepositoryManager.cpp: + * DAnCE/RepositoryManager/RepositoryManager.mpc: + * DAnCE/RepositoryManager/RepositoryManager_Impl.h: + * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp: + * DAnCE/RepositoryManager/URL_Parser.h: + * DAnCE/RepositoryManager/URL_Parser.cpp: + * DAnCE/RepositoryManager/ZIP_Wrapper.h: + * DAnCE/RepositoryManager/ZIP_Wrapper.cpp: + + Moving what used to be DAnCE/spec_RepositoryManager directory to + the DAnCE/RepositoryManager directory. + +Mon Jan 23 22:14:06 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp: + + Adding couple more checks to increase robustness. + +Mon Jan 23 20:07:17 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeManager/BaseMonitor.h + + Added a virtual destructor to resolve warnings. + + * DAnCE/TargetManager/DomainDataManager.cpp + * DAnCE/TargetManager/TargetManager_exec.cpp + + Fixed some problems caused by + Mon Jan 23 15:11:40 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + +Mon Jan 23 17:03:09 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu> + + * RACE/Controller/Component/Controller_svnt_export.h: + * RACE/Controller/Component/Controller_stub_export.h: + * RACE/Controller/Component/Controller_exec_export.h: + * RACE/Controller/Component/Controller_exec.h: + * RACE/Controller/Component/Controller_exec.cpp: + * RACE/Controller/Component/Controller.mpc: + * RACE/Controller/Component/Controller.idl: + * RACE/Controller/Component/Controller.cidl: + + Added IDL, CIDL, and MPC files for the RACE controller along with a + dummy implementation of the controller. + +Mon Jan 23 15:11:40 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/TargetManager/TargetManager.mpc + + Cleaned up the MPC file, fixed a linking error on OS X. + +Sat Jan 21 21:54:59 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/SizeTypeCalculator.cpp: + + Fixed a bug in size type calculation of nested structs and unions. + Thanks to Sandro Santos Andrade <sandros@dcc.ufba.br> for + reporting the problem. + +Sat Jan 21 20:27:13 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu> + + * DAnCE/TargetManager/TargetManager.idl: + * DAnCE/TargetManager/TargetManager.mpc: + * DAnCE/TargetManager/TargetManagerExt.idl: + Added this file to include the facet for RACE Controller + * DAnCE/TargetManager/TargetManager_exec.h: + * DAnCE/TargetManager/TargetManager_exec.cpp: + Added implementation for the facet serving the RACE Controller. + + +Sat Jan 21 02:04:15 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + Removed trailing whitespaces and tabs + + * DAnCE/NodeManager/BaseMonitor.h: + * DAnCE/NodeManager/CIAO_Monitor.h: + * DAnCE/NodeManager/CIAO_Monitor.cpp: + * DAnCE/NodeManager/MonitorCB.h: + * DAnCE/NodeManager/MonitorCB.cpp: + * DAnCE/NodeManager/MonitorController.h: + * DAnCE/NodeManager/MonitorController.cpp: + Removed system headers and replaced systme calls with ACE calls. + Also updated documentation with doxygen standard + + * DAnCE/TargetManager/TargetManager_exec.cpp: + Removed system headers and replaced systme calls with ACE calls. + Also updated documentation with doxygen standard + + * tools/Config_Handlers/DD_Handler.h: + * tools/Config_Handlers/DD_Handler.cpp: + Removed system headers and replaced systme calls with ACE calls. + Also updated documentation with doxygen standard + +Fri Jan 20 22:30:21 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + The include to NodeManagerC.h is removed since the dependency on + NodeManager_stub was removed. + +Fri Jan 20 20:33:23 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc: + Changed the Domain Application Manager to remove the dependency on + NodeManager_stub. + +Fri Jan 20 07:24:47 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * DAnCE/spec_RepositoryManager/PC_Updater.h: + * DAnCE/spec_RepositoryManager/RMadmin.cpp: + * DAnCE/spec_RepositoryManager/RepositoryManager.cpp: + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h: + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp: + * DAnCE/spec_RepositoryManager/URL_Parser.h: + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h: + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp: + + Improved the documentation, the output and added some minor features. + Changed all occurnences of 'new' to ACE_NEW in ZIP_Wrapper.cpp which + I had previously forgotten. + + * DAnCE/new_RepositoryManager/packages/inconsistent.cpk: + * DAnCE/new_RepositoryManager/packages/package.cpk: + + Removed these files. + +Thu Jan 19 01:29:58 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * DAnCE/spec_RepositoryManager/HTTP_Handler.h: + * DAnCE/spec_RepositoryManager/HTTP_Handler.cpp: + * DAnCE/spec_RepositoryManager/PC_Updater.h: + * DAnCE/spec_RepositoryManager/PC_Updater_T.h: + * DAnCE/spec_RepositoryManager/RM_Helper.h: + * DAnCE/spec_RepositoryManager/RM_Helper.cpp: + * DAnCE/spec_RepositoryManager/RMadmin.cpp: + * DAnCE/spec_RepositoryManager/RepositoryManager.cpp: + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp: + * DAnCE/spec_RepositoryManager/URL_Parser.h: + * DAnCE/spec_RepositoryManager/URL_Parser.cpp: + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h: + + Changed all occurenced of new to ACE_NEW. Turned some documentation to + Doxygen style. Modified the URL_Parser singleton to use the ACE_Singleton + class. More changes on the way. + +Wed Jan 18 23:56:51 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu> + + * DAnCE/NodeManager/BaseMonitor.h: Corrected the file name in @file + + * DAnCE/TargetManager/CmpClient.cpp: Corrected the file name in @file + +Wed Jan 18 16:42:41 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu> + + * DAnCE/NodeManager/BaseMonitor.h:Added documentation, changed + function signature + * DAnCE/NodeManager/CIAO_Monitor.cpp:Removed system headers + * DAnCE/NodeManager/Monitor.mpc:Added cvs tag + * DAnCE/NodeManager/MonitorController.cpp:Removed sleep call + * DAnCE/NodeManager/NodeManager.mpc:Added after clause to compile + TargetManager_stub before + + * DAnCE/TargetManager/TM_Client.mpc:Added cvs tag + * DAnCE/TargetManager/TargetManager.mpc: Added cvs tag , + Removed Deployment_Configuration.cpp from TargetManager_exec + +Tue Jan 17 23:52:11 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * DAnCE/spec_RepositoryManager/Options.h: + * DAnCE/spec_RepositoryManager/Options.cpp: + * DAnCE/spec_RepositoryManager/RMadmin.cpp: + + Took care of the todo's that Johnny suggested. Now using ACE_Singleton + parametrized with ACE_Null_Mutex. + +Tue Jan 17 21:07:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/spec_RepositoryManager/HTTP_Client.h: + Layout change + * DAnCE/spec_RepositoryManager/HTTP_Handler.{h,cpp}: + Changed bytecount_ to size_t + +Tue Jan 17 21:03:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/spec_RepositoryManager/Options.h: + Doxygen improvements + + * DAnCE/spec_RepositoryManager/Options.cpp: + Layout changes and add some todo's + +Tue Jan 17 19:31:56 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Config_Handlers.mpc + + Added a project inherit improperly removed by + Mon Jan 16 16:22:25 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu> + +Mon Jan 16 19:59:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h: + * DAnCE/spec_RepositoryManager/URL_Parser.h: + * DAnCE/spec_RepositoryManager/PC_Updater.h: + * DAnCE/spec_RepositoryManager/PC_Updater_T.cpp: + * DAnCE/spec_RepositoryManager/HTTP_Handler.h: + * DAnCE/spec_RepositoryManager/HTTP_Client.h: + Doxygen improvements + + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp: + * DAnCE/spec_RepositoryManager/PC_Updater_T.h: + * DAnCE/spec_RepositoryManager/HTTP_Client.cpp: + * DAnCE/spec_RepositoryManager/HTTP_Handler.cpp: + Layout changes + +Mon Jan 16 18:36:47 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Basic_Deployment_Data.hpp + + Addressed some warnings from the RHEL_Static_GCC-3.4.2 + build. + +Mon Jan 16 16:48:11 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * DAnCE/spec_RepositoryManager/Options.h: + * DAnCE/spec_RepositoryManager/Options.cpp: + * DAnCE/spec_RepositoryManager/PC_Updater.cpp: + * DAnCE/spec_RepositoryManager/README.txt: + * DAnCE/spec_RepositoryManager/RMadmin.cpp: + * DAnCE/spec_RepositoryManager/RepositoryManager.cpp: + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h: + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp: + + Added the newest changes to the RepoMan. This change add the + functionality that pertains to interface types. It is currently + disabled due to lack of support in the modeling tools for interfaces + for assemby-based interfaces. + + I still need to clean up some of the output and some of the code before + the release of the beta. + +Mon Jan 16 16:22:25 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu> + + * DAnCE/NodeManager/BaseMonitor.h: + * DAnCE/NodeManager/CIAO_Monitor.h: + * DAnCE/NodeManager/CIAO_Monitor.cpp: + * DAnCE/NodeManager/Monitor.mpc: + * DAnCE/NodeManager/MonitorCB.h: + * DAnCE/NodeManager/MonitorCB.cpp: + * DAnCE/NodeManager/MonitorController.h: + * DAnCE/NodeManager/MonitorController.inl: + * DAnCE/NodeManager/MonitorController.cpp: + * DAnCE/NodeManager/NodeManager.mpc: + * DAnCE/NodeManager/NodeManager_Impl.h: + * DAnCE/NodeManager/NodeManager_Impl.cpp: + * DAnCE/NodeManager/Node_Manager.cpp: + These files implement the Monitor within the + NodeManager implementation. + + * DAnCE/TargetManager/CmpClient.cpp: + * DAnCE/TargetManager/Deployment_Configuration.h: + * DAnCE/TargetManager/Deployment_Configuration.cpp: + * DAnCE/TargetManager/DomainDataManager.h: + * DAnCE/TargetManager/DomainDataManager.cpp: + * DAnCE/TargetManager/TM_Client.mpc: + * DAnCE/TargetManager/TargetManager.cidl: + * DAnCE/TargetManager/TargetManager.idl: + * DAnCE/TargetManager/TargetManager.mpc: + * DAnCE/TargetManager/TargetManager_exec.h: + * DAnCE/TargetManager/TargetManager_exec.cpp: + * DAnCE/TargetManager/TargetManager_exec_export.h: + * DAnCE/TargetManager/TargetManager_stub_export.h: + * DAnCE/TargetManager/TargetManager_svnt_export.h: + These files implement the Target Manager Implementation + + * DAnCE/TargetManager/descriptors/Domain.cdd: + * DAnCE/TargetManager/descriptors/NodeDetails.dat: + * DAnCE/TargetManager/descriptors/NodeManagerMap.dat: + * DAnCE/TargetManager/descriptors/flattened_deploymentplan.cdp: + * DAnCE/TargetManager/descriptors/run_test_TargetManager.pl: + These are needed for the running of the TargetManager + + * ciao/CCM_Core.mpc: + * ciao/Deployment.idl: + * ciao/Deployment_Base.idl: + * ciao/Deployment_Data.idl: + * ciao/Packaging_Data.idl: + * ciao/ServerResources.idl: + Needs to be changed to resolve conflicts when compiling the + Target Manager cidl file + + * ciao/Target_Data.idl: + This is the file which contains declarations which has been + separated for the Target manager + + * tools/Config_Handlers/Config_Handlers.mpc: + * tools/Config_Handlers/DD_Handler.h: + * tools/Config_Handlers/DD_Handler.cpp: + These implement the extension to the config handlers for + the parsing of the Target data domain. + +Fri Jan 13 20:39:21 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/XSCRT/Parser.hpp + * tools/Config_Handlers/XSCRT/XML.hpp + + Added a templated casting operator for Xerces types instead + of using standard dynamic_cast. Thanks to Ossama Othman + ossama at dre dot vanderbilt dot edu for suggesting this + fix. + + * CIAO-INSTALL.html + * NEWS + + The above changes removed the requirement for an RTTI enabled + version of Xerces. Updated these documents to reflect this. + +Thu Jan 12 21:40:47 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * examples/Hello/ReDaC-Usage.html + + Fixed some typos and an error. + +Tue Jan 10 22:34:22 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Basic_Deployment_Data.cpp + * tools/Config_Handlers/Basic_Deployment_Data.hpp + * tools/Config_Handlers/cdd.cpp + * tools/Config_Handlers/cdd.hpp + + Regenerated to reflect updates to schema in + Tue Jan 10 19:01:45 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Modified_Deployment.xsd + + Removed, as this file is obsolete, and schema should only exist in + CIAO_ROOT/docs/schema + +Tue Jan 10 22:05:17 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * examples/Hello/ReDaC-Usage.html + + Added a tutorial-like web page to showcase ReDaC service + of DAnCE. + + * NEWS + + Updated with DAnCE's recent enhancements. + +Tue Jan 10 19:01:45 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/Basic_Deployment_Data.xsd + * docs/schema/cdd.xsd + + Corrected incorrect cardinality on several target domain elements. + +Tue Jan 10 11:10:01 UTC 2006 Boris Kolpackov <boris@kolpackov.net> + + * NEWS: + + Updated with recent developments. + +Mon Jan 9 14:17:39 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp: + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp: + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp: + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp: + * examples/Hello/descriptors/Receiver_Svnt.iad: + * examples/Hello/descriptors/Sender_Svnt.iad: + * examples/Hello/descriptors/flattened_deploymentplan.cdp: + * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp: + * examples/Hello/descriptors/flattened_deploymentplan_without_ns_add.cdp: + * examples/Hello/descriptors/flattened_deploymentplan_without_ns_remove.cdp: + * examples/Hello/descriptors/rt-config-example.cdp: + * examples/Hello/descriptors/rt-example.cdp: + + Updated occurrences of the string name of the servant executor + DLL extry point to correspond with the changes in + + Fri Jan 6 20:09:34 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + +Fri Jan 6 20:09:34 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ExecImplHeaderGenerator.cpp: + * CIDLC/ExecImplSourceGenerator.cpp: + * CIDLC/ServantHeaderGenerator.cpp: + * CIDLC/ServantSourceGenerator.cpp: + + Changed the names of the generated extern C functions that + create the home and servant executors to incorportate the + entire scoped name of the class, to avoid name clashes + (since extern "C" functions link globally no matter what + scope they are declared in) when class names are + duplicated inside different nested namespaces. Thanks + to James Hill <james.h.hill@vanderbilt.edu> and Boris + Kolpackov <boris@dre.vanderbilt.edu> for their help + with the problem. + + * DAnCE/tests/Config_Handlers/HUDisplay/Airframe_Svnt.iad: + * DAnCE/tests/Config_Handlers/HUDisplay/GPS_Svnt.iad: + * DAnCE/tests/Config_Handlers/HUDisplay/NavDisplay_Svnt.iad: + * DAnCE/tests/Config_Handlers/HUDisplay/Timer_Svnt.iad: + * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl: + * docs/tutorials/Quoter/Simple/descriptors/Broker_Svnt.iad: + * docs/tutorials/Quoter/Simple/descriptors/Distributor_Svnt.iad: + * docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp: + * examples/BasicSP/descriptors/Airframe_Svnt.iad: + * examples/BasicSP/descriptors/GPS_Svnt.iad: + * examples/BasicSP/descriptors/NavDisplay_Svnt.iad: + * examples/BasicSP/descriptors/Timer_Svnt.iad: + * examples/BasicSP/descriptors/flattened_deploymentplan.cdp: + + Updated the hand-crafted descriptor files in CIAO tests and + examples to reflect the changes above. + +Thu Jan 5 21:28:17 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + + Fixed some warning in Boarland C++ builds. + +Thu Jan 5 00:53:30 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ChangeLog: + + Untabify. + Delete-trailing-spaces. + + Changed "add-log-time-format" to a really ugly lambda expression + that formats changelog timestamps in UTC and works with both GNU + Emacs and XEmacs. + +Wed Jan 4 21:01:15 2006 Boris Kolpackov <boris@kolpackov.net> + + * ciao/CCM_Base.idl: + + Replaced #if !defined (CIAO_HAS_IMPORT_KEYWORD) with + #ifdef CIAO_HAS_IMPORT_KEYWORD. This will give CIDLC's + CPP a chance to handle it properly. + + * CCF/CCF/CompilerElements/Preprocessor.cpp: + + Fixed a bug in lexeme parsing. + +Wed Jan 4 11:39:59 2006 William Otte <wotte@dre.vanderbilt.edu> + + * ciao/CCM_Core.mpc + + Removed $CIAO_ROOT/DAnCE include, added CIAO_ROOT/ciao. + +Tue Jan 3 19:55:43 2006 Boris Kolpackov <boris@kolpackov.net> + + * CCF/CCF/CompilerElements/Preprocessor.cpp: + * CCF/CCF/CompilerElements/Preprocessor.hpp: + * CCF/CCF/IDL3/SemanticAction/Impl/Include.cpp: + * CIDLC/cidlc.cpp: + + Implemented support for basic preprocessor directives: + #ifdef, #ifndef, #else, and #endif as well as the -D + command-line option. Also added exception handlers for + filesystem exceptions. + + * CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp: + * CCF/CCF/IDL2/SemanticGraph/Struct.cpp: + * CCF/CCF/IDL2/SemanticGraph/Struct.hpp: + * CCF/CCF/IDL2/SemanticGraph/Union.cpp: + * CCF/CCF/IDL2/SemanticGraph/Union.hpp: + + Implemented incomplete struct and union semantics which + will appear in CORBA 3.1. + + * CCF/CCF/CodeGenerationKit/IndentationCxx.hpp: + + Code clean-ups. + +Fri Dec 30 11:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Dynamic_Component_Servant_Base.{h,cpp}: + Moved the default constructor to public again, vc8 needs it, no + idea why, have to recheck later + +Thu Dec 29 08:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp: + Fixed implicit conversion warning + +Wed Dec 28 10:42:31 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/Old_Config_Handlers/DnC_Dump.cpp + * tools/Config_Handlers/DnC_Dump.cpp + * tools/Config_Handlers/PSPE_Handler.cpp + + Silenced some warnings from + Fri Dec 23 11:49:04 2005 Gan Deng <gan.deng@vanderbilt.edu> + +Wed Dec 28 12:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Context_Impl_Base.{h,cpp}: + Readded the default constructor, some compilers need it, no idea + why, will sort this out later but this at least makes the scoreboard + less red + +Tue Dec 27 15:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Container_Base.{h,cpp}: + * ciao/Context_Impl_Base.{h,cpp}: + * ciao/Home_Servant_Impl_Base.{h,cpp}: + * ciao/Servant_Impl_Base.{h,cpp}: + * ciao/Swapping_Servant_Home_Impl_Base.{h,cpp}: + * ciao/Swapping_Servant_Home_Impl_T.h: + Moved the default constructor to the private section and removed + the implementation with the assert + +Tue Dec 27 15:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeApplication/NodeApplication_Core.cpp: + Initialise pointer with 0 + + * DAnCE/NodeApplication/NodeApplication_Impl.{h,cpp,inl}: + Just declare the default constructor private, it seems not + to be used and the implementation was incorrect + +Fri Dec 23 11:49:04 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp + * DAnCE/ExecutionManager/Execution_Manager_Impl.h + * DAnCE/NodeApplication/NodeApplication_Impl.cpp + * DAnCE/NodeApplication/NodeApplication_Impl.h + * DAnCE/NodeApplication/NodeApplication_Impl.inl + * DAnCE/NodeApplication/RTConfig_Manager.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl + * DAnCE/NodeManager/NodeManager_Impl.cpp + * DAnCE/Plan_Launcher/Plan_Launcher.cpp + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp + * ciao/Container_Base.cpp + * ciao/Deployment.idl + * ciao/Deployment_Core.idl + * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp + * examples/Hello/descriptors/flattened_deploymentplan_without_ns_add.cdp + * examples/Hello/descriptors/flattened_deploymentplan_without_ns_remove.cdp + + Merged from CVS Branch CIAO_ReDAC_01. This merge enables DAnCE to + handle dynamic updating component assemblies as well as its + configurations on the fly. Major IDL changes include the following: + + 1) Modified the finishLaunch() operation on the DomainApplicationManager + interface by adding an additional boolean parameter to differentiate + whether this is for inital deployment or for redeployment. + + 2) Modified the finishLaunch() operation on the NodeApplicationManager + interface by adding an additional boolean parameter to differentiate + whether this is for inital deployment or for redeployment. + + 3) Added new operations perform_redeployment() to the ExecutionManager + interface and NodeApplicationManager interface. + +Fri Dec 23 13:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/ComponentPackager/* + Removed all these files, this component was using ziparchive and + we didn't build it. After checking this with the DAnCE developers + the conclustion was to zap it + +Thu Dec 22 19:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeManager/NodeManager_Impl.h: + Removed not needed msvc pragma push/pop + +Thu Dec 22 19:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/ExecutionManager/DAM_Map.cpp: + Made variable const + +Thu Dec 22 19:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + Removed some old includes, make a variable const + + * DAnCE/DomainApplicationManager/Deployment_Configuration.{h,cpp}: + Made get_default_node_manager_ior and get_node_manager_ior + const methods + +Thu Dec 22 19:43:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp: + Initialise pointers with 0 + + * DAnCE/NodeApplicationManager/ImplementationInfo.h: + Removed include of cpp file in this file, this file is not + declaring a template + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h: + Converted documentation to doxygen style + +Thu Dec 22 19:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/ComponentPackager/ComponentPackager.mpc: + Use exceptions as base project + + * DAnCE/ComponentPackager/Component_Packager.cpp: + Converted some documentation to doxygen style + + * DAnCE/ComponentPackager/Base_Packager.cpp: + Fixed argument not used warnings + + * DAnCE/ComponentPackager/CPK_Packager.{h,cpp}: + Small cleanup + +Thu Dec 22 14:10:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/ComponentPackager/Base_Packager.h: + Changed documentation to doxygen style + +Tue Dec 20 08:07:51 2005 Simon McQueen <sm@prismtech.com> + + * CIAO version 0.4.8 released. + +Fri Dec 16 15:58:27 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp + + Modified to fix a bug reported by Will Otte regarding + DAnCE's parsing of deployment plan to find component + servant and executor libraries. This is a temporary + workaround so even if a component name happens to + have "_exec" string inside it, DAnCE could still + work correctly to find the corresponding servant + and executor libraries. + +Fri Dec 16 14:57:21 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * ciao/Container_Base.cpp + * ciao/Container_Base.h + + Fixed a bug about RT-CCM. The bug creeped out when the + facet_consumer_poa_ is not configured properly to use + application specific real-time policies. Thanks to + Roland Schimmack <Roland.Schimmack @ gmx.de> for + reporting this bug. + +Tue Dec 13 12:13:26 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * COPYING: Updated this file to mention compliance issues wrt the + new "The Energy Policy Act of 2005". Thanks to Malcolm Spence + for providing this. + +Tue Dec 13 09:07:21 2005 William Otte <wotte@dre.vanderbilt.edu> + + * CCF/Documentation/Build.html + * CIDLC/README.html + + Updates to the CIDLC build documentation. Thanks to James Hill + <hillj at isis dot vanderbilt dot edu> for completing this update. + +Mon Dec 12 13:20:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * NEWS: + + Added Nanbor's changes from the release notes. + +Fri Dec 9 13:39:10 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Any_Handler.h + + Added a missing include for the versioned namespace macros. + +Fri Dec 9 09:18:01 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ciao/Server_init.h + + Added a missing include for the versioned namespace macros. + +Thu Dec 08 21:34:36 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * NEWS + + Updated the NEWS file to capture ReDaC stuff. + +Thu Dec 8 15:38:02 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * DAnCE/Old_Config_Handlers/DT_Handler.h: + * ciao/Client_init.h: + * ciao/Context_Impl_T.h: + * ciao/Server_init.h: + * ciao/Upgradeable_Context_Impl_T.h: + * tools/Config_Handlers/Any_Handler.h: + + Fixed versioned namespace support. The versioning macros calls + around forward declarations in the CORBA namespace were + missing. + +Thu Dec 08 08:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeManager/NodeManager_Impl.cpp: + Fixed compile errors with VxWorks + +Wed Dec 07 18:05:35 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * ciao/Deployment.idl + * ciao/Deployment_Core.idl + * doc/index.html + + Document CIAO specific interface extension/modifications. + +Wed Dec 7 12:41:22 2005 Boris Kolpackov <boris@kolpackov.net> + + * CIDLC/ExecImplGenerator.cpp: + * CIDLC/ExecImplHeaderGenerator.cpp: + * CIDLC/ExecImplSourceGenerator.cpp: + * CIDLC/ExecutorMappingGenerator.cpp: + * CIDLC/ServantGenerator.cpp: + * CIDLC/ServantHeaderGenerator.cpp: + * CIDLC/ServantSourceGenerator.cpp: + * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp: + + Fixed a bug in regular expressions that are used to get rid of + file suffixes. + +Tue Dec 06 12:33:27 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp + + Fixed warnings in Borland. + +Tue Dec 6 16:14:01 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * ciao/Servant_Impl_T.cpp: + + Changed initialization of boolean class members from '0' + to 'false'. + + * ciao/Servant_Impl_T.h: + + Added comments to the executor and context class members, + providing info about where they are initialized. + +Mon Dec 5 14:43:48 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/ExecutionManager.mpc + + Removed superfluous dependancy on Xerces. + +Sun Dec 4 11:13:32 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc + * DAnCE/tests/Config_Handlers/handler_test.mpb + + Fix linking errors on Tiger. + +Fri Dec 2 11:25:48 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/RepositoryManager/RepositoryManager.idl + * DAnCE/RepositoryManager/RepositoryManager.mpc + * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp + * DAnCE/RepositoryManager/RepositoryManager_Impl.h + * DAnCE/RepositoryManager/Repository_Manager.cpp + * DAnCE/RepositoryManager/Repository_Manager_conf.h + * DAnCE/RepositoryManager/Update_Plan.cpp + * DAnCE/RepositoryManager/Update_Plan.h + + Removed the deprecated RepositoryManager implementation. + + * NEWS + + Updated the NEWS file to reflect this. + +Thu Dec 1 10:16:46 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Basic_Deployment_Data.hpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp + + Fixed some errors caused by previous commit. + +Thu Dec 1 12:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp: + Use 0 instead of NULL, NULL is not portable + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + * DAnCE/NodeManager/NAM_Map.cpp: + Initialise pointers with 0 and return false instead of 0 + * DAnCE/ExecutionManager/Execution_Manager_Impl.h: + Removed not needed msvc pragma push/pop + + * DAnCE/NodeManager/NodeManager_Impl.cpp: + Initialise pointers with 0 and removed some printf that seems some + left over debugging statements + +Wed Nov 30 16:24:43 2005 William Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/xsc-banner.h + + Updated this file to reflect recent export macro changes. + + * tools/Config_Handlers/Basic_Deployment_Data.cpp + * tools/Config_Handlers/Basic_Deployment_Data.hpp + * tools/Config_Handlers/Deployment.cpp + * tools/Config_Handlers/Deployment.hpp + * tools/Config_Handlers/ccd.cpp + * tools/Config_Handlers/ccd.hpp + * tools/Config_Handlers/cdp.cpp + * tools/Config_Handlers/cdp.hpp + * tools/Config_Handlers/cid.cpp + * tools/Config_Handlers/cid.hpp + * tools/Config_Handlers/cpd.cpp + * tools/Config_Handlers/cpd.hpp + * tools/Config_Handlers/iad.cpp + * tools/Config_Handlers/iad.hpp + * tools/Config_Handlers/pcd.cpp + * tools/Config_Handlers/pcd.hpp + * tools/Config_Handlers/toplevel.cpp + * tools/Config_Handlers/toplevel.hpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp + + Made a borland specific fix apply to all compilers, hopefully + fixing ICC builds. + +Wed Nov 30 12:30:59 2005 William Otte <wotte@dre.vanderbilt.edu> + + * examples/Hello/descriptors/flattened_deploymentplan.cdp + + Added metadata necessary to initialize an enum attribute. + +Wed Nov 30 08:06:00 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/RepositoryManager/RepositoryManager.mpc: + This project is deprecated according to Will, so added + requires+=dummy_label, it is up to the DAnCE people to + decide when they zap this from the archive + +Fri Nov 25 10:50:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * DAnCE/Old_Config_Handlers/XercesString.cpp + + Fixed prototype return type qualifier missmatch + +Thu Nov 24 16:04:05 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * tools/Config_Handlers/Config_Handlers.mpc + + Added the MPC base project dependency to typecodefactory, + and hopefully this should fix some linking erros on the + scoreboard. + +Thu Nov 24 11:25:09 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/Old_Config_Handlers/XercesString.h + + Fixed a warning, since declaring function return type + to be const is meaningless. + +Tue Nov 22 16:03:24 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplication/Container_Impl.cpp + + Fixed a memory management related bug, we should not + explicitly call release() on the component object + reference of var type. + +Mon Nov 21 17:24:42 2005 Boris Kolpackov <boris@kolpackov.net> + + * NEWS: + + Updated with information about changes in CCF. + +Fri Nov 18 10:28:31 2005 William Otte <wotte@dre.vanderbilt.edu> + + * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc + + Quashed a link time warning on OS X. + +Thu Nov 17 18:13:28 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * examples/Swapping/Sender/Sender.mpc: + + Added a dependency of SenderE.idl on itself, to keep + VC8 from launching the IDL compiler on it until it + has been generated by the CIDL compiler. + +Thu Nov 17 09:53:35 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + + Fixed warning about unused arguments + +Wed Nov 16 11:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Swapping/Sender/Sender_exec.cpp: + Fixed warning in VxWorks build + +Mon Nov 14 22:43:09 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp + * DAnCE/ExecutionManager/Execution_Manager_Impl.h + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp + * ciao/Deployment.idl + + Fixed some errors and warnings on the builds. + +Mon Nov 14 11:05:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Display/RateGen/RateGen_exec.h: + * examples/BasicSP/EC/EC_exec.h: + Timer id's are long, not int + + * ciao/Servant_Activator.cpp: + Fixed 64bit conversion warnings + +Sun Nov 13 12:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Swapping/Sender/Sender_exec_2.cpp: + * examples/Swapping/Sender/Sender_exec_1.cpp: + * examples/Hello/Sender/Sender_exec.cpp: + * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp: + Fixed warnings in VxWorks build + +Fri Nov 11 17:49:40 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp + * DAnCE/ExecutionManager/Execution_Manager_Impl.h + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + * DAnCE/NodeManager/NodeManager_Impl.cpp + * DAnCE/NodeManager/NodeManager_Impl.h + * ciao/Deployment.idl + + More stuff regarding dynamic assembly management. These + changes won't break existing initial deployment and + configuration. + +Fri Nov 11 12:37:00 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp + * DAnCE/ExecutionManager/Execution_Manager_Impl.h + * DAnCE/NodeApplication/NodeApplication_Impl.cpp + * DAnCE/NodeApplication/NodeApplication_Impl.h + * DAnCE/NodeManager/NodeManager_Impl.cpp + * DAnCE/NodeManager/NodeManager_Impl.h + * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc + * ciao/Deployment.idl + * ciao/Deployment_Core.idl + + Added the DAnCE enhancements to support dynamic + assembly management and reconfiguration. No actual + implementation is there except some capability + in NodeApplication_Impl servant class. + +Thu Nov 10 17:13:20 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * ciao/Servant_Activator.cpp + + Enhanced a debug output message. + +Thu Nov 10 06:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Port_Activator_T.cpp: + Fixed warning in VxWorks build + +Tue Nov 8 22:13:50 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeManager/NodeManager_Impl.cpp + * ciao/Container_Base.cpp + * ciao/Servant_Impl_Base.cpp + * ciao/Swapping_Servant_Home_Impl_T.cpp + * ciao/Upgradeable_Context_Impl_T.cpp + * examples/BasicSP/EC/EC.mpc + + Resolved some warnings in OS X relating to ambiguous conversions. + +Mon Nov 7 16:23:41 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/ExecutionManager.mpc + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc + * performance-tests/Benchmark/Benchmark.mpc + * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc + * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc + + Resolving linking errors on OS X. + +Mon Nov 7 14:00:31 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * NEWS: Added some new TO-DO items. + +Mon Nov 07 10:23:09 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp: Fixed + incorrect usage of extracting a struct from an any. Thanks much + to Gan for helping with the debugging effort. + + * examples/Hello/descriptors/rt_run_test.pl: + * examples/Hello/descriptors/rt-example.cdp: Enabled the use of RT + policy sets and RT-enabled NodeApplication in the example by + default. + + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp: Minor enhancement to + the debug messages. + +Fri Nov 04 16:44:29 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/ImplementtionInfo.cpp + + Changed to use the "copying" version of the Any insertion + operator. Thanks Jeff Parsons for the help on this. + +Thu Nov 03 15:34:39 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/ImplementationInfo.cpp + + Fixed a bug which causes unknow exception when calling + startLaunch on NodeApplicationManager. + +Thu Nov 3 19:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeManager/NodeManager_Impl.cpp: + Fixed implicit conversion warning in VxWorks build + + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp: + Renamed global variable count to counter to fix clash with STL count + algoritm on VxWorks + +Thu Nov 03 11:14:52 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplication/RTConfig_Manager.cpp: Added a tad more and + improve existing debugging print out. + + * examples/Hello/descriptors/rt-example.cdp: + * examples/Hello/descriptors/rt-config-example.csr: + * examples/Hello/descriptors/rt_run_test.pl: Changed to use a + simpler version of DeploymentPlan for the test for now. + +Wed Nov 02 19:28:14 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * tools/Config_Handlers/RT-CCM/CB_Handler.cpp + * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp + * tools/Config_Handlers/RT-CCM/PS_Handler.cpp + * DAnCE/NodeApplication/RTConfig_Manager.cpp: + + Fixed some bugs related to populating/displaying ServerResource + data structure. + +Wed Nov 02 14:55:14 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp: Fixed strings + comparisons syntax. + + * DAnCE/NodeApplication/RTConfig_Manager.cpp: + * DAnCE/NodeApplication/RTConfig_Manager.h: Added a new + print_resource method and a bunch of debugging print out to help + debugging XML parsing and propagating. + + * examples/Hello/descriptors/RTsvc.conf: + * examples/Hello/descriptors/rt_run_test.pl: Added a RTsvc.conf + file to start up the NodeApplication in RT mode. + + * examples/Hello/descriptors/rt-config-example.csr: Made RT + resource definitions more realistic and added a new policy set + for debugging XML parsing. + +Wed Nov 02 07:09:10 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp: Fixed + usage of strings. + +Tue Nov 01 22:41:04 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp: Changed to + insert policy set name into ContainerPolicySet property instead + of the actual policy since we already have the policy set + definitions when creating the NodeApplication. + +Tue Nov 01 13:44:58 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplication/RTConfig_Manager.cpp: + * DAnCE/NodeApplication/RTConfig_Manager.h: + * DAnCE/NodeApplication/RTConfig_Manager.inl: + * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp: + * DAnCE/NodeApplication/RTNodeApp_Configurator.h: Integrated + RTConfig_Manager with the RTNodeApp_Configurator. + +Mon Oct 31 22:37:42 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplication/NodeApplication/NodeApplication.mpc: + * DAnCE/NodeApplication/NodeApplication/RTConfig_Manager.cpp: + * DAnCE/NodeApplication/NodeApplication/RTConfig_Manager.h: + * DAnCE/NodeApplication/NodeApplication/RTConfig_Manager.inl: + Added the RT configuration manager that keep track of all the RT + resources and policy sets in a NodeApplication. We still need + to hook this up in the RTNodeApp_Configurator. + +Mon Oct 31 11:22:41 2005 <Gan Deng@SKYLINENETGEAR> + + * examples/Hello/descriptors/rt-config-example.csr + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp + * DAnCE/NodeApplicationManager/ImplementationInfo.cpp + + Fixed the descriptor by adding the server resource id tag. + +Sun Oct 30 22:49:52 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeManager/Node_Manager.cpp: Fixed missing -a Get_Opt + parameter and usage text. "-a" is used to set the optional + command line flags for the NodeApplication. The logic was there + in the Get_Opt loop but the Get_Opt object was not set to parse + the flag and the usage text for Node_Manager didn't mention the + flag either. + + Eventually, the optional command line flags should really come + from the ServerResource XML file. + + * NodeApplicationManager/NodeApplicationManager_Impl.cpp: Added a + missing space to separate optional command line flags from the + default ones. The old one worked only when no optional + commandline flags are presented. + + * ciao/Deployment_Core.idl: Removed "init" method from the + Container interface since it is really implementation specific. + + * DAnCE/NodeApplication/Container_Impl.cpp: + * DAnCE/NodeApplication/Container_Impl.h: Changed the signature of + init method to take a PolicyList pointer directly since this is + what we really need to initialize a container. + + * DAnCE/NodeApplication/Configurator_Factory.h: Added comments + documentating how we should really support multiple external + configurator module and how it could be done. + + * DAnCE/NodeApplication/Configurator_Factory.cpp: Changed DLL open + to not closing down the DLL handle on exit. Otherwise, + NodeApplication can not shut down cleanly. + + * DAnCE/NodeApplication/NodeApp_Configurator.h: Commented on the + potential need for a finalizer method, or two. + + * DAnCE/NodeApplication/NodeApplication_Impl.cpp: Added actual + hooks to process optional policies for RT support. + + * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp: Added code to + parse the optional properties and manipulate RT resources and + policies. + +Sun Oct 30 10:27:27 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplication/Configurator_Factory.cpp: Fixed a typo in + command line option flag. + +Fri Oct 28 12:30:06 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeApplication/Configurator_Factory.cpp + * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc + + Scoreboard fixes. + +Thu Oct 27 21:06:39 2005 Boris Kolpackov <boris@kolpackov.net> + + * CCF/CCF/CodeGenerationKit/IndentationCxx.hpp: + + Added support for indentation of function arguments. + +Thu Oct 27 00:29:11 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + * DAnCE/NodeApplicationManager/Containers_Info_Map.h + * DAnCE/NodeApplicationManager/ImplementationInfo.h + * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc + + Fixed some compilation and linking errors shown on the scoreboard, + particularly for Windows builds. + +Thu Oct 27 07:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * rules.ciao.GNU: + When cmd is the shell, use a different way to get the CIAO versions + needed for building with VxWorks 5.5 with Windows as host + +Wed Oct 26 23:07:59 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/TypeNameEmitter.cpp: + * CIDLC/TypeNameEmitter.hpp: + + Added backend support for the frontend features added by + Boris in + + Tue Oct 25 14:08:44 2005 Boris Kolpackov <boris@kolpackov.net>. + +Wed Oct 26 16:16:32 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplication/NodeApp_Configurator.cpp: + * DAnCE/NodeApplication/NodeApp_Configurator.h: Updated the + NodeApp_Configurator to support pre_orb_initialize and + post_orb_initialize methods which will be invoked before and + after ORB_init is called. + + * DAnCE/NodeApplication/NodeApplication.cpp: Moved ORB_init into + NodeApplication_Core object. + + * DAnCE/NodeApplication/NodeApplication_Core.cpp: + * DAnCE/NodeApplication/NodeApplication_Core.h: + * DAnCE/NodeApplication/NodeApplication_Core.inl: Moved the + NodeApplication_Options and NoOp_Configurator classes into + Configurator_Factory.* file. Refactored NodeApplication_Core to + enable pre_orb_initialize and post_orb_initialize. + + * DAnCE/NodeApplication/Configurator_Factory.cpp: + * DAnCE/NodeApplication/Configurator_Factory.h: Factored all the + NodeApp_Configurtor creation strategies and NodeApplication + configuration managements into these files. It also includes + the no-ops NodeApp_Configurator used by non-RT NodeApplication. + + We should extend the argument parsing logic to support + user-supplied NodeApp_Configurator at some point. + + * DAnCE/NodeApplication/NodeApplication.mpc: + * DAnCE/NodeApplication/RTNA_Configurator_Export.h: + * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp: + * DAnCE/NodeApplication/RTNodeApp_Configurator.h: Added the + dynamic library for real-time configuration. The current + implementation set up the NodeApplication process by enabling + the RTCORBA support. We still need to add the capability to + parse and allocate RT resources and policies. + +Wed Oct 26 18:37:00 2005 Boris Kolpackov <boris@kolpackov.net> + + * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp: + * CCF/CCF/IDL2/SemanticGraph/Array.hpp: + * CCF/CCF/IDL2/SemanticGraph/Elements.cpp: + * CCF/CCF/IDL2/SemanticGraph/Elements.hpp: + * CCF/CCF/IDL2/SemanticGraph/Sequence.hpp: + * CCF/CCF/IDL2/SemanticGraph/String.hpp: + * CCF/CCF/IDL2/SemanticGraph/Union.hpp: + + Corrected a left/right node mismatch in + type-arguments->specialization relation. + +Wed Oct 26 16:37:26 2005 Boris Kolpackov <boris@kolpackov.net> + + * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp: + + Clear array type before starting sequence, string, etc., + declarations. + +Tue Oct 25 14:08:44 2005 Boris Kolpackov <boris@kolpackov.net> + + * CCF/CCF/IDL2/Parser.cpp: + * CCF/CCF/IDL2/Parser.hpp: + * CCF/CCF/IDL2/SemanticGraph.hpp: + * CCF/CCF/IDL2/Traversal.hpp: + * CCF/CCF/IDL2/SemanticAction/Typedef.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp: + * CCF/CCF/IDL2/SemanticGraph/Array.cpp: + * CCF/CCF/IDL2/SemanticGraph/Array.hpp: + * CCF/CCF/IDL2/SemanticGraph/Elements.cpp: + * CCF/CCF/IDL2/SemanticGraph/Elements.hpp: + * CCF/CCF/IDL2/SemanticGraph/Sequence.cpp: + * CCF/CCF/IDL2/SemanticGraph/Sequence.hpp: + * CCF/CCF/IDL2/SemanticGraph/String.cpp: + * CCF/CCF/IDL2/SemanticGraph/String.hpp: + * CCF/CCF/IDL2/SemanticGraph/Union.cpp: + * CCF/CCF/IDL2/SemanticGraph/Union.hpp: + * CCF/CCF/IDL2/Traversal/Array.cpp: + * CCF/CCF/IDL2/Traversal/Array.hpp: + * CCF/CCF/IDL2/Traversal/Elements.hpp: + * CCF/CCF/IDL2/Traversal/IntExpression.hpp: + * CCF/CCF/IDL2/Traversal/Sequence.cpp: + * CCF/CCF/IDL2/Traversal/Sequence.hpp: + * CCF/CCF/IDL2/Traversal/String.cpp: + * CCF/CCF/IDL2/Traversal/String.hpp: + + Implemented the second part of the const expression support. + This includes bounded sequences, strings, and arrays. + +Mon Oct 24 09:36:28 2005 Venkita Subramonian <venkita@cs.wustl.edu> + + * docs/static_dance.html: + + Corrected minor error with display of figures. + +Mon Oct 24 08:10:29 2005 Venkita Subramonian <venkita@cs.wustl.edu> + + * DAnCE/NodeApplication/NodeApplication_Impl.{h,inl,cpp}: + * DAnCE/NodeApplication/Container_Impl.{h,inl,cpp}: + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.{cpp,inl,h}: + * DAnCE/NodeManager/NodeManager_Impl.{cpp,h}: + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc: + * DAnCE/NodeManager/NodeManager.mpc: + * DAnCE/StaticConfigurator/README: + * DAnCE/StaticConfigurator/StaticDAnCEParser.{cpp,mpc}: + * DAnCE/StaticConfigurator/StaticDAnCEApp.{cpp.tmpl,mpc.tmpl}: + * docs/static_dance.html: + * docs/imgs/dance_arch.{vsd,jpg}: + * docs/imgs/static_dance_arch.{vsd,jpg}: + * docs/imgs/static_dance_impl.{vsd,jpg}: + + Added Static D&C capability to CIAO. See + $CIAO_ROOT/docs/static_dance.html for further details. + +Fri Oct 21 13:58:13 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/DynAny_Handler.mpc + + Modified to make this not build on systems built with minimum + corba. + +Fri Oct 21 09:56:10 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/RTNodeApplication/RTNodeApplication.mpc: Removed the MPC + file to prevent it from being built. + + * DAnCE/RTNodeApplication/REAME: Stated the directory has been + depricated. + +Fri Oct 21 13:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp: + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + Fixed unitialized warnings + +Fri Oct 21 10:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/Old_Config_Handlers/Process_Element_T.cpp: + Fixed 64bit warnings + +Thu Oct 20 09:07:21 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/NodeApplication/NodeApp_Configurator.{h,cpp}: + Actually, destructors can be pure virtual. They just can't be + defined in header files. + +Thu Oct 20 09:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeApplication/NodeApp_Configurator.{h,cpp}: + Destructor can't be pure virtual + +Wed Oct 19 15:03:56 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + These changes are made to add support for RT-capable + NodeApplication. + + * ciao/CCM_Core.mpc: + * ciao/Container_Impl.h: + * ciao/Container_Impl.inl: + * ciao/Container_Impl.cpp: + * ciao/NodeApplication_Impl.h: + * ciao/NodeApplication_Impl.inl: + * ciao/NodeApplication_Impl.cpp: Moved NodeApplication and + Container interface implementations under DAnCE/NodeApplication/ + subdir. They are coupled with NodeApplication implementation + now. + + * DAnCE/NodeApplication/NodeApplication.mpc: Changed to + incorporate the following files/changes. + + * DAnCE/NodeApplication/NodeApp_Configurator.h: + * DAnCE/NodeApplication/NodeApp_Configurator.cpp: Added abstract, + base NodeApp_Configurator class to define the interface for + configuring NodeApplication internal. + + * DAnCE/NodeApplication/Container_Impl.h: + * DAnCE/NodeApplication/Container_Impl.inl: + * DAnCE/NodeApplication/Container_Impl.cpp: Moved from ciao/ + subdir. + + * DAnCE/NodeApplication/NodeApplication_Impl.h: + * DAnCE/NodeApplication/NodeApplication_Impl.inl: + * DAnCE/NodeApplication/NodeApplication_Impl.cpp: Changed to + depend on a concrete NodeApp_Configurator to perform the + configuration. + + * DAnCE/NodeApplication/NodeApplication_Core.h: + * DAnCE/NodeApplication/NodeApplication_Core.inl: + * DAnCE/NodeApplication/NodeApplication_Core.cpp: + * DAnCE/NodeApplication/NodeApplication.cpp: Restructured the + NodeApplication implementation so that the ORB event loop can be + run on the main thread or on a separate thread, using the FIFO + scheduling class. + + A new create_configurator method in NodeApplication_Core will + create the "right" concrete configurator based on the command + line flags. We will support a RT configuration soon. + Currently, there's only a NoOp_Configurator for running + NodeApplication without RT support. + + We will add the RT configuration as a dynamic library and will + hook it up via ACE_DLL in a few days. + +Tue Oct 18 16:50:24 2005 William Otte <wotte@dre.vanderbilt.edu> + + * NEWS + + Updated release notes. + +Mon Oct 17 13:21:59 2005 William Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/ccd.xsd + + Updated to work with expected format for Repoman/ComponentPackager + +Fri Oct 14 17:22:59 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Basic_Deployment_Data.cpp + * tools/Config_Handlers/Basic_Deployment_Data.hpp + * tools/Config_Handlers/Deployment.cpp + * tools/Config_Handlers/Deployment.hpp + * tools/Config_Handlers/ccd.cpp + * tools/Config_Handlers/ccd.hpp + * tools/Config_Handlers/cdd.cpp + * tools/Config_Handlers/cdd.hpp + * tools/Config_Handlers/cdp.cpp + * tools/Config_Handlers/cdp.hpp + * tools/Config_Handlers/cid.cpp + * tools/Config_Handlers/cid.hpp + * tools/Config_Handlers/cpd.cpp + * tools/Config_Handlers/cpd.hpp + * tools/Config_Handlers/iad.cpp + * tools/Config_Handlers/iad.hpp + * tools/Config_Handlers/pcd.cpp + * tools/Config_Handlers/pcd.hpp + * tools/Config_Handlers/toplevel.cpp + * tools/Config_Handlers/toplevel.hpp + + Regerated with new version of XSC which implements some heavy + optimizations. + +Fri Oct 14 14:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp: + Removed not needed ; + +Thu Oct 13 15:42:12 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp + * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp + + Various compile fixes for Borland. + + * tools/Config_Handlers/XMLSchema/Types.hpp + + Modified to use ACE typedefs for number types. + + * tools/Config_Handlers/XSCRT/Elements.hpp + + Removed unneeded non-const conversion operator which was causing + errors in Borland. + +Wed Oct 12 14:13:09 2005 William Otte <wotte@dre.vanderbilt.edu> + + * examples/Hello/Sender/Sender.idl + * examples/Hello/Sender/Sender_exec.cpp + * examples/Hello/Sender/Sender_exec.h + * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp + + Example of initializing enumerated attributes. + +Wed Oct 12 15:08:31 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tools/Config_Handlers/RT-CCM/TP_Handler.cpp: + + Changed the types of some static_casts on the rhs of + assignments to match the types on the lhs, eliminating + warnings from MSVC 7.1. + +Wed Oct 12 13:17:58 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/TypeNameEmitter.cpp: + + Removed generation of error message with code that attempts + to set an enum attribute value, and replace it with code + that extracts the enum value from the Any arguement. + +Wed Oct 12 08:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h: + Fixed fuzz check + +Tue Oct 11 16:37:01 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Basic_Deployment_Data.cpp + * tools/Config_Handlers/Basic_Deployment_Data.hpp + * tools/Config_Handlers/Deployment.cpp + * tools/Config_Handlers/Deployment.hpp + * tools/Config_Handlers/ccd.cpp + * tools/Config_Handlers/ccd.hpp + * tools/Config_Handlers/cdd.cpp + * tools/Config_Handlers/cdd.hpp + * tools/Config_Handlers/cdp.cpp + * tools/Config_Handlers/cdp.hpp + * tools/Config_Handlers/cid.cpp + * tools/Config_Handlers/cid.hpp + * tools/Config_Handlers/cpd.cpp + * tools/Config_Handlers/cpd.hpp + * tools/Config_Handlers/iad.cpp + * tools/Config_Handlers/iad.hpp + * tools/Config_Handlers/pcd.cpp + * tools/Config_Handlers/pcd.hpp + * tools/Config_Handlers/toplevel.cpp + * tools/Config_Handlers/toplevel.hpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp + + Fixed a bug which broke the gaurantee that element order in the + XSC type would be the same as the element order in the instance + document. + + * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp + * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp + + Fixed a runtime error and removed some debugging information. + +Mon Oct 10 17:37:20 2005 Stoyan Paunov spaunov@isis.vanderbilt.edu + + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp + + reverted a change we made earlier to accomodate older verisons of ZZIPLIB + + +Mon Oct 10 15:46:57 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp + + Trivial corrections for portability problems. + + * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc + + Updated to properlly use base projects. + +Mon Oct 10 20:07:39 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tools/Config_Handlers/Config_Handlers.mpc: + * tools/Config_Handlers/DynAny_Handler.mpc: + + Add export files to projects, and removed redundant + base projects. + + * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp: + + Changed some static casts on the rhs of assignments to types + corresponding to the lhs, elminating warnings on MSVC 7.1. + +Mon Oct 10 15:05:00 2005 William Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/Basic_Deployment_Data.xsd + * docs/schema/cdd.xsd + + Checking in some updated schema for domain information. + +Mon Oct 10 13:53:15 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Basic_Deployment_Data.hpp + * tools/Config_Handlers/Config_Handlers.mpc + * tools/Config_Handlers/Deployment.hpp + * tools/Config_Handlers/DynAny_Handler.mpc + * tools/Config_Handlers/IDREF_Base.h + * tools/Config_Handlers/XSC_XML_Handlers_Export.h + * tools/Config_Handlers/ccd.hpp + * tools/Config_Handlers/cdd.hpp + * tools/Config_Handlers/cdp.hpp + * tools/Config_Handlers/cid.hpp + * tools/Config_Handlers/cpd.hpp + * tools/Config_Handlers/iad.hpp + * tools/Config_Handlers/pcd.hpp + * tools/Config_Handlers/toplevel.hpp + * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h + * tools/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h + * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.h + * tools/Config_Handlers/RT-CCM/CB_Handler.h + * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp + * tools/Config_Handlers/RT-CCM/CLA_Handler.h + * tools/Config_Handlers/RT-CCM/OC_Handler.h + * tools/Config_Handlers/RT-CCM/OR_Handler.h + * tools/Config_Handlers/RT-CCM/PM_Handler.h + * tools/Config_Handlers/RT-CCM/PS_Handler.h + * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc + * tools/Config_Handlers/RT-CCM/RT_CCM_Handlers_Export.h + * tools/Config_Handlers/RT-CCM/SRD_Handler.h + * tools/Config_Handlers/RT-CCM/TPL_Handler.h + * tools/Config_Handlers/RT-CCM/TP_Handler.h + * tools/Config_Handlers/RT-CCM/input.csr + * tools/Config_Handlers/Utils/CIAO_XML_Utils_Export.h + * tools/Config_Handlers/Utils/Utils.mpc + * tools/Config_Handlers/Utils/XML_Error_Handler.h + * tools/Config_Handlers/Utils/XML_Helper.h + * tools/Config_Handlers/Utils/XML_Schema_Resolver.h + + Fixed messy export macro usage. This will clean up builds on + Windows. + +Sun Oct 9 19:22:44 CDT 2005 Stoyan Paunov spaunov@isis.vanderbilt.edu + + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp + * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc + + Fixing a few includes after Will Otte's latest changes. + + +Sun Oct 9 09:51:41 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/DynAny_Handler.mpc + + Moved this file down a level to make MPC stop complaining. + +Fri Oct 7 18:22:40 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Any_Handler.cpp + * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp + * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h + * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp + + *Hopefully* fix compile problem on Windows. + +Fri Oct 7 18:25:11 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/ADD_Handler.cpp + * tools/Config_Handlers/DP_Handler.cpp + * tools/Config_Handlers/IDD_Handler.cpp + * tools/Config_Handlers/MDD_Handler.cpp + + Fix runtime error. + +Fri Oct 7 16:18:40 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Config_Handlers.mpc + * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp + * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.h + + Fix for a compile problem. + +Fri Oct 7 14:25:09 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/DynAny_Handler/DataType_Handler.cpp + * tools/Config_Handlers/DynAny_Handler/DataType_Handler.h + * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp + * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h + * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.mpc + * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp + * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.h + * tools/Config_Handlers/Any_Handler.cpp + + Add support for using Dynamic Any. This will evolve in the coming + weeks into more complete support for complex types. + + * tools/Config_Handlers/ADD_Handler.cpp + * tools/Config_Handlers/ADD_Handler.h + * tools/Config_Handlers/Basic_Deployment_Data.cpp + * tools/Config_Handlers/Basic_Deployment_Data.hpp + * tools/Config_Handlers/CCD_Handler.cpp + * tools/Config_Handlers/CCD_Handler.h + * tools/Config_Handlers/CEPE_Handler.cpp + * tools/Config_Handlers/CEPE_Handler.h + * tools/Config_Handlers/DP_Handler.cpp + * tools/Config_Handlers/DP_PCD_Handler.cpp + * tools/Config_Handlers/DP_PCD_Handler.h + * tools/Config_Handlers/ERE_Handler.cpp + * tools/Config_Handlers/ERE_Handler.h + * tools/Config_Handlers/ADD_Handler.cpp + * tools/Config_Handlers/IDD_Handler.h + * tools/Config_Handlers/MDD_Handler.cpp + * tools/Config_Handlers/MDD_Handler.h + * tools/Config_Handlers/PCD_Handler.cpp + * tools/Config_Handlers/PSPE_Handler.cpp + * tools/Config_Handlers/PSPE_Handler.h + + Optimization made possible by improvements in XSC. + +Fri Oct 7 14:20:36 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp: + * + DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + + Added more debug statements. + +Fri Oct 7 19:14:29 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIAO-INSTALL.html: + + Updated CIDL compiler section with instructions for building + the CIDL compiler using MPC. + +Fri Oct 7 18:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeManager/NodeManager_Impl.{h,inl}: + Removed inl file, it is empty + + * DAnCE/ExecutionManager/ExecutionManager_Impl.inl: + Removed, empty + +Thu Oct 6 16:52:21 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * + DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + + Added more debug statements and comments. + +Thu Oct 6 16:11:56 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * + DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + + Added more debug statements and also comments in the code. + +Thu Oct 6 15:32:41 CDT 2005 Stoyan Paunov spaunov@isis.vanderbilt.edu + + * DAnCE/spec_RepositoryManager/PC_Updater.cpp + * DAnCE/spec_RepositoryManager/PC_Updater.h + * DAnCE/spec_RepositoryManager/PC_Updater_T.cpp + * DAnCE/spec_RepositoryManager/PC_Updater_T.h + + Added these files which implement a PackageConfiguration visitor. + The visitor helps deal with the internal complexity of the PackageConfiguration + and helps preseve my sanity ;) + + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h + + Some more code. With this the package distribution part of the RM + is ready. I still need to clean up a few details. This is coming soon. + + +Thu Oct 6 15:05:30 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp: + + Added debug statements and comments. + +Thu Oct 6 14:26:31 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/DAM_Map.cpp: + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp: + * DAnCE/Plan_Launcher/DAM_Map.cpp: + * DAnCE/Plan_Launcher/Plan_Launcher.cpp: + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp: + * ciao/Container_Impl.cpp: + * ciao/NodeApplication_Impl.cpp: + * ciao/Servant_Activator.cpp: + + Fixed the debug statements to look for critical levels + no more than 9. + +Thu Oct 6 14:00:16 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * ciao/Container_Base.cpp: + * ciao/Container_Impl.cpp: + + Added debug messages and comments. + +Thu Oct 6 12:30:40 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * ciao/NodeApplication_Impl.cpp: + + Added debug messages and comments. + +Thu Oct 6 08:00:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp: + * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp: + Fixed compile problems + +Wed Oct 5 17:42:24 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Any_Handler.cpp + + Part of previous commit. + +Wed Oct 5 17:07:07 2005 William Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/Basic_Deployment_Data.xsd + * docs/schema/cdd.xsd + + Moved recursive Domain data into cdd.xsd. This will hopefully + lessen the time required to compile. + + * tools/Config_Handlers/CPD_Handler.cpp + * tools/Config_Handlers/DataType_Handler.cpp + + Fixed some potential run-time bugs in Borland. Style + corrections. + + * tools/Config_Handlers/Basic_Deployment_Data.cpp + * tools/Config_Handlers/Basic_Deployment_Data.hpp + * tools/Config_Handlers/Deployment.cpp + * tools/Config_Handlers/Deployment.hpp + * tools/Config_Handlers/ccd.cpp + * tools/Config_Handlers/ccd.hpp + * tools/Config_Handlers/cdd.cpp + * tools/Config_Handlers/cdd.hpp + * tools/Config_Handlers/cdp.cpp + * tools/Config_Handlers/cdp.hpp + * tools/Config_Handlers/cid.cpp + * tools/Config_Handlers/cid.hpp + * tools/Config_Handlers/iad.cpp + * tools/Config_Handlers/iad.hpp + * tools/Config_Handlers/pcd.cpp + * tools/Config_Handlers/pcd.hpp + * tools/Config_Handlers/test.cdp + * tools/Config_Handlers/toplevel.cpp + * tools/Config_Handlers/toplevel.hpp + + Regerated with new version of XSC. Major changes: + * Now only one accessor and one mutator per document element + * Changes in schema above. + +Wed Oct 5 14:44:31 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp: + * + DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp: + + Added some debug statements and some optimization choices. + +Tue Oct 4 14:08:24 2005 William Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/Basic_Deployment_Data.xsd + * docs/schema/unused_elements.xsd + * tools/Config_Handlers/Basic_Deployment_Data.cpp + * tools/Config_Handlers/Basic_Deployment_Data.hpp + + Updated to include domain information (ie, bridge, interconnect). + + * tools/Config_Handlers/RT-CCM/SRD_Handler.h + + Cosmetic changes. + +Mon Oct 3 14:27:39 2005 William Otte <wotte@dre.vanderbilt.edu> + + * CIAO-INSTALL.html + + Updated install documentation to reflect the restructuring. + +Mon Oct 3 12:48:26 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + + Commented out some debugging information. + +Mon Oct 3 15:44:15 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * docs/Purify.html: + + Updated doc file with installation info and more info about + Purifying a spawned child process. + +Mon Oct 3 10:14:19 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + + Corrected a bug in parameter checking. + + * DAnCE/NodeManager/Node_Manager.cpp + + Added documentation for the -d command line options. + + * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp + * tools/Config_Handlers/RT-CCM/SRD_Handler.cpp + * tools/Config_Handlers/RT-CCM/SRD_Handler.h + + New functionality in the Config_Handlers. + +Mon Oct 3 10:00:08 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/valgrind_nodedaemon.py + + Script to help launch nodemanager/nodeapplication under Valgrind. + +Mon Oct 3 000:31:09 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * docs/Purify.html: + + New file, documenting the use of Purify with CIAO and DAnCE. + +Sun Oct 2 22:24:15 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tools/Config_Handlers/Basic_Deployment_Data.hpp: + + Added include of RT-CCM/CIAOServerResources.hpp. + + * tools/Config_Handlers/DP_Handler.cpp: + + Added export macros to friend function declarations. + +Sat Oct 1 15:38:23 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Config_Handlers.mpc + * tools/Config_Handlers/test.cpp + + Corrected the config handler test to properly test the handlers. + + * tools/Config_Handlers/PSPE_Handler.cpp + + Fixed a run-time bug that was causing corrupted plans in Borland + builds. + +Friday Sep 30 15:12:43 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc + * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc + * RACE/Planner_Manager/Component/Planner_Manager.mpc + * tests/IDL3/ImpliedIDL/All/all.mpc + * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp + + Fixes for compile problems in Borland6 + +Fri Sep 30 15:11:47 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * NEWS + + Updated the NEWS file. + +Fri Sep 30 07:53:47 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/RT-CCM/SRD_Handler.cpp + + Should have been part of the previous commit. + +Thu Sep 29 18:11:25 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * ciao/Container_Impl.cpp + * ciao/NodeApplication_Impl.cpp + * ciao/Upgradeable_Context_Impl_T.cpp + + Fuzz errors. + + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc + * tools/Config_Handlers/RT-CCM/Config_Handlers_Export.h + * tools/Config_Handlers/RT-CCM/SRD_Handler.h + * tools/Config_Handlers/Utils/Config_Handlers_Export.h + + Correction for a emulated exception error. + +Thu Sep 29 13:01:23 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ciao/Version.h + + Corrected the version number. + +Thu Sep 29 11:34:55 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ciao/Swapping_Servant_Home_Impl_T.cpp + + Fixed build problem on non-exception systems. + +Thu Sep 29 07:28:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/Config_Handlers/Utils/XML_Schema_Resolver.cpp: + Fixed not used argument warning + +Thu Sep 29 06:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/Config_Handlers/Utils/XML_Schema_Resolver.h: + Added missing pre.h + +Wed Sep 28 16:44:39 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * docs/schema/CIAOServerResources.xsd + + Updated to support RT-CCM. + +Wed Sep 28 14:44:39 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp + * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp + + New version of the XSC including additional features needed for + RT-CCM. + +Wed Sep 28 08:24:32 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Utils/Utils.mpc + * tools/Config_Handlers/Utils/XML_Helper.cpp + * tools/Config_Handlers/Utils/XML_Schema_Resolver.cpp + * tools/Config_Handlers/Utils/XML_Schema_Resolver.h + + Implemented a schema resolver so that the XML parser till grab the + schemata from $CIAO_ROOT/docs/schema. + + * docs/tutorials/Quoter/Simple/descriptors/Deployment.xsd + * docs/tutorials/Quoter/Simple/descriptors/Modified_Deployment.xsd + * examples/BasicSP/descriptors/Deployment.xsd + * examples/Display/descriptors/Deployment.xsd + * examples/Display/descriptors/Modified_Deployment.xsd + * examples/Hello/descriptors/Deployment.xsd + * examples/Hello/descriptors/Modified_Deployment.xsd + * examples/Hello/descriptors/XMI.xsd + * examples/Hello/descriptors/Deployment.xsd + * examples/Hello/descriptors/Modified_Deployment.xsd + * examples/Hello/descriptors/XMI.xsd + + Removed obsolete schemata. + + * examples/Display/descriptors/flattened_deploymentplan.cdp + * examples/Hello/descriptors/flattened_deploymentplan.cdp + * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp + * docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp + + Migrated these deployment plans to use Deployment.xsd and friends, + instead of Modified_Deployment.xsd. + + * NEWS + + Updated the NEWS to include this feature. + +Tue Sep 27 13:16:43 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/ExecutionManager.mpc + * DAnCE/NodeApplication/NodeApplication.mpc + * DAnCE/NodeManager/NodeManager.mpc + * DAnCE/Old_Config_Handlers/Config_Handlers.mpc + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + * DAnCE/RTNodeApplication/RTNodeApplication.mpc + * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc + * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter.mpc + * RACE/Output_Adapters/Base/Output_Adapter.mpc + * RACE/Planners/SimpleBinPacker/SimpleBinPacker.mpc + * ciao/CCM_Core.mpc + * examples/BasicSP/BasicSP.mpc + + Fixed a large number of deficiencies in our build structure. + More changes to come later. + +Tue Sep 27 11:10:37 2005 William Otte <wotte@dre.vanderbilt.edu> + + * NEWS + + Updated the news file. + +Tue Sep 27 10:51:20 2005 William Otte <wotte@dre.vanderbilt.edu> + + * bin/generate_component_mpc.pl + + Updated this script to bring it in line with modern CIAO. This + includes: + + - Base projects are now the _dnc variants + - Export files are now automatically generated. + +Tue Sep 27 14:26:44 2005 Boris Kolpackov <boris@kolpackov.net> + + * CCF/CCF/IDL2/LexicalAnalyzer.cpp: + * CCF/CCF/IDL2/Parser.cpp: + * CCF/CCF/IDL2/Parser.hpp: + * CCF/CCF/IDL2/SemanticAction.hpp: + * CCF/CCF/IDL2/SemanticGraph.hpp: + * CCF/CCF/IDL2/SemanticAction/Const.hpp: + * CCF/CCF/IDL2/SemanticAction/Factory.hpp: + * CCF/CCF/IDL2/SemanticAction/NumericExpression.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Const.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Const.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Elements.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.hpp: + * CCF/CCF/IDL2/SemanticGraph/Elements.cpp: + * CCF/CCF/IDL2/SemanticGraph/Elements.hpp: + * CCF/CCF/IDL2/SemanticGraph/IntExpression.cpp: + * CCF/CCF/IDL2/SemanticGraph/IntExpression.hpp: + * CCF/CCF/IDL3/Parser.cpp: + * CCF/CCF/CIDL/Parser.cpp: + + Implemented first part of the const expression support. This + includes parser rules, semantic graph types and semantic + actions. Traversal types are still to be implemented. + +Tue Sep 27 06:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp: + Fixed compile problem + + * tools/Config_Handlers/XMLSchema/TypeInfo.tpp: + Removed using std::make_pair, this causes a crash of the BCB6 + compiler. It doesn't seem to cause issues with CBX, but it + seems the code wasn't really needed and now BCB6 is also happy + +Mon Sep 26 11:06:40 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Basic_Deployment_Data.hpp + + Updates for compile problems in Borland. + +Mon Sep 26 11:06:40 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeApplicationManager/ImplementationInfo.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeManager/NodeManager_Impl.cpp + + Cleared up some scoreboard errors. + +Sat Sep 24 20:44:20 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc + * tools/Config_Handlers/Config_Handlers.mpc + + Fixed linking errors. + +Sat Sep 24 08:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc: + Added Id tag + +Sat Sep 24 02:37:20 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * ciao/Deployment.idl + * ciao/Deployment_Core.idl + * ciao/ServerResources.idl + + Enhanced to support RT-CCM feature. + + * DAnCE/NodeApplicationManager/ImplementationInfo.cpp + * DAnCE/NodeApplicationManager/ImplementationInfo.h + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp + * DAnCE/NodeApplicationManager/Containers_Info_Map.h + + Refactor the NodeApplicationManager to populate the correct + node level deployment plan info, while taking into account + of the RT-CCM feature. + + * ciao/NodeApplication_Impl.cpp + * ciao/NodeApplication_Impl.h + + Modified to accomodate the change in IDL files. + + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp + + Fixed these tests to make them run with the modified IDL + files. + + * DAnCE/examples/Hello/descriptors/rt-config-example.csr + * DAnCE/examples/Hello/descriptors/rt-config-example.cdp + + An example descriptor files to describe server resource, + and associate server resources and policy set defs with + the deployment plan. + + NOTE: All above code are tested working fine with the existing + examples. + +Fri Sep 23 10:05:18 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc + * tools/Config_Handlers/Config_Handlers.mpc + + fixes for build problems. + +Thu Sep 22 16:21:12 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/NodeManager/NodeManager_Impl.cpp + + Added error report message from the tool. + + * ciao/Container_Base.cpp + + Cosmetic change. + +Thu Sep 22 14:45:32 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Config_Handlers.mpc + * tools/Config_Handlers/STD_CID_Handler.cpp + * tools/Config_Handlers/STD_CID_Handler.h + * tools/Config_Handlers/STD_CPD_Handler.cpp + * tools/Config_Handlers/STD_CPD_Handler.h + * tools/Config_Handlers/STD_PCD_Handler.cpp + * tools/Config_Handlers/STD_PCD_Handler.h + * tools/Config_Handlers/STD_PC_Intf.cpp + * tools/Config_Handlers/XML_File_Intf.cpp + * tools/Config_Handlers/RT-CCM/SRD_Handler.h + * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc + + Made these files consistent with the new Utils directory. + + * tools/Config_Handlers/Utils/Utils.mpc + * tools/Config_Handlers/Utils/XML_Error_Handler.cpp + * tools/Config_Handlers/Utils/XML_Error_Handler.h + * tools/Config_Handlers/Utils/XML_Helper.cpp + * tools/Config_Handlers/Utils/XML_Helper.h + * tools/Config_Handlers/Utils/XercesString.cpp + * tools/Config_Handlers/Utils/XercesString.h + + Moved common XML utilities to a separate directory. + +Thu Sep 22 13:21:12 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * ciao/CCM_Core.mpc + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc + * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc + + Put the ServerResources.idl into Deployment_stub project. Modified + other MPC project files to reflect this change. + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + + Pass the infoProperty which contains the entire server resource + definitions to each individual child deployment plans. + + * DAnCE/NodeManager/NodeManager_Impl.cpp + * DAnCE/NodeManager/NodeManager_Impl.h + + NodeManager now validates the correctness of the individual local + dpeloyment plan. In particular, it tries to verify that all the + component instances within this child deployment plan have the same + "server_resource_id" assigned. + + * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp + + Added a NodeApplication test case, where multiple components could + be installed one-by-one through a serious of "install" invocations. + + * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp + + Fixed a typo. + + + +Thu Sep 22 12:26:45 CDT 2005 Stoyan spaunov@isis.vanderbilt.edu + + * DAnCE/spec_RepositoryManager/ + * DAnCE/new_RepositoryManager/ + + Added the former, removed the latter. + + +Thu Sep 22 10:50:45 CDT 2005 Stoyan spaunov@isis.vanderbilt.edu + + + * DAnCE/spec_RepositoryManager/HTTP_Client.cpp + * DAnCE/spec_RepositoryManager/HTTP_Client.h + * DAnCE/spec_RepositoryManager/HTTP_Handler.cpp + * DAnCE/spec_RepositoryManager/HTTP_Handler.h + * DAnCE/spec_RepositoryManager/Options.cpp + * DAnCE/spec_RepositoryManager/Options.h + * DAnCE/spec_RepositoryManager/README.txt + * DAnCE/spec_RepositoryManager/RepositoryManager.cpp + * DAnCE/spec_RepositoryManager/RepositoryManager.idl + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp + * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h + * DAnCE/spec_RepositoryManager/RMadmin.cpp + * DAnCE/spec_RepositoryManager/RM_Helper.cpp + * DAnCE/spec_RepositoryManager/RM_Helper.h + * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc + * DAnCE/spec_RepositoryManager/spec_RepositoryManager.ncb + * DAnCE/spec_RepositoryManager/URL_Parser.cpp + * DAnCE/spec_RepositoryManager/URL_Parser.h + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp + * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h + + + Checked in these file and cleaned up *some* of the underlying mess due to previous + mix-ups. Many of the files are new. Some are newer versions of older files. + Previously there were 2 RM directories spec_RepositoryManager and + new_RepositoryManager. Someone had removed the spec* verion and checked in the + wrong files in the new* version (which used to be a non-spec compilent impl). + Apparently on top of that the two directories have been linked somehow! I will + check on what the reason for this is later. + + +Thu Sep 22 13:15:28 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/ExecutionManager/Execution_Manager.cpp: + + Fixed typo. + +Wed Sep 21 15:32:38 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/ExecutionManager/Execution_Manager.cpp + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp + * DAnCE/NodeApplication/NodeApplication.cpp + * DAnCE/RTNodeApplication/NodeApplication_Task.cpp + * DAnCE/RepositoryManager/Repository_Manager.cpp + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp + * ciao/Container_Base.cpp + * ciao/Container_Impl.cpp + * ciao/Servant_Activator.cpp + * ciao/Servant_Impl_T.cpp + * ciao/Swapping_Container.cpp + * ciao/Swapping_Servant_Home_Impl_T.cpp + * ciao/Upgradeable_Context_Impl_T.cpp + * docs/templates/CIAO_Glue_Session_Template.cpp + * examples/Hello/Sender/Sender_exec.cpp + * examples/Swapping/Receiver/Receiver_exec.cpp + * examples/Swapping/Sender/Sender_exec.cpp + * examples/Swapping/Sender/Sender_exec_1.cpp + * examples/Swapping/Sender/Sender_exec_2.cpp + + Fixed numerous emulated exception errors. + + * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp + * DAnCE/ExecutionManager/ExecutionManager_Impl.h + + removed obsolete EM implementation. + +Wed Sep 21 13:34:28 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * tools/Config_Handlers/RT-CCM/test.cpp + + Modified so the output XML file is based on the XSC dom document + instead from the input file directly. + +Tue Sep 20 21:58:23 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/IDL3/ImpliedIDL/All/convert.idl: + + Modified valuetype declartion used as a primary key to + conform to the CCM spec section 61.7.2.1 listing + constraints on primary key types. + +Tue Sep 20 02:25:34 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/Config_Handlers.mpc + + Quick fix for a build problem on Windows. A better solution + will follow when I check in my CIAO build system revamp. + +Tue Sep 20 10:19:46 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/test.cdp + + A test deployment plan file that contains odd constructs. + Used for testing. + +Tue Sep 20 10:07:43 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc + + Added a missing library. + +Tue Sep 20 09:50:28 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + + Modified to kill all NodeApplication processes when the deployment fails. + +Tue Sep 20 09:35:28 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + + Added a missing library. + +Mon Sep 19 16:29:57 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ADD_Handler.cpp + * Common.h + * IDD_Handler.cpp + * IDD_Handler.h + * IDREF_Base.cpp + * IDREF_Base.h + * IRDD_Handler.cpp + * IRDD_Handler.h + * MDD_Handler.cpp + * PSPE_Handler.cpp + * STD_CID_Handler.cpp + * XML_Error_Handler.cpp + + Added some improved error handling/reporting. Much more to come. + + * test.cpp + * RT-CCM/RT-CCM-Handlers.mpc + * RT-CCM/SRD_Handler.cpp + * RT-CCM/SRD_Handler.h + * Config_Handlers.mpc + * DP_Handler.cpp + + Added hooks for parsing ServerResources document into a deployment + plan. + + This is activated by adding an InfoProperty with name + "CIAOServerResources" with a value of a valid CSR file. + + Also enabled parsing of deployRequirements and infoProperties. + +Mon Sep 19 10:55:05 2005 William Otte <wotte@dre.vanderbilt.edu> + + * RACE/Input_Adapters/Base/Input_Adapter.mpc + * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter.mpc + * RACE/Output_Adapters/Base/Output_Adapter.mpc + * RACE/Output_Adapters/Interface/Output_Adapter_Interface.mpc + * RACE/Output_Adapters/XML_Output_Adapter/XML_Output_Adapter.mpc + * RACE/Plan_Analyzer/Component/Plan_Analyzer.mpc + * RACE/Plan_Analyzer/Interface/Plan_Analyzer_Interface.mpc + * RACE/Planner_Manager/Component/Planner_Manager.mpc + * RACE/Planner_Manager/Interface/Planner_Manager_Interface.mpc + * RACE/Planners/Base/Planner.mpc + * RACE/Planners/Interface/Planner_Interface.mpc + * RACE/Planners/SimpleBinPacker/SimpleBinPacker.mpc + * RACE/common/RACE_common.mpc + * tools/Config_Handlers/RT-CCM/CLA_Handler.h + * tools/Config_Handlers/RT-CCM/OC_Handler.cpp + * tools/Config_Handlers/RT-CCM/OR_Handler.cpp + * tools/Config_Handlers/RT-CCM/OR_Handler.h + + Misc fuzz fixes. + +Fri Sep 16 09:54:44 2005 William Otte <wotte@william-ottes-powerbook-g4-15.local> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + + Emulated exception fixes. + +Thu Sep 15 07:29:03 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * TAO/CIAO/examples/Hello/descriptors/NodeManagerMap.dat: Make sure + there's a newline at the end of this file. Thanks to Zachi + Klopman <zklopman@gmail.com> for reporting this. + +Thu Sep 15 11:20:20 2005 CSET William Otte <wotte@dre.vanderbilt.edu> + + + * ciao/Container_Base.cpp + + Fix for compile error on platforms with emulated exceptions. + +Wed Sep 14 13:25:00 CEST 2005 William Otte <wotte@dre.vanderbilt.edu> + + * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter.mpc + + Fix for a library ordering problem. + +Wed Sep 14 11:18:42 2005 CEST William Otte <wotte@william-ottes-powerbook-g4-15.local> + + * tools/Config_Handlers/CIAOServerResources.cpp + * tools/Config_Handlers/CIAOServerResources.hpp + + Removed these from the repo to avoid confusion. + + * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp + + Ported patches from: + Tue Sep 13 17:18:12 CEST 2005 William Otte <wotte@dre.vanderbilt.edu> + + which were made against the wrong file. Thanks to Gan Deng for + pointing this out. + +Wed Sep 14 13:28:14 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * examples/Hello/descriptors/run_NodeDaemons.pl + + Modified the relevant path due to the recent CIAO directory + reorganization. + + * examples/Hello/Sender/Sender.idl + * examples/Hello/Sender_exec.cpp + * examples/Hello/starter.cpp + + Added test for "readonly" attribute. + Fixed a bug of setting attribute through command line options + through the "starter" executable. Also, make the default ior + file name to be "Sender.ior" to make it consistent with the + output generated by DAnCE. Thanks Zacki + <zklopman at gmail dot com> for reporting these. + + * examples/Hello/step-by-step.html + + Updated the documentation to run the example. + +Tue Sep 13 17:18:12 CEST 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/CIAOServerResources.hpp + + Fixes for compile errors in: + . Especially strict C++ compilers + . Windows VC71 (hopefully) + +Tue Sep 13 17:05:31 2005 CEST William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + * DAnCE/NodeManager/NodeManager_Impl.cpp + * DAnCE/NodeManager/NodeManager_Impl.h + * DAnCE/NodeManager/Node_Manager.cpp + * DAnCE/Plan_Launcher/Plan_Launcher.cpp + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h + * ciao/Container_Base.cpp + * ciao/NodeApplication_Impl.cpp + + Folding in some of the error reporting work that I have been + working on for the past couple weeks. Most common deployment + errors are now reported through the plan_launcher. + +Tue Sep 13 16:55:15 CEST 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/IDD_Handler.cpp + * tools/Config_Handlers/MDD_Handler.cpp + * tools/Config_Handlers/PSPE_Handler.cpp + * tools/Config_Handlers/STD_CID_Handler.cpp + + Fixes for compile errors on both: + . 64 bit platforms + . GCC4 + +Tue Sep 13 16:01:35 CEST 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/XMLSchema/Traversal.hpp + * tools/Config_Handlers/XMLSchema/TypeInfo.hpp + * tools/Config_Handlers/XMLSchema/Types.hpp + * tools/Config_Handlers/XMLSchema/Writer.hpp + * tools/Config_Handlers/XSCRT/Elements.hpp + * tools/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp + * tools/Config_Handlers/XSCRT/Parser.hpp + * tools/Config_Handlers/XSCRT/Traversal.hpp + * tools/Config_Handlers/XSCRT/Writer.hpp + * tools/Config_Handlers/XSCRT/XML.hpp + * tools/Config_Handlers/XSCRT/XMLSchema.hpp + + Rolled back Stoyan's changes from the previous commit. The proper + fix for this problem would be to update the include paths in the + affected MPC files, which has the virtue of not breaking + builds on platforms with case-sensitive filesystems. + + * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc + + Updated the include path to include the new config handlers directory. + +Mon Sep 12 17:34:47 CDT 2005 Stoyan Paunov <spaunov@isis.vanderbilt.edu> + + * tools/Config_Handlers/XMLSchema/Traversal.hpp + * tools/Config_Handlers/XMLSchema/TypeInfo.hpp + * tools/Config_Handlers/XMLSchema/Types.hpp + * tools/Config_Handlers/XMLSchema/Writer.hpp + * tools/Config_Handlers/XSCRT/Elements.hpp + * tools/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp + * tools/Config_Handlers/XSCRT/Parser.hpp + * tools/Config_Handlers/XSCRT/Traversal.hpp + * tools/Config_Handlers/XSCRT/Writer.hpp + * tools/Config_Handlers/XSCRT/XML.hpp + * tools/Config_Handlers/XSCRT/XMLSchema.hpp + + Fixed a number of problems related to Will's changes. The XSC_Config_Handler_Tests + project was not compiling. I had the same problem in RepositoryManager. Will had + changed the directory structure, but did not update any of the include paths. + Needless to say there were like 30-40 of those in the XSCRT and XMLSchema directories + +Fri Sep 9 12:35:20 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tools/Config_Handlers/STD_IAD_Handler.cpp + * tools/Config_Handlers/STD_PCD_Handler.cpp + * tools/Config_Handlers/STD_PC_Intf.cpp + + Changed to comform with new refactoring. + +Fri Sep 9 12:32:14 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ciao/CCM_Core.mpc + * ciao/Container_Base.cpp + * ciao/Deployment.idl + * ciao/Deployment_Core.idl + * ciao/Deployment_Data.idl + * ciao/Packaging_Data.idl + + Refactoring to support cidl compilation of deployment structures. + This refactoring should solve compilation errors in the config handlers. + +Wed Sep 7 16:31:12 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ServantHeaderGenerator.cpp: + + Removed generation of export macro in the typedef of the + template class instantiation that defines a facet servant. + Thanks to Ossama Othman <ossama@dre.vanderbilt.edu> for + pointing out that typedefs need not be exported. + +Tue Sep 6 11:39:15 2005 William Otte <wotte@dre.vanderbilt.edu> + + * ciao/Deployment_Data.idl + + Commented out IDL that is unsupported by CIDLC. + + * RACE + + Added IDL for RACE. + +Tue Sep 6 09:58:12 2005 William Otte <wotte@dre.vanderbilt.edu> + + * examples/Hello/descriptors/run_test.pl + + Modified the script to fix the absolute path to the naming service + with a relative path. + +Fri Sep 2 17:38:31 2005 William Otte <wotte@dre.vanderbilt.edu> + + * performance-tests/Protocols/Controller/Controller.mpc + * performance-tests/Protocols/Receiver/Receiver.mpc + * performance-tests/Protocols/Sender/Sender.mpc + * performance-tests/Protocols/common/Protocols.mpc + * tests/CIDL/CodeGen/CodeGen.mpc + + Migrated to modern CIAO base projects. + +Fri Sep 2 16:41:08 2005 William Otte <wotte@dre.vanderbilt.edu> + + * performance-tests/Benchmark/Benchmark.mpc + * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc + * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc + * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc + * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc + + Migrated to modern CIAO projects. + +Fri Sep 2 15:10:43 2005 William Otte <wotte@dre.vanderbilt.edu> + + * docs/tutorial + + Removed the obsolete hello tutorial. + +Fri Sep 2 15:04:00 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tests/tests.mwc + * tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc + * tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc + * tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc + * tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc + * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc + * tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc + * tests/IDL3/Events/Abstract/Abstract.mpc + * tests/IDL3/Events/Regular/Regular.mpc + * tests/IDL3/Homes/Attributes/HomeAttributes.mpc + * tests/IDL3/Homes/Basic/Basic.mpc + * tests/IDL3/Homes/Factory/Factory.mpc + * tests/IDL3/Homes/Finder/Finder.mpc + * tests/IDL3/Homes/Inheritance/Inheritance.mpc + * tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc + * tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc + * tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc + * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc + * tests/IDL3/ImpliedIDL/Events/Events.mpc + * tests/IDL3/ImpliedIDL/Homes/Homes.mpc + * tests/IDL3/Lookup/lookup_test.mpc + + Updated to use dnc ciao base project. + + * tests/RTCCM + + Removed this test. + +Thu Sep 1 10:20:48 2005 William Otte <wotte@dre.vanderbilt.edu> + + CIAO Reorganization. Plese see tag before_ciao_reorg + to obtain the old version. + +Wed Aug 31 15:16:23 2005 William Otte <wotte@dre.vanderbilt.edu> + * DAnCE/Config_Handlers/RT-CCM/CB_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/PM_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/TPL_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/TP_Handler.cpp + + Fixes to satisfy a tempramental Borland compiler. + +Wed Aug 31 13:28:46 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/ADD_Handler.cpp + * DAnCE/Config_Handlers/ADD_Handler.h + * DAnCE/Config_Handlers/IDD_Handler.cpp + * DAnCE/Config_Handlers/IDD_Handler.h + * DAnCE/Config_Handlers/IDREF_Base.cpp + * DAnCE/Config_Handlers/IDREF_Base.h + * DAnCE/Config_Handlers/MDD_Handler.cpp + * DAnCE/Config_Handlers/MDD_Handler.h + * DAnCE/Config_Handlers/STD_CID_Handler.cpp + * DAnCE/Config_Handlers/STD_CID_Handler.h + + Simple refactoring to make the IDREF interface more generic. + + * DAnCE/Config_Handlers/XML_Helper.cpp + * DAnCE/Config_Handlers/XML_Helper.h + + Made empty document creation more generic. + + * DAnCE/Config_Handlers/RT-CCM/CB_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/CB_Handler.h + * DAnCE/Config_Handlers/RT-CCM/CIAOServerResources.cpp + * DAnCE/Config_Handlers/RT-CCM/CIAOServerResources.hpp + * DAnCE/Config_Handlers/RT-CCM/CLA_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/CLA_Handler.h + * DAnCE/Config_Handlers/RT-CCM/OC_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/OC_Handler.h + * DAnCE/Config_Handlers/RT-CCM/OR_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/OR_Handler.h + * DAnCE/Config_Handlers/RT-CCM/PM_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/PM_Handler.h + * DAnCE/Config_Handlers/RT-CCM/PS_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/PS_Handler.h + * DAnCE/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc + * DAnCE/Config_Handlers/RT-CCM/SRD_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/SRD_Handler.h + * DAnCE/Config_Handlers/RT-CCM/TPL_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/TPL_Handler.h + * DAnCE/Config_Handlers/RT-CCM/TP_Handler.cpp + * DAnCE/Config_Handlers/RT-CCM/TP_Handler.h + * DAnCE/Config_Handlers/RT-CCM/input.csr + * DAnCE/Config_Handlers/RT-CCM/test.cpp + + The new RT-CCM handlers. These have yet to be integrated into the + main config_handler path. + + * DAnCE/ciao/CCM_Core.mpc + * DAnCE/ciao/ServerResources.idl + + Updates to the support the RT-CCM Handlers. + + * docs/schema/CIAOServerResources.xsd + + Corrected a few oversights. + +Wed Aug 31 09:49:28 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/XMLSchema/TypeInfo.tpp + + Workaround for a buggy Borland compiler. + +Tue Aug 30 14:33:08 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp + + Slight handcrafting to remove commas from the end of enumerator lists. + +Tue Aug 30 11:59:14 CDT 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/IRDD_Handler.h + * DAnCE/Config_Handlers/PCD_Handler.h + + Fixed a class/struct mismatch. + +Tue Aug 30 11:51:32 CDT 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp + * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp + * DAnCE/Config_Handlers/CIAOServerResources.cpp + * DAnCE/Config_Handlers/CIAOServerResources.hpp + * DAnCE/Config_Handlers/Deployment.cpp + * DAnCE/Config_Handlers/Deployment.hpp + * DAnCE/Config_Handlers/ccd.cpp + * DAnCE/Config_Handlers/ccd.hpp + * DAnCE/Config_Handlers/cdd.cpp + * DAnCE/Config_Handlers/cdd.hpp + * DAnCE/Config_Handlers/cdp.cpp + * DAnCE/Config_Handlers/cdp.hpp + * DAnCE/Config_Handlers/cid.cpp + * DAnCE/Config_Handlers/cid.hpp + * DAnCE/Config_Handlers/cpd.cpp + * DAnCE/Config_Handlers/cpd.hpp + * DAnCE/Config_Handlers/iad.cpp + * DAnCE/Config_Handlers/iad.hpp + * DAnCE/Config_Handlers/pcd.cpp + * DAnCE/Config_Handlers/pcd.hpp + * DAnCE/Config_Handlers/toplevel.cpp + * DAnCE/Config_Handlers/toplevel.hpp + + Fixes a large number of compiler warnings in Borland. + +Thu Aug 25 15:26:25 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/ciao/ServerResources.idl: Added the missing <stacksize> + attribute to ORS_ThreadpoolWithLanes struct. Thanks to Will + Otte for catching this. + +Wed Aug 24 20:41:59 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ExecImplHeaderGenerator.cpp: + * CIDLC/ExecImplSourceGenerator.cpp: + * CIDLC/ServantHeaderGenerator.cpp: + * CIDLC/ServantSourceGenerator.cpp: + + Removed commented-out code. + +Tue Aug 23 20:09:59 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * DAnCE/Old_Config_Handlers/DT_Handler.h: + * DAnCE/RTNodeApplication/RTServer_Impl.h: + * DAnCE/ciao/Container_Base.h: + * DAnCE/ciao/Context_Impl_Base.h: + * DAnCE/ciao/NodeApplication_Impl.h: + + Reordered include directives to make sure all necessary + non-dependent names are parsed before the templates that use + them. Addresses g++ 3.4.x or better compile-time errors. + +Tue Aug 23 19:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/DeploymentManager/DeploymentManager.mpc: + Add dummy_label to all projects, this don't build, this is + the fast way to get the scoreboard green. Already one project + had this in the file. + +Mon Aug 22 10:59:18 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DeploymentManager/DeploymentManager.cidl + * DAnCE/DeploymentManager/DeploymentManager.idl + * DAnCE/DeploymentManager/DeploymentManager.mpc + * DAnCE/DeploymentManager/DeploymentManager_Impl.cpp + * DAnCE/DeploymentManager/DeploymentManager_Impl.h + * DAnCE/DeploymentManager/DeploymentManager_exec_export.h + * DAnCE/DeploymentManager/DeploymentManager_stub_export.h + * DAnCE/DeploymentManager/DeploymentManager_svnt_export.h + + Preliminary skeleton for the DeploymentManager. + +Fri Aug 19 07:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/Config_Handlers/Any_Handler.cpp: + * DAnCE/Config_Handlers/DataType_Handler.cpp: + * DAnCE/Old_Config_Handlers/DT_Handler.cpp: + * DAnCE/ciao/ComponentsC.h: + * ciao/ComponentsC.h: + Updated for AnyTypeCode refactoring + +Tue Aug 16 15:16:10 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * docs/schema/CIAOServerResources.xsd: Changed to define most of + the RT policy details with "element"s instead of "attribute"s + since "attribute"s can be optional. Thanks to Will Otte for + pointing this out. + +Tue Aug 16 09:46:45 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Config_Handlers.mpc + + Moved some changes in from the branch to correct errors from: + Mon Aug 15 12:03:43 2005 William Otte <wotte@dre.vanderbilt.edu> + +Mon Aug 15 12:03:43 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/ADD_Handler.cpp + * DAnCE/Config_Handlers/ADD_Handler.h + * DAnCE/Config_Handlers/CCD_Handler.cpp + * DAnCE/Config_Handlers/CCD_Handler.h + * DAnCE/Config_Handlers/CRDD_Handler.h + * DAnCE/Config_Handlers/DP_Handler.cpp + * DAnCE/Config_Handlers/DP_Handler.h + * DAnCE/Config_Handlers/DP_PCD_Handler.cpp + * DAnCE/Config_Handlers/DP_PCD_Handler.h + * DAnCE/Config_Handlers/IDD_Handler.cpp + * DAnCE/Config_Handlers/IDD_Handler.h + * DAnCE/Config_Handlers/IDREF_Base.cpp + * DAnCE/Config_Handlers/ID_Handler.h + * DAnCE/Config_Handlers/IRDD_Handler.cpp + * DAnCE/Config_Handlers/MDD_Handler.cpp + * DAnCE/Config_Handlers/MDD_Handler.h + * DAnCE/Config_Handlers/PCD_Handler.cpp + * DAnCE/Config_Handlers/PCD_Handler.h + * DAnCE/Config_Handlers/PSPE_Handler.cpp + * DAnCE/Config_Handlers/Req_Handler.cpp + * DAnCE/Config_Handlers/XML_Helper.cpp + * DAnCE/Config_Handlers/XML_Helper.h + * DAnCE/Config_Handlers/XercesString.cpp + * DAnCE/Config_Handlers/XercesString.h + * DAnCE/Config_Handlers/test.cpp + + Checked in support for IDL->XSC->XML mapping. Thanks to Lucas + Seibert <heynonynony at yahoo dot com> for completing this work. + +Mon Aug 15 00:01:01 2005 Boris Kolpackov <boris@kolpackov.net> + + * CIDLC/cidlc.cpp: Made ErrorHandler auto-detach itself + from the stream when it is destroyed. This fixes the + segmentation fault on Solaris in libstdc++ termination code. + +Wed Aug 10 09:39:41 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp + * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp + * DAnCE/Config_Handlers/CIAOServerResources.cpp + * DAnCE/Config_Handlers/CIAOServerResources.hpp + * DAnCE/Config_Handlers/Deployment.cpp + * DAnCE/Config_Handlers/Deployment.hpp + * DAnCE/Config_Handlers/ccd.cpp + * DAnCE/Config_Handlers/ccd.hpp + * DAnCE/Config_Handlers/cdd.cpp + * DAnCE/Config_Handlers/cdd.hpp + * DAnCE/Config_Handlers/cdp.cpp + * DAnCE/Config_Handlers/cdp.hpp + * DAnCE/Config_Handlers/cid.cpp + * DAnCE/Config_Handlers/cid.hpp + * DAnCE/Config_Handlers/cpd.cpp + * DAnCE/Config_Handlers/cpd.hpp + * DAnCE/Config_Handlers/iad.cpp + * DAnCE/Config_Handlers/iad.hpp + * DAnCE/Config_Handlers/pcd.cpp + * DAnCE/Config_Handlers/pcd.hpp + * DAnCE/Config_Handlers/toplevel.cpp + * DAnCE/Config_Handlers/toplevel.hpp + + Regenerated with the latest CVS-head version of XSC. These support + a couple improvements that will aid in optimizing the config + handlers. + +Tue Aug 9 11:55:13 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * docs/imgs/component-basic.png + * docs/imgs/CCM.vsd + + Updated CCM diagram to fix a interface naming error. + + +Tue Aug 9 10:02:13 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * DAnCE/ComponentPackager/README.html: Improved the + documentation to point to the right directory for the Quoter + example. Thanks to Aldo Texier <aldo.texier@oktal.fr> for + reporting this. + +Tue Aug 9 13:11:04 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/RepositoryManager/RepositoryManager.mpc: + + Updated dependencies to reflect the recent name change from + NodeDaemon_stub to NodeManager_stub. + + * DAnCE/RepositoryManager/Repository_Manager.cpp: + + Updated identifier names to match the change from NodeDaemon + to ModeManager. + +Mon Aug 08 22:02:43 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * docs/EnvVars.html + * docs/index.html + * docs/Trace.html + * docs/imgs/DAnCE-Dynamic.png + * docs/imgs/DAnCE-Dynamic.sxd + + Beefed up the CIAO documentation page. These files are + checked in on behalf of Ming. Thanks Friedhelm Wolf + <Friedhelm.wolf at gmx.de> for contributing the DAnCE + interaction diagram. + +Mon Aug 8 18:50:36 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/NodeManager/NAM_Map.h + * DAnCE/NodeManager/NodeManager.idl + * DAnCE/NodeManager/NodeManager.mpc + * DAnCE/NodeManager/NodeManager_Impl.cpp + * DAnCE/NodeManager/NodeManager_Impl.h + * DAnCE/NodeManager/NodeManager_Impl.inl + * DAnCE/NodeManager/NodeManager_stub_export.h + * DAnCE/NodeManager/Node_Manager.cpp + * DAnCE/NodeManager/README + * DAnCE/RTNodeApplication/README + + Changed all references to Node_Daemon to NodeManager to avoid + confusion, since these phrases are used interchangeably. + + * DAnCE/NodeManager/NodeDaemon.idl + * DAnCE/NodeManager/NodeDaemon.mpc + * DAnCE/NodeManager/NodeDaemon_Impl.cpp + * DAnCE/NodeManager/NodeDaemon_Impl.h + * DAnCE/NodeManager/NodeDaemon_Impl.inl + * DAnCE/NodeManager/NodeDaemon_stub_export.h + * DAnCE/NodeManager/Node_Daemon.cpp + + Removed these files to support the change above. + + * DAnCE/examples/BasicSP/descriptors/basicNodeDaemon.pl + * DAnCE/examples/Display/descriptors/basicNodeDaemon.pl + * DAnCE/examples/Hello/step-by-step.html + * DAnCE/examples/Hello/descriptors/run_NodeDaemons.pl + * DAnCE/examples/Hello/descriptors/run_test.pl + * DAnCE/examples/Hello/descriptors/run_test_without_ns.pl + * DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl + * docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl + + Updated these scripts to call NodeManager instead of NodeDaemon. + +Fri Aug 5 11:45:13 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/CIAOServerResources.cpp + * DAnCE/Config_Handlers/CIAOServerResources.hpp + + XSC code generated from CIAOServerResources.xsd for RT-CCM + properties. + + * docs/schema/CIAOServerResources.xsd + + Fixed some namespace errors. + +Fri Aug 05 08:00:08 2005 Simon Massey <sma@prismtech.com> + + * CIAO version 0.4.7 released. + +Wed Aug 3 12:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/Plan_Launcher/Plan_Launcher.mpc: + Corrected order of the libraries to resolve static link + errors + +Tue Aug 2 08:36:40 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + + Possiible fix for borlan build problem. + +Mon Aug 01 16:01:43 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * ChangeLog + + Fixed several incorrect checkin date + +Mon Aug 01 14:55:43 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/new_RepositoryManager/RepositoryManager_Impl.cpp + + Fixed a C4715 warning under MSVC7.1 + +Mon Aug 1 19:39:30 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.mpc: + + Removed duplicate 'after' and 'libs' items, and added the + new export macro definition file (see below) to + Header_Files. + + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h: + + Added export macro to class declaration and include of export + macro definitin file. + + * DAnCE/Plan_Launcher/Plan_Launcher_Impl_Export.h: + + New file to define the export macro for the Plan_Launcher_Impl + library. + +Sun Jul 31 21:56:43 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/new_RepositoryManager/Options.h + + Improved documentation to meet the requirement of Doxygen + +Sun Jul 31 21:45:43 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/new_RepositoryManager/RMadmin.cpp + + Fixed C4101 warnings in MSVC + +Sun Jul 31 21:26:43 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/new_RepositoryManager/RMadmin.cpp + + Updated RMadmin.cpp to merge latest changes + +Fri Jul 29 15:02:43 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp + * DAnCE/examples/Hello/descriptors/run_test_without_ns.pl + + Added a flattened deployment plan and test script which + doesn't use naming service. + + * DAnCE/examples/Hello/descriptors/flattened_deploymentplan.cdp + + Documented the above another available test in the file. + +Fri Jul 29 09:30:43 2005 Nishanth Shanakran <nshankar@dre.vanderbilt.edu> + + * NEWS: + + Added a brief description about Resource Allocation and Control + Engine (RACE). + +Fri Jul 29 06:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc: + Fixed fuzz error + +Thu Jul 28 23:00:11 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/new_RepositoryManager/Options.cpp + * DAnCE/new_RepositoryManager/Options.h + * DAnCE/new_RepositoryManager/README.txt + * DAnCE/new_RepositoryManager/RepositoryManager.cpp + * DAnCE/new_RepositoryManager/RepositoryManager.idl + * DAnCE/new_RepositoryManager/RepositoryManager_Impl.cpp + * DAnCE/new_RepositoryManager/RepositoryManager_Impl.h + * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp + * DAnCE/new_RepositoryManager/ZIP_Wrapper.h + * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc + + Checked in the changes to new_RepositoryManager + +Fri Jul 29 03:52:11 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + + Made is such that Plan_Launcher_Impl library gets generated + and installed. + +Wed Jul 28 15:18:14 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * docs\schema\Modified_Deployment.xsd + + Change the XML element order of IAD to conform to spec + +Wed Jul 27 19:20:14 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * NEWS + + Added news about naming service integration. + +Wed Jul 27 07:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/Config_Handlers/cid.cpp: + * DAnCE/Config_Handlers/cpd.cpp: + * DAnCE/Config_Handlers/iad.cpp: + Explicitly initialise base class + +Wed Jul 27 07:35:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/Config_Handlers/STD_IAD_Handler.h: + Fixed fuzz error + +Tue Jul 26 21:22:45 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h: + + Added 'CIDL_' prefix to the scoped name of the exec impl class's + base class, in the impl class declaration inheritance list. This + file was overlooked when making similar changes to other exec + impl classes in CIAO tests and examples. + +Mon Jul 26 13:54:12 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * docs/schema/cid.xsd + * docs/schema/cpd.xsd + * docs/schema/iad.xsd + * docs/schema/Modified_Deployment.xsd + + Added <xsd:attribute name="href"> for cid/cpd/iad(.xsd) and changed Modified_Deployment.xsd + accordingly.We will need href attribute in the repository manager process. + + * DAnCE/Config_Handlers/iad.cpp + * DAnCE/Config_Handlers/iad.hpp + * DAnCE/Config_Handlers/cid.cpp + * DAnCE/Config_Handlers/cid.hpp + * DAnCE/Config_Handlers/cpd.cpp + * DAnCE/Config_Handlers/cpd.hpp + + Regenerated xsc codes for updated schemas in CIAO/docs/schema/ + + * DAnCE/Config_Handlers/STD_CID_Handler.cpp + * DAnCE/Config_Handlers/STD_CID_Handler.h + * DAnCE/Config_Handlers/STD_CPD_Handler.cpp + * DAnCE/Config_Handlers/STD_CPD_Handler.h + * DAnCE/Config_Handlers/STD_IAD_Handler.cpp + * DAnCE/Config_Handlers/STD_IAD_Handler.h + * DAnCE/Config_Handlers/STD_PC_Intf.cpp + * DAnCE/Config_Handlers/STD_PC_Intf.h + * DAnCE/Config_Handlers/STD_PCD_Handler.cpp + * DAnCE/Config_Handlers/STD_PCD_Handler.h + * DAnCE/Config_Handlers/Config_Handlers.mpc + + Added new handlers for mapping Config_Handlers::PackageConfiguration to Deployment:PackageConfiguration. + Updated Config_Handlers.mpc accordingly + +Tue Jul 26 12:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/new_RepositoryManager/RMadmin.cpp: + Fixed vc71 warnings + +Tue Jul 26 10:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp: + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp: + Added some missing CORBA::string_dup calls, this fixes these + tests on Windows + +Tue Jul 26 07:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeManager/NodeDaemon_Impl.{h,cpp}: + Fixed warning and use doxygen comment style + +Mon Jul 25 22:14:20 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/SizeTypeCalculator.cpp: + + Fixed visitor to handle types declared inside the scope of + an interface, valuetype, or home. Thanks to Friedhelm Wolf + <Friedhelm.wolf@gmx.de> for reporting a CIDL compiler + problem with a struct declared inside an interface. + +Mon Jul 25 18:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/tests/NodeApplicationTest/run_test_ex.pl: + Corrected NodeApplication path + +Mon Jul 25 08:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/tests/NodeApplicationTest/run_test.pl: + * DAnCE/tests/NodeApplicationTest/run_test_ex.pl: + * DAnCE/tests/NodeApplicationTest/run_test_simple.pl: + Made these tests independent of setting of CIAO_ROOT + +Sun Jul 24 07:45:19 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/NodeManager/NodeDaemon_Impl.cpp + + Fixed an exception emulation warning in Debian_Full_Reactor + build. + +Sun Jul 24 07:40:19 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp + + Enhanced error output information a little bit by + adding process ID and thread ID. + + * DAnCE/ciao/Container_Impl.cpp + + Fixed exception emulation warnings in Debian_Full_Reactor + build. + +Sun Jul 24 01:19:21 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp + + Fixed a bug (memory problem) in the plan_launcher which caused + the "tearing down" assembly failure. + + * DAnCE/examples/Hello/descriptors/flattened_deploymentplan.cdp + * DAnCE/examples/BasicSP/descriptors/flattened_deploymentplan.cdp + + Added a UUID tag to the flattened deployment plan. + +Sat Jul 23 23:11:21 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/tests/Minimum/Receiver/Receiver.mpc + * DAnCE/tests/Minimum/Sender/Sender.mpc + + Modified shared library names to fix some linking erros + on build scoreboard. + + * DAnCE/examples/Hello/descriptors/run_test.pl + + Fixed the script so naming service could be started + correctly. + + * DAnCE/examples/Hello/step-by-step.html + + Simple instruction about using naming service. + +Sat Jul 23 14:53:22 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Port_Activator.cpp: + * DAnCE/ciao/Port_Activator.h: + * DAnCE/ciao/Servant_Activator.cpp: + * DAnCE/ciao/Servant_Impl_Base.cpp: + + Added a method in Port_Activator to set the name of + port activator. The port activator is used to activate + the ports of the component. + + Fixed a incorrect delete call in the update_port_activator + function in Servant_Activator.cpp. This will fix the core + dump in the CIAO tests. + + Modified the calling sequence to deactivate ports when we + deactivate the component. + +Sat Jul 23 12:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/ciao/Servant_Impl_Base.cpp: + Added several missing ACE_TRY_CHECK macros. + +Mon Jul 18 22:31:12 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ciao/Container_Impl.cpp + + Fixed some compilation error about using NamingContextEx. + + * DAnCE/examples/Hello/descriptors/run_test.pl + + Fixed this script so naming service will be started + explicitly. Thanks Simon McQueen <sm@prismtech.com> + for pointing the error. + +Mon Jul 18 22:31:12 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ciao/Container_Impl.cpp + * DAnCE/ciao/Container_Impl.h + * DAnCE/ciao/CCM_Core.mpc + * DAnCE/ciao/NodeApplication_Impl.cpp + + Added support for registering components with naming service. + A system deployer could config such capability through XML tag + + * DAnCE/examples/BasicSP/descriptors/flattened_deploymentplan.cdp + * DAnCE/examples/Hello/descriptors/flattened_deploymentplan.cdp + + Added a couple of examples for using naming service by adding + some <ConfigProperty> tag to the deployment plan descriptor. + +Fri Jul 15 23:50:12 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * NEWS: + Updated the NEWS file to include the result of our latest + discussion/plan about DAnCE. + +Fri Jul 15 10:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/NodeManager/NAM_Map.h: + Fixed fuzz error + +Tue Jul 12 00:03:57 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * docs/tutorials/Quoter/Simple/README.html + + Updated some directory information in this file since the quoter example has been + moved to new directory. + +Mon Jul 11 11:44:57 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * TAO/CIAO/DAnCE/examples/Quoter/README.html + * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.cidl + * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.cpp + * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.idl + * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.mpc + * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec.cpp + * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec.h + * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec_export.h + * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_stub_export.h + * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_svnt_export.h + * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.cidl + * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.cpp + * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.idl + * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.mpc + * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp + * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec.h + * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec_export.h + * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_stub_export.h + * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_svnt_export.h + * TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base.idl + * TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base.mpc + * TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_stub_export.h + * TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_svnt_export.h + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.ccd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.cid + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.cpd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Exec.iad + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Stub.iad + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Svnt.iad + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Deployment.xsd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.ccd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.cid + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.cpd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Exec.iad + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Stub.iad + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Svnt.iad + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Domain.cdd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Libraries.iad + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Modified_Deployment.xsd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cdp + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cid + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cpd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.dat + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.pcd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/XMI.xsd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/flattened_deploymentplan.cdp + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/package.tpd + * TAO/CIAO/DAnCE/examples/Quoter/descriptors/runNodeDaemons.pl + * TAO/CIAO/DAnCE/examples/Quoter/images/quoter.jpg + + Removed Quoter example in DAnCE/examples/ directory to avoid duplicate. The orignal + example could be found in CIAO/docs/tutorials/Quoter/Simple. + +Fri Jul 8 17:42:57 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc + * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl + * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_svnt_export.h + * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub_export.h + * docs/tutorials/Quoter/Simple/Broker/Broker.mpc + * docs/tutorials/Quoter/Simple/Broker/Broker.idl + * docs/tutorials/Quoter/Simple/Broker/Broker.cidl + * docs/tutorials/Quoter/Simple/Broker/Broker.cpp + * docs/tutorials/Quoter/Simple/Broker/Broker_exec.h + * docs/tutorials/Quoter/Simple/Broker/Broker_exec.cpp + * docs/tutorials/Quoter/Simple/Broker/Broker_svnt_export.h + * docs/tutorials/Quoter/Simple/Broker/Broker_stub_export.h + * docs/tutorials/Quoter/Simple/Broker/Broker_exec_export.h + * docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc + * docs/tutorials/Quoter/Simple/Distributor/Distributor.idl + * docs/tutorials/Quoter/Simple/Distributor/Distributor.cidl + * docs/tutorials/Quoter/Simple/Distributor/Distributor.cpp + * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.h + * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.cpp + * docs/tutorials/Quoter/Simple/Distributor/Distributor_svnt_export.h + * docs/tutorials/Quoter/Simple/Distributor/Distributor_stub_export.h + * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec_export.h + * docs/tutorials/Quoter/Simple/descriptors/Broker.ccd + * docs/tutorials/Quoter/Simple/descriptors/Broker.cid + * docs/tutorials/Quoter/Simple/descriptors/Broker.cpd + * docs/tutorials/Quoter/Simple/descriptors/Broker_Exec.iad + * docs/tutorials/Quoter/Simple/descriptors/Broker_Stub.iad + * docs/tutorials/Quoter/Simple/descriptors/Broker_Svnt.iad + * docs/tutorials/Quoter/Simple/descriptors/Deployment.xsd + * docs/tutorials/Quoter/Simple/descriptors/Distributor.ccd + * docs/tutorials/Quoter/Simple/descriptors/Distributor.cid + * docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd + * docs/tutorials/Quoter/Simple/descriptors/Distributor_Exec.iad + * docs/tutorials/Quoter/Simple/descriptors/Distributor_Stub.iad + * docs/tutorials/Quoter/Simple/descriptors/Distributor_Svnt.iad + * docs/tutorials/Quoter/Simple/descriptors/Domain.cdd + * docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp + * docs/tutorials/Quoter/Simple/descriptors/Libraries.iad + * docs/tutorials/Quoter/Simple/descriptors/Modified_Deployment.xsd + * docs/tutorials/Quoter/Simple/descriptors/package.tpd + * docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl + * docs/tutorials/Quoter/Simple/descriptors/Stock.cdp + * docs/tutorials/Quoter/Simple/descriptors/Stock.cid + * docs/tutorials/Quoter/Simple/descriptors/Stock.cpd + * docs/tutorials/Quoter/Simple/descriptors/Stock.dat + * docs/tutorials/Quoter/Simple/descriptors/Stock.pcd + * docs/tutorials/Quoter/Simple/descriptors/XMI.xsd + + Created a new directory tutorials to hold multiple tutorial examples, added quoter + to this directory as simple quoter example. Will add a multiple receptacle quoter + example soon. + + +Fri Jul 8 17:13:57 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/examples/Quoter/descriptors/flattened_deploymentplan.cdp + + Updated the plan so that it includes the base libraries as artifact. This + will help ComponentPackager to wrap up everything in the archive. + + +Fri Jul 8 15:49:57 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/ComponentPackager/Base_Packager.h + * DAnCE/ComponentPackager/ComponentPackager.mpc + * DAnCE/ComponentPackager/CPK_Packager.cpp + * DAnCE/ComponentPackager/Package.xsd + * DAnCE/ComponentPackager/pdl.cpp + * DAnCE/ComponentPackager/pdl.hpp + * DAnCE/ComponentPackager/PDL_Handler.cpp + * DAnCE/ComponentPackager/PDL_Handler.h + * DAnCE/ComponentPackager/README.html + * DAnCE/ComponentPackager/Sample.pdl + + Updated ComponentPackager to support XSC, eliminating the coupling with + Old_Config_Handlers.Move the schema for .pdl file from Deployment.xsd to + Package.xsd so that it's independently helpful by itself. + +Fri Jul 8 09:43:57 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp + + Fixed a compile error on Debian Core. + +Thu Jul 7 23:38:32 UTC 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * docs/index.html + + Modofied this page a little bit to include our work in DAnCE. + +Wed Jul 6 17:21:58 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/NodeManager/NodeDaemon_Impl.cpp: + + Fixed incorrect syntax in ACE_THROW macro. + +Tue Jul 5 11:16:44 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeManager/NAM_Map.h + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp + + Fixed some misc fuzz errors. + +Tue Jul 5 16:01:39 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/TypeNameEmitter.cpp: + + Small change to the checkin of + + Mon Jul 4 22:50:17 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + to emit an error message when attempting to set a wstring + attribute from a CCM property value, since wstrings are + not yet supported for this activity. + +Mon Jul 4 22:50:17 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ServantSourceGenerator.cpp: + * CIDLC/TypeNameEmitter.cpp: + * CIDLC/TypeNameEmitter.hpp: + + Created a new code emitter that knows which types CIAO + supports as component attribute types (basic types) and + which it does not (everything else). In the former case, + when DAnCE is assigning attribute values from XML properties - + in set_attributes () - it emits the usual code delegating + the assignment to the specific attribute mutator method + based on a string compare of the given attribute name to + the known attribute names of that component. In the latter + case, it emits an error message, stating that this particular + IDL kind is not supported by CIAO as a component attribute + type. Thanks to Sunil Rottoo <srottoo@airsage.com> for + pointing out that trying to set the value of an unsupported + component attribute type from a DnC property value in XML + caused a crash. + +Mon Jul 4 09:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * CIDLC/Literals.cpp: + * CIDLC/Literals.h:pp: + * CIDLC/ServantHeaderGenerator.cpp: + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h: + * DAnCE/ExecutionManager/ExecutionManager_Impl.h: + * DAnCE/ExecutionManager/Execution_Manager_Impl.h: + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h: + * DAnCE/NodeManager/NodeDaemon_Impl.h: + * DAnCE/RepositoryManager/RepositoryManager_Impl.h: + * DAnCE/ciao/Container_Impl.h: + * DAnCE/ciao/Home_Servant_Impl_T.h: + * DAnCE/ciao/NodeApp_CB_Impl.h: + * DAnCE/ciao/NodeApplication_Impl.h: + * DAnCE/ciao/Servant_Impl_T.h: + * DAnCE/ciao/StandardConfigurator_Impl.h: + * DAnCE/ciao/Swapping_Servant_Home_Impl_T.h: + * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.h: + * ciao/ComponentInstallation_Impl.h: + * ciao/ComponentServer_Impl.h: + * ciao/Container_Impl.h: + * ciao/HomeRegistrar_i.h: + * ciao/Home_Servant_Impl_T.h: + * ciao/Servant_Impl_T.h: + * ciao/ServerActivator_Impl.h: + * ciao/StandardConfigurator_Impl.h: + * docs/templates/CIAO_Glue_Session_Template.h: + * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.h: + * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.h: + * examples/handcrafted/BasicSP_EC2/BMDisplay/BMDisplay_svnt.h: + * examples/handcrafted/BasicSP_EC2/EC/EC_svnt.h: + * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.h: + * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.h: + * performance-tests/Benchmark/LatencyTest.h: + * performance-tests/Benchmark/RoundTripServer/LatencyTest.h: + * tools/Assembly_Deployer/Assembly_Impl.h: + * tools/Assembly_Deployer/Assembly_Service_Impl.h: + * tools/Daemon/Daemon_Impl.h: + * tools/Simple_Component_Server/Simple_Server_i.h: + All servants are reference counted by default, no need anymore to + derive the servant from RefCountServantBase + +Sat Jul 2 12:16:49 2005 Cassia Tatibana <cassia@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp: + * DAnCE/NodeManager/NodeDaemon_Impl.cpp: + + Added CIAO_TRACE messages. + +Fri Jul 1 08:42:27 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeManager/NodeDaemon_Impl.cpp + + Fixed compile errors with emulated exceptions turned on. + +Thu Jun 30 23:34:40 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/tests/Minimum/Receiver/Receiver_exec.cpp: + * DAnCE/tests/Minimum/Receiver/Receiver_exec.h: + * DAnCE/tests/Minimum/Sender/Sender_exec.cpp: + * DAnCE/tests/Minimum/Sender/Sender_exec.h: + + More overlooked changes to exec files corresponding to + CIDL compiler code generation changes of + + Wed Jun 22 23:20:04 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + +Thu Jun 30 12:36:06 2005 William Otte <wotte@atl.lmco.com> + + * DAnCE/Plan_Launcher/DAM_Map.cpp + * DAnCE/Plan_Launcher/DAM_Map.h + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + + Added DAM_Map to the Plan_Launcher directory, as make wouldn't + handle the relative reference properly. + +Thu Jun 30 09:29:24 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/new_RepositoryManager/RMadmin.cpp + * DAnCE/new_RepositoryManager/RepositoryManager.cpp + * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp + * DAnCE/new_RepositoryManager/ZIP_Wrapper.h + * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.cpp + * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.h + + Fixed Doxygen documentation tags, fixed some indenting, + removed tabs. + +Thu Jun 30 09:59:17 2005 William Otte <wotte@atl.lmco.com> + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp + * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h + + Factored out the plan launcher capability into a shared library so + applications can use its functionality. + +Thu Jun 30 04:33:35 2005 ming xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/ComponentPackager/Base_Packager.h + * DAnCE/ComponentPackager/CPK_Packager.cpp + * DAnCE/ComponentPackager/CPK_Packager.h + * DAnCE/ComponentPackager/PDL_Handler.cpp + * DAnCE/ComponentPackager/PDL_Handler.h + * DAnCE/ComponentPackager/Base_Packager.cpp + + Added a release operation for destructor of PDL_Handler;Changed the + definition of input parameter for CPK_Packager::createPackager to const + to indicate it can not be changed + +Thu Jun 30 00:37:35 EDT 2005 Stoyan Paunov <s.paunov@vanderbilt.edu> + + * DAnCE/new_RepositoryManager/RMadmin.cpp + * DAnCE/new_RepositoryManager/RepositoryManager.cpp + * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp + * DAnCE/new_RepositoryManager/ZIP_Wrapper.h + * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.cpp + * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.h + + removed the "@file" comments which apparently confuse Doxygen. + + +Wed Jun 29 17:00:57 2005 Cassia Tatibana <cassia@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/DAM_Map.cpp: + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp: + + Added CIAO_TRACE messages. + +Wed Jun 29 16:38:42 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/ComponentPackager/Base_Packager.h + * DAnCE/ComponentPackager/CPK_Packager.h + * DAnCE/ComponentPackager/CPK_Packager.h + + Changed a couplfe of places to meet the Doxygen test and TChar test for + bin/fuzz.pl + +Wed Jun 29 16:28:52 2005 William Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h + * DAnCE/NodeManager/NAM_Map.cpp + * DAnCE/NodeManager/NAM_Map.h + * DAnCE/NodeManager/NodeDaemon.mpc + * DAnCE/NodeManager/NodeDaemon_Impl.cpp + * DAnCE/NodeManager/NodeDaemon_Impl.h + * DAnCE/NodeManager/Node_Daemon.cpp + * DAnCE/ciao/Deployment.idl + + Merged dance_multiple_assemblies to main. This merge + contains code necessary to be able to deploy multiple assemblies + into a single NodeManager. + +Wed Jun 29 18:09:11 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp: + + Added check for successful opening of target file, which prevents + a crash when the file open is unsuccessful, for example when + write permissions are denied in the directory. Thanks to Will + Otte <wotte@dre.vanderbilt.edu> for pointing out the problem. + +Tue Jun 28 08:55:12 EDT 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/ComponentPackager/Base_Packager.cpp + * DAnCE/ComponentPackager/Base_Packager.h + * DAnCE/ComponentPackager/CPK_Packager.cpp + * DAnCE/ComponentPackager/CPK_Packager.h + * DAnCE/ComponentPackager/ComponentPackager.mpc + * DAnCE/ComponentPackager/Component_Packager.cpp + * DAnCE/ComponentPackager/Modified_Deployment.xsd + * DAnCE/ComponentPackager/PDL_Handler.cpp + * DAnCE/ComponentPackager/PDL_Handler.h + * DAnCE/ComponentPackager/README.html + * DAnCE/ComponentPackager/Sample.pdl + * DAnCE/ComponentPackager/XercesString.cpp + * DAnCE/ComponentPackager/XercesString.h + + Added the files implementing ComponentPackager, for details + please read README.html + +Tue Jun 28 01:03:12 EDT 2005 Stoyan Paunov <s.paunov@vanderbilt.edu> + + * TAO/CIAO/DAnCE/new_RepositoryManager/RMadmin.cpp + * TAO/CIAO/DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp + * TAO/CIAO/DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.cpp + + removed the _O_* flags to ACE_OS::open (); + +Mon Jun 27 16:25:52 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/examples/Swapping/Sender/Sender_exec.cpp: + + Fixed cut-and-paste error. + +Mon Jun 27 07:04:01 2005 Chad Elliott <elliott_c@ociweb.com> + + * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc: + * DAnCE/new_RepositoryManager/README.txt: + + Switch to using the existing zlib and zzip base projects. + +Sun Jun 26 23:53:23 EDT 2005 Stoyan Paunov <s.paunov@vanderbilt.edu> + + * DAnCE/new_RepositoryManager/Modified_Deployment.xsd + * DAnCE/new_RepositoryManager/Options.cpp + * DAnCE/new_RepositoryManager/Options.h + * DAnCE/new_RepositoryManager/README.txt + * DAnCE/new_RepositoryManager/RMadmin.cpp + * DAnCE/new_RepositoryManager/RepositoryManager.cpp + * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp + * DAnCE/new_RepositoryManager/ZIP_Wrapper.h + * DAnCE/new_RepositoryManager/new_RepositoryManager.idl + * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc + * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.cpp + * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.h + * DAnCE/new_RepositoryManager/packages/inconsistent.cpk + * DAnCE/new_RepositoryManager/packages/package.cpk + + Added these files to the head. The files are implementing the repository + manager. + + * DAnCE/new_RepositoryManager/Modified_Deployment.xsd + needed for the retrievePlan function that retrieves the Deployment plan + + * DAnCE/new_RepositoryManager/Options.cpp + * DAnCE/new_RepositoryManager/Options.h + options class for the RMadmin.cpp + + * DAnCE/new_RepositoryManager/README.txt + + * DAnCE/new_RepositoryManager/RMadmin.cpp + a sample client program. You can use it as an example on how to use the RM + + * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp + * DAnCE/new_RepositoryManager/ZIP_Wrapper.h + The ZIP Wrapper class that allows read access to ZIP packages and CCM packages + that have the cpk extension. + + * DAnCE/new_RepositoryManager/RepositoryManager.cpp + * DAnCE/new_RepositoryManager/new_RepositoryManager.idl + * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc + * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.cpp + * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.h + The Repository Manager implementation files + + * DAnCE/new_RepositoryManager/packages/inconsistent.cpk + * DAnCE/new_RepositoryManager/packages/package.cpk + couple of sample packages that I created manually to test the RM. + + +Fri Jun 24 14:36:02 2005 Cassia Tatibana <cassia@dre.vanderbilt.edu> + + * DAnCE/ciao/CIAO_common.h: + + Added definition for CIAO_TRACE. + +Fri Jun 24 14:21:31 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * docs/tutorial/Hello/hello_exec.cpp: + * docs/tutorial/Hello/hello_exec.h: + * examples/Hello/Receiver/Receiver_exec.cpp: + * examples/Hello/Receiver/Receiver_exec.h: + * examples/Hello/Sender/Sender_exec.cpp: + * examples/Hello/Sender/Sender_exec.h: + * performance-tests/Protocols/Receiver/Receiver_exec.cpp: + * performance-tests/Protocols/Receiver/Receiver_exec.h: + * performance-tests/Protocols/Sender/Sender_exec.cpp: + * performance-tests/Protocols/Sender/Sender_exec.h: + * tests/RTCCM/DiffServ/Receiver/Receiver_exec.cpp: + * tests/RTCCM/DiffServ/Receiver/Receiver_exec.h: + * tests/RTCCM/DiffServ/Sender/Sender_exec.cpp: + * tests/RTCCM/DiffServ/Sender/Sender_exec.h: + + More fixes to hand-written executor code to bring the file up + to date with the recent changes in generated code. These were + overlooked in + + Wed Jun 22 23:20:04 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + +Wed Jun 22 23:20:04 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ExecImplHeaderGenerator.cpp: + * CIDLC/ExecImplSourceGenerator.cpp: + * CIDLC/ExecutorMappingGenerator.cpp: + * CIDLC/Literals.cpp: + * CIDLC/Literals.hpp: + * CIDLC/ServantHeaderGenerator.cpp: + * CIDLC/ServantSourceGenerator.cpp: + * DAnCE/examples/Display/NavDisplay/NavDisplay_exec.h: + * DAnCE/examples/Display/RateGen/RateGen_exec.h: + * DAnCE/examples/Hello/Receiver/Receiver_exec.cpp: + * DAnCE/examples/Hello/Receiver/Receiver_exec.h: + * DAnCE/examples/Hello/Sender/Sender_exec.cpp: + * DAnCE/examples/Hello/Sender/Sender_exec.h: + * DAnCE/examples/Quoter/Broker/Broker_exec.cpp: + * DAnCE/examples/Quoter/Broker/Broker_exec.h: + * DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp: + * DAnCE/examples/Quoter/Distributor/Distributor_exec.h: + * DAnCE/examples/Swapping/Receiver/Receiver_exec.cpp: + * DAnCE/examples/Swapping/Receiver/Receiver_exec.h: + * DAnCE/examples/Swapping/Sender/Sender_exec.cpp: + * DAnCE/examples/Swapping/Sender/Sender_exec.h: + * DAnCE/examples/Swapping/Sender/Sender_exec_1.cpp: + * DAnCE/examples/Swapping/Sender/Sender_exec_1.h: + * DAnCE/examples/Swapping/Sender/Sender_exec_2.cpp: + * DAnCE/examples/Swapping/Sender/Sender_exec_2.h: + * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp: + * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h: + * docs/releasenotes/index.html: + + Eliminated generation of the CIAO_GLUE_-prefixed namespace + and replaced it with a namespace constructed from the + composition local name and a CIDL_ prefix. Whereas the + previos namespace was always at global scope, the new one + will be generated inside namespaces mapped from IDL module + declarations, if the composition is declared inside any. + These changes were motivated by an example sent in by + Will Otte <wotte@dre.vanderbilt.edu>, where the composition + was declared inside several nested modules, and the generated + code would not compile. The new namespace encloses + + - the component servant + - the home servant + - the facet servants, if any + - the executor interface in the executor IDL file + - optionally generated executor impl classes + + Minor changes were required to existing executor impl + files as a result of the changes to generated code. + +Wed Jun 22 10:59:00 2005 Gary Maxey <gary.maxey@hp.com> + + * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp + Updated visitor for valuebox support. + +Mon Jun 20 18:10:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/examples/Display/NavDisplayGUI_exec/DetailView_moc.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/MapView_moc.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/NodeItem_moc.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/RootPanel_moc.cpp: + Removed these files, these are generated and shouldn't be in the + archive + +Mon Jun 20 09:29:00 2005 Gary Maxey <gary.maxey@hp.com> + + * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp + * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h + Add visitor for valuebox support. + +Sun Jun 19 20:18:50 2005 Ming Xiong <mxiong@tango.dre.vanderbilt.edu> + + * NEWS: + + Updated NEWS on upcoming support for Component Packaging + +Thu Jun 16 21:46:10 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/examples/Display/descriptors/Modified_Deployment.xsd + * DAnCE/examples/Quoter/descriptors/Modified_Deployment.xsd + * docs/schema/Modified_Deployment.xsd + + Modified the <InstanceDeploymentDescription> element type + to allow having unbounded number of <configProperty> elements. + Thanks Will Chai <willchai@126.com> to report this problem. + +Wed Jun 15 14:46:00 2005 Gautam Thaker <gthaker@atl.lmco.com> + + * DAnCE/examples/Hello/step-by-step.html: + + Fixed a typo regarding name of script "run_NodeDaemons.pl" and + one other sentence fragement. + +Mon Jun 13 13:44:41 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/tests/NodeApplicationTest/run_test_simple.pl: + * DAnCE/tests/NodeApplicationTest/run_test.pl: + * DAnCE/tests/NodeApplicationTest/run_test_ex.pl: + + Fixed a typo. + +Thu Jun 4 14:36:00 UTC 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/examples/Quoter/Distributor/Distributor_exec.h + * DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp + + Fixed a virtual hiding warning reported on WinXP_BCB6_Pro_Dynamic_Debug + +Thu Jun 9 09:31:28 2005 Simon McQueen <sm@prismtech.com> + + * NEWS: + + Updated with late release note submissions. + +Wed Jun 08 08:50:35 2005 Simon McQueen <sm@prismtech.com> + + * CIAO version 0.4.6 released. + +Wed Jun 8 11:21:50 2005 Simon McQueen <sm@prismtech.com> + + * NEWS: + + Updated with release note entries. + +Mon Jun 6 12:33:16 2005 Simon McQueen <sm@prismtech.com> + + * DAnCE/examples/Display/GPS/GPS.mpc: + + Added HUDisplay_DnC_svnt to after tag for project GPS_DnC_svnt + to fix build error on BCB 6 dynamic build. + + +Thu Jun 2 22:56:11 UTC 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/examples/Quoter/README.html + + Added a link to the CoSMIC quoter tutorial page hosted by + Ming Xiong. + + * NEWS + + Updated NEWS file. + +Tue May 31 22:46:06 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ExecutorMappingGenerator.cpp: + * CIDLC/ServantHeaderGenerator.cpp: + * CIDLC/TypeNameEmitter.cpp: + + Eliminated unused arguments. + +Mon May 30 15:22:16 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/XML_File_Intf.h: + * DAnCE/Config_Handlers/DP_Handler.h: + + auto_ptr is changed with ACE_Auto_Ptr, auto_ptr does not have + reset in VC6. + +Mon May 30 17:59:28 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/TypeNameEmitter.cpp: + + Fixed incorrect code generation in *_svnt.cpp file for + attribute assignment of sequence types. Thanks to Sunil Rottoo + <srottoo@adacelcanada.com> for reporting the problem. + +Mon May 30 12:19:42 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Port_Activator_T.cpp: + * DAnCE/ciao/Servant_Activator.cpp: + * DAnCE/ciao/Servant_Impl_Base.cpp: + + Made use of ACE_ENV macros to fix Debian Full Reactor + build errors. + +Fri May 27 23:35:23 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Container_Impl.cpp: + * DAnCE/ciao/Container_Impl.h: + * DAnCE/ciao/Home_Servant_Impl_T.cpp: + * DAnCE/ciao/Home_Servant_Impl_T.h: + + Changed the structure of the utility maps that maintain + the component references, to use "_var" instead of "_ptr" + in order to facilitate effective memory destructions. + +Fri May 27 20:26:33 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * CCF/CCF/CCF.sln: + * CCF/Example/Example.sln: + * CIDLC/CIDLC.sln: + * CCF/CCF/CIDL/CIDL.vcproj: + * CCF/CCF/CodeGenerationKit/CodeGenerationKit.vcproj: + * CCF/CCF/CompilerElements/CompilerElements.vcproj: + * CCF/CCF/IDL2/IDL2.vcproj: + * CCF/CCF/IDL3/IDL3.vcproj: + * CCF/Example/CIDL/LocalExecutorMapping/LocalExecutorMapping.vcproj: + * CCF/Example/CodeGenerationKit/Indentation/IDL/IDL.vcproj: + * CIDLC/CIDLC.vcproj: + + Deleted MSVC solution and project files, these are generated by the + mwc. + +Fri May 27 13:41:20 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Port_Activator.h: + * DAnCE/ciao/Port_Activator_T.cpp: + * DAnCE/ciao/Port_Activator_T.h: + * DAnCE/ciao/Servant_Activator.cpp: + * DAnCE/ciao/Servant_Impl_Base.cpp: + + Added support for deactivating facets and event consumers + when a component is getting deactivated. This fixes + couple of memory leaks in the DAnCE deployment scenarios. + + +Thu May 26 22:55:26 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Servant_Impl_Base.cpp: + + Added code to deactivate facets when component + is getting removed. + +Thu May 26 20:41:04 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Home_Servant_Impl_T.cpp: + * DAnCE/ciao/Servant_Impl_Base.cpp: + * DAnCE/ciao/Servant_Impl_T.cpp: + * DAnCE/ciao/Servant_Impl_T.h: + + Added support for the component servants to inherit + from RefCountServantBase, to allow freeing up of + servants in a more standard and effective manner. + + Added support functions in Servant_Impl_T class to + clean up the component executor memory. + + Added support functions in Home_Servant_Impl_T and + Servant_Impl_Base classes to uninstall components + by executing operations like ccm_remove () in the + right order. + + Finally fixed couple of memory leaks with respect + to cleaning up component servants and component + executors. + + Thanks to Steve Baker <Steve_D_Baker@Raytheon.com> + for reporting the problem. + +Thu May 26 21:09:22 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * tools/Simple_Component_Server/Simple_Component_Server.mpc + + Put an empty IDL_Files segment in the + "Simple_Component_Server" project so the IDL + file is not picked up automatically. Thanks to Will Chai + <willchai@126.com> for reporting this. + + * NEWS + * DAnCE/NEWS + + Merged these two files and deleted the DAnCE/NEWS file, + since these two files serve similar purposes. + +Thu May 26 14:46:53 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeManager/NodeDaemon_Impl.cpp + + Fixed a memory leak which would cause NodeManagers to leak + when destroyed. + +Thu May 26 07:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/examples/Quoter/Broker/Broker.cpp: + Fixed doxygen file tag + +Wed May 25 11:05:05 2005 Ming Xiong <mxiong@dre.vanderbilt.edu> + + * DAnCE/examples/Quoter/Stock_Base/Stock_Base.mpc: + * DAnCE/examples/Quoter/Stock_Base/Stock_Base.idl: + * DAnCE/examples/Quoter/Stock_Base/Stock_Base_svnt_export.h: + * DAnCE/examples/Quoter/Stock_Base/Stock_Base_stub_export.h: + * DAnCE/examples/Quoter/Broker/Broker.mpc: + * DAnCE/examples/Quoter/Broker/Broker.idl: + * DAnCE/examples/Quoter/Broker/Broker.cidl: + * DAnCE/examples/Quoter/Broker/Broker.cpp: + * DAnCE/examples/Quoter/Broker/Broker_exec.h: + * DAnCE/examples/Quoter/Broker/Broker_exec.cpp: + * DAnCE/examples/Quoter/Broker/Broker_svnt_export.h: + * DAnCE/examples/Quoter/Broker/Broker_stub_export.h: + * DAnCE/examples/Quoter/Broker/Broker_exec_export.h: + * DAnCE/examples/Quoter/Distributor/Distributor.mpc: + * DAnCE/examples/Quoter/Distributor/Distributor.idl: + * DAnCE/examples/Quoter/Distributor/Distributor.cidl: + * DAnCE/examples/Quoter/Distributor/Distributor.cpp: + * DAnCE/examples/Quoter/Distributor/Distributor_exec.h: + * DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp: + * DAnCE/examples/Quoter/Distributor/Distributor_svnt_export.h: + * DAnCE/examples/Quoter/Distributor/Distributor_stub_export.h: + * DAnCE/examples/Quoter/Distributor/Distributor_exec_export.h: + * DAnCE/examples/Quoter/descriptors/Broker.ccd: + * DAnCE/examples/Quoter/descriptors/Broker.cid: + * DAnCE/examples/Quoter/descriptors/Broker.cpd: + * DAnCE/examples/Quoter/descriptors/Broker_Exec.iad: + * DAnCE/examples/Quoter/descriptors/Broker_Stub.iad: + * DAnCE/examples/Quoter/descriptors/Broker_Svnt.iad: + * DAnCE/examples/Quoter/descriptors/Deployment.xsd: + * DAnCE/examples/Quoter/descriptors/Distributor.ccd: + * DAnCE/examples/Quoter/descriptors/Distributor.cid: + * DAnCE/examples/Quoter/descriptors/Distributor.cpd: + * DAnCE/examples/Quoter/descriptors/Distributor_Exec.iad: + * DAnCE/examples/Quoter/descriptors/Distributor_Stub.iad: + * DAnCE/examples/Quoter/descriptors/Distributor_Svnt.iad: + * DAnCE/examples/Quoter/descriptors/Domain.cdd: + * DAnCE/examples/Quoter/descriptors/flattened_deploymentplan.cdp: + * DAnCE/examples/Quoter/descriptors/Libraries.iad: + * DAnCE/examples/Quoter/descriptors/Modified_Deployment.xsd: + * DAnCE/examples/Quoter/descriptors/package.tpd: + * DAnCE/examples/Quoter/descriptors/runNodeDaemons.pl: + * DAnCE/examples/Quoter/descriptors/Stock.cdp: + * DAnCE/examples/Quoter/descriptors/Stock.cid: + * DAnCE/examples/Quoter/descriptors/Stock.cpd: + * DAnCE/examples/Quoter/descriptors/Stock.dat: + * DAnCE/examples/Quoter/descriptors/Stock.pcd: + * DAnCE/examples/Quoter/descriptors/XMI.xsd: + + Added a Quoter example for DAnCE + +Wed May 25 11:13:19 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Servant_Impl_Base.cpp: + + Added code to call ccm_remove () on the executor + before removing the component. + + Thanks to Steven Baker <Steven_D_Baker@raytheon.com> for + identifying the problem. + +Wed May 25 10:52:39 2005 Cassia Tatibana <cassia@dre.vanderbilt.edu> + + * DAnCE/examples/Display/HUDisplay.idl: + * DAnCE/examples/Display/HUDisplay.mpc: + * DAnCE/examples/Display/HUDisplay_stub_export.h: + * DAnCE/examples/Display/HUDisplay_svnt_export.h: + * DAnCE/examples/Display/README.html: + * DAnCE/examples/Display/GPS/GPS.cidl: + * DAnCE/examples/Display/GPS/GPS.idl: + * DAnCE/examples/Display/GPS/GPS.mpc: + * DAnCE/examples/Display/GPS/GPSEI.idl: + * DAnCE/examples/Display/GPS/GPS_exec.cpp: + * DAnCE/examples/Display/GPS/GPS_exec.h: + * DAnCE/examples/Display/GPS/GPS_exec_export.h: + * DAnCE/examples/Display/GPS/GPS_stub_export.h: + * DAnCE/examples/Display/GPS/GPS_svnt_export.h: + * DAnCE/examples/Display/GPS/GPS_tracing_exec.cpp: + * DAnCE/examples/Display/GPS/GPS_tracing_exec.h: + * DAnCE/examples/Display/NavDisplay/NavDisplay.cidl: + * DAnCE/examples/Display/NavDisplay/NavDisplay.idl: + * DAnCE/examples/Display/NavDisplay/NavDisplay.mpc: + * DAnCE/examples/Display/NavDisplay/NavDisplay_exec.cpp: + * DAnCE/examples/Display/NavDisplay/NavDisplay_exec.h: + * DAnCE/examples/Display/NavDisplay/NavDisplay_exec_export.h: + * DAnCE/examples/Display/NavDisplay/NavDisplay_stub_export.h: + * DAnCE/examples/Display/NavDisplay/NavDisplay_svnt_export.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/Command.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/DetailView.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/DetailView.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/DetailView_moc.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/MapView.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/MapView.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/MapView_moc.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_exec_export.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_export.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_stub_export.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_svnt_export.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_stub_export.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_svnt_export.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavUnit.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/NavUnit.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/NodeItem.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/NodeItem.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/NodeItem_moc.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/QuitCmd.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/QuitCmd.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/RootPanel.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/RootPanel.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/RootPanel_moc.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/Worker.cpp: + * DAnCE/examples/Display/NavDisplayGUI_exec/Worker.h: + * DAnCE/examples/Display/NavDisplayGUI_exec/trolltech.gif: + * DAnCE/examples/Display/NavDisplayGUI_exec/worldmap1.gif: + * DAnCE/examples/Display/NavDisplayGUI_exec/worldmap1.xpm: + * DAnCE/examples/Display/RateGen/RateGen.cidl: + * DAnCE/examples/Display/RateGen/RateGen.idl: + * DAnCE/examples/Display/RateGen/RateGen.mpc: + * DAnCE/examples/Display/RateGen/RateGen_exec.cpp: + * DAnCE/examples/Display/RateGen/RateGen_exec.h: + * DAnCE/examples/Display/RateGen/RateGen_exec_export.h: + * DAnCE/examples/Display/RateGen/RateGen_stub_export.h: + * DAnCE/examples/Display/RateGen/RateGen_svnt_export.h: + * DAnCE/examples/Display/RateGen/controller.cpp: + * DAnCE/examples/Display/descriptors/Deployment.xsd: + * DAnCE/examples/Display/descriptors/EM.ior: + * DAnCE/examples/Display/descriptors/GPS.ior: + * DAnCE/examples/Display/descriptors/Modified_Deployment.xsd: + * DAnCE/examples/Display/descriptors/NavDisplay.ior: + * DAnCE/examples/Display/descriptors/NavDisplayGUI.ior: + * DAnCE/examples/Display/descriptors/NodeManagerMap.dat: + * DAnCE/examples/Display/descriptors/RateGen.ior: + * DAnCE/examples/Display/descriptors/XMI.xsd: + * DAnCE/examples/Display/descriptors/basicNodeDaemon.pl: + * DAnCE/examples/Display/descriptors/flattened_deploymentplan.cdp: + + Ported the Display example in CIAO to DAnCE. + +Tue May 24 22:23:48 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/examples/Hello/step-by-step.html + + Fixed a typo in the command line option. Thanks to Will Chai + <willchai@126.com> for reporting this. + +Tue May 24 00:23:26 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * CCF/CCF/CIDL/CIDL.mpc: + * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc: + * CCF/CCF/CompilerElements/CompilerElements.mpc: + * CCF/CCF/IDL2/IDL2.mpc: + * CCF/CCF/IDL3/IDL3.mpc: + + Changed the mpc files to use the cidlc.mpb. + +Sun May 22 21:23:48 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp + + Modified the operation from <_ciao_passivate> to <ciao_passivate> + due to my earlier interface changes. + +Sun May 22 11:29:36 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Container_Base.cpp: + + Fixed a memory leak in the container code to + delete the ServantActivator pointer. + +Sat May 21 16:08:48 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ciao/Deployment_Core.idl + + Added <ciao_passivate> operation on the NodeApplication interface, + which is useful for enforce the correct component deactivation + sequence. + + * DAnCE/ciao/Deployment.idl + + Moved the StopError exception definition and put into the + Deployment_Core.idl, since <ciao_passviate> operation needs + such exception declaration. + + * DAnCE/ciao/CCM_Component.idl + + Added <ciao_passivate> operation to the CCM_Object interface. + + * DAnCE/ciao/NodeApplication_Impl.cpp + * DAnCE/ciao/NodeApplication_Impl.h + + Implementation of the above added operation <ciao_passivate>. + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + + Modified to call <ciao_passivate> before calling <destroyApplication>. + + * DAnCE/RepositoryManager/Repository_Manager.cpp + + Modified the Repository_Manager/executor to invoke <start> + separately from invoking finishLaunch. + + * DAnCE/ciao/Servant_Impl_Base.cpp + + Removed the call of <ciao_passivate> from the + Servant_Impl_Base::remove() function since this will be + called separately on the whole assembly, i.e. passivate ALL + components in the assembly before removing components. + + * DAnCE/ciao/Servant_Impl_T.cpp + * DAnCE/ciao/Servant_Impl_T.h + + Changed the operation name from "_ciao_passivate" to + "ciao_passivate", in order to make it to be the implementation + of the <ciao_passivate> operation added on the CCM_Object + interface. + +Sat May 21 14:39:48 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/ciao/Deployment_Core.idl + + Added <ciao_preactivate> and <ciao_postactivate> + operations on the NodeApplication interface, which is useful + for enforce the correct component activation operation + sequence. + + * DAnCE/ciao/NodeApplication_Impl.cpp + * DAnCE/ciao/NodeApplication_Impl.h + + Implemented the above operations. + + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h + + Modified it to call ciao_preactivate and ciao_postactivate + on NodeApplications accordingly + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp + + Modified to disable the "start" while "finishLaunch", since + it is the application developer's control to invoke start + operation in the whole assembly. + + * DAnCE/ciao/Container_Base.cpp + * DAnCE/ciao/Container_Impl.cpp + + Put some debug output into the CIAO_DebugLevel control + + * DAnCE/examples/Hello/Sender/Sender_exec.cpp + + Cosmetic changes. + +Tue May 17 20:49:48 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/IDL3/ImpliedIDL/All/all.mpc: + * tests/IDL3/ImpliedIDL/All/convert.idl: + * tests/IDL3/ImpliedIDL/All/pass_through.idl: + * tests/IDL3/ImpliedIDL/All/include.idl: + * tests/IDL3/ImpliedIDL/All/README: + + New files comprising a test for the tao_idl3_to_idl2 + executable. The test executes tao_idl3_to_idl2 on the + listed IDL files, then executes the TAO IDL compiler on + the resulting IDL files. The resulting C++ code is compiled, + and if there are no errors or warnings in this last step, + the test is a success. + +Tue May 17 07:51:47 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * DAnCE/Old_Config_Handlers/Process_Element.h: + * DAnCE/Old_Config_Handlers/Process_Element.cpp: + + Fixed unresolved symbol link error. + +Mon May 16 21:29:49 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * DAnCE/Old_Config_Handlers/Process_Element.cpp: + * DAnCE/ciao/Home_Servant_Impl_T.cpp (remove_component): + + Fixed syntax errors. + +Mon May 16 12:06:51 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/XSCRT/Elements.hpp (~IndentityProvider): + * DAnCE/Old_Config_Handlers/Process_Element.h (Process_Function): + * DAnCE/Old_Config_Handlers/Process_Element.cpp + (~Process_Function): + * tests/RTCCM/Priority_Test/Controllers/Pulser.h (Pulse_Handler): + * tests/RTCCM/Priority_Test/Controllers/Pulser.cpp + (~Pulse_Handler): + + Added missing virtual destructor. Fixes g++ 4.0 "class with + virtual functions but no virtual destructor" warnings. + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp (mode): + + Fixed "non-local variable uses anonymous type" g++ 4.0 warning. + + * DAnCE/ciao/Home_Servant_Impl_T.cpp (remove_component): + * tools/RTComponentServer/RTConfig_Manager.cpp + (find_threadpool_by_name): + * tools/XML_Helpers/RTConfig_Handlers.cpp (add_threadpoollane): + (add_priorityband): + + Fixed "variable may be used uninitialized" warnings. + + * tools/Assembly_Deployer/Assembly_Deployer.cpp + (teardown_assembly): + + Fixed format specifier mismatch. + +Mon May 16 11:27:30 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIAO-INSTALL.html: + + Added line to table about availability of binaries for MacOS + and Solaris. + +Sat May 14 06:12:44 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * CIAO version 0.4.5 released. + +Thu May 12 10:20:55 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * Updated the COPYING file to clarify some ambiguity about + proprietary usage of CIAO. + +Tue May 10 21:12:47 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * docs/releasenotes/dance.html: Updated this page to clearly + point out which OMG D&C specification DAnCE implements. + Thanks to Gary Duzan <gduzan@bbn.com> for requesting this. + +Tue May 10 07:49:47 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * DAnCE/examples/Hello/descriptors: Changed the name of + ruNodeDaemons.pl to run_NodeDaemons.pl. Thanks to Arno Wilhelm + <arno.wilhelm@profile.co.at> for reporting this. + +Sun May 8 11:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/CIDL/CodeGen/CodeGen.mpc: + Removed requires+=cidl + +Sat May 7 19:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc: + Removed requires+=cidl for the NodeAppTest_RoundTrip_svnt project. + It should not be there. Thanks for Jaiganesh B + <jai@dre.vanderbilt.edu> for finding out that this caused the + problems in the gcc4 build + +Fri May 6 08:15:43 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc: + + Changed base project lists and added explicit lists (sometimes + empty) for header and inline files. + +Wed May 4 19:27:01 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp: + + Fixed typo in generated code - changed "provides_" prefix + in component facet access operation to the correct + "provide_". Thanks to Don Busch <busch_d@ociweb.com> for + pointing out the mistake. + +Tue May 03 22:42:47 2005 Nanbor Wang <nanbor@gauss.txcorp.com> + + * NEWS: Updated news on upcoming real-time extension on Gan Deng's + behalf. + +Tue May 3 13:05:44 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ServantSourceGenerator.cpp: + + Changed the generated string (used for object id) which is passed + to the port activator constructor and to generate_reference() to + be a concatentation of the component instance name and the port + name, to ensure uniqueness in any use case. + +Mon May 2 07:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/RTComponentServer/RTConfig_Manager.cpp: + * tools/Assembly_Deployer/Assembly_Impl.cpp: + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp: + * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp: + * DAnCE/ciao/Dynamic_Component_Servant_T.cpp: + Fixed gcc 4 warnings + +Sat May 1 03:11:17 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * ciao/tools/Simple_Component_Server/Simple_Component_Server.cpp: + + Made a change to fix compile errors. + +Sat Apr 30 20:02:10 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * ciao/Container_Impl.cpp: + + Made a change to fix compile errors. + +Sat Apr 30 09:58:05 2005 Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu> + + * ciao/Container_Base.cpp: + * ciao/Container_Base.h: + * ciao/Home_Servant_Impl_T.cpp: + * ciao/Home_Servant_Impl_T.h: + + Made changes to the old CIAO infrastructure to support + passing and storing of the component instance name from the + descriptor XML file and into the component instance. + +Thu Apr 28 14:50:05 2005 Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Dynamic_Component_Servant_T.cpp: + * DAnCE/ciao/Dynamic_Component_Servant_T.h: + * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp: + * DAnCE/ciao/Swapping_Servant_Home_Impl_T.h: + + Made changes to the CIAO infrastructure that allows the + swapping capability to make use of the component instance + name when we create object references. + +Wed Apr 27 11:15:12 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/ciao/Container_Base.cpp: + * DAnCE/ciao/Container_Base.h: + * DAnCE/ciao/Container_Impl.cpp: + * DAnCE/ciao/Deployment_Core.idl: + * DAnCE/ciao/Home_Servant_Impl_T.cpp: + * DAnCE/ciao/Home_Servant_Impl_T.h: + * DAnCE/ciao/Servant_Impl_Base.cpp: + * DAnCE/ciao/Servant_Impl_Base.h: + + Some cosmetic changes and changes by Jaiganesh Balasubramanian + <jai@dre.vanderbilt.edu> to support the passing and storing of + the component instance name (from the descriptor XML file) in + the component instance. Also removed the gen_UUID() static + method from class Servant_Impl_Base, since it is no longer + used. + + * CIDLC/ServantHeaderGenerator.cpp: + * CIDLC/ServantSourceGenerator.cpp: + + Changes to servant code generation corresponding with the + changes above. + +Tue Apr 26 18:14:01 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * docs/releasenotes/index.html: + + Updated CIDL compiler documentation, and added item about the + existing IDL3-to-IDL2 coverter. + + * tools/IDL3_to_IDL2/README: + + Updated documentation file. + +Tue Apr 26 11:34:52 2005 Nanbor Wang <nanbor@tesla.txcorp.com> + + * docs/schema/CIAOServerResources.xsd: Changed some of the XML + element and type names to be more consistent with the rest of + RTCORBA spec that the following new IDL file follows. + + * DAnCE/ciao/ServerResources.idl: First cut of server + configuration information set in IDL. + +Mon Apr 25 11:07:28 2005 Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Container_Base.cpp: + + Fixed compiler warnings in the Debian Full_Reactor build. + +Sun Apr 24 02:47:22 2005 Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Container_Base.cpp: + * DAnCE/ciao/Container_Base.h: + * DAnCE/ciao/Swapping_Container.cpp: + * DAnCE/ciao/Swapping_Container.h: + + Made changes to fix compile errors. + +Sat Apr 23 13:54:10 2005 Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu> + + * DAnCE/example/Swapping/Sender/Sender_exec_1.cpp: + + Made a modification to the example to reflect changes made + in the infrastructure code. + +Sat Apr 23 13:43:22 2005 Jai Balasubramanian <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/Container_Base.cpp: + * DAnCE/ciao/Servant_Impl_Base.cpp: + * DAnCE/ciao/UpgradeableContext.idl: + * DAnCE/ciao/Upgradeable_Context_Impl_T.cpp: + * DAnCE/ciao/Upgradeable_Context_Impl_T.h: + + Made some changes to the CIAO infrastructure to efficiently + handle updating the facets when the component is swapped. + +Thu Apr 21 18:10:13 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/examples/Hello/Hello_Base/Hello_Base.idl: + * DAnCE/examples/HelloHello_Base/Hello_Base.mpc: + * DAnCE/examples/HelloReceiver/Receiver.idl: + * DAnCE/examples/HelloReceiver/Receiver.mpc: + * DAnCE/examples/HelloSender/Sender.idl: + * DAnCE/examples/HelloSender/Sender.mpc: + + Made cosmetic changes to all files, and added explicit + specification of header and inline files in MPC + projects. Also added -Sc command line option to the + IDL compiler, to suppress generation of the TIE + classes. + +Thu Apr 21 17:40:12 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CCF/CCF/CIDL/Traversal/Elements.cpp: + * CCF/CCF/IDL3/Traversal/EventType.cpp: + + Removed these files, since they contain nothing but + empty namespaces. + + * CCF/CCF/CIDL/CIDL.vcproj: + * CCF/CCF/IDL3/IDL3.vcproj: + + Removed the above files from the appropriate projects. + +Thu Apr 21 14:31:21 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/ExecutionManager/ExecutionManager.mpc: + * DAnCE/Plan_Launcher/Plan_Launcher.mpc: + + Changes to eliminate some warnings in the Debian LInux build. + +Thu Apr 21 09:06:58 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * Added UUID generation for the object id when creating + event consumers, similar to that already added for facets. + This change eliminates the error of repeated connection + to the same event consumer instance when multiple + instances and connections are intended. Thanks to + Steve Baker <steven_d_baker@raytheon.com> for reporting + the problem. + +Thu Apr 21 09:04:32 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/examples/Hello/descriptors/TestNodeManagerMap.dat + * DAnCE/examples/Hello/descriptors/run_test.pl + + Added a NodeManagerMap specific to the test and changed the ports + that the node managers invoked by the test listen on to avoid + test failures. + +Wed Apr 20 16:14:26 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/CIAOServerResources.xsd + + Fixed syntax and semantic errors. + +Wed Apr 20 12:43:53 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/examples/Hello/descriptors/run_test.pl: + + Not all the test platforms has CIAO_ROOT environment variable + defined. Changed that dependency to ACE_ROOT in the script. + +Wed Apr 20 13:11:28 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ServantSourceGenerator.cpp: + + Added full scoping to a generated method call on + Servant_Impl_Base, to eliminate a warning from the + Borland compiler. + +Wed Apr 20 13:05:23 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp + * DAnCE/RepositoryManager/Update_Plan.cpp + + Fixed compile errors in Borland. + +Wed Apr 20 08:09:17 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ciao/Servant_Impl_T.cpp + + Fixed a compile error with emulated exceptions. + +Wed Apr 20 08:03:23 2005 CDT Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/DP_Handler.cpp + + Silenced some compile errors in VC6. + +Tue Apr 19 23:41:02 2005 CDT Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/XML_File_Intf.cpp + + Silenced some compile errors in VC6. + +Tue Apr 19 16:46:00 2005 CDT Gan Deng <dengg@dre.vanderbilt.edu> + + * CIAO-INSTALL.html + + Fixed this page to direct people where to download CIDLC. + +Tue Apr 19 17:33:55 2005 Nanbor Wang <nanbor@tesla.txcorp.com> + + * docs/schema/ServerResourceUsage.txt: + * docs/schema/CIAOServerResources.xsd: Added the first draft + schema for DAnCE RT extension, and a file to document how I + foresee the extension can be used. + +Tue Apr 19 12:16:00 2005 CDT Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/IDREF_Base.h + + Fixed a compile error on VC71. + +Mon Apr 18 12:50:51 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ServantSourceGenerator.cpp: + + Added '.in ()' to some _var type arguments in generated code. + +Mon Apr 18 08:38:14 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ServantSourceGenerator.cpp: + + Changed all instances of 'FALSE' to 'false'. + +Sun Apr 17 21:57:52 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ServantSourceGenerator.cpp: + + Removed unnecessary _narrow() and local variable from generated + event push operations. + +Sun Apr 17 16:05:57 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/examples/Swapping/Sender/Sender_exec_1.cpp + * DAnCE/examples/Swapping/Sender/Sender_exec_2.cpp + + Fixed a compile error on platforms using emulated exceptions. + +Sun Apr 17 12:46:51 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * ciao/CCM_Event.idl: + * DAnCE/ciao/CCM_Event.idl: + + Added operation ciao_is_substitutable() to EventConsumerBase, + so we can check if there is an inheritance relationship + when a base class event consumer is passed to the subscribe() + operation for a derived eventtype. Thanks to Boris Kolpackov + <boris@dre.vanderbilt.edu> for suggesting this approach. + + * CIDLC/Literals.cpp: + + Cosmetic changes. + + * CIDLC/ServantHeaderGenerator.cpp: + * CIDLC/ServantSourceGenerator.cpp: + + Added code generation to take advantage of the new + EventConsumerBase operation described above. + +Sat Apr 16 20:17:38 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/examples/Hello/descriptors/run_test.pl: + + Fixed some perl errors. + +Sat Apr 16 18:31:40 2005 CDT Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/ExecutionManager.mpc + + Removed typecodefactory fromt the base projects. + +Sat Apr 16 17:24:40 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp: + + Added a missing include file. + +Sat Apr 16 17:22:42 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/examples/Hello/descriptors/run_test.pl: + + Added code to ensure killing open processes on failure. + +Sat Apr 16 16:38:09 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/examples/Hello/descriptors/run_test.pl: + + Added perl script running all the steps for deploying an application. + +Sat Apr 16 16:10:10 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp: + + Added two command line options to plan_launcher to easily use in + scripts. Now the launch and destruction of the application can be + done in two steps. + +Sat Apr 16 15:00:31 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/examples/Hello/step-by-step.html: + + Fixed typo on the documentation. + +Fri Apr 15 12:54:46 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Req_Handler.h + + Fixed a compile error on builds using -pendantic. + +Fri Apr 15 10:46:56 CDT 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/ciao/Container_Impl.cpp + + Added a condition to check whether call standard configurator. + + * DAnCE/RepositoryManager/Repository_Manager.cpp + + Modified to make it work by using ORBDebugLevel. + + * DAnCE/examples/Hello/Sender/Sender_exec.cpp + + Fixed a warning message. + + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp + + This should fix the warning message on Dynamic_Hash_Op_Lookup + build. + +Thu Apr 14 10:54:56 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp + + Fixed a warning due to ambiguous conversion. + +Thu Apr 143 10:21:58 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/examples/Hello/Sender/Sender.idl + * DAnCE/examples/Hello/Sender/Sender_exec.cpp + * DAnCE/examples/Hello/Sender/Sender_exec.h + * DAnCE/examples/Hello/Sender/starter.cpp + * DAnCE/examples/Hello/descriptors/Hello.cid + * DAnCE/examples/Hello/descriptors/Receiver.cid + * DAnCE/examples/Hello/descriptors/Sender.cid + + Modified the Hello example to showcase the feature of setting + attributes through XML. "string" and "long" type attributes + are put into the test. + + * DAnCE/ciao/Container_Impl.cpp + + Cleaned up a little bit. + +Thu Apr 14 10:14:44 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + + Added 'naming' to the list of base projects to fix a compile + error + +Thu Apr 14 02:02:13 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/Execution_Manager.cpp + * DAnCE/ciao/Context_Impl_T.cpp + * DAnCE/ciao/Dynamic_Component_Servant_Base.h + * DAnCE/ciao/Dynamic_Component_Servant_T.cpp + * DAnCE/ciao/Dynamic_Component_Servant_T.h + * DAnCE/ciao/Home_Servant_Impl_T.cpp + * DAnCE/ciao/Servant_Impl_T.cpp + * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp + * DAnCE/ciao/Upgradeable_Context_Impl_T.cpp + + Fixed a number of mistakes with emulated exceptions. + +Wed Apr 13 18:55:58 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/ciao/CCM_Component.idl + * DAnCE/ciao/Container_Impl.cpp + * DAnCE/ciao/Servant_Impl_Base.cpp + * DAnCE/ciao/Servant_Impl_Base.h + + Added support for configuring component attributes through + XML <configProperty> tags. + + * DAnCE/RepositoryManager/Update_Plan.cpp + * DAnCE/RepositoryManager/Update_Plan.h + + Fixed to make sure correct component attributes are + populated. Thanks Jai <jai@dre.vanderbilt.edu> for the fix. + +Wed Apr 13 15:14:58 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/ExecutionManager.mpc: + * DAnCE/NodeApplication/NodeApplication.mpc: + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc: + * DAnCE/Plan_Launcher/Plan_Launcher.mpc: + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc: + + Deleted typecodefactory base project to the mpc files. + +Wed Apr 13 11:39:58 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/ExecutionManager.mpc: + * DAnCE/NodeApplication/NodeApplication.mpc: + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc: + * DAnCE/Plan_Launcher/Plan_Launcher.mpc: + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc: + + Added typecodefactory base project to the mpc files. + +Tue Apr 12 17:12:35 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/ciao/Servant_Impl_Base.cpp: + * DAnCE/ciao/Servant_Impl_Base.h: + * ciao/Servant_Impl_Base.cpp: + * ciao/Servant_Impl_Base.h: + + Added a static method to generate a UUID. This method is + called by the generated servant class to create unique + object ids for port object references. Thanks to Steve + Baker <steven_d_baker@raytheon.com> for reporting the + problem of connecting to facets on multiple instances + of the same component type. + + * CIDLC/ServantSourceGenerator.cpp: + + Changed code generation for provide_*_i() to use the + new method described above. + +Tus Apr 12 16:04:21 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/Old_Config_Handlers/IAD_Handler.cpp + + Modified to ignore the <dependsOn> tag, since this might + cause a problem where multiple _svnt or multiple _exec + libraries to be specified as implArtifacts of a component + type. + +Tue Apr 12 14:35:58 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * CIAO-INSTALL.html + + Updated to include Xerces information. Also cleaned up the + file a bit and made it XHTML compliant. + +Tue Apr 12 11:56:26 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ciao/Dynamic_Component_Activator.cpp + * DAnCE/ciao/Servant_Activator.cpp + * DAnCE/ciao/Servant_Impl_Base.cpp + + Fixed some more compile errors with emulated exceptions. + +Tue Apr 12 11:11:41 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ciao/Servant_Impl_Base.cpp + + Fixed some compile errors with emulated exceptions. + +Mon Apr 11 23:54:21 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/NodeApplicationManager/ImplementationInfo.cpp + + Fixed a bug where multiple "_svnt" and "_exec" libs for + a given MonolithicDeploymentDescription could cause + chaos while pupulating ImplementationInfo stuct. This + fix now only consides the first "_svnt" and "_exec" + libs, and ignore remaining ones. A better solution will + be enforcing any MonolithicDeploymentDescription could + only have exactly one _svnt and one _exec lib. This + will be achieved through the flattened deployment plan. + +Mon Apr 11 17:56:22 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc: + * DAnCE/ExecutionManager/ExecutionManager.mpc: + * DAnCE/NodeApplication/NodeApplication.mpc: + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc: + * DAnCE/Plan_Launcher/Plan_Launcher.mpc: + + Added typecodefactory to the list of project files. + +Mon Apr 11 13:43:47 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp + + Corrected the ExecutionManager narrow operation. + +Mon Apr 11 08:29:50 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * DAnCE/ciao/Container_Impl.cpp: + * DAnCE/ciao/Dynamic_Component_Activator.cpp: + * DAnCE/ciao/Dynamic_Component_Activator.h: + * DAnCE/ciao/NodeApplication_Impl.cpp: + * DAnCE/ciao/NodeApplication_Impl.h: + * DAnCE/ciao/Swapping_Container.cpp: + * DAnCE/ciao/Swapping_Container.h: + + Fixed various glitches with environment variables, unused variables, + and ACE_TRY macros. + +Mon Apr 11 07:12:54 CDT 2005 Will Otte <wotte@dre.vanderbit.edu> + + * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp + + Fixed a compile error. + +Sun Apr 10 18:44:22 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp + * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp + * DAnCE/Config_Handlers/ccd.cpp + * DAnCE/Config_Handlers/ccd.hpp + + Regenerated the handlers to reflect the changes in the previous + commit. + +Sat Apr 09 18:35:23 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/Basic_Deployment_Data.xsd + * docs/schema/ccd.xsd + + Updated schemas to reflect changes made to Modified_Deployment + in conformance to the spec. + +Sat Apr 09 17:15:23 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + + Changed the after clause to point to the XSC_Config_Handlers + instad of the old config handlers. + +Sat Apr 09 23:59:40 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp + + Fixed a bug where duplicated CORBALOC specified in the + NodeManagerMap could cause undetected exception. This fix + will allow such duplication IOR error to be detected explicitly + and error message will be printed out. Thanks Steve Baker + <Steven_D_Baker@raytheon.com> for report this bug. + +Fri Apr 8 14:30:52 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/cdp.cpp + * DAnCE/Config_Handlers/cdp.hpp + + Regenerated handlers to reflect schema changes. + + * docs/schema/cdp.xsd + + Updated schema to allow 0 on the realizes element. + +Fri Apr 8 13:33:24 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ServantHeaderGenerator.cpp: + * CIDLC/ServantSourceGenerator.cpp: + + Added backend support for attribute exceptions. + +Thu Apr 07 14:49:40 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/examples/Hello/descriptors/basicNodeDaemon.pl + * DAnCE/examples/Hello/descriptors/runNodeDaemons.pl + + Removed the first file and added the second file since + the name of the first file doens't make any sense. These + two files are the same. + + * DAnCE/examples/BasicSP/descriptors/flattern_deploymentplan.cdp + * DAnCE/examples/BasicSP/descriptors/flattened_deploymentplan.cdp + + Removed the first file and added the second file since + the name of the first file contained a typo. + + * DAnCE/examples/Hello/descriptor/Modified_Deployment.xsd + + Changed the <deploymentPlan> tag to allow zero <realizes> + tag in the XML. + + * DAnCE/Config_Handlers/DP_Handler.cpp + * DAnCE/Config_Handlers/cdp.cpp + * DAnCE/Config_Handlers/cdp.hpp + + Modified handlers to accomodate the above change. + + * DAnCE/examples/Hello/descriptors/flattened_deploymentplan.cdp + + Added this file in, which is a flattened deployment plan for + for the Hello example. I will come back to remove the <realizes> + tag some time later since it is useless. + + * DAnCE/examples/Hello/step-by-step.html + + Bring the documentation page up to date. + +Wed Apr 06 11:12:40 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/examples/BasicSP/descriptors/flattern_deploymentplan.cdp + + Cleaned this a little bit. Removed most <SupportedType> and + <port> tags from the <realizes> tag. + +Wed Apr 06 10:30:40 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/examples/BasicSP/descriptors/NodeManagerMap.dat + + Modified virtual node names to make them more meaningful. + + * DAnCE/examples/BasicSP/descriptors/DeploymentPlan.cdp + + Added this file, which is a copy of the old HUDisplay.cdp + file. This is the old version deployment plan XML metadata. + + * DAnCE/examples/BasicSP/descriptors/BasicSP.cdp + * DAnCE/examples/BasicSP/descriptors/HUDisplay.cdp + + Removed these two files since they are redundant. The + former one now is "flattern_deploymentplan.cdp", + the latter one is "DeploymentPlan.cdp". + + * DAnCE/examples/BasicSP/descriptors/flattern_deploymentplan.cdp + + Fixed this file, which contains a invalid connection, i.e., + connecting a EventPublisher to a SimplexReceptacle. The root + of this problem is that "data_read" is a Facet instead of + a EventPublisher. + +Tue Apr 05 19:29:40 2005 Gan Deng <dengg@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.mpc + + Fixed project dependency. + + * DAnCE/ciao/Container_Impl.cpp + + Fixed a compilation error caused by specifying a + wrong exception name. + + * DAnCE/examples/BasicSP/descriptors/NodeManagerMap.dat + + Fixed a wrong string to specify the vitual node name. + +Tue Apr 5 14:37:16 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Any_Handler.cpp + + Updated Gary's fix to work in Borland 6. + +Tue Apr 5 14:13:10 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Any_Handler.cpp + + Incorporated a fix to the Any handler from Gary Duzan. + +Tue Apr 5 11:34:32 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp + * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp + * DAnCE/Config_Handlers/Deployment.cpp + * DAnCE/Config_Handlers/Deployment.hpp + * DAnCE/Config_Handlers/ccd.cpp + * DAnCE/Config_Handlers/ccd.hpp + * DAnCE/Config_Handlers/cdd.cpp + * DAnCE/Config_Handlers/cdd.hpp + * DAnCE/Config_Handlers/cdp.cpp + * DAnCE/Config_Handlers/cdp.hpp + * DAnCE/Config_Handlers/cid.cpp + * DAnCE/Config_Handlers/cid.hpp + * DAnCE/Config_Handlers/cpd.cpp + * DAnCE/Config_Handlers/cpd.hpp + * DAnCE/Config_Handlers/iad.cpp + * DAnCE/Config_Handlers/iad.hpp + * DAnCE/Config_Handlers/pcd.cpp + * DAnCE/Config_Handlers/pcd.hpp + * DAnCE/Config_Handlers/toplevel.cpp + * DAnCE/Config_Handlers/toplevel.hpp + * DAnCE/Config_Handlers/XMLSchema/Types.hpp + + New version of the generated XSC handlers fixing the following problems: + - Use ACE_TCHAR instead of char as the character type + - Export macros for the generated classes. + - Borland 6 support + - Misc VC6 warnings. + +Sun Apr 3 23:52:50 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * examples/BasicSP/descriptors/flattern_deploymentplan.cdp + + Fixed a mistake in the descriptor. + +Sun Apr 3 18:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Container_Base.h: + * ciao/ServerActivator_Impl.h: + Added missing include of ace/Hash_Map_Manager_T.h + +Sat Apr 02 13:12:40 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/examples/BasicSP/README.html: Brought the documentation a + bit more up-to-date. + +Sat Apr 2 13:06:02 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/ciao/Container_Base.cpp: Added more debug print out + statements in install_home method. + +Sat Apr 02 11:45:52 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> + + * DAnCE/Plan_Launcher/Plan_Launcher.mpc: + * DAnCE/Plan_Launcher/Plan_Launcher.cpp: Merged from xsc_handler_1 + branch. Added a missing break statement, otherwise, it will not + run. + +Thu Mar 31 20:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/ciao/NodeApplication_Impl.h: + * DAnCE/ciao/Container_Base.h: + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h: + Added missing include of ace/Hash_Map_Manager_T.h + +Thu Mar 31 09:45:07 2005 Boris Kolpackov <boris@kolpackov.net> + + * CCF/CCF/IDL2/LexicalAnalyzer.cpp: + * CCF/CCF/IDL2/Parser.cpp: + * CCF/CCF/IDL2/Parser.hpp: + * CCF/CCF/IDL2/SemanticAction/Attribute.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.hpp: + * CCF/CCF/IDL2/SemanticGraph/Attribute.cpp: + * CCF/CCF/IDL2/SemanticGraph/Attribute.hpp: + * CCF/CCF/IDL2/Traversal/Attribute.cpp: + * CCF/CCF/IDL2/Traversal/Attribute.hpp: + * CIDLC/ExecutorMappingGenerator.cpp: + + Added support for raises-specification in attributes. + +Wed Mar 30 21:48:14 2005 Nanbor Wang <nanbor@cs.wustl.edu> + + * DAnCE/Config_Handlers/Deployment.hpp: Made the function + deploymentPlan an export function since it will be accessed + externally. The handler test program needed this change to + compile on Win32. + + * DAnCE/Config_Handlers/Config_Handlers.mpc: Changed to source in + the Xerces library settings from the latest xerces MPC template + that Kitty suggested. + + * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp: + * DAnCE/Config_Handlers/ccd.hpp: + * DAnCE/Config_Handlers/cdd.hpp: + * DAnCE/Config_Handlers/cdp.hpp: + * DAnCE/Config_Handlers/cid.hpp: + * DAnCE/Config_Handlers/cpd.hpp: + * DAnCE/Config_Handlers/iad.hpp: + * DAnCE/Config_Handlers/pcd.hpp: + * DAnCE/Config_Handlers/toplevel.hpp: + * DAnCE/Config_Handlers/XMLSchema/Types.hpp: + * DAnCE/Config_Handlers/XSCRT/Elements.hpp: + * DAnCE/Config_Handlers/XSCRT/Parser.hpp: + * DAnCE/Config_Handlers/XSCRT/Traversal.hpp: + * DAnCE/Config_Handlers/XSCRT/Writer.hpp: + * DAnCE/Config_Handlers/XSCRT/XML.hpp: Changed all local include + files to use the right syntax. I.e., they should be in the form + of: + + #include "foo/bar.h" + + instead of + + #include <foo/bar.h> + +Wed Mar 30 22:03:23 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/xsc-banner.cpp + * docs/schema/xsc-banner.h + + These files are the banners that should be included at + the top of XSC generated code. + +Wed Mar 30 13:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/ComponentsC.h: + * DAnCE/ciao/ComponentsC.h: + Fixed include of Typecode.h to TypeCode.h + +Wed Mar 30 13:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/Config_Handlers/DataType_Handler.cpp: + * DAnCE/Old_Config_Handlers/DT_Handler.cpp: + Fixed include of Typecode.h to TypeCode.h + +Thu Mar 24 17:02:34 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp + * DAnCE/Config_Handlers/Deployment.hpp + * DAnCE/Config_Handlers/ccd.hpp + * DAnCE/Config_Handlers/cdd.hpp + * DAnCE/Config_Handlers/cdp.hpp + * DAnCE/Config_Handlers/cid.hpp + * DAnCE/Config_Handlers/cpd.hpp + * DAnCE/Config_Handlers/iad.hpp + * DAnCE/Config_Handlers/pcd.hpp + * DAnCE/Config_Handlers/toplevel.hpp + * DAnCE/Config_Handlers/XSCRT/XML.hpp + * DAnCE/Config_Handlers/vc6-4786.h + + Finally beat a big warning problem in VC6. + +Thu Mar 24 15:19:21 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/XSCRT/Elements.hpp + * DAnCE/Config_Handlers/XSCRT/XML.hpp + + Moved a pragma disable from Elements.hpp to XML.hpp to + attempt to silence more warnings in VC6. + +Thu Mar 24 14:52:03 2005 Will Otte <wotte@dre.vanderilt.edu> + + * DAnCE/Config_Handlers/Any_Handler.cpp + + Fixed a compile error for 64bit arch that resulted from + the earlier VC6 fix. + +Thu Mar 24 09:21:59 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/examples/Swapping/Sender/Sender.mpc: + + Added the "after" clause in the MPC file to fix a + linker error. + +Thu Mar 24 08:46:07 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ExecImplSourceGenerator.cpp: + * CIDLC/Literals.cpp: + * CIDLC/Literals.hpp: + * CIDLC/ServantSourceGenerator.cpp: + * CIDLC/TypeNameEmitter.cpp: + + - Added generation of ACE_UNUSED_ARG macros for local variables in + the get_registered_consumers() method for upgradeable components, + to avoid unused argument warnings if the component has no + event consumers. + + - Added predefined string literals for "ACE_UNUSED_ARG", + "ACE_CHECK_RETURN", and "ACE_THROW_RETURN". + +Wed Mar 23 19:45:32 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CCF/CCF/IDL2/IDL2.vcpoj: + + Added more new files to the project, ValueTypeMember.hpp and + ValueTypeMember.tpp in IDL2/Traversal. + + * CIDLC/ServantSourceGenerator.cpp: + + Restored backend code that was commented out until frontend + support for traversal of valuetype/eventtype members was added. + +Wed Mar 23 13:00:32 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Any_Handler.cpp + + Fixed compile errors for VC6. + +Wed Mar 23 12:39:43 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/examples/Swapping/Sender/Sender.mpc: + + Added a missing library include. + +Wed Mar 23 11:19:32 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/examples/Swapping/Sender/Sender.mpc: + * DAnCE/examples/Swapping/Sender/Sender_exec_1.cpp: + * DAnCE/examples/Swapping/Sender/Sender_exec_1.h: + * DAnCE/examples/Swapping/Sender/Sender_exec_1_export.h: + * DAnCE/examples/Swapping/Sender/Sender_exec_2.cpp: + * DAnCE/examples/Swapping/Sender/Sender_exec_2.h: + * DAnCE/examples/Swapping/Sender/Sender_exec_2_export.h: + + Added new export macros to fix compiler problems in Windows + builds. + +Wed Mar 23 11:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp: + Fixed compile errors + +Wed Mar 23 11:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp: + * DAnCE/Config_Handlers/DP_Handler.cpp: + Fixed compile errors with Borland + +Tue Mar 22 21:21:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/ExecutionManager/Execution_Manager_Impl.h: + Fixed fuzz error + +Tue Mar 22 13:08:32 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/Execution_Manager_Impl.h + * DAnCE/ciao/Swapping_Servant_Home_Impl_Base.h + * DAnCE/ciao/Swapping_Servant_Home_Impl_T.h + * DAnCE/examples/Swapping/Sender/Sender_exec_1.h + * DAnCE/examples/Swapping/Sender/Sender_exec_2.h + + Silence some Fuzz errors. + +Tue Mar 22 11:45:57 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/ADD_Handler.cpp + * DAnCE/Config_Handlers/Any_Handler.cpp + * DAnCE/Config_Handlers/CCD_Handler.cpp + * DAnCE/Config_Handlers/XSCRT/Elements.hpp + + Changes to accomodate broken compilers (VC6). + +Tue Mar 22 10:40:21 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/examples/Swapping/Sender/Sender_exec.cpp: + + Made changes to fix compiler warnings. + +Tue Mar 22 10:26:18 2005 Will Otte <wotte@dre.vanderbilt.edu> + * DAnCE/Config_Handlers/CCD_Handler.cpp + + Silenced an error in VC6 that occured because it couldn't obey + some simple scope rules. + + * DAnCE/Config_Handlers/XSCRT/Elements.hpp + + Silenced a warning in VC6 debug builds relating to debug identifiers being + too long. + +Tue Mar 22 08:44:03 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/ciao/Container_Base.cpp + + Silenced a warning. + +Tue Mar 22 08:05:57 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CCF/CCF/IDL2/IDL2.vcproj: + + Added new ValueTypeFactory files to SemanticAction and new + ValueTypeMember files to SemanticGraph. + +Tue Mar 22 00:13:56 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Any_Handler.cpp + + Silenced warnings present in GCC >3 builds. + + * DAnCE/Config_Handlers/CCD_Handler.h + * DAnCE/Config_Handlers/Config_Handlers.mpc + * DAnCE/Config_Handlers/IDD_Handler.cpp + * DAnCE/Config_Handlers/Property_Handler.h + * DAnCE/Config_Handlers/Req_Handler.h + * DAnCE/Config_Handlers/XML_Error_Handler.h + * DAnCE/Config_Handlers/XML_File_Intf.h + + Silenced a few warnings present in the Fuzz build. + +Mon Mar 21 08:47:44 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CCF/CCF/IDL2/IDL2.vcproj: + + Added the new ValuetypeMember files in SemanticAction to + the project. + +Mon Mar 21 16:25:07 2005 Boris Kolpackov <boris@kolpackov.net> + + * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp: + + Finished "full support" for valuetype members. It also + adds "full support" for eventtype members since it just + re-uses valuetype's rules. + + + * CCF/CCF/IDL2/Parser.cpp: + * CCF/CCF/IDL2/Parser.hpp: + * CCF/CCF/IDL2/SemanticAction/ValueTypeFactory.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.hpp: + * CCF/CCF/IDL2/SemanticAction.hpp: + * CCF/CCF/IDL2/SemanticAction/Factory.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp: + + Added support for valuetype factories. + + + * CCF/CCF/IDL2/SemanticAction/Impl/ValueType.cpp: + * CCF/CCF/IDL2/SemanticGraph/ValueType.hpp: + * CCF/CCF/IDL2/Traversal/ValueType.tpp: + + Implemented support for valuetype inheritance and + support of interfaces. + + + * CCF/CCF/IDL3/SemanticAction/Impl/EventType.cpp: + * CCF/CCF/IDL3/Traversal/EventType.tpp: + + Implemented support for eventtype inheritance and + support of interfaces. + + + * CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp: + * CCF/CCF/IDL3/SemanticAction/Impl/Component.cpp: + + Minor cleanups. + +Sun Mar 20 21:35:04 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/examples/Swapping/Sender/Sender.mpc: + + Made a change to link to the right library. + +Sun Mar 20 21:12:55 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Config_Handlers.mpc + + Disabled the build of the test. There is no need for + this to build for the most part - as it is not a great test - + and appears to be lighting up the scoreboard for some reason. + +Sun Mar 20 14:05:08 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/tests/Config_Handlers/CompImplDesc_Handler_Test.cpp: + * DAnCE/tests/Config_Handlers/CompIntrDesc_Handler_Test.cpp: + * DAnCE/tests/Config_Handlers/CompPkgDesc_Handler_Test.cpp: + * DAnCE/tests/Config_Handlers/Domain_Handler_Test.cpp: + * DAnCE/tests/Config_Handlers/Handler_Test.cpp: + * DAnCE/tests/Config_Handlers/Handler_Test.h: + * DAnCE/tests/Config_Handlers/IAD_Handler_Test.cpp: + * DAnCE/tests/Config_Handlers/PC_Handler_Test.cpp: + * DAnCE/tests/Config_Handlers/Plan_Handler_Test.cpp: + + Made changed to include the "right" config handlers + to fix the compilation errors. + +Sun Mar 20 13:57:55 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/XercesString.cpp: + * DAnCE/Config_Handlers/XercesString.h: + + Added these new files from the old config handlers + directory to the new config handlers directory + to fix missing includes. + +Sun Mar 20 13:54:17 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/Old_Config_Handlers/Process_Element_T.cpp: + + Changed a #include to fix a compilation error. + +Sun Mar 20 17:39:18 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + * ciao/Servant_Impl_Base.h: + * ciao/Servant_Impl_Base.cpp: + * ciao/Servant_Impl_T.h: + * ciao/Servant_Impl_T.cpp: + * ciao/Home_Servant_Impl_T.cpp: + + Made changes to the older version of the ciao + infrastructure to reflect changes made in the + newer version of ciao, which is DaNCE. + +Sun Mar 20 10:09:14 2005 Will Otte <wotte@dre.vanderbilt.edu> + * DAnCE/Config_Handlers/Basic_Handler.cpp + * DAnCE/Config_Handlers/Basic_Handler.h + * DAnCE/Config_Handlers/CAD_Handler.cpp + * DAnCE/Config_Handlers/CAD_Handler.h + * DAnCE/Config_Handlers/CPK_Handler.cpp + * DAnCE/Config_Handlers/CPK_Handler.h + * DAnCE/Config_Handlers/CPR_Handler.cpp + * DAnCE/Config_Handlers/CPR_Handler.h + * DAnCE/Config_Handlers/Cap_Handler.cpp + * DAnCE/Config_Handlers/Cap_Handler.h + * DAnCE/Config_Handlers/CompImplDesc_Handler.cpp + * DAnCE/Config_Handlers/CompImplDesc_Handler.h + * DAnCE/Config_Handlers/CompIntrDesc_Handler.cpp + * DAnCE/Config_Handlers/CompIntrDesc_Handler.h + * DAnCE/Config_Handlers/CompPkgDesc_Handler.cpp + * DAnCE/Config_Handlers/CompPkgDesc_Handler.h + * DAnCE/Config_Handlers/Config.h + * DAnCE/Config_Handlers/Config_Error_Handler.cpp + * DAnCE/Config_Handlers/Config_Error_Handler.h + * DAnCE/Config_Handlers/Config_Handler_export.h + * DAnCE/Config_Handlers/DT_Handler.cpp + * DAnCE/Config_Handlers/DT_Handler.h + * DAnCE/Config_Handlers/Domain_Handler.cpp + * DAnCE/Config_Handlers/Domain_Handler.h + * DAnCE/Config_Handlers/IAD_Handler.cpp + * DAnCE/Config_Handlers/IAD_Handler.h + * DAnCE/Config_Handlers/IR_Handler.cpp + * DAnCE/Config_Handlers/IR_Handler.h + * DAnCE/Config_Handlers/MID_Handler.cpp + * DAnCE/Config_Handlers/MID_Handler.h + * DAnCE/Config_Handlers/NIA_Handler.cpp + * DAnCE/Config_Handlers/NIA_Handler.h + * DAnCE/Config_Handlers/PCI_Handler.cpp + * DAnCE/Config_Handlers/PCI_Handler.h + * DAnCE/Config_Handlers/PC_Handler.cpp + * DAnCE/Config_Handlers/PC_Handler.h + * DAnCE/Config_Handlers/Plan_Handler.cpp + * DAnCE/Config_Handlers/Plan_Handler.h + * DAnCE/Config_Handlers/Process_Element.cpp + * DAnCE/Config_Handlers/Process_Element.h + * DAnCE/Config_Handlers/Process_Element_T.cpp + * DAnCE/Config_Handlers/Process_Element_T.h + * DAnCE/Config_Handlers/RS_Handler.cpp + * DAnCE/Config_Handlers/RS_Handler.h + * DAnCE/Config_Handlers/RUK_Handler.cpp + * DAnCE/Config_Handlers/RUK_Handler.h + * DAnCE/Config_Handlers/Requirement_Handler.cpp + * DAnCE/Config_Handlers/Requirement_Handler.h + * DAnCE/Config_Handlers/SPK_Handler.cpp + * DAnCE/Config_Handlers/SPK_Handler.h + * DAnCE/Config_Handlers/SP_Handler.cpp + * DAnCE/Config_Handlers/SP_Handler.h + * DAnCE/Config_Handlers/TPD_Handler.cpp + * DAnCE/Config_Handlers/TPD_Handler.h + * DAnCE/Config_Handlers/Utils.cpp + * DAnCE/Config_Handlers/Utils.h + * DAnCE/Config_Handlers/XercesString.cpp + * DAnCE/Config_Handlers/XercesString.h + + Removed files unused by the new config handlers. + + * DAnCE/Config_Handlers/Config_Handlers.mpc + + Enabled the config handlers build. + +Sat Mar 19 18:19:34 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/XMLSchema/Traversal.hpp + * DAnCE/Config_Handlers/XMLSchema/Traversal.ipp + * DAnCE/Config_Handlers/XMLSchema/Traversal.tpp + * DAnCE/Config_Handlers/XMLSchema/TypeInfo.hpp + * DAnCE/Config_Handlers/XMLSchema/TypeInfo.ipp + * DAnCE/Config_Handlers/XMLSchema/TypeInfo.tpp + * DAnCE/Config_Handlers/XMLSchema/Types.hpp + * DAnCE/Config_Handlers/XMLSchema/Types.ipp + * DAnCE/Config_Handlers/XMLSchema/Types.tpp + * DAnCE/Config_Handlers/XMLSchema/Writer.hpp + * DAnCE/Config_Handlers/XMLSchema/Writer.ipp + * DAnCE/Config_Handlers/XMLSchema/Writer.tpp + * DAnCE/Config_Handlers/XSCRT/Elements.hpp + * DAnCE/Config_Handlers/XSCRT/Elements.ipp + * DAnCE/Config_Handlers/XSCRT/Elements.tpp + * DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp + * DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp + * DAnCE/Config_Handlers/XSCRT/Parser.hpp + * DAnCE/Config_Handlers/XSCRT/Parser.ipp + * DAnCE/Config_Handlers/XSCRT/Parser.tpp + * DAnCE/Config_Handlers/XSCRT/Traversal.hpp + * DAnCE/Config_Handlers/XSCRT/Traversal.ipp + * DAnCE/Config_Handlers/XSCRT/Traversal.tpp + * DAnCE/Config_Handlers/XSCRT/Writer.hpp + * DAnCE/Config_Handlers/XSCRT/Writer.ipp + * DAnCE/Config_Handlers/XSCRT/Writer.tpp + * DAnCE/Config_Handlers/XSCRT/XML.hpp + * DAnCE/Config_Handlers/XSCRT/XML.ipp + * DAnCE/Config_Handlers/XSCRT/XML.tpp + * DAnCE/Config_Handlers/XSCRT/XMLSchema.ipp + * DAnCE/Config_Handlers/XSCRT/XMLSchema.tpp + + Completed the merge of xsc_handler_1 into main. + +Sat Mar 19 17:29:50 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp: + * DAnCE/RepositoryManager/RepositoryManager_Impl.h: + + Fixed compiler errors. + +Sat Mar 19 16:57:41 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/Old_Config_Handlers/Any_Handler.cpp: + * DAnCE/Old_Config_Handlers/Any_Handler.h: + * DAnCE/Old_Config_Handlers/Basic_Deployment_Data.cpp: + * DAnCE/Old_Config_Handlers/Basic_Deployment_Data.hpp: + * DAnCE/Old_Config_Handlers/Basic_Handler.cpp: + * DAnCE/Old_Config_Handlers/Basic_Handler.h: + * DAnCE/Old_Config_Handlers/CAD_Handler.cpp: + * DAnCE/Old_Config_Handlers/CAD_Handler.h: + * DAnCE/Old_Config_Handlers/CEPE_Handler.cpp: + * DAnCE/Old_Config_Handlers/CEPE_Handler.h: + * DAnCE/Old_Config_Handlers/CPK_Handler.cpp: + * DAnCE/Old_Config_Handlers/CPK_Handler.h: + * DAnCE/Old_Config_Handlers/CPR_Handler.cpp: + * DAnCE/Old_Config_Handlers/CPR_Handler.h: + * DAnCE/Old_Config_Handlers/Cap_Handler.cpp: + * DAnCE/Old_Config_Handlers/Cap_Handler.h: + * DAnCE/Old_Config_Handlers/CompImplDesc_Handler.cpp: + * DAnCE/Old_Config_Handlers/CompImplDesc_Handler.h: + * DAnCE/Old_Config_Handlers/CompIntrDesc_Handler.cpp: + * DAnCE/Old_Config_Handlers/CompIntrDesc_Handler.h: + * DAnCE/Old_Config_Handlers/CompPkgDesc_Handler.cpp: + * DAnCE/Old_Config_Handlers/CompPkgDesc_Handler.h: + * DAnCE/Old_Config_Handlers/Config.h: + * DAnCE/Old_Config_Handlers/Config_Error_Handler.cpp: + * DAnCE/Old_Config_Handlers/Config_Error_Handler.h: + * DAnCE/Old_Config_Handlers/Config_Handler_export.h: + * DAnCE/Old_Config_Handlers/Config_Handlers.mpc: + * DAnCE/Old_Config_Handlers/DT_Handler.cpp: + * DAnCE/Old_Config_Handlers/DT_Handler.h: + * DAnCE/Old_Config_Handlers/Deployment.cpp: + * DAnCE/Old_Config_Handlers/Deployment.hpp: + * DAnCE/Old_Config_Handlers/DnC_Dump.cpp: + * DAnCE/Old_Config_Handlers/DnC_Dump.h: + * DAnCE/Old_Config_Handlers/DnC_Dump_T.cpp: + * DAnCE/Old_Config_Handlers/DnC_Dump_T.h: + * DAnCE/Old_Config_Handlers/Domain_Handler.cpp: + * DAnCE/Old_Config_Handlers/Domain_Handler.h: + * DAnCE/Old_Config_Handlers/Dump_Obj.cpp: + * DAnCE/Old_Config_Handlers/Dump_Obj.h: + * DAnCE/Old_Config_Handlers/ERE_Handler.cpp: + * DAnCE/Old_Config_Handlers/ERE_Handler.h: + * DAnCE/Old_Config_Handlers/IAD_Handler.cpp: + * DAnCE/Old_Config_Handlers/IAD_Handler.h: + * DAnCE/Old_Config_Handlers/ID_Handler.cpp: + * DAnCE/Old_Config_Handlers/ID_Handler.h: + * DAnCE/Old_Config_Handlers/IR_Handler.cpp: + * DAnCE/Old_Config_Handlers/MID_Handler.cpp: + * DAnCE/Old_Config_Handlers/MID_Handler.h: + * DAnCE/Old_Config_Handlers/NIA_Handler.cpp: + * DAnCE/Old_Config_Handlers/NIA_Handler.h: + * DAnCE/Old_Config_Handlers/PCI_Handler.cpp: + * DAnCE/Old_Config_Handlers/PCI_Handler.h: + * DAnCE/Old_Config_Handlers/PC_Handler.cpp: + * DAnCE/Old_Config_Handlers/PC_Handler.h: + * DAnCE/Old_Config_Handlers/Plan_Handler.cpp: + * DAnCE/Old_Config_Handlers/Plan_Handler.h: + * DAnCE/Old_Config_Handlers/Process_Element.cpp: + * DAnCE/Old_Config_Handlers/Process_Element.h: + * DAnCE/Old_Config_Handlers/Process_Element_T.cpp: + * DAnCE/Old_Config_Handlers/Process_Element_T.h: + * DAnCE/Old_Config_Handlers/Property_Handler.cpp: + * DAnCE/Old_Config_Handlers/Property_Handler.h: + * DAnCE/Old_Config_Handlers/RS_Handler.cpp: + * DAnCE/Old_Config_Handlers/RS_Handler.h: + * DAnCE/Old_Config_Handlers/RUK_Handler.cpp: + * DAnCE/Old_Config_Handlers/RUK_Handler.h: + * DAnCE/Old_Config_Handlers/Requirement_Handler.cpp: + * DAnCE/Old_Config_Handlers/Requirement_Handler.h: + * DAnCE/Old_Config_Handlers/SPK_Handler.cpp: + * DAnCE/Old_Config_Handlers/SPK_Handler.h: + * DAnCE/Old_Config_Handlers/SP_Handler.cpp: + * DAnCE/Old_Config_Handlers/SP_Handler.h: + * DAnCE/Old_Config_Handlers/TPD_Handler.cpp: + * DAnCE/Old_Config_Handlers/TPD_Handler.h: + * DAnCE/Old_Config_Handlers/Utils.cpp: + * DAnCE/Old_Config_Handlers/Utils.h: + * DAnCE/Old_Config_Handlers/XercesString.cpp: + * DAnCE/Old_Config_Handlers/XercesString.h: + * DAnCE/Old_Config_Handlers/ccd.cpp: + * DAnCE/Old_Config_Handlers/ccd.hpp: + * DAnCE/Old_Config_Handlers/cdd.cpp: + * DAnCE/Old_Config_Handlers/cdd.hpp: + * DAnCE/Old_Config_Handlers/cdp.cpp: + * DAnCE/Old_Config_Handlers/cdp.hpp: + * DAnCE/Old_Config_Handlers/cid.cpp: + * DAnCE/Old_Config_Handlers/cid.hpp: + * DAnCE/Old_Config_Handlers/cpd.cpp: + * DAnCE/Old_Config_Handlers/cpd.hpp: + * DAnCE/Old_Config_Handlers/iad.cpp: + * DAnCE/Old_Config_Handlers/iad.hpp: + * DAnCE/Old_Config_Handlers/pcd.cpp: + * DAnCE/Old_Config_Handlers/pcd.hpp: + * DAnCE/Old_Config_Handlers/toplevel.cpp: + * DAnCE/Old_Config_Handlers/toplevel.hpp: + + Older version of config handlers. + + +Sat Mar 19 16:14:20 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/ccd.cpp: + * DAnCE/Config_Handlers/ccd.hpp: + * DAnCE/Config_Handlers/cdd.cpp: + * DAnCE/Config_Handlers/cdd.hpp: + * DAnCE/Config_Handlers/cdp.cpp: + * DAnCE/Config_Handlers/cdp.hpp: + * DAnCE/Config_Handlers/cid.cpp: + * DAnCE/Config_Handlers/cid.hpp: + * DAnCE/Config_Handlers/cpd.cpp: + * DAnCE/Config_Handlers/cpd.hpp: + * DAnCE/Config_Handlers/iad.cpp: + * DAnCE/Config_Handlers/iad.hpp: + * DAnCE/Config_Handlers/pcd.cpp: + * DAnCE/Config_Handlers/pcd.hpp: + * DAnCE/Config_Handlers/toplevel.cpp: + * DAnCE/Config_Handlers/toplevel.hpp: + * DAnCE/Config_Handlers/ERE_Handler.cpp: + * DAnCE/Config_Handlers/ERE_Handler.h: + * DAnCE/Config_Handlers/IDD_Handler.cpp: + * DAnCE/Config_Handlers/IDD_Handler.h: + * DAnCE/Config_Handlers/IDREF_Base.cpp: + * DAnCE/Config_Handlers/IDREF_Base.h: + * DAnCE/Config_Handlers/ID_Handler.cpp: + * DAnCE/Config_Handlers/ID_Handler.h: + * DAnCE/Config_Handlers/IRDD_Handler.cpp: + * DAnCE/Config_Handlers/IRDD_Handler.h: + * DAnCE/Config_Handlers/MDD_Handler.cpp: + * DAnCE/Config_Handlers/MDD_Handler.h: + * DAnCE/Config_Handlers/PCD_Handler.cpp: + * DAnCE/Config_Handlers/PCD_Handler.h: + * DAnCE/Config_Handlers/PSPE_Handler.cpp: + * DAnCE/Config_Handlers/PSPE_Handler.h: + * DAnCE/Config_Handlers/Property_Handler.cpp: + * DAnCE/Config_Handlers/Property_Handler.h: + * DAnCE/Config_Handlers/RDD_Handler.cpp: + * DAnCE/Config_Handlers/RDD_Handler.h: + * DAnCE/Config_Handlers/Req_Handler.cpp: + * DAnCE/Config_Handlers/Req_Handler.h: + * DAnCE/Config_Handlers/XML_Error_Handler.cpp: + * DAnCE/Config_Handlers/XML_Error_Handler.h: + * DAnCE/Config_Handlers/XML_File_Intf.cpp: + * DAnCE/Config_Handlers/XML_File_Intf.h: + * DAnCE/Config_Handlers/XML_Helper.cpp: + * DAnCE/Config_Handlers/XML_Helper.h: + * DAnCE/Config_Handlers/XercesString.cpp: + * DAnCE/Config_Handlers/XercesString.h: + * DAnCE/Config_Handlers/ADD_Handler.cpp: + * DAnCE/Config_Handlers/ADD_Handler.h: + * DAnCE/Config_Handlers/Any_Handler.cpp: + * DAnCE/Config_Handlers/Any_Handler.h: + * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp: + * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp: + * DAnCE/Config_Handlers/CCD_Handler.cpp: + * DAnCE/Config_Handlers/CCD_Handler.h: + * DAnCE/Config_Handlers/CEPE_Handler.cpp: + * DAnCE/Config_Handlers/CEPE_Handler.h: + * DAnCE/Config_Handlers/CPD_Handler.cpp: + * DAnCE/Config_Handlers/CPD_Handler.h: + * DAnCE/Config_Handlers/CRDD_Handler.cpp: + * DAnCE/Config_Handlers/CRDD_Handler.h: + * DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.cpp: + * DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.h: + * DAnCE/Config_Handlers/Config_Handlers.mpc: + * DAnCE/Config_Handlers/Config_Handlers_Export.h: + * DAnCE/Config_Handlers/DP_Handler.cpp: + * DAnCE/Config_Handlers/DP_Handler.h: + * DAnCE/Config_Handlers/DP_PCD_Handler.cpp: + * DAnCE/Config_Handlers/DP_PCD_Handler.h: + * DAnCE/Config_Handlers/DataType_Handler.cpp: + * DAnCE/Config_Handlers/DataType_Handler.h: + * DAnCE/Config_Handlers/Deployment.cpp: + * DAnCE/Config_Handlers/Deployment.hpp: + * DAnCE/Config_Handlers/DnC_Dump.cpp: + * DAnCE/Config_Handlers/DnC_Dump.h: + * DAnCE/Config_Handlers/DnC_Dump_T.cpp: + * DAnCE/Config_Handlers/DnC_Dump_T.h: + * DAnCE/Config_Handlers/Dump_Obj.cpp: + * DAnCE/Config_Handlers/Dump_Obj.h: + + Merged branch xsc_handler_1 to main. + +Sat Mar 19 15:36:55 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/RDD_Handler.cpp: + * DAnCE/Config_Handlers/RDD_Handler.h: + * DAnCE/Config_Handlers/Req_Handler.cpp: + * DAnCE/Config_Handlers/Req_Handler.h: + * DAnCE/Config_Handlers/XML_Error_Handler.cpp: + * DAnCE/Config_Handlers/XML_Error_Handler.h: + * DAnCE/Config_Handlers/XML_File_Intf.cpp: + * DAnCE/Config_Handlers/XML_File_Intf.h: + * DAnCE/Config_Handlers/XML_Helper.cpp: + * DAnCE/Config_Handlers/XML_Helper.h: + + More XSC config handlers. + +Sat Mar 19 15:29:45 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Any_Handler.h: + * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp: + * DAnCE/Config_Handlers/CEPE_Handler.cpp: + * DAnCE/Config_Handlers/CEPE_Handler.h: + * DAnCE/Config_Handlers/Deployment.cpp: + * DAnCE/Config_Handlers/DnC_Dump.cpp: + * DAnCE/Config_Handlers/DnC_Dump.h: + * DAnCE/Config_Handlers/DnC_Dump_T.cpp: + * DAnCE/Config_Handlers/DnC_Dump_T.h: + * DAnCE/Config_Handlers/Dump_Obj.cpp: + * DAnCE/Config_Handlers/Dump_Obj.h: + * DAnCE/Config_Handlers/ERE_Handler.cpp: + * DAnCE/Config_Handlers/ERE_Handler.h: + * DAnCE/Config_Handlers/IDD_Handler.cpp: + * DAnCE/Config_Handlers/IDD_Handler.h: + * DAnCE/Config_Handlers/IDREF_Base.cpp: + * DAnCE/Config_Handlers/IDREF_Base.h: + * DAnCE/Config_Handlers/ID_Handler.cpp: + * DAnCE/Config_Handlers/ID_Handler.h: + * DAnCE/Config_Handlers/IRDD_Handler.cpp: + * DAnCE/Config_Handlers/IRDD_Handler.h: + * DAnCE/Config_Handlers/MDD_Handler.cpp: + * DAnCE/Config_Handlers/MDD_Handler.h: + * DAnCE/Config_Handlers/Modified_Deployment.xsd: + * DAnCE/Config_Handlers/PCD_Handler.cpp: + * DAnCE/Config_Handlers/PCD_Handler.h: + * DAnCE/Config_Handlers/PSPE_Handler.cpp: + * DAnCE/Config_Handlers/PSPE_Handler.h: + + More XML config handlers. + +Sat Mar 19 15:25:17 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/ADD_Handler.cpp: + * DAnCE/Config_Handlers/ADD_Handler.h: + * DAnCE/Config_Handlers/BasicSP.cdp: + * DAnCE/Config_Handlers/CCD_Handler.cpp: + * DAnCE/Config_Handlers/CCD_Handler.h: + * DAnCE/Config_Handlers/CPD_Handler.cpp: + * DAnCE/Config_Handlers/CPD_Handler.h: + * DAnCE/Config_Handlers/CRDD_Handler.cpp: + * DAnCE/Config_Handlers/CRDD_Handler.h: + * DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.cpp: + * DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.h: + * DAnCE/Config_Handlers/Config_Handlers_Export.h: + * DAnCE/Config_Handlers/DP_Handler.cpp: + * DAnCE/Config_Handlers/DP_Handler.h: + * DAnCE/Config_Handlers/DP_PCD_Handler.cpp: + * DAnCE/Config_Handlers/DP_PCD_Handler.h: + * DAnCE/Config_Handlers/DataType_Handler.cpp: + * DAnCE/Config_Handlers/DataType_Handler.h: + + Added a XSC compiler compliant config handlers. + +Sat Mar 19 15:22:54 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/DAM_Map.cpp: + * DAnCE/ExecutionManager/DAM_Map.h: + * DAnCE/ExecutionManager/ExecutionManager.mpc: + * DAnCE/ExecutionManager/ExecutionManager_Impl.h: + * DAnCE/ExecutionManager/Execution_Manager.cpp: + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp: + * DAnCE/ExecutionManager/Execution_Manager_Impl.h: + + Fixed some more compiler errors. + +Sat Mar 19 15:06:37 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ExecutionManager/DAM_Map.cpp: + * DAnCE/ExecutionManager/DAM_Map.h: + * DAnCE/ExecutionManager/ExecutionManager.mpc: + * DAnCE/ExecutionManager/Execution_Manager.cpp: + * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp: + * DAnCE/ExecutionManager/Execution_Manager_Impl.h: + * DAnCE/NodeApplication/NodeApplication.cpp: + * DAnCE/NodeManager/NodeDaemon_Impl.cpp: + + Made changes to fix compile errors. + +Sat Mar 19 15:02:03 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/Deployment_Configuration.h: + * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc: + * + DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + + Made changes to reflect changes made to the CIAO + infrastructure to support NodeApplication instantiate + multiple containers. + + Thanks to Gan Deng <dengg@dre.vanderbilt.edu> for making this + change. + +Sat Mar 19 14:54:15 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/examples/BasicSP/descriptors/BasicSP.cdp: + * DAnCE/examples/BasicSP/descriptors/NodeManagerMap.dat: + * DAnCE/examples/BasicSP/descriptors/basicNodeDaemon.pl: + * DAnCE/examples/BasicSP/descriptors/flattern_deploymentplan.cdp: + + Added a flattened deployment plan for testing the DaNCE + infrastructure. + + Thanks to Will Otte <w.otte@vanderbilt.edu> for helping + out with this project. + +Sat Mar 19 14:23:49 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/examples/Swapping/Hello_Base/Hello_Base.idl: + * DAnCE/examples/Swapping/Hello_Base/Hello_Base.mpc: + * DAnCE/examples/Swapping/Hello_Base/Hello_Base_stub_export.h: + * DAnCE/examples/Swapping/Hello_Base/Hello_Base_svnt_export.h: + * DAnCE/examples/Swapping/Receiver/Receiver.mpc: + * DAnCE/examples/Swapping/Sender/Sender.mpc: + + Fixed few minor compiler errors. + +Sat Mar 19 13:40:30 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/examples/Swapping/Hello_Base/Hello_Base.idl: + * DAnCE/examples/Swapping/Hello_Base/Hello_Base.mpc: + * DAnCE/examples/Swapping/Hello_Base/Hello_Base_stub_export.h: + * DAnCE/examples/Swapping/Hello_Base/Hello_Base_svnt_export.h: + * DAnCE/examples/Swapping/Receiver/Receiver.cidl: + * DAnCE/examples/Swapping/Receiver/Receiver.idl: + * DAnCE/examples/Swapping/Receiver/Receiver.mpc: + * DAnCE/examples/Swapping/Receiver/Receiver_exec.cpp: + * DAnCE/examples/Swapping/Receiver/Receiver_exec.h: + * DAnCE/examples/Swapping/Receiver/Receiver_exec_export.h: + * DAnCE/examples/Swapping/Receiver/Receiver_stub_export.h: + * DAnCE/examples/Swapping/Receiver/Receiver_svnt_export.h: + * DAnCE/examples/Swapping/Sender/Sender.cidl: + * DAnCE/examples/Swapping/Sender/Sender.idl: + * DAnCE/examples/Swapping/Sender/Sender.mpc: + * DAnCE/examples/Swapping/Sender/Sender_exec.cpp: + * DAnCE/examples/Swapping/Sender/Sender_exec.h: + * DAnCE/examples/Swapping/Sender/Sender_exec_1.cpp: + * DAnCE/examples/Swapping/Sender/Sender_exec_1.h: + * DAnCE/examples/Swapping/Sender/Sender_exec_2.cpp: + * DAnCE/examples/Swapping/Sender/Sender_exec_2.h: + * DAnCE/examples/Swapping/Sender/Sender_exec_export.h: + * DAnCE/examples/Swapping/Sender/Sender_stub_export.h: + * DAnCE/examples/Swapping/Sender/Sender_svnt_export.h: + * DAnCE/examples/Swapping/Sender/starter.cpp: + + Added a "HelloWorld" example that can test the dynamic + swapping of component implementation capability. + + Thanks to Bala Natarajan <bala@dre.vanderbilt.edu> + for helping me with this project. + +Sat Mar 19 13:17:37 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp: + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp: + * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp: + + Made changes to reflect changes made to the infrastructure + to provide the capability in the NodeApplication + to support multiple containers. + +Sat Mar 19 13:13:13 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/NodeApplicationManager/ImplementationInfo.cpp: + * DAnCE/NodeApplicationManager/ImplementationInfo.h: + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp: + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h: + + Changes to reflect the infrasrtuctural changes related + to providing capability in the NodeApplication + to support multiple containers. + + Thanks to Gan Deng <dengg@dre.vanderbilt.edu> for + architecting and implementing this project. + +Sat Mar 19 13:08:18 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/NodeApplication_Impl.inl: + + Made some changes to fix compiler errors. + +Sat Mar 19 12:48:44 2005 Jaiganesh B <jai@dre.vanderbilt.edu> + + * DAnCE/ciao/CCM_Core.mpc: + * DAnCE/ciao/CIAO_Config.h: + * DAnCE/ciao/Container_Base.cpp: + * DAnCE/ciao/Container_Base.h: + * DAnCE/ciao/Container_Impl.cpp: + * DAnCE/ciao/Container_Impl.h: + * DAnCE/ciao/Container_Impl.inl: + * DAnCE/ciao/Context_Impl_T.cpp: + * DAnCE/ciao/Deployment.idl: + * DAnCE/ciao/Deployment_Core.idl: + * DAnCE/ciao/Dynamic_Component_Activator.cpp: + * DAnCE/ciao/Dynamic_Component_Activator.h: + * DAnCE/ciao/Dynamic_Component_Servant_Base.cpp: + * DAnCE/ciao/Dynamic_Component_Servant_Base.h: + * DAnCE/ciao/Dynamic_Component_Servant_T.cpp: + * DAnCE/ciao/Dynamic_Component_Servant_T.h: + * DAnCE/ciao/Home_Servant_Impl_Base.h: + * DAnCE/ciao/Home_Servant_Impl_T.cpp: + * DAnCE/ciao/Home_Servant_Impl_T.h: + * DAnCE/ciao/NodeApplication_Impl.cpp: + * DAnCE/ciao/NodeApplication_Impl.h: + * DAnCE/ciao/NodeApplication_Impl.inl: + * DAnCE/ciao/Object_Set_T.cpp: + * DAnCE/ciao/Object_Set_T.h: + * DAnCE/ciao/Object_Set_T.inl: + * DAnCE/ciao/Port_Activator_T.cpp: + * DAnCE/ciao/Servant_Activator.cpp: + * DAnCE/ciao/Servant_Activator.h: + * DAnCE/ciao/Servant_Impl_Base.cpp: + * DAnCE/ciao/Servant_Impl_Base.h: + * DAnCE/ciao/Servant_Impl_T.cpp: + * DAnCE/ciao/Servant_Impl_T.h: + * DAnCE/ciao/SwapExec.idl: + * DAnCE/ciao/Swapping_Container.cpp: + * DAnCE/ciao/Swapping_Container.h: + * DAnCE/ciao/Swapping_Container.inl: + * DAnCE/ciao/Swapping_Servant_Home_Impl_Base.cpp: + * DAnCE/ciao/Swapping_Servant_Home_Impl_Base.h: + * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp: + * DAnCE/ciao/Swapping_Servant_Home_Impl_T.h: + * DAnCE/ciao/UpgradeableContext.idl: + * DAnCE/ciao/Upgradeable_Context_Impl_T.cpp: + * DAnCE/ciao/Upgradeable_Context_Impl_T.h: + + Added CIAO infrastructure changes to allow NodeApplications + to support multi container instantiation. + + Added CIAO infrastructure changes to allow dynamic + swapping of component implementations. + + Thanks to Gan Deng <dengg@dre.vanderbilt.edu> and + Bala Natarajan <bala@dre.vanderbilt.edu> for their + help in architecting and implementing these changes. + +Fri Mar 18 18:34:20 2005 Boris Kolpackov <boris@kolpackov.net> + + * CCF/CCF/IDL2/Parser.cpp: + * CCF/CCF/IDL2/Parser.hpp: + * CCF/CCF/IDL2/SemanticAction.hpp: + * CCF/CCF/IDL2/SemanticGraph.hpp: + * CCF/CCF/IDL2/Traversal.hpp: + * CCF/CCF/IDL2/SemanticAction/Factory.hpp: + * CCF/CCF/IDL2/SemanticAction/ValueTypeMember.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp: + * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp: + * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp: + * CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.cpp: + * CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.hpp: + * CCF/CCF/IDL2/Traversal/ValueTypeMember.hpp: + * CCF/CCF/IDL2/Traversal/ValueTypeMember.tpp: + + First part of the "full" support for members in valuetypes. + + +Thu Mar 17 10:18:33 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ExecutorMappingGenerator.cpp: + * CIDLC/Literals.cpp: + * CIDLC/Literals.hpp: + * CIDLC/ServantGenerator.cpp: + * CIDLC/ServantHeaderGenerator.cpp: + * CIDLC/ServantSourceGenerator.cpp: + * CIDLC/TypeNameEmitter.cpp: + * CIDLC/TypeNameEmitter.hpp: + + Added command line option 'custom-container' to the CIDL + compiler backend, and code generation to execute if the + argument to the new option is 'upgradeable'. CIAO + infrastructure changes to support dynamic component + swapping will be merged from a branch shortly - these + CIDL compiler changes will not affect any existing builds + or tests since they don't use the new command line option. + +Fri Mar 11 10:33:28 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/cdp.xsd + + Corrected an incorrect element in the schema. + +Fri Mar 11 12:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/ComponentsC.h: + * ciao/ComponentsS.h: + * DAnCE/ciao/ComponentsC.h: + * DAnCE/ciao/ComponentsS.h: + * DAnCE/NodeManager/NodeDaemon_Impl.h: + * performance-tests/Benchmark/LatencyTest.h: + * performance-tests/Benchmark/RoundTripServer/LatencyTest.h: + Changed _MSC_VER check + +Fri Mar 4 17:13:16 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * examples/Hello/Hello_Base/Hello_Base.idl: + * examples/Hello/Hello_Base/Hello_Base.mpc: + * examples/Hello/Receiver/Receiver.idl: + * examples/Hello/Receiver/Receiver.mpc: + * examples/Hello/Sender/Sender.mpc: + + Cosmetic changes to IDL files and changes to MPC files to + eliminate unnecessary files in a given project and bring + in missing export header files. + +Thu Mar 3 10:31:10 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/ExecImplGenerator.cpp: + * CIDLC/ExecImplHeaderGenerator.cpp: + + - Added support for .cdl file extension similar to + support already in the servant generators. + + - Fixed bug in export include generation. + + Thanks to Matt Emerson <mjemerson@isis.vanderbilt.edu>, + Ming Xiong <xiongm@isi.vanderbilt.edu>, James Hill + <jhill@isis.vanderbilt.edu> and Stoyan Paunov + <spaunov@isis.vanderbilt.edu> for reporting these + problems. + + * CIDLC/ServantSourceGenerator.cpp: + + - Replaced remaining instances of generation of 'new' with + 'ACE_NEW' and changed code generation to reduce line + lengths. + + - Changed code generation of Cookie_var for multiplex + receptacles to pass a Cookie* to ACE_NEW, then + assign to the _var, instead of passing in _var.out(), + which causes the allocation to fail on some platforms. + Thanks to Don Busch <busch_d@ociweb.com> for reporting + the problem. + +Mon Mar 03 09:37:23 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/examples/Hello/descriptors/Hello.cdp + * DAnCE/examples/Hello/descriptors/hello.dat + + Remove these two files because the file name is bad. + + * DAnCE/examples/Hello/descriptors/DeploymentPlan.cdp + * DAnCE/examples/Hello/descriptors/NodeManagerMap.dat + + Added these two files. + + * DAnCE/examples/Hello/step-by-step.html + + Fixed this page to reflex the above change. + +Mon Mar 03 08:59:23 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/examples/Hello/Hello_Base/Hello_Base.mpc + + Fixed the Hello_Base_DnC_svnt project settings which + caused comilation errors. + +Wed Mar 02 11:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/Config_Handlers/Config_Handlers.mpc + * DAnCE/RepositoryManager/RepositoryManager.mpc + * performance-tests/Protocols/Controller/Controller.mpc + * performance-tests/Protocols/Receiver/Receiver.mpc + * performance-tests/Protocols/Sender/Sender.mpc + * tests/RTCCM/DiffServ/Controller/Controller.mpc + Use exceptions as base project instead of requires exceptions + +Mon Mar 02 18:30:25 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * examples/Hello/step-by-step.html + * DAnCE/examples/Hello/step-by-step.html + + Modified these two documentation page to fix some errors. + + * DAnCE/examples/Hello/Hello_Base/Hello_Base.mpc + + Fixed wrong shared library names and project names. + +Sat Feb 26 14:38:46 2005 Arvind S. Krishna <arvindk@tango.dre.vanderbilt.edu> + + * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED.mpc: + * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice.mpc: + * examples/handcrafted/BasicSP_EC/BMDisplay/BMDisplay.mpc: + * examples/handcrafted/BasicSP_EC/EC/EC.mpc: + * examples/handcrafted/BasicSP_EC/BasicSP.mpc: + * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.mpc: + * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.mpc: + * examples/handcrafted/BasicSP_EC2/BMDisplay/BMDisplay.mpc: + * examples/handcrafted/BasicSP_EC2/EC/EC.mpc: + * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService.mpc: + * examples/handcrafted/BasicSP_EC2/BasicSP.mpc: + + Replaced all occurances of "dummy" with "dummy_label" + + * bin/replace_dummy_with_dummylabel.sh: + + Shell script that can be used to do this. In case people find it + useful. + + +Tue Feb 22 09:55:51 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * CIDLC/TypeNameEmitter.cpp: + + Fixed typos in code generation that were omitting a space + between the type name and '_ciao_extract_val' for enums, + structs and unions when used as component or home attributes. + Thanks to Steve Baker <steven_d_baker@raytheon.com> for + reporting the bug with enums. + +Fri Feb 18 10:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/ciao/Servant_Activator.h: + * ciao/Servant_Activator.h: + Added missing includes because of POA refactoring + +Thu Feb 17 14:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Component_Base.idl: + Fixed typo in include of orb.idl. Thanks to Roland Schimmack + <Roland dot Schimmack at gmx dot de> for reporting this + +Tue Feb 15 22:43:34 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * DAnCE/examples/BasicSP/BMDisplay_exec.h: + + Added missing export file to make things compile on Windows + platforms. Thanks to Diana Ukleja <Diana_Ukleja@raytheon.com> + for pointing this out. + +Mon Feb 14 14:52:32 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NEWS + + Updated the NEWS file by adding support for parsing + hierarchical assembly of component descriptors. + +Sun Feb 13 13:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * Release: + Removed CIAO-INSTALL from the release files. It is already + picked up because we include the complete CIAO directory + +Fri Feb 11 11:12:21 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NEWS + + Updated the NEWS file by adding support for setting up + attribute in component configuration. + +Fri Feb 11 11:10:54 2005 Will Otte <wotte@dre.vanderbilt.edu> + + * docs/schema/Modified_Deployment.xsd: + + Corrected a couple mistakes in the schema. + +Thu Feb 10 07:11:04 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * CIAO version 0.4.4 released. + +Tue Feb 08 10:04:21 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NEWS + + Updated the NEWS file for the coming 0.4.4 release. + +Mon Feb 7 09:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * Release: + Added CIAO-INSTALL to the release files + +Fri Feb 4 09:35:00 2005 Emre Turkay <turkaye@dre.vanderbilt.edu> + + * DAnCE/examples/Hello/descriptors/basicNodeDaemon.pl: + The perl script to create node daemons created. + + * DAnCE/examples/Hello/step-by-step.html: + Step by step tutorial for the DAnCE. + +Fri Feb 4 12:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/RTComponentServer/RTConfig_Manager.h: + Include SString.h instead of SStringfwd.h to fix compile errors with + CBuilderX + +Thu Feb 3 20:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/Segment_Timer/Segment_Timer.mpc: + Removed TAO_ROOT again, the gnu template has been changed so that + when CIAO is detected, also TAO_ROOT is set + +Thu Feb 3 12:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/ciao/NodeApplication_Impl.h: + Added include of ace/SString.h to fix compile errors with CBuilderX + +Thu Feb 3 10:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/Segment_Timer/Segment_Timer.mpc: + Added $(TAO_ROOT) so that MPC creates a correct GNU makefile + +Wed Feb 2 19:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * rules.ciao.GNU: + Fixed error in this file + +Wed Feb 2 09:39:25 2005 Chad Elliott <elliott_c@ociweb.com> + + * CCF/CCF/CIDL/CIDL.mpc: + * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc: + * CCF/CCF/CompilerElements/CompilerElements.mpc: + * CCF/CCF/IDL2/IDL2.mpc: + * CCF/CCF/IDL3/IDL3.mpc: + * CIDLC/CIDLC.mpc: + + Converted includes to incorporate $(CIAO_ROOT). This allows the + GNUACEProjectCreator to recognize these projects as CIAO projects. + + * DAnCE/ciao/CCM_Core.mpc: + * ciao/CCM_Core.mpc: + * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc: + * tools/Segment_Timer/Segment_Timer.mpc: + + Added a bogus include of $(CIAO_ROOT). This allows the + GNUACEProjectCreator to recognize these projects as CIAO projects. + +Wed Feb 2 14:33:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * rules.ciao.GNU: + New rules file to set the correct SOVERSION and SONAME values + +Wed Feb 2 10:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/Port_Activator_T.cpp: + Added include of OS_NS_string.h to get ACE_OS::strcmp + +Tue Feb 1 18:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/CCM_Core.mpc: + * DAnCE/ciao/CCM_Core.mpc: + Removed some ciaoversion based projects I missed during my checkin + below + +Tue Feb 1 13:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/CCM_Core.mpc: + * DAnCE/ciao/CCM_Core.mpc: + Removed ciaoversion as base project. This will be removed because it + results in the fact that each generated GNU makefile will get the + version number generated. We want that the GNU make rules get the + version number from Version.h + +Mon Jan 31 21:00:12 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * CIDLC/ServantSourceGenerator.cpp (pre): + + Generate '#include "ace/OS_NS_string.h"' directive. CIAO CIDL + servant sources call ACE_OS::strcmp(), the prototype of which is + found in that header. Necessitated by inter-header dependency + reductions in ACE. + +Mon Jan 31 11:59:04 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Any_Handler.cpp: + * DAnCE/Config_Handlers/CPK_Handler.cpp: + * DAnCE/Config_Handlers/DT_Handler.cpp: + * DAnCE/Config_Handlers/Property_Handler.cpp: + * DAnCE/Config_Handlers/RS_Handler.cpp: + * DAnCE/Config_Handlers/Requirement_Handler.cpp: + * DAnCE/Config_Handlers/SP_Handler.cpp: + * DAnCE/ciao/Port_Activator_T.cpp: + * DAnCE/examples/BasicSP/BMClosedED/BMClosedED_exec.cpp: + * ciao/Container_Impl.cpp: + * performance-tests/Protocols/Controller/Controller.cpp: + * tools/RTComponentServer/RTConfig_Manager.cpp: + * tools/RTComponentServer/RTConfig_Manager.h: + * tools/RTComponentServer/RTServer_Impl.cpp: + + Added missing header include directives that are necessary due + to inter-header dependency reductions in ACE. + +Sun Jan 30 20:30:46 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * DAnCE/DomainApplicationManager/Deployment_Configuration.h: + * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp: + * DAnCE/ExecutionManager/ExecutionManager_Impl.h: + * DAnCE/NodeApplicationManager/ImplementationInfo.cpp: + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h: + * DAnCE/ciao/Container_Base.cpp: + * DAnCE/ciao/NodeApplication_Impl.cpp: + * ciao/Container_Base.cpp: + * ciao/ServerActivator_Impl.h: + * docs/tutorial/Hello/hello_exec.cpp: + * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp: + * tests/RTCCM/Priority_Test/Controllers/client.cpp: + * tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.cpp: + * tools/Assembly_Deployer/Deployment_Configuration.h: + * tools/RTComponentServer/RTServer_Impl.cpp: + + Added missing header include directives that are necessary due + to inter-header dependency reductions in ACE. + +Sun Jan 23 01:49:51 2005 Marek Brudka <mbrudka@aster.pl> + + * examples/OEP/Display/NavDisplayGUI_exec/README (Module): + * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc (Module): + Changes related with separation of GUI reactors. + The additional information is avalaible in ChangeLog at REACTOR_SEPARATION branch (below). + + Mon Dec 6 00:39:19 2004 Marek Brudka <mbrudka@aster.pl> + + * examples/OEP/Display/NavDisplayGUI_exec/README (Module): + Remove reference to ACE_HAS_QT. + + * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc (Module): + Removed deprecated qt_moc base project. + +Fri Jan 21 17:27:12 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc + + Fixed dependency relationship by making + NodeAppTest_RoundTrip_stub depending on CIAO_DnC_Container. + + * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp + + Fixed warning on Debian_Full_Reactor build. The warning is + caused because of assigning "const char*" to a "char *" type. + + Thanks Johnny Willemsen <jwillemsen@remedy.nl> for pointing + these. + +Thu Jan 20 18:29:47 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * DAnCE/Config_Handlers/Any_Handler.cpp: + * DAnCE/Config_Handlers/Utils.cpp: + * performance-tests/Protocols/Sender/Sender_exec.cpp: + * tools/Daemon/Daemon_Impl.cpp: + + Converted all ACE_{static,dynamic,reinterpret,const}_cast macros + calls to their standard C++ counterparts using new + bin/ACE-casts-convert script. The ACE cast macros were + deprecated back in ACE 5.4.2. + +Thu Jan 20 09:54:04 2005 Nanbor Wang <nanbor@cs.wustl.edu> + + * examples/OEP/Display/descriptors/NOTE.txt: + * examples/OEP/Display/descriptors/NOTE-win.txt: + + Fixed the discrepancy on using Assembly_Deployer. Thanks to + Martina Yen <martina_h_yen@raytheon.com> for reporting this. + +Wed Jan 19 09:39:14 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/examples/BasicSP/BasicSP.mpc + * DAnCE/examples/BasicSP/BMClosedED/BMClosedED.mpc + * DAnCE/examples/BasicSP/BMDevice/BMDevice.mpc + * DAnCE/examples/BasicSP/BMDisplay/BMDisplay.mpc + * DAnCE/examples/BasicSP/EC/EC.mpc + + Changed the shared component library name from + <what_ever_component>_DnC_<stub> to <What_ever_component>_<stub>, + since it doesn't make sense to let the modelers to put _DnC + trailing a component name. + + The same change applied to _svnt and _exec libraries. + + * DAnCE/examples/BasicSP/descriptors/basicNodeDaemon.pl + + Fixed this script since Some earlier cosmetic change make + this perl script broken. + + Thanks Steven Baker <Steven_D_Baker@raytheon.com> and + Sam Abbe <sam_abbe@raytheon.com> to pointing errors to + run this example. + +Sat Jan 15 15:16:14 2005 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/examples/BasicSP/README.html + + Updated this README file for instructions on running the BasicSP + example by using DAnCE. Thanks Sam Abbe <sam_abbe@raytheon.com> + for pointing errors on this document page. This fixes bugid + 2031. + +Mon Jan 10 09:45:14 2005 Nanbor Wang <nanbor@cs.wustl.edu> + + * DAnCE/RTNodeApplication/RTServer_Impl.h: + * DAnCE/RTNodeApplication/RTServer_Impl.cpp: Removed init method + altogether. VC6 can't handle the syntax and we'll deal with + later. + +Fri Jan 7 10:02:02 2005 Nanbor Wang <nanbor@cs.wustl.edu> + + * DAnCE/RTNodeApplication/RTServer_Impl.cpp (init): Changed to + call the virtual function defined by the parent explicitly with + this pointer to work around a VC6 bug. + +Wed Jan 5 15:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/DomainApplicationManager/Deployment_Configuration.inl: + * DAnCE/tests/Config_Handlers/Handler_Test.i: + Removed inl/i file, updated h,cpp + +Wed Jan 5 14:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tools/Assembly_Deployer/Deployment_Configuration.{h,cpp,inl}: + * tools/XML_Helpers/XML_Utils.{h,cpp,inl}: + Removed inl file, updated h,cpp + +Wed Jan 5 10:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * DAnCE/RTNodeApplication/RTServer_Impl.h: + Fixed compile problem in emulated exception builds due to + incorrect environment macro + +Mon Jan 3 10:01:09 2005 Nanbor Wang <nanbor@cs.wustl.edu> + + * DAnCE/RTNodeApplication/README: + * DAnCE/RTNodeApplication/NodeApplication_Task.cpp: + * DAnCE/RTNodeApplication/NodeApplication_Task.h: + * DAnCE/RTNodeApplication/NodeApplication_Task.inl: + * DAnCE/RTNodeApplication/RTNodeApplication.cpp: + * DAnCE/RTNodeApplication/RTNodeApplication.mpc: + * DAnCE/RTNodeApplication/RTServer_Impl.cpp: + * DAnCE/RTNodeApplication/RTServer_Impl.h: + * DAnCE/RTNodeApplication/RTServer_Impl.inl: + * DAnCE/RTNodeApplication/senv.sh: Added a minimal + real-time-enabled NodeApplication server. + +Mon Jan 3 12:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * ciao/CCM_Core.mpc: + * DAnCE/ciao/CCM_Core.mpc: + Added ciaoversion as base project to all projects so that SOVERSION + is set to the correct version number in the GNU makefiles + +Thu Dec 30 13:24:16 2004 Chris Cleeland <cleeland@ociweb.com> + + * CIAO version 0.4.3 released. + + diff --git a/TAO/CIAO/DAnCE/Interfaces/ExecutionManagerDaemon.idl b/TAO/CIAO/DAnCE/Interfaces/ExecutionManagerDaemon.idl new file mode 100644 index 00000000000..121901c4b21 --- /dev/null +++ b/TAO/CIAO/DAnCE/Interfaces/ExecutionManagerDaemon.idl @@ -0,0 +1,25 @@ +// $Id$ + +/** + * @file ExecutionManagerDaemon.idl + * + * @brief Simple interface to control the ExecutionManager. This + * interface currently provides an additional method called shutdown + * to terminate the process cleanly. + */ + +#include "ciao/ExecutionManager.idl" + +module CIAO +{ + /** + * @brief CIAO Execution Manager Program + * + * This feature addition is added using inheritance mechanism currently + */ + interface ExecutionManagerDaemon : Deployment::ExecutionManager + { + // Shutdown the daemon process. + oneway void shutdown (); + }; +}; diff --git a/TAO/CIAO/DAnCE/Interfaces/Interfaces.mpc b/TAO/CIAO/DAnCE/Interfaces/Interfaces.mpc new file mode 100644 index 00000000000..00f5b5192d9 --- /dev/null +++ b/TAO/CIAO/DAnCE/Interfaces/Interfaces.mpc @@ -0,0 +1,39 @@ +// -*- MPC -*- +// $Id$ + +project (ExecutionManager_stub): ciao_deployment_stub { + + sharedname = ExecutionManager_stub + + idlflags += -Wb,stub_export_macro=ExecutionManager_stub_Export + idlflags += -Wb,stub_export_include=ExecutionManager_stub_export.h + + dynamicflags = EXECUTIONMANAGER_STUB_BUILD_DLL + + IDL_Files { + ExecutionManagerDaemon.idl + } + + Source_Files { + ExecutionManagerDaemonC.cpp + } +} + +project (NodeManager_stub): ciao_deployment_stub { + sharedname = NodeManager_stub + + idlflags += -Wb,stub_export_macro=NodeManager_stub_Export + idlflags += -Wb,stub_export_include=NodeManager_stub_export.h + idlflags += -Wb,skel_export_macro=NodeManager_svnt_Export + idlflags += -Wb,skel_export_include=NodeManager_svnt_export.h + + dynamicflags = NODEMANAGER_STUB_BUILD_DLL + + IDL_Files { + NodeManagerDaemon.idl + } + + Source_Files { + NodeManagerDaemonC.cpp + } +} diff --git a/TAO/CIAO/DAnCE/Interfaces/NodeManagerDaemon.idl b/TAO/CIAO/DAnCE/Interfaces/NodeManagerDaemon.idl new file mode 100644 index 00000000000..034929e86bf --- /dev/null +++ b/TAO/CIAO/DAnCE/Interfaces/NodeManagerDaemon.idl @@ -0,0 +1,34 @@ +// $Id$ + +/** + * @file NodeManagerDaemon.idl + * + * @brief Controling interface for managing and controling CIAO daemon. + */ + +#include "ciao/NodeManager.idl" + +module CIAO +{ + /** + * @brief CIAO daemon process control program. + * + * @@The Inheritage might cause binary code bloating but + * it's an easy way of combining features. In the future we could + * move this definition into Deployment.idl. + */ + interface NodeManagerDaemon : Deployment::NodeManager + { + // Canonical name of this daemon + readonly attribute string name; + + // Shutdown the daemon process. + oneway void shutdown (); + + /// RACE specific extension. + /// Modify the priority of a node application process. + long set_priority (in string plan_id, + in string cid, + in ::Deployment::Sched_Params nm_params); + }; +}; diff --git a/TAO/CIAO/DAnCE/Interfaces/README b/TAO/CIAO/DAnCE/Interfaces/README new file mode 100644 index 00000000000..0118689ad70 --- /dev/null +++ b/TAO/CIAO/DAnCE/Interfaces/README @@ -0,0 +1,2 @@ +To resolve the MPC issue of directory dependency, we have to put some IDL +files into a separate directory. This directory servers for this purpose. diff --git a/TAO/CIAO/DAnCE/NodeApplication/Configurator_Factory.cpp b/TAO/CIAO/DAnCE/NodeApplication/Configurator_Factory.cpp new file mode 100644 index 00000000000..e87684ad8ad --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/Configurator_Factory.cpp @@ -0,0 +1,117 @@ +// $Id$ + +#include "Configurator_Factory.h" +#include "NoOp_Configurator.h" +#include "ace/Null_Mutex.h" +#include "ciao/CIAO_common.h" +#include "ace/Arg_Shifter.h" + + +int +CIAO::NodeApplication_Options::parse_args (int &argc, char *argv[]) +{ + // ACE_Get_Opt get_opts (argc, argv, "nrk:o:"); + ACE_Arg_Shifter shifter (argc, argv); + + while (shifter.is_anything_left ()) { + const char *parm = 0; + + if (shifter.cur_arg_strncasecmp ("-n") == 0) // Use callback. + { + this->use_callback_ = 0; + shifter.consume_arg (); + } + else if (shifter.cur_arg_strncasecmp ("-r") == 0) + { + this->rt_support_ = 1; + shifter.consume_arg (); + } + else if (ACE_OS::strncmp (shifter.get_current (), + "-ORB", + ACE_OS::strlen ("-ORB")) == 0) + { + // Ignore ORB parameter + shifter.ignore_arg (); + } + else if (shifter.cur_arg_strncasecmp ("-o") == 0) + { + // This double checking is necessary to avoid the Arg_Shifter from + // mistaking any -ORBxxx flag as -o flag. + if ((parm = shifter.get_the_parameter ("-o")) !=0) + { + this->ior_output_filename_ = parm; + } + shifter.consume_arg (); + } + else if ((parm = shifter.get_the_parameter ("-k")) !=0) + { + this->callback_ior_ = parm; + shifter.consume_arg (); + } + else if (shifter.cur_arg_strncasecmp ("-h") == 0) + { + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s\n" + "-n Do not use Callback (for testing)\n" + "-o <ior_output_file>\n" + "-k <NodeApplicationManager_callback_ior>\n" + "-r Request RT support\n" + "-h Usage help" + "\n", + argv [0]), + -1); + shifter.consume_arg (); + } + else + shifter.ignore_arg (); + + } + + if (this->use_callback_ && this->callback_ior_.length() == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Callback IOR to NodeApplicationManager is required.\n"), + -1); + + return 0; +} + +CIAO::NodeApp_Configurator * +CIAO::NodeApplication_Options::create_nodeapp_configurator (void) +{ + typedef CIAO::NodeApp_Configurator * (*intelligent_designer)(void); + + CIAO::NodeApp_Configurator* ptr = 0; + + if (this->rt_support_) + { + int retval = this->config_dll_.open + (ACE_DLL_PREFIX ACE_TEXT("CIAO_RTNA_Configurator"), + ACE_DEFAULT_SHLIB_MODE, 0); + + if (retval != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "%p\n", + "dll.open"), + 0); + intelligent_designer config_id; // "id" is for intelligent-designer + + config_id = (intelligent_designer) this->config_dll_.symbol (ACE_TEXT("create_nodeapp_configurator")); + + if (config_id == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "%p", + "dll.symbol"), + 0); + ptr = config_id (); + if (ptr == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Error creating RTNodeApp_Configurator\n"), + 0); + } + else + ACE_NEW_RETURN (ptr, + CIAO::NoOp_Configurator (), + 0); + + return ptr; +} diff --git a/TAO/CIAO/DAnCE/NodeApplication/Configurator_Factory.h b/TAO/CIAO/DAnCE/NodeApplication/Configurator_Factory.h new file mode 100644 index 00000000000..e3302eb9182 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/Configurator_Factory.h @@ -0,0 +1,102 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Configurator_Factory.h + * + * $Id$ + * + * Configurator Facotry contains the factory method for creating concret + * NodeApp_Configurator object. + * + * @author Nanbor Wang <nanbor@cs.wustl.edu> + */ +//============================================================================= + + +#ifndef CIAO_CONFIGURATOR_FACTORY_H +#define CIAO_CONFIGURATOR_FACTORY_H +#include /**/ "ace/pre.h" + +#include "tao/ORB_Core.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/ORB.h" +#include "ace/Task.h" +#include "ace/SString.h" +#include "ace/Auto_Ptr.h" +#include "ace/DLL.h" +#include "NodeApp_Configurator.h" + +namespace CIAO +{ + + + /** + * @class NodeApplication_Options + * + * @brief An class for managing and extracting command line options + * for NodeApplication. + * + * @note We currently support loading one single external module for + * RT support. Perhaps how this should really be done is to allow + * the NodeApplication_Core to load up a list of external modules + * (in DLLs or otherwise) and call the corresponding init methods in + * sequence. This way, we open up the component server so system + * developers can plug in their own system configuration needs into + * the whole system. + */ + class NodeApplication_Options + { + public: + // default ctor. + NodeApplication_Options () : use_callback_ (1), rt_support_ (0) {} + + // extracting commandline arguments + int parse_args (int &argc, char *argv[]); + + NodeApp_Configurator *create_nodeapp_configurator (void); + + int use_callback () {return this->use_callback_; } + + int rt_support () {return this->rt_support_; } + + int write_ior_file () + { return (this->ior_output_filename_.length () != 0); } + + const char *ior_output_filename () + { return this->ior_output_filename_.c_str (); } + + const char *callback_ior () + { return this->callback_ior_.c_str (); } + + private: + // The name of the file to write stringified IOR to. + ACE_CString ior_output_filename_; + + // Stringified IOR of a CIAO's callback object. + ACE_CString callback_ior_; + + // CIAO ComponentServer uses the callback object to pass it's + // own object reference back to NodeApplicationManager. + int use_callback_; + + // If we need to support RT-CORBA. Currently, this is + // mandatory, but we can probably allow some sort of + // "best-effort" RT support. I.e., if the platform/environment + // doesn't support RT, then we will still deploy the NodeApp but + // ignore the RT spec. Perhaps something in the future. + int rt_support_; + + // For managing dynamically loaded configurator library + ACE_DLL config_dll_; + }; + +} + + +#include /**/ "ace/post.h" +#endif /* CIAO_CONFIGURATOR_FACTORY_H */ diff --git a/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.cpp b/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.cpp new file mode 100644 index 00000000000..7497654143a --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.cpp @@ -0,0 +1,685 @@ +// $Id$ + +#include "Container_Impl.h" +#include "ciao/CCM_ComponentC.h" // for calling StandardConfigurator interface + +#include "orbsvcs/CosNamingC.h" + +#if !defined (__ACE_INLINE__) +# include "Container_Impl.inl" +#endif /* __ACE_INLINE__ */ + +CIAO::Container_Impl::~Container_Impl () +{ + // @@ remove all components and home? + delete this->container_; +} + +PortableServer::POA_ptr +CIAO::Container_Impl::_default_POA (void) +{ + CIAO_TRACE ("CIAO::Container_Impl::_default_POA"); + return PortableServer::POA::_duplicate (this->poa_.in ()); +} + + /////////////////////////////////////////////////////////////// + +CORBA::Long +CIAO::Container_Impl::init (const CORBA::PolicyList *policies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + CIAO_TRACE ("CIAO::Container_Impl::init"); + // @@ Initialize container and create the internal container + // implementation that actually interacts with installed + // homes/components. + + // @@ We will need a container factory here later on when we support + // more kinds of container implementations. + + // @@Jai, what is the condition to create an upgradeable container? + // Where is it getting created and how? Need to address that. + + if (this->static_entrypts_maps_ == 0) + { + ACE_NEW_THROW_EX (this->container_, + CIAO::Session_Container (this->orb_.in (), this), + CORBA::INTERNAL ()); + ACE_CHECK_RETURN (-1); + } + else + { + ACE_NEW_THROW_EX (this->container_, + CIAO::Session_Container (this->orb_.in (), this, 1, + this->static_entrypts_maps_), + CORBA::INTERNAL ()); + ACE_CHECK_RETURN (-1); + } + + return this->container_->init (0, + policies + ACE_ENV_ARG_PARAMETER); +} + + +Deployment::ComponentInfos * +CIAO::Container_Impl::install ( + const ::Deployment::ContainerImplementationInfo & container_impl_info + ACE_ENV_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException, + ::Deployment::UnknownImplId, + ::Deployment::ImplEntryPointNotFound, + ::Deployment::InstallationFailure, + ::Components::InvalidConfiguration)) +{ + CIAO_TRACE ("CIAO::Container_Impl::install"); + Deployment::ComponentInfos_var retv; + ACE_TRY + { + ACE_NEW_THROW_EX (retv, + Deployment::ComponentInfos, + CORBA::NO_MEMORY ()); + ACE_TRY_CHECK; + + // Get the ComponentImplementationInfos from the + // ContainerImplementationInfo + // to avoid too long syntax representation + const ::Deployment::ComponentImplementationInfos impl_infos = + container_impl_info.impl_infos; + + const CORBA::ULong len = impl_infos.length (); + retv->length (len); + + for (CORBA::ULong i = 0; i < len; ++i) + { + // Install home + Components::CCMHome_var home = + this->install_home (impl_infos[i] + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Components::KeylessCCMHome_var kh = + Components::KeylessCCMHome::_narrow (home.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (kh.in ())) + ACE_TRY_THROW (Deployment::InstallationFailure ()); + + // Create component from home + Components::CCMObject_var comp = + kh->create_component (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (comp.in ())) + ACE_TRY_THROW (Deployment::InstallationFailure ()); + + if (this->component_map_.bind + (impl_infos[i].component_instance_name.in (), + Components::CCMObject::_duplicate (comp.in ()))) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) Container_Impl.cpp -" + "CIAO::Container_Impl::install -" + "error in binding component " + "instance name [%s] into the component map \n", + impl_infos[i].component_instance_name.in ())); + ACE_TRY_THROW (Deployment::InstallationFailure ()); + } + + // Set the return value. + (*retv)[i].component_instance_name + = impl_infos[i].component_instance_name.in (); + + (*retv)[i].component_ref = + Components::CCMObject::_duplicate (comp.in ()); + + // Deal with Component instance related Properties. + // Now I am only concerning about the COMPOENTIOR and attribute + // configuration initialization. + + // I need to map Properties to Components::ConfigValues + ::Components::ConfigValues comp_attributes; + comp_attributes.length (0); + + const CORBA::ULong clen = impl_infos[i].component_config.length (); + for (CORBA::ULong prop_len = 0; prop_len < clen; ++prop_len) + { + // Set up the ComponentIOR attribute + if (ACE_OS::strcmp + (impl_infos[i].component_config[prop_len].name.in (), + "ComponentIOR") == 0) + { + const char * path; + impl_infos[i].component_config[prop_len].value >>= path; + + CORBA::String_var ior = + this->orb_->object_to_string (comp.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CIAO::Utility::write_IOR (path, ior.in ()) != 0) + { + if (CIAO::debug_level () > 1) + ACE_DEBUG ((LM_DEBUG, "Failed to write the IOR.\n")); + + ACE_TRY_THROW (CORBA::INTERNAL ()); + } + } + + // Set up the naming service attribute + if (ACE_OS::strcmp + (impl_infos[i].component_config[prop_len].name.in (), + "RegisterNaming") == 0) + { + const char * naming_context; + impl_infos[i]. + component_config[prop_len].value >>= naming_context; + + // Register the component with the naming service + ACE_DEBUG ((LM_DEBUG, + "Register component with naming service.\n")); + bool result = + register_with_ns ( + naming_context, + this->orb_.in (), + Components::CCMObject::_duplicate (comp.in ()) + ACE_ENV_ARG_PARAMETER + ); + ACE_TRY_CHECK; + + if (!result) + { + ACE_DEBUG ((LM_DEBUG, + "Failed to register with naming service.\n")); + } + else + { + if (this->naming_map_.bind + (impl_infos[i].component_instance_name.in (), + ACE_CString (naming_context))) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) Container_Impl.cpp -" + "CIAO::Container_Impl::install -" + "error in binding component " + "instance name [%s] into the naming map \n", + impl_infos[i].component_instance_name.in ())); + ACE_TRY_THROW (Deployment::InstallationFailure ()); + } + } + + + } + + // Initialize attributes through StandardConfigurator interface + // @@Todo: Currently I have to manually map + // the Deployment::Properties to + // Components::ConfigValues, we should use a + // common data structure in + // the future. - Gan + CORBA::ULong cur_len = comp_attributes.length (); + comp_attributes.length (cur_len + 1); + + Components::ConfigValue *item = new OBV_Components::ConfigValue (); + item->name (impl_infos[i].component_config[prop_len].name.in ()); + CORBA::Any tmp = impl_infos[i].component_config[prop_len].value; + item->value (tmp); + + comp_attributes[cur_len] = item; + } + + if (comp_attributes.length () != 0) + { + //std_configurator.set_configuration + ::Components::StandardConfigurator_var std_configurator = + comp->get_standard_configurator (); + + std_configurator->set_configuration (comp_attributes); + } + } + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Container_Impl::install\t\n"); + ACE_RE_THROW; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (0); + + return retv._retn (); +} + +::Deployment::Properties * +CIAO::Container_Impl::properties (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + CIAO_TRACE ("CIAO::Container_Impl::properties"); + ::Deployment::Properties *retval; + + ACE_NEW_THROW_EX (retval, + ::Deployment::Properties, + CORBA::INTERNAL ()); + ACE_CHECK_RETURN (0); + + *retval = this->properties_; + + return retval; +} + +::Deployment::NodeApplication_ptr +CIAO::Container_Impl::get_node_application (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + CIAO_TRACE ("CIAO::Container_Impl::get_node_application"); + return ::Deployment::NodeApplication::_duplicate (this->nodeapp_.in ()); +} + +::Components::CCMHome_ptr +CIAO::Container_Impl::install_home ( + const ::Deployment::ComponentImplementationInfo & impl_info + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::UnknownImplId, + Deployment::ImplEntryPointNotFound, + Deployment::InstallationFailure, + Components::InvalidConfiguration)) +{ + CIAO_TRACE ("CIAO::Container_Impl::install_home"); + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) Container_Impl.cpp -" + "CIAO::Container_Impl::install_home -" + "installing home for component " + "instance [%s] \n", + impl_info.component_instance_name.in ())); + } + + Components::CCMHome_var newhome = + this->container_->ciao_install_home (impl_info.executor_dll.in (), + impl_info.executor_entrypt.in (), + impl_info.servant_dll.in (), + impl_info.servant_entrypt.in (), + impl_info.component_instance_name.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (Components::CCMHome::_nil ()); + + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) Container_Impl.cpp -" + "CIAO::Container_Impl::install_home -" + "success in installing home for component " + "instance [%s] \n", + impl_info.component_instance_name.in ())); + } + + // We don't have to do _narrow since the generated code makes sure of + // the object type for us + // Bind the home in the map. + if (this->home_map_.bind (impl_info.component_instance_name.in (), + Components::CCMHome::_duplicate (newhome.in ()))) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) Container_Impl.cpp -" + "CIAO::Container_Impl::install_home -" + "error in binding home for component " + "instance [%s] \n", + impl_info.component_instance_name.in ())); + ACE_THROW_RETURN (Deployment::InstallationFailure (), + Components::CCMHome::_nil ()); + } + + //Note: If the return value will be discarded, it must be kept in a var or + // release () will have to be called explicitly. + return newhome._retn (); +} + + +void +CIAO::Container_Impl::remove_home (const char * comp_ins_name + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::RemoveFailure)) +{ + CIAO_TRACE ("CIAO::Container_Impl::remove_home"); + + Components::CCMHome_ptr home; + ACE_CString str (comp_ins_name); + + if (this->home_map_.find (str, home) != 0) + ACE_THROW (CORBA::BAD_PARAM ()); + + // @@TODO We should remove all components created by this home as well. + // This is not implemented yet. + + this->container_->ciao_uninstall_home (home + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + // If the previous calls failed, what should we do here?? + CORBA::release (home); + + // @@ Still need to remove the home if the previous operation fails? + if (this->home_map_.unbind (str) == -1) + ACE_THROW (::Components::RemoveFailure ()); +} + +::Components::CCMHomes * +CIAO::Container_Impl::get_homes (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + CIAO_TRACE ("CIAO::Container_Impl::get_homes"); + Components::CCMHomes * tmp; + ACE_NEW_THROW_EX (tmp, + Components::CCMHomes (), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (0); + + Components::CCMHomes_var retval (tmp); + + const CORBA::ULong len = this->home_map_.current_size (); + retval->length (len); + + + CORBA::ULong i = 0; + const Home_Iterator end = this->home_map_.end (); + for (Home_Iterator iter (this->home_map_.begin ()); + iter != end; + ++iter, ++i) + { + retval[i] = Components::CCMHome::_duplicate ( (*iter).int_id_); + } + + return retval._retn (); +} + +// Remove all homes and components +void +CIAO::Container_Impl::remove (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::RemoveFailure)) +{ + CIAO_TRACE ("CIAO::Container_Impl::remove"); + + // Remove all components first. + this->remove_components (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + // Even if above operation failed we should still remove homes. + const Home_Iterator end = this->home_map_.end (); + for (Home_Iterator iter (this->home_map_.begin ()); + iter != end; + ++iter) + { + this->container_->ciao_uninstall_home ( (*iter).int_id_ + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + CORBA::release ( (*iter).int_id_); + } + + this->home_map_.unbind_all (); + + if (CIAO::debug_level () > 3) + ACE_DEBUG ((LM_DEBUG, + "Removed all homes and components from this container!\n")); +} + +//////////////////////////////////////////////////////////////////////// +// Internal helper functions. +//////////////////////////////////////////////////////////////////////// + +void +CIAO::Container_Impl::remove_components (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::RemoveFailure)) +{ + CIAO_TRACE ("CIAO::Container_Impl::remove_components"); + + // Remove all the components in the NodeApplication/Container + // Release all component servant object. + const Component_Iterator end = this->component_map_.end (); + for (Component_Iterator iter (this->component_map_.begin ()); + iter != end; + ++iter) + { + // Find the component home first, then call the remove_component + // on the home. + Components::CCMHome_ptr home; + if (this->home_map_.find ( (*iter).ext_id_, home) != 0) + ACE_THROW (CORBA::BAD_PARAM ()); + + // This will call ccm_passivate on the component executor. + home->remove_component (((*iter).int_id_).in ()); + ACE_CHECK; + + //CORBA::release (((*iter).int_id_).in ()); + } + + this->component_map_.unbind_all (); + // To this point the servant should have been destroyed. However, + // if someone is still making calls on the servant, terrible thing + // will happen. +} + + +// Below method is not used actually. +void +CIAO::Container_Impl::remove_component (const char * comp_ins_name + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::RemoveFailure)) +{ + CIAO_TRACE ("CIAO::Container_Impl::remove_component"); + + Components::CCMObject_var comp; + Components::CCMHome_ptr home; + + ACE_CString naming_context; + + ACE_CString str (comp_ins_name); + + if (CIAO::debug_level () > 5) + ACE_DEBUG ((LM_DEBUG, "CIAO::COntainer_Impl::remove_component: Removing comp_ins_name:: %s\n", + str.c_str ())); + + /* Before we do remove component we have to inform the homeservant so + * Component::ccm_passivate () + * constainer::uninstall_component () ->deactivate_object () will be called. + * + * ccm_remove will be called when the poa destroys the servant. + */ + + if (this->component_map_.find (str, comp) != 0) + ACE_THROW (CORBA::BAD_PARAM ()); + + if (this->home_map_.find (str, home) != 0) + ACE_THROW (CORBA::BAD_PARAM ()); + + // This will call ccm_passivate on the component executor. + home->remove_component (comp.in ()); + ACE_CHECK; + + // If the previous calls failed, what should we do here?? + + // @@ Still need to remove the home if the previous operation fails? + if (this->component_map_.unbind (str) == -1) + ACE_THROW (::Components::RemoveFailure ()); + + if (this->naming_map_.find (str, naming_context) == 0) + { + + bool result = + unregister_with_ns ( + naming_context.c_str (), + this->orb_.in () + ACE_ENV_ARG_PARAMETER + ); + ACE_TRY_CHECK; + + if (!result) + { + ACE_DEBUG ((LM_DEBUG, + "Failed to unregister with naming service.\n")); + } + else + { + if (this->naming_map_.unbind (str) == -1) + ACE_THROW (::Components::RemoveFailure ()); + } + } +} + +bool +CIAO::Container_Impl::register_with_ns (const char * s, + CORBA::ORB_ptr orb, + Components::CCMObject_ptr obj + ACE_ENV_ARG_DECL) +{ + CIAO_TRACE ("CIAO::Container_Impl::register_with_ns"); + + ACE_TRY + { + // Obtain the naming service + CORBA::Object_var naming_obj = + orb->resolve_initial_references ("NameService" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (naming_obj.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + "DAnCE: (%P|%t) Unable to get the Naming Service.\n"), + false); + + CosNaming::NamingContextExt_var root = + CosNaming::NamingContextExt::_narrow (naming_obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CosNaming::Name name (0); + name.length (0); + + // Get the multicomponent naming context from the <naming_context>. + // The convention of this <naming_context> input string is that + // different naming context is separated by character '/', such as + // "create a naming context A/B/C/D". + ACE_CString tmp (s); + char * naming_string = tmp.rep (); + char seps[] = "/:"; + + char *token, *lastToken = 0; + token = ACE_OS::strtok (naming_string, seps); + + for (CORBA::ULong i = 0; token != 0; ++i) + { + // While there still are tokens in the "naming_string" + name.length (name.length () + 1); + name[i].id = CORBA::string_dup (token); + + // Get next naming context + lastToken = token; + token = ACE_OS::strtok ( 0, seps ); + } + + if (name.length() > 1) + { + // Let's create the context path first + name.length(name.length()-1); + Utility::NameUtility::CreateContextPath (root.in (), name); + name.length(name.length()+1); + name[name.length()-1].id = CORBA::string_dup(lastToken); + } + + // Bind the actual object + Utility::NameUtility::BindObjectPath (root.in (), name, obj); + + return true; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "CIAO (%P|%t) Container_Impl.cpp -" + "CIAO::Container_Impl::register_with_ns -" + "NodeApplication: failed to register " + "with naming service."); + return false; + } + ACE_ENDTRY; + return true; +} + +bool +CIAO::Container_Impl::unregister_with_ns (const char * obj_name, + CORBA::ORB_ptr orb + ACE_ENV_ARG_DECL) +{ + CIAO_TRACE ("CIAO::Container_Impl::unregister_with_ns"); + + ACE_TRY + { + // Obtain the naming service + CORBA::Object_var naming_obj = + orb->resolve_initial_references ("NameService" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (naming_obj.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to get the Naming Service.\n"), + false); + + CosNaming::NamingContext_var naming_context = + CosNaming::NamingContext::_narrow (naming_obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CosNaming::Name name (0); + name.length (0); + + // Get the multicomponent naming context from the <naming_context>. + // The convention of this <naming_context> input string is that + // different naming context is separated by character '/', such as + // "create a naming context A/B/C/D". + ACE_CString tmp (obj_name); + char * naming_string = tmp.rep (); + char seps[] = "/:"; + + char *token, *lastToken = 0; + token = ACE_OS::strtok (naming_string, seps); + + for (CORBA::ULong i = 0; token != 0; ++i) + { + // While there still are tokens in the "naming_string" + name.length (name.length () + 1); + name[i].id = CORBA::string_dup (token); + + // Get next naming context + lastToken = token; + token = ACE_OS::strtok ( 0, seps ); + } + + // Unregister with the Name Server + ACE_DEBUG ((LM_DEBUG, + "Unregister component with the name server : %s!\n", + obj_name)); + naming_context->unbind (name ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + return true; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "CIAO (%P|%t) Container_Impl.cpp -" + "CIAO::Container_Impl::unregister_with_ns -" + "NodeApplication: failed to unregister " + "with naming service."); + return false; + } + ACE_ENDTRY; + return true; +} diff --git a/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.h b/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.h new file mode 100644 index 00000000000..0549841ce53 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.h @@ -0,0 +1,228 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Container_Impl.h + * + * $Id$ + * + * This file contains implementation for the servant of + * Components::Deployment::Container interface. + * + * @author Nanbor Wang <nanbor@cs.wustl.edu> + * @author Gan Deng <gan.deng@vanderbilt.edu> + */ +//============================================================================= + + +#ifndef CIAO_CONTAINER_IMPL_H +#define CIAO_CONTAINER_IMPL_H +#include /**/ "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ciao/Deployment_CoreS.h" +#include "ciao/Container_Base.h" +//#include "ciao/Swapping_Container.h" +#include "ace/SString.h" +#include "ciao/Server_init.h" // write_IOR function & NameUtility +#include "ciao/CIAO_common.h" // CIAO::debug_level + +namespace CIAO +{ + /** + * @class Container_Impl + * + * @brief Servant implementation for the interface Deployment::Container + * + * This class implements the Deployment::Container + * interface which is not defined by the CCM DnC specification. + * As the interface implies, this is actually part of the deployment + * interface and is used to manage the lifecycle of the installed + * components and homes. + */ + class Container_Impl + : public virtual POA_Deployment::Container + { + public: + /// Constructor + Container_Impl (CORBA::ORB_ptr o, + PortableServer::POA_ptr p, + ::Deployment::NodeApplication_ptr server, + const Static_Config_EntryPoints_Maps* static_entrypts_maps =0); + + /// Destructor + virtual ~Container_Impl (void); + + /*-------------------------------------------------------------*/ + /*-------------------- IDL operations (idl) ------------------*/ + + /// Initialize the container. + virtual CORBA::Long init (const CORBA::PolicyList *policies + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /// Install all homes and components + Deployment::ComponentInfos * + install (const ::Deployment::ContainerImplementationInfo & container_impl_info + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::UnknownImplId, + Deployment::ImplEntryPointNotFound, + Deployment::InstallationFailure, + Components::InvalidConfiguration)); + + /// Remove all homes and components + virtual void + remove (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::RemoveFailure)); + + /// Deployment::Container interface defined attributes/operations. + virtual ::Deployment::Properties * + properties (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual ::Deployment::NodeApplication_ptr + get_node_application (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /*-------------------------------------------------------------*/ + /*------------------- C++ help methods (c++) -----------------*/ + + /// Get the containing POA. This operation does *not* + /// increase the reference count of the POA. + virtual PortableServer::POA_ptr _default_POA (void); + + + // Install the home of this particular component + virtual ::Components::CCMHome_ptr + install_home (const ::Deployment::ComponentImplementationInfo & impl_info + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::UnknownImplId, + Deployment::ImplEntryPointNotFound, + Deployment::InstallationFailure, + Components::InvalidConfiguration)); + + /** + * @@Note: I don't know how to remove a home right now. + * I assume that user will only call remove instead. + * This is true at least for DnC run time. + * + * Right now, in this implementation I assumpe that there will be + * same number of homes as the components even if the components + * are of the same type. I don't think that we have the modeling + * side support of this either. So bear me if you think I avoid + * the real thinking for easiness. + */ + // Remove the home of this particular component + virtual void + remove_home (const char * comp_ins_name + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::RemoveFailure)); + + // Get all homes + virtual ::Components::CCMHomes * + get_homes (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + bool + register_with_ns (const char * obj_name, + CORBA::ORB_ptr orb, + Components::CCMObject_ptr obj + ACE_ENV_ARG_DECL_WITH_DEFAULTS); + + bool + unregister_with_ns (const char * obj_name, + CORBA::ORB_ptr orb + ACE_ENV_ARG_DECL_WITH_DEFAULTS); + + + // ------------------- CIAO Internal Operations ------------------------ + // These below two are helper methods to clean up components + // should only be called when we are sure that there is no + // active connection on this component. + virtual void remove_components (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::RemoveFailure)); + + virtual void remove_component (const char * comp_ins_name + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::RemoveFailure)); + + /// Set the cached object reference. + void set_objref (Deployment::Container_ptr o + ACE_ENV_ARG_DECL_WITH_DEFAULTS); + + /// Get the cached object reference. This operation will invoke + /// _this if there's no cached reference available. Notice that + /// this method does *NOT* increase the reference count of the + /// cached reference. + /// @@ Gan, caller should own memory. In this case you shoudl + /// return a duplicate OR add a const to the operation + /// signature. This is simply bad programming. + Deployment::Container_ptr get_objref (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); + +protected: + /// Keep a pointer to the managing ORB serving this servant. + CORBA::ORB_var orb_; + + /// Keep a pointer to the managing POA. + PortableServer::POA_var poa_; + + /// Internal container implementation. + // @@ Gan/Jai, heard of auto_ptr <>? + CIAO::Container *container_; + + /// Cached ConfigValues. + Deployment::Properties properties_; + + /// Cached Container reference (of ourselves.) + Deployment::Container_var objref_; + + /// Cached NodeApplication. + Deployment::NodeApplication_var nodeapp_; + + /// To store all created CCMHome object + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + Components::CCMHome_ptr, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> CCMHome_Map; + typedef CCMHome_Map::iterator Home_Iterator; + CCMHome_Map home_map_; + + /// To store all created Component object. + // @@Gan, see how this caching is duplicated.. + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + Components::CCMObject_var, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> CCMComponent_Map; + typedef CCMComponent_Map::iterator Component_Iterator; + CCMComponent_Map component_map_; + + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + ACE_CString, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> CCMNaming_Map; + CCMNaming_Map naming_map_; + + const Static_Config_EntryPoints_Maps* static_entrypts_maps_; + }; +} + +#if defined (__ACE_INLINE__) +# include "Container_Impl.inl" +#endif /* __ACE_INLINE__ */ + +#include /**/ "ace/post.h" +#endif /* CIAO_CONTAINER_IMPL_H */ diff --git a/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.inl b/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.inl new file mode 100644 index 00000000000..e25d1e7e38e --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.inl @@ -0,0 +1,39 @@ +/* -*- C++ -*- */ +// $Id$ + +ACE_INLINE +CIAO::Container_Impl::Container_Impl (CORBA::ORB_ptr o, + PortableServer::POA_ptr p, + ::Deployment::NodeApplication_ptr server, + const Static_Config_EntryPoints_Maps* static_entrypts_maps) + : orb_ (CORBA::ORB::_duplicate (o)), + poa_ (PortableServer::POA::_duplicate (p)), + nodeapp_ (::Deployment::NodeApplication::_duplicate (server)), + static_entrypts_maps_ (static_entrypts_maps) +{ +} + +ACE_INLINE void +CIAO::Container_Impl::set_objref (Deployment::Container_ptr o + ACE_ENV_ARG_DECL) +{ + CIAO_TRACE("CIAO::Container_Imp::set_objref"); + + if (!CORBA::is_nil (this->objref_.in ())) + ACE_THROW (CORBA::BAD_INV_ORDER ()); + + this->objref_ = Deployment::Container::_duplicate (o); +} + +ACE_INLINE ::Deployment::Container_ptr +CIAO::Container_Impl::get_objref (ACE_ENV_SINGLE_ARG_DECL) +{ + CIAO_TRACE("CIAO::Container_Imp::get_objref"); + + if (CORBA::is_nil (this->objref_.in ())) + { + this->objref_ = this->_this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + } + return this->objref_.in (); +} diff --git a/TAO/CIAO/DAnCE/NodeApplication/NoOp_Configurator.h b/TAO/CIAO/DAnCE/NodeApplication/NoOp_Configurator.h new file mode 100644 index 00000000000..6c32b83ce0d --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/NoOp_Configurator.h @@ -0,0 +1,62 @@ +/** $Id$ + * @file NoOp_Configurator.h + * @brief This file contains the noop configurator. + */ + +#ifndef NOOP_CONFIGURATOR_H +#define NOOP_CONFIGURATOR_H + +#include /**/ "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "NodeApp_Configurator.h" +#include "NoOp_Configurator_export.h" + +namespace CIAO +{ + /** + * @class NoOP_Configurator + * + * @brief The NoOp_Configurator doesn't do anything. + */ + class NoOp_Configurator_Export NoOp_Configurator + : public NodeApp_Configurator + { + public: + /// Default destructor. + virtual ~NoOp_Configurator (void); + + /** + * @brief "pre_orb_initialize" is called before ORB_init. + */ + virtual int pre_orb_initialize (void); + + /** + * @brief "post_orb_initialize" is called after NodeApplication + * get a hold at this object. + */ + virtual int post_orb_initialize (CORBA::ORB_ptr o); + + /** + * @brief "init_resource_manager" is called by NodeApplication when + * it receives an "install" commands. + */ + virtual int + init_resource_manager (const ::Deployment::Properties &properties); + + /** + * @brief get a policyset by its name. + */ + virtual CORBA::PolicyList * + find_container_policies (const ::Deployment::Properties &properties); + }; + +} + +#include /**/ "ace/post.h" +#endif /* NOOP_CONFIGURATOR_H */ diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.cpp b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.cpp new file mode 100644 index 00000000000..54d33e52e97 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.cpp @@ -0,0 +1,277 @@ +// $Id$ + +#include "ciao/NodeApplication_CallBackC.h" +#include "ace/Sched_Params.h" +#include "NodeApplication_Impl.h" +#include "NodeApplication_Core.h" +#include "ace/Null_Mutex.h" +#include "ciao/Server_init.h" +#include "ciao/CIAO_common.h" + +#if !defined (__ACE_INLINE__) +# include "NodeApplication_Core.inl" +#endif /* __ACE_INLINE__ */ + +const char * +sched_policy_name (int sched_policy) +{ + const char *name = 0; + + switch (sched_policy) + { + case ACE_SCHED_OTHER: + name = "SCHED_OTHER"; + break; + case ACE_SCHED_RR: + name = "SCHED_RR"; + break; + case ACE_SCHED_FIFO: + name = "SCHED_FIFO"; + break; + } + + return name; +} + + +/// The following check is taken from $(TAO_ROOT)/tests/RTCORBA/ +int +check_supported_priorities (CORBA::ORB_ptr orb) +{ + CIAO_TRACE ("NodeApplication_Core::check_supported_priorities"); + + int sched_policy = + orb->orb_core ()->orb_params ()->ace_sched_policy (); + + // Check that we have sufficient priority range to run, + // i.e., more than 1 priority level. + int max_priority = + ACE_Sched_Params::priority_max (sched_policy); + int min_priority = + ACE_Sched_Params::priority_min (sched_policy); + + if (max_priority == min_priority) + { + ACE_DEBUG ((LM_DEBUG, + "Not enough priority levels with the %s scheduling policy\n" + "on this platform to run, terminating program....\n" + "Check svc.conf options\n", + sched_policy_name (sched_policy))); + + return -1; + } + return 0; +} + +int +CIAO::NodeApplication_Core::svc () +{ + CIAO_TRACE ("CIAO::NodeApplication_Core::svc"); + + ACE_TRY_NEW_ENV + { + CORBA::Object_var object = + this->orb_->resolve_initial_references ("RootPOA" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (object.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + // ... + CIAO::NodeApplication_Impl *nodeapp_servant = 0; + + ACE_NEW_RETURN (nodeapp_servant, + CIAO::NodeApplication_Impl (this->orb_.in (), + root_poa.in (), + *this->configurator_.get ()), + -1); + + PortableServer::ServantBase_var safe_servant (nodeapp_servant); + + // Configuring NodeApplication. + PortableServer::ObjectId_var nodeapp_oid + = root_poa->activate_object (nodeapp_servant + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + object = root_poa->id_to_reference (nodeapp_oid.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Deployment::NodeApplication_var nodeapp_obj = + Deployment::NodeApplication::_narrow (object.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (nodeapp_obj.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to activate NodeApplication object\n"), + -1); + + /** @@ We need to call NodeApplication servant's init method. + * But it's not sure to me where exactly we can get the + * Properties needed by the init method at this moment. There are two + * ways to set the property of the NodeApplication: + * 1. call init remotely from NodeApplicationManager + * 2. call init locally on the servant of NodeApplication. + */ + bool retval = nodeapp_servant->init (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (retval) + { + ACE_DEBUG ((LM_DEBUG, "NodeApplication Failed on creating and\ + initializing the session container!")); + return 1; + } + + CORBA::String_var str = this->orb_->object_to_string (nodeapp_obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (this->options_.write_ior_file ()) + CIAO::Utility::write_IOR (this->options_.ior_output_filename (), + str.in ()); + + // End Deployment part + if (CIAO::debug_level () > 10) + { + ACE_DEBUG ((LM_INFO, "NodeApplication IOR: %s\n", str.in ())); + + } + + Deployment::NodeApplicationManager_var nodeapp_man; + Deployment::Properties_var prop = new Deployment::Properties; + + if (this->options_.use_callback ()) + { + object = this->orb_->string_to_object (this->options_.callback_ior () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CIAO::NodeApplication_Callback_var nam_callback + = CIAO::NodeApplication_Callback::_narrow (object.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Deployment::Properties_out properties_out (prop.out ()); + + nodeapp_man + = nam_callback->register_node_application (nodeapp_obj.in (), + properties_out + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + + ACE_DEBUG ((LM_DEBUG, + "Running NodeApplication...\n")); + + this->orb_->run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + root_poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->orb_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught"); + return -1; + } + ACE_ENDTRY; + + ACE_DEBUG ((LM_DEBUG, + "Exiting NodeApplication...\n")); + return 0; +} + +int +CIAO::NodeApplication_Core::startup (int argc, char *argv[]) +{ + CIAO_TRACE ("CIAO::NodeApplication_Core::startup"); + + // pre-init + this->configurator_.reset (this->options_.create_nodeapp_configurator ()); + + if (this->configurator_->pre_orb_initialize ()) + return -1; + + // Initialize orb + this->orb_ = + CORBA::ORB_init (argc, + argv, + ""); + CIAO::Server_init (this->orb_.in ()); + + return this->configurator_->post_orb_initialize (this->orb_.in ()); +} + +int +CIAO::NodeApplication_Core::run_orb () +{ + CIAO_TRACE ("CIAO::NodeApplication_Core::run_orb"); + + // check supported priority before running RT + if (this->options_.rt_support () && + check_supported_priorities (this->orb_.in ()) != 0) + { + ACE_ERROR_RETURN ((LM_ERROR, "ERROR: DISABLE RT SUPPORT\n"), -1); + // this->options_.rt_support_ = 0; + } + + if (this->options_.rt_support ()) // RT support reuqested + { + + + // spawn a thread + // Task activation flags. + long flags = + THR_NEW_LWP | + THR_JOINABLE | + this->orb_->orb_core ()->orb_params ()->thread_creation_flags (); + + // Activate task. + int result = + this->activate (flags); + if (result == -1) + { + if (errno == EPERM) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot create thread with scheduling policy %s\n" + "because the user does not have the appropriate privileges, terminating program....\n" + "Check svc.conf options and/or run as root\n", + sched_policy_name (this->orb_->orb_core ()->orb_params ()->ace_sched_policy ())), + 2); + } + else + return -1; + } + + ACE_DEBUG ((LM_DEBUG, "*** Running NodeApplication in RT mode\n")); + + // Wait for task to exit. + result = + this->wait (); + ACE_ASSERT (result != -1); + + ACE_DEBUG ((LM_INFO, "*** Ending NodeApplication\n")); + return 0; + + } + else + return this->svc (); +} + diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.h b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.h new file mode 100644 index 00000000000..3a8795eccea --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.h @@ -0,0 +1,69 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file NodeApplication_Core.h + * + * $Id$ + * + * An ACE_Task subclass that manages the NodeApplication runtime. We + * can run this class as a separate thread, as in the case of RT + * support, or as a event driven ORB. + * + * @author Nanbor Wang <nanbor@cs.wustl.edu> + */ +//============================================================================= + + +#ifndef CIAO_NODEAPPLICATION_CORE_H +#define CIAO_NODEAPPLICATION_CORE_H +#include /**/ "ace/pre.h" + +#include "tao/ORB_Core.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/ORB.h" +#include "ace/Task.h" +#include "ace/Auto_Ptr.h" +#include "Configurator_Factory.h" +#include "NoOp_Configurator.h" + +namespace CIAO +{ + /** + * @class NodeApplication_Core + * + * @brief An ACE_Task subclass that allow the ORB thread to be run + * as separate thread when RT behaviors are needed. + */ + class NodeApplication_Core + : public virtual ACE_Task_Base + { + public: + NodeApplication_Core (NodeApplication_Options &opts); + + virtual int svc (void); + + int startup (int argc, char *argv[]); + + int run_orb (void); + + protected: + CORBA::ORB_var orb_; + + NodeApplication_Options &options_; + + auto_ptr<NodeApp_Configurator> configurator_; + }; + +} + +#if defined (__ACE_INLINE__) +# include "NodeApplication_Core.inl" +#endif /* __ACE_INLINE__ */ + +#include /**/ "ace/post.h" +#endif /* CIAO_NODEAPPLICAITON_CORE_H */ diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.inl b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.inl new file mode 100644 index 00000000000..85a0add56a7 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.inl @@ -0,0 +1,8 @@ +// -*- C++ -*- $Id$ + +ACE_INLINE +CIAO::NodeApplication_Core::NodeApplication_Core (CIAO::NodeApplication_Options &opts) + : options_ (opts) +{ +} + diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp new file mode 100644 index 00000000000..0cd1d7954b2 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp @@ -0,0 +1,1258 @@ +//$Id$ + +#include "NodeApplication_Impl.h" +#include "ace/SString.h" +#include "Container_Impl.h" +#include "Deployment_EventsC.h" + +#if !defined (__ACE_INLINE__) +# include "NodeApplication_Impl.inl" +#endif /* __ACE_INLINE__ */ + +CIAO::NodeApplication_Impl::~NodeApplication_Impl (void) +{ +} + +CORBA::Long +CIAO::NodeApplication_Impl::init (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + /// @todo initialize this NodeApplication properties + return 0; +} + +CORBA::Long +CIAO::NodeApplication_Impl::create_all_containers ( + const ::Deployment::ContainerImplementationInfos & container_infos + ACE_ENV_ARG_DECL_NOT_USED + ) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + // Create all the containers here based on the input node_impl_info. + const CORBA::ULong len = container_infos.length (); + + for (CORBA::ULong i = 0; i < len; ++i) + { + // The factory method <create_container> will intialize the container + // servant with properties, so we don't need to call <init> on the + // container object reference. + // Also, the factory method will add the container object reference + // to the set for us. + ::Deployment::Container_var cref = + this->create_container (container_infos[i].container_config); + + // Build the Component_Container_Map + for (CORBA::ULong j = 0; + j < container_infos[i].impl_infos.length (); + ++j) + { + this->component_container_map_.bind ( + container_infos[i].impl_infos[j].component_instance_name.in (), + ::Deployment::Container::_duplicate (cref.in ())); + } + } + + return 0; +} + +void +CIAO::NodeApplication_Impl::finishLaunch ( + const Deployment::Connections & providedReference, + CORBA::Boolean start, + CORBA::Boolean add_connection + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StartError, + Deployment::InvalidConnection)) +{ + ACE_UNUSED_ARG (start); + + // If parameter "add_connection" is true, then it means we want to "add" + // new connections, other, we remove existing connections + this->finishLaunch_i (providedReference, start, add_connection); +} + +void +CIAO::NodeApplication_Impl::finishLaunch_i ( + const Deployment::Connections & connections, + CORBA::Boolean start, + CORBA::Boolean add_connection + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StartError, + Deployment::InvalidConnection)) +{ + ACE_UNUSED_ARG (start); + + ACE_TRY + { + const CORBA::ULong length = connections.length (); + + // For every connection struct we finish the connection. + for (CORBA::ULong i = 0; i < length; ++i) + { + ACE_CString name = connections[i].instanceName.in (); + + // For ES_to_Consumer connection, we simply call + // handle_es_consumer_connection method. + //if (connections[i].kind == Deployment::rtecEventConsumer) + if (this->_is_es_consumer_conn (connections[i])) + { + this->handle_es_consumer_connection ( + connections[i], + add_connection); + continue; + } + + // For other type of connections, we need to fetch the + // objref of the source component + Component_State_Info comp_state; + + if (this->component_state_map_.find (name, comp_state) != 0) + { + ACE_ERROR ((LM_ERROR, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::finishLaunch, " + "invalid port name [%s] in instance [%s] \n", + connections[i].portName.in (), + name.c_str ())); + ACE_TRY_THROW (Deployment::InvalidConnection ()); + } + + Components::EventConsumerBase_var consumer; + + Components::CCMObject_var comp = comp_state.objref_; + + if (CORBA::is_nil (comp.in ())) + { + ACE_DEBUG ((LM_DEBUG, "comp is nil\n")); + throw Deployment::InvalidConnection (); + } + + switch (connections[i].kind) + { + case Deployment::SimplexReceptacle: + case Deployment::MultiplexReceptacle: + this->handle_facet_receptable_connection ( + comp.in (), + connections[i], + add_connection); + break; + + case Deployment::EventEmitter: + this->handle_emitter_consumer_connection ( + comp.in (), + connections[i], + add_connection); + break; + + case Deployment::EventPublisher: + if (this->_is_publisher_es_conn (connections[i])) + this->handle_publisher_es_connection ( + comp.in (), + connections[i], + add_connection); + else + this->handle_publisher_consumer_connection ( + comp.in (), + connections[i], + add_connection); + break; + + default: + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::finishLaunch_i: " + "Unsupported event port type encounted\n")); + ACE_TRY_THROW (CORBA::NO_IMPLEMENT ()); + } + } + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "NodeApplication_Impl::finishLaunch\t\n"); + ACE_RE_THROW; + } + + ACE_ENDTRY; +} + +void +CIAO::NodeApplication_Impl::ciao_preactivate (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StartError)) +{ + Component_Iterator end = this->component_state_map_.end (); + for (Component_Iterator iter (this->component_state_map_.begin ()); + iter != end; + ++iter) + { + if (((*iter).int_id_).state_ == NEW_BORN) + { + ((*iter).int_id_).objref_->ciao_preactivate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + } + + ((*iter).int_id_).state_ = PRE_ACTIVE; + } +} + +void +CIAO::NodeApplication_Impl::start (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StartError)) +{ + Component_Iterator end = this->component_state_map_.end (); + for (Component_Iterator iter (this->component_state_map_.begin ()); + iter != end; + ++iter) + { + if (((*iter).int_id_).state_ == PRE_ACTIVE) + { + ((*iter).int_id_).objref_->ciao_activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + } + + ((*iter).int_id_).state_ = ACTIVE; + } +} + +void +CIAO::NodeApplication_Impl::ciao_postactivate (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StartError)) +{ + Component_Iterator end = this->component_state_map_.end (); + for (Component_Iterator iter (this->component_state_map_.begin ()); + iter != end; + ++iter) + { + if (((*iter).int_id_).state_ == ACTIVE) + { + ((*iter).int_id_).objref_->ciao_postactivate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + ((*iter).int_id_).state_ = POST_ACTIVE; + } + } +} + +void +CIAO::NodeApplication_Impl::ciao_passivate (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StopError)) +{ + Component_Iterator end = this->component_state_map_.end (); + for (Component_Iterator iter (this->component_state_map_.begin ()); + iter != end; + ++iter) + { + ((*iter).int_id_).objref_->ciao_passivate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + ((*iter).int_id_).state_ = PASSIVE; + } + ACE_DEBUG ((LM_DEBUG, "exiting passivate\n")); +} + +Deployment::ComponentInfos * +CIAO::NodeApplication_Impl::install ( + const ::Deployment::NodeImplementationInfo & node_impl_info + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::UnknownImplId, + Deployment::ImplEntryPointNotFound, + Deployment::InstallationFailure, + Components::InvalidConfiguration)) +{ + Deployment::ComponentInfos_var retv; + ACE_TRY + { + // Extract ORB resource def here. + this->configurator_.init_resource_manager (node_impl_info.nodeapp_config); + + const ::Deployment::ContainerImplementationInfos container_infos = + node_impl_info.impl_infos; + + ACE_NEW_THROW_EX (retv, + Deployment::ComponentInfos, + CORBA::NO_MEMORY ()); + ACE_TRY_CHECK; + + retv->length (0UL); + + // Call create_all_containers to create all the necessary containers.. + // @@(GD): The "create_all_containers" mechanism needs to be refined, so + // we should always try to reuse existing containers as much as possible! + // We need not only factory pattern, but also finder pattern here as well. + if (CIAO::debug_level () > 15) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) NodeApplication_Impl.cpp -" + "CIAO::NodeApplication_Impl::install -" + "creating all the containers. \n")); + } + + CORBA::ULong old_set_size = this->container_set_.size (); + + (void) this->create_all_containers (container_infos); + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) NodeApplication_Impl.cpp -" + "CIAO::NodeApplication_Impl::install -" + "create_all_containers() called.\n")); + } + + // For each container, invoke <install> operation, this will return + // the ComponentInfo for components installed in each container. + // Merge all the returned ComponentInfo, which will be used + // as the return value of this method. + const CORBA::ULong num_containers = container_infos.length (); + for (CORBA::ULong i = 0; i < num_containers; ++i) + { + Deployment::ComponentInfos_var comp_infos = + this->container_set_.at(i+old_set_size)-> + install (container_infos[i] + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Append the return sequence to the *big* return sequence + CORBA::ULong curr_len = retv->length (); + retv->length (curr_len + comp_infos->length ()); + + for (CORBA::ULong j = curr_len; j < retv->length (); j++) + retv[j] = comp_infos[j-curr_len]; + } + + // @@ Maybe we can optimize this. We can come up with a decision later. + // Cache a copy of the component object references for all the components + // installed on this NodeApplication. I know we can delegates these to the + // undelying containers, but in that case, we should loop + // all the containers to find the component object reference. - Gan + const CORBA::ULong comp_len = retv->length (); + for (CORBA::ULong len = 0; + len < comp_len; + ++len) + { + Component_State_Info tmp; + + tmp.state_ = NEW_BORN; + tmp.objref_ = + Components::CCMObject::_duplicate (retv[len].component_ref.in ()); + + //Since we know the type ahead of time...narrow is omitted here. + if (this->component_state_map_.rebind ( + retv[len].component_instance_name.in(), tmp)) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) NodeApplication_Impl.cpp -" + "CIAO::NodeApplication_Impl::install -" + "error binding component instance [%s] " + "into the map. \n", + retv[len].component_instance_name.in ())); + ACE_TRY_THROW ( + Deployment::InstallationFailure ("NodeApplication_Imp::install", + "Duplicate component instance name")); + } + } + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "CIAO_NodeApplication::install error\t\n"); + ACE_RE_THROW; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (0); + + return retv._retn (); +} + +void +CIAO::NodeApplication_Impl::remove_component (const char * inst_name + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((::CORBA::SystemException, + ::Components::RemoveFailure)) +{ + ACE_DEBUG ((LM_DEBUG, "NA_I: removing component %s\n", + inst_name)); + + // Fetch the container object reference from the componet_container_map + ::Deployment::Container_var container_ref; + if (this->component_container_map_.find (inst_name, container_ref) != 0) + { + ACE_ERROR ((LM_ERROR, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::remove_component, " + "invalid instance [%s] in the component_container_map.\n", + inst_name)); + ACE_TRY_THROW (::Components::RemoveFailure ()); + } + + // Remove this component instance from the node application + ACE_CString name (inst_name); + this->component_container_map_.unbind (name); + this->component_state_map_.unbind (name); + container_ref->remove_component (inst_name); +} + +void +CIAO::NodeApplication_Impl::passivate_component (const char * name + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((::CORBA::SystemException, + ::Components::RemoveFailure)) +{ + Component_State_Info comp_state; + + if (this->component_state_map_.find (name, comp_state) != 0) + { + ACE_ERROR ((LM_ERROR, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::passivate_component, " + "invalid instance [%s] \n", + name)); + ACE_TRY_THROW (Components::RemoveFailure ()); + } + + if (CORBA::is_nil (comp_state.objref_.in ())) + { + ACE_DEBUG ((LM_DEBUG, "comp is nil\n")); + throw Components::RemoveFailure (); + } + + comp_state.objref_->ciao_passivate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; +} + +void +CIAO::NodeApplication_Impl::activate_component (const char * name + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((::CORBA::SystemException, + ::Deployment::StartError)) +{ + Component_State_Info comp_state; + + if (this->component_state_map_.find (name, comp_state) != 0) + { + ACE_ERROR ((LM_ERROR, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::activate_component, " + "invalid instance [%s] \n", + name)); + ACE_TRY_THROW (Deployment::StartError ()); + } + + if (CORBA::is_nil (comp_state.objref_.in ())) + { + ACE_DEBUG ((LM_DEBUG, "comp is nil\n")); + throw Deployment::StartError (); + } + + comp_state.objref_->ciao_preactivate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + comp_state.objref_->ciao_activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + comp_state.objref_->ciao_postactivate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; +} + + +void +CIAO::NodeApplication_Impl::remove (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + // If we still have components installed, then do nothing + + if (this->component_state_map_.current_size () != 0) + return; + + // For each container, invoke <remove> operation to remove home and components. + const CORBA::ULong set_size = this->container_set_.size (); + for (CORBA::ULong i = 0; i < set_size; ++i) + { + ACE_DEBUG ((LM_DEBUG, "NA: calling remove on container %i\n")); + this->container_set_.at(i)->remove (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + } + + // Remove all containers + // Maybe we should also deactivate container object reference. + ACE_DEBUG ((LM_DEBUG, "NA: remove all\n")); + this->container_set_.remove_all (); + + if (CIAO::debug_level () > 1) + ACE_DEBUG ((LM_DEBUG, "Removed all containers from this NodeApplication!\n")); + + //For static deployment, ORB will be shutdown in the Static_NodeManager + if (this->static_entrypts_maps_ == 0) + { + this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER); + ACE_DEBUG ((LM_DEBUG, "NA: shutdown\n")); + } +} + + +// Create a container interface, which will be hosted in this NodeApplication. +::Deployment::Container_ptr +CIAO::NodeApplication_Impl::create_container ( + const ::Deployment::Properties &properties + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + ::Components::CreateFailure, + ::Components::InvalidConfiguration)) +{ + //if (CIAO::debug_level () > 1) + // ACE_DEBUG ((LM_DEBUG, "ENTERING: NodeApplication_Impl::create_container()\n")); + + CORBA::PolicyList_var policies + = this->configurator_.find_container_policies (properties); + + CIAO::Container_Impl *container_servant = 0; + + ACE_NEW_THROW_EX (container_servant, + CIAO::Container_Impl (this->orb_.in (), + this->poa_.in (), + this->get_objref (), + this->static_entrypts_maps_), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (0); + + PortableServer::ServantBase_var safe_servant (container_servant); + + // @TODO: Need to decide a "component_installation" equivalent data + // structure to pass to the container, which will be used to + // suggest how to install the components. Each such data stucture + // should be correspond to one <process_collocation> tag in the XML + // file to describe the deployment plan. + container_servant->init (policies.ptr () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + PortableServer::ObjectId_var oid + = this->poa_->activate_object (container_servant + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + CORBA::Object_var obj + = this->poa_->id_to_reference (oid.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + ::Deployment::Container_var ci + = ::Deployment::Container::_narrow (obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + // Cached the objref in its servant. + container_servant->set_objref (ci.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + { + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); + + this->container_set_.add (ci.in ()); + } + + //if (CIAO::debug_level () > 1) + // ACE_DEBUG ((LM_DEBUG, + // "LEAVING: NodeApplication_Impl::create_container()\n")); + return ci._retn (); +} + +// Remove a container interface. +void +CIAO::NodeApplication_Impl::remove_container (::Deployment::Container_ptr cref + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + ::Components::RemoveFailure)) +{ + ACE_DEBUG ((LM_DEBUG, "ENTERING: NodeApplication_Impl::remove_container()\n")); + ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->lock_); + + if (this->container_set_.object_in_set (cref) == 0) + { + ACE_THROW (Components::RemoveFailure()); + } + + cref->remove (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + // @@ Deactivate object. + PortableServer::ObjectId_var oid + = this->poa_->reference_to_id (cref + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->poa_->deactivate_object (oid.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + // Should we remove the server still, even if the previous call failed. + + if (this->container_set_.remove (cref) == -1) + { + ACE_THROW (::Components::RemoveFailure ()); + } + + ACE_DEBUG ((LM_DEBUG, "LEAVING: NodeApplication_Impl::remove_container()\n")); +} + +// Get containers +::Deployment::Containers * +CIAO::NodeApplication_Impl::get_containers (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return 0; +} + +::Deployment::CIAO_Event_Services * +CIAO::NodeApplication_Impl:: +install_es (const ::Deployment::ESInstallationInfos & es_infos + ACE_ENV_ARG_DECL) +ACE_THROW_SPEC ((::CORBA::SystemException, + ::Deployment::InstallationFailure)) +{ + Deployment::CIAO_Event_Services_var retv; + ACE_NEW_RETURN (retv, + Deployment::CIAO_Event_Services, + 0); + + CORBA::ULong total_lenth = es_infos.length (); + + for (CORBA::ULong i = 0; i < total_lenth; ++i) + { + CIAO_Event_Service_var temp = + es_factory_.create (es_infos[i].type); + + CORBA::ULong curr_len = retv->length (); + retv->length (curr_len + 1); + + retv[curr_len] = + CIAO::CIAO_Event_Service::_duplicate (temp.in ()); + } + return retv._retn (); +} + + +ACE_CString * +CIAO::NodeApplication_Impl:: +create_connection_key (const Deployment::Connection & connection) +{ + ACE_CString * retv; + ACE_NEW_RETURN (retv, ACE_CString, 0); + + (*retv) += connection.instanceName.in (); + (*retv) += connection.portName.in (); + (*retv) += connection.endpointInstanceName.in (); + (*retv) += connection.endpointPortName.in (); + + if (CIAO::debug_level () > 3) + ACE_DEBUG ((LM_ERROR, "The key is: %s\n", (*retv).c_str ())); + + return retv; +} + + +void +CIAO::NodeApplication_Impl:: +handle_facet_receptable_connection ( + Components::CCMObject_ptr comp, + const Deployment::Connection & connection, + CORBA::Boolean add_connection) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::InvalidConnection)) +{ + if (CIAO::debug_level () > 11) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::finishLaunch, " + "working on port name [%s] in instance [%s] \n", + connection.portName.in (), + connection.instanceName.in ())); + } + + if (add_connection) + { + ::Components::Cookie_var cookie = + comp->connect (connection.portName.in (), + connection.endpoint.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_CString key = (*create_connection_key (connection)); + if (CIAO::debug_level () > 10) + { + ACE_DEBUG ((LM_ERROR, "[BINDING KEY]: %s\n", key.c_str ())); + } + this->cookie_map_.rebind (key, cookie); + + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::finishLaunch\n" + "[INSTANCE:PORT] : [%s:%s] --> [%s:%s] connected.\n", + connection.instanceName.in (), + connection.portName.in (), + connection.endpointInstanceName.in (), + connection.endpointPortName.in ())); + } + } + else + { + ACE_CString key = (*create_connection_key (connection)); + ::Components::Cookie_var cookie; + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_ERROR, "[FINDING KEY]: %s\n", key.c_str ())); + } + if (this->cookie_map_.find (key, cookie) != 0) + { + ACE_DEBUG ((LM_ERROR, "Error: Cookie Not Found!\n")); + ACE_TRY_THROW (Deployment::InvalidConnection ()); + } + + comp->disconnect (connection.portName.in (), + cookie.in ()); + this->cookie_map_.unbind (key); + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::finishLaunch\n" + "[INSTANCE:PORT] : [%s:%s] --> [%s:%s] disconnected.\n", + connection.instanceName.in (), + connection.portName.in (), + connection.endpointInstanceName.in (), + connection.endpointPortName.in ())); + } + } +} + + +void +CIAO::NodeApplication_Impl:: +handle_emitter_consumer_connection ( + Components::CCMObject_ptr comp, + const Deployment::Connection & connection, + CORBA::Boolean add_connection) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::InvalidConnection)) +{ + Components::EventConsumerBase_var consumer = + Components::EventConsumerBase::_narrow (connection.endpoint.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (consumer.in ())) + { + ACE_ERROR ((LM_ERROR, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_emitter_consumer_connection, " + "for port name [%s] in instance [%s] ," + "there is an invalid endPoint. \n", + connection.portName.in (), + connection.instanceName.in ())); + ACE_TRY_THROW (Deployment::InvalidConnection ()); + } + + if (CIAO::debug_level () > 11) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_emitter_consumer_connection, " + "working on port name [%s] in instance [%s] \n", + connection.portName.in (), + connection.instanceName.in ())); + } + + if (add_connection) + { + comp->connect_consumer (connection.portName.in (), + consumer.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_emitter_consumer_connection\n" + "[INSTANCE:PORT] : [%s:%s] --> [%s:%s] connected.\n", + connection.instanceName.in (), + connection.portName.in (), + connection.endpointInstanceName.in (), + connection.endpointPortName.in ())); + } + } + else + { +// Operation not implemented by the CIDLC. +// comp->disconnect_consumer (connection.portName.in (), +// 0 +// ACE_ENV_ARG_PARAMETER); +// ACE_TRY_CHECK; + + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_emitter_consumer_connection\n" + "[INSTANCE:PORT] : [%s:%s] --> [%s:%s] disconnected.\n", + connection.instanceName.in (), + connection.portName.in (), + connection.endpointInstanceName.in (), + connection.endpointPortName.in ())); + } + } +} + + +void +CIAO::NodeApplication_Impl:: +handle_publisher_consumer_connection ( + Components::CCMObject_ptr comp, + const Deployment::Connection & connection, + CORBA::Boolean add_connection) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::InvalidConnection)) +{ + Components::EventConsumerBase_var consumer = + Components::EventConsumerBase::_narrow (connection.endpoint.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (consumer.in ())) + { + ACE_ERROR ((LM_ERROR, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_publisher_consumer_connection, " + "for port name [%s] in instance [%s] ," + "there is an invalid endPoint. \n", + connection.portName.in (), + connection.instanceName.in ())); + ACE_TRY_THROW (Deployment::InvalidConnection ()); + } + + if (CIAO::debug_level () > 11) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_publisher_consumer_connection, " + "working on port name [%s] in instance [%s] \n", + connection.portName.in (), + connection.instanceName.in ())); + } + + if (add_connection) + { + ::Components::Cookie_var cookie = + comp->subscribe (connection.portName.in (), + consumer.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_CString key = (*create_connection_key (connection)); + this->cookie_map_.rebind (key, cookie); + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_publisher_consumer_connection\n" + "[INSTANCE:PORT] : [%s:%s] --> [%s:%s] connected.\n", + connection.instanceName.in (), + connection.portName.in (), + connection.endpointInstanceName.in (), + connection.endpointPortName.in ())); + } + } + else // remove the connection + { + ACE_CString key = (*create_connection_key (connection)); + ::Components::Cookie_var cookie; + + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_ERROR, "[FINDING KEY]: %s\n", key.c_str ())); + } + if (this->cookie_map_.find (key, cookie) != 0) + { + ACE_DEBUG ((LM_ERROR, "Error: Cookie Not Found!\n")); + ACE_TRY_THROW (Deployment::InvalidConnection ()); + } + + comp->unsubscribe (connection.portName.in (), + cookie.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + this->cookie_map_.unbind (key); + + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_publisher_consumer_connection\n" + "[INSTANCE:PORT] : [%s:%s] --> [%s:%s] disconnected.\n", + connection.instanceName.in (), + connection.portName.in (), + connection.endpointInstanceName.in (), + connection.endpointPortName.in ())); + } + } +} + + +void +CIAO::NodeApplication_Impl:: +handle_publisher_es_connection ( + Components::CCMObject_ptr comp, + const Deployment::Connection & connection, + CORBA::Boolean add_connection) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::InvalidConnection)) +{ + if (! this->_is_publisher_es_conn (connection)) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_publisher_es_connection: " + "Unsupported event connection type\n")); + ACE_THROW (CORBA::NO_IMPLEMENT ()); + } + + const CIAO::CIAO_Event_Service_ptr event_service = + connection.event_service; + + if (CORBA::is_nil (event_service)) + { + ACE_DEBUG ((LM_DEBUG, "Nil event_service\n")); + ACE_THROW (Deployment::InvalidConnection ()); + } + + // supplier ID + ACE_CString sid (connection.instanceName.in ()); + sid += "_"; + sid += connection.portName.in (); + sid += "_publisher"; + + if (add_connection) + { + ::Components::Cookie_var cookie = + comp->subscribe (connection.portName.in (), + event_service); + + ACE_CString key = (*create_connection_key (connection)); + this->cookie_map_.rebind (key, cookie); + + // Create a supplier_config and register it to ES + CIAO::Supplier_Config_var supplier_config = + event_service->create_supplier_config (); + + supplier_config->supplier_id (sid.c_str ()); + event_service->connect_event_supplier (supplier_config.in ()); + supplier_config->destroy (); + + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_publisher_es_connection\n" + "[INSTANCE:PORT] : [%s:%s] --> [%s:%s] connected.\n", + connection.instanceName.in (), + connection.portName.in (), + connection.endpointInstanceName.in (), + connection.endpointPortName.in ())); + } + } + else // remove the connection + { + ACE_CString key = (*create_connection_key (connection)); + ::Components::Cookie_var cookie; + + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_ERROR, "[FINDING KEY]: %s\n", key.c_str ())); + } + if (this->cookie_map_.find (key, cookie) != 0) + { + ACE_DEBUG ((LM_ERROR, "Error: Cookie Not Found!\n")); + ACE_TRY_THROW (Deployment::InvalidConnection ()); + } + + comp->unsubscribe (connection.portName.in (), + cookie.in ()); + this->cookie_map_.unbind (key); + event_service->disconnect_event_supplier (sid.c_str ()); + + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_publisher_es_connection\n" + "[INSTANCE:PORT] : [%s:%s] --> [%s:%s] disconnected.\n", + connection.instanceName.in (), + connection.portName.in (), + connection.endpointInstanceName.in (), + connection.endpointPortName.in ())); + } + } +} + + +void +CIAO::NodeApplication_Impl:: +handle_es_consumer_connection ( + const Deployment::Connection & connection, + CORBA::Boolean add_connection) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::InvalidConnection)) +{ + if (! this->_is_es_consumer_conn (connection)) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_es_consumer_connection: " + "Unsupported event connection type\n")); + ACE_THROW (CORBA::NO_IMPLEMENT ()); + } + + // Get ES object + const CIAO::CIAO_Event_Service_ptr event_service = + connection.event_service; + + if (CORBA::is_nil (event_service)) + { + ACE_DEBUG ((LM_ERROR, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_es_consumer_connection: " + "NIL event_service\n")); + ACE_THROW (Deployment::InvalidConnection ()); + } + + // Get consumer object + Components::EventConsumerBase_var consumer = + Components::EventConsumerBase::_narrow (connection.endpoint.in ()); + + if (CORBA::is_nil (consumer.in ())) + { + ACE_DEBUG ((LM_ERROR, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_es_consumer_connection: " + "Nil consumer port object reference\n")); + ACE_THROW (Deployment::InvalidConnection ()); + } + + // supplier ID + ACE_CString sid (connection.instanceName.in ()); + sid += "_"; + sid += connection.portName.in (); + sid += "_publisher"; + + // consumer ID + ACE_CString cid (connection.endpointInstanceName.in ()); + cid += "_"; + cid += connection.endpointPortName.in (); + cid += "_consumer"; + + if (add_connection) + { + CIAO::Consumer_Config_var consumer_config = + event_service->create_consumer_config (); + + consumer_config->supplier_id ("Hello-Sender-idd_click_out_publisher"); + //consumer_config->supplier_id (sid.c_str ()); + consumer_config->consumer_id (cid.c_str ()); + consumer_config->consumer (consumer.in ()); + + // Need to setup a filter, if it's specified in the descriptor + for (CORBA::ULong i = 0; i < connection.config.length (); ++i) + { + if (ACE_OS::strcmp (connection.config[i].name.in (), + "EventFilter") != 0) + continue; + + // Extract the filter information + CIAO::DAnCE::EventFilter *filter = 0; + connection.config[i].value >>= filter; + + CORBA::ULong size = (*filter).sources.length (); + consumer_config->start_disjunction_group (size); + + for (CORBA::ULong j = 0; j < size; ++j) + { + consumer_config->insert_source ((*filter).sources[j]); + } + } + + event_service->connect_event_consumer (consumer_config.in ()); + consumer_config->destroy (); + + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_es_consumer_connection\n" + "[INSTANCE:PORT] : [%s:%s] --> [%s:%s] connected.\n", + connection.endpointInstanceName.in (), + connection.endpointPortName.in (), + connection.instanceName.in (), + connection.portName.in ())); + } + } + else // remove the connection + { + event_service->disconnect_event_consumer (cid.c_str ()); + + if (CIAO::debug_level () > 6) + { + ACE_DEBUG ((LM_DEBUG, + "CIAO (%P|%t) - NodeApplication_Impl.cpp, " + "CIAO::NodeApplication_Impl::handle_es_consumer_connection\n" + "[INSTANCE:PORT] : [%s:%s] --> [%s:%s] disconnected.\n", + connection.endpointInstanceName.in (), + connection.endpointPortName.in (), + connection.instanceName.in (), + connection.portName.in ())); + } + } +} + +// Below code is not used at this time. +void +CIAO::NodeApplication_Impl::build_event_connection ( + const Deployment::Connection & connection, + bool add_or_remove + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((Deployment::InvalidConnection, + CORBA::SystemException)) +{ + ACE_DEBUG ((LM_DEBUG, "CIAO::NodeApplication_Impl::build_connection ()!!!\n")); + + ACE_DEBUG ((LM_DEBUG, "instanceName: %s\n", connection.instanceName.in ())); + ACE_DEBUG ((LM_DEBUG, "portName: %s\n", connection.portName.in ())); + + ACE_DEBUG ((LM_DEBUG, "consumer Component Name: %s\n", connection.endpointInstanceName.in ())); + ACE_DEBUG ((LM_DEBUG, "consumer Port Name: %s\n", connection.endpointPortName.in ())); + + ACE_DEBUG ((LM_DEBUG, "portkind: ")); + switch (connection.kind) { + case Deployment::Facet: ACE_DEBUG ((LM_DEBUG, "Facet\n")); break; + case Deployment::SimplexReceptacle: ACE_DEBUG ((LM_DEBUG, "SimplexReceptacle\n")); break; + case Deployment::MultiplexReceptacle: ACE_DEBUG ((LM_DEBUG, "MultiplexReceptacle\n")); break; + case Deployment::EventEmitter: ACE_DEBUG ((LM_DEBUG, "EventEmitter\n")); break; + case Deployment::EventPublisher: ACE_DEBUG ((LM_DEBUG, "EventPublisher\n")); break; + case Deployment::EventConsumer: ACE_DEBUG ((LM_DEBUG, "EventConsumer\n")); break; + default: + ACE_DEBUG ((LM_DEBUG, "Unknow\n")); break; + } + + const CIAO::CIAO_Event_Service_ptr event_service = + connection.event_service; + + + // Get the consumer port object reference and put it into "consumer" + Components::EventConsumerBase_var consumer = + Components::EventConsumerBase::_narrow (connection.endpoint.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (consumer.in ())) + { + ACE_DEBUG ((LM_DEBUG, "Nil consumer port object reference\n")); + ACE_THROW (Deployment::InvalidConnection ()); + } + + // Get the supplier component object reference. + ACE_CString supplier_comp_name = connection.instanceName.in (); + + ACE_DEBUG ((LM_DEBUG, "source component name is: %s\n", supplier_comp_name.c_str ())); + Component_State_Info comp_state; + if (this->component_state_map_.find (supplier_comp_name, comp_state) != 0) + { + ACE_DEBUG ((LM_DEBUG, "Nil source component object reference\n")); + ACE_THROW (Deployment::InvalidConnection ()); + } + + // Get the consumer component object reference. + ACE_CString consumer_comp_name = connection.endpointInstanceName.in (); + + ACE_DEBUG ((LM_DEBUG, "consumer component name is: %s\n", consumer_comp_name.c_str ())); + + if (CORBA::is_nil (event_service)) + { + ACE_DEBUG ((LM_DEBUG, "Nil event_service\n")); + ACE_THROW (Deployment::InvalidConnection ()); + } + + // supplier ID + ACE_CString sid (connection.instanceName.in ()); + sid += "_"; + sid += connection.portName.in (); + sid += "_publisher"; + + // consumer ID + ACE_CString cid (connection.endpointInstanceName.in ()); + cid += "_"; + cid += connection.endpointPortName.in (); + cid += "_consumer"; + + //ACE_DEBUG ((LM_DEBUG, "Publisher: %s\n", sid.c_str ())); + ACE_DEBUG ((LM_DEBUG, "Subscriber: %s\n", cid.c_str ())); + + + if (add_or_remove == true) + { + CIAO::Supplier_Config_var supplier_config = + event_service->create_supplier_config (); + + //supplier_config->supplier_id (sid.c_str ()); + event_service->connect_event_supplier (supplier_config.in ()); + supplier_config->destroy (); + + CIAO::Consumer_Config_var consumer_config = + event_service->create_consumer_config (); + + //@@@ + consumer_config->supplier_id ("dummy"); + consumer_config->consumer_id (cid.c_str ()); + consumer_config->consumer (consumer.in ()); + + event_service->connect_event_consumer (consumer_config.in ()); + + consumer_config->destroy (); + } + else + { + event_service->disconnect_event_supplier (sid.c_str ()); + event_service->disconnect_event_consumer (cid.c_str ()); + } + + ACE_DEBUG ((LM_DEBUG, "CIAO::NodeApplication_Impl::build_connection () completed!!!!\n")); +} + +bool +CIAO::NodeApplication_Impl:: +_is_es_consumer_conn (Deployment::Connection conn) +{ + if (conn.kind == Deployment::EventConsumer && + ACE_OS::strcmp (conn.endpointPortName, "CIAO_ES") == 0) + return true; + else + return false; +} + +bool +CIAO::NodeApplication_Impl:: +_is_publisher_es_conn (Deployment::Connection conn) +{ + if (conn.kind == Deployment::EventPublisher && + ACE_OS::strcmp (conn.endpointPortName, "CIAO_ES") == 0) + return true; + else + return false; +} diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h new file mode 100644 index 00000000000..ee1878ff07d --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h @@ -0,0 +1,397 @@ +//$Id$ + +/**======================================================== + * + * @file NodeApplication_Impl.h + * + * @Brief This file contains the implementation of + * the NodeApplication interface. + * + * @author Tao Lu <lu@dre.vanderbilt.edu> + * @author Gan Deng <dengg@dre.vanderbilt.edu> + *========================================================*/ + +#ifndef NODEAPPLICATION_IMPL_H +#define NODEAPPLICATION_IMPL_H +#include /**/ "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/Synch.h" +#include "ace/Synch_Traits.h" +#include "ace/SString.h" +#include "ace/Hash_Map_Manager_T.h" +#include "tao/ORB.h" +#include "ciao/Deployment_CoreS.h" +#include "ciao/Server_init.h" +#include "ciao/CIAO_common.h" +#include "ciao/Object_Set_T.h" +#include "ciaosvcs/Events/CIAO_EventService_Factory_impl.h" +#include "ciaosvcs/Events/CIAO_Events_Base/CIAO_EventsS.h" + +#include "NodeApp_Configurator.h" +#include "Container_Base.h" + +using CIAO::Utility::write_IOR; + +/** + * + * @class NodeApplication_Impl + * + * @brief This class implements the NodeApplication interface. + * This interface is semantically very simillar to container + * in the old DnC spec. However this class will also be used + * as a Server for hosting home/component. This way we reduce the + * complexity of the framework by omitting the componentserver layer. + * + * @@TODO add configuration capabilities. Threading is one of them. + * + * @@Assumptions: + * 1. Now the implementation is not thread safe. + * // @@Gan, the above assumption is _really_ bad. Could you please + * use the lock in the imeplementation to do some simple + * prootections. + **/ + +namespace CIAO +{ + // @@ Gan, as we discussed before can you please wrap this + // implementation in a namespace Node_Application or whatever to + // signify that it belongs to another software piece of CIAO? + class NodeApplication_Impl + : public virtual POA_Deployment::NodeApplication + { + public: + enum Component_State + { + NEW_BORN, PRE_ACTIVE, ACTIVE, POST_ACTIVE, PASSIVE, DEACTIVATED + }; + + typedef struct _component_state_info + { + Components::CCMObject_var objref_; + Component_State state_; + } Component_State_Info; + + NodeApplication_Impl (CORBA::ORB_ptr o, + PortableServer::POA_ptr p, + NodeApp_Configurator &c, + const Static_Config_EntryPoints_Maps* static_entrypts_maps =0); + + /// Default destructor. + virtual ~NodeApplication_Impl (void); + + /** + * @method finishLaunch + * + * @brief This operation dose 2 things. + * 1. Get the external connction (facet and Event source) + * and connect them to the local receptacle/event sink. + * 2. If the start augment is true, start the Components. + * @Note: + * The connection containes the object ref of the provided object + * reference (facet/event consumer) of components from other NodeApplications. + * However the name field stores the name of the port on the local component. + */ + virtual void + finishLaunch (const Deployment::Connections & connections, + CORBA::Boolean start, + CORBA::Boolean add_connection + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StartError, + Deployment::InvalidConnection)); + + /** + * @method start + */ + virtual void + start (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StartError)); + + /*------------- CIAO specific IDL operations (idl)---------- + * + *-----------------------------------------------------------*/ + + /** + * @method ciao_preactivate + */ + virtual void + ciao_preactivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StartError)); + + /** + * @method ciao_postactivate + */ + virtual void + ciao_postactivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StartError)); + + /** + * @method ciao_passivate + */ + virtual void + ciao_passivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StopError)); + + /// Initialize the NodeApplication + virtual CORBA::Long init (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /// Start install homes and components. + virtual ::Deployment::ComponentInfos * + install (const ::Deployment::NodeImplementationInfo & node_impl_info + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + ::Deployment::UnknownImplId, + ::Deployment::ImplEntryPointNotFound, + ::Deployment::InstallationFailure, + ::Components::InvalidConfiguration)); + + /// Install a number of CIAO_Event_Service objects within the NA + virtual ::Deployment::CIAO_Event_Services * + install_es (const ::Deployment::ESInstallationInfos & es_infos + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((::CORBA::SystemException, + ::Deployment::InstallationFailure)); + + /// Get the object reference of the NodeApplicationManager. + /// This might come in handy later. + virtual ::CORBA::Object_ptr + get_node_application_manager (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /// Access the readonly attribute. + virtual ::Deployment::Properties * + properties (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /// Remove a component instance from the NodeApplication + virtual void remove_component (const char * inst_name + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((::CORBA::SystemException, + ::Components::RemoveFailure)); + + virtual void activate_component (const char * name + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((::CORBA::SystemException, + ::Deployment::StartError)); + + virtual void passivate_component (const char * name + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((::CORBA::SystemException, + ::Components::RemoveFailure)); + + /// Remove everything inside including all components and homes. + virtual void remove (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /// Create a container interface, which will be hosted in this NodeApplication. + virtual ::Deployment::Container_ptr + create_container (const ::Deployment::Properties &properties + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + ::Components::CreateFailure, + ::Components::InvalidConfiguration)); + + /// Remove a container interface. + virtual void remove_container (::Deployment::Container_ptr cref + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + ::Components::RemoveFailure)); + + /// Get all container object refs + virtual ::Deployment::Containers * get_containers ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /*------------- CIAO specific helper functions (C++)--------- + * + *-----------------------------------------------------------*/ + + /// Get the containing POA. This operation does *not* + /// increase the reference count of the POA. + virtual PortableServer::POA_ptr _default_POA (void); + + /// Return the cached object reference of this NodeApplication object. + /// This operation does *NOT* increase the reference count. + ::Deployment::NodeApplication_ptr + get_objref (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); + + /*------- CIAO helper functions for pub/sub service ------- + * + *--------------------------------------------------------*/ + + /// Set up a connection using the CIAO_Event_Service, which + /// is available as a field in the <Deployment::Connection> + /// struct type. + /// If <add_or_remove> input parameter is true, then we will + /// add the event connection, otherwise we will remove the + /// event connection. + void build_event_connection ( + const Deployment::Connection & connection, + bool add_or_remove + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((Deployment::InvalidConnection, + CORBA::SystemException)); + + protected: + /// If <add_connection> is "false", then we shall "remove" + /// the connections, otherwise we will add these connections. + virtual void + finishLaunch_i (const Deployment::Connections & connections, + CORBA::Boolean start, + CORBA::Boolean add_connection + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::StartError, + Deployment::InvalidConnection)); + virtual void + handle_facet_receptable_connection ( + Components::CCMObject_ptr comp, + const Deployment::Connection & connection, + CORBA::Boolean add_connection) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::InvalidConnection)); + + virtual void + handle_emitter_consumer_connection ( + Components::CCMObject_ptr comp, + const Deployment::Connection & connection, + CORBA::Boolean add_connection) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::InvalidConnection)); + + virtual void + handle_publisher_consumer_connection ( + Components::CCMObject_ptr comp, + const Deployment::Connection & connection, + CORBA::Boolean add_connection) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::InvalidConnection)); + + virtual bool + _is_es_consumer_conn (Deployment::Connection conn); + + virtual bool + _is_publisher_es_conn (Deployment::Connection conn); + + /// Register the publisher to the CIAO event service + /// The only fields of <connection> struct used in this method + /// are: <type>, <event_service>, <instanceName>, <portName>. + virtual void + handle_publisher_es_connection ( + Components::CCMObject_ptr comp, + const Deployment::Connection & connection, + CORBA::Boolean add_connection) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::InvalidConnection)); + + /// Register the consumer to the CIAO event service + virtual void + handle_es_consumer_connection ( + const Deployment::Connection & connection, + CORBA::Boolean add_connection) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::InvalidConnection)); + + /// Create and initialize all the containers + virtual CORBA::Long create_all_containers ( + const ::Deployment::ContainerImplementationInfos & container_infos + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /// Create a "key" for the connection + virtual ACE_CString * + create_connection_key (const Deployment::Connection & connection); + + /// To build a map between a component instance and its container + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + Deployment::Container_var, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> Component_Container_Map; + typedef Component_Container_Map::iterator Component_Container_Iterator; + Component_Container_Map component_container_map_; + + + /// To store all created Component objects as well as their lifecycle + /// states.. + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + Component_State_Info, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> CCMComponent_Map; + typedef CCMComponent_Map::iterator Component_Iterator; + CCMComponent_Map component_state_map_; + + /// A Map which stores all the connection cookies + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + ::Components::Cookie_var, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> Cookie_Map; + typedef Cookie_Map::iterator Cookie_Map_Iterator; + Cookie_Map cookie_map_; + + /// Synchronize access to the object set. + TAO_SYNCH_MUTEX lock_; + + /// Keep a list of managed Container objects. + Object_Set<Deployment::Container, Deployment::Container_var> container_set_; + + /// Keep a pointer to the managing ORB serving this servant. + CORBA::ORB_var orb_; + + /// Keep a pointer to the managing POA. + // @@Gan/Jai, which POA is this? Same as the component POA or a + // different one. My sense is that its different. Could you please + //document it? + PortableServer::POA_var poa_; + + // Configurator for allocating NodeApp resources and policies + NodeApp_Configurator &configurator_; + + /// Cached properties + Deployment::Properties properties_; + + /// And a reference to the NodeApplicationManager that created us. + ::CORBA::Object_var node_app_manager_; + + /// Cache the object reference (of ourselves). + ::Deployment::NodeApplication_var objref_; + + /// A factory to create CIAO event services + EventService_Factory_impl es_factory_; + + /// Cache the (NA specific) installation info of all the + /// CIAO_Event_Services + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + ::Deployment::ESInstallationInfos_var, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> ES_Installation_Map; + typedef ES_Installation_Map::iterator ES_Installation_Map_Iterator; + ES_Installation_Map es_info_map_; + + const Static_Config_EntryPoints_Maps* static_entrypts_maps_; + private: + /// Default constructor, noop + NodeApplication_Impl(void); + }; +} + +#if defined (__ACE_INLINE__) +# include "NodeApplication_Impl.inl" +#endif /* __ACE_INLINE__ */ + +#include /**/ "ace/post.h" +#endif /* NODEAPPLICATION_IMPL_H */ diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.inl b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.inl new file mode 100644 index 00000000000..18b77e23645 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.inl @@ -0,0 +1,82 @@ +/* -*- C++ -*- */ +// $Id$ +#include "Configurator_Factory.h" + +ACE_INLINE +CIAO::NodeApplication_Impl:: +NodeApplication_Impl (CORBA::ORB_ptr o, + PortableServer::POA_ptr p, + NodeApp_Configurator &c, + const Static_Config_EntryPoints_Maps* static_entrypts_maps) + : orb_ (CORBA::ORB::_duplicate (o)), + poa_ (PortableServer::POA::_duplicate (p)), + configurator_ (c), + es_factory_ (o, p), + static_entrypts_maps_ (static_entrypts_maps) +{ +} + +// Access the readonly attribute +ACE_INLINE +Deployment::Properties * +CIAO::NodeApplication_Impl::properties (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + Deployment::Properties * tmp; + + ACE_NEW_THROW_EX (tmp, + Deployment::Properties (this->properties_), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (0); + + return tmp; +} + +ACE_INLINE +PortableServer::POA_ptr +CIAO::NodeApplication_Impl::_default_POA (void) +{ + return PortableServer::POA::_duplicate (this->poa_.in ()); +} + + +ACE_INLINE +CORBA::Object_ptr +CIAO::NodeApplication_Impl::get_node_application_manager ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return ::CORBA::Object::_duplicate (this->node_app_manager_.in ()); +} + +/* +ACE_INLINE void +CIAO::NodeApplication_Impl:: +set_objref (Components::Deployment::ServerActivator_ptr act, + const Components::ConfigValues &config, + Components::Deployment::ComponentServer_ptr cs + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + if (!CORBA::is_nil (this->node_app_manager_.in ()) || + !CORBA::is_nil (this->objref_.in ())) + ACE_THROW (CORBA::BAD_INV_ORDER ()); + + this->config_ = new Components::ConfigValues (config); + this->activator_ = Components::Deployment::ServerActivator::_duplicate (act); + this->objref_ = Components::Deployment::ComponentServer::_duplicate (cs); +} +*/ + +ACE_INLINE ::Deployment::NodeApplication_ptr +CIAO::NodeApplication_Impl:: +get_objref (ACE_ENV_SINGLE_ARG_DECL) +{ + if (CORBA::is_nil (this->objref_.in ())) + { + this->objref_ = this->_this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + } + + return this->objref_.in (); +} diff --git a/TAO/CIAO/DAnCE/NodeApplication/RTConfig_Manager.cpp b/TAO/CIAO/DAnCE/NodeApplication/RTConfig_Manager.cpp new file mode 100644 index 00000000000..9d74fa817c4 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/RTConfig_Manager.cpp @@ -0,0 +1,468 @@ +// $Id$ + +#include "RTConfig_Manager.h" +#include "ciao/CIAO_common.h" +#include "ace/SString.h" + +#if !defined (__ACE_INLINE__) +# include "RTConfig_Manager.inl" +#endif /* __ACE_INLINE__ */ + +void +CIAO::RTResource_Config_Manager::init (RTCORBA::RTORB_ptr rtorb) +{ + this->rtorb_ = RTCORBA::RTORB::_duplicate (rtorb); +} + +void +CIAO::RTResource_Config_Manager::print_resources +(const CIAO::DAnCE::ServerResource &server_resource + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + const CIAO::DAnCE::ORBResource &orb_resource + = server_resource.orb_config.orb_resources[0]; + + CORBA::ULong i; + + // Creating and binding name with RT Threadpool + for (i = 0; i < orb_resource.threadpool_list.length (); ++i) + { + ACE_DEBUG ((LM_DEBUG, + "-RTResource_Config_Manager::print_resource threadpool: %s\n" + "\tStack size: %d\n" + "\tStatic: %d\n" + "\tDynamic %d\n" + "\tDefault Prio: %d\n" + "\tBuffering %s\n" + "\tMax Buffered: %d\n" + "\tBuffer Size %d\n", + orb_resource.threadpool_list[i].Id.in (), + orb_resource.threadpool_list[i].stacksize, + orb_resource.threadpool_list[i].static_threads, + orb_resource.threadpool_list[i].dynamic_threads, + orb_resource.threadpool_list[i].default_priority, + (orb_resource.threadpool_list[i].allow_request_buffering ? "Y" : "N"), + orb_resource.threadpool_list[i].max_buffered_requests, + orb_resource.threadpool_list[i].max_request_buffer_size)); + } + + for (i = 0; i < orb_resource.threadpool_with_lanes_list.length (); ++i) + { + ACE_DEBUG ((LM_DEBUG, + "-RTResource_Config_Manager::print_resource threadpool_with %d, lanes: %s\n", + orb_resource.threadpool_with_lanes_list[i].threadpool_lanes.length (), + orb_resource.threadpool_with_lanes_list[i].Id.in ())); + + for (CORBA::ULong l = 0; + l < orb_resource.threadpool_with_lanes_list[i].threadpool_lanes.length (); + ++l) + { + ACE_DEBUG ((LM_DEBUG, + "\tLane %d:\n" + "\t\tPriority: %d\n" + "\t\tStatic: %d\n" + "\t\tDynamic: %d\n", + l, + orb_resource.threadpool_with_lanes_list[i].threadpool_lanes[l].lane_priority, + orb_resource.threadpool_with_lanes_list[i].threadpool_lanes[l].static_threads, + orb_resource.threadpool_with_lanes_list[i].threadpool_lanes[l].dynamic_threads)); + } + ACE_DEBUG ((LM_DEBUG, + "\tStack size: %d\n" + "\tBorrowing: %s\n" + "\tBuffering %s\n" + "\tMax Buffered: %d\n" + "\tBuffer Size %d\n", + orb_resource.threadpool_with_lanes_list[i].stacksize, + (orb_resource.threadpool_with_lanes_list[i].allow_borrowing ? "Y" : "N"), + (orb_resource.threadpool_with_lanes_list[i].allow_request_buffering ? "Y" : "N"), + orb_resource.threadpool_with_lanes_list[i].max_buffered_requests, + orb_resource.threadpool_with_lanes_list[i].max_request_buffer_size)); + } + + for (i = 0; i < orb_resource.connection_bands_list.length (); ++i) + { + ACE_DEBUG ((LM_DEBUG, + "-RTResource_Config_Manager::print_resource connection %d bands: %s\n", + orb_resource.connection_bands_list[i].bands.length (), + orb_resource.connection_bands_list[i].Id.in ())); + + for (CORBA::ULong l = 0; + l < orb_resource.connection_bands_list[i].bands.length (); + ++l) + { + ACE_DEBUG ((LM_DEBUG, + "\tBand %d Prio: %d -- %d\n", + l, + orb_resource.connection_bands_list[i].bands[l].low, + orb_resource.connection_bands_list[i].bands[l].high)); + } + } +} + +void +CIAO::RTResource_Config_Manager::init_resources +(const CIAO::DAnCE::ServerResource &server_resource + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_DEBUG ((LM_DEBUG, + "RTResource_Config_Manager::init_resource.\n")); + + if (CORBA::is_nil (this->rtorb_.in())) + { + ACE_DEBUG ((LM_DEBUG, + "RTResource_Config_Manager has not been properly initialized.\n")); + ACE_THROW (CORBA::INTERNAL ()); + } + + this->print_resources (server_resource); + // return; + + const CIAO::DAnCE::ORBResource &orb_resource + = server_resource.orb_config.orb_resources[0]; + + CORBA::ULong i; + + // Creating and binding name with RT Threadpool + for (i = 0; i < orb_resource.threadpool_list.length (); ++i) + { + ACE_DEBUG ((LM_DEBUG, + "RTResource_Config_Manager::init_resource threadpool: %s\n", + orb_resource.threadpool_list[i].Id.in ())); + RTCORBA::ThreadpoolId thr_id = + this->rtorb_->create_threadpool + (orb_resource.threadpool_list[i].stacksize, + orb_resource.threadpool_list[i].static_threads, + orb_resource.threadpool_list[i].dynamic_threads, + orb_resource.threadpool_list[i].default_priority, + orb_resource.threadpool_list[i].allow_request_buffering, + orb_resource.threadpool_list[i].max_buffered_requests, + orb_resource.threadpool_list[i].max_request_buffer_size + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; // Simply pass back the exception here + // for now. We need to have a better way + // to handle execption here. + if (this->threadpool_map_.bind (orb_resource.threadpool_list[i].Id.in (), + thr_id) != 0) + { + ACE_DEBUG ((LM_DEBUG, "Error binding thread pool Id: %s to map when initializing RTNodeApplication resources.\n", orb_resource.threadpool_list[i].Id.in ())); + ACE_THROW (CORBA::INTERNAL ()); + } + else + { + ACE_DEBUG ((LM_DEBUG, + "RTResource_Config_Manager::init_resource added thread pool: %s\n", + orb_resource.threadpool_list[i].Id.in ())); + } + } + + for (i = 0; i < orb_resource.threadpool_with_lanes_list.length (); ++i) + { + ACE_DEBUG ((LM_DEBUG, + "RTResource_Config_Manager::init_resource threadpool_with %d, lanes: %s\n", + orb_resource.threadpool_with_lanes_list[i].threadpool_lanes.length (), + orb_resource.threadpool_with_lanes_list[i].Id.in ())); + + // Duplicate RTCORBA lanes + RTCORBA::ThreadpoolLanes lanes + (orb_resource.threadpool_with_lanes_list[i].threadpool_lanes.length ()); + lanes.length (orb_resource.threadpool_with_lanes_list[i].threadpool_lanes.length ()); + + for (CORBA::ULong l = 0; + l < orb_resource.threadpool_with_lanes_list[i].threadpool_lanes.length (); + ++l) + { + lanes[l].lane_priority + = orb_resource.threadpool_with_lanes_list[i].threadpool_lanes[l].lane_priority; + lanes[l].static_threads + = orb_resource.threadpool_with_lanes_list[i].threadpool_lanes[l].static_threads; + lanes[l].dynamic_threads + = orb_resource.threadpool_with_lanes_list[i].threadpool_lanes[l].dynamic_threads; + } + + RTCORBA::ThreadpoolId thr_id = + this->rtorb_->create_threadpool_with_lanes + (orb_resource.threadpool_with_lanes_list[i].stacksize, + lanes, + orb_resource.threadpool_with_lanes_list[i].allow_borrowing, + orb_resource.threadpool_with_lanes_list[i].allow_request_buffering, + orb_resource.threadpool_with_lanes_list[i].max_buffered_requests, + orb_resource.threadpool_with_lanes_list[i].max_request_buffer_size + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; // Simply pass back the exception here + // for now. We need to have a better way + // to handle execption here. + + if (this->threadpool_map_.bind (orb_resource.threadpool_with_lanes_list[i].Id.in (), + thr_id) != 0) + { + ACE_DEBUG ((LM_DEBUG, + "Error binding thread pool name: %s to map when " + "initializing RTNodeApplication resources.\n", + orb_resource.threadpool_with_lanes_list[i].Id.in ())); + ACE_THROW (CORBA::INTERNAL ()); + } + + else + { + ACE_DEBUG ((LM_DEBUG, + "RTResource_Config_Manager::init_resource added thread pool with lanes: %s\n", + orb_resource.threadpool_with_lanes_list[i].Id.in ())); + } + } + + for (i = 0; i < orb_resource.connection_bands_list.length (); ++i) + { + RTCORBA::PriorityBands + safebands(orb_resource.connection_bands_list[i].bands.length ()); + safebands.length (orb_resource.connection_bands_list[i].bands.length ()); + + for (CORBA::ULong l = 0; + l < orb_resource.connection_bands_list[i].bands.length (); + ++l) + { + safebands[l].low = orb_resource.connection_bands_list[i].bands[l].low; + safebands[l].high = orb_resource.connection_bands_list[i].bands[l].high; + } + + if (this->priority_bands_map_.bind (orb_resource.connection_bands_list[i].Id.in (), + safebands) != 0) + { + ACE_DEBUG ((LM_DEBUG, + "Error binding priority bands name: %s to map " + "when initializing RTNodeApplication resources.\n", + orb_resource.connection_bands_list[i].Id.in ())); + ACE_THROW (CORBA::INTERNAL ()); + } + else + { + ACE_DEBUG ((LM_DEBUG, + "RTResource_Config_Manager::init_resource added connection bands: %s\n", + orb_resource.connection_bands_list[i].Id.in ())); + } + } + + // now initialize the policy set part of it. + // server_resource.orb_config.policy_set + const CIAO::DAnCE::PolicySets &sets = server_resource.orb_config.policy_set; + for (CORBA::ULong i = 0; i < sets.length (); ++i) + { + CORBA::ULong np = sets[i].policies.length (); + if (np == 0) + continue; + + CORBA::PolicyList_var policy_list = new CORBA::PolicyList (np); + policy_list->length (np); + + // Create a list of policies + for (CORBA::ULong pc = 0; pc < np; ++pc) + { + policy_list[pc] = this->create_single_policy (sets[i].policies[pc] + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } + + // Bind the policy list to the name. The bind operation should + // surrender the ownership of the newly created PolicyList + // sequence to the map. + if (this->policy_map_.bind (sets[i].Id.in (), + policy_list) != 0) + { + ACE_DEBUG ((LM_DEBUG, + "Error binding Policy_Set with name: %s\n", + sets[i].Id.in ())); + ACE_THROW (CORBA::INTERNAL ()); + } + else + { + ACE_DEBUG ((LM_DEBUG, + "RTResource_Config_Manager::init_resource added policy set: %s\n", + sets[i].Id.in ())); + } + } +} + +void +CIAO::RTResource_Config_Manager::fini (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + TP_MAP::ITERATOR iter = this->threadpool_map_.begin (); + TP_MAP::ITERATOR end = this->threadpool_map_.end (); + + for (; iter != end; ++iter) + { + this->rtorb_->destroy_threadpool ((*iter).int_id_ + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } + +} + +RTCORBA::ThreadpoolId +CIAO::RTResource_Config_Manager::find_threadpool_by_name (const char *name + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + if (name == 0) + { + ACE_DEBUG ((LM_DEBUG, + "Invalid name string found in \"find_threadpool_by_name\"\n")); + ACE_THROW_RETURN (CORBA::INTERNAL (), 0); + } + + + RTCORBA::ThreadpoolId ret_id = 0; // return id + + if (this->threadpool_map_.find (name, ret_id) != 0) + { + ACE_DEBUG ((LM_DEBUG, + "Unable to find a threadpool named %s\n", + name)); + ACE_THROW_RETURN (CORBA::INTERNAL (), 0); + } + + return ret_id; +} + +RTCORBA::PriorityBands * +CIAO::RTResource_Config_Manager::find_priority_bands_by_name (const char *name + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + if (name == 0) + { + ACE_DEBUG ((LM_DEBUG, + "Invalid name string found in \"find_priority_bands_by_name\"\n")); + ACE_THROW_RETURN (CORBA::INTERNAL (), 0); + } + + PB_MAP::ENTRY *entry = 0; + + if (this->priority_bands_map_.find (name, entry) != 0) + { + ACE_DEBUG ((LM_DEBUG, + "Unable to find a connection bands named %s\n", + name)); + ACE_THROW_RETURN (CORBA::INTERNAL (), 0); + } + + RTCORBA::PriorityBands_var retv = new RTCORBA::PriorityBands; + (*retv.ptr ()) = (*entry->int_id_.ptr ()); + return retv._retn (); +} + +CORBA::PolicyList * +CIAO::RTResource_Config_Manager::find_policies_by_name (const char *name + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + if (name == 0) + { + ACE_DEBUG ((LM_DEBUG, + "Invalid name string found in \"find_policies_by_name\"\n")); + ACE_THROW_RETURN (CORBA::INTERNAL (), 0); + } + + + ACE_DEBUG ((LM_DEBUG, "RTResource_Config_Manager::find_policies_by_name: %s\n", + name)); + + POLICY_MAP::ENTRY *entry = 0; + + if (this->policy_map_.find (name, entry) != 0) + { + ACE_DEBUG ((LM_DEBUG, + "Unable to find a PolicyList named %s\n", + name)); + ACE_THROW_RETURN (CORBA::INTERNAL (), 0); + } + + // duplicate the sequence PolicyList. + CORBA::PolicyList_var retv = + new CORBA::PolicyList (entry->int_id_.in ()); + + ACE_DEBUG ((LM_DEBUG, "RTResource_Config_Manager::find_policies_by_name ok.\n")); + + return retv._retn (); +} + +CORBA::Policy_ptr +CIAO::RTResource_Config_Manager::create_single_policy +(const CIAO::DAnCE::PolicyDef &policy_def + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + // if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG, + "RTResource_Config_Manager::create_single_policy: %d\n", + policy_def._d ())); + + CORBA::Policy_var retv; + + switch (policy_def._d ()) + { + case RTCORBA::PRIORITY_MODEL_POLICY_TYPE: + { + const CIAO::DAnCE::PriorityModelPolicyDef &tmp + = policy_def.PriorityModelDef (); + + retv = this->rtorb_->create_priority_model_policy ((RTCORBA::PriorityModel) tmp.priority_model, + tmp.server_priority + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + if (! CORBA::is_nil (retv.in ())) + ACE_DEBUG ((LM_DEBUG, + "Create PriorityModel policy: %d - %d\n", + tmp.priority_model, tmp.server_priority)); + } + break; + + case RTCORBA::THREADPOOL_POLICY_TYPE: + { + RTCORBA::ThreadpoolId tpid = + this->find_threadpool_by_name (policy_def.ThreadpoolDef().Id.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + retv = this->rtorb_->create_threadpool_policy (tpid + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + if (! CORBA::is_nil (retv.in ())) + ACE_DEBUG ((LM_DEBUG, + "Create Threadpool policy: %s, TPid: %d\n", + policy_def.ThreadpoolDef().Id.in (), tpid)); + } + break; + + case RTCORBA::PRIORITY_BANDED_CONNECTION_POLICY_TYPE: + { + RTCORBA::PriorityBands_var bands = + this->find_priority_bands_by_name (policy_def.PriorityBandedConnectionDef().Id.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + retv = + this->rtorb_->create_priority_banded_connection_policy (bands.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + if (! CORBA::is_nil (retv.in ())) + ACE_DEBUG ((LM_DEBUG, + "Created Banded Connection policy: %s\n", + policy_def.PriorityBandedConnectionDef().Id.in ())); + } + break; + + default: + ACE_DEBUG ((LM_DEBUG, + "Invalid policy type - RTPolicy_Set_Manager::create_single_policy\n")); + ACE_THROW_RETURN (CORBA::INTERNAL (), 0); + } + + return retv._retn (); +} + diff --git a/TAO/CIAO/DAnCE/NodeApplication/RTNodeApp_Configurator.cpp b/TAO/CIAO/DAnCE/NodeApplication/RTNodeApp_Configurator.cpp new file mode 100644 index 00000000000..5e81e669182 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/RTNodeApp_Configurator.cpp @@ -0,0 +1,105 @@ +// $Id$ + +#include "RTNodeApp_Configurator.h" +#include "ciao/ServerResourcesC.h" +#include "tao/RTPortableServer/RTPortableServer.h" + +int +CIAO::RTNodeApp_Configurator::pre_orb_initialize () +{ + ACE_DEBUG ((LM_DEBUG, "RTNodeApp_Configurator::pre_orb_init\n")); + + return 0; +} + +int +CIAO::RTNodeApp_Configurator::post_orb_initialize (CORBA::ORB_ptr o) +{ + ACE_DEBUG ((LM_DEBUG, "RTNodeApp_Configurator::post_orb_init\n")); + + this->orb_ = CORBA::ORB::_duplicate (o); + + CORBA::Object_var object = + this->orb_->resolve_initial_references ("RTORB"); + + this->rtorb_ = + RTCORBA::RTORB::_narrow (object.in ()); + + this->config_manager_.init (this->rtorb_.in ()); + + return 0; +} + +int +CIAO::RTNodeApp_Configurator::init_resource_manager +(const ::Deployment::Properties &properties) +{ + + // if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG, "RTNodeApp_Configurator::init_resource_manager\n")); + // @@ Should we cache the properties that we consumed here? + + for (CORBA::ULong i = 0; i < properties.length (); ++i) + { + // if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG, "RTNodeApp_Configurator::init_resource_manager processing property: %s\n", + properties[i].name.in ())); + + if (ACE_OS::strcmp ("CIAOServerResource", properties[i].name.in ()) == 0) + { + const CIAO::DAnCE::ServerResource *svr_resource; + if (properties[i].value >>= svr_resource) + { + this->config_manager_.init_resources (*svr_resource); + // Now we have the information to initialize the manager. + } + else + ACE_ERROR_RETURN ((LM_ERROR, + "ERROR: RTNodeApp_Configurator::init_resource_manager unable to extract CIAOServerResources\n"), -1); + } + + // Ignore other stuff + } + + return 0; +} + +CORBA::PolicyList * +CIAO::RTNodeApp_Configurator::find_container_policies +(const ::Deployment::Properties &properties) +{ + ACE_DEBUG ((LM_DEBUG, "RTNodeApp_Configurator::find_container_policies\n")); + // @@ Should we cache the properties that we consumed here? + + for (CORBA::ULong i = 0; i < properties.length (); ++i) + { + ACE_DEBUG ((LM_DEBUG, "RTNodeApp_Configurator::find_container_policies processing property: %s\n", + properties[i].name.in ())); + + if (ACE_OS::strcmp ("ContainerPolicySet", properties[i].name) == 0) + { + const char *policy_name; + if (properties[i].value >>= policy_name) + { + return this->config_manager_.find_policies_by_name (policy_name); + } + else + ACE_ERROR_RETURN ((LM_ERROR, + "ERROR: RTNodeApp_Configurator::find_container_policies unable to extract ContainerPolicySet\n"), 0); + } + } + + return 0; +} + + +extern "C" CIAO_RTNA_Configurator_Export CIAO::NodeApp_Configurator *create_nodeapp_configurator (void); + +CIAO::NodeApp_Configurator * +create_nodeapp_configurator (void) +{ + CIAO::RTNodeApp_Configurator *config; + ACE_NEW_RETURN (config, CIAO::RTNodeApp_Configurator, 0); + return config; +} + diff --git a/TAO/CIAO/DAnCE/NodeApplication/RTNodeApp_Configurator.h b/TAO/CIAO/DAnCE/NodeApplication/RTNodeApp_Configurator.h new file mode 100644 index 00000000000..c44786195e9 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplication/RTNodeApp_Configurator.h @@ -0,0 +1,78 @@ +// $Id$ +/**======================================================== + * + * @file RTNodeApp_Configurator.h + * + * @Brief This file contains the implementation of + * the RTNodeApp_Configurator, a concrete NodeApp_Configurator for + * setting up real-time support for NodeApplication. + * + * + * @author Nanbor Wang <nanbor@exothermic.txcorp.com> + *========================================================*/ + +#ifndef RTNODEAPP_CONFIGURATOR_H +#define RTNODEAPP_CONFIGURATOR_H +#include /**/ "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "NodeApp_Configurator.h" +#include "RTNA_Configurator_Export.h" +#include "tao/RTCORBA/RTCORBA.h" +#include "RTConfig_Manager.h" + +namespace CIAO +{ + /** + * @class RTNodeApp_Configurator + * + * @brief This class implements a concrete NodeApp_Configurator for + * setting up the NodeApplication process for RT support. + **/ + class CIAO_RTNA_Configurator_Export RTNodeApp_Configurator : + public NodeApp_Configurator + { + public: + /// Default destructor. + virtual ~RTNodeApp_Configurator (void) {} + + /** + * @brief "pre_orb_initialize" is called before ORB_init. + */ + virtual int pre_orb_initialize (void); + + /** + * @brief "initialize" is called after NodeApplication get a hold + * at this object. + */ + virtual int post_orb_initialize (CORBA::ORB_ptr o); + + /** + * @brief "init_resource_manager" is called by NodeApplication when + * it receives an "install" commands. + */ + virtual int + init_resource_manager (const ::Deployment::Properties &properties); + + /** + * @brief get a policyset by its name. + */ + virtual CORBA::PolicyList * + find_container_policies (const ::Deployment::Properties &properties); + + protected: + CORBA::ORB_var orb_; + + RTCORBA::RTORB_var rtorb_; + + RTResource_Config_Manager config_manager_; + }; +} + +#include /**/ "ace/post.h" +#endif /* RTNODEAPP_CONFIGURATOR_H */ diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Client.cpp b/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Client.cpp new file mode 100644 index 00000000000..73a8071f305 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Client.cpp @@ -0,0 +1,59 @@ +// $Id$ + +// HTTP_Client.cpp, Stoyan + +#include "HTTP_Client.h" +#include "HTTP_Handler.h" +#include "ace/OS_NS_string.h" + +HTTP_Client::HTTP_Client (void) +{ +} + +HTTP_Client::~HTTP_Client (void) +{ + this->close (); +} + +// initialize address and filename. No network i/o in open +int +HTTP_Client::open (const ACE_TCHAR *filename, + const ACE_TCHAR *hostname, + u_short port) +{ + filename_ = ACE_OS::strdup (filename); + inet_addr_.set (port, hostname); + return 0; +} + +// read from connection length bytes from offset, into Message block +int +HTTP_Client::read (ACE_Message_Block *mb) +{ + + // Create a HTTP_Client Reader + HTTP_Reader HTTP_reader (mb, filename_); + HTTP_Handler *brp = &HTTP_reader; + + // Connect to the server + if (connector_.connect (brp, inet_addr_) == -1) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Client::read():Connector error"), -1); + + return HTTP_reader.byte_count (); + +} + +// close down the HTTP_Client +int +HTTP_Client::close (void) +{ + + if (filename_) + { + ACE_OS::free ((void *) filename_); + filename_ = 0; + } + return 0; + +} + diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Client.h b/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Client.h new file mode 100644 index 00000000000..ac0f9cbea92 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Client.h @@ -0,0 +1,72 @@ + +/* -*- C++ -*- */ + +//============================================================================= +/** + * @file HTTP_Client.h + * + * $Id$ + * + * This is the HTTP_Client class, which is the API for doing file + * uploads/downloads. + * + * @author Stoyan Paunov + */ +//============================================================================= + + +#ifndef HTTP_Client_H +#define HTTP_Client_H + + +#include "ace/INET_Addr.h" +#include "ace/Svc_Handler.h" +#include "ace/SOCK_Connector.h" +#include "ace/Connector.h" +#include "ace/Message_Block.h" +#include "HTTP_Handler.h" + +/** + * @class HTTP_Client + * + * @brief HTTP_Client is intended to provide application API to + * classes that wish to do network i/o at a very + * high level of abstraction. + * + * This class provides the ability to retrieve data from + * the network, of specified length and offset, and potentially + * use any protocol "under the hood" to do so. It currently + * uses HTTP. See HTTP_Handler also. + */ +class HTTP_Client +{ +public: + HTTP_Client (void); + ~HTTP_Client (void); + + /// Initializes the class with the given filename, hostname and port. + /// it should be called with the filename, before any read/write calls + int open (const ACE_TCHAR *filename, + const ACE_TCHAR *hostname = ACE_DEFAULT_SERVER_HOST, + u_short port = 80); + + /// Starts a connection, and reads a file from the server into + /// Message_Block mb + int read (ACE_Message_Block *mb); + + /// Frees memory allocated for filename. + int close (); + +private: + /// Store the internet address of the server + ACE_INET_Addr inet_addr_; + + /// The filename + ACE_TCHAR *filename_; + + /// The connector endpoint to initiate the client connection + ACE_Connector<HTTP_Handler, ACE_SOCK_CONNECTOR> connector_; + +}; + +#endif /* HTTP_Client_H */ diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Handler.cpp b/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Handler.cpp new file mode 100644 index 00000000000..ffd85ca1ebf --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Handler.cpp @@ -0,0 +1,203 @@ +// $Id$ + +// HTTP_Handler.cpp, Stoyan + +#include "HTTP_Handler.h" +#include "ace/OS_NS_stdio.h" +#include "ace/OS_NS_string.h" +#include "ace/OS_NS_strings.h" + +// Empty constructor for compliance with new Connector behavior. +HTTP_Handler::HTTP_Handler (void) +{ +} + +// Always use this constructor +HTTP_Handler::HTTP_Handler (ACE_Message_Block * mb, + ACE_TCHAR *filename) : + mb_ (mb), + filename_ (ACE_OS::strdup (filename)), + bytecount_ (0) +{ +} + +HTTP_Handler::~HTTP_Handler (void) +{ + if (filename_) + { + ACE_OS::free (filename_); + filename_ = 0; + } +} + +// Called by Connector after connection is established +int +HTTP_Handler::open (void *) +{ + if (this->send_request () != 0) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Handler::open():send_request failed\n"), -1); + + if (this->receive_reply () != 0) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Handler::open():receive_reply failed\n"), -1); + return 0; + +} + +// No-op +int +HTTP_Handler::close (u_long) +{ + return 0; +} + +// Always overridden by the derived classes +int +HTTP_Handler::send_request (void) +{ + return -1; +} + +// Always overridden by the derived classes +int +HTTP_Handler::receive_reply (void) +{ + return -1; +} + +// used to retrieve the number of bytes read/written by the +// last operation on the Blob +size_t +HTTP_Handler::byte_count (void) +{ + return bytecount_; +} + +// Reader ************************************************** + +HTTP_Reader::HTTP_Reader (ACE_Message_Block * mb, + ACE_TCHAR *filename, + const char *request_prefix, + const char *request_suffix) : + HTTP_Handler (mb, filename), + request_prefix_ (request_prefix), + request_suffix_ (request_suffix) +{ +} + +// Send the HTTP request +int +HTTP_Reader::send_request (void) +{ + char mesg [MAX_HEADER_SIZE]; + + // Check to see if the request is too big + if (MAX_HEADER_SIZE < (ACE_OS::strlen (request_prefix_) + + ACE_OS::strlen (filename_) + + ACE_OS::strlen (request_suffix_) + 4)) + ACE_ERROR_RETURN((LM_ERROR,"Request too large!"), -1); + + // Create a message to send to the server requesting retrieval of the file + int len = ACE_OS::sprintf (mesg, "%s %s %s", request_prefix_, filename_, request_suffix_); + + // Send the message to server + if (peer ().send_n (mesg, len) != len) + ACE_ERROR_RETURN((LM_ERROR,"Error sending request\n"), -1); + + + return 0; +} + +// Recieve the HTTP Reply +int +HTTP_Reader::receive_reply (void) +{ + size_t num_recvd = 0; + char buf [MTU+1]; + char *buf_ptr = 0; + size_t bytes_read = 0; + + // Receive the first MTU bytes and strip the header off. + // Note that we assume that the header will fit into MTU bytes. + + if (peer ().recv_n (buf, MTU, 0, &num_recvd) >= 0) + { + //Make sure that response type is 200 OK + if (ACE_OS::strstr (buf,"200 OK") == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "HTTP_Reader::receiveReply(): Response is not 200 OK\n" ), -1); + + // Search for the header termination string "\r\n\r\n", or "\n\n". If + // found, move past it to get to the data portion. + if ((buf_ptr = ACE_OS::strstr (buf,"\r\n\r\n")) != 0) + buf_ptr += 4; + else if ((buf_ptr = ACE_OS::strstr (buf, "\n\n")) != 0) //for compatibility with JAWS + buf_ptr += 2; + else + buf_ptr = buf; + + // Determine number of data bytes read. This is equal to the + // total bytes read minus number of header bytes. + bytes_read = num_recvd - (buf_ptr - buf); + + } + else + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Reader::receiveReply():Error while reading header\n"), -1); + + // *************************************************************** + // At this point, we have stripped off the header and are ready to + // process data. buf_ptr points to the data + + //set the size of the ACE_Message_Block to the current bytes read + //NOTE: this function reallocates if necessary + //this->mb_->size (bytes_read); + + ACE_Message_Block* temp; //pointer used temporarily + //for memory allocations before + //chaining to Message_Block + + ACE_Message_Block* curr = this->mb_; + + ACE_NEW_RETURN (temp, ACE_Message_Block (bytes_read), -1); + curr->cont (temp); + + curr = curr->cont (); + + // Copy over all the data bytes into our message buffer. + if (curr->copy (buf_ptr, bytes_read) == -1) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", + "HTTP_Reader::receiveReply():Error copying data into Message_Block\n" ), -1); + + //read the rest of the data into a number of ACE_Message_Blocks and + //chain them together in a link list fashion + + num_recvd = 0; + + do + { + if (curr->space () == 0) + { + ACE_NEW_RETURN (temp, ACE_Message_Block (MTU), -1); + curr->cont (temp); + curr = curr->cont (); + } + + if (peer ().recv_n (curr->wr_ptr (), curr->space (), 0, &num_recvd) >= 0) + { + //move the write pointer + curr->wr_ptr (num_recvd); + + //increment bytes_read + bytes_read += num_recvd; + + } + else + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Reader::receiveReply():Error while reading header\n"), -1); + + }while (num_recvd != 0); + + // Set the byte count to number of bytes received + this->bytecount_ = bytes_read; + + return 0; +} + diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Handler.h b/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Handler.h new file mode 100644 index 00000000000..d1e9aae2894 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/HTTP_Handler.h @@ -0,0 +1,86 @@ + +/* -*- C++ -*- */ + +//============================================================================= +/** + * @file HTTP_Handler.h + * + * $Id$ + * + * HTTP_Handler is a base class for HTTP_Reader and + * HTTP_Writer which are created in response to calls to + * read/write, as appropriate + * + * + * @author Stoyan Paunov + */ +//============================================================================= + + +#ifndef HTTP_HANDLER_H +#define HTTP_HANDLER_H + +#include "ace/SOCK_Stream.h" +#include "ace/Svc_Handler.h" +#include "ace/Message_Block.h" + +/** + * @class HTTP_Handler + * class to retrieve data via HTTP + */ +class HTTP_Handler : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH> +{ +public: + /// Null constructor, insures that it works properly with Connector + HTTP_Handler (void); + + /// Always use this constructor to make HTTP_Handlers + HTTP_Handler (ACE_Message_Block *mb, + ACE_TCHAR *filename); + + /// returns the number of bytes read/written in the last operation. + size_t byte_count (void); + + /// Activate this instance of the <HTTP_Handler> + virtual int open (void * = 0); + + /// Close down the Blob + virtual int close (u_long flags = 0); + + ~HTTP_Handler (void); + +protected: + virtual int send_request (void); + virtual int receive_reply (void); + + ACE_Message_Block *mb_; + ACE_TCHAR *filename_; + size_t bytecount_; + enum + { + /// The handler assumes that the first 2048 bytes of a server response + /// contains the header + MAX_HEADER_SIZE = 2048, + + /// set the MAX_TRANSMISSION_UNIT (MTU) = BUFSIZ as defined by OS + MTU = BUFSIZ + }; +}; + +class HTTP_Reader : public HTTP_Handler +{ +public: + HTTP_Reader (ACE_Message_Block *mb, + ACE_TCHAR *filename, + const char *request_prefix = "GET", + const char *request_suffix = "HTTP/1.0\r\n\r\n"); + +private: + //NOTE: these functions return -1 on error + int send_request (void); + int receive_reply (void); + const char *request_prefix_; + const char *request_suffix_; +}; + +#endif /* HTTP_HANDLER_H */ diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/URL_Parser.cpp b/TAO/CIAO/DAnCE/NodeApplicationManager/URL_Parser.cpp new file mode 100644 index 00000000000..3b1f7fab90b --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/URL_Parser.cpp @@ -0,0 +1,103 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ace/ARGV.h" +#include "URL_Parser.h" + +#include "ace/OS_NS_string.h" + +bool +URL_Parser::parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("rwu:h:p:f:d")); + + bool success = true; + int c; + + while ((c = get_opt ()) != -1) + switch (c) + { + case 'd': + this->debug_ = 1; + break; + case 'u': + success = parseURL (get_opt.opt_arg ()); + break; + // Usage fallthrough. + default: + success = false; + } + if (this->hostname_ == 0 || this->filename_ == 0) + success = false; + + return success; +} + +URL_Parser::URL_Parser (void) + : hostname_ ("127.0.0.1"), + port_ (ACE_DEFAULT_HTTP_SERVER_PORT), + filename_ (0), + debug_ (0) +{ +} + +bool URL_Parser::parseURL (char* url) +{ + char* ptr; + bool success = true; + + if ((ptr = ACE_OS::strstr (url, "http://"))) + url += ACE_OS::strlen ("http://"); + + if (url[0] == '/') + { + this->filename_ = ACE_OS::strdup (url); + } + else + { + if ((ptr = ACE_OS::strstr (url, ":"))) + this->port_ = ACE_OS::atoi (ptr + 1); + else + ptr = ACE_OS::strstr (url, "/"); + + if(!ptr) + success = false; + else + { + size_t host_len = ptr - url; + ACE_NEW_RETURN (this->hostname_, char [host_len + 1], false); + ACE_OS::strncpy (this->hostname_, url, host_len); + this->hostname_ [host_len] = '\0'; + + if ((ptr = ACE_OS::strstr (ptr, "/"))) + { + this->filename_ = ACE_OS::strdup(ptr); + } + else + success = false; + } + } + return success; +} + + +void URL_Parser::Error (void) +{ + ACE_DEBUG ((LM_DEBUG, "./http_client -u http://hostname:port/filename [-d]\n")); + +} + + + URL_Parser::~URL_Parser() + { + if(this->hostname_) + { + delete [] this->hostname_; + this->hostname_ =0; + } + if (this->filename_) + { + ACE_OS::free (this->filename_); + this->filename_ = 0; + } + } diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/URL_Parser.h b/TAO/CIAO/DAnCE/NodeApplicationManager/URL_Parser.h new file mode 100644 index 00000000000..aaaeab4960c --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/URL_Parser.h @@ -0,0 +1,68 @@ + +/* -*- C++ -*- */ + +//============================================================================= +/** + * @file URL_Parser.h + * + * $Id$ + * + * Parses a URL into its logical chunks + * + * + * @author Stoyan Paunov + */ +//============================================================================= + + +#ifndef URL_PARSER_H +#define URL_PARSER_H + +#include "ace/Get_Opt.h" +#include "ace/ARGV.h" +#include "ace/Singleton.h" //for ACE_Singleton +#include "ace/Null_Mutex.h" //for ACE_Null_Mutex + +//forward declaration +class URL_Parser; + +typedef ACE_Singleton <URL_Parser, ACE_Null_Mutex> TheURL_Parser; + + +class URL_Parser +{ +public: + + friend class ACE_Singleton <URL_Parser, ACE_Null_Mutex>; + + /// parses commandline arguments + bool parse_args (int argc, ACE_TCHAR *argv[]); + + //return false on failure + bool parseURL (char* url); + + void Error (void); + + /// Hostname to connect to + ACE_TCHAR *hostname_; + + /// Port number to use + u_short port_; + + /// Filename to upload/download + ACE_TCHAR *filename_; + + /// turns on verbosity + int debug_; + + //destructor + ~URL_Parser (void); + +protected: + URL_Parser (void); + // protected constructor, singleton +}; + + + +#endif /* URL_PARSER_H */ diff --git a/TAO/CIAO/DAnCE/NodeManager/CIAO_Monitor.cpp b/TAO/CIAO/DAnCE/NodeManager/CIAO_Monitor.cpp new file mode 100644 index 00000000000..cbd494ac776 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeManager/CIAO_Monitor.cpp @@ -0,0 +1,170 @@ +// $Id$ +//========================================================================== +/// The RSS Monitor class defination +/** + * @file CIAO_Monitor.cpp + * + * @brief The Monitor class defination + * + * @author Nilabja Roy <nilabjar@dre.vanderbilt.edu> + */ +//========================================================================== + +#include "CIAO_Monitor.h" +#include "CIAO_common.h" +#include "ace/OS_NS_stdio.h" + + +extern "C" ACE_Proper_Export_Flag CIAO::MonitorBase * CIAO::createMonitor () +{ + return new CIAO::CIAO_Monitor (); +} + +CIAO::CIAO_Monitor::CIAO_Monitor () +{ +} + +/// The Desctructor +CIAO::CIAO_Monitor::~CIAO_Monitor () +{ +} + +int CIAO::CIAO_Monitor::initialize_params ( + ::Deployment::Domain& domain, + ::Deployment::TargetManager_ptr target_manager, + int interval + ) +{ + current_domain_.reset (new ::Deployment::Domain (domain)); + target_ptr_= target_manager; + this->interval_=interval; + + return 0; +} + +int CIAO::CIAO_Monitor::start (CORBA::ORB_ptr) +{ + return 0; +} + +int CIAO::CIAO_Monitor::stop () +{ + return 0; +} + +::Deployment::Domain* CIAO::CIAO_Monitor::get_current_data () +{ + if (CIAO::debug_level () > 9) + { + // ACE_DEBUG ((LM_DEBUG , + // "CIAO_Monitor::Inside the get_current_data of[%s]\n", + // current_domain_->node[0].name.in ())); + } + + CORBA::Double current_load = 0; + + long user_cpu; + long user_cpu_low; + long sys_cpu; + long idle_time; + + // get the load average value from the /proc/loadavg + + FILE *load_file = 0; + + load_file = ACE_OS::fopen ("/proc/stat", "r"); + + if (load_file == 0) + { + // load file cannot be opened .. + current_load = 0; + } + else + { + char buffer [99]; + + // read in the cpu label + fscanf (load_file, "%s", buffer); + + //read the user_cpu + fscanf (load_file, "%ld", &user_cpu); + + //read the user cpu low priority + fscanf (load_file, "%ld", &user_cpu_low); + + //read the system cpu + fscanf (load_file, "%ld", &sys_cpu); + + //read the cpu in idle time .. + fscanf (load_file, "%ld", &idle_time); + + + if (CIAO::debug_level () > 9) + { + // ACE_DEBUG ((LM_DEBUG , "Current load is %d\n",current_load)); + } + + ACE_OS::fclose (load_file); + + + // Calculate the percent CPU + + long current_user_cpu = user_cpu - prev_user_cpu_; + long total_cpu_usage = user_cpu + user_cpu_low + sys_cpu + + idle_time - prev_user_cpu_ - prev_idle_time_ - prev_sys_cpu_ + - prev_user_cpu_low_; + + current_load = (current_user_cpu * 100)/total_cpu_usage; + + // Save the current cpu values in the previous variables + + prev_user_cpu_ = user_cpu; + + prev_user_cpu_low_ = user_cpu_low; + + prev_sys_cpu_ = sys_cpu; + + prev_idle_time_ = idle_time; + + } + + + CORBA::Any any; + any <<= current_load; + + // here insert the util value, in the right position + + for (unsigned int i = 0; + i < current_domain_->node[0].resource.length (); + i++) + { + if (!strcmp (current_domain_->node[0].resource[i].name, "Processor")) + { + // ACE_DEBUG ((LM_DEBUG , "CIAO::Monitor::The Resource found\n")); + for (unsigned int j = 0; + j < current_domain_->node[0].resource[i].property.length (); + j++) + { + if (!strcmp ( + current_domain_ + ->node[0].resource[i].property[j].name.in (), + "LoadAverage")) + { + //ACE_DEBUG ((LM_DEBUG , "CIAO::Monitor::The property found\n")); + current_domain_->node[0].resource[i].property[j].kind = + ::Deployment::Quantity; + current_domain_->node[0].resource[i].property[j].value = + any; + } + } + } + } + + + if (CIAO::debug_level () > 9) + { + //ACE_DEBUG ((LM_DEBUG , "CIAO::Monitor::Exiting from the get_current_data function\n")); + } + + return current_domain_.get (); +} diff --git a/TAO/CIAO/DAnCE/NodeManager/CIAO_Monitor.h b/TAO/CIAO/DAnCE/NodeManager/CIAO_Monitor.h new file mode 100644 index 00000000000..62fd78da735 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeManager/CIAO_Monitor.h @@ -0,0 +1,119 @@ +// $Id$ +//========================================================================== +/** + * @file CIAO_Monitor.h + * + * @brief The Monitor class. + * + * This class periodically records the + * loadavg value of the machine in which it + * loaded + * + * @author Nilabja Roy <nilabjar@dre.vanderbilt.edu> + */ +//========================================================================== + + +#ifndef CIAO_MONITORH +#define CIAO_MONITORH + +#include "BaseMonitor.h" +#include "ace/Auto_Ptr.h" +#include <memory> + + + +/** + * @namespace CIAO + * + * @brief The top level CIAO namespace + * + */ + +namespace CIAO +{ + class ReceiverThread; + + /** + * @class CIAO_Monitor + * + * @brief The Monitor class + * + */ + class CIAO_Monitor : public MonitorBase + { + public: + + /** @function Constructor + */ + CIAO_Monitor (); + + /** @function initialize_params + * @param domain The Initial Domain for this host + * @param target_manager TargetManager_ptr + * @param interval The time interval after whic updates need to be send. + * @description This function is called by the controller to initialize + * parameters. + */ + virtual int initialize_params ( + ::Deployment::Domain& domain, + ::Deployment::TargetManager_ptr target_manager, + int interval + ); + /** + * @function Destructor + */ + virtual ~CIAO_Monitor (); + + /** @function start. + * @brief This method will starts up the Monitor + * in this case, + * @param orb The orb needed for resolving. + * @return -1 on error + */ + int start (CORBA::ORB_ptr orb); + + /** + * @function stop. + * @brief This method will starts up the Monitor + * in this case + * @return -1 on error + */ + int stop (); + + /** + * @function get_current_date. + * @brief This function retrieves the current + * Domain data + * @return -1 on error + */ + ::Deployment::Domain* get_current_data (); + + protected: + + /// The TargetManager Object to be sent to the RSSSubscriber .. + ::Deployment::TargetManager_ptr target_ptr_; + + + /// The interval after which update is to be returned. + int interval_; + + /// The Domain data structure + auto_ptr <Deployment::Domain> current_domain_; + + ///The previous user cpu + long prev_user_cpu_; + + ///The previous user cpu low priority + long prev_user_cpu_low_; + + ///The previous system cpu + long prev_sys_cpu_; + + ///The previous idle time + long prev_idle_time_; + + }; + +} // CIAO +#endif /* CIAO_MONITORH */ diff --git a/TAO/CIAO/DAnCE/NodeManager/Monitor.mpc b/TAO/CIAO/DAnCE/NodeManager/Monitor.mpc new file mode 100644 index 00000000000..b4f5f55cd31 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeManager/Monitor.mpc @@ -0,0 +1,28 @@ +// $Id$ + + +// MPC file for the Monitor + +project(*monitorlib): ciao_client_dnc, ciao_events_base_dnc { + after += CIAO_TargetManager_stub + includes += $(CIAO_ROOT)/DAnCE/TargetManager + sharedname = ciaomonlib + + libs += TargetManager_stub CIAO_Deployment_stub + + IDL_Files { + } + + Header_Files { + } + + Inline_Files { + } + + Template_Files { + } + + Source_Files { + CIAO_Monitor.cpp + } +} diff --git a/TAO/CIAO/DAnCE/NodeManager/MonitorCB.cpp b/TAO/CIAO/DAnCE/NodeManager/MonitorCB.cpp new file mode 100644 index 00000000000..c5333d60a77 --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeManager/MonitorCB.cpp @@ -0,0 +1,58 @@ +// $Id$ +//---------------------------------------------------------------------------------- +/** + * @file MonitorCB.cpp + * + * @brief The Monitor Update class + * + * The class which updates the resource data + * + * @author Nilabja Roy <nilabjar@dre.vanderbilt.edu> + */ +//---------------------------------------------------------------------------------- + +#include "MonitorCB.h" +#include "CIAO_common.h" + + +CIAO::MonitorCB::MonitorCB (CORBA::ORB_ptr orb, + Deployment::TargetManager_ptr target, + int interval + ):orb_ (orb), + target_mgr_ (target), + interval_ (interval) +{ +} + +int CIAO::MonitorCB::update_data (::Deployment::Domain& data) +{ + CORBA::StringSeq elements; + elements.length (0); + + // data to be updated ... + ::Deployment::DomainUpdateKind update_kind + = ::Deployment::UpdateAvailable; + + // The copy of the domain variable + ::Deployment::Domain_var domain + = new ::Deployment::Domain (data); + + try + { + if (CIAO::debug_level () > 20) + { + ACE_DEBUG ((LM_DEBUG , "CIAO::NM::MonitorCB::Making a call to update\n")); + } + target_mgr_->updateDomain (elements , domain , update_kind); + } + catch (CORBA::Exception& ex) + { + //ACE_DEBUG ((LM_DEBUG, "CIAO::NM::MonitorCB::Unknown Exception\n")); + //ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "NM::MonitorCB::updateDomain"); + } + catch (...) + { + // ignore + } + return 0; +} diff --git a/TAO/CIAO/DAnCE/NodeManager/MonitorController.cpp b/TAO/CIAO/DAnCE/NodeManager/MonitorController.cpp new file mode 100644 index 00000000000..ecf2460915c --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeManager/MonitorController.cpp @@ -0,0 +1,228 @@ +// $Id$ + +//---------------------------------------------------------------------------------- +/** + * @file MonitorController.cpp + * + * @brief The Monitor Controller implementation. + * + * This is the facade class for Monitor + * + * @author Nilabja Roy <nilabjar@dre.vanderbilt.edu> + */ +//---------------------------------------------------------------------------------- + +#include "MonitorController.h" +#include "BaseMonitor.h" +#include "MonitorCB.h" +#include "CIAO_common.h" + + +#include "ace/Log_Msg.h" +#include "ace/DLL.h" +#include "ace/SString.h" + +#include "NodeManager_Impl.h" + + + +namespace CIAO +{ + typedef MonitorBase* (*MonitorFactory) (void); + + /// for the CIAO monitor + const char* monitor_lib_name = "ciaomonlib"; + + // The interval after which update will be sent. + // This value will sent by the EM in the later implementation + const int interval = 10; + + static const char* factory_func = "createMonitor"; +} + +CIAO::MonitorController::MonitorController (CORBA::ORB_ptr orb, + ::Deployment::Domain& domain, + ::Deployment::TargetManager_ptr target, + ::CIAO::NodeManager_Impl_Base* node_mgr + ) + : target_facet_i_ (::Deployment::TargetManager::_duplicate (target)), + terminate_flag_ (0), + orb_ (orb), + initial_domain_ (domain), + node_mgr_ (node_mgr), + monitor_cpu_usage_ (0), + add_component_pid_ (1) +{ +} + +int CIAO::MonitorController::svc (void) +{ + ACE_DLL dll; + + // forming the library name + ACE_CString lib_name = ACE_DLL_PREFIX; + lib_name += monitor_lib_name; + + int retval + = dll.open (lib_name.c_str ()); + + if (retval != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "%p", + "dll.open"), + -1); + + + MonitorFactory factory = + (MonitorFactory) dll.symbol (factory_func); + + if (factory == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "%p", + "dll.symbol"), + -1); + { + ACE_TRACE ((LM_DEBUG, "Inside the init call\n")); + + // here creating the monitor object + monitor_.reset ((MonitorBase*) factory ()); + monitor_->initialize_params (initial_domain_, + target_facet_i_.in (), + interval); + + + // Start the Monitor + monitor_->start (orb_); + auto_ptr <CIAO::MonitorCB> monitor_callback (new CIAO::MonitorCB (orb_, + target_facet_i_.in (), + interval)); + + // check if cpu needs to be monitored or not + for (unsigned int i = 0;i < initial_domain_.node[0].resource.length ();i++) + { + if (!strcmp (initial_domain_.node[0].resource[i].name, "Processor")) + monitor_cpu_usage_ = 1; + } + + // Wait for system to stabilize itself + ACE_OS::sleep (interval); + + + // The loop in which UpdateData is called + while (!terminating ()) + { + + //ACE_DEBUG ((LM_DEBUG , "=The Terminate is %d\n", terminate_flag_)); + + + // if monitoring of cpu is enable , monitor , else dont do + // anything + ::Deployment::Domain* domain; + + if (monitor_cpu_usage_) + domain = monitor_->get_current_data (); + else + domain = &initial_domain_; + + + + // ****** add component data ******************* + + NodeManager_Impl_Base::Component_Ids cids = + node_mgr_->get_component_detail (); + + // Here save the old resource length + int counter = domain->node[0].resource.length (); + + // if pid is already added , dont add + if (add_component_pid_) + { + // then add more resource element to the + // domain structure + // ACE_DEBUG ((LM_DEBUG , "Going to add CID/PID data\n")); + int new_res_size = domain->node[0].resource.length () + + cids.cid_seq_.size (); + + domain->node[0].resource.length (new_res_size); + + ACE_Unbounded_Set_Iterator<ACE_CString> iter (cids.cid_seq_); + + for (iter = cids.cid_seq_.begin (); + iter != cids.cid_seq_.end (); + iter++,counter++) + { + domain->node[0].resource[counter].name = + CORBA::string_dup ("Component"); + domain->node[0].resource[counter].resourceType.length (0); + + // Have one property for now + domain->node[0].resource[counter].property.length (1); + domain->node[0].resource[counter].property[0].name = + CORBA::string_dup ((*iter).c_str ()); + domain->node[0].resource[counter].property[0].kind = + ::Deployment::Quantity; + domain->node[0].resource[counter].property[0].dynamic = + 0; + domain->node[0].resource[counter].property[0].value <<= + CORBA::Long (cids.process_id_); + + // ACE_DEBUG ((LM_DEBUG , "The process id is [%d]\n", + // CORBA::Long (cids.process_id_))); + } + // set the add_component_pid_ to 0 + add_component_pid_ = 0; + } + + //******add compoennt data + + monitor_callback->update_data (*domain); + + // data will be updated in intervals of 10 secs. + // in the latest version of spec , this value will + // come from Execution Manager + ACE_OS::sleep (interval); + + } + monitor_->stop (); + } + + // here delete the monitor object before + // unloading the library + monitor_.reset (); + + // unload the library + dll.close (); + + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , "CIAO::Monitor::Terminating Monitor\n")); + } + return 0; +} + +CIAO::MonitorController::~MonitorController () +{ + terminate (); + wait (); +} + +void CIAO::MonitorController::terminate () +{ + // make the terminate flag false + ACE_GUARD (ACE_SYNCH_MUTEX, + guard, + lock_ + ); + //ACE_DEBUG ((LM_DEBUG , "WITHIN TERMINATE CALL ......\n")); + terminate_flag_=1; +} + +bool CIAO::MonitorController::terminating () +{ + ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, + guard, + lock_, + 0 + ); + return terminate_flag_; +} diff --git a/TAO/CIAO/DAnCE/NodeManager/MonitorController.h b/TAO/CIAO/DAnCE/NodeManager/MonitorController.h new file mode 100644 index 00000000000..83714d682ef --- /dev/null +++ b/TAO/CIAO/DAnCE/NodeManager/MonitorController.h @@ -0,0 +1,125 @@ +// $Id$ + +//--------------------------------------------------------------------------------- +/** + * @file MonitorController.h + * + * @brief The Monitor Controller class. + * + * This class is invoked by the Nodemanager object and it + * in turn loads the proper Monitor which is strategised. + * + * @author Nilabja Roy + */ +//---------------------------------------------------------------------------------- +#ifndef MONITOR_CONTROLLER_H +#define MONITOR_CONTROLLER_H + +#include "NodeManager_svnt_export.h" +#include "Deployment_BaseC.h" + +#include "TargetManager/TargetManagerC.h" +#include "ace/Task.h" +#include "ace/Auto_Ptr.h" + +#include "ace/Synch_Traits.h" +#include "ace/Synch.h" + + +/** + * @namespace CIAO + * + * @brief The top level CIAO namespace + * + */ + +namespace CIAO +{ + + class MonitorBase; + + class NodeManager_Impl_Base; + + /** + * @class MonitorController + * + * @brief The Controller class + * + * Acts as a facade to the Monitor + * module + * + */ + class NodeManager_svnt_Export MonitorController : public ACE_Task_Base + { + public: + /** + * @function svc. + * @brief The main function containing the + * entire activity. + * + * This function runs in the context of the + * thread + * @return int The status of the function + */ + int svc (void); + /** + * @function terminate. + * @brief The terminate function + * + * This function is called to terminate the + * thread + */ + void terminate (); + + + /// The Constructor. + MonitorController (CORBA::ORB_ptr orb, + ::Deployment::Domain& domain, + ::Deployment::TargetManager_ptr target, + ::CIAO::NodeManager_Impl_Base* node_mgr + ); + + ~MonitorController (); + protected: + + /** + * @function terminating. + * @brief returns the terminating flag + * @return bool The terminting state of the thread + */ + bool terminating (); + + /// The monitor object + auto_ptr <MonitorBase> monitor_; + + /// The TargetManagerImpl object + CIAO::TargetManagerImpl_var target_impl_cmp_; + + /// The TargetManager Facet .... + Deployment::TargetManager_var target_facet_i_; + + /// The terminate flag_ + bool terminate_flag_; + + //Thread Mutex for synchronizing call + ACE_SYNCH_MUTEX lock_; + + // the ORB pointer .. + CORBA::ORB_ptr orb_; + + /// The initial domain + ::Deployment::Domain initial_domain_; + + /// The Node Manager + ::CIAO::NodeManager_Impl_Base* node_mgr_; + + /// flag tells ; what to monitor + bool monitor_cpu_usage_; + + /// TO add component pid or not .. + bool add_component_pid_; + }; + +} // CIAO + +#endif diff --git a/TAO/CIAO/DAnCE/RepositoryManager/HTTP_Handler.cpp b/TAO/CIAO/DAnCE/RepositoryManager/HTTP_Handler.cpp new file mode 100644 index 00000000000..ffd85ca1ebf --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/HTTP_Handler.cpp @@ -0,0 +1,203 @@ +// $Id$ + +// HTTP_Handler.cpp, Stoyan + +#include "HTTP_Handler.h" +#include "ace/OS_NS_stdio.h" +#include "ace/OS_NS_string.h" +#include "ace/OS_NS_strings.h" + +// Empty constructor for compliance with new Connector behavior. +HTTP_Handler::HTTP_Handler (void) +{ +} + +// Always use this constructor +HTTP_Handler::HTTP_Handler (ACE_Message_Block * mb, + ACE_TCHAR *filename) : + mb_ (mb), + filename_ (ACE_OS::strdup (filename)), + bytecount_ (0) +{ +} + +HTTP_Handler::~HTTP_Handler (void) +{ + if (filename_) + { + ACE_OS::free (filename_); + filename_ = 0; + } +} + +// Called by Connector after connection is established +int +HTTP_Handler::open (void *) +{ + if (this->send_request () != 0) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Handler::open():send_request failed\n"), -1); + + if (this->receive_reply () != 0) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Handler::open():receive_reply failed\n"), -1); + return 0; + +} + +// No-op +int +HTTP_Handler::close (u_long) +{ + return 0; +} + +// Always overridden by the derived classes +int +HTTP_Handler::send_request (void) +{ + return -1; +} + +// Always overridden by the derived classes +int +HTTP_Handler::receive_reply (void) +{ + return -1; +} + +// used to retrieve the number of bytes read/written by the +// last operation on the Blob +size_t +HTTP_Handler::byte_count (void) +{ + return bytecount_; +} + +// Reader ************************************************** + +HTTP_Reader::HTTP_Reader (ACE_Message_Block * mb, + ACE_TCHAR *filename, + const char *request_prefix, + const char *request_suffix) : + HTTP_Handler (mb, filename), + request_prefix_ (request_prefix), + request_suffix_ (request_suffix) +{ +} + +// Send the HTTP request +int +HTTP_Reader::send_request (void) +{ + char mesg [MAX_HEADER_SIZE]; + + // Check to see if the request is too big + if (MAX_HEADER_SIZE < (ACE_OS::strlen (request_prefix_) + + ACE_OS::strlen (filename_) + + ACE_OS::strlen (request_suffix_) + 4)) + ACE_ERROR_RETURN((LM_ERROR,"Request too large!"), -1); + + // Create a message to send to the server requesting retrieval of the file + int len = ACE_OS::sprintf (mesg, "%s %s %s", request_prefix_, filename_, request_suffix_); + + // Send the message to server + if (peer ().send_n (mesg, len) != len) + ACE_ERROR_RETURN((LM_ERROR,"Error sending request\n"), -1); + + + return 0; +} + +// Recieve the HTTP Reply +int +HTTP_Reader::receive_reply (void) +{ + size_t num_recvd = 0; + char buf [MTU+1]; + char *buf_ptr = 0; + size_t bytes_read = 0; + + // Receive the first MTU bytes and strip the header off. + // Note that we assume that the header will fit into MTU bytes. + + if (peer ().recv_n (buf, MTU, 0, &num_recvd) >= 0) + { + //Make sure that response type is 200 OK + if (ACE_OS::strstr (buf,"200 OK") == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "HTTP_Reader::receiveReply(): Response is not 200 OK\n" ), -1); + + // Search for the header termination string "\r\n\r\n", or "\n\n". If + // found, move past it to get to the data portion. + if ((buf_ptr = ACE_OS::strstr (buf,"\r\n\r\n")) != 0) + buf_ptr += 4; + else if ((buf_ptr = ACE_OS::strstr (buf, "\n\n")) != 0) //for compatibility with JAWS + buf_ptr += 2; + else + buf_ptr = buf; + + // Determine number of data bytes read. This is equal to the + // total bytes read minus number of header bytes. + bytes_read = num_recvd - (buf_ptr - buf); + + } + else + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Reader::receiveReply():Error while reading header\n"), -1); + + // *************************************************************** + // At this point, we have stripped off the header and are ready to + // process data. buf_ptr points to the data + + //set the size of the ACE_Message_Block to the current bytes read + //NOTE: this function reallocates if necessary + //this->mb_->size (bytes_read); + + ACE_Message_Block* temp; //pointer used temporarily + //for memory allocations before + //chaining to Message_Block + + ACE_Message_Block* curr = this->mb_; + + ACE_NEW_RETURN (temp, ACE_Message_Block (bytes_read), -1); + curr->cont (temp); + + curr = curr->cont (); + + // Copy over all the data bytes into our message buffer. + if (curr->copy (buf_ptr, bytes_read) == -1) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", + "HTTP_Reader::receiveReply():Error copying data into Message_Block\n" ), -1); + + //read the rest of the data into a number of ACE_Message_Blocks and + //chain them together in a link list fashion + + num_recvd = 0; + + do + { + if (curr->space () == 0) + { + ACE_NEW_RETURN (temp, ACE_Message_Block (MTU), -1); + curr->cont (temp); + curr = curr->cont (); + } + + if (peer ().recv_n (curr->wr_ptr (), curr->space (), 0, &num_recvd) >= 0) + { + //move the write pointer + curr->wr_ptr (num_recvd); + + //increment bytes_read + bytes_read += num_recvd; + + } + else + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Reader::receiveReply():Error while reading header\n"), -1); + + }while (num_recvd != 0); + + // Set the byte count to number of bytes received + this->bytecount_ = bytes_read; + + return 0; +} + diff --git a/TAO/CIAO/DAnCE/RepositoryManager/PC_Updater.cpp b/TAO/CIAO/DAnCE/RepositoryManager/PC_Updater.cpp new file mode 100644 index 00000000000..b80dfa606f1 --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/PC_Updater.cpp @@ -0,0 +1,267 @@ +// $Id$ + +#include "ace/Log_Msg.h" +#include "ciao/Deployment_DataC.h" +#include "PC_Updater.h" +#include "PC_Updater_T.h" +#include "ace/Containers_T.h" //for ACE_Double_Linked_List + + +#include <iostream> +using namespace std; + +namespace +{ + const size_t TEMP_LEN = 1024; +} + +using namespace PC_Updater_T; + + + //PATH of glory/gory to update the locations of the IADs + // + //PackageConfiguration something; + //ComponentPackageDescriptions basePackage; + //PackagedComponentImplementations implementation; + //ComponentImplementationDescription referencedImplementation; + // + //MONOLITHIC Component: + //MonolithicImplementationDescriptions monolithicImpl; + //NamedImplementationArtifacts primaryArtifact; + //ImplementationArtifactDescription referencedArtifact; + //::CORBA::StringSeq location; + // + //ASSEMBLY-BASED Component + //ComponentAssemblyDescriptions assemblyImpl; + //SubcomponentInstantiationDescriptions instance; + //ComponentPackageDescriptions package; + //... + + + /* + * PC_Updater Constructors + */ + +PC_Updater::PC_Updater (const char* server_path, const char* package) +: server_path_ (server_path), + file_list_ (), + package_ (package), + success_ (true) +{ +} + + +PC_Updater::PC_Updater (ACE_CString& server_path, ACE_CString& package) +: server_path_ (server_path), + file_list_ (), + package_ (package), + success_ (true) +{ +} + + /* + * PC_Updater - Destructor + */ + +PC_Updater::~PC_Updater () +{ + this->clear_list (); +} + + +void PC_Updater::clear_list () +{ + while (!this->file_list_.is_empty ()) + { + ZIP_File_Info* inf = this->file_list_.delete_head (); + + //deallocate the head of the filename list + delete inf; + } +} + + + /* + * PC_Updater - Object update methods + */ + + + // PackageConfiguration + + bool PC_Updater::update (const ::Deployment::PackageConfiguration &pc) + { + //get the list of files in the package and figure out the names of all necessary files + if (!ZIP_Wrapper::file_list_info (const_cast <char*> (this->package_.c_str ()), this->file_list_)) + return false; + + update_sequence (pc.basePackage, this); + + return this->success_; + } + + + // ComponentInterfaceDescription + + void PC_Updater::update (const ::Deployment::ComponentInterfaceDescription &cid) + { + } + + // Requirement + + void PC_Updater::update (const ::Deployment::Requirement &req) + { + } + + + // ComponentExternalPortEndpoint + + void PC_Updater::update (const ::Deployment::ComponentExternalPortEndpoint &cepe) + { + } + + + + // ImplementationDependency + + void PC_Updater::update(const Deployment::ImplementationDependency &id) + { + } + + // ComponentPackageReference + + void PC_Updater::update (const ::Deployment::ComponentPackageReference &cpr) + { + } + + // SubcomponentInstantiationDescription + + void PC_Updater::update (const ::Deployment::SubcomponentInstantiationDescription &sid) + { + update_sequence (sid.basePackage, this); + } + + // SubcomponentPortEndpoint + + void PC_Updater::update (const ::Deployment::SubcomponentPortEndpoint& spe) + { + } + + // AssemblyConnectionDescription + + void PC_Updater::update (const ::Deployment::AssemblyConnectionDescription &acd) + { + } + + + // AssemblyPropertyMapping + + void + PC_Updater::update (const ::Deployment::AssemblyPropertyMapping &apm) + { + } + + // ComponentAssemblyDescription + + void PC_Updater::update (const ::Deployment::ComponentAssemblyDescription& cad) + { + update_sequence (cad.instance, this); + } + + // ImplementationArtifactDescription + + void PC_Updater::update (const ::Deployment::ImplementationArtifactDescription &iad) + { + bool found = false; + + //cout << "label: " << iad.label << endl; + //cout << "location: " << CORBA::string_dup (iad.location[0].in ()) << endl; + + ACE_Double_Linked_List_Iterator<ZIP_File_Info> iter (this->file_list_); + char str [TEMP_LEN]; + + while (!iter.done ()) + { + ACE_OS::strncpy ( str, iter.next ()->name_.c_str (), TEMP_LEN); + //weird. Need to call next to get current ?!?! + + const char* name; + + name = ACE_OS::strstr (str, iad.location[0]); + + if (name) + { + ACE_CString loc (this->server_path_); + loc += name; + loc += iad.location[0]; + loc += ext; + + iad.location[0] = CORBA::string_dup (loc.c_str ()); + + //cout << "new location: " << iad.location[0].in () << endl << endl; + + found = true; + break; + } + iter++; + } + + if (!found) + this->success_ = false; + } + + // NamedImplementationArtifact + + void PC_Updater::update (const ::Deployment::NamedImplementationArtifact &nia) + { + update (nia.referencedArtifact); + } + + // ImplementationRequirement + + void PC_Updater::update (const ::Deployment::ImplementationRequirement &ir) + { + } + + // MonolithicImplementationDescription + + void PC_Updater::update (const ::Deployment::MonolithicImplementationDescription &mid) + { + update_sequence (mid.primaryArtifact, this); + } + + // Capability + + void PC_Updater::update (const ::Deployment::Capability &capability) + { + } + + + + // ComponentImplementationDescription + + void PC_Updater::update ( + const ::Deployment::ComponentImplementationDescription &cid) + { + update_sequence (cid.assemblyImpl, this); + update_sequence (cid.monolithicImpl, this); + } + + // PackagedComponentImplementation + + void PC_Updater::update (const ::Deployment::PackagedComponentImplementation &pci) + { + PC_Updater::update (pci.referencedImplementation); + } + + // ComponentPackageDescription + + void PC_Updater::update (const ::Deployment::ComponentPackageDescription &comppkgdesc) + { + update_sequence (comppkgdesc.implementation, this); + } + + + // Property + void PC_Updater::update (const Deployment::Property& property) + { + } diff --git a/TAO/CIAO/DAnCE/RepositoryManager/PC_Updater.h b/TAO/CIAO/DAnCE/RepositoryManager/PC_Updater.h new file mode 100644 index 00000000000..4396ee22621 --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/PC_Updater.h @@ -0,0 +1,112 @@ +/* -*- C++ -*- */ + +//======================================================================== +/** + * file PC_Updater.h + * + * $Id$ + * + * This class is used to update the location field of the implementation + * artifacts in the PackageConfiguration, so that they point to the + * physical libraries on the collocated HTTP server + * + * author Stoyan Paunov <spaunov@isis.vanderbilt.edu> + */ +//======================================================================== + +#ifndef PC_UPDATER_H +#define PC_UPDATER_H +#include /**/ "ace/pre.h" + +#include "ciao/DeploymentC.h" +#include "ace/SString.h" //for the ACE_CString + +#include "ZIP_Wrapper.h" //Wrapper around zzip +#include "ace/Containers_T.h" //for ACE_Double_Linked_List +#include "ace/Malloc_Allocator.h" //for ACE_New_Allocator needed by the doubly link list + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +/** + * @class PC_Updater + * + * This class defines a set of overloaded methods used to update + * the contents of a PackageConfiguration. More specifically the class + * goes through the PackageConfiguration and updates the locations of the + * artifacts, wrt to their location on the HTTP server. + */ +class PC_Updater +{ +public: + + /// Constructors + + PC_Updater (const char* server_path, const char* package); + PC_Updater (ACE_CString& server_path, ACE_CString& package); + + ~PC_Updater (); + + /// A whole slew of overloaded routines for different IDL + /// data types part of the PackageConfiguration. + + bool update (const ::Deployment::PackageConfiguration &pc); + + void update (const ::Deployment::Property &property); + + void update (const ::Deployment::AssemblyConnectionDescription &acd); + + void update (const ::Deployment::AssemblyPropertyMapping &apm); + + void update (const ::Deployment::ComponentPackageDescription &comppkgdesc); + + void update (const ::Deployment::MonolithicImplementationDescription &mid); + + void update (const ::Deployment::PackagedComponentImplementation &pci); + + void update (const ::Deployment::SubcomponentPortEndpoint &spe); + + void update (const ::Deployment::Requirement &requirement); + + void update (const ::Deployment::ComponentExternalPortEndpoint &cepe); + + void update (const ::Deployment::ComponentPackageReference &cpr); + + void update (const ::Deployment::ComponentImplementationDescription &cid); + + void update (const ::Deployment::SubcomponentInstantiationDescription &sid); + + void update (const ::Deployment::NamedImplementationArtifact &named_implementation); + + void update (const ::Deployment::ComponentInterfaceDescription &cid); + + void update (const ::Deployment::Capability &capability); + + void update (const ::Deployment::ImplementationArtifactDescription &iad); + + void update (const ::Deployment::ImplementationRequirement &ir); + + void update(const Deployment::ImplementationDependency &id); + + void update (const ::Deployment::ComponentAssemblyDescription& cad); + +protected: + + void clear_list (); + +private: + + ACE_CString server_path_; + + /// create a doubly link list + //ACE_New_Allocator allocator_; + ACE_Double_Linked_List<ZIP_File_Info> file_list_; + + ACE_CString package_; + bool success_; +}; + +#include /**/ "ace/post.h" + +#endif /* PC_UPDATER_H */ diff --git a/TAO/CIAO/DAnCE/RepositoryManager/PC_Updater_T.cpp b/TAO/CIAO/DAnCE/RepositoryManager/PC_Updater_T.cpp new file mode 100644 index 00000000000..01fd77a797d --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/PC_Updater_T.cpp @@ -0,0 +1,21 @@ +// $Id$ + +#ifndef PC_UPDATER_T_C +#define PC_UPDATER_T_C +#include "PC_Updater.h" +#include "PC_Updater_T.h" + +namespace PC_Updater_T +{ + /// Dumps a sequence + template <typename SEQUENCE> + void update_sequence (const SEQUENCE &seq, PC_Updater* updater) + { + const CORBA::ULong size = seq.length (); + + for (CORBA::ULong i = 0; i < size; ++i) + updater->update (seq[i]); + } +} + +#endif /* PC_Updater_C */ diff --git a/TAO/CIAO/DAnCE/RepositoryManager/README.txt b/TAO/CIAO/DAnCE/RepositoryManager/README.txt new file mode 100644 index 00000000000..ee8eb6bcdce --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/README.txt @@ -0,0 +1,30 @@ +This is the README file for the Repository Manager (RM). + +In order to be able to compile the RM you need to have ZZIP lib because the Repository +Manager (RM) uses it to read the contents of CCM packages. ZZIP itself is a C++ wrapper +around ZLIB, thus you will also need ZLIB. In order to compile the RM successfully +you will need to do the following: + +1. Download ZLIB and ZZIP-LIB +2. Compile the multi-threaded versions of these libraries +3. [on Windows] create a separate directory for each library; create an include and a lib +subdirectory within them. Then copy the libraries files in the library subdirectory. +Copy zlib.h in the zlib_path/include and copy zziplib.h, zzip-conf.h and zzip-msvc.h +(for Windows platforms; Linux might have its own file!!!). This step might be easier if +you find a binary package of the libraries and just install it. +4. Set $ZLIB_ROOT and $ZZIP_ROOT to point to the directories where you placed the +libraries and the include files. +5. Turn on zzip and zlib in default.features for MPC. +6. MPC will handle the rest. + + +Things to watch out for: +On Windows make sure that you are linking the right ZIP libraries +together with the rest of the libraries, i.e. if you are building the debug version of ACE, +TAO and CIAO, then use the debug version of the ZIP libraries. Otherwise the RM will compile +but it will not work properly. + +to compile the idl with the tao_idl compiler: + +tao_idl -GI new_RepositoryManager.idl -I%TAO_ROOT% -I%TAO_ROOT%\tao -I%TAO_ROOT%\orbsvcs -I%CIAO_ROOT%\DAnCE\ciao + diff --git a/TAO/CIAO/DAnCE/RepositoryManager/RM_Helper.cpp b/TAO/CIAO/DAnCE/RepositoryManager/RM_Helper.cpp new file mode 100644 index 00000000000..9c14b6b9608 --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/RM_Helper.cpp @@ -0,0 +1,253 @@ +// $Id$ + +#include "RM_Helper.h" +#include "ciao/Packaging_DataC.h" //for the PackageConfiguration declaration +#include "tao/CDR.h" //for TAO CDR classes +#include "ace/Message_Block.h" //for ACE_Message_Block +#include "ace/Auto_Ptr.h" //for Auto_Ptr +#include "ace/OS_NS_fcntl.h" //for open +#include "ace/OS_NS_unistd.h" //for close +#include "ace/OS_NS_sys_stat.h" //for filesize and mkdir + + +void RM_Helper::pc_to_cdr (const Deployment::PackageConfiguration& pc, TAO_OutputCDR& cdr) +{ + cdr << pc; +} + + +void RM_Helper::cdr_to_pc (Deployment::PackageConfiguration& pc, TAO_InputCDR& cdr) +{ + cdr >> pc; +} + + +bool RM_Helper::externalize (const Deployment::PackageConfiguration& pc, const char* path) +{ + size_t bufsiz = 0; + TAO_OutputCDR out (bufsiz); + + RM_Helper::pc_to_cdr (pc, out); + + const ACE_Message_Block* mb = out.begin (); + + return write_pc_to_disk (path, *(const_cast<ACE_Message_Block*> (mb))); +} + +bool RM_Helper::reincarnate (Deployment::PackageConfiguration& pc, const char* path) +{ + size_t length = 0; + ACE_Auto_Ptr<ACE_Message_Block> mb (read_pc_from_disk (path, length)); + + if (!mb.get ()) + return false; + + TAO_InputCDR in (mb.get ()); + + RM_Helper::cdr_to_pc (pc, in); + + return true; +} + + +//--------------------------------------------------------------------- +//These are a bit obsolete but until I am sure I will keep them + +//This function attempts to write a sequence of bytes to +//a specified location. A 0 is returned in the case of an error +//and a 1 upon success + +bool RM_Helper::write_to_disk ( + const char* full_path, + const CORBA::Octet* buffer, + size_t length + ) +{ + + // Open a file handle to the local filesystem + ACE_HANDLE handle = ACE_OS::open (full_path, O_CREAT | O_TRUNC | O_WRONLY); + if (handle == ACE_INVALID_HANDLE) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::write_to_disk] file creation error")), + 0); + + //write the data to the file + if (ACE_OS::write (handle, buffer, length) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::write_to_disk] file write error")), + 0); + + // Close the file handle + ACE_OS::close (handle); + + return 1; +} + + +//This function attempts to write a sequence of bytes from an +//ACE_Message_Block to a specified location. A 0 is returned +//in the case of an error and a 1 upon success + +bool RM_Helper::write_to_disk ( + const char* full_path, + ACE_Message_Block& mb, + bool replace + ) +{ + + ACE_stat stat; + + if (ACE_OS::stat(full_path, &stat) != -1 && !replace) + return 0; + + // Open a file handle to the local filesystem + ACE_HANDLE handle = ACE_OS::open (full_path, O_CREAT | O_TRUNC | O_WRONLY); + if (handle == ACE_INVALID_HANDLE) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::write_to_disk] file creation error")), + 0); + + //write the data to the file + for (ACE_Message_Block * curr = &mb; curr != 0; curr = curr->cont ()) + if (ACE_OS::write_n (handle, curr->rd_ptr(), curr->length()) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("write error")), + 0); + + // Close the file handle + ACE_OS::close (handle); + + return 1; +} + + +//This function attempts to write a sequence of bytes from an +//ACE_Message_Block to a specified location. A 0 is returned +//in the case of an error and a 1 upon success +// +//NOTE: This function write the contents in a way that preserves the +//structure of the ACE_Message_Block. It is relevant for +//PackageConfigurations ONLY + + +bool RM_Helper::write_pc_to_disk ( + const char* full_path, + ACE_Message_Block& mb, + bool replace + ) +{ + + ACE_stat stat; + + if (ACE_OS::stat(full_path, &stat) != -1 && !replace) + return 0; + + // Open a file handle to the local filesystem + ACE_HANDLE handle = ACE_OS::open (full_path, O_CREAT | O_TRUNC | O_WRONLY); + if (handle == ACE_INVALID_HANDLE) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::write_to_disk] file creation error")), + 0); + + //write the data to the file + for (ACE_Message_Block * curr = &mb; curr != 0; curr = curr->cont ()) + if (ACE_OS::write_n (handle, curr->rd_ptr(), curr->length()) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("write error")), + 0); + + // Close the file handle + ACE_OS::close (handle); + + return 1; +} + + +//This function attempts to read a sequence of bytes from a specified +//location and returns an octet sequence. A 0 is returned +//in the case of an error and a 1 upon success + +CORBA::Octet* RM_Helper::read_from_disk ( + const char* full_path, + size_t &length + ) +{ + //open the file + ACE_HANDLE handle = ACE_OS::open (full_path, O_RDONLY); + if (handle == ACE_INVALID_HANDLE) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::read_from_disk] file open error")), + 0); + + ACE_stat file_info; + + ACE_OS::fstat (handle, &file_info); + + CORBA::Octet* buffer; + ACE_NEW_RETURN (buffer, CORBA::Octet[file_info.st_size], 0); + + //read the contents of the file into the buffer + if (ACE_OS::read_n (handle, buffer, file_info.st_size) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::read_from_disk] file read error")), + 0); + + // Close the file handle + ACE_OS::close (handle); + + length = file_info.st_size; + return buffer; +} + + + + ///function to read the contents of a file from disk into an ACE_Message_Block + ///returns a pointer to an ACE_Message_Block and updates the lenght on success + /// 0 on failure + + +ACE_Message_Block* RM_Helper::read_pc_from_disk ( + const char* full_path, + size_t &length + ) +{ + length = 0; + + //open the file + ACE_HANDLE handle = ACE_OS::open (full_path, O_RDONLY); + if (handle == ACE_INVALID_HANDLE) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::read_mb_from_disk] file open error")), + 0); + + ACE_stat file_info; + + ACE_OS::fstat (handle, &file_info); + + ACE_Message_Block* mb; + ACE_NEW_RETURN (mb, ACE_Message_Block (file_info.st_size + 1), 0); + + //read the contents of the file into the buffer + if (ACE_OS::read_n (handle, mb->wr_ptr (), file_info.st_size) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::read_mb_from_disk] file read error")), + 0); + + mb->length (file_info.st_size); + + // Close the file handle + ACE_OS::close (handle); + + length = file_info.st_size; + return mb; +} diff --git a/TAO/CIAO/DAnCE/RepositoryManager/RM_Helper.h b/TAO/CIAO/DAnCE/RepositoryManager/RM_Helper.h new file mode 100644 index 00000000000..2314295ee78 --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/RM_Helper.h @@ -0,0 +1,100 @@ +/* -*- C++ -*- */ + +//============================================================================= +/** + * @file RM_Helper.h + * + * $Id$ + * + * This class aggregates a number of helper functions used by the + * CIAO RepositoryManager + * + * + * @author Stoyan Paunov + */ +//============================================================================= + +#ifndef RM_HELPER_H_ +#define RM_HELPER_H_ + + +#include "ciao/Packaging_DataC.h" //for the PackageConfiguration declaration +#include "tao/CDR.h" //for TAO CDR classes +#include "ace/Message_Block.h" //for ACE_Message_Block + +//int operator<< (ACE_OutputCDR& cdr, const Deployment::PackageConfiguration& pc); +//int operator>> (ACE_InputCDR& cdr, Deployment::PackageConfiguration& pc); +//Similar operators are generated by the IDL compiler +// +//Do search for "Deployment::PackageConfiguration &" in Packaging_DataC.cpp +// +//::CORBA::Boolean operator<< ( +// TAO_OutputCDR &strm, +// const Deployment::PackageConfiguration &_tao_aggregate +// +//::CORBA::Boolean operator>> ( +// TAO_InputCDR &strm, +// Deployment::PackageConfiguration &_tao_aggregate +// ) + + +class RM_Helper +{ +public: + + static void pc_to_cdr (const Deployment::PackageConfiguration& pc, TAO_OutputCDR& cdr); + + static void cdr_to_pc (Deployment::PackageConfiguration& pc, TAO_InputCDR& cdr); + + static bool externalize (const Deployment::PackageConfiguration& pc, const char* path); + + static bool reincarnate (Deployment::PackageConfiguration& pc, const char* path); + + ///function that writes out a file to a specified location on the hard disk + ///returns 1 on success + /// 0 on error + + static bool write_to_disk (const char* full_path, + const CORBA::Octet* buffer, + size_t length + ); + + + ///function that writes out a file to a specified location on the hand disk + ///returns 1 on success + /// 0 on already exists and replace == false + /// 0 on error + + static bool write_to_disk (const char* full_path, + ACE_Message_Block& mb, + bool replace = true + ); + + ///function that writes out a file to a specified location on the hand disk + ///returns 1 on success + /// 0 on already exists and replace == false + /// 0 on error + /// + ///NOTE: This function is relevant for PackageConfigurations ONLY + + static bool write_pc_to_disk (const char* full_path, + ACE_Message_Block& mb, + bool replace = true + ); + + ///function to read the contents of a file from disk into a CORBA::OctetSeq + ///returns a pointer to a CORBA::Octet buffer and updates the lenght on success + /// 0 on failure + + static CORBA::Octet* read_from_disk (const char* full_path, size_t &length); + + ///function to read the contents of a file from disk into an ACE_Message_Block + ///returns a pointer to an ACE_Message_Block and updates the lenght on success + /// 0 on failure + + + static ACE_Message_Block* read_pc_from_disk (const char* full_path, size_t &length); + +}; + +#endif diff --git a/TAO/CIAO/DAnCE/RepositoryManager/RMadmin.cpp b/TAO/CIAO/DAnCE/RepositoryManager/RMadmin.cpp new file mode 100644 index 00000000000..60d90c29bc9 --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/RMadmin.cpp @@ -0,0 +1,273 @@ +/* -*- C++ -*- */ + +/*** + * file RMClient.cpp + * + * $Id$ + * + * A sample client to the RepositoryManager showcasing how to use it + * + * author Stoyan Paunov <spaunov@isis.vanderbilt.edu> + **/ + +#include "RepositoryManagerDaemonC.h" +#include "Options.h" + +#include "ace/OS_NS_fcntl.h" //for open +#include "ace/OS_NS_unistd.h" //for close +#include "ace/OS_NS_sys_stat.h" //for filesize and fstat and mkdir + +#include "Config_Handlers/DnC_Dump.h" + +#include <iostream> +using namespace std; + +#include "RM_Helper.h" //to be able to externalize/internalize a PackageConfiguration +#include "tao/CDR.h" //for TAO CDR classes +#include "ace/Message_Block.h" //for ACE_Message_Block + + + +//IOR file of the RM +const char * ior = "file://RepositoryManagerDeamon.ior"; + + +///=============================COUPLE OF HELPER METHORS================================== +CORBA::Octet* read_from_disk ( + const char* full_path, + size_t &length + ); + +int write_to_disk ( + const char* full_path, + const CORBA::Octet* buffer, + size_t length + ); +///======================================================================================== + + +///main function that provides a sample interface for RM clients + +int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + ACE_TRY_NEW_ENV + { + // Initialize orb + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, + ""ACE_ENV_ARG_PARAMETER); + + ACE_TRY_CHECK; + + + CORBA::Object_var obj = + orb->string_to_object (ior + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CIAO::RepositoryManagerDaemon_var rm = + CIAO::RepositoryManagerDaemon::_narrow (obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (rm.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to acquire RepositoryManagerDaemon's objref\n"), + -1); + } + + + Options* options = TheOptions::instance (); + if (!options->parse_args (argc, argv)) + return -1; + + if (options->shutdown_) + { + rm->shutdown (); + } + else if (options->all_names_) + { + try + { + CORBA::StringSeq_var seq = rm->getAllNames (); + cout << "Known Names:\n"; + cout << "Seq length () : " << seq->length () << endl; + for (size_t i = 0; + i < seq->length (); + ++i) + cout << seq[i] << endl; + } + catch (CORBA::Exception & ex) + { + cout << "\nException caught!" << ex << "\n"; + return 0; + } + } + else if (options->all_types_) + { + try + { + CORBA::StringSeq_var seq = rm->getAllTypes (); + cout << "Known Component Interface Types:\n"; + for (size_t i = 0; + i < seq->length (); + ++i) + cout << seq[i] << endl; + } + catch (CORBA::Exception & ex) + { + cout << "\nException caught!" << ex << "\n"; + return 0; + } + } + else if (options->uuid_ != "" && options->names_by_type_) + { + try + { + CORBA::StringSeq_var seq = rm->findNamesByType (options->uuid_.c_str ()); + cout << "Known Component Interface Types:\n"; + for (size_t i = 0; + i < seq->length (); + ++i) + cout << seq[i] << endl; + } + catch (CORBA::Exception & ex) + { + cout << "\nException caught!" << ex << "\n"; + return 0; + } + + } + else if (options->install_) + { + try + { + rm->installPackage (options->name_.c_str (), options->path_.c_str ()); + } + catch (CORBA::Exception & ex) + { + cout << "\nException caught!" << ex << "\n"; + return 0; + } + + cout << "\nReassuring that the package in the repository ..." << endl; + try + { + Deployment::PackageConfiguration_var pc = rm->findPackageByName (options->name_.c_str ()); + cout << "The package was found!" << endl; + cout << "Label: " << pc->label << endl; + cout << "UUID: " << pc->UUID << endl; + } + catch (CORBA::Exception &) + { + cout << "\nError! Package not found!" << endl; + } + } + else if (options->delete_) + { + try + { + rm->deletePackage (options->name_.c_str ()); + cout << options->name_.c_str () << " deleted" << endl; + } + catch (CORBA::Exception & ex) + { + cout << "\nException: " << ex << endl; + } + + } + else if (options->find_) + { + if (options->name_ != "") + { + Deployment::PackageConfiguration_var pc = rm->findPackageByName (options->name_.c_str ()); + cout << "The package was found!" << endl; + Deployment::DnC_Dump::dump (pc); + } + else + { + Deployment::PackageConfiguration_var pc = rm->findPackageByUUID (options->uuid_.c_str ()); + cout << "The package was found!" << endl; + Deployment::DnC_Dump::dump (pc); + } + } + + orb->shutdown (1); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Unknown exception \n"); + return -1; + } + ACE_ENDTRY; + + return 0; +} + + + +CORBA::Octet* read_from_disk ( + const char* full_path, + size_t &length + ) +{ + //open the file + + ACE_HANDLE handle = ACE_OS::open (full_path, O_RDONLY); + if (handle == ACE_INVALID_HANDLE) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::read_from_disk] file open error")), + 0); + + ACE_stat file_info; + + ACE_OS::fstat (handle, &file_info); + + CORBA::Octet* buffer = 0; + ACE_NEW_RETURN (buffer, CORBA::Octet[file_info.st_size], 0); + + // read the contents of the file into the buffer + if (ACE_OS::read_n (handle, buffer, file_info.st_size) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::write_to_disk] file write error")), + 0); + + // Close the file handle + ACE_OS::close (handle); + + length = file_info.st_size; + return buffer; +} + + +int write_to_disk ( + const char* full_path, + const CORBA::Octet* buffer, + size_t length + ) +{ + // Open a file handle to the local filesystem + ACE_HANDLE handle = ACE_OS::open (full_path, O_CREAT | O_TRUNC | O_WRONLY); + if (handle == ACE_INVALID_HANDLE) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::write_to_disk] file creation error")), + -1); + + //write the data to the file + if (ACE_OS::write (handle, buffer, length) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("[RM::write_to_disk] file write error")), + -1); + + // Close the file handle + ACE_OS::close (handle); + + return 1; +} + diff --git a/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager.cpp b/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager.cpp new file mode 100644 index 00000000000..813ee79f1cd --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager.cpp @@ -0,0 +1,165 @@ +/* -*- C++ -*- */ + +//====================================================================== +/** + * @file RepositoryManager.cpp + * + * $Id$ + * + * Description: + * Main driver program for the CIAO RepositoryManager + * Please run as follows: + * RepositoryManagerDeamon [int:nthreads] + * + * @author Stoyan Paunov + */ +//====================================================================== + +#include "RepositoryManager_Impl.h" +#include "ace/OS_NS_stdio.h" +#include "ace/streams.h" +#include "ace/Auto_Ptr.h" +#include "ace/Task.h" +using namespace std; + +namespace +{ +/// Name of the file holding the IOR of the RM +const char * rm_ior = "RepositoryManagerDeamon.ior"; + +/// Default number of worker threads to run in the multi-threaded RM +unsigned int nthreads = 3; +} + + +/** + * @class Worker + * + * Class that implements the service routine of the worker threads + * of the repository manager + */ +class Worker : public ACE_Task_Base +{ +public: + /// ctor + Worker (CORBA::ORB_ptr orb); + + /// The thread entry point. + virtual int svc (void); + +private: + /// The orb + CORBA::ORB_var orb_; +}; + + +///Main function + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + try + { + //init the ORB + CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); + + //Get the root POA object + CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA"); + + //downcast to POA type + PortableServer::POA_var root_poa = PortableServer::POA::_narrow (obj.in ()); + + //activate the POA manager + PortableServer::POAManager_var mgr = root_poa->the_POAManager (); + mgr->activate (); + + //create a servant + CIAO_RepositoryManagerDaemon_i* repo; + ACE_NEW_RETURN (repo, CIAO_RepositoryManagerDaemon_i (orb.in ()), 1); + + //trasfer ownership to the POA + PortableServer::ServantBase_var distributor_owner_transfer(repo); + + //register and implicitly activate servant + CIAO::RepositoryManagerDaemon_var RepositoryManagerDeamon = repo->_this (); + + //convert the IOR to string + CORBA::String_var ior = orb->object_to_string (RepositoryManagerDeamon.in ()); + + //output the IOR to a file + FILE* ior_out = ACE_OS::fopen (rm_ior, "w"); + + if (ior_out == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + rm_ior), + 1); + + ACE_OS::fprintf (ior_out, "%s", ior.in ()); + ACE_OS::fclose (ior_out); + + if (argc > 1) + nthreads = ACE_OS::atoi (argv[1]); + + Worker worker (orb.in ()); + if (worker.activate (THR_NEW_LWP | THR_JOINABLE, nthreads) != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot activate worker threads\n"), + 1); + + worker.thr_mgr ()->wait (); + + ACE_DEBUG ((LM_DEBUG, "event loop finished\n")); + + //done + return 0; + + //Start accepting requests + orb->run (); + + //allow objects registered with the POA ot get cleaned-up + root_poa->destroy (1, 1); + + //shutdown the orb + orb->shutdown (1); + + return 0; + } + catch (CORBA::Exception &ex) { + cerr << "CORBA Exception: " << ex << endl; + + return 1; + } + + + return 0; +} + + + +// **************************************************************** + +///Constuctor for the worker class +Worker::Worker (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +///implementation of the service routine inherited from ACE::Task_Base + +int Worker::svc (void) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + this->orb_->run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + } + ACE_ENDTRY; + return 0; +} + + diff --git a/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManagerDaemon.idl b/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManagerDaemon.idl new file mode 100644 index 00000000000..f86e14c1c8b --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManagerDaemon.idl @@ -0,0 +1,13 @@ +// $Id$ + +#include "RepositoryManager.idl" + +module CIAO +{ + interface RepositoryManagerDaemon : Deployment::RepositoryManager + { + // Shutdown the daemon process. + oneway void shutdown (); + }; +}; + diff --git a/TAO/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp b/TAO/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp new file mode 100644 index 00000000000..7eed65dafbb --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp @@ -0,0 +1,103 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ace/ARGV.h" +#include "URL_Parser.h" + +#include "ace/OS_NS_string.h" + +bool +URL_Parser::parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("rwu:h:p:f:d")); + + bool success = true; + int c; + + while ((c = get_opt ()) != -1) + switch (c) + { + case 'd': + this->debug_ = 1; + break; + case 'u': + success = parseURL (get_opt.opt_arg ()); + break; + // Usage fallthrough. + default: + success = false; + } + if (this->hostname_ == 0 || this->filename_ == 0) + success = false; + + return success; +} + +URL_Parser::URL_Parser (void) + : hostname_ ("127.0.0.1"), + port_ (ACE_DEFAULT_HTTP_SERVER_PORT), + filename_ (0), + debug_ (0) +{ +} + +bool URL_Parser::parseURL (char* url) +{ + char* ptr; + bool success = true; + + if (ptr = ACE_OS::strstr (url, "http://")) + url += ACE_OS::strlen ("http://"); + + if (url[0] == '/') + { + this->filename_ = ACE_OS::strdup (url); + } + else + { + if (ptr = ACE_OS::strstr (url, ":")) + this->port_ = ACE_OS::atoi (ptr + 1); + else + ptr = ACE_OS::strstr (url, "/"); + + if(!ptr) + success = false; + else + { + size_t host_len = ptr - url; + ACE_NEW_RETURN (this->hostname_, char [host_len + 1], false); + ACE_OS::strncpy (this->hostname_, url, host_len); + this->hostname_ [host_len] = '\0'; + + if (ptr = ACE_OS::strstr (ptr, "/")) + { + this->filename_ = ACE_OS::strdup(ptr); + } + else + success = false; + } + } + return success; +} + + +void URL_Parser::Error (void) +{ + ACE_DEBUG ((LM_DEBUG, "./http_client -u http://hostname:port/filename [-d]\n")); + +} + + + URL_Parser::~URL_Parser() + { + if(this->hostname_) + { + delete [] this->hostname_; + this->hostname_ =0; + } + if (this->filename_) + { + ACE_OS::free (this->filename_); + this->filename_ = 0; + } + } diff --git a/TAO/CIAO/DAnCE/RepositoryManager/URL_Parser.h b/TAO/CIAO/DAnCE/RepositoryManager/URL_Parser.h new file mode 100644 index 00000000000..aaaeab4960c --- /dev/null +++ b/TAO/CIAO/DAnCE/RepositoryManager/URL_Parser.h @@ -0,0 +1,68 @@ + +/* -*- C++ -*- */ + +//============================================================================= +/** + * @file URL_Parser.h + * + * $Id$ + * + * Parses a URL into its logical chunks + * + * + * @author Stoyan Paunov + */ +//============================================================================= + + +#ifndef URL_PARSER_H +#define URL_PARSER_H + +#include "ace/Get_Opt.h" +#include "ace/ARGV.h" +#include "ace/Singleton.h" //for ACE_Singleton +#include "ace/Null_Mutex.h" //for ACE_Null_Mutex + +//forward declaration +class URL_Parser; + +typedef ACE_Singleton <URL_Parser, ACE_Null_Mutex> TheURL_Parser; + + +class URL_Parser +{ +public: + + friend class ACE_Singleton <URL_Parser, ACE_Null_Mutex>; + + /// parses commandline arguments + bool parse_args (int argc, ACE_TCHAR *argv[]); + + //return false on failure + bool parseURL (char* url); + + void Error (void); + + /// Hostname to connect to + ACE_TCHAR *hostname_; + + /// Port number to use + u_short port_; + + /// Filename to upload/download + ACE_TCHAR *filename_; + + /// turns on verbosity + int debug_; + + //destructor + ~URL_Parser (void); + +protected: + URL_Parser (void); + // protected constructor, singleton +}; + + + +#endif /* URL_PARSER_H */ diff --git a/TAO/CIAO/DAnCE/StaticConfigurator/README b/TAO/CIAO/DAnCE/StaticConfigurator/README new file mode 100644 index 00000000000..e42c1099cfd --- /dev/null +++ b/TAO/CIAO/DAnCE/StaticConfigurator/README @@ -0,0 +1,29 @@ +Please see $CIAO_ROOT/docs/static_dance.html for details. + +To run the static version of Hello example, do the following, + +1. Build ACE+TAO+CIAO statically +2. Build $CIAO_ROOT/examples/Hello +3. Generate the static function entrypoints (plan.h) + > cd $CIAO_ROOT/examples/Hello/descriptors + > $CIAO_ROOT/DAnCE/StaticConfigurator/StaticDAnCEParser -p flattened_deploymentplan_without_ns.cdp + > cp plan.h $CIAO_ROOT/DAnCE/StaticConfigurator/ +4. Build the static NodeManager for Hello example + > cd $CIAO_ROOT/DAnCE/StaticConfigurator + > cp StaticDAnCEApp.cpp.tmpl StaticDAnCEApp.cpp + > cp StaticDAnCEApp.mpc.tmpl StaticDAnCEApp.mpc + > $ACE_ROOT/bin/mwc.pl + > make +5. Run the static node managers. Note that the ORBEndpoint values should + correspond to the ones in $CIAO_ROOT/examples/Hello/descriptors/TestNodeManagerMap.dat + > cd $CIAO_ROOT/DAnCE/StaticConfigurator + > ./StaticDAnCEApp -ORBEndpoint iiop://localhost:60001 & + > ./StaticDAnCEApp -ORBEndpoint iiop://localhost:60002 & +6. Do the deployment. This is just the same as the non-static version of DAnCE + except that we have the NodeManagers already running and need not spawn node + managers. To accomplish this, change + $CIAO_ROOT/examples/Hello/descriptors/run_test_without_ns.pl + to *not* run the node manager daemons and do the following. + > cd $CIAO_ROOT/examples/Hello/descriptors + > ./run_test_without_ns.pl + diff --git a/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl b/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl new file mode 100644 index 00000000000..370444d528f --- /dev/null +++ b/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl @@ -0,0 +1,119 @@ +// $Id$ + +#include "Container_Base.h" +#include "NodeManager/NodeManager_Impl.h" +#include "ace/OS_NS_stdio.h" +#include "ace/streams.h" +#include "ace/Get_Opt.h" +#include "tao/IORTable/IORTable.h" +#include "tao/CDR.h" +#include "plan.h" + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + // Initialize the ORB so that CORBA::Any will work + // + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv, + ""); + try + { + // Get reference to Root POA. + CORBA::Object_var obj + = orb->resolve_initial_references ("RootPOA" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var poa + = PortableServer::POA::_narrow (obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Activate POA manager + PortableServer::POAManager_var mgr + = poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + mgr->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + int homes_table_size = + sizeof (homes_table)/sizeof(HomeAttributes); + + CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map; + CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP homesvnt_creator_fptr_map; + CIAO::Static_Config_EntryPoints_Maps static_config_entrypoints_maps; + static_config_entrypoints_maps.home_creator_funcptr_map_ = &home_creator_fptr_map; + static_config_entrypoints_maps.home_servant_creator_funcptr_map_ = &homesvnt_creator_fptr_map; + + int i=0; + for (i=0; i<homes_table_size; ++i) + { + home_creator_fptr_map.bind (homes_table[i].executor_entrypt_, + homes_table[i].executor_fptr_); + + homesvnt_creator_fptr_map.bind (homes_table[i].servant_entrypt_, + homes_table[i].servant_fptr_); + } + + CIAO::Static_NodeManager_Impl *static_node_manager_impl; + // Create and install the CIAO Daemon servant + + ACE_DEBUG ((LM_DEBUG, "creating static_node_manager\n")); + + static_node_manager_impl = + new CIAO::Static_NodeManager_Impl("NodeManager", + orb.in (), + poa.in (), + "", //exe location + "", //exe options + 0, //spawn delay + &static_config_entrypoints_maps); + + static_node_manager_impl->init (); + + CORBA::Object_var table_object = + orb->resolve_initial_references ("IORTable" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + IORTable::Table_var adapter = + IORTable::Table::_narrow (table_object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (adapter.in ())) + ACE_ERROR_RETURN ((LM_ERROR, "Nil IORTable\n"), -1); + + CIAO::NodeManager_var manager = + static_node_manager_impl->_this (); + + CORBA::String_var str = + orb->object_to_string (manager.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + adapter->bind ("NodeManager", + str.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Run the main event loop for the ORB. + orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + catch (CORBA::Exception& ex) + { + ACE_PRINT_EXCEPTION (ex, "Caught CORBA Exception: "); + return -1; + } + + return 0; +} diff --git a/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.mpc.tmpl b/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.mpc.tmpl new file mode 100644 index 00000000000..d237d09ac20 --- /dev/null +++ b/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.mpc.tmpl @@ -0,0 +1,24 @@ +// -*- MPC -*- +// $Id$ + +project(StaticDAnCEApp): ciao_component_dnc, iortable { + exename = StaticDAnCEApp + requires += exceptions + includes += ../NodeApplicationManager ../NodeManager + libs += NodeManager NodeManager_stub NodeApplicationManager + after += NodeManager NodeManager_stub NodeApplicationManager + + libs += Hello_Base_DnC_stub + libs += Hello_Base_DnC_svnt + libs += Receiver_DnC_stub + libs += Receiver_DnC_svnt + libs += Receiver_DnC_exec + libs += Sender_DnC_stub + libs += Sender_DnC_svnt + libs += Sender_DnC_exec + + Source_Files { + StaticDAnCEApp.cpp + } +} + diff --git a/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.cpp b/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.cpp new file mode 100644 index 00000000000..b5a496291d8 --- /dev/null +++ b/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.cpp @@ -0,0 +1,162 @@ +//============================================================================= +/** + * @file StaticDAnCEParser.cpp + * + * $Id$ + * + * This parser is used in static deployment of CIAO components. This + * parser parses a deployment plan and generates a header file plan.h + * containing information about the home and servant creation + * function entry points. This can be used by a Static_NodeManager to + * instantiate instances of homes and servants just like the regular + * NodeManager. For more details, see + * $CIAO_ROOT/DAnCE/StaticConfigurator/docs/static_dance.html + * + * @author Venkita Subramonian <venkita@cse.wustl.edu> + */ +//============================================================================= + +#include "NodeApplicationManager/ImplementationInfo.h" +#include "ace/OS_NS_stdio.h" +#include "ace/streams.h" +#include "ace/Get_Opt.h" +#include "tao/IORTable/IORTable.h" +#include "tao/CDR.h" +#include "Config_Handlers/XML_File_Intf.h" + +using namespace CIAO; + +static void +usage (const ACE_TCHAR* program) +{ + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("Usage: %s -p <package URI>\n"), + program)); +} + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + // top level package URL + char* package_url = 0; + + // Initialize the ORB so that CORBA::Any will work + // + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv, + ""); + + ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("p:")); + int c; + + while ((c = get_opt ()) != EOF) + { + switch (c) + { + case 'p': + package_url = get_opt.opt_arg (); + break; + + default: + usage(argv[0]); + return -1; + } + } + + if (package_url == 0) { + usage(argv[0]); + return -1; + } + + CIAO::Config_Handlers::XML_File_Intf intf (package_url); + + ::Deployment::DeploymentPlan_var plan = + intf.get_plan (); + + ::Deployment::ComponentPlans dummy; + dummy.length (0); + + NodeImplementationInfoHandler handler (plan, dummy); + + Deployment::NodeImplementationInfo * node_impl_info = + handler.node_impl_info (); + + if (!node_impl_info) + { + ACE_ERROR_RETURN ((LM_ERROR, + "DAnCE (%P|%t) StaticParser -" + "Failed to create Node Implementation Infos!\n"), 1); + + } + + Deployment::ContainerImplementationInfos& impl_infos = node_impl_info[0].impl_infos; + + FILE* fp = fopen ("plan.h", "w"); + + CORBA::ULong i,j,num_containers,num_components; + num_containers = impl_infos.length (); + for (i = 0; i < num_containers; ++i) + { + num_components = impl_infos[i].impl_infos.length (); + for (j = 0; j < num_components; ++j) + { + ACE_DEBUG ((LM_DEBUG, "The info for installation: \n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n", + impl_infos[i].impl_infos[j].component_instance_name.in (), + impl_infos[i].impl_infos[j].executor_dll.in (), + impl_infos[i].impl_infos[j].executor_entrypt.in (), + impl_infos[i].impl_infos[j].servant_dll.in (), + impl_infos[i].impl_infos[j].servant_entrypt.in () )); + ACE_OS::fprintf (fp, + "extern \"C\" ::Components::HomeExecutorBase_ptr %s (void);\n", + impl_infos[i].impl_infos[j].executor_entrypt.in ()); + ACE_OS::fprintf (fp, + "extern \"C\" ::PortableServer::Servant %s \n", + impl_infos[i].impl_infos[j].servant_entrypt.in ()); + ACE_OS::fprintf (fp, + "\t\t(::Components::HomeExecutorBase_ptr p,\n"); + ACE_OS::fprintf (fp, + "\t\t::CIAO::Session_Container *c,\n"); + ACE_OS::fprintf (fp, + "\t\tconst char*\n"); + ACE_OS::fprintf (fp, + "\t\tACE_ENV_ARG_DECL_WITH_DEFAULTS);\n"); + } + } + + ACE_OS::fprintf (fp, "struct HomeAttributes\n"); + ACE_OS::fprintf (fp, "{\n"); + ACE_OS::fprintf (fp, " ACE_TString component_instance_name_;\n"); + ACE_OS::fprintf (fp, " /// Specify the entrypoint to component executor DLL.\n"); + ACE_OS::fprintf (fp, " ACE_TString executor_entrypt_;\n"); + ACE_OS::fprintf (fp, " ::CIAO::HomeFactory executor_fptr_;\n"); + ACE_OS::fprintf (fp, " /// Specify the entrypoint to component servant DLL.\n"); + ACE_OS::fprintf (fp, " ACE_TString servant_entrypt_;\n"); + ACE_OS::fprintf (fp, " ::CIAO::ServantFactory servant_fptr_;\n"); + ACE_OS::fprintf (fp, "};\n"); + ACE_OS::fprintf (fp, "//Homes\n"); + ACE_OS::fprintf (fp, "HomeAttributes homes_table[]= \n"); + ACE_OS::fprintf (fp, "{\n"); + + num_containers = impl_infos.length (); + for (i = 0; i < num_containers; ++i) + { + num_components = impl_infos[i].impl_infos.length (); + for (j = 0; j < num_components; ++j) + { + ACE_OS::fprintf (fp, "\t{\"%s\", \"%s\", %s, \"%s\", %s}", + impl_infos[i].impl_infos[j].component_instance_name.in (), + impl_infos[i].impl_infos[j].executor_entrypt.in (), + impl_infos[i].impl_infos[j].executor_entrypt.in (), + impl_infos[i].impl_infos[j].servant_entrypt.in (), + impl_infos[i].impl_infos[j].servant_entrypt.in () ); + if (!(i == num_containers -1 && j == num_components-1)) + ACE_OS::fprintf (fp, ",\n"); + } + } + ACE_OS::fprintf (fp, "};\n\n"); + + fclose (fp); + + return 0; +} diff --git a/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.mpc b/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.mpc new file mode 100644 index 00000000000..6ff77c3e1fa --- /dev/null +++ b/TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.mpc @@ -0,0 +1,13 @@ +// -*- MPC -*- +// $Id$ + +project(StaticDAnCEParser): ciao_component_dnc, taoexe, ciao_config_handlers, ciao_domainapplicationmanager_dnc, iortable, exceptions, ciao_server_dnc { + exename = StaticDAnCEParser + includes += .. + libs += NodeApplicationManager + after += NodeApplicationManager NodeManager + + Source_Files { + StaticDAnCEParser.cpp + } +} diff --git a/TAO/CIAO/DAnCE/TargetManager/CmpClient.cpp b/TAO/CIAO/DAnCE/TargetManager/CmpClient.cpp new file mode 100644 index 00000000000..b10bf6fd51d --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/CmpClient.cpp @@ -0,0 +1,173 @@ +// $Id$ +/** + * @file CmpClient.cpp + * + * @brief This file contains a client of TargetManager. + * + * It picks up the TM ior from the Targetmanager.ior file + * present in the current directory, and makes the calls on the + * TM to getAllResources and getAvailable resources + */ + +#include "Deployment_DataC.h" +#include "TargetManagerC.h" +#include "ace/streams.h" +#include "Config_Handlers/DnC_Dump.h" + + +int main (int argc, char* argv[]) +{ + try { + // First initialize the ORB, that will remove some arguments... + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, + "" /* the ORB name, it can be anything! */); + + // There must be at least two arguments, the first is the factory + // name, the rest are the names of the stock symbols we want to + // get quotes for. + if (argc < 2) { + cerr << "Usage: " << argv[0] + << " Factory_IOR ..." << endl; + return 1; + } + + // Use the first argument to create the factory object reference, + // in real applications we use the naming service, but let's do + // the easy part first! + CORBA::Object_var factory_object = + orb->string_to_object (argv[1]); + + // Now downcast the object reference to the appropriate type + CIAO::TargetManagerImpl_var targetCmp = + CIAO::TargetManagerImpl::_narrow (factory_object.in ()); + + // Now get the facet reference from the target Manager Component + ACE_DEBUG((LM_DEBUG, "Making a Call to provide_targetMgr ()\n")); + Deployment::TargetManager_ptr targetI = targetCmp->provide_targetMgr (); + + // Now make calls on the Target Manager facet + + try + { + Deployment::Domain_var domainV = targetI->getAllResources (); + ACE_DEBUG ((LM_DEBUG , "\n\nGetAllResources Returned \n")); + ::Deployment::DnC_Dump::dump (domainV); + } + catch(CORBA::NO_IMPLEMENT &) + { + ACE_DEBUG((LM_DEBUG ,"Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n")); + } + catch(CORBA::Exception &) + { + ACE_DEBUG((LM_DEBUG ,"Error:TargetManager:CORBA Generic Exception \n")); + ACE_DEBUG((LM_DEBUG ,"Error:TargetManager:Exception in TargetManager call\n")); + } + + + // make a call to the commit resources ..... + + + Deployment::DeploymentPlan plan; + + plan.instance.length (1); + + ::Deployment::InstanceDeploymentDescription instance_; + instance_.node = CORBA::string_dup ("Delta"); + instance_.deployedResource.length (1); + instance_.deployedResource[0].requirementName = + CORBA::string_dup ("Processor"); + instance_.deployedResource[0].resourceName = + CORBA::string_dup ("CPULoad"); + + instance_.deployedResource[0].property.length (1); + instance_.deployedResource[0].property[0].name = + CORBA::string_dup ("LoadAverage"); + CORBA::Double d = 20; + instance_.deployedResource[0].property[0].value <<= d; + + plan.instance[0] = instance_; + + bool resource_available = 1; + + try + { + targetI->commitResources(plan); + ACE_DEBUG ((LM_DEBUG , "\n\ncommitResources Returned \n")); + } + catch(CORBA::NO_IMPLEMENT &) + { + cerr << "Error:TargetManager:CORBA::NO_IMPLEMENT thrown" << endl; + } + catch (Deployment::ResourceNotAvailable & e) + { + resource_available = 0; + cout << "TargetManager commitResources ResourceNotAvailable Exception" <<endl; + + ACE_DEBUG ((LM_DEBUG , + "ResourceNotAvailable\n name=[%s]\n elementName=[%s]\n resourceName=[%s]\n \ + resourceType= [%s]\n propertyName=[%s]\n", + e.name.in (), + e.elementName.in (), + e.resourceName.in (), + e.resourceType.in (), + e.propertyName.in ())); + } + catch(CORBA::Exception & ex) + { + cout << "Error:TargetManager:commitResources Exception" <<endl; + cout << "Error:TargetManager:CORBA Generic Exception " << endl; + cerr << "Error:TargetManager:Exception in TargetManager call" << ex << endl; + } + + + // Make a call to release resources , if resource < 0 + try + { + if (resource_available == 0) + { + targetI->releaseResources(plan); + ACE_DEBUG ((LM_DEBUG , "\n\nreleaseResources Returned \n")); + } + } + catch(CORBA::NO_IMPLEMENT &) + { + cerr << "Error:TargetManager:CORBA::NO_IMPLEMENT thrown" << endl; + } + catch (Deployment::ResourceNotAvailable & e) + { + cout << "Error:TargetManager releaseResources ResourceNotAvailable Exception" <<endl; + } + catch(CORBA::Exception & ex) + { + cout << "Error:TargetManager:releaseResources Exception" <<endl; + cout << "Error:TargetManager:CORBA Generic Exception " << endl; + cerr << "Error:TargetManager:Exception in TargetManager call" << ex << endl; + } + + + // Now make a call of getAvailableResources on the TargetManager ... + try + { + Deployment::Domain_var domainV = targetI->getAvailableResources(); + ACE_DEBUG ((LM_DEBUG , "\n\nGetAvailableResources Returned \n")); + ::Deployment::DnC_Dump::dump (domainV); + } + catch(CORBA::NO_IMPLEMENT &) + { + cerr << "Error:TargetManager:CORBA::NO_IMPLEMENT thrown" << endl; + } + catch(CORBA::Exception & ex) + { + cout << "Error:TargetManager:CORBA Generic Exception " << endl; + cerr << "Error:TargetManager:Exception in TargetManager call" << ex << endl; + } + + // Finally destroy the ORB + orb->destroy (); + } + catch (CORBA::Exception & ex) { + cerr << "Error:TargetManager:CORBA exception raised!" << ex << endl; + } + return 0; +} diff --git a/TAO/CIAO/DAnCE/TargetManager/Deployment_Configuration.h b/TAO/CIAO/DAnCE/TargetManager/Deployment_Configuration.h new file mode 100644 index 00000000000..effca979a4c --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/Deployment_Configuration.h @@ -0,0 +1,129 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Deployment_Configuration.h + * + * $Id$ + * + * The Deployment_Configuration provides abstraction for the + * deployment mechanisms. + * + * @author Nanbor Wang <nanbor@cs.wustl.edu> + * @author Gan Deng <gan.deng@vanderbilt.edu> + */ +//============================================================================= +#ifndef CIAO_DEPLOYMENT_CONFIGURATION_H +#define CIAO_DEPLOYMENT_CONFIGURATION_H +#include /**/ "ace/pre.h" + +#include "ace/Hash_Map_Manager_T.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ciao/NodeManagerC.h" +#include "tao/Valuetype/ValueBase.h" +#include "tao/Valuetype/Valuetype_Adapter_Impl.h" +#include "ace/SString.h" + +#include "DomainApplicationManager/DomainApplicationManager_Export.h" + +namespace CIAO +{ + /** + * @class Deployment_Configuration + * + * @brief A class that provides strategies on deployment topology. + * + * This class provides strategies on how the DomainApplicationManager + * should deploy an deployment plan at domain-level. This is achieved + * by providing mappings from deployment destination names to actually + * NodeManager daemon IORs, and the strategy for which default NodeManager + * daemons a deployment mechanism should use. + * + * This is a trivial implementation of the deployment configuration + * strategy. We can enhance this class later on to provide + * different deployment location strategies, such as naming service. + */ + class DomainApplicationManager_Export Deployment_Configuration + { + public: + typedef struct _node_manager_info + { + _node_manager_info (const char *ior = 0) + { + IOR_ = ior; + } + + ACE_CString IOR_; + ::Deployment::NodeManager_var node_manager_; + } Node_Manager_Info; + + Deployment_Configuration (CORBA::ORB_ptr o); + + /// Destructor + virtual ~Deployment_Configuration (void); + + /** + * Init method takes the filename to a configuration file which + * has a simple line format of name, ior string delimited by a + * space in each line. + * + * name IOR-string + * + * @retval 0 on success. + * @retval -1 otherwise. + */ + int init (const char *filename); + + /** + * @retval 0 if no valid name were found. When @c name = 0, then + * this function behave exactly as get_default_activator_ior. + */ + virtual const char *get_node_manager_ior (const char *name); + + /** + * Return the default NodeManager the DomainApplicationManager + * should use to deploy a component. In this implementation, the + * first entry in the deployment configuration data file is always + * the entry for default activator. + * + * @retval 0 if no valid daemon is configured. + */ + virtual const char *get_default_node_manager_ior (); + + /** + * @retval nil if no valid name were found. + */ + virtual ::Deployment::NodeManager_ptr + get_node_manager (const char *name + ACE_ENV_ARG_DECL_WITH_DEFAULTS); + + /** + * Return the reference to the default NodeManager the + * DomainApplicationManager should use to deploy a node-level + * deployment plan.. + * + * @retval nil if no valid daemon is configured. + */ + virtual ::Deployment::NodeManager_ptr + get_default_node_manager (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); + + protected: + CORBA::ORB_var orb_; + + ACE_Hash_Map_Manager_Ex<ACE_CString, + Node_Manager_Info, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> deployment_info_; + + Node_Manager_Info default_node_manager_; + }; + +} + +#include /**/ "ace/post.h" +#endif /* CIAO_DEPLOYMENT_CONFIGURATION_H */ diff --git a/TAO/CIAO/DAnCE/TargetManager/DomainDataManager.cpp b/TAO/CIAO/DAnCE/TargetManager/DomainDataManager.cpp new file mode 100644 index 00000000000..9ea1944ba19 --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/DomainDataManager.cpp @@ -0,0 +1,574 @@ +// $Id$ +//=============================================================== +/** + * @file DomainDataManager.cpp + * + * @brief Maintains the Domain Information + * + * It contains the entire Domain information.Both the + * initial domain as well as the current available domain. + * + * @author Nilabja Roy nilabjar@dre.vanderbilt.edu + */ +//=============================================================== +#include "DomainDataManager.h" + +#include "Config_Handlers/DD_Handler.h" +#include "Config_Handlers/DnC_Dump.h" +#include "ciao/CIAO_common.h" + +const char * domain_file_name = "Domain.cdd"; + +CIAO::DomainDataManager* CIAO::DomainDataManager::global_data_manager_ = 0; + +CIAO::DomainDataManager * CIAO::DomainDataManager::create (CORBA::ORB_ptr orb, + ::Deployment::TargetManager_ptr target + ) +{ + if (global_data_manager_ == 0) + { + global_data_manager_ = new DomainDataManager (orb , target); + } + return global_data_manager_; +} + + +CIAO::DomainDataManager* CIAO::DomainDataManager::get_data_manager () +{ + return global_data_manager_; +} + + +void CIAO::DomainDataManager::delete_data_manger () +{ + if (global_data_manager_) + delete global_data_manager_; +} + + + +int CIAO::DomainDataManager::update_domain (const ::CORBA::StringSeq &, + const ::Deployment::Domain & domainSubset, + ::Deployment::DomainUpdateKind ) +{ + // Update the subset of the domain which the above + // parameter corresponds to + + // for now consider only nodes + if (CIAO::debug_level () > 9) + { + /* + ACE_DEBUG ((LM_DEBUG , + "TM::update_domain::Inside The update Domain of Manager\n")); + ACE_DEBUG ((LM_DEBUG , + "TM::update_domain_::The length of domain is [%d]", + current_domain_.node.length ())); + ACE_DEBUG ((LM_DEBUG , + "TM::update_domain::domainSubsetNode is \n" )); + */ + } + int size = current_domain_.node.length (); + + int i; + for (i=0;i < size;i++) + { + if (!strcmp (domainSubset.node[0].name , + current_domain_.node[i].name)) + { + // found a match + // for now overwrite the entire Node info ... + // but later , this has to be changed to overwrite + // only the specific part ... + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , "TM::Changed the cpu Value\n")); + } + current_domain_.node[i] = domainSubset.node[0]; + break; // finished job ...break + } + } + + if (i == size) + { + // thus the node is new .. add it to current_domain_ + // later change it ... + current_domain_.node.length (size+1); + current_domain_.node[size]=domainSubset.node[0]; + } + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , + "TM::Inside The update Domain of Manager\n")); + } + return 0; +} + +CIAO::DomainDataManager:: +DomainDataManager (CORBA::ORB_ptr orb, + ::Deployment::TargetManager_ptr target) + : orb_ (CORBA::ORB::_duplicate (orb)), + deployment_config_ (orb_.in()), + target_mgr_ (::Deployment::TargetManager::_duplicate(target)) +{ + // ACE_DEBUG((LM_DEBUG , "Calling DD_HANDLER\n")); + CIAO::Config_Handlers::DD_Handler dd (domain_file_name); + // ACE_DEBUG((LM_DEBUG , "After DD_HANDLER Constructor\n")); + ::Deployment::Domain* dmn = dd.domain_idl (); + // ACE_DEBUG((LM_DEBUG , "After DD_HANDLER domain_idl\n")); + + if (CIAO::debug_level () > 9) + ::Deployment::DnC_Dump::dump (*dmn); + + current_domain_ = *dmn; + initial_domain_ = current_domain_; + + // initialize the provisioning domain + provisioned_data_ = initial_domain_; + + call_all_node_managers (); + +} + +::Deployment::Domain* CIAO::DomainDataManager::get_current_domain () +{ + return new ::Deployment::Domain (provisioned_data_); +} + +::Deployment::Domain* CIAO::DomainDataManager::get_initial_domain () +{ + return new ::Deployment::Domain (initial_domain_); +} + +int CIAO::DomainDataManager::readin_domain_data () +{ + // here read in Domain data ... + // + return 0; +} + +int CIAO::DomainDataManager::call_all_node_managers () +{ + if ( this->deployment_config_.init ("NodeDetails.dat") == -1 ) + { + ACE_ERROR ((LM_ERROR, + "TargetM (%P|%t) DomainDataManager.cpp -" + "CIAO::DomainDataManager::call_all_node_managers -" + "ERROR while trying to initialize after reading " + "node details DAT file \n")); + return 0; + } + + int length = initial_domain_.node.length (); + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG, "Number of nodes in domain.cdd is : %d\n", length)); + } + + for (int i=0;i < length;i++) + { + + ::Deployment::NodeManager_var node_manager; + + + try + { + node_manager = + deployment_config_.get_node_manager + (initial_domain_.node[i].name.in ()); + } + catch (CORBA::Exception& ex) + { + ACE_ERROR ((LM_ERROR, "DANCE::TM (%P|%t) DomainDataManager.cpp: " + "Error trying to contact NodeManager %s\n", + initial_domain_.node[i].name.in ())); + continue; + } + + + if (!CORBA::is_nil (node_manager.in ())) + { + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG, "Trying to contact nodemanager on %s\n", + initial_domain_.node[i].name.in ())); + } + Deployment::Logger_ptr log = + Deployment::Logger::_nil (); + ::Deployment::Domain sub_domain; + sub_domain.UUID = CORBA::string_dup("Node-Level-domain"); + sub_domain.label = CORBA::string_dup("Node-level-domain"); + sub_domain.sharedResource.length(0); + sub_domain.interconnect.length(0); + sub_domain.bridge.length(0); + sub_domain.infoProperty.length(0); + sub_domain.node.length (1); + sub_domain.node[0] = initial_domain_.node[i]; + try + { + node_manager->joinDomain (sub_domain, + target_mgr_.in (), + log); + } + catch (CORBA::Exception& ex) + { + ACE_DEBUG ((LM_DEBUG , "TM::Error in calling Join Domain==\n")); + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught in " + "DomainDataManager::joinDomain"); + } + } + } + return 0; + +} + +CIAO::Host_NodeManager_seq * CIAO::DomainDataManager::get_node_managers () +{ + ::CIAO::Host_NodeManager_seq* node_mgr_seq = + new ::CIAO::Host_NodeManager_seq (); + node_mgr_seq->length (initial_domain_.node.length ()); + for (unsigned int i=0;i < initial_domain_.node.length ();i++) + { + (*node_mgr_seq)[i].host_ = + CORBA::string_dup (initial_domain_.node[i].name); + ::Deployment::NodeManager_var node_manager = + deployment_config_.get_node_manager (initial_domain_.node[i].name); + // if (node_manager.in () != 0) + { + (*node_mgr_seq)[i].node_mgr_ = ::CIAO::NodeManagerDaemon::_narrow (node_manager.in ()); + } + } + return node_mgr_seq; +} + +CIAO::Host_Infos* CIAO::DomainDataManager::get_cpu_info () +{ + CIAO::Host_Infos* host_info_seq = new CIAO::Host_Infos (); + host_info_seq->length (current_domain_.node.length ()); + + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG , "TM:: The node length is [%d]", + current_domain_.node.length ())); + + for (unsigned int i=0;i < current_domain_.node.length ();i++) + { + (*host_info_seq)[i].hostname = + CORBA::string_dup (current_domain_.node[i].name); + // ACE_DEBUG ((LM_DEBUG , "The resource length is [%d]", + // current_domain_.node[i].resource.length ())); + + for (unsigned int j = 0;j < current_domain_.node[i].resource.length ();j++) + { + if (!strcmp( + current_domain_.node[i].resource[j].name, + "Processor")) + { + current_domain_.node[i].resource[j].property[0].value + >>= (*host_info_seq)[i].cpu_util; + CORBA::Double d; + current_domain_.node[i].resource[j].property[0].value + >>= d; + // ACE_DEBUG ((LM_DEBUG, "TM::The current cpu util is [%f]\n", d)); + } + } + } + + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG , "TM::Returning from get_cpu_info")); + + return host_info_seq; +} + +CORBA::Long CIAO::DomainDataManager::get_pid (ACE_CString cmp) +{ + CORBA::Long pid; + + // This is really ineffiecient this is O(n) ; searching all the nodes + // all the resources for a particular component. + // It needs to be stored in some other data structure + + for (unsigned int i=0;i < current_domain_.node.length ();i++) + { + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG , "TM::The resource length is [%d]", + current_domain_.node[i].resource.length ())); + + for (unsigned int j = 0;j < current_domain_.node[i].resource.length ();j++) + { + // The resource + if (!strcmp( + current_domain_.node[i].resource[j].name, + "Component") && + ACE_CString (current_domain_.node[i].resource[j].property[0].name) == + cmp) + { + current_domain_.node[i].resource[j].property[0].value + >>= pid; + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG, + "TM::getpid::The current pid is [%d]\n", pid)); + + } + } // resources + }// nodes + + return pid; +} + +void CIAO::DomainDataManager +::commitResources ( + const ::Deployment::DeploymentPlan & plan) +{ + // commit the resources + // parse into the plan and commit resources ... + + // set the action value + current_action_ = commit; + + for (unsigned int i = 0;i < plan.instance.length ();i++) + { + for (unsigned int j = 0;j < provisioned_data_.node.length ();j++) + { + if (!strcmp (plan.instance[i].node.in () , + provisioned_data_.node[j].name.in ())) + { + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG , + "TM::commitResource::Host name matched\n")); + try { + match_requirement_resource ( + plan.instance[i].deployedResource, + provisioned_data_.node[j].resource); + } + catch (::Deployment::ResourceNotAvailable& ex) + { + // catch the exception and add parameters + ex.elementName = + CORBA::string_dup (provisioned_data_.node[j].name); + + throw ex; + } + } + } + } +} + + +void CIAO::DomainDataManager:: +releaseResources ( + const ::Deployment::DeploymentPlan& plan) +{ + // release the resources + + + // set the action value + current_action_ = release; + + for (unsigned int i = 0;i < plan.instance.length ();i++) + { + for (unsigned int j = 0;j < provisioned_data_.node.length ();j++) + { + if (!strcmp (plan.instance[i].node.in () , + provisioned_data_.node[j].name.in ())) + { + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG , + "TM::commitResource::Host name matched\n")); + + match_requirement_resource ( + plan.instance[i].deployedResource, + provisioned_data_.node[j].resource); + + } + } + } + +} + + +void CIAO::DomainDataManager:: +match_requirement_resource ( + ::Deployment::InstanceResourceDeploymentDescriptions deployed, + ::Deployment::Resources & available + ) +{ + // here match the deployed to the available + + for (unsigned int i = 0;i < deployed.length ();i++) + { + // for each deployed resource ....search the corresponding + // available resource + for (unsigned int j = 0;j < available.length ();j++) + { + if (!strcmp (deployed[i].requirementName, available[j].name)) + { + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG , + "TM::commitResource::Requirement name matched\n")); + // search for the resourcename in the resourceType + for (unsigned int k = 0;k < available[j].resourceType.length ();k++) + { + if (!strcmp (deployed[i].resourceName, + available[j].resourceType[k])) + { + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG , + "TM::commitResource::Resource name matched\n")); + + try { + match_properties (deployed[i].property, + available[j].property); + } + catch (::Deployment::ResourceNotAvailable& ex) + { + // catch the exception and add parameters + ex.resourceType = + CORBA::string_dup (available[j].resourceType[k]); + ex.resourceName = + CORBA::string_dup (available[j].name); + throw ex; + } + } + } + } + } + } + +} + +void CIAO::DomainDataManager:: +match_properties ( + ::Deployment::Properties deployed, + ::Deployment::SatisfierProperties & available) +{ + for (unsigned int i = 0;i < deployed.length ();i++) + { + for (unsigned int j = 0;j < available.length ();j++) + if (!strcmp (deployed[i].name , available[j].name)) + { + // check kind here ....and then subtract .... + // accordingly , ..this is complex ... better to write + // some specialised algo + // for now assuming Capacity .... + // and tk_double .... + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG , + "TM::commitResource::Property name matched\n")); + + commit_release_resource (deployed[i] , available[j]); + + } + } +} + +void CIAO::DomainDataManager::commit_release_resource ( + ::Deployment::Property & deployed, + ::Deployment::SatisfierProperty & available) +{ + if (current_action_ == commit) + { + + CORBA::Double required_d; + + if ((deployed.value >>= required_d) == false) + ACE_ERROR ((LM_ERROR, "Failed to extract required amount\n")); + + CORBA::Double available_d; + + if ((available.value >>= available_d) == false) + ACE_ERROR ((LM_ERROR, "failed to extract available amount\n")); + + if (available_d >= required_d) + { + available_d = available_d - required_d; + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG, "TM::The available is [%f]", + available_d)); + + available.value <<= available_d; + } + else + { + ACE_DEBUG ((LM_DEBUG, "Insufficient resources! Available: %d, Required %d\n", + available_d, required_d)); + throw ::Deployment::ResourceNotAvailable ("", + "", + deployed.name.in (), + "", + ""); + } + + + } + else + { + //must be release + CORBA::Double required_d; + deployed.value >>= required_d; + CORBA::Double available_d; + available.value >>= available_d; + + available_d = available_d + required_d; + + + // Should we check for bin > 100 ?????? + + if (CIAO::debug_level () > 9) + ACE_DEBUG ((LM_DEBUG, "TM::The available is [%f]", + available_d)); + + available.value <<= available_d; + } +} + +void CIAO::DomainDataManager::stop_monitors () +{ + + int length = initial_domain_.node.length (); + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG, "Number of nodes in domain.cdd is : %d\n", length)); + } + + for (int i=0;i < length;i++) + { + + ::Deployment::NodeManager_var node_manager; + + + try + { + node_manager = + deployment_config_.get_node_manager + (initial_domain_.node[i].name.in ()); + } + catch (CORBA::Exception& ex) + { + ACE_ERROR ((LM_ERROR, "DANCE::TM (%P|%t) DomainDataManager.cpp: " + "Error in get Node Manager from Deployment Config %s\n", + initial_domain_.node[i].name.in ())); + continue; + } + + + if (!CORBA::is_nil (node_manager.in ())) + { + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG, "Trying to contact nodemanager on %s\n", + initial_domain_.node[i].name.in ())); + } + try + { + node_manager->leaveDomain (); + } + catch (CORBA::Exception& ex) + { + ACE_DEBUG ((LM_DEBUG , "TM::Error in calling Leave Domain\n")); + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught in " + "DomainDataManager::leaveDomain"); + } + } + } + return; + +} diff --git a/TAO/CIAO/DAnCE/TargetManager/DomainDataManager.h b/TAO/CIAO/DAnCE/TargetManager/DomainDataManager.h new file mode 100644 index 00000000000..ea704259a0e --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/DomainDataManager.h @@ -0,0 +1,270 @@ +// $Id$ +//=============================================================== +/** + * @file DomainDataManager.h + * + * @brief Maintains the Domain Information + * + * It contains the entire Domain information.Both the + * initial domain as well as the current available domain. + * + * @author Nilabja Roy nilabjar@dre.vanderbilt.edu + */ +//=============================================================== +#ifndef DOMAIN_DATA_MGRH +#define DOMAIN_DATA_MGRH + +#include "TargetManagerC.h" +#include "Deployment_Configuration.h" + +/** + * @namespace CIAO + * + * @brief The main CIAO namespace + * + */ +namespace CIAO +{ + /** + * @class DomainDataManager + * + * @brief Responsible for maintaining the Domain Information + * + * It maintains both the Current Domain Information as well + * as the Initial domain at full capacity. + */ + class DomainDataManager + { + + public : + /** + * @operation updateDomain + * @brief This function is called by the other classes to update + * current domain data. + * @param elements The string sequence of elements + * being updated + * @param domainSubset The subset of the actual Domain to be updated + * @param updateKind Specifies the update type eg. add, delete, update + * + */ + int update_domain (const ::CORBA::StringSeq & elements, + const ::Deployment::Domain & domainSubset, + ::Deployment::DomainUpdateKind updateKind + ); + /** + * @operation getInitialDomain + * @brief This function is called the Executor code + * to get the Original Domain data. + * @return Domain* The Initial Domain + * + */ + ::Deployment::Domain* get_initial_domain (); + + /** + * @operation getCurrentDomain + * @brief This function is called the Executor code + * to get the Current Domain data. + * @return Domain* The Current Domain + */ + ::Deployment::Domain* get_current_domain (); + + + /** + * @operation create + * @brief This function is called to create the Datamanager + * @param orb The orb pointer + * @param target The Target Manager Object Reference + * + * @description This function calls the constructor of the + * class Domain Data Manager + */ + static DomainDataManager * create (CORBA::ORB_ptr orb, + ::Deployment::TargetManager_ptr target + ); + + /** + * @operation get_data_manager + * @brief Returns the static pointer to the + * data manager. + * @return DomainDataManager* + * @description The staic get_data_manger function returning + * the data_manager pointer + */ + static DomainDataManager* get_data_manager (); + + /** + * @operation delete_data_manager + * @brief deletes the data manager + */ + + static void delete_data_manger (); + + /** + * @operation get_node_managers + * @brief returns the sequence of node managers + * object reference + */ + + CIAO::Host_NodeManager_seq * + get_node_managers (); + + /** + * @operation get_cpu_info + * @brief returns the node specific cpu utilization + * + * @return CIAO::Host_Infos* + */ + + CIAO::Host_Infos* get_cpu_info (); + + /** + * @operation get_pid + * @brief returns the pid of the component id submitted + * @param cmp The component id + * + * @return process id + */ + CORBA::Long get_pid (ACE_CString cmp); + + /** + * @operation commitResources + * @brief commits the resources that are specified + * in the plan. + * @param plan ::Deployment::DeploymentPlan + * @exception ::Deployment::ResourceNotAvailable thrown + * when the resources mentioned in the plan exceeds + * the current resource. + * @exception ::Deployment::PlanError thrown if the plan has any + * error + * + */ + void commitResources ( + const ::Deployment::DeploymentPlan & plan); + + /** + * @operation releaseResources + * @brief The function releases the resources held by a plan + * + * @param argname ::Deployment::DeploymentPlan the plan whose + * resources are to be released + */ + void releaseResources ( + const ::Deployment::DeploymentPlan& plan); + + /** + * @operation stop_monitors + * @brief The function makes a call on the leaveDomain on the + * NodeManager + * + * @description The node manager in turn stops the monitor + * + */ + + void stop_monitors (); + + protected: + + + /** + * @operation Constructor + * @param orb The orb pointer + * @param target The Target Manager Object Reference + * @description The constructor made proteccted so that no one can create + * it. + */ + DomainDataManager (CORBA::ORB_ptr orb, + ::Deployment::TargetManager_ptr target + ); + + /** + * @operation readinDomainData + * @brief It will read the initial Domain data from + * XML files. + */ + int readin_domain_data (); + + /** + * @operation match_requirement_resource + * @brief Match the deployed resources to the + * available resource + */ + void match_requirement_resource ( + ::Deployment::InstanceResourceDeploymentDescriptions deployed, + ::Deployment::Resources& available + ); + + /** + * @operation match_properties + * @brief Match the properties of a Requirement to the + * properties of available resource + * @param deployed The deployed Properties + * @param available The available Properties + */ + + void match_properties ( + ::Deployment::Properties deployed, + ::Deployment::SatisfierProperties& available); + + + /// The different actiona that can take place + enum Action {commit , release}; + + /** + * @operation commit_release_resource + * @brief Either commits or releases the given resource + * based on the current Action set. + * @param deployed ::Deployment::Property is the resource + * to be commited/released + * @param available ::Deployment::SatisfierProperty is the + * available resource from which committed/released. + * @exception ::Deployment::ResourceNotAvailable thrown + * when the deployed resources exceeds + * the available resource. + */ + + void commit_release_resource ( ::Deployment::Property & deployed, + ::Deployment::SatisfierProperty & available); + + /** + * @operation call_all_node_managers + * @brief This function calls all NM and gives them + * the sub-domain + */ + int call_all_node_managers (); + + /// The ORB pointer + CORBA::ORB_var orb_; + + /// The Deployment Configuration + CIAO::Deployment_Configuration deployment_config_; + + /// The Initial Domain - contains resources + /// at total capacity + ::Deployment::Domain initial_domain_; + + + /// The Current Domain - contains resources + /// at current capacity + ::Deployment::Domain current_domain_; + + /// The Target Manager Context + ::Deployment::TargetManager_var target_mgr_; + + /** + * The staic data manager pointer implementing + * singleton pattern + */ + static DomainDataManager* global_data_manager_; + + /** + * The static provisioned Domain data + */ + ::Deployment::Domain provisioned_data_; + + ///The current action + Action current_action_; + }; + +} // CIAO + +#endif /* DOMAIN_DATA_MGRH */ diff --git a/TAO/CIAO/DAnCE/TargetManager/TM_Client.mpc b/TAO/CIAO/DAnCE/TargetManager/TM_Client.mpc new file mode 100644 index 00000000000..aba5c8737d3 --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/TM_Client.mpc @@ -0,0 +1,28 @@ +// $Id$ + +// Client.mpc,v 1.6 2005/02/18 09:07:06 jwillemsen Exp + + +project(TMClient): ciao_client_dnc,ciao_deployment_stub, ciao_config_handlers { + after += CIAO_TargetManager_stub + includes += $(CIAO_ROOT)/DAnCE $(TAO_ROOT)/orbsvcs + includes += $(CIAO_ROOT)/DAnCE/TargetManager + libs += TargetManager_stub + + + IDL_Files { + } + + Source_Files { + CmpClient.cpp + } + + Header_Files { + } + + Inline_Files { + } + + Template_Files { + } +} diff --git a/TAO/CIAO/DAnCE/TargetManager/TargetManager.idl b/TAO/CIAO/DAnCE/TargetManager/TargetManager.idl new file mode 100644 index 00000000000..21200871e68 --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/TargetManager.idl @@ -0,0 +1,38 @@ +// $Id$ + +/** + * @file TargetManager.idl + * @brief TargetManager interface defintion + * + * @author Nilabja R <nilabjar@dre.vanderbilt.edu> + */ + +#ifndef TARGETMGR_IDL +#define TARGETMGR_IDL + + + +#include "ciao/Components.idl" +#include "ciao/Target_Data.idl" +#include "TargetManagerExt.idl" + +/** + * @module CIAO + * + * @brief TargetManager interface defintion + * + */ +module CIAO +{ + component TargetManagerImpl + { + provides ::Deployment::TargetManager targetMgr; + provides CIAO::TargetManagerExt target_manager_ext; + }; + + home TargetManagerHome manages TargetManagerImpl + { + }; +}; + +#endif diff --git a/TAO/CIAO/DAnCE/TargetManager/TargetManager.mpc b/TAO/CIAO/DAnCE/TargetManager/TargetManager.mpc new file mode 100644 index 00000000000..07200eb0eca --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/TargetManager.mpc @@ -0,0 +1,62 @@ +// $Id$ + +project(CIAO_TargetManager_stub): ciao_client_dnc, ciao_deployment_stub { + after += NodeManager_stub + sharedname = TargetManager_stub + idlflags += -Wb,stub_export_macro=TARGETMANAGER_STUB_Export -Wb,stub_export_include=TargetManager_stub_export.h -Wb,skel_export_macro=TARGETMANAGER_SVNT_Export -Wb,skel_export_include=TargetManager_svnt_export.h + dynamicflags = TARGETMANAGER_STUB_BUILD_DLL + + libs += NodeManager_stub + + IDL_Files { + TargetManager.idl + TargetManagerExt.idl + } + + Source_Files { + TargetManagerC.cpp + TargetManagerExtC.cpp + } +} + +project(CIAO_TargetManager_svnt) : ciao_servant_dnc { + after += CIAO_TargetManager_stub + sharedname = TargetManager_svnt + libs += TargetManager_stub NodeManager_stub + + idlflags += -Wb,export_macro=TARGETMANAGER_SVNT_Export -Wb,export_include=TargetManager_svnt_export.h + dynamicflags = TARGETMANAGER_SVNT_BUILD_DLL + + CIDL_Files { + TargetManager.cidl + } + + IDL_Files { + TargetManagerE.idl + } + + Source_Files { + TargetManagerEC.cpp + TargetManagerS.cpp + TargetManagerExtS.cpp + TargetManager_svnt.cpp + } +} + + +project(CIAO_TargetManager_exec) : ciao_servant_dnc, ciao_config_handlers, ciao_domainapplicationmanager_dnc { + after += CIAO_TargetManager_svnt + sharedname = TargetManager_exec + libs += TargetManager_stub TargetManager_svnt NodeManager_stub + + idlflags += -Wb,export_macro=TARGETMANAGER_EXEC_Export -Wb,export_include=TargetManager_exec_export.h + dynamicflags = TARGETMANAGER_EXEC_BUILD_DLL + + Source_Files { + DomainDataManager.cpp + TargetManager_exec.cpp + } + + IDL_Files { + } +} diff --git a/TAO/CIAO/DAnCE/TargetManager/TargetManagerExt.idl b/TAO/CIAO/DAnCE/TargetManager/TargetManagerExt.idl new file mode 100644 index 00000000000..3336f3ffe5c --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/TargetManagerExt.idl @@ -0,0 +1,80 @@ +// $Id$ + +/** + * @file TargetManagerExt.idl + * + * @brief The Extensions to the TM interface for ARMS demo + * + * @author Nilabja R <nilabjar@dre.vanderbilt.edu> + * @author Nishanth Shankaran <nshankar@dre.vanderbilt.edu> + * + * This file declares a interface which will be implemented as + * a facet by the TargetManager component + */ + +/** + * @module CIAO + * + * @brief The CIAO module + */ + +//#include <ciao/Deployment.idl> +#include "DAnCE/Interfaces/NodeManagerDaemon.idl" + +module CIAO +{ + /** + * @struct Cpu_Info + * @brief Consists of individual host-cpu info + */ + struct Host_Info + { + string hostname; + double cpu_util; + }; + + /// The sequence of CPU infos + typedef sequence<Host_Info> Host_Infos; + + /** + * @struct Component_Cpu_Util + * @brief Contains a component CPU Util + */ + struct Component_Info + { + string component_name; + double cpu_util; + }; + + /// The sequence of component cpu utilization + typedef sequence <Component_Info> Component_Infos; + + + /** + * @struct Host_NodeManager + * @brief Contains the node manager to host reference + */ + struct Host_NodeManager + { + string host_; + ::CIAO::NodeManagerDaemon node_mgr_; + }; + + /// Sequence of NodeManager. + typedef sequence <Host_NodeManager> Host_NodeManager_seq; + + /** + * @interface TargetManagerExt + * @brief The Target Manager Extension + * + * Contains the interface used by the RACE + * controller. + */ + interface TargetManagerExt + { + long get_pid (in string component_uuid); + Host_Infos get_host_cpu (); + Component_Infos get_component_cpu (); + Host_NodeManager_seq get_all_node_managers (); + }; +}; diff --git a/TAO/CIAO/DAnCE/TargetManager/TargetManager_exec.cpp b/TAO/CIAO/DAnCE/TargetManager/TargetManager_exec.cpp new file mode 100644 index 00000000000..7fe8f24a707 --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/TargetManager_exec.cpp @@ -0,0 +1,362 @@ +// $Id$ +//=============================================================== +/** + * @file TargetManager_exec.cpp + * + * @brief TargetManager Executor code + * + * @author Nilabja Roy nilabjar@dre.vanderbilt.edu + */ +//=============================================================== +#include "TargetManager_exec.h" +#include "ciao/CIAO_common.h" +#include <orbsvcs/CosNamingC.h> +#include "Config_Handlers/DD_Handler.h" +#include "Config_Handlers/DnC_Dump.h" + +using namespace std; + +namespace CIDL_TargetManager_i +{ + //================================================================== + // Facet Executor Implementation Class: TargetManager_exec_i + //================================================================== + + TargetManager_exec_i:: + TargetManager_exec_i (TargetManagerImpl_exec_i* exec , + CORBA::ORB_ptr orb, + TargetManagerImpl_Context *context + ) + : _exec (exec), + orb_ (orb), + context_ (context) + { + // The DomainDataManager created here ... + + // get its own obj ref , then call + + + CORBA::Object_var object = context_->get_CCM_object (); + CIAO::TargetManagerImpl_var target_impl = + CIAO::TargetManagerImpl::_narrow (object.in ()); + ::Deployment::TargetManager_var target = + target_impl->provide_targetMgr (); + // dataManager_.reset (new CIAO::DomainDataManager (orb, target.in ())); + CIAO::DomainDataManager::create (orb, target.in()); + } + + TargetManager_exec_i::~TargetManager_exec_i (void) + { + } + + // Operations from ::Deployment::TargetManager + + ::Deployment::Domain * + TargetManager_exec_i::getAllResources ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + return CIAO::DomainDataManager:: + get_data_manager ()->get_initial_domain (); + } + + ::Deployment::Domain * + TargetManager_exec_i::getAvailableResources ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + return CIAO::DomainDataManager:: + get_data_manager ()->get_current_domain (); + } + + void + TargetManager_exec_i::commitResources ( + const ::Deployment::DeploymentPlan & plan + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Deployment::ResourceNotAvailable, + ::Deployment::PlanError)) + { + return CIAO::DomainDataManager:: + get_data_manager ()->commitResources (plan); + } + + void + TargetManager_exec_i::releaseResources ( + const ::Deployment::DeploymentPlan & plan + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + return CIAO::DomainDataManager:: + get_data_manager ()->releaseResources (plan); + } + + void + TargetManager_exec_i::updateDomain ( + const ::CORBA::StringSeq & elements , + const ::Deployment::Domain & domainSubset , + ::Deployment::DomainUpdateKind updateKind + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + // Your code here. + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , ".. Update Domain called ...\n")); + } + CIAO::DomainDataManager:: + get_data_manager ()->update_domain ( + elements, + domainSubset, + updateKind + ); + } + + //================================================================== + // Facet Executor Implementation Class: TargetManagerExt_exec_i + // required for RACE + //================================================================== + + TargetManagerExt_exec_i::TargetManagerExt_exec_i (void) + { + } + + TargetManagerExt_exec_i::~TargetManagerExt_exec_i (void) + { + } + + // Operations from ::CIAO::TargetManagerExt + + ::CORBA::Long + TargetManagerExt_exec_i::get_pid ( + const char * component_uuid + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + // Your code here. + ACE_DEBUG ((LM_DEBUG, "Get PID :: Skeleton Impl")); + return CIAO::DomainDataManager:: + get_data_manager ()->get_pid (component_uuid); + } + + ::CIAO::Host_Infos * + TargetManagerExt_exec_i::get_host_cpu ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + // Your code here. + ACE_DEBUG ((LM_DEBUG, "Get host cpu :: Skeleton Impl entering\n")); + return CIAO::DomainDataManager:: + get_data_manager ()->get_cpu_info (); + } + + ::CIAO::Component_Infos * + TargetManagerExt_exec_i::get_component_cpu ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + // Your code here. + ACE_DEBUG ((LM_DEBUG, "Get component cpu :: Skeleton Impl")); + return 0; + } + + ::CIAO::Host_NodeManager_seq * + TargetManagerExt_exec_i::get_all_node_managers + (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + return CIAO::DomainDataManager:: + get_data_manager ()->get_node_managers (); + } + + //================================================================== + // Component Executor Implementation Class: TargetManagerImpl_exec_i + //================================================================== + + TargetManagerImpl_exec_i::TargetManagerImpl_exec_i (void) + : exec_object_ (0) + { + } + + TargetManagerImpl_exec_i::~TargetManagerImpl_exec_i (void) + { + } + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + ::Deployment::CCM_TargetManager_ptr + TargetManagerImpl_exec_i::get_targetMgr ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + // Your code here. + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , "Calling TM constructor")); + } + + if (this->exec_object_.in () == 0) + { + this->exec_object_ = new TargetManager_exec_i(this, + context_->_ciao_the_Container()->the_ORB(), + context_ + ); + } + return this->exec_object_.in (); + } + + ::CIAO::CCM_TargetManagerExt_ptr TargetManagerImpl_exec_i + ::get_target_manager_ext ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED + ) ACE_THROW_SPEC ((CORBA::SystemException)) + { + if (this->exec_ext_object_.in () == 0) + { + this->exec_ext_object_ = new TargetManagerExt_exec_i(); + } + return this->exec_ext_object_.in (); + } + + // Operations from Components::SessionComponent + + void + TargetManagerImpl_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + this->context_ = + TargetManagerImpl_Context::_narrow ( + ctx + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + if (this->context_ == 0) + { + ACE_THROW (CORBA::INTERNAL ()); + } + } + + void + TargetManagerImpl_exec_i::ciao_preactivate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + // Your code here. + } + + void + TargetManagerImpl_exec_i::ciao_postactivate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + // Your code here. + } + + + void + TargetManagerImpl_exec_i::ccm_activate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + // Your code here. + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , "Inside CCM_ACTIVATE\n")); + } + get_targetMgr (); + } + + void + TargetManagerImpl_exec_i::ccm_passivate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + // Your code here. + } + + void + TargetManagerImpl_exec_i::ccm_remove ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + // Your code here. + ACE_DEBUG ((LM_DEBUG , "TM::ccm_remove , calling LeaveDomain\n")); + return CIAO::DomainDataManager:: + get_data_manager ()->stop_monitors (); + ACE_DEBUG ((LM_DEBUG , "TM::ccm_remove , After calling LeaveDomain\n")); + } + + + //================================================================== + // Home Executor Implementation Class: TargetManagerHome_exec_i + //================================================================== + + TargetManagerHome_exec_i::TargetManagerHome_exec_i (void) + { + } + + TargetManagerHome_exec_i::~TargetManagerHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + TargetManagerHome_exec_i::create ( + ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + TargetManagerImpl_exec_i, + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (::Components::EnterpriseComponent::_nil ()); + + return retval; + } + + extern "C" TARGETMANAGER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_CIAO_TargetManagerHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + TargetManagerHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} diff --git a/TAO/CIAO/DAnCE/TargetManager/TargetManager_exec.h b/TAO/CIAO/DAnCE/TargetManager/TargetManager_exec.h new file mode 100644 index 00000000000..1b3b7b0e470 --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/TargetManager_exec.h @@ -0,0 +1,236 @@ +// $Id$ +//=============================================================== +/** + * @file TargetManager_exec.h + * + * @brief TargetManager Executor code + * + * @author Nilabja Roy nilabjar@dre.vanderbilt.edu + */ +//=============================================================== + +#ifndef CIAO_TARGETMANAGER_EXEC_H +#define CIAO_TARGETMANAGER_EXEC_H + +#include /**/ "ace/pre.h" + +#include "TargetManager_svnt.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "TargetManager_exec_export.h" +#include "tao/LocalObject.h" +#include "DomainDataManager.h" + +namespace CIDL_TargetManager_i +{ + class TargetManager_exec_i; + + class TARGETMANAGER_EXEC_Export TargetManagerImpl_exec_i + : public virtual TargetManagerImpl_Exec, + public virtual TAO_Local_RefCounted_Object + { + public: + TargetManagerImpl_exec_i (void); + virtual ~TargetManagerImpl_exec_i (void); + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + virtual ::Deployment::CCM_TargetManager_ptr + get_targetMgr ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual ::CIAO::CCM_TargetManagerExt_ptr + get_target_manager_ext ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((::CORBA::SystemException)); + + // Operations from Components::SessionComponent + + virtual void + set_session_context ( + ::Components::SessionContext_ptr ctx + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ciao_preactivate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ciao_postactivate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ccm_activate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ccm_passivate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ccm_remove ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + protected: + /// The service context pointer + TargetManagerImpl_Context *context_; + + /// The exec Object + ::Deployment::CCM_TargetManager_var exec_object_; + + ::CIAO::CCM_TargetManagerExt_var exec_ext_object_; + }; + + class TARGETMANAGER_EXEC_Export TargetManagerExt_exec_i + : public virtual ::CIAO::CCM_TargetManagerExt, + public virtual TAO_Local_RefCounted_Object + { + public: + TargetManagerExt_exec_i (void); + virtual ~TargetManagerExt_exec_i (void); + + // Operations from ::CIAO::TargetManagerExt + + virtual ::CORBA::Long + get_pid ( + const char * component_uuid + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual ::CIAO::Host_Infos * + get_host_cpu ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual ::CIAO::Component_Infos * + get_component_cpu ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual ::CIAO::Host_NodeManager_seq * + get_all_node_managers ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + }; + + class TARGETMANAGER_EXEC_Export TargetManager_exec_i + : public virtual ::Deployment::CCM_TargetManager, + public virtual TAO_Local_RefCounted_Object + { + public: + TargetManager_exec_i (TargetManagerImpl_exec_i* exec, + CORBA::ORB_ptr orb, + TargetManagerImpl_Context *context + ); + virtual ~TargetManager_exec_i (void); + + // Operations from ::Deployment::TargetManager + + virtual ::Deployment::Domain * + getAllResources ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual ::Deployment::Domain * + getAvailableResources ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void + commitResources ( + const ::Deployment::DeploymentPlan & plan + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Deployment::ResourceNotAvailable, + ::Deployment::PlanError)); + + virtual void + releaseResources ( + const ::Deployment::DeploymentPlan & argname + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void + updateDomain ( + const ::CORBA::StringSeq & elements, + const ::Deployment::Domain & domainSubset, + ::Deployment::DomainUpdateKind updateKind + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + private: + TargetManagerImpl_exec_i * _exec; + + ///The pointer to the Domain Manager + std::auto_ptr<CIAO::DomainDataManager> dataManager_; + + /// The CORBA ORB ... + CORBA::ORB_var orb_; + + /// The context object ... + TargetManagerImpl_Context *context_; + }; + + + + class TARGETMANAGER_EXEC_Export TargetManagerHome_exec_i + : public virtual TargetManagerHome_Exec, + public virtual TAO_Local_RefCounted_Object + { + public: + TargetManagerHome_exec_i (void); + virtual ~TargetManagerHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + }; + + extern "C" TARGETMANAGER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_CIAO_TargetManagerHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_TARGETMANAGER_EXEC_H */ diff --git a/TAO/CIAO/DAnCE/TargetManager/descriptors/Domain.cdd b/TAO/CIAO/DAnCE/TargetManager/descriptors/Domain.cdd new file mode 100644 index 00000000000..fe21a4b48f5 --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/descriptors/Domain.cdd @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<Deployment:domain + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + +<UUID>effd4bd0-6db0-4c50-9bb7-db9decebae1c</UUID> +<label>Hello Domain</label> + + +<node> + <name>TargetManagerNode_1</name> + <label>Sender's Node</label> + <resource> + <name>Processor</name> + <resourceType>CPULoad</resourceType> + <property> + <name>LoadAverage</name> + <kind>Quantity</kind> + <dynamic>true</dynamic> + <value> + <type> + <kind>tk_long</kind> + </type> + <value><long>99</long></value> + </value> + </property> + </resource> +</node> +<node> + <name>TargetManagerNode_2</name> + <label>Receiver's Node</label> + <resource> + <name>Processor</name> + <resourceType>CPULoad</resourceType> + <property> + <name>LoadAverage</name> + <kind>Quantity</kind> + <dynamic>true</dynamic> + <value> + <type> + <kind>tk_long</kind> + </type> + <value><long>99</long></value> + </value> + </property> + </resource> +</node> + + +<interconnect> + <name>NoBridgeInterConnect</name> + <connect> + <name>Receiver</name> + <resource> + <name>Processor</name> + <resourceType>CPULoad</resourceType> + <property> + <name>LoadAverage</name> + <kind>Quantity</kind> + <dynamic>true</dynamic> + <value> + <type> + <kind>tk_long</kind> + </type> + <value><long>99</long></value> + </value> + </property> + </resource> + </connect> +</interconnect> + + +<bridge> + <name>NoBridge</name> + <connect> + <name>NoBridgeInterConnect</name> + <connect> + <name>Receiver</name> + <resource> + <name>Processor</name> + <resourceType>CPULoad</resourceType> + <property> + <name>LoadAverage</name> + <kind>Quantity</kind> + <dynamic>true</dynamic> + <value> + <type> + <kind>tk_long</kind> + </type> + <value><long>99</long></value> + </value> + </property> + </resource> + </connect> + </connect> +</bridge> + + +</Deployment:domain> diff --git a/TAO/CIAO/DAnCE/TargetManager/descriptors/flattened_deploymentplan.cdp b/TAO/CIAO/DAnCE/TargetManager/descriptors/flattened_deploymentplan.cdp new file mode 100644 index 00000000000..fae71c39fa1 --- /dev/null +++ b/TAO/CIAO/DAnCE/TargetManager/descriptors/flattened_deploymentplan.cdp @@ -0,0 +1,92 @@ +<Deployment:deploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Modified_Deployment.xsd"> + + <label>Hello-DeploymentPlan</label> + <!-- Could be ZERO --> + <realizes> + <label>BasicSP-realizes-cid</label> + <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID> + <specificType><!-- @@ What does here? --></specificType> + <supportedType>IDL:BasicSP/EC:1.0</supportedType> + <port> + <name>read_message</name> + <specificType>IDL:Hello/ReadMessage:1.0</specificType> + <supportedType>IDL:Hello/ReadMessage:1.0</supportedType> + <provider>false></provider> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>false</optional> + <kind>SimplexReceptacle</kind> + </port> + </realizes> + + <implementation id="TargetManager-mdd"> + <name>TargetManager-mdd</name> + <source><!-- @@ Don't know what goes here --></source> + <artifact>TargetManager_exec</artifact> + <artifact>TargetManager_svnt</artifact> + <!-- + <execParameter></execParameter> + <deployRequirement></deployRequirement> + --> + </implementation> + + <instance id="TargetManager-idd"> + <name>TargetManager-idd</name> + <node>TargetManagerNode_1</node> + <source><!-- @@ What goes here --></source> + <implementation>TargetManager-mdd</implementation> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>TargetManager.ior</string> + </value> + </value> + </configProperty> + </instance> + + <!-- @@ Runtime library name must match exactly in "location" tag --> + + <artifact id="TargetManager_exec"> + <name>TargetManager_exec</name> + <source><!-- @@ Not sure about this--></source> + <node><!-- blank --></node> + <location>TargetManager_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_CIAO_TargetManagerHome_Impl</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="TargetManager_svnt"> + <name>TargetManager_svnt</name> + <source><!-- @@ Not sure --></source> + <node><!-- blank --></node> + <location>TargetManager_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_CIAO_TargetManagerHome_Servant</string> + </value> + </value> + </execParameter> + </artifact> +</Deployment:deploymentPlan> diff --git a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp new file mode 100644 index 00000000000..33f74f55976 --- /dev/null +++ b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp @@ -0,0 +1,166 @@ +// $Id$ + +#include "Deployment_CoreC.h" +#include "Client_init.h" +#include "NodeAppTest_RoundTripC.h" +#include "ace/Get_Opt.h" +#include "assert.h" + +const char *ior = "file://test.ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + ior = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s \n" + "-k <ComponentServer ior> \n" + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + CIAO::Client_init (orb.in ()); + + CORBA::Object_var tmp = + orb->string_to_object(ior ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Deployment::NodeApplication_var node_app = + Deployment::NodeApplication::_narrow(tmp.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (node_app.in ())) + { + ACE_ERROR_RETURN ((LM_DEBUG, + "Nil nodeapplication reference <%s>\n", + ior), + 1); + } + + + ACE_DEBUG ((LM_DEBUG, "Try installing Home and Component\n")); + + Deployment::ComponentImplementationInfo info; + + // Add the names and entry points of each of the DLLs + info.component_instance_name = + CORBA::string_dup ("NodeAppTest_RoundTrip"); + info.executor_dll = + CORBA::string_dup ("NodeAppTest_RoundTrip_exec"); + info.executor_entrypt = + CORBA::string_dup ("createRoundTripHome_Impl"); + info.servant_dll = + CORBA::string_dup ("NodeAppTest_RoundTrip_svnt"); + info.servant_entrypt = + CORBA::string_dup ( + "create_NodeAppTest_NodeAppTest_RoundTripHome_Servant" + ); + + // Create a ContainerImplementationInfo sequence + Deployment::ContainerImplementationInfo container_info; + container_info.impl_infos.length (1); + container_info.impl_infos[0] = info; + + // Create a NodeImplementationInfo sequence + Deployment::NodeImplementationInfo node_info; + node_info.impl_infos.length (1); + node_info.impl_infos[0] = container_info; + + // Install test component and its home on NodeApplication + Deployment::ComponentInfos_var comp_info = + node_app->install (node_info ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + assert (comp_info->length () == 1); //return 1 component objeref + + const CORBA::ULong i = 0; + Components::CCMObject_var objref = (comp_info[i]).component_ref; + + NodeAppTest::NodeAppTest_RoundTrip_var roundtrip_var = + NodeAppTest::NodeAppTest_RoundTrip::_narrow (objref.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (roundtrip_var.in ())) + { + ACE_ERROR_RETURN ((LM_DEBUG, + "Nil RoundTrip reference\n"), + 1); + } + + // Invoke Operation on the Interface + ACE_DEBUG ((LM_DEBUG, "Try cube_long operation on the Interface \n")); + CORBA::Long input = 1L; + CORBA::Long output = + roundtrip_var->cube_long (input ACE_ENV_ARG_PARAMETER); + + if (input == output) + ACE_DEBUG ((LM_DEBUG, "Retrun values matched!!\n")); + else + { + ACE_DEBUG ((LM_DEBUG, "Return values did not match: failure\n")); + exit (1); + } + + // Install another set of components + ACE_DEBUG ((LM_DEBUG, "Try installing another component dynamically\n")); + + // Modifying the component instance name since it must be unique + (node_info.impl_infos[0]).impl_infos[0].component_instance_name = + CORBA::string_dup ("NodeAppTest_RoundTrip_2"); + Deployment::ComponentInfos_var comp_info_new = + node_app->install (node_info ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + assert (comp_info_new->length () == 1); //return 1 component objeref + + ACE_DEBUG ((LM_DEBUG, "Try removing the second component and its home\n")); + node_app->remove_component ("NodeAppTest_RoundTrip"); + ACE_DEBUG ((LM_DEBUG, "Component and Home removed successfully\n")); + + ACE_DEBUG ((LM_DEBUG, "=====Try removing all remaining components and homes\n")); + node_app->remove (); + ACE_DEBUG ((LM_DEBUG, "=====Components and Homes removed successfully\n")); + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_DEBUG ((LM_DEBUG, "=====Test success!!\n")); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/CIAO/ciao/Deployment_Events.idl b/TAO/CIAO/ciao/Deployment_Events.idl new file mode 100644 index 00000000000..1d4d431287c --- /dev/null +++ b/TAO/CIAO/ciao/Deployment_Events.idl @@ -0,0 +1,68 @@ +// $Id$ + +/** + * @file Deployment_Events.idl + * + * @brief A collection of IDL data types for CIAO pub/sub services deployment. + * + * @author Gan Deng + */ + +#if !defined (CIAO_DEPLOYMENT_EVENT_SERVICES_IDL) +#define CIAO_DEPLOYMENT_EVENT_SERVICES_IDL + +#include <orb.idl> + +module CIAO +{ + module DAnCE + { + /// CIAO specific extension to describe pub/sub services in the deployment + enum EventServiceType + { + EC, + RTEC, + NOTIFY, + RTNOTIFY + }; + + /// Each element in the EventSourceSet denotes a event source id + typedef string EventSourceId; + + typedef sequence<EventSourceId> EventSourceSet; + + /// Event Filters + enum FilterType + { + CONJUNCTION, + DISJUNCTION, + LOGICAL_AND, + NEGATE + }; + + struct EventFilter + { + string name; + FilterType type; + EventSourceSet sources; + }; + + typedef sequence < EventFilter > EventFilters; + + /// CIAO specific extension to describe pub/sub services in the deployment + struct EventServiceDeploymentDescription + { + string name; + string node; + EventServiceType type; + string svc_cfg_file; + + EventFilters filters; + }; + + typedef sequence < EventServiceDeploymentDescription > + EventServiceDeploymentDescriptions; + }; +}; + +#endif /* CIAO_DEPLOYMENT_EVENT_SERVICES_IDL */ diff --git a/TAO/CIAO/ciao/Deployment_common.h b/TAO/CIAO/ciao/Deployment_common.h new file mode 100644 index 00000000000..725b6afd953 --- /dev/null +++ b/TAO/CIAO/ciao/Deployment_common.h @@ -0,0 +1,54 @@ +// $Id$ + +/** + * @file Deployment_common.h + * + * This file collects common type definitions used across different + * objects of DAnCE toolchain. + * + * @author Gan Deng <dengg@dre.vanderbilt.edu> + */ + +#ifndef DANCE_COMMON_H +#define DANCE_COMMON_H +#include /**/ "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined ACE_LACKS_PRAGMA_ONCE +#pragma once +#endif /* ! ACE_LACKS_PRAGMA_ONCE */ + +/// A struct which captures the binding information about a component + +namespace CIAO +{ + /// A struct which captures the compnent binding information, which + /// is useful for inter-assembly connection setup + typedef struct _component_binding + { + _component_binding () + { + providedReference_ = 0; + } + + ACE_CString name_; + ACE_CString plan_uuid_; + ACE_CString node_; + + Deployment::Connections_var providedReference_; + + bool operator==(const struct _component_binding & comp) + { + if (this->name_ == comp.name_ && + this->plan_uuid_ == comp.plan_uuid_ && + this->node_ == comp.node_) + return true; + else + return false; + } + } Component_Binding_Info; +} + +#include /**/ "ace/post.h" +#endif /* DANCE_COMMON_H */ diff --git a/TAO/CIAO/ciao/DomainApplicationManager.idl b/TAO/CIAO/ciao/DomainApplicationManager.idl new file mode 100644 index 00000000000..c0030465638 --- /dev/null +++ b/TAO/CIAO/ciao/DomainApplicationManager.idl @@ -0,0 +1,57 @@ +// $Id$ +#ifndef DOMAINAPPLICATIONMANAGER_IDL +#define DOMAINAPPLICATIONMANAGER_IDL + +#include "Deployment.idl" + +module Deployment { + /// CIAO 's DomainApplicationManager interface differs spec-defined interface + /// in the same that it also integrates the spec-defined interface for + /// DomainApplication into itself + interface DomainApplicationManager + { + DeploymentPlan getPlan (); + + /// CIAO specific version of startLaunch implementation, this one + /// differs with spec-defined operation in the sense that it doesn't + /// return DomainApplication object reference. + void startLaunch (in Properties configProperty, in boolean start) + raises (ResourceNotAvailable, StartError, InvalidProperty); + + void finishLaunch (in boolean start, + in boolean is_ReDAC) + raises (StartError, InvalidConnection); + + void start () + raises (StartError); + + /// CIAO specific extention + /// Fetch NodeApplication based on the given node name + NodeApplication get_node_app (in string node_name) + raises (NoSuchName); + + /// CIAO specific extension, it differs with the spec defined one + /// for no input parameter. + void destroyApplication () + raises (StopError); + + /// CIAO specific extension to destroy NodeApplicationManager + void destroyManager () + raises (StopError); + + /// CIAO specific extension + /// Perform the actual redeployment and reconfiguration on the dommain level. + void perform_redeployment (in DeploymentPlan new_plan) + raises (PlanError, + InstallationFailure, + UnknownImplId, + ImplEntryPointNotFound, + InvalidConnection, + InvalidProperty, + ::Components::RemoveFailure); + }; + + typedef sequence < DomainApplicationManager > DomainApplicationManagers; +}; + +#endif /* DOMAINAPPLICATIONMANAGER_IDL */ diff --git a/TAO/CIAO/ciao/ExecutionManager.idl b/TAO/CIAO/ciao/ExecutionManager.idl new file mode 100644 index 00000000000..a5108b77281 --- /dev/null +++ b/TAO/CIAO/ciao/ExecutionManager.idl @@ -0,0 +1,50 @@ +// $Id$ +#ifndef EXECUTIONMANAGER_IDL +#define EXECUTIONMANAGER_IDL + +#include "Deployment.idl" +#include "DomainApplicationManager.idl" + +module Deployment { + interface ExecutionManager { + DomainApplicationManager preparePlan (in DeploymentPlan plan, + in boolean commitResources) + raises (ResourceNotAvailable, PlanError, StartError); + + DomainApplicationManagers getManagers (); + + DomainApplicationManager getManager (in string plan_uuid) + raises (PlanNotExist); + + void destroyManager (in DomainApplicationManager manager) + raises (StopError); + + /// CIAO specific extention + /// Destroy ApplicationManagers by plan_uuid, the unique semantics of this + /// operation lies in the fact that if some components are + /// still up and running, then the ApplicationManagers won't be destroyed. + void destroyManagerByPlan (in string plan_uuid) + raises (StopError); + + /// CIAO specific extention + /// "Get" operation, return the DeploymentPlan + DeploymentPlan getPlan (in string plan_uuid); + + /// CIAO specific operation to handle dynamic system redeployment + /// and reconfiguration + /// This operation could handle dynamic redeployment, and this + /// is the operation exposed to clients directly. Other + /// "perform_redeployment" operation defined on DAM and NA + /// are implementaion details within DAnCE. + void perform_redeployment (in DeploymentPlan new_plan) + raises (PlanError, + InstallationFailure, + UnknownImplId, + ImplEntryPointNotFound, + InvalidConnection, + InvalidProperty, + ::Components::RemoveFailure); + }; +}; + +#endif /* EXECUTIONMANAGER_IDL */ diff --git a/TAO/CIAO/ciao/NodeApplicationManager.idl b/TAO/CIAO/ciao/NodeApplicationManager.idl new file mode 100644 index 00000000000..1c3e33ad05b --- /dev/null +++ b/TAO/CIAO/ciao/NodeApplicationManager.idl @@ -0,0 +1,50 @@ +// $Id$ +#ifndef NODEAPPLICATIONMANAGER_IDL +#define NODEAPPLICATIONMANAGER_IDL + +#include "Deployment.idl" + +module Deployment { + interface ApplicationManager { + Application startLaunch (in Properties configProperty, + out Connections providedReference, + in boolean start) + raises (ResourceNotAvailable, StartError, InvalidProperty); + void destroyApplication (in Application app) + raises (StopError); + }; + + interface NodeApplicationManager : + ApplicationManager + { + /// CIAO specific operation to handle dynamic system redeployment + /// and reconfiguration + /// This operation could handle dynamic redeployment for + /// a node-level deployment plan within a node + /// @para add_or_remove If true, we add new components only, vice vesa. + Application perform_redeployment (in Properties configProperty, + out Connections providedReference, + in boolean add_or_remove, + in boolean start) + raises (PlanError, + InstallationFailure, + UnknownImplId, + ImplEntryPointNotFound, + InvalidConnection, + InvalidProperty, + ::Components::RemoveFailure); + + /// CIAO specific operation to reset deployment plan + void reset_plan (in DeploymentPlan plan); + + /// CIAO speicfic operation to set the information of + /// "shared components" (through NodeManager) + void set_shared_components (in ComponentPlans components); + + /// CIAO specific function to set priority + /// o component , required by RACE + long set_priority (in string cid , in Sched_Params params); + }; +}; + +#endif /* NODEAPPLICATIONMANAGER_IDL */ diff --git a/TAO/CIAO/ciao/NodeManager.idl b/TAO/CIAO/ciao/NodeManager.idl new file mode 100644 index 00000000000..47651ac52bb --- /dev/null +++ b/TAO/CIAO/ciao/NodeManager.idl @@ -0,0 +1,38 @@ +// $Id$ +#ifndef NODEMANAGER_IDL +#define NODEMANAGER_IDL + +#include "Deployment.idl" + +module Deployment { + + interface NodeApplicationManager; + + interface NodeManager { + void joinDomain (in Domain ciao_domain, + in TargetManager manager, + in Logger log); + + void leaveDomain (); + + NodeApplicationManager preparePlan (in DeploymentPlan plan) + raises (StartError, PlanError); + + void destroyManager (in NodeApplicationManager appManager) + raises (StopError, InvalidReference); + + /// CIAO specific extension + /// Destroy the NAM and all the associated NAs with this child_plan + /// We can guarantee that the input DeploymentPlan is valid, since it + /// is fetched from the cached DeploymentPlan of DAM, which has been + /// validated before. + void destroyPlan (in DeploymentPlan plan) + raises (StopError); + + /// CIAO specific extension + /// Get all the shared components installed in this node + ComponentPlans get_shared_components (); + }; +}; + +#endif /* NODEMANAGER_IDL */ diff --git a/TAO/CIAO/ciao/RepositoryManager.idl b/TAO/CIAO/ciao/RepositoryManager.idl new file mode 100644 index 00000000000..f7fbe6f4d36 --- /dev/null +++ b/TAO/CIAO/ciao/RepositoryManager.idl @@ -0,0 +1,38 @@ +// $Id$ +#ifndef REPOSITORY_MANAGER_IDL +#define REPOSITORY_MANAGER_IDL + +#include "Packaging_Data.idl" +#include "Deployment.idl" + +module Deployment { + + exception NameExists { + }; + + exception PackageError { + string source; + string reason; + }; + + interface RepositoryManager { + void installPackage (in string installationName, in string location) + raises (NameExists, PackageError); + void createPackage (in string installationName, + in PackageConfiguration package, + in string baseLocation, + in boolean replace) + raises (NameExists, PackageError); + PackageConfiguration findPackageByName (in string name) + raises (NoSuchName); + PackageConfiguration findPackageByUUID (in string UUID) + raises (NoSuchName); + ::CORBA::StringSeq findNamesByType (in string type); + ::CORBA::StringSeq getAllNames (); + ::CORBA::StringSeq getAllTypes (); + void deletePackage (in string installationName) + raises (NoSuchName); + }; +}; + +#endif /* REPOSITOR_MANAGER_IDL */ diff --git a/TAO/CIAO/ciao/Servant_Impl_Utils_T.cpp b/TAO/CIAO/ciao/Servant_Impl_Utils_T.cpp new file mode 100644 index 00000000000..5d75ef51fd3 --- /dev/null +++ b/TAO/CIAO/ciao/Servant_Impl_Utils_T.cpp @@ -0,0 +1,143 @@ +// $Id$ + +#ifndef CIAO_SERVANT_IMPL_UTILS_T_C +#define CIAO_SERVANT_IMPL_UTILS_T_C + +#include "Servant_Impl_Base.h" +#include "ciao/Cookies.h" + +namespace CIAO +{ + template<typename T_var> + void + Servant_Impl_Base::describe_simplex_receptacle ( + const char *port_name, + const char *port_type_repo_id, + T_var &connection, + ::Components::ReceptacleDescriptions_var &descriptions, + CORBA::ULong slot + ) + { + ::Components::ReceptacleDescription *elem = 0; + ACE_NEW (elem, + ::OBV_Components::ReceptacleDescription); + ::Components::ReceptacleDescription_var safe_elem = elem; + + elem->name (port_name); + elem->type_id (port_type_repo_id); + elem->is_multiple (false); + elem->connections ().length (1UL); + elem->connections ()[0UL]->ck (0); + + // Valuetype 'set' call increments the reference count. + elem->connections ()[0UL]->objref (connection.in ()); + + descriptions[slot] = safe_elem._retn (); + } + + template<typename T_var> + void + Servant_Impl_Base::describe_multiplex_receptacle ( + const char *port_name, + const char *port_type_repo_id, + ACE_Active_Map_Manager<T_var> &objrefs, + ::Components::ReceptacleDescriptions_var &descriptions, + CORBA::ULong slot + ) + { + ::Components::ReceptacleDescription *elem = 0; + ACE_NEW (elem, + ::OBV_Components::ReceptacleDescription); + ::Components::ReceptacleDescription_var safe_elem = elem; + + elem->name (port_name); + elem->type_id (port_type_repo_id); + elem->is_multiple (true); + elem->connections ().length (objrefs.current_size ()); + + CORBA::ULong map_slot = 0UL; + + for (typename ACE_Active_Map_Manager<T_var>::CONST_ITERATOR iter ( + objrefs + ); + 0 == iter.done (); + iter.advance (), ++map_slot) + { + ::Components::Cookie *cookie_from_key = 0; + ACE_NEW (cookie_from_key, + ::CIAO::Map_Key_Cookie ((*iter).ext_id_)); + + // Both valuetype 'set' calls increment the reference count. + elem->connections ()[map_slot]->ck (cookie_from_key); + CORBA::remove_ref (cookie_from_key); + elem->connections ()[map_slot]->objref ((*iter).int_id_.in ()); + } + + descriptions[slot] = safe_elem._retn (); + } + + template<typename T_var> + void + Servant_Impl_Base::describe_pub_event_source ( + const char *port_name, + const char *port_type_repo_id, + ACE_Active_Map_Manager<T_var> &consumers, + ::Components::PublisherDescriptions_var &descriptions, + CORBA::ULong slot + ) + { + ::Components::PublisherDescription *elem = 0; + ACE_NEW (elem, + ::OBV_Components::PublisherDescription); + ::Components::PublisherDescription_var safe_elem = elem; + + elem->name (port_name); + elem->type_id (port_type_repo_id); + + CORBA::ULong map_slot = 0UL; + + for (typename ACE_Active_Map_Manager<T_var>::CONST_ITERATOR iter ( + consumers + ); + 0 == iter.done (); + iter.advance (), ++map_slot) + { + ::Components::Cookie *cookie_from_key = 0; + ACE_NEW (cookie_from_key, + ::CIAO::Map_Key_Cookie ((*iter).ext_id_)); + + // Both valuetype 'set' calls increment the reference count. + elem->consumer ()[map_slot]->ck (cookie_from_key); + CORBA::remove_ref (cookie_from_key); + elem->consumer ()[map_slot]->consumer ((*iter).int_id_.in ()); + } + + descriptions[slot] = safe_elem._retn (); + } + + template<typename T_var> + void + Servant_Impl_Base::describe_emit_event_source ( + const char *port_name, + const char *port_type_repo_id, + T_var &consumer_ref, + ::Components::EmitterDescriptions_var &descriptions, + CORBA::ULong slot + ) + { + ::Components::EmitterDescription *elem = 0; + ACE_NEW (elem, + ::OBV_Components::EmitterDescription); + ::Components::EmitterDescription_var safe_elem = elem; + + elem->name (port_name); + elem->type_id (port_type_repo_id); + + // Valuetype 'set' call increments the reference count. + elem->consumer (consumer_ref.in ()); + + descriptions[slot] = safe_elem._retn (); + } +} + +#endif /* CIAO_SERVANT_IMPL_T_C */ diff --git a/TAO/CIAO/ciaosvcs/Events/CIAO_Events_Base/CIAO_Events.idl b/TAO/CIAO/ciaosvcs/Events/CIAO_Events_Base/CIAO_Events.idl new file mode 100644 index 00000000000..bcfcca9ef93 --- /dev/null +++ b/TAO/CIAO/ciaosvcs/Events/CIAO_Events_Base/CIAO_Events.idl @@ -0,0 +1,69 @@ +// $Id$ + +/** + * @file CIAO_Events.idl + * + * @author George Edwards <g.edwards@vanderbilt.edu> + * @author Gan Deng <dengg@dre.vanderbilt.edu> + * + * @brief Interfaces for configuring CIAO's event mechanism. + */ + +#include "ciao/CCM_Event.idl" + +module CIAO +{ + /// A component's UUID + port name. + typedef string CONNECTION_ID; + + enum EventServiceType + { + DIRECT, + EC, + RTEC, + NOTIFY, + RTNOTIFY + }; + + interface Supplier_Config + { + attribute CONNECTION_ID supplier_id; + + readonly attribute EventServiceType service_type; + + void destroy (); + }; + + interface Consumer_Config : Supplier_Config + { + attribute CONNECTION_ID consumer_id; + attribute Components::EventConsumerBase consumer; + + void start_conjunction_group (in long size); + + void start_disjunction_group (in long size); + + void insert_source (in CONNECTION_ID source_id); + + void insert_type (in long event_type); + }; + + interface CIAO_Event_Service : Components::EventConsumerBase + { + Supplier_Config create_supplier_config (); + + Consumer_Config create_consumer_config (); + + void connect_event_supplier (in Supplier_Config supplier_conf); + + void connect_event_consumer (in Consumer_Config consumer_conf); + + void disconnect_event_supplier (in CONNECTION_ID conn_id) + raises (Components::InvalidConnection); + + void disconnect_event_consumer (in CONNECTION_ID conn_id) + raises (Components::InvalidConnection); + + //void push_event (in Components::EventBase ev); + }; +}; diff --git a/TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h b/TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h new file mode 100644 index 00000000000..0ba65234b21 --- /dev/null +++ b/TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h @@ -0,0 +1,332 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file CIAO_RTEvent.h + * + * $Id$ + * + * @author Gan Deng <dengg@dre.vanderbilt.edu> + * @author George Edwards <g.edwards@vanderbilt.edu> + */ +//============================================================================= + +#ifndef CIAO_RTEVENT_H +#define CIAO_RTEVENT_H +#include /**/ "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "CIAO_RTEVENT_Export.h" +#include "ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.h" +#include "CIAO_RTEventS.h" + +#include "orbsvcs/orbsvcs/Event_Utilities.h" +#include "orbsvcs/orbsvcs/Event/EC_Event_Channel.h" +#include "orbsvcs/orbsvcs/Event/EC_Default_Factory.h" +#include "ace/Hash_Map_Manager.h" + +namespace CIAO +{ + + /** + * @class RTEventService + * + * An implementation of EventServiceBase using the RT event channel. + * + * @@ (GD) There should be a place where the deployment tool could + * specify the RT Event Channel service configuration file. + * This should be the place where the RtecEventChannel servant was + * first time initialized. + */ + class CIAO_RTEVENT_Export RTEventService : + public virtual EventServiceBase + { + public: + + RTEventService (CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa); + + virtual ~RTEventService (void); + + virtual Supplier_Config_ptr + create_supplier_config (void) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual Consumer_Config_ptr + create_consumer_config (void) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void connect_event_supplier ( + CIAO::Supplier_Config_ptr supplier_config + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC (( + CORBA::SystemException)); + + virtual void connect_event_consumer ( + CIAO::Consumer_Config_ptr consumer_config + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC (( + CORBA::SystemException)); + + virtual void + disconnect_event_supplier ( + const char * consumer_id + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + CORBA::SystemException, + Components::InvalidConnection)); + + virtual void disconnect_event_consumer ( + const char * connection_id + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC (( + CORBA::SystemException, + Components::InvalidConnection)); + + virtual void push_event ( + Components::EventBase * ev + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC (( + CORBA::SystemException)); + + private: + // @@ (GD) This is the place where use could provide a parameter + // which specifies the event channel service configuration file. + void create_rt_event_channel ( + ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC (( + CORBA::SystemException)); + + private: + + /// Reference to the ORB + CORBA::ORB_var orb_; + + /// Reference to the Root POA + PortableServer::POA_var root_poa_; + + /** + * @var RtecEventChannelAdmin::EventChannel_var rt_event_channel_ + * + * Reference to the RT event channel. + */ + RtecEventChannelAdmin::EventChannel_var rt_event_channel_; + + /** + * @var RtecEventComm::EventType type_id_ + * + * The type of event. + */ + RtecEventComm::EventType type_id_; + + /** + * @var RtecEventComm::EventSourceID source_id_ + * @@@ Need to change this into a map, since multiple sources + * could be connected to the event channel. + * + * The supplier id. + */ + RtecEventComm::EventSourceID source_id_; + + /** + * @var RtecEventChannelAdmin::ProxyPushConsumer_var proxy_consumer_ + * + * The proxy consumer to which events are pushed. + */ + RtecEventChannelAdmin::ProxyPushConsumer_var proxy_consumer_; + + /** + * @var ACE_Hash_Map_Manager<> proxy_supplier_map_ + * + * Mapping of each event sink to a proxy supplier for disconnect purposes. + */ + ACE_Hash_Map_Manager_Ex<ACE_CString, + RtecEventChannelAdmin::ProxyPushSupplier_ptr, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> proxy_supplier_map_; + + }; + + /** + * @class RTEventServiceSupplier_impl + * + * An implementation of the PushSupplier interface. + */ + class RTEventServiceSupplier_impl : + public virtual POA_RtecEventComm::PushSupplier + { + public: + + RTEventServiceSupplier_impl ( + PortableServer::POA_ptr poa); + + virtual void disconnect_push_supplier ( + ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC (( + CORBA::SystemException)); + + private: + + PortableServer::POA_var poa_; + }; + + /** + * @class RTEventServiceConsumer_impl + * + * An implementation of the PushConsumer interface. + */ + class RTEventServiceConsumer_impl : + public virtual POA_RtecEventComm::PushConsumer + { + public: + + RTEventServiceConsumer_impl ( + PortableServer::POA_ptr poa, + Components::EventConsumerBase_ptr consumer); + + virtual void push ( + const RtecEventComm::EventSet& events) + ACE_THROW_SPEC (( + CORBA::SystemException)); + + virtual void disconnect_push_consumer ( + ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC (( + CORBA::SystemException)); + + private: + + PortableServer::POA_var poa_; + + Components::EventConsumerBase_var event_consumer_; + }; + + /** + * @class RTEvent_Consumer_Config_impl + * + * Implementation of the RTEvent_Consumer_Config IDL interface that + * configures TAO's RT event channel. An object of this type will be returned + * from @c CIAO::Container::create_consumer_config () when @c RTEC is + * specified as the event service type. + */ + class RTEvent_Consumer_Config_impl : + public virtual POA_CIAO::RTEvent_Consumer_Config, + public virtual Event_Consumer_Config_Base + { + + public: + RTEvent_Consumer_Config_impl (PortableServer::POA_ptr poa); + + virtual ~RTEvent_Consumer_Config_impl (void); + + virtual void start_conjunction_group (CORBA::Long size ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void start_disjunction_group (CORBA::Long size ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void insert_source (const char * source_id ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void insert_type (::CORBA::Long event_type + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((::CORBA::SystemException)); + + virtual void consumer_id (const char * consumer_id ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CONNECTION_ID consumer_id (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void supplier_id (const char * supplier_id ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CONNECTION_ID supplier_id (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void consumer (Components::EventConsumerBase_ptr consumer ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual Components::EventConsumerBase_ptr consumer (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual EventServiceType service_type (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + //@@ (GD) There should be a place where the deployment tool could + // set up the rt_event_qos properties for Consumer Config. + + virtual RtecEventChannelAdmin::ConsumerQOS * rt_event_qos (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + private: + + ACE_CString consumer_id_; + + ACE_CString supplier_id_; + + Components::EventConsumerBase_var consumer_; + + EventServiceType service_type_; + + ACE_ConsumerQOS_Factory qos_; + + PortableServer::POA_var poa_; + }; + + /** + * @class RTEvent_Supplier_Config_impl + * + * Implementation of the RTEvent_Supplier_Config IDL interface that + * configures TAO's RT event channel. An object of this type will be returned + * from @c CIAO::Container::create_supplier_config () when @c RTEC is + * specified as the event service type. + */ + class RTEvent_Supplier_Config_impl : + public virtual POA_CIAO::RTEvent_Supplier_Config + { + public: + RTEvent_Supplier_Config_impl (PortableServer::POA_ptr poa); + + virtual ~RTEvent_Supplier_Config_impl (void); + + void supplier_id (const char * supplier_id ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + CONNECTION_ID supplier_id (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + EventServiceType service_type (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + //@@ (GD) There should be a place where the deployment tool could + // set up the rt_event_qos properties for Supplier Config. + + RtecEventChannelAdmin::SupplierQOS * rt_event_qos (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + private: + ACE_CString supplier_id_; + + EventServiceType service_type_; + + ACE_SupplierQOS_Factory qos_; + + PortableServer::POA_var poa_; + }; +} + +#include /**/ "ace/post.h" +#endif /* CIAO_RTEVENT_H */ diff --git a/TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.idl b/TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.idl new file mode 100644 index 00000000000..b51d00ec07d --- /dev/null +++ b/TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.idl @@ -0,0 +1,38 @@ +// $Id$ + +/** + * @file CIAO_RTEvent.idl + * + * @author Gan Deng <dengg@dre.vanderbilt.edu> + * @author George Edwards + * + * @brief Interfaces for configuring CIAO's RT event channel. + */ + +#include <ciaosvcs/Events/CIAO_Events_Base/CIAO_Events.idl> +#include <orbsvcs/orbsvcs/RtecEventChannelAdmin.idl> + +module CIAO +{ + interface RTEvent_Consumer_Config : + Consumer_Config + { + //void start_logical_and_group (in long size); + + //void start_negation (); + + //void insert_bitmasked_value (in long source_mask, + // in long type_mask, + // in long source_value, + // in long type_value); + + readonly attribute RtecEventChannelAdmin::ConsumerQOS rt_event_qos; + }; + + interface RTEvent_Supplier_Config : + Supplier_Config + { + readonly attribute RtecEventChannelAdmin::SupplierQOS rt_event_qos; + }; + +}; diff --git a/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp new file mode 100644 index 00000000000..de7c731b954 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp @@ -0,0 +1,3015 @@ +/* $Id$ + * This code was generated by the XML Schema Compiler. + * + * Changes made to this code will most likely be overwritten + * when the handlers are recompiled. + * + * If you find errors or feel that there are bugfixes to be made, + * please contact the current XSC maintainer: + * Will Otte <wotte@dre.vanderbilt.edu> + */ + +#include "CIAOEvents.hpp" + +namespace CIAO +{ + namespace Config_Handlers + { + + // EventServiceType + // + + EventServiceType::Value EventServiceType:: + integral () const + { + return v_; + } + + bool + operator== (::CIAO::Config_Handlers::EventServiceType const& a, ::CIAO::Config_Handlers::EventServiceType const& b) + { + return a.v_ == b.v_; + } + + bool + operator!= (::CIAO::Config_Handlers::EventServiceType const& a, ::CIAO::Config_Handlers::EventServiceType const& b) + { + return a.v_ != b.v_; + } + + EventServiceType:: + EventServiceType (EventServiceType::Value v) + : v_ (v) + { + } + + // CIAOEventsDef + // + + CIAOEventsDef:: + CIAOEventsDef () + : + ::XSCRT::Type (), + regulator__ () + { + } + + CIAOEventsDef:: + CIAOEventsDef (::CIAO::Config_Handlers::CIAOEventsDef const& s) + : + ::XSCRT::Type (), + id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0), + regulator__ () + { + { + for (eventServiceConfiguration_const_iterator i (s.eventServiceConfiguration_.begin ());i != s.eventServiceConfiguration_.end ();++i) add_eventServiceConfiguration (*i); + } + + if (id_.get ()) id_->container (this); + } + + ::CIAO::Config_Handlers::CIAOEventsDef& CIAOEventsDef:: + operator= (::CIAO::Config_Handlers::CIAOEventsDef const& s) + { + eventServiceConfiguration_.clear (); + { + for (eventServiceConfiguration_const_iterator i (s.eventServiceConfiguration_.begin ());i != s.eventServiceConfiguration_.end ();++i) add_eventServiceConfiguration (*i); + } + + if (s.id_.get ()) id (*(s.id_)); + else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0); + + return *this; + } + + + // CIAOEventsDef + // + CIAOEventsDef::eventServiceConfiguration_iterator CIAOEventsDef:: + begin_eventServiceConfiguration () + { + return eventServiceConfiguration_.begin (); + } + + CIAOEventsDef::eventServiceConfiguration_iterator CIAOEventsDef:: + end_eventServiceConfiguration () + { + return eventServiceConfiguration_.end (); + } + + CIAOEventsDef::eventServiceConfiguration_const_iterator CIAOEventsDef:: + begin_eventServiceConfiguration () const + { + return eventServiceConfiguration_.begin (); + } + + CIAOEventsDef::eventServiceConfiguration_const_iterator CIAOEventsDef:: + end_eventServiceConfiguration () const + { + return eventServiceConfiguration_.end (); + } + + void CIAOEventsDef:: + add_eventServiceConfiguration (::CIAO::Config_Handlers::EventServiceDescription const& e) + { + eventServiceConfiguration_.push_back (e); + } + + size_t CIAOEventsDef:: + count_eventServiceConfiguration(void) const + { + return eventServiceConfiguration_.size (); + } + + // CIAOEventsDef + // + bool CIAOEventsDef:: + id_p () const + { + return id_.get () != 0; + } + + ::XMLSchema::ID< ACE_TCHAR > const& CIAOEventsDef:: + id () const + { + return *id_; + } + + ::XMLSchema::ID< ACE_TCHAR >& CIAOEventsDef:: + id () + { + return *id_; + } + + void CIAOEventsDef:: + id (::XMLSchema::ID< ACE_TCHAR > const& e) + { + if (id_.get ()) + { + *id_ = e; + } + + else + { + id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e)); + id_->container (this); + } + } + + + // EventServiceDescription + // + + EventServiceDescription:: + EventServiceDescription (::XMLSchema::string< ACE_TCHAR > const& name__, + ::XMLSchema::string< ACE_TCHAR > const& node__, + ::CIAO::Config_Handlers::EventServiceType const& type__, + ::XMLSchema::string< ACE_TCHAR > const& svc_cfg_file__) + : + ::XSCRT::Type (), + name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)), + node_ (new ::XMLSchema::string< ACE_TCHAR > (node__)), + type_ (new ::CIAO::Config_Handlers::EventServiceType (type__)), + svc_cfg_file_ (new ::XMLSchema::string< ACE_TCHAR > (svc_cfg_file__)), + regulator__ () + { + name_->container (this); + node_->container (this); + type_->container (this); + svc_cfg_file_->container (this); + } + + EventServiceDescription:: + EventServiceDescription (::CIAO::Config_Handlers::EventServiceDescription const& s) + : + ::XSCRT::Type (), + name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)), + node_ (new ::XMLSchema::string< ACE_TCHAR > (*s.node_)), + type_ (new ::CIAO::Config_Handlers::EventServiceType (*s.type_)), + svc_cfg_file_ (new ::XMLSchema::string< ACE_TCHAR > (*s.svc_cfg_file_)), + id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0), + regulator__ () + { + name_->container (this); + node_->container (this); + type_->container (this); + svc_cfg_file_->container (this); + { + for (filter_const_iterator i (s.filter_.begin ());i != s.filter_.end ();++i) add_filter (*i); + } + + if (id_.get ()) id_->container (this); + } + + ::CIAO::Config_Handlers::EventServiceDescription& EventServiceDescription:: + operator= (::CIAO::Config_Handlers::EventServiceDescription const& s) + { + name (s.name ()); + + node (s.node ()); + + type (s.type ()); + + svc_cfg_file (s.svc_cfg_file ()); + + filter_.clear (); + { + for (filter_const_iterator i (s.filter_.begin ());i != s.filter_.end ();++i) add_filter (*i); + } + + if (s.id_.get ()) id (*(s.id_)); + else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0); + + return *this; + } + + + // EventServiceDescription + // + ::XMLSchema::string< ACE_TCHAR > const& EventServiceDescription:: + name () const + { + return *name_; + } + + void EventServiceDescription:: + name (::XMLSchema::string< ACE_TCHAR > const& e) + { + *name_ = e; + } + + // EventServiceDescription + // + ::XMLSchema::string< ACE_TCHAR > const& EventServiceDescription:: + node () const + { + return *node_; + } + + void EventServiceDescription:: + node (::XMLSchema::string< ACE_TCHAR > const& e) + { + *node_ = e; + } + + // EventServiceDescription + // + ::CIAO::Config_Handlers::EventServiceType const& EventServiceDescription:: + type () const + { + return *type_; + } + + void EventServiceDescription:: + type (::CIAO::Config_Handlers::EventServiceType const& e) + { + *type_ = e; + } + + // EventServiceDescription + // + ::XMLSchema::string< ACE_TCHAR > const& EventServiceDescription:: + svc_cfg_file () const + { + return *svc_cfg_file_; + } + + void EventServiceDescription:: + svc_cfg_file (::XMLSchema::string< ACE_TCHAR > const& e) + { + *svc_cfg_file_ = e; + } + + // EventServiceDescription + // + EventServiceDescription::filter_iterator EventServiceDescription:: + begin_filter () + { + return filter_.begin (); + } + + EventServiceDescription::filter_iterator EventServiceDescription:: + end_filter () + { + return filter_.end (); + } + + EventServiceDescription::filter_const_iterator EventServiceDescription:: + begin_filter () const + { + return filter_.begin (); + } + + EventServiceDescription::filter_const_iterator EventServiceDescription:: + end_filter () const + { + return filter_.end (); + } + + void EventServiceDescription:: + add_filter (::CIAO::Config_Handlers::Filter const& e) + { + filter_.push_back (e); + } + + size_t EventServiceDescription:: + count_filter(void) const + { + return filter_.size (); + } + + // EventServiceDescription + // + bool EventServiceDescription:: + id_p () const + { + return id_.get () != 0; + } + + ::XMLSchema::ID< ACE_TCHAR > const& EventServiceDescription:: + id () const + { + return *id_; + } + + ::XMLSchema::ID< ACE_TCHAR >& EventServiceDescription:: + id () + { + return *id_; + } + + void EventServiceDescription:: + id (::XMLSchema::ID< ACE_TCHAR > const& e) + { + if (id_.get ()) + { + *id_ = e; + } + + else + { + id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e)); + id_->container (this); + } + } + + + // FilterType + // + + FilterType::Value FilterType:: + integral () const + { + return v_; + } + + bool + operator== (::CIAO::Config_Handlers::FilterType const& a, ::CIAO::Config_Handlers::FilterType const& b) + { + return a.v_ == b.v_; + } + + bool + operator!= (::CIAO::Config_Handlers::FilterType const& a, ::CIAO::Config_Handlers::FilterType const& b) + { + return a.v_ != b.v_; + } + + FilterType:: + FilterType (FilterType::Value v) + : v_ (v) + { + } + + // Filter + // + + Filter:: + Filter (::XMLSchema::string< ACE_TCHAR > const& name__, + ::CIAO::Config_Handlers::FilterType const& type__) + : + ::XSCRT::Type (), + name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)), + type_ (new ::CIAO::Config_Handlers::FilterType (type__)), + regulator__ () + { + name_->container (this); + type_->container (this); + } + + Filter:: + Filter (::CIAO::Config_Handlers::Filter const& s) + : + ::XSCRT::Type (), + name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)), + type_ (new ::CIAO::Config_Handlers::FilterType (*s.type_)), + id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0), + regulator__ () + { + name_->container (this); + type_->container (this); + { + for (source_const_iterator i (s.source_.begin ());i != s.source_.end ();++i) add_source (*i); + } + + if (id_.get ()) id_->container (this); + } + + ::CIAO::Config_Handlers::Filter& Filter:: + operator= (::CIAO::Config_Handlers::Filter const& s) + { + name (s.name ()); + + type (s.type ()); + + source_.clear (); + { + for (source_const_iterator i (s.source_.begin ());i != s.source_.end ();++i) add_source (*i); + } + + if (s.id_.get ()) id (*(s.id_)); + else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0); + + return *this; + } + + + // Filter + // + ::XMLSchema::string< ACE_TCHAR > const& Filter:: + name () const + { + return *name_; + } + + void Filter:: + name (::XMLSchema::string< ACE_TCHAR > const& e) + { + *name_ = e; + } + + // Filter + // + ::CIAO::Config_Handlers::FilterType const& Filter:: + type () const + { + return *type_; + } + + void Filter:: + type (::CIAO::Config_Handlers::FilterType const& e) + { + *type_ = e; + } + + // Filter + // + Filter::source_iterator Filter:: + begin_source () + { + return source_.begin (); + } + + Filter::source_iterator Filter:: + end_source () + { + return source_.end (); + } + + Filter::source_const_iterator Filter:: + begin_source () const + { + return source_.begin (); + } + + Filter::source_const_iterator Filter:: + end_source () const + { + return source_.end (); + } + + void Filter:: + add_source (::XMLSchema::string< ACE_TCHAR > const& e) + { + source_.push_back (e); + } + + size_t Filter:: + count_source(void) const + { + return source_.size (); + } + + // Filter + // + bool Filter:: + id_p () const + { + return id_.get () != 0; + } + + ::XMLSchema::ID< ACE_TCHAR > const& Filter:: + id () const + { + return *id_; + } + + ::XMLSchema::ID< ACE_TCHAR >& Filter:: + id () + { + return *id_; + } + + void Filter:: + id (::XMLSchema::ID< ACE_TCHAR > const& e) + { + if (id_.get ()) + { + *id_ = e; + } + + else + { + id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e)); + id_->container (this); + } + } + + + // MCastSenderDescription + // + + MCastSenderDescription:: + MCastSenderDescription (::XMLSchema::string< ACE_TCHAR > const& node__, + ::CIAO::Config_Handlers::EventServiceType const& type__, + ::XMLSchema::string< ACE_TCHAR > const& svc_cfg_file__) + : + ::XSCRT::Type (), + node_ (new ::XMLSchema::string< ACE_TCHAR > (node__)), + type_ (new ::CIAO::Config_Handlers::EventServiceType (type__)), + svc_cfg_file_ (new ::XMLSchema::string< ACE_TCHAR > (svc_cfg_file__)), + regulator__ () + { + node_->container (this); + type_->container (this); + svc_cfg_file_->container (this); + } + + MCastSenderDescription:: + MCastSenderDescription (::CIAO::Config_Handlers::MCastSenderDescription const& s) + : + ::XSCRT::Type (), + node_ (new ::XMLSchema::string< ACE_TCHAR > (*s.node_)), + type_ (new ::CIAO::Config_Handlers::EventServiceType (*s.type_)), + svc_cfg_file_ (new ::XMLSchema::string< ACE_TCHAR > (*s.svc_cfg_file_)), + id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0), + regulator__ () + { + node_->container (this); + type_->container (this); + svc_cfg_file_->container (this); + if (id_.get ()) id_->container (this); + } + + ::CIAO::Config_Handlers::MCastSenderDescription& MCastSenderDescription:: + operator= (::CIAO::Config_Handlers::MCastSenderDescription const& s) + { + node (s.node ()); + + type (s.type ()); + + svc_cfg_file (s.svc_cfg_file ()); + + if (s.id_.get ()) id (*(s.id_)); + else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0); + + return *this; + } + + + // MCastSenderDescription + // + ::XMLSchema::string< ACE_TCHAR > const& MCastSenderDescription:: + node () const + { + return *node_; + } + + void MCastSenderDescription:: + node (::XMLSchema::string< ACE_TCHAR > const& e) + { + *node_ = e; + } + + // MCastSenderDescription + // + ::CIAO::Config_Handlers::EventServiceType const& MCastSenderDescription:: + type () const + { + return *type_; + } + + void MCastSenderDescription:: + type (::CIAO::Config_Handlers::EventServiceType const& e) + { + *type_ = e; + } + + // MCastSenderDescription + // + ::XMLSchema::string< ACE_TCHAR > const& MCastSenderDescription:: + svc_cfg_file () const + { + return *svc_cfg_file_; + } + + void MCastSenderDescription:: + svc_cfg_file (::XMLSchema::string< ACE_TCHAR > const& e) + { + *svc_cfg_file_ = e; + } + + // MCastSenderDescription + // + bool MCastSenderDescription:: + id_p () const + { + return id_.get () != 0; + } + + ::XMLSchema::ID< ACE_TCHAR > const& MCastSenderDescription:: + id () const + { + return *id_; + } + + ::XMLSchema::ID< ACE_TCHAR >& MCastSenderDescription:: + id () + { + return *id_; + } + + void MCastSenderDescription:: + id (::XMLSchema::ID< ACE_TCHAR > const& e) + { + if (id_.get ()) + { + *id_ = e; + } + + else + { + id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e)); + id_->container (this); + } + } + + + // MCastReceiverDescription + // + + MCastReceiverDescription:: + MCastReceiverDescription (::XMLSchema::string< ACE_TCHAR > const& node__, + ::CIAO::Config_Handlers::EventServiceType const& type__, + ::XMLSchema::string< ACE_TCHAR > const& svc_cfg_file__) + : + ::XSCRT::Type (), + node_ (new ::XMLSchema::string< ACE_TCHAR > (node__)), + type_ (new ::CIAO::Config_Handlers::EventServiceType (type__)), + svc_cfg_file_ (new ::XMLSchema::string< ACE_TCHAR > (svc_cfg_file__)), + regulator__ () + { + node_->container (this); + type_->container (this); + svc_cfg_file_->container (this); + } + + MCastReceiverDescription:: + MCastReceiverDescription (::CIAO::Config_Handlers::MCastReceiverDescription const& s) + : + ::XSCRT::Type (), + node_ (new ::XMLSchema::string< ACE_TCHAR > (*s.node_)), + type_ (new ::CIAO::Config_Handlers::EventServiceType (*s.type_)), + svc_cfg_file_ (new ::XMLSchema::string< ACE_TCHAR > (*s.svc_cfg_file_)), + id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0), + regulator__ () + { + node_->container (this); + type_->container (this); + svc_cfg_file_->container (this); + if (id_.get ()) id_->container (this); + } + + ::CIAO::Config_Handlers::MCastReceiverDescription& MCastReceiverDescription:: + operator= (::CIAO::Config_Handlers::MCastReceiverDescription const& s) + { + node (s.node ()); + + type (s.type ()); + + svc_cfg_file (s.svc_cfg_file ()); + + if (s.id_.get ()) id (*(s.id_)); + else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0); + + return *this; + } + + + // MCastReceiverDescription + // + ::XMLSchema::string< ACE_TCHAR > const& MCastReceiverDescription:: + node () const + { + return *node_; + } + + void MCastReceiverDescription:: + node (::XMLSchema::string< ACE_TCHAR > const& e) + { + *node_ = e; + } + + // MCastReceiverDescription + // + ::CIAO::Config_Handlers::EventServiceType const& MCastReceiverDescription:: + type () const + { + return *type_; + } + + void MCastReceiverDescription:: + type (::CIAO::Config_Handlers::EventServiceType const& e) + { + *type_ = e; + } + + // MCastReceiverDescription + // + ::XMLSchema::string< ACE_TCHAR > const& MCastReceiverDescription:: + svc_cfg_file () const + { + return *svc_cfg_file_; + } + + void MCastReceiverDescription:: + svc_cfg_file (::XMLSchema::string< ACE_TCHAR > const& e) + { + *svc_cfg_file_ = e; + } + + // MCastReceiverDescription + // + bool MCastReceiverDescription:: + id_p () const + { + return id_.get () != 0; + } + + ::XMLSchema::ID< ACE_TCHAR > const& MCastReceiverDescription:: + id () const + { + return *id_; + } + + ::XMLSchema::ID< ACE_TCHAR >& MCastReceiverDescription:: + id () + { + return *id_; + } + + void MCastReceiverDescription:: + id (::XMLSchema::ID< ACE_TCHAR > const& e) + { + if (id_.get ()) + { + *id_ = e; + } + + else + { + id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e)); + id_->container (this); + } + } + + + // EC_to_MCastSender + // + + EC_to_MCastSender:: + EC_to_MCastSender (::XMLSchema::string< ACE_TCHAR > const& destination__) + : + ::XSCRT::Type (), + destination_ (new ::XMLSchema::string< ACE_TCHAR > (destination__)), + regulator__ () + { + destination_->container (this); + } + + EC_to_MCastSender:: + EC_to_MCastSender (::CIAO::Config_Handlers::EC_to_MCastSender const& s) + : + ::XSCRT::Type (), + destination_ (new ::XMLSchema::string< ACE_TCHAR > (*s.destination_)), + id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0), + regulator__ () + { + destination_->container (this); + if (id_.get ()) id_->container (this); + } + + ::CIAO::Config_Handlers::EC_to_MCastSender& EC_to_MCastSender:: + operator= (::CIAO::Config_Handlers::EC_to_MCastSender const& s) + { + destination (s.destination ()); + + if (s.id_.get ()) id (*(s.id_)); + else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0); + + return *this; + } + + + // EC_to_MCastSender + // + ::XMLSchema::string< ACE_TCHAR > const& EC_to_MCastSender:: + destination () const + { + return *destination_; + } + + void EC_to_MCastSender:: + destination (::XMLSchema::string< ACE_TCHAR > const& e) + { + *destination_ = e; + } + + // EC_to_MCastSender + // + bool EC_to_MCastSender:: + id_p () const + { + return id_.get () != 0; + } + + ::XMLSchema::ID< ACE_TCHAR > const& EC_to_MCastSender:: + id () const + { + return *id_; + } + + ::XMLSchema::ID< ACE_TCHAR >& EC_to_MCastSender:: + id () + { + return *id_; + } + + void EC_to_MCastSender:: + id (::XMLSchema::ID< ACE_TCHAR > const& e) + { + if (id_.get ()) + { + *id_ = e; + } + + else + { + id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e)); + id_->container (this); + } + } + + + // MCastReceiver_to_EC + // + + MCastReceiver_to_EC:: + MCastReceiver_to_EC (::XMLSchema::string< ACE_TCHAR > const& source__, + ::XMLSchema::string< ACE_TCHAR > const& destination__) + : + ::XSCRT::Type (), + source_ (new ::XMLSchema::string< ACE_TCHAR > (source__)), + destination_ (new ::XMLSchema::string< ACE_TCHAR > (destination__)), + regulator__ () + { + source_->container (this); + destination_->container (this); + } + + MCastReceiver_to_EC:: + MCastReceiver_to_EC (::CIAO::Config_Handlers::MCastReceiver_to_EC const& s) + : + ::XSCRT::Type (), + source_ (new ::XMLSchema::string< ACE_TCHAR > (*s.source_)), + destination_ (new ::XMLSchema::string< ACE_TCHAR > (*s.destination_)), + id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0), + regulator__ () + { + source_->container (this); + destination_->container (this); + if (id_.get ()) id_->container (this); + } + + ::CIAO::Config_Handlers::MCastReceiver_to_EC& MCastReceiver_to_EC:: + operator= (::CIAO::Config_Handlers::MCastReceiver_to_EC const& s) + { + source (s.source ()); + + destination (s.destination ()); + + if (s.id_.get ()) id (*(s.id_)); + else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0); + + return *this; + } + + + // MCastReceiver_to_EC + // + ::XMLSchema::string< ACE_TCHAR > const& MCastReceiver_to_EC:: + source () const + { + return *source_; + } + + void MCastReceiver_to_EC:: + source (::XMLSchema::string< ACE_TCHAR > const& e) + { + *source_ = e; + } + + // MCastReceiver_to_EC + // + ::XMLSchema::string< ACE_TCHAR > const& MCastReceiver_to_EC:: + destination () const + { + return *destination_; + } + + void MCastReceiver_to_EC:: + destination (::XMLSchema::string< ACE_TCHAR > const& e) + { + *destination_ = e; + } + + // MCastReceiver_to_EC + // + bool MCastReceiver_to_EC:: + id_p () const + { + return id_.get () != 0; + } + + ::XMLSchema::ID< ACE_TCHAR > const& MCastReceiver_to_EC:: + id () const + { + return *id_; + } + + ::XMLSchema::ID< ACE_TCHAR >& MCastReceiver_to_EC:: + id () + { + return *id_; + } + + void MCastReceiver_to_EC:: + id (::XMLSchema::ID< ACE_TCHAR > const& e) + { + if (id_.get ()) + { + *id_ = e; + } + + else + { + id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e)); + id_->container (this); + } + } + } + +} + +namespace CIAO +{ + namespace Config_Handlers + { + + // EventServiceType + // + + EventServiceType:: + EventServiceType (::XSCRT::XML::Element< ACE_TCHAR > const& e) + : ::XSCRT::Type (e) + { + ::std::basic_string< ACE_TCHAR > v (e.value ()); + + if (v == "EC") v_ = EC_l; + else if (v == "RTEC") v_ = RTEC_l; + else if (v == "NOTIFY") v_ = NOTIFY_l; + else if (v == "RTNOTIFY") v_ = RTNOTIFY_l; + else + { + } + } + + EventServiceType:: + EventServiceType (::XSCRT::XML::Attribute< ACE_TCHAR > const& a) + : ::XSCRT::Type (a) + { + ::std::basic_string< ACE_TCHAR > v (a.value ()); + + if (v == "EC") v_ = EC_l; + else if (v == "RTEC") v_ = RTEC_l; + else if (v == "NOTIFY") v_ = NOTIFY_l; + else if (v == "RTNOTIFY") v_ = RTNOTIFY_l; + else + { + } + } + + EventServiceType const EventServiceType::EC (EventServiceType::EC_l); + EventServiceType const EventServiceType::RTEC (EventServiceType::RTEC_l); + EventServiceType const EventServiceType::NOTIFY (EventServiceType::NOTIFY_l); + EventServiceType const EventServiceType::RTNOTIFY (EventServiceType::RTNOTIFY_l); + + // CIAOEventsDef + // + + CIAOEventsDef:: + CIAOEventsDef (::XSCRT::XML::Element< ACE_TCHAR > const& e) + :Base__ (e), regulator__ () + { + + ::XSCRT::Parser< ACE_TCHAR > p (e); + + while (p.more_elements ()) + { + ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ())); + + if (n == "eventServiceConfiguration") + { + ::CIAO::Config_Handlers::EventServiceDescription t (e); + add_eventServiceConfiguration (t); + } + + else + { + } + } + + while (p.more_attributes ()) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ())); + if (n == "id") + { + ::XMLSchema::ID< ACE_TCHAR > t (a); + id (t); + } + + else + { + } + } + } + + // EventServiceDescription + // + + EventServiceDescription:: + EventServiceDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e) + :Base__ (e), regulator__ () + { + + ::XSCRT::Parser< ACE_TCHAR > p (e); + + while (p.more_elements ()) + { + ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ())); + + if (n == "name") + { + name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + name_->container (this); + } + + else if (n == "node") + { + node_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + node_->container (this); + } + + else if (n == "type") + { + type_ = ::std::auto_ptr< ::CIAO::Config_Handlers::EventServiceType > (new ::CIAO::Config_Handlers::EventServiceType (e)); + type_->container (this); + } + + else if (n == "svc_cfg_file") + { + svc_cfg_file_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + svc_cfg_file_->container (this); + } + + else if (n == "filter") + { + ::CIAO::Config_Handlers::Filter t (e); + add_filter (t); + } + + else + { + } + } + + while (p.more_attributes ()) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ())); + if (n == "id") + { + ::XMLSchema::ID< ACE_TCHAR > t (a); + id (t); + } + + else + { + } + } + } + + // FilterType + // + + FilterType:: + FilterType (::XSCRT::XML::Element< ACE_TCHAR > const& e) + : ::XSCRT::Type (e) + { + ::std::basic_string< ACE_TCHAR > v (e.value ()); + + if (v == "CONJUNCTION") v_ = CONJUNCTION_l; + else if (v == "DISJUNCTION") v_ = DISJUNCTION_l; + else if (v == "LOGICAL_AND") v_ = LOGICAL_AND_l; + else if (v == "NEGATE") v_ = NEGATE_l; + else + { + } + } + + FilterType:: + FilterType (::XSCRT::XML::Attribute< ACE_TCHAR > const& a) + : ::XSCRT::Type (a) + { + ::std::basic_string< ACE_TCHAR > v (a.value ()); + + if (v == "CONJUNCTION") v_ = CONJUNCTION_l; + else if (v == "DISJUNCTION") v_ = DISJUNCTION_l; + else if (v == "LOGICAL_AND") v_ = LOGICAL_AND_l; + else if (v == "NEGATE") v_ = NEGATE_l; + else + { + } + } + + FilterType const FilterType::CONJUNCTION (FilterType::CONJUNCTION_l); + FilterType const FilterType::DISJUNCTION (FilterType::DISJUNCTION_l); + FilterType const FilterType::LOGICAL_AND (FilterType::LOGICAL_AND_l); + FilterType const FilterType::NEGATE (FilterType::NEGATE_l); + + // Filter + // + + Filter:: + Filter (::XSCRT::XML::Element< ACE_TCHAR > const& e) + :Base__ (e), regulator__ () + { + + ::XSCRT::Parser< ACE_TCHAR > p (e); + + while (p.more_elements ()) + { + ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ())); + + if (n == "name") + { + name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + name_->container (this); + } + + else if (n == "type") + { + type_ = ::std::auto_ptr< ::CIAO::Config_Handlers::FilterType > (new ::CIAO::Config_Handlers::FilterType (e)); + type_->container (this); + } + + else if (n == "source") + { + ::XMLSchema::string< ACE_TCHAR > t (e); + add_source (t); + } + + else + { + } + } + + while (p.more_attributes ()) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ())); + if (n == "id") + { + ::XMLSchema::ID< ACE_TCHAR > t (a); + id (t); + } + + else + { + } + } + } + + // MCastSenderDescription + // + + MCastSenderDescription:: + MCastSenderDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e) + :Base__ (e), regulator__ () + { + + ::XSCRT::Parser< ACE_TCHAR > p (e); + + while (p.more_elements ()) + { + ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ())); + + if (n == "node") + { + node_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + node_->container (this); + } + + else if (n == "type") + { + type_ = ::std::auto_ptr< ::CIAO::Config_Handlers::EventServiceType > (new ::CIAO::Config_Handlers::EventServiceType (e)); + type_->container (this); + } + + else if (n == "svc_cfg_file") + { + svc_cfg_file_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + svc_cfg_file_->container (this); + } + + else + { + } + } + + while (p.more_attributes ()) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ())); + if (n == "id") + { + ::XMLSchema::ID< ACE_TCHAR > t (a); + id (t); + } + + else + { + } + } + } + + // MCastReceiverDescription + // + + MCastReceiverDescription:: + MCastReceiverDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e) + :Base__ (e), regulator__ () + { + + ::XSCRT::Parser< ACE_TCHAR > p (e); + + while (p.more_elements ()) + { + ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ())); + + if (n == "node") + { + node_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + node_->container (this); + } + + else if (n == "type") + { + type_ = ::std::auto_ptr< ::CIAO::Config_Handlers::EventServiceType > (new ::CIAO::Config_Handlers::EventServiceType (e)); + type_->container (this); + } + + else if (n == "svc_cfg_file") + { + svc_cfg_file_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + svc_cfg_file_->container (this); + } + + else + { + } + } + + while (p.more_attributes ()) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ())); + if (n == "id") + { + ::XMLSchema::ID< ACE_TCHAR > t (a); + id (t); + } + + else + { + } + } + } + + // EC_to_MCastSender + // + + EC_to_MCastSender:: + EC_to_MCastSender (::XSCRT::XML::Element< ACE_TCHAR > const& e) + :Base__ (e), regulator__ () + { + + ::XSCRT::Parser< ACE_TCHAR > p (e); + + while (p.more_elements ()) + { + ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ())); + + if (n == "destination") + { + destination_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + destination_->container (this); + } + + else + { + } + } + + while (p.more_attributes ()) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ())); + if (n == "id") + { + ::XMLSchema::ID< ACE_TCHAR > t (a); + id (t); + } + + else + { + } + } + } + + // MCastReceiver_to_EC + // + + MCastReceiver_to_EC:: + MCastReceiver_to_EC (::XSCRT::XML::Element< ACE_TCHAR > const& e) + :Base__ (e), regulator__ () + { + + ::XSCRT::Parser< ACE_TCHAR > p (e); + + while (p.more_elements ()) + { + ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ())); + + if (n == "source") + { + source_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + source_->container (this); + } + + else if (n == "destination") + { + destination_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e)); + destination_->container (this); + } + + else + { + } + } + + while (p.more_attributes ()) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ()); + ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ())); + if (n == "id") + { + ::XMLSchema::ID< ACE_TCHAR > t (a); + id (t); + } + + else + { + } + } + } + } + +} + +namespace CIAO +{ + namespace Config_Handlers + { + + ::CIAO::Config_Handlers::CIAOEventsDef + CIAOEvents (xercesc::DOMDocument const* d) + { + ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ()); + if (e.name () == "CIAOEvents") + { + ::CIAO::Config_Handlers::CIAOEventsDef r (e); + return r; + } + + else + { + throw 1; + } + } + } + +} + +#include "XMLSchema/TypeInfo.hpp" + +namespace CIAO +{ + namespace Config_Handlers + { + + namespace + { + ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ()); + + struct EventServiceTypeTypeInfoInitializer + { + EventServiceTypeTypeInfoInitializer () + { + ::XSCRT::TypeId id (typeid (EventServiceType)); + ::XSCRT::ExtendedTypeInfo nf (id); + + nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type)); + + ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf)); + } + }; + + EventServiceTypeTypeInfoInitializer EventServiceTypeTypeInfoInitializer_; + + struct CIAOEventsDefTypeInfoInitializer + { + CIAOEventsDefTypeInfoInitializer () + { + ::XSCRT::TypeId id (typeid (CIAOEventsDef)); + ::XSCRT::ExtendedTypeInfo nf (id); + + nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type)); + ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf)); + } + }; + + CIAOEventsDefTypeInfoInitializer CIAOEventsDefTypeInfoInitializer_; + + struct EventServiceDescriptionTypeInfoInitializer + { + EventServiceDescriptionTypeInfoInitializer () + { + ::XSCRT::TypeId id (typeid (EventServiceDescription)); + ::XSCRT::ExtendedTypeInfo nf (id); + + nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type)); + ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf)); + } + }; + + EventServiceDescriptionTypeInfoInitializer EventServiceDescriptionTypeInfoInitializer_; + + struct FilterTypeTypeInfoInitializer + { + FilterTypeTypeInfoInitializer () + { + ::XSCRT::TypeId id (typeid (FilterType)); + ::XSCRT::ExtendedTypeInfo nf (id); + + nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type)); + + ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf)); + } + }; + + FilterTypeTypeInfoInitializer FilterTypeTypeInfoInitializer_; + + struct FilterTypeInfoInitializer + { + FilterTypeInfoInitializer () + { + ::XSCRT::TypeId id (typeid (Filter)); + ::XSCRT::ExtendedTypeInfo nf (id); + + nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type)); + ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf)); + } + }; + + FilterTypeInfoInitializer FilterTypeInfoInitializer_; + + struct MCastSenderDescriptionTypeInfoInitializer + { + MCastSenderDescriptionTypeInfoInitializer () + { + ::XSCRT::TypeId id (typeid (MCastSenderDescription)); + ::XSCRT::ExtendedTypeInfo nf (id); + + nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type)); + ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf)); + } + }; + + MCastSenderDescriptionTypeInfoInitializer MCastSenderDescriptionTypeInfoInitializer_; + + struct MCastReceiverDescriptionTypeInfoInitializer + { + MCastReceiverDescriptionTypeInfoInitializer () + { + ::XSCRT::TypeId id (typeid (MCastReceiverDescription)); + ::XSCRT::ExtendedTypeInfo nf (id); + + nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type)); + ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf)); + } + }; + + MCastReceiverDescriptionTypeInfoInitializer MCastReceiverDescriptionTypeInfoInitializer_; + + struct EC_to_MCastSenderTypeInfoInitializer + { + EC_to_MCastSenderTypeInfoInitializer () + { + ::XSCRT::TypeId id (typeid (EC_to_MCastSender)); + ::XSCRT::ExtendedTypeInfo nf (id); + + nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type)); + ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf)); + } + }; + + EC_to_MCastSenderTypeInfoInitializer EC_to_MCastSenderTypeInfoInitializer_; + + struct MCastReceiver_to_ECTypeInfoInitializer + { + MCastReceiver_to_ECTypeInfoInitializer () + { + ::XSCRT::TypeId id (typeid (MCastReceiver_to_EC)); + ::XSCRT::ExtendedTypeInfo nf (id); + + nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type)); + ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf)); + } + }; + + MCastReceiver_to_ECTypeInfoInitializer MCastReceiver_to_ECTypeInfoInitializer_; + } + } + +} + +namespace CIAO +{ + namespace Config_Handlers + { + + namespace Traversal + { + // CIAOEventsDef + // + // + + void CIAOEventsDef:: + traverse (Type& o) + { + pre (o); + eventServiceConfiguration (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void CIAOEventsDef:: + traverse (Type const& o) + { + pre (o); + eventServiceConfiguration (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void CIAOEventsDef:: + pre (Type&) + { + } + + void CIAOEventsDef:: + pre (Type const&) + { + } + + void CIAOEventsDef:: + eventServiceConfiguration (Type& o) + { + // VC6 anathema strikes again + // + CIAOEventsDef::Type::eventServiceConfiguration_iterator b (o.begin_eventServiceConfiguration()), e (o.end_eventServiceConfiguration()); + + if (b != e) + { + eventServiceConfiguration_pre (o); + for (; b != e;) + { + dispatch (*b); + if (++b != e) eventServiceConfiguration_next (o); + } + + eventServiceConfiguration_post (o); + } + } + + void CIAOEventsDef:: + eventServiceConfiguration (Type const& o) + { + // VC6 anathema strikes again + // + CIAOEventsDef::Type::eventServiceConfiguration_const_iterator b (o.begin_eventServiceConfiguration()), e (o.end_eventServiceConfiguration()); + + if (b != e) + { + eventServiceConfiguration_pre (o); + for (; b != e;) + { + dispatch (*b); + if (++b != e) eventServiceConfiguration_next (o); + } + + eventServiceConfiguration_post (o); + } + } + + void CIAOEventsDef:: + eventServiceConfiguration_pre (Type&) + { + } + + void CIAOEventsDef:: + eventServiceConfiguration_pre (Type const&) + { + } + + void CIAOEventsDef:: + eventServiceConfiguration_next (Type&) + { + } + + void CIAOEventsDef:: + eventServiceConfiguration_next (Type const&) + { + } + + void CIAOEventsDef:: + eventServiceConfiguration_post (Type&) + { + } + + void CIAOEventsDef:: + eventServiceConfiguration_post (Type const&) + { + } + + void CIAOEventsDef:: + id (Type& o) + { + dispatch (o.id ()); + } + + void CIAOEventsDef:: + id (Type const& o) + { + dispatch (o.id ()); + } + + void CIAOEventsDef:: + id_none (Type&) + { + } + + void CIAOEventsDef:: + id_none (Type const&) + { + } + + void CIAOEventsDef:: + post (Type&) + { + } + + void CIAOEventsDef:: + post (Type const&) + { + } + + // EventServiceDescription + // + // + + void EventServiceDescription:: + traverse (Type& o) + { + pre (o); + name (o); + node (o); + type (o); + svc_cfg_file (o); + filter (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void EventServiceDescription:: + traverse (Type const& o) + { + pre (o); + name (o); + node (o); + type (o); + svc_cfg_file (o); + filter (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void EventServiceDescription:: + pre (Type&) + { + } + + void EventServiceDescription:: + pre (Type const&) + { + } + + void EventServiceDescription:: + name (Type& o) + { + dispatch (o.name ()); + } + + void EventServiceDescription:: + name (Type const& o) + { + dispatch (o.name ()); + } + + void EventServiceDescription:: + node (Type& o) + { + dispatch (o.node ()); + } + + void EventServiceDescription:: + node (Type const& o) + { + dispatch (o.node ()); + } + + void EventServiceDescription:: + type (Type& o) + { + dispatch (o.type ()); + } + + void EventServiceDescription:: + type (Type const& o) + { + dispatch (o.type ()); + } + + void EventServiceDescription:: + svc_cfg_file (Type& o) + { + dispatch (o.svc_cfg_file ()); + } + + void EventServiceDescription:: + svc_cfg_file (Type const& o) + { + dispatch (o.svc_cfg_file ()); + } + + void EventServiceDescription:: + filter (Type& o) + { + // VC6 anathema strikes again + // + EventServiceDescription::Type::filter_iterator b (o.begin_filter()), e (o.end_filter()); + + if (b != e) + { + filter_pre (o); + for (; b != e;) + { + dispatch (*b); + if (++b != e) filter_next (o); + } + + filter_post (o); + } + + else filter_none (o); + } + + void EventServiceDescription:: + filter (Type const& o) + { + // VC6 anathema strikes again + // + EventServiceDescription::Type::filter_const_iterator b (o.begin_filter()), e (o.end_filter()); + + if (b != e) + { + filter_pre (o); + for (; b != e;) + { + dispatch (*b); + if (++b != e) filter_next (o); + } + + filter_post (o); + } + + else filter_none (o); + } + + void EventServiceDescription:: + filter_pre (Type&) + { + } + + void EventServiceDescription:: + filter_pre (Type const&) + { + } + + void EventServiceDescription:: + filter_next (Type&) + { + } + + void EventServiceDescription:: + filter_next (Type const&) + { + } + + void EventServiceDescription:: + filter_post (Type&) + { + } + + void EventServiceDescription:: + filter_post (Type const&) + { + } + + void EventServiceDescription:: + filter_none (Type&) + { + } + + void EventServiceDescription:: + filter_none (Type const&) + { + } + + void EventServiceDescription:: + id (Type& o) + { + dispatch (o.id ()); + } + + void EventServiceDescription:: + id (Type const& o) + { + dispatch (o.id ()); + } + + void EventServiceDescription:: + id_none (Type&) + { + } + + void EventServiceDescription:: + id_none (Type const&) + { + } + + void EventServiceDescription:: + post (Type&) + { + } + + void EventServiceDescription:: + post (Type const&) + { + } + + // Filter + // + // + + void Filter:: + traverse (Type& o) + { + pre (o); + name (o); + type (o); + source (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void Filter:: + traverse (Type const& o) + { + pre (o); + name (o); + type (o); + source (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void Filter:: + pre (Type&) + { + } + + void Filter:: + pre (Type const&) + { + } + + void Filter:: + name (Type& o) + { + dispatch (o.name ()); + } + + void Filter:: + name (Type const& o) + { + dispatch (o.name ()); + } + + void Filter:: + type (Type& o) + { + dispatch (o.type ()); + } + + void Filter:: + type (Type const& o) + { + dispatch (o.type ()); + } + + void Filter:: + source (Type& o) + { + // VC6 anathema strikes again + // + Filter::Type::source_iterator b (o.begin_source()), e (o.end_source()); + + if (b != e) + { + source_pre (o); + for (; b != e;) + { + dispatch (*b); + if (++b != e) source_next (o); + } + + source_post (o); + } + } + + void Filter:: + source (Type const& o) + { + // VC6 anathema strikes again + // + Filter::Type::source_const_iterator b (o.begin_source()), e (o.end_source()); + + if (b != e) + { + source_pre (o); + for (; b != e;) + { + dispatch (*b); + if (++b != e) source_next (o); + } + + source_post (o); + } + } + + void Filter:: + source_pre (Type&) + { + } + + void Filter:: + source_pre (Type const&) + { + } + + void Filter:: + source_next (Type&) + { + } + + void Filter:: + source_next (Type const&) + { + } + + void Filter:: + source_post (Type&) + { + } + + void Filter:: + source_post (Type const&) + { + } + + void Filter:: + id (Type& o) + { + dispatch (o.id ()); + } + + void Filter:: + id (Type const& o) + { + dispatch (o.id ()); + } + + void Filter:: + id_none (Type&) + { + } + + void Filter:: + id_none (Type const&) + { + } + + void Filter:: + post (Type&) + { + } + + void Filter:: + post (Type const&) + { + } + + // MCastSenderDescription + // + // + + void MCastSenderDescription:: + traverse (Type& o) + { + pre (o); + node (o); + type (o); + svc_cfg_file (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void MCastSenderDescription:: + traverse (Type const& o) + { + pre (o); + node (o); + type (o); + svc_cfg_file (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void MCastSenderDescription:: + pre (Type&) + { + } + + void MCastSenderDescription:: + pre (Type const&) + { + } + + void MCastSenderDescription:: + node (Type& o) + { + dispatch (o.node ()); + } + + void MCastSenderDescription:: + node (Type const& o) + { + dispatch (o.node ()); + } + + void MCastSenderDescription:: + type (Type& o) + { + dispatch (o.type ()); + } + + void MCastSenderDescription:: + type (Type const& o) + { + dispatch (o.type ()); + } + + void MCastSenderDescription:: + svc_cfg_file (Type& o) + { + dispatch (o.svc_cfg_file ()); + } + + void MCastSenderDescription:: + svc_cfg_file (Type const& o) + { + dispatch (o.svc_cfg_file ()); + } + + void MCastSenderDescription:: + id (Type& o) + { + dispatch (o.id ()); + } + + void MCastSenderDescription:: + id (Type const& o) + { + dispatch (o.id ()); + } + + void MCastSenderDescription:: + id_none (Type&) + { + } + + void MCastSenderDescription:: + id_none (Type const&) + { + } + + void MCastSenderDescription:: + post (Type&) + { + } + + void MCastSenderDescription:: + post (Type const&) + { + } + + // MCastReceiverDescription + // + // + + void MCastReceiverDescription:: + traverse (Type& o) + { + pre (o); + node (o); + type (o); + svc_cfg_file (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void MCastReceiverDescription:: + traverse (Type const& o) + { + pre (o); + node (o); + type (o); + svc_cfg_file (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void MCastReceiverDescription:: + pre (Type&) + { + } + + void MCastReceiverDescription:: + pre (Type const&) + { + } + + void MCastReceiverDescription:: + node (Type& o) + { + dispatch (o.node ()); + } + + void MCastReceiverDescription:: + node (Type const& o) + { + dispatch (o.node ()); + } + + void MCastReceiverDescription:: + type (Type& o) + { + dispatch (o.type ()); + } + + void MCastReceiverDescription:: + type (Type const& o) + { + dispatch (o.type ()); + } + + void MCastReceiverDescription:: + svc_cfg_file (Type& o) + { + dispatch (o.svc_cfg_file ()); + } + + void MCastReceiverDescription:: + svc_cfg_file (Type const& o) + { + dispatch (o.svc_cfg_file ()); + } + + void MCastReceiverDescription:: + id (Type& o) + { + dispatch (o.id ()); + } + + void MCastReceiverDescription:: + id (Type const& o) + { + dispatch (o.id ()); + } + + void MCastReceiverDescription:: + id_none (Type&) + { + } + + void MCastReceiverDescription:: + id_none (Type const&) + { + } + + void MCastReceiverDescription:: + post (Type&) + { + } + + void MCastReceiverDescription:: + post (Type const&) + { + } + + // EC_to_MCastSender + // + // + + void EC_to_MCastSender:: + traverse (Type& o) + { + pre (o); + destination (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void EC_to_MCastSender:: + traverse (Type const& o) + { + pre (o); + destination (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void EC_to_MCastSender:: + pre (Type&) + { + } + + void EC_to_MCastSender:: + pre (Type const&) + { + } + + void EC_to_MCastSender:: + destination (Type& o) + { + dispatch (o.destination ()); + } + + void EC_to_MCastSender:: + destination (Type const& o) + { + dispatch (o.destination ()); + } + + void EC_to_MCastSender:: + id (Type& o) + { + dispatch (o.id ()); + } + + void EC_to_MCastSender:: + id (Type const& o) + { + dispatch (o.id ()); + } + + void EC_to_MCastSender:: + id_none (Type&) + { + } + + void EC_to_MCastSender:: + id_none (Type const&) + { + } + + void EC_to_MCastSender:: + post (Type&) + { + } + + void EC_to_MCastSender:: + post (Type const&) + { + } + + // MCastReceiver_to_EC + // + // + + void MCastReceiver_to_EC:: + traverse (Type& o) + { + pre (o); + source (o); + destination (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void MCastReceiver_to_EC:: + traverse (Type const& o) + { + pre (o); + source (o); + destination (o); + if (o.id_p ()) id (o); + else id_none (o); + post (o); + } + + void MCastReceiver_to_EC:: + pre (Type&) + { + } + + void MCastReceiver_to_EC:: + pre (Type const&) + { + } + + void MCastReceiver_to_EC:: + source (Type& o) + { + dispatch (o.source ()); + } + + void MCastReceiver_to_EC:: + source (Type const& o) + { + dispatch (o.source ()); + } + + void MCastReceiver_to_EC:: + destination (Type& o) + { + dispatch (o.destination ()); + } + + void MCastReceiver_to_EC:: + destination (Type const& o) + { + dispatch (o.destination ()); + } + + void MCastReceiver_to_EC:: + id (Type& o) + { + dispatch (o.id ()); + } + + void MCastReceiver_to_EC:: + id (Type const& o) + { + dispatch (o.id ()); + } + + void MCastReceiver_to_EC:: + id_none (Type&) + { + } + + void MCastReceiver_to_EC:: + id_none (Type const&) + { + } + + void MCastReceiver_to_EC:: + post (Type&) + { + } + + void MCastReceiver_to_EC:: + post (Type const&) + { + } + } + } + +} + +namespace CIAO +{ + namespace Config_Handlers + { + + namespace Writer + { + // EventServiceType + // + // + + EventServiceType:: + EventServiceType (::XSCRT::XML::Element< ACE_TCHAR >& e) + : ::XSCRT::Writer< ACE_TCHAR > (e) + { + } + + EventServiceType:: + EventServiceType () + { + } + + void EventServiceType:: + traverse (Type const& o) + { + ::std::basic_string< ACE_TCHAR > s; + + if (o == ::CIAO::Config_Handlers::EventServiceType::EC) s = "EC"; + else if (o == ::CIAO::Config_Handlers::EventServiceType::RTEC) s = "RTEC"; + else if (o == ::CIAO::Config_Handlers::EventServiceType::NOTIFY) s = "NOTIFY"; + else if (o == ::CIAO::Config_Handlers::EventServiceType::RTNOTIFY) s = "RTNOTIFY"; + else + { + } + + if (::XSCRT::XML::Attribute< ACE_TCHAR >* a = attr_ ()) + { + a->value (s); + } + + else + { + top_().value (s); + } + } + + // CIAOEventsDef + // + // + + CIAOEventsDef:: + CIAOEventsDef (::XSCRT::XML::Element< ACE_TCHAR >& e) + : ::XSCRT::Writer< ACE_TCHAR > (e) + { + } + + CIAOEventsDef:: + CIAOEventsDef () + { + } + + void CIAOEventsDef:: + traverse (Type const& o) + { + Traversal::CIAOEventsDef::traverse (o); + } + + void CIAOEventsDef:: + eventServiceConfiguration_pre (Type const&) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("eventServiceConfiguration", top_ ())); + } + + void CIAOEventsDef:: + eventServiceConfiguration_next (Type const& o) + { + eventServiceConfiguration_post (o); + eventServiceConfiguration_pre (o); + } + + void CIAOEventsDef:: + eventServiceConfiguration_post (Type const&) + { + pop_ (); + } + + void CIAOEventsDef:: + id (Type const& o) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "", top_ ()); + attr_ (&a); + Traversal::CIAOEventsDef::id (o); + attr_ (0); + } + + // EventServiceDescription + // + // + + EventServiceDescription:: + EventServiceDescription (::XSCRT::XML::Element< ACE_TCHAR >& e) + : ::XSCRT::Writer< ACE_TCHAR > (e) + { + } + + EventServiceDescription:: + EventServiceDescription () + { + } + + void EventServiceDescription:: + traverse (Type const& o) + { + Traversal::EventServiceDescription::traverse (o); + } + + void EventServiceDescription:: + name (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("name", top_ ())); + Traversal::EventServiceDescription::name (o); + pop_ (); + } + + void EventServiceDescription:: + node (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("node", top_ ())); + Traversal::EventServiceDescription::node (o); + pop_ (); + } + + void EventServiceDescription:: + type (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("type", top_ ())); + Traversal::EventServiceDescription::type (o); + pop_ (); + } + + void EventServiceDescription:: + svc_cfg_file (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("svc_cfg_file", top_ ())); + Traversal::EventServiceDescription::svc_cfg_file (o); + pop_ (); + } + + void EventServiceDescription:: + filter_pre (Type const&) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("filter", top_ ())); + } + + void EventServiceDescription:: + filter_next (Type const& o) + { + filter_post (o); + filter_pre (o); + } + + void EventServiceDescription:: + filter_post (Type const&) + { + pop_ (); + } + + void EventServiceDescription:: + id (Type const& o) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "", top_ ()); + attr_ (&a); + Traversal::EventServiceDescription::id (o); + attr_ (0); + } + + // FilterType + // + // + + FilterType:: + FilterType (::XSCRT::XML::Element< ACE_TCHAR >& e) + : ::XSCRT::Writer< ACE_TCHAR > (e) + { + } + + FilterType:: + FilterType () + { + } + + void FilterType:: + traverse (Type const& o) + { + ::std::basic_string< ACE_TCHAR > s; + + if (o == ::CIAO::Config_Handlers::FilterType::CONJUNCTION) s = "CONJUNCTION"; + else if (o == ::CIAO::Config_Handlers::FilterType::DISJUNCTION) s = "DISJUNCTION"; + else if (o == ::CIAO::Config_Handlers::FilterType::LOGICAL_AND) s = "LOGICAL_AND"; + else if (o == ::CIAO::Config_Handlers::FilterType::NEGATE) s = "NEGATE"; + else + { + } + + if (::XSCRT::XML::Attribute< ACE_TCHAR >* a = attr_ ()) + { + a->value (s); + } + + else + { + top_().value (s); + } + } + + // Filter + // + // + + Filter:: + Filter (::XSCRT::XML::Element< ACE_TCHAR >& e) + : ::XSCRT::Writer< ACE_TCHAR > (e) + { + } + + Filter:: + Filter () + { + } + + void Filter:: + traverse (Type const& o) + { + Traversal::Filter::traverse (o); + } + + void Filter:: + name (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("name", top_ ())); + Traversal::Filter::name (o); + pop_ (); + } + + void Filter:: + type (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("type", top_ ())); + Traversal::Filter::type (o); + pop_ (); + } + + void Filter:: + source_pre (Type const&) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("source", top_ ())); + } + + void Filter:: + source_next (Type const& o) + { + source_post (o); + source_pre (o); + } + + void Filter:: + source_post (Type const&) + { + pop_ (); + } + + void Filter:: + id (Type const& o) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "", top_ ()); + attr_ (&a); + Traversal::Filter::id (o); + attr_ (0); + } + + // MCastSenderDescription + // + // + + MCastSenderDescription:: + MCastSenderDescription (::XSCRT::XML::Element< ACE_TCHAR >& e) + : ::XSCRT::Writer< ACE_TCHAR > (e) + { + } + + MCastSenderDescription:: + MCastSenderDescription () + { + } + + void MCastSenderDescription:: + traverse (Type const& o) + { + Traversal::MCastSenderDescription::traverse (o); + } + + void MCastSenderDescription:: + node (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("node", top_ ())); + Traversal::MCastSenderDescription::node (o); + pop_ (); + } + + void MCastSenderDescription:: + type (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("type", top_ ())); + Traversal::MCastSenderDescription::type (o); + pop_ (); + } + + void MCastSenderDescription:: + svc_cfg_file (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("svc_cfg_file", top_ ())); + Traversal::MCastSenderDescription::svc_cfg_file (o); + pop_ (); + } + + void MCastSenderDescription:: + id (Type const& o) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "", top_ ()); + attr_ (&a); + Traversal::MCastSenderDescription::id (o); + attr_ (0); + } + + // MCastReceiverDescription + // + // + + MCastReceiverDescription:: + MCastReceiverDescription (::XSCRT::XML::Element< ACE_TCHAR >& e) + : ::XSCRT::Writer< ACE_TCHAR > (e) + { + } + + MCastReceiverDescription:: + MCastReceiverDescription () + { + } + + void MCastReceiverDescription:: + traverse (Type const& o) + { + Traversal::MCastReceiverDescription::traverse (o); + } + + void MCastReceiverDescription:: + node (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("node", top_ ())); + Traversal::MCastReceiverDescription::node (o); + pop_ (); + } + + void MCastReceiverDescription:: + type (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("type", top_ ())); + Traversal::MCastReceiverDescription::type (o); + pop_ (); + } + + void MCastReceiverDescription:: + svc_cfg_file (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("svc_cfg_file", top_ ())); + Traversal::MCastReceiverDescription::svc_cfg_file (o); + pop_ (); + } + + void MCastReceiverDescription:: + id (Type const& o) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "", top_ ()); + attr_ (&a); + Traversal::MCastReceiverDescription::id (o); + attr_ (0); + } + + // EC_to_MCastSender + // + // + + EC_to_MCastSender:: + EC_to_MCastSender (::XSCRT::XML::Element< ACE_TCHAR >& e) + : ::XSCRT::Writer< ACE_TCHAR > (e) + { + } + + EC_to_MCastSender:: + EC_to_MCastSender () + { + } + + void EC_to_MCastSender:: + traverse (Type const& o) + { + Traversal::EC_to_MCastSender::traverse (o); + } + + void EC_to_MCastSender:: + destination (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("destination", top_ ())); + Traversal::EC_to_MCastSender::destination (o); + pop_ (); + } + + void EC_to_MCastSender:: + id (Type const& o) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "", top_ ()); + attr_ (&a); + Traversal::EC_to_MCastSender::id (o); + attr_ (0); + } + + // MCastReceiver_to_EC + // + // + + MCastReceiver_to_EC:: + MCastReceiver_to_EC (::XSCRT::XML::Element< ACE_TCHAR >& e) + : ::XSCRT::Writer< ACE_TCHAR > (e) + { + } + + MCastReceiver_to_EC:: + MCastReceiver_to_EC () + { + } + + void MCastReceiver_to_EC:: + traverse (Type const& o) + { + Traversal::MCastReceiver_to_EC::traverse (o); + } + + void MCastReceiver_to_EC:: + source (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("source", top_ ())); + Traversal::MCastReceiver_to_EC::source (o); + pop_ (); + } + + void MCastReceiver_to_EC:: + destination (Type const& o) + { + push_ (::XSCRT::XML::Element< ACE_TCHAR > ("destination", top_ ())); + Traversal::MCastReceiver_to_EC::destination (o); + pop_ (); + } + + void MCastReceiver_to_EC:: + id (Type const& o) + { + ::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "", top_ ()); + attr_ (&a); + Traversal::MCastReceiver_to_EC::id (o); + attr_ (0); + } + } + } + +} + +namespace CIAO +{ + namespace Config_Handlers + { + + void + CIAOEvents (::CIAO::Config_Handlers::CIAOEventsDef const& s, xercesc::DOMDocument* d) + { + ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ()); + if (e.name () != "CIAOEvents") + { + throw 1; + } + + struct W : virtual ::CIAO::Config_Handlers::Writer::CIAOEventsDef, + virtual ::CIAO::Config_Handlers::Writer::EventServiceDescription, + virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >, + virtual ::CIAO::Config_Handlers::Writer::EventServiceType, + virtual ::CIAO::Config_Handlers::Writer::Filter, + virtual ::CIAO::Config_Handlers::Writer::FilterType, + virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >, + virtual ::XSCRT::Writer< ACE_TCHAR > + { + W (::XSCRT::XML::Element< ACE_TCHAR >& e) + : ::XSCRT::Writer< ACE_TCHAR > (e) + { + } + }; + + W w (e); + w.dispatch (s); + } + } + +} + diff --git a/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp new file mode 100644 index 00000000000..c71e1986d78 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp @@ -0,0 +1,1499 @@ +/* $Id$ + * This code was generated by the XML Schema Compiler. + * + * Changes made to this code will most likely be overwritten + * when the handlers are recompiled. + * + * If you find errors or feel that there are bugfixes to be made, + * please contact the current XSC maintainer: + * Will Otte <wotte@dre.vanderbilt.edu> + */ + + +// Fix for Borland compilers, which seem to have a broken +// <string> include. +#ifdef __BORLANDC__ +# include <string.h> +#endif + +#include "CIAO_Events_Handlers_Export.h" +#ifndef CIAOEVENTS_HPP +#define CIAOEVENTS_HPP + +// Forward declarations. +// +namespace CIAO +{ + namespace Config_Handlers + { + class EventServiceType; + class CIAOEventsDef; + class EventServiceDescription; + class FilterType; + class Filter; + class MCastSenderDescription; + class MCastReceiverDescription; + class EC_to_MCastSender; + class MCastReceiver_to_EC; + } +} + +#include <memory> +#include <list> +#include "XMLSchema/Types.hpp" + +namespace CIAO +{ + namespace Config_Handlers + { + class CIAO_Events_Handlers_Export EventServiceType : public ::XSCRT::Type + { + public: + EventServiceType (::XSCRT::XML::Element< ACE_TCHAR > const&); + EventServiceType (::XSCRT::XML::Attribute< ACE_TCHAR > const&); + + static EventServiceType const EC; + static EventServiceType const RTEC; + static EventServiceType const NOTIFY; + static EventServiceType const RTNOTIFY; + + enum Value + { + EC_l,RTEC_l,NOTIFY_l,RTNOTIFY_l + }; + + + Value + integral () const; + + friend bool CIAO_Events_Handlers_Export + operator== (EventServiceType const& a, EventServiceType const& b); + + friend bool CIAO_Events_Handlers_Export + operator!= (EventServiceType const& a, EventServiceType const& b); + + private: + EventServiceType (Value v); + + Value v_; + }; + + bool CIAO_Events_Handlers_Export operator== (EventServiceType const &a, EventServiceType const &b); + + bool CIAO_Events_Handlers_Export operator!= (EventServiceType const &a, EventServiceType const &b); + + + class CIAO_Events_Handlers_Export CIAOEventsDef : public ::XSCRT::Type + { + //@@ VC6 anathema + typedef ::XSCRT::Type Base__; + + // eventServiceConfiguration + // + public: + typedef ::std::list< ::CIAO::Config_Handlers::EventServiceDescription >::iterator eventServiceConfiguration_iterator; + typedef ::std::list< ::CIAO::Config_Handlers::EventServiceDescription >::const_iterator eventServiceConfiguration_const_iterator; + eventServiceConfiguration_iterator begin_eventServiceConfiguration (); + eventServiceConfiguration_iterator end_eventServiceConfiguration (); + eventServiceConfiguration_const_iterator begin_eventServiceConfiguration () const; + eventServiceConfiguration_const_iterator end_eventServiceConfiguration () const; + void add_eventServiceConfiguration (::CIAO::Config_Handlers::EventServiceDescription const& ); + size_t count_eventServiceConfiguration (void) const; + + protected: + ::std::list< ::CIAO::Config_Handlers::EventServiceDescription > eventServiceConfiguration_; + + // id + // + public: + bool id_p () const; + ::XMLSchema::ID< ACE_TCHAR > const& id () const; + ::XMLSchema::ID< ACE_TCHAR >& id (); + void id (::XMLSchema::ID< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_; + + public: + CIAOEventsDef (); + + CIAOEventsDef (::XSCRT::XML::Element< ACE_TCHAR > const&); + CIAOEventsDef (CIAOEventsDef const& s); + + CIAOEventsDef& + operator= (CIAOEventsDef const& s); + + private: + char regulator__; + }; + + + class CIAO_Events_Handlers_Export EventServiceDescription : public ::XSCRT::Type + { + //@@ VC6 anathema + typedef ::XSCRT::Type Base__; + + // name + // + public: + ::XMLSchema::string< ACE_TCHAR > const& name () const; + void name (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_; + + // node + // + public: + ::XMLSchema::string< ACE_TCHAR > const& node () const; + void node (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > node_; + + // type + // + public: + ::CIAO::Config_Handlers::EventServiceType const& type () const; + void type (::CIAO::Config_Handlers::EventServiceType const& ); + + protected: + ::std::auto_ptr< ::CIAO::Config_Handlers::EventServiceType > type_; + + // svc_cfg_file + // + public: + ::XMLSchema::string< ACE_TCHAR > const& svc_cfg_file () const; + void svc_cfg_file (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > svc_cfg_file_; + + // filter + // + public: + typedef ::std::list< ::CIAO::Config_Handlers::Filter >::iterator filter_iterator; + typedef ::std::list< ::CIAO::Config_Handlers::Filter >::const_iterator filter_const_iterator; + filter_iterator begin_filter (); + filter_iterator end_filter (); + filter_const_iterator begin_filter () const; + filter_const_iterator end_filter () const; + void add_filter (::CIAO::Config_Handlers::Filter const& ); + size_t count_filter (void) const; + + protected: + ::std::list< ::CIAO::Config_Handlers::Filter > filter_; + + // id + // + public: + bool id_p () const; + ::XMLSchema::ID< ACE_TCHAR > const& id () const; + ::XMLSchema::ID< ACE_TCHAR >& id (); + void id (::XMLSchema::ID< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_; + + public: + EventServiceDescription (::XMLSchema::string< ACE_TCHAR > const& name__, + ::XMLSchema::string< ACE_TCHAR > const& node__, + ::CIAO::Config_Handlers::EventServiceType const& type__, + ::XMLSchema::string< ACE_TCHAR > const& svc_cfg_file__); + + EventServiceDescription (::XSCRT::XML::Element< ACE_TCHAR > const&); + EventServiceDescription (EventServiceDescription const& s); + + EventServiceDescription& + operator= (EventServiceDescription const& s); + + private: + char regulator__; + }; + + + class CIAO_Events_Handlers_Export FilterType : public ::XSCRT::Type + { + public: + FilterType (::XSCRT::XML::Element< ACE_TCHAR > const&); + FilterType (::XSCRT::XML::Attribute< ACE_TCHAR > const&); + + static FilterType const CONJUNCTION; + static FilterType const DISJUNCTION; + static FilterType const LOGICAL_AND; + static FilterType const NEGATE; + + enum Value + { + CONJUNCTION_l,DISJUNCTION_l,LOGICAL_AND_l,NEGATE_l + }; + + + Value + integral () const; + + friend bool CIAO_Events_Handlers_Export + operator== (FilterType const& a, FilterType const& b); + + friend bool CIAO_Events_Handlers_Export + operator!= (FilterType const& a, FilterType const& b); + + private: + FilterType (Value v); + + Value v_; + }; + + bool CIAO_Events_Handlers_Export operator== (FilterType const &a, FilterType const &b); + + bool CIAO_Events_Handlers_Export operator!= (FilterType const &a, FilterType const &b); + + + class CIAO_Events_Handlers_Export Filter : public ::XSCRT::Type + { + //@@ VC6 anathema + typedef ::XSCRT::Type Base__; + + // name + // + public: + ::XMLSchema::string< ACE_TCHAR > const& name () const; + void name (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_; + + // type + // + public: + ::CIAO::Config_Handlers::FilterType const& type () const; + void type (::CIAO::Config_Handlers::FilterType const& ); + + protected: + ::std::auto_ptr< ::CIAO::Config_Handlers::FilterType > type_; + + // source + // + public: + typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator source_iterator; + typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator source_const_iterator; + source_iterator begin_source (); + source_iterator end_source (); + source_const_iterator begin_source () const; + source_const_iterator end_source () const; + void add_source (::XMLSchema::string< ACE_TCHAR > const& ); + size_t count_source (void) const; + + protected: + ::std::list< ::XMLSchema::string< ACE_TCHAR > > source_; + + // id + // + public: + bool id_p () const; + ::XMLSchema::ID< ACE_TCHAR > const& id () const; + ::XMLSchema::ID< ACE_TCHAR >& id (); + void id (::XMLSchema::ID< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_; + + public: + Filter (::XMLSchema::string< ACE_TCHAR > const& name__, + ::CIAO::Config_Handlers::FilterType const& type__); + + Filter (::XSCRT::XML::Element< ACE_TCHAR > const&); + Filter (Filter const& s); + + Filter& + operator= (Filter const& s); + + private: + char regulator__; + }; + + + class CIAO_Events_Handlers_Export MCastSenderDescription : public ::XSCRT::Type + { + //@@ VC6 anathema + typedef ::XSCRT::Type Base__; + + // node + // + public: + ::XMLSchema::string< ACE_TCHAR > const& node () const; + void node (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > node_; + + // type + // + public: + ::CIAO::Config_Handlers::EventServiceType const& type () const; + void type (::CIAO::Config_Handlers::EventServiceType const& ); + + protected: + ::std::auto_ptr< ::CIAO::Config_Handlers::EventServiceType > type_; + + // svc_cfg_file + // + public: + ::XMLSchema::string< ACE_TCHAR > const& svc_cfg_file () const; + void svc_cfg_file (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > svc_cfg_file_; + + // id + // + public: + bool id_p () const; + ::XMLSchema::ID< ACE_TCHAR > const& id () const; + ::XMLSchema::ID< ACE_TCHAR >& id (); + void id (::XMLSchema::ID< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_; + + public: + MCastSenderDescription (::XMLSchema::string< ACE_TCHAR > const& node__, + ::CIAO::Config_Handlers::EventServiceType const& type__, + ::XMLSchema::string< ACE_TCHAR > const& svc_cfg_file__); + + MCastSenderDescription (::XSCRT::XML::Element< ACE_TCHAR > const&); + MCastSenderDescription (MCastSenderDescription const& s); + + MCastSenderDescription& + operator= (MCastSenderDescription const& s); + + private: + char regulator__; + }; + + + class CIAO_Events_Handlers_Export MCastReceiverDescription : public ::XSCRT::Type + { + //@@ VC6 anathema + typedef ::XSCRT::Type Base__; + + // node + // + public: + ::XMLSchema::string< ACE_TCHAR > const& node () const; + void node (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > node_; + + // type + // + public: + ::CIAO::Config_Handlers::EventServiceType const& type () const; + void type (::CIAO::Config_Handlers::EventServiceType const& ); + + protected: + ::std::auto_ptr< ::CIAO::Config_Handlers::EventServiceType > type_; + + // svc_cfg_file + // + public: + ::XMLSchema::string< ACE_TCHAR > const& svc_cfg_file () const; + void svc_cfg_file (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > svc_cfg_file_; + + // id + // + public: + bool id_p () const; + ::XMLSchema::ID< ACE_TCHAR > const& id () const; + ::XMLSchema::ID< ACE_TCHAR >& id (); + void id (::XMLSchema::ID< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_; + + public: + MCastReceiverDescription (::XMLSchema::string< ACE_TCHAR > const& node__, + ::CIAO::Config_Handlers::EventServiceType const& type__, + ::XMLSchema::string< ACE_TCHAR > const& svc_cfg_file__); + + MCastReceiverDescription (::XSCRT::XML::Element< ACE_TCHAR > const&); + MCastReceiverDescription (MCastReceiverDescription const& s); + + MCastReceiverDescription& + operator= (MCastReceiverDescription const& s); + + private: + char regulator__; + }; + + + class CIAO_Events_Handlers_Export EC_to_MCastSender : public ::XSCRT::Type + { + //@@ VC6 anathema + typedef ::XSCRT::Type Base__; + + // destination + // + public: + ::XMLSchema::string< ACE_TCHAR > const& destination () const; + void destination (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > destination_; + + // id + // + public: + bool id_p () const; + ::XMLSchema::ID< ACE_TCHAR > const& id () const; + ::XMLSchema::ID< ACE_TCHAR >& id (); + void id (::XMLSchema::ID< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_; + + public: + EC_to_MCastSender (::XMLSchema::string< ACE_TCHAR > const& destination__); + + EC_to_MCastSender (::XSCRT::XML::Element< ACE_TCHAR > const&); + EC_to_MCastSender (EC_to_MCastSender const& s); + + EC_to_MCastSender& + operator= (EC_to_MCastSender const& s); + + private: + char regulator__; + }; + + + class CIAO_Events_Handlers_Export MCastReceiver_to_EC : public ::XSCRT::Type + { + //@@ VC6 anathema + typedef ::XSCRT::Type Base__; + + // source + // + public: + ::XMLSchema::string< ACE_TCHAR > const& source () const; + void source (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > source_; + + // destination + // + public: + ::XMLSchema::string< ACE_TCHAR > const& destination () const; + void destination (::XMLSchema::string< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > destination_; + + // id + // + public: + bool id_p () const; + ::XMLSchema::ID< ACE_TCHAR > const& id () const; + ::XMLSchema::ID< ACE_TCHAR >& id (); + void id (::XMLSchema::ID< ACE_TCHAR > const& ); + + protected: + ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_; + + public: + MCastReceiver_to_EC (::XMLSchema::string< ACE_TCHAR > const& source__, + ::XMLSchema::string< ACE_TCHAR > const& destination__); + + MCastReceiver_to_EC (::XSCRT::XML::Element< ACE_TCHAR > const&); + MCastReceiver_to_EC (MCastReceiver_to_EC const& s); + + MCastReceiver_to_EC& + operator= (MCastReceiver_to_EC const& s); + + private: + char regulator__; + }; + } + +} + +namespace CIAO +{ + namespace Config_Handlers + { + CIAO_Events_Handlers_Export + ::CIAO::Config_Handlers::CIAOEventsDef + CIAOEvents (xercesc::DOMDocument const*); + } +} + +#include "XMLSchema/Traversal.hpp" + +namespace CIAO +{ + namespace Config_Handlers + { + namespace Traversal + { + typedef + ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::EventServiceType > + EventServiceType; + + struct CIAO_Events_Handlers_Export CIAOEventsDef : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::CIAOEventsDef > + { + virtual void + traverse (Type&); + + virtual void + traverse (Type const&); + + virtual void + pre (Type&); + + virtual void + pre (Type const&); + + virtual void + eventServiceConfiguration (Type&); + + virtual void + eventServiceConfiguration (Type const&); + + virtual void + eventServiceConfiguration_pre (Type&); + + virtual void + eventServiceConfiguration_pre (Type const&); + + virtual void + eventServiceConfiguration_next (Type&); + + virtual void + eventServiceConfiguration_next (Type const&); + + virtual void + eventServiceConfiguration_post (Type&); + + virtual void + eventServiceConfiguration_post (Type const&); + + virtual void + id (Type&); + + virtual void + id (Type const&); + + virtual void + id_none (Type&); + + virtual void + id_none (Type const&); + + virtual void + post (Type&); + + virtual void + post (Type const&); + }; + + struct CIAO_Events_Handlers_Export EventServiceDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::EventServiceDescription > + { + virtual void + traverse (Type&); + + virtual void + traverse (Type const&); + + virtual void + pre (Type&); + + virtual void + pre (Type const&); + + virtual void + name (Type&); + + virtual void + name (Type const&); + + virtual void + node (Type&); + + virtual void + node (Type const&); + + virtual void + type (Type&); + + virtual void + type (Type const&); + + virtual void + svc_cfg_file (Type&); + + virtual void + svc_cfg_file (Type const&); + + virtual void + filter (Type&); + + virtual void + filter (Type const&); + + virtual void + filter_pre (Type&); + + virtual void + filter_pre (Type const&); + + virtual void + filter_next (Type&); + + virtual void + filter_next (Type const&); + + virtual void + filter_post (Type&); + + virtual void + filter_post (Type const&); + + virtual void + filter_none (Type&); + + virtual void + filter_none (Type const&); + + virtual void + id (Type&); + + virtual void + id (Type const&); + + virtual void + id_none (Type&); + + virtual void + id_none (Type const&); + + virtual void + post (Type&); + + virtual void + post (Type const&); + }; + + typedef + ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::FilterType > + FilterType; + + struct CIAO_Events_Handlers_Export Filter : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Filter > + { + virtual void + traverse (Type&); + + virtual void + traverse (Type const&); + + virtual void + pre (Type&); + + virtual void + pre (Type const&); + + virtual void + name (Type&); + + virtual void + name (Type const&); + + virtual void + type (Type&); + + virtual void + type (Type const&); + + virtual void + source (Type&); + + virtual void + source (Type const&); + + virtual void + source_pre (Type&); + + virtual void + source_pre (Type const&); + + virtual void + source_next (Type&); + + virtual void + source_next (Type const&); + + virtual void + source_post (Type&); + + virtual void + source_post (Type const&); + + virtual void + id (Type&); + + virtual void + id (Type const&); + + virtual void + id_none (Type&); + + virtual void + id_none (Type const&); + + virtual void + post (Type&); + + virtual void + post (Type const&); + }; + + struct CIAO_Events_Handlers_Export MCastSenderDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::MCastSenderDescription > + { + virtual void + traverse (Type&); + + virtual void + traverse (Type const&); + + virtual void + pre (Type&); + + virtual void + pre (Type const&); + + virtual void + node (Type&); + + virtual void + node (Type const&); + + virtual void + type (Type&); + + virtual void + type (Type const&); + + virtual void + svc_cfg_file (Type&); + + virtual void + svc_cfg_file (Type const&); + + virtual void + id (Type&); + + virtual void + id (Type const&); + + virtual void + id_none (Type&); + + virtual void + id_none (Type const&); + + virtual void + post (Type&); + + virtual void + post (Type const&); + }; + + struct CIAO_Events_Handlers_Export MCastReceiverDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::MCastReceiverDescription > + { + virtual void + traverse (Type&); + + virtual void + traverse (Type const&); + + virtual void + pre (Type&); + + virtual void + pre (Type const&); + + virtual void + node (Type&); + + virtual void + node (Type const&); + + virtual void + type (Type&); + + virtual void + type (Type const&); + + virtual void + svc_cfg_file (Type&); + + virtual void + svc_cfg_file (Type const&); + + virtual void + id (Type&); + + virtual void + id (Type const&); + + virtual void + id_none (Type&); + + virtual void + id_none (Type const&); + + virtual void + post (Type&); + + virtual void + post (Type const&); + }; + + struct CIAO_Events_Handlers_Export EC_to_MCastSender : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::EC_to_MCastSender > + { + virtual void + traverse (Type&); + + virtual void + traverse (Type const&); + + virtual void + pre (Type&); + + virtual void + pre (Type const&); + + virtual void + destination (Type&); + + virtual void + destination (Type const&); + + virtual void + id (Type&); + + virtual void + id (Type const&); + + virtual void + id_none (Type&); + + virtual void + id_none (Type const&); + + virtual void + post (Type&); + + virtual void + post (Type const&); + }; + + struct CIAO_Events_Handlers_Export MCastReceiver_to_EC : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::MCastReceiver_to_EC > + { + virtual void + traverse (Type&); + + virtual void + traverse (Type const&); + + virtual void + pre (Type&); + + virtual void + pre (Type const&); + + virtual void + source (Type&); + + virtual void + source (Type const&); + + virtual void + destination (Type&); + + virtual void + destination (Type const&); + + virtual void + id (Type&); + + virtual void + id (Type const&); + + virtual void + id_none (Type&); + + virtual void + id_none (Type const&); + + virtual void + post (Type&); + + virtual void + post (Type const&); + }; + } + } + +} + +#include "XMLSchema/Writer.hpp" + +namespace CIAO +{ + namespace Config_Handlers + { + namespace Writer + { + struct EventServiceType : Traversal::EventServiceType, + virtual ::XSCRT::Writer< ACE_TCHAR > + { + EventServiceType (::XSCRT::XML::Element< ACE_TCHAR >&); + + virtual void + traverse (Type &o) + { + this->traverse (const_cast <Type const &> (o)); + } + + virtual void + traverse (Type const&); + + protected: + EventServiceType (); + }; + + struct CIAOEventsDef : Traversal::CIAOEventsDef, + virtual ::XSCRT::Writer< ACE_TCHAR > + { + typedef ::CIAO::Config_Handlers::CIAOEventsDef Type; + CIAOEventsDef (::XSCRT::XML::Element< ACE_TCHAR >&); + + virtual void + traverse (Type &o) + { + + this->traverse (const_cast <Type const &> (o)); + } + + + virtual void + traverse (Type const&); + + virtual void + eventServiceConfiguration_pre (Type &o) + { + + this->eventServiceConfiguration_pre (const_cast <Type const &> (o)); + } + + + virtual void + eventServiceConfiguration_pre (Type const&); + + virtual void + eventServiceConfiguration_next (Type &o) + { + + this->eventServiceConfiguration_next (const_cast <Type const &> (o)); + } + + + virtual void + eventServiceConfiguration_next (Type const&); + + virtual void + eventServiceConfiguration_post (Type &o) + { + + this->eventServiceConfiguration_post (const_cast <Type const &> (o)); + } + + + virtual void + eventServiceConfiguration_post (Type const&); + + virtual void + id (Type &o) + { + + this->id (const_cast <Type const &> (o)); + } + + + virtual void + id (Type const&); + + protected: + CIAOEventsDef (); + }; + + struct EventServiceDescription : Traversal::EventServiceDescription, + virtual ::XSCRT::Writer< ACE_TCHAR > + { + typedef ::CIAO::Config_Handlers::EventServiceDescription Type; + EventServiceDescription (::XSCRT::XML::Element< ACE_TCHAR >&); + + virtual void + traverse (Type &o) + { + + this->traverse (const_cast <Type const &> (o)); + } + + + virtual void + traverse (Type const&); + + virtual void + name (Type &o) + { + + this->name (const_cast <Type const &> (o)); + } + + + virtual void + name (Type const&); + + virtual void + node (Type &o) + { + + this->node (const_cast <Type const &> (o)); + } + + + virtual void + node (Type const&); + + virtual void + type (Type &o) + { + + this->type (const_cast <Type const &> (o)); + } + + + virtual void + type (Type const&); + + virtual void + svc_cfg_file (Type &o) + { + + this->svc_cfg_file (const_cast <Type const &> (o)); + } + + + virtual void + svc_cfg_file (Type const&); + + virtual void + filter_pre (Type &o) + { + + this->filter_pre (const_cast <Type const &> (o)); + } + + + virtual void + filter_pre (Type const&); + + virtual void + filter_next (Type &o) + { + + this->filter_next (const_cast <Type const &> (o)); + } + + + virtual void + filter_next (Type const&); + + virtual void + filter_post (Type &o) + { + + this->filter_post (const_cast <Type const &> (o)); + } + + + virtual void + filter_post (Type const&); + + virtual void + id (Type &o) + { + + this->id (const_cast <Type const &> (o)); + } + + + virtual void + id (Type const&); + + protected: + EventServiceDescription (); + }; + + struct FilterType : Traversal::FilterType, + virtual ::XSCRT::Writer< ACE_TCHAR > + { + FilterType (::XSCRT::XML::Element< ACE_TCHAR >&); + + virtual void + traverse (Type &o) + { + this->traverse (const_cast <Type const &> (o)); + } + + virtual void + traverse (Type const&); + + protected: + FilterType (); + }; + + struct Filter : Traversal::Filter, + virtual ::XSCRT::Writer< ACE_TCHAR > + { + typedef ::CIAO::Config_Handlers::Filter Type; + Filter (::XSCRT::XML::Element< ACE_TCHAR >&); + + virtual void + traverse (Type &o) + { + + this->traverse (const_cast <Type const &> (o)); + } + + + virtual void + traverse (Type const&); + + virtual void + name (Type &o) + { + + this->name (const_cast <Type const &> (o)); + } + + + virtual void + name (Type const&); + + virtual void + type (Type &o) + { + + this->type (const_cast <Type const &> (o)); + } + + + virtual void + type (Type const&); + + virtual void + source_pre (Type &o) + { + + this->source_pre (const_cast <Type const &> (o)); + } + + + virtual void + source_pre (Type const&); + + virtual void + source_next (Type &o) + { + + this->source_next (const_cast <Type const &> (o)); + } + + + virtual void + source_next (Type const&); + + virtual void + source_post (Type &o) + { + + this->source_post (const_cast <Type const &> (o)); + } + + + virtual void + source_post (Type const&); + + virtual void + id (Type &o) + { + + this->id (const_cast <Type const &> (o)); + } + + + virtual void + id (Type const&); + + protected: + Filter (); + }; + + struct MCastSenderDescription : Traversal::MCastSenderDescription, + virtual ::XSCRT::Writer< ACE_TCHAR > + { + typedef ::CIAO::Config_Handlers::MCastSenderDescription Type; + MCastSenderDescription (::XSCRT::XML::Element< ACE_TCHAR >&); + + virtual void + traverse (Type &o) + { + + this->traverse (const_cast <Type const &> (o)); + } + + + virtual void + traverse (Type const&); + + virtual void + node (Type &o) + { + + this->node (const_cast <Type const &> (o)); + } + + + virtual void + node (Type const&); + + virtual void + type (Type &o) + { + + this->type (const_cast <Type const &> (o)); + } + + + virtual void + type (Type const&); + + virtual void + svc_cfg_file (Type &o) + { + + this->svc_cfg_file (const_cast <Type const &> (o)); + } + + + virtual void + svc_cfg_file (Type const&); + + virtual void + id (Type &o) + { + + this->id (const_cast <Type const &> (o)); + } + + + virtual void + id (Type const&); + + protected: + MCastSenderDescription (); + }; + + struct MCastReceiverDescription : Traversal::MCastReceiverDescription, + virtual ::XSCRT::Writer< ACE_TCHAR > + { + typedef ::CIAO::Config_Handlers::MCastReceiverDescription Type; + MCastReceiverDescription (::XSCRT::XML::Element< ACE_TCHAR >&); + + virtual void + traverse (Type &o) + { + + this->traverse (const_cast <Type const &> (o)); + } + + + virtual void + traverse (Type const&); + + virtual void + node (Type &o) + { + + this->node (const_cast <Type const &> (o)); + } + + + virtual void + node (Type const&); + + virtual void + type (Type &o) + { + + this->type (const_cast <Type const &> (o)); + } + + + virtual void + type (Type const&); + + virtual void + svc_cfg_file (Type &o) + { + + this->svc_cfg_file (const_cast <Type const &> (o)); + } + + + virtual void + svc_cfg_file (Type const&); + + virtual void + id (Type &o) + { + + this->id (const_cast <Type const &> (o)); + } + + + virtual void + id (Type const&); + + protected: + MCastReceiverDescription (); + }; + + struct EC_to_MCastSender : Traversal::EC_to_MCastSender, + virtual ::XSCRT::Writer< ACE_TCHAR > + { + typedef ::CIAO::Config_Handlers::EC_to_MCastSender Type; + EC_to_MCastSender (::XSCRT::XML::Element< ACE_TCHAR >&); + + virtual void + traverse (Type &o) + { + + this->traverse (const_cast <Type const &> (o)); + } + + + virtual void + traverse (Type const&); + + virtual void + destination (Type &o) + { + + this->destination (const_cast <Type const &> (o)); + } + + + virtual void + destination (Type const&); + + virtual void + id (Type &o) + { + + this->id (const_cast <Type const &> (o)); + } + + + virtual void + id (Type const&); + + protected: + EC_to_MCastSender (); + }; + + struct MCastReceiver_to_EC : Traversal::MCastReceiver_to_EC, + virtual ::XSCRT::Writer< ACE_TCHAR > + { + typedef ::CIAO::Config_Handlers::MCastReceiver_to_EC Type; + MCastReceiver_to_EC (::XSCRT::XML::Element< ACE_TCHAR >&); + + virtual void + traverse (Type &o) + { + + this->traverse (const_cast <Type const &> (o)); + } + + + virtual void + traverse (Type const&); + + virtual void + source (Type &o) + { + + this->source (const_cast <Type const &> (o)); + } + + + virtual void + source (Type const&); + + virtual void + destination (Type &o) + { + + this->destination (const_cast <Type const &> (o)); + } + + + virtual void + destination (Type const&); + + virtual void + id (Type &o) + { + + this->id (const_cast <Type const &> (o)); + } + + + virtual void + id (Type const&); + + protected: + MCastReceiver_to_EC (); + }; + } + } + +} + +namespace CIAO +{ + namespace Config_Handlers + { + CIAO_Events_Handlers_Export + void + CIAOEvents (::CIAO::Config_Handlers::CIAOEventsDef const&, xercesc::DOMDocument*); + } +} + +#endif // CIAOEVENTS_HPP diff --git a/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp new file mode 100644 index 00000000000..6c265bea2a5 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp @@ -0,0 +1,155 @@ +// $Id$ +#include "Utils/XML_Helper.h" +#include "CIAOEvents_Handler.h" +#include "CIAOEvents.hpp" +#include "ciao/Deployment_EventsC.h" + +namespace CIAO +{ + namespace Config_Handlers + { + CIAOEvents_Handler::CIAOEvents_Handler (const ACE_TCHAR *file) : + idl_esd_(0), + esd_(0), + retval_ (false) + { + XML_Helper helper; + + XERCES_CPP_NAMESPACE::DOMDocument *dom = + helper.create_dom (file); + + if (!dom) + throw CIAOEvents_Handler::NoESD (); + + this->esd_.reset (new CIAOEventsDef + (CIAOEvents (dom))); + + if (!this->build_esd ()) + throw NoESD (); + } + + CIAOEvents_Handler::CIAOEvents_Handler (CIAOEventsDef *esd): + idl_esd_(0), + esd_(esd), + retval_(false) + { + if(!this->build_esd()) + throw NoESD (); + } + + + CIAOEvents_Handler::~CIAOEvents_Handler (void) + { + } + + bool + CIAOEvents_Handler::build_esd () + { + this->idl_esd_.reset ( new ::CIAO::DAnCE::EventServiceDeploymentDescriptions ); + + + this->idl_esd_->length (this->esd_->count_eventServiceConfiguration ()); + CORBA::ULong pos_i = 0; + for (CIAOEventsDef::eventServiceConfiguration_const_iterator i = this->esd_->begin_eventServiceConfiguration (); + i != this->esd_->end_eventServiceConfiguration (); + i++) + { + CIAO::DAnCE::EventServiceDeploymentDescription a_esd; + + a_esd.name = CORBA::string_dup (i->name ().c_str ()); + a_esd.node = CORBA::string_dup (i->node ().c_str ()); + + switch (i->type ().integral ()) + { + case ::CIAO::Config_Handlers::EventServiceType::EC_l: + a_esd.type = CIAO::DAnCE::EC; + break; + case ::CIAO::Config_Handlers::EventServiceType::NOTIFY_l: + a_esd.type = CIAO::DAnCE::NOTIFY; + break; + case ::CIAO::Config_Handlers::EventServiceType::RTEC_l: + a_esd.type = CIAO::DAnCE::RTEC; + break; + case ::CIAO::Config_Handlers::EventServiceType::RTNOTIFY_l: + a_esd.type = CIAO::DAnCE::RTNOTIFY; + break; + default: + ACE_ERROR ((LM_ERROR, + "Invalid event service type\n")); + return false; + } + + a_esd.svc_cfg_file = CORBA::string_dup (i->svc_cfg_file ().c_str ()); + + + a_esd.filters.length (i->count_filter ()); + CORBA::ULong pos_j = 0; + for (EventServiceDescription::filter_const_iterator j = i->begin_filter (); + j != i->end_filter (); + j++) + { + a_esd.filters[pos_j].name = CORBA::string_dup (j->name ().c_str ()); + switch (j->type ().integral ()) + { + case ::CIAO::Config_Handlers::FilterType::CONJUNCTION_l: + a_esd.filters[pos_j].type = CIAO::DAnCE::CONJUNCTION; + break; + case ::CIAO::Config_Handlers::FilterType::DISJUNCTION_l: + a_esd.filters[pos_j].type = CIAO::DAnCE::DISJUNCTION; + break; + case ::CIAO::Config_Handlers::FilterType::LOGICAL_AND_l: + a_esd.filters[pos_j].type = CIAO::DAnCE::LOGICAL_AND; + break; + case ::CIAO::Config_Handlers::FilterType::NEGATE_l: + a_esd.filters[pos_j].type = CIAO::DAnCE::NEGATE; + break; + default: + ACE_ERROR ((LM_ERROR, + "Invalid filter type\n")); + return false; + } + + a_esd.filters[pos_j].sources.length (j->count_source ()); + CORBA::ULong pos_k = 0; + for (Filter::source_const_iterator k = j->begin_source (); + k != j->end_source (); + k++) + { + a_esd.filters[pos_j].sources[pos_k] = CORBA::string_dup (k->c_str ()); + pos_k++; + + } + pos_j++; + } + + (*this->idl_esd_)[pos_i] = a_esd; + pos_i++; + } + return true; + } + + + ::CIAO::DAnCE::EventServiceDeploymentDescriptions const * + CIAOEvents_Handler::esd_idl () const + throw (CIAOEvents_Handler::NoESD) + { + if(!this->idl_esd_.get()) + throw NoESD (); + + //else + return this->idl_esd_.get(); + } + + ::CIAO::DAnCE::EventServiceDeploymentDescriptions * + CIAOEvents_Handler::esd_idl () + throw (CIAOEvents_Handler::NoESD) + { + if(!this->idl_esd_.get()) + throw NoESD(); + + //else + return this->idl_esd_.release(); + } + } +} + diff --git a/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.h b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.h new file mode 100644 index 00000000000..7a27aa76a64 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.h @@ -0,0 +1,74 @@ +//================================================ +/** + * @file CIAOEvents_Handler.h + * + * $Id$ + * + * @author Ming Xiong <mxiong@dre.vanderbilt.edu> + */ +//================================================ + +#ifndef CIAO_CONFIG_HANDLERS_CIAOEvents_HANDLER_H +#define CIAO_CONFIG_HANDLERS_CIAOEvents_HANDLER_H + +#include /**/ "ace/pre.h" + +#include "Utils/XML_Helper.h" +#include "ciao/Deployment_EventsC.h" +#include "CIAO_Events_Handlers_Export.h" +#include "ciao/DeploymentC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + + +namespace CIAO +{ + namespace Config_Handlers + { + class CIAOEventsDef; + + /* + * @class CIAOEvents_Handler + * + * @brief Handler class for <CIAOEvents> types. + * + * This class defines handler methods to map values from + * XSC objects, parsed from the descriptor files, to the + * corresponding CORBA IDL type for the schema element. + * + */ + class CIAO_Events_Handlers_Export CIAOEvents_Handler + { + + public: + class NoESD {}; + + CIAOEvents_Handler (const ACE_TCHAR *file); + + CIAOEvents_Handler(CIAOEventsDef *esd); + + ~CIAOEvents_Handler (void); + + CIAO::DAnCE::EventServiceDeploymentDescriptions const *esd_idl (void) const + throw (CIAOEvents_Handler::NoESD); + + CIAO::DAnCE::EventServiceDeploymentDescriptions *esd_idl (void) + throw (CIAOEvents_Handler::NoESD); + + private: + bool build_esd (); + + auto_ptr <CIAO::DAnCE::EventServiceDeploymentDescriptions > idl_esd_; + + auto_ptr <CIAOEventsDef> esd_; + + bool retval_; + + }; + } +} + +#include /**/ "ace/post.h" +#endif /* CIAO_CONFIG_HANDLERS_CIAOEvents_HANDLER_H*/ diff --git a/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc new file mode 100644 index 00000000000..77e20b50566 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc @@ -0,0 +1,28 @@ +//$Id$ + +project (CIAO_Events_Handlers) : acelib, ciao_deployment_stub, xerces, exceptions, ciao_xml_utils, ciao_events_dnc { + sharedname = CIAO_Events_Handlers + dynamicflags = CIAO_EVENTS_HANDLERS_BUILD_DLL + macros += XML_USE_PTHREADS + includes += $(CIAO_ROOT)/tools/Config_Handlers + + Source_Files { + CIAOEvents.cpp + CIAOEvents_Handler.cpp + } + + Header_Files { + } +} + +project (CIAO_Events_Handlers_Tests) : ciao_component_dnc, xerces, exceptions, ciao_xml_utils, ciao_server_dnc { + exename = test + after += CIAO_Events_Handlers + macros += XML_USE_PTHREADS + includes += $(CIAO_ROOT)/tools/Config_Handlers + libs += CIAO_Events_Handlers + + Source_Files { + test.cpp + } +} diff --git a/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers_Export.h b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers_Export.h new file mode 100644 index 00000000000..efe95849905 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers_Export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -n CIAO_Events_Handlers +// ------------------------------ +#ifndef CIAO_EVENTS_HANDLERS_EXPORT_H +#define CIAO_EVENTS_HANDLERS_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (CIAO_EVENTS_HANDLERS_HAS_DLL) +# define CIAO_EVENTS_HANDLERS_HAS_DLL 1 +#endif /* ! CIAO_EVENTS_HANDLERS_HAS_DLL */ + +#if defined (CIAO_EVENTS_HANDLERS_HAS_DLL) && (CIAO_EVENTS_HANDLERS_HAS_DLL == 1) +# if defined (CIAO_EVENTS_HANDLERS_BUILD_DLL) +# define CIAO_Events_Handlers_Export ACE_Proper_Export_Flag +# define CIAO_EVENTS_HANDLERS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define CIAO_EVENTS_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* CIAO_EVENTS_HANDLERS_BUILD_DLL */ +# define CIAO_Events_Handlers_Export ACE_Proper_Import_Flag +# define CIAO_EVENTS_HANDLERS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define CIAO_EVENTS_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* CIAO_EVENTS_HANDLERS_BUILD_DLL */ +#else /* CIAO_EVENTS_HANDLERS_HAS_DLL == 1 */ +# define CIAO_Events_Handlers_Export +# define CIAO_EVENTS_HANDLERS_SINGLETON_DECLARATION(T) +# define CIAO_EVENTS_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* CIAO_EVENTS_HANDLERS_HAS_DLL == 1 */ + +// Set CIAO_EVENTS_HANDLERS_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (CIAO_EVENTS_HANDLERS_NTRACE) +# if (ACE_NTRACE == 1) +# define CIAO_EVENTS_HANDLERS_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define CIAO_EVENTS_HANDLERS_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !CIAO_EVENTS_HANDLERS_NTRACE */ + +#if (CIAO_EVENTS_HANDLERS_NTRACE == 1) +# define CIAO_EVENTS_HANDLERS_TRACE(X) +#else /* (CIAO_EVENTS_HANDLERS_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define CIAO_EVENTS_HANDLERS_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (CIAO_EVENTS_HANDLERS_NTRACE == 1) */ + +#endif /* CIAO_EVENTS_HANDLERS_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/tools/Config_Handlers/CIAO_Events/test.cpp b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/test.cpp new file mode 100644 index 00000000000..63c024a0a89 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/CIAO_Events/test.cpp @@ -0,0 +1,58 @@ +// $Id$ + +#include <iostream> + +#include "CIAOEvents.hpp" +#include "CIAOEvents_Handler.h" +#include "ciao/Deployment_EventsC.h" + +#include "ace/Get_Opt.h" +#include "tao/ORB.h" + +static const char *input_file = "test.ced"; + + +static int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "i:"); + + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'i': + input_file = get_opts.opt_arg (); + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-i <input file> " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command-line + return 0; +} + +using namespace CIAO::Config_Handlers; + +int main (int argc, char *argv[]) +{ + + if (parse_args (argc, argv) != 0) + return 1; + + CIAOEvents_Handler event_handler (input_file); + // Convert XSC to idl datatype + + std::cout << "Instance document import succeeded. Dumping contents to file\n"; + + std::cout << "Test completed!"; + + return 0; + +} diff --git a/TAO/CIAO/tools/Config_Handlers/DD_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/DD_Handler.cpp new file mode 100644 index 00000000000..e3e6b4e7626 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/DD_Handler.cpp @@ -0,0 +1,244 @@ +// $Id$ + +#include "Utils/XML_Helper.h" +#include "SatisfierProperty_Handler.h" +#include "DD_Handler.h" +#include "Any_Handler.h" +#include "Deployment.hpp" +#include "ciao/Deployment_BaseC.h" +#include "CIAO_common.h" + +using namespace std; + +namespace CIAO +{ + namespace Config_Handlers + { + DD_Handler::DD_Handler (const ACE_TCHAR *file) : + idl_domain_(0), + domain_ (0), + retval_ (false) + { + CIAO_TRACE("DP_PCD_Handler::constructor"); + XML_Helper helper; + + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , "inside DD_Handler")); + } + + + XERCES_CPP_NAMESPACE::DOMDocument *dom = + helper.create_dom (file); + + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , "after create dom")); + } + + if (!dom) + throw DD_Handler::NoDomain (); + + Domain *dm = + new Domain (domain (dom)); + + // Domain d = domain (dom); + + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , "dom")); + } + + + this->domain_.reset (dm); + + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , "after reset")); + } + + if (!this->build_domain ()) + throw NoDomain (); + } + + DD_Handler::DD_Handler (Domain *dmn): + idl_domain_(0), + domain_(dmn), + retval_(false) + { + CIAO_TRACE("DP_PCD_Handler::constructor - Domain"); + if(!this->build_domain ()) + throw NoDomain (); + } + + DD_Handler::DD_Handler (::Deployment::Domain *dmn): + idl_domain_(dmn), + domain_(0), + retval_(false) + { + if(!this->build_xsc()) + throw NoDomain (); + } + + DD_Handler::~DD_Handler (void) + { + } + + bool + DD_Handler::build_domain () + { + CIAO_TRACE("DP_PCD_Handler::build_domain"); + this->idl_domain_.reset ( new ::Deployment::Domain ); + + // Read in the name + // Check if the label is there or not + if (domain_->label_p ()) + this->idl_domain_->label = + CORBA::string_dup (domain_->label ().c_str ()); + + if (domain_->UUID_p ()) + this->idl_domain_->UUID = + CORBA::string_dup (domain_->UUID ().c_str ()); + + CORBA::ULong len = domain_->count_node (); + this->idl_domain_->node.length (len); + + if (CIAO::debug_level () > 9) + { + ACE_DEBUG ((LM_DEBUG , "The node length is [%d]\n",len)); + } + + //Resource _resource; + int i =0; + for (Domain::node_const_iterator iter = domain_->begin_node (); + iter != domain_->end_node (); + ++iter,++i + ) + { + // Node* thisNode = (Node*)iter; + this->idl_domain_->node[i].name = + CORBA::string_dup (iter->name ().c_str ()); + + if (iter->label_p ()) + this->idl_domain_->node[i].label = + CORBA::string_dup (iter->label ().c_str ()); + + // length is hard-coded for now ... + // here iterate over the resources ... + CORBA::ULong res_len = iter->count_resource (); + this->idl_domain_->node[i].resource.length (res_len); + + int res_id=0; + // FOR EACH RESOURCE .... + for (Node::resource_const_iterator res_iter = iter->begin_resource (); + res_iter != iter->end_resource (); + res_iter++, res_id++) + { + + this->idl_domain_->node[i].resource[res_id].name = + CORBA::string_dup (res_iter->name ().c_str ()); + + CORBA::ULong resource_type_len = res_iter->count_resourceType (); + this->idl_domain_->node[i].resource[res_id].resourceType.length (resource_type_len); + + int res_type_id =0; + + // FOR EACH RESOURCE TYPE + for (Resource::resourceType_const_iterator res_type_iter = + res_iter->begin_resourceType (); + res_type_iter != res_iter->end_resourceType (); + res_type_iter++, res_type_id++) + { + this->idl_domain_->node[i].resource[res_id].resourceType[res_type_id] = + CORBA::string_dup (res_type_iter->c_str ()); + } + + CORBA::ULong property_len = res_iter->count_property (); + this->idl_domain_->node[i].resource[res_id].property.length (property_len); + + // int property_id =0; + + std::for_each (res_iter->begin_property (), + res_iter->end_property (), + SatisfierProperty_Functor (this->idl_domain_->node[i].resource[res_id].property)); + + /* + //FOR EACH PROPERTY + for (Resource::property_const_iterator property_iter = + res_iter->begin_property (); + property_iter != res_iter->end_property (); + property_iter++, property_id++) + { + this->idl_domain_->node[i].resource[res_id].property[property_id ].name = + CORBA::string_dup (property_iter->name ().c_str ()); + + + this->idl_domain_->node[i].resource[res_id].property[property_id].kind = + ::Deployment::Quantity; + + Any the_any = property_iter->value (); + CORBA::Any a_corba_any; + Any_Handler::extract_into_any (the_any , a_corba_any); + this->idl_domain_->node[i].resource[res_id].property[property_id].value + = a_corba_any; + } + */ + } + } + + return true; + + } + + bool + DD_Handler::build_xsc () + { + return true; + } + + ::Deployment::Domain const * + DD_Handler::domain_idl () const + throw (DD_Handler::NoDomain) + { + if(!this->idl_domain_.get()) + throw NoDomain (); + + //else + return this->idl_domain_.get(); + } + + ::Deployment::Domain * + DD_Handler::domain_idl () + throw (DD_Handler::NoDomain) + { + if(!this->idl_domain_.get()) + throw NoDomain(); + + //else + return this->idl_domain_.release(); + } + + Domain const * + DD_Handler::domain_xsc () const + throw (DD_Handler::NoDomain) + { + if(!this->domain_.get()) + throw NoDomain (); + + //else + return this->domain_.get(); + } + + Domain * + DD_Handler::domain_xsc () + throw (DD_Handler::NoDomain) + { + if(!this->domain_.get()) + throw NoDomain (); + + //else + return this->domain_.release(); + } + } +} + diff --git a/TAO/CIAO/tools/Config_Handlers/DD_Handler.h b/TAO/CIAO/tools/Config_Handlers/DD_Handler.h new file mode 100644 index 00000000000..89aef35182d --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/DD_Handler.h @@ -0,0 +1,139 @@ +// $Id$ +//====================================== +/** +* @file DD_Handler.h +* +* @brief Contains the Domain Descriptior +* Handler +* +* @author Nilabja Roy <nilabjar@dre.vanderbilt.edu> +* +*/ +//====================================== + +#ifndef CIAO_CONFIG_HANDLERS_DD_HANDLER_H +#define CIAO_CONFIG_HANDLERS_DD_HANDLER_H +#include /**/ "ace/pre.h" + +#include "Config_Handlers_Export.h" +#include "ace/Auto_Ptr.h" +// #include "Utils/XML_Helper.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace Deployment +{ +struct Domain; +} + +namespace CIAO +{ +namespace Config_Handlers +{ +class Domain; + +/* +* @class DD_Handler +* +* @brief Handler class for <Domain> +*/ + +class Config_Handlers_Export DD_Handler +{ +public: +class NoDomain {}; + +/** +* @operation constructor +* +* @param The file to be read +*/ +DD_Handler (const ACE_TCHAR *file); + +/** +* @operation constructor +* +* @param dmn The Domain structure +*/ +DD_Handler(Domain *dmn); + +/** +* @operation constructor +* +* @param dmn The Deployment::Domain structure +*/ +DD_Handler(::Deployment::Domain *dmn); + +/** +* @operation destructor +* +*/ +~DD_Handler (void); + +/** +* @operation domain_idl +* +* @brief Returns the const IDL domain +* @return Domain* the IDL domain pointer +*/ +::Deployment::Domain const *domain_idl (void) const +throw (NoDomain); + +/** +* @operation domain_idl +* +* @brief Returns the IDL domain +* @return Domain* the IDL domain pointer +*/ +::Deployment::Domain *domain_idl (void) +throw (NoDomain); + +/** +* @operation domain_xsc +* +* @brief Returns the const XSC domain +* @return Domain* the XSC domain pointer +*/ +Domain const *domain_xsc (void) const +throw (NoDomain); + +/** +* @operation domain_xsc +* +* @brief Returns the XSC domain +* @return Domain* the XSC domain pointer +*/ +Domain *domain_xsc (void) +throw (NoDomain); + +private: +/** +* @operation build_domain +* +* @brief builds the domain structure +*/ +bool build_domain (); + +/** +* @operation build_xsc +* +* @brief builds the XSC data structure +*/ +bool build_xsc (); + +/// The Deployment Domain structure +auto_ptr < ::Deployment::Domain > idl_domain_; + +/// The XSC Domain structure +auto_ptr <Domain> domain_; + +/// The return value used +bool retval_; +}; +} +} + +#include /**/ "ace/post.h" +#endif /* DD_HANDLER_H */ diff --git a/TAO/CIAO/tools/Config_Handlers/ESD_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/ESD_Handler.cpp new file mode 100644 index 00000000000..1ae8a526842 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/ESD_Handler.cpp @@ -0,0 +1,127 @@ +// $Id$ + +#include "ESD_Handler.h" +#include "Basic_Deployment_Data.hpp" +#include "ciao/Deployment_DataC.h" +#include "cdp.hpp" + +namespace CIAO +{ + namespace Config_Handlers + { + void + ESD_Handler::es_deployment_descrs ( + const DeploymentPlan &src, + Deployment::EventServiceDeploymentDescriptions& dest) + throw (Config_Error) + { + CIAO_TRACE("ESD_Handler::instance_deployment_descrs"); + DeploymentPlan::es_const_iterator esd_e = src.end_instance (); + + CORBA::ULong pos = 0; + dest.length (src.count_instance ()); + for (DeploymentPlan::es_const_iterator esd_b = + src.begin_instance (); + esd_b != esd_e; + ++esd_b) + { + ESD_Handler::instance_deployment_descr ((*esd_b), + dest[pos], pos); + pos++; + } + } + + + void + ESD_Handler::es_deployment_descr ( + const EventServiceDeploymentDescription& src, + Deployment::EventServiceDeploymentDescription& dest, + CORBA::ULong pos) + throw (Config_Error) + { + CIAO_TRACE("IDD_Handler::es_deployment_descr"); + try + { + dest.name = src.name ().c_str (); + dest.node = src.node ().c_str (); + dest.svc_cfg_file = src.svc_cfg_file ().c_str ()); + + switch (desc.type ().integral ()) + { + case EventServiceType::EC_l: + dest.type = Deployment::EC; + break; + + case EventServiceType::RTEC_l: + dest.type = Deployment::RTEC; + break; + + case EventServiceType::NOTIFY_l: + dest.type = Deployment::NOTIFY; + break; + + case EventServiceType::RTNOTIFY_l: + dest.type = Deployment::RTNOTIFY; + break; + + default: + throw Config_Error (desc.requirementName (), + "Unknown EventServiceType."); + break; + } + } + catch (Config_Error &ex) + { + ex.name_ = src.name () + ":" + ex.name_; + throw ex; + } + // Done! + } + + EventServiceDeploymentDescription + ESD_Handler::es_deployment_descr ( + const Deployment::EventServiceDeploymentDescription& src) + throw (Config_Error) + { + CIAO_TRACE("ESD_Handler::es_deployment_descr - reverse"); + //Get all the string + XMLSchema::string < ACE_TCHAR > name ((src.name)); + XMLSchema::string < ACE_TCHAR > node ((src.node)); + XMLSchema::string < ACE_TCHAR > svc_cfg_file ((src.svc_cfg_file)); + + // Instantiate the IDD + EventServiceDeploymentDescription esd ( + name, + node, + EventServiceType::RTEC_l, + svc_cfg_file); + + switch (src.EventServiceType) + { + case Deployment::EC: + esd.EventServiceType (EventServiceType::EC); + break; + + case Deployment::RTEC: + esd.EventServiceType (EventServiceType::RTEC); + break; + + case Deployment::NOTIFY: + esd.EventServiceType (EventServiceType::NOTIFY); + break; + + case Deployment::RTNOTIFY: + esd.EventServiceType (EventServiceType::RTNOTIFY); + break; + + default: + throw Config_Error (src.resourceName.in (), + "Unknown EventServiceType."); + break; + } + + return esd; + } + + } +} diff --git a/TAO/CIAO/tools/Config_Handlers/ESD_Handler.h b/TAO/CIAO/tools/Config_Handlers/ESD_Handler.h new file mode 100644 index 00000000000..f89480f00e4 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/ESD_Handler.h @@ -0,0 +1,73 @@ +//============================================================== +/** + * @file ESD_Handler.h + * + * $Id$ + * + * @author Gan Deng <dengg@dre.vanderbilt.edu> + */ +//================================================================ + +#ifndef CIAO_CONFIG_HANDLERS_IDD_HANDLER_H +#define CIAO_CONFIG_HANDLERS_IDD_HANDLER_H +#include /**/ "ace/pre.h" + +#include "Common.h" +#include "tao/Basic_Types.h" +#include "Config_Handlers_Export.h" +#include "IDREF_Base.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace Deployment +{ + struct EventServiceDeploymentDescription; + class EventServiceDeploymentDescriptions; +} + +namespace CIAO +{ + namespace Config_Handlers + { + class DeploymentPlan; + class EventServiceDeploymentDescription; + + /* + * @class ESD_Handler + * + * @brief Handler class for <EventServiceDeploymentDescription> types. + * + * This class defines handler methods to map values from + * XSC EventServiceDeploymentDescription objects, parsed from + * the descriptor files, to the corresponding CORBA IDL type. + * + */ + + class Config_Handlers_Export ESD_Handler + { + public: + static void es_deployment_descrs ( + const DeploymentPlan &src, + ::Deployment::EventServiceDeploymentDescriptions& dest) + throw (Config_Error); + + static EventServiceDeploymentDescription es_deployment_descr ( + const Deployment::EventServiceDeploymentDescription &src) + throw (Config_Error); + + static IDREF_Base<CORBA::ULong> IDREF; + + private: + static void es_deployment_descr ( + const EventServiceDeploymentDescription &src, + ::Deployment::EventServiceDeploymentDescription &dest, + CORBA::ULong pos) + throw (Config_Error); + }; + } +} + +#include /**/ "ace/post.h" +#endif /* CIAO_CONFIG_HANDLERS_IDD_HANDLER_H*/ diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp new file mode 100644 index 00000000000..df3c0884b60 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp @@ -0,0 +1,259 @@ +// $Id$ + +#include "Package_Handlers/CAD_Handler.h" +#include "Basic_Deployment_Data.hpp" +#include "cid.hpp" +#include "ciao/DeploymentC.h" +#include "Req_Handler.h" +#include "CEPE_Handler.h" +#include "ERE_Handler.h" +#include "Utils/Exceptions.h" + +#include "Package_Handlers/SID_Handler.h" + +namespace CIAO +{ + namespace Config_Handlers + { + namespace Packaging + { + namespace + { + struct SPE_Handler + { + static void handle_spe (const SubcomponentPortEndpoint &desc, + ::Deployment::SubcomponentPortEndpoint &toconfig) + { + CIAO_TRACE("SPE_Handler::get_spe"); + + toconfig.portName = desc.portName ().c_str (); + + ACE_CString str (desc.instance ().id ().c_str ()); + CORBA::ULong pos (0); + + SID_Handler::IDREF.find_ref (str, pos); + toconfig.instanceRef = pos; + } + + static SubcomponentPortEndpoint + get_spe (const ::Deployment::SubcomponentPortEndpoint &src) + { + CIAO_TRACE("SPE_Handler::get_spe - reverse"); + ACE_CString str; + SID_Handler::IDREF.find_ref (src.instanceRef, str); + + return SubcomponentPortEndpoint (src.portName.in (), + str.c_str ()); + } + }; + + typedef Sequence_Handler < SubcomponentPortEndpoint, + ::Deployment::SubcomponentPortEndpoints, + ::Deployment::SubcomponentPortEndpoint, + SPE_Handler::handle_spe > SPE_Functor; + + struct ACD_Handler + { + static void handle_acd (const AssemblyConnectionDescription &desc, + ::Deployment::AssemblyConnectionDescription &toconfig) + { + CIAO_TRACE("ACD_Handler::get_acd"); + + toconfig.name = desc.name ().c_str (); + + toconfig.deployRequirement.length (desc.count_deployRequirement ()); + std::for_each (desc.begin_deployRequirement (), + desc.end_deployRequirement (), + Requirement_Functor (toconfig.deployRequirement)); + + toconfig.internalEndpoint.length (desc.count_internalEndpoint ()); + std::for_each (desc.begin_internalEndpoint (), + desc.end_internalEndpoint (), + SPE_Functor (toconfig.internalEndpoint)); + + toconfig.externalEndpoint.length (desc.count_externalEndpoint ()); + std::for_each (desc.begin_externalEndpoint (), + desc.end_externalEndpoint (), + CEPE_Functor (toconfig.externalEndpoint)); + + toconfig.externalReference.length (desc.count_externalReference ()); + std::for_each (desc.begin_externalReference (), + desc.end_externalReference (), + ERE_Functor (toconfig.externalReference)); + + } + + static AssemblyConnectionDescription + get_acd (const ::Deployment::AssemblyConnectionDescription &src) + { + CIAO_TRACE("ACD_Handler::get_acd - reverse"); + + AssemblyConnectionDescription retval (src.name.in ()); + + for (CORBA::ULong i = 0; i < src.deployRequirement.length (); ++i) + retval.add_deployRequirement + (Req_Handler::get_requirement (src.deployRequirement[i])); + + for (CORBA::ULong i = 0; i < src.internalEndpoint.length (); ++i) + retval.add_internalEndpoint + (SPE_Handler::get_spe (src.internalEndpoint[i])); + + for (CORBA::ULong i = 0; i < src.externalEndpoint.length (); ++i) + retval.add_externalEndpoint + (CEPE_Handler::external_port_endpoint (src.externalEndpoint[i])); + + for (CORBA::ULong i = 0; i < src.externalReference.length (); ++i) + retval.add_externalReference + (ERE_Handler::external_ref_endpoint (src.externalReference[i])); + + return retval; + } + }; + + typedef Sequence_Handler < AssemblyConnectionDescription, + ::Deployment::AssemblyConnectionDescriptions, + ::Deployment::AssemblyConnectionDescription, + ACD_Handler::handle_acd > ACD_Functor; + + + struct SPR_Handler + { + static void handle_spr (const SubcomponentPropertyReference &desc, + ::Deployment::SubcomponentPropertyReference &toconfig) + { + CIAO_TRACE("SPR_Handler::get_spr"); + + toconfig.propertyName = desc.propertyName ().c_str (); + + ACE_CString str (desc.instance ().id ().c_str ()); + CORBA::ULong pos (0); + + SID_Handler::IDREF.find_ref (str, pos); + toconfig.instanceRef = pos; + + } + + static SubcomponentPropertyReference + get_spr (const ::Deployment::SubcomponentPropertyReference &src) + { + CIAO_TRACE("SPR_HAndler::get_spr - reverse"); + ACE_CString str; + SID_Handler::IDREF.find_ref (src.instanceRef, str); + + return SubcomponentPropertyReference (src.propertyName.in (), + str.c_str ()); + } + + }; + + typedef Sequence_Handler < SubcomponentPropertyReference, + ::Deployment::SubcomponentPropertyReferences, + ::Deployment::SubcomponentPropertyReference, + SPR_Handler::handle_spr > SPR_Functor; + + struct APM_Handler + { + static void handle_apm (const AssemblyPropertyMapping &desc, + ::Deployment::AssemblyPropertyMapping &toconfig) + { + CIAO_TRACE("APM_Handler::get_apm"); + + toconfig.name = desc.name ().c_str (); + toconfig.externalName = desc.externalName ().c_str (); + + toconfig.delegatesTo.length (desc.count_delegatesTo ()); + std::for_each (desc.begin_delegatesTo (), + desc.end_delegatesTo (), + SPR_Functor (toconfig.delegatesTo)); + } + + static AssemblyPropertyMapping + get_apm (const ::Deployment::AssemblyPropertyMapping &src) + { + CIAO_TRACE("APM_Handler::get_apm - reverse"); + + AssemblyPropertyMapping retval (src.name.in (), + src.externalName.in ()); + + for (CORBA::ULong i = 0; i < src.delegatesTo.length (); ++i) + retval.add_delegatesTo (SPR_Handler::get_spr (src.delegatesTo[i])); + + return retval; + } + }; + + typedef Sequence_Handler < AssemblyPropertyMapping, + ::Deployment::AssemblyPropertyMappings, + ::Deployment::AssemblyPropertyMapping, + APM_Handler::handle_apm > APM_Functor; + } + + + + void + CAD_Handler::component_assem_descr (const ComponentAssemblyDescription &desc, + ::Deployment::ComponentAssemblyDescription &toconfig) + { + CIAO_TRACE("CAD_Handler::component_assem_descr"); + + toconfig.instance.length (desc.count_instance ()); + std::for_each (desc.begin_instance (), + desc.end_instance (), + SID_Functor (toconfig.instance)); + + /* @@ MAJO: Implement Locality */ + + toconfig.connection.length (desc.count_connection ()); + std::for_each (desc.begin_connection (), + desc.end_connection (), + ACD_Functor (toconfig.connection)); + + toconfig.externalProperty.length (desc.count_externalProperty ()); + std::for_each (desc.begin_externalProperty (), + desc.end_externalProperty (), + APM_Functor (toconfig.externalProperty)); + } + + ComponentAssemblyDescription + CAD_Handler::component_assem_descr (const ::Deployment::ComponentAssemblyDescription &src) + { + CIAO_TRACE("CAD_Handler::component_assem_descr - reverse"); + + ComponentAssemblyDescription retval; + + for (CORBA::ULong i = 0; i < src.instance.length (); ++i) + retval.add_instance + (SID_Handler::sub_comp_inst_descr (src.instance[i])); + + for (CORBA::ULong i = 0; i < src.connection.length (); ++i) + retval.add_connection (ACD_Handler::get_acd (src.connection[i])); + + for (CORBA::ULong i = 0; i < src.externalProperty.length (); ++i) + retval.add_externalProperty (APM_Handler::get_apm (src.externalProperty[i])); + + return retval; + + } + + ComponentAssemblyDescription * + CAD_Handler::resolve_cad (const char *) + { + /* xercesc::DOMDocument *dom = + this->xml_helper_->create_dom (uri); + + if (!dom) + throw Parse_Error ("Unable to create DOM for CAD"); + + try { + return new ComponentAssemblyDescription + (componentAssemblyDescription (dom)); + } + catch (...) { + throw Parse_Error ("Unable to create XSC structure for CAD"); + */ + return 0; + } + } + } +} + diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.h b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.h new file mode 100644 index 00000000000..b4c0b790fc0 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.h @@ -0,0 +1,59 @@ +/** + * @file CAD_Handler.h + * @author William Otte <wotte@dre.vanderbilt.edu> + * + * $Id$ + */ + +#ifndef CIAO_PACKAGING_CAD_HANDLER_H +#define CIAO_PACKAGING_CAD_HANDLER_H + +#include /**/ "ace/pre.h" + +#include "Utils/XML_Helper.h" +#include "ciao/DeploymentC.h" +#include "Package_Handlers/Packaging_Handlers_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace Deployment +{ + struct ComponentAssemblyDescription; +} + +namespace CIAO +{ + namespace Config_Handlers + { + class ComponentAssemblyDescription; + + namespace Packaging + { + + /** + * @class CAD_Handler + * + * @brief Handler class for ComponentAssemblyDescription. + */ + class Packaging_Handlers_Export CAD_Handler + { + public: + static void component_assem_descr (const ComponentAssemblyDescription &desc, + ::Deployment::ComponentAssemblyDescription &toconfig); + + static ComponentAssemblyDescription + component_assem_descr (const ::Deployment::ComponentAssemblyDescription &src); + + private: + static ComponentAssemblyDescription * resolve_cad (const char *uri); + }; + + } + } +} + +#include /**/ "ace/post.h" +#endif /* CIAO_PACKAGING_CAD_HANDLER_H */ + diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp new file mode 100644 index 00000000000..8818ff34518 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp @@ -0,0 +1,383 @@ +// $Id$ +#include "tao/AnyTypeCode/AnyTypeCode_methods.h" +#include "Package_Handlers/CID_Handler.h" +#include "Package_Handlers/CPD_Handler.h" +#include "Package_Handlers/IAD_Handler.h" +#include "Package_Handlers/CAD_Handler.h" +#include "Package_Handlers/Comp_Intf_Descr_Handler.h" +#include "Package_Handlers/NIA_Handler.h" +#include "SatisfierProperty_Handler.h" +#include "Req_Handler.h" + +#include "Basic_Deployment_Data.hpp" +#include "ciao/Deployment_DataC.h" +#include "Utils/XML_Helper.h" +#include "Utils/Exceptions.h" + +#include "Deployment.hpp" +#include "Property_Handler.h" + + +namespace CIAO +{ + namespace Config_Handlers + { + namespace Packaging + { + + IDREF_Base<CORBA::ULong> CID_Handler::IDREF; + + namespace + { + struct Capability_Handler + { + static void handle_capability (const Capability &desc, + ::Deployment::Capability &toconfig) + { + CIAO_TRACE ("Capability_Handler::get_capability"); + + toconfig.name = desc.name ().c_str (); + + toconfig.resourceType.length (desc.count_resourceType ()); + std::for_each (desc.begin_resourceType (), + desc.end_resourceType (), + String_Seq_Functor (toconfig.resourceType)); + + toconfig.property.length (desc.count_property ()); + std::for_each (desc.begin_property (), + desc.end_property (), + SatisfierProperty_Functor (toconfig.property)); + } + + static Capability get_capability (const ::Deployment::Capability &src) + { + CIAO_TRACE ("Capability_Handler::get_capability - reverse"); + + Capability retval (src.name.in ()); + + for (CORBA::ULong i = 0; i < src.resourceType.length (); ++i) + retval.add_resourceType (src.resourceType[i]); + + for (CORBA::ULong i = 0; i < src.property.length (); ++i) + retval.add_property (SatisfierProperty_Handler::get_sat_property (src.property[i])); + + return retval; + } + }; + + typedef Sequence_Handler < Capability, + ::Deployment::Capabilities, + ::Deployment::Capability, + Capability_Handler::handle_capability > Capability_Functor; + + struct IR_Handler + { + static void handle_ir (const ImplementationRequirement &desc, + ::Deployment::ImplementationRequirement &toconfig) + { + CIAO_TRACE ("IR_Handler::get_ir"); + + if (desc.resourceUsage_p ()) + { + switch (desc.resourceUsage ().integral ()) + { + case ResourceUsageKind::None_l: + toconfig.resourceUsage = Deployment::None; + break; + + case ResourceUsageKind::InstanceUsesResource_l: + toconfig.resourceUsage = Deployment::InstanceUsesResource; + break; + + case ResourceUsageKind::ResourceUsesInstance_l: + toconfig.resourceUsage = Deployment::ResourceUsesInstance; + break; + + case ResourceUsageKind::PortUsesResource_l: + toconfig.resourceUsage = Deployment::PortUsesResource; + break; + + case ResourceUsageKind::ResourceUsesPort_l: + toconfig.resourceUsage = Deployment::ResourceUsesPort; + break; + + default: + throw Config_Error (desc.name (), + "Unknown ResourceUsageKind."); + break; + } + } + + if (desc.resourcePort_p ()) + toconfig.resourcePort = desc.resourcePort ().c_str (); + + if (desc.componentPort_p ()) + toconfig.componentPort = desc.componentPort ().c_str (); + + toconfig.resourceType = desc.resourceType ().c_str (); + toconfig.name = desc.name ().c_str (); + + std::for_each (desc.begin_property (), + desc.end_property (), + Property_Functor (toconfig.property )); + } + + static ImplementationRequirement + get_ir (const ::Deployment::ImplementationRequirement &src) + { + CIAO_TRACE ("IR_Handler::get_ir - reverse"); + + ImplementationRequirement retval (src.resourceType.in (), + src.name.in ()); + + if (src.resourceUsage.length () == 1) + switch (src.resourceUsage[0]) + { + case Deployment::None: + retval.resourceUsage (ResourceUsageKind::None); + break; + + case Deployment::InstanceUsesResource: + retval.resourceUsage (ResourceUsageKind::InstanceUsesResource); + break; + + case Deployment::ResourceUsesInstance: + retval.resourceUsage (ResourceUsageKind::ResourceUsesInstance); + break; + + case Deployment::PortUsesResource: + retval.resourceUsage (ResourceUsageKind::PortUsesResource); + break; + + case Deployment::ResourceUsesPort: + retval.resourceUsage (ResourceUsageKind::ResourceUsesPort); + break; + + default: + throw Config_Error (src.name.in (), + "Unknown ResourceUsageKind."); + break; + } + + retval.resourcePort (src.resourcePort.in ()); + + retval.componentPort (src.componentPort.in ()); + + for (CORBA::ULong i = 0; i < src.property.length (); ++i) + retval.add_property (Property_Handler::get_property (src.property[i])); + + return retval; + } + }; + + typedef Sequence_Handler < ImplementationRequirement, + ::Deployment::ImplementationRequirements, + ::Deployment::ImplementationRequirement, + IR_Handler::handle_ir > IR_Functor; + + + + struct MID_Handler + { + static void handle_mid (const MonolithicImplementationDescription &desc, + ::Deployment::MonolithicImplementationDescription &toconfig) + { + CIAO_TRACE ("MID_Handler::get_mid"); + + toconfig.nodeExecParameter.length (desc.count_nodeExecParameter ()); + std::for_each (desc.begin_nodeExecParameter (), + desc.end_nodeExecParameter (), + Property_Functor (toconfig.nodeExecParameter)); + + toconfig.componentExecParameter.length (desc.count_componentExecParameter ()); + std::for_each (desc.begin_componentExecParameter (), + desc.end_componentExecParameter (), + Property_Functor (toconfig.componentExecParameter)); + + toconfig.deployRequirement.length (desc.count_deployRequirement ()); + std::for_each (desc.begin_deployRequirement (), + desc.end_deployRequirement (), + IR_Functor (toconfig.deployRequirement)); + + toconfig.primaryArtifact.length (desc.count_primaryArtifact ()); + std::for_each (desc.begin_primaryArtifact (), + desc.end_primaryArtifact (), + NIA_Functor (toconfig.primaryArtifact)); + } + + static MonolithicImplementationDescription + get_mid (const ::Deployment::MonolithicImplementationDescription &src) + { + CIAO_TRACE ("MID_Handler::get_mid - reverse"); + + MonolithicImplementationDescription retval; + + for (CORBA::ULong i = 0; i < src.nodeExecParameter.length (); ++i) + retval.add_nodeExecParameter + (Property_Handler::get_property (src.nodeExecParameter[i])); + + for (CORBA::ULong i = 0; i < src.componentExecParameter.length (); ++i) + retval.add_componentExecParameter + (Property_Handler::get_property (src.componentExecParameter[i])); + + for (CORBA::ULong i = 0; i < src.deployRequirement.length (); ++i) + retval.add_deployRequirement + (IR_Handler::get_ir (src.deployRequirement[i])); + + for (CORBA::ULong i = 0; i < src.primaryArtifact.length (); ++i) + retval.add_primaryArtifact + (NIA_Handler::get_nia (src.primaryArtifact[i])); + + return retval; + } + + }; + + typedef Sequence_Handler < MonolithicImplementationDescription, + ::Deployment::MonolithicImplementationDescriptions, + ::Deployment::MonolithicImplementationDescription, + MID_Handler::handle_mid > MID_Functor; + + } + + void + CID_Handler::component_impl_descr ( + const ComponentImplementationDescription &desc, + ::Deployment::ComponentImplementationDescription &toconfig) + { + CIAO_TRACE ("CID_Handler::component_impl_descr"); + + const ComponentImplementationDescription *cid = 0; + std::auto_ptr <ComponentImplementationDescription> xsc_cid; + + if (desc.href_p ()) + { + xsc_cid.reset (CID_Handler::resolve_cid (desc.href ().c_str ())); + cid = xsc_cid.get (); + } + else + cid = &desc; + + if (cid->label_p ()) + toconfig.label = cid->label ().c_str (); + + if (cid->UUID_p ()) + toconfig.UUID = cid->UUID ().c_str (); + + if (cid->implements_p ()) + { // MAJO: We should be able to assume this exists, fix broken interpeters.. + Comp_Intf_Descr_Handler::comp_intf_descr (cid->implements (), + toconfig.implements); + } + + if (cid->assemblyImpl_p ()) + { + toconfig.assemblyImpl.length (1); + CAD_Handler::component_assem_descr (cid->assemblyImpl (), + toconfig.assemblyImpl[0]); + } + else if (cid->monolithicImpl_p ()) + { + toconfig.monolithicImpl.length (1); + MID_Handler::handle_mid (cid->monolithicImpl (), + toconfig.monolithicImpl[0]); + } + else + throw Plan_Error ("ComponentImplementationDescription must have either assemblyImpl or monolithicImpl"); + + // configProperty + toconfig.configProperty.length (cid->count_configProperty ()); + std::for_each (cid->begin_configProperty (), + cid->end_configProperty (), + Property_Functor (toconfig.configProperty)); + + // capability + toconfig.capability.length (cid->count_capability ()); + std::for_each (cid->begin_capability (), + cid->end_capability (), + Capability_Functor (toconfig.capability)); + + // dependsOn + toconfig.dependsOn.length (cid->count_dependsOn ()); + CORBA::ULong pos = 0; + for (ComponentImplementationDescription::dependsOn_const_iterator i = cid->begin_dependsOn (); + i != cid->end_dependsOn (); + ++i) + toconfig.dependsOn[pos++].requiredType = i->requiredType ().c_str (); + + // infoProperty + toconfig.infoProperty.length (cid->count_infoProperty ()); + std::for_each (cid->begin_infoProperty (), + cid->end_infoProperty (), + Property_Functor (toconfig.infoProperty)); + + } + + ComponentImplementationDescription + CID_Handler::component_impl_descr (const Deployment::ComponentImplementationDescription& src) + { + CIAO_TRACE ("CID_Handler::component_impl_descr - reverse"); + + ComponentImplementationDescription retval; + + retval.label (src.label.in ()); + retval.UUID (src.UUID.in ()); + + { + retval.implements (Comp_Intf_Descr_Handler::comp_intf_descr (src.implements)); + } + + if (src.assemblyImpl.length () == 1) + { + retval.assemblyImpl (CAD_Handler::component_assem_descr (src.assemblyImpl[0])); + } + else if (src.monolithicImpl.length () == 1) + { + retval.monolithicImpl (MID_Handler::get_mid (src.monolithicImpl[0])); + } + else + ACE_DEBUG ((LM_WARNING, "Warning: ComponentImplementationDescription lacks " + "either a required assemblyImpl or monolithicImpl, or has too many")); + + for (CORBA::ULong i = 0; i < src.configProperty.length (); ++i) + { + retval.add_configProperty ( + Property_Handler::get_property (src.configProperty[i])); + } + + for (CORBA::ULong i = 0; i < src.dependsOn.length (); ++i) + { + retval.add_dependsOn (ImplementationDependency (src.dependsOn[i].requiredType.in ())); + } + + for (CORBA::ULong i = 0; i < src.infoProperty.length (); ++i) + { + retval.add_infoProperty ( + Property_Handler::get_property (src.infoProperty[i])); + } + + return retval; + } + + ComponentImplementationDescription * + CID_Handler::resolve_cid (const char *uri) + { + CIAO_TRACE ("CID_Handler::resolve_cid"); + + xercesc::DOMDocument *dom = XML_HELPER->create_dom (uri); + + if (!dom) + throw Parse_Error ("Unable to create DOM for CID"); + + try { + return new ComponentImplementationDescription + (componentImplementationDescription (dom)); + } + catch (...) { + throw Parse_Error ("Unable to create XSC structure for CID"); + } + } + } + + } +} diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.h b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.h new file mode 100644 index 00000000000..ef1263ad139 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.h @@ -0,0 +1,67 @@ +/** + * @file CID_Handler.h + * + * $Id$ + * + * @author William Otte <wotte@dre.vanderbilt.edu + */ + +#ifndef CIAO_PACKAGING_CID_HANDLER_H +#define CIAO_PACKAGING_CID_HANDLER_H + +#include /**/ "ace/pre.h" + +#include "IDREF_Base.h" +#include "Package_Handlers/Packaging_Handlers_Export.h" +#include "tao/Basic_Types.h" + +namespace Deployment +{ + struct ComponentImplementationDescription; +} + + +namespace CIAO +{ + namespace Config_Handlers + { + class ComponentImplementationDescription; + + namespace Packaging + { + + /** + * @class CID_Handler + * + * @brief Handler class for <CCMComponentImplementationDescription> types. + * + * This class defines handler methods to map values from + * XSC objects, parsed from the descriptor files, to the + * corresponding CORBA IDL type for the schema element. + * + */ + class Packaging_Handlers_Export CID_Handler + { + + public: + /// Maps the values from the XSC object + /// <ComponentImplementationDescription> to the CORBA IDL type + /// <Deployment::ComponentImplementationDescription>. + static void component_impl_descr (const ComponentImplementationDescription &desc, + ::Deployment::ComponentImplementationDescription &toconfig); + + static IDREF_Base<CORBA::ULong> IDREF; + + static ComponentImplementationDescription + component_impl_descr (const Deployment::ComponentImplementationDescription& src); + + private: + + static ComponentImplementationDescription * resolve_cid (const char *uri); + }; + } + } +} + +#include /**/ "ace/post.h" +#endif /* CIAO_PACKAGING_CID_HANDLER_H*/ diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp new file mode 100644 index 00000000000..09f02684a21 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp @@ -0,0 +1,159 @@ +// $Id$ +#include "tao/AnyTypeCode/AnyTypeCode_methods.h" +#include "Package_Handlers/CPD_Handler.h" +#include "Package_Handlers/CID_Handler.h" +#include "Package_Handlers/Comp_Intf_Descr_Handler.h" +#include "Basic_Deployment_Data.hpp" +#include "ciao/Packaging_DataC.h" +#include "Deployment.hpp" +#include "Utils/Exceptions.h" +#include "Property_Handler.h" + +namespace CIAO +{ + namespace Config_Handlers + { + namespace Packaging + { + namespace + { + struct PCI_Handler + { + static void handle_pci (const PackagedComponentImplementation &desc, + ::Deployment::PackagedComponentImplementation &toconfig) + { + CIAO_TRACE ("PCI_Handler::get_pci"); + toconfig.name = desc.name ().c_str (); + + CID_Handler::component_impl_descr (desc.referencedImplementation (), + toconfig.referencedImplementation); + } + + static PackagedComponentImplementation + get_pci (const ::Deployment::PackagedComponentImplementation &src) + { + CIAO_TRACE ("PCI_Handler::get_pci - reverse"); + return PackagedComponentImplementation (src.name.in (), + CID_Handler::component_impl_descr (src.referencedImplementation)); + } + }; + + typedef Sequence_Handler < PackagedComponentImplementation, + ::Deployment::PackagedComponentImplementations, + ::Deployment::PackagedComponentImplementation, + PCI_Handler::handle_pci > PCI_Functor; + } + + void + CPD_Handler::handle_component_package_descr (const ComponentPackageDescription &desc, + ::Deployment::ComponentPackageDescription &toconfig) + { + CIAO_TRACE ("CPD_Handler::component_package_descr"); + + auto_ptr < ComponentPackageDescription > xsc_cpd; + const ComponentPackageDescription *cpd = 0; + + if (desc.href_p ()) + { + xsc_cpd.reset (CPD_Handler::resolve_cpd (desc.href ().c_str ())); + cpd = xsc_cpd.get (); + } + else + cpd = &desc; + + if (cpd->label_p ()) + toconfig.label = cpd->label ().c_str (); + + if (cpd->UUID_p ()) + toconfig.UUID = cpd->UUID ().c_str (); + + // CID + if (cpd->realizes_p ()) + Comp_Intf_Descr_Handler::comp_intf_descr (cpd->realizes (), + toconfig.realizes); + + // Config Properties + toconfig.configProperty.length (desc.count_configProperty ()); + std::for_each (cpd->begin_infoProperty (), + cpd->end_infoProperty (), + Property_Functor (toconfig.configProperty)); + + // ACE_DEBUG ((LM_ERROR, "***** Count of PCIs is %i\n", + // cpd->count_implementation ())); + + // Packaged Component Implementations + toconfig.implementation.length ( cpd->count_implementation ()); + std::for_each (cpd->begin_implementation (), + cpd->end_implementation (), + PCI_Functor (toconfig.implementation)); + + // Info Properties + toconfig.infoProperty.length (cpd->count_infoProperty ()); + std::for_each (cpd->begin_infoProperty (), + cpd->end_infoProperty (), + Property_Functor (toconfig.infoProperty)); + } + + ComponentPackageDescription + CPD_Handler::component_package_descr (const Deployment::ComponentPackageDescription& src) + { + CIAO_TRACE ("CPD_Handler::component_package_descr - reverse"); + ComponentPackageDescription toconfig; + + if (src.label.in () != 0) + toconfig.label (src.label.in ()); + + if (src.UUID.in () != 0) + toconfig.UUID (src.UUID.in ()); + + { + toconfig.realizes + (Comp_Intf_Descr_Handler::comp_intf_descr (src.realizes)); + } + + for (size_t i = 0; i < src.configProperty.length (); ++i) + { + toconfig.add_configProperty ( + Property_Handler::get_property (src.configProperty[i])); + } + + { // Packaged Component Implementations + for (size_t i = 0; i < src.implementation.length (); ++i) + toconfig.add_implementation ( + PCI_Handler::get_pci (src.implementation[i])); + } + + for (size_t i = 0; i < src.infoProperty.length (); ++i) + { + toconfig.add_infoProperty ( + Property_Handler::get_property (src.infoProperty[i])); + } + + return toconfig; + } + + ComponentPackageDescription * CPD_Handler::resolve_cpd (const char *uri) + { + CIAO_TRACE ("CPD_Handler::resolve_cpd"); + if (!XML_HELPER->is_initialized ()) + return 0; + + xercesc::DOMDocument* dom = + XML_HELPER->create_dom (uri); + + if (!dom) + throw Parse_Error ("Unable to create DOM for component package description"); + + try { + //ACE_ERROR ((LM_ERROR, "Creating new CPD XSC Object\n")); + return new ComponentPackageDescription (componentPackageDescription (dom)); + } + catch (...) { + throw Parse_Error ("Unable to create XSC structure for CID"); + } + } + } + + + } +} diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.h b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.h new file mode 100644 index 00000000000..9535d24eef2 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.h @@ -0,0 +1,74 @@ +//================================================ +/** + * @file CPD_Handler.h + * + * $Id$ + * + * @author Ming Xiong <mxiong@dre.vanderbilt.edu> + */ +//================================================ + +#ifndef CIAO_CONFIG_HANDLERS_STD_CPD_HANDLER_H +#define CIAO_CONFIG_HANDLERS_STD_CPD_HANDLER_H + +#include /**/ "ace/pre.h" + +#include <memory> +#include "Utils/XML_Helper.h" +#include "Utils/Functors.h" +#include "Package_Handlers/Packaging_Handlers_Export.h" + +namespace Deployment +{ + struct ComponentPackageDescription; + class ComponentPackageDescriptions; +} + +namespace CIAO +{ + namespace Config_Handlers + { + class ComponentPackageDescription; + + namespace Packaging + { + + /* + * @class CPD_Handler + * + * @brief Handler class for <CCMComponentPackageDescription> types. + * + * This class defines handler methods to map values from + * XSC objects, parsed from the descriptor files, to the + * corresponding CORBA IDL type for the schema element. + * + */ + class Packaging_Handlers_Export CPD_Handler + { + + public: + /// Maps the values from the XSC object + /// <ComponentPackageDescription> to the CORBA IDL type + /// <Deployment::ComponentPackageDescription>. + static void handle_component_package_descr (const ComponentPackageDescription &desc, + ::Deployment::ComponentPackageDescription &toconfig); + + static ComponentPackageDescription + component_package_descr (const Deployment::ComponentPackageDescription& src); + private: + static ComponentPackageDescription * resolve_cpd (const char *uri); + + }; + + typedef Sequence_Handler < ComponentPackageDescription, + ::Deployment::ComponentPackageDescriptions, + ::Deployment::ComponentPackageDescription, + CPD_Handler::handle_component_package_descr > CPD_Functor; + + } + + } +} + +#include /**/ "ace/post.h" +#endif /* CIAO_CONFIG_HANDLERS_CPD_HANDLER_H*/ diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp new file mode 100644 index 00000000000..74223c6b2d8 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp @@ -0,0 +1,164 @@ +// $Id$ +#include "Comp_Intf_Descr_Handler.h" + +#include "Utils/XML_Helper.h" +#include "Utils/Exceptions.h" +#include "Utils/Functors.h" +#include "DataType_Handler.h" +#include "Property_Handler.h" +#include "Deployment.hpp" +#include "Package_Handlers/CPD_Handler.h" +#include "tools/Config_Handlers/CPD_Handler.h" +#include "ciao/CIAO_common.h" +namespace CIAO +{ + namespace Config_Handlers + { + namespace Packaging + { + namespace + { + struct Comp_Prop_Handler + { + static void handle_cpd (const ComponentPropertyDescription &desc, + ::Deployment::ComponentPropertyDescription &toconfig) + { + CIAO_TRACE ("Comp_Prop_Handler::get_cpd"); + + toconfig.name = desc.name ().c_str (); + DataType_Handler::data_type (desc.type (), + toconfig.type); + } + + static ComponentPropertyDescription + get_cpd (const ::Deployment::ComponentPropertyDescription &src) + { + CIAO_TRACE ("Comp_Prop_Handler::get_cpd - reverse"); + + return ComponentPropertyDescription (src.name.in (), + DataType_Handler::data_type (src.type)); + } + + }; + + typedef Sequence_Handler < ComponentPropertyDescription, + ::Deployment::ComponentPropertyDescriptions, + ::Deployment::ComponentPropertyDescription, + Comp_Prop_Handler::handle_cpd > Comp_Prop_Functor; + } + + void + Comp_Intf_Descr_Handler::comp_intf_descr ( + const ComponentInterfaceDescription &desc, + ::Deployment::ComponentInterfaceDescription &toconfig) + { + CIAO_TRACE ("Comp_Intf_Descr_Handler::comp_intf_descr"); + + const ComponentInterfaceDescription *cid = 0; + std::auto_ptr <ComponentInterfaceDescription> safe_cid; + + if (desc.href_p ()) + { + safe_cid.reset (Comp_Intf_Descr_Handler::resolve_cid (desc.href ().c_str ())); + cid = safe_cid.get (); + } + else + cid = &desc; + + if (cid->label_p ()) + toconfig.label = cid->label ().c_str (); + + if (cid->UUID_p ()) + toconfig.UUID = cid->UUID ().c_str (); + + // MAJO: SpecificType should be required. + if (cid->specificType_p ()) + toconfig.specificType = cid->specificType ().c_str (); + + toconfig.supportedType.length (cid->count_supportedType ()); + std::for_each (cid->begin_supportedType (), + cid->end_supportedType (), + String_Seq_Functor (toconfig.supportedType)); + + toconfig.idlFile.length (cid->count_idlFile ()); + std::for_each (cid->begin_idlFile (), + cid->end_idlFile (), + String_Seq_Functor (toconfig.idlFile)); + + toconfig.configProperty.length (cid->count_configProperty ()); + std::for_each (cid->begin_configProperty (), + cid->end_configProperty (), + Property_Functor (toconfig.configProperty)); + + toconfig.port.length (cid->count_port ()); + std::for_each (cid->begin_port (), + cid->end_port (), + CIAO::Config_Handlers::CPD_Functor (toconfig.port)); + + toconfig.property.length (cid->count_property ()); + std::for_each (cid->begin_property (), + cid->end_property (), + Comp_Prop_Functor (toconfig.property)); + + toconfig.infoProperty.length (cid->count_infoProperty ()); + std::for_each (cid->begin_infoProperty (), + cid->end_infoProperty (), + Property_Functor (toconfig.infoProperty)); + } + + + ComponentInterfaceDescription + Comp_Intf_Descr_Handler::comp_intf_descr ( + const ::Deployment::ComponentInterfaceDescription &src) + { + CIAO_TRACE ("Comp_Intf_Descr_Handler::comp_intf_descr - reverse"); + ComponentInterfaceDescription retval; + + retval.label (src.label.in ()); + retval.UUID (src.UUID.in ()); + retval.specificType (src.specificType.in ()); + + for (CORBA::ULong i = 0; i < src.supportedType.length (); ++i) + retval.add_supportedType (src.supportedType[i]); + + for (CORBA::ULong i = 0; i < src.idlFile.length (); ++i) + retval.add_idlFile (src.idlFile[i]); + + for (CORBA::ULong i = 0; i < src.configProperty.length (); ++i) + retval.add_configProperty ( + Property_Handler::get_property (src.configProperty[i])); + + for (CORBA::ULong i = 0; i < src.port.length (); ++i) + retval.add_port + (CIAO::Config_Handlers::CPD_Handler::component_port_description (src.port[i])); + + for (CORBA::ULong i = 0; i < src.property.length (); ++i) + retval.add_property (Comp_Prop_Handler::get_cpd (src.property[i])); + + for (CORBA::ULong i = 0; i < src.infoProperty.length (); ++i) + retval.add_infoProperty ( + Property_Handler::get_property (src.infoProperty[i])); + + return retval; + } + + ComponentInterfaceDescription * + Comp_Intf_Descr_Handler::resolve_cid (const char *uri) + { + CIAO_TRACE ("Comp_Intf_Descr_Handler::resolve_cid"); + + xercesc::DOMDocument *dom = XML_HELPER->create_dom (uri); + + if (!dom) + throw Parse_Error ("Unable to create DOM for Component Interface Description."); + + try { + return new ComponentInterfaceDescription + (componentInterfaceDescription (dom)); + } + catch (...) { + throw Parse_Error ("Unable to create XSC structure for Component Interface Description"); + } + } + } + }} diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h new file mode 100644 index 00000000000..e4eb2b0af58 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h @@ -0,0 +1,54 @@ +/** + * @file Comp_Intf_Descr_Handler.h + * @author William Otte <wotte@dre.vanderbilt.edu> + * + * $Id$ + */ + +#ifndef CIAO_PACKAGING_COMP_INTF_DESCR_HANDLER_H +#define CIAO_PACKAGING_COMP_INTF_DESCR_HANDLER_H + +#include /**/ "ace/pre.h" + +#include "Utils/XML_Helper.h" +#include "ciao/DeploymentC.h" +#include "Package_Handlers/Packaging_Handlers_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + + +namespace CIAO +{ + namespace Config_Handlers + { + class ComponentInterfaceDescription; + + namespace Packaging + { + + /** + * @class Comp_Intf_Descr_Handler + * + * @brief Handler class for ComponentInterfaceDescription. + */ + class Packaging_Handlers_Export Comp_Intf_Descr_Handler + { + public: + static void comp_intf_descr (const ComponentInterfaceDescription &descr, + ::Deployment::ComponentInterfaceDescription &toconfig); + + static ComponentInterfaceDescription + comp_intf_descr (const ::Deployment::ComponentInterfaceDescription &src); + + private: + static ComponentInterfaceDescription *resolve_cid (const char *uri); + }; + } + } +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_PACKAGING_COMP_INTF_DESCR_HANDLER_H */ diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp new file mode 100644 index 00000000000..f77a5f092f1 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp @@ -0,0 +1,122 @@ +// $Id$ +#include "Package_Handlers/IAD_Handler.h" +#include "Package_Handlers/NIA_Handler.h" +#include "Basic_Deployment_Data.hpp" +#include "ciao/Packaging_DataC.h" +#include "Property_Handler.h" +#include "Req_Handler.h" +#include "Utils/Functors.h" +#include "Utils/Exceptions.h" +#include "Utils/XML_Helper.h" + +#include "Deployment.hpp" +#include "ciao/CIAO_common.h" + +namespace CIAO +{ + namespace Config_Handlers + { + namespace Packaging + { + + void + IAD_Handler::impl_artifact_descr (const ImplementationArtifactDescription &desc, + ::Deployment::ImplementationArtifactDescription &toconfig) + { + CIAO_TRACE ("IAD_Handler::impl_artifact_descr"); + + const ImplementationArtifactDescription *iad = 0; + std::auto_ptr <ImplementationArtifactDescription> safe_iad; + + if (desc.href_p ()) + { + safe_iad.reset (IAD_Handler::resolve_iad (desc.href ().c_str ())); + iad = safe_iad.get (); + } + else + iad = &desc; + + + if (iad->label_p ()) + toconfig.label = iad->label ().c_str (); + + if (iad->UUID_p ()) + toconfig.UUID = iad->UUID ().c_str (); + + toconfig.location.length (iad->count_location ()); + std::for_each (iad->begin_location (), + iad->end_location (), + String_Seq_Functor (toconfig.location)); + + toconfig.dependsOn.length (iad->count_dependsOn ()); + std::for_each (iad->begin_dependsOn (), + iad->end_dependsOn (), + NIA_Functor (toconfig.dependsOn)); + + toconfig.execParameter.length (iad->count_execParameter ()); + std::for_each (iad->begin_execParameter (), + iad->end_execParameter (), + Property_Functor (toconfig.execParameter)); + + toconfig.infoProperty.length (iad->count_infoProperty ()); + std::for_each (iad->begin_infoProperty (), + iad->end_infoProperty (), + Property_Functor (toconfig.infoProperty)); + + toconfig.deployRequirement.length (iad->count_deployRequirement ()); + std::for_each (iad->begin_deployRequirement (), + iad->end_deployRequirement (), + Requirement_Functor (toconfig.deployRequirement )); + } + + ImplementationArtifactDescription + IAD_Handler::impl_artifact_descr (const ::Deployment::ImplementationArtifactDescription &src) + { + CIAO_TRACE ("IAD_Handler::impl_artifact_descr - reverse"); + ImplementationArtifactDescription retval; + + retval.label (src.label.in ()); + retval.UUID (src.UUID.in ()); + + for (CORBA::ULong i = 0; i < src.location.length (); ++i) + retval.add_location (src.location[i]); + + for (CORBA::ULong i = 0; i < src.dependsOn.length (); ++i) + retval.add_dependsOn (NIA_Handler::get_nia (src.dependsOn[i])); + + for (CORBA::ULong i = 0; i < src.execParameter.length (); ++i) + retval.add_execParameter + (Property_Handler::get_property (src.execParameter[i])); + + for (CORBA::ULong i = 0; i < src.infoProperty.length (); ++i) + retval.add_infoProperty + (Property_Handler::get_property ( src.infoProperty[i])); + + for (CORBA::ULong i = 0; i < src.deployRequirement.length (); ++i) + retval.add_deployRequirement + (Req_Handler::get_requirement (src.deployRequirement[i])); + + return retval; + } + + ImplementationArtifactDescription * IAD_Handler::resolve_iad (const char *uri) + { + CIAO_TRACE ("IAD_Handler::resolve_iad"); + + xercesc::DOMDocument *dom = XML_HELPER->create_dom (uri); + + if (!dom) + throw Parse_Error ("Unable to create DOM for IAD"); + + try { + return new ImplementationArtifactDescription + (implementationArtifactDescription (dom)); + } + catch (...) { + throw Parse_Error ("Unable to create XSC structure for IAD"); + } + } + + } + } +} diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.h b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.h new file mode 100644 index 00000000000..869dbe25a8a --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.h @@ -0,0 +1,66 @@ +//================================================ +/** + * @file IAD_Handler.h + * + * $Id$ + * + * @author William Otte <wotte@dre.vanderbilt.edu> + */ +//================================================ + +#ifndef CIAO_CONFIG_HANDLERS_STD_IAD_HANDLER_H +#define CIAO_CONFIG_HANDLERS_STD_IAD_HANDLER_H + +#include /**/ "ace/pre.h" + +#include "Package_Handlers/Packaging_Handlers_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace Deployment +{ + struct ImplementationArtifactDescription; + struct ImplementationArtifactDescriptions; +} + +namespace CIAO +{ + namespace Config_Handlers + { + class ImplementationArtifactDescription; + namespace Packaging + { + /* + * @class IAD_Handler + * + * @brief Handler class for <CCMImplementationArtifactDescription> types. + * + * This class defines handler methods to map values from + * XSC objects, parsed from the descriptor files, to the + * corresponding CORBA IDL type for the schema element. + * + */ + class Packaging_Handlers_Export IAD_Handler + { + public: + /// Maps the values from the XSC object + /// <ImplementationArtifactDescription> to the CORBA IDL type + /// <Deployment::ImplementationArtifactDescription>. + static void + impl_artifact_descr (const ImplementationArtifactDescription &desc, + ::Deployment::ImplementationArtifactDescription &toconfig); + + + static ImplementationArtifactDescription + impl_artifact_descr (const Deployment::ImplementationArtifactDescription& src); + + static ImplementationArtifactDescription * resolve_iad (const char *uri); + }; + } + } +} + +#include /**/ "ace/post.h" +#endif /* CIAO_CONFIG_HANDLERS_STD_IAD_HANDLER_H*/ diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/NIA_Handler.h b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/NIA_Handler.h new file mode 100644 index 00000000000..edc5fe7fa6c --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/NIA_Handler.h @@ -0,0 +1,65 @@ +/** + * @file NIA_Handler.h + * @author William Otte <wotte@dre.vanderbilt.edu> + * $Id$ + */ + +#ifndef CIAO_PACKAGING_NIA_HANDLER_H +#define CIAO_PACKAGING_NIA_HANDLER_H + +#include /**/ "ace/pre.h" +#include "Package_Handlers/Packaging_Handlers_Export.h" +#include "Utils/Functors.h" +#include "ciao/Packaging_DataC.h" +#include "iad.hpp" + +namespace Deployment +{ + struct NamedImplementationArtifact; + class NamedImplementationArtifacts; +} + +namespace CIAO +{ + namespace Config_Handlers + { + class NamedImplementationArtifact; + + namespace Packaging + { + /** + * @class NIA_Handler + * @brief Handler class for NamedImplementationArtifact types. + */ + class Packaging_Handlers_Export NIA_Handler + { + public: + static void handle_nia (const NamedImplementationArtifact &desc, + ::Deployment::NamedImplementationArtifact &toconfig) + { + toconfig.name = desc.name ().c_str (); + IAD_Handler::impl_artifact_descr (desc.referencedArtifact (), + toconfig.referencedArtifact); + } + + + static NamedImplementationArtifact + get_nia (const ::Deployment::NamedImplementationArtifact &src) + { + return NamedImplementationArtifact (src.name.in (), + IAD_Handler::impl_artifact_descr (src.referencedArtifact)); + } + + }; + + typedef Sequence_Handler < NamedImplementationArtifact, + ::Deployment::NamedImplementationArtifacts, + ::Deployment::NamedImplementationArtifact, + NIA_Handler::handle_nia > NIA_Functor; + } + } +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_PACKAGING_NIA_HANDLER_H */ diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp new file mode 100644 index 00000000000..675060fd082 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp @@ -0,0 +1,160 @@ +// $Id$ +#include "tao/AnyTypeCode/AnyTypeCode_methods.h" +#include "ciao/CIAO_common.h" +#include "ciao/Packaging_DataC.h" +#include "Utils/XML_Helper.h" +#include "Utils/XercesString.h" +#include "Utils/Exceptions.h" +#include "Package_Handlers/PCD_Handler.h" +#include "Package_Handlers/CPD_Handler.h" +#include "Deployment.hpp" +#include "Property_Handler.h" +#include "Req_Handler.h" + +#include "Basic_Deployment_Data.hpp" + +#include <memory> + +namespace CIAO +{ + namespace Config_Handlers + { + namespace Packaging + { + void + PCD_Handler::package_config (const ACE_TCHAR *uri, + ::Deployment::PackageConfiguration &toconfig) + { + const xercesc::DOMDocument *dom = XML_HELPER->create_dom (uri); + + if (dom == 0) + { + std::string error ("Unable to open file: "); + error += uri; + throw Parse_Error (error); + } + + XStr root = dom->getDocumentElement ()->getTagName (); + + if (root == XStr ("Deployment:topLevelPackageDescription")) + { + TopLevelPackageDescription tpd = topLevelPackageDescription (dom); + PCD_Handler::package_config (tpd.package (), + toconfig); + } + else if (root == XStr ("Deployment:packageConfiguration")) + { + PackageConfiguration pcd (packageConfiguration (dom)); + PCD_Handler::package_config (pcd, toconfig); + } + else + { + std::string error ("Invliad file passed to package_config, has base "); + + char *croot = xercesc::XMLString::transcode (root); + + error += croot; + + delete [] croot; + + throw Plan_Error ("Invalid file passed to package_config, had base"); + } + } + + void + PCD_Handler::package_config (const PackageConfiguration &desc, + ::Deployment::PackageConfiguration &toconfig) + { + CIAO_TRACE ("PCD_Handler::package_config"); + std::auto_ptr < PackageConfiguration > xsc_pcd; + + const PackageConfiguration *pcd; + + if (desc.href_p ()) + { + // Take ownership of the resolved pcd + xsc_pcd.reset (PCD_Handler:: resolve_package_config (desc.href ().c_str ())); + pcd = xsc_pcd.get (); + } + else + pcd = &desc; + + if (pcd->label_p ()) + toconfig.label = + pcd->label ().c_str (); + + if (pcd->UUID_p ()) + toconfig.UUID = + pcd->UUID ().c_str (); + + if (pcd->basePackage_p ()) + { + toconfig.basePackage.length (1); + CPD_Handler::handle_component_package_descr (pcd->basePackage (), + toconfig.basePackage [0]); + } + + // @@ MAJO: Support other elements present here. + + toconfig.configProperty.length (desc.count_configProperty ()); + std::for_each (desc.begin_configProperty (), + desc.end_configProperty (), + Property_Functor (toconfig.configProperty)); + + toconfig.selectRequirement.length (desc.count_selectRequirement ()); + std::for_each (desc.begin_selectRequirement (), + desc.end_selectRequirement (), + Requirement_Functor (toconfig.selectRequirement)); + + } + + PackageConfiguration + PCD_Handler::package_config (const Deployment::PackageConfiguration& src) + { + CIAO_TRACE ("PCD_Handler::package_config - reverse"); + PackageConfiguration pcd = PackageConfiguration (); + + if (src.label.in () != 0) + pcd.label (src.label.in ()); + + if (src.UUID.in () != 0) + pcd.UUID (src.UUID.in ()); + + if (src.basePackage.length () > 0) + { + ACE_DEBUG ((LM_DEBUG, "5\n")); + pcd.basePackage (CPD_Handler::component_package_descr (src.basePackage[0])); + } + + // @@ MAJO: Support other elements present here. + for (CORBA::ULong i = 0; i < src.configProperty.length (); ++i) + pcd.add_configProperty (Property_Handler::get_property (src.configProperty[i])); + + for (CORBA::ULong i = 0; i < src.selectRequirement.length (); ++i) + pcd.add_selectRequirement (Req_Handler::get_requirement (src.selectRequirement[i])); + + return pcd; + + } + + PackageConfiguration * PCD_Handler::resolve_package_config (const char *uri) + { + xercesc::DOMDocument* dom = + XML_HELPER->create_dom (uri); + + if (!dom) + throw Parse_Error ("Unable to create DOM for PackageConfiguration"); + + try { + return new PackageConfiguration (packageConfiguration (dom)); + } + catch (...) { + throw Parse_Error ("Unable to create XSC structure for PackageConfiguration"); + } + + } + + + } + } +} diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.h b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.h new file mode 100644 index 00000000000..be92a6871c0 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.h @@ -0,0 +1,69 @@ +//================================================ +/** + * @file PCD_Handler.h + * + * $Id$ + * + * @author William Otte <wotte@dre.vanderbilt.edu> + */ +//================================================ + +#ifndef CIAO_CONFIG_HANDLERS_PCD_HANDLER_H +#define CIAO_CONFIG_HANDLERS_PCD_HANDLER_H + +#include /**/ "ace/pre.h" + +#include "Packaging_Handlers_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace Deployment +{ + struct PackageConfiguration; +} + +namespace CIAO +{ + namespace Config_Handlers + { + class PackageConfiguration; + + namespace Packaging + { + /* + * @class PCD_Handler + * + * @brief Handler class for <CCMPackageConfiguration> types. + * + * This class defines handler methods to map values from + * XSC objects, parsed from the descriptor files, to the + * corresponding CORBA IDL type for the schema element. + * + */ + class Packaging_Handlers_Export PCD_Handler + { + + public: + static void package_config (const ACE_TCHAR *uri, + ::Deployment::PackageConfiguration &toconfig); + + /// Maps the values from the XSC object + /// <PackageConfiguration> to the CORBA IDL type + /// <Deployment::PackageConfiguration>. + static void package_config (const PackageConfiguration &desc, + ::Deployment::PackageConfiguration &toconfig); + + static PackageConfiguration package_config (const Deployment::PackageConfiguration& src); + + private: + static PackageConfiguration *resolve_package_config (const char *uri); + }; + } + + } +} + +#include /**/ "ace/post.h" +#endif /* CIAO_CONFIG_HANDLERS_STD_PCD_HANDLER_H*/ diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PC_Intf.cpp b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PC_Intf.cpp new file mode 100644 index 00000000000..e265295d040 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PC_Intf.cpp @@ -0,0 +1,75 @@ +// $Id$ + +#include "STD_PC_Intf.h" +#include "Utils/XML_Helper.h" +#include "Deployment.hpp" +#include "STD_PCD_Handler.h" +#include "ciao/Packaging_DataC.h" +#include "ciao/CIAO_common.h" + +namespace CIAO +{ + namespace Config_Handlers + { + STD_PC_Intf::STD_PC_Intf (const char *file) + { + if (!this->prepare_PC (file)) + throw; + } + + bool + STD_PC_Intf::prepare_PC (const char *file) + { + CIAO_TRACE("STD_PC_Intf::prepare_PC"); + + ACE_Auto_Ptr<XML_Helper> helper (new XML_Helper); + + if (!helper->is_initialized ()) + return false; + + // parse the .pcd (PackageConfigurationDescription) file + xercesc::DOMDocument *dom = + helper->create_dom (file); + + if (!dom) + return false; + + + PackageConfiguration pc = + packageConfiguration (dom); + + + Deployment::PackageConfiguration idl_pc; + + + STD_PCD_Handler pcd_handler (helper.get ()); + + pcd_handler.package_config (pc, + idl_pc); + + + Deployment::PackageConfiguration *p_idl_pc = + new Deployment::PackageConfiguration (idl_pc); + + // let ACE_Auto_Ptr take over + this->idl_pc_.reset (p_idl_pc); + + if (this->idl_pc_.get ()) + return true; + + return false; + } + + ::Deployment::PackageConfiguration const * + STD_PC_Intf::get_PC (void) const + { + return this->idl_pc_.get (); + } + + ::Deployment::PackageConfiguration * + STD_PC_Intf::get_PC (void) + { + return this->idl_pc_.release (); + } + } +} diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PC_Intf.h b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PC_Intf.h new file mode 100644 index 00000000000..c15ae0389b9 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/PC_Intf.h @@ -0,0 +1,58 @@ +//============================================================== +/** + * @file PC_Intf.h + * + * $Id$ + * + * @author Ming Xiong <mxiong@dre.vanderbilt.edu> + */ +//================================================================ + +#ifndef CIAO_CONFIG_STD_PC_INTF_H +#define CIAO_CONFIG_STD_PC_INTF_H +#include /**/ "ace/pre.h" + +#include "Config_Handlers_Export.h" + +#include "ace/Auto_Ptr.h" + + +namespace Deployment +{ + struct PackageConfiguration ; +} + +namespace CIAO +{ + namespace Config_Handlers + { + /* + * @class PC_Intf + * + * @brief Wrapper class for PackageConfiguration extraction + * + * This class defines wrapper functions for extracting + * PackageConfiguration IDL structures from XSC structures. + * It serves as the public interface used by application + * developers. + * + */ + class Config_Handlers_Export STD_PC_Intf + { + public: + STD_PC_Intf (const char *file); + + ::Deployment::PackageConfiguration const *get_PC (void) const; + ::Deployment::PackageConfiguration *get_PC (void); + + protected: + bool prepare_PC (const char *file); + + private: + ACE_Auto_Ptr< ::Deployment::PackageConfiguration> idl_pc_; + }; + } +} + +#include /**/ "ace/post.h" +#endif /*CIAO_CONFIG_STD_PC_INTF_H*/ diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc new file mode 100644 index 00000000000..fce4f459738 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc @@ -0,0 +1,45 @@ +// $Id$ + +project (Package_Config_Handlers) : acelib, ciao_deployment_stub, xerces { + sharedname = Package_Config_Handlers + dynamicflags = PACKAGING_HANDLERS_BUILD_DLL + macros += XML_USE_PTHREADS + requires += exceptions + includes += $(CIAO_ROOT)/tools/Config_Handlers + after += CIAO_XML_Utils XSC_XML_Handlers XSC_Config_Handlers + libs += CIAO_XML_Utils XSC_XML_Handlers XSC_Config_Handlers + includes += $(CIAO_ROOT)/ciao + + Source_files { + CAD_Handler.cpp + CID_Handler.cpp + Comp_Intf_Descr_Handler.cpp + CPD_Handler.cpp + IAD_Handler.cpp + PCD_Handler.cpp + SID_Handler.cpp + } + + Header_Files { + CAD_Handler.h + CID_Handler.h + Comp_Intf_Descr_Handler.h + CPD_Handler.h + IAD_Handler.h + PCD_Handler.h + SID_Handler.h + } +} + +project (Package_Config_Handlers_Tests) : ciao_component_dnc, ciao_config_handlers, ifr_client { +// requires += dummy_label + includes += $(CIAO_ROOT)/tools/Config_Handlers + exename = test + macros += XML_USE_PTHREADS + libs += Package_Config_Handlers XSC_Config_Handlers + Source_Files { + test.cpp + } +} + + diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h new file mode 100644 index 00000000000..86193a1a664 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl Packaging_Handlers +// ------------------------------ +#ifndef PACKAGING_HANDLERS_EXPORT_H +#define PACKAGING_HANDLERS_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (PACKAGING_HANDLERS_HAS_DLL) +# define PACKAGING_HANDLERS_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && PACKAGING_HANDLERS_HAS_DLL */ + +#if !defined (PACKAGING_HANDLERS_HAS_DLL) +# define PACKAGING_HANDLERS_HAS_DLL 1 +#endif /* ! PACKAGING_HANDLERS_HAS_DLL */ + +#if defined (PACKAGING_HANDLERS_HAS_DLL) && (PACKAGING_HANDLERS_HAS_DLL == 1) +# if defined (PACKAGING_HANDLERS_BUILD_DLL) +# define Packaging_Handlers_Export ACE_Proper_Export_Flag +# define PACKAGING_HANDLERS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define PACKAGING_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* PACKAGING_HANDLERS_BUILD_DLL */ +# define Packaging_Handlers_Export ACE_Proper_Import_Flag +# define PACKAGING_HANDLERS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define PACKAGING_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* PACKAGING_HANDLERS_BUILD_DLL */ +#else /* PACKAGING_HANDLERS_HAS_DLL == 1 */ +# define Packaging_Handlers_Export +# define PACKAGING_HANDLERS_SINGLETON_DECLARATION(T) +# define PACKAGING_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* PACKAGING_HANDLERS_HAS_DLL == 1 */ + +// Set PACKAGING_HANDLERS_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (PACKAGING_HANDLERS_NTRACE) +# if (ACE_NTRACE == 1) +# define PACKAGING_HANDLERS_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define PACKAGING_HANDLERS_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !PACKAGING_HANDLERS_NTRACE */ + +#if (PACKAGING_HANDLERS_NTRACE == 1) +# define PACKAGING_HANDLERS_TRACE(X) +#else /* (PACKAGING_HANDLERS_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define PACKAGING_HANDLERS_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (PACKAGING_HANDLERS_NTRACE == 1) */ + +#endif /* PACKAGING_HANDLERS_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp new file mode 100644 index 00000000000..34eadf9ea32 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp @@ -0,0 +1,140 @@ +// $Id$ +#include "tao/AnyTypeCode/AnyTypeCode_methods.h" +#include "Package_Handlers/SID_Handler.h" +#include "cid.hpp" +#include "ciao/DeploymentC.h" +#include "Package_Handlers/CPD_Handler.h" +#include "Package_Handlers/PCD_Handler.h" +#include "Req_Handler.h" +#include "Property_Handler.h" + +#include "ace/UUID.h" + +namespace CIAO +{ + namespace Config_Handlers + { + namespace Packaging + { + IDREF_Base<CORBA::ULong> SID_Handler::IDREF; + + void + SID_Handler::handle_sub_comp_inst_descr (const SubcomponentInstantiationDescription &desc, + ::Deployment::SubcomponentInstantiationDescription &toconfig) + { + CIAO_TRACE ("SID_Handler::sub_comp_inst_descr"); + toconfig.name = desc.name ().c_str (); + + if (desc.basePackage_p ()) + { + toconfig.basePackage.length (1); + CPD_Handler::handle_component_package_descr (desc.basePackage (), + toconfig.basePackage[0]); + } + else if (desc.specializedConfig_p ()) + { + toconfig.specializedConfig.length (1); + PCD_Handler::package_config (desc.specializedConfig (), + toconfig.specializedConfig[0]); + } + else if (desc.importedPackage_p ()) + { + toconfig.importedPackage.length (1); + toconfig.importedPackage[0].location.length (desc.importedPackage ().count_location ()); + + std::for_each (desc.importedPackage ().begin_location (), + desc.importedPackage ().end_location (), + String_Seq_Functor (toconfig.importedPackage[0].location)); + } + else if (desc.referencedPackage_p ()) + { + toconfig.referencedPackage.length (1); + + if (desc.referencedPackage ().requiredUUID_p ()) + toconfig.referencedPackage[0].requiredUUID = + desc.referencedPackage ().requiredUUID ().c_str (); + + if (desc.referencedPackage ().requiredName_p ()) + toconfig.referencedPackage[0].requiredName = + desc.referencedPackage ().requiredName ().c_str (); + + toconfig.referencedPackage[0].requiredType = + desc.referencedPackage ().requiredType ().c_str (); + } + + toconfig.selectRequirement.length (desc.count_selectRequirement ()); + std::for_each (desc.begin_selectRequirement (), + desc.end_selectRequirement (), + Requirement_Functor (toconfig.selectRequirement)); + + toconfig.configProperty.length (desc.count_configProperty ()); + std::for_each (desc.begin_configProperty (), + desc.end_configProperty (), + Property_Functor (toconfig.configProperty)); + + if (desc.id_p ()) + { + ACE_CString str (desc.id ().c_str ()); + SID_Handler::IDREF.bind_next_available (str); + } + else + ACE_ERROR ((LM_ERROR, "Warning: SID With Name %s has no ID\n", + desc.name ().c_str ())); + + } + + SubcomponentInstantiationDescription + SID_Handler::sub_comp_inst_descr (const Deployment::SubcomponentInstantiationDescription &src) + { + CIAO_TRACE ("SID_Handler::sub_comp_inst_descr - reverse"); + SubcomponentInstantiationDescription retval (src.name.in ()); + + if (src.basePackage.length () == 1) + retval.basePackage + (CPD_Handler::component_package_descr (src.basePackage[0])); + else if (src.specializedConfig.length () == 1) + retval.specializedConfig + (PCD_Handler::package_config (src.specializedConfig[0])); + else if (src.importedPackage.length () == 1) + { + ComponentPackageImport ci; + + for (CORBA::ULong i = 0; i < src.importedPackage[0].location.length (); ++i) + ci.add_location (src.importedPackage[0].location[i]); + + retval.importedPackage (ci); + } + else if (src.referencedPackage.length () == 1) + { + ComponentPackageReference cpr (src.referencedPackage[0].requiredType.in ()); + cpr.requiredUUID (src.referencedPackage[0].requiredUUID.in ()); + cpr.requiredName (src.referencedPackage[0].requiredName.in ()); + + retval.referencedPackage (cpr); + } + + for (CORBA::ULong i = 0; i < src.selectRequirement.length (); ++i) + retval.add_selectRequirement + (Req_Handler::get_requirement (src.selectRequirement[i])); + + for (CORBA::ULong i = 0; i < src.configProperty.length (); ++i) + retval.add_configProperty + (Property_Handler::get_property (src.configProperty[i])); + + // @@MAJO This is not a good way of binding reverse IDREFS. + std::auto_ptr <ACE_Utils::UUID> safe_uuid ( + ACE_Utils::UUID_GENERATOR::instance ()->generateUUID ()); + ACE_CString uuid ( safe_uuid->to_string ()->c_str ()); + + // ACE_ERROR ((LM_ERROR, "*** Binding to %s\n", + // uuid.c_str ())); + + SID_Handler::IDREF.bind_next_available (uuid); + + return retval; + } + + } + } +} + diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.h b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.h new file mode 100644 index 00000000000..1bcb73e751e --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.h @@ -0,0 +1,71 @@ +/** + * @file SID_Handler.h + * @author William Otte <wotte@dre.vanderbilt.edu> + * + * $Id$ + */ + + +#ifndef CIAO_PACKAGING_SID_HANDLER_H +#define CIAO_PACKAGING_SID_HANDLER_H + +#include /**/ "ace/pre.h" + +#include "Utils/XML_Helper.h" +#include "Utils/Functors.h" +#include "IDREF_Base.h" +#include "Package_Handlers/Packaging_Handlers_Export.h" + +namespace Deployment +{ + struct SubcomponentInstantiationDescription; + class SubcomponentInstantiationDescriptions; +} + +namespace CIAO +{ + namespace Config_Handlers + { + class SubcomponentInstantiationDescription; + + namespace Packaging + { + /** + * @class SID_Handler + * @brief Handler class for SubcomponentInstantiationDescription + */ + class Packaging_Handlers_Export SID_Handler + { + SID_Handler (XML_Helper *xml_helper) + : xml_helper_ (xml_helper) + { + + } + + public: + static void handle_sub_comp_inst_descr (const SubcomponentInstantiationDescription &desc, + ::Deployment::SubcomponentInstantiationDescription &toconfig); + + static SubcomponentInstantiationDescription + sub_comp_inst_descr (const ::Deployment::SubcomponentInstantiationDescription &src); + + static IDREF_Base< CORBA::ULong > IDREF; + + private: + static SubcomponentInstantiationDescription *resolve_sid (const char *uri); + + XML_Helper *xml_helper_; + + }; + + typedef Sequence_Handler < SubcomponentInstantiationDescription, + ::Deployment::SubcomponentInstantiationDescriptions, + ::Deployment::SubcomponentInstantiationDescription, + SID_Handler::handle_sub_comp_inst_descr > SID_Functor; + + } + } +} + +#include /**/ "ace/post.h" +#endif /* CIAO_PACKAGING_SID_HANDLER_H */ diff --git a/TAO/CIAO/tools/Config_Handlers/Package_Handlers/test.cpp b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/test.cpp new file mode 100644 index 00000000000..cf8f9ae7aaa --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Package_Handlers/test.cpp @@ -0,0 +1,113 @@ +// $Id$ + +#include <iostream> + +#include "Deployment.hpp" +#include "PCD_Handler.h" +#include "ciao/Packaging_DataC.h" +#include "SID_Handler.h" +#include "ace/Get_Opt.h" +#include "Utils/XML_Helper.h" +#include "tao/ORB.h" +#include "Utils/Exceptions.h" + +static const char *input_file = "BasicSP.cdp"; + + +static int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "i:"); + + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'i': + input_file = get_opts.opt_arg (); + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-i <input file> " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command-line + return 0; +} + +// Check to see if SRD was imported. +void check_srd (const Deployment::DeploymentPlan &); + +using namespace CIAO::Config_Handlers; + + +int main (int argc, char *argv[]) +{ + try + { + + if (parse_args (argc, argv) != 0) + return 1; + + // Initialize an ORB so Any will work + CORBA::ORB_ptr orb = CORBA::ORB_init (argc, argv, ""); + ACE_UNUSED_ARG (orb); + + + if (xercesc::DOMDocument *doc = XML_HELPER->create_dom (input_file)) + { + + ::Deployment::PackageConfiguration idl_pc; + { + // //Read in the XSC type structure from the DOMDocument + //PackageConfiguration pc = packageConfiguration (doc); + //std::cerr << "XML to XSC conversion succeeded. Converting to IDL...\n"; + + //Convert the XSC to an IDL datatype + Packaging::PCD_Handler::package_config (input_file, idl_pc); + std::cout << "Instance document import succeeded. Dumping contents to file\n"; + } + + // Clear SID_Handler's IDREF Table + Packaging::SID_Handler::IDREF.unbind_refs (); + + std::cerr << "Performing IDL->XSC transformation...\n"; + + PackageConfiguration out_pc (Packaging::PCD_Handler::package_config (idl_pc)); + + //Create a new DOMDocument for writing the XSC into XML + xercesc::DOMDocument* the_xsc (XML_HELPER->create_dom("Deployment:packageConfiguration", + "http://www.omg.org/Deployment")); + + //Serialize the XSC into a DOMDocument + packageConfiguration(out_pc, the_xsc); + + + //Write it to test.xml + XML_HELPER->write_DOM(the_xsc, "test.xml"); + + //Cleanliness is next to Godliness + delete doc; + } + + std::cout << "Test completed!\n"; + } + catch (CIAO::Config_Handlers::Plan_Error &excep) + { + std::cerr << "Plan Error exception caught: " << excep.reason_ << std::endl; + } + catch (CIAO::Config_Handlers::Config_Error &excep) + { + std::cerr << "Config Error " << excep.name_ << ": " << excep.error_ << std::endl; + } + + + return 0; +} + + diff --git a/TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp new file mode 100644 index 00000000000..31f4d937a49 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp @@ -0,0 +1,118 @@ +//$Id$ + +#include "SatisfierProperty_Handler.h" +#include "Any_Handler.h" +#include "Basic_Deployment_Data.hpp" +#include "ciao/Deployment_DataC.h" +#include "ciao/CIAO_common.h" +#include "Utils/Exceptions.h" +namespace CIAO +{ + namespace Config_Handlers + { + + SatisfierProperty_Handler::SatisfierProperty_Handler (void) + { + } + + SatisfierProperty_Handler::~SatisfierProperty_Handler (void) + { + } + + void + SatisfierProperty_Handler::handle_sat_property ( + const SatisfierProperty& desc, + Deployment::SatisfierProperty& toconfig) + { + CIAO_TRACE("SatisfierProperty_Handler::get_sat_property"); + + toconfig.name = desc.name ().c_str (); + + switch (desc.kind ().integral ()) + { + case SatisfierPropertyKind::Quantity_l: + toconfig.kind = Deployment::Quantity; + break; + + case SatisfierPropertyKind::Capacity_l: + toconfig.kind = Deployment::Capacity; + break; + + case SatisfierPropertyKind::Minimum_l: + toconfig.kind = Deployment::Minimum; + break; + + case SatisfierPropertyKind::Maximum_l: + toconfig.kind = Deployment::Maximum; + break; + + // case SatisfierPropertyKind::Attribute_l: + //toconfig.kind = Deployment::_Attribute; + //break; + + case SatisfierPropertyKind::Selection_l: + toconfig.kind = Deployment::Selection; + break; + + default: + ACE_ERROR ((LM_ERROR, "Unknown SatisfierPropertyKind\n")); + throw 1; + + } + + toconfig.dynamic = desc.dynamic (); + + Any_Handler::extract_into_any (desc.value (), + toconfig.value); + } + + SatisfierProperty + SatisfierProperty_Handler::get_sat_property ( + const Deployment::SatisfierProperty& src) + { + CIAO_TRACE("SatisfierProperty_Handler::get_sat_property - reverse"); + + ::XMLSchema::string< ACE_TCHAR > name ((src.name)); + SatisfierPropertyKind::Value kind; + + const SatisfierPropertyKind *spk = 0; + + switch (src.kind) + { + case Deployment::Quantity: + spk = &SatisfierPropertyKind::Quantity; + break; + + case Deployment::Capacity: + spk = &SatisfierPropertyKind::Capacity; + break; + + case Deployment::Minimum: + spk = &SatisfierPropertyKind::Minimum; + break; + + case Deployment::Maximum: + spk = &SatisfierPropertyKind::Maximum; + break; + + // case Deployment::_Attribute: + //kind = SatisfierPropertyKind::Attribute_l; + //break; + + case Deployment::Selection: + kind = SatisfierPropertyKind::Selection_l; + break; + + default: + throw Plan_Error ("Invalid SatisfierPropertyKind"); + } + + bool dynamic = src.dynamic; + + Any value (Any_Handler::get_any (src.value)); + + return SatisfierProperty (name, *spk, dynamic, value); + } + + } +} diff --git a/TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.h b/TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.h new file mode 100644 index 00000000000..4ee0b804b24 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.h @@ -0,0 +1,71 @@ +//================================================ +/** + * @file SatisfierProperty_Handler.h + * + * $Id$ + * + * @author Jules White <jules@dre.vanderbilt.edu> + */ +//================================================ + +#ifndef CIAO_CONFIG_HANDLERS_SATIS_PROPERTY_HANDLER_H +#define CIAO_CONFIG_HANDLERS_SATIS_PROPERTY_HANDLER_H + +#include /**/ "ace/pre.h" + +#include "Config_Handlers_Export.h" +#include "Utils/Functors.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace Deployment +{ + struct SatisfierProperty; + class SatisfierProperties; +} + +namespace CIAO +{ + namespace Config_Handlers + { + class SatisfierProperty; + + /* + * @class SatisfierProperty_Handler + * + * @brief Handler class for <CCMComponentPortDescription> types. + * + * This class defines handler methods to map values from + * XSC objects, parsed from the descriptor files, to the + * corresponding CORBA IDL type for the schema element. + * + */ + + class Config_Handlers_Export SatisfierProperty_Handler + { + public: + SatisfierProperty_Handler (void); + virtual ~SatisfierProperty_Handler (void); + + typedef Sequence_Iterator< const ::Deployment::SatisfierProperties, const ::Deployment::SatisfierProperty > sat_prop_iter; + + /// This method maps the values from the XSC object + /// <CIAO::Config_Handlers::SatisfierProperty> to the CORBA IDL type + /// <Deployment::SatisfierProperty>. + static void handle_sat_property (const SatisfierProperty& desc, + ::Deployment::SatisfierProperty& toconfig); + static SatisfierProperty get_sat_property (const ::Deployment::SatisfierProperty& src); + }; + + typedef Sequence_Handler < SatisfierProperty, + ::Deployment::SatisfierProperties, + ::Deployment::SatisfierProperty, + SatisfierProperty_Handler::handle_sat_property> SatisfierProperty_Functor; + + } +} + +#include /**/ "ace/post.h" +#endif /* CIAO_CONFIG_HANDLERS_SATIS_PROPERTY_HANDLER_H*/ diff --git a/TAO/CIAO/tools/Config_Handlers/Utils/Exceptions.h b/TAO/CIAO/tools/Config_Handlers/Utils/Exceptions.h new file mode 100644 index 00000000000..dadb7ed615d --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Utils/Exceptions.h @@ -0,0 +1,39 @@ +// $Id$ +/** + * @file Exceptions.h + * @author William Otte <wotte@dre.vanderbilt.edu> + * + * Defines exceptions that may be thrown during the XSC<=>IDL translation process. + */ +#include <string> + +namespace CIAO +{ + namespace Config_Handlers + { + struct Parse_Error + { + Parse_Error (const std::string &reason) + : reason_ (reason) + { + } + + std::string reason_; + }; + + struct Plan_Error + { + Plan_Error (const std::string &reason) + : reason_ (reason) + { + } + + std::string reason_; + }; + + } +} + + + + diff --git a/TAO/CIAO/tools/Config_Handlers/Utils/Functors.h b/TAO/CIAO/tools/Config_Handlers/Utils/Functors.h new file mode 100644 index 00000000000..34702cd60d0 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/Utils/Functors.h @@ -0,0 +1,137 @@ +#ifndef CONFIG_HANDLERS_FUNCTORS_H +#define CONFIG_HANDLERS_FUNCTORS_H + +/** + * @file Functors.h + * @author William Otte <wotte@dre.vanderbilt.edu> + * $Id$ + * Functors useful in the config handlers + */ +#include <iterator> + +#include "tao/Basic_Types.h" // For CORBA::ULong +#include "tao/StringSeqC.h" + +#include "XMLSchema/Types.hpp" +namespace CIAO +{ + namespace Config_Handlers + { + template <typename Seq_Type, typename T> + class Sequence_Iterator : + public std::iterator <std::forward_iterator_tag, //iterator type + T, // Type pointed to by the iterator + CORBA::ULong> // Distance type + { + public: + Sequence_Iterator (void) + : pos_ (0), + seq_ (0) + { + } + + Sequence_Iterator (const Seq_Type &seq, CORBA::ULong pos = 0) + : pos_ (pos), + seq_ (&seq) + { + } + + Sequence_Iterator (const Sequence_Iterator &s) + { + *this = s; + } + + Sequence_Iterator& operator= (const Sequence_Iterator &s) + { + this->seq_ = s.seq_; + this->pos_ = s.pos_; + return *this; + } + + bool operator== (Sequence_Iterator &s) + { + return (this->seq_ == s.seq_) && (this->pos_ == s.pos_); + } + + bool operator!= (Sequence_Iterator &s) + { + return !(*this == s); + } + + T& operator* (void) + { + return (*seq_)[pos_]; + } + + T& operator-> (void) + { + return *(*this); + } + + // Prefix operator + Sequence_Iterator& operator++ () + { + ++pos_; + return *this; + } + + Sequence_Iterator& operator++ (int) + { + Sequence_Iterator ans (*this); + ++(*this); + return ans; + } + + private: + CORBA::ULong pos_; + Seq_Type *seq_; + }; + + template <typename Source, + typename Dest, + typename Dest_Type, + void (*Func)(const Source &, Dest_Type &)> + struct Sequence_Handler + { + Sequence_Handler (Dest &dest, CORBA::ULong pos = 0) + : dest_ (dest), + pos_ (pos) + { + } + + void operator() (const Source &src) + { + Func (src, dest_[pos_++]); + } + + private: + Dest &dest_; + CORBA::ULong pos_; + }; + + template <typename Dest, typename Dest_Type> + struct String_Seq_Handler + { + String_Seq_Handler (Dest &dest, CORBA::ULong pos = 0) + : dest_ (dest), + pos_ (pos) + { + } + + void operator() (const ::XMLSchema::string<ACE_TCHAR> &src) + { + dest_[pos_++] = src.c_str (); + } + + private: + Dest &dest_; + CORBA::ULong pos_; + }; + + typedef String_Seq_Handler < ::CORBA::StringSeq, + ::CORBA::String_var > String_Seq_Functor; + + } +} + +#endif /* CONFIG_HANDLERS_FUNCTORS_H */ diff --git a/TAO/ChangeLogs/ChangeLog-06a b/TAO/ChangeLogs/ChangeLog-06a new file mode 100644 index 00000000000..a2516038c3c --- /dev/null +++ b/TAO/ChangeLogs/ChangeLog-06a @@ -0,0 +1,21005 @@ +Mon Apr 17 14:30:49 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated with J.T.'s input. + +Mon Apr 17 02:51:06 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Seq_Multi_ETCL_Filter.mpc: + + Avoids building with ace_for_tao. + +Fri Apr 14 15:01:51 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * orbsvcs/tests/Notify/MT_Dispatching/MT_Dispatching.mpc: + + Avoids building with ace_for_tao. + +Wed Apr 12 21:48:29 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated with the race condition fix. + +Tue Apr 11 16:26:47 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * tao/Connection_Handler.cpp: + * tao/Resume_Handle.h: + * tao/Resume_Handle.cpp: + + Reapply the fix a week ago with a correction. + Before, I mistakenly put a new operation into a + wrong place. It should be in the right place now. + Thanks to Frank Rehberger for correcting this. + Mon Mar 27 18:55:51 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + +Tue Apr 11 13:13:27 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tao/Utils/Servant_Var.h: + * tao/Utils/Servant_Var.inl: + + Add ACE_LACKS_MEMBER_TEMPLATES guards around problematic equality + operators. + +Mon Apr 10 18:42:47 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * orbsvcs/tests/Event/Mcast/Simple/Simple.mpc: + + Fixed the 'after' setting in the client project. + +Mon Apr 10 16:21:40 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * orbsvcs/examples/ImR/Advanced/TestServer.cpp: + + Trying to fix another compiler error in ICC 9.0 Windows + 64-bit build. + +Mon Apr 10 14:50:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Bug_2377_Regression/Hello.cpp: + * orbsvcs/orbsvcs/Log/Log_i.cpp: + Fixed conversion warnings in vxworks build + +Mon Apr 10 10:13:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/IDL_Test/interface.idl: + Added some extra test cases which where reported by Hans Bos + <hans dot bos at xelion dot nl> as not working with 1.4.4 but + they are now working with cvs head. + +Mon Apr 10 06:34:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/extra_core.mpb: + * tao/tao.mpc: + Moved ServerRequestInterceptor_Adapter.cpp and + ClientRequestInterceptor_Adapter.cpp from extra_core to tao + to fix link errors in vc minimum build + +Fri Apr 7 19:54:44 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * tao/Connection_Handler.cpp: + * tao/Resume_Handle.h: + * tao/Resume_Handle.cpp: + + Back out the changes I put a week ago since they didn't help + resovle a race condition. + Mon Mar 27 18:55:51 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + +Fri Apr 7 09:12:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Log/Basic_Log_Test/Basic_Log_Test.cpp: + Removed include of orbsvcs/Time_Utilities.h, it is not needed and + caused errors in some builds because this app wasn't build after + the svc_utils anymore + +Thu Apr 6 18:18:47 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * tao/Strategies/advanced_resource.cpp (input_cdr_buffer_allocator): + + Modified this method to defer to the TAO_Default_Resource_Factory + for the input_cdr_buffer_allocator if the allocator type is not + TAO_ALLOCATOR_NULL_LOCK. In the event that the user has chosen + not to use the memory pool allocator, they will get the right type + of input cdr buffer allocator. + +Thu Apr 6 00:33:35 UTC 2006 Iliyan Jeliazkov <iliyan@ociweb.com> + + * tao/ORB_Core.cpp: + + Fixing the usage of the correct dynamic service names, for the + case of TAO built with support for dynamic linking. Thanks to + Ossama Othman <Ossama_Othman at symantec dot com> for providing + the patch. + +Wed Apr 5 22:39:28 UTC 2006 Adam Mitz <mitza@ociweb.com> + + * tests/Bug_2494_Regression/Bug_2494_Regression.mpc: + * tests/Bug_2494_Regression/README: + * tests/Bug_2494_Regression/client.cpp: + * tests/Bug_2494_Regression/run_test.pl: + * tests/Bug_2494_Regression/server.cpp: + * tests/Bug_2494_Regression/test.idl: + * tests/Bug_2494_Regression/test_i.h: + * tests/Bug_2494_Regression/test_i.inl: + * tests/Bug_2494_Regression/test_i.cpp: + + Added a regression test for Bugzilla bug #2494. + + * tao/Transport.cpp (~Transport): + + Added back the ACE_ASSERTS, needed for the regression test above. + See Bugzilla bug #2494. + +Tue Apr 4 22:03:35 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * orbsvcs/examples/ImR/Advanced/TestClient.h: + * orbsvcs/examples/ImR/Advanced/TestClient.cpp: + * orbsvcs/examples/ImR/Advanced/TestServer.cpp: + + Trying to fix compile error occuring on icc 9.0 build. + Replaced std::cout with ACE_DEBUG, std::getline with + ACE_Capabilies::getline. + +Tue Apr 4 12:30:08 UTC 2006 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/Server_Request_Interceptor.cpp: + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/client.cpp: + + Fix old gcc warnings. + +Tue Apr 4 09:15:16 UTC 2006 Simon McQueen <sm@prismtech.com> + + * NEWS: + + Documented Frank's formidably fabulous forwarding fix. + +Tue Apr 4 08:36:45 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tests/Permanent_Forward/StubTest.cpp: + + Fixed gcc 2.96 warnings. + +Tue Apr 4 08:02:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/NVList.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.cpp: + * orbsvcs/orbsvcs/Notify/XML_Loader.cpp: + Fixed unitialized warnings + +Mon Apr 3 18:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/Options.html: + Document that with waitstrategy RW you can't use BiDIR GIOP + +Mon Apr 03 18:03:29 UTC 2006 Trevor Fields <fields_t@ociweb.com> + + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/interceptors.cpp: + + Change the interceptor to not count any _is_a calls. The comparison count + does not include any _is_a calls. The calls can occur as a full CORBA + call when the system does not recognize the object is Collocated or + collocation is turned off. + +Sat Apr 1 18:56:25 UTC 2006 Jaiganesh Balasubramanian <jai.dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/LoadBalancing/README: + + Added a README file explaining the features supported by the TAO + Load Balancing service and the future work that is targeted. + +Sat Apr 1 18:43:21 UTC 2006 Jaiganesh Balasubramanian <jai.dre.vanderbilt.edu> + + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/README: + * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/README: + + Added README files for the tests checking the application + controlled and infrastructure controlled group membership + support of the TAO Load Balancing service. + +Sat Apr 1 18:41:04 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * TAO_IDL/be/be_codegen.cpp: + + Crash when deleting this->gperf_input_stream_ occurs on other + systems that use glibc (like GNU/kFreeBSD), not just on linux. + Thanks to Thomas Girard <thomas dot g dot girard at free dot fr> + for this fix. + +Fri Mar 31 14:30:24 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * tao/Object_Ref_Table.{h,inl} (register_initial_reference): + Added a new parameter called "rebind" that defaults to false. + If this parameter is true then rebind() will be used instead of + bind to make it possible to update the initial references + dynamically. Thanks to Bob Ronak <ronak2121 at gmail dot com> + for suggesting this. + +Fri Mar 31 17:19:13 UTC 2006 Adam Mitz <mitza@ociweb.com> + + * tao/Transport.cpp: + + See bugzilla bug #2494 for full details. This fixes a race condition + where one thread sends data out of the transport (drain_queue_helper) + but then gets scheduled out before reaching the flushing strategy. + Meanwhile another thread runs on the same transport and notices that + the client has closed the connection. This thread closes the + transport. The first thread then continues and attempts to register + with the reactor to do further output (schedule_output_i), however + the connection handler has already been removed from the reactor. + This causes problems later on including a memory leak, since a block + has been allocated on the tranpsort's queue (in send_reply_message_i) + and it will never be deallocated (the transport destructor will run + first). + +Fri Mar 31 15:17:51 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/IDL_Test/included.idl: + * tests/IDL_Test/including.idl: + + Added valuetype IDL example that is declared in one file, which + is included in another where the valuetype is used in a sequence. + This example tests whether the inclusion of Value_VarOut_T.h + occurs soon enough in the translation unit to be seen when the + sequence template class is instantiated, and to make sure the + change in + + Thu Mar 30 20:21:53 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + survives when the TAO sequence overhaul is integrated. + +Fri Mar 31 11:13:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/run_test.pl: + Check the return value of the spawn of the server and don't try + to also run the client on the vxworks target, the server is the + side of the test that runs there + +Fri Mar 31 11:07:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/POA/Adapter_Activator/run_test.pl: + * examples/POA/Default_Servant/run_test.pl: + * examples/POA/Explicit_Activation/run_test.pl: + * examples/POA/Loader/run_test.pl: + * examples/POA/On_Demand_Activation/run_test.pl: + * examples/POA/On_Demand_Loading/run_test.pl: + * examples/POA/Reference_Counted_Servant/run_test.pl: + Check the return value of the spawn of the server, if this is + not equal zero just exit directly. Speeds up the tests when + there are no executables build + +Fri Mar 31 11:03:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Wait_On_Read.cpp: + Use false instead of 0 for a bool + +Thu Mar 30 20:21:53 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/Valuetype/Sequence_T.h: + + Added include of Value_VarOut_T.h, needed when compiling + generated code from an IDL file with a sequence whose + valuetype element was declared in an included IDL file, on + platforms where template source files are not included in + the corresponding header file. Thanks to Dmitriy Kuznetsov + <dk3@garant.ru> for sending the example IDL files that + uncovered the problem. + +Thu Mar 30 19:14:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB_Core.i: + Moved is_permanent_forward_condition out of TAO_HAS_INTERCEPTORS + check + +Thu Mar 30 11:46:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Exclusive_TMS.cpp: + Fixed incorrect formatted debug statement + +Thu Mar 30 11:26:45 UTC 2006 Simon McQueen <sm@prismtech.com> + + * TAO_IDL/tao_idl.mpc: + + If variable ACE_CC_PREPROCESSOR is defined add that as a macro + definition on the compile line instead of assuming that the value of + CXX should be used. This fixes bug #2478. + + See also: Thu Mar 30 11:27:00 UTC 2006 Simon McQueen <sm@prismtech.com> + in ../ChangeLog. + +Thu Mar 30 11:15:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/BiDirectional_DelayedUpcall/*: + New test testing bidir where the client makes an invocation to + the server, this directly returns, and a second later the + server is going to callback on the client. + +Thu Mar 30 11:02:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/BiDirectional_NestedUpcall/run_test.pl: + Updated for VxWorks + +Thu Mar 30 10:56:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IIOP_Transport.cpp: + Fixed incorrect debug statements + +Thu Mar 30 10:38:31 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tests/Permanent_Forward/StubTest.cpp: + + VxWorks warning - make String_var conversion explicit. + +Thu Mar 30 10:24:14 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tests/Permanent_Forward/StubTest.cpp: + + LynxOS compile error. Use ACE_OS::strcmp. + +Thu Mar 30 09:58:11 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tests/Permanent_Forward/StubTest.cpp: + + Suppress unused function warnings and make the test more effective + when ACE_NDEBUG defined. + +Thu Mar 30 06:46:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/ORBInitInfo.cpp (codec_factory): + Fixed resource leak. Thanks to Steven Xie + <steven dot xie at mpathix dot com> for reporting this. + +Thu Mar 30 03:30:00 UTC 2006 Frank Rehberger <frehberger@prismtech.com> + + * tao/Stub.i: add missing call to + orb_core->reinitialize_object (this), to optimize for colocal + case. + + * tests/Permanent_Forward/StubTest.cpp: Removed code at end of + test, which caused error messages even if the test run thru all + test-cases successfully. + +Wed Mar 29 19:30:00 UTC 2006 Frank Rehberger <frehberger@prismtech.com> + + * tao/Transport.h: + Correct the documentation explaining message parsing. This is + related to #2313 + +Wed Mar 29 17:15:00 UTC 2006 Frank Rehberger <frehberger@prismtech.com> + + * TAO/tao/DynamicInterface/DII_Invocation_Adapter.cpp: + TAO/tao/Messaging/Asynch_Invocation_Adapter.cpp: + TAO/tao/Invocation_Adapter.cpp: + + Guard reply_status() operation with if-else-endif macro for + MINIMUM builds. + +Wed Mar 29 15:38:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Notify/Refcountable_Guard_T.h: + Explicit shouldn't be used for a copy constructor + +Wed Mar 29 15:24:45 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/fe/idl.yy (yyparse): + * TAO_IDL/fe/y.tab.cpp (yyparse): + + Added return with error code immediately after outputting + a lookup error for an enum type, since further parsing + leads to a crash. Thanks to Jules Colding <colding@omesc.com> + for reporting the problem and submitting examples IDL files. + +Wed Mar 29 03:42:55 UTC 2006 Balachandran Natarajan <bala_natarajan at symantec dot com> + + * docs/Options.html: + + Added documentation for -ORBConnectionHandlerCleanup. + +Tue Mar 28 23:59:00 UTC 2006 Frank Rehberger <frehberger@prismtech.com> + + * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.{h,cpp}: + * tao/Service_Callbacks.{h,cpp}: + Add operation is_permanent_forward_condition() + + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/Server_Request_Interceptor.cpp: + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/test.idl: + Add reset() operation to interceptor to be able to do colocal + and repeat as remote test. Also store forward objects as + deep-copies. + + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/client.cpp: + Compare stringified object reference before and after the + LOCATION_FORWARD_PERM occured, they must differ. + + * tao/GIOP_Message_Generator_Parser.cpp: + * tao/GIOP_Message_Base.cpp: + * tao/Invocation_Adapter.cpp: + Add handling of TAO_GIOP_LOCATION_FORWARD_PERM. + + * tao/ORB_Core.{i,h,cpp}: + Add operation is_permanent_forward_condition() which will + upcalls the operation in Service_Callbacks interface. + + * tao/Object.cpp: + Refactor the Object marshaling code into TAO_Stub::marshal() + operation to encapsulate the TAO_GIOP_LOCATION_FORWARD_PERM + case. + + * tao/Stub.{i,h,cpp}: + Add operation TAO_Stub::marshal(), and permanent-forward-feature + to operation add_forward_profiles(). + + * tao/Synch_Invocation.cpp: + * tao/DynamicInterface/Request.cpp: + * tao/TAO_Server_Request.cpp: + * tao/Messaging/Asynch_Invocation_Adapter.cpp: + * tao/Messaging/Asynch_Reply_Dispatcher.cpp: + Add handling for TAO_GIOP_LOCATION_FORWARD_PERM. + + * bin/tao_orb_tests.lst + Add TAO/tests/Permanent_Forward/run_test.pl + + * tests/Permanent_Forward/Permanent_Forward.mpc: + * tests/Permanent_Forward/run_test.pl: + * tests/Permanent_Forward/StubTest.cpp: + * tests/Permanent_Forward/README: + New test, testing TAO_Stub features for permanent-forwarding support + + These changes add LOCATION_FORWARD_PERM feature, #1777 + +Tue Mar 28 14:15:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tests/AMH_Exceptions/run_test.pl: + * tests/AMH_Oneway/run_test.pl: + Adjusted the timeouts to platform constants. + Existing time too short for lynxos. + +Tue Mar 28 13:28:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Root_POA.cpp: + Use bool as type, improved constness + +Mon Mar 27 18:55:51 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * orbsvcs/tests/Security/MT_SSLIOP/run_test_harsh.pl: + * tao/Connection_Handler.cpp: + * tao/Resume_Handle.h: + * tao/Resume_Handle.cpp: + + Merged in fixes from OCI 1.4a. + Tue Feb 21 16:29:32 UTC 2006 Don Busch <busch_d@ociweb.com> + + * tao/Connection_Handler.cpp + * tao/Resume_Handle.h + * tao/Resume_Handle.cpp + * orbsvcs/tests/Security/MT_SSLIOP/run_test_harsh.pl + + RT8248(Bug 1647) is a race condition involving two threads + active in the same connection handler at the same time. + The race is fixed by + ensuring that a connection handler that has allowed its handle + to be resumed in the Reactor does not return "1" from + handle_input. "1" is the Reactor's "call me back immediately" + value. Essentially, you can't give up ownership of yourself twice + -- you give up owner-ship when you resume the handle, so you + can't ask to be called back immediately. (The SSLIOP handler + is the only one that ever returns 1, so that's the only handler + in which this manifests itself) + + The additional test (run_test_harsh.pl) is a longer (~5 minute) + version of the MT_SSLIOP test that fails without this change, + but succeeds with it. + + Also moved the code for Ciju's "connection close" fix of + "Fri Dec 16 14:40:54 2005" (this entry is moved from OCI 1.4a) + from the Connection_Handler.cpp to the Resume_Handle.cpp. + Fri Dec 16 14:40:54 2005 Ciju John <john_c@ociweb.com> + + * tao/Connection_Handler.cpp: + + When the client closes its connections, it sends an EOF + to the server. The sever reactor gets an event for that + handler. It first suspends the handler and then dispatches + a thread to handle_input().Some where down the lane, a read() + is done on the handle and automatically the handle is resumed. + At this point another thread CAN enter the reactor and + since the handle being closed has been resumed, the reactor + will add it to its fd_set. As expected the reactor gets an + event on that handle and dispatches someone else to handle + that event. + What this patch does is prevent the closing handler from being + resumed. Thus it never does get added to the reactor + fd_set and the possibility of getting a nil handler is removed. + +Mon Mar 27 10:29:08 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * tao/ORB_Core.cpp (destroy_interceptors): + + Fixed race condition that allowed multiple threads to destroy + interceptors concurrently. Thanks to Iliyan for finding this + race condition. + +Wed Mar 22 16:18:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tests/Bug_1482_Regression/run_test.pl: + * tests/Bug_2174_Regression/run_test.pl: + * tests/RTCORBA/Banded_Connections/run_test.pl: + * tests/RTCORBA/Client_Protocol/run_test.pl: + * tests/RTCORBA/Explicit_Binding/run_test.pl: + * tests/RTCORBA/Policy_Combinations/run_test.pl: + * tests/RTCORBA/Priority_Inversion_With_Bands/run_test.pl: + * tests/RTCORBA/Profile_And_Endpoint_Selection/run_test.pl: + * tests/RTCORBA/Server_Protocol/run_test.pl: + * tests/RTCORBA/Thread_Pool/run_test.pl: + * tests/RTScheduling/DT_Spawn/run_test.pl: + * tests/RTScheduling/Current/run_test.pl: + * tests/RTScheduling/Scheduling_Interceptor/run_test.pl: + * tests/OBV/Collocated/Forward/run_test.pl: + * tests/Muxed_GIOP_Versions/run_test.pl: + Altered IOR file wait timing to platform constant. + Existing time too short for lynxos. + +Mon Mar 27 08:13:12 UTC 2006 Martin Corino <mcorino@remedy.nl> + + * docs/Options.html : + * docs/ORBEndpoint.html : + Fixed incorrect ORBInitRef examples. + +Fri Mar 24 01:58:02 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Notify_Service/Notify_Service.cpp: + * orbsvcs/tests/Notify/lib/Driver.cpp: + + Removed logging of ORB worker thread start up, as that fails on + systems without thread priorities. See bugzilla issue 2477 for + details. + +Wed Mar 22 16:18:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tests/Bug_1495_Regression/run_test.pl: + Altered IOR file wait timing to platform constant. + +Wed Mar 22 16:05:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp: + Also disable a warning for BDS2006 with Update Pack 2 + +Wed Mar 22 15:47:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2417_Regression/run_test.pl: + Updated to run with VxWorks + +Wed Mar 22 14:40:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Trader/Trader_Interfaces.cpp: + * orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp: + * tao/AnyTypeCode/Union_TypeCode.cpp: + Fixed no return statement in function warning + +Wed Mar 22 14:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/GIOP_Message_Base.cpp: + Fixed "control reaches end of non-void function" warning + +Tue Mar 21 13:01:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB_Table.h: + Removed update_orbs method declaration, there was no implementation, + if someone would use this method he would get an unresolved external, + so zapped it + +Tue Mar 21 13:00:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Profile.h: + * tao/LocalObject.h: + * tao/IIOP_Acceptor.h: + * tao/IIOP_Acceptor.h: + Documentation and layout fixes + +Mon Mar 20 13:31:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IIOP_Acceptor.cpp: + Use prefix decrement instead of postfix + +Mon Mar 20 13:23:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/GIOP_Message_Base.cpp: + Made more local variables const, initialize pointer to 0 + + * tao/GIOP_Message_Base.h: + Documentation fix + +Mon Mar 20 13:13:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Transport.cpp: + Made some more local variables const + +Mon Mar 20 13:04:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Transport.h: + Documentation improvements + +Fri Mar 17 15:33:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/pluggable_protocols/index.html: + Fixed some hyperlinks to TAO source files + +Fri Mar 17 14:21:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/poa_migration.html: + Fixed links to the POA implementation + +Fri Mar 17 14:16:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/Smart_Proxies.html: + Fixed typo + +Thu Mar 16 22:20:46 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/ast/ast_interface.cpp (be_add_operation): + * TAO_IDL/include/ast_interface.h (be_add_operation): + + Changed the return type from void to AST_Operation*, + the same type that is returned from the implementation's + delegation to the private method fe_add_operation. This + change allows an error in fe_add_operation (which will + return 0 and probably be the result of a name clash) to + get propagated up and be reflected in tao_idl's return + value. + + * TAO_IDL/be/be_visitor_amh_pre_proc.cpp: + * TAO_IDL/be/be_visitor_ami_pre_proc.cpp: + * TAO_IDL/be/be_visitor_ccm_pre_proc.cpp: + * TAO_IDL/be/be_visitor_interface/amh_sh.cpp: + + Changed usage of be_add_operation() to check the new + return type and return -1 if it is null. The IDL + compiler formerly would output a 'redefinition' + (name clash) diagnostic if a user operation name + clashed with an implied operation name of AMI or AMH, + and likewise if 2 ports of the same category in a + component had the same name. Now the IDL compiler + will also indicate failure when it exits. + +Thu Mar 16 20:13:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Object.cpp: + Use true/false instead of 1/0 + +Thu Mar 16 12:20:41 MST 2006 Yan Dai <dai_y@ociweb.com> + + * tao/CSD_ThreadPool/CSD_TP_Task.cpp: + * tao/CSD_ThreadPool/CSD_TP_Task.h: + + Typedef'd Thread_Counter as unsigned long and used it for + the num_threads. + + * tao/CSD_ThreadPool/CSD_TP_Strategy.h: + * tao/CSD_ThreadPool/CSD_TP_Strategy.inl: + + Updated data member num_threads_ and set_num_threads() method + to use the Thread_Counter type for the number of threads. + +Thu Mar 16 15:48:50 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp + * TAO_IDL/util/utl_global.cpp + * orbsvcs/FTRT_Event_Service/Factory_Service/EventChannelFactory_i.cpp + * orbsvcs/ImplRepo_Service/Activator_Loader.cpp + * orbsvcs/ImplRepo_Service/INS_Locator.cpp + * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp + * orbsvcs/ImplRepo_Service/Locator_Loader.cpp + * orbsvcs/Notify_Service/Notify_Service.cpp + * orbsvcs/orbsvcs/AV/FlowSpec_Entry.cpp + * orbsvcs/orbsvcs/AV/RTCP_Packet.cpp + * orbsvcs/orbsvcs/AV/RTP.cpp + * orbsvcs/orbsvcs/AV/sfp.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.cpp + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.cpp + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.cpp + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp + * orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp + * orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp + * orbsvcs/orbsvcs/Notify/Routing_Slip_Persistence_Manager.cpp + * orbsvcs/orbsvcs/PortableGroup/GOA.cpp + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Profile.cpp + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp + * orbsvcs/orbsvcs/Trader/Trader_Interfaces.cpp + * orbsvcs/orbsvcs/Trader/Trading_Loader.cpp + * tao/GIOP_Message_Base.cpp + * tao/GIOP_Message_Generator_Parser_10.cpp + * tao/GIOP_Message_Generator_Parser_12.cpp + * tao/GIOP_Message_Lite.cpp + * tao/IIOP_Acceptor.cpp + * tao/IIOP_Connection_Handler.cpp + * tao/ORB_Core.cpp + * tao/TAO_Internal.cpp + * tao/AnyTypeCode/Union_TypeCode.cpp + * tao/AnyTypeCode/append.cpp + * tao/AnyTypeCode/skip.cpp + * tao/PortableServer/POAManager.cpp + * tao/RTCORBA/Continuous_Priority_Mapping.cpp + * tao/RTCORBA/Linear_Priority_Mapping.cpp + * tao/RTCORBA/Multi_Priority_Mapping.cpp + * tao/RTCORBA/RT_ORB_Loader.cpp + * tao/Strategies/DIOP_Acceptor.cpp + * tao/Strategies/SHMIOP_Factory.cpp + * tao/Strategies/advanced_resource.cpp + * utils/catior/catior.cpp + Updated these files to solve the warnings when setting up "VC level + 4 warnings" on Windows. These warnings include "unreachable code", + "assignment within conditional expression", "conversion from some + type to another type, possible loss of data", "local variable may be + used without having been initialized" and so on. + Thanks to Lukas Gruetzmacher <gruetzmacher at ais-dresden dot de> + for motivating the fix to these "VC level 4 warnings". + +Thu Mar 16 14:10:53 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * docs/Compiler.html: + + Updated '-Ge <flag>' entry in the options table to reflect + the current status in the ongoing migration toward dropping + support for emulated exceptions. + +Thu Mar 16 12:41:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/Request_Interceptor_Flow/test.idl: + Fixed fuzz error + +Thu Mar 16 11:29:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/POA/Persistent_ID/server.cpp: + After creating the child poa destroy the policies + +Wed Mar 15 21:26:35 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Notify/Builder.cpp: + * orbsvcs/orbsvcs/Notify/Default_Factory.cpp: + * orbsvcs/orbsvcs/Notify/Event.cpp: + * orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp: + * orbsvcs/orbsvcs/Notify/RT_Factory.cpp: + * orbsvcs/orbsvcs/Notify/Any/AnyEvent.cpp: + * orbsvcs/orbsvcs/Notify/Any/AnyEvent.h: + * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Any/PushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Any/PushConsumer.h: + * orbsvcs/orbsvcs/Notify/Any/PushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Any/PushSupplier.h: + * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.h: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h: + * orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredEvent.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredEvent.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.h: + + Add "orbsvcs/..." prefix to #includes of *.h, *.i, *.inl, and + template *.cpp files found in ${TAO_ROOT}/orbsvcs/orbsvcs. + + These instances were missed among the the changes made on: + Tue Mar 14 06:02:15 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + because they used relative paths. + +Wed Mar 15 13:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Resume_Handle.h: + Documentation fix + +Wed Mar 15 11:22:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.h: + Doxygen fix + +Wed Mar 15 10:52:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2186_Regression/server.conf: + Use 1 instead of true for -ORBConnectionHandlerCleanup, true is + deprecated + +Wed Mar 15 07:48:02 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Event_Utilities.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching.h: + * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.h: + * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEvent.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.h: + * orbsvcs/orbsvcs/ESF/ESF_Busy_Lock.h: + * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.h: + * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.h: + * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.h: + * orbsvcs/orbsvcs/ESF/ESF_Delayed_Command.h: + * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.h: + * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.h: + * orbsvcs/orbsvcs/ESF/ESF_Peer_Workers.h: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.h: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_Collection.h: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_List.h: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_RB_Tree.h: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_RefCount_Guard.h: + * orbsvcs/orbsvcs/ESF/ESF_RefCount_Guard.h: + * orbsvcs/orbsvcs/ESF/ESF_Shutdown_Proxy.h: + * orbsvcs/orbsvcs/ESF/ESF_Worker.h: + * orbsvcs/orbsvcs/Event/ECG_Adapters.h: + * orbsvcs/orbsvcs/Event/ECG_Address_Server_Base.h: + * orbsvcs/orbsvcs/Event/ECG_CDR_Message_Sender.h: + * orbsvcs/orbsvcs/Event/ECG_Complex_Address_Server.h: + * orbsvcs/orbsvcs/Event/ECG_ConsumerEC_Control.h: + * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.h: + * orbsvcs/orbsvcs/Event/ECG_Mcast_Gateway.h: + * orbsvcs/orbsvcs/Event/ECG_Simple_Mcast_EH.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_EH.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_Sender.h: + * orbsvcs/orbsvcs/Event/EC_Basic_Filter_Builder.h: + * orbsvcs/orbsvcs/Event/EC_Bitmask_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Busy_Lock.h: + * orbsvcs/orbsvcs/Event/EC_Channel_Destroyer.h: + * orbsvcs/orbsvcs/Event/EC_Conjunction_Filter.h: + * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h: + * orbsvcs/orbsvcs/Event/EC_ConsumerControl.h: + * orbsvcs/orbsvcs/Event/EC_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h: + * orbsvcs/orbsvcs/Event/EC_Factory.h: + * orbsvcs/orbsvcs/Event/EC_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Filter_Builder.h: + * orbsvcs/orbsvcs/Event/EC_Gateway.h: + * orbsvcs/orbsvcs/Event/EC_Gateway_IIOP.h: + * orbsvcs/orbsvcs/Event/EC_Gateway_IIOP_Factory.h: + * orbsvcs/orbsvcs/Event/EC_Lifetime_Utils.h: + * orbsvcs/orbsvcs/Event/EC_Negation_Filter.h: + * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h: + * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h: + * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: + * orbsvcs/orbsvcs/Event/EC_Proxy_Disconnector.h: + * orbsvcs/orbsvcs/Event/EC_QOS_Info.h: + * orbsvcs/orbsvcs/Event/EC_Reactive_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_Scheduling_Strategy.h: + * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h: + * orbsvcs/orbsvcs/Event/EC_SupplierControl.h: + * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Supplier_Filter_Builder.h: + * orbsvcs/orbsvcs/Event/EC_Timeout_Generator.h: + * orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Type_Filter.h: + * orbsvcs/orbsvcs/Event/EC_UDP_Admin.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor_Impl.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connector_Impl.h: + * orbsvcs/orbsvcs/Naming/Naming_Service_Container.h: + * orbsvcs/orbsvcs/Trader/Offer_Database.h: + * orbsvcs/orbsvcs/Trader/Trader_Interfaces.h: + + Add "orbsvcs/..." prefix to #includes of *.h, *.i, *.inl, and + template *.cpp files found in ${TAO_ROOT}/orbsvcs/orbsvcs. + + These instances were missed among the the changes made on: + Tue Mar 14 06:02:15 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + +Tue Mar 14 08:12:55 UTC 2006 Ciju John <john_c@ociweb.com> + + * tao/Connection_Handler.cpp: + + When the client closes its connections, it sends an EOF to the + server. The sever reactor gets an event for that handler. It + first suspends the handler and then dispatches a thread to + handle_input(). Some where down the lane, a read() is done on the + handle and automatically the handle is resumed. At this point + another thread CAN enter the reactor and since the handle being + closed has been resumed, the reactor will add it to its + fd_set. As expected the reactor gets an event on that handle and + dispatches someone else to handle that event. What this patch + does is prevent the closing handler from being resumed. Thus it + never does get added to the reactor fd_set and the possibility + of getting a nil handler is removed. + +Tue Mar 14 15:25:48 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Domain.pidl: + * tao/GIOP.pidl: + * tao/IOP.pidl: + * tao/IOP_IOR.pidl: + * tao/Messaging_PolicyValue.pidl: + * tao/PI_Forward.pidl: + * tao/Policy.pidl: + * tao/PortableInterceptor.pidl: + * tao/Services.pidl: + * tao/TAO.pidl: + * tao/AnyTypeCode/Dynamic_Parameter.pidl: + * tao/BiDir_GIOP/BiDirPolicy.pidl: + * tao/CodecFactory/IOP_Codec.pidl: + * tao/CodecFactory/IOP_Codec_include.pidl: + * tao/DynamicAny/DynamicAny.pidl: + * tao/IFR_Client/IFR_Base.pidl: + * tao/ObjRefTemplate/ObjectReferenceTemplate.pidl: + * tao/PI/ClientRequestInfo.pidl: + * tao/PI/ORBInitInfo.pidl: + * tao/PI/PICurrent.pidl: + * tao/PI/PolicyFactory.pidl: + * tao/PI/RequestInfo.pidl: + * tao/PI_Server/PI_Server_include.pidl: + * tao/PI_Server/ServerRequestInfo.pidl: + * tao/PI_Server/ServerRequestInterceptor.pidl: + * tao/PortableServer/AdapterActivator.pidl: + * tao/PortableServer/IdAssignmentPolicy.pidl: + * tao/PortableServer/IdUniquenessPolicy.pidl: + * tao/PortableServer/ImplicitActivationPolicy.pidl: + * tao/PortableServer/LifespanPolicy.pidl: + * tao/PortableServer/PS_Current.pidl: + * tao/PortableServer/PS_Forward.pidl: + * tao/PortableServer/PortableServer.pidl: + * tao/PortableServer/PortableServer_include.pidl: + * tao/PortableServer/RequestProcessingPolicy.pidl: + * tao/PortableServer/ServantActivator.pidl: + * tao/PortableServer/ServantLocator.pidl: + * tao/PortableServer/ServantRetentionPolicy.pidl: + * tao/PortableServer/ThreadPolicy.pidl: + * tao/RTCORBA/RTCORBA.pidl: + * tao/RTPortableServer/RTPortableServer_include.pidl: + + Change #include <tao/...> to #include "tao/..." to avoid fuzz + warnings. At the very least, this makes everyting consistant + while we are investigate and decide what #include conventions + for <...> vs. "..." to adopt. + +Tue Mar 14 06:02:15 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/...*.cpp: + * orbsvcs/orbsvcs/...*.h: + * orbsvcs/orbsvcs/...*.i: + * orbsvcs/orbsvcs/...*.inl: + + Add "orbsvcs/..." prefix to #includes of *.h, *.i, *.inl, and + template *.cpp files found in ${TAO_ROOT}/orbsvcs/orbsvcs. + +Mon Mar 13 19:51:12 UTC 2006 Johnny Willemsen <jwilemsen@remedy.nl> + + * tests/Any/Recursive/client.cpp: + * tests/Any/Recursive/Test.idl: + Extended this test with a non recursive union with an enum + as discriminator, this also fails. + +Mon Mar 13 15:06:08 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * tests/CollocationLockup/run_test.pl: + + Attempted to add support for running the important portion of the + test on VxWorks. + +Mon Mar 13 10:09:21 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tests/Bug_2186_Regression/server.conf: + + Add '-ORBConnectionHandlerCleanup true' to get this test to pass. + +Sun Mar 12 10:21:12 UTC 2006 Johnny Willemsen <jwilemsen@remedy.nl> + + * orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.cpp: + Fixed invalid deletes when using the typed event channel and fixed + some unicode issues. Thanks to Feng Li <fengli at gmail dot com> + for providing the patches. + +Sat Mar 11 12:16:01 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tests/CollocationLockup/SimpleNamingService.cpp: + + Fixed a warning with gcc. + +Fri Mar 10 20:00:45 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/Bug_2247_Regression/Manager.cpp: + * orbsvcs/tests/Bug_2248_Regression/client.cpp: + + Removed extra "orbsvcs/" prefix when including orbsvcs + headers. + +Fri Mar 10 15:57:32 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + Committing the following on behalf of Adam Mitz + <mitza at ociweb dot com>. + + * tests/CollocationLockup/AB.idl: + * tests/CollocationLockup/CollocationLockup.cpp: + * tests/CollocationLockup/CollocationLockup.mpc: + * tests/CollocationLockup/SimpleNamingService.cpp: + * tests/CollocationLockup/SimpleNamingService.idl: + * tests/CollocationLockup/run_test.pl: + + Added a regression test for Bugzilla #2130, which is a deadlock + involving servant activation and collocated calls. + +Fri Mar 10 15:36:08 UTC 2006 Simon McQueen <sm@prismtech.com> + + * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp: + + Fixed warning. Thanks to Johnny for the tip off. + +Fri Mar 10 14:00:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * orbsvcs/orbsvcs/Naming/Hash_Naming_Context.cpp: + Remove redundant ACE_PRINT_EXCEPTION when rethrowing + CANNOT_PROCEED exceptions, to clean up the scoreboard and + stop confusing end users who think an unhandled exception has + occured when it hasn't. + +Fri Mar 10 11:44:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Any/Recursive/Test.idl: + * tests/Any/Recursive/client.cpp: + Also added a test for a recursive union with no default + +Fri Mar 10 10:44:29 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * orbsvcs/tests/Bug_2377_Regression/Hello.cpp: + + std::string ==> ACE_CString. + +Fri Mar 10 10:12:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Transport_Descriptor_Interface.inl: + * tao/AnyTypeCode/skip.cpp: + Use true/false + +Fri Mar 10 09:27:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Stub.cpp: + Fixed warning in vc6 build + +Fri Mar 10 08:17:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Any/Recursive/client.cpp: + * tests/Any/Recursive/Test.idl: + Extended this test with a new test case as described in bug + 2446. This test now fails again because this added test case + uncovers a new bug. Thanks to Tommy Persson + <tpe at ida dot liu dot se> for delivering this test case + +Fri Mar 10 07:09:22 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/...*.cpp: + * tao/...*.h: + * tao/...*.i: + * tao/...*.inl: + + Add "tao/..." prefix to #includes of *.h, *.i, *.inl, and + template *.cpp files found in ${TAO_ROOT}/tao. + +Thu Mar 9 16:04:22 UTC 2006 Simon McQueen <sm@prismtech.com> + + * TAO_IDL/be/be_visitor_ami_pre_proc.cpp: + + Don't bail out on code generation when the node is imported. + + This fixes bug #2429. + + * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp: + + Prevent seg faults when the activator has been fed a duff ImR IOR. + + This fixes bug #2445. + +Thu Mar 9 15:37:05 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/AnyTypeCode/Dynamic.pidl: + * tao/AnyTypeCode/Dynamic_Parameter.pidl: + * tao/BiDir_GIOP/BiDirPolicy.pidl: + * tao/CodecFactory/IOP_Codec.pidl: + * tao/DynamicAny/DynamicAny.pidl: + * tao/IFR_Client/IFR_Base.pidl: + * tao/IFR_Client/IFR_Basic.pidl: + * tao/ObjRefTemplate/ObjectReferenceTemplate.pidl: + * tao/PI/ClientRequestInfo.pidl: + * tao/PI/ORBInitInfo.pidl: + * tao/PI/PICurrent.pidl: + * tao/PI/PolicyFactory.pidl: + * tao/PI/RequestInfo.pidl: + * tao/PI_Server/ServerRequestInfo.pidl: + * tao/PI_Server/ServerRequestInterceptor.pidl: + * tao/PortableServer/IdAssignmentPolicy.pidl: + * tao/PortableServer/IdUniquenessPolicy.pidl: + * tao/PortableServer/ImplicitActivationPolicy.pidl: + * tao/PortableServer/LifespanPolicy.pidl: + * tao/PortableServer/PS_Current.pidl: + * tao/PortableServer/PS_Forward.pidl: + * tao/PortableServer/PortableServer.pidl: + * tao/PortableServer/RequestProcessingPolicy.pidl: + * tao/PortableServer/ServantLocator.pidl: + * tao/PortableServer/ServantRetentionPolicy.pidl: + * tao/PortableServer/ThreadPolicy.pidl: + * tao/RTCORBA/RTCORBA.pidl: + * tao/RTScheduling/RTScheduler_include.pidl: + + Add "tao/" prefix to #includes of *.pidl files found in + ${TAO_ROOT}/tao. + +Thu Mar 9 09:18:58 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> + + * COPYING: Updated the date to include 2006. + Thanks to Alan Kierstead <ackierstead at fedex dot com> for + motivating the fix to this oversight. + +Thu Mar 9 15:03:02 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/CSIIOP.idl: + * tao/Domain.pidl: + * tao/GIOP.pidl: + * tao/IOP.pidl: + * tao/IOP_IOR.pidl: + * tao/Messaging_PolicyValue.pidl: + * tao/PI_Forward.pidl: + * tao/Policy.pidl: + * tao/PortableInterceptor.pidl: + * tao/Services.pidl: + * tao/TAO.pidl: + * tests/Portable_Interceptors/Request_Interceptor_Flow/test.idl: + + Add "tao/" prefix to #includes of *.pidl files found in + ${TAO_ROOT}/tao. Thanks to Thomas Lockhart <Thomas dot + Lockhart at jpl dot nasa dot gov> for providing this change. + +Thu Mar 9 14:51:32 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * orbsvcs/orbsvcs/CosConcurrency.mpc: + * orbsvcs/orbsvcs/CosEvent.mpc: + * orbsvcs/orbsvcs/CosNaming.mpc: + * orbsvcs/orbsvcs/CosNaming_Skel.mpc: + * orbsvcs/orbsvcs/CosNotification.mpc: + * orbsvcs/orbsvcs/CosProperty.mpc: + * orbsvcs/orbsvcs/CosTrading.mpc: + * orbsvcs/orbsvcs/DsEventLogAdmin.mpc: + * orbsvcs/orbsvcs/DsLogAdmin.mpc: + * orbsvcs/orbsvcs/DsNotifyLogAdmin.mpc: + * orbsvcs/orbsvcs/PortableGroup.mpc: + * orbsvcs/orbsvcs/RTEventLogAdmin.mpc: + * orbsvcs/orbsvcs/RTEvent_Skel.mpc: + + Support for the TAO_ORBSVCS GNU Make macro was broken for some + time. I added the missing 'tagchecks' settings to these projects. + + * orbsvcs/orbsvcs/FtRtEvent.mpc: + + Corrected the usage of 'tagchecks' so that the values were added + instead of being set absolutely. + +Thu Mar 9 12:21:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Stub.{cpp,i}: + Use true/false instead of 1/0 + +Thu Mar 9 10:57:13 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * orbsvcs/tests/Bug_2377_Regression/Hello.cpp: + + Removed extra semi-colons. + +Wed Mar 8 17:01:00 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * orbsvcs/tests/Bug_2377_Regression/Hello.cpp: + + Following a suggestion from Simon McQueen, <sm@prismtech.com>, + used a more portable method of invoking sub-second resolution + timing intervals. + +Wed Mar 8 14:58:07 UTC 2006 Simon McQueen <sm@prismtech.com> + + * TAO_IDL/driver/drv_preproc.cpp: + + Use a dynamically allocated buffer to read IDL file lines and resize + it if required. + + This fixes bug #2424. + + * tests/Bug_2424_Regression/Bug_2424_Regression.mpc: + * tests/Bug_2424_Regression/OneLineCosNaming.idl: + * tests/Bug_2424_Regression/README: + * tests/Bug_2424_Regression/client.cpp: + + Regression test for the above fix. + + * tests/Bug_2429_Regression/Bug_2429_Regression.mpc: + * tests/Bug_2429_Regression/Child.idl: + * tests/Bug_2429_Regression/ChildServant.h: + * tests/Bug_2429_Regression/ChildServant.cpp: + * tests/Bug_2429_Regression/Parent.idl: + * tests/Bug_2429_Regression/README: + * tests/Bug_2429_Regression/client.cpp: + * tests/Bug_2429_Regression/run_test.pl: + * tests/Bug_2429_Regression/server.cpp: + + Regression test for bug #2429. This bug is currently not fixed so + this test will fail. + +Wed Mar 8 13:05:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IFR_Client/IFR_Client_Adapter_Impl.cpp: + Include IFR_BasicC.h instead of IFR_ExtendedC.h, all types + used in this file are from IFR_BasicC.h + +Wed Mar 8 12:31:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.cpp: + The workaround in this file for Borland C++ is also needed for + BCB2006 Update Pack 2 + +Wed Mar 8 12:11:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Object.cpp: + Use true/false instead of 1/0 + +Wed Mar 8 12:19:37 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * tests/Bug_2377_Regression/*: + removed from TAO level to the more appropriate orbsvcs + + * orbsvcs/tests/Bug_2377_Regression/*: + Regression for bug 2377 moved here. + +Wed Mar 8 11:39:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/LocalObject.cpp: + Use true/false instead of 1/0 + +Wed Mar 8 07:14:30 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Makefile.am: + + Regenerated. + +Tue Mar 7 16:21:32 UTC 2006 Adam Mitz <mitza@ociweb.com> + + * orbsvcs/Naming_Service/Makefile.am: + * orbsvcs/Naming_Service/Naming_Server.cpp: + * orbsvcs/Naming_Service/Naming_Service.mpc: + The Naming Server executable now includes the header for the + ImR client library. This is required for tests in static + builds that use the Naming Server with the ImR. + +Tue Mar 07 11:11:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2417_Regression/publisher_impl.cpp: + Fixed implicit conversion warnings + +Tue Mar 7 10:16:50 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * tests/Bug_2377_Regression/*: + New regression for bug 2377. + +Tue Mar 07 09:36:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2417_Regression/Bug_2417_Regression.mpc: + Added threads as base project + +Tue Mar 7 07:51:52 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/LifeCycle_Service/Makefile.am: + + Regenerated. + + * orbsvcs/LifeCycle_Service/LifeCycle_Service.mpc: + + Changed to not inherit from 'core' so LifeCycle_Service + executable is not installed. It's not a stand-alone service + like the others in ${TAO_ROOT}/orbsvcs, it is an example for use + with ${TAO_ROOT}/examples/Quoter. After x.5.1 we'll try to find + a better place for this. See bugzilla issue 2410. + +Tue Mar 7 07:40:37 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/AMI/FL_Callback/Makefile.am: + * tao/Makefile.am: + + Regenerated for autoconf FL & QT Reactor / FL & QT Resource + Factory support. + +Mon Mar 06 20:08:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Transport.h: + Doxygen improvement + +Mon Mar 06 19:19:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Incoming_Message_Queue.cpp: + Doxygen improvements + +Mon Mar 06 16:00:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Event/ECG_CDR_Message_Sender.cpp: + Use prefix increment instead of postfix + +Mon Mar 06 15:57:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Invocation_Adapter.cpp: + Removed a not needed local variable. + + * tao/IIOP_Transport.cpp: + Initialise pointer with 0 + +Mon Mar 06 15:56:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/OBV/Factory/OBV_Factory.mpc: + * tests/OBV/Forward/OBV_Forward.mpc: + * tests/OBV/TC_Alignment/OBV_TC_Alignment.mpc: + * tests/OBV/ValueBox/valuebox.mpc: + Use more specific base projects + + * tests/OBV/Supports/Supports_Test.mpc: + Removed exename, not needed + +Mon Mar 06 15:32:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Any/Recursive/client.cpp: + * tests/Any/Recursive/Test.idl: + Extended this test by making the IDL even a little bit more complex + + * TAO_IDL/fe/fe_interface_header.cpp: + Explicitly initialize pd_n_supports to 0, fixes a crash of TAO_IDL + when build with Borland C++ when feeding it a certain incorrect + IDL file. This fixes bugzilla bug 2428 + + * tao/AnyTypeCode/Any.cpp: + * tao/AnyTypeCode/Any_Array_Impl_T.cpp: + * tao/AnyTypeCode/Any_Basic_Impl.cpp: + * tao/AnyTypeCode/Any_Basic_Impl_T.cpp: + * tao/AnyTypeCode/Any_Dual_Impl_T.cpp: + * tao/AnyTypeCode/Any_Impl_T.cpp: + * tao/AnyTypeCode/Any_Special_Impl_T.cpp: + * tao/AnyTypeCode/Any_SystemException.cpp: + * tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp: + * tao/AnyTypeCode/Empty_Param_TypeCode.cpp: + * tao/AnyTypeCode/Enum_TypeCode.cpp: + * tao/AnyTypeCode/Enum_TypeCode_Static.cpp: + * tao/AnyTypeCode/ExceptionA.cpp: + * tao/AnyTypeCode/TypeCode.cpp: + * tao/AnyTypeCode/TypeCode_Case_T.cpp: + * tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp: + * tao/AnyTypeCode/Union_TypeCode.cpp: + * tao/AnyTypeCode/Union_TypeCode_Static.cpp: + * tao/AnyTypeCode/Value_TypeCode.cpp: + * tao/AnyTypeCode/Value_TypeCode_Static.cpp: + Initialise some pointers with 0, made some local variables const, + use true/false instead of 1/0. Fixed bugzilla bug 2323 by: + - When marshaling recursive unions for each case use a seperate + stream so that the offsets do get calculated + - For each recursive type be able to handle multiple members of + the recursive type, we could only handle one occurence. + For recursive types we should have more test cases, probably there + are a few small bugs left in this code but these aren't catched + by the current regression test suite. + +Mon Mar 06 15:13:12 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2417_Regression/*: + New regression for bug 2417. Thanks to Jan Ohlenburg + <jan dot ohlenburg at fit dot fraunhofer dot de> for + delivering this test. This bug has not been fixed yet. + +Sun Mar 05 11:13:13 2006 Wallace Zhang <zhangw@ociweb.com> + + * TAO version 1.5 released. + +Fri Mar 3 17:09:34 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated this file. + +Thu Mar 2 14:53:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Trader/Trader.h: + * tao/Incoming_Message_Stack.h: + For Borland C++ we have workarounds in these files, seems these + are also needed for BDS2006 with Update Pack 2 + +Thu Mar 2 01:56:58 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated this file with more inputs. + +Wed Mar 1 22:39:37 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated this file with info from Jeff Parsons + +Wed Mar 1 15:09:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB_Core.cpp (shutdown): + After releasing pi_current_ set it to nil because this release could + result in the destruction of picurrent and then we read invalid + memory. Found from the AdvSlot test running with valgrind. + +Wed Mar 1 07:29:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/RTScheduling/Fixed_Priority_Scheduler/Fixed_Priority_Scheduler.mpc: + * examples/RTScheduling/MIF_Scheduler/MIF_Scheduler.mpc: + Added after to fix parallel build problems with vc8 + +Tue Feb 28 12:25:24 UTC 2006 Simon McQueen <sm@prismtech.com> + + * NEWS: + + Updated. + +Tue Feb 28 11:39:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Incoming_Message_Stack.inl (destructor): + Initialise pointer with 0 + +Tue Feb 28 10:51:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Incoming_Message_Queue.cpp (destructor): + Use the correct datatype for the cleanup loop. + +Tue Feb 28 10:09:45 UTC 2006 Simon McQueen <sm@prismtech.com> + + * TAO_IDL/be/be_argument.cpp: + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/include/idl_global.h: + * TAO_IDL/util/utl_global.cpp: + + Redo the fix for bug #2419 from: + Mon Feb 27 16:23:50 UTC 2006 Simon McQueen <sm@prismtech.com> + + Introduce a new flag to idl_global to indicate when we need to + force generation of the skeleton includes. Setting + non_local_iface_seen_ to be true was causing undesirable side effects + on non-inlined builds. Generate skeleton includes when the new + need_skeleton_includes_ or non_local_iface_seen_ is true. + +Tue Feb 28 08:04:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Incoming_Message_Stack.h: + Also BCB2006 Update Pack 1 needs an explicit export + +Mon Feb 27 18:19:03 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tests/Bug_2084_Regression/Server_Task.cpp: + + Suppress occasional spurious exception output on fast machines. + +Mon Feb 27 18:42:38 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * orbsvcs/orbsvcs/FaultTolerance/FT_IOGR_Property.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_IOGR_Property.cpp: + + Reverted my change on + Thu Feb 23 15:10:18 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + Because it made the two tests IOGRManipulation and 2247 failed. + I will supply a better fix in x.5.1 after more thorough testing. + +Mon Feb 27 17:08:00 UTC 2006 Frank Rehberger <frehberger@prismtech.com> + + * tao/Transport.cpp: + Incomplete messages, smaller Header-Length, shall be put + into intermediate buffer + +Mon Feb 27 16:23:50 UTC 2006 Simon McQueen <sm@prismtech.com> + + * TAO_IDL/be/be_argument.cpp: + + Don't not generate skeleton includes for arguments from inherited + imported abtstract types. + + This fixes bug #2419 howewer the ticket needs to stay open pending + a fix that can be described without ugly double negatives. ;-) + + * tests/Bug_2419_Regression/Bug_2419_Regression.mpc: + * tests/Bug_2419_Regression/README: + * tests/Bug_2419_Regression/abstract_parent.idl: + * tests/Bug_2419_Regression/client.cpp: + * tests/Bug_2419_Regression/local_child.idl: + + Small regression test for the above. + +Mon Feb 27 15:27:42 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log_i.cpp (TAO_Log_i::set_capacity_alarm_thresholds): + + Call get_capacity_alarm_thresholds() on the record store instead + of on "this" to avoid recursive lock invocation. + +Mon Feb 27 10:56:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/PolicyFactory/run_test.pl: + * tests/Portable_Interceptors/Register_Initial_References/run_test.pl: + Increased timeouts to get these test running fine with VxWorks, + the time there includes also loading the image which takes a + few seconds + +Sun Feb 26 12:26:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/AMI/AMI.mpc: + Added after to fix problems in vc8 ide build + +Sun Feb 26 11:57:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Incoming_Message_Stack.h: + Only export this class with BCB6, all other compilers don't have + problems with this. + + * tests/Bug_2174_Regression/run_test.pl: + * tests/Bug_2183_Regression/run_test.pl: + * tests/Bug_2289_Regression/run_test.pl: + * tests/Smart_Proxies/dtor/run_test.pl: + Updated to work under VxWorks + +Sat Feb 25 14:56:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Incoming_Message_Stack.h: + Export this class, fixes unresolved external errors with BCB6 + +Sat Feb 25 12:38:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/CodeSets/simple/CodeSets_simple.mpc: + Added after to fix parallel build problems with vc8 + +Sat Feb 25 03:00:00 UTC 2006 Frank Rehberger <frehberger@prismtech.com> + + * tao/Incoming_Message_Stack.{h,cpp,inl}: remove unused operation + from interface and turn return type of push-operation to "void" + * tao/Transport.cpp: + tao/GIOP_Message_Base.cpp: + Adapt to interface of Incoming_Message_Stack and limit + number of ACE_ERROR message to usefull amount to reduce + footprint size. + +Fri Feb 24 19:11:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Param_Test/run_test.pl: + Check what spawn returned, when there is no exe this speedsup + this test a lot + +Fri Feb 24 14:06:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2289_Regression/run_test.pl: + Fixed error message to say correct test number + +Fri Feb 24 13:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2234_Regression/run_test.pl: + * tests/AMH_Oneway/run_test.pl: + * tests/Smart_Proxies/dtor/run_test.pl: + * tests/Bug_2183_Regression/run_test.pl: + Updated these scripts to work with VxWorks and when we can't + spawn the server directly exists, safes us some seconds in + the test run when nothing has been build + +Fri Feb 24 11:29:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2349_Regression/Bug_2349_Regression.mpc: + Added after to fix build problems with the vc8 ide + +Fri Feb 24 10:22:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/Sequence_Latency/DII/client.cpp: + Added static casts to fix compile errors with SunCC 64bit + +Fri Feb 24 09:44:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/IDL_Test/interface.idl: + Added try interface as testcase + +Fri Feb 24 09:43:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Basic_Arguments.h: + Use for the basic types the AnyTypeCode adapter, belonging to + Tue Feb 21 19:17:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + +Fri Feb 24 07:26:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/RTScheduling/RTScheduler_includeS.h: + Added this file, needed by the RTScheduling example + +Thu Feb 23 21:45:54 UTC 2006 Adam Mitz <mitza@ociweb.com> + + * orbsvcs/tests/ImplRepo/run_test.pl: + The test "nt_service_ir" copies files, installs services, and starts + those services (Windows "NT" Services). With this change the test + will clean up all of these actions even when the test fails. + +Thu Feb 23 20:01:29 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Makefile.am: + + Regenerated for autoconf TK Reactor / TK Resource Factory + support. + +Thu Feb 23 18:41:18 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * tao/Utils/Servant_Var.inl (operator=): + * tao/Valuetype/Value_VarOut_T.cpp (operator=): + + Fixed problem where non-copying assignment prematurely decreased + reference count on contained object by adding a check for + self-assignment. The canonical copy-and-swap idiom was used to + provide a strong exception safety guarantee. It doesn't require + a self-assignment check for copying assignment but it may be + needed for non-copying assignment. Addresses memory access + violations. + +Thu Feb 23 17:14:25 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tao/GIOP_Message_Lite.cpp: + * tao/Strategies/SHMIOP_Transport.cpp: + + Fixed unused argument warning. + +Thu Feb 23 16:45:36 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tests/Bug_2186_Regression/Bug_2186_Regression.mpc: + * tests/Bug_2186_Regression/Hello.h: + * tests/Bug_2186_Regression/Hello.cpp: + * tests/Bug_2186_Regression/README: + * tests/Bug_2186_Regression/Test.idl: + * tests/Bug_2186_Regression/client.cpp: + * tests/Bug_2186_Regression/run_test.pl: + * tests/Bug_2186_Regression/server.conf: + * tests/Bug_2186_Regression/server.cpp: + + Added a regression test for this bug. This will fail until it is + fixed. + +Thu Feb 23 15:45:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tao/PI/PICurrent_Impl.cpp: + + Updated/TAOized debug text at line 57. + +Thu Feb 23 15:10:18 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * orbsvcs/orbsvcs/FaultTolerance/FT_IOGR_Property.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_IOGR_Property.cpp: + + Added A helper function that tests the equivalency of two + profiles that come from an ior and an iogr. + +Thu Feb 23 10:55:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tests/Portable_Interceptors/AdvSlotDblCpy/README: + + Updated README to show example test run. + +Wed Feb 22 23:42:40 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Makefile.am: + + Regenerate for new files. + +Wed Feb 22 20:54:02 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/LogNotification.cpp: + + _duplicate() log reference before assigning it to event's logref + field to get life cycle/reference count management right. Fixes + bugzilla issue #2416. + +Wed Feb 22 20:37:00 UTC 2006 Frank Rehberger <frehberger@prismtech.com> + + * tao/PluggableMessaging.h: Remove abstract operation: + read_message, missing_data, get_message_data. Add abstract + operation parse_next_message (), consolidate_fragmented_message, + discard_fragmented_message. + + * tao/GIOPMessageBase.{h,cpp}: Remove implementation for + read_message. Add parse_incoming_messages. Add implementation for + new abstract methods consolidate_fragmented_message, + parse_next_message, discard_fragmented_message. Declare as private + parse_incoming_messages, parse_request_id. Add new member + attribute fragment_stack_ of type Incoming_Message_Stack. Handle + TAO_GIOP_MESSAGE_ERROR not as error. For incomplete messages of + unknown size, allocating message_blocks of size + ACE_CDR::DEFAULT_BUFSIZE. Handle memory allocation failures in + code. Wrap output-strings with ACE_TEXT macro. + + * tao/GIOP_Message_Lite.{h,cpp}: Remove implementation of + read_message and get_message_data. Handle + GIOP_MESSAGE_CANCELREQUEST. IMplement new virtual method + parse_next_message, Handle out-of-memory cases. Dummy + implementations for consolidate_fragmented_message and + discard_fragmented_message. + + * tao/Incoming_Message_Stack.{h,cpp}: New class providing stack + operations for TAO_Queued_Data, operations do not require dynamic + memory allocation. + + * tao/Incoming_Message_Queue.{h,cpp,inl}: remove obsolet + operations for interface TAO_Incoming_Message_Queue: copy_tail, + is_tail_complete, is_head_complete, is_tail_fragmented, + missing_data_tail, find_fragment_chain. Change return type to + "int" for operation consolidate, return value -1 indicating out of + memory cases. + + * tao/Transport.{h,cpp}: Major changes: New implementation of + operation handle_input() fixing following, errors with GIOP + fragment handling that showed up testing with Java_Big_Request + test (w/ jre1.4), handling of messages bigger than 2Go, concurrent + processing of short messages using single-read-optimization, keep + connection in case of GIOP CancelRequests, compensate memory + buffer alignment. Remote methods from interface + parse_consolidate_messages, parse_incoming_messages, missing_data, + consolidate_message, consolidate_fragments, + consolidate_message_queue, consolidate_extra_messages, + make_queued_data. Add methods handle_input_missing_data, + handle_input_parse_data. Add instance member + "incoming_message_stack_" of type Incomig_Message_Stack. Minor + changes: Wrap output strings with ACE_TEXT macro, remove + ACE_ASSERT statements. + + * tao/Strategies/DIOP_Transport.cpp: Compensate memory buffer + alignment. + + * tao/Strategies/SHMIOP_Transport.{h,cpp}: Compensate memory + buffer alignment. Adapt to new interface of + PluggableMessaging. Add specialized implemenation of + PLuggable_Messaging::handle_input() + + * tao/tao.mpc: Add dependency to tao/IncomingMessageStack.{h,cpp} + + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Tranport.cpp: Adapt to new + interface of PluggableMessaging. + + These changes require to recompile and modify custom Messaging + implementations. This patch fixes #2303, 2305, 2306, 2307, 2308, + 2309, 2313, 2361, 2365 + +Wed Feb 22 16:55:24 GMT 2006 Rich Seibel <seibel_r@ociweb.com> + + * examples/RTScheduling/MIF_Scheduler/svc.conf.client: + * examples/RTScheduling/MIF_Scheduler/svc.conf.server: + Changed priority policy from direct to continuous. + The direct does not work on AIX 5.3, but continuous + seems to work everywhere. + +Wed Feb 22 16:45:29 GMT 2006 Rich Seibel <seibel_r@ociweb.com> + + * tao/Array_VarOut_T.inl: + Removed a nasty cast that shouldn't be necessary. + Only broken builds, like MSVC6 should require the + reinterpret_cast<>, otherwise builds should need + no cast. Thus, only the broken compilers should + be singled out. Thanks to the XL 7 compiler on + AIX for pointing this out. + +Wed Feb 22 15:56:49 UTC 2006 Iliyan Jeliazkov <iliyan@ociweb.com> + + Reverting a change, added with the commits from + Fri Feb 10 20:40:31 UTC 2006 and Thu Feb 9 19:59:41 UTC + 2006. The original intent was to ensure that unsecured clients + can not make invocations on servants, explicitly marked as + secure. The problem is in that a client-side-only policy + (Security::SecQoP*) was used, which is not permitted by the + CORBA specification. An alternative solution, based upon + SecurityLevel2 SecureInvocationPolicy or SecurityLevel3 + ObjectCredentialsPolicy should be sought. Thanks + to Ossama Othman <Ossama_Othman at symantec dot com> for + pointing that out and discussing the alternatives. + + * NEWS: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Invocation_Interceptor.cpp: + * orbsvcs/tests/Security/Policies/Foo.idl: + * orbsvcs/tests/Security/Policies/Foo_i.h: + * orbsvcs/tests/Security/Policies/Foo_i.cpp: + * orbsvcs/tests/Security/Policies/Policies.mpc: + * orbsvcs/tests/Security/Policies/README: + * orbsvcs/tests/Security/Policies/cacert.pem: + * orbsvcs/tests/Security/Policies/client.conf: + * orbsvcs/tests/Security/Policies/client.conf.xml: + * orbsvcs/tests/Security/Policies/client.cpp: + * orbsvcs/tests/Security/Policies/client_cert.pem: + * orbsvcs/tests/Security/Policies/client_key.pem: + * orbsvcs/tests/Security/Policies/client_nopasswd.conf: + * orbsvcs/tests/Security/Policies/client_nopasswd.conf.xml: + * orbsvcs/tests/Security/Policies/run_test.pl: + * orbsvcs/tests/Security/Policies/server.conf: + * orbsvcs/tests/Security/Policies/server.conf.xml: + * orbsvcs/tests/Security/Policies/server.cpp: + * orbsvcs/tests/Security/Policies/server_cert.pem: + * orbsvcs/tests/Security/Policies/server_key.pem: + * orbsvcs/tests/Security/Policies/server_key_nopasswd.pem: + + Removed these files. + +Wed Feb 22 12:15:30 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tests/Bug_2134_Regression/Hello.cpp: + + Fix error on FC4_ACE_FOR_TAO build. Spurious ';'s in the code. + +Wed Feb 22 11:30:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tao/PI/PICurrent_Copy_Callback.cpp: + * tao/PI/PICurrent_Impl.cpp: + * tao/PI/PICurrent_Impl.h: + * tao/PI/PICurrent_Impl.inl: + * tao/PI_Server/PICurrent_Guard.cpp: + + Bugzilla bugfix #2304, also fixes #2066 + +Wed Feb 22 09:55:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp: + * tests/Portable_Interceptors/AdvSlotDblCpy/server.cpp: + + Updated regression test for set_slot in send_reply + bugzilla bug #2304. + +Wed Feb 22 04:45:00 UTC 2006 Frank Rehberger <frehberger@prismtech.com> + + * tao/ORB_Core.cpp: + Fixing TAO_ORB_Core_Auto_Ptr assignment + + * tao/ORB_Table.{h,inl}: + Fixing namespace-ing for TAO_ORB_Core. + + * tao/Stub.i: + Fixing TAO_ORB_Core declaration + + Together all these changes are related to previous commit for + bugzilla bugs #1741 / #2134; #2289; #1493; #2130. + +Tue Feb 21 19:17:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.{h,cpp}: + * tao/AnyTypeCode_Adapter.h: + Added insert_into_any methods for all basic types. Thanks to + Nemoy Michael <michaeln at sintecmedia dot com> for providing + the patches. This also fixes bugzilla bugs 2371, 2367, and 2422 + +Tue Feb 21 17:48:24 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tao/Adapter.h: + + Remove the CORBA::Object_ptr argument from + ::initialize_collocated_object on TAO_Adapter. We need to call this + method in circumstances when a CORBA::Object is not available. + + * tao/Adapter_Registry.h: + * tao/Adapter_Registry.cpp: + + Reflect the above change. Also ::initialize_collocated_object must + now only return 0 for success if the stub it is working on has been + fully initialized. The registry reflects this by continuing to try + adapters until one returns 0. + + Similarly ::create_collocated_object now will potentially call the + above method on all remaining adapters if, after an adapter has + created an Object, the Object has not been fully initialized. + + * tao/IORTable/Table_Adapter.h: + * tao/IORTable/Table_Adapter.cpp: + + Create a common method ::find_object which attempts to locate an + object in in the table. Implement ::dispatch in terms of this method. + + Implement ::initialize_collocated_object to search the table using + the above mentioned ::find_object method and, if one is found, to + forward the stub it is initializing to this object ref. Reflect the + change in API for ::initialize_collocated_object. + + Add an implementation of ::create_collocated_object in terms of + ::initialize_collocated_object. + + * tao/ORB_Core.h: + * tao/ORB_Core.cpp: + * tao/ORB_Table.h: + + Include the locking changes proposed by Robert Hancock (Robert dot + Hancock at sedsystems dot ca) on bug #2130 with a couple of small + mods. Thanks to Robert Hancock for providing these. + + Add a new method ::reinitialize_object to be called on stubs whenever + an object has been forwarded or has fallen back from a forwarded + location. This method determines if the stub has become (or ceased to + be) collocated and performs the necessary actions to set the + collocation relevent attributes on the stub. + + * tao/Object.h: + * tao/Object.i: + * tao/Object.cpp: + + Remove the members TAO::Object_Proxy_Broker *proxy_broker_, + TAO_Abstract_ServantBase *servant_ and + CORBA::Boolean is_collocated_ from this class. These are now held on + the stub. Change all access to these values to delegate to the stub. + + * tao/PortableServer/Collocated_Object_Proxy_Broker.cpp: + + Remove the CORBA::Object_ptr argument from the function + _TAO_collocation_Object_Proxy_Broker_Factory. It was unused and we + need to use this when we don't have an Object. + + * tao/PortableServer/Object_Adapter.h: + * tao/PortableServer/Object_Adapter.cpp: + + Reflect the change in API for ::initialize_collocated_object. Make + that method and ::create_collocated_object use the new accessors + for collocation attributes on the stub rather than the CORBA::Object. + Make ::initialize_object only return 0 for success if it has fully + completed the intialisation of an object. i.e. it managed to locate + a collocated servant for the stub. + + * tao/Stub.h: + * tao/Stub.i: + * tao/Stub.cpp: + + Add the collocated servant, collocated indicator, and object proxy + broker members from CORBA::Object to this class with appropriate + accessors. + + Insert calls to ::reinitialize_object on the stubs ORB core at points + where the stub may have moved to / from being collocated. + + Together all these changes fix bugzilla bugs #1741 / #2134; #2289; + #1495; #2130. + + * tests/Bug_2134_Regression/Bug_2134_Regression.mpc: + * tests/Bug_2134_Regression/Hello.idl: + * tests/Bug_2134_Regression/Hello.cpp: + * tests/Bug_2134_Regression/README: + * tests/Bug_2134_Regression/run_test.pl: + + A regression test for bugzilla #1741 / #2134. #2289 is already in the + repo, as is #1495. + +Tue Feb 21 17:45:06 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * orbsvcs/orbsvcs/IFRService/Container_i.cpp: + + Cosmetic change to source code. + + * orbsvcs/orbsvcs/IFRService/StructDef_i.cpp (members_i): + * orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp (members_i): + + Fixed a bug with nested structs/nested unions that results + in the servant's ACE_Configuration_Section_Key (its + placeholder in the repository) being changed to the key + of the nested type, when processing returns to the top level + Thanks to Richard Spence <richard.spence.extern@icn.siemens.de> + for reporting the bogus exception thrown in TypeCodeFactory + that uncovered the problem. This fix closes [BUGID:2407]. + +Mon Feb 20 15:06:27 2006 Wallace Zhang <zhangw@ociweb.com> + + * TAO version 1.4.10 released. + +Mon Feb 20 07:27:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * Release: + Updated for rename of TAOACE.mwc to TAO_ACE.mwc + +Sun Feb 19 11:50:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/AdvSlotDblCpy/server.cpp: + Fixed conversion warning and fixed compile error with gcc4 + +Fri Feb 17 19:30:59 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Updated this file with more inputs. + +Fri Feb 17 15:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO-INSTALL.html: + Small improvements + +Fri Feb 17 13:53:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp: + Removed escape character that slipped in by accident + +Fri Feb 17 09:40:00 UTC Simon Massey <sma@prismtech.com> + + * tests/Portable_Interceptors/AdvSlotDblCpy/server.cpp: + Work around GCC4.0 template resolusion compilation bug? + +Fri Feb 17 09:03:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/FT_ReplicationManager/FT_ReplicationManager.cpp: + Fixed compile error with Borland + +Fri Feb 17 08:56:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp: + Fixed conversion warning + +Thu Feb 16 19:47:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp: + Fixed GOA factory name. Thanks to Alex Sheh + <ASHEH at euphonix dot com> for reporting this. + +Thu Feb 16 18:11:03 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/default_client.cpp: + + Report an error if unknown/unsupported argument is used with + -ORBIIOPProfileLock. + + Changed -ORBConnectionHandlerCleanup to support 0 and 1 as + arguments. Previously it only supported false, which made it + impossible to set the option after the default was changed to + false last September. Support false (and now true) arguments + for backwards compatibility. + +Thu Feb 16 16:00:07 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Notify_Service/Notify_Service.cpp: + + Revert change that got mixed in with: + Thu Feb 16 03:33:02 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + +Thu Feb 16 12:35:00 UTC Simon Massey <sma@prismtech.com> + + * tests/Portable_Interceptors/AdvSlotDblCpy/AdvSlotDblCpy.mpc: + * tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp: + * tests/Portable_Interceptors/AdvSlotDblCpy/InvokeMe.idl: + * tests/Portable_Interceptors/AdvSlotDblCpy/README: + * tests/Portable_Interceptors/AdvSlotDblCpy/run_test.pl: + * tests/Portable_Interceptors/AdvSlotDblCpy/server.cpp: + Added regression test for Bugzilla 2403 + +Thu Feb 16 09:21:51 UTC Johnny Willemsen <jwillemsen@remedy.nl> + + * TAOACE.mwc: + * TAO_ACE.mwc: + Renamed TAOACE to TAO_ACE, makes it easier for the builds to + exclude + +Thu Feb 16 03:33:02 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * docs/tutorials/Quoter/AMI/Makefile.am: + * docs/tutorials/Quoter/Event_Service/Makefile.am: + * docs/tutorials/Quoter/On_Demand_Activation/Makefile.am: + * docs/tutorials/Quoter/RT_Event_Service/Makefile.am: + * examples/AMH/Sink_Server/Makefile.am: + * examples/AMI/FL_Callback/Makefile.am: + * examples/Advanced/ch_3/Makefile.am: + * examples/Buffered_AMI/Makefile.am: + * examples/Buffered_Oneways/Makefile.am: + * examples/Callback_Quoter/Makefile.am: + * examples/Content_Server/AMI_Iterator/Makefile.am: + * examples/Content_Server/AMI_Observer/Makefile.am: + * examples/Content_Server/SMI_Iterator/Makefile.am: + * examples/Event_Comm/Makefile.am: + * examples/Kokyu_dsrt_schedulers/fp_example/Makefile.am: + * examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am: + * examples/Kokyu_dsrt_schedulers/muf_example/Makefile.am: + * examples/Load_Balancing/Makefile.am: + * examples/Load_Balancing_persistent/Makefile.am: + * examples/Logging/Makefile.am: + * examples/OBV/Typed_Events/Makefile.am: + * examples/POA/DSI/Makefile.am: + * examples/POA/Default_Servant/Makefile.am: + * examples/POA/Forwarding/Makefile.am: + * examples/POA/TIE/Makefile.am: + * examples/Persistent_Grid/Makefile.am: + * examples/PluggableUDP/tests/Basic/Makefile.am: + * examples/PluggableUDP/tests/Performance/Makefile.am: + * examples/PluggableUDP/tests/SimplePerformance/Makefile.am: + * examples/Quoter/Makefile.am: + * examples/Simple/bank/Makefile.am: + * examples/Simple/chat/Makefile.am: + * examples/Simple/echo/Makefile.am: + * examples/Simple/grid/Makefile.am: + * examples/Simple/time/Makefile.am: + * examples/Simple/time-date/Makefile.am: + * examples/Simulator/Event_Supplier/Makefile.am: + * examples/ior_corbaloc/Makefile.am: + * interop-tests/wchar/Makefile.am: + * orbsvcs/Makefile.am: + * orbsvcs/ImplRepo_Service/Makefile.am: + * orbsvcs/LifeCycle_Service/Makefile.am: + * orbsvcs/Notify_Service/Notify_Service.cpp: + * orbsvcs/Trading_Service/Makefile.am: + * orbsvcs/examples/CosEC/Factory/Makefile.am: + * orbsvcs/examples/FaultTolerance/RolyPoly/Makefile.am: + * orbsvcs/examples/ImR/Advanced/Makefile.am: + * orbsvcs/examples/ImR/Combined_Service/Makefile.am: + * orbsvcs/examples/LoadBalancing/Makefile.am: + * orbsvcs/examples/Log/RTEvent/Makefile.am: + * orbsvcs/examples/ORT/Makefile.am: + * orbsvcs/examples/Security/Send_File/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + * orbsvcs/performance-tests/LoadBalancing/LBPerf/RPS/Makefile.am: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/Makefile.am: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/Makefile.am: + * orbsvcs/tests/Bug_1395_Regression/Makefile.am: + * orbsvcs/tests/Bug_2247_Regression/Makefile.am: + * orbsvcs/tests/Bug_2248_Regression/Makefile.am: + * orbsvcs/tests/Bug_2285_Regression/Makefile.am: + * orbsvcs/tests/Bug_2287_Regression/Makefile.am: + * orbsvcs/tests/Bug_2316_Regression/Makefile.am: + * orbsvcs/tests/EC_Custom_Marshal/Makefile.am: + * orbsvcs/tests/FT_App/Makefile.am: + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/Makefile.am: + * orbsvcs/tests/FaultTolerance/IOGR/Makefile.am: + * orbsvcs/tests/HTIOP/AMI/Makefile.am: + * orbsvcs/tests/HTIOP/BiDirectional/Makefile.am: + * orbsvcs/tests/HTIOP/Hello/Makefile.am: + * orbsvcs/tests/IOR_MCast/Makefile.am: + * orbsvcs/tests/ImplRepo/Makefile.am: + * orbsvcs/tests/ImplRepo/scale/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/Makefile.am: + * orbsvcs/tests/Miop/McastHello/Makefile.am: + * orbsvcs/tests/Notify/Blocking/Makefile.am: + * orbsvcs/tests/Notify/Discarding/Makefile.am: + * orbsvcs/tests/Notify/MT_Dispatching/Makefile.am: + * orbsvcs/tests/Notify/Ordering/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/Structured_Filter/Makefile.am: + * orbsvcs/tests/Notify/Structured_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Filter/Makefile.am: + * orbsvcs/tests/Security/BiDirectional/Makefile.am: + * orbsvcs/tests/Security/Big_Request/Makefile.am: + * orbsvcs/tests/Security/Callback/Makefile.am: + * orbsvcs/tests/Security/Crash_Test/Makefile.am: + * orbsvcs/tests/Security/MT_IIOP_SSL/Makefile.am: + * orbsvcs/tests/Security/MT_SSLIOP/Makefile.am: + * orbsvcs/tests/Security/Secure_Invocation/Makefile.am: + * orbsvcs/tests/Trading/Makefile.am: + * orbsvcs/tests/ior_corbaname/Makefile.am: + * performance-tests/Callback/Makefile.am: + * performance-tests/Cubit/TAO/IDL_Cubit/Makefile.am: + * performance-tests/Cubit/TAO/MT_Cubit/Makefile.am: + * performance-tests/Latency/AMH_Single_Threaded/Makefile.am: + * performance-tests/Latency/AMI/Makefile.am: + * performance-tests/Latency/DII/Makefile.am: + * performance-tests/Latency/Deferred/Makefile.am: + * performance-tests/Latency/Single_Threaded/Makefile.am: + * performance-tests/Latency/Thread_Per_Connection/Makefile.am: + * performance-tests/Latency/Thread_Pool/Makefile.am: + * performance-tests/Memory/IORsize/Makefile.am: + * performance-tests/Memory/Single_Threaded/Makefile.am: + * performance-tests/POA/Demux/Makefile.am: + * performance-tests/POA/Implicit_Activation/Makefile.am: + * performance-tests/Pluggable/Makefile.am: + * performance-tests/Protocols/Makefile.am: + * performance-tests/RTCorba/Oneways/Reliable/Makefile.am: + * performance-tests/RTCorba/Thread_Pool/Makefile.am: + * performance-tests/Sequence_Latency/AMH_Single_Threaded/Makefile.am: + * performance-tests/Sequence_Latency/AMI/Makefile.am: + * performance-tests/Sequence_Latency/DII/Makefile.am: + * performance-tests/Sequence_Latency/DSI/Makefile.am: + * performance-tests/Sequence_Latency/Deferred/Makefile.am: + * performance-tests/Sequence_Latency/Single_Threaded/Makefile.am: + * performance-tests/Sequence_Latency/Thread_Per_Connection/Makefile.am: + * performance-tests/Sequence_Latency/Thread_Pool/Makefile.am: + * performance-tests/Throughput/Makefile.am: + + Regenerated with new MPC automake template. Addresses + problems where *.idl files in IDL custom_only projects + weren't listed. This addresses a large part of the issue + raised by Vladimir Panov where orbsvcs *.idl files were + not installed. + +Wed Feb 15 20:11:51 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * tests/Sequence_Unit_Tests/Sequence_Unit_Tests.mpc: + + Renamed many of the projects within this MPC file to avoid fuzz + warnings. + +Wed Feb 15 16:07:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/Objref_TypeCode.cpp: + * tao/Special_Basic_Argument_T.cpp: + Added includes to fix the solaris autoconf build. Thanks to + Vladimir Panov <gbr at voidland dot org> for reporting this + and providing patches. + +Wed Feb 15 11:42:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/PICurrent_Impl.h: + Extended documentation + + * tests/Portable_Interceptors/AdvSlotExt/*: + Another new PI test. We test the PI functionality in + receive_request. When we set a value in TSC, then this should + be independent of any change in RSC, so we set a value in + TSC, then another value in RSC and then read TSC again and + check if we did get the correct value back. + + * tao/PI/PICurrent_Impl.cpp (set_slot): + When this PICurrent has a lc_slot_table set, then copy this + table we refer to to our own table befor we start modifiying + our table. + + * tao/PI/PICurrent_Copy_Callback.cpp: + Only copy the slot table from source to destination when the + destination still refers to the table of the source. + + These changes together fix bugzilla bug 2401 and 2398. + +Wed Feb 15 09:01:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/PICurrent_Copy_Callback.{h,cpp}: + Changed the return type of the execute method to void, there + was no real meaning for the return value + + * tao/PI/PICurrent_Impl.cpp: + Updated for the change of the return value type + +Wed Feb 15 08:45:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/OBV/TC_Alignment/test_i.cpp: + Fixed compile errors with Borland + + * tao/PI_Server/PICurrent_Guard.h: + No need to export this class from this shared library + +Tue Feb 14 13:38:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/PICurrent/server.cpp: + Explicitly destroy the ORB at the end to make sure all interceptors + do get destroyed + +Tue Feb 14 12:51:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/PICurrent/ServerRequestInterceptor.cpp: + Improved check in receive_request to not give bad output + +Tue Feb 14 11:40:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Abstract_Interface/test_i.cpp: + * tests/OBV/Any/AnyS_impl.cpp: + * tests/OBV/Any/client.cpp: + * tests/OBV/Collocated/Forward/Client_Task.cpp: + * tests/OBV/Forward/client.cpp: + Fixed compile errors with Borland + +Tue Feb 14 08:40:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/PICurrent/ServerRequestInterceptor.cpp: + Added a test case for bugzilla bug 2401, in the receive_request we + modifity the RSC, this should not effect the TSC, this bug has not + been fixed yet, working on it + +Tue Feb 14 08:30:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/OBV/ValueBox/client.cpp: + Fixed compile errors with Borland C++ + +Mon Feb 13 20:21:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/Latency/DII/client.cpp: + * performance-tests/Sequence_Latency/DII/client.cpp: + Use a cast to convert a ACE_hrtime_t to a CORBA::ULongLong. This + fixes compile errors on Solaris 64bit + +Mon Feb 13 16:28:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/releasenotes/orbcore.html: + Updated link for bugzilla + +Mon Feb 13 15:51:38 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * TAO_IDL/fe/idl.ll: + * TAO_IDL/fe/lex.yy.cpp: + + Remove trailing whitespace for const wstring's as is done for + const string's. + + * tao/Seq_Var_T.h: + * tao/Seq_Var_T.inl: + + Added const [] operators to the TAO_FixedSeq_Var_T and + TAO_VarSeq_Var_T classes. + +Mon Feb 13 15:23:42 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/EC_MT_Mcast/Makefile.am: + + Regenerate. Test now requires Strategies library. + +Mon Feb 13 15:20:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerRequest_Interceptor.h: + Changed is_primary from bool to CORBA::Boolean to fix compile + errors with MacOS. Also removed is_primary method, was just + declared and I couldn't find any implementation + +Mon Feb 13 14:21:42 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/ast/ast_union.cpp (compute_default_value): + + When a clash is found between a declared case label value and + the initialized default discriminator value for a boolean + discriminator, changed the method of modifying the intialized + discriminator defaul value from '++' to '^=', in order to + be consistent with the changes in + + Thu Feb 9 16:31:17 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + since this type of discriminator value is now stored internally as + a native boolean instead of a signed long. + + * TAO_IDL/be/be_generator.cpp: + * TAO_IDL/be_include/be_generator.h: + + Changed signature of one of the create_expr() overloads + to match the signature change to constructors of be_expression + and AST_Expression in + + Thu Feb 9 16:31:17 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + +Mon Feb 13 13:47:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/AdvSlot/server.cpp: + Improved this test, explicitly put a Long with value 5 in the PI + slot and retrieve it later, this we can check whether we get + the correct value back. + +Mon Feb 13 13:02:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/PICurrent_Copy_Callback.h: + Disallow copy and assignment + +Mon Feb 13 12:54:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/PICurrent_Impl.cpp: + Added some more documentation + +Mon Feb 13 12:45:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/PICurrent_Impl.h: + Doxygen improvements + +Mon Feb 13 12:12:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/AdvSlot/client.cpp: + Call shutdown on the server when ready + +Mon Feb 13 11:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Servant_Upcall.cpp: + Fixed typo in comment + + * tao/PortableServer/Servant_Upcall.h: + Document that we have an instance per upcall + +Mon Feb 13 11:21:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Object_Adapter.cpp: + Initialise some pointers with 0 + +Mon Feb 13 11:19:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/RTCORBA/Thread_Pool.{h,cpp}: + Create the dynamic threads as detached, they can exit themselves + when load drops again, so we then can't join on them. Used the + same flags as for the TPC thread the ORB can create + +Mon Feb 13 09:11:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Security/Policies/Foo_i.cpp: + Use CORBA::is_nil to check if an object reference is nil or not + +Mon Feb 13 09:02:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp: + Do the allocation of the ExceptionHolder in two steps, for allocate + is using a pointer and then assign this pointer to a _var. Fixes + compile problems in the Borland builds + +Sun Feb 12 13:41:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * utils/catior/catior.cpp: + * orbsvcs/tests/Security/Policies/client.cpp: + Fixed conversion warning + + * orbsvcs/tests/Security/Policies/Policies.mpc: + No need to set exename + +Sun Feb 12 08:32:09 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * Makefile.am: + + Regenerated. + + * utils/catior/catior.cpp: + + Use #include "orbsvcs/CosNamingC.h" instead of #include + "CosNamingC.h", as per normal TAO include path conventions. + + * utils/catior/catior.mpc: + + Remove includes += definition. The include path already has + orbsvcs via inheritance from namingexe. + +Sun Feb 12 05:29:06 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_sequence/serializer_op_cs.cpp: + + Cosmetic change to source code. + + * TAO_IDL/be/be_visitor_valuetype/valuetype_init_arglist_ch.cpp (gen_throw_spec): + + Fixed code generation error introduced with a change to this + file in + + Thu Feb 9 14:06:09 UTC 2006 Simon McQueen <sm@prismtech.com> + +Sat Feb 11 15:36:12 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * tests/OBV/ValueBox/Test_impl.cpp: + + Divide sizeof(VBlongarray) by sizeof(CORBA::Long) instead of + sizeof(long). Fixes OBV/ValueBox test on systems with 64 bit + longs. + +Sat Feb 11 04:08:52 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * TAO_IDL/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + +Sat Feb 11 000:26:18 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/ast/ast_decl.cpp: + * TAO_IDL/ast/ast_interface.cpp: + * TAO_IDL/ast/ast_structure.cpp: + * TAO_IDL/include/ast_decl.h: + * TAO_IDL/include/idl_global.h: + * TAO_IDL/util/utl_err.cpp: + + Changed base class AST_Decl to use ACE_CString for its + pd_file_name member, instead of using UTL_String*. Also + changed static method idl_error_header() to take an + ACE_CString for the filename argument. Easier to get + this member type to stick around until we check for + illegal primary keys, which must be done after all + other parsing. + +Fri Feb 10 20:40:31 UTC 2006 Iliyan Jeliazkov <iliyan@ociweb.com> + + * orbsvcs/tests/Security/Policies/Foo_i.cpp: + * orbsvcs/tests/Security/Policies/client.cpp: + + Minor updates to printed output to prevent the regression suite + from incorrectly interpreting debug output as test failure. + +Fri Feb 10 19:22:34 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * orbsvcs/orbsvcs/CosTrading.mpc: + + Added iortable as a base project for the CosTrading_Serv library. + + * orbsvcs/orbsvcs/Trader/Trading_Loader.cpp: + + Add the TradingService IOR to the IORTable so that it may be used + as a corbaloc within a -ORBInitRef. + + * orbsvcs/tests/Trading/run_test.pl: + + Modified this test to use a corbaloc to locate the TradingService. + +Fri Feb 10 15:49:17 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp: + + Reverted back a change I did because its non-compliance + with the FT Spec. + Thu Feb 9 20:06:18 UTC 2006 Wallace Zhang + +Fri Feb 10 15:28:50 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_typecode/value_typecode.cpp: + + Applied the fix suggested by Johnny Willemsen + <jwillemsen@remedy.nl> in [BUGID:2145], since it was + never supplied by the bug reporter, and closed the entry. + +Fri Feb 10 15:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/configurations.html: + Fixed link + +Fri Feb 10 15:00:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tao/ServerRequestInterceptor_Adapter.h + * tao/PI_Server/ServerInterceptorAdapter.cpp: + * tao/PortableServer/Object_Adapter.cpp: + Correct compile problems for TAO_HAS_EXTENDED_FT_INTERCEPTORS + builds. This build configuration has been left behind with + recent changes. + +Fri Feb 10 14:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/EC_Mcast/run_test.pl: + * orbsvcs/tests/EC_MT_Mcast/run_test.pl: + When we can't spawn the processes, just exit directly instead + of waiting on a timeout. Speedsup the daily builds when we + can't build the executables + +Fri Feb 10 11:21:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Event/ECG_CDR_Message_Sender.cpp: + Use prefix increment + + * orbsvcs/orbsvcs/Event/ECG_UDP_Protocol.h: + Removed this file + + * orbsvcs/tests/EC_MT_Mcast/EC_MT_Mcast.mpc: + * orbsvcs/tests/EC_MT_Mcast/MCast.cpp: + * orbsvcs/tests/EC_MT_Mcast/svc.conf: + Link in the strategies lib, this way this test can be used + also in a static environment + + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp: + Initialise pointer with 0 + +Fri Feb 10 11:10:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2319_Regression/*: + Added regression for this bug. Thanks to Toha Bakanovsky + <im-scooter at yandex dot ru> for creating this. This bug + is not fixed + + * tao/Blocked_Connect_Strategy.h: + Doxygen improvements + + * tao/FlResource_Loader.cpp: + Removed not needed include + + * tao/FlResource_Factory.h: + Reordered includes + + * tao/PI_Server/ServerInterceptorAdapter.cpp: + We did copy PICurrent too often from TSC to RSC and back + + * tao/PortableServer/Servant_Upcall.h: + Made single argument constructor explicit + + * tao/RTPortableServer/RT_POA.cpp: + Initialize pointer with 0 + +Fri Feb 10 08:28:55 UTC 2006 Don Sharp <Donald.Sharp@prismtech.com> + + * utils/catior/catior.cpp: + * utils/catior/catior.mpc: + + Better error reporting. + + Implement name server IOR lookup. + +Wed Feb 8 12:00:57 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * utils/catior/catior.cpp (cat_codeset_info): + + Take into account CDR encapsulation byte order when demarshaling + information from the encapsulation. Fixes incorrect + demarshaling in cases where CDR encapsulation byte order does + not match CDR stream byte order. [Bug 2400] + +Thu Feb 9 21:07:51 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_helper.cpp: + * TAO_IDL/be_include/be_helper.h: + + Changed the signature of the TAO_OutStream operator that + takes a TAO_ACE_CHECK struct to get a const reference of + the struct, instead of a non-const reference. In code + generation, this struct is passed to the operator as a + temporary, and gcc is evidently catching that a temporary + shouldn't be passed as a non-const reference (Visual Studio + did not catch it), but reporting the error as a failure to + resolve the operator overload. + +Thu Feb 9 20:17:37 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Fix typo in regeneration. + +Thu Feb 9 20:06:18 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerRequest_Interceptor.cpp: + + Corrected the use of the length of the passing parameter to a + function. + + * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp: + + Changed the return value of function is_profile_equivalent when + comparing an IOR and an IOGR. Basically, when you compare an + IOR and an IOGR, we need to return "DONT_KNOW",not + "NOT_EQUIVALENT". + + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group_Manipulator.cpp: + + A fix for using the object reference. + + * tao/IORManipulation/IORManipulation.cpp: + + Corrected the order of adding, removing profiles, and creating + Object References. + +Thu Feb 9 19:59:41 UTC 2006 Iliyan Jeliazkov <iliyan@ociweb.com> + + This change was adds enforcement for any Security::SecQoP* + policies applicable on a POA, that may be different from the ORB + default. It resolves an bug, which allowed security unaware + clients to make invocations on "secure" objects when the ORB is + configured with support for Security::SecQoPNoProtection. + ("Secure" in this context means that the object is activated in + a POA, for wich security policy was set to at least + Security::SecQoPIntegrity.) + + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Invocation_Interceptor.cpp: + + Added code to the interception point to ensure that any + Security::SecQoP* policies are enforced. + + * orbsvcs/tests/Security/Policies/Foo.idl: + * orbsvcs/tests/Security/Policies/Foo_i.h: + * orbsvcs/tests/Security/Policies/Foo_i.cpp: + * orbsvcs/tests/Security/Policies/Policies.mpc: + * orbsvcs/tests/Security/Policies/README: + * orbsvcs/tests/Security/Policies/cacert.pem: + * orbsvcs/tests/Security/Policies/client.conf: + * orbsvcs/tests/Security/Policies/client.conf.xml: + * orbsvcs/tests/Security/Policies/client.cpp: + * orbsvcs/tests/Security/Policies/client_cert.pem: + * orbsvcs/tests/Security/Policies/client_key.pem: + * orbsvcs/tests/Security/Policies/client_nopasswd.conf: + * orbsvcs/tests/Security/Policies/client_nopasswd.conf.xml: + * orbsvcs/tests/Security/Policies/run_test.pl: + * orbsvcs/tests/Security/Policies/server.conf: + * orbsvcs/tests/Security/Policies/server.conf.xml: + * orbsvcs/tests/Security/Policies/server.cpp: + * orbsvcs/tests/Security/Policies/server_cert.pem: + * orbsvcs/tests/Security/Policies/server_key.pem: + * orbsvcs/tests/Security/Policies/server_key_nopasswd.pem: + + Added a test to excercise the various combinations of clients + making invocations on servers that either support or requre + protection. + +Thu Feb 9 19:27:13 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/HTOIP.mpc: + * orbsvcs/orbsvcs/SSLIOP.mpc: + + Add Pidl_Files section so that *_endpoints.pidl files are + installed in autoconf builds. + +Thu Feb 9 18:25:38 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * TAO_IDL/driver/drv_preproc.cpp: + + If TAO_ROOT or ACE_ROOT environment variables are set they + override the path set by 'TAO_IDL_INCLUDE_DIR'. Both $TAO_ROOT + and $TAO_ROOT/tao (or $ACE_ROOT/TAO and $ACE_ROOT/TAO/tao) have + to be added to the list of preprocessor include paths. Instead + of unconditionally disabling appending the second include path + when TAO_IDL_INCLUDE_PATH is defined, we just set it to '.' in + the case neither TAO_ROOT or ACE_ROOT environment variables are + set. + + Similarly, disable appending /orbsvcs, /CIAO, and /CIAO/ciao to + TAO_IDL_INCLUDE_PATH, again setting the include paths to '.'. + +Thu Feb 9 16:45:21 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * orbsvcs/IFR_Service/be_global.cpp: + * orbsvcs/IFR_Servicebe_global.h: + * orbsvcs/IFR_Serviceifr_adding_visitor.cpp: + * orbsvcs/IFR_Serviceifr_adding_visitor_exception.cpp: + * orbsvcs/IFR_Serviceifr_adding_visitor_structure.cpp: + * orbsvcs/IFR_Serviceifr_adding_visitor_union.cpp: + + - removed all usage of idl_bool typedef in the IFR loader, + consistentlty with changes in + + Thu Feb 9 16:31:17 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + - added support for boxed valuetypes to the IFR loader + +Thu Feb 9 16:31:17 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/include/idl_bool.h: + + Removed this file, no longer used because of changes + below. + + * TAO_IDL/tao_idl.cpp: + * TAO_IDL/ast/ast_array.cpp: + * TAO_IDL/ast/ast_attribute.cpp: + * TAO_IDL/ast/ast_component.cpp: + * TAO_IDL/ast/ast_component_fwd.cpp: + * TAO_IDL/ast/ast_constant.cpp: + * TAO_IDL/ast/ast_decl.cpp: + * TAO_IDL/ast/ast_enum.cpp: + * TAO_IDL/ast/ast_eventtype.cpp: + * TAO_IDL/ast/ast_eventtype_fwd.cpp: + * TAO_IDL/ast/ast_exception.cpp: + * TAO_IDL/ast/ast_expression.cpp: + * TAO_IDL/ast/ast_factory.cpp: + * TAO_IDL/ast/ast_generator.cpp: + * TAO_IDL/ast/ast_home.cpp: + * TAO_IDL/ast/ast_interface.cpp: + * TAO_IDL/ast/ast_interface_fwd.cpp: + * TAO_IDL/ast/ast_module.cpp: + * TAO_IDL/ast/ast_native.cpp: + * TAO_IDL/ast/ast_operation.cpp: + * TAO_IDL/ast/ast_predefined_type.cpp: + * TAO_IDL/ast/ast_recursive.cpp: + * TAO_IDL/ast/ast_redef.cpp: + * TAO_IDL/ast/ast_sequence.cpp: + * TAO_IDL/ast/ast_string.cpp: + * TAO_IDL/ast/ast_structure.cpp: + * TAO_IDL/ast/ast_structure_fwd.cpp: + * TAO_IDL/ast/ast_type.cpp: + * TAO_IDL/ast/ast_typedef.cpp: + * TAO_IDL/ast/ast_union.cpp: + * TAO_IDL/ast/ast_valuebox.cpp: + * TAO_IDL/ast/ast_valuetype.cpp: + * TAO_IDL/ast/ast_valuetype_fwd.cpp: + * TAO_IDL/be/be_argument.cpp: + * TAO_IDL/be/be_array.cpp: + * TAO_IDL/be/be_attribute.cpp: + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_component.cpp: + * TAO_IDL/be/be_decl.cpp: + * TAO_IDL/be/be_enum.cpp: + * TAO_IDL/be/be_eventtype.cpp: + * TAO_IDL/be/be_exception.cpp: + * TAO_IDL/be/be_expression.cpp: + * TAO_IDL/be/be_generator.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_helper.cpp: + * TAO_IDL/be/be_home.cpp: + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_interface_fwd.cpp: + * TAO_IDL/be/be_native.cpp: + * TAO_IDL/be/be_operation.cpp: + * TAO_IDL/be/be_predefined_type.cpp: + * TAO_IDL/be/be_sequence.cpp: + * TAO_IDL/be/be_string.cpp: + * TAO_IDL/be/be_structure.cpp: + * TAO_IDL/be/be_sunsoft.cpp: + * TAO_IDL/be/be_type.cpp: + * TAO_IDL/be/be_typedef.cpp: + * TAO_IDL/be/be_union.cpp: + * TAO_IDL/be/be_valuetype.cpp: + * TAO_IDL/be/be_visitor_ami_pre_proc.cpp: + * TAO_IDL/be/be_visitor_arg_traits.cpp: + * TAO_IDL/be/be_visitor_ccm_pre_proc.cpp: + * TAO_IDL/be/be_visitor_context.cpp: + * TAO_IDL/be/be_visitor_scope.cpp: + * TAO_IDL/be/be_visitor_traits.cpp: + * TAO_IDL/be/be_visitor_argument/arglist.cpp: + * TAO_IDL/be/be_visitor_array/array_ci.cpp: + * TAO_IDL/be/be_visitor_array/array_cs.cpp: + * TAO_IDL/be/be_visitor_component/component_ch.cpp: + * TAO_IDL/be/be_visitor_component/component_ci.cpp: + * TAO_IDL/be/be_visitor_component/component_cs.cpp: + * TAO_IDL/be/be_visitor_component/component_sh.cpp: + * TAO_IDL/be/be_visitor_constant/constant_ch.cpp: + * TAO_IDL/be/be_visitor_constant/constant_cs.cpp: + * TAO_IDL/be/be_visitor_enum/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_enum/enum_ch.cpp: + * TAO_IDL/be/be_visitor_enum/enum_cs.cpp: + * TAO_IDL/be/be_visitor_enum/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_exception/exception_ch.cpp: + * TAO_IDL/be/be_visitor_exception/exception_ci.cpp: + * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: + * TAO_IDL/be/be_visitor_home/home_ch.cpp: + * TAO_IDL/be/be_visitor_home/home_cs.cpp: + * TAO_IDL/be/be_visitor_interface/amh_ch.cpp: + * TAO_IDL/be/be_visitor_interface/amh_sh.cpp: + * TAO_IDL/be/be_visitor_interface/amh_si.cpp: + * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: + * TAO_IDL/be/be_visitor_interface/base_proxy_broker_ch.cpp: + * TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp: + * TAO_IDL/be/be_visitor_interface/interface.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ci.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_sh.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + * TAO_IDL/be/be_visitor_interface/remote_proxy_broker_ch.cpp: + * TAO_IDL/be/be_visitor_interface/remote_proxy_broker_cs.cpp: + * TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp: + * TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp: + * TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp: + * TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp: + * TAO_IDL/be/be_visitor_interface/tie_sh.cpp: + * TAO_IDL/be/be_visitor_interface/tie_si.cpp: + * TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp: + * TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp: + * TAO_IDL/be/be_visitor_operation/amh_sh.cpp: + * TAO_IDL/be/be_visitor_operation/amh_ss.cpp: + * TAO_IDL/be/be_visitor_operation/ami_cs.cpp: + * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp: + * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_ch.cpp: + * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp: + * TAO_IDL/be/be_visitor_operation/argument.cpp: + * TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp: + * TAO_IDL/be/be_visitor_operation/exceptlist_ss.cpp: + * TAO_IDL/be/be_visitor_operation/operation.cpp: + * TAO_IDL/be/be_visitor_operation/operation_sh.cpp: + * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: + * TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp: + * TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp: + * TAO_IDL/be/be_visitor_root/root.cpp: + * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp: + * TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/structure_ch.cpp: + * TAO_IDL/be/be_visitor_structure/structure_ci.cpp: + * TAO_IDL/be/be_visitor_structure/structure_cs.cpp: + * TAO_IDL/be/be_visitor_structure_fwd/structure_fwd_ch.cpp: + * TAO_IDL/be/be_visitor_typedef/typedef_ci.cpp: + * TAO_IDL/be/be_visitor_union/union_ch.cpp: + * TAO_IDL/be/be_visitor_union/union_ci.cpp: + * TAO_IDL/be/be_visitor_union/union_cs.cpp: + * TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp: + * TAO_IDL/be/be_visitor_union_branch/public_ci.cpp: + * TAO_IDL/be/be_visitor_union_fwd/union_fwd_ch.cpp: + * TAO_IDL/be/be_visitor_valuebox/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_ch.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_ci.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/arglist.cpp: + * TAO_IDL/be/be_visitor_valuetype/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_init_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype_fwd/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype_fwd/cdr_op_ci.cpp: + * TAO_IDL/be/be_visitor_valuetype_fwd/valuetype_fwd_ch.cpp: + * TAO_IDL/be_include/be_array.h: + * TAO_IDL/be_include/be_attribute.h: + * TAO_IDL/be_include/be_decl.h: + * TAO_IDL/be_include/be_enum.h: + * TAO_IDL/be_include/be_eventtype.h: + * TAO_IDL/be_include/be_exception.h: + * TAO_IDL/be_include/be_expression.h: + * TAO_IDL/be_include/be_generator.h: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/be_include/be_helper.h: + * TAO_IDL/be_include/be_interface.h: + * TAO_IDL/be_include/be_interface_fwd.h: + * TAO_IDL/be_include/be_operation.h: + * TAO_IDL/be_include/be_sequence.h: + * TAO_IDL/be_include/be_structure.h: + * TAO_IDL/be_include/be_type.h: + * TAO_IDL/be_include/be_typedef.h: + * TAO_IDL/be_include/be_union.h: + * TAO_IDL/be_include/be_valuetype.h: + * TAO_IDL/be_include/be_visitor_arg_traits.h: + * TAO_IDL/be_include/be_visitor_context.h: + * TAO_IDL/be_include/be_visitor_scope.h: + * TAO_IDL/be_include/be_visitor_operation/operation.h: + * TAO_IDL/be_include/be_visitor_valuetype/arglist.h: + * TAO_IDL/be_include/be_visitor_valuetype/field_ci.h: + * TAO_IDL/be_include/be_visitor_valuetype/field_cs.h: + * TAO_IDL/be_include/be_visitor_valuetype/valuetype.h: + * TAO_IDL/be_include/be_visitor_valuetype/valuetype_ci.h: + * TAO_IDL/driver/drv_args.cpp: + * TAO_IDL/driver/drv_preproc.cpp: + * TAO_IDL/fe/fe_init.cpp: + * TAO_IDL/fe/fe_interface_header.cpp: + * TAO_IDL/fe/idl.yy + * TAO_IDL/fe/lex.yy.cpp: + * TAO_IDL/fe/y.tab.cpp: + * TAO_IDL/fe/y.tab.cpp:.diff + * TAO_IDL/fe/y.tab.h: + * TAO_IDL/include/ast_array.h: + * TAO_IDL/include/ast_attribute.h: + * TAO_IDL/include/ast_component.h: + * TAO_IDL/include/ast_constant.h: + * TAO_IDL/include/ast_decl.h: + * TAO_IDL/include/ast_enum.h: + * TAO_IDL/include/ast_eventtype.h: + * TAO_IDL/include/ast_exception.h: + * TAO_IDL/include/ast_expression.h: + * TAO_IDL/include/ast_extern.h: + * TAO_IDL/include/ast_generator.h: + * TAO_IDL/include/ast_home.h: + * TAO_IDL/include/ast_interface.h: + * TAO_IDL/include/ast_interface_fwd.h: + * TAO_IDL/include/ast_module.h: + * TAO_IDL/include/ast_operation.h: + * TAO_IDL/include/ast_sequence.h: + * TAO_IDL/include/ast_structure.h: + * TAO_IDL/include/ast_structure_fwd.h: + * TAO_IDL/include/ast_type.h: + * TAO_IDL/include/ast_typedef.h: + * TAO_IDL/include/ast_union.h: + * TAO_IDL/include/ast_valuetype.h: + * TAO_IDL/include/fe_interface_header.h: + * TAO_IDL/include/global_extern.h: + * TAO_IDL/include/idl_global.h: + * TAO_IDL/include/utl_identifier.h: + * TAO_IDL/include/utl_list.h: + * TAO_IDL/include/utl_namelist.h: + * TAO_IDL/include/utl_scope.h: + * TAO_IDL/include/utl_string.h: + * TAO_IDL/include/utl_tmpl/utl_exceptlist.h: + * TAO_IDL/util/utl_global.cpp: + * TAO_IDL/util/utl_identifier.cpp: + * TAO_IDL/util/utl_idlist.cpp: + * TAO_IDL/util/utl_list.cpp: + * TAO_IDL/util/utl_namelist.cpp: + * TAO_IDL/util/utl_scope.cpp: + * TAO_IDL/util/utl_stack.cpp: + * TAO_IDL/util/utl_string.cpp: + * TAO_IDL/util/utl_strlist.cpp: + * TAO_IDL/util/utl_tmpl/utl_idlist.cpp: + * TAO_IDL/util/utl_tmpl/utl_list.cpp: + * TAO_IDL/util/utl_tmpl/utl_strlist.cpp: + + - Replaced all usage of the IDL compiler's internal type + idl_bool (typedef of long) with native bool. Also + replaced similarly typedef'd values I_TRUE and I_FALSE. + + - Extended the effects of the -Ge 2 command line option + (which previously replaced 'ACE_THROW' with 'throw' + and removed all generation of environment variables + and forms of 'ACE_CHECK' in user defined operations) + to remove generation of environment variables and + forms of 'ACE_CHECK' in all operations, including + overrides of inherited operations, to replace + all forms of 'ACE_TRY' and 'ACE_CATCH', and to + remove generation of 'ACE_ENDTRY'. + + - regenerated lex.yy.cpp and y.tab.cpp, along with + the associated diff files. + + - removed the passing of 'TAO_IDL_INCLUDE_DIR/tao' path to + the preprocessor, when 'TAO_IDL_INCLUDE_DIR' is used + instead of the TAO_ROOT environment variable. + + - made many cosmetic changes to generated code formatting. + +Thu Feb 9 14:06:09 UTC 2006 Simon McQueen <sm@prismtech.com> + + * TAO_IDL/be/be_global.cpp: + + Whitespace. + + * TAO_IDL/be/be_visitor_operation/tie_si.cpp: + + Prevent arguments called T from clashing with the temmplate class + identifier. This fixes bug #2390. + + * TAO_IDL/be/be_visitor_valuetype/valuetype_init_arglist_ch.cpp: + + Prevent generation of spurious SystemException throw specs on + valuetype factroy methods. This fixes bug #2375. + + * TAO_IDL/driver/drv_preproc.cpp: + + Change all '#include "foo.idl"' entries in IDL files to + '#include <foo.idl>' before feeding them to the pre-processor. + Prevents accidental processing of IDL files from the users tmp + directory. This fixes bug #2399. + + * tests/Bug_2375_Regression/Bug_2375_Regression.mpc: + * tests/Bug_2375_Regression/README: + * tests/Bug_2375_Regression/test.cpp: + * tests/Bug_2375_Regression/test.idl: + * tests/Bug_2399_Regression/README: + * tests/Bug_2399_Regression/included.idl: + * tests/Bug_2399_Regression/mytmp/included.idl: + * tests/Bug_2399_Regression/Bug_2399_Regression.mpc: + * tests/Bug_2399_Regression/test.idl: + * tests/Bug_2399_Regression/test.cpp: + + Regression tests for two of the above bugs. + +Wed Feb 08 15:49:54 2006 Wallace Zhang <zhangw@ociweb.com> + + * TAO version 1.4.9 released. + +Wed Feb 8 04:46:33 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype_fwd/any_op_ch.cpp + + Added versioned namespace macros to generation of + any insertion/extraction operators. Thanks to Ossama + Othman for pointing out this problem. + +Tue Feb 7 22:40:54 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * tests/Sequence_Unit_Tests/bounded_basic_string_sequence.hpp + * tests/Sequence_Unit_Tests/bounded_object_reference_sequence.hpp + * tests/Sequence_Unit_Tests/bounded_object_reference_sequence_ut.cpp + * tests/Sequence_Unit_Tests/bounded_reference_allocation_traits.hpp + * tests/Sequence_Unit_Tests/bounded_sequence_cdr.hpp + * tests/Sequence_Unit_Tests/bounded_sequence_cdr_ut.cpp + * tests/Sequence_Unit_Tests/bounded_string_sequence.hpp + * tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp + * tests/Sequence_Unit_Tests/bounded_value_allocation_traits.hpp + * tests/Sequence_Unit_Tests/bounded_value_sequence.hpp + * tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp + * tests/Sequence_Unit_Tests/bounded_wstring_sequence.hpp + * tests/Sequence_Unit_Tests/fwd_mock_reference.cpp + * tests/Sequence_Unit_Tests/fwd_mock_reference.hpp + * tests/Sequence_Unit_Tests/generic_sequence.hpp + * tests/Sequence_Unit_Tests/mock_reference.cpp + * tests/Sequence_Unit_Tests/mock_reference.hpp + * tests/Sequence_Unit_Tests/mock_stream.cpp + * tests/Sequence_Unit_Tests/mock_stream.hpp + * tests/Sequence_Unit_Tests/object_reference_sequence_element.hpp + * tests/Sequence_Unit_Tests/object_reference_sequence_element_ut.cpp + * tests/Sequence_Unit_Tests/object_reference_traits.hpp + * tests/Sequence_Unit_Tests/object_reference_traits_base.hpp + * tests/Sequence_Unit_Tests/range_checking.hpp + * tests/Sequence_Unit_Tests/string_sequence_element.hpp + * tests/Sequence_Unit_Tests/string_sequence_element_ut.cpp + * tests/Sequence_Unit_Tests/string_traits.hpp + * tests/Sequence_Unit_Tests/string_traits_base.hpp + * tests/Sequence_Unit_Tests/testing_allocation_traits.hpp + * tests/Sequence_Unit_Tests/testing_allocation_traits_ut.cpp + * tests/Sequence_Unit_Tests/testing_object_reference_traits.hpp + * tests/Sequence_Unit_Tests/testing_range_checking.hpp + * tests/Sequence_Unit_Tests/testing_string_traits.hpp + * tests/Sequence_Unit_Tests/unbounded_basic_string_sequence.hpp + * tests/Sequence_Unit_Tests/unbounded_fwd_object_reference_sequence_ut.cpp + * tests/Sequence_Unit_Tests/unbounded_object_reference_sequence.hpp + * tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp + * tests/Sequence_Unit_Tests/unbounded_octet_sequence.hpp + * tests/Sequence_Unit_Tests/unbounded_octet_sequence_nocopy_ut.cpp + * tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp + * tests/Sequence_Unit_Tests/unbounded_reference_allocation_traits.hpp + * tests/Sequence_Unit_Tests/unbounded_sequence_cdr.hpp + * tests/Sequence_Unit_Tests/unbounded_sequence_cdr_ut.cpp + * tests/Sequence_Unit_Tests/unbounded_string_sequence.hpp + * tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp + * tests/Sequence_Unit_Tests/unbounded_value_allocation_traits.hpp + * tests/Sequence_Unit_Tests/unbounded_value_sequence.hpp + * tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp + * tests/Sequence_Unit_Tests/unbounded_wstring_sequence.hpp + * tests/Sequence_Unit_Tests/value_sequence_tester.hpp + * tests/Sequence_Unit_Tests/value_traits.hpp + + Fixes for versioned namespace compile problems. Thanks to + Ossama Othman (ossama_othman at symantec dot com) for providing + assistance.. + +Tue Feb 7 21:07:35 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype_fwd/cdr_op_ch.cpp + + Surrounded valuetype CDR operators with versioned namespace + macros. + + * performance-tests/Cubit/TAO/MT_Cubit/Globals.h + * tests/NestedUpcall/MT_Client_Test/local_server.h + + Surrounded forward declarations of ACE/TAO types with versioned + namespace macros. + +Mon Feb 6 16:46:57 Pacific Standard Time 2006 Ossama Othman <ossama_othman at symantec dot com> + + * TAO_IDL/be/be_visitor_interface_fwd/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ch.cpp: + + Added ability to set "versioned" namespace opening and closing + text. Addresses problem where applications that do not enable + versioned namespace support in their own code need not get + "versioned" stubs/skeletons. This was previously done for all + other IDL types. Forward interface declarations were + overlooked. + + * tests/MT_BiDir/Sender_i.h: + * tests/MT_BiDir/Server_Task.h: + * tests/NestedUpcall/MT_Client_Test/local_server.h: + * tests/OBV/Collocated/Forward/Server_Task.h: + * tests/Portable_Interceptors/Collocated/Dynamic/Server_Task.h: + * tests/Portable_Interceptors/Collocated/Service_Context_Manipulation/Server.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Server_Task.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Server_Task.h: + * tests/Two_Objects/First_i.cpp: + * tests/Two_Objects/First_i.h: + * tests/Two_Objects/Object_Factory_i.h: + * tests/Two_Objects/Second_i.h: + + Placed forward declarations for ACE/TAO types in the appropriate + versioned namespace. + +Fri Feb 3 15:16:41 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * tests/Bug_1495_Regression/Server_Task.h: + * tests/Bug_2084_Regression/Server_Task.h: + * tests/Collocation_Exception_Test/Server_Task.h: + * tests/Collocation_Oneway_Tests/Server_Task.h: + * tests/Collocation_Tests/Server_Task.h: + + Place ACE_Manual_Event forward declaration within versioned + namespace. + + * tests/Hang_Shutdown/Test.idl: + * tests/Hang_Shutdown/client.cpp: + * tests/Hang_Shutdown/server.cpp: + * tests/Hang_Shutdown/test_i.h: + + Removed outer "TAO" namespace. It served no useful purpose, and + conflicted with the versioned TAO namespace used in the core TAO + libraries. + +Thu Feb 3 14:54:51 UTC 2006 Ossama Othman <ossama_othman at symantec dot com> + + * be/be_visitor_valuebox/valuebox_ci.cpp: + * be/be_visitor_valuebox/valuebox_cs.cpp: + * be_include/be_visitor_valuebox/valuebox_ci.h: + * be_include/be_visitor_valuebox/valuebox_cs.h: + + Moved generated inlined virtual functions out of line. The + TAO_IDL valuebox code previously generated inlined virtual + functions, including a virtual destructor, which can cause RTTI + problems when attempting to downcast a valuebox object found in + a shared library that was compiled with g++ 4.0's + "-fvisibility-inlines-hidden" command line option. The virtual + functions marked as "inline" (as opposed to actually inlined) + end up being left out of the export table, which breaks RTTI for + valueboxes in the shared library. [Bug 2392] + +Fri Feb 3 10:44:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/TAO-metrics.html: + Fixed hyperlink + +Thu Feb 2 13:08:31 Pacific Standard Time 2006 Ossama Othman <ossama_othman at symantec dot com> + + * TAO_IDL/be/be_visitor_valuetype/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/cdr_op_cs.cpp: + + Added ability to set "versioned" namespace opening and closing + text. Addresses problem where applications that do not enable + versioned namespace support in their own code need not get + "versioned" stubs/skeletons. This was previously done for all + other IDL types. Valuetypes were overlooked. + +Thu Feb 2 12:20:16 Pacific Standard Time 2006 Ossama Othman <ossama_othman at symantec dot com> + + * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc + (ImR_Activator_IDL, ImR_Locator_IDL): + + Added missing "tao_versioning_idl_defaults" base project. Fixes + syntax errors in versioned namespace builds. + +Thu Feb 2 17:48:16 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Makefile.am: + + Must build tests before examples, as the Notify Service examples + use a Notify Service test library. + +Wed Feb 1 21:02:45 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/ast/ast_predefined_type.cpp: + + Fixed a bug in the computation of repository ids for + predefined types. + + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp (fill_valuemember_sequence): + + Fixed a bug in retrieving the repository path to the type of + a valuetype member. + + * orbsvcs/IFR_Service/adding_visitor.cpp(create_value_member): + + Fixed a bug in looking up a valuetype member's type in the + repository. + +Wed Feb 1 20:07:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/pluggable_messaging.html: + Added some info how to load IIOP Lite when the strategies lib + is used. Thanks to Kobi Cohen Arazi <kobi dot cohenarazi at gmail + dot com> for reporting this. + +Wed Feb 1 14:46:55 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * NEWS: + + Describe changes to Telecom Log Service Strategy interface. + +Wed Feb 1 14:19:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2345_Regression/Bug_2345_Regression.mpc: + * tests/Bug_2345_Regression/server.cpp: + Link in the ImR_Client library explicitly, this is needed for + this test + +Wed Feb 1 13:25:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/pluggable_messaging.html: + Small improvements to improve readability + +Wed Feb 1 13:00:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/Options.html: + Small fix + +Tue Jan 31 19:39:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/rtcorba/issues.html: + Fixed bugzilla link + +Mon Jan 30 22:04:39 UTC 2006 Ming Xiong <ming.xiong@vanderbilt.edu> + + * TAO/tao/PortableServer/Root_POA.h + + Improved documentation for find_servant_priority () + +Mon Jan 30 17:22:50 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: + + Moved the NEWS entry below to the right place. + Updated info for support for RTCORBA Keepalive. + +Mon Jan 30 17:09:25 UTC 2006 Simon McQueen <sm@prismtech.com> + + * NEWS: + + Record -ORBKeepalive option. + +Sun Jan 29 22:23:21 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/driver/drv_args.cpp (DRV_usage): + * TAO_IDL/be/be_global.cpp (usage): + + Moved all all usage messages about -Wb options to the IDL + compiler back end, which they are specific to. Thanks to + Andy Gokhale <a.gokhale@vanderbilt.edu> for pointing + out that these usage message were appearing with the + idl_to_picml executable, where they are not relevant. + +Sun Jan 29 15:01:13 UTC 2006 Martin Corino <mcorino@remedy.nl> + + * tao/IIOP_Profile.cpp: + + Fixed some compile problems with the enhancements in + TAO_IIOP_Profile::to_string() for IPv6 enabled builds. + +Sat Jan 28 23:15:13 UTC 2006 Martin Corino <mcorino@remedy.nl> + + * tao/IIOP_Profile.cpp: + + Added enhancement to TAO_IIOP_Profile::to_string() to return + *all* endpoints in profile embedded in a corbaloc URL like: + corbaloc:iiop:1.2@host:port,iiop:1.2@host:port,.../key + Thanks to Victor Chernenko (GE Healthcare) for suggesting this + and providing a first patch. + +Sat Jan 28 22:22:13 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * tao/PortableServer/ServantRetentionStrategyNonRetain.cpp + + Fixed unused argument warning. + +Fri Jan 27 22:03:14 UTC 2006 Ming Xiong <ming.xiong@vanderbilt.edu> + + * tao/PortableServer/ServantRetentionStrategy.h + * tao/PortableServer/ServantRetentionStrategyNonRetain.cpp + * tao/PortableServer/ServantRetentionStrategyNonRetain.h + * tao/PortableServer/ServantRetentionStrategyRetain.cpp + * tao/PortableServer/ServantRetentionStrategyRetain.h + + Add a find_servant_priority () method to + PortableServer::ServantRetentionStrategy + PortableServer::ServantRetentionStrategyNonRetain + PortableServer::ServantRetentionStrategyRetain + + * tao/PortableServer/Root_POA.cpp + * tao/PortableServer/Root_POA.h + + Add a find_servant_priority () method to TAO_Root_POA + + * tao/RTPortableServer/RT_Collocation_Resolver.cpp + + Change the way TAO_RT_Collocation_Resolver::is_collocated + retrieves servant priority. In particular, it will use + poa->find_servant_priority () instread of locate_servant_i () + + This change is aimed at fixing TAO Bug 2325, which has a misuse + of Servant_Upcall, causing the aom entry reference counts to + be incorrectly incremented.Thanks to Abhi (abhi dot qualcomm + dot com) and Johnny for reporting this bug and helping out + with the solution. + + +Fri Jan 27 14:53:45 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_i.cpp: + + Add some .in()'s to help out old senile compilers who can't + figure things out on their own. + +Fri Jan 27 03:51:42 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + If examples and/or tests have been disabled, don't bother + generating subdirectory hierarchies or Makefiles for them. + +Fri Jan 27 02:41:12 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * Makefile.am: + * orbsvcs/Makefile.am: + + Use BUILD_EXAMPLES AND BUILD_TESTS automake conditionals to + control whether TAO's (and TAO's ORBservice's) examples and + tests are built. + + * configure.ac: + + Invoke TAO_ENABLE_EXAMPLES and TAO_ENABLE_TESTS. + + * m4/tao.m4: + + Added TAO_ENABLE_EXAMPLES and TAO_ENABLE_TESTS autoconf macros. + These enable/disable BUILD_EXAMPLES and BUILD_TESTS automake + conditionals. + +Thu Jan 26 20:36:47 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * orbsvcs/IFR_Service/be_produce.cpp(BE_cleanup): + + Removed code to destory the temporary holding scope entry in + the repository after each IDL file is processed. Instead the + lifetime of that entry is now tied to the repository itself. + + * orbsvcs/IFR_Service/ifr_adding_visitor.cpp (visit_typedef): + + Removed code that replaces a typedef with the same repo id + with a new entry, which would invalidate any references to + the typedef entry that other entries may hold. The IFR will + now throw the BAD_PARAM minor code that corresponds to an + attempt to create an entry for a repo id that already exists + in the repository. Thanks to Richard Spence + <richard dot spence dot extern at icn dot siemens dot de> + for reporting the problem when the typdef is used as an + operation parameter. This closes [BUGID:2381]. + + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp (name_exists): + + Changed the loop to be a FOR loop using the explicit section + names, rather than a while loop calling enumerate_sections() + to get each section name. + +Thu Jan 26 15:37:12 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Hash_Iterator_i.cpp: + * orbsvcs/orbsvcs/Log/Hash_Iterator_i.h: + * orbsvcs/orbsvcs/Log/Hash_LogRecordStore.cpp: + * orbsvcs/orbsvcs/Log/Hash_LogRecordStore.h: + * orbsvcs/orbsvcs/Log/LogRecordStore.h: + * orbsvcs/orbsvcs/Log/Log_i.cpp: + * orbsvcs/orbsvcs/Log/Log_i.h: + + Added lock() method to LogRecordStore that returns a reference + to a ACE_SYNCH_RW_MUTEX. Changed Log_i and Hash_Iterator_i to + use the lock (via the ACE_READ_GUARD... and ACE_WRITE_GUARD... + macros), while removing its use within the Hash_LogRecordStore + methods themselves. + + This change avoids any race conditions in read-modify-write + operations (e.g. the set_* methods) that exist when locking is + done entirely within the LogRecordStore. + + It also avoids acquiring and releasing the lock multiple times + in the course of a single operation, which resulted in a modest + performance improvement (~15%) for methods like write_records() + and write_recordlist(). + + In the future, we may want to abstract locking so instead of a + rwlock it may represent a database session or transaction. + +Mon Jan 23 15:50:27 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_i.cpp: + * orbsvcs/orbsvcs/Log/Log_i.h: + + Obtain the capacity alarm thresholds, log QoS, and week mask + from the record store. + + * orbsvcs/orbsvcs/Log/Hash_LogRecordStore.cpp: + * orbsvcs/orbsvcs/Log/Hash_LogRecordStore.h: + * orbsvcs/orbsvcs/Log/LogRecordStore.h: + + Added methods to get and set the log QoS and week mask. + +Tue Jan 24 20:37:55 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com> + + * tao/IIOP_Connection_Handler.cpp: + + Extended Simon McQueen's Fri Jan 20 17:11:49 UTC 2006 addition + of support for SO_KEEPALIVE to include taking the value from + RTCORBA::TCPPrototocolProperties::keep_alive, when RTCORBA is + used, and the application is using a Server or Client + ProtocolPolicy. + + * docs/rtcorba/issues.html: + + Removed lack of support for the keep alive protocol property + from the list of issues. + +Tue Jan 24 19:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Borland/ChatClientWnd.cpp: + Fixed parameter unused warnings + +Tue Jan 24 15:24:58 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_i.cpp: + * orbsvcs/orbsvcs/Log/Log_i.h: + + Calling create_reference_with_id() (via create_log_reference) in + the constructor and/or ::init() appears to result in an infinate + loop within the ORB. Until that's resolved, defer obtaining the + logs object reference until it's needed. + +Tue Jan 24 14:36:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Concurrency/Concurrency_Loader.h: + Fixed export macro in ACE_FACTORY_DECLARE + +Tue Jan 24 10:20:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * NEWS: + Added -ORBUseLocalMemoryPool option info. + +Mon Jan 23 12:46:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/AdvSlot/client.cpp: + * tests/Portable_Interceptors/AdvSlot/server.cpp: + Fixed compile warnings + +Sun Jan 22 18:32:03 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Property/CosPropertyService_i.h: + + Use _Serv versions of the export macros. It seems I missed + some that should have been part of this: + + Tue Jan 17 22:26:52 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + +Sun Jan 22 18:24:37 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Concurrency/Concurrency_Loader.cpp: + + Update ACE_FACTORY_DEFINE() that wasn't updated when splitting + the Concurrency Service libraries. + +Sun Jan 22 16:54:55 UTC 2006 Boris Kolpackov <boris@kolpackov.net> + + * tests/Portable_Interceptors/AdvSlot/server.cpp: + + Fixed a problem with VC6. + +Sun Jan 22 02:42:21 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_i.cpp: + * orbsvcs/orbsvcs/Log/Log_i.h: + + Added operator== and operator!= for IDL generated types + DsLogAdmin::QoSList and DsLogAdmin::TimeInterval. Use them to + compare old and new log attribute values to decide whether to + send an AttributeValueChange event. + +Sun Jan 22 02:34:02 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_i.cpp: + * orbsvcs/orbsvcs/Log/Log_i.h: + + Added a new member variable to store the log channel's object + reference. Until now, the code was calling _this() each time + the reference was needed. Not only was this inefficient (the + reference is a field of each of the the structures used for log + notification events, so it's needed relatively frequently), but + also it resulted in the servant being activated in the RootPOA, + so a transient rather than persistent IOR was returned. + + * orbsvcs/orbsvcs/Log/LogNotification.cpp: + + The event's logref field wasn't being set in state_change() and + threshold alarm(), even though the log channel object reference + was being passed to the methods. + +Sat Jan 21 01:56:30 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log_i.cpp: + + Call reset_capacity_alarm_threshold () in set_log_full_action() + if the value is changed. + + If the log full action is DsLogAdmin::halt, capacity threshold + alarms are triggered when the size of a log exceeds one if its + capacity alarm thresholds; if the log full action is ::wrap, + capacity threshold alarms are triggered "as if coupled to a + guage that counts from zero to the highest capacity threshold + value". The specification doesn't describe required behavior + when changing from one to the other. Since the recordkeeping + needed for each option is so different, resetting may be the + only realistic option --- at least that way we won't be using + one set of data for the other. + + * orbsvcs/orbsvcs/Log_i.cpp: + + The current revision of the log service spec is inconsistent + whether an AttributeValueChange event should generated only if + the attribute's value actually changed or whether it should be + sent unconditionally. TAO's log service implements the former, + which I believe to be the most useful behavior. Nevertheless, + I've filed a defect report with the OMG for clarification. I've + also added a block comment to this effect before each instance + to alert future maintainers. + +Sat Jan 21 01:02:46 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log_i.cpp: + * orbsvcs/orbsvcs/Log_i.h: + + Changed set_week_mask() to avoid recomputing week_intervals_, + updating the record store, and sending an AttributeValueChange + event if the new mask has the same value as the old. + + Added operator== and operator!= for many IDL generated types and + sequences. Use them to compare old and new log attribute values + to decide whether to send an AttributeValueChange event. + + * orbsvcs/orbsvcs/Log_i.cpp: + + Although set_week_mask() updated week_intervals_ (an optimized + representation) from the new mask, it didn't actually save it; + this resulted in get_week_mask() returning the original value. + +Fri Jan 20 17:11:49 UTC 2006 Simon McQueen <sm@prismtech.com> + + * tao/IIOP_Connection_Handler.cpp: + * tao/ORB_Core.cpp: + * tao/params.h: + * tao/params.i: + * tao/params.cpp: + + Add configuration option -ORBKeepalive to allow users to specify + that the SO_KEEPALIVE option be set on TCP sockets. + + This fixes bug #2374. + + * docs/Options.html: + + Add documentation for the above. + +Fri Jan 20 16:30:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * docs/Options.html + * tao/ORB_Core.cpp: + * tao/ORB_Core.h: + * tao/Resource_Factory.cpp + * tao/Resource_Factory.h + * tao/default_resource.cpp + * tao/default_resource.h + Fix for Bug 2373. + Add run-time option -ORBUseLocalMemoryPool (0|1) which defaults + to the compile time option TAO_USES_LOCAL_MEMORY_POOL. + +Fri Jan 20 15:30:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tao/CDR.cpp: + * tao/CDR.h: + * tao/Synch_Reply_Dispatcher.cpp: + Fix for Bug 2372. + Possiably unnecessary reply_cdr_.clone_from() inside + TAO_Synch_Reply_Dispatcher::dispatch_reply() averted. + +Fri Jan 20 11:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/AdvSlot/*: + Added new regression from Boris Kolpackov + <boris at dre dot vanderbilt dot edu> for a bug with PI. Not fixed + yet, but having a regression will make finding the problem a lot + easier + +Fri Jan 20 11:18:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/ORBInitializer_Registry_Impl.cpp: + Fixed bug related to the slot functionality of PICurrent, when the + slot count is not equal to zero and there is no PICurrent yet, + then force the creation of PICurrent by the ORB to make sure we + don't loose the slot_count. Thanks to Boris Kolpackov + <boris at dre dot vanderbilt dot edu> for providing the patch + +Thu Jan 19 02:45:48 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log_i.cpp: + + Call reset_capacity_alarm_threshold () in set_max_size () and + set_capacity_alarm_thresholds () if the value is changed. If + either the max size or the threshold list is changed, the old + capacity index no longer makes sense. + + Reseting the index means that a ThresholdAlarm event will be + sent after the next threshold is crossed. It is unclear whether + this is the correct behavior. An argument could be made that an + event should be sent for each threshold that has already been + crossed given the new max size or capacity alarm threshold list. + + Unfortunately the current version of the specification does not + describe what is the correct behavior. + +Wed Jan 18 23:35:24 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerate. + + * orbsvcs/orbsvcs/RTEventLogAdmin.mpc: + + Fix typos in symbol export header file names. + +Wed Jan 18 19:43:11 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/RTEventLogConsumer.h: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.h: + * orbsvcs/orbsvcs/Log/RTEventLogNotification.h: + * orbsvcs/orbsvcs/Log/RTEventLog_i.h: + + Now that we use the *_Serv_Export versions of the symbol export + macros, we need to #include "*_serv_export.h" + +Wed Jan 18 19:38:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/Slot/*: + Added new regression from Boris Kolpackov + <boris at dre dot vanderbilt dot edu> for a bug with PI. Not fixed + yet, but having a regression will make finding the problem a lot + easier + +Wed Jan 18 18:41:09 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Concurrency/CC_Lock.h: + * orbsvcs/orbsvcs/Concurrency/CC_LockSet.h: + * orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.h: + * orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.h: + * orbsvcs/orbsvcs/Property/CosPropertyService_i.h: + + Now that we use the *_Serv_Export versions of the symbol export + macros, we need to #include "*_serv_export.h" + +Wed Jan 18 13:44:07 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * tao/RTScheduling/Current.h: + * tao/RTScheduling/Current.cpp: + * tests/RTScheduling/Current/Thread_Task.cpp: + * tests/RTScheduling/DT_Spawn/Thread_Action.h: + * tests/RTScheduling/DT_Spawn/test.cpp: + * tests/RTScheduling/Thread_Cancel/Thread_Task.cpp: + + Reverted a portion of my memory leak changes. I was mistaken as + to the reference counting. + + * tests/RTScheduling/VoidData/test.h: + + Dereference the "something" pointer as was most likely the + original intention. + +Wed Jan 18 01:42:04 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * NEWS: + + Update for splitting ORB service libraries. + +Tue Jan 17 23:03:46 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Logging_Service/RTEvent_Logging_Service/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + +Tue Jan 17 22:26:52 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Concurrency/CC_Lock.h: + * orbsvcs/orbsvcs/Concurrency/CC_LockSet.h: + * orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.h: + * orbsvcs/orbsvcs/Concurrency/Concurrency_Loader.h: + * orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.h: + * orbsvcs/orbsvcs/Log/RTEventLogConsumer.h: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.h: + * orbsvcs/orbsvcs/Log/RTEventLogNotification.h: + * orbsvcs/orbsvcs/Log/RTEventLog_i.h: + * orbsvcs/orbsvcs/Property/CosPropertyService_i.h: + + Use _Serv_ version of the symbol export macros. + +Tue Jan 17 20:36:35 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Logging_Service/RTEvent_Logging_Service/RTEvent_Logging_Service.mpc: + Update project to inherit from rteventlogadmin_serv.mpb --- + rteventlogadmin.mpb now only brings in the client stubs. + + * orbsvcs/orbsvcs/TAO_RTEventLogAdmin.pc.in: + * orbsvcs/orbsvcs/TAO_RTEventLogAdmin_Serv.pc.in: + * orbsvcs/orbsvcs/TAO_RTEventLogAdmin_Skel.pc.in: + + New files, pkg-template files for RTEventLogAdmin client stub, + servant skeleton, and service implementation libraries. + + * orbsvcs/orbsvcs/Log/rteventlog_serv_export.h: + * orbsvcs/orbsvcs/Log/rteventlog_skel_export.h: + + New export headers for RTEventLogAdmin servant skeleton and + service implementation libraries. + + * orbsvcs/orbsvcs/RTEventLogAdmin.mpc: + + Split the RTEventLogAdmin Service (A varient of the OMG Telecom + Logging Service that uses TAO's Real-Time Event channels) into + three libraries: RTEventLogAdmin, RTEventLogAdmin_Skel, and + RTEventLogAdmin_Serv for client stubs, servant skeletons, and + service implementation respectively. + +Tue Jan 17 13:31:40 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/main.cpp: + + Changed #include to use "" instead of <>. + +Tue Jan 17 02:32:37 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/TAO_RTEvent.pc.in: + * orbsvcs/orbsvcs/TAO_RTEvent_Serv.pc.in: + * orbsvcs/orbsvcs/TAO_RTEvent_Skel.pc.in: + + New files, pkg-template files for RTEvent client stub, + servant skeleton, and service implementation libraries. + + * orbsvcs/orbsvcs/RTEvent.mpc: + * orbsvcs/orbsvcs/RTEvent_Serv.mpc: + * orbsvcs/orbsvcs/RTEvent_Skel.mpc: + + Added Pkgconfig_Files section for pkg-config templates. + +Tue Jan 17 02:21:56 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/TAO_CosEvent_Serv.pc.in: + + Somehow this pkg-config template was describing the + CosNaming_Serv library. + +Tue Jan 17 01:50:24 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp: + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.h: + + Change type of property_lookup_ map from Any_var to Any, similar + to what was done for the Notify_Constraint_Visitor some time + ago. This allows us to avoid dynamically allocating Anys in + the constructor for increased performance and reliability. + + I've measured a ~10% performance boost from this change. + +Mon Jan 16 17:57:53 UTC 2006 William Otte <wotte@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/AV.mpc + + Fixed a linking error on OS X. + +Mon Jan 16 16:49:27 UTC 2006 Olli Savia <ops@iki.fi> + + * tao/AnyTypeCode/SystemExceptionA.cpp: + * tao/Exception.h: + * tao/RTScheduling/Current.cpp: + * tao/SystemException.h: + * tao/SystemException.cpp: + * tests/RTScheduling/Scheduling_Interceptor/test_client.cpp: + * tests/RTScheduling/Thread_Cancel/Thread_Task.cpp: + Get rid of ACE_HAS_PREDEFINED_THREAD_CANCELLED_MACRO. + If macro THREAD_CANCELLED is defined we now simply undef it. + +Mon Jan 16 14:17:47 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * tao/AnyTypeCode/Any_Special_Impl_T.cpp: + + Delete the stored memory in _tao_decode() before calling + demarshal_value() to avoid leaking memory. + + * tao/RTScheduling/Current.h: + * tao/RTScheduling/Current.cpp: + * tao/RTScheduling/Distributable_Thread.h: + * tao/RTScheduling/RTScheduler_Initializer.cpp: + * tao/RTScheduling/Request_Interceptor.h: + * tao/RTScheduling/Request_Interceptor.cpp: + + Corrected various misuses of memory management. + + * tests/CodeSets/simple/client.cpp: + * tests/CodeSets/simple/server.cpp: + + Added memory cleanup code so these tests do not contribute to + the memory leak list. + + * tests/OBV/TC_Alignment/test_i.cpp: + + Call shutdown() on the ORB from within test_i::shutdown() instead + of destroy(). Calling destroy() within this context is not + allowed by CORBA 2.3. + + * tests/Portable_Interceptors/Collocated/Service_Context_Manipulation/test_i.cpp: + + Call shtdown() on the ORB with a wait_for_completion of zero + instead of 1. The later is not allowed by CORBA 2.3. + + * tests/Portable_Interceptors/IORInterceptor/server.cpp: + + This test registers a portable interceptor with the ORB. If + destroy() is not called on the ORB the interceptor initializer + will be leaked. + + * tests/Queued_Message_Test/Queued_Message_Test.cpp: + + The TAO_Asynch_Queued_Message needs to know if it is allocated on + the heap in order to clean itself properly. + + * tests/RTScheduling/Current/Thread_Task.h: + * tests/RTScheduling/Current/Thread_Task.cpp: + * tests/RTScheduling/Current/test.cpp: + * tests/RTScheduling/DT_Spawn/Thread_Action.h: + * tests/RTScheduling/DT_Spawn/test.cpp: + * tests/RTScheduling/Scheduler.cpp: + * tests/RTScheduling/Scheduling_Interceptor/test_client.cpp: + * tests/RTScheduling/Scheduling_Interceptor/test_server.cpp: + * tests/RTScheduling/Thread_Cancel/Thread_Task.cpp: + * tests/RTScheduling/Thread_Cancel/test.cpp: + * tests/RTScheduling/VoidData/test_client.cpp: + + Corrected various misuses of memory management. + +Mon Jan 16 05:51:14 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * orbsvcs/examples/ImR/Combined_Service/test.cpp (assertTrue): + Make sure to #include <string> so that "std::" makes sense. + Thanks to Ian Zagorskih <ianzag at megasignal dot com> for this + fix. This fixes bugid 2362. + +Sun Jan 15 19:18:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_1869_Regression/client.cpp: + Fixed conversion warning + +Sun Jan 15 18:54:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_1869_Regression/client.cpp: + Fixed unused argument warning + +Sun Jan 15 05:44:45 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Concurrency_Service/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + * orbsvcs/tests/AVStreams/Asynch_Three_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Bidirectional_Flows/Makefile.am: + * orbsvcs/tests/AVStreams/Component_Switching/Makefile.am: + * orbsvcs/tests/AVStreams/Full_Profile/Makefile.am: + * orbsvcs/tests/AVStreams/Latency/Makefile.am: + * orbsvcs/tests/AVStreams/Modify_QoS/Makefile.am: + * orbsvcs/tests/AVStreams/Multicast/Makefile.am: + * orbsvcs/tests/AVStreams/Multicast_Full_Profile/Makefile.am: + * orbsvcs/tests/AVStreams/Multiple_Flows/Makefile.am: + * orbsvcs/tests/AVStreams/Pluggable/Makefile.am: + * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Three_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Two_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/Makefile.am: + * orbsvcs/tests/Concurrency/Makefile.am: + * orbsvcs/tests/Property/Makefile.am: + + Regenerated. + + * orbsvcs/tests/Property/Property.mpc: + + Update project to inherit from property_serv.mpb, as this + test uses a collocated concurrency service --- property.mpb + now only brings in the client stubs. + + * orbsvcs/Concurrency_Service/Concurrency_Service.mpc: + + Update project to inherit from concurrency_serv.mpb, as this + test uses a collocated concurrency service --- concurrency.mpb + now only brings in the client stubs. + + * orbsvcs/orbsvcs/TAO_CosConcurrency.pc.in: + * orbsvcs/orbsvcs/TAO_CosConcurrency_Serv.pc.in: + * orbsvcs/orbsvcs/TAO_CosConcurrency_Skel.pc.in: + + Split TAO_CosConcurrency.pc.in pkg-config template into one for + each library. + + * orbsvcs/orbsvcs/Concurrency/concurrency_serv_export.h: + * orbsvcs/orbsvcs/Concurrency/concurrency_skel_export.h: + + New export headers for CosConcurrency servant skeleton and + service implementation libraries. + + * orbsvcs/orbsvcs/CosConcurrency.mpc: + + Split CosConcurrency Service into three libraries: + CosConcurrency, CosConcurrency_Skel, and CosConcurrency_Serv for + client stubs, servant skeletons, and service implementation + respectively. + + * orbsvcs/orbsvcs/TAO_CosProperty.pc.in: + * orbsvcs/orbsvcs/TAO_CosProperty_Serv.pc.in: + * orbsvcs/orbsvcs/TAO_CosProperty_Skel.pc.in: + + Split TAO_CosProperty.pc.in pkg-config template into one for + each library. + + * orbsvcs/orbsvcs/Property/property_serv_export.h: + * orbsvcs/orbsvcs/Property/property_skel_export.h: + + New export headers for CosProperty servant skeleton and service + implementation libraries. + + * orbsvcs/orbsvcs/CosProperty.mpc: + + Split CosProperty Service into three libraries: + CosProperty, CosProperty_Skel, and CosProperty_Serv for client + stubs, servant skeletons, and service implementation + respectively. + +Sun Jan 15 05:35:57 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + * orbsvcs/tests/InterfaceRepo/Makefile.am: + * orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/Makefile.am: + + Added autoconf build support for this new test. + +Sat Jan 14 23:44:39 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_i.cpp: + * orbsvcs/orbsvcs/Log/Log_i.h: + + Changed TAO_Log_i::set_capacity_alarm_thresholds() to compare + the new threshold list against the old. If they're the same, + we don't send a change notification. + + Added operator== and operator!= for DsLogAdmin:: + CapacityAlarmThresholdList. + +Sat Jan 14 16:29:47 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/TAO_CosEvent.pc.in: + * orbsvcs/orbsvcs/TAO_CosNaming.pc.in: + * orbsvcs/orbsvcs/TAO_CosTrading.pc.in: + * orbsvcs/orbsvcs/TAO_DsLogAdmin.pc.in: + * orbsvcs/orbsvcs/TAO_ETCL.pc.in: + + Changed to Require TAO_AnyTypeCode. + +Sat Jan 14 09:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Messaging/ExceptionHolder_i.h: + Fixed casing of include + +Fri Jan 13 13:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_1869_Regression/*: + Added this regression to cvs, no fix yet and regression could + be improved more to give more output to the user + +Fri Jan 13 12:49:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Messaging/ExceptionHolder_i.{h,cpp}: + * tao/Messaging/Messaging_ORBInitializer.{h,cpp}: + Added a OBV Factory for the ExceptionHolder. At the moment we use + AMI with collocation disabled the ExceptionHolder is marshaled + and then tried to be demarshaled and then we need an OBV factory. + For system exceptions things work fine now, for user exceptions + always an UNKNOWN exception occurs in the _excep method, the + meta data which user exceptions we could throw is not available + in the current callstack so we just can't recreate the correct + user exception, have to see how we could fix that but + this is at least a good step in the direction. This only works + for the new AMI mapping. This is part of the fix for bugzilla + bug 2350. Thanks to Alan Stokes <alan at alanstokes dot org dot uk> + for reporting this. + +Fri Jan 13 12:30:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/AMI/simple_client.cpp: + Print out the exception when we get a not expected exception + +Fri Jan 13 11:43:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Valuetype/ValueBase.cpp: + When no OBV Factory is found, throw a MARSHAL exception with + minor code 1 and completed MAYBE. This fixes bugzilla bug + 2354 + +Fri Jan 13 04:57:20 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp: + + Changed to #include "Thread_Lane_Resources.h". This was missed + in this change: + + Thu Jan 12 00:31:27 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + because I didn't have SSL enabled at the time. + +Thu Jan 12 19:27:12 UTC 2006 Tim Bradley <bradley_t@ociweb.com> + + * tests/Portable_Interceptors/Collocated/Dynamic/Collocated_Test.cpp + * tests/Portable_Interceptors/Collocated/Dynamic/Server_Task.cpp + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Collocated_Test.cpp + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Server_Task.cpp + + The files listed above were modified to fix a problem that was + observed in two similar tests. The original problem was observed + to occur when the test application was shutting down, and is not + 100% repeatable. It is theorized that a race condition in the + existing test code, causing the tests to sometimes succeed. + + When the test applications did fail, some platforms caused the + message "pure virtual method called" to be printed to standard + error. A core file, created using Linux (FC3), showed a somewhat + corrupt stack trace pointing to the implementation of the + shutdown() operation in the Visual_i (servant) class (test_i.cpp). + + Both tests are very similar, and the following description applies + to both. Note that there are details not being described (such + as the Portable Interceptor usage), but are not important to the + problem that was fixed (hopefully). + + The test is a "collocation" (thru_poa) test, consisting of one + application/executable. A single IDL interface (Visual) + is declared, and a servant class (Visual_i) is defined that + implements the interface. + + The test application creates two active objects (ClientTask and + ServerTask), and two ORBs. Each active object is given its own + ORB to use, and then each is activated in a separate thread. + The "mainline" thread waits until both of the task threads complete, + performs the expected vs. actual results comparison, and then exits. + + The ServerTask::svc() does the following: + + - Obtain the RootPOA + - Create/activate the Visual_i servant object + - Save the IOR to a file + - Run the (server) ORB event loop. + - Destroy the RootPOA + - Destroy the (server) ORB. + + The ClientTask::svc() does the following: + + - Read/convert/narrow the server-side's IOR file into a + "Visual" object reference (using the ClientTask's ORB). + - Invoke each of the operations on the (Visual) object reference. + - Invoke the "shutdown" operation on the (Visual) object reference. + + The problem lies with the servant's (Visual_i) implementation of + the "shutdown" operation. The IDL interface, Visual, declares the + "shutdown" operation to be a "oneway" operation. The + Visual_i::shutdown() method is implemented to invoke + "shutdown(false)" on the (server) ORB. This is a rather common + approach taken by many other TAO tests, but the approach doesn't + work here because the servant object is collocated (thru_poa). + + The "oneway" operations do not work the same way under collocated + versus remote request contexts. A collocated oneway request gets + treated as if it were a synchronous request, for it is the client's + "requesting thread" that carries out the entire dispatching and + invocation of the appropriate method on the collocated servant + object. Control is not returned to the client's requesting thread + until the request is completely finished. + + So, the steps that lead up to the problem in the tests is that + the ClientTask's thread is the thread that ends up invoking + shutdown() on the (server) ORB. At some point soon afterwards, + and before the ClientTask's thread has been given back control, + the (server) ORB event loop being run in the ServerTask completes. + This causes the ServerTask thread to continue on in its logic, + which is to destroy the (server) RootPOA, destroy the (server) ORB, + and then go away (the ServerTask thread, that is). Meanwhile, + the ClientTask's thread left executing a method in an object that + has been destroyed. When the stack is unwound, bad things happen, + and a segmentation fault, with a somewhat corrupt stack trace + is produced. + + The fix to the tests was to stop destroying the (server) ORB + in the ServerTask thread. Instead, the application mainline code + was modified (Collocated_Test.cpp) to destroy the (server) ORB + after both the ServerTask and the ClientTask threads have + completed. + + +Thu Jan 12 11:33:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp: + Replaced some return 0, with return false + +Thu Jan 12 11:08:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO-INSTALL.html: + Small updates + +Thu Jan 12 10:28:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/PluggableUDP/tests/SimplePerformance/server.cpp: + * examples/PluggableUDP/tests/SimplePerformance/client.cpp: + * performance-tests/Cubit/TAO/IDL_Cubit/client.cpp: + * performance-tests/Cubit/TAO/IDL_Cubit/server.cpp: + * performance-tests/Cubit/TAO/MT_Cubit/server.cpp: + * performance-tests/Cubit/TAO/MT_Cubit/client.cpp: + In rtp model don't do main redefinition + +Thu Jan 12 09:54:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/Latency/DII/client.cpp: + * performance-tests/Sequence_Latency/DII/client.cpp: + Added include of AnyTypeCode/Any.h to get all operator << + +Thu Jan 12 00:49:53 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/TAO_CosNotification.pc.in: + + Add TAO_CosEvent to Requires. + + * orbsvcs/orbsvcs/TAO_CosNotification_Skel.pc.in: + + Add TAO_CosEvent_Skel to Requires. + +Thu Jan 12 00:31:27 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * TAO_IDL/be/be_visitor_arg_traits.cpp: + * TAO_IDL/be/be_visitor_home.cpp: + * TAO_IDL/be/be_visitor_interface.cpp: + * TAO_IDL/be/be_visitor_valuebox.cpp: + * examples/Kokyu_dsrt_schedulers/Task_Stats.inl: + * examples/RTCORBA/Activity/Task_Stats.inl: + * orbsvcs/Fault_Detector/FT_FaultDetectorFactory_i.cpp: + * orbsvcs/examples/FaultTolerance/RolyPoly/ORB_Initializer.cpp: + * orbsvcs/orbsvcs/IOR_Multicast.cpp: + * orbsvcs/orbsvcs/Shutdown_Utilities.cpp: + * orbsvcs/orbsvcs/AV/TCP.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Endpoint.cpp: + * orbsvcs/orbsvcs/IFRService/EventPortDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/Options.h: + * orbsvcs/orbsvcs/IFRService/ProvidesDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/UsesDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ValueMemberDef_i.cpp: + * orbsvcs/orbsvcs/Naming/Storable_Naming_Context.h: + * orbsvcs/orbsvcs/Notify/EventChannel.cpp: + * orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp: + * orbsvcs/orbsvcs/Notify/Event_Manager.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp: + * orbsvcs/orbsvcs/Notify/Random_File.cpp: + * orbsvcs/orbsvcs/Notify/ThreadPool_Task.h: + * orbsvcs/orbsvcs/PortableGroup/PG_FactoryRegistry.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Factory.cpp: + * orbsvcs/tests/Bug_2285_Regression/ServerRequest_Interceptor.cpp: + * orbsvcs/tests/Bug_2285_Regression/ServerRequest_Interceptor2.cpp: + * orbsvcs/tests/Bug_2287_Regression/ServerRequest_Interceptor2.cpp: + * orbsvcs/tests/Notify/Blocking/Structured_Supplier.cpp: + * orbsvcs/tests/Notify/lib/Activation_Manager.h: + * orbsvcs/tests/Notify/lib/Periodic_Consumer.cpp: + * orbsvcs/tests/Notify/lib/Task_Stats.inl: + * tao/Any_Insert_Policy_T.h: + * tao/ORB_Table.inl: + * tao/WrongTransactionC.cpp: + * tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.inl: + * tao/Codeset/UTF16_BOM_Factory.cpp: + * tao/Codeset/UTF8_Latin1_Factory.cpp: + + On systems where ACE_TEMPLATES_REQUIRE_SOURCE is not defined, + template implementation files (*_T.cpp) are not #included by the + corresponding template header file (*_T.h). So headers that had + been implicitly #included via the template implementation file, + may now need to be #included explicitly. + + This change explicitly #includes those headers (most commonly + ace/Log_Msg.h and ace/Auto_Ptr.h). Now TAO can be built with + autoconf on Solaris using the Sun Studio C++ compiler. + + Thanks to Vladimir Panov for reporting this problem and + providing the initial patch. + +Tue Jan 10 19:38:49 UTC 2006 Scott Harris <harris_s@ociweb.com> + + * orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/main.cpp: + + Fix VC++ v6.0 compile error and conform to ACE coding standards. + +Tue Jan 10 19:26:58 UTC 2006 Wallace Zhang <zhangw@ociweb.com> + + * tests/Portable_Interceptors/Collocated/Dynamic/Collocated_Test.cpp: + * tests/Portable_Interceptors/Collocated/Dynamic/Server_Task.cpp: + + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Collocated_Test.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Server_Task.cpp: + + On behalf of Tim Bradley (bradley_t@ociweb.com), applying these + changes to resolve the failure of the two tests. + +Tue Jan 10 10:16:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2349_Regression/server.cpp: + Added missign return + +Mon Jan 9 23:33:10 UTC 2006 Iliyan Jeliazkov <jeliazkov_i@ociweb.com> + + * orbsvcs/tests/Notify/lib/common.h: + + Correcting a build problem due to the wrong placement of an + export modifier in the function's declaration. + +Mon Jan 9 13:51:05 MST 2006 Scott Harris <harris_s@ociweb.com> + + * orbsvcs/orbsvcs/IFRService/InterfaceAttrExtension_i.cpp: + * orbsvcs/orbsvcs/IFRService/InterfaceDef_i.cpp: + + Fixed an Interface Repository inheritance bug. + Thanks to Bryan Cassell <BryanCassell@iti-team.com> for identifying + the problem. + Thanks to Jeff Parsons <j.parsons@vanderbilt.edu> for reviewing + the changes. + + * orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/IFR_Inheritance_Test.mpc: + * orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/README: + * orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/main.cpp: + * orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/run_test.pl: + * orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/IFR_Inheritance_Test.idl: + + An automated test of the bug. + +Mon Jan 9 16:20:05 UTC 2006 Iliyan Jeliazkov <jeliazkov_i@ociweb.com> + + * orbsvcs/tests/Notify/lib/common.cpp: + + Correcting a build problem due to an unnecessary export in the + function's definition. + +Mon Jan 9 13:47:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2349_Regression/*: + Added regression for this test. Not fixed yet, just to make + clear that we have this bug, thanks to Chad Elliot + <elliott_c at ociweb dot com> for creating this regression + test. + +Mon Jan 9 13:11:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/Security/SSLIOP-INSTALL.html: + Updated this file, update references to local files instead + of webbased and refer to ACE-INSTALL.html for how to build + ACE_SSL + +Mon Jan 9 09:26:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Valuetype/ValueFactory_Map.h: + No need to export this class from the Valuetype library + +Mon Jan 9 08:59:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/OBV/Factory/client.cpp: + Extended this test to check if we get a marshal exception with + minor code 1 when using OBV without a valuefactory registered. + This is added for bugzilla bug 2354 + +Mon Jan 9 08:10:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/Cubit/TAO/MT_Cubit/client.cpp: + Made this test compiling with VxWorks and pthread support + +Fri Jan 6 19:03:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/AMI/run_test.pl: + Extended this test to also run the client with -ORBCollocation + no. This will fail at this moment, this bug seems to be there + already for a long time, not it is visible for everyone + + * tao/Valuetype/ValueBase.cpp: + Use true/false instead of 0/1 + +Fri Jan 6 18:25:18 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/Notify/Blocking/Makefile.am: + * orbsvcs/tests/Notify/Discarding/Makefile.am: + * orbsvcs/tests/Notify/Ordering/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Filter/Makefile.am: + + Regenerated. + +Fri Jan 6 16:14:56 UTC 2006 Iliyan Jeliazkov <jeliazkov_i@ociweb.com> + + * orbsvcs/tests/Notify/lib/Makefile.am: + * orbsvcs/tests/Notify/lib/common.h: + * orbsvcs/tests/Notify/lib/common.cpp: + + Newly created to give permanent home to previously scattered and + duplicated functionality. Updated to use the + ACE_[U]INT[16|32|64]_FORMAT_SPECIFIER macros. Thanks to Johnny + Willemsen <jwillemsen@remedy.nl> for suggesting it. + + * orbsvcs/tests/Notify/Blocking/common.h: + * orbsvcs/tests/Notify/Blocking/common.cpp: + * orbsvcs/tests/Notify/Discarding/common.h: + * orbsvcs/tests/Notify/Discarding/common.cpp: + * orbsvcs/tests/Notify/Ordering/common.h: + * orbsvcs/tests/Notify/Ordering/common.cpp: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/common.cpp: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/common.h: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/common.h: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/common.cpp: + * orbsvcs/tests/Notify/performance-tests/Filter/common.h: + * orbsvcs/tests/Notify/performance-tests/Filter/common.cpp: + + Removed these files to eliminate duplication. Moved the code to + the lib/common.{cpp|h} + + * orbsvcs/tests/Notify/Blocking/Blocking.mpc: + * orbsvcs/tests/Notify/Discarding/Discarding.mpc: + * orbsvcs/tests/Notify/Ordering/Ordering.mpc: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Seq_Multi_ETCL_Filter.mpc: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Seq_Multi_Filter.mpc: + * orbsvcs/tests/Notify/performance-tests/Filter/Filter.mpc: + + Updated to remove references to common.{cpp|h} + + * orbsvcs/tests/Notify/Blocking/Makefile.am: + * orbsvcs/tests/Notify/Discarding/Makefile.am: + * orbsvcs/tests/Notify/Ordering/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Filter/Makefile.am: + + Updated to remove references to common.{cpp|h} + +Fri Jan 6 12:23:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Valuetype/ValueBase.cpp: + When no OBV Factory is found, tell in the error message for what we + are lacking an OBV Factory. + +Thu Jan 5 19:56:43 2006 Michi Henning <michi@triodia.com> + + * End of bloatware predicted. + +Fri Jan 6 03:16:41 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * interop-tests/wchar/Makefile.am: + + Regenerated. + + * interop-tests/wchar/interop_wchar.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Fri Jan 6 02:34:55 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp: + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.h: + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp: + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h: + + Moved static const definitions out of class declaration as VC6 + doesn't support this. Thanks to Wallace Zhang for the initial + patch for Notify Service, which I've adapted for the Logging + Service. + +Fri Jan 6 01:57:00 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/ior_corbaloc/Makefile.am: + + Regenerated. + + * examples/ior_corbaloc/ior_corbaloc.mpc: + + Changed client and corbaname client projects not to inherit + from portableserver. These are pure clients. + + Changed corbaname client project to not add status_i.cpp to + Source Files section. It's not part of the client. + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + + * examples/ior_corbaloc/corbaname_client.cpp + + Changed to #include "corbanameC.h" instead of + "ior_corbaloc_client_i.h", which is actually part of the + client project. + +Thu Jan 5 15:50:47 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/Simple/bank/Makefile.am: + * examples/Simple/chat/Makefile.am: + * examples/Simple/echo/Makefile.am: + * examples/Simple/grid/Makefile.am: + * examples/Simple/time/Makefile.am: + + Regenerated. + + * examples/Simple/bank/bank.mpc: + * examples/Simple/chat/chat.mpc: + * examples/Simple/echo/echo.mpc: + * examples/Simple/grid/grid.mpc: + * examples/Simple/time/time.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Thu Jan 5 15:44:15 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * Release: + + Add TAO/m4 subdirectory to CONTROLLED_FILES. + +Thu Jan 5 10:29:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/AMI/simple_client.cpp: + Small layout fixes + + * tests/AMI/client.cpp: + Use prefix decrement + +Thu Jan 5 09:52:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/IFR_Service/be_init.cpp: + Fixed 64bit conversion warnings + +Wed Jan 4 21:27:38 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ChangeLog: + + Changed "add-log-time-format" to a really ugly lambda expression + that formats changelog timestamps in UTC and works with both GNU + Emacs and XEmacs. + +Wed Jan 4 11:08:58 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * TAO_IDL/ast/ast_expression.cpp: + + Fix cut-n-pasto where unsigned long longs / long longs were + compared with a floating point zero literal. This should be + benign, but triggers a VC6 bug. + +Wed Jan 4 09:54:01 2006 David Giovannini <giovannd@ociweb.com> + + * orbsvcs/ImplRepo_Service/Activator_Loader.cpp: + * orbsvcs/ImplRepo_Service/Activator_NT_Service.cpp: + * orbsvcs/ImplRepo_Service/Activator_Options.h: + * orbsvcs/ImplRepo_Service/Activator_Options.cpp: + * orbsvcs/ImplRepo_Service/Adapter_Activator.cpp: + * orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.h: + * orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.cpp: + * orbsvcs/ImplRepo_Service/Forwarder.cpp: + * orbsvcs/ImplRepo_Service/INS_Locator.cpp: + * orbsvcs/ImplRepo_Service/ImR_Activator.cpp: + * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp: + * orbsvcs/ImplRepo_Service/ImR_Locator.cpp: + * orbsvcs/ImplRepo_Service/ImR_Locator.idl: + * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp: + * orbsvcs/ImplRepo_Service/Iterator.cpp: + * orbsvcs/ImplRepo_Service/Locator_Loader.h: + * orbsvcs/ImplRepo_Service/Locator_Loader.cpp: + * orbsvcs/ImplRepo_Service/Locator_NT_Service.cpp: + * orbsvcs/ImplRepo_Service/Locator_Options.h: + * orbsvcs/ImplRepo_Service/Locator_Options.cpp: + * orbsvcs/ImplRepo_Service/Locator_Repository.cpp: + * orbsvcs/ImplRepo_Service/Locator_XMLHandler.h: + * orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp: + * orbsvcs/ImplRepo_Service/Server_Info.cpp: + * orbsvcs/ImplRepo_Service/tao_imr_i.cpp: + + Corrected white-space to match ACE/TAO guidelines. + Adding a const to an int in Imr_Locator_i.cpp. + Changing a command line behavior for defualt activator + in tao_imr_i.cpp. + +Tue Jan 3 21:34:30 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * ChangeLog: + + Add "indent-tabs-mode: nil" to Local Variables at end of file. + Untabify. + Delete-trailing-whitespace. + +Tue Jan 3 11:27:56 2006 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/OBV/Typed_Events/Makefile.am: + * examples/POA/DSI/Makefile.am: + * examples/POA/Default_Servant/Makefile.am: + * examples/POA/Forwarding/Makefile.am: + * examples/PluggableUDP/tests/Basic/Makefile.am: + * examples/PluggableUDP/tests/Performance/Makefile.am: + * examples/PluggableUDP/tests/SimplePerformance/Makefile.am: + * examples/Quoter/Makefile.am: + + Regenerated. + + * examples/OBV/Typed_Events/Typed_Events.mpc: + * examples/POA/DSI/POA_DSI.mpc: + * examples/POA/Default_Servant/POA_Default_Servant.mpc: + * examples/POA/Forwarding/POA_Forwarding.mpc: + * examples/PluggableUDP/tests/Basic/Basic.mpc: + * examples/PluggableUDP/tests/Performance/Performance.mpc: + * examples/PluggableUDP/tests/SimplePerformance/SimplePerformance.mpc: + * examples/Quoter/Quoter.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Tue Jan 3 10:39:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2345_Regression/server.cpp: + Fixed unused variable warning + +Mon Jan 2 18:45:12 UTC UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2345_Regression/server.cpp: + Fixed implicit conversion warning + +Mon Jan 2 15:21:27 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * orbsvcs/orbsvcs/IFRService/InterfaceAttrExtension_i.cpp: + * orbsvcs/orbsvcs/IFRService/InterfaceDef_i.cpp: + + Fixed a bug in the describe_interface() API operation that occurs + when an interface has one or more parents. Thanks to Scott Harris + <harris_s@ociweb.com> for reporting the problem. + +Mon Jan 2 14:12:15 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/tao_idl.cpp: + * TAO_IDL/driver/drv_args.cpp: + * TAO_IDL/driver/drv_preproc.cpp: + * TAO_IDL/include/drv_extern.h: + * TAO_IDL/include/idl_global.h: + * TAO_IDL/util/utl_global.cpp: + + - Frontend changes necessary to support a backend option + for the CoSMIC IDL importer that passes a directory + name instead of a list of IDL files. This option is + not available for any other backends and should not + affect their behavior. + + - Added a patch submitted by Ken Sedgwick <ken+5a4@bonsai,com> + that fixes a bug in the functioning of TAO_IDL_INCLUDE_DIR. + +Sun Jan 1 10:50:39 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp (is_alive): + Fixed a couple of bugs reported by Yariv Tal + <yariv_tal2003@hotmail.com>. This fixes bugid 2347. + +Fri Dec 30 15:36:04 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/Event_Comm/Makefile.am: + * examples/Kokyu_dsrt_schedulers/fp_example/Makefile.am: + * examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am: + * examples/Kokyu_dsrt_schedulers/muf_example/Makefile.am: + * examples/Logging/Makefile.am: + + Regenerated. + + * examples/Event_Comm/Event_Comm.mpc: + * examples/Kokyu_dsrt_schedulers/fp_example/fp_example.mpc: + * examples/Kokyu_dsrt_schedulers/mif_example/mif_example.mpc: + * examples/Kokyu_dsrt_schedulers/muf_example/muf_example.mpc: + * examples/Logging/Logging.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Fri Dec 30 16:15:24 2005 Wallace Zhang <zhangw@ociweb.com> + + * NEWS: Updated information for the wchar refactoring work. + +Wed Dec 30 14:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/RTScheduling/MIF_Scheduler/MIF_DT_Creator.cpp: + * tests/MT_Timeout/server.cpp: + * tests/Crash_On_Write/server.cpp: + Fixed compile error + +Wed Dec 30 12:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2345_Regression/*: + Added regression for bug 2345, this is not fixed yet, just + adding the regression first. Thanks to Yariv Tal + <yariv_tal2003 at hotmail dot com> for reporting this + problem and delivering this simple regression + +Thu Dec 29 11:43:02 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/Content_Server/AMI_Iterator/Makefile.am + * examples/Content_Server/AMI_Observer/Makefile.am + * examples/Content_Server/SMI_Iterator/Makefile.am + + Regenerated. + + * examples/Content_Server/AMI_Iterator/AMI_Iterator.mpc: + * examples/Content_Server/AMI_Observer/AMI_Observer.mpc: + * examples/Content_Server/SMI_Iterator/SMI_Iterator.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Thu Dec 29 11:26:45 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/Bug_2316_Regression/Makefile.am: + + Regenerated. + + * orbsvcs/tests/Bug_2316_Regression/Bug_2316_Regression.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Thu Dec 29 09:43:07 2005 Chad Elliott <elliott_c@ociweb.com> + + * tao/PI/PI_PolicyFactory.cpp: + * tao/PI/ProcessingModePolicy.h: + * tao/PI/ProcessingModePolicy.pidl: + + Took care of some TBD comments. The TBD in the .pidl has been + changed into a Doxygen @todo. + +Thu Dec 29 07:29:38 2005 Phil Mesnier <mesnier_p@ociweb.com> + + * NEWS: + + Added Comment regarding new Endpoint Selector. + +Thu Dec 29 06:47:37 2005 Chad Elliott <elliott_c@ociweb.com> + + * tao/Strategies/OC_Endpoint_Selector_Factory.cpp: + + Wrapped plain text string in ACE_TEXT () to avoid problems on + wide-character builds. + +Wed Dec 28 18:20:23 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/Callback_Quoter/Makefile.am: + + Regenerated. + + * examples/Callback_Quoter/Callback_Quoter.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Wed Dec 28 17:07:23 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/AMH/Sink_Server/Makefile.am: + * examples/Buffered_AMI/Makefile.am: + * examples/Buffered_Oneways/Makefile.am: + + Regenerated. + + * examples/AMH/Sink_Server/Sink_Server.mpc: + * examples/Buffered_AMI/Buffered_AMI.mpc: + * examples/Buffered_Oneways/Buffered_Oneways.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Wed Dec 28 13:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Native_Exceptions/Native_Exceptions.mpc: + * tests/UNKNOWN_Exception/UNKNOWN_Exception.mpc: + Removed setting of idlflags, native exceptions are the default + now and the overruling of the idlflags gives problem when + trying to extend TAO_IDLFLAGS from the platform_macros.GNU + file + +Wed Dec 28 11:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/Cubit/TAO/MT_Cubit/client.cpp: + Made this test compiling again with VxWorks 6.1, the WIND_TCB + struct has been changed and shouldn't be used directly anymore + +Wed Dec 28 10:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/RTScheduling/Synch_i.cpp: + Cast number of seconds explicitly to time_t + +Wed Dec 28 10:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.cpp: + Applied a workaround for Borland to not give argument not used + warnings. This problem has been reported to Borland to get it + fixed in the next version. + +Wed Dec 28 09:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Trader/Trader_Interfaces.cpp: + Fixed 64bit conversion warning + +Wed Dec 28 09:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/test_i.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/test_i.h: + No need to derive explicitly from ServantBase + +Wed Dec 28 09:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * utils/catior/catior.cpp: + * tao/TypeCodeFactory/TypeCodeFactory_Loader.cpp: + * tao/PortableServer/Root_POA.cpp: + * tao/PortableServer/RequestProcessingStrategyFactoryImpl.cpp: + * tao/PortableServer/RequestProcessingStrategyDefaultServantFI.cpp: + * tao/PortableServer/RequestProcessingStrategyAOMOnlyFactoryImpl.cpp: + * tao/PortableServer/Object_Adapter.cpp: + Added missing include + +Wed Dec 28 08:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Strategies/Optimized_Connection_Endpoint_Selector.cpp: + Removed incorrect ; at end of method + +Tue Dec 27 22:50:22 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/CosTrading.mpc: + + Fix typo in last change. + +Tue Dec 27 18:17:49 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/CosTrading.mpc: + + Tweak so trading_serv_export.h is installed. + +Tue Dec 27 17:21:54 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/CosNotification.mpc: + + Tweak so notify_serv_export and notify_persist_export.h are + installed. + + * orbsvcs/orbsvcs/CosTime.mpc: + + Tweak so time_export.h is installed. + + * orbsvcs/orbsvcs/CosEvent.mpc: + * orbsvcs/orbsvcs/ec_typed_events_serv.mpb: + + Tweak so that CEC_Defaults.h and event_serv_export.h are + installed. + +Tue Dec 27 16:17:30 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/CosConcurrency.mpc: + + Tweak so concurrency_export.h is installed. Thanks to Vladimir + Panov for pointing out this class of problems. + + * tao/Makefile.am: + + Regenerated due to new Optimized Connection Endpoint Selector + feature. C.f.: + + Tue Dec 27 08:22:42 2005 Phil Mesnier <mesnier_p@ociweb.com> + +Tue Dec 27 15:33:28 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * Makefile.am: + + Remove DISTCLEANFILES definitions. We no longer ship + tao-config and tao-config.1. + + * Makefile.am: + + Build examples and interop-tests subdirectories. + + * Makefile.am: + + I accidently clobbered this file by checking in the MPC + generated version. Restore to revision 1.13, the last + known good version. + +Tue Dec 27 15:11:18 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * Release + + Add aclocal.m4 to RELEASE_FILES. Thanks to Vladimir Panov + < gbr at voidland dot org >. + +Fri Dec 23 20:17:39 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp: + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h: + + Changed lock strategy of implicit_ids_, filterable_data_, and + variable_header_ maps from TAO_SYNCH_MUTEX to ACE_Null_Mutex, + since accesses to the maps are already protected at a higher + level. + + Explicitly set the size of the implicit_ids_, filterable_data_, + and variable_header_ maps to 27, 31, and 31 hash buckets + respectively. + + A fixed set of 9 keys are stored in implicit_ids_. With the + default hash_pjw() hash function, 27 buckets is the smallest + table where each key is hashed to a unique bucket. Further + optimizations, perhaps using a minimal perfect hash, may be + possible. + + A 31 bucket hash table size was selected for filterable_data_ + and variable_header_ because a typical structured event has very + few if any attributes, the cost of allocating default (1024 hash + buckets) size maps outweigh any benefits of fewer hash + collisions. + +Tue Dec 27 12:24:29 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * Makefile.am: + + Fixed botched ACLOCAL_AMFLAGS definition. + +Tue Dec 27 11:34:29 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * Makefile.am: + + Build examples subdirectory. + + * examples/Makefile.am: + + Disable building CSD_Strategy and RTScheduling subdirectories. + These *.mpc files need major changes to support separate build + directories. This is too risky to complete within this beta + cycle. + + * performance-tests/Makefile.am: + + Disable building CSD_Strategy subdirectory. + These *.mpc files need major changes to support separate build + directories. This is too risky to complete within this beta + cycle. + + * examples/Load_Balancing/Makefile.am: + * examples/Load_Balancing_persistent/Makefile.am: + * examples/POA/Adapter_Activator/Makefile.am: + * examples/POA/Explicit_Activation/Makefile.am: + * examples/POA/On_Demand_Activation/Makefile.am: + * examples/POA/Reference_Counted_Servant/Makefile.am: + * examples/POA/TIE/Makefile.am: + * examples/Persistent_Grid/Makefile.am: + * examples/Simulator/Event_Supplier/Makefile.am: + + Regenerated. + + * examples/POA/Adapter_Activator/POA_Adapter_Activator.mpc: + * examples/POA/Explicit_Activation/POA_Explicit_Activation.mpc: + * examples/POA/On_Demand_Activation/POA_On_Demand_Activation.mpc: + * examples/POA/Reference_Counted_Servant/Reference_Counted_Servant.mpc: + + Change automake specific includes definitions to to have both + build dir and source dir relative paths. + + * examples/Load_Balancing/Load_Balancing.mpc: + * examples/Load_Balancing_persistent/Load_Balancing_persistent.mpc: + * examples/POA/TIE/POA_TIE.mpc: + * examples/Persistent_Grid/Persistent_Grid.mpc: + * examples/Simulator/Event_Supplier/Event_Supplier.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Tue Dec 27 08:22:42 2005 Phil Mesnier <mesnier_p@ociweb.com> + + * tao/Profile_Transport_Resolver.cpp: + * tao/Profile_Transport_Resolver.h: + * tao/Strategies/OC_Endpoint_Selector_Loader.cpp: + * tao/Strategies/OC_Endpoint_Selector_Loader.h: + * tao/Strategies/OC_Endpoint_Selector_Factory.cpp: + * tao/Strategies/OC_Endpoint_Selector_Factory.h: + * tao/Strategies/Optimized_Connection_Endpoint_Selector.cpp: + * tao/Strategies/Optimized_Connection_Endpoint_Selector.h: + + A new feature requested by Homag. This feature is an + alternative endpoint selector that improves the performance of + connection establishment when an IOR contains unreachable + endpoints. The two elements of this optimization are a + connection cache lookup before attempting any connections and a + second means for setting the connection timeout without loading + the AMI library to use the TAO-specific connection timeout + policy. + + * tests/AlternateIIOP/svc.conf: + + The alternate IIOP test now uses the Optimized Connection + Endpoint Selector to speed up the selection of the correct endpoint. + +Tue Dec 27 09:18:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/FlResource_Loader.h: + * tao/TkResource_Loader.h: + Added missing versioning include. Thanks to + Ken Sedgwick <ken at bonsai dot com> + +Tue Dec 27 09:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IORInterceptor/IORInterceptor_Details.h: + Fixed pragma once warning + +Fri Dec 23 16:16:20 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Add orbsvcs/tests/Bug_2316_Regression/Makefile to + AC_CONFIG_FILES. + + * orbsvcs/tests/Bug_2316_Regression/Makefile.am: + + New file. + +Fri Dec 23 13:06:22 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp: + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.h: + + Don't assign values to dynamically allocated Any's if the + allocation failed. + + Remove rec_ member variable. The constructor extracts all + relevant fields and adds them to property_lookup_ map. + + Const-qualify constructor argument. + +Fri Dec 23 10:47:55 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp: + + Removed unused variable. + +Fri Dec 23 09:09:14 2005 Chad Elliott <elliott_c@ociweb.com> + + * tao/PI/PI_ORBInitializer.h: + * tao/PI/PI_ORBInitializer.cpp: + * tao/PI/PI_PolicyFactory.h: + * tao/PI/PI_PolicyFactory.cpp: + * tao/PI/ProcessingModePolicy.h: + * tao/PI/ProcessingModePolicy.cpp: + + Added the TAO versioning namespace macros. + +Fri Dec 23 08:50:37 2005 Chad Elliott <elliott_c@ociweb.com> + + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Echo_Collocated_ORBInitializer.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/interceptors.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/test_i.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Echo_Client_ORBInitializer.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Echo_Server_ORBInitializer.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/client_interceptor.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/server_interceptor.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/test_i.h: + + Fixed fuzz errors related to RefCountedServantBase and _MSC_VER >= + 1200. + +Fri Dec 23 13:24:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/util/utl_err.cpp: + Added include of Log_Msg.h to get ACE_ERROR. Can't reproduce + it on my machine but it can be that because of other defines + this file is not included implicitly. This fixes bugzilla bug + 2342. Thanks to Dave Craig <dwcraig at qualcomm dot com> for + reporting this. + +Fri Dec 23 10:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IIOP_Acceptor.cpp: + * examples/POA/On_Demand_Loading/Servant_Manager.cpp: + Fixed 64bit conversion warnings + +Fri Dec 23 10:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Native_Exceptions/Native_Exceptions.mpc: + * tests/UNKNOWN_Exception/UNKNOWN_Exception.mpc: + Changed the way we change the TAO_IDL flags so that adding + more flags from the platform_macros.GNU file works for these + projects + +Fri Dec 23 10:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/PI_PolicyFactory.h: + Fixed export macros + +Fri Dec 23 10:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/ClientRequestDetails.{h,inl}: + * tao/PI_Server/ServerRequestDetails.{h,inl}: + * tao/IORInterceptor/IORInterceptor_Details.{h,inl,cpp}: + Fixed pragma once warning, removed empty destructor, not needed + + * tao/IORInterceptor/IORInterceptor_Details.inl: + Removed this file, it is now empty + + * tao/Makefile.am: + Updated + +Fri Dec 23 08:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/PI_ORBInitializer.h: + * tao/PI/ProcessingModePolicy.h: + Fixed export macros + +Thu Dec 22 16:07:11 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * docs/tutorials/Quoter/RT_Event_Service/Makefile.am: + * examples/Makefile.am: + * examples/AMH/Sink_Server/Makefile.am: + * examples/AMI/FL_Callback/Makefile.am: + * examples/Buffered_AMI/Makefile.am: + * examples/Buffered_Oneways/Makefile.am: + * examples/CSD_Strategy/ThreadPool/Makefile.am: + * examples/CSD_Strategy/ThreadPool2/Makefile.am: + * examples/CSD_Strategy/ThreadPool3/Makefile.am: + * examples/CSD_Strategy/ThreadPool5/Makefile.am: + * examples/CSD_Strategy/ThreadPool6/Makefile.am: + * examples/Content_Server/AMI_Iterator/Makefile.am: + * examples/Content_Server/AMI_Observer/Makefile.am: + * examples/Content_Server/SMI_Iterator/Makefile.am: + * examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am: + * examples/Load_Balancing/Makefile.am: + * examples/Load_Balancing_persistent/Makefile.am: + * examples/OBV/Typed_Events/Makefile.am: + * examples/POA/DSI/Makefile.am: + * examples/POA/Default_Servant/Makefile.am: + * examples/POA/Forwarding/Makefile.am: + * examples/POA/Generic_Servant/Makefile.am: + * examples/POA/TIE/Makefile.am: + * examples/Persistent_Grid/Makefile.am: + * examples/PluggableUDP/tests/Basic/Makefile.am: + * examples/PluggableUDP/tests/Performance/Makefile.am: + * examples/PluggableUDP/tests/SimplePerformance/Makefile.am: + * examples/Simulator/Event_Supplier/Makefile.am: + * interop-tests/wchar/Makefile.am: + * orbsvcs/Event_Service/Makefile.am: + * orbsvcs/FTRT_Event_Service/Event_Service/Makefile.am: + * orbsvcs/FTRT_Event_Service/Factory_Service/Makefile.am: + * orbsvcs/FTRT_Event_Service/Gateway_Service/Makefile.am: + * orbsvcs/FT_ReplicationManager/Makefile.am: + * orbsvcs/Fault_Detector/Makefile.am: + * orbsvcs/Fault_Notifier/Makefile.am: + * orbsvcs/IFR_Service/Makefile.am: + * orbsvcs/ImplRepo_Service/Makefile.am: + * orbsvcs/Logging_Service/RTEvent_Logging_Service/Makefile.am: + * orbsvcs/Naming_Service/Makefile.am: + * orbsvcs/Notify_Service/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/bin/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/lib/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/tests/Basic/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/tests/Multiple/Makefile.am: + * orbsvcs/examples/FaultTolerance/RolyPoly/Makefile.am: + * orbsvcs/examples/LoadBalancing/Makefile.am: + * orbsvcs/examples/Log/RTEvent/Makefile.am: + * orbsvcs/examples/Notify/Federation/Agent/Makefile.am: + * orbsvcs/examples/Notify/Federation/Gate/Makefile.am: + * orbsvcs/examples/Notify/Federation/SpaceCraft/Makefile.am: + * orbsvcs/examples/Notify/Subscribe/Makefile.am: + * orbsvcs/examples/RtEC/IIOPGateway/Makefile.am: + * orbsvcs/examples/RtEC/Kokyu/Makefile.am: + * orbsvcs/examples/RtEC/MCast/Makefile.am: + * orbsvcs/examples/RtEC/Schedule/Makefile.am: + * orbsvcs/examples/RtEC/Simple/Makefile.am: + * orbsvcs/performance-tests/LoadBalancing/LBPerf/RPS/Makefile.am: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/Makefile.am: + * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/Makefile.am: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/Makefile.am: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/Makefile.am: + * orbsvcs/performance-tests/RTEvent/Roundtrip/Makefile.am: + * orbsvcs/performance-tests/RTEvent/TCP_Baseline/Makefile.am: + * orbsvcs/performance-tests/RTEvent/lib/Makefile.am: + * orbsvcs/tests/Makefile.am: + * orbsvcs/tests/AVStreams/Asynch_Three_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Bidirectional_Flows/Makefile.am: + * orbsvcs/tests/AVStreams/Component_Switching/Makefile.am: + * orbsvcs/tests/AVStreams/Full_Profile/Makefile.am: + * orbsvcs/tests/AVStreams/Latency/Makefile.am: + * orbsvcs/tests/AVStreams/Modify_QoS/Makefile.am: + * orbsvcs/tests/AVStreams/Multicast/Makefile.am: + * orbsvcs/tests/AVStreams/Multicast_Full_Profile/Makefile.am: + * orbsvcs/tests/AVStreams/Multiple_Flows/Makefile.am: + * orbsvcs/tests/AVStreams/Pluggable/Makefile.am: + * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Three_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Two_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/Makefile.am: + * orbsvcs/tests/Bug_2137_Regression/Makefile.am: + * orbsvcs/tests/Bug_2247_Regression/Makefile.am: + * orbsvcs/tests/Bug_2248_Regression/Makefile.am: + * orbsvcs/tests/Bug_2285_Regression/Makefile.am: + * orbsvcs/tests/Bug_2287_Regression/Makefile.am: + * orbsvcs/tests/EC_Custom_Marshal/Makefile.am: + * orbsvcs/tests/EC_MT_Mcast/Makefile.am: + * orbsvcs/tests/EC_Mcast/Makefile.am: + * orbsvcs/tests/EC_Multiple/Makefile.am: + * orbsvcs/tests/EC_Throughput/Makefile.am: + * orbsvcs/tests/Event/Basic/Makefile.am: + * orbsvcs/tests/Event/Mcast/Common/Makefile.am: + * orbsvcs/tests/Event/Mcast/Complex/Makefile.am: + * orbsvcs/tests/Event/Mcast/Simple/Makefile.am: + * orbsvcs/tests/Event/Mcast/Two_Way/Makefile.am: + * orbsvcs/tests/Event/Performance/Makefile.am: + * orbsvcs/tests/Event/lib/Makefile.am: + * orbsvcs/tests/FT_App/Makefile.am: + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/Makefile.am: + * orbsvcs/tests/FaultTolerance/IOGR/Makefile.am: + * orbsvcs/tests/FaultTolerance/IOGRManipulation/Makefile.am: + * orbsvcs/tests/FtRtEvent/Makefile.am: + * orbsvcs/tests/ImplRepo/Makefile.am: + * orbsvcs/tests/InterfaceRepo/Latency_Test/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Throughput/Makefile.am: + * orbsvcs/tests/Security/Big_Request/Makefile.am: + * orbsvcs/tests/Security/Callback/Makefile.am: + * orbsvcs/tests/Security/Crash_Test/Makefile.am: + * orbsvcs/tests/Security/MT_IIOP_SSL/Makefile.am: + * orbsvcs/tests/Security/MT_SSLIOP/Makefile.am: + * orbsvcs/tests/Security/Secure_Invocation/Makefile.am: + * performance-tests/Makefile.am: + * performance-tests/Anyop/Makefile.am: + * performance-tests/Callback/Makefile.am: + * performance-tests/Cubit/TAO/DII_Cubit/Makefile.am: + * performance-tests/Cubit/TAO/IDL_Cubit/Makefile.am: + * performance-tests/Cubit/TAO/MT_Cubit/Makefile.am: + * performance-tests/Latency/AMH_Single_Threaded/Makefile.am: + * performance-tests/Latency/AMI/Makefile.am: + * performance-tests/Latency/Collocation/Makefile.am: + * performance-tests/Latency/DII/Makefile.am: + * performance-tests/Latency/DSI/Makefile.am: + * performance-tests/Latency/Deferred/Makefile.am: + * performance-tests/Latency/Single_Threaded/Makefile.am: + * performance-tests/Latency/Thread_Per_Connection/Makefile.am: + * performance-tests/Latency/Thread_Pool/Makefile.am: + * performance-tests/POA/Create_Reference/Makefile.am: + * performance-tests/POA/Implicit_Activation/Makefile.am: + * performance-tests/POA/Object_Creation_And_Registration/Makefile.am: + * performance-tests/Protocols/Makefile.am: + * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/Makefile.am: + * performance-tests/RTCorba/Multiple_Endpoints/Single_Endpoint/Makefile.am: + * performance-tests/RTCorba/Thread_Pool/Makefile.am: + * performance-tests/Sequence_Latency/AMH_Single_Threaded/Makefile.am: + * performance-tests/Sequence_Latency/AMI/Makefile.am: + * performance-tests/Sequence_Latency/DII/Makefile.am: + * performance-tests/Sequence_Latency/DSI/Makefile.am: + * performance-tests/Sequence_Latency/Deferred/Makefile.am: + * performance-tests/Sequence_Latency/Single_Threaded/Makefile.am: + * performance-tests/Sequence_Latency/Thread_Per_Connection/Makefile.am: + * performance-tests/Sequence_Latency/Thread_Pool/Makefile.am: + * performance-tests/Throughput/Makefile.am: + + Regenerated. + +Thu Dec 22 15:24:38 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * TAO_IDL/tao_idl.mpc: + * docs/tutorials/Quoter/Naming_Service/Quoter_Naming_Service.mpc: + * docs/tutorials/Quoter/Simple/Client/Quoter_Simple_Client.mpc: + * docs/tutorials/Quoter/Simple/Impl-Repo/Quoter_Simple_Impl_Repo.mpc: + * docs/tutorials/Quoter/Simple/ImprovedServer/Quoter_Simple_ImprovedServer.mpc: + * docs/tutorials/Quoter/Simple/Persistent/Quoter_Simple_Persistent.mpc: + * docs/tutorials/Quoter/Simple/Server/Quoter_Simple_Server.mpc: + * examples/POA/Adapter_Activator/POA_Adapter_Activator.mpc: + * examples/POA/Explicit_Activation/POA_Explicit_Activation.mpc: + * examples/POA/On_Demand_Activation/POA_On_Demand_Activation.mpc: + * examples/POA/Reference_Counted_Servant/Reference_Counted_Servant.mpc: + * orbsvcs/examples/CosEC/RtEC_Based/bin/CosEC_RtEC_Based_bin.mpc: + * orbsvcs/examples/CosEC/RtEC_Based/tests/Basic/CosEC_RtEC_Based_tests_Basic.mpc: + * orbsvcs/examples/CosEC/RtEC_Based/tests/Multiple/CosEC_RtEC_Based_Mult.mpc: + * orbsvcs/examples/Notify/Federation/Agent/Agent.mpc: + * orbsvcs/examples/Notify/Federation/SpaceCraft/SpaceCraft.mpc: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/Colocated_Roundtrip.mpc: + * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/Federated_Roundtrip.mpc: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/RTCORBA_Baseline.mpc: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/RTCORBA_Callback.mpc: + * orbsvcs/performance-tests/RTEvent/Roundtrip/Roundtrip.mpc: + * orbsvcs/performance-tests/RTEvent/TCP_Baseline/TCP_Baseline.mpc: + * orbsvcs/tests/Bug_2285_Regression/Bug_2285_Regression.mpc: + * orbsvcs/tests/Bug_2287_Regression/Bug_2287_Regression.mpc: + * orbsvcs/tests/CosEvent/Basic/basiceventtestexe.mpb: + * orbsvcs/tests/Event/Basic/rteventtestexe.mpb: + * orbsvcs/tests/Event/Mcast/Complex/Complex.mpc: + * orbsvcs/tests/Event/Mcast/Simple/Simple.mpc: + * orbsvcs/tests/Event/Mcast/Two_Way/Two_Way.mpc: + * orbsvcs/tests/Event/Performance/eventperftestexe.mpb: + * performance-tests/Protocols/Protocols.mpc: + + Add automake specific blocks that either add or replace include + paths definitions with $(srcdir) relative paths. + +Thu Dec 22 13:04:09 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Added BUILD_ACE_FOR_TAO automake conditional. Explicitly + set to false (at least for now). + +Thu Dec 22 14:43:24 2005 Paul Calabrese <calabrese_p@ociweb.com> + + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp: + + Fix some uninitialized data members. + +Thu Dec 22 12:38:37 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + +Thu Dec 22 14:13:14 2005 Chad Elliott <elliott_c@ociweb.com> + + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/run_test.pl: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/run_test.pl: + + Made an attempt at supporting these new tests on VxWorks. + +Wed Dec 21 19:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/examples/Notify/Federation/federation.mwc: + Removed this file, it causes project files with + just different casing, which causes problems when extracting + the zip release files under windows + +Thu Dec 22 10:12:33 2005 Chad Elliott <elliott_c@ociweb.com> + + * tao/PI/ProcessingModePolicyC.h: + * tao/PI/ProcessingModePolicyC.cpp: + * tao/PI/ProcessingModePolicyS.h: + + These did not show up as unknown files for the previous commit. + +Thu Dec 22 08:54:09 2005 Chad Elliott <elliott_c@ociweb.com> + + Committing these changes on behalf of Tim Bradley + <bradley_t@ociweb.com>. + + The following changes were made in order to support a new + feature that is described in the CORBA 3.1 draft specification. + The new feature consists of adding the capability to register + Portable Interceptors with an associated set of Policy objects. + In addition, a new Policy was introduced: the + PortableInterceptor::ProcessingModePolicy. This policy can be + applied to either client request interceptors or server request + interceptors. There are three possible ProcessingMode values: + + - LOCAL_AND_REMOTE (the default) + - LOCAL_ONLY + - REMOTE_ONLY + + The policy is used during the dispatching of a CORBA request. + It comes into play for remote requests as well as collocated + (thru-poa) requests. When the policy value is something other + than the default value, the interception points on the + corresponding interceptor may or may not be invoked. For the + LOCAL_ONLY policy value, the interception points are only invoked + on the interceptor if the request is a collocated (thru-poa) + request. If it is a remote request, the LOCAL_ONLY policy value + causes the interceptor to not apply to the current request. + The REMOTE_ONLY has the opposite effect - only remote requests + cause the interception points to be invoked in the interceptor. + + * tao/IORInterceptor/IORInterceptor_Details.cpp: + * tao/IORInterceptor/IORInterceptor_Details.h: + * tao/IORInterceptor/IORInterceptor_Details.inl: + * tao/PI/ClientRequestDetails.cpp: + * tao/PI/ClientRequestDetails.h: + * tao/PI/ClientRequestDetails.inl: + * tao/PI/PI_ORBInitializer.cpp: + * tao/PI/PI_ORBInitializer.h: + * tao/PI/PI_PolicyFactory.cpp: + * tao/PI/PI_PolicyFactory.h: + * tao/PI/ProcessingModePolicy.cpp: + * tao/PI/ProcessingModePolicy.h: + * tao/PI/ProcessingModePolicy.pidl: + * tao/PI/ProcessingModePolicyC.cpp: + * tao/PI/ProcessingModePolicyC.h: + * tao/PI/ProcessingModePolicyS.h: + * tao/PI_Server/ServerRequestDetails.cpp: + * tao/PI_Server/ServerRequestDetails.h: + * tao/PI_Server/ServerRequestDetails.inl: + + The files listed above have been added as part of the + the new PI Policy support (including the new + PI ProcessingModePolicy). + + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Client_Task.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Client_Task.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Collocated_Test.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Echo_Collocated_ORBInitializer.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Echo_Collocated_ORBInitializer.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/interceptors.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/interceptors.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/PI_ProcMode_Collocated.mpc: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/run_test.pl: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Server_Task.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/Server_Task.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/test_i.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/test.idl: + * tests/Portable_Interceptors/Processing_Mode_Policy/Collocated/test_i.h: + + The files listed above make up a new "collocated" test for the + new PortableInterceptor::ProcessingModePolicy "feature". + + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/client_interceptor.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/client_interceptor.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/client_main.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Client_Task.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Client_Task.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Echo_Client_ORBInitializer.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Echo_Client_ORBInitializer.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Echo_Server_ORBInitializer.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Echo_Server_ORBInitializer.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/PI_ProcMode_Remote.mpc: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/run_test.pl: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/server_interceptor.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/server_interceptor.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/server_main.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Server_Task.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/Server_Task.h: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/test_i.cpp: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/test.idl: + * tests/Portable_Interceptors/Processing_Mode_Policy/Remote/test_i.h: + + The files listed above make up a new "remote" test for the + new PortableInterceptor::ProcessingModePolicy "feature". + + * tao/PortableServer/Upcall_Wrapper.cpp: + + The Upcall_Wrapper class was modified to fix a bug that + was observed while testing the new ProcessingModePolicy. + The server request portable interceptors were being supplied + with a ServerRequestInfo object that referenced uninitialized + operation arguments in the collocated (thru_poa) case. + + * tao/PI/ClientRequestInfo.cpp: + + During testing of the new ProcessingModePolicy, another bug + was observed. Client request interceptors were not getting + the proper "result argument" (both collocated and remote cases). + The changes made to the tao/PI/ClientRequestInfo.cpp file fixes + this bug. + + * tao/ClientRequestInterceptor_Adapter.h: + * tao/Collocated_Invocation.cpp: + * tao/IORInterceptor_Adapter.h: + * tao/Invocation_Base.cpp: + * tao/Invocation_Base.h: + * tao/Invocation_Base.inl: + * tao/ORB_Core.cpp: + * tao/ORB_Core.h: + * tao/Remote_Invocation.cpp: + * tao/ServerRequestInterceptor_Adapter.h: + * tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp: + * tao/IORInterceptor/IORInterceptor_Adapter_Impl.h: + * tao/PI/ClientRequestInterceptor_Adapter_Impl.cpp: + * tao/PI/ClientRequestInterceptor_Adapter_Impl.h: + * tao/PI/Interceptor_List_T.cpp: + * tao/PI/Interceptor_List_T.h: + * tao/PI/ORBInitInfo.cpp: + * tao/PI/ORBInitInfo.h: + * tao/PI/ORBInitInfo.pidl: + * tao/PI/ORBInitInfoC.cpp: + * tao/PI/ORBInitInfoC.h: + * tao/PI/ORBInitInfoS.h: + * tao/PI/PI.cpp: + * tao/PI_Server/ServerInterceptorAdapter.cpp: + * tao/PI_Server/ServerInterceptorAdapter.h: + + The files listed above were modified as part of the + changes made to support policies at PI registration-time + and the new PI ProcessingModePolicy. + + * tests/Portable_Interceptors/Collocated/Dynamic/test_i.cpp: + + Added a sleep before the shutdown to allow the client thread to + complete the collocated call before shutting down the ORB to avoid + BAD_INV_ORDER exceptions on fast multi-processor machines. + +Thu Dec 22 14:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/RTCORBA/Dynamic_Thread_Pool/client.cpp: + Fixed variable not used warning + +Thu Dec 22 12:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/RTCORBA/Dynamic_Thread_Pool/*.mpc: + Shortened filename to fix fuzz error + +Wed Dec 21 13:06:53 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Use TAO_ENABLE_MINIMUM_CORBA macro instead of explicitly setting + BUILD_MINIMUM_CORBA automake conditional to false. + + * m4/tao.m4: + + New file, autoconf macros for TAO-specific feature tests. + + Added TAO_ENABLE_MINIMUM_CORBA autoconf macro. Configuring with + --enable-minimum-corba will set the BUILD_MINIMUM_CORBA automake + conditional. + + * configure.ac: + * Makefile.am: + + Look for automake macro files (*.m4) in ../m4 and ./m4. + +Wed Dec 21 12:08:57 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp: + + Changed TAO_Log_Constraint_Visitor constructor to use + ACE_CString constructors that don't copy or take ownership of + the string, this allows us to wrap string literals for use as + map bindings with as little overhead as possible. + + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.h: + + Changed lock strategy of property_lookup_map_ from + TAO_SYNCH_MUTEX to ACE_Null_Mutex, since all accesses to the map + are already protected at a higher level. + + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp: + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.h: + + Explicitly set the size of the property_lookup_map_ to 31 hash + buckets. A typical log record has very few if any attributes, + the cost of allocating the default (1024 hash bucket) size map + outweighs any benefits of fewer hash collisions. + +Wed Dec 21 19:28:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Servant_Upcall.cpp: + No need to store the TAO_Adapter in an intermediate variable + + * examples/Load_Balancing_persistent/Load_Balancer_i.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Profile.cpp: + Fixed 64bit conversion warning + + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp: + Initialise pointer with 0 and removed some debugging statements that + appear always and don't add a value to the log + + * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp: + Removed some old comments + + * tao/orbconf.h: + Did some cleanup, removed TAO_USE_SEQUENCE_TEMPLATES, + TAO_MAXIMUM_NATIVE_TYPE_SIZE, TAO_MAX_TRANSPORT_REREAD_ATTEMPTS. + I couldn't find these throughtout all the code. + +Wed Dec 21 11:03:25 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * TAO_IDL/ast/ast_expression.cpp: + * TAO_IDL/include/ast_expression.h: + + If !ACE_LACKS_LONGLONG_T, perform operations on CORBA::LongLong + and CORBA::ULongLong types using 64 bit arithmetic. Previously + this was done with doubles (53 bit mantissa) for '+', '-', '*'; + or disallowed for the other operators. + + * TAO_IDL/ast/ast_expression.cpp: + * TAO_IDL/include/ast_expression.h: + + Add EvalKind parameter to ::eval_bin_op and ::eval_mod_op so + that operations can be done in terms of the given type. + + * TAO_IDL/ast/ast_expression.cpp: + + Remove handling of '%' operator in AST_Expression::eval_bin_op() + as it is handled by AST_Expression::eval_mod_op(). + +Wed Dec 21 18:50:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Trader/constraint.l: + * orbsvcs/orbsvcs/Trader/Constraint_l.cpp: + * tao/RTPortableServer/RT_Collocation_Resolver.cpp: + Use true and false for booleans + +Wed Dec 21 18:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2328_Regression/*: + Added new regression for bug 2328. When having a client without + codeset support and a server with, sending multiple strings in one + invocation caused a crash with x.4.7. A retest just before the + release of x.4.8 proved things where fixed already, just putting + the regression into the repo to make sure we don't get this bug + back. + +Wed Dec 21 16:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Leader_Follower.cpp: + Use prefix increment/decrement instead of postfix + + * tao/Object.cpp: + Made lazy_strategy a real bool instead of an int + + * tao/CSD_ThreadPool/CSD_TP_Strategy.{h,inl}: + Made num_threads a long to fix 64bit conversion warnings + + * tao/RTPortableServer/RT_Servant_Dispatcher.cpp: + Initialise pointer with 0 + + * tests/IDL_Test/array.idl: + Added some bound array types + + * tests/IDL_Test/interface.idl: + Added an empty local interface + + * tests/IDL_Test/sequence.idl: + Added a sequence of local interfaces + + * tests/RTCORBA/Dynamic_Thread_Pool/*: + Added new test to show dynamic thread pools with the idle timeout + functionality + +Tue Dec 20 08:04:30 2005 Simon McQueen <sm@prismtech.com> + + * TAO version 1.4.8 released. + +Fri Dec 16 18:06:27 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/driver/drv_args.cpp: + + Added missing code that sets versioned namespace opening and + closing text. + + * TAO_IDL/be/be_visitor_union/any_op_ch.cpp: + + Fixed typo that caused generated versioned namespace to be + reopened before it was closed. + + * orbsvcs/orbsvcs/AV.mpc: + * orbsvcs/orbsvcs/CosConcurrency.mpc: + * orbsvcs/orbsvcs/CosEvent.mpc: + * orbsvcs/orbsvcs/CosLifeCycle.mpc: + * orbsvcs/orbsvcs/CosLoadBalancing.mpc: + * orbsvcs/orbsvcs/CosNaming.mpc: + * orbsvcs/orbsvcs/CosNotification.mpc: + * orbsvcs/orbsvcs/CosProperty.mpc: + * orbsvcs/orbsvcs/CosTime.mpc: + * orbsvcs/orbsvcs/CosTrading.mpc: + * orbsvcs/orbsvcs/DsEventLogAdmin.mpc: + * orbsvcs/orbsvcs/DsLogAdmin.mpc: + * orbsvcs/orbsvcs/DsNotifyLogAdmin.mpc: + * orbsvcs/orbsvcs/FTORB.mpc: + * orbsvcs/orbsvcs/FaultTolerance.mpc: + * orbsvcs/orbsvcs/FtRtEvent.mpc: + * orbsvcs/orbsvcs/HTIOP.mpc: + * orbsvcs/orbsvcs/PortableGroup.mpc: + * orbsvcs/orbsvcs/RTCosScheduling.mpc: + * orbsvcs/orbsvcs/RTEvent.mpc: + * orbsvcs/orbsvcs/RTEventLogAdmin.mpc: + * orbsvcs/orbsvcs/RTSched.mpc: + * orbsvcs/orbsvcs/RT_Notification.mpc: + * orbsvcs/orbsvcs/SSLIOP.mpc: + * orbsvcs/orbsvcs/Security.mpc: + * orbsvcs/orbsvcs/Svc_Utils.mpc: + + Core orbsvcs stubs/skeletons must have ability to support + versioned namespaces. IDL-capable MPC projects now inherit from + the "tao_versioning_idl_defaults" MPC base project. + + * tao/CONV_FRAME.pidl: + * tao/CharSeq.pidl: + * tao/Current.pidl: + * tao/Domain.pidl: + * tao/DoubleSeq.pidl: + * tao/FloatSeq.pidl: + * tao/GIOP.pidl: + * tao/IIOP.pidl: + * tao/AnyTypeCode/AnySeq.pidl: + * tao/AnyTypeCode/Bounds.pidl: + * tao/AnyTypeCode/Dynamic.pidl: + * tao/AnyTypeCode/Dynamic_Parameter.pidl: + * tao/AnyTypeCode/ValueModifier.pidl: + * tao/AnyTypeCode/Visibility.pidl: + * tao/BiDir_GIOP/BiDirPolicy.pidl: + * tao/CSD_Framework/CSD_Framework.pidl: + * tao/CodecFactory/IOP_Codec.pidl: + * tao/CodecFactory/IOP_Codec_include.pidl: + * tao/DynamicAny/DynamicAny.pidl: + * tao/IFR_Client/IFR_Base.pidl: + * tao/IFR_Client/IFR_Basic.pidl: + * tao/IFR_Client/IFR_Components.pidl: + * tao/IFR_Client/IFR_Extended.pidl: + + Added versioned namespace related TAO_IDL command line options + to the stub/skeleton generation documentation. + + * tests/Param_Test/results.h: + + Wrap forward declaration of class in CORBA namespace within a + TAO versioned namespace since the core TAO library does so. + +Thu Dec 15 16:19:48 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_valuetype.cpp: + * TAO_IDL/be/be_visitor_arg_traits.cpp: + * TAO_IDL/be/be_visitor_traits.cpp: + * TAO_IDL/be/be_visitor_array/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_array/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_array/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_enum/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_enum/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_enum/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_exception/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_exception/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_exception/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_root/root.cpp: + * TAO_IDL/be/be_visitor_root/root_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp: + * TAO_IDL/be/be_visitor_union/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_union/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuebox/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuebox/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuebox/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuebox/cdr_op_cs.cpp: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/driver/drv_args.cpp: + + Added ability to set "versioned" namespace opening and closing + text. Addresses problem where applications that do not enable + versioned namespace support in their own code need not get + "versioned" stubs/skeletons. + +Tue Dec 13 12:13:26 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * COPYING: Updated this file to mention compliance issues wrt the + new "The Energy Policy Act of 2005". Thanks to Malcolm Spence + for providing this. + +Wed Dec 14 09:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Borland/README: + Updated contact information + +Tue Dec 13 13:35:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/string_traits_base.hpp: + Removed static from the declaration of empty to fix VxWorks warnings + +Tue Dec 13 12:55:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Notify/Discarding/notify.conf: + Use DispatchingThreads instead of ListeningThreads, the last one + is deprecated + +Tue Dec 13 12:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/examples/Notify/Subscribe/Notify_Subscribe.mpc: + Set exename to Subscribe to match the run_test perl script + +Tue Dec 13 12:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/Notify_Service/Notify_Service.cpp (shutdown): + Only unbind from the naming service when we have a valid object + reference to it. + +Tue Dec 13 10:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Codeset_Manager_Factory_Base.h: + Fixed typo in comment + +Tue Dec 13 09:27:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Shutdown_Utilities.{h,cpp}: + The vc8 runtime seems to check wether a signal number is a valid + one, if not it asserts. The Shutdown_Utilities where just + calling remove_handler for all signal numbers, changed this to just + call it for the signals we registered. This way we can end the + orbsvcs executable with ctrl-c again. + +Mon Dec 12 15:20:10 2005 <ossama@dre.vanderbilt.edu> + + * orbsvcs/Notify_Service/Notify_Service.mpc: + + Disable NT_Notify_Service project in ace_for_tao configuration. + It depends on ace/NT_Service.*, which is currently not part of + the ace_for_tao subset. + + * examples/Load_Balancing/Load_Balancing.mpc: + + Disable in ace_for_tao configuration. It requires ACE_DLList, + which is not part of the ace_for_tao subset. + +Mon Dec 12 09:35:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB_Core.cpp: + Minor formatting improvement in debug logging + +Sun Dec 11 17:39:54 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.cpp: + + Added sleep before client call done(). This is workaround with + the problem that some oneway requests lost when the server has + multiple orb threads. + +Fri Dec 9 16:36:27 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_Statistics.cpp: + + Made actual_vs_expected() dump more details with the failure. + +Fri Dec 9 21:48:48 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/Array_VarOut_T.h: + * tao/Array_VarOut_T.inl: + + In the TAO_Array_Forany_T<> template class: + + - Changed initialization values for the CORBA::Boolean + nocopy_ member from '0' to 'false'. + + - Removed the 'const' qualifier from the nocopy_ member. + This member gets assigned to in the class assignment + operator, and because of this, tools like insure++ + complain. It's a mystery why C++ compilers don't + complain as well. This fix closes [BUGID:2326]. Thanks + to Brian Buesker <bbuesker@qualcomm.com> for reporting + the problem. + +Thu Dec 8 16:37:06 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * examples/RTCORBA/Activity/Activity.mpc: + + Do not override "macros" variable. Add to it instead. Fixes + problem where versioned namespace preprocessor symbols were not + added to generated Makefiles/projects. + + * examples/RTCORBA/Activity/Activity.h: + * examples/RTCORBA/Activity/Builder.h: + * examples/RTCORBA/Activity/Job_i.h: + * examples/RTCORBA/Activity/POA_Holder.h: + * examples/RTCORBA/Activity/Periodic_Task.h: + * examples/RTScheduling/Job_i.h: + * examples/RTScheduling/POA_Holder.h: + * examples/Simple/bank/AccountManager_i.h: + + Fixed versioned namespace support. + +Thu Dec 8 14:19:52 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlert_Handler.h: + + Fixed versioned namespace support. The versioning macros calls + were missing. + +Thu Dec 8 20:24:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * interop-tests/wchar/interop_wchar.mpc: + * examples/PluggableUDP/tests/Basic/Basic.mpc: + * examples/PluggableUDP/tests/SimplePerformance/SimplePerformance.mpc: + * examples/POA/Default_Servant/POA_Default_Servant.mpc: + * examples/POA/DSI/POA_DSI.mpc: + * examples/Content_Server/AMI_Iterator/AMI_Iterator.mpc: + * examples/Content_Server/AMI_Observer/AMI_Observer.mpc: + * examples/Content_Server/SMI_Iterator/SMI_Iterator.mpc: + * examples/Buffered_Oneways/Buffered_Oneways.mpc: + * examples/Buffered_AMI/Buffered_AMI.mpc: + Added 'after += ...' lines to files where projects share one or + more IDL files. + +Thu Dec 8 13:10:42 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl: + + Commented the client command line output previously added for + debugging. + +Thu Dec 8 07:17:36 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/Asynch_Queued_Message.h: + * tao/default_server.h: + * tao/PortableServer/Operation_Table_Binary_Search.h: + + Fixed versioned namespace support. The versioning macros calls + were missing. + +Thu Dec 8 06:54:31 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/examples/LoadBalancing/ServerRequestInterceptor.h: + + Fixed versioned namespace build errors, predominantly caused by + forwared declarations not being placed within the appropriate + {ACE,TAO}_{BEGIN,END}_VERSIONED_NAMESPACE_DECL block. + +Thu Dec 8 06:45:36 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/OctetSeq/OctetSeq.mpc: + * performance-tests/Anyop/Anyop.mpc: + * performance-tests/POA/Create_Reference/Create_Reference.mpc: + * performance-tests/POA/Implicit_Activation/Implicit_Activation.mpc: + * performance-tests/POA/Object_Creation_And_Registration/Object_Creation_And_Registration.mpc: + * performance-tests/Protocols/Protocols.mpc: + * performance-tests/RTCorba/Thread_Pool/Thread_Pool.mpc: + + Disable these projects when "ace_for_tao" is enabled. + +Wed Dec 7 19:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp: + Workaround for Borland is also needed for BSD2006 + +Wed Dec 7 18:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/CSD_Strategy/ThreadPool/CSD_Test_ThreadPool.mpc: + * examples/CSD_Strategy/ThreadPool2/CSD_Test_ThreadPool2.mpc: + * examples/CSD_Strategy/ThreadPool3/CSD_Test_ThreadPool3.mpc: + * examples/CSD_Strategy/ThreadPool3/CSD_Test_ThreadPool5.mpc: + * examples/CSD_Strategy/ThreadPool3/CSD_Test_ThreadPool6.mpc: + Added 'after += ...' lines to files where projects share one or + more IDL files. + + * examples/CSD_Strategy/ThreadPool4/CSD_Test_ThreadPool4.mpc: + Simplified + +Wed Dec 7 05:43:53 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/Connection_Timeout/Connection_Timeout.mpc: + * tests/Hang_Shutdown/Hang.mpc: + * tests/Param_Test/Param_Test.mpc: + + Disable these projects when "ace_for_tao" is enabled. + +Wed Dec 7 10:59:55 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_Statistics.cpp: + + Added more logging in test results checking to help debug the + TP_Test_3 failure on RHEL3_Minimum build. + + * tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.h: + + Removed the ACE_Atomic_Op for num_callbacks_ data member since the + CSD synchronizes the request dispatching. + +Wed Dec 7 17:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Bug_2316_Regression/Bug_2316_Regression.mpc: + * examples/POA/Forwarding/POA_Forwarding.mpc: + * examples/Kokyu_dsrt_schedulers/mif_example/mif_example.mpc: + Added 'after += ...' lines to files where projects share one or + more IDL files. + +Wed Dec 7 12:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Trader/Trader.h: + Work around for TAO_Lockable is also needed for BCB2006 Update 1 + +Tue Dec 6 21:16:05 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/performance-tests/LoadBalancing/LBPerf/RPS/ServerRequestInterceptor.h: + * orbsvcs/tests/Notify/lib/Activation_Manager.h: + * orbsvcs/tests/Notify/lib/Command.h: + * orbsvcs/tests/Notify/lib/EventChannel_Command.h: + * orbsvcs/tests/Notify/lib/Options_Parser.cpp: + * orbsvcs/tests/Notify/lib/Options_Parser.h: + * orbsvcs/tests/Notify/lib/Peer.h: + * orbsvcs/tests/Notify/lib/Periodic_Consumer.h: + * orbsvcs/tests/Notify/lib/Periodic_Supplier.h: + + Fixed versioned namespace build errors, predominantly caused by + forwared declarations not being placed within the appropriate + {ACE,TAO}_{BEGIN,END}_VERSIONED_NAMESPACE_DECL block. + +Tue Dec 6 14:55:41 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_3/ServerApp.cpp: + + Added debug message to help debugging the problem of + "<server_main> failed: No such file or directory". + +Tue Dec 6 15:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Bug_2285_Regression/Bug_2285_Regression.mpc: + Added 'after += ...' lines to files where projects share one or + more IDL files. + +Tue Dec 6 15:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Security/BiDirectional/client.cpp: + * orbsvcs/tests/Security/BiDirectional/test_i.cpp: + Fixed 64bit conversion warnings + +Tue Dec 6 08:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Bug_2287_Regression/Bug_2287_Regression.mpc: + * examples/OBV/Typed_Events/Typed_Events.mpc: + * examples/Load_Balancing/Load_Balancing.mpc: + Added 'after += ...' lines to files where projects share one or + more IDL files. + +Tue Dec 6 08:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Trader/Trader.h: + Also with BDS2006 we need to export the TAO_Lockable class as + workaround. Reported this to Borland, hopefully they will fix + this soon + +Mon Dec 5 19:43:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Bug_2137_Regression/client.cpp: + Added include of PI/PI.h to fix test failures in static builds + +Mon Dec 5 14:58:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/releasenotes/index.html: + Small improvements + +Sun Dec 4 11:34:11 2005 William Otte <wotte@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/Notify/XML_Loader.cpp + + Moved definition of TOPOLOGY_ID_NAME earier in the file to avoid + undefined argument error. + +Sun Dec 4 11:14:45 2005 William Otte <wotte@dre.vanderbilt.edu> + + * TAO_IDL/be/be_helper.cpp + + Fixed an unused arg warning. + +Sat Dec 3 20:54:28 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/orbsvcs/Notify/XML_Loader.cpp: Moved the namespace decl + for TOPOLOGY_ID_NAME inside the VERSIONED_NAMESPACE_DECL block + to fix broken versioned namespace builds. Thanks to Ossama for + pointing this out. + +Sat Dec 3 19:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/QtTests/QtTests.mpc: + Added anytypecode to the client project + +Sat Dec 3 09:43:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/IDL_Test/constants.idl: + Removed the wstring constants for the time being, cause issues + with some builds that lack wchar_t support + +Fri Dec 2 16:18:15 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/tests/Notify/performance-tests/RedGreen/RedGreen_Test.cpp (DTOR): + Add try/catch block around call to ec->destroy() because it + seems that often in this test the EC is gone by the time + destroy() gets called. This raises a COMM_FAILURE which now + gets caught and noticed printed. We also now catch and print + any exception raised in the DTOR since there's little chance of + doing anything about it, and at least this way we get + information. + +Fri Dec 2 10:26:33 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/orbsvcs/Notify/XML_Topology_Factory.h: Added 'extern' + declaration in here as this seems to placate the VC8 compiler's + errors. + +Fri Dec 2 11:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/SSLIOP/params_dup.h: + Added missing include of ace/pre.h + +Fri Dec 2 11:12:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_1627_Regression/test.mpc: + * tests/Bug_1551_Regression/test.mpc: + * tests/Bug_1482_Regression/test.mpc: + * tests/Bug_1627_Regression/Bug_1627_Regression.mpc: + * tests/Bug_1551_Regression/Bug_1551_Regression.mpc: + * tests/Bug_1482_Regression/Bug_1482_Regression.mpc: + Renamed test.mpc to a more specific name to fix duplicate errors + in the MPC generation + +Fri Dec 2 11:05:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/IDL_Test/constants.idl: + Added several wstring constants for test + +Fri Dec 2 01:35:31 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/Makefile.am: + * orbsvcs/orbsvcs/SSLIOP/params_dup.c: + * orbsvcs/orbsvcs/SSLIOP/params_dup.cpp: + + Reintroduced `params_dup.c' and removed `params_dup.cpp' file. + Some C++ compiler/platform combinations cannot handle the broken + OpenSSL function pointer conversions. Stick with a C compiler. + + * orbsvcs/orbsvcs/SSLIOP/params_dup.h: + + Include the new "ace/config-macros.h" header instead of + "ace/config-lite.h". The former can be parsed by C compilers. + + * tao/TAO_Singleton_Manager.cpp: + * tao/TAO_Singleton_Manager.h: + + Moved static "instance_" pointer to an anonymous namespace + within the implementation file. Allows the friend declaration + to be removed, in turn fixing builds that cannot handle the + global scope qualifier prepended to that friend declaration. + + Removed unused "preallocated_object" static array. + + * tao/Versioned_Namespace.h: + + Update preprocessor check to use new config-macros.h specific + include guard preprocessor symbol. + +Thu Dec 1 08:07:23 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * TAO-INSTALL.html: Updated this file for VxWorks. + Thanks to Nathan Anderson <nathan dot l dot anderson at lmco dot + com> for these suggestions. + +Thu Dec 1 20:17:29 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/orbsvcs/Notify/Topology_Object.h: + * orbsvcs/orbsvcs/Notify/Topology_Object.cpp: + + Removed TOPOLOGY_ID from here. It should have been nmoved when + the persistence stuff was broken into a separate library. + + * orbsvcs/orbsvcs/Notify/XML_Loader.cpp: + * orbsvcs/orbsvcs/Notify/XML_Saver.cpp: + * orbsvcs/orbsvcs/Notify/XML_Topology_Factory.cpp: + + Moved TOPOLOGY_ID into here since that's all that uses it. + +Thu Dec 1 12:08:17 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/orbsvcs/Notify/Object.h: Revert previous change as it + apparently confused Borland BC6. + + * orbsvcs/orbsvcs/Notify/Topology_Object.*: + * orbsvcs/orbsvcs/Notify/Reconnection_Registry.*: + + Changed manifest constants for TOPOLOGY_ID_NAME, REGISTRY_TYPE, + RECONNECT_ID, RECONNECT_IOR, and REGISTRY_CALLBACK_TYPE from + statics within the namespace to being declared in the namespace + in the header, but defined in the .cpp file. This de-warns on + OS X Tiger G++ 3.3 builds, but may also have a minor reduction + in footprint everywhere since now there will be only one + instance of these rather than an instance everywhere the + relevant header gets #included. + +Thu Dec 1 18:10:48 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/AMH_Exceptions/AMH_Exceptions.mpc: + * tests/AMH_Oneway/AMH_Oneway.mpc: + * tests/AMI_Buffering/AMI_Buffering.mpc: + * tests/Abstract_Interface/Abstract_Interface.mpc: + * tests/Any/Recursive/RecursiveHello.mpc: + * tests/BiDirectional/BiDirectional.mpc: + * tests/BiDirectional_NestedUpcall/BiDir_NestedUpcall.mpc: + * tests/Big_AMI/Big_AMI.mpc: + * tests/Big_Oneways/Big_Oneways.mpc: + * tests/Big_Reply/Big_Reply.mpc: + * tests/Big_Request_Muxing/Big_Request_Muxing.mpc: + * tests/Big_Twoways/Big_Twoways.mpc: + * tests/Blocking_Sync_None/Blocking_Sync_None.mpc: + * tests/Bug_1020_Basic_Regression/Bug_1020_Basic_Regression.mpc: + * tests/Bug_1269_Regression/Bug_1269_Regression.mpc: + * tests/Bug_1270_Regression/Bug_1270_Regression.mpc: + * tests/Bug_1330_Regression/Bug_1330_Regression.mpc: + * tests/Bug_1361_Regression/Bug_1361_Regression.mpc: + * tests/Bug_1476_Regression/Bug_1476_Regression.mpc: + * tests/Bug_1482_Regression/test.mpc: + * tests/Bug_1495_Regression/Bug_1495.mpc: + * tests/Bug_1551_Regression/test.mpc: + * tests/Bug_1568_Regression/Bug_1568_Regression.mpc: + * tests/Bug_1627_Regression/test.mpc: + * tests/Bug_2174_Regression/Bug_2174_Regression.mpc: + * tests/Bug_2183_Regression/Bug_2183_Regression.mpc: + * tests/Bug_2234_Regression/Bug_2234_Regression.mpc: + * tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Lib.mpc: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/CSD_TP_Test_Dynamic.mpc: + * tests/CSD_Strategy_Tests/TP_Test_Static/CSD_TP_Test_Static.mpc: + * tests/Cache_Growth_Test/Cache_Growth_Test.mpc: + * tests/CallbackTest/CallbackTest.mpc: + * tests/Client_Leaks/Client_Leaks.mpc: + * tests/Collocation/Collocation.mpc: + * tests/Connect_Strategy_Test/Connect_Strategy_Test.mpc: + * tests/Connection_Purging/Connection_Purging.mpc: + * tests/Crash_On_Write/Crash_On_Write.mpc: + * tests/Crashed_Callback/Crashed_Callback.mpc: + * tests/DLL_ORB/DLL_ORB.mpc: + * tests/DSI_Gateway/DSI_Gateway.mpc: + * tests/Explicit_Event_Loop/Explicit_Event_Loop.mpc: + * tests/Exposed_Policies/Exposed_Policies.mpc: + * tests/FL_Cube/FL_Cube.mpc: + * tests/Faults/Faults.mpc: + * tests/File_IO/File_IO.mpc: + * tests/Forwarding/Forwarding.mpc: + * tests/Hang_Shutdown/Hang.mpc: + * tests/Hello/Hello.mpc: + * tests/ICMG_Any_Bug/Hello.mpc: + * tests/IPV6/IPV6_Hello.mpc: + * tests/InterOp-Naming/InterOp-Naming.mpc: + * tests/Leader_Followers/Leader_Followers.mpc: + * tests/LongUpcalls/LongUpcalls.mpc: + * tests/MProfile/MProfile.mpc: + * tests/MProfile_Connection_Timeout/MProfile_Connection_Timeout.mpc: + * tests/MProfile_Forwarding/MProfile_Forwarding.mpc: + * tests/MT_BiDir/MT_BiDir.mpc: + * tests/MT_Client/MT_Client.mpc: + * tests/MT_Server/MT_Server.mpc: + * tests/Multiple/Multiple.mpc: + * tests/Multiple_Inheritance/Multiple_Inheritance.mpc: + * tests/Muxed_GIOP_Versions/Muxed_GIOP_Versions.mpc: + * tests/Muxing/Muxing.mpc: + * tests/Native_Exceptions/Native_Exceptions.mpc: + * tests/NestedUpcall/MT_Client_Test/MT_Client_Test.mpc: + * tests/NestedUpcall/Triangle_Test/TT.mpc: + * tests/Nested_Event_Loop/Nested_Event_Loop.mpc: + * tests/No_Server_MT_Connect_Test/No_Server_Connect_Test.mpc: + * tests/OBV/Any/OBV_Any.mpc: + * tests/OBV/Factory/OBV_Factory.mpc: + * tests/OBV/Forward/OBV_Forward.mpc: + * tests/OBV/Supports/Supports_Test.mpc: + * tests/OBV/TC_Alignment/OBV_TC_Alignment.mpc: + * tests/OBV/ValueBox/valuebox.mpc: + * tests/Object_Loader/Object_Loader.mpc: + * tests/Objref_Sequence_Test/Objref_Sequence_Test.mpc: + * tests/OctetSeq/OctetSeq.mpc: + * tests/Oneway_Buffering/Oneway_Buffering.mpc: + * tests/Oneways_Invoking_Twoways/Oneways_Invoking_Twoways.mpc: + * tests/POA/Persistent_ID/Persistent_ID.mpc: + * tests/Param_Test/Param_Test.mpc: + * tests/Portable_Interceptors/AMI/PI_AMI.mpc: + * tests/Portable_Interceptors/Benchmark/PI_Benchmark.mpc: + * tests/Portable_Interceptors/Bug_1559/Bug_1559.mpc: + * tests/Portable_Interceptors/Dynamic/PI_Dynamic.mpc: + * tests/Portable_Interceptors/IORInterceptor/PI_IORInterceptor.mpc: + * tests/Portable_Interceptors/ORB_Shutdown/PI_ORB_Shutdown.mpc: + * tests/Portable_Interceptors/PICurrent/PI_PICurrent.mpc: + * tests/Portable_Interceptors/Request_Interceptor_Flow/PI_Request_Interceptor_Flow.mpc: + * tests/Portable_Interceptors/Service_Context_Manipulation/PI_Svc_Context_Manip.mpc: + * tests/QtTests/QtTests.mpc: + * tests/RTCORBA/Banded_Connections/RTCORBA_Banded_Conn.mpc: + * tests/RTCORBA/Client_Propagated/RTCORBA_Client_Propagated.mpc: + * tests/RTCORBA/Client_Protocol/RTCORBA_Client_Protocol.mpc: + * tests/RTCORBA/Diffserv/RTCORBA_Diffserv.mpc: + * tests/RTCORBA/Explicit_Binding/RTCORBA_Explicit_Binding.mpc: + * tests/RTCORBA/Persistent_IOR/RTCORBA_Persistent_IOR.mpc: + * tests/RTCORBA/Policy_Combinations/RTCORBA_Policy_Combinations.mpc: + * tests/RTCORBA/Priority_Inversion_With_Bands/Priority_Inversion_With_Bands.mpc: + * tests/RTCORBA/Profile_And_Endpoint_Selection/PaE_Selection.mpc: + * tests/RTCORBA/Server_Declared/RTCORBA_Server_Declared.mpc: + * tests/RTCORBA/Server_Protocol/RTCORBA_Server_Protocol.mpc: + * tests/RTCORBA/Thread_Pool/RTCORBA_Thread_Pool.mpc: + * tests/RTScheduling/Scheduling_Interceptor/Scheduler_Interceptor.mpc: + * tests/Reliable_Oneways/Reliable_Oneways.mpc: + * tests/Server_Connection_Purging/Server_Connection_Purging.mpc: + * tests/Server_Leaks/Server_Leaks.mpc: + * tests/Single_Read/Single_Read.mpc: + * tests/Smart_Proxies/Smart_Proxies.mpc: + * tests/Stack_Recursion/Stack_Recursion.mpc: + * tests/Strategies/Strategies.mpc: + * tests/Timed_Buffered_Oneways/Timed_Buffered_Oneways.mpc: + * tests/Timeout/Timeout.mpc: + * tests/Two_Objects/Two_Objects.mpc: + * tests/UNKNOWN_Exception/UNKNOWN_Exception.mpc: + * tests/Xt_Stopwatch/Xt_Stopwatch.mpc: + + Added 'after += ...' lines to files where projects share one or + more IDL files. This change will order the builds and eliminate + concurrency problems in VC8 builds. This is a temporary solution + until there is time to apply J.T. Conklin's <jtc@acorntoolworks.com> + approach of creating a separate project in each file that just + executes the IDL compiler on the shared files, and ordering all + other projects that build the resulting generated files to + come after this step. + +Thu Dec 1 16:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/RTCORBA/Thread_Pool.cpp: + Fixed bug in thread pool id calculation + +Thu Dec 1 16:02:36 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/MT_Timeout/MT_Timeout.mpc: + + Added 'after' line in one project to order the builds (which + share an IDL file) for VC8. + +Thu Dec 1 14:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO-INSTALL.html: + Updated VxWorks part + +Wed Nov 30 10:23:05 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/performance-tests/RTEvent/lib/Client_Options.h: + * orbsvcs/performance-tests/RTEvent/lib/Low_Priority_Setup.h: + * orbsvcs/performance-tests/RTEvent/lib/RTEC_Initializer.h: + * orbsvcs/performance-tests/RTEvent/lib/Send_Task.h: + * orbsvcs/tests/EC_Throughput/ECT_Driver.h: + * orbsvcs/tests/Event/Basic/BCast.h: + * orbsvcs/tests/Event/Mcast/Common/EC_Wrapper.h: + * orbsvcs/tests/Event/Performance/Latency.h: + * orbsvcs/tests/Event/lib/Driver.h: + * orbsvcs/tests/FT_App/FT_Creator.h: + * orbsvcs/tests/FT_App/TAO_Object_Group_Creator.h: + * orbsvcs/tests/FtRtEvent/PushSupplier.h: + + Fixed forward declarations so that they take into account + versioned namespace support. + +Wed Nov 30 00:33:21 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * examples/Content_Server/AMI_Iterator/AMI_Iterator.mpc: + * examples/Content_Server/AMI_Observer/AMI_Observer.mpc: + * examples/Content_Server/SMI_Iterator/SMI_Iterator.mpc: + * examples/Load_Balancing_persistent/Load_Balancing_persistent.mpc: + * examples/POA/Generic_Servant/POA_Generic_Servant.mpc: + * examples/POA/TIE/POA_TIE.mpc: + * examples/Persistent_Grid/Persistent_Grid.mpc: + * orbsvcs/examples/LoadBalancing/LoadBalancing.mpc: + * orbsvcs/orbsvcs/AV.mpc: + * orbsvcs/tests/EC_Custom_Marshal/EC_Custom_Marshal.mpc: + * orbsvcs/tests/EC_Throughput/EC_Throughput.mpc: + * orbsvcs/tests/ImplRepo/ImplRepo.mpc: + * orbsvcs/tests/InterfaceRepo/Latency_Test/Latency_Test.mpc: + + Disable these projects when "ace_for_tao" is enabled. + + * tao/GIOP_Message_Generator_Parser_Impl.inl: + + Removed "static" keywork from constant variable declaration. + Corrected semantics are not supported in shared libraries on + VxWorks. Thanks to Frank Rehberger for suggesting the change, + and to Johnny for pointing out the VxWorks issue. [Bug 2304] + +Wed Nov 30 14:59:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/RTCORBA/RT_ORB_Loader.cpp: + * tao/RTCORBA/Thread_Pool.{h,cpp}: + Fixed warnings in GCC build + +Wed Nov 30 12:50:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Security/MT_SSLIOP/run_test_heavy.pl: + New regression test script. Test the TAO SSLIOP under heavy load + and it will fail. This test takes a long time to succeed so + didn't put it in the standard test suite. We have no idea why + it fails, but something is buggy in the SSLIOP support + +Wed Nov 30 11:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/RTCORBA/RT_ORB.{h,cpp}: + * tao/RTCORBA/RT_ORB_Loader.cpp: + * tao/RTCORBA/RT_ORBInitializer.{h,cpp}: + * tao/RTCORBA/Thread_Pool.{h,cpp,inl}: + * docs/rtcorba/features.html: + When using RTCorba threadpools dynamic threads can be used, these + will be created on demand but will life forever after that. A new + option has been added to the RT_ORB_Loader: + RTORBDynamicThreadIdleTimeout. With this option a number of micro + seconds can be specified. If a dynamic thread has not performed + anywork in that time it will end itself. This way dynamic threads + can go away if the load reduces again on the server, at the moment + they are needed they are recreated. Because of this some internal + administration has been updated, argument parsing has been updated + and the timeout is passed through several interfacs. + + * docs/releasenotes/index.html: + Fixed RTCorba link + +Wed Nov 30 08:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/RequestProcessingStrategyAOMOnly.h: + Added brief class description + +Tue Nov 29 06:44:35 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h: + * orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp: + * orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.h: + * orbsvcs/FT_ReplicationManager/FT_FaultAnalyzer.cpp: + * orbsvcs/FT_ReplicationManager/FT_FaultAnalyzer.h: + * orbsvcs/FT_ReplicationManager/FT_FaultConsumer.cpp: + * orbsvcs/FT_ReplicationManager/FT_FaultConsumer.h: + * orbsvcs/FT_ReplicationManager/FT_FaultEventDescriptor.cpp: + * orbsvcs/FT_ReplicationManager/FT_FaultEventDescriptor.h: + * orbsvcs/FT_ReplicationManager/FT_Property_Validator.cpp: + * orbsvcs/FT_ReplicationManager/FT_Property_Validator.h: + * orbsvcs/FT_ReplicationManager/FT_ReplicationManager.cpp: + * orbsvcs/FT_ReplicationManager/FT_ReplicationManager.h: + * orbsvcs/FT_ReplicationManager/FT_ReplicationManagerFaultAnalyzer.cpp: + * orbsvcs/FT_ReplicationManager/FT_ReplicationManagerFaultAnalyzer.h: + * orbsvcs/Fault_Detector/FT_FaultDetectorFactory_i.cpp: + * orbsvcs/Fault_Detector/FT_FaultDetectorFactory_i.h: + * orbsvcs/Fault_Detector/Fault_Detector_i.cpp: + * orbsvcs/Fault_Detector/Fault_Detector_i.h: + * orbsvcs/Fault_Notifier/FT_Notifier_i.cpp: + * orbsvcs/Fault_Notifier/FT_Notifier_i.h: + * orbsvcs/ImplRepo_Service/ImR_Locator_i.h: + * orbsvcs/Notify_Service/Notify_Service.h: + * orbsvcs/orbsvcs/ETCL/ETCL_Interpreter.h: + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.cpp: + * orbsvcs/orbsvcs/Notify/Notify_Extensions.h: + + More versioned namespace build fixes. + +Tue Nov 29 13:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/LRU_Connection_Purging_Strategy.cpp: + Use prefix increment instead of postfix + +Tue Nov 29 11:21:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB.h: + Added argument names to perform_work methods, improves doxygen + docu + +Tue Nov 29 09:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/PluggableUDP/tests/Performance/Performance.mpc: + Added 'after' lines to order the builds for VC8. + +Mon Nov 28 22:22:11 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/Nested_Upcall_Crash/Nested_Upcall_Crash.mpc: + * tests/RTCORBA/Linear_Priority/RTCORBA_Linear_Priority.mpc: + + Added 'after' lines to order the builds for VC8. + +Mon Nov 28 12:09:12 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * performance-tests/CSD_Strategy/TestApps/ServerApp.cpp: + * tests/CSD_Strategy_Tests/Broken/ClientApp.cpp: + * tests/CSD_Strategy_Tests/Broken/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_1/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_2/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_3/ClientApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_3/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_4/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Static/ServerApp.cpp: + + Made main thread call ACE_Object_Manager::instance()->wait() + after orb shutdown. This would avoid the problem that the main + thread possiably exit before all CSD threads exit and crash + upon exit. + +Mon Nov 28 07:30:58 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/SSLIOP/params_dup.h: + + Added missing "/**/ between "include" and "{pre,post}.h". + + * tao/Utils/Server_Main.h: + + Fixed "obsolete #pragma once" warning. + +Sun Nov 27 04:00:27 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/Makefile.am: + * orbsvcs/orbsvcs/Scheduler_Factory.cpp: + * orbsvcs/orbsvcs/Scheduler_Factory.h: + * orbsvcs/orbsvcs/Scheduler_Factory.i: + * orbsvcs/orbsvcs/AV/AV_Core.h: + * orbsvcs/orbsvcs/AV/Endpoint_Strategy.h: + * orbsvcs/orbsvcs/AV/Policy.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h: + * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.h: + * orbsvcs/orbsvcs/ETCL/ETCL_l.cpp: + * orbsvcs/orbsvcs/Event/ECG_Adapters.h: + * orbsvcs/orbsvcs/Event/ECG_Mcast_Gateway.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_Sender.h: + * orbsvcs/orbsvcs/Event/EC_ConsumerControl.cpp: + * orbsvcs/orbsvcs/Event/EC_ConsumerControl.h: + * orbsvcs/orbsvcs/Event/EC_Default_Factory.h: + * orbsvcs/orbsvcs/Event/EC_Factory.h: + * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.h: + * orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.cpp: + * orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connector_Impl.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Factory.h: + * orbsvcs/orbsvcs/IFRService/IFR_BaseS.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_BaseS.h: + * orbsvcs/orbsvcs/IFRService/IFR_BaseS.inl: + * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.h: + * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.inl: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS.h: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS.inl: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.h: + * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.inl: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.h: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.inl: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.h: + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.inl: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.h: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.inl: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.h: + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.inl: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.h: + * orbsvcs/orbsvcs/IFRService/ProvidesDef_i.h: + * orbsvcs/orbsvcs/IFRService/PublishesDef_i.h: + * orbsvcs/orbsvcs/Log/BasicLog_i.cpp: + * orbsvcs/orbsvcs/Log/BasicLog_i.h: + * orbsvcs/orbsvcs/Log/Hash_LogStore.h: + * orbsvcs/orbsvcs/Log/Log_Compaction_Handler.h: + * orbsvcs/orbsvcs/Log/Log_Flush_Handler.h: + * orbsvcs/orbsvcs/Naming/Naming_Service_Container.h: + * orbsvcs/orbsvcs/Notify/Factory.h: + * orbsvcs/orbsvcs/Notify/Method_Request_Updates.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request_Updates.h: + * orbsvcs/orbsvcs/Notify/Method_Request_Updates_T.h: + * orbsvcs/orbsvcs/Notify/Property.h: + * orbsvcs/orbsvcs/Notify/Timer.h: + * orbsvcs/orbsvcs/Notify/Timer_Reactor.h: + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_EVP_PKEY.cpp: + * orbsvcs/orbsvcs/SSLIOP/params_dup.c: + * orbsvcs/orbsvcs/SSLIOP/params_dup.cpp: + * orbsvcs/orbsvcs/SSLIOP/params_dup.h: + * orbsvcs/orbsvcs/Trader/Constraint_l.cpp: + * tao/Basic_Types.h: + * tao/TAO_Singleton_Manager.inl: + * tao/AnyTypeCode/String_TypeCode_Traits.h: + * tao/AnyTypeCode/TAOA.h: + * tao/AnyTypeCode/TypeCodeA.cpp: + * tao/AnyTypeCode/TypeCode_Case_Base_T.h: + * tao/AnyTypeCode/TypeCode_Constants.cpp: + * tao/IFR_Client/IFR_BasicC.cpp: + * tao/ImR_Client/ImR_Client.cpp: + * tao/ImR_Client/ImR_Client.h: + * tao/ObjRefTemplate/ORT_Adapter_Factory_Impl.cpp: + * tao/ObjRefTemplate/ORT_Adapter_Factory_Impl.h: + * tao/PI/InvalidSlotA.cpp: + * tao/PI/ORBInitInfoC.cpp: + * tao/PI/ORBInitInfoC.h: + * tao/PI/PICurrentC.cpp: + * tao/PortableServer/IdAssignmentStrategyFactoryImpl.cpp: + * tao/PortableServer/IdAssignmentStrategyFactoryImpl.h: + * tao/PortableServer/IdAssignmentStrategySystem.cpp: + * tao/PortableServer/IdAssignmentStrategySystem.h: + * tao/PortableServer/IdAssignmentStrategyUser.cpp: + * tao/PortableServer/IdAssignmentStrategyUser.h: + * tao/PortableServer/IdUniquenessStrategyFactoryImpl.cpp: + * tao/PortableServer/IdUniquenessStrategyFactoryImpl.h: + * tao/PortableServer/IdUniquenessStrategyMultiple.cpp: + * tao/PortableServer/IdUniquenessStrategyMultiple.h: + * tao/PortableServer/IdUniquenessStrategyUnique.cpp: + * tao/PortableServer/IdUniquenessStrategyUnique.h: + * tao/PortableServer/IdUniquenessStrategyUniqueFactoryImpl.cpp: + * tao/PortableServer/IdUniquenessStrategyUniqueFactoryImpl.h: + * tao/PortableServer/ImplicitActivationStrategyExplicit.cpp: + * tao/PortableServer/ImplicitActivationStrategyExplicit.h: + * tao/PortableServer/ImplicitActivationStrategyFactoryImpl.cpp: + * tao/PortableServer/ImplicitActivationStrategyFactoryImpl.h: + * tao/PortableServer/ImplicitActivationStrategyImplicit.cpp: + * tao/PortableServer/ImplicitActivationStrategyImplicit.h: + * tao/PortableServer/LifespanStrategyFactoryImpl.cpp: + * tao/PortableServer/LifespanStrategyFactoryImpl.h: + * tao/PortableServer/LifespanStrategyPersistentFactoryImpl.cpp: + * tao/PortableServer/LifespanStrategyPersistentFactoryImpl.h: + * tao/PortableServer/LifespanStrategyTransientFactoryImpl.cpp: + * tao/PortableServer/LifespanStrategyTransientFactoryImpl.h: + * tao/PortableServer/Non_Servant_Upcall.h: + * tao/PortableServer/PortableServer.cpp: + * tao/PortableServer/PortableServerA.cpp: + * tao/PortableServer/RequestProcessingStrategyAOMOnlyFactoryImpl.cpp: + * tao/PortableServer/RequestProcessingStrategyAOMOnlyFactoryImpl.h: + * tao/PortableServer/RequestProcessingStrategyDefaultServantFI.cpp: + * tao/PortableServer/RequestProcessingStrategyDefaultServantFI.h: + * tao/PortableServer/RequestProcessingStrategyFactoryImpl.cpp: + * tao/PortableServer/RequestProcessingStrategyFactoryImpl.h: + * tao/PortableServer/RequestProcessingStrategyServantActivatorFI.cpp: + * tao/PortableServer/RequestProcessingStrategyServantActivatorFI.h: + * tao/PortableServer/RequestProcessingStrategyServantLocatorFI.cpp: + * tao/PortableServer/RequestProcessingStrategyServantLocatorFI.h: + * tao/PortableServer/ServantRetentionStrategyFactory.h: + * tao/PortableServer/ServantRetentionStrategyFactoryImpl.cpp: + * tao/PortableServer/ServantRetentionStrategyFactoryImpl.h: + * tao/PortableServer/ServantRetentionStrategyNonRetainFactoryImpl.cpp: + * tao/PortableServer/ServantRetentionStrategyNonRetainFactoryImpl.h: + * tao/PortableServer/ServantRetentionStrategyRetainFactoryImpl.cpp: + * tao/PortableServer/ServantRetentionStrategyRetainFactoryImpl.h: + * tao/PortableServer/StrategyFactory.h: + * tao/PortableServer/ThreadStrategyFactoryImpl.cpp: + * tao/PortableServer/ThreadStrategyFactoryImpl.h: + * tao/PortableServer/ThreadStrategyORBControl.cpp: + * tao/PortableServer/ThreadStrategyORBControl.h: + * tao/PortableServer/ThreadStrategySingle.cpp: + * tao/PortableServer/ThreadStrategySingle.h: + * tao/PortableServer/ThreadStrategySingleFactoryImpl.cpp: + * tao/PortableServer/ThreadStrategySingleFactoryImpl.h: + * tao/PortableServer/Var_Size_SArgument_T.cpp: + * tao/PortableServer/Var_Size_SArgument_T.h: + * tao/PortableServer/Var_Size_SArgument_T.inl: + * tao/RTCORBA/Network_Priority_Mapping_Manager.h: + * tao/RTCORBA/RTCORBAA.cpp: + * tao/RTCORBA/RT_ORB.h: + * tao/RTPortableServer/RTPortableServerA.cpp: + * tao/RTScheduling/RTSchedulerA.cpp: + * tao/TypeCodeFactory/TypeCodeFactoryA.cpp: + * tao/Utils/PolicyList_Destroyer.h: + * tao/Utils/Server_Main.cpp: + * tao/Utils/Server_Main.h: + + Corrected build errors in versioned namespace builds. + +Sat Nov 26 14:57:56 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/util/utl_global.cpp: + * TAO_IDL/include/idl_global.h: + + Modified files overlooked in the checkin of + + Fri Nov 25 19:26:03 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + +Fri Nov 25 18:54:19 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * NEWS: + + Updated with latest versioned namespace information. + + * TAO_IDL/tao_idl.mpc: + * orbsvcs/orbsvcs/CosNaming_Serv.mpc: + * orbsvcs/orbsvcs/FTORB.mpc: + * orbsvcs/orbsvcs/IFRService.mpc: + * orbsvcs/orbsvcs/PortableGroup.mpc: + * orbsvcs/orbsvcs/RTEvent_Serv.mpc: + * orbsvcs/orbsvcs/Svc_Utils.mpc: + * tao/Strategies.mpc: + + Updated to take into account latest "ace_for_tao" subset + changes. + + * tao/TAO_Singleton_Manager.h: + * tao/AnyTypeCode/CharSeqA.cpp: + * tao/AnyTypeCode/CharSeqA.h: + * tao/AnyTypeCode/CurrentA.cpp: + * tao/AnyTypeCode/CurrentA.h: + * tao/AnyTypeCode/DomainA.cpp: + * tao/AnyTypeCode/DomainA.h: + * tao/AnyTypeCode/DoubleSeqA.cpp: + * tao/AnyTypeCode/DoubleSeqA.h: + * tao/AnyTypeCode/DynamicA.cpp: + * tao/AnyTypeCode/DynamicA.h: + * tao/AnyTypeCode/Dynamic_ParameterA.cpp: + * tao/AnyTypeCode/Dynamic_ParameterA.h: + * tao/AnyTypeCode/ExceptionA.cpp: + * tao/AnyTypeCode/ExceptionA.h: + * tao/AnyTypeCode/FloatSeqA.cpp: + * tao/AnyTypeCode/FloatSeqA.h: + * tao/AnyTypeCode/GIOPA.cpp: + * tao/AnyTypeCode/GIOPA.h: + * tao/AnyTypeCode/IIOPA.cpp: + * tao/AnyTypeCode/IIOPA.h: + * tao/AnyTypeCode/IIOP_EndpointsA.cpp: + * tao/AnyTypeCode/IIOP_EndpointsA.h: + * tao/AnyTypeCode/IOP_IORA.cpp: + * tao/AnyTypeCode/IOP_IORA.h: + * tao/AnyTypeCode/LongDoubleSeqA.cpp: + * tao/AnyTypeCode/LongDoubleSeqA.h: + * tao/AnyTypeCode/LongLongSeqA.cpp: + * tao/AnyTypeCode/LongLongSeqA.h: + * tao/AnyTypeCode/LongSeqA.cpp: + * tao/AnyTypeCode/LongSeqA.h: + * tao/AnyTypeCode/Messaging_PolicyValueA.cpp: + * tao/AnyTypeCode/Messaging_PolicyValueA.h: + * tao/AnyTypeCode/ObjectIdListA.cpp: + * tao/AnyTypeCode/ObjectIdListA.h: + * tao/AnyTypeCode/PI_ForwardA.cpp: + * tao/AnyTypeCode/PI_ForwardA.h: + * tao/AnyTypeCode/ParameterModeA.cpp: + * tao/AnyTypeCode/ParameterModeA.h: + * tao/AnyTypeCode/PolicyA.cpp: + * tao/AnyTypeCode/PolicyA.h: + * tao/AnyTypeCode/Policy_ForwardA.cpp: + * tao/AnyTypeCode/Policy_ForwardA.h: + * tao/AnyTypeCode/PortableInterceptorA.h: + * tao/AnyTypeCode/ServicesA.cpp: + * tao/AnyTypeCode/ServicesA.h: + * tao/AnyTypeCode/ShortSeqA.cpp: + * tao/AnyTypeCode/ShortSeqA.h: + * tao/AnyTypeCode/StringSeqA.cpp: + * tao/AnyTypeCode/StringSeqA.h: + * tao/AnyTypeCode/SystemExceptionA.cpp: + * tao/AnyTypeCode/SystemExceptionA.h: + * tao/AnyTypeCode/TAOA.cpp: + * tao/AnyTypeCode/TimeBaseA.cpp: + * tao/AnyTypeCode/TimeBaseA.h: + * tao/AnyTypeCode/ULongLongSeqA.cpp: + * tao/AnyTypeCode/ULongLongSeqA.h: + * tao/AnyTypeCode/ULongSeqA.cpp: + * tao/AnyTypeCode/ULongSeqA.h: + * tao/AnyTypeCode/UShortSeqA.cpp: + * tao/AnyTypeCode/UShortSeqA.h: + * tao/AnyTypeCode/ValueModifierA.cpp: + * tao/AnyTypeCode/ValueModifierA.h: + * tao/AnyTypeCode/VisibilityA.cpp: + * tao/AnyTypeCode/VisibilityA.h: + * tao/AnyTypeCode/WCharSeqA.cpp: + * tao/AnyTypeCode/WCharSeqA.h: + * tao/AnyTypeCode/WStringSeqA.cpp: + * tao/AnyTypeCode/WStringSeqA.h: + * tao/AnyTypeCode/WrongTransactionA.cpp: + * tao/AnyTypeCode/WrongTransactionA.h: + * tao/AnyTypeCode/orb_typesA.cpp: + * tao/AnyTypeCode/orb_typesA.h: + * tao/CSD_Framework/CSD_FrameworkA.cpp: + * tao/CSD_Framework/CSD_FrameworkA.h: + * tao/CSD_Framework/CSD_FrameworkC.cpp: + * tao/CSD_Framework/CSD_FrameworkC.h: + * tao/Domain/DomainS.cpp: + * tao/Domain/DomainS.h: + * tao/Domain/DomainS.inl: + * tao/Domain/DomainS_T.h: + * tao/Domain/DomainS_T.inl: + * tao/DynamicAny/DynamicAnyC.cpp: + * tao/DynamicAny/DynamicAnyC.h: + * tao/IFR_Client/IFR_BaseC.cpp: + * tao/IFR_Client/IFR_BaseC.h: + * tao/IFR_Client/IFR_BaseC.inl: + * tao/IFR_Client/IFR_BaseS.h: + * tao/IFR_Client/IFR_BasicC.h: + * tao/IFR_Client/IFR_BasicC.inl: + * tao/IFR_Client/IFR_ComponentsC.cpp: + * tao/IFR_Client/IFR_ComponentsC.h: + * tao/IFR_Client/IFR_ComponentsC.inl: + * tao/IFR_Client/IFR_ExtendedC.cpp: + * tao/IFR_Client/IFR_ExtendedC.h: + * tao/IFR_Client/IFR_ExtendedC.inl: + * tao/IORInterceptor/IORInfoC.cpp: + * tao/IORInterceptor/IORInfoC.h: + * tao/IORInterceptor/IORInterceptorC.cpp: + * tao/IORInterceptor/IORInterceptorC.h: + * tao/IORManipulation/IORA.cpp: + * tao/IORManipulation/IORC.cpp: + * tao/IORManipulation/IORC.h: + * tao/IORTable/IORTableC.cpp: + * tao/IORTable/IORTableC.h: + * tao/ImR_Client/ImplRepoC.cpp: + * tao/ImR_Client/ImplRepoC.h: + * tao/ImR_Client/ImplRepoC.inl: + * tao/ImR_Client/ImplRepoS.cpp: + * tao/ImR_Client/ImplRepoS.h: + * tao/ImR_Client/ServerObjectC.cpp: + * tao/ImR_Client/ServerObjectC.h: + * tao/ImR_Client/ServerObjectC.inl: + * tao/ImR_Client/ServerObjectS.cpp: + * tao/ImR_Client/ServerObjectS.h: + * tao/Messaging/ExceptionHolderA.cpp: + * tao/Messaging/ExceptionHolderA.h: + * tao/Messaging/ExceptionHolderC.cpp: + * tao/Messaging/ExceptionHolderC.h: + * tao/Messaging/ExceptionHolderC.inl: + * tao/Messaging/MessagingA.cpp: + * tao/Messaging/MessagingA.h: + * tao/Messaging/MessagingC.cpp: + * tao/Messaging/MessagingC.h: + * tao/Messaging/MessagingC.inl: + * tao/Messaging/MessagingS.cpp: + * tao/Messaging/MessagingS.h: + * tao/Messaging/MessagingS_T.h: + * tao/Messaging/MessagingS_T.inl: + * tao/Messaging/Messaging_No_ImplA.cpp: + * tao/Messaging/Messaging_No_ImplA.h: + * tao/Messaging/Messaging_No_ImplC.cpp: + * tao/Messaging/Messaging_No_ImplC.h: + * tao/Messaging/Messaging_RT_PolicyA.cpp: + * tao/Messaging/Messaging_RT_PolicyA.h: + * tao/Messaging/Messaging_RT_PolicyC.cpp: + * tao/Messaging/Messaging_RT_PolicyC.h: + * tao/Messaging/Messaging_SyncScope_PolicyA.cpp: + * tao/Messaging/Messaging_SyncScope_PolicyA.h: + * tao/Messaging/Messaging_SyncScope_PolicyC.cpp: + * tao/Messaging/Messaging_SyncScope_PolicyC.h: + * tao/Messaging/OldExceptionHolderA.cpp: + * tao/Messaging/OldExceptionHolderA.h: + * tao/Messaging/OldExceptionHolderC.cpp: + * tao/Messaging/OldExceptionHolderC.h: + * tao/Messaging/OldExceptionHolderC.inl: + * tao/Messaging/PollableC.cpp: + * tao/Messaging/PollableC.h: + * tao/Messaging/TAO_ExtA.cpp: + * tao/Messaging/TAO_ExtA.h: + * tao/Messaging/TAO_ExtC.cpp: + * tao/Messaging/TAO_ExtC.h: + * tao/ObjRefTemplate/Default_ORTA.cpp: + * tao/ObjRefTemplate/Default_ORTC.cpp: + * tao/ObjRefTemplate/Default_ORTC.h: + * tao/ObjRefTemplate/ObjectReferenceTemplateA.cpp: + * tao/ObjRefTemplate/ObjectReferenceTemplateC.cpp: + * tao/ObjRefTemplate/ObjectReferenceTemplateC.h: + * tao/ObjRefTemplate/ObjectReferenceTemplate_includeC.h: + * tao/PI/ClientRequestInfoA.cpp: + * tao/PI/ClientRequestInfoA.h: + * tao/PI/ClientRequestInfoC.cpp: + * tao/PI/ClientRequestInterceptorA.cpp: + * tao/PI/ClientRequestInterceptorA.h: + * tao/PI/ClientRequestInterceptorC.cpp: + * tao/PI/InterceptorA.cpp: + * tao/PI/InterceptorA.h: + * tao/PI/InterceptorC.cpp: + * tao/PI/InterceptorC.h: + * tao/PI/InvalidSlotA.h: + * tao/PI/InvalidSlotC.cpp: + * tao/PI/InvalidSlotC.h: + * tao/PI/ORBInitializerA.cpp: + * tao/PI/ORBInitializerA.h: + * tao/PI/ORBInitializerC.cpp: + * tao/PI/ORBInitializerC.h: + * tao/PI/PICurrentA.cpp: + * tao/PI/PICurrentA.h: + * tao/PI/PICurrentC.h: + * tao/PI/PIForwardRequestA.cpp: + * tao/PI/PIForwardRequestA.h: + * tao/PI/PIForwardRequestC.cpp: + * tao/PI/PIForwardRequestC.h: + * tao/PI/PolicyFactoryA.cpp: + * tao/PI/PolicyFactoryA.h: + * tao/PI/PolicyFactoryC.cpp: + * tao/PI/PolicyFactoryC.h: + * tao/PI/RequestInfoA.cpp: + * tao/PI/RequestInfoA.h: + * tao/PI/RequestInfoC.cpp: + * tao/PI/RequestInfoC.h: + * tao/PI_Server/ServerRequestInfoA.cpp: + * tao/PI_Server/ServerRequestInfoA.h: + * tao/PI_Server/ServerRequestInfoC.cpp: + * tao/PI_Server/ServerRequestInfoC.h: + * tao/PI_Server/ServerRequestInterceptorA.cpp: + * tao/PI_Server/ServerRequestInterceptorA.h: + * tao/PI_Server/ServerRequestInterceptorC.cpp: + * tao/PI_Server/ServerRequestInterceptorC.h: + * tao/PortableServer/AdapterActivatorA.cpp: + * tao/PortableServer/AdapterActivatorA.h: + * tao/PortableServer/AdapterActivatorC.cpp: + * tao/PortableServer/AdapterActivatorC.h: + * tao/PortableServer/ForwardRequestA.cpp: + * tao/PortableServer/ForwardRequestA.h: + * tao/PortableServer/ForwardRequestC.cpp: + * tao/PortableServer/ForwardRequestC.h: + * tao/PortableServer/IdAssignmentPolicyA.cpp: + * tao/PortableServer/IdAssignmentPolicyA.h: + * tao/PortableServer/IdAssignmentPolicyC.cpp: + * tao/PortableServer/IdAssignmentPolicyC.h: + * tao/PortableServer/IdUniquenessPolicyA.cpp: + * tao/PortableServer/IdUniquenessPolicyA.h: + * tao/PortableServer/IdUniquenessPolicyC.cpp: + * tao/PortableServer/IdUniquenessPolicyC.h: + * tao/PortableServer/ImplicitActivationPolicyA.cpp: + * tao/PortableServer/ImplicitActivationPolicyA.h: + * tao/PortableServer/ImplicitActivationPolicyC.cpp: + * tao/PortableServer/ImplicitActivationPolicyC.h: + * tao/PortableServer/LifespanPolicyA.cpp: + * tao/PortableServer/LifespanPolicyA.h: + * tao/PortableServer/LifespanPolicyC.cpp: + * tao/PortableServer/LifespanPolicyC.h: + * tao/PortableServer/POAManagerC.cpp: + * tao/PortableServer/POAManagerC.h: + * tao/PortableServer/PS_CurrentC.cpp: + * tao/PortableServer/PS_CurrentC.h: + * tao/PortableServer/PS_ForwardA.cpp: + * tao/PortableServer/PS_ForwardA.h: + * tao/PortableServer/PS_ForwardC.cpp: + * tao/PortableServer/PS_ForwardC.h: + * tao/PortableServer/PolicyS.cpp: + * tao/PortableServer/PolicyS.h: + * tao/PortableServer/PolicyS_T.h: + * tao/PortableServer/PolicyS_T.inl: + * tao/PortableServer/PortableServerC.cpp: + * tao/PortableServer/PortableServerC.h: + * tao/PortableServer/PortableServerS.h: + * tao/PortableServer/PortableServer_includeC.h: + * tao/PortableServer/RequestProcessingPolicyA.cpp: + * tao/PortableServer/RequestProcessingPolicyA.h: + * tao/PortableServer/RequestProcessingPolicyC.cpp: + * tao/PortableServer/RequestProcessingPolicyC.h: + * tao/PortableServer/ServantActivatorA.cpp: + * tao/PortableServer/ServantActivatorA.h: + * tao/PortableServer/ServantActivatorC.cpp: + * tao/PortableServer/ServantActivatorC.h: + * tao/PortableServer/ServantLocatorA.cpp: + * tao/PortableServer/ServantLocatorA.h: + * tao/PortableServer/ServantLocatorC.cpp: + * tao/PortableServer/ServantLocatorC.h: + * tao/PortableServer/ServantManagerA.cpp: + * tao/PortableServer/ServantManagerA.h: + * tao/PortableServer/ServantManagerC.cpp: + * tao/PortableServer/ServantManagerC.h: + * tao/PortableServer/ServantRetentionPolicyA.cpp: + * tao/PortableServer/ServantRetentionPolicyA.h: + * tao/PortableServer/ServantRetentionPolicyC.cpp: + * tao/PortableServer/ServantRetentionPolicyC.h: + * tao/PortableServer/ThreadPolicyA.cpp: + * tao/PortableServer/ThreadPolicyA.h: + * tao/PortableServer/ThreadPolicyC.cpp: + * tao/PortableServer/ThreadPolicyC.h: + * tao/RTCORBA/RTCORBAC.cpp: + * tao/RTCORBA/RTCORBAC.h: + * tao/RTCORBA/RTCORBA_includeC.h: + * tao/RTPortableServer/RTPortableServerC.cpp: + * tao/RTPortableServer/RTPortableServerC.h: + * tao/RTPortableServer/RTPortableServerS.h: + * tao/RTPortableServer/RTPortableServer_includeC.h: + * tao/RTScheduling/RTSchedulerC.cpp: + * tao/RTScheduling/RTSchedulerC.h: + * tao/RTScheduling/RTScheduler_includeA.h: + * tao/RTScheduling/RTScheduler_includeC.h: + * tao/Strategies/sciop_endpointsC.cpp: + * tao/Strategies/sciop_endpointsC.h: + * tao/Strategies/uiop_endpointsC.cpp: + * tao/Strategies/uiop_endpointsC.h: + * tao/TypeCodeFactory/TypeCodeFactoryC.cpp: + * tao/TypeCodeFactory/TypeCodeFactoryC.h: + * tao/Valuetype/StringValueC.cpp: + * tao/Valuetype/StringValueC.h: + * tao/Valuetype/StringValueC.inl: + + Added missing versioned namespace support. + +Fri Nov 25 19:26:03 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_field.cpp: + * TAO_IDL/fe/fe_declarator.cpp: + + Added code generation for explicit inclusionn of + tao/Managed_Types.h if TAO_(W)String_Manager is seen + anywhere in the generated code. This inclusion is + redundant now, but will make it easier to merge the + new sequence implementation branch, where managed_Types.h + will be changed to the name of a new file, into which + templatized versions of TAO_(W)String_Manager have + been factored. + +Fri Nov 25 07:43:56 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/TAO_Singleton_Manager.h (~TAO_Singleton_Manager): + + Made destructor protected to address warnings about a class with + a private destructor and no friends. + +Fri Nov 25 15:06:43 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/fe/fe_interface_header.cpp: + + Applied a patch submitted by Max Khon <mkhon@swsoft.com> + to fix a bug in computing the inheritance list of an IDL + interface. This fix closes [BUGID:2318]. + +Fri Nov 25 13:01:23 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/ImplRepo/run_test.pl: + + Added time parameter to WaitKill to fix spurious test error. + +Fri Nov 25 11:18:12 2005 Simon McQueen <sm@prismtech.com> + + * orsbvcs/tests/Bug_2074_Regression/run_test.pl: + + Correct the use lib path to give this a sporting chance. + Can't have ever been run from this location. + +Thu Nov 24 19:50:35 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Profile.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Profile.h: + + Override the base class ::decode method with one that + doesn't try and extract an object key from the CDR encoding. + MIOP profiles don't have an object key marshalled between + the address info and the tagged components. + + This fixes bug #2316. + + * orbsvcs/tests/Bug_2316_Regression/Bug_2316_Regression.mpc: + * orbsvcs/tests/Bug_2316_Regression/README: + * orbsvcs/tests/Bug_2316_Regression/Test.idl: + * orbsvcs/tests/Bug_2316_Regression/Test_impl.cpp: + * orbsvcs/tests/Bug_2316_Regression/Test_impl.h: + * orbsvcs/tests/Bug_2316_Regression/client.cpp: + * orbsvcs/tests/Bug_2316_Regression/run_test.pl: + * orbsvcs/tests/Bug_2316_Regression/server.cpp: + * orbsvcs/tests/Bug_2316_Regression/svc.conf: + + Regression test for the above. + +Thu Nov 24 19:07:56 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connector.cpp: + + Fix calculation of protocol name length. This fixes the + failure in orbsvcs/tests/Miop/McastHello. + +Thu Nov 24 15:56:31 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/Bug_1670_Regression/Bug_1670_Regression.mpc: + + Added 'after' line in one project to avoid concurrently + clashes in VC8 builds, since the two projects share an + IDL file. + +Thu Nov 24 03:01:29 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEvent.h: + * orbsvcs/orbsvcs/ETCL/ETCL_l.cpp: + * orbsvcs/orbsvcs/ETCL/ETCL_y.cpp: + * orbsvcs/orbsvcs/Event/EC_Lifetime_Utils_T.i: + * orbsvcs/orbsvcs/Event/EC_ProxySupplier.i: + * orbsvcs/orbsvcs/FaultTolerance/FT_Policy_i.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Factory.cpp: + * orbsvcs/orbsvcs/Metrics/Metrics_UpcallMonitor.h: + * orbsvcs/orbsvcs/Naming/Storable_Naming_Context.cpp: + * orbsvcs/orbsvcs/Notify/Refcountable.cpp: + * orbsvcs/orbsvcs/Notify/XML_Topology_Factory.h: + * orbsvcs/orbsvcs/PortableGroup/PG_FactoryRegistry.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Property_Set.cpp: + * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp: + * orbsvcs/orbsvcs/Security/Security_Current.h: + * orbsvcs/orbsvcs/Trader/Constraint_Visitors.h: + * orbsvcs/orbsvcs/Trader/Constraint_l.cpp: + * orbsvcs/orbsvcs/Trader/Trader.cpp: + * orbsvcs/orbsvcs/Trader/Trader_Interfaces.h: + * tao/Acceptor_Registry.h: + * tao/Asynch_Reply_Dispatcher_Base.h: + * tao/BooleanSeqC.cpp: + * tao/BooleanSeqC.h: + * tao/CDR.h: + * tao/CONV_FRAMEC.cpp: + * tao/CONV_FRAMEC.h: + * tao/CORBA_methods.h: + * tao/CharSeqC.cpp: + * tao/CharSeqC.h: + * tao/Client_Strategy_Factory.h: + * tao/Codeset_Manager.h: + * tao/Codeset_Translator_Base.h: + * tao/Collocation_Strategy.h: + * tao/Condition.h: + * tao/Connect_Strategy.h: + * tao/Connection_Handler.h: + * tao/Connection_Handler.inl: + * tao/Connector_Impl.h: + * tao/CurrentC.cpp: + * tao/CurrentC.h: + * tao/DomainC.cpp: + * tao/DomainC.h: + * tao/DomainC.inl: + * tao/DoubleSeqC.cpp: + * tao/DoubleSeqC.h: + * tao/Exception.h: + * tao/Fault_Tolerance_Service.h: + * tao/FlResource_Factory.h: + * tao/FloatSeqC.cpp: + * tao/FloatSeqC.h: + * tao/Flushing_Strategy.h: + * tao/GIOPC.cpp: + * tao/GIOPC.h: + * tao/GIOPC.inl: + * tao/GIOP_Utils.h: + * tao/GUIResource_Factory.h: + * tao/IIOPC.cpp: + * tao/IIOPC.h: + * tao/IIOP_EndpointsC.cpp: + * tao/IIOP_EndpointsC.h: + * tao/IIOP_Lite_Factory.cpp: + * tao/IOPC.cpp: + * tao/IOPC.h: + * tao/IOP_IORC.cpp: + * tao/IOP_IORC.h: + * tao/IORInterceptor_Adapter.h: + * tao/Incoming_Message_Queue.h: + * tao/Invocation_Adapter.h: + * tao/Invocation_Endpoint_Selectors.h: + * tao/LF_Connect_Strategy.h: + * tao/LF_Strategy.h: + * tao/Leader_Follower.h: + * tao/LocateRequest_Invocation_Adapter.h: + * tao/LongDoubleSeqC.cpp: + * tao/LongDoubleSeqC.h: + * tao/LongLongSeqC.cpp: + * tao/LongLongSeqC.h: + * tao/LongSeqC.cpp: + * tao/LongSeqC.h: + * tao/Messaging_PolicyValueC.cpp: + * tao/Messaging_PolicyValueC.h: + * tao/Messaging_SyncScopeC.cpp: + * tao/Messaging_SyncScopeC.h: + * tao/ORBInitializer_Registry.h: + * tao/ORB_Core.h: + * tao/Object.h: + * tao/ObjectIdListC.cpp: + * tao/ObjectIdListC.h: + * tao/Object_KeyC.cpp: + * tao/Object_KeyC.h: + * tao/OctetSeqC.cpp: + * tao/OctetSeqC.h: + * tao/PI_ForwardC.cpp: + * tao/PI_ForwardC.h: + * tao/ParameterModeC.cpp: + * tao/ParameterModeC.h: + * tao/Pluggable_Messaging.h: + * tao/PolicyC.cpp: + * tao/PolicyC.h: + * tao/PolicyC.inl: + * tao/Policy_Current.h: + * tao/Policy_ForwardC.cpp: + * tao/Policy_ForwardC.h: + * tao/PortableInterceptorC.cpp: + * tao/PortableInterceptorC.h: + * tao/Profile.h: + * tao/Profile_Transport_Resolver.cpp: + * tao/Profile_Transport_Resolver.h: + * tao/Queued_Message.h: + * tao/Reactive_Connect_Strategy.h: + * tao/Resource_Factory.h: + * tao/Sequence.h: + * tao/ServicesC.cpp: + * tao/ServicesC.h: + * tao/ShortSeqC.cpp: + * tao/ShortSeqC.h: + * tao/StringSeqC.cpp: + * tao/StringSeqC.h: + * tao/Synch_Invocation.h: + * tao/TAOC.cpp: + * tao/TAOC.h: + * tao/TAO_Internal.h: + * tao/TAO_Server_Request.h: + * tao/TAO_Singleton_Manager.cpp: + * tao/TAO_Singleton_Manager.h: + * tao/Thread_Lane_Resources.h: + * tao/TimeBaseC.cpp: + * tao/TimeBaseC.h: + * tao/Transport_Acceptor.h: + * tao/Transport_Cache_Manager.h: + * tao/Transport_Connector.h: + * tao/Transport_Mux_Strategy.h: + * tao/Transport_Queueing_Strategies.h: + * tao/TypeCodeFactory_Adapter.h: + * tao/Typecode_typesC.cpp: + * tao/Typecode_typesC.h: + * tao/ULongLongSeqC.cpp: + * tao/ULongLongSeqC.h: + * tao/ULongSeqC.cpp: + * tao/ULongSeqC.h: + * tao/UShortSeqC.cpp: + * tao/UShortSeqC.h: + * tao/VarOut_T.cpp: + * tao/Var_Size_Argument_T.inl: + * tao/Versioned_Namespace.h: + * tao/WCharSeqC.cpp: + * tao/WCharSeqC.h: + * tao/WStringSeqC.cpp: + * tao/WStringSeqC.h: + * tao/Wait_Strategy.h: + * tao/WrongTransactionC.cpp: + * tao/WrongTransactionC.h: + * tao/default_resource.h: + * tao/orb_typesC.cpp: + * tao/orb_typesC.h: + * tao/target_specification.h: + * tao/target_specification.i: + * tao/AnyTypeCode/AnySeqA.cpp: + * tao/AnyTypeCode/AnySeqA.h: + * tao/AnyTypeCode/AnySeqC.cpp: + * tao/AnyTypeCode/AnySeqC.h: + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.cpp: + * tao/AnyTypeCode/Any_Impl.h: + * tao/AnyTypeCode/Any_Impl_T.h: + * tao/AnyTypeCode/Any_Impl_T.inl: + * tao/AnyTypeCode/Any_Unknown_IDL_Type.h: + * tao/AnyTypeCode/BooleanSeqA.cpp: + * tao/AnyTypeCode/BooleanSeqA.h: + * tao/AnyTypeCode/BoundsA.cpp: + * tao/AnyTypeCode/BoundsA.h: + * tao/AnyTypeCode/BoundsC.cpp: + * tao/AnyTypeCode/BoundsC.h: + * tao/AnyTypeCode/CONV_FRAMEA.cpp: + * tao/AnyTypeCode/CONV_FRAMEA.h: + * tao/AnyTypeCode/DynamicC.cpp: + * tao/AnyTypeCode/DynamicC.h: + * tao/AnyTypeCode/Dynamic_ParameterC.cpp: + * tao/AnyTypeCode/Dynamic_ParameterC.h: + * tao/AnyTypeCode/OctetSeqA.cpp: + * tao/AnyTypeCode/OctetSeqA.h: + * tao/AnyTypeCode/TypeCode_CDR_Extraction.h: + * tao/AnyTypeCode/ValueModifierC.cpp: + * tao/AnyTypeCode/ValueModifierC.h: + * tao/AnyTypeCode/VisibilityC.cpp: + * tao/AnyTypeCode/VisibilityC.h: + * tao/BiDir_GIOP/BiDirPolicyC.cpp: + * tao/BiDir_GIOP/BiDirPolicyC.h: + * tao/CodecFactory/IOP_CodecC.cpp: + * tao/CodecFactory/IOP_CodecC.h: + * tao/CodecFactory/IOP_Codec_includeC.h: + * tao/Codeset/Codeset_Translator_Factory.h: + * tao/DynamicInterface/DII_Invocation_Adapter.cpp: + * tao/DynamicInterface/DII_Invocation_Adapter.h: + * tao/Messaging/AMH_Response_Handler.h: + * tao/Messaging/Asynch_Invocation.h: + * tao/Messaging/Asynch_Invocation_Adapter.h: + * tao/Messaging/Asynch_Reply_Dispatcher.h: + * tao/Messaging/Connection_Timeout_Policy_i.h: + * tao/PI/ClientRequestInfo.cpp: + * tao/PI/ClientRequestInfoC.h: + * tao/PI/ClientRequestInterceptorC.h: + * tao/PortableServer/IdUniquenessStrategyUnique.h: + * tao/PortableServer/Key_Adapters.h: + * tao/PortableServer/Servant_Dispatcher.cpp: + * tao/PortableServer/Servant_Dispatcher.h: + * tao/Utils/Synch_Refcountable.h: + * tao/Valuetype/Valuetype_Adapter_Impl.h: + + Corrected build errors in versioned namespace builds. + +Wed Nov 23 22:24:38 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/orbsvcs/Notify/Event_Manager.h: + + Explicitly declared a private copy constructor and assignment + operator for TAO_Notify_Event_Manager. By not declaring them, + the compiler has to generate them. In generating them, it needs + to be able to know the complete type for the template arguments + to its ACE_Auto_Ptr<> private instances. Various circular + dependencies make that difficult to impossible without + restructuring, so we take this approach instead. + + This change should eliminate warnings from Windows-based + compilers (e.g., VC8) about calling delete through a pointer to + an incomplete type while instantiating ACE_Auto_Ptr<> methods. + + * orbsvcs/orbsvcs/Notify/Object.h: + * orbsvcs/orbsvcs/Notify/Object.cpp: + + Only needed a forward decl in Object.h; we only needed the + complete type in Object.cpp. Maybe this will help footprint. + +Wed Nov 23 09:20:03 2005 Chris Cleeland <cleeland_c@ociweb.com> + + Fix a few things I should have caught in the Great Merge, but + missed. + + * orbsvcs/orbsvcs/Notify/Consumer.cpp (dispatch_request): Change + from using deprecated TAO_DEFAULT_MINOR_CODE to TAO::VMCID. + + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp: Use + real C++ static_cast<> rather than deprecated ACE_static_cast(). + +Wed Nov 23 14:53:09 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/Portable_Interceptors/ForwardRequest/PI_ForwardRequest.mpc: + + Added an 'after' line to one project to avoid concurrency + collisions in VC8 builds, since the 2 projects in this file + share IDL. + +Wed Nov 23 14:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/OBV/ValueBox/client.cpp: + This test was doing a few release calls to much causing it to + crash. + +Wed Nov 23 14:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_valuebox/valuebox_ci.cpp: + Make sure all generated pointers are initialised to 0 + +Wed Nov 23 10:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/BiDirectional/run_test_ipv6.pl: + * tests/CallbackTest/run_test_ipv6.pl: + * tests/IPV6/run_test.pl: + * orbsvcs/tests/Notify/Basic/run_test_ipv6.pl: + Updated these scripts because of the following change, use + 1|0 instead of YES|NO + Tue Nov 22 07:49:59 2005 Douglas C. Schmidt + +Tue Nov 22 22:58:55 2005 Chris Cleeland <cleeland@ociweb.com> + + * orbsvcs/orbsvcs/Notify/Any/PushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.cpp: + + Fixed warnings about preferring one conversion over another + from a _var that appeared on a couple of platforms. + +Tue Nov 22 07:49:59 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * tao/ORB_Core.cpp (init): Updated the code to use 1 or 0 for + options, rather than YES or NO. Thanks to Abhi Sachdev for + motivating this cleanup. + + * docs/Options.html: Updated the documentation to remove the use of + YES and NO as options and replace them with 1 or 0 to be + consistent with the other options. + +Tue Nov 22 04:14:05 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * TAO_IDL/be_include/be_visitor_traits.h: + + Added missing operation declaration. + +Tue Nov 22 01:42:48 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/PortableGroup.mpc: + + Rather than disable this project in the ACE_FOR_TAO + configuration, inherit from acesocketslib_for_tao to allow it to + be used. + +Tue Nov 22 09:33:30 (IST) 2005 Bala Natarajan <bala_natarajan@symantec.com> + + * orbsvcs/orbsvcs/PortableGroup.mpc: + + Do not build in ACE_FOR_TAO configuration. + +Mon Nov 21 19:28:51 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/orbsvcs/Notify/EventChannel.h: Removed mistakenly left + in attempt to #include EventChannel.inl. + +Mon Nov 21 22:22:41 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp: + + Removed commented out code. + + * TAO_IDL/be/be_visitor_traits.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp: + * TAO_IDL/be_include/be_visitor_traits.h: + + Added code generation of Value_Traits<> template + specialization for boxed valuetypes. Thanks to + Johnny Willemse <jwillemsen@remedy.nl> for reporting + the missing code. This fix closes [BUGID:2311]. + +Mon Nov 21 20:14:09 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/RTCORBA/Private_Connection/RTCORBA_Private_Connection.mpc: + + Added an 'after' line for one of the two projects, since they + share an IDL file and VC8 concurrency features need an + ordering. + +Mon Nov 21 13:21:03 2005 Chris Cleeland <cleeland_c@ociweb.com> + + This entry is the result of an accumulation of many changes in + the OCITAO repository for the Notification Service and the + subsequent merge of those changes back to DOC. There have been + general changes to improve code formatting in accordance with + ACE guidelines, improve lax checking of emulated exceptions, and + the like, so these sorts of changes are not noted on a per-file + basis. + + These changes include changes from the following OCITAO 1.4a + OCIChangeLog entries: + + Thu Oct 27 13:01:00 2005 Wallace Zhang <zhangw@ociweb.com> + Wed Sep 28 14:25:52 2005 David Giovannini <giovannd@ociweb.com> + Mon Sep 26 15:58:41 USMST 2005 Yan Dai <dai_y@ociweb.com> + Tue Sep 13 17:14:25 2005 Justin Michel <michel_j@ociweb.com> + Sun Sep 11 14:21:45 2005 Justin Michel <michel_j@ociweb.com> + Thu Aug 18 13:50:50 2005 David Giovannini <giovannd@ociweb.com> + Tue Aug 16 14:16:47 2005 Justin Michel <michel_j@ociweb.com> + Wed Jul 27 12:38:01 2005 Justin Michel <michel_j@ociweb.com> + Wed Jul 13 14:28:39 2005 Justin Michel <michel_j@ociweb.com> + Mon Jul 11 16:47:08 2005 Justin Michel <michel_j@ociweb.com> + Mon May 23 09:18:46 2005 David Giovannini <giovanninid@ociweb.com> + Fri Apr 22 15:24:43 2005 David Giovannini <giovanninid@ociweb.com> + + * orbsvcs/Notify_Service/Notify_Server.cpp: + + Added #include of valuetype header file to that the service can + use valuetypes portably. + + * orbsvcs/Notify_Service/Notify_Service.cpp: + + Made some error messages more informative and removed dead code. + + * orbsvcs/orbsvcs/Notify/Admin.cpp: + * orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp: + + Improve compliance with ACE formatting guidelines. + + * orbsvcs/orbsvcs/Notify/Admin.cpp: + * orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp: + * orbsvcs/orbsvcs/Notify/Event_Manager.cpp: + * orbsvcs/orbsvcs/Notify/Find_Worker_T.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp: + * orbsvcs/orbsvcs/Notify/Object.cpp: + * orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp: + * orbsvcs/orbsvcs/Notify/ProxySupplier.cpp: + * orbsvcs/orbsvcs/Notify/Reconnection_Registry.cpp: + * orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp: + * orbsvcs/orbsvcs/Notify/Topology_Object.cpp: + * orbsvcs/tests/Notify/Basic/Filter.cpp: + * orbsvcs/tests/Notify/Basic/MultiTypes.cpp: + * orbsvcs/tests/Notify/Reconnecting/Consumer.cpp: + * orbsvcs/tests/Notify/Reconnecting/Supplier.cpp: + * orbsvcs/tests/Notify/Structured_Filter/Structured_Supplier.cpp: + * orbsvcs/tests/Notify/Structured_Multi_Filter/Structured_Supplier.cpp: + * orbsvcs/tests/Notify/lib/Application_Command.cpp: + * orbsvcs/tests/Notify/lib/ConsumerAdmin_Command.cpp: + * orbsvcs/tests/Notify/lib/EventChannel_Command.cpp: + * orbsvcs/tests/Notify/lib/Filter_Command.cpp: + * orbsvcs/tests/Notify/lib/Periodic_Consumer_Command.cpp: + * orbsvcs/tests/Notify/lib/Periodic_Supplier_Command.cpp: + * orbsvcs/tests/Notify/lib/SupplierAdmin_Command.cpp: + * orbsvcs/tests/Notify/performance-tests/Filter/Sequence_Supplier.cpp: + + Emulated exception cleanup. + + * orbsvcs/orbsvcs/Notify/Consumer.h: + * orbsvcs/orbsvcs/Notify/Peer.cpp: + * orbsvcs/orbsvcs/Notify/RT_Notify_Service.h: + * orbsvcs/orbsvcs/Notify/Any/AnyEvent.h: + * orbsvcs/tests/Notify/PluggableTopology/main.cpp: + + Improved/removed crufty comments. + + * orbsvcs/orbsvcs/Notify/AllocTracker.h (ACE_WIN32_HEAP_MONITOR): + + Explicitly scoped reference to CrtHeapDumper to address a + compiler error. + + * orbsvcs/orbsvcs/Notify/Buffering_Strategy.h: + * orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp: + + Changed methods using TAO_Notify_Method_Request_Queueable to use + a pointer rather than a reference. This improves expectations + in areas of code that take the address of the reference and + store it or treat it as a pointer. + + * orbsvcs/orbsvcs/Notify/Consumer.cpp (dispatch_request): + * orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp: + + Handle COMM_FAILURE and TIMEOUT exceptions when pushing to a + consumer. These exceptions used to result in simply discarding + the event, but now they are considered a failure, and consumer + resources will be released. + + * orbsvcs/orbsvcs/Notify/Consumer.cpp (dispatch_batch): + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp: + + Fixed the detection of dead consumers for batches of events, so + that killing (or crashing) a consumer will correctly discard + remaining queued events for that consumer, and prevent new + events from being queued. + + * orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp: + + Simplify the types of threads from "dispatching, listener, + source, and lookup" to simply be "consumer" and "supplier" + threads. This is the way they were used, anyway. + + Changed the info message printed at startup to correctly + indicate that -DispatchingThreads threads are used + *per-consumer_admin*. Previously it indicated that the thread + pool was per-channel. + + * orbsvcs/orbsvcs/Notify/EventChannel.h: + * orbsvcs/orbsvcs/Notify/EventChannel.cpp (destroy): + + Fixed a memory leak where event channel destroy was not cleaning + up the admins. This avoids circular reference counting problems + similar to those described in the next entry. + + * orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp (destroy): + * orbsvcs/orbsvcs/Notify/EventChannel.cpp (destroy): + * orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp (destroy): + * orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp (destroy): + * orbsvcs/orbsvcs/Notify/ProxySupplier.cpp (destroy): + * orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp (destroy): + + Fixed exceptions=0 builds logical error in destroy methods and + made certain all owned circular refcounted members are released + in class::destroy methods. + + * orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp (init): + + Prefer ACE_Auto_Ptr<> to auto_ptr<>. + + * orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h (event_var_): + + Eliminated 'const'. + + * orbsvcs/orbsvcs/Notify/Method_Request_Event.h (CTOR): + * orbsvcs/orbsvcs/Notify/Method_Request_Event.cpp (CTOR): + + Changed potentially confusing name of argument; it had "_var" + appended when it was really a pointer of sorts. + + * orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h: + * orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp: + + Eliminated 'const' on event_var_ data member and changed + potentially confusing name of local variable in copy() b/c it + had "_var" appended when it was really a pointer of sorts. + + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h: + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp: + + Changed the filterable_data_ and variable_header_ + maps. Previously they contained a CORBA::Any* which was not + properly reference counted; the reference count was always one + regardless of the number of threads using the Any. Now it is + changed to contain the light-weighted CORBA::Any Object. Now the + "bind" method for the map will pass in the value from + StructuredEvent by value. Since the payload object of the + CORBA::Any is reference counted, we are safe. + + This change fixed a Notification Service crash. + + * orbsvcs/orbsvcs/Notify/Object.h (lock_): + + Added new mutex to serialize access to state variables. In the + past, the notification service reused mutexes for different + purposes, allowing a mutex in one scope to be used in a + different scope. When we started using reference counting on + objects properly, these scopes occasionally crossed, creating + deadlocks, race conditions, and all other sorts of mayhem + associated with misuse of mutexes. + + * orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp: + * orbsvcs/orbsvcs/Notify/Peer.h: + * orbsvcs/orbsvcs/Notify/Proxy.cpp: + * orbsvcs/orbsvcs/Notify/Reactive_Task.h: + * orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Any/PushConsumer.h: + * orbsvcs/orbsvcs/Notify/Any/PushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Any/PushSupplier.h: + * orbsvcs/orbsvcs/Notify/Any/PushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.h: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.cpp: + * orbsvcs/tests/Notify/XML_Persistence/run_test.pl: + + Changed how the persistence specific methods handle nil object + references - since TAO throws an exception with url ref styles + on nil references. + + * orbsvcs/orbsvcs/Notify/README: + + Changed "ListenerThreads" to "SourceThreads". + + * orbsvcs/orbsvcs/Notify/Reactive_Task.h (timer_): + + Changed to private scope. There was no need for it to be + anything but private. + + * orbsvcs/orbsvcs/Notify/Refcountable.h (TAO_Notify_Tracker): + * orbsvcs/orbsvcs/Notify/Refcountable.cpp (TAO_Notify_Tracker): + + Added class to track reference counted objects in the + notification service. This is disabled by default, and enabled + by setting the preprocessor macro + TAO_NOTIFY_REFCOUNT_DIAGNOSTICS to 1. Note that currently this + class requires the availability of the STL map and string + features. + + Use CORBA::Long for reference count rather than compilation + environment's 'long'. + + * orbsvcs/orbsvcs/Notify/Routing_Slip.cpp: + + Updates to use isSet() predicate on TAO_Notify_Event::Ptr. + + * orbsvcs/orbsvcs/Notify/ThreadPool_Task.h: + * orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp: + + Remove the fix for zombie threads, and instead use THR_DETACHED + to avoid the problem entirely. + + * orbsvcs/orbsvcs/Notify/Topology_Factory.h (DTOR): + * orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp: + + Add explicit virtual destructor to get around the problem in g++ + 4.0 where inlines get hidden. Without the virtual DTOR, this + class does not get exported and code that dynamically loads + classes derived from this class cannot access this type and + access the derived instances through pointers of this type. + This happens most notably when loading topology persistence + mechanisms via the Service Configurator. + + The actual code for the do-nothing destructor is in + EventChannelFactory.cpp. I did this because the only chunk of + code that uses Topology_Factory is already in that file, and it + didn't seem terribly reasonable to create a completely new file + to hold a do-nothing implementation of a destructor. + + * orbsvcs/orbsvcs/Notify/XML_Topology_Factory.h: + * orbsvcs/orbsvcs/Notify/XML_Topology_Factory.cpp: + + Added explicit virtual destructor for the same reasons as + described immediately above. + + * orbsvcs/orbsvcs/Notify/Any/AnyEvent.cpp: + + Changed ANY_CODE from being static to being + scope-local. + + * orbsvcs/orbsvcs/Notify/Any/PushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.cpp: + + Removed asserts associated with parameters. If a param is not + optional we throw a BAD_PARAM exception. + + * orbsvcs/tests/Notify/Basic/Basic.mpc: + * orbsvcs/tests/Notify/XML_Persistence/XML_Persistence.mpc: + + Provide explicit exenames for each project. While not strictly + required, this is "best practice" because it eliminates the need + for MPC to open each source file and search for the pattern + "*main*" to intuit an exename. + + * orbsvcs/tests/Notify/Basic/Sequence.cpp: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Notify_Sequence_Push_Consumer.cpp: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Sequence_Consumer.cpp: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Sequence_Supplier.cpp: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Notify_Sequence_Push_Consumer.h: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Notify_Sequence_Push_Consumer.cpp: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Sequence_Consumer.cpp: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Sequence_Supplier.cpp: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/run_test.pl: + * orbsvcs/tests/Notify/XML_Persistence/main.cpp: + + Fix incorrect use of pacing interval and other test issues. + + * orbsvcs/tests/Notify/Discarding/Notify_Structured_Push_Consumer.cpp: + + Fixed ACE_DEBUG printf-style message that had one too many + arguments. + + * orbsvcs/tests/Notify/Reconnecting/event.conf: + * orbsvcs/tests/Notify/Reconnecting/ns_mt_both.conf: + * orbsvcs/tests/Notify/Reconnecting/ns_mt_topo.conf: + * orbsvcs/tests/Notify/Reconnecting/ns_st_both.conf: + * orbsvcs/tests/Notify/Reconnecting/ns_st_topo.conf: + * orbsvcs/tests/Notify/XML_Persistence/svc.conf: + + Changed name of factory function used to dynamically load + persistence mechanism to be consistent with the new use of + ACE_FACTORY_NAMESPACE_DEFINE. + + * orbsvcs/tests/Notify/XML_Persistence/run_test.pl: + + Use -ORBObjRefStyle url so that IORs will be comparable. + +Mon Nov 21 07:23:46 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h: + + Re-export TAO_SSLIOP_Transport class. It is currently used + outside of the TAO_SSLIOP shared library by some of our + regression tests. + +Fri Nov 18 19:27:29 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/fe/lex.yy.cpp: + + Reverted change of + + Wed Nov 16 21:53:08 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + since it caused problems with Borland and Intel compilers. + We'll try it again after the next beta, or when there is + more time to track down the problems. + +Fri Nov 18 15:08:19 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/Typedef_String_Array/typedef_string_array.mpc: + + Added 'after' line to one of two projects that share an IDL + file, to avoid concurrency problems with the VC8 build. + +Thu Nov 17 16:38:27 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/RTCORBA/MT_Client_Protocol_Priority/RTCORBA_MT_Client_Proto_Prio.mpc: + + Added 'after' line to one project to avoid concurrency clashes + in IDL compiler execution when compiling with VC8. + +Thu Nov 17 07:57:13 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * docs/releasenotes/index.html: + + Added CSD feature to ORB related section. + +Thu Nov 17 06:55:53 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/Security/SL3_CredentialsAcquirerFactory.h: + * orbsvcs/orbsvcs/Security/SL3_CredentialsCurator.h: + + Re-export the classes in these files. Addresses unresolved + symbol errors in g++ 4.x builds. + +Thu Nov 17 06:49:02 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/SSLIOP/params_dup.h: + + Declare wrapper functions with their versioned namespace macro + counterparts. + + * orbsvcs/orbsvcs/SSLIOP/params_dup.c: + + Include "params_dup.h" to pull in wrapper function names with + versioned namespace support. + +Thu Nov 17 13:17:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Borland/ChatClient.mpc: + New MPC file, add vcl=1 to your default.features and pass VCL=1 + to the make flags to build this + + * examples/Borland/README: + Updated + +Thu Nov 17 12:12:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Borland/ChatClient.bpr: + * examples/Borland/ChatClient.res: + Updated to BCB6 format + +Wed Nov 16 21:53:08 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/fe/lex.yy.cpp: + * TAO_IDL/fe/lex.yy.cpp.diff: + + Since the change of + + Wed Nov 16 11:23:15 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + checked in a version of lex.yy.cpp that had been generated + elsewhere, regenerated this file with the version of flex + that's on tango.dre.vanderbilt.edu, and updated the + corresponding diff file. + +Wed Nov 16 14:12:08 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B.idl: + * tests/CSD_Strategy_Tests/TP_Test_1/run_test.pl: + + Rolled back the changes + "Sun Nov 13 12:15:58 USMST 2005 Yan Dai <dai_y@ociweb.com>" + made for debugging test failures on VxWorks build. + + * NEWS: + + Added description for CSD feature. + +Wed Nov 16 11:23:15 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/fe/idl.ll: + * TAO_IDL/fe/idl.yy.cpp: + + Applied patches submitted by Thomas Lockhart + <Thomas.Lockhart@jpl.nasa.gov> to enable the IDL compiler's + lexer to handle extra numeric fields produced by the gcc + 4.0.1 preprocessor. Closes [BUGID:2294]. + +Wed Nov 16 09:14:21 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current_Impl.cpp: + + Include "tao/ORB_Constants.h" to pull TAO::VMCID constant. + + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_CredentialsAcquirer.h + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_TargetCredentials.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_TargetCredentials.h: + + Corrected typos in versioned namespace macros. + +Wed Nov 16 09:05:08 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h (Current): + + Removed "const" qualifier for tss_slot_ member. It must + currently remain mutable. + + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_OpenSSL_st_T.h: + + Include "tao/Versioned_Namespace.h" to pull in versioned + namespace macro definitions. + +Wed Nov 16 14:52:32 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/NestedUpcall/Simple/Simple.mpc: + + Added 'after' line to one of the two projects in the MPC file, + so VC8 doesn't execute the IDL compiler concurrently. + +Tue Nov 15 23:48:47 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/Makefile.am: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_SSL.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_X509.cpp: + * orbsvcs/orbsvcs/Sched/Reconfig_Scheduler.cpp: + + Removed empty files. + + * orbsvcs/orbsvcs/ETCL/ETCL.ll: + * orbsvcs/orbsvcs/ETCL/ETCL.yy: + * orbsvcs/orbsvcs/ETCL/ETCL_l.cpp: + * orbsvcs/orbsvcs/ETCL/ETCL_y.cpp: + + Added missing versioned namespace macros. + + * orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp: + * orbsvcs/orbsvcs/Property/CosPropertyService_i.h: + * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ClientScheduler_i.cpp: + * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ClientScheduler_i.h: + * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_PCP_Manager.cpp: + * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_PCP_Manager.h: + * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_PCP_Manager.i: + * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ServerScheduler_i.cpp: + * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ServerScheduler_i.h: + * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ServerScheduler_i.i: + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.cpp: + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.h: + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.cpp: + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.inl: + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.cpp: + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.h: + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Transport.cpp: + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Transport.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Accept_Strategy.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Accept_Strategy.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.i: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_ClientCredentials.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_ClientCredentials.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.i: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Credentials.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Credentials.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Credentials.inl: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_CredentialsAcquirer.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_CredentialsAcquirer.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_CredentialsAcquirerFactory.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_CredentialsAcquirerFactory.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.inl: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current_Impl.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current_Impl.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current_Impl.inl: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_EVP_PKEY.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_EVP_PKEY.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.i: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Factory.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Factory.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Invocation_Interceptor.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Invocation_Interceptor.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_ORBInitializer.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_ORBInitializer.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_OpenSSL_st_T.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_OpenSSL_st_T.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_OpenSSL_st_T.inl: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_OwnCredentials.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_OwnCredentials.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Profile.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Profile.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_SSL.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_TargetCredentials.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_TargetCredentials.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Util.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Util.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_X509.h: + * orbsvcs/orbsvcs/SSLIOP/params_dup.c: + * orbsvcs/orbsvcs/SSLIOP/params_dup.h: + * orbsvcs/orbsvcs/SSLIOP/ssl_endpointsC.cpp: + * orbsvcs/orbsvcs/SSLIOP/ssl_endpointsC.h: + * orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp: + * orbsvcs/orbsvcs/Sched/Config_Scheduler.h: + * orbsvcs/orbsvcs/Sched/DynSched.cpp: + * orbsvcs/orbsvcs/Sched/DynSched.h: + * orbsvcs/orbsvcs/Sched/DynSched.i: + * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp: + * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h: + * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp: + * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h: + * orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp: + * orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h: + * orbsvcs/orbsvcs/Sched/SchedEntry.cpp: + * orbsvcs/orbsvcs/Sched/SchedEntry.h: + * orbsvcs/orbsvcs/Sched/SchedEntry.i: + * orbsvcs/orbsvcs/Sched/Scheduler_Generic.cpp: + * orbsvcs/orbsvcs/Sched/Scheduler_Generic.h: + * orbsvcs/orbsvcs/Sched/Strategy_Scheduler.cpp: + * orbsvcs/orbsvcs/Sched/Strategy_Scheduler.h: + * orbsvcs/orbsvcs/Security/CSI_Utils.cpp: + * orbsvcs/orbsvcs/Security/CSI_Utils.h: + * orbsvcs/orbsvcs/Security/SL2_EstablishTrustPolicy.cpp: + * orbsvcs/orbsvcs/Security/SL2_EstablishTrustPolicy.h: + * orbsvcs/orbsvcs/Security/SL2_QOPPolicy.cpp: + * orbsvcs/orbsvcs/Security/SL2_QOPPolicy.h: + * orbsvcs/orbsvcs/Security/SL3_ContextEstablishmentPolicy.cpp: + * orbsvcs/orbsvcs/Security/SL3_ContextEstablishmentPolicy.h: + * orbsvcs/orbsvcs/Security/SL3_CredentialsAcquirerFactory.cpp: + * orbsvcs/orbsvcs/Security/SL3_CredentialsAcquirerFactory.h: + * orbsvcs/orbsvcs/Security/SL3_CredentialsCurator.cpp: + * orbsvcs/orbsvcs/Security/SL3_CredentialsCurator.h: + * orbsvcs/orbsvcs/Security/SL3_ObjectCredentialsPolicy.cpp: + * orbsvcs/orbsvcs/Security/SL3_ObjectCredentialsPolicy.h: + * orbsvcs/orbsvcs/Security/SL3_PolicyFactory.cpp: + * orbsvcs/orbsvcs/Security/SL3_PolicyFactory.h: + * orbsvcs/orbsvcs/Security/SL3_SecurityCurrent.cpp: + * orbsvcs/orbsvcs/Security/SL3_SecurityCurrent.h: + * orbsvcs/orbsvcs/Security/SL3_SecurityCurrent.inl: + * orbsvcs/orbsvcs/Security/SL3_SecurityCurrent_Impl.cpp: + * orbsvcs/orbsvcs/Security/SL3_SecurityCurrent_Impl.h: + * orbsvcs/orbsvcs/Security/SL3_SecurityManager.cpp: + * orbsvcs/orbsvcs/Security/SL3_SecurityManager.h: + * orbsvcs/orbsvcs/Security/Security_Current.cpp: + * orbsvcs/orbsvcs/Security/Security_Current.h: + * orbsvcs/orbsvcs/Security/Security_Current.inl: + * orbsvcs/orbsvcs/Security/Security_Current_Impl.cpp: + * orbsvcs/orbsvcs/Security/Security_Current_Impl.h: + * orbsvcs/orbsvcs/Security/Security_ORBInitializer.cpp: + * orbsvcs/orbsvcs/Security/Security_ORBInitializer.h: + * orbsvcs/orbsvcs/Security/Security_PolicyFactory.cpp: + * orbsvcs/orbsvcs/Security/Security_PolicyFactory.h: + * orbsvcs/orbsvcs/Time/TAO_TIO.cpp: + * orbsvcs/orbsvcs/Time/TAO_TIO.h: + * orbsvcs/orbsvcs/Time/TAO_Time_Service_Clerk.cpp: + * orbsvcs/orbsvcs/Time/TAO_Time_Service_Clerk.h: + * orbsvcs/orbsvcs/Time/TAO_Time_Service_Server.cpp: + * orbsvcs/orbsvcs/Time/TAO_Time_Service_Server.h: + * orbsvcs/orbsvcs/Time/TAO_UTO.cpp: + * orbsvcs/orbsvcs/Time/TAO_UTO.h: + * orbsvcs/orbsvcs/Time/Timer_Helper.cpp: + * orbsvcs/orbsvcs/Time/Timer_Helper.h: + * orbsvcs/orbsvcs/Trader/Constraint_Interpreter.cpp: + * orbsvcs/orbsvcs/Trader/Constraint_Interpreter.h: + * orbsvcs/orbsvcs/Trader/Constraint_Nodes.cpp: + * orbsvcs/orbsvcs/Trader/Constraint_Nodes.h: + * orbsvcs/orbsvcs/Trader/Constraint_Visitors.cpp: + * orbsvcs/orbsvcs/Trader/Constraint_Visitors.h: + * orbsvcs/orbsvcs/Trader/Constraint_l.cpp: + * orbsvcs/orbsvcs/Trader/Constraint_y.cpp: + * orbsvcs/orbsvcs/Trader/Interpreter.cpp: + * orbsvcs/orbsvcs/Trader/Interpreter.h: + * orbsvcs/orbsvcs/Trader/Interpreter_Utils.cpp: + * orbsvcs/orbsvcs/Trader/Interpreter_Utils.h: + * orbsvcs/orbsvcs/Trader/Interpreter_Utils_T.cpp: + * orbsvcs/orbsvcs/Trader/Interpreter_Utils_T.h: + * orbsvcs/orbsvcs/Trader/Locking.h: + * orbsvcs/orbsvcs/Trader/Offer_Database.cpp: + * orbsvcs/orbsvcs/Trader/Offer_Database.h: + * orbsvcs/orbsvcs/Trader/Offer_Iterators.cpp: + * orbsvcs/orbsvcs/Trader/Offer_Iterators.h: + * orbsvcs/orbsvcs/Trader/Offer_Iterators_T.cpp: + * orbsvcs/orbsvcs/Trader/Offer_Iterators_T.h: + * orbsvcs/orbsvcs/Trader/Service_Type_Repository.cpp: + * orbsvcs/orbsvcs/Trader/Service_Type_Repository.h: + * orbsvcs/orbsvcs/Trader/Trader.cpp: + * orbsvcs/orbsvcs/Trader/Trader.h: + * orbsvcs/orbsvcs/Trader/Trader_Constraint_Visitors.cpp: + * orbsvcs/orbsvcs/Trader/Trader_Constraint_Visitors.h: + * orbsvcs/orbsvcs/Trader/Trader_Interfaces.cpp: + * orbsvcs/orbsvcs/Trader/Trader_Interfaces.h: + * orbsvcs/orbsvcs/Trader/Trader_T.cpp: + * orbsvcs/orbsvcs/Trader/Trader_T.h: + * orbsvcs/orbsvcs/Trader/Trader_Utils.cpp: + * orbsvcs/orbsvcs/Trader/Trader_Utils.h: + * orbsvcs/orbsvcs/Trader/constraint.l: + * orbsvcs/orbsvcs/Trader/constraint.y: + + Added versioned namespace support. + +Tue Nov 15 07:44:59 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/Bug_2285_Regression/Makefile.am: + * orbsvcs/tests/Bug_2287_Regression/Makefile.am: + + Regenerate with a separate project for compiling *.idl files. + The corresponding *.mpc changes will be committed at a later + date since the repo is frozen. + +Tue Nov 15 06:56:51 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/Makefile.am: + * examples/POA/Explicit_Activation/Makefile.am: + * orbsvcs/Naming_Service/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/tests/Multiple/Makefile.am: + * orbsvcs/examples/Log/RTEvent/Makefile.am: + * orbsvcs/examples/Notify/Lanes/Makefile.am: + * orbsvcs/examples/Notify/ThreadPool/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + * orbsvcs/tests/Makefile.am: + * orbsvcs/tests/Notify/Basic/Makefile.am: + * orbsvcs/tests/Notify/Blocking/Makefile.am: + * orbsvcs/tests/Notify/Destroy/Makefile.am: + * orbsvcs/tests/Notify/Discarding/Makefile.am: + * orbsvcs/tests/Notify/Driver/Makefile.am: + * orbsvcs/tests/Notify/MT_Dispatching/Makefile.am: + * orbsvcs/tests/Notify/Ordering/Makefile.am: + * orbsvcs/tests/Notify/RT_lib/Makefile.am: + * orbsvcs/tests/Notify/Reconnecting/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/Structured_Filter/Makefile.am: + * orbsvcs/tests/Notify/Structured_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/lib/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Filter/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/RedGreen/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Throughput/Makefile.am: + * orbsvcs/tests/Security/Crash_Test/Makefile.am: + * orbsvcs/tests/Security/MT_IIOP_SSL/Makefile.am: + * orbsvcs/tests/Security/Secure_Invocation/Makefile.am: + * performance-tests/Makefile.am: + * tao/Makefile.am: + + Regenerated. + + * configure.ac: + + Add new files to AC_CONFIG_FILES. + + * examples/CSD_Strategy/Makefile.am: + * examples/CSD_Strategy/ThreadPool/Makefile.am: + * examples/CSD_Strategy/ThreadPool2/Makefile.am: + * examples/CSD_Strategy/ThreadPool3/Makefile.am: + * examples/CSD_Strategy/ThreadPool4/Makefile.am: + * examples/CSD_Strategy/ThreadPool5/Makefile.am: + * examples/CSD_Strategy/ThreadPool6/Makefile.am: + * orbsvcs/tests/Bug_2074_Regression/Makefile.am: + * orbsvcs/tests/Bug_2285_Regression/Makefile.am: + * orbsvcs/tests/Bug_2287_Regression/Makefile.am: + * performance-tests/CSD_Strategy/Makefile.am: + * performance-tests/CSD_Strategy/TestApps/Makefile.am: + * performance-tests/CSD_Strategy/TestInf/Makefile.am: + * performance-tests/CSD_Strategy/TestServant/Makefile.am: + + New files. + +Tue Nov 15 07:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/*: + Handle sequences of forward declared object references and + added some more unit tests + +Mon Nov 14 23:37:09 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp: + * examples/CSD_Strategy/ThreadPool4/Foo_i.cpp: + * examples/CSD_Strategy/ThreadPool5/Foo_i.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.cpp: + + Fixed memory leaks. + +Mon Nov 14 13:54:08 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/Makefile.am (libTAO_PortableGroup_la_SOURCES): + * orbsvcs/orbsvcs/PortableGroup/PG_Factory_Map.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Factory_Set.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Location_Map.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroup_Map.cpp: + + Removed empty map/set source files. + + * orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/BasicLogFactory_i.h: + * orbsvcs/orbsvcs/Log/EventLogConsumer.cpp: + * orbsvcs/orbsvcs/Log/EventLogConsumer.h: + * orbsvcs/orbsvcs/Log/EventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/EventLogFactory_i.h: + * orbsvcs/orbsvcs/Log/EventLogNotification.cpp: + * orbsvcs/orbsvcs/Log/EventLogNotification.h: + * orbsvcs/orbsvcs/Log/EventLog_i.cpp: + * orbsvcs/orbsvcs/Log/EventLog_i.h: + * orbsvcs/orbsvcs/Log/Hash_Iterator_i.cpp: + * orbsvcs/orbsvcs/Log/Hash_Iterator_i.h: + * orbsvcs/orbsvcs/Log/Hash_LogRecordStore.cpp: + * orbsvcs/orbsvcs/Log/Hash_LogRecordStore.h: + * orbsvcs/orbsvcs/Log/Hash_LogStore.cpp: + * orbsvcs/orbsvcs/Log/Hash_LogStore.h: + * orbsvcs/orbsvcs/Log/Hash_Persistence_Strategy.cpp: + * orbsvcs/orbsvcs/Log/Hash_Persistence_Strategy.h: + * orbsvcs/orbsvcs/Log/Iterator_i.cpp: + * orbsvcs/orbsvcs/Log/Iterator_i.h: + * orbsvcs/orbsvcs/Log/LogActivator.cpp: + * orbsvcs/orbsvcs/Log/LogActivator.h: + * orbsvcs/orbsvcs/Log/LogMgr_i.cpp: + * orbsvcs/orbsvcs/Log/LogMgr_i.h: + * orbsvcs/orbsvcs/Log/LogNotification.cpp: + * orbsvcs/orbsvcs/Log/LogNotification.h: + * orbsvcs/orbsvcs/Log/LogRecordStore.cpp: + * orbsvcs/orbsvcs/Log/LogRecordStore.h: + * orbsvcs/orbsvcs/Log/LogRecordStore_persist.cpp: + * orbsvcs/orbsvcs/Log/LogRecordStore_persist.h: + * orbsvcs/orbsvcs/Log/LogStore.h: + * orbsvcs/orbsvcs/Log/Log_Compaction_Handler.cpp: + * orbsvcs/orbsvcs/Log/Log_Compaction_Handler.h: + * orbsvcs/orbsvcs/Log/Log_Constraint_Interpreter.cpp: + * orbsvcs/orbsvcs/Log/Log_Constraint_Interpreter.h: + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp: + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.h: + * orbsvcs/orbsvcs/Log/Log_Flush_Handler.cpp: + * orbsvcs/orbsvcs/Log/Log_Flush_Handler.h: + * orbsvcs/orbsvcs/Log/Log_Persistence_Strategy.h: + * orbsvcs/orbsvcs/Log/Log_i.cpp: + * orbsvcs/orbsvcs/Log/Log_i.h: + * orbsvcs/orbsvcs/Log/NotifyLogConsumer.cpp: + * orbsvcs/orbsvcs/Log/NotifyLogConsumer.h: + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.h: + * orbsvcs/orbsvcs/Log/NotifyLogNotification.cpp: + * orbsvcs/orbsvcs/Log/NotifyLogNotification.h: + * orbsvcs/orbsvcs/Log/NotifyLog_i.cpp: + * orbsvcs/orbsvcs/Log/NotifyLog_i.h: + * orbsvcs/orbsvcs/Log/PersistStore.cpp: + * orbsvcs/orbsvcs/Log/PersistStore.h: + * orbsvcs/orbsvcs/Log/RTEventLogConsumer.cpp: + * orbsvcs/orbsvcs/Log/RTEventLogConsumer.h: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.h: + * orbsvcs/orbsvcs/Log/RTEventLogNotification.cpp: + * orbsvcs/orbsvcs/Log/RTEventLogNotification.h: + * orbsvcs/orbsvcs/Log/RTEventLog_i.cpp: + * orbsvcs/orbsvcs/Log/RTEventLog_i.h: + * orbsvcs/orbsvcs/Metrics/Metrics_FrameManager.h: + * orbsvcs/orbsvcs/Metrics/Metrics_LocalCache.h: + * orbsvcs/orbsvcs/Metrics/Metrics_LocalCache_T.cpp: + * orbsvcs/orbsvcs/Metrics/Metrics_LocalCache_T.h: + * orbsvcs/orbsvcs/Metrics/Metrics_Logger.cpp: + * orbsvcs/orbsvcs/Metrics/Metrics_Logger.h: + * orbsvcs/orbsvcs/Metrics/Metrics_UpcallMonitor.h: + * orbsvcs/orbsvcs/Metrics/Metrics_UpcallMonitor.i: + * orbsvcs/orbsvcs/Metrics/Metrics_UpcallMonitor_T.cpp: + * orbsvcs/orbsvcs/Metrics/Metrics_UpcallMonitor_T.h: + * orbsvcs/orbsvcs/Metrics/Metrics_UpcallMonitor_T.i: + * orbsvcs/orbsvcs/Metrics/Metrics_Utils.cpp: + * orbsvcs/orbsvcs/Metrics/Metrics_Utils.h: + * orbsvcs/orbsvcs/Metrics/Metrics_Utils.i: + * orbsvcs/orbsvcs/Naming/Bindings_Iterator_T.cpp: + * orbsvcs/orbsvcs/Naming/Bindings_Iterator_T.h: + * orbsvcs/orbsvcs/Naming/Entries.cpp: + * orbsvcs/orbsvcs/Naming/Entries.h: + * orbsvcs/orbsvcs/Naming/Flat_File_Persistence.cpp: + * orbsvcs/orbsvcs/Naming/Flat_File_Persistence.h: + * orbsvcs/orbsvcs/Naming/Hash_Naming_Context.cpp: + * orbsvcs/orbsvcs/Naming/Hash_Naming_Context.h: + * orbsvcs/orbsvcs/Naming/Naming_Client.cpp: + * orbsvcs/orbsvcs/Naming/Naming_Client.h: + * orbsvcs/orbsvcs/Naming/Naming_Context_Interface.cpp: + * orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h: + * orbsvcs/orbsvcs/Naming/Naming_Loader.cpp: + * orbsvcs/orbsvcs/Naming/Naming_Loader.h: + * orbsvcs/orbsvcs/Naming/Naming_Server.cpp: + * orbsvcs/orbsvcs/Naming/Naming_Server.h: + * orbsvcs/orbsvcs/Naming/Naming_Service_Container.cpp: + * orbsvcs/orbsvcs/Naming/Naming_Service_Container.h: + * orbsvcs/orbsvcs/Naming/Persistent_Context_Index.cpp: + * orbsvcs/orbsvcs/Naming/Persistent_Context_Index.h: + * orbsvcs/orbsvcs/Naming/Persistent_Entries.cpp: + * orbsvcs/orbsvcs/Naming/Persistent_Entries.h: + * orbsvcs/orbsvcs/Naming/Persistent_Naming_Context.cpp: + * orbsvcs/orbsvcs/Naming/Persistent_Naming_Context.h: + * orbsvcs/orbsvcs/Naming/Storable.h: + * orbsvcs/orbsvcs/Naming/Storable.inl: + * orbsvcs/orbsvcs/Naming/Storable_Naming_Context.cpp: + * orbsvcs/orbsvcs/Naming/Storable_Naming_Context.h: + * orbsvcs/orbsvcs/Naming/Storable_Naming_Context_Activator.cpp: + * orbsvcs/orbsvcs/Naming/Storable_Naming_Context_Activator.h: + * orbsvcs/orbsvcs/Naming/Transient_Naming_Context.cpp: + * orbsvcs/orbsvcs/Naming/Transient_Naming_Context.h: + * orbsvcs/orbsvcs/Notify/Admin.cpp: + * orbsvcs/orbsvcs/Notify/Admin.h: + * orbsvcs/orbsvcs/Notify/Admin.inl: + * orbsvcs/orbsvcs/Notify/AdminProperties.cpp: + * orbsvcs/orbsvcs/Notify/AdminProperties.h: + * orbsvcs/orbsvcs/Notify/AdminProperties.inl: + * orbsvcs/orbsvcs/Notify/Bit_Vector.cpp: + * orbsvcs/orbsvcs/Notify/Bit_Vector.h: + * orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp: + * orbsvcs/orbsvcs/Notify/Buffering_Strategy.h: + * orbsvcs/orbsvcs/Notify/Builder.cpp: + * orbsvcs/orbsvcs/Notify/Builder.h: + * orbsvcs/orbsvcs/Notify/Consumer.cpp: + * orbsvcs/orbsvcs/Notify/Consumer.h: + * orbsvcs/orbsvcs/Notify/Consumer.inl: + * orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp: + * orbsvcs/orbsvcs/Notify/ConsumerAdmin.h: + * orbsvcs/orbsvcs/Notify/Consumer_Map.h: + * orbsvcs/orbsvcs/Notify/Container_T.cpp: + * orbsvcs/orbsvcs/Notify/Container_T.h: + * orbsvcs/orbsvcs/Notify/Container_T.inl: + * orbsvcs/orbsvcs/Notify/CosNotify_Initializer.cpp: + * orbsvcs/orbsvcs/Notify/CosNotify_Initializer.h: + * orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp: + * orbsvcs/orbsvcs/Notify/CosNotify_Service.h: + * orbsvcs/orbsvcs/Notify/Default_Factory.cpp: + * orbsvcs/orbsvcs/Notify/Default_Factory.h: + * orbsvcs/orbsvcs/Notify/Delivery_Request.cpp: + * orbsvcs/orbsvcs/Notify/Delivery_Request.h: + * orbsvcs/orbsvcs/Notify/Delivery_Request.inl: + * orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp: + * orbsvcs/orbsvcs/Notify/ETCL_Filter.h: + * orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp: + * orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.h: + * orbsvcs/orbsvcs/Notify/Event.cpp: + * orbsvcs/orbsvcs/Notify/Event.h: + * orbsvcs/orbsvcs/Notify/Event.inl: + * orbsvcs/orbsvcs/Notify/EventChannel.cpp: + * orbsvcs/orbsvcs/Notify/EventChannel.h: + * orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp: + * orbsvcs/orbsvcs/Notify/EventChannelFactory.h: + * orbsvcs/orbsvcs/Notify/EventType.cpp: + * orbsvcs/orbsvcs/Notify/EventType.h: + * orbsvcs/orbsvcs/Notify/EventType.inl: + * orbsvcs/orbsvcs/Notify/EventTypeSeq.cpp: + * orbsvcs/orbsvcs/Notify/EventTypeSeq.h: + * orbsvcs/orbsvcs/Notify/Event_Manager.cpp: + * orbsvcs/orbsvcs/Notify/Event_Manager.h: + * orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.cpp: + * orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.h: + * orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.inl: + * orbsvcs/orbsvcs/Notify/Event_Map_T.cpp: + * orbsvcs/orbsvcs/Notify/Event_Map_T.h: + * orbsvcs/orbsvcs/Notify/Event_Map_T.inl: + * orbsvcs/orbsvcs/Notify/Event_Persistence_Factory.cpp: + * orbsvcs/orbsvcs/Notify/Event_Persistence_Factory.h: + * orbsvcs/orbsvcs/Notify/Event_Persistence_Strategy.h: + * orbsvcs/orbsvcs/Notify/Factory.h: + * orbsvcs/orbsvcs/Notify/FilterAdmin.cpp: + * orbsvcs/orbsvcs/Notify/FilterAdmin.h: + * orbsvcs/orbsvcs/Notify/FilterAdmin.inl: + * orbsvcs/orbsvcs/Notify/FilterFactory.h: + * orbsvcs/orbsvcs/Notify/Find_Worker_T.cpp: + * orbsvcs/orbsvcs/Notify/Find_Worker_T.h: + * orbsvcs/orbsvcs/Notify/Find_Worker_T.inl: + * orbsvcs/orbsvcs/Notify/ID_Factory.cpp: + * orbsvcs/orbsvcs/Notify/ID_Factory.h: + * orbsvcs/orbsvcs/Notify/ID_Factory.inl: + * orbsvcs/orbsvcs/Notify/Method_Request.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request.h: + * orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h: + * orbsvcs/orbsvcs/Notify/Method_Request_Event.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request_Event.h: + * orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h: + * orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.h: + * orbsvcs/orbsvcs/Notify/Method_Request_Updates.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request_Updates.h: + * orbsvcs/orbsvcs/Notify/Method_Request_Updates_T.cpp: + * orbsvcs/orbsvcs/Notify/Method_Request_Updates_T.inl: + * orbsvcs/orbsvcs/Notify/Name_Value_Pair.cpp: + * orbsvcs/orbsvcs/Notify/Name_Value_Pair.h: + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp: + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.h: + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp: + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h: + * orbsvcs/orbsvcs/Notify/Notify_Default_CO_Factory.cpp: + * orbsvcs/orbsvcs/Notify/Notify_Default_CO_Factory.h: + * orbsvcs/orbsvcs/Notify/Notify_Default_Collection_Factory.cpp: + * orbsvcs/orbsvcs/Notify/Notify_Default_Collection_Factory.h: + * orbsvcs/orbsvcs/Notify/Notify_Default_EMO_Factory.cpp: + * orbsvcs/orbsvcs/Notify/Notify_Default_EMO_Factory.h: + * orbsvcs/orbsvcs/Notify/Notify_Default_POA_Factory.cpp: + * orbsvcs/orbsvcs/Notify/Notify_Default_POA_Factory.h: + * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp: + * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.h: + * orbsvcs/orbsvcs/Notify/Notify_Extensions.cpp: + * orbsvcs/orbsvcs/Notify/Notify_Extensions.h: + * orbsvcs/orbsvcs/Notify/Object.cpp: + * orbsvcs/orbsvcs/Notify/Object.h: + * orbsvcs/orbsvcs/Notify/Object.inl: + * orbsvcs/orbsvcs/Notify/POA_Helper.cpp: + * orbsvcs/orbsvcs/Notify/POA_Helper.h: + * orbsvcs/orbsvcs/Notify/POA_Helper.inl: + * orbsvcs/orbsvcs/Notify/Peer.cpp: + * orbsvcs/orbsvcs/Notify/Peer.h: + * orbsvcs/orbsvcs/Notify/Persistent_File_Allocator.cpp: + * orbsvcs/orbsvcs/Notify/Persistent_File_Allocator.h: + * orbsvcs/orbsvcs/Notify/Properties.cpp: + * orbsvcs/orbsvcs/Notify/Properties.h: + * orbsvcs/orbsvcs/Notify/Properties.inl: + * orbsvcs/orbsvcs/Notify/Property.h: + * orbsvcs/orbsvcs/Notify/PropertySeq.cpp: + * orbsvcs/orbsvcs/Notify/PropertySeq.h: + * orbsvcs/orbsvcs/Notify/PropertySeq.inl: + * orbsvcs/orbsvcs/Notify/Property_Boolean.cpp: + * orbsvcs/orbsvcs/Notify/Property_Boolean.h: + * orbsvcs/orbsvcs/Notify/Property_Boolean.inl: + * orbsvcs/orbsvcs/Notify/Property_T.cpp: + * orbsvcs/orbsvcs/Notify/Property_T.h: + * orbsvcs/orbsvcs/Notify/Property_T.inl: + * orbsvcs/orbsvcs/Notify/Proxy.cpp: + * orbsvcs/orbsvcs/Notify/Proxy.h: + * orbsvcs/orbsvcs/Notify/Proxy.inl: + * orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp: + * orbsvcs/orbsvcs/Notify/ProxyConsumer.h: + * orbsvcs/orbsvcs/Notify/ProxyConsumer.inl: + * orbsvcs/orbsvcs/Notify/ProxyConsumer_T.cpp: + * orbsvcs/orbsvcs/Notify/ProxyConsumer_T.h: + * orbsvcs/orbsvcs/Notify/ProxySupplier.cpp: + * orbsvcs/orbsvcs/Notify/ProxySupplier.h: + * orbsvcs/orbsvcs/Notify/ProxySupplier.inl: + * orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp: + * orbsvcs/orbsvcs/Notify/ProxySupplier_T.h: + * orbsvcs/orbsvcs/Notify/Proxy_T.cpp: + * orbsvcs/orbsvcs/Notify/Proxy_T.h: + * orbsvcs/orbsvcs/Notify/QoSProperties.cpp: + * orbsvcs/orbsvcs/Notify/QoSProperties.h: + * orbsvcs/orbsvcs/Notify/QoSProperties.inl: + * orbsvcs/orbsvcs/Notify/RT_Builder.cpp: + * orbsvcs/orbsvcs/Notify/RT_Builder.h: + * orbsvcs/orbsvcs/Notify/RT_Factory.cpp: + * orbsvcs/orbsvcs/Notify/RT_Factory.h: + * orbsvcs/orbsvcs/Notify/RT_Notify_Service.cpp: + * orbsvcs/orbsvcs/Notify/RT_Notify_Service.h: + * orbsvcs/orbsvcs/Notify/RT_POA_Helper.cpp: + * orbsvcs/orbsvcs/Notify/RT_POA_Helper.h: + * orbsvcs/orbsvcs/Notify/RT_Properties.cpp: + * orbsvcs/orbsvcs/Notify/RT_Properties.h: + * orbsvcs/orbsvcs/Notify/RT_Properties.inl: + * orbsvcs/orbsvcs/Notify/Random_File.cpp: + * orbsvcs/orbsvcs/Notify/Random_File.h: + * orbsvcs/orbsvcs/Notify/Reactive_Task.cpp: + * orbsvcs/orbsvcs/Notify/Reactive_Task.h: + * orbsvcs/orbsvcs/Notify/Reactive_Task.inl: + * orbsvcs/orbsvcs/Notify/Reconnect_Worker_T.cpp: + * orbsvcs/orbsvcs/Notify/Reconnect_Worker_T.h: + * orbsvcs/orbsvcs/Notify/Reconnection_Registry.cpp: + * orbsvcs/orbsvcs/Notify/Reconnection_Registry.h: + * orbsvcs/orbsvcs/Notify/Refcountable.cpp: + * orbsvcs/orbsvcs/Notify/Refcountable.h: + * orbsvcs/orbsvcs/Notify/Refcountable_Guard_T.h: + * orbsvcs/orbsvcs/Notify/Refcountable_Guard_T.inl: + * orbsvcs/orbsvcs/Notify/Routing_Slip.cpp: + * orbsvcs/orbsvcs/Notify/Routing_Slip.h: + * orbsvcs/orbsvcs/Notify/Routing_Slip_Persistence_Manager.cpp: + * orbsvcs/orbsvcs/Notify/Routing_Slip_Persistence_Manager.h: + * orbsvcs/orbsvcs/Notify/Routing_Slip_Queue.cpp: + * orbsvcs/orbsvcs/Notify/Routing_Slip_Queue.h: + * orbsvcs/orbsvcs/Notify/Save_Persist_Worker_T.cpp: + * orbsvcs/orbsvcs/Notify/Save_Persist_Worker_T.h: + * orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp: + * orbsvcs/orbsvcs/Notify/Seq_Worker_T.h: + * orbsvcs/orbsvcs/Notify/Seq_Worker_T.inl: + * orbsvcs/orbsvcs/Notify/Service.cpp: + * orbsvcs/orbsvcs/Notify/Service.h: + * orbsvcs/orbsvcs/Notify/Standard_Event_Persistence.cpp: + * orbsvcs/orbsvcs/Notify/Standard_Event_Persistence.h: + * orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.cpp: + * orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.h: + * orbsvcs/orbsvcs/Notify/Supplier.cpp: + * orbsvcs/orbsvcs/Notify/Supplier.h: + * orbsvcs/orbsvcs/Notify/Supplier.inl: + * orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp: + * orbsvcs/orbsvcs/Notify/SupplierAdmin.h: + * orbsvcs/orbsvcs/Notify/Supplier_Map.h: + * orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp: + * orbsvcs/orbsvcs/Notify/ThreadPool_Task.h: + * orbsvcs/orbsvcs/Notify/Timer.h: + * orbsvcs/orbsvcs/Notify/Timer_Queue.cpp: + * orbsvcs/orbsvcs/Notify/Timer_Queue.h: + * orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp: + * orbsvcs/orbsvcs/Notify/Timer_Reactor.h: + * orbsvcs/orbsvcs/Notify/Topology_Factory.h: + * orbsvcs/orbsvcs/Notify/Topology_Loader.cpp: + * orbsvcs/orbsvcs/Notify/Topology_Loader.h: + * orbsvcs/orbsvcs/Notify/Topology_Object.cpp: + * orbsvcs/orbsvcs/Notify/Topology_Object.h: + * orbsvcs/orbsvcs/Notify/Topology_Object.inl: + * orbsvcs/orbsvcs/Notify/Topology_Saver.cpp: + * orbsvcs/orbsvcs/Notify/Topology_Saver.h: + * orbsvcs/orbsvcs/Notify/Worker_Task.cpp: + * orbsvcs/orbsvcs/Notify/Worker_Task.h: + * orbsvcs/orbsvcs/Notify/XML_Loader.cpp: + * orbsvcs/orbsvcs/Notify/XML_Loader.h: + * orbsvcs/orbsvcs/Notify/XML_Saver.cpp: + * orbsvcs/orbsvcs/Notify/XML_Saver.h: + * orbsvcs/orbsvcs/Notify/XML_Topology_Factory.cpp: + * orbsvcs/orbsvcs/Notify/XML_Topology_Factory.h: + * orbsvcs/orbsvcs/Notify/Any/AnyEvent.cpp: + * orbsvcs/orbsvcs/Notify/Any/AnyEvent.h: + * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Any/PushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Any/PushConsumer.h: + * orbsvcs/orbsvcs/Notify/Any/PushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Any/PushSupplier.h: + * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushConsumer.h: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h: + * orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredEvent.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredEvent.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.h: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.cpp: + * orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.h: + * orbsvcs/orbsvcs/PortableGroup/GOA.cpp: + * orbsvcs/orbsvcs/PortableGroup/GOA.h: + * orbsvcs/orbsvcs/PortableGroup/MIOP.cpp: + * orbsvcs/orbsvcs/PortableGroup/MIOP.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Default_Property_Validator.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Default_Property_Validator.h: + * orbsvcs/orbsvcs/PortableGroup/PG_FactoryRegistry.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_FactoryRegistry.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Factory_Map.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Factory_Set.h: + * orbsvcs/orbsvcs/PortableGroup/PG_GenericFactory.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_GenericFactory.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Group_Guard.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Group_Guard.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Location_Equal_To.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Location_Equal_To.inl: + * orbsvcs/orbsvcs/PortableGroup/PG_Location_Hash.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Location_Hash.inl: + * orbsvcs/orbsvcs/PortableGroup/PG_Location_Map.h: + * orbsvcs/orbsvcs/PortableGroup/PG_MemberInfo.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_MemberInfo.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Null_Property_Validator.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Null_Property_Validator.h: + * orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroupManager.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroupManager.h: + * orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroup_Map.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Adapter_Factory.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Adapter_Factory.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group_Manipulator.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group_Manipulator.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Operators.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Operators.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Properties_Encoder.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Properties_Encoder.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Properties_Encoder.inl: + * orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h: + * orbsvcs/orbsvcs/PortableGroup/PG_PropertyManager.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_PropertyManager.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Property_Set.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Property_Set.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Property_Set_Find.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Property_Utils.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Property_Utils.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Servant_Dispatcher.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Servant_Dispatcher.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Utils.cpp: + * orbsvcs/orbsvcs/PortableGroup/PG_Utils.h: + * orbsvcs/orbsvcs/PortableGroup/PG_conf.h: + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Acceptor_Registry.cpp: + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Acceptor_Registry.h: + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Loader.cpp: + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Loader.h: + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp: + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.h: + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Request_Dispatcher.cpp: + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Request_Dispatcher.h: + * orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.cpp: + * orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Acceptor.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Acceptor.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Acceptor.i: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connector.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connector.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Endpoint.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Endpoint.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Endpoint.i: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Factory.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Factory.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Message_Block_Data_Iterator.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Message_Block_Data_Iterator.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Profile.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Profile.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Wait_Never.h: + + Added versioned namespace support. + +Mon Nov 14 15:00:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_traits.cpp: + * TAO_IDL/be/be_visitor_component/component_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + The first argument of Objref_Traits::marshal should be + a const argument + +Mon Nov 14 09:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/unbounded_octet_sequence.hpp: + Fixed compile error with HPUX + +Mon Nov 14 07:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/mock_stream.{hpp,cpp}: + * tests/Sequence_Unit_Tests/fwd_mock_reference.{hpp,cpp}: + New mock_stream and fwd_mock_reference, needed for some more unit + tests + +Sun Nov 13 12:15:58 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B.idl: + + Changed the done() method to be oneway to see if this fixes TRANSIENT + exception caught on VXWORKS builds. + + * tests/CSD_Strategy_Tests/TP_Test_1/run_test.pl: + + Extended timeout for server process startup to see if this fixes + server.ior not found problem on VXWORKS builds. + +Sat Nov 12 09:55:33 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Change "FaultTolerance/FT_IOGR_Property.i" to + "FaultTolerance/FT_IOGR_Property.inl". + + Remove "ETCL/ETCL_Constraint.i". + +Sat Nov 12 01:34:26 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/CosLoadBalancing.mpc: + * orbsvcs/orbsvcs/Makefile.am: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlertMap.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadListMap.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadMap.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_Location_Index_Map.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_MonitorMap.cpp: + + Removed empty LoadBalancing/*Map.cpp source files. + + * orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.cpp: + * orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.h: + * orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.cpp: + * orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.h: + * orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.cpp: + * orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Basic_Replication_Strategy.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Basic_Replication_Strategy.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.inl: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel_Impl.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel_Impl.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Fault_Listener.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ORBInitializer.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ORBInitializer.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Listener.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxyConsumerStateWorker.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxyConsumerStateWorker.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/SCTP_Fault_Detector.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/SCTP_Fault_Detector.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Set_Update_Interceptor.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Set_Update_Interceptor.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Update_Manager.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Update_Manager.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/replace_key.cpp: + * orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp: + * orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.h: + * orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.inl: + * orbsvcs/orbsvcs/FtRtEvent/Utils/Log.cpp: + * orbsvcs/orbsvcs/FtRtEvent/Utils/Log.h: + * orbsvcs/orbsvcs/FtRtEvent/Utils/Log.inl: + * orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.h: + * orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.inl: + * orbsvcs/orbsvcs/FtRtEvent/Utils/ScopeGuard.h: + * orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.cpp: + * orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.h: + * orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.inl: + * orbsvcs/orbsvcs/FtRtEvent/Utils/activate_with_id.h: + * orbsvcs/orbsvcs/FtRtEvent/Utils/resolve_init.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor.i: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor_Impl.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor_Impl.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Completion_Handler.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Completion_Handler.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connection_Handler.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connection_Handler.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connector_Impl.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connector_Impl.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Endpoint.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Endpoint.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Endpoint.i: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Factory.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Factory.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Profile.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Profile.h: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h: + * orbsvcs/orbsvcs/HTIOP/htiop_endpointsC.cpp: + * orbsvcs/orbsvcs/HTIOP/htiop_endpointsC.h: + * orbsvcs/orbsvcs/IFRService/AbstractInterfaceDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/AbstractInterfaceDef_i.h: + * orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/AliasDef_i.h: + * orbsvcs/orbsvcs/IFRService/ArrayDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ArrayDef_i.h: + * orbsvcs/orbsvcs/IFRService/AttributeDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/AttributeDef_i.h: + * orbsvcs/orbsvcs/IFRService/ComponentContainer_i.cpp: + * orbsvcs/orbsvcs/IFRService/ComponentContainer_i.h: + * orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ComponentDef_i.h: + * orbsvcs/orbsvcs/IFRService/ComponentModuleDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ComponentModuleDef_i.h: + * orbsvcs/orbsvcs/IFRService/ComponentRepository_i.cpp: + * orbsvcs/orbsvcs/IFRService/ComponentRepository_i.h: + * orbsvcs/orbsvcs/IFRService/ConstantDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ConstantDef_i.h: + * orbsvcs/orbsvcs/IFRService/ConsumesDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ConsumesDef_i.h: + * orbsvcs/orbsvcs/IFRService/Contained_i.cpp: + * orbsvcs/orbsvcs/IFRService/Contained_i.h: + * orbsvcs/orbsvcs/IFRService/Container_i.cpp: + * orbsvcs/orbsvcs/IFRService/Container_i.h: + * orbsvcs/orbsvcs/IFRService/EmitsDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/EmitsDef_i.h: + * orbsvcs/orbsvcs/IFRService/EnumDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/EnumDef_i.h: + * orbsvcs/orbsvcs/IFRService/EventDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/EventDef_i.h: + * orbsvcs/orbsvcs/IFRService/EventPortDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/EventPortDef_i.h: + * orbsvcs/orbsvcs/IFRService/ExceptionDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ExceptionDef_i.h: + * orbsvcs/orbsvcs/IFRService/ExtAbstractInterfaceDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ExtAbstractInterfaceDef_i.h: + * orbsvcs/orbsvcs/IFRService/ExtAttributeDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ExtAttributeDef_i.h: + * orbsvcs/orbsvcs/IFRService/ExtInterfaceDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ExtInterfaceDef_i.h: + * orbsvcs/orbsvcs/IFRService/ExtLocalInterfaceDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ExtLocalInterfaceDef_i.h: + * orbsvcs/orbsvcs/IFRService/ExtValueDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ExtValueDef_i.h: + * orbsvcs/orbsvcs/IFRService/FactoryDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/FactoryDef_i.h: + * orbsvcs/orbsvcs/IFRService/FinderDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/FinderDef_i.h: + * orbsvcs/orbsvcs/IFRService/FixedDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/FixedDef_i.h: + * orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/HomeDef_i.h: + * orbsvcs/orbsvcs/IFRService/IDLType_i.cpp: + * orbsvcs/orbsvcs/IFRService/IDLType_i.h: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Loader.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Loader.h: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.h: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.h: + * orbsvcs/orbsvcs/IFRService/IRObject_i.cpp: + * orbsvcs/orbsvcs/IFRService/IRObject_i.h: + * orbsvcs/orbsvcs/IFRService/InterfaceAttrExtension_i.cpp: + * orbsvcs/orbsvcs/IFRService/InterfaceAttrExtension_i.h: + * orbsvcs/orbsvcs/IFRService/InterfaceDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/InterfaceDef_i.h: + * orbsvcs/orbsvcs/IFRService/LocalInterfaceDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/LocalInterfaceDef_i.h: + * orbsvcs/orbsvcs/IFRService/ModuleDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ModuleDef_i.h: + * orbsvcs/orbsvcs/IFRService/NativeDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/NativeDef_i.h: + * orbsvcs/orbsvcs/IFRService/OperationDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/OperationDef_i.h: + * orbsvcs/orbsvcs/IFRService/Options.cpp: + * orbsvcs/orbsvcs/IFRService/Options.h: + * orbsvcs/orbsvcs/IFRService/PrimitiveDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/PrimitiveDef_i.h: + * orbsvcs/orbsvcs/IFRService/RecursDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/RecursDef_i.h: + * orbsvcs/orbsvcs/IFRService/Repository_i.cpp: + * orbsvcs/orbsvcs/IFRService/Repository_i.h: + * orbsvcs/orbsvcs/IFRService/SequenceDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/SequenceDef_i.h: + * orbsvcs/orbsvcs/IFRService/StringDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/StringDef_i.h: + * orbsvcs/orbsvcs/IFRService/StructDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/StructDef_i.h: + * orbsvcs/orbsvcs/IFRService/TypedefDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/TypedefDef_i.h: + * orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/UnionDef_i.h: + * orbsvcs/orbsvcs/IFRService/UsesDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/UsesDef_i.h: + * orbsvcs/orbsvcs/IFRService/ValueBoxDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ValueBoxDef_i.h: + * orbsvcs/orbsvcs/IFRService/ValueDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ValueDef_i.h: + * orbsvcs/orbsvcs/IFRService/ValueMemberDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ValueMemberDef_i.h: + * orbsvcs/orbsvcs/IFRService/WstringDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/WstringDef_i.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_CPU_Load_Average_Monitor.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_CPU_Load_Average_Monitor.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_CPU_Utilization_Monitor.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_CPU_Utilization_Monitor.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_ClientComponent.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_ClientComponent.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_ClientORBInitializer.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_ClientORBInitializer.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_ClientRequestInterceptor.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_ClientRequestInterceptor.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_Component.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_Component.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_IORInterceptor.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_IORInterceptor.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LeastLoaded.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_LeastLoaded.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LeastLoaded.inl: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlert.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlert.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlert.inl: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlertInfo.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlertInfo.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlertMap.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlert_Handler.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAverage.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAverage.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAverage.inl: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadListMap.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadManager.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadManager.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadMap.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadMinimum.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadMinimum.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadMinimum.inl: + * orbsvcs/orbsvcs/LoadBalancing/LB_Location_Index_Map.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_MemberLocator.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_MemberLocator.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_ORBInitializer.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_ORBInitializer.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_ObjectReferenceFactory.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_ObjectReferenceFactory.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_Random.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_Random.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_RoundRobin.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_RoundRobin.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_ServerRequestInterceptor.cpp: + * orbsvcs/orbsvcs/LoadBalancing/LB_ServerRequestInterceptor.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_conf.h: + + Added versioned namespace support. + +Fri Nov 11 08:55:05 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h: + + Include "tao/Versioned_Namespace.h" for + TAO_BEGIN_VERSIONED_NAMESPACE_DECL macro definition. + +Fri Nov 11 08:50:02 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp: + + Include "ace/OS_NS_unistd.h" for ACE_OS::getgid() prototype. + +Thu Nov 10 10:18:20 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp: + + Merged a bug fix from OCI 1.4a. + "Thu Nov 10 02:34:04 2005 Ciju John <john_c@ociweb.com>" + +Thu Nov 10 10:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.cpp: + Fixed incorrect macro + +Wed Nov 9 22:34:24 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/Channel_Clients_T.cpp: + * orbsvcs/orbsvcs/Channel_Clients_T.h: + * orbsvcs/orbsvcs/Channel_Clients_T.i: + * orbsvcs/orbsvcs/Event_Service_Constants.h: + * orbsvcs/orbsvcs/Event_Utilities.cpp: + * orbsvcs/orbsvcs/Event_Utilities.h: + * orbsvcs/orbsvcs/Event_Utilities.i: + * orbsvcs/orbsvcs/IOR_Multicast.cpp: + * orbsvcs/orbsvcs/IOR_Multicast.h: + * orbsvcs/orbsvcs/Makefile.am: + * orbsvcs/orbsvcs/RTEvent_Serv.mpc: + * orbsvcs/orbsvcs/Runtime_Scheduler.cpp: + * orbsvcs/orbsvcs/Runtime_Scheduler.h: + * orbsvcs/orbsvcs/Shutdown_Utilities.cpp: + * orbsvcs/orbsvcs/Shutdown_Utilities.h: + * orbsvcs/orbsvcs/Time_Utilities.cpp: + * orbsvcs/orbsvcs/Time_Utilities.h: + * orbsvcs/orbsvcs/Time_Utilities.i: + * orbsvcs/orbsvcs/AV/AVStreams_i.cpp: + * orbsvcs/orbsvcs/AV/AVStreams_i.h: + * orbsvcs/orbsvcs/AV/AVStreams_i.i: + * orbsvcs/orbsvcs/AV/AV_Core.cpp: + * orbsvcs/orbsvcs/AV/AV_Core.h: + * orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp: + * orbsvcs/orbsvcs/AV/Endpoint_Strategy.h: + * orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp: + * orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h: + * orbsvcs/orbsvcs/AV/Fill_ACE_QoS.cpp: + * orbsvcs/orbsvcs/AV/Fill_ACE_QoS.h: + * orbsvcs/orbsvcs/AV/FlowSpec_Entry.cpp: + * orbsvcs/orbsvcs/AV/FlowSpec_Entry.h: + * orbsvcs/orbsvcs/AV/FlowSpec_Entry.i: + * orbsvcs/orbsvcs/AV/Flows_T.cpp: + * orbsvcs/orbsvcs/AV/Flows_T.h: + * orbsvcs/orbsvcs/AV/MCast.cpp: + * orbsvcs/orbsvcs/AV/MCast.h: + * orbsvcs/orbsvcs/AV/MCast.i: + * orbsvcs/orbsvcs/AV/Policy.cpp: + * orbsvcs/orbsvcs/AV/Policy.h: + * orbsvcs/orbsvcs/AV/Policy.i: + * orbsvcs/orbsvcs/AV/Protocol_Factory.cpp: + * orbsvcs/orbsvcs/AV/Protocol_Factory.h: + * orbsvcs/orbsvcs/AV/QoS_UDP.cpp: + * orbsvcs/orbsvcs/AV/QoS_UDP.h: + * orbsvcs/orbsvcs/AV/QoS_UDP.i: + * orbsvcs/orbsvcs/AV/RTCP.cpp: + * orbsvcs/orbsvcs/AV/RTCP.h: + * orbsvcs/orbsvcs/AV/RTCP_Channel.cpp: + * orbsvcs/orbsvcs/AV/RTCP_Channel.h: + * orbsvcs/orbsvcs/AV/RTCP_Packet.cpp: + * orbsvcs/orbsvcs/AV/RTCP_Packet.h: + * orbsvcs/orbsvcs/AV/RTP.cpp: + * orbsvcs/orbsvcs/AV/RTP.h: + * orbsvcs/orbsvcs/AV/Resource_Factory.h: + * orbsvcs/orbsvcs/AV/SCTP_SEQ.cpp: + * orbsvcs/orbsvcs/AV/SCTP_SEQ.h: + * orbsvcs/orbsvcs/AV/TCP.cpp: + * orbsvcs/orbsvcs/AV/TCP.h: + * orbsvcs/orbsvcs/AV/Transport.cpp: + * orbsvcs/orbsvcs/AV/Transport.h: + * orbsvcs/orbsvcs/AV/Transport.i: + * orbsvcs/orbsvcs/AV/UDP.cpp: + * orbsvcs/orbsvcs/AV/UDP.h: + * orbsvcs/orbsvcs/AV/UDP.i: + * orbsvcs/orbsvcs/AV/default_resource.cpp: + * orbsvcs/orbsvcs/AV/default_resource.h: + * orbsvcs/orbsvcs/AV/media_timer.cpp: + * orbsvcs/orbsvcs/AV/media_timer.h: + * orbsvcs/orbsvcs/AV/ntp-time.h: + * orbsvcs/orbsvcs/AV/sfp.cpp: + * orbsvcs/orbsvcs/AV/sfp.h: + * orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp: + * orbsvcs/orbsvcs/Concurrency/CC_Lock.h: + * orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp: + * orbsvcs/orbsvcs/Concurrency/CC_LockSet.h: + * orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.cpp: + * orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.h: + * orbsvcs/orbsvcs/Concurrency/Concurrency_Loader.cpp: + * orbsvcs/orbsvcs/Concurrency/Concurrency_Loader.h: + * orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp: + * orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.i: + * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.i: + * orbsvcs/orbsvcs/CosEvent/CEC_Defaults.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.i: + * orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.h: + * orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.i: + * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h: + * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.i: + * orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Factory.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h: + * orbsvcs/orbsvcs/CosEvent/CEC_MT_Dispatching.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_MT_Dispatching.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.i: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.i: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.i: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.h: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.i: + * orbsvcs/orbsvcs/CosEvent/CEC_Pulling_Strategy.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Pulling_Strategy.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.i: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.i: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.i: + * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.h: + * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.i: + * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedConsumerAdmin.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedConsumerAdmin.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedConsumerAdmin.i: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEvent.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEvent.i: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.i: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.i: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedSupplierAdmin.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedSupplierAdmin.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedSupplierAdmin.i: + * orbsvcs/orbsvcs/ESF/ESF_Busy_Lock.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Busy_Lock.h: + * orbsvcs/orbsvcs/ESF/ESF_Busy_Lock.i: + * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.h: + * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.h: + * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.i: + * orbsvcs/orbsvcs/ESF/ESF_Defaults.h: + * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.h: + * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.i: + * orbsvcs/orbsvcs/ESF/ESF_Delayed_Command.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Delayed_Command.h: + * orbsvcs/orbsvcs/ESF/ESF_Delayed_Command.i: + * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.h: + * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.i: + * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.h: + * orbsvcs/orbsvcs/ESF/ESF_Peer_Workers.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Peer_Workers.h: + * orbsvcs/orbsvcs/ESF/ESF_Peer_Workers.i: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.h: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.i: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_Collection.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_Collection.h: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_List.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_List.h: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_List.i: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_RB_Tree.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_RB_Tree.h: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_RB_Tree.i: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_RefCount_Guard.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_RefCount_Guard.h: + * orbsvcs/orbsvcs/ESF/ESF_Proxy_RefCount_Guard.i: + * orbsvcs/orbsvcs/ESF/ESF_RefCount_Guard.h: + * orbsvcs/orbsvcs/ESF/ESF_RefCount_Guard.i: + * orbsvcs/orbsvcs/ESF/ESF_Shutdown_Proxy.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Shutdown_Proxy.h: + * orbsvcs/orbsvcs/ESF/ESF_Shutdown_Proxy.i: + * orbsvcs/orbsvcs/ESF/ESF_Worker.cpp: + * orbsvcs/orbsvcs/ESF/ESF_Worker.h: + * orbsvcs/orbsvcs/ETCL/ETCL.ll: + * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.cpp: + * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.i: + * orbsvcs/orbsvcs/ETCL/ETCL_Constraint_Visitor.h: + * orbsvcs/orbsvcs/ETCL/ETCL_Interpreter.cpp: + * orbsvcs/orbsvcs/ETCL/ETCL_Interpreter.h: + * orbsvcs/orbsvcs/ETCL/ETCL_l.cpp: + * orbsvcs/orbsvcs/Event/ECG_Adapters.cpp: + * orbsvcs/orbsvcs/Event/ECG_Adapters.h: + * orbsvcs/orbsvcs/Event/ECG_Address_Server_Base.cpp: + * orbsvcs/orbsvcs/Event/ECG_Address_Server_Base.h: + * orbsvcs/orbsvcs/Event/ECG_CDR_Message_Receiver.cpp: + * orbsvcs/orbsvcs/Event/ECG_CDR_Message_Receiver.h: + * orbsvcs/orbsvcs/Event/ECG_CDR_Message_Receiver.i: + * orbsvcs/orbsvcs/Event/ECG_CDR_Message_Sender.cpp: + * orbsvcs/orbsvcs/Event/ECG_CDR_Message_Sender.h: + * orbsvcs/orbsvcs/Event/ECG_CDR_Message_Sender.i: + * orbsvcs/orbsvcs/Event/ECG_Complex_Address_Server.cpp: + * orbsvcs/orbsvcs/Event/ECG_Complex_Address_Server.h: + * orbsvcs/orbsvcs/Event/ECG_Complex_Address_Server.i: + * orbsvcs/orbsvcs/Event/ECG_ConsumerEC_Control.cpp: + * orbsvcs/orbsvcs/Event/ECG_ConsumerEC_Control.h: + * orbsvcs/orbsvcs/Event/ECG_Defaults.h: + * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp: + * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.h: + * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.i: + * orbsvcs/orbsvcs/Event/ECG_Mcast_Gateway.cpp: + * orbsvcs/orbsvcs/Event/ECG_Mcast_Gateway.h: + * orbsvcs/orbsvcs/Event/ECG_Mcast_Gateway.i: + * orbsvcs/orbsvcs/Event/ECG_Reactive_ConsumerEC_Control.cpp: + * orbsvcs/orbsvcs/Event/ECG_Reactive_ConsumerEC_Control.h: + * orbsvcs/orbsvcs/Event/ECG_Reconnect_ConsumerEC_Control.cpp: + * orbsvcs/orbsvcs/Event/ECG_Reconnect_ConsumerEC_Control.h: + * orbsvcs/orbsvcs/Event/ECG_Simple_Address_Server.cpp: + * orbsvcs/orbsvcs/Event/ECG_Simple_Address_Server.h: + * orbsvcs/orbsvcs/Event/ECG_Simple_Address_Server.i: + * orbsvcs/orbsvcs/Event/ECG_Simple_Mcast_EH.cpp: + * orbsvcs/orbsvcs/Event/ECG_Simple_Mcast_EH.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_EH.cpp: + * orbsvcs/orbsvcs/Event/ECG_UDP_EH.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_EH.i: + * orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.cpp: + * orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.i: + * orbsvcs/orbsvcs/Event/ECG_UDP_Protocol.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.cpp: + * orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.i: + * orbsvcs/orbsvcs/Event/ECG_UDP_Sender.cpp: + * orbsvcs/orbsvcs/Event/ECG_UDP_Sender.h: + * orbsvcs/orbsvcs/Event/ECG_UDP_Sender.inl: + * orbsvcs/orbsvcs/Event/EC_And_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_And_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_Basic_Factory.h: + * orbsvcs/orbsvcs/Event/EC_Basic_Filter_Builder.cpp: + * orbsvcs/orbsvcs/Event/EC_Basic_Filter_Builder.h: + * orbsvcs/orbsvcs/Event/EC_Basic_Filter_Builder.i: + * orbsvcs/orbsvcs/Event/EC_Bitmask_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Bitmask_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Busy_Lock.cpp: + * orbsvcs/orbsvcs/Event/EC_Busy_Lock.h: + * orbsvcs/orbsvcs/Event/EC_Busy_Lock.i: + * orbsvcs/orbsvcs/Event/EC_Channel_Destroyer.cpp: + * orbsvcs/orbsvcs/Event/EC_Channel_Destroyer.h: + * orbsvcs/orbsvcs/Event/EC_Conjunction_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Conjunction_Filter.h: + * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp: + * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h: + * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_Default_Factory.i: + * orbsvcs/orbsvcs/Event/EC_Default_ProxyConsumer.cpp: + * orbsvcs/orbsvcs/Event/EC_Default_ProxyConsumer.h: + * orbsvcs/orbsvcs/Event/EC_Default_ProxySupplier.cpp: + * orbsvcs/orbsvcs/Event/EC_Default_ProxySupplier.h: + * orbsvcs/orbsvcs/Event/EC_Disjunction_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Disjunction_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp: + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h: + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.i: + * orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp: + * orbsvcs/orbsvcs/Event/EC_Event_Channel.h: + * orbsvcs/orbsvcs/Event/EC_Event_Channel_Base.cpp: + * orbsvcs/orbsvcs/Event/EC_Event_Channel_Base.h: + * orbsvcs/orbsvcs/Event/EC_Event_Channel_Base.i: + * orbsvcs/orbsvcs/Event/EC_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_Factory.h: + * orbsvcs/orbsvcs/Event/EC_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Filter.i: + * orbsvcs/orbsvcs/Event/EC_Filter_Builder.cpp: + * orbsvcs/orbsvcs/Event/EC_Filter_Builder.h: + * orbsvcs/orbsvcs/Event/EC_Filter_Builder.i: + * orbsvcs/orbsvcs/Event/EC_Gateway.cpp: + * orbsvcs/orbsvcs/Event/EC_Gateway.h: + * orbsvcs/orbsvcs/Event/EC_Gateway_IIOP.cpp: + * orbsvcs/orbsvcs/Event/EC_Gateway_IIOP.h: + * orbsvcs/orbsvcs/Event/EC_Gateway_IIOP_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_Gateway_IIOP_Factory.h: + * orbsvcs/orbsvcs/Event/EC_Gateway_IIOP_Factory.i: + * orbsvcs/orbsvcs/Event/EC_Gateway_Sched.cpp: + * orbsvcs/orbsvcs/Event/EC_Gateway_Sched.h: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.i: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.h: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.i: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.h: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.i: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.h: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.i: + * orbsvcs/orbsvcs/Event/EC_Lifetime_Utils.h: + * orbsvcs/orbsvcs/Event/EC_Lifetime_Utils.i: + * orbsvcs/orbsvcs/Event/EC_Lifetime_Utils_T.cpp: + * orbsvcs/orbsvcs/Event/EC_Lifetime_Utils_T.h: + * orbsvcs/orbsvcs/Event/EC_Lifetime_Utils_T.i: + * orbsvcs/orbsvcs/Event/EC_MT_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_MT_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_Masked_Type_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Masked_Type_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Negation_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Negation_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_Null_Factory.h: + * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp: + * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h: + * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.i: + * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.i: + * orbsvcs/orbsvcs/Event/EC_Prefix_Filter_Builder.cpp: + * orbsvcs/orbsvcs/Event/EC_Prefix_Filter_Builder.h: + * orbsvcs/orbsvcs/Event/EC_Prefix_Filter_Builder.i: + * orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_Priority_Scheduling.cpp: + * orbsvcs/orbsvcs/Event/EC_Priority_Scheduling.h: + * orbsvcs/orbsvcs/Event/EC_Priority_Scheduling.i: + * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: + * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: + * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.i: + * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: + * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h: + * orbsvcs/orbsvcs/Event/EC_ProxySupplier.i: + * orbsvcs/orbsvcs/Event/EC_Proxy_Disconnector.cpp: + * orbsvcs/orbsvcs/Event/EC_Proxy_Disconnector.h: + * orbsvcs/orbsvcs/Event/EC_QOS_Info.h: + * orbsvcs/orbsvcs/Event/EC_QOS_Info.i: + * orbsvcs/orbsvcs/Event/EC_RTCORBA_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_RTCORBA_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_RTCORBA_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_RTCORBA_Factory.h: + * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp: + * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h: + * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.i: + * orbsvcs/orbsvcs/Event/EC_Reactive_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_Reactive_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp: + * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h: + * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.i: + * orbsvcs/orbsvcs/Event/EC_Reactive_Timeout_Generator.cpp: + * orbsvcs/orbsvcs/Event/EC_Reactive_Timeout_Generator.h: + * orbsvcs/orbsvcs/Event/EC_Sched_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_Sched_Factory.h: + * orbsvcs/orbsvcs/Event/EC_Sched_Factory.i: + * orbsvcs/orbsvcs/Event/EC_Sched_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Sched_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Sched_Filter_Builder.cpp: + * orbsvcs/orbsvcs/Event/EC_Sched_Filter_Builder.h: + * orbsvcs/orbsvcs/Event/EC_Sched_Filter_Builder.i: + * orbsvcs/orbsvcs/Event/EC_Scheduling_Strategy.cpp: + * orbsvcs/orbsvcs/Event/EC_Scheduling_Strategy.h: + * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp: + * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h: + * orbsvcs/orbsvcs/Event/EC_SupplierControl.cpp: + * orbsvcs/orbsvcs/Event/EC_SupplierControl.h: + * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.i: + * orbsvcs/orbsvcs/Event/EC_Supplier_Filter_Builder.cpp: + * orbsvcs/orbsvcs/Event/EC_Supplier_Filter_Builder.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching_Task.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching_Task.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.h: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxyConsumer.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxyConsumer.h: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.h: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.i: + * orbsvcs/orbsvcs/Event/EC_Timeout_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Timeout_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Timeout_Filter.i: + * orbsvcs/orbsvcs/Event/EC_Timeout_Generator.cpp: + * orbsvcs/orbsvcs/Event/EC_Timeout_Generator.h: + * orbsvcs/orbsvcs/Event/EC_Timeout_Generator.i: + * orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Type_Filter.cpp: + * orbsvcs/orbsvcs/Event/EC_Type_Filter.h: + * orbsvcs/orbsvcs/Event/EC_UDP_Admin.cpp: + * orbsvcs/orbsvcs/Event/EC_UDP_Admin.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientORBInitializer.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientORBInitializer.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicyFactory.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicyFactory.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicy_i.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicy_i.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicy_i.inl: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientService_Activate.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientService_Activate.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_Endpoint_Selector_Factory.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_Endpoint_Selector_Factory.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_IOGR_Property.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_IOGR_Property.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_IOGR_Property.i: + * orbsvcs/orbsvcs/FaultTolerance/FT_IOGR_Property.inl: + * orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ORBInitializer.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ORBInitializer.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_PolicyFactory.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_PolicyFactory.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_Policy_i.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_Policy_i.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_Policy_i.i: + * orbsvcs/orbsvcs/FaultTolerance/FT_Policy_i.inl: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerORBInitializer.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerORBInitializer.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerPolicyFactory.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerPolicyFactory.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerPolicy_i.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerPolicy_i.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerPolicy_i.inl: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerRequest_Interceptor.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerRequest_Interceptor.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerService_Activate.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerService_Activate.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Activate.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.h: + + Added versioned namespace support. + +Wed Nov 9 22:54:43 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * tao/CSD_ThreadPool/CSD_TP_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Strategy.cpp: + * tao/CSD_ThreadPool/CSD_TP_Strategy.h: + * tao/CSD_ThreadPool/CSD_TP_Strategy.inl: + * tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp: + + Merged changes from OCI TAO 1.4a that optionally supports the + serialization of requests. (See OCIChangeLog entry + "Mon Nov 7 09:31:11 MST 2005 Tim Bradley <bradley_t@ociweb.com>" + for details.) + +Wed Nov 9 15:59:01 2005 William Otte <wotte@dre.vanderbilt.edu> + + * tests/Bug_2234_Regression/client.cpp + + Fixed a warning on the OS X build. + +Wed Nov 9 13:39:13 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * examples/CSD_Strategy/ThreadPool4/Foo.idl: + * examples/CSD_Strategy/ThreadPool4/Foo_i.cpp: + * examples/CSD_Strategy/ThreadPool4/Foo_i.h: + * examples/CSD_Strategy/ThreadPool5/Foo.idl: + * examples/CSD_Strategy/ThreadPool5/Foo_i.cpp: + * examples/CSD_Strategy/ThreadPool5/Foo_i.h: + + Added exception raise to test_callback() in idl. This would fix the + warnings on borland builds. + +Wed Nov 9 10:20:05 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * performance-tests/CSD_Strategy/TestInf/csd_pt_testinf.mpc: + + Removed duplicated dependency on pi and codecfactory and removed + dependency on interceptors since it's not needed and it makes the + test library not built on minumum corba build. + +Wed Nov 9 14:57:54 2005 Simon McQueen <sm@prismtech.com> + + * tests/Bug_2289_Regression/Bug_2289_Regression.mpc: + * tests/Bug_2289_Regression/MyInterfaceImpl.cpp: + * tests/Bug_2289_Regression/MyInterfaceImpl.h: + * tests/Bug_2289_Regression/README: + * tests/Bug_2289_Regression/Test.idl: + * tests/Bug_2289_Regression/client.cpp: + + Updated this test so it doesn't need handcrafted code. + + * tests/Bug_2289_Regression/MyStruct.idl: + * tests/Bug_2289_Regression/MyStructC.cpp: + * tests/Bug_2289_Regression/MyStructC.h: + * tests/Bug_2289_Regression/MyStructC.inl: + * tests/Bug_2289_Regression/MyStructS.cpp: + * tests/Bug_2289_Regression/MyStructS.h: + * tests/Bug_2289_Regression/MyStructS.inl: + * tests/Bug_2289_Regression/MyStructS_T.cpp: + * tests/Bug_2289_Regression/MyStructS_T.h: + * tests/Bug_2289_Regression/MyStructS_T.inl: + + Removed these files. They are no longer needed. + +Wed Nov 9 14:25:41 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/IDL_Test/constants.idl: + + Reverted the change of + + Tue Nov 8 20:11:47 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + since that constant value is being used to address an Intel compiler + bug, and the value itself is a legal one. Thanks to Johnny Willemsen + <jwillemsen@remedy.nl> for pointing this out. + +Tue Nov 8 20:11:47 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/IDL_Test/constants.idl: + + Changed the literal rhs for one of the constants + to a value that won't challenge compilers that are not + compliant with the ANSI/IEEE minimum positive value for + double. This change should eliminate a warning on + SuSE 9.3 ICC90. + +Tue Nov 8 11:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Bug_2074_Regression/Bug_2074_Regression.mpc: + Added minimum_corba as base project + +Tue Nov 8 10:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Big_Request_Muxing/server.cpp: + Slightly changed this server, when we directly have all expected + messages then there is no need to wait for anymore. If we don't + have all messages, we print how many we have and then we run + the orb for another 5 seconds to see if we get extra messages + +Tue Nov 8 10:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/unbounded_octet_sequence.hpp: + Reimplemented the copy constructor and implemented the assignment + operator in terms of using the copy constructor + +Tue Nov 8 10:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Makefile.am: + Removed POA_Current.inl + +Tue Nov 8 08:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp: + Changed test_get_buffer_true_with_release_false to use + a BOOST_CHECK to chekd that we correctly return a null pointer + + * tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp: + Trying to test the normal sequence behaviour and the special + TAO optimization when TAO_NO_COPY_OCTET_SEQUENCES in one file + will make things hard to maintain, this file now just tests + the default behaviour, the special behaviour is now done in the + new unit test listed below. + + * tests/Sequence_Unit_Tests/unbounded_octet_sequence_nocopy_ut.cpp: + New unit test file + + * tests/Sequence_Unit_Tests/unbounded_octet_sequence.hpp: + Fixed get_buffer() + + * tests/Sequence_Unit_Tests/Sequence_Unit_Tests.mpc: + * tests/Sequence_Unit_Tests/run_test.pl: + Added the new unit test + +Tue Nov 8 08:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/unbounded_octet_sequence.hpp: + Specialization for unbounded octet sequences, enabled when + TAO_NO_COPY_OCTET_SEQUENCES is defined to 1. This is not + ready yet, but this way it is easier to share the code + and build it on multiple systems + + * tests/Sequence_Unit_Tests/Unbounded_Octet.cpp: + Include unbounded_octet_sequences.hpp + + * tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp: + Added a first extra test for when TAO_NO_COPY_OCTET_SEQUENCES + is defined + +Tue Nov 8 08:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/bounded_object_reference_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/object_reference_sequence_element_ut.cpp: + * tests/Sequence_Unit_Tests/string_sequence_element_ut.cpp: + * tests/Sequence_Unit_Tests/testing_allocation_traits_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp: + Made these unit tests working with boost 1.33 + + * tests/Sequence_Unit_Tests/unbounded_value_sequence.hpp: + Enabled the explicit for the single argument constructor + + * tests/Sequence_Unit_Tests/run_test.pl: + Reduced test time to 10 seconds, long enough + +Tue Nov 8 08:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Bug_2287_Regression/ServerRequest_Interceptor2.cpp: + Fixed compile error on Solaris + +Mon Nov 7 16:25:38 2005 William Otte <wotte@dre.vanderbilt.edu> + + * orbsvcs/examples/CosEC/RtEC_Based/tests/Multiple/CosEC_RtEC_Based_Mult.mpc + * orbsvcs/tests/Notify/lib/Notify_lib.mpc + * orbsvcs/tests/Security/Crash_Test/Security_Crash_Test.mpc + * orbsvcs/tests/Security/MT_IIOP_SSL/MT_IIOP_SSL.mpc + * orbsvcs/tests/Security/Secure_Invocation/Secure_Invocation.mpc + * orbsvcs/tests/Trading/Trading.mpc + * performance-tests/CSD_Strategy/TestInf/csd_pt_testinf.mpc + + Fixes for linking problems on OS X. + +Mon Nov 7 12:07:44 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/PortableServer/POA_Current.h (POA_Current): + + Re-exported this class. Unfortunately, some other TAO libraries + make direct calls on this class. Addresses unresolved symbol + errors. + + * tao/PortableServer/POA_Current.inl: + + Removed this unused file. + +Mon Nov 7 19:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp: + Extended test_get_buffer_true_with_release_true test + +Mon Nov 7 08:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.cpp: + * orbsvcs/orbsvcs/Trader/Trader_Interfaces.cpp: + * orbsvcs/tests/Notify/lib/EventChannel_Command.cpp: + Fixed warning in MinGW build + +Mon Nov 7 08:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/RTCORBA/Thread_Pool.{h,inl}: + Don't export TAO_Thread_Pool_Threads and removed + threads accessor it exposes internal data + and current_threads modifier which just is invalid todo + +Mon Nov 7 00:54:58 MST 2005 Yan Dai <dai_y@ociweb.com> + + * examples/CSD_Strategy/ThreadPool4/Foo_i.cpp: + * examples/CSD_Strategy/ThreadPool5/Foo_i.cpp: + + Fixed warnings that complains mis-use of throw expression. + +Sun Nov 6 14:34:51 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype/field_ch.cpp: + * TAO_IDLbe/be_visitor_valuetype/field_cs.cpp: + + Made the generated signature of member mutators + consistent with IN parameter semantics. + +Sat Nov 5 01:43:59 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/PI/ClientRequestInfo.h (TAO_ClientRequestInfo): + + Re-exported this class. TAO's FT client side requires access to + it. + +Fri Nov 4 11:57:12 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/Versioned_Namespace.h: + + Added TAO_ORBCONF_H include/define sanity check. + + * tao/Utils/Synch_Refcountable.h: + + Include "tao/Versioned_Namespace.h" to pull in versioned + namespace macros. + +Fri Nov 4 10:31:15 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/SmartProxies/Smart_Proxies.h: + * tao/SmartProxies/Smart_Proxies.inl: + * tao/Strategies/DIOP_Acceptor.cpp: + * tao/Strategies/DIOP_Acceptor.h: + * tao/Strategies/DIOP_Acceptor.i: + * tao/Strategies/DIOP_Connection_Handler.cpp: + * tao/Strategies/DIOP_Connection_Handler.h: + * tao/Strategies/DIOP_Connector.cpp: + * tao/Strategies/DIOP_Connector.h: + * tao/Strategies/DIOP_Endpoint.cpp: + * tao/Strategies/DIOP_Endpoint.h: + * tao/Strategies/DIOP_Endpoint.i: + * tao/Strategies/DIOP_Factory.cpp: + * tao/Strategies/DIOP_Factory.h: + * tao/Strategies/DIOP_Profile.cpp: + * tao/Strategies/DIOP_Profile.h: + * tao/Strategies/DIOP_Transport.cpp: + * tao/Strategies/DIOP_Transport.h: + * tao/Strategies/FIFO_Connection_Purging_Strategy.cpp: + * tao/Strategies/FIFO_Connection_Purging_Strategy.h: + * tao/Strategies/LFU_Connection_Purging_Strategy.cpp: + * tao/Strategies/LFU_Connection_Purging_Strategy.h: + * tao/Strategies/LF_Strategy_Null.cpp: + * tao/Strategies/LF_Strategy_Null.h: + * tao/Strategies/NULL_Connection_Purging_Strategy.cpp: + * tao/Strategies/NULL_Connection_Purging_Strategy.h: + * tao/Strategies/SCIOP_Acceptor.cpp: + * tao/Strategies/SCIOP_Acceptor.h: + * tao/Strategies/SCIOP_Acceptor.i: + * tao/Strategies/SCIOP_Connection_Handler.cpp: + * tao/Strategies/SCIOP_Connection_Handler.h: + * tao/Strategies/SCIOP_Connector.cpp: + * tao/Strategies/SCIOP_Connector.h: + * tao/Strategies/SCIOP_Endpoint.cpp: + * tao/Strategies/SCIOP_Endpoint.h: + * tao/Strategies/SCIOP_Endpoint.i: + * tao/Strategies/SCIOP_Factory.cpp: + * tao/Strategies/SCIOP_Factory.h: + * tao/Strategies/SCIOP_Lite_Factory.cpp: + * tao/Strategies/SCIOP_Lite_Factory.h: + * tao/Strategies/SCIOP_Profile.cpp: + * tao/Strategies/SCIOP_Profile.h: + * tao/Strategies/SCIOP_Transport.cpp: + * tao/Strategies/SCIOP_Transport.h: + * tao/Strategies/SHMIOP_Acceptor.cpp: + * tao/Strategies/SHMIOP_Acceptor.h: + * tao/Strategies/SHMIOP_Connection_Handler.cpp: + * tao/Strategies/SHMIOP_Connection_Handler.h: + * tao/Strategies/SHMIOP_Connector.cpp: + * tao/Strategies/SHMIOP_Connector.h: + * tao/Strategies/SHMIOP_Endpoint.cpp: + * tao/Strategies/SHMIOP_Endpoint.h: + * tao/Strategies/SHMIOP_Endpoint.i: + * tao/Strategies/SHMIOP_Factory.cpp: + * tao/Strategies/SHMIOP_Factory.h: + * tao/Strategies/SHMIOP_Profile.cpp: + * tao/Strategies/SHMIOP_Profile.h: + * tao/Strategies/SHMIOP_Transport.cpp: + * tao/Strategies/SHMIOP_Transport.h: + * tao/Strategies/UIOP_Acceptor.cpp: + * tao/Strategies/UIOP_Acceptor.h: + * tao/Strategies/UIOP_Connection_Handler.cpp: + * tao/Strategies/UIOP_Connection_Handler.h: + * tao/Strategies/UIOP_Connector.cpp: + * tao/Strategies/UIOP_Connector.h: + * tao/Strategies/UIOP_Endpoint.cpp: + * tao/Strategies/UIOP_Endpoint.h: + * tao/Strategies/UIOP_Endpoint.i: + * tao/Strategies/UIOP_Factory.cpp: + * tao/Strategies/UIOP_Factory.h: + * tao/Strategies/UIOP_Lite_Factory.cpp: + * tao/Strategies/UIOP_Lite_Factory.h: + * tao/Strategies/UIOP_Profile.cpp: + * tao/Strategies/UIOP_Profile.h: + * tao/Strategies/UIOP_Transport.cpp: + * tao/Strategies/UIOP_Transport.h: + * tao/Strategies/advanced_resource.cpp: + * tao/Strategies/advanced_resource.h: + * tao/TypeCodeFactory/Recursive_TypeCode.cpp: + * tao/TypeCodeFactory/Recursive_TypeCode.h: + * tao/TypeCodeFactory/Recursive_TypeCode.inl: + * tao/TypeCodeFactory/TypeCodeFactory_Adapter_Impl.cpp: + * tao/TypeCodeFactory/TypeCodeFactory_Adapter_Impl.h: + * tao/TypeCodeFactory/TypeCodeFactory_Loader.cpp: + * tao/TypeCodeFactory/TypeCodeFactory_Loader.h: + * tao/TypeCodeFactory/TypeCodeFactory_i.cpp: + * tao/TypeCodeFactory/TypeCodeFactory_i.h: + * tao/Utils/Encodable.cpp: + * tao/Utils/Encodable.h: + * tao/Utils/Implicit_Deactivator.cpp: + * tao/Utils/Implicit_Deactivator.h: + * tao/Utils/ORB_Destroyer.cpp: + * tao/Utils/ORB_Destroyer.h: + * tao/Utils/ORB_Manager.cpp: + * tao/Utils/ORB_Manager.h: + * tao/Utils/PolicyList_Destroyer.cpp: + * tao/Utils/PolicyList_Destroyer.inl: + * tao/Utils/RIR_Narrow.cpp: + * tao/Utils/RIR_Narrow.h: + * tao/Utils/Servant_Var.h: + * tao/Utils/Servant_Var.inl: + * tao/Utils/Synch_Refcountable.cpp: + * tao/Utils/Synch_Refcountable.h: + * tao/Utils/Synch_Refcountable.inl: + * tao/Valuetype/AbstractBase.cpp: + * tao/Valuetype/AbstractBase.h: + * tao/Valuetype/AbstractBase.inl: + * tao/Valuetype/AbstractBase_Invocation_Adapter.cpp: + * tao/Valuetype/AbstractBase_Invocation_Adapter.h: + * tao/Valuetype/AbstractBase_T.cpp: + * tao/Valuetype/AbstractBase_T.h: + * tao/Valuetype/Sequence_T.cpp: + * tao/Valuetype/Sequence_T.h: + * tao/Valuetype/Sequence_T.inl: + * tao/Valuetype/ValueBase.cpp: + * tao/Valuetype/ValueBase.h: + * tao/Valuetype/ValueBase.inl: + * tao/Valuetype/ValueFactory.cpp: + * tao/Valuetype/ValueFactory.h: + * tao/Valuetype/ValueFactory_Map.cpp: + * tao/Valuetype/ValueFactory_Map.h: + * tao/Valuetype/Value_CORBA_methods.h: + * tao/Valuetype/Value_VarOut_T.cpp: + * tao/Valuetype/Value_VarOut_T.h: + * tao/Valuetype/Valuetype_Adapter_Impl.cpp: + * tao/Valuetype/Valuetype_Adapter_Impl.h: + + Added remaining core TAO library versioned namespace support. + +Fri Nov 4 10:13:43 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/RTScheduling/Request_Interceptor.h (Client_Interceptor): + + Re-exported this class. The export declaration was + inadvertently removed. + +Fri Nov 4 08:59:36 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/ORB_Core.i (add_tss_cleanup_func): + * tao/ORB_Core.cpp (add_tss_cleanup_func): + + Moved this method out of line. Allows the + TAO_Cleanup_Func_Registry class to remain unexported from the + TAO DLL. + + * tao/AnyTypeCode/TypeCode_Constants.h (_tc_UnknownUserException): + + Removed this forward declaration. It's DLL linkage ends up + differing from the same declaration in the DynamicInterface + library. Addresses "inconsistent dll linkage" warnings from + VC++. + + * tao/PortableServer/POA_Current_Impl.h (POA_Current_Impl): + + Re-exported this class. Unfortunately, some other TAO libraries + make direct calls on this class. Addresses unresolved symbol + errors. + +Fri Nov 4 16:56:06 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype/field_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/field_cs.cpp: + + Added a 'const' qualifier to the generated member mutator + argument for array member types, since this arguement has + the same semantics as an 'in' operation argument. + + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp: + * TAO_IDL/be_include/be_visitor_valuetype/valuetype_obv_cs.h: + + Change generation of the initializing constructor definition to + simply call the corresponding member mutators in the constructor + body. This change allows reuse of the copy semantics already + generated in the various member mutator methods, and as a side + effect, avoids a VC6 compiler bug that complained when we had + a call to the base class initializing constructor in the + derived constructor's initialization list. + +Thu Nov 3 22:17:27 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * performance-tests/Cubit/TAO/DII_Cubit/client.cpp: + * performance-tests/Latency/DII/client.cpp: + * performance-tests/Latency/DSI/Roundtrip.cpp: + * performance-tests/Latency/Deferred/client.cpp: + * performance-tests/Sequence_Latency/DII/client.cpp: + * performance-tests/Sequence_Latency/DSI/Roundtrip.cpp: + * performance-tests/Sequence_Latency/Deferred/client.cpp: + * tests/CDR/tc.cpp: + * tests/DynAny_Test/data.h: + * tests/Portable_Interceptors/IORInterceptor/FOO_ClientRequestInterceptor.cpp: + + Include "TypeCode_Constants.h" instead of + "TC_Constants_Forward.h". The latter is deprecated. + +Thu Nov 3 22:06:44 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/AnyTypeCode/TC_Constants_Forward.h: + + Reintroduced this header as a backward compatibility header that + includes "tao/AnyTypeCode/TypeCode_Constants.h". + +Thu Nov 3 19:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2084_Regression/Hello.cpp: + Fixed variable not used warning + +Thu Nov 3 12:17:09 MST 2005 Yan Dai <dai_y@ociweb.com> + + * tao/CSD_Framework.mpc: + + Removed interceptor as the base project since it's not needed. + +Thu Nov 3 09:26:21 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/Concurrency/Concurrency_Loader.h: + * orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.h: + * orbsvcs/orbsvcs/Event/EC_And_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Bitmask_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Conjunction_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Disjunction_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Group_Scheduling.h: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.h: + * orbsvcs/orbsvcs/Event/EC_Masked_Type_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Negation_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Null_Scheduling.h: + * orbsvcs/orbsvcs/Event/EC_Priority_Scheduling.h: + * orbsvcs/orbsvcs/Event/EC_Sched_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Timeout_Filter.h: + * orbsvcs/orbsvcs/Event/EC_Type_Filter.h: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Loader.h: + * orbsvcs/orbsvcs/Naming/Naming_Loader.h: + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Acceptor_Registry.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Invocation_Interceptor.cpp: + * orbsvcs/orbsvcs/Sched/DynSched.h: + * orbsvcs/orbsvcs/Sched/Scheduler.h: + * orbsvcs/orbsvcs/Sched/Scheduler_Generic.h: + * orbsvcs/orbsvcs/Sched/Strategy_Scheduler.h: + * orbsvcs/orbsvcs/Security/Security_Current.h: + * orbsvcs/orbsvcs/Trader/Trader_Interfaces.h: + * orbsvcs/orbsvcs/Trader/Trading_Loader.h: + + Removed unnecessary uses of ACE_UNIMPLEMENTED_FUNC macro. It is + only meant to be used for private unimplemented member functions + in class templates. + + * tao/Collocated_Invocation.h: + * tao/Connector_Registry.h: + * tao/Object_Ref_Table.h: + * tao/PolicyFactory_Registry_Factory.cpp: + * tao/PolicyFactory_Registry_Factory.h: + * tao/Profile.h: + * tao/Resource_Factory.h: + * tao/Stub.h: + * tao/TSS_Resources.h: + * tao/Transport.h: + * tao/Wait_On_LF_No_Upcall.cpp: + * tao/AnyTypeCode/Alias_TypeCode.cpp: + * tao/AnyTypeCode/Alias_TypeCode.h: + * tao/AnyTypeCode/Alias_TypeCode.inl: + * tao/AnyTypeCode/Alias_TypeCode_Static.cpp: + * tao/AnyTypeCode/Alias_TypeCode_Static.h: + * tao/AnyTypeCode/Alias_TypeCode_Static.inl: + * tao/AnyTypeCode/Any.cpp: + * tao/AnyTypeCode/Any.h: + * tao/AnyTypeCode/Any.inl: + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.cpp: + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.h: + * tao/AnyTypeCode/AnyTypeCode_methods.h: + * tao/AnyTypeCode/Any_Arg_Traits.h: + * tao/AnyTypeCode/Any_Array_Impl_T.cpp: + * tao/AnyTypeCode/Any_Array_Impl_T.h: + * tao/AnyTypeCode/Any_Array_Impl_T.inl: + * tao/AnyTypeCode/Any_Basic_Impl.cpp: + * tao/AnyTypeCode/Any_Basic_Impl.h: + * tao/AnyTypeCode/Any_Basic_Impl_T.cpp: + * tao/AnyTypeCode/Any_Basic_Impl_T.h: + * tao/AnyTypeCode/Any_Basic_Impl_T.inl: + * tao/AnyTypeCode/Any_Dual_Impl_T.cpp: + * tao/AnyTypeCode/Any_Dual_Impl_T.h: + * tao/AnyTypeCode/Any_Dual_Impl_T.inl: + * tao/AnyTypeCode/Any_Impl.cpp: + * tao/AnyTypeCode/Any_Impl.h: + * tao/AnyTypeCode/Any_Impl_T.cpp: + * tao/AnyTypeCode/Any_Special_Impl_T.cpp: + * tao/AnyTypeCode/Any_Special_Impl_T.h: + * tao/AnyTypeCode/Any_Special_Impl_T.inl: + * tao/AnyTypeCode/Any_SystemException.cpp: + * tao/AnyTypeCode/Any_SystemException.h: + * tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp: + * tao/AnyTypeCode/Any_Unknown_IDL_Type.h: + * tao/AnyTypeCode/Empty_Param_TypeCode.cpp: + * tao/AnyTypeCode/Empty_Param_TypeCode.h: + * tao/AnyTypeCode/Empty_Param_TypeCode.inl: + * tao/AnyTypeCode/Enum_TypeCode.cpp: + * tao/AnyTypeCode/Enum_TypeCode.h: + * tao/AnyTypeCode/Enum_TypeCode.inl: + * tao/AnyTypeCode/Enum_TypeCode_Static.cpp: + * tao/AnyTypeCode/Enum_TypeCode_Static.h: + * tao/AnyTypeCode/Enum_TypeCode_Static.inl: + * tao/AnyTypeCode/Fixed_TypeCode.cpp: + * tao/AnyTypeCode/Fixed_TypeCode.h: + * tao/AnyTypeCode/Fixed_TypeCode.inl: + * tao/AnyTypeCode/Marshal.cpp: + * tao/AnyTypeCode/Marshal.h: + * tao/AnyTypeCode/Marshal.inl: + * tao/AnyTypeCode/NVList.cpp: + * tao/AnyTypeCode/NVList.h: + * tao/AnyTypeCode/NVList.inl: + * tao/AnyTypeCode/NVList_Adapter_Impl.cpp: + * tao/AnyTypeCode/NVList_Adapter_Impl.h: + * tao/AnyTypeCode/Null_RefCount_Policy.h: + * tao/AnyTypeCode/Objref_TypeCode.cpp: + * tao/AnyTypeCode/Objref_TypeCode.h: + * tao/AnyTypeCode/Objref_TypeCode.inl: + * tao/AnyTypeCode/Objref_TypeCode_Static.cpp: + * tao/AnyTypeCode/Objref_TypeCode_Static.h: + * tao/AnyTypeCode/Objref_TypeCode_Static.inl: + * tao/AnyTypeCode/Recursive_Type_TypeCode.cpp: + * tao/AnyTypeCode/Recursive_Type_TypeCode.h: + * tao/AnyTypeCode/Recursive_Type_TypeCode.inl: + * tao/AnyTypeCode/RefCount_Policy_Traits.h: + * tao/AnyTypeCode/Sequence_TypeCode.cpp: + * tao/AnyTypeCode/Sequence_TypeCode.h: + * tao/AnyTypeCode/Sequence_TypeCode.inl: + * tao/AnyTypeCode/Sequence_TypeCode_Static.cpp: + * tao/AnyTypeCode/Sequence_TypeCode_Static.h: + * tao/AnyTypeCode/Sequence_TypeCode_Static.inl: + * tao/AnyTypeCode/String_TypeCode.cpp: + * tao/AnyTypeCode/String_TypeCode.h: + * tao/AnyTypeCode/String_TypeCode.inl: + * tao/AnyTypeCode/String_TypeCode_Static.cpp: + * tao/AnyTypeCode/String_TypeCode_Static.h: + * tao/AnyTypeCode/String_TypeCode_Static.inl: + * tao/AnyTypeCode/Struct_TypeCode.cpp: + * tao/AnyTypeCode/Struct_TypeCode.h: + * tao/AnyTypeCode/Struct_TypeCode.inl: + * tao/AnyTypeCode/Struct_TypeCode_Static.cpp: + * tao/AnyTypeCode/Struct_TypeCode_Static.h: + * tao/AnyTypeCode/Struct_TypeCode_Static.inl: + * tao/AnyTypeCode/True_RefCount_Policy.cpp: + * tao/AnyTypeCode/True_RefCount_Policy.h: + * tao/AnyTypeCode/True_RefCount_Policy.inl: + * tao/AnyTypeCode/TypeCode.cpp: + * tao/AnyTypeCode/TypeCode.h: + * tao/AnyTypeCode/TypeCode.inl: + * tao/AnyTypeCode/TypeCode_Base_Attributes.h: + * tao/AnyTypeCode/TypeCode_Base_Attributes.inl: + * tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp: + * tao/AnyTypeCode/TypeCode_CDR_Extraction.h: + * tao/AnyTypeCode/TypeCode_Case_Base_T.cpp: + * tao/AnyTypeCode/TypeCode_Case_Base_T.h: + * tao/AnyTypeCode/TypeCode_Case_Base_T.inl: + * tao/AnyTypeCode/TypeCode_Case_T.cpp: + * tao/AnyTypeCode/TypeCode_Case_T.h: + * tao/AnyTypeCode/TypeCode_Case_T.inl: + * tao/AnyTypeCode/TypeCode_Constants.h: + * tao/AnyTypeCode/TypeCode_Struct_Field.h: + * tao/AnyTypeCode/TypeCode_Traits.h: + * tao/AnyTypeCode/TypeCode_Value_Field.h: + * tao/AnyTypeCode/Union_TypeCode.cpp: + * tao/AnyTypeCode/Union_TypeCode.h: + * tao/AnyTypeCode/Union_TypeCode.inl: + * tao/AnyTypeCode/Union_TypeCode_Static.cpp: + * tao/AnyTypeCode/Union_TypeCode_Static.h: + * tao/AnyTypeCode/Union_TypeCode_Static.inl: + * tao/AnyTypeCode/Value_TypeCode.cpp: + * tao/AnyTypeCode/Value_TypeCode.h: + * tao/AnyTypeCode/Value_TypeCode.inl: + * tao/AnyTypeCode/Value_TypeCode_Static.cpp: + * tao/AnyTypeCode/Value_TypeCode_Static.h: + * tao/AnyTypeCode/Value_TypeCode_Static.inl: + * tao/AnyTypeCode/append.cpp: + * tao/AnyTypeCode/skip.cpp: + * tao/BiDir_GIOP/BiDirGIOP.cpp: + * tao/BiDir_GIOP/BiDirGIOP.h: + * tao/BiDir_GIOP/BiDirPolicy_Validator.cpp: + * tao/BiDir_GIOP/BiDirPolicy_Validator.h: + * tao/BiDir_GIOP/BiDir_ORBInitializer.cpp: + * tao/BiDir_GIOP/BiDir_ORBInitializer.h: + * tao/BiDir_GIOP/BiDir_PolicyFactory.cpp: + * tao/BiDir_GIOP/BiDir_PolicyFactory.h: + * tao/BiDir_GIOP/BiDir_Policy_i.cpp: + * tao/BiDir_GIOP/BiDir_Policy_i.h: + * tao/CSD_Framework/CSD_Default_Servant_Dispatcher.cpp: + * tao/CSD_Framework/CSD_Default_Servant_Dispatcher.h: + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp: + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h: + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.inl: + * tao/CSD_Framework/CSD_Framework_Loader.cpp: + * tao/CSD_Framework/CSD_Framework_Loader.h: + * tao/CSD_Framework/CSD_ORBInitializer.cpp: + * tao/CSD_Framework/CSD_ORBInitializer.h: + * tao/CSD_Framework/CSD_Object_Adapter.cpp: + * tao/CSD_Framework/CSD_Object_Adapter.h: + * tao/CSD_Framework/CSD_Object_Adapter_Factory.cpp: + * tao/CSD_Framework/CSD_Object_Adapter_Factory.h: + * tao/CSD_Framework/CSD_POA.cpp: + * tao/CSD_Framework/CSD_POA.h: + * tao/CSD_Framework/CSD_POA.inl: + * tao/CSD_Framework/CSD_Strategy_Base.cpp: + * tao/CSD_Framework/CSD_Strategy_Base.h: + * tao/CSD_Framework/CSD_Strategy_Base.inl: + * tao/CSD_Framework/CSD_Strategy_Proxy.cpp: + * tao/CSD_Framework/CSD_Strategy_Proxy.h: + * tao/CSD_Framework/CSD_Strategy_Proxy.inl: + * tao/CSD_Framework/CSD_Strategy_Repository.cpp: + * tao/CSD_Framework/CSD_Strategy_Repository.h: + * tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.cpp: + * tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.h: + * tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.inl: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Corba_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Corba_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.cpp: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.h: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.inl: + * tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.cpp: + * tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.h: + * tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.inl: + * tao/CSD_ThreadPool/CSD_TP_Queue.cpp: + * tao/CSD_ThreadPool/CSD_TP_Queue.h: + * tao/CSD_ThreadPool/CSD_TP_Queue.inl: + * tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.cpp: + * tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.h: + * tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.inl: + * tao/CSD_ThreadPool/CSD_TP_Remote_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Remote_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Remote_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Servant_State.cpp: + * tao/CSD_ThreadPool/CSD_TP_Servant_State.h: + * tao/CSD_ThreadPool/CSD_TP_Servant_State.inl: + * tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.h: + * tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.inl: + * tao/CSD_ThreadPool/CSD_TP_Strategy.cpp: + * tao/CSD_ThreadPool/CSD_TP_Strategy.h: + * tao/CSD_ThreadPool/CSD_TP_Strategy.inl: + * tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp: + * tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.h: + * tao/CSD_ThreadPool/CSD_TP_Synch_Helper.h: + * tao/CSD_ThreadPool/CSD_TP_Synch_Helper.inl: + * tao/CSD_ThreadPool/CSD_TP_Task.cpp: + * tao/CSD_ThreadPool/CSD_TP_Task.h: + * tao/CSD_ThreadPool/CSD_TP_Task.inl: + * tao/CSD_ThreadPool/CSD_ThreadPool.cpp: + * tao/CSD_ThreadPool/CSD_ThreadPool.h: + * tao/CodecFactory/CDR_Encaps_Codec.cpp: + * tao/CodecFactory/CDR_Encaps_Codec.h: + * tao/CodecFactory/CodecFactory.cpp: + * tao/CodecFactory/CodecFactory.h: + * tao/CodecFactory/CodecFactory_impl.cpp: + * tao/CodecFactory/CodecFactory_impl.h: + * tao/Codeset/Codeset.cpp: + * tao/Codeset/Codeset.h: + * tao/Codeset/Codeset_Descriptor.cpp: + * tao/Codeset/Codeset_Descriptor.h: + * tao/Codeset/Codeset_Manager_Factory.cpp: + * tao/Codeset/Codeset_Manager_Factory.h: + * tao/Codeset/Codeset_Manager_i.cpp: + * tao/Codeset/Codeset_Manager_i.h: + * tao/Codeset/Codeset_Translator_Factory.cpp: + * tao/Codeset/Codeset_Translator_Factory.h: + * tao/Codeset/Codeset_Translator_Factory_T.cpp: + * tao/Codeset/Codeset_Translator_Factory_T.h: + * tao/Codeset/UTF16_BOM_Factory.cpp: + * tao/Codeset/UTF16_BOM_Factory.h: + * tao/Codeset/UTF16_BOM_Translator.cpp: + * tao/Codeset/UTF16_BOM_Translator.h: + * tao/Codeset/UTF8_Latin1_Factory.cpp: + * tao/Codeset/UTF8_Latin1_Factory.h: + * tao/Codeset/UTF8_Latin1_Translator.cpp: + * tao/Codeset/UTF8_Latin1_Translator.h: + * tao/DynamicAny/DynAnyFactory.cpp: + * tao/DynamicAny/DynAnyFactory.h: + * tao/DynamicAny/DynAny_i.cpp: + * tao/DynamicAny/DynAny_i.h: + * tao/DynamicAny/DynArray_i.cpp: + * tao/DynamicAny/DynArray_i.h: + * tao/DynamicAny/DynCommon.cpp: + * tao/DynamicAny/DynCommon.h: + * tao/DynamicAny/DynEnum_i.cpp: + * tao/DynamicAny/DynEnum_i.h: + * tao/DynamicAny/DynSequence_i.cpp: + * tao/DynamicAny/DynSequence_i.h: + * tao/DynamicAny/DynStruct_i.cpp: + * tao/DynamicAny/DynStruct_i.h: + * tao/DynamicAny/DynUnion_i.cpp: + * tao/DynamicAny/DynUnion_i.h: + * tao/DynamicAny/DynamicAny.cpp: + * tao/DynamicAny/DynamicAny.h: + * tao/DynamicInterface/Context.cpp: + * tao/DynamicInterface/Context.h: + * tao/DynamicInterface/Context.inl: + * tao/DynamicInterface/DII_Arguments.cpp: + * tao/DynamicInterface/DII_Arguments.h: + * tao/DynamicInterface/DII_Arguments.inl: + * tao/DynamicInterface/DII_CORBA_methods.h: + * tao/DynamicInterface/DII_Invocation.cpp: + * tao/DynamicInterface/DII_Invocation.h: + * tao/DynamicInterface/DII_Invocation_Adapter.h: + * tao/DynamicInterface/DII_Reply_Dispatcher.cpp: + * tao/DynamicInterface/DII_Reply_Dispatcher.h: + * tao/DynamicInterface/Dynamic_Adapter_Impl.cpp: + * tao/DynamicInterface/Dynamic_Adapter_Impl.h: + * tao/DynamicInterface/Dynamic_Implementation.cpp: + * tao/DynamicInterface/Dynamic_Implementation.h: + * tao/DynamicInterface/ExceptionList.cpp: + * tao/DynamicInterface/ExceptionList.h: + * tao/DynamicInterface/ExceptionList.inl: + * tao/DynamicInterface/Request.cpp: + * tao/DynamicInterface/Request.h: + * tao/DynamicInterface/Request.inl: + * tao/DynamicInterface/Server_Request.cpp: + * tao/DynamicInterface/Server_Request.h: + * tao/DynamicInterface/Server_Request.inl: + * tao/DynamicInterface/Unknown_User_Exception.cpp: + * tao/DynamicInterface/Unknown_User_Exception.h: + * tao/IFR_Client/IFR_Client_Adapter_Impl.cpp: + * tao/IFR_Client/IFR_Client_Adapter_Impl.h: + * tao/IORInterceptor/IORInfo.cpp: + * tao/IORInterceptor/IORInfo.h: + * tao/IORInterceptor/IORInfo.inl: + * tao/IORInterceptor/IORInterceptor_Adapter_Factory_Impl.cpp: + * tao/IORInterceptor/IORInterceptor_Adapter_Factory_Impl.h: + * tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp: + * tao/IORInterceptor/IORInterceptor_Adapter_Impl.h: + * tao/IORManipulation/IORManip_Loader.cpp: + * tao/IORManipulation/IORManip_Loader.h: + * tao/IORManipulation/IORManipulation.cpp: + * tao/IORManipulation/IORManipulation.h: + * tao/IORTable/IORTable.cpp: + * tao/IORTable/IORTable.h: + * tao/IORTable/IOR_Table_Impl.cpp: + * tao/IORTable/IOR_Table_Impl.h: + * tao/IORTable/Table_Adapter.cpp: + * tao/IORTable/Table_Adapter.h: + * tao/ImR_Client/ImR_Client.cpp: + * tao/ImR_Client/ImR_Client.h: + * tao/ImR_Client/ServerObject_i.cpp: + * tao/ImR_Client/ServerObject_i.h: + * tao/Messaging/AMH_Response_Handler.cpp: + * tao/Messaging/AMH_Response_Handler.h: + * tao/Messaging/Asynch_Invocation.cpp: + * tao/Messaging/Asynch_Invocation.h: + * tao/Messaging/Asynch_Invocation_Adapter.cpp: + * tao/Messaging/Asynch_Invocation_Adapter.h: + * tao/Messaging/Asynch_Reply_Dispatcher.cpp: + * tao/Messaging/Asynch_Reply_Dispatcher.h: + * tao/Messaging/Asynch_Timeout_Handler.cpp: + * tao/Messaging/Asynch_Timeout_Handler.h: + * tao/Messaging/Connection_Timeout_Policy_i.cpp: + * tao/Messaging/Connection_Timeout_Policy_i.h: + * tao/Messaging/ExceptionHolder_i.cpp: + * tao/Messaging/ExceptionHolder_i.h: + * tao/Messaging/Messaging.cpp: + * tao/Messaging/Messaging.h: + * tao/Messaging/Messaging_Loader.cpp: + * tao/Messaging/Messaging_Loader.h: + * tao/Messaging/Messaging_ORBInitializer.cpp: + * tao/Messaging/Messaging_ORBInitializer.h: + * tao/Messaging/Messaging_PolicyFactory.cpp: + * tao/Messaging/Messaging_PolicyFactory.h: + * tao/Messaging/Messaging_Policy_i.cpp: + * tao/Messaging/Messaging_Policy_i.h: + * tao/Messaging/Messaging_Policy_i.i: + * tao/ObjRefTemplate/ORT_Adapter_Factory_Impl.cpp: + * tao/ObjRefTemplate/ORT_Adapter_Factory_Impl.h: + * tao/ObjRefTemplate/ORT_Adapter_Impl.cpp: + * tao/ObjRefTemplate/ORT_Adapter_Impl.h: + * tao/ObjRefTemplate/ObjectReferenceTemplate_i.cpp: + * tao/ObjRefTemplate/ObjectReferenceTemplate_i.h: + * tao/PI/ClientRequestInfo.cpp: + * tao/PI/ClientRequestInfo.h: + * tao/PI/ClientRequestInterceptor_Adapter_Impl.cpp: + * tao/PI/ClientRequestInterceptor_Adapter_Impl.h: + * tao/PI/ClientRequestInterceptor_Adapter_Impl.inl: + * tao/PI/ClientRequestInterceptor_Factory_Impl.cpp: + * tao/PI/ClientRequestInterceptor_Factory_Impl.h: + * tao/PI/Interceptor_List_T.cpp: + * tao/PI/Interceptor_List_T.h: + * tao/PI/ORBInitInfo.cpp: + * tao/PI/ORBInitInfo.h: + * tao/PI/ORBInitInfo.inl: + * tao/PI/ORBInitializer_Registry_Impl.cpp: + * tao/PI/ORBInitializer_Registry_Impl.h: + * tao/PI/PI.cpp: + * tao/PI/PI.h: + * tao/PI/PICurrent.cpp: + * tao/PI/PICurrent.h: + * tao/PI/PICurrent.inl: + * tao/PI/PICurrent_Copy_Callback.cpp: + * tao/PI/PICurrent_Copy_Callback.h: + * tao/PI/PICurrent_Impl.cpp: + * tao/PI/PICurrent_Impl.h: + * tao/PI/PICurrent_Impl.inl: + * tao/PI/PICurrent_Loader.cpp: + * tao/PI/PICurrent_Loader.h: + * tao/PI/PolicyFactory_Loader.cpp: + * tao/PI/PolicyFactory_Loader.h: + * tao/PI/PolicyFactory_Registry.cpp: + * tao/PI/PolicyFactory_Registry.h: + * tao/PI/RequestInfo_Util.cpp: + * tao/PI/RequestInfo_Util.h: + * tao/PI_Server/PICurrent_Guard.cpp: + * tao/PI_Server/PICurrent_Guard.h: + * tao/PI_Server/PI_Server.cpp: + * tao/PI_Server/PI_Server.h: + * tao/PI_Server/PI_Server_Loader.cpp: + * tao/PI_Server/PI_Server_Loader.h: + * tao/PI_Server/Policy_Creator_T.h: + * tao/PI_Server/PortableServer_ORBInitializer.cpp: + * tao/PI_Server/PortableServer_ORBInitializer.h: + * tao/PI_Server/PortableServer_PolicyFactory.cpp: + * tao/PI_Server/PortableServer_PolicyFactory.h: + * tao/PI_Server/ServerInterceptorAdapter.cpp: + * tao/PI_Server/ServerInterceptorAdapter.h: + * tao/PI_Server/ServerRequestInfo.cpp: + * tao/PI_Server/ServerRequestInfo.h: + * tao/PI_Server/ServerRequestInfo.inl: + * tao/PI_Server/ServerRequestInterceptor_Factory_Impl.cpp: + * tao/PI_Server/ServerRequestInterceptor_Factory_Impl.h: + * tao/PortableServer/Active_Object_Map.cpp: + * tao/PortableServer/Active_Object_Map.h: + * tao/PortableServer/Active_Object_Map.i: + * tao/PortableServer/Active_Object_Map_Entry.cpp: + * tao/PortableServer/Active_Object_Map_Entry.h: + * tao/PortableServer/Active_Policy_Strategies.cpp: + * tao/PortableServer/Active_Policy_Strategies.h: + * tao/PortableServer/Active_Policy_Strategies.inl: + * tao/PortableServer/Adapter_Activator.cpp: + * tao/PortableServer/Adapter_Activator.h: + * tao/PortableServer/Any_SArg_Traits.h: + * tao/PortableServer/BD_String_SArgument_T.cpp: + * tao/PortableServer/BD_String_SArgument_T.h: + * tao/PortableServer/BD_String_SArgument_T.inl: + * tao/PortableServer/Basic_SArgument_T.cpp: + * tao/PortableServer/Basic_SArgument_T.h: + * tao/PortableServer/Basic_SArgument_T.inl: + * tao/PortableServer/Basic_SArguments.h: + * tao/PortableServer/Collocated_Object_Proxy_Broker.cpp: + * tao/PortableServer/Collocated_Object_Proxy_Broker.h: + * tao/PortableServer/Creation_Time.h: + * tao/PortableServer/Creation_Time.inl: + * tao/PortableServer/Default_Acceptor_Filter.cpp: + * tao/PortableServer/Default_Acceptor_Filter.h: + * tao/PortableServer/Default_Policy_Validator.cpp: + * tao/PortableServer/Default_Policy_Validator.h: + * tao/PortableServer/Default_Servant_Dispatcher.cpp: + * tao/PortableServer/Default_Servant_Dispatcher.h: + * tao/PortableServer/Direct_Collocation_Upcall_Wrapper.cpp: + * tao/PortableServer/Direct_Collocation_Upcall_Wrapper.h: + * tao/PortableServer/Fixed_Array_SArgument_T.cpp: + * tao/PortableServer/Fixed_Array_SArgument_T.h: + * tao/PortableServer/Fixed_Array_SArgument_T.inl: + * tao/PortableServer/Fixed_Size_SArgument_T.cpp: + * tao/PortableServer/Fixed_Size_SArgument_T.h: + * tao/PortableServer/Fixed_Size_SArgument_T.inl: + * tao/PortableServer/IdAssignmentPolicy.cpp: + * tao/PortableServer/IdAssignmentPolicy.h: + * tao/PortableServer/IdAssignmentStrategy.cpp: + * tao/PortableServer/IdAssignmentStrategy.h: + * tao/PortableServer/IdAssignmentStrategyFactory.h: + * tao/PortableServer/IdAssignmentStrategyFactoryImpl.cpp: + * tao/PortableServer/IdAssignmentStrategyFactoryImpl.h: + * tao/PortableServer/IdAssignmentStrategySystem.cpp: + * tao/PortableServer/IdAssignmentStrategySystem.h: + * tao/PortableServer/IdAssignmentStrategyUser.cpp: + * tao/PortableServer/IdAssignmentStrategyUser.h: + * tao/PortableServer/IdUniquenessPolicy.cpp: + * tao/PortableServer/IdUniquenessPolicy.h: + * tao/PortableServer/IdUniquenessStrategy.h: + * tao/PortableServer/IdUniquenessStrategyFactory.h: + * tao/PortableServer/IdUniquenessStrategyFactoryImpl.cpp: + * tao/PortableServer/IdUniquenessStrategyFactoryImpl.h: + * tao/PortableServer/IdUniquenessStrategyMultiple.cpp: + * tao/PortableServer/IdUniquenessStrategyMultiple.h: + * tao/PortableServer/IdUniquenessStrategyUnique.cpp: + * tao/PortableServer/IdUniquenessStrategyUnique.h: + * tao/PortableServer/IdUniquenessStrategyUniqueFactoryImpl.cpp: + * tao/PortableServer/IdUniquenessStrategyUniqueFactoryImpl.h: + * tao/PortableServer/ImR_Client_Adapter.cpp: + * tao/PortableServer/ImR_Client_Adapter.h: + * tao/PortableServer/ImplicitActivationPolicy.cpp: + * tao/PortableServer/ImplicitActivationPolicy.h: + * tao/PortableServer/ImplicitActivationStrategy.cpp: + * tao/PortableServer/ImplicitActivationStrategy.h: + * tao/PortableServer/ImplicitActivationStrategyExplicit.cpp: + * tao/PortableServer/ImplicitActivationStrategyExplicit.h: + * tao/PortableServer/ImplicitActivationStrategyFactory.h: + * tao/PortableServer/ImplicitActivationStrategyFactoryImpl.cpp: + * tao/PortableServer/ImplicitActivationStrategyFactoryImpl.h: + * tao/PortableServer/ImplicitActivationStrategyImplicit.cpp: + * tao/PortableServer/ImplicitActivationStrategyImplicit.h: + * tao/PortableServer/Key_Adapters.cpp: + * tao/PortableServer/Key_Adapters.h: + * tao/PortableServer/LifespanPolicy.cpp: + * tao/PortableServer/LifespanPolicy.h: + * tao/PortableServer/LifespanStrategy.cpp: + * tao/PortableServer/LifespanStrategy.h: + * tao/PortableServer/LifespanStrategyFactory.h: + * tao/PortableServer/LifespanStrategyFactoryImpl.cpp: + * tao/PortableServer/LifespanStrategyFactoryImpl.h: + * tao/PortableServer/LifespanStrategyPersistent.cpp: + * tao/PortableServer/LifespanStrategyPersistent.h: + * tao/PortableServer/LifespanStrategyPersistentFactoryImpl.cpp: + * tao/PortableServer/LifespanStrategyPersistentFactoryImpl.h: + * tao/PortableServer/LifespanStrategyTransient.cpp: + * tao/PortableServer/LifespanStrategyTransient.h: + * tao/PortableServer/LifespanStrategyTransientFactoryImpl.cpp: + * tao/PortableServer/LifespanStrategyTransientFactoryImpl.h: + * tao/PortableServer/Local_Servant_Base.cpp: + * tao/PortableServer/Local_Servant_Base.h: + * tao/PortableServer/Local_Servant_Base.inl: + * tao/PortableServer/Non_Servant_Upcall.cpp: + * tao/PortableServer/Non_Servant_Upcall.h: + * tao/PortableServer/Non_Servant_Upcall.inl: + * tao/PortableServer/ORT_Adapter.cpp: + * tao/PortableServer/ORT_Adapter.h: + * tao/PortableServer/ORT_Adapter_Factory.cpp: + * tao/PortableServer/ORT_Adapter_Factory.h: + * tao/PortableServer/Object_Adapter.cpp: + * tao/PortableServer/Object_Adapter.h: + * tao/PortableServer/Object_Adapter.i: + * tao/PortableServer/Object_Adapter_Factory.cpp: + * tao/PortableServer/Object_Adapter_Factory.h: + * tao/PortableServer/Object_SArg_Traits.h: + * tao/PortableServer/Object_SArgument_T.cpp: + * tao/PortableServer/Object_SArgument_T.h: + * tao/PortableServer/Object_SArgument_T.inl: + * tao/PortableServer/Operation_Table.cpp: + * tao/PortableServer/Operation_Table.h: + * tao/PortableServer/Operation_Table_Binary_Search.cpp: + * tao/PortableServer/Operation_Table_Binary_Search.h: + * tao/PortableServer/Operation_Table_Dynamic_Hash.cpp: + * tao/PortableServer/Operation_Table_Dynamic_Hash.h: + * tao/PortableServer/Operation_Table_Linear_Search.cpp: + * tao/PortableServer/Operation_Table_Linear_Search.h: + * tao/PortableServer/Operation_Table_Perfect_Hash.cpp: + * tao/PortableServer/Operation_Table_Perfect_Hash.h: + * tao/PortableServer/POAManager.cpp: + * tao/PortableServer/POAManager.h: + * tao/PortableServer/POAManager.i: + * tao/PortableServer/POA_Cached_Policies.cpp: + * tao/PortableServer/POA_Cached_Policies.h: + * tao/PortableServer/POA_Cached_Policies.i: + * tao/PortableServer/POA_Current.cpp: + * tao/PortableServer/POA_Current.h: + * tao/PortableServer/POA_Current.inl: + * tao/PortableServer/POA_Current_Factory.cpp: + * tao/PortableServer/POA_Current_Factory.h: + * tao/PortableServer/POA_Current_Impl.cpp: + * tao/PortableServer/POA_Current_Impl.h: + * tao/PortableServer/POA_Current_Impl.inl: + * tao/PortableServer/POA_Guard.cpp: + * tao/PortableServer/POA_Guard.h: + * tao/PortableServer/POA_Policy_Set.cpp: + * tao/PortableServer/POA_Policy_Set.h: + * tao/PortableServer/POA_Policy_Set.i: + * tao/PortableServer/Policy_Strategy.h: + * tao/PortableServer/PortableServer.cpp: + * tao/PortableServer/PortableServer.h: + * tao/PortableServer/PortableServer_Functions.cpp: + * tao/PortableServer/PortableServer_Functions.h: + * tao/PortableServer/PortableServer_WFunctions.cpp: + * tao/PortableServer/PortableServer_WFunctions.h: + * tao/PortableServer/Regular_POA.cpp: + * tao/PortableServer/Regular_POA.h: + * tao/PortableServer/Regular_POA.inl: + * tao/PortableServer/RequestProcessingPolicy.cpp: + * tao/PortableServer/RequestProcessingPolicy.h: + * tao/PortableServer/RequestProcessingStrategy.cpp: + * tao/PortableServer/RequestProcessingStrategy.h: + * tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp: + * tao/PortableServer/RequestProcessingStrategyAOMOnly.h: + * tao/PortableServer/RequestProcessingStrategyAOMOnlyFactoryImpl.cpp: + * tao/PortableServer/RequestProcessingStrategyAOMOnlyFactoryImpl.h: + * tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp: + * tao/PortableServer/RequestProcessingStrategyDefaultServant.h: + * tao/PortableServer/RequestProcessingStrategyDefaultServantFI.cpp: + * tao/PortableServer/RequestProcessingStrategyDefaultServantFI.h: + * tao/PortableServer/RequestProcessingStrategyFactory.h: + * tao/PortableServer/RequestProcessingStrategyFactoryImpl.cpp: + * tao/PortableServer/RequestProcessingStrategyFactoryImpl.h: + * tao/PortableServer/RequestProcessingStrategyServantActivator.cpp: + * tao/PortableServer/RequestProcessingStrategyServantActivator.h: + * tao/PortableServer/RequestProcessingStrategyServantActivatorFI.cpp: + * tao/PortableServer/RequestProcessingStrategyServantActivatorFI.h: + * tao/PortableServer/RequestProcessingStrategyServantLocator.cpp: + * tao/PortableServer/RequestProcessingStrategyServantLocator.h: + * tao/PortableServer/RequestProcessingStrategyServantLocatorFI.cpp: + * tao/PortableServer/RequestProcessingStrategyServantLocatorFI.h: + * tao/PortableServer/RequestProcessingStrategyServantManager.cpp: + * tao/PortableServer/RequestProcessingStrategyServantManager.h: + * tao/PortableServer/Root_POA.cpp: + * tao/PortableServer/Root_POA.h: + * tao/PortableServer/Root_POA.inl: + * tao/PortableServer/SArg_Traits_T.h: + * tao/PortableServer/ServantRetentionPolicy.cpp: + * tao/PortableServer/ServantRetentionPolicy.h: + * tao/PortableServer/ServantRetentionStrategy.h: + * tao/PortableServer/ServantRetentionStrategyFactoryImpl.cpp: + * tao/PortableServer/ServantRetentionStrategyFactoryImpl.h: + * tao/PortableServer/ServantRetentionStrategyNonRetain.cpp: + * tao/PortableServer/ServantRetentionStrategyNonRetain.h: + * tao/PortableServer/ServantRetentionStrategyNonRetainFactoryImpl.cpp: + * tao/PortableServer/ServantRetentionStrategyNonRetainFactoryImpl.h: + * tao/PortableServer/ServantRetentionStrategyRetain.cpp: + * tao/PortableServer/ServantRetentionStrategyRetain.h: + * tao/PortableServer/ServantRetentionStrategyRetainFactoryImpl.cpp: + * tao/PortableServer/ServantRetentionStrategyRetainFactoryImpl.h: + * tao/PortableServer/Servant_Base.cpp: + * tao/PortableServer/Servant_Base.h: + * tao/PortableServer/Servant_Base.i: + * tao/PortableServer/Servant_Dispatcher.cpp: + * tao/PortableServer/Servant_Dispatcher.h: + * tao/PortableServer/Servant_Location.h: + * tao/PortableServer/Servant_Upcall.cpp: + * tao/PortableServer/Servant_Upcall.h: + * tao/PortableServer/Servant_Upcall.inl: + * tao/PortableServer/Special_Basic_SArgument_T.cpp: + * tao/PortableServer/Special_Basic_SArgument_T.h: + * tao/PortableServer/Special_Basic_SArgument_T.inl: + * tao/PortableServer/Special_Basic_SArguments.h: + * tao/PortableServer/StrategyFactory.cpp: + * tao/PortableServer/StrategyFactory.h: + * tao/PortableServer/ThreadPolicy.cpp: + * tao/PortableServer/ThreadPolicy.h: + * tao/PortableServer/ThreadStrategy.cpp: + * tao/PortableServer/ThreadStrategy.h: + * tao/PortableServer/ThreadStrategyFactory.h: + * tao/PortableServer/ThreadStrategyFactoryImpl.cpp: + * tao/PortableServer/ThreadStrategyFactoryImpl.h: + * tao/PortableServer/ThreadStrategyORBControl.cpp: + * tao/PortableServer/ThreadStrategyORBControl.h: + * tao/PortableServer/ThreadStrategySingle.cpp: + * tao/PortableServer/ThreadStrategySingle.h: + * tao/PortableServer/ThreadStrategySingleFactoryImpl.cpp: + * tao/PortableServer/ThreadStrategySingleFactoryImpl.h: + * tao/PortableServer/TypeCode_SArg_Traits.h: + * tao/PortableServer/UB_String_SArgument_T.cpp: + * tao/PortableServer/UB_String_SArgument_T.h: + * tao/PortableServer/UB_String_SArgument_T.inl: + * tao/PortableServer/UB_String_SArguments.h: + * tao/PortableServer/Upcall_Command.cpp: + * tao/PortableServer/Upcall_Command.h: + * tao/PortableServer/Upcall_Wrapper.cpp: + * tao/PortableServer/Upcall_Wrapper.h: + * tao/PortableServer/Var_Array_SArgument_T.cpp: + * tao/PortableServer/Var_Array_SArgument_T.h: + * tao/PortableServer/Var_Array_SArgument_T.inl: + * tao/PortableServer/get_arg.h: + * tao/PortableServer/poa_macros.h: + * tao/RTCORBA/Continuous_Priority_Mapping.cpp: + * tao/RTCORBA/Continuous_Priority_Mapping.h: + * tao/RTCORBA/Direct_Priority_Mapping.cpp: + * tao/RTCORBA/Direct_Priority_Mapping.h: + * tao/RTCORBA/Linear_Network_Priority_Mapping.cpp: + * tao/RTCORBA/Linear_Network_Priority_Mapping.h: + * tao/RTCORBA/Linear_Priority_Mapping.cpp: + * tao/RTCORBA/Linear_Priority_Mapping.h: + * tao/RTCORBA/Multi_Priority_Mapping.cpp: + * tao/RTCORBA/Multi_Priority_Mapping.h: + * tao/RTCORBA/Network_Priority_Mapping.cpp: + * tao/RTCORBA/Network_Priority_Mapping.h: + * tao/RTCORBA/Network_Priority_Mapping_Manager.cpp: + * tao/RTCORBA/Network_Priority_Mapping_Manager.i: + * tao/RTCORBA/Priority_Mapping.cpp: + * tao/RTCORBA/Priority_Mapping.h: + * tao/RTCORBA/Priority_Mapping_Manager.cpp: + * tao/RTCORBA/Priority_Mapping_Manager.h: + * tao/RTCORBA/Priority_Mapping_Manager.i: + * tao/RTCORBA/RTCORBA.cpp: + * tao/RTCORBA/RTCORBA.h: + * tao/RTCORBA/RT_Current.cpp: + * tao/RTCORBA/RT_Current.h: + * tao/RTCORBA/RT_Endpoint_Selector_Factory.cpp: + * tao/RTCORBA/RT_Endpoint_Selector_Factory.h: + * tao/RTCORBA/RT_Endpoint_Utils.cpp: + * tao/RTCORBA/RT_Endpoint_Utils.h: + * tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp: + * tao/RTCORBA/RT_Invocation_Endpoint_Selectors.h: + * tao/RTCORBA/RT_Mutex.cpp: + * tao/RTCORBA/RT_Mutex.h: + * tao/RTCORBA/RT_ORB.cpp: + * tao/RTCORBA/RT_ORB.h: + * tao/RTCORBA/RT_ORBInitializer.cpp: + * tao/RTCORBA/RT_ORBInitializer.h: + * tao/RTCORBA/RT_ORB_Loader.cpp: + * tao/RTCORBA/RT_ORB_Loader.h: + * tao/RTCORBA/RT_PolicyFactory.cpp: + * tao/RTCORBA/RT_PolicyFactory.h: + * tao/RTCORBA/RT_Policy_i.cpp: + * tao/RTCORBA/RT_Policy_i.h: + * tao/RTCORBA/RT_Protocols_Hooks.cpp: + * tao/RTCORBA/RT_Protocols_Hooks.h: + * tao/RTCORBA/RT_Stub.cpp: + * tao/RTCORBA/RT_Stub.h: + * tao/RTCORBA/RT_Stub_Factory.cpp: + * tao/RTCORBA/RT_Stub_Factory.h: + * tao/RTCORBA/RT_Thread_Lane_Resources_Manager.cpp: + * tao/RTCORBA/RT_Thread_Lane_Resources_Manager.h: + * tao/RTCORBA/RT_Transport_Descriptor.cpp: + * tao/RTCORBA/RT_Transport_Descriptor.h: + * tao/RTCORBA/RT_Transport_Descriptor.inl: + * tao/RTCORBA/RT_Transport_Descriptor_Property.cpp: + * tao/RTCORBA/RT_Transport_Descriptor_Property.h: + * tao/RTCORBA/RT_Transport_Descriptor_Property.inl: + * tao/RTCORBA/Thread_Pool.cpp: + * tao/RTCORBA/Thread_Pool.h: + * tao/RTCORBA/Thread_Pool.inl: + * tao/RTCORBA/rtcorba_typedefs.h: + * tao/RTPortableServer/RTPortableServer.cpp: + * tao/RTPortableServer/RTPortableServer.h: + * tao/RTPortableServer/RT_Acceptor_Filters.cpp: + * tao/RTPortableServer/RT_Acceptor_Filters.h: + * tao/RTPortableServer/RT_Collocation_Resolver.cpp: + * tao/RTPortableServer/RT_Collocation_Resolver.h: + * tao/RTPortableServer/RT_Object_Adapter_Factory.cpp: + * tao/RTPortableServer/RT_Object_Adapter_Factory.h: + * tao/RTPortableServer/RT_POA.cpp: + * tao/RTPortableServer/RT_POA.h: + * tao/RTPortableServer/RT_POA.i: + * tao/RTPortableServer/RT_Policy_Validator.cpp: + * tao/RTPortableServer/RT_Policy_Validator.h: + * tao/RTPortableServer/RT_Servant_Dispatcher.cpp: + * tao/RTPortableServer/RT_Servant_Dispatcher.h: + * tao/RTScheduling/Current.cpp: + * tao/RTScheduling/Current.h: + * tao/RTScheduling/Distributable_Thread.cpp: + * tao/RTScheduling/Distributable_Thread.h: + * tao/RTScheduling/RTScheduler.cpp: + * tao/RTScheduling/RTScheduler.h: + * tao/RTScheduling/RTScheduler_Initializer.cpp: + * tao/RTScheduling/RTScheduler_Initializer.h: + * tao/RTScheduling/RTScheduler_Loader.cpp: + * tao/RTScheduling/RTScheduler_Loader.h: + * tao/RTScheduling/RTScheduler_Manager.cpp: + * tao/RTScheduling/RTScheduler_Manager.h: + * tao/RTScheduling/RTScheduler_Manager.i: + * tao/RTScheduling/Request_Interceptor.cpp: + * tao/RTScheduling/Request_Interceptor.h: + * tao/RTScheduling/ThreadAction.h: + * tao/Valuetype/AbstractBase_Invocation_Adapter.h: + + Added versioned namespace support. + + Removed unnecessary *_Export keywords from symbols that need not + be exported from the shared library within which they reside. + + * tao/AnyTypeCode/TC_Constants_Forward.h: + + Removed this unused file. + + * tao/Makefile.am (nobase_include_HEADERS): + + Removed `AnyTypeCode/TC_Constants_Forward.h' header from this + list. + +Thu Nov 3 09:11:51 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp + (visit_valuetype_scope): + + Removed unused variable. + +Thu Nov 3 05:30:41 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Makefile.am: + * tao/tao.mpc: + + Fix tipo. Change Version_Namespace.h to Versioned_Namespace.h. + +Wed Nov 2 09:07:48 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/TAO_Singleton.h: + + Include "tao/Versioned_Namespace.h" to pull in + "TAO_BEGIN_VERSIONED_NAMESPACE_DECL" macro definition. + Addresses VC++ 6 build errors. + +Wed Nov 2 09:39:27 MST 2005 Yan Dai <dai_y@ociweb.com> + + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp: + + Commented the if/endif with TAO_HAS_INTERCEPTORS because the code + guarded by the macro is commented out already. + +Wed Nov 2 08:30:41 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * tao/Synch_Invocation.cpp: + * tao/LocalRequest_Invocation.cpp: + + Reverted "Fri Aug 26 11:33:07 2005 Justin Michel + <michel_j@ociweb.com>" since the change was wrong. Chris + Cleeland is informed, and he has accepted to do a right fix + when he gets time. + + * tao/orbconf.h: + + Removed TAO_RESET_OUTPUT_CDR_AFTER_SEND #define, since it is of no + use anymore. + +Wed Nov 2 14:17:47 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp: + + Fixed logic for generating commas separating base + constructor call and member inits in generated valuetype + initializing constructor. + +Wed Nov 2 13:19:02 2005 Simon McQueen <sm@prismtech.com> + + * tests/Bug_2287_Regression/ServerRequest_Interceptor2.cpp: + + Add explicit exclude of forward request exception header to + try and fix Solaris build error. + +Wed Nov 2 12:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Intrusive_Ref_Count_Handle_T.inl: + Fixed compile error + +Wed Nov 2 12:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2289_Regression/MyStruct*.*: + Readded these files to get things building, having hand modified + generated file in the repo is not the right things todo. + +Wed Nov 2 08:17:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/Unbounded_Octet.cpp: + Changed include for the time being + +Tue Nov 1 14:49:40 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp (end_anyop_header): + (end_anyop_source, end_client_header, end_client_inline): + (end_client_stubs, end_server_header, end_server_inline): + (end_server_skeletons, end_server_template_skeletons): + (end_server_template_inline, end_server_template_header): + (gen_stub_hdr_includes): + (start_anyop_source, start_anyop_header, start_client_header): + (start_client_inline, start_client_stubs): + (start_server_template_inline, start_server_header): + (start_server_inline, start_server_template_skeletons): + (start_server_skeletons, start_server_template_header): + + Generate versioned namespace macro/declaration in the + appropriate location. + + * TAO_IDL/be_include/be_codegen.h (end_client_inline): + (end_client_stubs, end_server_inline): + + New methods that (currently) add ending versioned namespace + macro/declaration to the corresponding file. + + * TAO_IDL/be/be_visitor_root/root.cpp (visit_root): + + Added calls to end client stubs, and client and server inline + files. + + * tao/Makefile.am (nobase_include_HEADERS): + * tao/tao.mpc: + + Added new "tao/Versioned_Namespace.h" header. + + * tao/Versioned_Namespace.h: + + TAO-specific versioned namespace macros. + + * tao/Abstract_Servant_Base.cpp: + * tao/Abstract_Servant_Base.h: + * tao/Acceptor_Filter.cpp: + * tao/Acceptor_Filter.h: + * tao/Acceptor_Impl.cpp: + * tao/Acceptor_Impl.h: + * tao/Acceptor_Registry.cpp: + * tao/Acceptor_Registry.h: + * tao/Acceptor_Registry.i: + * tao/Adapter.cpp: + * tao/Adapter.h: + * tao/Adapter_Factory.cpp: + * tao/Adapter_Factory.h: + * tao/Adapter_Registry.cpp: + * tao/Adapter_Registry.h: + * tao/Allocator.h: + * tao/AnyTypeCode_Adapter.cpp: + * tao/AnyTypeCode_Adapter.h: + * tao/Any_Insert_Policy_T.h: + * tao/Arg_Traits_T.h: + * tao/Argument.cpp: + * tao/Argument.h: + * tao/Array_VarOut_T.cpp: + * tao/Array_VarOut_T.h: + * tao/Array_VarOut_T.inl: + * tao/Asynch_Queued_Message.cpp: + * tao/Asynch_Reply_Dispatcher_Base.cpp: + * tao/Asynch_Reply_Dispatcher_Base.h: + * tao/Asynch_Reply_Dispatcher_Base.i: + * tao/Auto_Functor.h: + * tao/BD_String_Argument_T.cpp: + * tao/BD_String_Argument_T.h: + * tao/BD_String_Argument_T.inl: + * tao/Base_Transport_Property.cpp: + * tao/Base_Transport_Property.h: + * tao/Base_Transport_Property.inl: + * tao/Basic_Argument_T.cpp: + * tao/Basic_Argument_T.h: + * tao/Basic_Argument_T.inl: + * tao/Basic_Arguments.h: + * tao/Basic_Types.h: + * tao/BiDir_Adapter.cpp: + * tao/BiDir_Adapter.h: + * tao/Bind_Dispatcher_Guard.cpp: + * tao/Bind_Dispatcher_Guard.h: + * tao/Bind_Dispatcher_Guard.i: + * tao/Block_Flushing_Strategy.cpp: + * tao/Block_Flushing_Strategy.h: + * tao/Blocked_Connect_Strategy.cpp: + * tao/Blocked_Connect_Strategy.h: + * tao/Buffer_Allocator_T.cpp: + * tao/Buffer_Allocator_T.h: + * tao/Buffering_Constraint_Policy.cpp: + * tao/Buffering_Constraint_Policy.h: + * tao/Buffering_Constraint_Policy.i: + * tao/CDR.cpp: + * tao/CDR.h: + * tao/CDR.i: + * tao/CORBALOC_Parser.cpp: + * tao/CORBALOC_Parser.h: + * tao/CORBALOC_Parser.i: + * tao/CORBANAME_Parser.cpp: + * tao/CORBANAME_Parser.h: + * tao/CORBANAME_Parser.i: + * tao/CORBA_String.cpp: + * tao/CORBA_String.h: + * tao/CORBA_String.inl: + * tao/Cache_Entries.cpp: + * tao/Cache_Entries.h: + * tao/Cache_Entries.inl: + * tao/Cleanup_Func_Registry.cpp: + * tao/Cleanup_Func_Registry.h: + * tao/Cleanup_Func_Registry.inl: + * tao/ClientRequestInterceptor_Adapter.cpp: + * tao/ClientRequestInterceptor_Adapter.h: + * tao/ClientRequestInterceptor_Adapter_Factory.cpp: + * tao/ClientRequestInterceptor_Adapter_Factory.h: + * tao/Client_Strategy_Factory.cpp: + * tao/Client_Strategy_Factory.h: + * tao/Codeset_Descriptor_Base.h: + * tao/Codeset_Manager.cpp: + * tao/Codeset_Manager.h: + * tao/Codeset_Manager_Factory_Base.cpp: + * tao/Codeset_Manager_Factory_Base.h: + * tao/Codeset_Translator_Base.cpp: + * tao/Codeset_Translator_Base.h: + * tao/Collocated_Invocation.cpp: + * tao/Collocated_Invocation.h: + * tao/Collocation_Proxy_Broker.cpp: + * tao/Collocation_Proxy_Broker.h: + * tao/Collocation_Resolver.cpp: + * tao/Collocation_Resolver.h: + * tao/Condition.cpp: + * tao/Condition.h: + * tao/Condition.inl: + * tao/Connect_Strategy.cpp: + * tao/Connect_Strategy.h: + * tao/Connection_Handler.cpp: + * tao/Connection_Handler.h: + * tao/Connection_Handler.inl: + * tao/Connection_Purging_Strategy.cpp: + * tao/Connection_Purging_Strategy.h: + * tao/Connection_Purging_Strategy.inl: + * tao/Connector_Impl.cpp: + * tao/Connector_Impl.h: + * tao/Connector_Registry.cpp: + * tao/Connector_Registry.h: + * tao/Connector_Registry.i: + * tao/DLL_Parser.cpp: + * tao/DLL_Parser.h: + * tao/DLL_Parser.i: + * tao/Default_Collocation_Resolver.cpp: + * tao/Default_Collocation_Resolver.h: + * tao/Default_Endpoint_Selector_Factory.cpp: + * tao/Default_Endpoint_Selector_Factory.h: + * tao/Default_Protocols_Hooks.cpp: + * tao/Default_Protocols_Hooks.h: + * tao/Default_Stub_Factory.cpp: + * tao/Default_Stub_Factory.h: + * tao/Default_Thread_Lane_Resources_Manager.cpp: + * tao/Default_Thread_Lane_Resources_Manager.h: + * tao/Dynamic_Adapter.cpp: + * tao/Dynamic_Adapter.h: + * tao/Endpoint.cpp: + * tao/Endpoint.h: + * tao/Endpoint.i: + * tao/Endpoint_Selector_Factory.cpp: + * tao/Endpoint_Selector_Factory.h: + * tao/Environment.cpp: + * tao/Environment.h: + * tao/Environment.i: + * tao/Exception.cpp: + * tao/Exception.h: + * tao/Exception.i: + * tao/Exception_Data.h: + * tao/Exclusive_TMS.cpp: + * tao/Exclusive_TMS.h: + * tao/FILE_Parser.cpp: + * tao/FILE_Parser.h: + * tao/FILE_Parser.i: + * tao/Fault_Tolerance_Service.cpp: + * tao/Fault_Tolerance_Service.h: + * tao/Fault_Tolerance_Service.i: + * tao/Fixed_Array_Argument_T.cpp: + * tao/Fixed_Array_Argument_T.h: + * tao/Fixed_Array_Argument_T.inl: + * tao/Fixed_Size_Argument_T.cpp: + * tao/Fixed_Size_Argument_T.h: + * tao/Fixed_Size_Argument_T.inl: + * tao/FlResource_Factory.cpp: + * tao/FlResource_Factory.h: + * tao/FlResource_Loader.cpp: + * tao/FlResource_Loader.h: + * tao/Flushing_Strategy.cpp: + * tao/Flushing_Strategy.h: + * tao/GIOP_Message_Base.cpp: + * tao/GIOP_Message_Base.h: + * tao/GIOP_Message_Generator_Parser.cpp: + * tao/GIOP_Message_Generator_Parser.h: + * tao/GIOP_Message_Generator_Parser_10.cpp: + * tao/GIOP_Message_Generator_Parser_10.h: + * tao/GIOP_Message_Generator_Parser_11.cpp: + * tao/GIOP_Message_Generator_Parser_11.h: + * tao/GIOP_Message_Generator_Parser_12.cpp: + * tao/GIOP_Message_Generator_Parser_12.h: + * tao/GIOP_Message_Generator_Parser_Impl.h: + * tao/GIOP_Message_Generator_Parser_Impl.inl: + * tao/GIOP_Message_Lite.cpp: + * tao/GIOP_Message_Lite.h: + * tao/GIOP_Message_Locate_Header.cpp: + * tao/GIOP_Message_Locate_Header.h: + * tao/GIOP_Message_Locate_Header.i: + * tao/GIOP_Message_State.cpp: + * tao/GIOP_Message_State.h: + * tao/GIOP_Message_State.inl: + * tao/GIOP_Message_Version.h: + * tao/GIOP_Message_Version.inl: + * tao/GIOP_Utils.cpp: + * tao/GIOP_Utils.h: + * tao/GUIResource_Factory.cpp: + * tao/GUIResource_Factory.h: + * tao/IFR_Client_Adapter.cpp: + * tao/IFR_Client_Adapter.h: + * tao/IIOP_Acceptor.cpp: + * tao/IIOP_Acceptor.h: + * tao/IIOP_Acceptor.i: + * tao/IIOP_Connection_Handler.cpp: + * tao/IIOP_Connection_Handler.h: + * tao/IIOP_Connector.cpp: + * tao/IIOP_Connector.h: + * tao/IIOP_Endpoint.cpp: + * tao/IIOP_Endpoint.h: + * tao/IIOP_Endpoint.i: + * tao/IIOP_Factory.cpp: + * tao/IIOP_Factory.h: + * tao/IIOP_Lite_Factory.cpp: + * tao/IIOP_Lite_Factory.h: + * tao/IIOP_Profile.cpp: + * tao/IIOP_Profile.h: + * tao/IIOP_Transport.cpp: + * tao/IIOP_Transport.h: + * tao/IORInterceptor_Adapter.cpp: + * tao/IORInterceptor_Adapter.h: + * tao/IORInterceptor_Adapter_Factory.cpp: + * tao/IORInterceptor_Adapter_Factory.h: + * tao/IOR_Parser.cpp: + * tao/IOR_Parser.h: + * tao/Incoming_Message_Queue.cpp: + * tao/Incoming_Message_Queue.h: + * tao/Incoming_Message_Queue.inl: + * tao/Intrusive_Ref_Count_Base_T.cpp: + * tao/Intrusive_Ref_Count_Base_T.h: + * tao/Intrusive_Ref_Count_Base_T.inl: + * tao/Intrusive_Ref_Count_Handle_T.cpp: + * tao/Intrusive_Ref_Count_Handle_T.h: + * tao/Intrusive_Ref_Count_Handle_T.inl: + * tao/Invocation_Adapter.cpp: + * tao/Invocation_Adapter.h: + * tao/Invocation_Adapter.inl: + * tao/Invocation_Base.cpp: + * tao/Invocation_Base.h: + * tao/Invocation_Base.inl: + * tao/Invocation_Endpoint_Selectors.cpp: + * tao/Invocation_Endpoint_Selectors.h: + * tao/Invocation_Utils.h: + * tao/LF_CH_Event.cpp: + * tao/LF_CH_Event.h: + * tao/LF_Connect_Strategy.cpp: + * tao/LF_Connect_Strategy.h: + * tao/LF_Event.cpp: + * tao/LF_Event.h: + * tao/LF_Event.inl: + * tao/LF_Event_Binder.cpp: + * tao/LF_Event_Binder.h: + * tao/LF_Event_Binder.inl: + * tao/LF_Event_Loop_Thread_Helper.cpp: + * tao/LF_Event_Loop_Thread_Helper.h: + * tao/LF_Event_Loop_Thread_Helper.inl: + * tao/LF_Follower.cpp: + * tao/LF_Follower.h: + * tao/LF_Follower.inl: + * tao/LF_Follower_Auto_Adder.cpp: + * tao/LF_Follower_Auto_Adder.h: + * tao/LF_Follower_Auto_Adder.inl: + * tao/LF_Follower_Auto_Ptr.cpp: + * tao/LF_Follower_Auto_Ptr.h: + * tao/LF_Follower_Auto_Ptr.inl: + * tao/LF_Invocation_Event.cpp: + * tao/LF_Invocation_Event.h: + * tao/LF_Strategy.cpp: + * tao/LF_Strategy.h: + * tao/LF_Strategy_Complete.cpp: + * tao/LF_Strategy_Complete.h: + * tao/LF_Strategy_Complete.inl: + * tao/LRU_Connection_Purging_Strategy.cpp: + * tao/LRU_Connection_Purging_Strategy.h: + * tao/Leader_Follower.cpp: + * tao/Leader_Follower.h: + * tao/Leader_Follower.i: + * tao/Leader_Follower_Flushing_Strategy.cpp: + * tao/Leader_Follower_Flushing_Strategy.h: + * tao/LocalObject.cpp: + * tao/LocalObject.h: + * tao/LocalObject.i: + * tao/LocateRequest_Invocation.cpp: + * tao/LocateRequest_Invocation.h: + * tao/LocateRequest_Invocation_Adapter.cpp: + * tao/LocateRequest_Invocation_Adapter.h: + * tao/MCAST_Parser.cpp: + * tao/MCAST_Parser.h: + * tao/MCAST_Parser.i: + * tao/MProfile.cpp: + * tao/MProfile.h: + * tao/MProfile.i: + * tao/Managed_Types.cpp: + * tao/Managed_Types.h: + * tao/Managed_Types.i: + * tao/Muxed_TMS.cpp: + * tao/Muxed_TMS.h: + * tao/NVList_Adapter.cpp: + * tao/NVList_Adapter.h: + * tao/New_Leader_Generator.cpp: + * tao/New_Leader_Generator.h: + * tao/ORB.cpp: + * tao/ORB.h: + * tao/ORB.i: + * tao/ORBInitializer_Registry.cpp: + * tao/ORBInitializer_Registry.h: + * tao/ORBInitializer_Registry_Adapter.cpp: + * tao/ORBInitializer_Registry_Adapter.h: + * tao/ORB_Constants.h: + * tao/ORB_Core.cpp: + * tao/ORB_Core.h: + * tao/ORB_Core.i: + * tao/ORB_Core_Auto_Ptr.cpp: + * tao/ORB_Core_Auto_Ptr.h: + * tao/ORB_Core_Auto_Ptr.inl: + * tao/ORB_Core_TSS_Resources.cpp: + * tao/ORB_Core_TSS_Resources.h: + * tao/ORB_Table.cpp: + * tao/ORB_Table.h: + * tao/ORB_Table.inl: + * tao/Object.cpp: + * tao/Object.h: + * tao/Object.i: + * tao/ObjectKey_Table.cpp: + * tao/ObjectKey_Table.h: + * tao/Object_Argument_T.cpp: + * tao/Object_Argument_T.h: + * tao/Object_Argument_T.inl: + * tao/Object_Loader.cpp: + * tao/Object_Loader.h: + * tao/Object_Proxy_Broker.cpp: + * tao/Object_Proxy_Broker.h: + * tao/Object_Ref_Table.cpp: + * tao/Object_Ref_Table.h: + * tao/Object_Ref_Table.inl: + * tao/Object_T.cpp: + * tao/Object_T.h: + * tao/Objref_VarOut_T.cpp: + * tao/Objref_VarOut_T.h: + * tao/Parser_Registry.cpp: + * tao/Parser_Registry.h: + * tao/Parser_Registry.i: + * tao/Pluggable_Messaging.cpp: + * tao/Pluggable_Messaging.h: + * tao/Pluggable_Messaging_Utils.cpp: + * tao/Pluggable_Messaging_Utils.h: + * tao/Pluggable_Messaging_Utils.i: + * tao/PolicyFactory_Registry_Adapter.cpp: + * tao/PolicyFactory_Registry_Adapter.h: + * tao/Policy_Current.cpp: + * tao/Policy_Current.h: + * tao/Policy_Current.inl: + * tao/Policy_Current_Impl.cpp: + * tao/Policy_Current_Impl.h: + * tao/Policy_Current_Impl.inl: + * tao/Policy_Manager.cpp: + * tao/Policy_Manager.h: + * tao/Policy_Manager.i: + * tao/Policy_Set.cpp: + * tao/Policy_Set.h: + * tao/Policy_Set.i: + * tao/Policy_Validator.cpp: + * tao/Policy_Validator.h: + * tao/Principal.cpp: + * tao/Principal.h: + * tao/Principal.i: + * tao/Profile.cpp: + * tao/Profile.h: + * tao/Profile.i: + * tao/Profile_Transport_Resolver.cpp: + * tao/Profile_Transport_Resolver.h: + * tao/Profile_Transport_Resolver.inl: + * tao/Protocol_Factory.cpp: + * tao/Protocol_Factory.h: + * tao/Protocols_Hooks.cpp: + * tao/Protocols_Hooks.h: + * tao/Pseudo_VarOut_T.cpp: + * tao/Pseudo_VarOut_T.h: + * tao/Pseudo_VarOut_T.inl: + * tao/QtResource_Factory.cpp: + * tao/QtResource_Factory.h: + * tao/QtResource_Loader.cpp: + * tao/QtResource_Loader.h: + * tao/Queued_Message.cpp: + * tao/Queued_Message.h: + * tao/Reactive_Connect_Strategy.cpp: + * tao/Reactive_Connect_Strategy.h: + * tao/Reactive_Flushing_Strategy.cpp: + * tao/Reactive_Flushing_Strategy.h: + * tao/Refcounted_ObjectKey.cpp: + * tao/Refcounted_ObjectKey.h: + * tao/Refcounted_ObjectKey.inl: + * tao/Remote_Invocation.cpp: + * tao/Remote_Invocation.h: + * tao/Remote_Object_Proxy_Broker.cpp: + * tao/Remote_Object_Proxy_Broker.h: + * tao/Reply_Dispatcher.cpp: + * tao/Reply_Dispatcher.h: + * tao/Reply_Dispatcher.i: + * tao/Request_Dispatcher.cpp: + * tao/Request_Dispatcher.h: + * tao/Resource_Factory.cpp: + * tao/Resource_Factory.h: + * tao/Resume_Handle.cpp: + * tao/Resume_Handle.h: + * tao/Resume_Handle.inl: + * tao/Seq_Out_T.cpp: + * tao/Seq_Out_T.h: + * tao/Seq_Out_T.inl: + * tao/Seq_Var_T.cpp: + * tao/Seq_Var_T.h: + * tao/Seq_Var_T.inl: + * tao/Sequence.cpp: + * tao/Sequence.h: + * tao/Sequence.i: + * tao/Sequence_T.cpp: + * tao/Sequence_T.h: + * tao/Sequence_T.i: + * tao/ServerRequestInterceptor_Adapter.cpp: + * tao/ServerRequestInterceptor_Adapter.h: + * tao/ServerRequestInterceptor_Adapter_Factory.cpp: + * tao/ServerRequestInterceptor_Adapter_Factory.h: + * tao/Server_Strategy_Factory.cpp: + * tao/Server_Strategy_Factory.h: + * tao/Service_Callbacks.cpp: + * tao/Service_Callbacks.h: + * tao/Service_Context.cpp: + * tao/Service_Context.h: + * tao/Service_Context.inl: + * tao/Services_Activate.cpp: + * tao/Services_Activate.h: + * tao/Special_Basic_Argument_T.cpp: + * tao/Special_Basic_Argument_T.h: + * tao/Special_Basic_Argument_T.inl: + * tao/Special_Basic_Arguments.h: + * tao/Stub.cpp: + * tao/Stub.h: + * tao/Stub.i: + * tao/Stub_Factory.cpp: + * tao/Stub_Factory.h: + * tao/Synch_Invocation.cpp: + * tao/Synch_Invocation.h: + * tao/Synch_Invocation.inl: + * tao/Synch_Queued_Message.cpp: + * tao/Synch_Queued_Message.h: + * tao/Synch_Reply_Dispatcher.cpp: + * tao/Synch_Reply_Dispatcher.h: + * tao/SystemException.cpp: + * tao/SystemException.h: + * tao/SystemException.inl: + * tao/TAO_Internal.cpp: + * tao/TAO_Server_Request.cpp: + * tao/TAO_Server_Request.h: + * tao/TAO_Server_Request.i: + * tao/TAO_Singleton.cpp: + * tao/TAO_Singleton.h: + * tao/TAO_Singleton.inl: + * tao/TAO_Singleton_Manager.cpp: + * tao/TAO_Singleton_Manager.h: + * tao/TAO_Singleton_Manager.inl: + * tao/TSS_Resources.cpp: + * tao/TSS_Resources.h: + * tao/Tagged_Components.cpp: + * tao/Tagged_Components.h: + * tao/Tagged_Components.i: + * tao/Tagged_Profile.cpp: + * tao/Tagged_Profile.h: + * tao/Tagged_Profile.i: + * tao/Thread_Lane_Resources.cpp: + * tao/Thread_Lane_Resources.h: + * tao/Thread_Lane_Resources_Manager.cpp: + * tao/Thread_Lane_Resources_Manager.h: + * tao/Thread_Per_Connection_Handler.cpp: + * tao/Thread_Per_Connection_Handler.h: + * tao/TkResource_Factory.cpp: + * tao/TkResource_Factory.h: + * tao/TkResource_Loader.cpp: + * tao/TkResource_Loader.h: + * tao/Transport.cpp: + * tao/Transport.h: + * tao/Transport.inl: + * tao/Transport_Acceptor.cpp: + * tao/Transport_Acceptor.h: + * tao/Transport_Acceptor.inl: + * tao/Transport_Cache_Manager.cpp: + * tao/Transport_Cache_Manager.h: + * tao/Transport_Cache_Manager.inl: + * tao/Transport_Connector.cpp: + * tao/Transport_Connector.h: + * tao/Transport_Connector.inl: + * tao/Transport_Descriptor_Interface.cpp: + * tao/Transport_Descriptor_Interface.h: + * tao/Transport_Descriptor_Interface.inl: + * tao/Transport_Mux_Strategy.cpp: + * tao/Transport_Mux_Strategy.h: + * tao/Transport_Queueing_Strategies.cpp: + * tao/Transport_Queueing_Strategies.h: + * tao/Transport_Timer.cpp: + * tao/Transport_Timer.h: + * tao/TypeCodeFactory_Adapter.h: + * tao/UB_String_Argument_T.cpp: + * tao/UB_String_Argument_T.h: + * tao/UB_String_Argument_T.inl: + * tao/UB_String_Arguments.h: + * tao/UserException.cpp: + * tao/UserException.h: + * tao/UserException.inl: + * tao/Valuetype_Adapter.cpp: + * tao/Valuetype_Adapter.h: + * tao/VarOut_T.cpp: + * tao/VarOut_T.h: + * tao/VarOut_T.inl: + * tao/Var_Array_Argument_T.cpp: + * tao/Var_Array_Argument_T.h: + * tao/Var_Array_Argument_T.inl: + * tao/Var_Size_Argument_T.cpp: + * tao/Var_Size_Argument_T.h: + * tao/Var_Size_Argument_T.inl: + * tao/Wait_On_LF_No_Upcall.cpp: + * tao/Wait_On_LF_No_Upcall.h: + * tao/Wait_On_Leader_Follower.cpp: + * tao/Wait_On_Leader_Follower.h: + * tao/Wait_On_Reactor.cpp: + * tao/Wait_On_Reactor.h: + * tao/Wait_On_Read.cpp: + * tao/Wait_On_Read.h: + * tao/Wait_Strategy.cpp: + * tao/Wait_Strategy.h: + * tao/corba.h: + * tao/corbafwd.cpp: + * tao/debug.cpp: + * tao/debug.h: + * tao/default_client.cpp: + * tao/default_client.h: + * tao/default_environment.h: + * tao/default_resource.cpp: + * tao/default_resource.h: + * tao/default_server.cpp: + * tao/objectid.h: + * tao/operation_details.cpp: + * tao/operation_details.h: + * tao/operation_details.i: + * tao/orbconf.h: + * tao/params.cpp: + * tao/params.h: + * tao/params.i: + * tao/varbase.h: + + Added versioned namespace support. + + Removed some empty and/or unnecessary `.cpp' and `.inl' files. + + Improved exception safety in some assignment operators. + +Tue Nov 1 14:27:36 USMST 2005 Yan Dai <dai_y@ociweb.com> + + * examples/CSD_Strategy/ThreadPool/run_test.pl: + * examples/CSD_Strategy/ThreadPool2/run_test.pl: + * examples/CSD_Strategy/ThreadPool3/run_test.pl: + * examples/CSD_Strategy/ThreadPool4/run_test.pl: + * examples/CSD_Strategy/ThreadPool5/run_test.pl: + * examples/CSD_Strategy/ThreadPool6/run_test.pl: + * performance-tests/CSD_Strategy/TestApps/run_test.pl: + * tests/CSD_Strategy_Tests/Broken/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_1/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_Static/run_test.pl: + + Changed to enable these scripts to run from autobuild for VxWorks builds. + + * tests/CSD_Strategy_Tests/TP_Test_1/ServerApp.cpp: + + Removed duplicated log message. + +Tue Nov 1 14:30:05 2005 William Otte <wotte@dre.vanderbilt.edu> + + * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc + + Added missing project dependancies to fix errors/warnings for the + strict OS X linker. + +Tue Nov 1 19:58:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2289_Regression/MyInterfaceImpl.h: + Fixed fuzz error + +Tue Nov 1 19:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp: + Added regression for bug 2201 + +Tue Nov 1 19:12:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp: + Added regression for bug 2201 + +Tue Nov 1 19:06:48 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/driver/drv_preproc.cpp: + + Fixed addition of default paths to preprocess command line, + for the case where only $ACE_ROOT, and not $TAO_ROOT, is + defined in the environment. Thanks to Chris Cleeland + <cleeland_c@ociweb.cpm> for reporting the problem. + +Tue Nov 1 19:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/Sequence_Unit_Tests.mpc: + * tests/Sequence_Unit_Tests/run_test.pl: + * tests/Sequence_Unit_Tests/Unbounded_Octet.cpp: + * tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp: + Added new tests for unbounded octet sequences, a specialization + for octet sequences will follow in the near future + +Tue Nov 1 18:58:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/bounded_value_sequence.hpp: + Fixed incorrect guards + +Tue Nov 1 17:55:43 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp: + + Fixed bug in code generation of valuetype initialzing + constructor when there is a generated call to the + valuetype's base class constrcutor. + +Tue Nov 1 15:44:41 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp: + + Eliminated unused local variable. + +Tue Nov 1 15:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/value_sequence_tester.hpp: + Fixed two bugs in this tester, it expected that the sequence + always expects int which is not true, made it generic so + that it can also be used for sequences of other types + +Tue Nov 1 15:37:04 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp: + * TAO_IDL/be_include/be_visitor_valuetype/valuetype_obv_cs.h: + + Fixed generation of valuetype initializing constructor for + array members. These cannot be handled in the constructor's + initialization list, so they are handled in the constructor + body. + +Tue Nov 1 14:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp: + Added a regression for bug 2201 + + * tests/Sequence_Unit_Tests/value_traits.hpp: + Implement initialize_range and zero_range as fix for bug + 2201 which also seemed to exist in the new sequence implementation + +Tue Nov 1 14:42:14 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp: + + Fixed bug in generation of constructor initializing member + values that failed to screen out attributes when traversing + the valuetype's scope for stub source file generation. + +Tue Nov 1 14:14:31 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/Managed_Types.h: + * tao/Managed_Types.i: + + Added constructors for TAO_String_Manager and + TAO_WString_Manager from const char* and const CORBA::WChar* + respectively (each constructor makes a copy). These new + constructors are used in generated code for valuetypes, in + the initializing constructor added in + + Fri Oct 28 23:55:14 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + +Tue Nov 1 12:33:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2074_Regression/*: + * orbsvcs/tests/Bug_2074_Regression/*: + Moved test to orbsvs + +Tue Nov 1 11:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/generic_sequence.hpp: + Fixed typo + +Tue Nov 1 10:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/File_IO/File_i.cpp: + 64bit fix + +Tue Nov 1 10:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/CSD_Strategy/TestInf/ClientTask.cpp: + * tests/CSD_Strategy_Tests/TP_Common/ClientTask.cpp: + Fixed 64bit conversion warnings + +Tue Nov 1 10:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Profile.cpp: + Use prefix operators to modify the refcount + +Tue Nov 1 09:50:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_1495_Regression/Client_Task.cpp: + Extended this test to do multiple calls. It will fail now + + * tests/Bug_2289_Regression/MyStruct*.{h,cpp,inl}: + Removed generated files, shouldn't be in the repo + +Tue Nov 1 09:35:36 2005 Simon McQueen <sm@prismtech.com> + + * tests/Bug_2289_Regression/Bug_2289_Regression.mpc: + * tests/Bug_2289_Regression/MyInterfaceImpl.cpp: + * tests/Bug_2289_Regression/MyInterfaceImpl.h: + * tests/Bug_2289_Regression/MyStruct.idl: + * tests/Bug_2289_Regression/MyStructC.cpp: + * tests/Bug_2289_Regression/MyStructC.h: + * tests/Bug_2289_Regression/MyStructC.inl: + * tests/Bug_2289_Regression/MyStructS.cpp: + * tests/Bug_2289_Regression/MyStructS.h: + * tests/Bug_2289_Regression/MyStructS.inl: + * tests/Bug_2289_Regression/MyStructS_T.cpp: + * tests/Bug_2289_Regression/MyStructS_T.h: + * tests/Bug_2289_Regression/MyStructS_T.inl: + * tests/Bug_2289_Regression/README: + * tests/Bug_2289_Regression/Test.idl: + * tests/Bug_2289_Regression/client.cpp: + * tests/Bug_2289_Regression/run_test.pl: + * tests/Bug_2289_Regression/server.cpp: + + Added regression test for this bug. Bug is not yet fixed so it + *will* fail. + +Mon Oct 31 15:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Sequence_Unit_Tests/mock_reference.hpp: + * tests/Sequence_Unit_Tests/range_checking.hpp: + Small doxygen improvements + +Mon Oct 31 12:00:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2084_Regression/*: + Integrated regression for bug 2084. Thanks to David Faure + <dfaure at klaralvdalens-datakonsult dot se> for creating this + test. It seems this bug has already been resolved in the past + but to prevent to reappear it in the future added the test + to our regression suite. + +Mon Oct 31 11:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2074_Regression/*: + Integrated regression for bug 2074. Thanks to Robert Hancock + <hancockr at shaw dot ca> for creating this test + +Sat Oct 29 13:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Bug_2285_Regression/client2.cpp: + Fixed compile error + +Fri Oct 28 23:55:14 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/ast/ast_type.cpp: + + Cosmetic changes. + + * TAO_IDL/include/ast_attribute.h: + + Removed legacy comment. + + * TAO_IDL/be/be_valuetype.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp: + * TAO_IDL/be_include/be_valuetype.h: + * TAO_IDL/be_include/be_visitor_valuetype/valuetype.h: + * TAO_IDL/be_include/be_visitor_valuetype/valuetype_obv_cs.h: + + Added generation of valuetype constructor that initializes all + members, including inherited members, as specified in the CORBA + C++ mapping (03-06-03) section 1.17.2. This fix closes + [BUGID:2270]. + +Thu Oct 27 14:55:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/Dynamic/server_interceptor.cpp: + Reordered includes to fix gcc4 errors + +Fri Oct 28 15:35:54 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2287_Regression/Hello.cpp: + * orbsvcs/tests/Bug_2285_Regression/ServerRequest_Interceptor.cpp: + * orbsvcs/tests/Bug_2285_Regression/client2.cpp: + + More unused arg warnings and 'EXCEPTION' in the debug output + was incorrectly marking this as a 'fail'. + +Fri Oct 28 09:53:24 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerRequest_Interceptor.cpp: + + Fixed debian full build error - residual ACE cast macro. + +Thu Oct 27 14:20:35 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_global.cpp: + + Modified change in + + Wed Oct 26 18:57:47 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + to handle the use case where skeleton files are generated + from a .pidl file, for example tao/ImR_Client/ImplRepo.pidl. + Thanks to Johnny Willemsen <jwillemsen@remedy.nl> for + reporting the problem. + +Thu Oct 27 14:31:12 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2287_Regression/Hello.cpp: + + Fix gcc unused arg warning. + +Thu Oct 27 13:36:53 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2285_Regression/Hello.h: + * orbsvcs/tests/Bug_2287_Regression/Hello.h: + * orbsvcs/tests/Bug_2285_Regression/ServerORBInitializer.h: + * orbsvcs/tests/Bug_2285_Regression/ServerORBInitializer2.h: + * orbsvcs/tests/Bug_2285_Regression/ServerRequest_Interceptor.h: + * orbsvcs/tests/Bug_2285_Regression/ServerRequest_Interceptor2.h: + * orbsvcs/tests/Bug_2287_Regression/ServerORBInitializer2.h: + * orbsvcs/tests/Bug_2287_Regression/ServerRequest_Interceptor2.h: + + Fix the obligatory fuzz errors. + +Thu Oct 27 11:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + * tao/GIOP_Utils.cpp: + * tao/Transport_Connector.cpp: + * tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp: + 64bit fixes + +Thu Oct 27 11:30:59 2005 Simon McQueen <sm@prismtech.com> + + * tao/operation_details.h: + * tao/operation_details.i: + + Add members (with accessors) for the FT request retention ID and + expiration time. + + * tao/PI/ClientRequestInfo.cpp: + * tao/PI/ClientRequestInfo.h: + + Add accessors for the FT request retention ID and expiration time + of the underlying request operation details (see above). + + * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.h: + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp: + + Transmit the correct retention ID and request expiration time in + the request service context. Bound retries by the expiration time. + + This fixes bus #2285 and #2287. + + * orbsvcs/tests/Bug_2285_Regression/Bug_2285_Regression.mpc: + * orbsvcs/tests/Bug_2285_Regression/Hello.cpp: + * orbsvcs/tests/Bug_2285_Regression/Hello.h: + * orbsvcs/tests/Bug_2285_Regression/README: + * orbsvcs/tests/Bug_2285_Regression/ServerORBInitializer.cpp: + * orbsvcs/tests/Bug_2285_Regression/ServerORBInitializer.h: + * orbsvcs/tests/Bug_2285_Regression/ServerORBInitializer2.cpp: + * orbsvcs/tests/Bug_2285_Regression/ServerORBInitializer2.h: + * orbsvcs/tests/Bug_2285_Regression/ServerRequest_Interceptor.cpp: + * orbsvcs/tests/Bug_2285_Regression/ServerRequest_Interceptor.h: + * orbsvcs/tests/Bug_2285_Regression/ServerRequest_Interceptor2.cpp: + * orbsvcs/tests/Bug_2285_Regression/ServerRequest_Interceptor2.h: + * orbsvcs/tests/Bug_2285_Regression/Test.idl: + * orbsvcs/tests/Bug_2285_Regression/client.cpp: + * orbsvcs/tests/Bug_2285_Regression/client2.cpp: + * orbsvcs/tests/Bug_2285_Regression/run_test.pl: + * orbsvcs/tests/Bug_2285_Regression/run_test2.pl: + * orbsvcs/tests/Bug_2285_Regression/server.cpp: + * orbsvcs/tests/Bug_2285_Regression/server2.cpp: + * orbsvcs/tests/Bug_2287_Regression/Bug_2287_Regression.mpc: + * orbsvcs/tests/Bug_2287_Regression/Hello.cpp: + * orbsvcs/tests/Bug_2287_Regression/Hello.h: + * orbsvcs/tests/Bug_2287_Regression/README: + * orbsvcs/tests/Bug_2287_Regression/ServerORBInitializer2.cpp: + * orbsvcs/tests/Bug_2287_Regression/ServerORBInitializer2.h: + * orbsvcs/tests/Bug_2287_Regression/ServerRequest_Interceptor2.cpp: + * orbsvcs/tests/Bug_2287_Regression/ServerRequest_Interceptor2.h: + * orbsvcs/tests/Bug_2287_Regression/Test.idl: + * orbsvcs/tests/Bug_2287_Regression/client.cpp: + * orbsvcs/tests/Bug_2287_Regression/run_test.pl: + * orbsvcs/tests/Bug_2287_Regression/server.cpp: + + Regression tests for these bugs. + +Thu Oct 27 09:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Sequence_T.{h,cpp}: + Applied the fix of bug 2201, when shrinking a sequence we + re initialize the elements. Fixes bugzilla 2201. + Thanks to Frank Pilhofer <fp at mc dot com> for reporting this + and supplying the patch. + +Thu Oct 27 09:27:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2201_Regression/*: + Added regression for bug 2201 to the cvs archive + +Thu Oct 27 06:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp: + Fixed conversion warnings + +Wed Oct 26 17:22:12 2005 Don Busch <busch_d@ociweb.com> + + * orbsvcs/CosEvent_Service/CosEvent_Service.mpc + * orbsvcs/examples/ORT/ORT.mpc + * orbsvcs/orbsvcs/CosEvent.mpc + * orbsvcs/orbsvcs/CosNaming_Serv.mpc + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp + * orbsvcs/orbsvcs/Naming/Naming_Server.cpp + * tao/CSD_Framework.mpc + + This is a footprint reduction fix, eliminating a library dependency. + TAO 1.4 introduced a new dependency on the Messaging, Valuetype, + PI, and CodecFactory libraries for the CosNaming_Serv and + CosEvent_Serv libraries. Turning off CORBA Messaging did not remove + this dependency. Thus, any application that uses CosNaming_Serv or + CosEvent_Serv, but not CORBA Messaging, depends on those libraries + anyway. This change eliminates the CosNaming_Serv and CosEvent_Serv + dependencies on Messaging (and thus PI, CodecFactory, and Valuetype) + when CORBA Messaging and Interceptors are turned off. It reduces + the footprint in that case by about 600K. + There is a ACE ChangeLog entry with the same timestamp that + descibes the MPC config file changes. + +Wed Oct 26 19:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/CodecFactory/IOP_Codec_includeA.h: + Added new file + + * tao/Makefile.am: + Updated + +Wed Oct 26 18:57:47 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_global.cpp (be_change_idl_file_extension): + + Changed logic to ignore a header extension set by the -hc + option and use "C.h", if we are processing a .pidl file, + and we are not generating an *A.h file. Thanks to + Johnny Willemsen <jwillemsen@remedy.nl> for reporting + the problem. + +Wed Oct 26 18:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/ClientRequestInfoA.cpp + * tao/PI/ClientRequestInfoC.cpp + * tao/PI/ClientRequestInfoC.h + * tao/PI/ClientRequestInfoS.h + * tao/PI/ClientRequestInterceptorA.cpp + * tao/PI/ClientRequestInterceptorC.cpp + * tao/PI/ClientRequestInterceptorC.h + * tao/PI/ClientRequestInterceptorS.h + * tao/PI/InterceptorA.cpp + * tao/PI/InterceptorC.cpp + * tao/PI/InterceptorC.h + * tao/PI/InterceptorS.h + * tao/PI/ORBInitInfoC.cpp + * tao/PI/ORBInitInfoC.h + * tao/PI/ORBInitInfoS.h + * tao/PI/ORBInitializerA.cpp + * tao/PI/ORBInitializerC.cpp + * tao/PI/ORBInitializerC.h + * tao/PI/ORBInitializerS.h + * tao/PI/PIForwardRequestA.cpp + * tao/PI/PIForwardRequestC.cpp + * tao/PI/PIForwardRequestC.h + * tao/PI/PIForwardRequestS.h + * tao/PI/PolicyFactoryA.cpp + * tao/PI/PolicyFactoryC.cpp + * tao/PI/PolicyFactoryC.h + * tao/PI/PolicyFactoryS.h + * tao/PI/RequestInfoA.cpp + * tao/PI/RequestInfoC.cpp + * tao/PI/RequestInfoC.h + * tao/PI/RequestInfoS.h + * tao/PI_Server/ServerRequestInfoA.cpp + * tao/PI_Server/ServerRequestInfoC.cpp + * tao/PI_Server/ServerRequestInfoC.h + * tao/PI_Server/ServerRequestInfoS.h + * tao/PI_Server/ServerRequestInterceptorA.cpp + * tao/PI_Server/ServerRequestInterceptorC.cpp + * tao/PI_Server/ServerRequestInterceptorC.h + * tao/PI_Server/ServerRequestInterceptorS.h + * tao/IORInterceptor/IORInfoC.cpp + * tao/IORInterceptor/IORInfoC.h + Regenerated + + * tao/IORInterceptor/IORInfo.pidl + * tao/PI/ORBInitInfo.pidl + Updated regeneration instructions + + * tao/PI/ORBInitInfoA.cpp: + Removed + + * tao/PI/ClientRequestInfoA.h + * tao/PI/ClientRequestInterceptorA.h + * tao/PI/InterceptorA.h + * tao/PI/ORBInitializerA.h + * tao/PI/PIForwardRequestA.h + * tao/PI/PolicyFactoryA.h + * tao/PI/RequestInfoA.h + * tao/PI_Server/ServerRequestInfoA.h + * tao/PI_Server/ServerRequestInterceptorA.h + New generated files + + * tao/PortableServer/POA_Cached_Policies.cpp + Layout fix + + * tao/Makefile.am + Added new files + + * tao/IORInterceptor/IORInterceptor.pidl + * tao/IORInterceptor/IORInterceptorC.cpp + * tao/IORInterceptor/IORInterceptorC.h + * tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp + Splitted PortableInterceptor::IORInterceptor into IORInterceptor + and IORInterceptor_3_0. This is triggered by bug 1271 which contained + issues about CORBA Compliance. In the 3.0.3 spec the IORInterceptor + was splitted. This fixes bug 1271. + + IMPORTANT!!! + If you use IORInterceptor methods components_established, + adapter_manger_state_changed and adapter_state_changed you have to + derive your implementation from IORInterceptor_3_0 else these + methods don't get called!!! + + * tests/ORT/ORT_test_IORInterceptor.h + * tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.h + * tests/Portable_Interceptors/PolicyFactory/IORInterceptor.cpp + * tests/Portable_Interceptors/PolicyFactory/IORInterceptor.h + * orbsvcs/examples/ORT/Server_IORInterceptor.h + * orbsvcs/orbsvcs/LoadBalancing/LB_IORInterceptor.h + Changes for IORInterceptor_3_0. + +Wed Oct 26 13:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/diffs/ServerRequestInterceptor.diff: + * tao/PI_Server/diffs/ServerRequestInterceptor.diff: + Moved this diff to the PI_Server directory, it belongs there + +Wed Oct 26 09:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ObjRefTemplate/ObjectReferenceTemplate.pidl: + Removed the equals and make_profiles methods which where + commented out. That these exist in the IDL of CORBA 3.0.3 + is an editorial error. See also OMG issue 9112 + +Tue Oct 25 22:24:36 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/LocateRequest_Invocation.cpp (invoke): + * tao/Synch_Invocation.cpp (remote_oneway, remote_twoway): + + Changed OutputCDR_Auto_Reset to ACE_OutputCDR_Auto_Reset to + match corresponding changes made to ACE. + +Tue Oct 25 21:50:46 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * utils/wxNamingViewer/wxNamingViewer.cpp: + * utils/wxNamingViewer/wxNamingViewerFrame.cpp: Added some #include + files to get things working again on Linux. Thanks to Matt + Gillen <mgillen@bbn.com> for these fixes. + +Tue Oct 25 08:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/CosEvent/Basic/Shutdown.cpp: + Fixed warning in MinGW build + +Tue Oct 25 07:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/POA_Current_Impl.cpp: + Implemented POA_Current::get_reference. This is the last item + of bugzilla bug 1917, which is now totally fixed + +Mon Oct 24 19:08:06 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/util/utl_scope.cpp: + * TAO_IDL/util/utl_string.cpp: + + Added immediate exits when name clash errors are encountered, + since trying to continue parsing from these points can lead to a + crash. Thanks to Ian Zagorskih <ianzag@megasignal.com> for + reporting the problem. This fix closes [BUGID:2281]. + +Mon Oct 24 18:39:31 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/fe/fe_interface_header.cpp: + * TAO_IDL/fe/idl.yy: + * TAO_IDL/fe/y.tab.cpp: + * TAO_IDL/include/fe_interface_header.h: + + For IDL types that are added to the IDL compiler's + AST via an FE_*Header class (interfaces, valuetypes, + eventtypes, components, and homes), modified the + creation of this class to pass in a scoped name + created on the heap instead of on the stack. + Memory allocated within this scoped name was being + freed in a different scope, and it's dangerous + to assume that the stack address would still be + valid. Also added a destroy() method to the + FE_InterfaceHeader class (base class to all the + others) that handles the destruction of the scoped + name member and its contents, if it is nonzero. + Thanks to Iliyan Jeliazkov <jeliazkov_i@ociweb.com> + for reporting the problem. + +Mon Oct 24 18:18:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/CodecFactory/CodecFactory_impl.cpp: + Added validation whether the requested codesets are supported + + * tao/Codeset/Codeset_Manager_i.{h,cpp}: + * tao/Codeset_Manager.h: + Added get_ncs to be able to check whether a codeset is supported. + Thanks to Phil Mesnier for helping with this issue. + +Mon Oct 24 17:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Codec/client.cpp: + Added missing return + +Mon Oct 24 06:53:12 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/IFR_Service/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + * tao/Makefile.am: + + Regenerated. + +Mon Oct 24 13:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Codec/client.cpp: + * tests/Codec/Codec.mpc: + Extended this test + +Mon Oct 24 13:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/CodecFactory/CDR_Encaps_Codec.{h,cpp} + * tao/CodecFactory/CodecFactory_impl.{h,cpp}: + * tao/CodecFactory/IOP_Codec.pidl: + * tao/CodecFactory/IOP_Codec_includeC.h: + * tao/CodecFactory/IOP_Codec_includeS.h: + * tao/CodecFactory/IOP_CodecC.{h,cpp}: + The current Codec just encode/decodes wstring without + using the codesets. When wstrings are encoded/decoded + this causes problems. We found that there has been + raised already an issue at the OMG for this: issue 6050, + see http://www.omg.org/issues/issue6050.txt + This proposes a new IDL method on CodecFactory, + CodecFactory::create_codec_with_codesets. + With this method a Codec can be created with specific + codesets in place. We implemented this method in TAO, + the only thing we will add soon is the extra check whether + the requested codeset is supported, this is not possible + at this moment because the codeset interfaces are not really + setup in a way to do this. + + * tao/CodecFactory/IOP_CodecA.cpp: + Removed + + * tao/Codeset_Manager.h: + * tao/Codeset_Descriptor_Base.h: + Small layout/doxygen fixes + + * tao/Makefile.am: + Removed tao/CodecFactory/IOP_CodecA.cpp + + * tao/CodecFactory/diff/IOP_Codec.diff: + Updated + +Mon Oct 24 12:59:07 2005 Simon McQueen <sm@prismtech.com> + + * tao/Messaging/ExceptionHolder_i.cpp: + + Fixed compile error with VC++ 6. + +Mon Oct 24 07:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * Adapter_Registry.cpp: + * ORB_Core.cpp: + * Object.cpp: + * BiDir_GIOP/BiDirGIOP.cpp: + * CSD_Framework/CSD_Object_Adapter_Factory.cpp: + * Messaging/Messaging_Loader.cpp: + * PortableServer/Root_POA.cpp: + * RTPortableServer/RT_Servant_Dispatcher.cpp: + Don't pass %P, %t, \n to ACE_PRINT_EXCEPTION, it + does this itself already. + + * Codeset/Codeset_Manager_i.cpp: + Layout improvements + +Fri Oct 21 14:12:49 MST 2005 Yan Dai <dai_y@ociweb.com> + + * examples/CSD_Strategy/ThreadPool6/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool5/ClientApp.cpp: + * examples/CSD_Strategy/ThreadPool5/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool3/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool2/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool4/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Static/ClientApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Static/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_3/ClientApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_3/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_4/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_2/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_1/ServerApp.cpp: + * tests/CSD_Strategy_Tests/Broken/ClientApp.cpp: + * tests/CSD_Strategy_Tests/Broken/ServerApp.cpp: + * performance-tests/CSD_Strategy/TestApps/ServerApp.cpp: + + Added PI.h include to force statically initialization happen + before the TAO_CSD_Object_Adapter::init() is called. This would + resolve the problem that CSD test failures on static builds. + + * examples/CSD_Strategy/ThreadPool/CSD_Test_ThreadPool.mpc: + * examples/CSD_Strategy/ThreadPool2/CSD_Test_ThreadPool2.mpc: + * examples/CSD_Strategy/ThreadPool3/CSD_Test_ThreadPool3.mpc: + * examples/CSD_Strategy/ThreadPool4/CSD_Test_ThreadPool4.mpc: + * examples/CSD_Strategy/ThreadPool5/CSD_Test_ThreadPool5.mpc: + * examples/CSD_Strategy/ThreadPool6/CSD_Test_ThreadPool6.mpc: + + Added dependency on pi base project since the PI.h is included + in the test application. + + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_Statistics.cpp: + + Corrected the conversion specifier (using %u) for unsigned value. + +Fri Oct 21 12:25:56 MST 2005 Yan Dai <dai_y@ociweb.com> + + * tao/PI_Server/PI_Server_Loader.cpp: + + Removed the %P|%t in the ACE_PRINT_EXCEPTION info parameter. + +Fri Oct 21 11:17:10 MST 2005 Yan Dai <dai_y@ociweb.com> + + * tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp: + + Made the number of threads to use the default value 1 if the + number of threads is not specified in the service config file. + + * tao/CSD_ThreadPool/CSD_TP_Task.cpp: + + Replaced the unsigned* with unsigned int* to fix a parse error + compilation error on some compilers. + +Fri Oct 21 07:19:32 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * performance-tests/Sequence_Latency/Deferred/Deferred.mpc: + + Fix tipo in server project that caused it not to depend on IDL + project. + +Fri Oct 21 13:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/CodeSets/simple/client.cpp: + Fixed signed/unsigned warning + +Fri Oct 21 10:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/driver.cpp: + * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/client.cpp: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/client.cpp: + * orbsvcs/performance-tests/RTEvent/Roundtrip/client.cpp: + * orbsvcs/performance-tests/RTEvent/TCP_Baseline/client.cpp: + Don't use barrier as variable name, can be a macro. fixes bugzila + bug 2271. Thanks to Francesco Salvestrini + <f dot salvestrini at nextworks dot it> for reporting this. + + * tests/Nested_Upcall_Crash/Clock_Ticks.{h,cpp}: + * orbsvcs/orbsvcs/IFRService/Container_i.cpp: + * tests/CodeSets/simple/client.cpp: + 64bit fixes + + * examples/Simple/echo/Echo_i.cpp: + Initialise pointer with 0 + + * tao/PortableServer/POA_Current.{h,cpp}: + * tao/PortableServer/POA_Current_Impl.{h,cpp}: + * tao/PortableServer/PS_CurrentA.cpp: + * tao/PortableServer/PS_CurrentC.{h,cpp}: + * tao/PortableServer/PS_Current.pidl: + Added Current::get_reference as to be implemented method, that will + be done soon. Generated the pidl file as a result of AnyTypeCode + refactoring the PS_CurrentA.cpp is not usable for this file, so + zapped it. + + * tao/Makefile.am: + Removed PS_CurrentA.cpp + +Fri Oct 21 09:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Messaging/ExceptionHolder_i.h: + Fixed forward declaration + +Thu Oct 20 12:24:30 MST 2005 Yan Dai <dai_y@ociweb.com> + + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/server.cpp: + + Made the ACE_Thread_Manager instance wait for CSD task threads + exit. This should fix test failure shown on scoreboard. + +Thu Oct 20 11:54:38 MST 2005 Yan Dai <dai_y@ociweb.com> + + * examples/CSD_Strategy/ThreadPool/Foo_i.h: + * examples/CSD_Strategy/ThreadPool2/Foo_i.h: + * examples/CSD_Strategy/ThreadPool3/Foo_i.h: + * examples/CSD_Strategy/ThreadPool4/Callback_i.h: + * examples/CSD_Strategy/ThreadPool4/Foo_i.h: + * examples/CSD_Strategy/ThreadPool5/Callback_i.h: + * examples/CSD_Strategy/ThreadPool5/Foo_i.h: + * performance-tests/CSD_Strategy/TestServant/Foo_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_i.h: + + Removed the duplicated inheritence of PortableServer::ServantBase. + + * tao/CSD_Framework/CSD_Framework.pidl: + + Fixed fuzz errors. + + * tao/CSD_Framework/CSD_FrameworkA.cpp: + * tao/CSD_Framework/CSD_FrameworkA.h: + * tao/CSD_Framework/CSD_FrameworkC.cpp: + * tao/CSD_Framework/CSD_FrameworkC.h: + * tao/CSD_Framework/diffs/CSD_Framework.diff: + + Regenerated files from pidl file and updated to resolve error + message from compiler. + + * tao/CSD_Framework/CSD_FrameworkC.inl: + + Removed the empty file to fix fuzz error. + + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp: + * tao/CSD_Framework/CSD_Strategy_Base.h: + * tao/CSD_ThreadPool/CSD_ThreadPool.h: + * tao/CSD_ThreadPool/CSD_TP_Task.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_ClientEngine.h: + + Fixed fuzz errors and compilation errors shown on scoreboard. + + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/client.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/run_test.pl: + + Updated to be the same as in $TAO_ROOT/tests/Hello test. + +Thu Oct 20 14:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.cpp: + Fixed argument not used warning + +Thu Oct 20 13:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + Enabled the new AMI implementation as described in the CORBA + 3.0.3 specification. All tests and examples are updated to the + new spec but if you want to use the old specification for + your application then define TAO_HAS_DEPRECATED_EXCEPTION_HOLDER + in your config.h and rebuild the core libs and the TAO IDL compiler. + This deprecated AMI support will be kept alive until x.5.1 has + been released and then we will zap it completely from the + TAO distribution. + + When you want to update the application code for the new mapping, + all _excep methods in the reply handler must be updated. Change + the interface specific exceptionholder in the interface to + ::Messaging::ExceptionHolder, change in the implementation the + raise_x call to raise_exception. + + * TAO_IDL/be_include/be_global.h: + * tao/orbconf.h: + Removed define of TAO_HAS_DEPRECATED_EXCEPTION_HOLDER, we + are switching now to the new AMI implementation + + * docs/tutorials/Quoter/AMI/Handler_i.{h,cpp}: + * docs/tutorials/Quoter/On_Demand_Activation/Handler_i.{h,cpp}: + * examples/AMI/FL_Callback/Peer_i.{h,cpp}: + * examples/Buffered_AMI/client.cpp: + * examples/Content_Server/AMI_Iterator/Iterator_Handler.h: + * examples/Content_Server/AMI_Observer/Callback_Handler.{h,cpp}: + * examples/Content_Server/AMI_Observer/Push_Iterator_Handler.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.{h,cpp}: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.{h,cpp}: + * orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlert_Handler.{h,cpp}: + * orbsvcs/tests/HTIOP/AMI/client.cpp + * orbsvcs/tests/HTIOP/AMI/simple_client.cpp + * performance-tests/Latency/AMI/Roundtrip_Handler.{h,cpp}: + * performance-tests/Sequence_Latency/AMI/Roundtrip_Handler.{h,cpp}: + * tests/AMI/client.cpp: + * tests/AMI/simple_client.cpp: + * tests/AMI_Buffering/Reply_Handler.{h,cpp}: + * tests/AMI_Timeouts/timeout_i.{h,cpp}: + * tests/Big_AMI/client.cpp: + * tests/Bug_1482_Regression/Reply_Handler.{h,cpp}: + * tests/Bug_1551_Regression/Reply_Handler.{h,cpp}: + * tests/LongUpcalls/AMI_Manager.{h,cpp}: + * tests/LongUpcalls/Manager_Handler.{h,cpp}: + * tests/Portable_Interceptors/AMI/Echo_Handler.{h,cpp}: + Updated for the new AMI mapping + +Thu Oct 20 12:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/compiler.html: + Documented AMI behaviour and fixed some incorrect links + +Thu Oct 20 12:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/releasenotes/index.html: + Fixed html tag + +Thu Oct 20 10:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_ami_pre_proc.cpp: + Fixed problem with the exceptionholder in the new AMI mapping, it + was created for each interface in an idl file, it should only + be created once + +Thu Oct 20 09:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp: + Guarded another part of code with TAO_HAS_DEPRECATED_EXCEPTION_HOLDER, + it is not needed with the new AMI implementation + +Wed Oct 19 14:09:44 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * tao/Messaging/AMH_Response_Handler.cpp: + + Release the lock in the destructor before calling + _tao_rh_send_exception (). The said method is well + protected. Calling this method with the lock held could create a + deadlock. Thanks to Anton Bakanovskiy <Anton dot Bakanovskiy at + bercut dot ru> and Toha Bakanovsky <im-scooter at yandex.ru> for + reporting the problem. This fixes [BUGID 2269]. + +Wed Oct 19 11:30:23 MST 2005 Yan Dai <dai_y@ociweb.com> + + * tao/CSD_Framework/CSD_Strategy_Base.h: + + Removed extra ";" from the POAManager forward declaration. + + * tao/CSD_Framework/CSD_Strategy_Base.cpp: + * tao/PortableServer/Root_POA.cpp: + + Removed the argument name from the csd hook interfaces instead + of using ACE_UNUSED_ARG. + + * docs/libraries.html: + + Added CSD_Framework and CSD_ThreadPool library descriptions. + + * examples/CSD_Strategy/ThreadPool/Foo_i.h: + * examples/CSD_Strategy/ThreadPool2/Foo_i.h: + * examples/CSD_Strategy/ThreadPool3/Foo_i.h: + * examples/CSD_Strategy/ThreadPool4/Callback_i.h: + * examples/CSD_Strategy/ThreadPool4/Foo_i.h: + * examples/CSD_Strategy/ThreadPool5/Callback_i.h: + * examples/CSD_Strategy/ThreadPool5/Foo_i.h: + * performance-tests/CSD_Strategy/TestServant/Foo_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_i.h: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h: + + Replaced deprecated RefCountServantBase with ServantBase. + +Wed Oct 19 10:01:03 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/Valuetype/Value_VarOut_T.cpp (operator=): + + Implement assignment operators in terms of their constructor + counterparts using the canonical copy and (non-throwing) swap + technique. Provides strong exception safety guarantee, obviates + need for self-assignment check and reduces code duplication + between constructors and assignment operators. This change also + reverts "Tue Jun 21 13:38:23 2005 Gary Maxey <gary.maxey@...>", + and fixes a memory leak reported by Mickael P. Golovin <migel at + garant dot ru>. + +Wed Oct 19 12:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Messaging/ExceptionHolder_i.cpp: + Added todo that code could be simplified when missing valuetype + constructor is generated + +Wed Oct 19 10:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be_include/be_global.h: + Added define of TAO_HAS_DEPRECATED_EXCEPTION_HOLDER. This way + I can the new AMI support to the IDL compiler in the repo + and build it on multiple boxes by removing this define by hand. + At the moment the new AMI support is fully ready I will remove + this define and then it is up to the user to set it. + + * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_ch.cpp: + * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_cs.cpp: + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_visitor_ami_pre_proc.cpp: + Added support for the new AMI mapping, is enabled when + TAO_HAS_DEPRECATED_EXCEPTION_HOLDER is not defined, so by + default it is disabled at this moment + +Wed Oct 19 09:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Messaging/ExceptionHolder_i.{h,cpp}: + Added new Messaging::ExceptionHolder implementation, will be used + for the new AMI mapping + + * tao/Makefile.am: + Added new files above + +Wed Oct 19 08:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/be/be_global.cpp: + Added member to store the new Messaging::ExceptionHolder + for the latest AMI mapping + +Wed Oct 19 00:35:02 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Add default AM_CONDITIONAL for BUILD_WFMO. + +Wed Oct 19 07:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp: + Fixed MinGW warning + +Wed Oct 19 00:11:34 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/POA/Explicit_Activation/Alt_Resources/Makefile.am: + + Regenerate. + + * examples/POA/Explicit_Activation/Alt_Resources/Alt_Resource.mpc: + + Changed to inherit from wfmo instead of using a verbatim section + to disable building on systems without the ACE_WFMO_Reactor. + +Tue Oct 18 23:43:02 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Makefile.am + + Regenerate. + + * tao/CSD_Framework.mpc: + * tao/CSD_ThreadPool.mpc: + + Add Pkconfig_Files section for new pkg-config templates. + + * tao/CSD_Framework/TAO_CSD_Framework.pc.in: + + New file, pkg-config *.pc template for TAO_CSD_Framework + library. + + * tao/CSD_ThreadPool/TAO_CSD_ThreadPool.pc.in: + + New file, pkg-config *.pc template for TAO_CSD_ThreadPool + library. + +Tue Oct 18 20:56:24 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/CSD_ThreadPool.mpc: + + Changed to inherit from core.mpb base project. + +Tue Oct 18 18:35:26 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Makefile.am: + + Regenerate due to CSD. + +Tue Oct 18 18:33:04 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/Kokyu_dsrt_schedulers/fp_example/Makefile.am: + * examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am: + * examples/Kokyu_dsrt_schedulers/muf_example/Makefile.am: + + Regenerate due to change in Kokyu_dsrt_schedulers.mpb. + +Tue Oct 18 17:24:26 MST 2005 Yan Dai <dai_y@ociweb.com> + + Merged in the CSD (Custom Servant Dispatching) feature from OCI. + + The main changes to existing code are: + + - Four hooks are added to TAO_Root_POA to notify the CSD when poa + is activated/deactivated and servant is activated/deactivated. + Some areas of the code were instrumented to call these hooks to + notify the CSD Strategy object of POA activation and deactivation + "events". Likewise, code was added to notify the CSD Strategy object + of servant activation and deactivation "events". + - A virtual method do_dispatch() is added to the TAO_Object_Adapter so + the CSD object adpater can override the default implementation to + dispatch the requests to the CSD strategy. + - The remote requests and the collocated oneway requests are cloned when + they are dispatched to the CSD strategy. To support the TAO_ServerRequest + clone in the CSD library, the friendship is added to the TAO_ServerRequest + class and it's data member classes such as TAO_Service_Context class, + TAO_Operation_Details class and TAO_Tagged_Profile class. + + * tao/PortableServer/Root_POA.cpp: + * tao/PortableServer/Root_POA.h: + + Added four hooks. + + * tao/PortableServer/Object_Adapter.cpp: + * tao/PortableServer/Object_Adapter.h: + * tao/PortableServer/POAManager.cpp: + * tao/PortableServer/ServantRetentionStrategyRetain.cpp: + + Instrumented to call the hooks. + + * tao/operation_details.h: + * tao/Service_Context.h: + * tao/Tagged_Profile.h: + + Added friendship with CSD_FW_Server_Request_Wrapper to support + the TAO_ServerRequest clone in CSD library. + + * tao/TAO_Server_Request.h: + + - Changed the operation_details_ to be pointer to const + TAO_Operation_Details object instead of const pointer to const + TAO_Operation_Details object. This change is made to accommodate + the change of TAO_ServerRequest clone in the CSD library. + - Added friendship with CSD_FW_Server_Request_Wrapper to support + the TAO_ServerRequest clone in CSD library. + + * tao/PortableServer/get_arg.h: + + Made the get_in_arg template function check whether the + detail argument is nil. If the detail is not nil and the + argument list in detail is nil(collocated oneway case) then it + will demarshall the input CDR stream and get arguments. This + change is made to accommodate the changes in TAO_Operation_Details + clone that writes the argument list to the input CDR of the + TAO_ServerRequest object. + + * tao/Intrusive_Ref_Count_Base_T.cpp: + * tao/Intrusive_Ref_Count_Base_T.h: + * tao/Intrusive_Ref_Count_Base_T.inl: + * tao/Intrusive_Ref_Count_Handle_T.cpp: + * tao/Intrusive_Ref_Count_Handle_T.h: + * tao/Intrusive_Ref_Count_Handle_T.inl: + + These are two new classes that provide infrastructure-level support + for classes that need an "intrusive" reference counting mechanism. + + * tao/CSD_Framework.mpc: + * tao/CSD_Framework/CSD_Default_Servant_Dispatcher.cpp: + * tao/CSD_Framework/CSD_Default_Servant_Dispatcher.h: + * tao/CSD_Framework/CSD_Framework.pidl: + * tao/CSD_Framework/CSD_Framework_Loader.cpp: + * tao/CSD_Framework/CSD_Framework_Loader.h: + * tao/CSD_Framework/CSD_FrameworkA.cpp: + * tao/CSD_Framework/CSD_FrameworkA.h: + * tao/CSD_Framework/CSD_FrameworkC.cpp: + * tao/CSD_Framework/CSD_FrameworkC.h: + * tao/CSD_Framework/CSD_FrameworkC.inl: + * tao/CSD_Framework/CSD_FW_Export.h: + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp: + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h: + * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.inl: + * tao/CSD_Framework/CSD_Object_Adapter.cpp: + * tao/CSD_Framework/CSD_Object_Adapter.h: + * tao/CSD_Framework/CSD_Object_Adapter_Factory.cpp: + * tao/CSD_Framework/CSD_Object_Adapter_Factory.h: + * tao/CSD_Framework/CSD_ORBInitializer.cpp: + * tao/CSD_Framework/CSD_ORBInitializer.h: + * tao/CSD_Framework/CSD_POA.cpp: + * tao/CSD_Framework/CSD_POA.h: + * tao/CSD_Framework/CSD_POA.inl: + * tao/CSD_Framework/CSD_Strategy_Base.cpp: + * tao/CSD_Framework/CSD_Strategy_Base.h: + * tao/CSD_Framework/CSD_Strategy_Base.inl: + * tao/CSD_Framework/CSD_Strategy_Proxy.cpp: + * tao/CSD_Framework/CSD_Strategy_Proxy.h: + * tao/CSD_Framework/CSD_Strategy_Proxy.inl: + * tao/CSD_Framework/CSD_Strategy_Repository.cpp: + * tao/CSD_Framework/CSD_Strategy_Repository.h: + * tao/CSD_Framework/diffs/CSD_Framework.diff: + + All of the files listed above are brand new and are used to build + the new CSD Framework library. This framework implements the base + classes for the concrete strategy implementation and implements + the service objects for CSD strategy static and dynamic loading + via the service configuration file. + + * tao/CSD_ThreadPool.mpc: + * tao/CSD_ThreadPool/CSD_ThreadPool.cpp: + * tao/CSD_ThreadPool/CSD_ThreadPool.h: + * tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.cpp: + * tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.h: + * tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.inl: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Corba_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Corba_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.cpp: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.h: + * tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.inl: + * tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.cpp: + * tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.h: + * tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.inl: + * tao/CSD_ThreadPool/CSD_TP_Export.h: + * tao/CSD_ThreadPool/CSD_TP_Queue.cpp: + * tao/CSD_ThreadPool/CSD_TP_Queue.h: + * tao/CSD_ThreadPool/CSD_TP_Queue.inl: + * tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.cpp: + * tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.h: + * tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.inl: + * tao/CSD_ThreadPool/CSD_TP_Remote_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Remote_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Remote_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Request.cpp: + * tao/CSD_ThreadPool/CSD_TP_Request.h: + * tao/CSD_ThreadPool/CSD_TP_Request.inl: + * tao/CSD_ThreadPool/CSD_TP_Servant_State.cpp: + * tao/CSD_ThreadPool/CSD_TP_Servant_State.h: + * tao/CSD_ThreadPool/CSD_TP_Servant_State.inl: + * tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.cpp: + * tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.h: + * tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.inl: + * tao/CSD_ThreadPool/CSD_TP_Strategy.cpp: + * tao/CSD_ThreadPool/CSD_TP_Strategy.h: + * tao/CSD_ThreadPool/CSD_TP_Strategy.inl: + * tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp: + * tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.h: + * tao/CSD_ThreadPool/CSD_TP_Synch_Helper.cpp: + * tao/CSD_ThreadPool/CSD_TP_Synch_Helper.h: + * tao/CSD_ThreadPool/CSD_TP_Synch_Helper.inl: + * tao/CSD_ThreadPool/CSD_TP_Task.cpp: + * tao/CSD_ThreadPool/CSD_TP_Task.h: + * tao/CSD_ThreadPool/CSD_TP_Task.inl: + + All of the files listed above are brand new and are used to build + the new CSD ThreadPool library. Collectively, these classes + represent the reference-implementation for the CSD Strategy feature. + + * examples/CSD_Strategy/README: + * examples/CSD_Strategy/ThreadPool/client_main.cpp: + * examples/CSD_Strategy/ThreadPool/ClientApp.cpp: + * examples/CSD_Strategy/ThreadPool/ClientApp.h: + * examples/CSD_Strategy/ThreadPool/CSD_Test_ThreadPool.mpc: + * examples/CSD_Strategy/ThreadPool/Foo.idl: + * examples/CSD_Strategy/ThreadPool/Foo_i.cpp: + * examples/CSD_Strategy/ThreadPool/Foo_i.h: + * examples/CSD_Strategy/ThreadPool/OrbShutdownTask.cpp: + * examples/CSD_Strategy/ThreadPool/OrbShutdownTask.h: + * examples/CSD_Strategy/ThreadPool/README: + * examples/CSD_Strategy/ThreadPool/run_test.pl: + * examples/CSD_Strategy/ThreadPool/server_main.cpp: + * examples/CSD_Strategy/ThreadPool/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool/ServerApp.h: + * examples/CSD_Strategy/ThreadPool2/client_main.cpp: + * examples/CSD_Strategy/ThreadPool2/ClientApp.cpp: + * examples/CSD_Strategy/ThreadPool2/ClientApp.h: + * examples/CSD_Strategy/ThreadPool2/CSD_Test_ThreadPool2.mpc: + * examples/CSD_Strategy/ThreadPool2/Foo.idl: + * examples/CSD_Strategy/ThreadPool2/Foo_i.cpp: + * examples/CSD_Strategy/ThreadPool2/Foo_i.h: + * examples/CSD_Strategy/ThreadPool2/FooServantList.cpp: + * examples/CSD_Strategy/ThreadPool2/FooServantList.h: + * examples/CSD_Strategy/ThreadPool2/OrbShutdownTask.cpp: + * examples/CSD_Strategy/ThreadPool2/OrbShutdownTask.h: + * examples/CSD_Strategy/ThreadPool2/README: + * examples/CSD_Strategy/ThreadPool2/run_test.pl: + * examples/CSD_Strategy/ThreadPool2/server_main.cpp: + * examples/CSD_Strategy/ThreadPool2/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool2/ServerApp.h: + * examples/CSD_Strategy/ThreadPool3/client_main.cpp: + * examples/CSD_Strategy/ThreadPool3/ClientApp.cpp: + * examples/CSD_Strategy/ThreadPool3/ClientApp.h: + * examples/CSD_Strategy/ThreadPool3/CSD_Test_ThreadPool3.mpc: + * examples/CSD_Strategy/ThreadPool3/Foo.idl: + * examples/CSD_Strategy/ThreadPool3/Foo_i.cpp: + * examples/CSD_Strategy/ThreadPool3/Foo_i.h: + * examples/CSD_Strategy/ThreadPool3/OrbShutdownTask.cpp: + * examples/CSD_Strategy/ThreadPool3/OrbShutdownTask.h: + * examples/CSD_Strategy/ThreadPool3/OrbTask.cpp: + * examples/CSD_Strategy/ThreadPool3/OrbTask.h: + * examples/CSD_Strategy/ThreadPool3/README: + * examples/CSD_Strategy/ThreadPool3/run_test.pl: + * examples/CSD_Strategy/ThreadPool3/server_main.cpp: + * examples/CSD_Strategy/ThreadPool3/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool3/ServerApp.h: + * examples/CSD_Strategy/ThreadPool4/Callback.idl: + * examples/CSD_Strategy/ThreadPool4/Callback_i.cpp: + * examples/CSD_Strategy/ThreadPool4/Callback_i.h: + * examples/CSD_Strategy/ThreadPool4/ClientTask.cpp: + * examples/CSD_Strategy/ThreadPool4/ClientTask.h: + * examples/CSD_Strategy/ThreadPool4/CSD_Test_ThreadPool4.mpc: + * examples/CSD_Strategy/ThreadPool4/Foo.idl: + * examples/CSD_Strategy/ThreadPool4/Foo_i.cpp: + * examples/CSD_Strategy/ThreadPool4/Foo_i.h: + * examples/CSD_Strategy/ThreadPool4/OrbShutdownTask.cpp: + * examples/CSD_Strategy/ThreadPool4/OrbShutdownTask.h: + * examples/CSD_Strategy/ThreadPool4/README: + * examples/CSD_Strategy/ThreadPool4/run_test.pl: + * examples/CSD_Strategy/ThreadPool4/server_main.cpp: + * examples/CSD_Strategy/ThreadPool4/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool4/ServerApp.h: + * examples/CSD_Strategy/ThreadPool5/Callback.idl: + * examples/CSD_Strategy/ThreadPool5/Callback_i.cpp: + * examples/CSD_Strategy/ThreadPool5/Callback_i.h: + * examples/CSD_Strategy/ThreadPool5/client_main.cpp: + * examples/CSD_Strategy/ThreadPool5/ClientApp.cpp: + * examples/CSD_Strategy/ThreadPool5/ClientApp.h: + * examples/CSD_Strategy/ThreadPool5/ClientTask.cpp: + * examples/CSD_Strategy/ThreadPool5/ClientTask.h: + * examples/CSD_Strategy/ThreadPool5/CSD_Test_ThreadPool5.mpc: + * examples/CSD_Strategy/ThreadPool5/Foo.idl: + * examples/CSD_Strategy/ThreadPool5/Foo_i.cpp: + * examples/CSD_Strategy/ThreadPool5/Foo_i.h: + * examples/CSD_Strategy/ThreadPool5/FooServantList.cpp: + * examples/CSD_Strategy/ThreadPool5/FooServantList.h: + * examples/CSD_Strategy/ThreadPool5/OrbShutdownTask.cpp: + * examples/CSD_Strategy/ThreadPool5/OrbShutdownTask.h: + * examples/CSD_Strategy/ThreadPool5/OrbTask.cpp: + * examples/CSD_Strategy/ThreadPool5/OrbTask.h: + * examples/CSD_Strategy/ThreadPool5/README: + * examples/CSD_Strategy/ThreadPool5/run_test.pl: + * examples/CSD_Strategy/ThreadPool5/server_main.cpp: + * examples/CSD_Strategy/ThreadPool5/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool5/ServerApp.h: + * examples/CSD_Strategy/ThreadPool6/client_main.cpp: + * examples/CSD_Strategy/ThreadPool6/ClientApp.cpp: + * examples/CSD_Strategy/ThreadPool6/ClientApp.h: + * examples/CSD_Strategy/ThreadPool6/CSD_Test_ThreadPool6.mpc: + * examples/CSD_Strategy/ThreadPool6/Foo.idl: + * examples/CSD_Strategy/ThreadPool6/Foo_i.cpp: + * examples/CSD_Strategy/ThreadPool6/Foo_i.h: + * examples/CSD_Strategy/ThreadPool6/OrbShutdownTask.cpp: + * examples/CSD_Strategy/ThreadPool6/OrbShutdownTask.h: + * examples/CSD_Strategy/ThreadPool6/README: + * examples/CSD_Strategy/ThreadPool6/run_test.pl: + * examples/CSD_Strategy/ThreadPool6/server_main.cpp: + * examples/CSD_Strategy/ThreadPool6/ServerApp.cpp: + * examples/CSD_Strategy/ThreadPool6/ServerApp.h: + * performance-tests/CSD_Strategy/TestApps/client_main.cpp: + * performance-tests/CSD_Strategy/TestApps/ClientApp.cpp: + * performance-tests/CSD_Strategy/TestApps/ClientApp.h: + * performance-tests/CSD_Strategy/TestApps/csd_pt_testapps.mpc: + * performance-tests/CSD_Strategy/TestApps/run_test.pl: + * performance-tests/CSD_Strategy/TestApps/server_main.cpp: + * performance-tests/CSD_Strategy/TestApps/ServerApp.cpp: + * performance-tests/CSD_Strategy/TestApps/ServerApp.h: + * performance-tests/CSD_Strategy/TestApps/README: + * performance-tests/CSD_Strategy/TestInf/AppHelper.cpp: + * performance-tests/CSD_Strategy/TestInf/AppHelper.h: + * performance-tests/CSD_Strategy/TestInf/AppShutdown.cpp: + * performance-tests/CSD_Strategy/TestInf/AppShutdown.h: + * performance-tests/CSD_Strategy/TestInf/CancelledException.idl: + * performance-tests/CSD_Strategy/TestInf/ClientEngine.cpp: + * performance-tests/CSD_Strategy/TestInf/ClientEngine.h: + * performance-tests/CSD_Strategy/TestInf/ClientTask.cpp: + * performance-tests/CSD_Strategy/TestInf/ClientTask.h: + * performance-tests/CSD_Strategy/TestInf/csd_pt_testinf.mpc: + * performance-tests/CSD_Strategy/TestInf/CSD_PT_TestInf_Export.h: + * performance-tests/CSD_Strategy/TestInf/CustomException.idl: + * performance-tests/CSD_Strategy/TestInf/FooException.idl: + * performance-tests/CSD_Strategy/TestInf/OrbRunner.cpp: + * performance-tests/CSD_Strategy/TestInf/OrbRunner.h: + * performance-tests/CSD_Strategy/TestInf/OrbShutdownTask.cpp: + * performance-tests/CSD_Strategy/TestInf/OrbShutdownTask.h: + * performance-tests/CSD_Strategy/TestInf/OrbTask.cpp: + * performance-tests/CSD_Strategy/TestInf/OrbTask.h: + * performance-tests/CSD_Strategy/TestInf/ServantList_T.cpp: + * performance-tests/CSD_Strategy/TestInf/ServantList_T.h: + * performance-tests/CSD_Strategy/TestInf/TestAppBase.cpp: + * performance-tests/CSD_Strategy/TestInf/TestAppBase.h: + * performance-tests/CSD_Strategy/TestInf/TestAppException.idl: + * performance-tests/CSD_Strategy/TestInf/TestAppMain.h: + * performance-tests/CSD_Strategy/TestInf/README: + * performance-tests/CSD_Strategy/TestServant/csd_pt_testservant.mpc: + * performance-tests/CSD_Strategy/TestServant/CSD_PT_TestServant_Export.h: + * performance-tests/CSD_Strategy/TestServant/Foo.idl: + * performance-tests/CSD_Strategy/TestServant/Foo_ClientEngine.cpp: + * performance-tests/CSD_Strategy/TestServant/Foo_ClientEngine.h: + * performance-tests/CSD_Strategy/TestServant/Foo_i.cpp: + * performance-tests/CSD_Strategy/TestServant/Foo_i.h: + * performance-tests/CSD_Strategy/TestServant/Foo_Statistics.cpp: + * performance-tests/CSD_Strategy/TestServant/Foo_Statistics.h: + * performance-tests/CSD_Strategy/TestServant/README: + * tests/CSD_Strategy_Tests/README: + * tests/CSD_Strategy_Tests/Broken/client_main.cpp: + * tests/CSD_Strategy_Tests/Broken/ClientApp.cpp: + * tests/CSD_Strategy_Tests/Broken/ClientApp.h: + * tests/CSD_Strategy_Tests/Broken/CSD_TP_Broken.mpc: + * tests/CSD_Strategy_Tests/Broken/run_test.pl: + * tests/CSD_Strategy_Tests/Broken/server_main.cpp: + * tests/CSD_Strategy_Tests/Broken/ServerApp.cpp: + * tests/CSD_Strategy_Tests/Broken/ServerApp.h: + * tests/CSD_Strategy_Tests/TP_Common/AppHelper.cpp: + * tests/CSD_Strategy_Tests/TP_Common/AppHelper.h: + * tests/CSD_Strategy_Tests/TP_Common/AppShutdown.cpp: + * tests/CSD_Strategy_Tests/TP_Common/AppShutdown.h: + * tests/CSD_Strategy_Tests/TP_Common/CancelledException.idl: + * tests/CSD_Strategy_Tests/TP_Common/ClientEngine.cpp: + * tests/CSD_Strategy_Tests/TP_Common/ClientEngine.h: + * tests/CSD_Strategy_Tests/TP_Common/ClientTask.cpp: + * tests/CSD_Strategy_Tests/TP_Common/ClientTask.h: + * tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Export.h: + * tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Lib.mpc: + * tests/CSD_Strategy_Tests/TP_Common/CustomException.idl: + * tests/CSD_Strategy_Tests/TP_Common/FooException.idl: + * tests/CSD_Strategy_Tests/TP_Common/OrbRunner.cpp: + * tests/CSD_Strategy_Tests/TP_Common/OrbRunner.h: + * tests/CSD_Strategy_Tests/TP_Common/OrbShutdownTask.cpp: + * tests/CSD_Strategy_Tests/TP_Common/OrbShutdownTask.h: + * tests/CSD_Strategy_Tests/TP_Common/OrbTask.cpp: + * tests/CSD_Strategy_Tests/TP_Common/OrbTask.h: + * tests/CSD_Strategy_Tests/TP_Common/ServantList_T.cpp: + * tests/CSD_Strategy_Tests/TP_Common/ServantList_T.h: + * tests/CSD_Strategy_Tests/TP_Common/StatisticsHelper.cpp: + * tests/CSD_Strategy_Tests/TP_Common/StatisticsHelper.h: + * tests/CSD_Strategy_Tests/TP_Common/TestAppBase.cpp: + * tests/CSD_Strategy_Tests/TP_Common/TestAppBase.h: + * tests/CSD_Strategy_Tests/TP_Common/TestAppException.idl: + * tests/CSD_Strategy_Tests/TP_Common/TestAppMain.h: + * tests/CSD_Strategy_Tests/TP_Foo_A/CSD_TP_Foo_A_Export.h: + * tests/CSD_Strategy_Tests/TP_Foo_A/csd_tp_foo_a_lib.mpc: + * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A.idl: + * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_ClientEngine.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_ClientEngine.h: + * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_i.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_Statistics.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_Statistics.h: + * tests/CSD_Strategy_Tests/TP_Foo_B/Callback.idl: + * tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_B/CSD_TP_Foo_B_Export.h: + * tests/CSD_Strategy_Tests/TP_Foo_B/csd_tp_foo_b_lib.mpc: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B.idl: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.h: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_SimpleClientEngine.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_SimpleClientEngine.h: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_Statistics.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_Statistics.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/CSD_TP_Foo_C_Export.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/csd_tp_foo_c_lib.mpc: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C.idl: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_ClientEngine.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_ClientEngine.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op1.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op1.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op2.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op2.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op3.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op3.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op4.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op4.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op5.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op5.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_ClientEngine.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_ClientEngine.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_Proxy.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_Proxy.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_i.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_i.h: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Statistics.cpp: + * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Statistics.h: + * tests/CSD_Strategy_Tests/TP_Test_1/client_main.cpp: + * tests/CSD_Strategy_Tests/TP_Test_1/ClientApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_1/ClientApp.h: + * tests/CSD_Strategy_Tests/TP_Test_1/CSD_TP_Test_1.mpc: + * tests/CSD_Strategy_Tests/TP_Test_1/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_1/server_main.cpp: + * tests/CSD_Strategy_Tests/TP_Test_1/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_1/ServerApp.h: + * tests/CSD_Strategy_Tests/TP_Test_2/client_main.cpp: + * tests/CSD_Strategy_Tests/TP_Test_2/ClientApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_2/ClientApp.h: + * tests/CSD_Strategy_Tests/TP_Test_2/CSD_TP_Test_2.mpc: + * tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_2/server_main.cpp: + * tests/CSD_Strategy_Tests/TP_Test_2/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_2/ServerApp.h: + * tests/CSD_Strategy_Tests/TP_Test_3/client_main.cpp: + * tests/CSD_Strategy_Tests/TP_Test_3/ClientApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_3/ClientApp.h: + * tests/CSD_Strategy_Tests/TP_Test_3/CSD_TP_Test_3.mpc: + * tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_3/server_main.cpp: + * tests/CSD_Strategy_Tests/TP_Test_3/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_3/ServerApp.h: + * tests/CSD_Strategy_Tests/TP_Test_4/client_main.cpp: + * tests/CSD_Strategy_Tests/TP_Test_4/ClientApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_4/ClientApp.h: + * tests/CSD_Strategy_Tests/TP_Test_4/CSD_TP_Test_4.mpc: + * tests/CSD_Strategy_Tests/TP_Test_4/README: + * tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_4/server_main.cpp: + * tests/CSD_Strategy_Tests/TP_Test_4/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_4/ServerApp.h: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/client.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/CSD_TP_Test_Dynamic.mpc: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/README: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/server.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/svc.conf: + * tests/CSD_Strategy_Tests/TP_Test_Dynamic/Test.idl: + * tests/CSD_Strategy_Tests/TP_Test_Static/client_main.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Static/ClientApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Static/ClientApp.h: + * tests/CSD_Strategy_Tests/TP_Test_Static/CSD_TP_Test_Static.mpc: + * tests/CSD_Strategy_Tests/TP_Test_Static/README: + * tests/CSD_Strategy_Tests/TP_Test_Static/run_test.pl: + * tests/CSD_Strategy_Tests/TP_Test_Static/server_main.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Static/ServerApp.cpp: + * tests/CSD_Strategy_Tests/TP_Test_Static/ServerApp.h: + * tests/CSD_Strategy_Tests/TP_Test_Static/svc.conf: + + All of the files above are part of the examples, tests and performance + tests added for the CSD feature. + +Tue Oct 18 13:23:21 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * docs/ec_options.html: Finally updated documentation to + include information about the "new" queue-full options. + See entry from "Thu Aug 25 11:00:47 2005 Chris Cleeland" for + more info. + +Tue Oct 18 10:31:38 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp: + + Updated TAO multicast service ID enumerator names to match + new names in tao/objectid.h. + +Tue Oct 18 09:34:53 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp (setup_multicast): + * orbsvcs/orbsvcs/Naming/Naming_Server.cpp (init_new_naming): + * orbsvcs/orbsvcs/Trader/Trading_Loader.cpp + (init_multicast_server): + + Updated TAO multicast service ID enumerator names to match + new names in tao/objectid.h. + +Tue Oct 18 09:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_global.cpp: + Removed duplicate space + +Tue Oct 18 08:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/AV/AVStreams_i.cpp: + * orbsvcs/orbsvcs/AV/RTCP_Packet.cpp: + Fixed warnings in MinGW build + +Tue Oct 18 00:19:41 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/ORB_Core.cpp (init): + + Corrected minor typo in previous commit. + +Tue Oct 18 00:08:30 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/SystemException.cpp: + * tao/SystemException.inl: + + Moved concrete SystemException constructors out of line again. + The intended footprint decreases were unfortunately not seen + across all platforms. + + * tao/ORB.h (resolve_service): + + Removed unnecessary return type and emulated exception + parameter. + + * tao/ORB.cpp (resolve_service): + + Use snprintf() to simplify integer-to-string conversion and + string concatenation. Thanks to Jiang Wei <jw dot tao at sduept + dot com> for providing a patch. + + Optimized to only determine multicast port if multicast default + initial reference is enabled. + + Removed unused "return_value" variable. + + (resolve_initial_references): + + Updated calls to resolve_service() to reflect new signature and + void return type. + + * tao/ORB_Core.cpp (init): + + Simplified code that sets Name Service default initial + reference. + + Updated names of multicast-capable service IDs to match the new + names in tao/objectid.h. + + * tao/objectid.h (TAO_MCAST_SERVICEID): + + Addressed global namespace pollution by placing this enumeration + within the TAO namespace. Also prepended each service ID + enumerator with "MCAST_" to further reduce potential internal + TAO namespace pollution. + + * tao/params.h: + * tao/params.i: + + TAO_MCAST_SERVICEID is now TAO::MCAST_SERVICEID, as changed in + tao/objectid.h. + +Tue Oct 18 06:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/DynamicInterface/DII_Invocation.h: + Added forward declaration of ParameterList + +Mon Oct 17 14:43:18 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Makefile.am: + + Regenerated due to tao/Messaging/* refactor. + +Mon Oct 17 14:42:09 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/examples/Notify/Lanes/Makefile.am: + * orbsvcs/tests/Notify/Basic/Makefile.am: + * orbsvcs/tests/Notify/Blocking/Makefile.am: + * orbsvcs/tests/Notify/Destroy/Makefile.am: + * orbsvcs/tests/Notify/Discarding/Makefile.am: + * orbsvcs/tests/Notify/Driver/Makefile.am: + * orbsvcs/tests/Notify/MT_Dispatching/Makefile.am: + * orbsvcs/tests/Notify/Ordering/Makefile.am: + * orbsvcs/tests/Notify/Reconnecting/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/Structured_Filter/Makefile.am: + * orbsvcs/tests/Notify/Structured_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Filter/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/RedGreen/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Throughput/Makefile.am: + + Regenerated due to notification_serv being added to notifytest + base project. + +Mon Oct 17 12:45:57 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * performance-tests/POA/Demux/Makefile.am: + * performance-tests/RTCorba/Oneways/Reliable/Makefile.am: + * performance-tests/RTCorba/Thread_Pool/Makefile.am: + + Regenerated. + + * performance-tests/POA/Demux/Demux.mpc: + * performance-tests/RTCorba/Oneways/Reliable/Reliable.mpc: + * performance-tests/RTCorba/Thread_Pool/Thread_Pool.mpc: + + Add/tweak *_IDL projects for compiling *.idl files. + +Mon Oct 17 12:33:03 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/ec_typed_events_idl.mpb: + + Set idlflags to be used when compiling Cos TypedEvent IDL files. + Reset idlflags so they won't be duplicated when compiling plain + CosEvent IDL files. + +Mon Oct 17 18:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Invocation_Base.h: + Removed some not needed forward declarations + +Mon Oct 17 09:52:05 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * Makefile.am: + + Enabled building "performance-tests" subdirectory. + + * configure.ac: + + Configure all Makefile.am's in performance-tests subdirectories. + + * performance-tests/Makefile.am: + * performance-tests/Anyop/Makefile.am: + * performance-tests/Callback/Makefile.am: + * performance-tests/Cubit/Makefile.am: + * performance-tests/Cubit/TAO/Makefile.am: + * performance-tests/Cubit/TAO/DII_Cubit/Makefile.am: + * performance-tests/Cubit/TAO/IDL_Cubit/Makefile.am: + * performance-tests/Cubit/TAO/MT_Cubit/Makefile.am: + * performance-tests/Latency/Makefile.am: + * performance-tests/Latency/AMH_Single_Threaded/Makefile.am: + * performance-tests/Latency/AMI/Makefile.am: + * performance-tests/Latency/Collocation/Makefile.am: + * performance-tests/Latency/DII/Makefile.am: + * performance-tests/Latency/DSI/Makefile.am: + * performance-tests/Latency/Deferred/Makefile.am: + * performance-tests/Latency/Single_Threaded/Makefile.am: + * performance-tests/Latency/Thread_Per_Connection/Makefile.am: + * performance-tests/Latency/Thread_Pool/Makefile.am: + * performance-tests/Memory/Makefile.am: + * performance-tests/Memory/IORsize/Makefile.am: + * performance-tests/Memory/Single_Threaded/Makefile.am: + * performance-tests/POA/Makefile.am: + * performance-tests/POA/Create_Reference/Makefile.am: + * performance-tests/POA/Demux/Makefile.am: + * performance-tests/POA/Implicit_Activation/Makefile.am: + * performance-tests/POA/Object_Creation_And_Registration/Makefile.am: + * performance-tests/Pluggable/Makefile.am: + * performance-tests/Protocols/Makefile.am: + * performance-tests/RTCorba/Makefile.am: + * performance-tests/RTCorba/Multiple_Endpoints/Makefile.am: + * performance-tests/RTCorba/Multiple_Endpoints/Common/Makefile.am: + * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/Makefile.am: + * performance-tests/RTCorba/Multiple_Endpoints/Single_Endpoint/Makefile.am: + * performance-tests/RTCorba/Oneways/Makefile.am: + * performance-tests/RTCorba/Oneways/Reliable/Makefile.am: + * performance-tests/RTCorba/Thread_Pool/Makefile.am: + * performance-tests/Sequence_Latency/Makefile.am: + * performance-tests/Sequence_Latency/AMH_Single_Threaded/Makefile.am: + * performance-tests/Sequence_Latency/AMI/Makefile.am: + * performance-tests/Sequence_Latency/DII/Makefile.am: + * performance-tests/Sequence_Latency/DSI/Makefile.am: + * performance-tests/Sequence_Latency/Deferred/Makefile.am: + * performance-tests/Sequence_Latency/Single_Threaded/Makefile.am: + * performance-tests/Sequence_Latency/Thread_Per_Connection/Makefile.am: + * performance-tests/Sequence_Latency/Thread_Pool/Makefile.am: + * performance-tests/Throughput/Makefile.am: + + New files. + + * performance-tests/Callback/Callback.mpc: + * performance-tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.mpc: + * performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit.mpc: + * performance-tests/Latency/AMH_Single_Threaded/Single_Threaded.mpc: + * performance-tests/Latency/AMI/AMI.mpc: + * performance-tests/Latency/DII/DII.mpc: + * performance-tests/Latency/Deferred/Deferred.mpc: + * performance-tests/Latency/Single_Threaded/Single_Threaded.mpc: + * performance-tests/Latency/Thread_Per_Connection/Thread_Per_Connection.mpc: + * performance-tests/Latency/Thread_Pool/Thread_Pool.mpc: + * performance-tests/Memory/IORsize/Memory_IORsize.mpc: + * performance-tests/Memory/Single_Threaded/Memory_Growth.mpc: + * performance-tests/POA/Implicit_Activation/Implicit_Activation.mpc: + * performance-tests/Pluggable/Pluggable.mpc: + * performance-tests/Protocols/Protocols.mpc: + * performance-tests/Sequence_Latency/AMH_Single_Threaded/Single_Threaded.mpc: + * performance-tests/Sequence_Latency/AMI/ami.mpc: + * performance-tests/Sequence_Latency/DII/DII.mpc: + * performance-tests/Sequence_Latency/DSI/DSI.mpc: + * performance-tests/Sequence_Latency/Deferred/Deferred.mpc: + * performance-tests/Sequence_Latency/Single_Threaded/Single_Threaded.mpc: + * performance-tests/Sequence_Latency/Thread_Per_Connection/Thread_Per_Conn.mpc: + * performance-tests/Sequence_Latency/Thread_Pool/Thread_Pool.mpc: + * performance-tests/Throughput/Throughput.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Mon Oct 17 09:24:13 2005 Paul Calabrese <calabrese_p@ociweb.com> + + * docs/ec_options.html: + + Rename the -q option's parameter from servant_name to ec_object_id. + +Mon Oct 17 13:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/orbconf.h: + * tao/Messaging/ExceptionHolder*.*: + * tao/Messaging/OldExceptionHolder*.*: + Added also the new ExceptionHolder. Old and new are guarded with + TAO_HAS_DEPRECATED_EXCEPTION_HOLDER. This is enabled at this + moment until the new mapping is fully working, at that moment + we remove this define from orbconf.h and it is up to the user + to enable the old mapping + +Mon Oct 17 11:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Messaging/*: + Moved the ExceptionHolder to its own file (OldExceptionHolder) + the latest CORBA spec describe an updated ExceptionHolder + and this impacts the AMI generated but also user written + code. Working on this new spec but we will keep the old + mapping supported until x.5.1 has come out. By moving + this to its own file we can easier support the new one + +Mon Oct 17 11:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Messaging/*: + Regenerated all files with the latest version of the idl + compiler. + +Mon Oct 17 10:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/TAO_PI.pc.in: + * tao/PI_Server/TAO_PI_Server.pc.in: + Fixed incorrect libs. Thanks to Francesco Salvestrini + <f dot salvestrini at nextworks dot it> for reporting this. + This fixes bugzilla bug 2267 + +Mon Oct 17 10:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/CosEvent/Basic/Shutdown.cpp: + Fixed MinGW build warnings + +Mon Oct 17 07:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * rules.tao.GNU: + Prevent building with emulated exceptions + +Mon Oct 17 07:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Notify/Service.h: + * orbsvcs/orbsvcs/CosNotification.mpc: + Service should be in CosNotification_Serv. Thanks for JT + for notificing this + +Sun Oct 16 12:05:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp: + Fixed signed/unsigned warning + +Sat Oct 15 00:42:36 2005 Steve Totten <totten_s@ociweb.com> + + * orbsvcs/examples/CosEC/TypedSimple/Consumer.cpp: + * orbsvcs/examples/CosEC/TypedSimple/Country.idl: + * orbsvcs/examples/CosEC/TypedSimple/Country.idl.for_ifr: + * orbsvcs/examples/CosEC/TypedSimple/Country_i.cpp: + * orbsvcs/examples/CosEC/TypedSimple/Supplier.cpp: + * orbsvcs/examples/CosEC/TypedSimple/run_test.pl: + + Merge changes from OCI TAO 1.4a to fix build errors for exceptions=0 + builds, remove the hard-coded repository IDs and the unneeded pragma + prefix from this test, add various missing #includes for Windows + builds, disable use of IFR persistence, add a new test script for + this example, and make some changes to Consumer.cpp to make the + script reliable. Thanks to Paul Calabrese <calabrese_p@ociweb.com> + and Chad Elliott <elliott_c@ociweb.com> for originating these + changes. + +Fri Oct 14 09:35:33 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerate. + + * orbsvcs/orbsvcs/CosEvent.mpc: + + Split out separate project for generating IDL files. + + * orbsvcs/orbsvcs/ec_typed_event.mpb: + + Remove IDL Files section from project, they've been moved + to ec_typed_event_idl.mpb. + + * orbsvcs/orbsvcs/ec_typed_event_idl.mpb: + + New base project containing Typed Event IDL files. + +Fri Oct 14 11:25:17 2005 Paul Calabrese <calabrese_p@ociweb.com> + + Merge some changes from OCI TAO 1.4a that are mostly + documentation. + + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/driver/drv_args.cpp: + + Move the documentation for the -g option from the front end + to the back end. This causes it to not be in the help message + of other IDL processors (like tao_ifr) as it is specific to + tao_idl. + Add an error check to the processing of -t (avoids a core if + no argument is passed). + + * docs/interfacerepo/tao_ifr.html: + + Document some missing options. + + * orbsvcs/Event_Service/Event_Service.h: + * orbsvcs/Event_Service/Event_Service.cpp: + + Rename the servant_name variable and documentation to object_id. + + * orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp: + + Fix the scope settings for kokyu scheduling. + +Fri Oct 14 14:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/DynamicInterface/ExceptionList.cpp: + Use prefix increment/decrement and store the value after decrement + in a temporarily variable and use that check whether to delete + ourself to prevent a possible double deletion. + +Fri Oct 14 14:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Notify/Basic/run_test.pl: + When the exe can't be spawned break directly instead of waiting + for a minute + +Fri Oct 14 08:55:07 2005 Ciju John <john_c@ociweb.com> + + * tao/IIOP_Acceptor.cpp: + * tao/IIOP_Acceptor.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.cpp: + + Added new IIOP specific option 'reuse_addr' which would be + provided to the -ORBEndpoint option to control socket level + option SO_REUSEADDR being set/unset. + +Fri Oct 14 12:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_operation/ami_cs.cpp: + * TAO_IDL/be/be_visitor_operation/operation.cpp: + 64bit fixes + +Fri Oct 14 09:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + From James Megquier <jmegq at radiance dot com> + + * orbsvcs/orbsvcs/Notify/Service.h: + This should be in the notification project, removed include of + PortableServer, just add some forward declarations, this is + an interface class, no need to pull in portableserver library + + * orbsvcs/orbsvcs/CosNotification.mpc: + Moved service to Notification project + + * orbsvcs/orbsvcs/Notify/Property.h: + Added typedef for ULong property + +Thu Oct 13 13:12:12 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/examples/ImR/Combined_Service/ImR_Combined_Service.mpc: + + Add synthetic dependencies for the gnuace build so that IDL- + generated files used by more than one project won't be compiled + multiple times simultaneously (with parallel builds), which may + result in corrupted object files. Thanks to Simon Massey for + pointing out this problem in a scoreboard build. + +Thu Oct 13 12:26:47 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/ORB_Core.cpp: + + Minor coding convention updates. Class members outside of a + base member initializer list should be referenced with the + "this" pointer (e.g. this->client_request_interceptor_adapter_). + + * tao/Pseudo_VarOut_T.h: + + Added unimplemented copy constructor and assignment operator + that accept a TAO_Base_var parameter. Prevents invalid + widening. + + * tao/Pseudo_VarOut_T.inl: + + Explicitly initialize TAO_Base_var in the copy constructor + base member initializer list. + + * tao/SystemException.cpp: + * tao/SystemException.inl: + + Inlined concrete system exception constructors and static + _tao_any_destructor() method. Since they are small, a good + footprint decrease is achieved by doing so, especially since + only a few of the concrete SystemExceptions are used within + TAO. + + * tao/UserException.cpp: + * tao/UserException.inl: + + Likewise. + + Moved _tao_type() method of out of line. Since it is virtual + inlining can cause RTTI related problems when using g++ 4.x's + "-fvisibility-inlines-hidden" feature. + + * tao/TSS_Resources.cpp: + + Do not use "this" pointer in base member initializer list. It + is not guaranteed to be available until after base member + initialization is completed. + + * tao/TSS_Resources.h: + + Minor include directive reorganization. + + * tao/PI/ClientRequestInterceptor_Adapter_Impl.h: + + Cosmetic update. + + * tao/PI/ClientRequestInterceptor_Adapter_Impl.cpp: + * tao/PI/ClientRequestInterceptor_Factory_Impl.cpp: + + Corrected ACE_RCSID macro arguments. + +Thu Oct 13 12:03:05 2005 Steve Totten <totten_s@ociweb.com>: + + * orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.i: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.cpp: + + Applied several changes from OCI's TAO 1.4a release to fix problems + in the Typed Event Channel implementation. The primary fixes are to + properly handle consumer/supplier disconnects when using typed event + channels, and to properly deal with unresponsive push consumers when + the reactive consumer control is used. Also fixed some memory + leaks. Most of these changes originated from Jonathon Astle + <jon@astle45.fsnet.co.uk> and Paul Calabrese + <calabrese_p@ociweb.com>. + +Thu Oct 13 10:06:22 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/Any/Recursive/client.cpp: + + Added recursive union test case. + +Thu Oct 13 11:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + From James Megquier <jmegq at radiance dot com> + * orbsvcs/orbsvcs/Notify/Service.{h,cpp}: + Added destructor to fix runtime gcc4 problems. Fixes bugzilla + 2262 + + * orbsvcs/orbsvcs/CosNotification.mpc: + * orbsvcs/orbsvcs/Makefile.am: + Added new cpp file + +Wed Oct 12 19:26:48 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * docs/notification/reliability.html: + + Fix library name in service config file examples. + + Fix formatting of NotifyExt.inl excerpts. + +Wed Oct 12 12:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Big_Request_Muxing/server.cpp: + Run the orb 3 seconds instead of 1 and print out how many + messages we expect so that it is easy to see how many + messages we didn't receive. + +Wed Oct 12 10:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB_Core.{h,cpp,i}: + * tao/Transport_Queueing_Strategies.{h,cpp}: + Added new flush strategy. For asynchronous calls we now have + the following behaviour: + - Normal oneways are not explicitly buffered, but when send + returns EWOULDBLOCK we buffer the message and schedule for + output, we just send the data later and don't explicitly + flush things, we return control directly to the app + - Oneways with SYNC_WITH_TRANSPORT, SYNC_WITH_SERVER and + SYNC_WITH_TARGET, we don't explicitly buffer but when + send returns EWOULDBLOCK we buffer things, but we do + then explicitly flush things + - When SYNC_NONE is specified, this is the same as + TAO::SYNC_EAGER_BUFFERING and we do buffer then things + explicitly + + * tests/Reliable_Oneways/client.cpp: + After doing all calls run the orb for 3 seconds, this way at + least all queues are flushed + + +Wed Oct 12 09:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Strategies/UIOP_Transport.cpp: + * tao/Strategies/SCIOP_Transport.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp: + Remove not needed include of tao/Sync_Strategies.h + +Wed Oct 12 09:06:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Sync_Strategies.{h,cpp}: + * tao/Transport_Queueing_Strategies.{h,cpp}: + Renamed Sync_Strategies to Transport_Queueing_Strategies, this is + what it are, and there was already a todo that a rename should be + done. Also use bool instead of int where usable and there is no + need to export these classes. + + * tao/Makefile.am: + * tao/tao.mpc: + * tao/ORB_Core.{h,cpp,i}: + * tao/Stub.{h,cpp}: + * tao/Transport.{h,cpp}: + Updated for change above, also updated these files to talk about + Transport Queueing Strategies + +Wed Oct 12 08:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * rules.tao.GNU: + Just for some hours disabled no exception check, the performance + stats use no exceptions, if the stats are back to normal I will + enable this check again + +Wed Oct 12 08:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/performance-tests/RTEvent/lib/Servant_var.h: + * orbsvcs/examples/Notify/Federation/Gate/Gate.h: + Fixed fuzz check + +Wed Oct 12 08:33:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * rules.tao.GNU: + Emulated exception macros are not maintained anymore, so it + is just not safe to use them, so when exceptions=0, we output + an error about this and refer to the NEWS file. + +Wed Oct 12 07:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Strategies/DIOP_Transport.cpp: + * tao/Strategies/SHMIOP_Transport.cpp: + * orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp: + Remove not needed include of tao/Sync_Strategies.h + +Wed Oct 12 03:59:27 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_union/discriminant_ci.cpp: + + In the generated body of the _default() method for a + union, which sets the discriminator to its default + value (the _default() method is not generated unless + the discriminator can have a valid default value), + added a call to _reset(), which will free memory + allocated for the existing active member. The former + behavior, without the call to _reset(), was producing + a memory leak in many cases when _default() is called + on an instantiated union. Thanks to Georg Lohrer + <news@tropezien.de> for reporting the problem. + + * TAO_IDL/be/be_visitor_union/union_cs.cpp: + + Minor change to generated code formatting. + +Tue Oct 11 22:23:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tao/IIOP_Connection_Handler.cpp: + Fixed the performance problem. + Simplifications sometimes become over-simplifications:-( + +Tue Oct 11 08:33:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tao/IIOP_Acceptor.cpp: + Fix to counter problems with IPv4-compatible IPv6 addresses. + +Tue Oct 11 01:24:45 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + From James Megquier <jmegq at radiance dot com> + * orbsvcs/orbsvcs/AV/AV_Core.h: + * orbsvcs/orbsvcs/Notify/Properties.h: + * orbsvcs/orbsvcs/Notify/RT_Properties.h: + * orbsvcs/tests/Notify/lib/LookupManager.h: + + Declare exported (i.e. default visibility) singleton templates + prior to typedefs that reference them. Prevents g++ 4.0 from + silently making their visibility hidden. [Bug 2260] + +Tue Oct 11 07:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/AMI_Timeouts/timeout_client.cpp: + Added casts to unsigned long to silence compiler warnings + +Tue Oct 11 07:10:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Sync_Strategies.cpp: + Changed the default for flush for TAO_Transport_Sync_Strategy to + false. This means that when an application does oneway calls or + AMI calls, we only buffer at the moment the send block and we + schedule the transport for output but don't do a forced flush + at that moment. We just control to the app and send out the data + later when the socket is free again. + +Mon Oct 10 21:15:45 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/driver/drv_args.cpp: + * TAO_IDL/driver/drv_preproc.cpp: + * TAO_IDL/include/drv_extern.h: + + Added some commonly used include paths to the list that is passed + by the IDL compiler to the preprocessor, and to its own + internal list of include paths. Some are necessary to find + canonical IDL files without requiring command line include + paths (the include path to find orb.idl was already added + internally in the IDL compiler), while others are paths to + files commonly included in applications. The current order + of include paths is: + + 1. $ACE_ROOT/TAO + 2. $ACE_ROOT/TAO/tao + 3. -I command line options + 4. $ACE_ROOT/TAO/orbsvcs + 5. $ACE_ROOT/TAO/CIAO + 6. $ACE_ROOT/TAO/CIAO/ciao + + The last 3 can be overridden by the user, by passing in alternate + paths ahead of these 3 on the command line, but this practice + is almost sure to cause link problems. + +Mon Oct 10 19:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Codeset/UTF16_BOM_Factory.cpp: + * tao/Codeset/UTF16_BOM_Translator.cpp: + Changed layout of some debug statements to have the same + formatting as the others in TAO + +Mon Oct 10 07:13:58 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/IFR_Service/IFR_Service.mpc: + + Partially revert: + Sun Oct 9 14:14:01 2005 J.T. Conklin <jtc@acorntoolworks.com> + + Add $(TAO_ROOT)/orbsvcs/IFR_Service back to includes definition + for TAO_IFR_EXE project. + +Mon Oct 10 13:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/AMI_Timeouts/timeout_client.{h,cpp}: + Fixed 64bit conversion warnings + +Mon Oct 10 13:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp: + * orbsvcs/tests/AVStreams/Pluggable/ftp.cpp: + * orbsvcs/tests/AVStreams/Pluggable/server.cpp: + * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/TimeStamp.cpp: + Fixed 64bit conversion warningw + +Mon Oct 10 13:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_valuetype/arglist.cpp: + Fixed 64bit conversion warning + + * tao/ORB_Core.cpp (init): + Fixed 64bit conversion warnings when setting sock_rcvbuf_size + and sock_sndbuf_size + +Mon Oct 10 11:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Transport.cpp: + Added missing return + +Mon Oct 10 10:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Big_AMI/run_test.pl: + Perl script for running this test. + + * tests/Big_AMI/README: + Short readme + +Mon Oct 10 10:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Quoter/Quoter.idl: + Fixed include + +Mon Oct 10 10:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp (_tao_decode): + Take over the version of the source cdr. For example the + (de)marshaling of a wstring is dependent on the GIOP version, + it can be that we get a 1.1 version to decode, by default the + version is 1.2 and when we don't take over the version number + we try to decode a 1.1 version streams as 1.2 version which + will fail. When we take over the version we correctly decode + the stream later as 1.1. Thanks to Lothar Werzinger + <lothar at tradescape dot biz> for reporting this issue + and supply a test case. This fixes the Codec test in our + daily builds. + +Mon Oct 10 06:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Transport.{h,cpp}: + Refactored send_message_shared_i. This method contains now + just a switch to check for message_semantics and for asynchronous + calls it now calls the new method send_asynchronous_message_i + +Sun Oct 9 14:38:12 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/Quoter/Makefile.am: + * examples/Simulator/Event_Supplier/Makefile.am: + * orbsvcs/IFR_Service/Makefile.am: + * orbsvcs/examples/RtEC/Kokyu/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + + Regenerate with recent *.mpc file changes. + +Sun Oct 9 14:14:01 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/IFR_Service/IFR_Service.mpc: + + Removed includes definitions pointing to $(TAO_ROOT) and + $(TAO_ROOT)/orbsvcs/IFR_Service. These are already + obtained from the base projects we derive from. + + Set TAO_IDL_INCLUDE_DIR to $(includedir)/tao for automake + builds so end-user's won't have to set ACE_ROOT/TAO_ROOT + to run the installed executable. + +Sun Oct 9 08:16:17 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/examples/RtEC/Kokyu/RtECKokyu.mpc: + * orbsvcs/orbsvcs/FtRtEvent.mpc: + + Removed includes definitions pointing to directories under + $(TAO_ROOT)/orbsvcs. This appears no longer to be needed, + all headers are specified relative to $(TAO_ROOT)/orbsvcs. + +Sat Oct 8 18:43:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Codec/client.cpp: + * tests/Codec/test.idl: + Added a wstring to the struct we encode/decode, this fails at + this moment, working on a fix, but this at least demonstrates + the problem + +Sat Oct 8 08:18:29 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.mpc: + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Service.mpc: + * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Service.mpc: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/Colocated_Roundtrip.mpc: + * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/Federated_Roundtrip.mpc: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/RTCORBA_Baseline.mpc: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/RTCORBA_Callback.mpc: + * orbsvcs/performance-tests/RTEvent/Roundtrip/Roundtrip.mpc: + * orbsvcs/performance-tests/RTEvent/TCP_Baseline/TCP_Baseline.mpc: + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/Infrastructure_Controlled.mpc: + * orbsvcs/tests/LoadBalancing/LoadMonitor/CPU/LoadMonitorCPU.mpc: + + Remove includes definitions pointing to $(TAO_ROOT)/orbsvcs. + This is already obtained from the base projects we derive from. + + * orbsvcs/tests/FT_App/FT_App.mpc: + + Remove includes definitions pointing to $(TAO_ROOT). + This is already obtained from the base projects we derive from. + +Sat Oct 8 07:50:48 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * examples/Simulator/Event_Supplier/Event_Supplier.mpc: + * examples/Quoter/Quoter.mpc: + + Remove includes and idlflags definitions pointing to + ../../orbsvcs/orbsvcs. This hasn't been right since we + normalized all orbsvcs header files to be included with + "orbsvcs/foo.h". The correct settings of ../../orbsvcs is + already obtained from the base projects we derive from. + +Fri Oct 7 16:40:05 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2248_Regression/Server_Request_Interceptor.cpp: + + Another day, another emulated exception macro problem. + +Fri Oct 7 14:03:54 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * docs/tutorials/Quoter/AMI/Makefile.am: + * docs/tutorials/Quoter/Event_Service/Makefile.am: + * docs/tutorials/Quoter/On_Demand_Activation/Makefile.am: + * docs/tutorials/Quoter/RT_Event_Service/Makefile.am: + * docs/tutorials/Quoter/idl/Makefile.am: + * examples/AMH/Sink_Server/Makefile.am: + * examples/AMI/FL_Callback/Makefile.am: + * examples/Advanced/ch_3/Makefile.am: + * examples/Buffered_AMI/Makefile.am: + * examples/Buffered_Oneways/Makefile.am: + * examples/Callback_Quoter/Makefile.am: + * examples/Content_Server/AMI_Iterator/Makefile.am: + * examples/Content_Server/AMI_Observer/Makefile.am: + * examples/Content_Server/SMI_Iterator/Makefile.am: + * examples/Event_Comm/Makefile.am: + * examples/Kokyu_dsrt_schedulers/Makefile.am: + * examples/Kokyu_dsrt_schedulers/fp_example/Makefile.am: + * examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am: + * examples/Kokyu_dsrt_schedulers/muf_example/Makefile.am: + * examples/Load_Balancing/Makefile.am: + * examples/Load_Balancing_persistent/Makefile.am: + * examples/Logging/Makefile.am: + * examples/OBV/Typed_Events/Makefile.am: + * examples/POA/DSI/Makefile.am: + * examples/POA/Default_Servant/Makefile.am: + * examples/POA/Forwarding/Makefile.am: + * examples/POA/Generic_Servant/Makefile.am: + * examples/POA/TIE/Makefile.am: + * examples/Persistent_Grid/Makefile.am: + * examples/PluggableUDP/tests/Basic/Makefile.am: + * examples/PluggableUDP/tests/Performance/Makefile.am: + * examples/PluggableUDP/tests/SimplePerformance/Makefile.am: + * examples/Quoter/Makefile.am: + * examples/RTCORBA/Activity/Makefile.am: + * examples/RTScheduling/Fixed_Priority_Scheduler/Makefile.am: + * examples/RTScheduling/MIF_Scheduler/Makefile.am: + * examples/Simple/bank/Makefile.am: + * examples/Simple/chat/Makefile.am: + * examples/Simple/echo/Makefile.am: + * examples/Simple/grid/Makefile.am: + * examples/Simple/time/Makefile.am: + * examples/Simple/time-date/Makefile.am: + * examples/Simulator/Event_Supplier/Makefile.am: + * examples/TypeCode_Creation/Makefile.am: + * examples/ior_corbaloc/Makefile.am: + * examples/mfc/Makefile.am: + * interop-tests/wchar/Makefile.am: + * orbsvcs/ImplRepo_Service/Makefile.am: + * orbsvcs/examples/CosEC/Factory/Makefile.am: + * orbsvcs/examples/CosEC/TypedSimple/Makefile.am: + * orbsvcs/examples/FaultTolerance/RolyPoly/Makefile.am: + * orbsvcs/examples/ImR/Advanced/Makefile.am: + * orbsvcs/examples/ImR/Combined_Service/Makefile.am: + * orbsvcs/examples/LoadBalancing/Makefile.am: + * orbsvcs/examples/ORT/Makefile.am: + * orbsvcs/examples/Security/Send_File/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + * orbsvcs/performance-tests/LoadBalancing/LBPerf/RPS/Makefile.am: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/Makefile.am: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/Makefile.am: + * orbsvcs/performance-tests/RTEvent/lib/Makefile.am: + * orbsvcs/tests/BiDir_CORBALOC/Makefile.am: + * orbsvcs/tests/Bug_1395_Regression/Makefile.am: + * orbsvcs/tests/Bug_2247_Regression/Makefile.am: + * orbsvcs/tests/Bug_2248_Regression/Makefile.am: + * orbsvcs/tests/EC_Custom_Marshal/Makefile.am: + * orbsvcs/tests/FT_App/Makefile.am: + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/Makefile.am: + * orbsvcs/tests/FaultTolerance/IOGR/Makefile.am: + * orbsvcs/tests/HTIOP/AMI/Makefile.am: + * orbsvcs/tests/HTIOP/BiDirectional/Makefile.am: + * orbsvcs/tests/HTIOP/Hello/Makefile.am: + * orbsvcs/tests/IOR_MCast/Makefile.am: + * orbsvcs/tests/ImplRepo/Makefile.am: + * orbsvcs/tests/ImplRepo/scale/Makefile.am: + * orbsvcs/tests/InterfaceRepo/Application_Test/Makefile.am: + * orbsvcs/tests/Interoperable_Naming/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Manage_Object_Group/Makefile.am: + * orbsvcs/tests/Miop/McastHello/Makefile.am: + * orbsvcs/tests/Notify/Blocking/Makefile.am: + * orbsvcs/tests/Notify/Discarding/Makefile.am: + * orbsvcs/tests/Notify/MT_Dispatching/Makefile.am: + * orbsvcs/tests/Notify/Ordering/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/Structured_Filter/Makefile.am: + * orbsvcs/tests/Notify/Structured_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/lib/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Filter/Makefile.am: + * orbsvcs/tests/Redundant_Naming/Makefile.am: + * orbsvcs/tests/Security/BiDirectional/Makefile.am: + * orbsvcs/tests/Security/Big_Request/Makefile.am: + * orbsvcs/tests/Security/Callback/Makefile.am: + * orbsvcs/tests/Security/Crash_Test/Makefile.am: + * orbsvcs/tests/Security/MT_IIOP_SSL/Makefile.am: + * orbsvcs/tests/Security/MT_SSLIOP/Makefile.am: + * orbsvcs/tests/Security/Secure_Invocation/Makefile.am: + * orbsvcs/tests/Security/ssliop_corbaloc/Makefile.am: + * orbsvcs/tests/Simple_Naming/Makefile.am: + * orbsvcs/tests/Trading/Makefile.am: + * orbsvcs/tests/ior_corbaname/Makefile.am: + + Regenerate with recent MPC and base project changes. + +Fri Oct 7 07:11:29 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/LogActivator.h: + + Changed header inclusion guard macro name to match file name. + +Fri Oct 7 07:07:28 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * docs/tutorials/Quoter/Event_Service/Quoter_Event_Service.mpc: + * docs/tutorials/Quoter/RT_Event_Service/Quoter_RT_Event_Service.mpc: + + Changed *idl project to inherit from anytypecode. + +Fri Oct 7 10:43:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Sync_Strategies.h: + Document must_flush argument + +Fri Oct 7 10:35:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Big_AMI/client.cpp: + Added a check that after sending the AMI requests we shouldn't + have received any reply at that moment. If so, we output an + error + +Fri Oct 7 07:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Big_Request_Muxing/Payload_Receiver.cpp: + Removed RefCountServantBase and made the count an Atomic_Op + to make sure it does get incremented correctly in a MT situation + +Thu Oct 6 10:03:16 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * Makefile.am: + + Enabled building "docs" subdirectory. + + * docs/tutorials/Quoter/Naming_Service/Makefile.am: + * docs/tutorials/Quoter/Simple/Makefile.am: + * docs/tutorials/Quoter/Simple/Client/Makefile.am: + * docs/tutorials/Quoter/Simple/Impl-Repo/Makefile.am: + * docs/tutorials/Quoter/Simple/ImprovedServer/Makefile.am: + * docs/tutorials/Quoter/Simple/Persistent/Makefile.am: + * docs/tutorials/Quoter/Simple/Server/Makefile.am: + + Hand tweaks to _CPPFLAGS to find Stub/Skeleton headers in ../idl + + directory. + + * docs/tutorials/Quoter/AMI/Makefile.am: + * docs/tutorials/Quoter/Event_Service/Makefile.am: + * docs/tutorials/Quoter/On_Demand_Activation/Makefile.am: + * docs/tutorials/Quoter/RT_Event_Service/Makefile.am: + + Regenerate. + + * docs/tutorials/Quoter/AMI/Quoter_AMI.mpc: + * docs/tutorials/Quoter/Event_Service/Quoter_Event_Service.mpc: + * docs/tutorials/Quoter/On_Demand_Activation/Quoter_On_Demand_Activation.mpc: + * docs/tutorials/Quoter/RT_Event_Service/Quoter_RT_Event_Service.mpc: + + Add "*idl" project for compiling *.idl files. + +Thu Oct 6 15:44:13 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2248_Regression/Server_Request_Interceptor.h: + + Yet another emulated exception fix. + +Thu Oct 6 10:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Big_AMI/*: + Added new test to test the behaviour of AMI when sending + large request. We shouldn't block in that case. Perl script + will follow but put the files now in cvs so that I can build + the server remotely and then test AMI between two hosts that + are connected using the internet. Testing things locally doesn't + show the issues I want to address + +Thu Oct 6 09:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/AMI/ami_test_i.h: + * orbsvcs/tests/HTIOP/AMI/simple_client.cpp: + * orbsvcs/tests/HTIOP/AMI/ami_test_i.h: + Removed usage of TAO_HAS_AMI_EXCEPTIONS, seems something that has gone + a long time ago + +Thu Oct 6 08:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/AMI/ami_test_i.{h,cpp}: + * tests/AMI/client.cpp: + * tests/AMI/server.cpp: + * tests/AMI/simple_client.cpp: + Converted documentation to doxygen style + +Thu Oct 6 08:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Param_Test/client.cpp: + Fixed might be unitialized warning in MinGW build + +Wed Oct 5 13:54:00 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/Miop/McastHello/Makefile.am: + + Regenerate. + + * orbsvcs/tests/Miop/McastHello/McastHello.mpc: + + Add "*idl" project for compiling *.idl files. + +Wed Oct 5 12:18:39 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * examples/POA/DSI/Database_i.h: + + Include appropriate headers to address incomplete type + definition related compile-time errors. Necessitated by header + dependency reductions in ACE. + +Wed Oct 5 17:28:52 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/ast/ast_native.cpp: + * TAO_IDL/ast/ast_operation.cpp: + * TAO_IDL/be/be_native.cpp: + * TAO_IDL/be_include/be_native.h: + * TAO_IDL/include/ast_native.h: + + Implemented the handling of IDL native declarations in an + IDL operation exception list. Thanks to Johnny Willemsen + <jwillemsen@remedy.nl> for pointing out that, in the latest + version of the CORBA Messaging specification, the + ExceptionHolder valuetype contains an operation with this + use case. + +Wed Oct 5 11:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Messaging/AMH_Response_Handler.cpp: + Removed not needed return at end of method + +Wed Oct 5 11:23:27 2005 Simon McQueen <sm@prismtech.com> + + * tao/CodecFactory.mpc: + * tao/DynamicAny.mpc: + * tao/IFR_Client.mpc: + * tao/IORManipulation.mpc: + * tao/PortableServer.mpc: + * tao/Strategies.mpc: + * tao/Valuetype.mpc: + + Removed 'anytypecode' base project and substituted 'core_anytypecode'. + This removes a dependency on the IDL compiler that had crept in. + +Wed Oct 5 02:24:50 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * tests/Queued_Message_Test/Queued_Message_Test.cpp: + + Fixed compilation errors introduced from Mon Oct 3 06:33:20 + 2005 Bala Natarajan <bala_natarajan at symantec dot com> + +Tue Oct 4 15:15:02 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + * orbsvcs/tests/Makefile.am: + + Add Bug_2247_Regression and Bug_2248_Regression directories. + + * orbsvcs/tests/Bug_2247_Regression/Makefile.am: + * orbsvcs/tests/Bug_2248_Regression/Makefile.am: + + New files. + + * orbsvcs/tests/ImplRepo/Makefile.am: + * orbsvcs/tests/ImplRepo/scale/Makefile.am: + + Regenerated. + + * orbsvcs/tests/Bug_2247_Regression/Bug_2247_Regression.mpc: + * orbsvcs/tests/Bug_2248_Regression/Bug_2248_Regression.mpc: + * orbsvcs/tests/ImplRepo/ImplRepo.mpc: + * orbsvcs/tests/ImplRepo/scale/scaletest.mpc + + Add "*idl" project for compiling *.idl files. + +Tue Oct 4 11:19:47 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/PortableServer/Creation_Time.inl: + + Include "tao/orbconf.h" to pull in POA_NO_TIMESTAMP definition. + Addresses problems where comparison to this preprocessor + constant were made but no definition of it was available. + +Tue Oct 4 14:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IIOP_Transport.cpp (send): + Make clear the number printed out in the send failure message is + errno. + +Tue Oct 4 14:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Big_Oneways/server.cpp: + Improved debug statement to make clear we are waiting on the + sessions to finish. + +Tue Oct 4 14:06:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Transport.cpp (send_message_shared_i): + Get the flushing_strategy later in the method just before the + moment we need it. + +Tue Oct 4 13:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_1476_Regression/client.cpp: + Added -c commandline argument to control how many client + tasks will be created. Makes it easier to debug + +Tue Oct 4 12:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_1476_Regression/client.cpp: + Fixed bug in handling of -n commandline argument + +Tue Oct 4 12:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_1476_Regression/server.cpp: + Print an error when the server didn't receive any calls + +Tue Oct 4 13:01:42 2005 Simon McQueen <sm@prismtech.com> + + * tests/Bug_2183_Regression/Hello.h: + + Remove reference to deprecated RefCountServantBase. + +Tue Oct 4 12:57:09 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2248_Regression/tests.idl: + + Swapped <> for "" in #includes to fix fuzz error. + +Tue Oct 4 11:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/fe/fe_tmplinst.cpp: + Removed, not needed anymore + + * TAO_IDL/Makefile.am: + Removed file above + + * TAO_IDL/be/be_helper.cpp + * TAO_IDL/be/be_tmplinst.cpp + * TAO_IDL/be_include/be_helper.h + * examples/RTCORBA/Activity/Activity.cpp + * examples/RTCORBA/Activity/Task_Stats.cpp + * examples/RTScheduling/Task_Stats.cpp + * examples/RTScheduling/Fixed_Priority_Scheduler/test.cpp + * examples/RTScheduling/MIF_Scheduler/test.cpp + * orbsvcs/PSS/PSDL_Datastore.cpp + * orbsvcs/PSS/PSDL_Interface_Visitor.cpp + * orbsvcs/PSS/PSDL_Scope.cpp + * orbsvcs/Scheduling_Service/Scheduling_Service.cpp + * orbsvcs/Trading_Service/Trading_Service.cpp + * orbsvcs/orbsvcs/Scheduler_Factory.cpp + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp + * orbsvcs/orbsvcs/Notify/Properties.cpp + * orbsvcs/orbsvcs/Notify/RT_Properties.cpp + * orbsvcs/orbsvcs/Notify/Routing_Slip.cpp + * orbsvcs/orbsvcs/Notify/Routing_Slip_Persistence_Manager.cpp + * orbsvcs/orbsvcs/Notify/Routing_Slip_Queue.cpp + * orbsvcs/orbsvcs/Notify/Standard_Event_Persistence.cpp + * orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp + * orbsvcs/orbsvcs/Notify/Topology_Object.cpp + * orbsvcs/orbsvcs/Notify/XML_Loader.cpp + * orbsvcs/orbsvcs/PortableGroup/GOA.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_FactoryRegistry.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_Factory_Map.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_Factory_Set.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_Location_Map.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_MemberInfo.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroupManager.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroup_Map.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group_Manipulator.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_Properties_Encoder.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_PropertyManager.cpp + * orbsvcs/orbsvcs/PortableGroup/PG_Property_Set.cpp + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Acceptor_Registry.cpp + * orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.cpp + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.cpp + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connector.cpp + * orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp + * orbsvcs/orbsvcs/RTCosScheduling/RTCosScheduling_ServerScheduler_i.cpp + * orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp + * orbsvcs/orbsvcs/Sched/DynSched.cpp + * orbsvcs/orbsvcs/Sched/Reconfig_Scheduler.cpp + * orbsvcs/orbsvcs/Sched/Scheduler.cpp + * orbsvcs/orbsvcs/Sched/Scheduler_Generic.cpp + * orbsvcs/orbsvcs/Sched/Strategy_Scheduler.cpp + * orbsvcs/orbsvcs/Security/SL3_CredentialsCurator.cpp + * orbsvcs/orbsvcs/Time/Timer_Helper.cpp + * orbsvcs/orbsvcs/Trader/Constraint_Interpreter.cpp + * orbsvcs/orbsvcs/Trader/Constraint_Visitors.cpp + * orbsvcs/orbsvcs/Trader/Interpreter_Utils.cpp + * orbsvcs/orbsvcs/Trader/Offer_Iterators.cpp + * orbsvcs/orbsvcs/Trader/Service_Type_Repository.cpp + * orbsvcs/orbsvcs/Trader/Trader.cpp + * orbsvcs/orbsvcs/Trader/Trader_Utils.cpp + * orbsvcs/orbsvcs/Trader/Trading_Loader.cpp + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/driver.cpp + * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp + * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/server.cpp + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/client.cpp + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/server.cpp + * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/client.cpp + * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/server.cpp + * orbsvcs/performance-tests/RTEvent/Roundtrip/client.cpp + * orbsvcs/performance-tests/RTEvent/Roundtrip/server.cpp + * orbsvcs/performance-tests/RTEvent/TCP_Baseline/client.cpp + * orbsvcs/performance-tests/RTEvent/TCP_Baseline/server.cpp + * orbsvcs/performance-tests/RTEvent/lib/Loopback.cpp + * orbsvcs/performance-tests/RTEvent/lib/ORB_Task.cpp + * orbsvcs/performance-tests/RTEvent/lib/ORB_Task_Activator.cpp + * orbsvcs/performance-tests/RTEvent/lib/Peer_Base.cpp + * orbsvcs/performance-tests/RTEvent/lib/Send_Task.cpp + * orbsvcs/performance-tests/RTEvent/lib/Send_Task_Stopper.cpp + * orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.cpp + * orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp + * orbsvcs/tests/AVStreams/Asynch_Three_Stage/receiver.cpp + * orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp + * orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp + * orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp + * orbsvcs/tests/AVStreams/Component_Switching/Connection_Manager.cpp + * orbsvcs/tests/AVStreams/Component_Switching/distributer.cpp + * orbsvcs/tests/AVStreams/Component_Switching/receiver.cpp + * orbsvcs/tests/AVStreams/Component_Switching/sender.cpp + * orbsvcs/tests/AVStreams/Full_Profile/ftp.cpp + * orbsvcs/tests/AVStreams/Full_Profile/server.cpp + * orbsvcs/tests/AVStreams/Latency/control.cpp + * orbsvcs/tests/AVStreams/Latency/ping.cpp + * orbsvcs/tests/AVStreams/Latency/pong.cpp + * orbsvcs/tests/AVStreams/Modify_QoS/receiver.cpp + * orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp + * orbsvcs/tests/AVStreams/Multicast/ftp.cpp + * orbsvcs/tests/AVStreams/Multicast/server.cpp + * orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp + * orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.cpp + * orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp + * orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp + * orbsvcs/tests/AVStreams/Pluggable/ftp.cpp + * orbsvcs/tests/AVStreams/Pluggable/server.cpp + * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/receiver.cpp + * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp + * orbsvcs/tests/AVStreams/Simple_Three_Stage/distributer.cpp + * orbsvcs/tests/AVStreams/Simple_Three_Stage/receiver.cpp + * orbsvcs/tests/AVStreams/Simple_Three_Stage/sender.cpp + * orbsvcs/tests/AVStreams/Simple_Two_Stage/receiver.cpp + * orbsvcs/tests/AVStreams/Simple_Two_Stage/sender.cpp + * orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/receiver.cpp + * orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/sender.cpp + * orbsvcs/tests/CosEvent/Basic/Disconnect.cpp + * orbsvcs/tests/CosEvent/Basic/MT_Disconnect.cpp + * orbsvcs/tests/CosEvent/Basic/Shutdown.cpp + * orbsvcs/tests/CosEvent/lib/Counting_Consumer.cpp + * orbsvcs/tests/CosEvent/lib/Counting_Supplier.cpp + * orbsvcs/tests/EC_Custom_Marshal/ECM_Data.cpp + * orbsvcs/tests/EC_Custom_Marshal/ECM_Supplier.cpp + * orbsvcs/tests/EC_Mcast/EC_Mcast.cpp + * orbsvcs/tests/EC_Multiple/EC_Multiple.cpp + * orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp + * orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp + * orbsvcs/tests/EC_Throughput/ECT_Throughput.cpp + * orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp + * orbsvcs/tests/Event/Basic/BCast.cpp + * orbsvcs/tests/Event/Basic/Bitmask.cpp + * orbsvcs/tests/Event/Basic/Control.cpp + * orbsvcs/tests/Event/Basic/Disconnect.cpp + * orbsvcs/tests/Event/Basic/MT_Disconnect.cpp + * orbsvcs/tests/Event/Basic/Negation.cpp + * orbsvcs/tests/Event/Basic/Observer.cpp + * orbsvcs/tests/Event/Basic/Reconnect.cpp + * orbsvcs/tests/Event/Basic/Schedule.cpp + * orbsvcs/tests/Event/Basic/Shutdown.cpp + * orbsvcs/tests/Event/Basic/Timeout.cpp + * orbsvcs/tests/Event/Mcast/Common/EC_Wrapper.cpp + * orbsvcs/tests/Event/Performance/Connect.cpp + * orbsvcs/tests/Event/Performance/Inversion.cpp + * orbsvcs/tests/Event/Performance/Latency.cpp + * orbsvcs/tests/Event/Performance/Latency_Server.cpp + * orbsvcs/tests/Event/Performance/Throughput.cpp + * orbsvcs/tests/Event/lib/Consumer.cpp + * orbsvcs/tests/Event/lib/Counting_Consumer.cpp + * orbsvcs/tests/Event/lib/Counting_Supplier.cpp + * orbsvcs/tests/Event/lib/Supplier.cpp + * orbsvcs/tests/FT_App/FTAPP_Analyzer_Main.cpp + * orbsvcs/tests/FT_App/FTAPP_FactoryRegistry_Main.cpp + * orbsvcs/tests/FT_App/FTAPP_FaultConsumer_Main.cpp + * orbsvcs/tests/FT_App/FTAPP_Notifier_Main.cpp + * orbsvcs/tests/FT_App/FT_Client.cpp + * orbsvcs/tests/FT_App/FT_Creator.cpp + * orbsvcs/tests/FT_App/FT_Replica.cpp + * orbsvcs/tests/FT_App/FT_ReplicaFactory_i.cpp + * orbsvcs/tests/FT_App/FT_TestReplica_i.cpp + * orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.cpp + * orbsvcs/tests/FT_App/StubBatchConsumer.cpp + * orbsvcs/tests/FT_App/StubFaultAnalyzer.cpp + * orbsvcs/tests/FT_App/StubFaultConsumer.cpp + * orbsvcs/tests/FT_App/StubFaultNotifier.cpp + * orbsvcs/tests/FT_App/TAO_Object_Group_Creator.cpp + * orbsvcs/tests/HTIOP/AMI/Test_Output.cpp + * orbsvcs/tests/HTIOP/BiDirectional/Test_Output.cpp + * orbsvcs/tests/HTIOP/Hello/Test_Output.cpp + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/Factory_Map.cpp + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/Factory_Struct.cpp + * orbsvcs/tests/Notify/Basic/Events.cpp + * orbsvcs/tests/Notify/Basic/Filter.cpp + * orbsvcs/tests/Notify/Basic/Sequence.cpp + * orbsvcs/tests/Notify/Basic/Simple.cpp + * orbsvcs/tests/Notify/Basic/Updates.cpp + * orbsvcs/tests/Notify/RT_lib/RT_Factories_Define.cpp + * orbsvcs/tests/Notify/Reconnecting/Consumer.cpp + * orbsvcs/tests/Notify/Reconnecting/Supplier.cpp + * orbsvcs/tests/Notify/Test_Filter/RT_Test_Filter.cpp + * orbsvcs/tests/Notify/lib/Activation_Manager.cpp + * orbsvcs/tests/Notify/lib/Command_Builder.cpp + * orbsvcs/tests/Notify/lib/Driver.cpp + * orbsvcs/tests/Notify/lib/Factories_Define.cpp + * orbsvcs/tests/Notify/lib/LookupManager.cpp + * orbsvcs/tests/Notify/lib/Periodic_Supplier.cpp + * orbsvcs/tests/Notify/lib/PushConsumer.cpp + * orbsvcs/tests/Notify/lib/PushSupplier.cpp + * orbsvcs/tests/Notify/lib/SequencePushConsumer.cpp + * orbsvcs/tests/Notify/lib/SequencePushSupplier.cpp + * orbsvcs/tests/Notify/lib/StructuredPushConsumer.cpp + * orbsvcs/tests/Notify/lib/StructuredPushSupplier.cpp + * orbsvcs/tests/Notify/lib/Task_Stats.cpp + * orbsvcs/tests/Notify/performance-tests/RedGreen/RedGreen_Test.cpp + * orbsvcs/tests/Notify/performance-tests/Throughput/Throughput.cpp + * orbsvcs/tests/Trading/Offer_Exporter.cpp + * orbsvcs/tests/Trading/colocated_test.cpp + * performance-tests/Callback/client.cpp + * performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.cpp + * performance-tests/Cubit/TAO/MT_Cubit/Globals.cpp + * performance-tests/Cubit/TAO/MT_Cubit/client.cpp + * performance-tests/Cubit/TAO/MT_Cubit/server.cpp + * performance-tests/POA/Demux/demux_test_server.cpp + * performance-tests/RTCorba/Thread_Pool/client.cpp + * tao/ORB_Table.cpp + * tao/TSS_Resources.cpp + * tao/Strategies/DIOP_Connector.cpp + * tao/Valuetype/ValueFactory_Map.cpp + * tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Factory.cpp + * tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Factory.cpp + * tests/CodeSets/libs/UCS4_UTF16/WUCS4_UTF16_Factory.cpp + * tests/DynAny_Test/driver.cpp + * tests/IOR_Endpoint_Hostnames/list_interfaces.cpp + * tests/OctetSeq/OctetSeq.cpp + * tests/Param_Test/driver.cpp + * tests/Param_Test/helper.cpp + * tests/Param_Test/options.cpp + * tests/Portable_Interceptors/Request_Interceptor_Flow/Request_Interceptor.cpp + * tests/RTCORBA/Collocation/Collocation.cpp + Zapped explicit templates + +Tue Oct 4 11:08:35 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2248_Regression/tests.idl: + + Added missing file. + + * orbsvcs/tests/Bug_2248_Regression/Bug_2248_Regression.mpc: + * orbsvcs/tests/Bug_2248_Regression/Server_Request_Interceptor.h: + + Correct errors. + +Tue Oct 4 10:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/POA/DSI/Database_i.cpp + * examples/RTCORBA/Activity/Activity.cpp + * examples/RTCORBA/Activity/Task_Stats.cpp + * examples/RTScheduling/Task_Stats.cpp + * examples/RTScheduling/Fixed_Priority_Scheduler/test.cpp + * examples/RTScheduling/MIF_Scheduler/test.cpp + * orbsvcs/FT_ReplicationManager/FT_ReplicationManagerFaultAnalyzer.cpp + * orbsvcs/FT_ReplicationManager/FT_ReplicationManager_Main.cpp + * orbsvcs/Fault_Detector/FT_FaultDetectorFactory_i.cpp + * orbsvcs/Fault_Detector/Fault_Detector_Main.cpp + * orbsvcs/Fault_Notifier/FT_Notifier_i.cpp + * orbsvcs/Fault_Notifier/Fault_Notifier_Main.cpp + * orbsvcs/IFR_Service/be_global.cpp + * orbsvcs/IFR_Service/ifr_adding_visitor.cpp + * orbsvcs/IFR_Service/ifr_adding_visitor_exception.cpp + * orbsvcs/Logging_Service/RTEvent_Logging_Service/RTEvent_Logging_Service.cpp + * orbsvcs/orbsvcs/AV/AVStreams_i.cpp + * orbsvcs/orbsvcs/AV/AV_Core.cpp + * orbsvcs/orbsvcs/AV/Fill_ACE_QoS.cpp + * orbsvcs/orbsvcs/AV/Policy.cpp + * orbsvcs/orbsvcs/AV/Protocol_Factory.cpp + * orbsvcs/orbsvcs/AV/RTCP.cpp + * orbsvcs/orbsvcs/AV/TCP.cpp + * orbsvcs/orbsvcs/AV/Transport.cpp + * orbsvcs/orbsvcs/AV/sfp.cpp + * orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp + * orbsvcs/orbsvcs/Concurrency/Concurrency_Loader.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_Factory.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_TypedConsumerAdmin.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_TypedSupplierAdmin.cpp + * orbsvcs/orbsvcs/Event/ECG_Adapters.cpp + * orbsvcs/orbsvcs/Event/ECG_CDR_Message_Receiver.cpp + * orbsvcs/orbsvcs/Event/ECG_Complex_Address_Server.cpp + * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp + * orbsvcs/orbsvcs/Event/ECG_Mcast_Gateway.cpp + * orbsvcs/orbsvcs/Event/ECG_Reconnect_ConsumerEC_Control.cpp + * orbsvcs/orbsvcs/Event/ECG_UDP_Out_Endpoint.cpp + * orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.cpp + * orbsvcs/orbsvcs/Event/ECG_UDP_Sender.cpp + * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp + * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp + * orbsvcs/orbsvcs/Event/EC_Factory.cpp + * orbsvcs/orbsvcs/Event/EC_Filter.cpp + * orbsvcs/orbsvcs/Event/EC_Gateway_IIOP.cpp + * orbsvcs/orbsvcs/Event/EC_Gateway_IIOP_Factory.cpp + * orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.cpp + * orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp + * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp + * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp + * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp + * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp + * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp + * orbsvcs/orbsvcs/Event/EC_Sched_Factory.cpp + * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.cpp + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientService_Activate.cpp + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerService_Activate.cpp + * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Activate.cpp + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connection_Handler.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.cpp + * orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp + * orbsvcs/orbsvcs/IFRService/IFR_Service_Loader.cpp + * orbsvcs/orbsvcs/IFRService/Options.cpp + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadAlertMap.cpp + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadListMap.cpp + * orbsvcs/orbsvcs/LoadBalancing/LB_LoadMap.cpp + * orbsvcs/orbsvcs/LoadBalancing/LB_Location_Index_Map.cpp + * orbsvcs/orbsvcs/LoadBalancing/LB_MonitorMap.cpp + * orbsvcs/orbsvcs/LoadBalancing/LB_ObjectReferenceFactory.cpp + * orbsvcs/orbsvcs/Log/Hash_LogRecordStore.cpp + * orbsvcs/orbsvcs/Log/Hash_LogStore.cpp + * orbsvcs/orbsvcs/Log/LogRecordStore_persist.cpp + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp + * orbsvcs/orbsvcs/Log/Log_i.cpp + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.cpp + * orbsvcs/orbsvcs/Metrics/Metrics_LocalCache.cpp + * orbsvcs/orbsvcs/Metrics/Metrics_Logger.cpp + * orbsvcs/orbsvcs/Metrics/Metrics_UpcallMonitor.cpp + * orbsvcs/orbsvcs/Metrics/Metrics_Utils.cpp + * orbsvcs/orbsvcs/Naming/Naming_Loader.cpp + * orbsvcs/orbsvcs/Naming/Persistent_Context_Index.cpp + * orbsvcs/orbsvcs/Naming/Persistent_Naming_Context.cpp + * orbsvcs/orbsvcs/Naming/Storable_Naming_Context.cpp + * orbsvcs/orbsvcs/Naming/Transient_Naming_Context.cpp + * orbsvcs/orbsvcs/Notify/Bit_Vector.cpp + * orbsvcs/orbsvcs/Notify/Builder.cpp + * orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp + * orbsvcs/orbsvcs/Notify/Delivery_Request.cpp + * orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp + * orbsvcs/orbsvcs/Notify/EventChannel.cpp + * orbsvcs/orbsvcs/Notify/FilterAdmin.cpp + * orbsvcs/orbsvcs/Notify/Method_Request_Updates.cpp + * orbsvcs/orbsvcs/Notify/Name_Value_Pair.cpp + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp + * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp + * orbsvcs/orbsvcs/Notify/Object.cpp + * orbsvcs/orbsvcs/Notify/Persistent_File_Allocator.cpp + * orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp + * orbsvcs/orbsvcs/Notify/ProxySupplier.cpp + * orbsvcs/orbsvcs/Notify/QoSProperties.cpp + * orbsvcs/orbsvcs/Notify/Random_File.cpp + * orbsvcs/orbsvcs/Notify/Reconnection_Registry.cpp: + Zapped explicit templates + +Mon Oct 3 23:43:08 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/FT_App/Makefile.am: + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/Makefile.am: + * orbsvcs/tests/FaultTolerance/IOGR/Makefile.am: + * orbsvcs/tests/IOR_MCast/Makefile.am: + * orbsvcs/tests/ior_corbaname/Makefile.am: + + Regenerated. + + * orbsvcs/tests/FT_App/FT_App.mpc: + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/GroupRef_Manipulation.mpc: + * orbsvcs/tests/FaultTolerance/IOGR/FaultTolerance_IOGR.mpc: + * orbsvcs/tests/IOR_MCast/IOR_MCast.mpc: + * orbsvcs/tests/ior_corbaname/ior_corbaname.mpc: + + Add "*idl" project for compiling *.idl files. + +Mon Oct 3 19:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/tutorials/Quoter/Event_Service/Stock_i.cpp + * docs/tutorials/Quoter/RT_Event_Service/Stock_i.cpp + * examples/Callback_Quoter/Notifier_i.cpp + * examples/Event_Comm/Event_Comm_i.cpp + * examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp + * examples/Kokyu_dsrt_schedulers/FP_Scheduler.cpp + * examples/Kokyu_dsrt_schedulers/MIF_Scheduler.cpp + * examples/Kokyu_dsrt_schedulers/MUF_Scheduler.cpp + * examples/Kokyu_dsrt_schedulers/Task_Stats.cpp + * examples/Kokyu_dsrt_schedulers/utils.cpp + * examples/Load_Balancing/Load_Balancer_i.cpp + * examples/Load_Balancing_persistent/Load_Balancer_i.cpp + * examples/Logging/Logger_i.cpp + * examples/OBV/Typed_Events/Client_i.cpp + * examples/OBV/Typed_Events/server.cpp + * examples/POA/On_Demand_Loading/Servant_Manager.cpp + * examples/Persistent_Grid/Grid_Client_i.cpp + * examples/Persistent_Grid/Persistent_Client_i.cpp + * examples/Persistent_Grid/server.cpp + * examples/PluggableUDP/tests/Basic/UDP_i.cpp + * examples/PluggableUDP/tests/Performance/UDP_i.cpp + * examples/RTScheduling/Starter.cpp + * examples/Simple/bank/AccountManager_i.cpp + * examples/Simple/bank/Bank_Client_i.cpp + * examples/Simple/bank/server.cpp + * examples/Simple/chat/Broadcaster_i.cpp + * examples/Simple/echo/Echo_Client_i.cpp + * examples/Simple/echo/server.cpp + * examples/Simple/grid/Grid_Client_i.cpp + * examples/Simple/grid/server.cpp + * examples/Simple/time/Time_Client_i.cpp + * examples/Simple/time/server.cpp + * examples/Simple/time-date/Time_Date.cpp + * examples/Simple/time-date/Time_Date_Client_i.cpp + * examples/Simulator/Event_Supplier/DualEC_Sup.cpp + * examples/Simulator/Event_Supplier/Event_Sup.cpp + * examples/Simulator/Event_Supplier/Logging_Sup.cpp + * orbsvcs/examples/CosEC/Factory/CosEventChannelFactory_i.cpp + * orbsvcs/examples/CosEC/RtEC_Based/lib/ConsumerAdmin_i.cpp + * orbsvcs/examples/CosEC/RtEC_Based/lib/CosEvent_Utilities.cpp + * orbsvcs/examples/CosEC/RtEC_Based/lib/EventChannel_i.cpp + * orbsvcs/examples/CosEC/RtEC_Based/lib/ProxyPushConsumer_i.cpp + * orbsvcs/examples/CosEC/RtEC_Based/lib/ProxyPushSupplier_i.cpp + * orbsvcs/examples/CosEC/RtEC_Based/lib/SupplierAdmin_i.cpp + * orbsvcs/examples/CosEC/Simple/Consumer.cpp + * orbsvcs/examples/CosEC/Simple/Service.cpp + * orbsvcs/examples/CosEC/Simple/Supplier.cpp + * orbsvcs/examples/Log/Event/Event_Consumer.cpp + * orbsvcs/examples/Log/Event/Event_Supplier.cpp + * orbsvcs/examples/Log/Notify/Notify_Consumer.cpp + * orbsvcs/examples/Log/Notify/Notify_Supplier.cpp + * orbsvcs/examples/Log/RTEvent/RTEvent_Consumer.cpp + * orbsvcs/examples/Log/RTEvent/RTEvent_Supplier.cpp + * orbsvcs/examples/Notify/Filter/Filter.cpp + * orbsvcs/examples/Notify/Subscribe/Subscribe.cpp + * orbsvcs/examples/RtEC/IIOPGateway/Consumer.cpp + * orbsvcs/examples/RtEC/IIOPGateway/EC.cpp + * orbsvcs/examples/RtEC/IIOPGateway/Gateway.cpp + * orbsvcs/examples/RtEC/IIOPGateway/Supplier.cpp + * orbsvcs/examples/RtEC/Kokyu/Consumer.cpp + * orbsvcs/examples/RtEC/Kokyu/Service.cpp + * orbsvcs/examples/RtEC/Kokyu/Supplier.cpp + * orbsvcs/examples/RtEC/MCast/Consumer.cpp + * orbsvcs/examples/RtEC/MCast/MCast.cpp + * orbsvcs/examples/RtEC/MCast/Supplier.cpp + * orbsvcs/examples/RtEC/Schedule/Service.cpp + * orbsvcs/examples/RtEC/Simple/Consumer.cpp + * orbsvcs/examples/RtEC/Simple/Service.cpp + * orbsvcs/examples/RtEC/Simple/Supplier.cpp + Zapped explicit templates + +Mon Oct 3 18:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.cpp + * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Accept_Strategy.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Credentials.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_EVP_PKEY.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_ORBInitializer.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_OwnCredentials.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_SSL.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_X509.cpp + Zapped explicit templates + +Mon Oct 3 18:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/RTPortableServer/RT_Policy_Validator.cpp: + Emulated exception fix + + * tao/RTCORBA/Thread_Pool.{h,cpp}: + Renamed request_dynamic_thread to new_dynamic_thread. + +Mon Oct 3 10:48:45 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * TAO_IDL/tao_idl.mpc: + * orbsvcs/orbsvcs/CosNaming_Serv.mpc: + * orbsvcs/orbsvcs/Svc_Utils.mpc: + * tao/Strategies.mpc: + + Added "ace_for_tao" ACE library subset support. + + * TAO_IDL/driver/drv_preproc.cpp: + * TAO_IDL/fe/fe_extern.cpp: + * TAO_IDL/fe/fe_init.cpp: + * TAO_IDL/include/fe_extern.h: + + Removed use of ACE_UUID. Rely on ACE_OS::mkstemp() instead to + avoid depending on more areas of ACE than necessary. + + * orbsvcs/orbsvcs/Naming/Persistent_Context_Index.h: + * tao/default_resource.cpp: + * tao/Strategies/advanced_resource.cpp: + + Include appropriate headers to address incomplete type + definition related compile-time errors. Necessitated by header + dependency reductions in ACE. + +Mon Oct 3 15:39:59 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2248_Regression/Bug_2248_Regression.mpc: + * orbsvcs/tests/Bug_2248_Regression/Server_Request_Interceptor.h: + * orbsvcs/tests/Bug_2248_Regression/client.h: + + Linux build errors. + +Mon Oct 3 06:54:16 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/examples/ImR/Advanced/Makefile.am: + * orbsvcs/examples/ImR/Combined_Service/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/Makefile.am: + * orbsvcs/tests/Security/MT_SSLIOP/Makefile.am: + + Regenerated. + + * orbsvcs/examples/ImR/Advanced/Advanced.mpc: + * orbsvcs/examples/ImR/Combined_Service/ImR_Combined_Service.mpc: + * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/Application_Controlled.mpc: + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/Infrastructure_Controlled.mpc: + * orbsvcs/tests/Security/MT_SSLIOP/MT_SSLIOP.mpc: + + Add "*idl" project for compiling *.idl files. + +Mon Oct 3 13:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/RTPortableServer/RT_Policy_Validator.cpp: + Updated for threadpool manager interfaces + +Mon Oct 3 12:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/RTCORBA/Thread_Pool.{h,cpp,inl}: + Fixed deadlock that occured when a ThreadPool was being destructed + when the ORB is still running. At that moment we did a wait on + the thread pool wait the lock on the thread pool manager was still + hold which resulted in a deadlock. Now each Thread Pool lane has + its own lock to guard its state, the lock in the thread pool manager + is just to guard the map in the manager. This fixes bugzilla bug + #2235. + Thanks to Anders Olsson <Anders dot EPK dot Olsson at ericsson dot com> + for reporting this issue. + + * tao/Makefile.am: + Added new Thread_Pool.inl + +Mon Oct 3 12:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/RTCORBA/Thread_Pool/test_i.cpp: + Use C++ cast instead of c-style cast + +Mon Oct 3 11:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * docs/releasenotes/index.html: + Documented IPv6 status + +Mon Oct 3 06:33:20 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * tao/LF_Event.cpp (state_changed): + * tao/LF_Event.h: + + There was strange problem that showed up during our testing + here. The problem happens only on peers that have server threads + waiting for requests, effectively leaving some threads hanging + around LF waiting for the reply, when infact the reply was + received by the server thread -- sort of missed wakeups. + + Problem: Server threads that wait for requests can process + replies (for requests initiated by client threads) since they + can get to the reactor right away and become leaders within the + reactor. What happens when a reply is received by a server + thread before a client thread adds itslf as a follower (in the + LF loop as a follower)? Disaster. + + Context: Why disaster? The server thread, never bound by the + synchronization in the LF, would pick the reply. It would + check for the follower (without holding the LF lock), and since + the follower is still joining the follower list, the LF_Event + would not have a follower pointer. The server thread would then + simply exit state_changed () without waiting for a follower. The + client thread that becomes a follower will never get a wakeup + signal and continue to hang around blocking a resource. + + Solution: Do wakeups only with the locks held. Grab LF lock + before thinking of doing wakeups, which would allow clients + languishing to set the follower pointer. + + To implement the solution, all I did was to change the interface + of state_changed () to pass in a LF reference. + + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connection_Handler.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp: + * performance-tests/Latency/Thread_Pool/run_test.pl: + * tao/Asynch_Queued_Message.cpp: + * tao/Asynch_Queued_Message.h: + * tao/Connection_Handler.cpp: + * tao/IIOP_Connection_Handler.cpp: + * tao/Queued_Message.cpp: + * tao/Queued_Message.h: + * tao/Synch_Queued_Message.cpp: + * tao/Synch_Queued_Message.h: + * tao/Synch_Reply_Dispatcher.cpp: + * tao/Transport.cpp: + * tao/Wait_On_Read.cpp: + * tao/Strategies/DIOP_Connection_Handler.cpp: + * tao/Strategies/SCIOP_Connection_Handler.cpp: + * tao/Strategies/SHMIOP_Connection_Handler.cpp: + * tao/Strategies/UIOP_Connection_Handler.cpp: + + Changes that got propogated due to the interface change in + LF_Event. + +Mon Oct 3 11:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Connection_Handler.cpp (close_connection_eh): + Removed some asserts that triggered when a RTCorba ThreadLane + was destroyed from a thread not belonging to this ThreadLane, + now we just have a fallback when the reactor associated with the + event handler is zero. This fixes bugzilla bug #2244. Thanks to + Bala for validating my ideas. + + * tao/Transport.{h,cpp,inl}: + Moved sent_byte_count and recv_buffer_size const and moved + them to the inline file + +Mon Oct 3 10:02:06 2005 Simon McQueen <sm@prismtech.com> + + * tao/Synch_Invocation.cpp: + + Don't reset the profiles upon a comm failure exception when + the FT service callback indicates a restart. This fixes bug #2248. + + Thanks to Milan Cvetkovic for reporting the problem and providing + the regression test. + + * orbsvcs/tests/Bug_2248_Regression/Bug_2248_Regression.mpc: + * orbsvcs/tests/Bug_2248_Regression/Client_i.h: + * orbsvcs/tests/Bug_2248_Regression/README: + * orbsvcs/tests/Bug_2248_Regression/Server_ORBInitializer.cpp: + * orbsvcs/tests/Bug_2248_Regression/Server_ORBInitializer.h: + * orbsvcs/tests/Bug_2248_Regression/Server_Request_Interceptor.cpp: + * orbsvcs/tests/Bug_2248_Regression/Server_Request_Interceptor.h: + * orbsvcs/tests/Bug_2248_Regression/client.cpp: + * orbsvcs/tests/Bug_2248_Regression/client.h: + * orbsvcs/tests/Bug_2248_Regression/run_test.pl: + * orbsvcs/tests/Bug_2248_Regression/server.cpp: + * orbsvcs/tests/Bug_2248_Regression/test.idl: + * orbsvcs/tests/Bug_2248_Regression/test_i.cpp: + * orbsvcs/tests/Bug_2248_Regression/test_i.h: + + Regression test for the above. + +Sun Oct 2 11:05:51 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/Log_i.cpp (validate_capacity_alarm_thresholds): + + Fixed out-of-range array element access that occured with single + element sequences. + + Add note that the specification does not require theshold values + to be in order or unique. + +Sun Oct 2 22:22:55 IST 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * performance-tests/Latency/Thread_Per_Connection/run_test.pl: + + Increased the timeout for the test to succeed on all platforms. + +Sun Oct 2 12:01:40 2005 Carlos O'Ryan <coryan@atdesk.com> + + * tests/Sequence_Unit_Tests/Sequence_Unit_Tests.mpc: + * tests/Sequence_Unit_Tests/bounded_object_reference_sequence.hpp: + * tests/Sequence_Unit_Tests/bounded_object_reference_sequence_ut.cpp: + * tests/Sequence_Unit_Tests/run_test.pl: + Implemented bounded sequences of object references. + + * tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp: + Fixed typos in unit test. + + * tests/Sequence_Unit_Tests/object_reference_traits.hpp: + * tests/Sequence_Unit_Tests/object_reference_traits_base.hpp: + Refactor traits so it is possible to implement better unit + tests. + + * tests/Sequence_Unit_Tests/string_traits_base.hpp: + Fixed comment + + * tests/Sequence_Unit_Tests/testing_allocation_traits.hpp: + Fixed #include guards + + * tests/Sequence_Unit_Tests/testing_object_reference_traits.hpp: + Modified so we can better test object reference management in + the sequences. + + * tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp: + Add more test cases + +Sat Oct 1 08:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/fe/fe_init.cpp: + Reverted WChar fixes, we have some problems in the idl compiler, + maybe they are caused by this + +Fri Sep 30 18:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Smart_Proxies/dtor/dtor.mpc: + Added anytypecode as base project to the client + +Fri Sep 30 12:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/params.cpp: + Fixed 64bit conversion warning + +Fri Sep 30 12:22:51 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2247_Regression/Bug_2247_Regression.mpc: + + Add minimum_corba. + + * orbsvcs/tests/Bug_2247_Regression/Manager.cpp: + + ACE_CHECK to ACE_CHECK_RETURN. + +Fri Sep 30 10:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Invocation_Base.{h,cpp}: + Set the invoke_status_ correctly when an exception has occured. + This fixes bugzilla bug 2247. Thanks to Simon McQueen + <sm@prismtech.com> for adding the regression for this test + to the repo and to Milan Cvetkovic + <milan dot cvetkovic at mpathix dot com> for creating the + regression + +Fri Sep 30 10:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/fe/fe_init.cpp: + WChar fix + +Fri Sep 30 09:10:00 2005 Simon Massey <simon.massey@prismtech.com> + + * tao/PI_Server/ServerInterceptorAdapter.cpp: + + This fixes Bugzilla 2249. + (Problems with TAO_HAS_EXTENDED_FT_INTERCEPTORS builds) + +Thu Sep 29 15:07:30 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/EventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/EventLog_i.cpp: + * orbsvcs/orbsvcs/Log/Log_i.cpp: + * orbsvcs/orbsvcs/Log/NotifyLog_i.cpp: + * orbsvcs/orbsvcs/Log/RTEventLog_i.cpp: + + De-fuzzed simple cases ACE_CHECK/ACE_TRY_CHECK warnings. + I'll get to the remaining cases that need new temporary + variables, etc. in the next week. + +Thu Sep 29 17:25:39 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2247_Regression/test_i.cpp: + * orbsvcs/tests/Bug_2247_Regression/test_i.h: + + Fixing the inevitable emulated exception errors. + +Thu Sep 29 10:02:19 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/orbsvcs/Event/EC_TPC_ProxyConsumer.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.cpp: + + De-fuzzed ACE_CHECK/ACE_TRY_CHECK warnings. Thanks to Johnny + Willemsen for catching this and holding my feet to the fire. + +Thu Sep 29 09:12:24 2005 Chad Elliott <elliott_c@ociweb.com> + + * tao/SmartProxies/Smart_Proxies.h: + + Removed the virtual from the inheritance list. It is not + necessary. + +Thu Sep 29 14:29:17 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2247_Regression/Bug_2247_Regression.mpc: + * orbsvcs/tests/Bug_2247_Regression/Client_i.h: + * orbsvcs/tests/Bug_2247_Regression/Manager.cpp: + * orbsvcs/tests/Bug_2247_Regression/Manager.h: + * orbsvcs/tests/Bug_2247_Regression/README: + * orbsvcs/tests/Bug_2247_Regression/run_test.pl: + * orbsvcs/tests/Bug_2247_Regression/server.cpp: + * orbsvcs/tests/Bug_2247_Regression/test.idl: + * orbsvcs/tests/Bug_2247_Regression/test_i.cpp: + * orbsvcs/tests/Bug_2247_Regression/test_i.h: + + Regression test added. + +Thu Sep 29 07:38:32 2005 Chad Elliott <elliott_c@ociweb.com> + + * tests/Smart_Proxies/dtor/client.cpp: + * tests/Smart_Proxies/dtor/server.cpp: + + Corrected build issues (include files, exception macros and + minimum corba related problems) and warnings from certain versions + of the GNU compiler about implicit conversion. + +Thu Sep 29 12:34:50 2005 Simon McQueen <sm@prismtech.com> + + * tao/Makefile.am: + + Removed WrongTransactionS.inl - file no longer in CVS. + +Thu Sep 29 09:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp + * orbsvcs/tests/AVStreams/Component_Switching/distributer.cpp + * orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp + * orbsvcs/tests/AVStreams/Multicast/server.cpp + * orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp + * orbsvcs/tests/AVStreams/Pluggable/ftp.cpp + * tests/Big_Twoways/client.cpp + * tests/Two_Objects/Object_Factory_i.cpp + Fixed fuzz errors + + * utils/catior/catior.cpp + Wchar fix + +Thu Sep 29 07:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Smart_Proxies/server.cpp: + * tests/Smart_Proxies/Benchmark/client.cpp: + * tests/Smart_Proxies/Benchmark/server.cpp: + * tests/Smart_Proxies/On_Demand/server.cpp: + * tests/Smart_Proxies/Policy/client.cpp: + * tests/Smart_Proxies/Policy/server.cpp: + * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp: + Fixed fuzz errors + +Thu Sep 29 07:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp: + Emulated exception fix + +Thu Sep 29 07:24:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Connect_Strategy.h: + * tao/ORB.h: + * tao/PI_Server/Policy_Creator_T.h: + Layout and documentation changes + + * tao/Strategies/SHMIOP_Connection_Handler.cpp: + Updated debug statement to have the same layout as the other messages + + * tao/Stub.{h,cpp,i}: + Use an Atomic_Op for the refcount, removed some accessors that are + not needed and which violated the encapsulation principle. Made + some methods protected which don't need to be public, removed the + return value of the _incr_refcnt and _decr_refcnt methods, the + return value isn't something you can build logic on because it + can change again quickly. Also fixed a 64bit problem. + + * tao/Valuetype/AbstractBase.cpp: + Removed (void) before calls of _incr_rfcnt/_decr_refcnt, they don't + return a value anymore. + +Thu Sep 29 07:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Trader/Trader_Interfaces.cpp: + * orbsvcs/orbsvcs/Trader/Trader_Utils.{h,cpp}: + * orbsvcs/orbsvcs/Trader/Trading_Loader.cpp: + Fixed emulated exception fuzz errors. It seems the Trading service + is not really correct related to emulated exceptions, if someone + really wants to use it in that configuration some more work has + to be done. + +Thu Sep 29 06:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/LoadBalancing/LB_ServerRequestInterceptor.cpp: + Fixed emulated exception fuzz errors + +Wed Sep 28 20:05:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tao/IIOP_Acceptor.cpp: + + Fixed compile error for Borland compiler. + +Wed Sep 28 18:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Naming/Naming_Server.cpp: + Fixed emulated exception errors + +Wed Sep 28 11:35:17 2005 Chad Elliott <elliott_c@ociweb.com> + + Committing the following changes on behalf of Wallace Zhang + <zhang_w@ociweb.com>. + + * tao/SmartProxies/Smart_Proxies.h: + + Let TAO_Smart_Proxy_Base inherit from + TAO_Local_RefCounted_Object to have a correct destruction of smart + proxies. This also fixed the problem that _non_existent() crashes + when using smart proxy + + * tests/Smart_Proxies/dtor/.cvsignore: + * tests/Smart_Proxies/dtor/README: + * tests/Smart_Proxies/dtor/Smart_Proxy_Impl.h: + * tests/Smart_Proxies/dtor/Smart_Proxy_Impl.cpp: + * tests/Smart_Proxies/dtor/client.cpp: + * tests/Smart_Proxies/dtor/dtor.mpc: + * tests/Smart_Proxies/dtor/run_test.pl: + * tests/Smart_Proxies/dtor/server.cpp: + * tests/Smart_Proxies/dtor/test.idl: + + Created a new test for Smart Proxy. This test is to detect + the destruction of smart proxies and a _non_existent() + crash. + +Wed Sep 28 15:21:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tao/Acceptor_Registry{.h .cpp}: + * tao/IIOP_Acceptor{.h .cpp .i}: + + Added improvements for IPv6 support with Windows (circumventing + the problems coming from MS's single-stack implementation of + IPv4/IPv6). + +Fri Sep 23 13:11:31 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * tao/orbconf.h: Added a comment warning users about the + impact of setting huge values for the number of configured + handles. Thanks to Jan.Zima@sofis.cz for motivating this. + +Wed Sep 28 14:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/IFRService/*S.{h,cpp,inl}: + * orbsvcs/orbsvcs/IFRService/*S_T.{h,cpp,inl}: + Regenerated with the latest version of the TAO_IDL compiler + +Wed Sep 28 14:12:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/POA/Demux/demux_test_server.cpp: + Fixed fuzz error + +Wed Sep 28 14:53:27 2005 Simon McQueen <sm@prismtech.com> + + * orbsvcs/tests/Bug_2137_Regression/client.cpp: + + What kind of muppet makes 35 seperate mistakes with emulated + exception handling in one file ? That would be me. + +Wed Sep 28 14:35:26 2005 Simon McQueen <sm@prismtech.com> + + * tao/WrongTransaction.pidl: + + Changed generation instructions to include use of -SS. + + * tao/WrongTransactionS.h: + + Regenerated using -SS. + + * tao/WrongTransactionS.inl: + + Removed file. + +Tue Sep 27 18:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/POA/Single_Threaded_POA/Single_Threaded_POA.cpp: + Emulated exception fix + +Mon Sep 26 14:19:42 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/DsLogAdmin.mpc: + + Added "Log/LogStore.h" to Header_Files in the DsLogAdmin_Serv + project. + +Mon Sep 26 09:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Scheduler_Factory.cpp: + Wchar fix + + * orbsvcs/orbsvcs/RTEvent.mpc: + * orbsvcs/orbsvcs/RTEvent_Skel.mpc: + Added export files to the header section so that they get copied + on install + +Mon Sep 26 09:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/Event_Service/Event_Service.cpp: + Corrected the way we check whether we should create a persistent POA + or not. + +Mon Sep 26 07:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp: + Added ACE_CHECK generation and fixed some layout issues + +Sun Sep 25 21:33:41 2005 Bala Natarajan <bala_natarajan at symantec dot com> + + * tao/Transport_Cache_Manager.cpp: + + Cosmetic check, which seems to help some builds. + +Sat Sep 24 11:37:37 2005 Balachandran Natarajan <bala_natarajan at symantec dot com> + + * tao/default_client.cpp: + + Changed the default value of use_cleanup_options_ switch to + false. This should address performance and thread_pool latency + test failures in our daily scoreboard. + +Fri Sep 23 12:17:29 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/Bug_2222_Regression/test.cpp (main): + + Removed unnecessary try/catch block that caused an "unused + ACE_TRY_LABEL" warning in emulated exception builds. Thanks to + Simon Massey for pointing out the problem. + +Fri Sep 23 16:22:01 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/AnyTypeCode/Any_Basic_Impl_T.cpp: + + Added include of Any.h, similar to the other Any_*_Impl_T.cpp + files. The need for this include shows up only when enums + are seen in an IDL file, with no other IDL types to + pull in the include. Thanks to Jules Colding <colding@omesc.com> + for reporting the problem. + +Fri Sep 23 07:42:38 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/examples/Security/Send_File/Makefile.am: + + Regenerate. + + * orbsvcs/examples/Security/Send_File/Security_Send_File.mpc: + + Add "*idl" project for compiling *.idl files. + +Fri Sep 23 07:07:33 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/examples/LoadBalancing/LoadBalancing.mpc: + + Changed *idl project to inherit from anytypecode. + +Fri Sep 23 14:31:39 2005 Simon McQueen <sm@prismtech.com> + + * docs/Options.html: + + Removed some text that had been put in the wrong place. + +Fri Sep 23 05:55:03 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/HTIOP/Hello/Makefile.am: + + Regenerated. + + * orbsvcs/HTIOP/Hello/HTIOP_Hello.mpc: + + Added "custom_only = 1" to *idl project. + +Fri Sep 23 11:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Notify/Event.inl: + Emulated exception fix + +Fri Sep 23 11:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Event/ECG_Mcast_Gateway.{h,cpp}: + * orbsvcs/orbsvcs/Naming/Storable_Naming_Context.cpp: + Some wchar fixes + +Fri Sep 23 10:05:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tests/CallbackTest/Callback.cpp: + * tests/CallbackTest/server.cpp: + * tests/CallbackTest/client.cpp: + + Fixed compile warnings. + +Thu Sep 22 23:55:22 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/HTIOP/AMI/Makefile.am: + * orbsvcs/tests/HTIOP/Hello/Makefile.am: + + Regenerated. + + * orbsvcs/tests/HTIOP/AMI/HTIOP_AMI.mpc: + * orbsvcs/tests/HTIOP/Hello/HTIOP_Hello.mpc: + + Add "*idl" projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Thu Sep 22 14:03:11 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: + + Updated AC_CONFIG_FILES for the new directories. + + Added BUILD_REPO, BUILD_THREADS, and BUILD_EC_TYPED_EVENTS + automake conditionals. Explicitly set to false, true, and + true (at least for now). + + * TAO_IDL/Makefile.am: + * orbsvcs/Makefile.am: + * orbsvcs/Concurrency_Service/Makefile.am: + * orbsvcs/CosEvent_Service/Makefile.am: + * orbsvcs/Dump_Schedule/Makefile.am: + * orbsvcs/Event_Service/Makefile.am: + * orbsvcs/FTRT_Event_Service/Makefile.am: + * orbsvcs/FTRT_Event_Service/Event_Service/Makefile.am: + * orbsvcs/FTRT_Event_Service/Factory_Service/Makefile.am: + * orbsvcs/FTRT_Event_Service/Gateway_Service/Makefile.am: + * orbsvcs/FT_ReplicationManager/Makefile.am: + * orbsvcs/Fault_Detector/Makefile.am: + * orbsvcs/Fault_Notifier/Makefile.am: + * orbsvcs/IFR_Service/Makefile.am: + * orbsvcs/ImplRepo_Service/Makefile.am: + * orbsvcs/LifeCycle_Service/Makefile.am: + * orbsvcs/LoadBalancer/Makefile.am: + * orbsvcs/Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/Basic_Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/Event_Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/Notify_Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/RTEvent_Logging_Service/Makefile.am: + * orbsvcs/Naming_Service/Makefile.am: + * orbsvcs/Notify_Service/Makefile.am: + * orbsvcs/Scheduling_Service/Makefile.am: + * orbsvcs/TAO_Service/Makefile.am: + * orbsvcs/Time_Service/Makefile.am: + * orbsvcs/Trading_Service/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/bin/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + * orbsvcs/performance-tests/Makefile.am: + * orbsvcs/performance-tests/LoadBalancing/Makefile.am: + * orbsvcs/performance-tests/LoadBalancing/LBPerf/Makefile.am: + * orbsvcs/performance-tests/LoadBalancing/LBPerf/RPS/Makefile.am: + * orbsvcs/performance-tests/RTEvent/Makefile.am: + * orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/Makefile.am: + * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/Makefile.am: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Baseline/Makefile.am: + * orbsvcs/performance-tests/RTEvent/RTCORBA_Callback/Makefile.am: + * orbsvcs/performance-tests/RTEvent/Roundtrip/Makefile.am: + * orbsvcs/performance-tests/RTEvent/TCP_Baseline/Makefile.am: + * orbsvcs/performance-tests/RTEvent/lib/Makefile.am: + * orbsvcs/tests/Makefile.am: + * orbsvcs/tests/AVStreams/Makefile.am: + * orbsvcs/tests/AVStreams/Asynch_Three_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Bidirectional_Flows/Makefile.am: + * orbsvcs/tests/AVStreams/Component_Switching/Makefile.am: + * orbsvcs/tests/AVStreams/Full_Profile/Makefile.am: + * orbsvcs/tests/AVStreams/Latency/Makefile.am: + * orbsvcs/tests/AVStreams/Modify_QoS/Makefile.am: + * orbsvcs/tests/AVStreams/Multicast/Makefile.am: + * orbsvcs/tests/AVStreams/Multicast_Full_Profile/Makefile.am: + * orbsvcs/tests/AVStreams/Multiple_Flows/Makefile.am: + * orbsvcs/tests/AVStreams/Pluggable/Makefile.am: + * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Three_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Two_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/Makefile.am: + * orbsvcs/tests/BiDir_CORBALOC/Makefile.am: + * orbsvcs/tests/Bug_1334_Regression/Makefile.am: + * orbsvcs/tests/Bug_1393_Regression/Makefile.am: + * orbsvcs/tests/Bug_1395_Regression/Makefile.am: + * orbsvcs/tests/Bug_1630_Regression/Makefile.am: + * orbsvcs/tests/Concurrency/Makefile.am: + * orbsvcs/tests/CosEvent/Makefile.am: + * orbsvcs/tests/CosEvent/Basic/Makefile.am: + * orbsvcs/tests/CosEvent/lib/Makefile.am: + * orbsvcs/tests/EC_Custom_Marshal/Makefile.am: + * orbsvcs/tests/EC_MT_Mcast/Makefile.am: + * orbsvcs/tests/EC_Mcast/Makefile.am: + * orbsvcs/tests/EC_Multiple/Makefile.am: + * orbsvcs/tests/EC_Throughput/Makefile.am: + * orbsvcs/tests/Event/Makefile.am: + * orbsvcs/tests/Event/Basic/Makefile.am: + * orbsvcs/tests/Event/Mcast/Makefile.am: + * orbsvcs/tests/Event/Mcast/Common/Makefile.am: + * orbsvcs/tests/Event/Mcast/Complex/Makefile.am: + * orbsvcs/tests/Event/Mcast/Simple/Makefile.am: + * orbsvcs/tests/Event/Mcast/Two_Way/Makefile.am: + * orbsvcs/tests/Event/Performance/Makefile.am: + * orbsvcs/tests/Event/lib/Makefile.am: + * orbsvcs/tests/FT_App/Makefile.am: + * orbsvcs/tests/FaultTolerance/Makefile.am: + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/Makefile.am: + * orbsvcs/tests/FaultTolerance/IOGR/Makefile.am: + * orbsvcs/tests/FaultTolerance/IOGRManipulation/Makefile.am: + * orbsvcs/tests/FtRtEvent/Makefile.am: + * tao/Makefile.am: + * utils/Makefile.am: + * utils/catior/Makefile.am: + * utils/nslist/Makefile.am: + + Regenerated. + + * docs/Makefile.am: + * docs/tutorials/Makefile.am: + * docs/tutorials/Quoter/AMI/Makefile.am: + * docs/tutorials/Quoter/Event_Service/Makefile.am: + * docs/tutorials/Quoter/Makefile.am: + * docs/tutorials/Quoter/Naming_Service/Makefile.am: + * docs/tutorials/Quoter/On_Demand_Activation/Makefile.am: + * docs/tutorials/Quoter/RT_Event_Service/Makefile.am: + * docs/tutorials/Quoter/Simple/Client/Makefile.am: + * docs/tutorials/Quoter/Simple/Impl-Repo/Makefile.am: + * docs/tutorials/Quoter/Simple/ImprovedServer/Makefile.am: + * docs/tutorials/Quoter/Simple/Makefile.am: + * docs/tutorials/Quoter/Simple/Persistent/Makefile.am: + * docs/tutorials/Quoter/Simple/Server/Makefile.am: + * docs/tutorials/Quoter/idl/Makefile.am: + * examples/AMH/Makefile.am: + * examples/AMH/Sink_Server/Makefile.am: + * examples/AMI/FL_Callback/Makefile.am: + * examples/AMI/Makefile.am: + * examples/Advanced/Makefile.am: + * examples/Advanced/ch_3/Makefile.am: + * examples/Buffered_AMI/Makefile.am: + * examples/Buffered_Oneways/Makefile.am: + * examples/Callback_Quoter/Makefile.am: + * examples/Content_Server/AMI_Iterator/Makefile.am: + * examples/Content_Server/AMI_Observer/Makefile.am: + * examples/Content_Server/Makefile.am: + * examples/Content_Server/SMI_Iterator/Makefile.am: + * examples/Event_Comm/Makefile.am: + * examples/Kokyu_dsrt_schedulers/Makefile.am: + * examples/Kokyu_dsrt_schedulers/fp_example/Makefile.am: + * examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am: + * examples/Kokyu_dsrt_schedulers/muf_example/Makefile.am: + * examples/Load_Balancing/Makefile.am: + * examples/Load_Balancing_persistent/Makefile.am: + * examples/Logging/Makefile.am: + * examples/Makefile.am: + * examples/OBV/Makefile.am: + * examples/OBV/Typed_Events/Makefile.am: + * examples/POA/Adapter_Activator/Makefile.am: + * examples/POA/DSI/Makefile.am: + * examples/POA/Default_Servant/Makefile.am: + * examples/POA/Explicit_Activation/Alt_Resources/Makefile.am: + * examples/POA/Explicit_Activation/Makefile.am: + * examples/POA/FindPOA/Makefile.am: + * examples/POA/Forwarding/Makefile.am: + * examples/POA/Generic_Servant/Makefile.am: + * examples/POA/Loader/Makefile.am: + * examples/POA/Makefile.am: + * examples/POA/NewPOA/Makefile.am: + * examples/POA/On_Demand_Activation/Makefile.am: + * examples/POA/On_Demand_Loading/Makefile.am: + * examples/POA/POA_BiDir/Makefile.am: + * examples/POA/Reference_Counted_Servant/Makefile.am: + * examples/POA/RootPOA/Makefile.am: + * examples/POA/TIE/Makefile.am: + * examples/Persistent_Grid/Makefile.am: + * examples/PluggableUDP/Makefile.am: + * examples/PluggableUDP/tests/Basic/Makefile.am: + * examples/PluggableUDP/tests/Makefile.am: + * examples/PluggableUDP/tests/Performance/Makefile.am: + * examples/PluggableUDP/tests/SimplePerformance/Makefile.am: + * examples/Quoter/Makefile.am: + * examples/RTCORBA/Activity/Makefile.am: + * examples/RTCORBA/Makefile.am: + * examples/RTScheduling/Fixed_Priority_Scheduler/Makefile.am: + * examples/RTScheduling/MIF_Scheduler/Makefile.am: + * examples/RTScheduling/Makefile.am: + * examples/Simple/Makefile.am: + * examples/Simple/bank/Makefile.am: + * examples/Simple/chat/Makefile.am: + * examples/Simple/echo/Makefile.am: + * examples/Simple/grid/Makefile.am: + * examples/Simple/time-date/Makefile.am: + * examples/Simple/time/Makefile.am: + * examples/Simulator/Event_Supplier/Makefile.am: + * examples/Simulator/Makefile.am: + * examples/TypeCode_Creation/Makefile.am: + * examples/ior_corbaloc/Makefile.am: + * examples/mfc/Makefile.am: + * interop-tests/Makefile.am: + * interop-tests/wchar/Makefile.am: + * orbsvcs/examples/CosEC/Factory/Makefile.am: + * orbsvcs/examples/CosEC/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/lib/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/tests/Basic/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/tests/Makefile.am: + * orbsvcs/examples/CosEC/RtEC_Based/tests/Multiple/Makefile.am: + * orbsvcs/examples/CosEC/Simple/Makefile.am: + * orbsvcs/examples/CosEC/TypedSimple/Makefile.am: + * orbsvcs/examples/FaultTolerance/Makefile.am: + * orbsvcs/examples/FaultTolerance/RolyPoly/Makefile.am: + * orbsvcs/examples/ImR/Advanced/Makefile.am: + * orbsvcs/examples/ImR/Combined_Service/Makefile.am: + * orbsvcs/examples/ImR/Makefile.am: + * orbsvcs/examples/LoadBalancing/Makefile.am: + * orbsvcs/examples/Log/Basic/Makefile.am: + * orbsvcs/examples/Log/Event/Makefile.am: + * orbsvcs/examples/Log/Makefile.am: + * orbsvcs/examples/Log/Notify/Makefile.am: + * orbsvcs/examples/Log/RTEvent/Makefile.am: + * orbsvcs/examples/Makefile.am: + * orbsvcs/examples/Notify/Federation/Agent/Makefile.am: + * orbsvcs/examples/Notify/Federation/Gate/Makefile.am: + * orbsvcs/examples/Notify/Federation/Makefile.am: + * orbsvcs/examples/Notify/Federation/SpaceCraft/Makefile.am: + * orbsvcs/examples/Notify/Filter/Makefile.am: + * orbsvcs/examples/Notify/Lanes/Makefile.am: + * orbsvcs/examples/Notify/Makefile.am: + * orbsvcs/examples/Notify/Subscribe/Makefile.am: + * orbsvcs/examples/Notify/ThreadPool/Makefile.am: + * orbsvcs/examples/ORT/Makefile.am: + * orbsvcs/examples/RtEC/IIOPGateway/Makefile.am: + * orbsvcs/examples/RtEC/Kokyu/Makefile.am: + * orbsvcs/examples/RtEC/MCast/Makefile.am: + * orbsvcs/examples/RtEC/Makefile.am: + * orbsvcs/examples/RtEC/Schedule/Makefile.am: + * orbsvcs/examples/RtEC/Simple/Makefile.am: + * orbsvcs/examples/Security/Makefile.am: + * orbsvcs/examples/Security/Send_File/Makefile.am: + * orbsvcs/tests/Bug_2137_Regression/Makefile.am: + * orbsvcs/tests/HTIOP/AMI/Makefile.am: + * orbsvcs/tests/HTIOP/BiDirectional/Makefile.am: + * orbsvcs/tests/HTIOP/Hello/Makefile.am: + * orbsvcs/tests/HTIOP/Makefile.am: + * orbsvcs/tests/IOR_MCast/Makefile.am: + * orbsvcs/tests/ImplRepo/Makefile.am: + * orbsvcs/tests/ImplRepo/NameService/Makefile.am: + * orbsvcs/tests/ImplRepo/scale/Makefile.am: + * orbsvcs/tests/InterfaceRepo/Application_Test/Makefile.am: + * orbsvcs/tests/InterfaceRepo/IDL3_Test/Makefile.am: + * orbsvcs/tests/InterfaceRepo/IFR_Test/Makefile.am: + * orbsvcs/tests/InterfaceRepo/Latency_Test/Makefile.am: + * orbsvcs/tests/InterfaceRepo/Makefile.am: + * orbsvcs/tests/InterfaceRepo/Persistence_Test/Makefile.am: + * orbsvcs/tests/Interoperable_Naming/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Application_Controlled/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Infrastructure_Controlled/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Makefile.am: + * orbsvcs/tests/LoadBalancing/GenericFactory/Manage_Object_Group/Makefile.am: + * orbsvcs/tests/LoadBalancing/LoadMonitor/CPU/Makefile.am: + * orbsvcs/tests/LoadBalancing/LoadMonitor/Makefile.am: + * orbsvcs/tests/LoadBalancing/Makefile.am: + * orbsvcs/tests/Log/Basic_Log_Test/Makefile.am: + * orbsvcs/tests/Log/Makefile.am: + * orbsvcs/tests/Miop/Makefile.am: + * orbsvcs/tests/Miop/McastHello/Makefile.am: + * orbsvcs/tests/Notify/Basic/Makefile.am: + * orbsvcs/tests/Notify/Blocking/Makefile.am: + * orbsvcs/tests/Notify/Destroy/Makefile.am: + * orbsvcs/tests/Notify/Discarding/Makefile.am: + * orbsvcs/tests/Notify/Driver/Makefile.am: + * orbsvcs/tests/Notify/MT_Dispatching/Makefile.am: + * orbsvcs/tests/Notify/Makefile.am: + * orbsvcs/tests/Notify/Ordering/Makefile.am: + * orbsvcs/tests/Notify/PluggableTopology/Makefile.am: + * orbsvcs/tests/Notify/RT_lib/Makefile.am: + * orbsvcs/tests/Notify/Reconnecting/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Makefile.am: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/Structured_Filter/Makefile.am: + * orbsvcs/tests/Notify/Structured_Multi_Filter/Makefile.am: + * orbsvcs/tests/Notify/Test_Filter/Makefile.am: + * orbsvcs/tests/Notify/XML_Persistence/Makefile.am: + * orbsvcs/tests/Notify/lib/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Filter/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/RedGreen/Makefile.am: + * orbsvcs/tests/Notify/performance-tests/Throughput/Makefile.am: + * orbsvcs/tests/Property/Makefile.am: + * orbsvcs/tests/Redundant_Naming/Makefile.am: + * orbsvcs/tests/Sched/Makefile.am: + * orbsvcs/tests/Sched_Conf/Makefile.am: + * orbsvcs/tests/Security/BiDirectional/Makefile.am: + * orbsvcs/tests/Security/Big_Request/Makefile.am: + * orbsvcs/tests/Security/Callback/Makefile.am: + * orbsvcs/tests/Security/Crash_Test/Makefile.am: + * orbsvcs/tests/Security/MT_IIOP_SSL/Makefile.am: + * orbsvcs/tests/Security/MT_SSLIOP/Makefile.am: + * orbsvcs/tests/Security/Makefile.am: + * orbsvcs/tests/Security/Secure_Invocation/Makefile.am: + * orbsvcs/tests/Security/ssliop_corbaloc/Makefile.am: + * orbsvcs/tests/Simple_Naming/Makefile.am: + * orbsvcs/tests/Time/Makefile.am: + * orbsvcs/tests/Trading/Makefile.am: + * orbsvcs/tests/ior_corbaname/Makefile.am: + * orbsvcs/tests/tests_svc_loader/Makefile.am: + + Added. + + * examples/AMI/FL_Callback/FL_Callback.mpc: + * examples/Advanced/ch_3/Advanced_ch_3.mpc: + * orbsvcs/examples/CosEC/Factory/CosEC_Factory.mpc: + * orbsvcs/examples/FaultTolerance/RolyPoly/RolyPoly.mpc: + * orbsvcs/examples/LoadBalancing/LoadBalancing.mpc: + * orbsvcs/examples/ORT/ORT.mpc: + * orbsvcs/tests/HTIOP/BiDirectional/HTIOP_BiDirectional.mpc: + * orbsvcs/tests/Notify/Blocking/Blocking.mpc: + * orbsvcs/tests/Notify/Discarding/Discarding.mpc: + * orbsvcs/tests/Notify/MT_Dispatching/MT_Dispatching.mpc: + * orbsvcs/tests/Notify/Ordering/Ordering.mpc: + * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Seq_Multi_ETCL_Filter.mpc: + * orbsvcs/tests/Notify/Sequence_Multi_Filter/Seq_Multi_Filter.mpc: + * orbsvcs/tests/Notify/Structured_Filter/Struct_Filter.mpc: + * orbsvcs/tests/Notify/Structured_Multi_Filter/Struct_Multi_Filter.mpc: + * orbsvcs/tests/Notify/performance-tests/Filter/Filter.mpc: + * orbsvcs/tests/Security/BiDirectional/Secure_BiDir.mpc: + * orbsvcs/tests/Security/Big_Request/Big_Request.mpc: + * orbsvcs/tests/Security/Callback/Callback.mpc: + * orbsvcs/tests/Security/Crash_Test/Security_Crash_Test.mpc: + * orbsvcs/tests/Security/MT_IIOP_SSL/MT_IIOP_SSL.mpc: + * orbsvcs/tests/Security/Secure_Invocation/Secure_Invocation.mpc: + * performance-tests/Sequence_Latency/DII/DII.mpc: + * performance-tests/Sequence_Latency/DSI/DSI.mpc: + * performance-tests/Sequence_Latency/Deferred/Deferred.mpc: + + Add "*idl" projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Thu Sep 22 15:12:12 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * orbsvcs/tests/InterfaceRepo/IDL3_Test/test.idl: + + Modified valuetype declartion used as a primary key to + conform to the CCM spec section 61.7.2.1 listing + constraints on primary key types. + +Thu Sep 22 08:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/POA/Loader/Server_Manager.cpp: + * examples/Quoter/Factory_Finder.cpp: + * tao/ImR_Client/ImplRepoC.*: + * tao/ImR_Client/ImplRepoS.*: + * tao/ImR_Client/ServerObjectC.*: + * tao/ImR_Client/ServerObjectS.*: + * tao/PortableServer/POA_Policy_Set.cpp: + * tao/PortableServer/Root_POA.inl: + * tests/AMH_Oneway/client.cpp: + * tests/POA/Default_Servant/Default_Servant.cpp: + * tests/RTScheduling/Thread_Cancel/test.cpp: + * utils/nslist/nsdel.cpp: + Emulated exceptions fixes + + * tests/RTScheduling/Thread_Cancel/Thread_Cancel.mpc: + Removed empty lines + + * tao/Codeset/Codeset_Manager_i.cpp: + * tao/RTCORBA/RT_ORBInitializer.cpp: + Wchar fixes + +Thu Sep 22 08:21:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/POA/DSI/Server.cpp: + Emulated exceptions fixes + + * tao/IIOP_Endpoint.cpp: + * tao/MCAST_Parser.cpp: + * tao/ORB_Core.cpp: + Wchar fixes + +Thu Sep 22 08:13:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tests/CallbackTest/Service.cpp: + * tests/CallbackTest/server.cpp: + + Fixed compile errors. + +Wed Sep 21 08:06:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tests/CallbackTest/Callback.{h,cpp}: + + Fixed compile errors. + +Tue Sep 20 17:23:37 2005 Arvind S. Krishna <arvindk@doc.dre.vanderbilt.edu> + + * tao/Connection_Handler.inl: + * tao/GIOP_Message_Base.cpp: + * tao/PortableServer/Servant_Base.cpp: + + Added hooks in the source file to enable aggressive + specialization of request processing in certain conditions. + +Tue Sep 20 21:18:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tests/IPV6/run_test.pl: + + Added a test. + +Tue Sep 20 15:13:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tests/CallbackTest/CallbackTest.mpc: + * tests/CallbackTest/Callback{.h .cpp}: + * tests/CallbackTest/Test.idl: + * tests/CallbackTest/Service{.h .cpp}: + * tests/CallbackTest/client.cpp: + * tests/CallbackTest/server.cpp: + * tests/CallbackTest/run_test.pl: + * tests/CallbackTest/run_test_ipv6.pl: + * tests/CallbackTest/run_test_mixed_ip.pl: + * tests/CallbackTest/README: + + Added new test. + +Tue Sep 20 08:39:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * orbsvcs/tests/Notify/Basic/run_test_ipv6.pl: + + Added IPV6 specific testscript. + +Tue Sep 20 08:32:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * orbsvcs/tests/IOR_MCast/ior_mcast_client_i.cpp: + + Added some traces to be able to see testresult. + + * orbsvcs/tests/IOR_MCast/run_test_ipv6.pl: + + Added IPV6 specific testscript. + +Tue Sep 20 08:26:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tests/BiDirectional/run_test_ipv6.pl: + + Added IPV6 specific testscript. + +Tue Sep 20 08:23:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tao/IIOP_Acceptor.cpp: + * tao/IIOP_Endpoint.cpp: + * tao/Invocation_Endpoint_Selectors.cpp: + + Improvements for IPv6 support. + +Mon Sep 19 20:46:14 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroupManager.cpp: + + Removed run-time assertions. They generally shouldn't be used + in infrastructure code. Favor returning and checking error + conditions and/or throwing exceptions instead. + +Mon Sep 19 16:14:09 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu> + + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp: Fixed the + initialization of the event_channel_ and typed_event_channel_ + data members. Thanks to Lukas Gruetzmacher + <gruetzmacher@ais-dresden.de> for reporting this and suggesting + the fix. + +Mon Sep 19 16:11:12 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/ast/ast_home.cpp: + + Added missing check for null before enqueueing a primary + key valuetype into the queue to be checked after parsing. + If there is no primary key specified, we don't want to + enqueue a 0, since the queue will then be non-empty but + have no usable value to dequeue. + +Mon Sep 19 14:50:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * tests/Bug_2234_Regression/server.cpp: + + Eliminate unused exception macros. + +Mon Sep 19 11:45:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * orbsvcs/examples/Notify/Federation/Agent/Agent.cpp: + + Corrected the correction due to non-standard MSVC name, + Thanks to Martin J.N. Corino for the correct interpretation. + +Mon Sep 19 10:15:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * orbsvcs/examples/Notify/Federation/Agent/Agent.cpp: + + Corrected typo at line 7 (#include "strstrea.h") + +Mon Sep 19 08:50:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * tests/Bug_2234_Regression/run_test.pl: + + Forced commit for chmod permissions. + +Mon Sep 19 08:00:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * tests/Bug_2234_Regression/server.cpp: + + Incorrect emulated exception call for init_orb. + +Fri Sep 16 15:12:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * test/IPV6/Hello.mpc: + + Removed and replaced by: + + * test/IPV6/IPV6_Hello.mpc: + + Because MPC can't work with identically named .mpc files + even in separate directories:-( + +Fri Sep 16 12:45:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * tests/Bug_2234_Regression/server.cpp: + + Emulated exception incorrect macro used line 681. + +Fri Sep 16 10:55:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * test/IPV6/Hello.mpc: + * test/IPV6/Hello{.h .cpp}: + * test/IPV6/client.cpp: + * test/IPV6/server.cpp: + * test/IPV6/Test.idl: + * test/IPV6/run_test.pl: + * test/IPV6/README: + + Added new IPV6 specific test. + +Fri Sep 16 08:53:55 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_ccm_pre_proc.cpp(lookup_cookie): + + Changed creation of scoped name to use the member + UTL_Identifier for the "Components" module name, + instead of creating a new identifier. + + * TAO_IDL/include/utl_err.h: + * TAO_IDL/util/utl_err.cpp: + + - Changed existing error enum value from EIDL_ILLEGAL_VALUETYPE + to the more informative EIDL_ILLEGAL_BOXED_TYPE, which is + what this enum value is used to express. + + - Added new error enum value EIDL_ILLEGAL_PRIMARY_KEY, to be + used in the check for illegal primary key described below. + + * TAO_IDL/fe/idl.yy: + * TAO_IDL/fe/y.tab.cpp: + + Changed usage of EIDL_ILLEGAL_VALUETYPE to + EIDL_ILLEGAL_BOXED_TYPE. + + * TAO_IDL/tao_idl.cpp: + * TAO_IDL/ast/ast_home.cpp: + * TAO_IDL/ast/ast_structure.cpp: + * TAO_IDL/ast/ast_type.cpp: + * TAO_IDL/ast/ast_union.cpp: + * TAO_IDL/ast/ast_valuetype.cpp: + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/include/ast_type.h: + * TAO_IDL/include/ast_union.h: + * TAO_IDL/include/ast_valuetype.h: + * TAO_IDL/include/idl_global.h: + * TAO_IDL/util/utl_global.cpp: + + Added check for illegal usage of a valuetype as a primary key. + The CCM spec puts several constraints on valuetypes that are + used as primary keys, and making sure these constaints are + satisfied requires checking the valuetype's inheritance + graph, as well as recursively checking its members. Valuetypes + used as primary keys are place in a list, and the list is + checked after all parsing has finished, so that we can be + sure all forward declared structs and unions have been + fully defined. + +Thu Sep 15 15:54:24 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Makefile.am: + + Regenerated. + + * tao/tao.mpc: + + Added WrongTransactionS.h to Header_Files. + +Thu Sep 15 15:25:06 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/CosNaming_Serv.mpc: + + Added Naming/nsconf.h to Header_Files. + +Thu Sep 15 14:04:28 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Request_Dispatcher.h + (dispatch): + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Request_Dispatcher.cpp + (dispatch): + + Removed unnecessary exception specification. It prevented user + exceptions from being propagated to the caller. Thanks to David + Carlton <david dot carlton at sun dot com> for reporting the + problem and to Johnny Willemsen for suggesting a fix. + +Thu Sep 15 12:42:34 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/Makefile.am: + + Regenerated. + +Thu Sep 15 14:16:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * tests/Bug_2234_Regression/server.cpp: + + Emulated exception incorrect macro used line 118/156. + +Wed Sep 14 10:34:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * tests/Bug_2234_Regression/server.cpp: + + Correct another minor fussy compiler gripe. + +Wed Sep 14 09:45:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * tests/Bug_2234_Regression/client.cpp: + * tests/Bug_2234_Regression/server.cpp: + + Correct minor fussy compiler gripes for some gcc platforms. + +Wed Sep 14 08:41:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * orbsvcs/examples/Notify/Federation/Agent/Agent.cpp: + + Fixed compile error. + +Tue Sep 13 11:43:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * examples/Advanced/ch_3/client.cpp: + * examples/Advanced/ch_3/server.cpp: + * orbsvcs/examples/Notify/Federation/Agent/Agent.cpp: + * tests/Bug_1639_Regression/struct_client.cpp: + + Fixed for environments defining ACE_USES_OLD_IOSTREAMS + (which unfortunately is the case for Windows x64 at the + moment due to shortcomings in the Platform SDK). + +Tue Sep 13 10:30:00 UTC 2005 Simon Massey <sma@prismtech.com> + + * tao/AnyTypeCode/Any.cpp: + + * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: + + * tests/Bug_2234_Regression/Bug_2234_Regression.mpc: + * tests/Bug_2234_Regression/Test.idl: + * tests/Bug_2234_Regression/client.cpp: + * tests/Bug_2234_Regression/run_test.pl: + * tests/Bug_2234_Regression/server.cpp: + + This fixes bug 2234. + The Portiable Interception call to arguments() attempts to create + a read-only copy of all arguments passed into the current method. + Unfortunatly during the call to receive_request() the "out" args + of variable length types have not yet been allocated by the server + and so are NULL pointers. A deep copy was being attempted which + de-referenced these NULLs causing a crash. Explicit NULL checks + are now performed for these types and a NULL pointer to the type + is placed into the arg list instead. + +Tue Sep 13 10:18:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tests/Portable_Interceptors/Bug_1559/run_test.pl: + * tests/Portable_Interceptors/Dynamic/run_test.pl: + * tests/Portable_Interceptors/Service_Context_Manipulation/run_test.pl: + * tests/RTCORBA/Persistent_IOR/run_test.pl: + + Removed '-ORBObjRefStyle url' switch because it causes problems with IPv6 + builds and is not essential to the tests. + + * tests/Hang_Shutdown/server.cpp: + * tests/Hang_Shutdown/client.cpp: + + Adjusted test timeouts because they were a little too tight for + Windows/IPv6 environment. + +Mon Sep 12 11:52:22 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerate. + +Mon Sep 12 11:34:13 2005 Simon McQueen <sm@prismtech.com> + + * tao/orb.idl: + + Had left fix commented out in Fri Sep 9 11:08:40 2005 Simon McQueen. + +Fri Sep 9 22:00:24 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/ast/ast_array.cpp: + * TAO_IDL/ast/ast_field.cpp: + * TAO_IDL/ast/ast_interface.cpp: + * TAO_IDL/ast/ast_sequence.cpp: + * TAO_IDL/ast/ast_structure.cpp: + * TAO_IDL/ast/ast_type.cpp: + * TAO_IDL/ast/ast_typedef.cpp: + * TAO_IDL/ast/ast_union.cpp: + * TAO_IDL/ast/ast_valuetype.cpp: + * TAO_IDL/include/ast_array.h: + * TAO_IDL/include/ast_field.h: + * TAO_IDL/include/ast_interface.h: + * TAO_IDL/include/ast_sequence.h: + * TAO_IDL/include/ast_structure.h: + * TAO_IDL/include/ast_type.h: + * TAO_IDL/include/ast_typedef.h: + * TAO_IDL/include/ast_union.h: + * TAO_IDL/include/ast_valuetype.h: + + - Added virtual legal_for_primary_key() method to AST_Type + plus overrides for derived node classes AST_Sruct, + AST_Union, AST_Array, AST_Sequence, AST_Typedef, + AST_Interface, and AST_Valuetype. The override in + AST_Valuetype is empty at this time, but when finished, + the method will be called on a valuetype when it is used + as a primary key of a component. The method will check + the various constraints put on valuetypes used as + primary keys by the CCM spec. It will, among other + things, be called recursively on the valuetype's members. + + - Made some accessor methods, such as base_type() and + field_type(), const. + +Fri Sep 9 11:08:40 2005 Simon McQueen <sm@prismtech.com> + + * tao/orb.idl: + + Add include of WrongTransaction.pidl. + + * tao/WrongTransaction.pidl: + + Update generation instructions. + + * tao/WrongTransactionS.h: + * tao/WrongTransactionS.inl: + + Add these new 'handcrafted' files. These changes fix + bug #1813. + + * tests/Bug_1813_Regression/Bug_1813_Regession.mpc: + * tests/Bug_1813_Regression/Test.idl: + * tests/Bug_1813_Regression/test.cpp: + + Regression test for the above. + +Fri Sep 9 10:28:11 2005 Simon McQueen <sm@prismtech.com> + + * tao/orb.idl: + + Add ValueFactory to CORBA module. Fixes bug #1812. + + * tests/Bug_1812_Regression/Bug_1812_Regession.mpc: + * tests/Bug_1812_Regression/Test.idl: + * tests/Bug_1812_Regression/test.cpp: + + Regression test for the above. + +Thu Sep 8 16:39:10 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * tao/tao.mpc: + + Added AnyTypeCode_Adapter.h and Any_Insert_Policy_T.h + to list of Header_Files. + +Wed Sep 7 15:54:08 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + +Wed Sep 7 11:47:35 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * tao/IIOP_Acceptor.cpp: + + Marker modified for the specializations to work properly. + +Tue Sep 6 15:54:57 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/Bug_2222_Regression/test.cpp: + + Fixed unused argument warnings. + + * tests/DynAny_Test/test_dynany.cpp: + * tests/DynAny_Test/test_dynunion.cpp: + + More include directive reordering to address g++ 3.4 order of + parsing template related errors. + +Tue Sep 6 15:40:17 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp (gen_stub_src_includes): + + Reordered include directives to address CORBA::AbstractBase + order of parsing related template compile-time errors with g++ + 3.4 or better and some HP compilers. + +Tue Sep 6 17:26:39 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * tao/Endpoint.h + + Accidentally committed a file with the instrumented + code. Reverted this and updated the markers. + +Tue Sep 6 16:12:04 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * tao/Connection_Handler.cpp: + * tao/IIOP_Acceptor.cpp: + * tao/IIOP_Connector.h: + * tao/IIOP_Endpoint.h: + * tao/IIOP_Endpoint.cpp: + * tao/IIOP_Profile.h: + * tao/Transport.h: + * tao/Transport_Acceptor.h: + + The markers in these files accidentally includes the destructor + which conflicts with the base class. + +Tue Sep 6 13:29:04 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * tao/IIOP_Endpoint.h: + * tao/IIOP_Profile.h: + * tao/Transport_Acceptor.h: + * tao/Profile.h: + + Updated marker names as there was a mismatch in the code based + and the specialization files. + +Tue Sep 6 10:33:09 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/examples/ORT/Gateway_i.h: + + Added "AnyTypeCode_methods.h" include directive as a temporary + work around for g++ 3.4 or better and some HP compiler order of + parsing template related issues. + +Tue Sep 6 11:32:31 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * tao/Connection_Handler.h: + * tao/Connection_Handler.cpp: + * tao/IIOP_Connection_Handler.h: + * tao/IIOP_Connection_Handler.cpp: + * tao/Transport.h: + * tao/Transport.cpp: + * tao/IIOP_Transport.h: + * tao/IIOP_Transport.cpp: + * tao/Endpoint.h: + * tao/IIOP_Endpoint.cpp: + * tao/IIOP_Endpoint.h: + * tao/Profile.h: + * tao/IIOP_Profile.h: + * tao/Profile.cpp: + * tao/IIOP_Profile.h: + * tao/Transport_Acceptor.h: + * tao/Traport_Acceptor.cpp: + * tao/IIOP_Acceptor.h: + * tao/IIOP_Connector.h: + * tao/IIOP_Connector.cpp: + * tao/Transport_Connector.h: + * tao/Transport_Connector.cpp: + + Added markers within the Pluggable protocols frameworks for + specializing the implementation with a concrete protocol + implementation, e.g., iiop. + +Mon Sep 5 12:11:28 2005 Simon McQueen <sm@prismtech.com> + + * TAO_IDL/be/be_visitor_typedef/typedef_ci.cpp: + + Only omit generating the copy, dup, alloc & free operations + if the typedef is imported. This fixes bugzilla #2222. + + * tests/Bug_2222_Regression/Bug_2222_Regression.mpc: + * tests/Bug_2222_Regression/TestCase.idl: + * tests/Bug_2222_Regression/TestType.idl: + * tests/Bug_2222_Regression/test.cpp: + + Regression test for the above. + +Fri Sep 02 13:21:30 2005 Gary Maxey <gary.maxey@hp.com> + + * performance-tests/Callback/Callback_i.cpp: + * performance-tests/Latency/DII/client.cpp: + * performance-tests/Latency/Deferred/client.cpp: + * performance-tests/Latency/Thread_Per_Connection/Client_Task.cpp: + * performance-tests/Latency/Thread_Pool/Client_Task.cpp: + * performance-tests/POA/Demux/demux_test_client.cpp: + * performance-tests/Sequence_Latency/DII/client.cpp: + * performance-tests/Sequence_Latency/Deferred/client.cpp: + * performance-tests/Sequence_Latency/Thread_Pool/Client_Task.cpp: + Used ACE_hrtime_t and ACE_HRTIME_TO_U64 macro for platform + independence. + +Fri Sep 2 12:51:23 2005 Ciju John <john_c@ociweb.com> + + * tests/Big_Request_Muxing/Payload_Receiver.h: + * tests/Big_Request_Muxing/Payload_Receiver.cpp + * tests/Big_Request_Muxing/run_test.pl + * tests/Big_Request_Muxing/Big_Request_Muxing.mpc + * tests/Big_Request_Muxing/Client_Task.cpp + + Added AnyTypeCode includes. Removed msvc checks. VxWorks fixes. + +Fri Sep 2 11:05:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tao/MCAST_Parser.cpp: + Small change concerning IPv6 multicast support. + +Fri Sep 2 09:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Array_VarOut_T.inl: + Reverted a C++ cast back to a c-style cast, vc6 can't handle + the C++ cast. Added a remark that we can use a C++ cast when + vc6 has been dropped + +Thu Sep 1 16:56:12 2005 Ciju John <john_c@ociweb.com> + + * tests/Big_Request_Muxing/* + Brought in OCI modified tests. + + Wed Jul 13 09:57:17 2005 Chad Elliott <elliott_c@ociweb.com> + + * tests/Big_Request_Muxing/run_test.pl: + + Added a separator between tests to aid in debugging. + + Tue Jul 5 07:31:33 2005 Chad Elliott <elliott_c@ociweb.com> + + * tests/Big_Request_Muxing/server.cpp: + + Added includes for inline=0 builds. + + Wed Jun 29 14:35:36 2005 Justin Michel <michel_j@ociweb.com> + + * tests/Big_Request_Muxing/client.cpp: + * tests/Big_Request_Muxing/run_test.pl: + * tests/Big_Request_Muxing/server.cpp: + + This test was destroying the orb before the orb was + finished sending requests. The test still fails intermittently, + because sometimes events are lost. I tried changing SYNC_NONE to + SYNC_WITH_TRANSPORT, but this didn't help. This may be a real + TAO bug. I changed the run_test.pl to run more iterations so + that the bug should happen more often. + + Tue Jun 28 08:46:29 2005 Justin Michel <michel_j@ociweb.com> + + * tests/Big_Request_Muxing/Client_Task.cpp: + * tests/Big_Request_Muxing/Payload_Receiver.h: + * tests/Big_Request_Muxing/Payload_Receiver.cpp: + * tests/Big_Request_Muxing/client.cpp: + * tests/Big_Request_Muxing/run_test.pl: + * tests/Big_Request_Muxing/server.cpp: + + Changed the way the test works so that it prints an + error if too many messages are received. Added a -e parameter + when starting the server in the run_test.pl to expect the + correct number of events when running multiple clients. Added + additional debugging output. Changed the default number of + events from 12000 to 1200 to make the test run faster. + + Mon Jun 27 12:15:31 2005 Chad Elliott <elliott_c@ociweb.com> + + * tests/Big_Request_Muxing/client.cpp: + + This test was changed a while back to decrease the + amount of time it takes to run. However, a time value of 2 + miniutes was overlooked (and was causing problems during test + shutdown). I have changed it to be 10 seconds. + + Sat Jun 25 14:30:34 2005 Justin Michel <michel_j@ociweb.com> + + * tests/Big_Request_Muxing/Client_Task.h: + * tests/Big_Request_Muxing/Client_Task.cpp: + * tests/Big_Request_Muxing/Payload_Receiver.h: + * tests/Big_Request_Muxing/Payload_Receiver.cpp: + * tests/Big_Request_Muxing/Test.idl: + * tests/Big_Request_Muxing/client.cpp: + * tests/Big_Request_Muxing/run_test.pl: + * tests/Big_Request_Muxing/server.cpp: + + Changed the processes in this test to actually wait for + the test to complete instead of simply running for two minutes. + +Thu Sep 1 19:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/Event_Service/Event_Service.{h,cpp}: + Restored -n to the original behaviour, it is the name that will + be used to register to the naming service. With the new option + -x we can indicate that the event service shouldn't register + with the naming service. This is just as the other orbsvcs, + thanks to JT for indicating this. + + * docs/ec_options.html: + Updated + +Thu Sep 1 16:54:53 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_interface_strategy.cpp: + + Fixed typo in comment. + + * TAO_IDL/be/be_interface.cpp (gen_stub_ctor): + + Fixed order of generated base class stub constructor calls + when the interface has both concrete and abstract parents. + + * TAO_IDL/be/be_visitor_amh_pre_proc.cpp (visit_interface): + * TAO_IDL/be/be_visitor_interface/interface_sh.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + + Disabled all AMH-related code generation for interfaces that + have an abstract ancestor. The AMH_-prefixed + classes have an inheritance structure that reflects that of + the corresponding IDL interfaces. This poses a problem + when the interface has an abstract ancestor, since no skeleton + code is generated for abstract interfaces. + + * tests/IDL_Test/fwd.idl: + + Just after an interface with a concrete and an abstract parent, + added another interface with the same parents in reverse order. + This change is to test the order of generated base class stub + constructor calls in the stub inline file. + +Thu Sep 01 08:30:31 2005 Gary Maxey <gary.maxey@hp.com> + + * TAO_IDL/be/be_visitor_typecode/union_typecode.cpp: + Add extra underscore in generated names to help reduce conflicts + with user supplied names. + +Thu Sep 1 14:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/Event_Service/Event_Service.{h,cpp}: + Made it possible to just pass -n to indicate that no service + name should be used. At that moment the Event_Service will not + register itself with the naming service. If also the default + scheduling service option (none) is used, then the naming + service is not used at all. This is usefull for systems where + the Event_Service is with the option to write the IOR to file, + then the user doesn't need the naming service. + + * docs/ec_options.html: + Documentated the commandline options of the Event_Service executable + +Thu Sep 1 10:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/MCAST_Parser.cpp: + * tao/params.cpp: + * tao/Transport_Connector.cpp: + Fixed 64bit conversion warnings + +Thu Sep 1 09:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/examples/FaultTolerance/RolyPoly/ReplicaController.{h,cpp}: + Fixed gcc4 compile errors + +Thu Sep 1 08:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_interface.cpp: + Fixed variable not used warning + +Thu Sep 1 07:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/default_resource.cpp: + Use the new ACE_REMOVE_SERVICE_DIRECTIVE macro to remove the + TAO_CodeSet. Thanks to Lothar Werzinger <lothar at xcerla dot com> + for reporting this. This fixes bugzilla bug 2227 + +Wed Aug 31 21:49:41 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/IDL_Test/fwd.idl: + + Added simple test case to reproduce the situation described + below in + + Wed Aug 31 21:19:41 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>. + +Wed Aug 31 21:19:41 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: + + Removed some unnecessary code. + + * TAO_IDL/be/be_interface.cpp (redefine): + + Changed the method to handle the use case where an interface + with one or more abstract parents has been forward declared, + then fully defined. The IDL compiler maintains an internal + queue of interfaces with mixed (abstract and concrete) + parentage, in order to generate overloads of CORBA::release() + and CORBA::is_nil(). The process of full definition after + forward declaration ends up deleting the node that has + been put in the queue (just after redefine() returns), so + we now update the queue inside the redefine() method. Thanks + to Paul Friberg <p.friberg@isti.com> for providing the + sample IDL that uncovered the bug. + +Wed Aug 31 18:24:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * docs/Options.html: + Corrected description of option ORBUseSharedProfiles which in + reality is 'ORBUseSharedProfile' (without the 's') and by + is *disabled* instead of enabled! + +Wed Aug 31 11:53:51 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tests/Any/Recursive/NonRecursive.idl: + * tests/Any/Recursive/RecursiveHello.mpc: + + New IDL containing non-recursive structures that triggered the + TAO_IDL recursive type false positive problem described in bug + 2225. This IDL will be used to prevent such problems from being + reintroduced. Thanks to Bruce MacDonald + <brucemac at netcomuk dot co dot uk> for supplying this IDL. + +Wed Aug 31 10:53:06 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * TAO_IDL/be/be_visitor_typecode/struct_typecode.cpp: + * TAO_IDL/be/be_visitor_typecode/union_typecode.cpp: + * TAO_IDL/be/be_visitor_typecode/value_typecode.cpp: + + Fixed false positive recursion detection by using Jeff's existing + type-specific in_recursion() method. Thanks to Jeff for + explaining how to use that method. [Bug 2225] + +Wed Aug 31 13:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/TypeCode.h: + Export the unaliased_kind method + +Wed Aug 31 13:12:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/BooleanSeqC.{h,cpp}: + * tao/CharSeqC.{h,cpp}: + * tao/DoubleSeqC.{h,cpp}: + * tao/FloatSeqC.{h,cpp}: + * tao/AnyTypeCode/BooleanSeqA.{h,cpp}: + * tao/AnyTypeCode/CharSeqA.{h,cpp}: + * tao/AnyTypeCode/DoubleSeqA.{h,cpp}: + * tao/AnyTypeCode/FloatSeqA.{h,cpp}: + Regenerated + +Wed Aug 31 12:33:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/TypeCode.{h,cpp,inl}: + Moved unaliased_kind to the cpp file, it uses a TypeCode_var + which requires again the TypeCode_methods which causes issues + with GCC4 + +Wed Aug 31 12:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/corba.h: + Removed include of AnyTypeCode/TypeCode.h + + * tao/Exception.h: + Removed _tc_exception_type + + * tao/Exception_Data.h: + Added forward declaration CORBA::TypeCode_ptr + + * tao/Profile.h: + Removed not needed forward declarations + +Wed Aug 31 11:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/IFR_Service/be_global.h: + * tests/Portable_Interceptors/Request_Interceptor_Flow/Client_Request_Interceptor.h: + * tests/Portable_Interceptors/Request_Interceptor_Flow/Request_Interceptor.h: + * tests/Portable_Interceptors/Request_Interceptor_Flow/Server_Request_Interceptor.h: + Fixed GCC4 error + + * tao/TypeCode.cpp: + Removed this file, it shouldn't be in the archive anymore + + * tao/Environment.i (_nil): + Use a static cast instead of a c-style cast + + * tao/Object.{cpp,i} (is_nil): + Use true/false instead of 1/0 + + * tao/AnyTypeCode/TC_Constants_Forward.h: + Added forward declaration of TypeCode + +Wed Aug 31 11:21:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/IFR_Service/IFR_Service.h: + Fixed GCC4 error + + * tao/ULongSeq.pidl: + Updated regeneration instructions + + * tao/ULongSeqC.{h,cpp}: + * tao/AnyTypeCode/ULongSeqA.{h,cpp}: + Regenerated without patching. + +Wed Aug 31 10:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/WStringSeq.pidl: + * tao/WCharSeq.pidl: + Updated regeneration instructions + + * tao/WStringSeqC.{h,cpp}: + * tao/WCharSeqC.{h,cpp}: + * tao/AnyTypeCode/WStringSeqA.{h,cpp}: + * tao/AnyTypeCode/WCharSeqA.{h,cpp}: + Regenerated without patching. + +Wed Aug 31 10:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/Notify_Service/Notify_Server.cpp + * orbsvcs/Notify_Service/Notify_Service.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_TypedConsumerAdmin.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_TypedSupplierAdmin.cpp + * orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.cpp + * orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp + * orbsvcs/tests/EC_Multiple/EC_Multiple.cpp + * orbsvcs/tests/Notify/Driver/main.cpp + * orbsvcs/tests/Time/Client_i.cpp + * tao/AnyTypeCode/append.cpp + * tao/DynamicAny/DynStruct_i.cpp + * tao/DynamicAny/DynUnion_i.cpp + * tao/PI/ClientRequestInterceptor_Adapter_Impl.cpp + * tao/PortableServer/Default_Servant_Dispatcher.cpp + * tao/PortableServer/LifespanStrategyPersistent.cpp + * tao/PortableServer/ServantRetentionStrategyRetain.cpp + * tao/RTCORBA/RT_Endpoint_Utils.cpp + * tao/RTCORBA/RT_Protocols_Hooks.cpp + * tao/TypeCodeFactory/TypeCodeFactory_i.cpp + * tests/Exposed_Policies/Policy_Verifier.cpp + * tests/MProfile_Connection_Timeout/client.cpp + * tests/NestedUpcall/MT_Client_Test/server.cpp + * tests/NestedUpcall/Triangle_Test/server_B.cpp + * tests/ORT/ServerRequestInterceptor.cpp + * tests/Policies/Manipulation.cpp + * tests/Portable_Interceptors/Benchmark/client.cpp + Fixed emulated exception fuzz errors + +Wed Aug 31 09:27:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.cpp: + Replaced deprecated ACE cast macro + +Wed Aug 31 09:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IORInterceptor/IORInterceptor_Adapter_Impl.h: + Reordered includes to fix vc71 link warnings + +Tue Aug 30 17:05:11 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + +Tue Aug 30 16:30:30 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Notify_Service/Notify_Service.cpp (shutdown): + + Removed code that abuses ._retn() to release orb, poa, + naming context, etc. This may have been done because + the driver class was previously a file-scope static, + but now that it's allocated on the stack within main() + we can let the destructor release these variables. + +Tue Aug 30 16:09:53 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Notify_Service/Notify_Server.cpp: + + Removed extraneous ACE_DEBUG(). + +Tue Aug 30 15:56:49 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Notify_Service/Notify_Server.cpp: + + Changed to add support for clean shutdown with SIGINT/SIGTERM + using the Service_Shutdown class from the Svc_Utils library. + +Tue Aug 30 12:42:18 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.cpp: + + Removed inclusion of .i files to complete my earlier commit. + +Tue Aug 30 11:22:51 2005 Steve Totten <totten_s@ociweb.com> + + * tests/IDL_Test/IDL_Test.mpc: + * tests/IDL_Test/array_only.idl: + Added a test for the IDL compiler to make sure code generated for + an IDL file that contains nothing but an array definition will + compile correctly. Thanks to Yevgen Galchenko for supplying the + test case. + +Tue Aug 30 10:03:24 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching_Task.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.h: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxyConsumer.h: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.h: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.cpp: + + Fixed errors in Fuzz build and use of deprecated ACE cast macros + + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.i: + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.i: + + Removed these b/c they're empty and fix a fuzz build. + +Tue Aug 30 14:43:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * docs/Options.html: + Added docu for new IPv6 specific options (ORBPreferIPV6Interfaces and + ORBConnectIPV6Only). + +Tue Aug 30 14:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp + * examples/Kokyu_dsrt_schedulers/FP_Scheduler.cpp + * examples/Kokyu_dsrt_schedulers/MIF_Scheduler.cpp + * examples/Kokyu_dsrt_schedulers/MUF_Scheduler.cpp + * examples/RTCORBA/Activity/Activity.cpp + * examples/RTCORBA/Activity/Task_Stats.cpp + * orbsvcs/Concurrency_Service/Concurrency_Service.cpp + * orbsvcs/Event_Service/Event_Service.cpp + * orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp + * orbsvcs/FTRT_Event_Service/Factory_Service/FTRTEC_Factory_Service.cpp + * orbsvcs/FTRT_Event_Service/Gateway_Service/FTRTEC_Gateway_Service.cpp + * orbsvcs/LifeCycle_Service/LifeCycle_Service.cpp + * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.cpp + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Service.cpp + * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Service.cpp + * orbsvcs/Naming_Service/Naming_Server.cpp + * orbsvcs/Naming_Service/Naming_Service.cpp + * orbsvcs/Notify_Service/Notify_Server.cpp + * orbsvcs/Notify_Service/Notify_Service.cpp + * orbsvcs/Scheduling_Service/Scheduling_Service.cpp + * orbsvcs/Time_Service/Clerk_i.cpp + * orbsvcs/Time_Service/Server_i.cpp + * orbsvcs/Trading_Service/Trading_Service.cpp + * orbsvcs/examples/Notify/Lanes/Consumer_Client.cpp + * orbsvcs/examples/Notify/Lanes/Supplier_Client.cpp + * orbsvcs/examples/Notify/ThreadPool/Consumer_Client.cpp + * orbsvcs/examples/Notify/ThreadPool/Supplier_Client.cpp + * orbsvcs/orbsvcs/Scheduler_Factory.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.cpp + * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp + * orbsvcs/orbsvcs/Event/EC_Gateway_IIOP_Factory.cpp + * orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp + * orbsvcs/orbsvcs/Event/EC_Sched_Factory.cpp + * orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.cpp + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.cpp + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.cpp + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Acceptor_Impl.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Completion_Handler.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connection_Handler.cpp + * orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.cpp + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp + * orbsvcs/orbsvcs/Naming/Flat_File_Persistence.cpp + * orbsvcs/orbsvcs/Naming/Naming_Server.cpp + * orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp + * orbsvcs/orbsvcs/Sched/DynSched.cpp + * orbsvcs/orbsvcs/Sched/Scheduler.cpp + * orbsvcs/orbsvcs/Trader/Trader.cpp + * orbsvcs/orbsvcs/Trader/Trading_Loader.cpp + * orbsvcs/tests/AVStreams/Simple_Two_Stage/Receiver_Stats.cpp + * orbsvcs/tests/FtRtEvent/consumer.cpp + * orbsvcs/tests/FtRtEvent/supplier.cpp + * orbsvcs/tests/Notify/Destroy/main.cpp + * orbsvcs/tests/Notify/Driver/main.cpp + * orbsvcs/tests/Notify/lib/Activation_Manager.cpp + * orbsvcs/tests/Notify/lib/Command.cpp + * orbsvcs/tests/Notify/lib/Driver.cpp + * orbsvcs/tests/Redundant_Naming/client.cpp + * tao/CORBALOC_Parser.cpp + * tao/IIOP_Connection_Handler.cpp + * tao/IIOP_Profile.cpp + * tao/MCAST_Parser.cpp + * tao/ORB_Core.cpp + * tao/default_client.cpp + * tests/MProfile_Connection_Timeout/client.cpp + Replaced ACE_LIB_TEXT with ACE_TEXT. ACE_LIB_TEXT is only for in the + ACE lib itself. + +Tue Aug 30 14:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h: + Fixed export macro + +Tue Aug 30 06:42:46 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Server.cpp: + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Server.cpp: + * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Server.cpp: + + Fix emulated exception builds. + +Tue Aug 30 13:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Param_Test/server.cpp: + * tests/Param_Test/except.cpp: + * tests/Faults/test_i.cpp: + * tests/Faults/ping.cpp: + * tests/AMI_Timeouts/timeout_client.cpp: + * tests/InterOp-Naming/Server_i.cpp: + * tests/Bug_1476_Regression/Client_Task.cpp: + * tests/Bug_1482_Regression/Reply_Handler.cpp: + * tests/Big_Oneways/Session.cpp: + Fixed emulated exception fuzz errors + +Tue Aug 30 13:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/PolicyS.cpp: + Regenerated this file and merged some of the changes caused by that, + especially the include order + +Tue Aug 30 12:35:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/util/utl_global.cpp: + Fixed hasspace implementation, if an empty string was passed the + function would loop forever. Also a space as second last character + in the string wasn't detected + +Tue Aug 30 10:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/Time_Service/Server_i.cpp: + Fixed compilation problem with emulated exceptions + +Tue Aug 30 09:12:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * tao/CORBALOC_Parser.cpp: + * IIOP_Acceptor.cpp: + * IIOP_Connection_Handler.cpp: + * IIOP_Connector.cpp: + * IIOP_Endpoint{.h .cpp. i}: + * IIOP_Profile.cpp: + * IIOP_Transport.cpp: + * Invocation_Endpoint_Selectors.cpp: + * MCAST_Parser.cpp: + * orbconf.h: + * ORB_Core.cpp: + * params{ .h .cpp}: + * orbsvcs/orbsvcs/IOR_Multicast.cpp: + + Added IPv6 support for TAO. + +Tue Aug 30 06:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h: + Fixed pragma once is obsolete warning + +Tue Aug 30 01:20:32 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp (queue_full_action): + + Fixed "'*/' found outside of comment" warning. + +Mon Aug 29 18:39:29 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * orbsvcs/orbsvcs/AV/AV_Core.h: + * orbsvcs/orbsvcs/AV/Policy.cpp:: + * orbsvcs/orbsvcs/AV/Protocol_Factory.h:: + * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.h:: + * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.h:: + * orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.h:: + * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h:: + * orbsvcs/orbsvcs/CosEvent/CEC_Pulling_Strategy.h:: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp:: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h:: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.cpp:: + * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp:: + * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.h:: + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h:: + * orbsvcs/orbsvcs/Event/ECG_Reactive_ConsumerEC_Control.cpp:: + * orbsvcs/orbsvcs/Event/ECG_Reconnect_ConsumerEC_Control.cpp:: + * orbsvcs/orbsvcs/Event/EC_RTCORBA_Factory.cpp:: + * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp: + * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp: + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerRequest_Interceptor.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.h: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.cpp: + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_ClientORBInitializer.h: + * orbsvcs/orbsvcs/LoadBalancing/LB_MemberLocator.cpp: + * orbsvcs/orbsvcs/Log/LogActivator.h: + * orbsvcs/orbsvcs/Log/Log_Persistence_Strategy.h: + * orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.h: + * orbsvcs/orbsvcs/HTIOP/htiop_endpointsC.cpp: + * orbsvcs/orbsvcs/Notify/Builder.h: + * orbsvcs/orbsvcs/Notify/POA_Helper.h: + * orbsvcs/orbsvcs/Notify/Properties.h: + * orbsvcs/orbsvcs/Notify/Timer.h: + * orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp: + * orbsvcs/orbsvcs/PortableGroup/GOA.cpp: + * orbsvcs/orbsvcs/PortableGroup/GOA.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group_Manipulator.h: + * orbsvcs/orbsvcs/PortableGroup/PG_Servant_Dispatcher.cpp: + * orbsvcs/orbsvcs/PortableGroup/PortableGroup_Request_Dispatcher.cpp: + * orbsvcs/orbsvcs/PortableGroup/Portable_Group_Map.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Acceptor.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Acceptor.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connector.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connector.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Profile.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp: + * orbsvcs/orbsvcs/SSLIOP/ssl_endpointsC.cpp: + * orbsvcs/orbsvcs/Trader/Trading_Loader.h: + + Reordered include directives to make sure all necessary + non-dependent names are parsed before the templates that use + them. Addresses g++ 3.4.x or better compile-time errors. + +Mon Aug 29 18:45:49 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * tao/Wait_On_Read.cpp: + * tao/Wait_Strategy.cpp: + + Added makers that aid in specializing the wait strategy + implementation in TAO. + +Mon Aug 29 14:08:42 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * tao/GIOP_Message_Base.h: + * tao/Strategies/UIOP_Transport.cpp: + * tao/Strategies/DIOP_Transport.cpp: + * tao/Strategies/SHMIOP_Transport.cpp: + + Added markers that aid in specializing TAO's pluggable messaging + implementation with either GIOP or GIOP_Lite when the type of + messaging object is known a priori. + +Mon Aug 29 12:08:16 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Server.cpp: + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Server.cpp: + * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Server.cpp: + + Changed to clarify error message output when service + initialization fails. + +Mon Aug 29 09:03:55 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * tao/default_resource.cpp: + * tao/Strategies/advanced_resource.cpp: + + Added markers within the code to specialize TAO components with + concrete implementations. This commit relates to the commit on + Sun Aug 28 14:25:07 2005 Arvind S. Krishna + <arvindk@dre.vanderbilt.edu> on specializing middleware + components. The motivation here is added for sake of clarity. + + As a part of the Feature Oriented Customizer (FOCUS) tool being + developed in my research, we are trying to specialize framework + implementation and strategies within middleware with concrete + counterparts when their implementation/type is known a priori. + FOCUS provides an XML based transformation engine, where the + specialization transformations are captured in XML file and a + weaver specializes the code. + + To help in this transformation process, this commit adds markers + within the source code. These markers are added as special + comments. For example, //@@ + REACTOR_SPL_INCLUDE_FORWARD_DECL_ADD_HOOK represents a hook + where forward declarations and include files are added by the + weaver. As these markers are comments therefore should not + affect normal applications in *any* manner. Additionally, + applications that use multiple reactor implementations not be + affected/do not need any change. Currently, these + specializations are targeted for TAO middleware, where + applications know the target reactor a priori and want to + leverage the specialization to improve performance. + +Mon Aug 29 13:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/Time_Service/Server_i.cpp: + Fixed emulated exception fuzz errors + +Mon Aug 29 13:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/LoadBalancer/LoadManager.cpp: + Fixed emulated exception fuzz errors + +Mon Aug 29 13:35:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/default_client.cpp: + Corrected argument initialisation order to silence GNU warnings + +Sun Aug 28 13:36:19 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + + * tao/orbconf.h: + + Updated the TAO_NULL_LOCK_REACTOR typedef to conform to the + following Reactor change: Fri Aug 26 18:01:31 2005 Steve Huston + <shuston@riverace.com>. In particular, updated + ACE_Select_Reactor_Token_T to ACE_Reactor_Token_T in the typedef + for ACE_Select_Reactor. + +Sat Aug 27 13:32:55 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/driver/drv_args.cpp: + * TAO_IDL/include/idl_global.h: + * TAO_IDL/util/utl_global.cpp: + + Fixed the command line parsing to preserve the literal + quotes if they are used in an include path that has a space, + so the path is passed to the preprocessor with the literal + quotes following '-I'. Since the string is also added to + the IDL compiler's list of include paths this way, the + literal quotes must also be stripped off when using the + include path to form a full path for validation of + included files. This fix closes [BUGID:2219]. Thanks to + Dorian Hileaga <hdorianh@hotmail.com> for reporting the + problem. + +Sat Aug 27 11:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/ImplRepo_Service/Forwarder.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.cpp + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp + * orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp + * orbsvcs/orbsvcs/Event/EC_RTCORBA_Factory.cpp + Fixed emulated exception errors + +Sat Aug 27 10:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB_Core.cpp: + Added missing semi colon + +Fri Aug 26 23:48:25 2005 Balachandran Natarajan <bala@dre.vanderbilt.edu> + + Fix for bug + + http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2224 + + * tao/Client_Strategy_Factory.cpp: + * tao/Client_Strategy_Factory.h: + * tao/default_client.cpp: + * tao/default_client.h: + + New strategy ORBConnectionHandlerCleanup . + + * tao/Connection_Handler.cpp: + + Use the id for deregistration instead of the handle. + + * tao/Transport_Cache_Manager.cpp: + * tao/Wait_On_Read.cpp: + + Do the registration and deregistration. One could possibly think + of doing a suspend and resume instead of + registration/deregistration. Our reactor interfaces do not + provide a way to add a handler in a suspended mode. Doing a + registration and then calling suspend () could provide a window + of time where a thread could be dispatched. Hence the decision to + use registration/deregistration combo. + +Fri Aug 26 14:07:57 2005 Chris Cleeland <cleeland_c@ociweb.com> + + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp: + + Fix the "export" class used in the ACE_FACTORY_DEFINE for the + TAO_EC_Simple_Queue_Full_Action. Hopefully this fixes the + internal compiler error on mingw compilers. + + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxyConsumer.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.cpp: + + Fix problems for no-exception builds. + +Fri Aug 26 18:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/DynamicInterface/Server_Request.cpp: + Fixed fuzz error + +Fri Aug 26 18:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/CORBALOC_Parser.cpp: + * tao/ORB_Core.cpp: + * tao/Messaging/Asynch_Invocation.cpp: + * tao/PortableServer/Root_POA.cpp: + Fixed fuzz errors + +Fri Aug 26 11:42:29 2005 Phil Mesnier <mesnier_p@ociweb.com> + + * tao/Codeset/Codeset_Manager_i.cpp: + The codeset manager was doing the wrong thing when no codeset + information was available. The "default" codeset should be used + in that case, not the "fallback" codeset, which is only to be + used when codeset information is available, but no other codeset + will do. + + * tao/Codeset/UTF8_Latin1_Translator.cpp: + This translator was not correctly appending the NUL to the end + of outbound strings. + +Fri Aug 26 11:33:07 2005 Justin Michel <michel_j@ociweb.com> + + * tao/AnyTypeCode/Any_Unknown_IDL_Type.h: + * tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp: + + * tao/CDR.h: + * tao/CDR.i: + * tao/LocateRequest_Invocation.cpp: + * tao/Synch_Invocation.cpp: + * tao/orbconf.h: + + Add a new compile-time setting to TAO that controls whether output + CDRs are reset() after a request is sent. Enabling this feature greatly + reduces memory usage in some situations such as event services that + occasionally send large messages. However, it also currently exposes + (or introduces) a multi-threading bug introducing deadlocks or infinite + loops. One (of several) test that can show the problem is + TAO/orbsvcs/tests/Notify/Basic/run_test.pl notify.mt.conf. + + Add a new constructor for input CDR that allows specifying a ACE_Lock* which + will be used to protect the ACE_Data_Block used in the CDR. This will be + used by the Any impl above. The current implementation uses a global mutex + to protect all instances, because the internals of the Any impl will + be copied around, and there's no way to give ownership of the lock to the + actual ACE_Data_Block that uses it. + +Fri Aug 26 06:33:04 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Logging_Service/Basic_Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/Event_Logging_Service/Makefile.am: + + Regenerated. + + * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.cpp: + * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.h: + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Service.cpp: + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Service.h: + * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Service.cpp: + * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Service.h: + + Changed to add support for the thread pool concurrency model. A + new "-t" command line parameter is used to specify the number of + threads in the pool. + + * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Server.cpp: + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Server.cpp: + * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Server.cpp: + + Changed to add support for clean shutdown with SIGINT/SIGTERM + using the Service_Shutdown class from the Svc_Utils library. + + * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Server.cpp: + * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.cpp: + * orbsvcs/Logging_Service/Basic_Logging_Service/Basic_Logging_Service.h: + + Split main() out into new file Basic_Logging_Server.cpp. + + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Server.cpp: + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Service.cpp: + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Service.h: + + Split main() out into new file Event_Logging_Server.cpp. + +Fri Aug 26 13:45:10 2005 Simon McQueen <sm@prismtech.com> + + * tests/Portable_Interceptors/PolicyFactory/server.cpp: + * tests/OBV/Supports/Supports_Test_impl.cpp: + * tests/OBV/Supports/client.cpp: + * tests/Big_Twoways/Session.cpp: + * tests/NestedUpcall/Triangle_Test/server_B.cpp: + * tests/NestedUpcall/MT_Client_Test/server.cpp: + * tests/Bug_1551_Regression/Reply_Handler.cpp: + * tests/InterOp-Naming/Server_i.cpp: + + Chipping away at the fuzz errors. + +Fri Aug 26 13:17:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Acceptor_Registry.cpp: + * tao/default_server.h: + * tao/PortableServer/PortableServer_WFunctions.cpp: + * tao/Strategies/DIOP_Acceptor.cpp: + Fixed 64bit conversion warnings + +Fri Aug 26 12:30:47 2005 Simon McQueen <sm@prismtech.com> + + * tao/AnyTypeCode.mpc: + + Removed ServicesA.cpp from unconditional compilation list. + ServicesC.cpp does not get built in min corba builds. + + * tao/extra_anytypecode.mpb: + + Create feature template to include ServicesA.cpp only if not + a min corba build. + +Fri Aug 26 10:18:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB_Core.cpp: + Removed handling of ORBGlobalCollocation, it is deprecated for some + time. Also removed handling of ORBCollocation==YES, this is now + ORBCollocation==global. + +Fri Aug 26 09:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp + * TAO_IDL/be/be_visitor_exception/exception_ch.cpp + * TAO_IDL/be/be_visitor_exception/exception_cs.cpp + * TAO_IDL/be/be_visitor_exception/exception_ctor.cpp + * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp + * TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp + * TAO_IDL/be/be_visitor_operation/exceptlist_ss.cpp + * TAO_IDL/include/utl_err.h + * TAO_IDL/util/utl_err.cpp + * docs/compiler.html + When the -St option is used to suppress typecodes, we now + also suppress the type codes of user exceptions. There is no + requirement for this from the orb, the only functionality the + user looses is the ability to retrieve which exceptions an + operation throws using interceptors. + + * tao/Adapter_Factory.cpp + * tao/BiDir_Adapter.cpp + * tao/CORBALOC_Parser.cpp + * tao/Cleanup_Func_Registry.cpp + * tao/DLL_Parser.cpp + * tao/Endpoint_Selector_Factory.cpp + * tao/Environment.cpp + * tao/Exclusive_TMS.cpp + * tao/FILE_Parser.cpp + * tao/IFR_Client_Adapter.cpp + * tao/IOR_Parser.cpp + * tao/LF_Follower.cpp + * tao/Leader_Follower.cpp + * tao/MCAST_Parser.cpp + * tao/Muxed_TMS.cpp + * tao/ORB.cpp + * tao/ORB_Core.cpp + * tao/ORB_Table.cpp + * tao/Resource_Factory.cpp + * tao/Stub.cpp + * tao/Stub_Factory.cpp + * tao/TSS_Resources.cpp + * tao/Transport_Cache_Manager.cpp + * tao/default_resource.cpp + * tao/Codeset/Codeset_Manager_i.cpp + * tao/Codeset/UTF16_BOM_Factory.cpp + * tao/Codeset/UTF8_Latin1_Factory.cpp + * tao/DynamicAny/DynAnyFactory.cpp + * tao/DynamicAny/DynUnion_i.cpp + * tao/DynamicInterface/ExceptionList.cpp + * tao/DynamicInterface/Request.cpp + * tao/IORManipulation/IORManipulation.cpp + * tao/Messaging/Asynch_Invocation.cpp + * tao/PI/ClientRequestInterceptor_Adapter_Impl.cpp + * tao/PortableServer/Active_Object_Map.cpp + * tao/PortableServer/ImR_Client_Adapter.cpp + * tao/PortableServer/LifespanStrategyPersistent.cpp + * tao/PortableServer/LifespanStrategyTransient.cpp + * tao/PortableServer/Object_Adapter.cpp + * tao/PortableServer/Operation_Table_Dynamic_Hash.cpp + * tao/PortableServer/RequestProcessingStrategyServantActivator.cpp + * tao/PortableServer/RequestProcessingStrategyServantLocator.cpp + * tao/PortableServer/Root_POA.cpp + * tao/PortableServer/Root_POA.inl + * tao/RTCORBA/RT_Mutex.cpp + * tao/RTCORBA/RT_ORB.cpp + * tao/RTCORBA/RT_Protocols_Hooks.cpp + * tao/RTCORBA/Thread_Pool.cpp + * tao/RTScheduling/Current.cpp + * tao/Strategies/DIOP_Connection_Handler.cpp + * tao/Strategies/DIOP_Connector.cpp + * tao/Strategies/SCIOP_Acceptor.cpp + * tao/Strategies/SCIOP_Connection_Handler.cpp + * tao/Strategies/SCIOP_Connector.cpp + * tao/Strategies/SHMIOP_Acceptor.cpp + * tao/Strategies/SHMIOP_Connection_Handler.cpp + * tao/Strategies/SHMIOP_Connector.cpp + * tao/Strategies/UIOP_Acceptor.cpp + * tao/Strategies/UIOP_Connection_Handler.cpp + * tao/Strategies/UIOP_Connector.cpp + * tao/Strategies/advanced_resource.cpp + * tao/TypeCodeFactory/TypeCodeFactory_i.cpp + * tao/Valuetype/AbstractBase.cpp + * tao/Valuetype/StringValueC.cpp + * tao/Valuetype/ValueFactory_Map.cpp + Fixed emulated exception fuzz errors and removed explicit + template instantiations + +Thu Aug 25 17:15:27 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + +Thu Aug 25 16:43:15 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/AnyTypeCode/Any_Array_Impl_T.cpp: + + Added include of Any.h, similar to Any_Dual_Impl_T.cpp, needed + when compiling code generated for arrays and not passing -Sa + or -St to the IDL compiler. + +Thu Aug 25 11:00:47 2005 Chris Cleeland <cleeland_c@ociweb.com> + + This does two things in the Real Time Event Service: + + 1. Added a new dispatching strategy--Thread Per Consumer. This + strategy is similar to the MT dispatching strategy in that it + separates the thread that receives the push() from a supplier + from the thread that does the eventual push() to the + consumer(s), but it differs from MT in that MT has a pool of + threads pulling from a single queue and ultimately potentially + servicing every consumer, whereas TPC has a queue for *each* + consumer and, thus, a single thread dedicated to pushing to that + consumer. This insures that a badly-behaved consumer CANNOT + have an adverse effect on the channel or supplier. + + 2. It adds a means by which an application can specify what the + RTEC should do if the TAO_EC_Queue fills up. This behavior is + encapsulated in a derivation of an ACE_Service_Object, called + TAO_EC_Queue_Full_Service_Object. The RTEC looks for a service + object of a particular name (default in macro + TAO_EC_DEFAULT_QUEUE_FULL_SERVICE_OBJECT_NAME) + + * orbsvcs/orbsvcs/RTEvent_Serv.mpc: + + Updated to build new files that are part of the TPC strategy. + + * orbsvcs/orbsvcs/Event/EC_Default_Factory.h: + + Added new data member to hold the name of the service object + used for queue full behavior. + + * orbsvcs/orbsvcs/Event/EC_Default_Factory.i: + * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: + + Added new option, -ECQueueFullServiceObject, that can be used to + specify the name/tag in the svc.conf file through which the RTEC + should look for a queue full service object. + + * orbsvcs/orbsvcs/Event/EC_Defaults.h: + + Added default service object name/tag, + TAO_EC_DEFAULT_QUEUE_FULL_SERVICE_OBJECT_NAME. + + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h: + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.i: + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp: + + Added the TAO_EC_Simple_Queue_Full_Action service object + implementation into here, since only the TAO_EC_Dispatching_Task + needs to know about it. This default implementation has only + two choices of behavior: "wait" for not-full condition (the default) or + "discard" silently. Specification of the desired behavior is by + putting the word "wait" or "discard" as the first argument in this + object's svc.conf arg vector. + + * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.i: + + Created new macros, TAO_EC_QUEUE_LWM and TAO_EC_QUEUE_HWM, that + can be used to specify the low-water and high-water marks for + the TAO_EC_Queue. Previously, these were hard-coded values. + + * orbsvcs/orbsvcs/Event/EC_MT_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_MT_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching_Task.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching_Task.cpp: + + Modifications to CTORs to allow passing of a service object + pointer from the factory down through the dispatching strategy + down to the dispatching task itself. + + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.cpp: + + Minor modifications to pass the service object to the + dispatching strategy. + + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.i: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching_Task.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Dispatching_Task.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.h: + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.i: + * orbsvcs/orbsvcs/Event/EC_TPC_Factory.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxyConsumer.h: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxyConsumer.cpp: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.h: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.i: + * orbsvcs/orbsvcs/Event/EC_TPC_ProxySupplier.cpp: + + Rather than cluttering the EC_Default_Factory with yet another + dispatch strategy, this derives from the EC_Default_Factory and + replaces certain behaviors with its own. Thus, in order to use + this new strategy you will have to replace the call in your code + for TAO_EC_Default_Factory::init_svcs() with + TAO_EC_TPC_Factory::init_svcs(). + + * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h: Moved event_channel_, + consumer_, and refcount_ into "protected" section so subclasses + can have access. + + * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: Moved event_channel_ + into "protected" section so subclasses can have access. + +Thu Aug 25 07:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp: + Fixed small bug + +Wed Aug 24 21:57:37 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * configure.ac: Copied in updated copyright paragraph from COPYING. + +Wed Aug 24 18:12:16 2005 Simon McQueen <sm@prismtech.com> + + * TAO_IDL/util/utl_global.cpp: + + Avoid recording duplicate file names in ::add_to_included_idl_files. + This fixes bug #2221. + +Wed Aug 24 11:59:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.cpp: + Reordered includes to fix gcc4 build problems + +Wed Aug 24 10:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/Dynamic/server_interceptor.cpp: + * tests/Portable_Interceptors/Dynamic/client_interceptor.cpp: + * tests/Portable_Interceptors/Collocated/Dynamic/interceptors.cpp: + * tests/Portable_Interceptors/Request_Interceptor_Flow/Client_Request_Interceptor.cpp: + * tests/Portable_Interceptors/Request_Interceptor_Flow/Server_Request_Interceptor.cpp: + Explicitly include the AnyTypeCode_Adapter_Impl.h. These tests + use the functionality to get the method arguments as Any and + for this we now need the AnyTypeCode adapter. Fixes test failures + in the static builds. + + * tao/PI/PI.cpp: + Also do the process directive for the PICurrent Loader + + * tao/PI/PICurrent_Loader.{h,cpp}: + No static initializer needed here, this is in the PI file + + * tests/Portable_Interceptors/PICurrent/server.cpp: + Fixed static runtime error + +Wed Aug 24 09:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + On the client side we passed the typecode of the user exceptions to the + invocation adapter, but this is only needed when interceptors are being + used. + + * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp: + * TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp: + Generate a TAO_HAS_INTERCEPTORS==1 around the passing of the typecode + of the user exception + + * TAO_IDL/be/be_visitor_operation/operation.cpp: + Removed generation of an environment variable in the client side + code which was not needed + + * tao/Exception_Data.h + * tao/PI/ClientRequestInfo.cpp + Only store and use the typecode of an user exception when + interceptors are enabled + + * tao/ImR_Client/ImplRepo.pidl: + * tao/ImR_Client/ServerObject.pidl: + Updated regeneration instructions to not use -GA + + * tao/ImR_Client/ImplRepoA.h + * tao/ImR_Client/ImplRepoC.cpp + * tao/ImR_Client/ImplRepoC.h + * tao/ImR_Client/ImplRepoC.inl + * tao/ImR_Client/ImplRepoS.cpp + * tao/ImR_Client/ImplRepoS.h + * tao/ImR_Client/ServerObjectA.h + * tao/ImR_Client/ServerObjectC.cpp + * tao/ImR_Client/ServerObjectC.h + * tao/ImR_Client/ServerObjectC.inl + * tao/ImR_Client/ServerObjectS.cpp + * tao/ImR_Client/ServerObjectS.h + Regenerated + + * tao/ImR_Client/ImplRepoA.cpp + * tao/ImR_Client/ServerObjectA.cpp + Removed + + * tao/Makefile.am: + Updated + +Tue Aug 23 18:09:07 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/Bug_1395_Regression/Makefile.am: + * orbsvcs/tests/Bug_1630_Regression/Makefile.am: + * orbsvcs/tests/Event/Mcast/Common/Makefile.am: + + Regenerated. + + * orbsvcs/tests/Event/Mcast/Common/ECMcastTests_lib.mpc: + + Removed nonexistant ectest_export.h file from Header_Files + section. + +Tue Aug 23 15:54:52 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp (gen_stub_hdr_includes): + + Another round of generated include directive reording to address + template related order of parsing issues in g++ 3.4.x or better. + + * tao/Any_Insert_Policy_T.h (any_insert): + + Made these methods non-virtual. All binding is done at + compile-time so there is no need make them virtual. Also + addresses "class with virtual funtions but no virtual + destructor" g++ 4.0 warnings. + + * tao/IFR_Client/IFR_ComponentsC.h: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.h: + + More g++ 3.4.x or better order of parsing related template + error fixes. + +Tue Aug 23 10:43:07 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/IORInterceptor/IORInterceptor_Adapter_Factory_Impl.cpp: + * tao/IORInterceptor/IORInterceptor_Adapter_Factory_Impl.h: + * tao/IORInterceptor/IORInterceptor_Adapter_Impl.h: + * tao/IORManipulation/IORA.cpp: + * tao/ImR_Client/ImplRepoA.cpp: + * tao/ImR_Client/ImplRepoS.cpp: + * tao/ImR_Client/ServerObjectA.cpp: + * tao/ImR_Client/ServerObjectS.cpp: + * tao/ObjRefTemplate/Default_ORTA.cpp: + * tao/ObjRefTemplate/ObjectReferenceTemplateA.cpp: + * tao/RTCORBA/RTCORBAA.cpp: + * tao/RTCORBA/RT_ORBInitializer.h: + * tao/RTCORBA/rtcorba_export.h: + * tao/RTCORBA/rtcorba_typedefs.h: + * tao/RTPortableServer/RTPortableServerA.cpp: + * tao/RTScheduling/RTSchedulerC.h: + * tao/Strategies/sciop_endpointsC.cpp: + * tao/Strategies/uiop_endpointsC.cpp: + * tao/TypeCodeFactory/TypeCodeFactoryA.cpp: + * tao/TypeCodeFactory/TypeCodeFactoryC.h: + * tao/TypeCodeFactory/TypeCodeFactory_Adapter_Impl.cpp: + * tao/TypeCodeFactory/TypeCodeFactory_i.cpp: + * tao/Utils/RIR_Narrow.h: + + Reordered include directives to make sure all necessary + non-dependent names are parsed before the templates that use + them. In the case of the "*A.h" files, this is a temporary + work-around until TAO_IDL is updated. Addresses g++ 3.4.x or + better compile-time errors. + +Tue Aug 23 14:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Strategies/SHMIOP_Acceptor.cpp: + Fixed possible unitialized warning + +Tue Aug 23 13:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.cpp: + Added include of Any.h + +Tue Aug 23 13:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Abstract_Servant_Base.h: + * tao/PortableServer/Servant_Base.{h,cpp}: + Changed the type of the operation name length to size_t to fix + 64bit conversion warnings + +Tue Aug 23 12:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_operation/exceptlist_ss.cpp: + * tao/Abstract_Servant_Base.h: + * tao/CORBA_String.cpp: + * tao/Invocation_Adapter.{h,inl}: + * tao/ORB.cpp: + * tao/ServerRequestInterceptor_Adapter.h: + * tao/operation_details.{h,i}: + * tao/Domain/DomainS.cpp: + * tao/DynamicInterface/DII_Invocation_Adapter.{h,cpp}: + * tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp: + * tao/ImR_Client/ImplRepoS.cpp: + * tao/ImR_Client/ServerObjectS.cpp: + * tao/Messaging/Asynch_Invocation_Adapter.{h,cpp}: + * tao/Messaging/MessagingS.cpp: + * tao/PI_Server/ServerInterceptorAdapter.{h,cpp}: + * tao/PI_Server/ServerRequestInfo.{h,inl}: + * tao/PortableServer/PolicyS.cpp: + * tao/PortableServer/Upcall_Wrapper.{h,cpp}: + * tao/Valuetype/AbstractBase_Invocation_Adapter.{h,cpp}: + Fixed several 64bit conversion warnings. The size of the + exception list is now a CORBA::ULong, the length of the operation + name is size_t. + +Tue Aug 23 10:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/DynamicInterface/Request.cpp: + Fixed 64bit conversion warnings and removed some not needed + const casts + +Tue Aug 23 10:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Fixed_Array_SArgument_T.{h,cpp}: + Fixed compilation issues with vc6 + +Tue Aug 23 07:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Bug_1395_Regression/Bug_1395_Regression.mpc: + Added anytypecode + +Mon Aug 22 23:03:02 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Service.cpp: + * orbsvcs/Logging_Service/Event_Logging_Service/Event_Logging_Service.h: + + Changed the event_log_factory_ member variable from a + TAO_EventLogFactory_i to a pointer to a TAO_EventLogFactory_i. + This delays execution of the constructor, which avoids the ORB + being constructed implicitly, which in turn allows any -ORB... + command line arguments to be parsed and removed from the argc/ + argv vector in Event_Logging_Service::init_ORB(). + +Mon Aug 22 21:33:37 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + + Another round of generated include directive reording to address + template related order of parsing issues in g++ 3.4.x or better. + + * tao/Typecode_typesC.h: + * tao/ParameterModeC.h + + Removed unnecessary include directives. They were causing + headers to be included that prematurely caused some templates to + be parsed before all non-dependent names were parsed. Addresses + g++ 3.4.x or better compile-time errors. + + * tao/AnyTypeCode/BooleanSeqA.h: + * tao/AnyTypeCode/BoundsA.h: + * tao/AnyTypeCode/CONV_FRAMEA.h: + * tao/AnyTypeCode/CharSeqA.h: + * tao/AnyTypeCode/CurrentA.h: + * tao/AnyTypeCode/DomainA.h: + * tao/AnyTypeCode/DoubleSeqA.h: + * tao/AnyTypeCode/DynamicC.h: + * tao/AnyTypeCode/Dynamic_ParameterC.h: + * tao/AnyTypeCode/FloatSeqA.h: + * tao/AnyTypeCode/GIOPA.h: + * tao/AnyTypeCode/IIOPA.h: + * tao/AnyTypeCode/IIOP_EndpointsA.h: + * tao/AnyTypeCode/IOPA.h: + * tao/AnyTypeCode/IOP_IORA.h: + * tao/AnyTypeCode/LongDoubleSeqA.h: + * tao/AnyTypeCode/LongLongSeqA.h: + * tao/AnyTypeCode/LongSeqA.h: + * tao/AnyTypeCode/Messaging_PolicyValueA.h: + * tao/AnyTypeCode/NVList.h: + * tao/AnyTypeCode/ObjectIdListA.h: + * tao/AnyTypeCode/OctetSeqA.h: + * tao/AnyTypeCode/PI_ForwardA.h: + * tao/AnyTypeCode/ParameterModeA.h: + * tao/AnyTypeCode/PolicyA.h: + * tao/AnyTypeCode/Policy_ForwardA.h: + * tao/AnyTypeCode/PortableInterceptorA.h: + * tao/AnyTypeCode/ServicesA.h: + * tao/AnyTypeCode/ShortSeqA.h: + * tao/AnyTypeCode/StringSeqA.h: + * tao/AnyTypeCode/SystemExceptionA.h: + * tao/AnyTypeCode/TAOA.h: + * tao/AnyTypeCode/TimeBaseA.h: + * tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp: + * tao/AnyTypeCode/ULongLongSeqA.h: + * tao/AnyTypeCode/ULongSeqA.h: + * tao/AnyTypeCode/UShortSeqA.h: + * tao/AnyTypeCode/ValueModifierA.h: + * tao/AnyTypeCode/VisibilityA.h: + * tao/AnyTypeCode/WCharSeqA.h: + * tao/AnyTypeCode/WStringSeqA.h: + * tao/AnyTypeCode/WrongTransactionA.h: + * tao/AnyTypeCode/orb_typesA.h + * tao/BiDir_GIOP/BiDirGIOP.cpp: + * tao/CodecFactory/CDR_Encaps_Codec.cpp: + * tao/CodecFactory/CDR_Encaps_Codec.h: + * tao/CodecFactory/CodecFactory.h: + * tao/CodecFactory/CodecFactory_impl.cpp: + * tao/CodecFactory/CodecFactory_impl.h: + * tao/CodecFactory/IOP_CodecC.h: + * tao/CodecFactory/IOP_Codec_includeC.h: + * tao/Domain/DomainS.h: + * tao/DynamicAny/DynamicAny.h: + * tao/DynamicAny/DynamicAnyC.h: + * tao/DynamicInterface/Context.h: + * tao/DynamicInterface/DII_Arguments.cpp: + * tao/DynamicInterface/DII_Invocation.cpp: + * tao/DynamicInterface/ExceptionList.h: + * tao/IFR_Client/IFR_BaseC.h: + * tao/IFR_Client/IFR_BasicC.h: + * tao/IFR_Client/IFR_Client_Adapter_Impl.cpp: + * tao/IFR_Client/IFR_ComponentsC.cpp: + * tao/IFR_Client/IFR_ExtendedC.cpp: + * tao/IFR_Client/IFR_ExtendedC.h: + * tao/Messaging/MessagingA.cpp: + * tao/Messaging/MessagingS.cpp: + * tao/Messaging/Messaging_No_ImplA.cpp: + * tao/Messaging/Messaging_RT_PolicyA.cpp: + * tao/Messaging/Messaging_SyncScope_PolicyA.cpp: + * tao/Messaging/PollableC.cpp: + * tao/Messaging/TAO_ExtA.cpp: + * tao/PI/ClientRequestInfo.h: + * tao/PI/ClientRequestInfoC.h: + * tao/PI/ClientRequestInterceptorA.cpp: + * tao/PI/ClientRequestInterceptor_Adapter_Impl.h: + * tao/PI/InterceptorA.cpp: + * tao/PI/Interceptor_List_T.cpp: + * tao/PI/InvalidSlotA.cpp: + * tao/PI/ORBInitInfoC.h: + * tao/PI/ORBInitializerA.cpp: + * tao/PI/ORBInitializer_Registry_Impl.h: + * tao/PI/PI.h: + * tao/PI/PICurrent.h: + * tao/PI/PICurrentA.cpp: + * tao/PI/PICurrent_Impl.h: + * tao/PI/PIForwardRequestA.cpp: + * tao/PI/PolicyFactoryC.h: + * tao/PI/RequestInfoC.h: + * tao/PI_Server/ServerInterceptorAdapter.h: + * tao/PI_Server/ServerRequestInfoC.h: + * tao/PI_Server/ServerRequestInterceptorC.h: + * tao/PortableServer/AdapterActivatorA.cpp: + * tao/PortableServer/ForwardRequestA.cpp: + * tao/PortableServer/IdAssignmentPolicyA.cpp: + * tao/PortableServer/IdUniquenessPolicyA.cpp: + * tao/PortableServer/ImplicitActivationPolicyA.cpp: + * tao/PortableServer/LifespanPolicyA.cpp: + * tao/PortableServer/POAManagerC.cpp: + * tao/PortableServer/PS_CurrentA.cpp: + * tao/PortableServer/PS_ForwardA.cpp: + * tao/PortableServer/PolicyS.cpp: + * tao/PortableServer/PortableServerA.cpp: + * tao/PortableServer/RequestProcessingPolicyA.cpp: + * tao/PortableServer/ServantActivatorA.cpp: + * tao/PortableServer/ServantLocatorA.cpp: + * tao/PortableServer/ServantManagerA.cpp: + * tao/PortableServer/ServantRetentionPolicyA.cpp: + * tao/PortableServer/ThreadPolicyA.cpp: + * tao/Valuetype/StringValueC.cpp: + * tao/Valuetype/ValueBase.cpp: + + Reordered include directives to make sure all necessary + non-dependent names are parsed before the templates that use + them. In the case of the "*A.h" files, this is a temporary + work-around until TAO_IDL is updated. Addresses g++ 3.4.x or + better compile-time errors. + +Mon Aug 22 21:05:36 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp (gen_stub_hdr_includes): + + Reordered generated include directives so that Any/TypeCode + include directives are placed before ones from the ORB core to + make sure some things are parsed before some templates + (e.g. TAO_Pseudo_{Var,Out}_T). Addresses issues with compilers + that require all necessary non-dependent names be parsed prior + to parsing templates that may use them (e.g. GNU g++ 3.4.x or + better). + + Removed duplicate "TypeCode.h" include directive generation. + + * tao/AnyTypeCode/AnySeqC.h: + * tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp: + * tao/AnyTypeCode/BooleanSeqA.h: + * tao/AnyTypeCode/TypeCode.h: + * tao/AnyTypeCode/append.cpp: + + Reordered include directives to force non-dependent names used + as template arguments to be parsed before the templates in + question. Addresses issues with compilers that require all + necessary non-dependent names be parsed prior to parsing + templates that may use them (e.g. GNU g++ 3.4.x or better). + + * tao/AnyTypeCode/Any_Impl.h: + + Removed unnecessary "Any.h" include directive. + +Mon Aug 22 15:46:29 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + * tao/ORB.h: + + Reordered include directives to work around g++ 4.0.x internal + compiler error. + +Mon Aug 22 12:58:11 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Concurrency_Service/Makefile.am: + * orbsvcs/CosEvent_Service/Makefile.am: + * orbsvcs/Dump_Schedule/Makefile.am: + * orbsvcs/FTRT_Event_Service/Makefile.am: + * orbsvcs/FTRT_Event_Service/Event_Service/Makefile.am: + * orbsvcs/FTRT_Event_Service/Factory_Service/Makefile.am: + * orbsvcs/FTRT_Event_Service/Gateway_Service/Makefile.am: + * orbsvcs/FT_ReplicationManager/Makefile.am: + * orbsvcs/Fault_Detector/Makefile.am: + * orbsvcs/Fault_Notifier/Makefile.am: + * orbsvcs/IFR_Service/Makefile.am: + * orbsvcs/ImplRepo_Service/Makefile.am: + * orbsvcs/LifeCycle_Service/Makefile.am: + * orbsvcs/LoadBalancer/Makefile.am: + * orbsvcs/Logging_Service/Basic_Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/Event_Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/Notify_Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/RTEvent_Logging_Service/Makefile.am: + * orbsvcs/Naming_Service/Makefile.am: + * orbsvcs/Notify_Service/Makefile.am: + * orbsvcs/Scheduling_Service/Makefile.am: + * orbsvcs/Time_Service/Makefile.am: + * orbsvcs/Trading_Service/Makefile.am: + + Regenerated. + +Mon Aug 22 12:32:42 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/AVStreams/Asynch_Three_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Bidirectional_Flows/Makefile.am: + * orbsvcs/tests/AVStreams/Component_Switching/Makefile.am: + * orbsvcs/tests/AVStreams/Full_Profile/Makefile.am: + * orbsvcs/tests/AVStreams/Latency/Makefile.am: + * orbsvcs/tests/AVStreams/Modify_QoS/Makefile.am: + * orbsvcs/tests/AVStreams/Multicast/Makefile.am: + * orbsvcs/tests/AVStreams/Multicast_Full_Profile/Makefile.am: + * orbsvcs/tests/AVStreams/Multiple_Flows/Makefile.am: + * orbsvcs/tests/AVStreams/Pluggable/Makefile.am: + * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Three_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Two_Stage/Makefile.am: + * orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/Makefile.am: + * orbsvcs/tests/BiDir_CORBALOC/Makefile.am: + * orbsvcs/tests/Bug_1334_Regression/Makefile.am: + * orbsvcs/tests/Bug_1393_Regression/Makefile.am: + * orbsvcs/tests/Bug_1395_Regression/Makefile.am: + * orbsvcs/tests/Bug_1630_Regression/Makefile.am: + * orbsvcs/tests/Concurrency/Makefile.am: + * orbsvcs/tests/CosEvent/Basic/Makefile.am: + * orbsvcs/tests/CosEvent/lib/Makefile.am: + * orbsvcs/tests/EC_Custom_Marshal/Makefile.am: + * orbsvcs/tests/EC_MT_Mcast/Makefile.am: + * orbsvcs/tests/EC_Mcast/Makefile.am: + * orbsvcs/tests/EC_Multiple/Makefile.am: + * orbsvcs/tests/EC_Throughput/Makefile.am: + * orbsvcs/tests/Event/Basic/Makefile.am: + * orbsvcs/tests/Event/Mcast/Common/Makefile.am: + * orbsvcs/tests/Event/Mcast/Complex/Makefile.am: + * orbsvcs/tests/Event/Mcast/Simple/Makefile.am: + * orbsvcs/tests/Event/Mcast/Two_Way/Makefile.am: + * orbsvcs/tests/Event/Performance/Makefile.am: + * orbsvcs/tests/Event/lib/Makefile.am: + + Regenerated. + + * orbsvcs/tests/EC_Custom_Marshal/EC_Custom_Marshal.mpc: + + Add *_IDL projects for compiling *.idl files. This eliminates + duplicate rules that would otherwise result when Makefile.am's + are aggregated in the automake build. + +Mon Aug 22 18:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/Pluggable/Pluggable.mpc: + * performance-tests/Memory/Single_Threaded/Memory_Growth.mpc: + * examples/Advanced/ch_3/Advanced_ch_3.mpc: + Updated to resolve link errors + +Mon Aug 22 18:12:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Array_VarOut_T.{h,inl}: + * tao/PortableServer/Fixed_Array_SArgument_T.cpp: + * tao/PortableServer/Var_Array_SArgument_T.{h,cpp}: + Changes to make msvc6 happy + +Mon Aug 22 10:43:11 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * TAO_IDL/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + * tao/Makefile.am: + + Regenerated. + + * tao/AnyTypeCode.mpc: + + Changed AnyTypecode to AnyTypeCode so generated project + files work with case sensitive filesystems. + + * tao/tao.mpc: + + Removed a few more headers that have been moved to the + AnyTypeCode library. + + * tao/BiDir_GIOP/TAO_BiDirGIOP.pc.in: + * tao/CodecFactory/TAO_CodecFactory.pc.in: + * tao/Domain/TAO_Domain.pc.in: + * tao/DynamicAny/TAO_DynamicAny.pc.in: + * tao/DynamicInterface/TAO_DynamicInterface.pc.in: + * tao/IFR_Client/TAO_IFR_Client.pc.in: + * tao/IORInterceptor/TAO_IORInterceptor.pc.in: + * tao/IORManipulation/TAO_IORManip.pc.in: + * tao/ImR_Client/TAO_ImR_Client.pc.in: + * tao/Messaging/TAO_Messaging.pc.in: + * tao/ObjRefTemplate/TAO_ObjRefTemplate.pc.in: + * tao/PI/TAO_PI.pc.in: + * tao/PI_Server/TAO_PI_Server.pc.in: + * tao/PortableServer/TAO_PortableServer.pc.in: + * tao/RTCORBA/TAO_RTCORBA.pc.in: + * tao/RTPortableServer/TAO_RTPortableServer.pc.in: + * tao/RTScheduling/TAO_RTScheduler.pc.in: + * tao/Strategies/TAO_Strategies.pc.in: + * tao/TypeCodeFactory/TAO_TypeCodeFactory.pc.in: + * tao/Valuetype/TAO_Valuetype.pc.in: + * tao/TAO_Utils.pc.in + + Update to add TAO_AnyTypeCode to "Requires:" as needed. + + * tao/AnyTypeCode/TAO_AnyTypeCode.pc.in: + + New file, pkg-config *.pc template for TAO_AnyTypeCode library. + +Mon Aug 22 13:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/*: + Fixed minimum corba builds + +Mon Aug 22 10:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/tao.mpc: + Removed a lot of files that are zapped + + * tao/ORB.cpp + * tao/ORB.h + * tao/ORB_Core.cpp + * tao/ORB_Core.h + * tao/ORB_Core.i + * tao/PI/PICurrent_Loader.h + * tao/PI_Server/PI_Server.h + * tao/PI_Server/PortableServer_ORBInitializer.cpp + * tao/PI_Server/PortableServer_ORBInitializer.h + * tao/PortableServer/PortableServer.cpp + * tao/PortableServer/PortableServer.h + * tao/PortableServer/POA_Current.{h,cpp,inl}: + * tao/PortableServer/POA_Current_Factory.{h,cpp}: + * tao/PortableServer/PS_Current.pidl + * tao/PortableServer/PS_CurrentA.cpp + * tao/PortableServer/PS_CurrentC.cpp + * tao/PortableServer/PS_CurrentC.h + Moved POACurrent back to the PortableServer libary and use an object + loader to get it on demand instead of using an orbinitializer + + + * tao/PI_Server/POA_Current.cpp + * tao/PI_Server/POA_Current.h + * tao/PI_Server/POA_Current.inl + * tao/PI_Server/PS_Current.pidl + * tao/PI_Server/PS_CurrentA.cpp + * tao/PI_Server/PS_CurrentC.cpp + * tao/PI_Server/PS_CurrentC.h + Removed, back to PortableServer + + * examples/POA/DSI/Database_i.h + * examples/POA/DSI/POA_DSI.mpc + * examples/POA/Default_Servant/File_i.cpp + * examples/POA/Default_Servant/POA_Default_Servant.mpc + * orbsvcs/ImplRepo_Service/Forwarder.cpp + * orbsvcs/ImplRepo_Service/Forwarder.h + * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc + * orbsvcs/examples/ORT/Gateway_i.h + * orbsvcs/examples/ORT/ORT.mpc + * orbsvcs/orbsvcs/IFRService.mpc + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.cpp + * orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp + * orbsvcs/orbsvcs/IFRService/Repository_i.h + * orbsvcs/tests/FtRtEvent/PushConsumer.cpp + * orbsvcs/tests/FtRtEvent/PushSupplier.cpp + * orbsvcs/tests/ImplRepo/scale/scaletest.mpc + * orbsvcs/tests/ImplRepo/scale/server_i.cpp + * tests/Collocation_Opportunities/Collocation_Opportunities.cpp + * tests/Collocation_Opportunities/Collocation_Opportunities.mpc + * tests/File_IO/File_IO.mpc + * tests/File_IO/File_i.cpp + * tests/ORT/ServerORBInitializer.cpp + * tests/POA/Current/Current.cpp + * tests/POA/Current/Current.mpc + * tests/POA/Persistent_ID/Persistent_ID.mpc + * tests/POA/Persistent_ID/server.cpp + Updated, no need to use PI_Server anymore now the POACurrent is + back to the PortableServer lib. + + * orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp + * orbsvcs/orbsvcs/Event/EC_ConsumerControl.cpp + * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp + Removed explicit template instantiations + + * tao/Valuetype/ValueBase.cpp + Use C++ cast instead of c-style cast + +Mon Aug 22 09:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/Any.h: + * tao/AnyTypeCode/RefCount_Policy_Traits.h: + Include AnyTypeCode_methods instead of CORBA_methods + + * tao/AnyTypeCode/AnyTypeCode_methods.h: + Added missing includes + +Mon Aug 22 08:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Muxed_GIOP_Versions/Muxed_GIOP_Versions.mpc: + * tests/Multiple_Inheritance/Multiple_Inheritance.mpc: + Updated to resolve link errors + +Mon Aug 22 07:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp: + Updated return type of operator >> + +Sun Aug 21 12:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/TypeCode.inl: + Include AnyTypeCode_methods instead of CORBA_methods + +Sun Aug 21 11:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/TypeCode.{h,cpp}: + Fixed compile errors with msvc6 + +Sun Aug 21 11:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Transport.cpp: + Fixed warning in valgrind build + +Sun Aug 21 11:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Portable_Interceptors/ORB_Shutdown/PI_ORB_Shutdown.mpc: + * tests/MT_Server/MT_Server.mpc: + * tests/Hello/Hello.mpc: + * tests/Hang_Shutdown/Hang.mpc: + * tests/Connect_Strategy_Test/Connect_Strategy_Test.mpc: + * tests/Bug_1330_Regression/Bug_1330_Regression.mpc: + Updated to resolve link errors + +Sun Aug 21 11:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/TAO_AnyTypeCode_Export.h: + Fixed vc71 static compile warnings + +Fri Aug 19 18:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Kokyu_dsrt_schedulers/EDF_Scheduling.idl: + Added missing include + + * examples/Kokyu_dsrt_schedulers/Kokyu_DSRT_Schedulers.mpc: + Added EDF_SchedulingC.cpp + +Fri Aug 19 18:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/Union_TypeCode.cpp: + Fixed no return warning + +Fri Aug 19 18:33:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Explicit_Event_Loop/Explicit_Event_Loop.mpc: + * tests/Cache_Growth_Test/Cache_Growth_Test.mpc: + Updated to resolve link errors + +Fri Aug 19 18:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + Fixed deprecated conversion warning + +Fri Aug 19 18:27:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/HTIOP/Hello/HTIOP_Hello.mpc: + * performance-tests/POA/Implicit_Activation/Implicit_Activation.mpc: + * tests/Crash_On_Write/Crash_On_Write.mpc: + * tests/MT_Client/MT_Client.mpc: + * tests/Server_Connection_Purging/Server_Connection_Purging.mpc: + * tests/Single_Read/Single_Read.mpc: + Updated to resolve link errors + +Fri Aug 19 18:18:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Messaging/Messaging_PolicyFactory.{h,cpp}: + Fixed compile error when no messaging is defined + +Fri Aug 19 14:00:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ImR_Client/ImplRepoS.cpp: + Fixed some handcrafted code, will regenerate this file next week + +Fri Aug 19 13:43:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/NVList.h: + Fixed HP aCC compile error + +Fri Aug 19 12:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Profile.cpp: + Fixed 64bit conversion warnings by using the correct type or + using an explicit cast + +Fri Aug 19 12:24:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/SystemException.h: + Removed not needed trailing semi colon + +Fri Aug 19 11:58:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode.mpc: + Removed not existent file + +Fri Aug 19 11:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/DomainA.h: + Removed include of inline file. + + * tao/AnyTypeCode/TypeCode.{h,cpp,inl}: + Moved operator << to cpp file + +Fri Aug 19 11:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Any_Insert_Policy_T.h: + Fix problem for HPUX, will move the special policies out of this + file soon. + +Fri Aug 19 10:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Log/LogMgr_i.cpp: + Fixed implicit conversion warning + +Fri Aug 19 09:17:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/PolicyA.h: + Removed include of inline file. + +Fri Aug 19 09:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/Empty_Param_TypeCode.h: + * tao/AnyTypeCode/NVList.h: + * tao/AnyTypeCode/Objref_TypeCode_Static.h: + * tao/AnyTypeCode/Union_TypeCode_Static.h: + * tao/AnyTypeCode/Value_TypeCode_Static.h: + Fixed include of inline file. + +Fri Aug 19 08:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/TypeCode.h: + * tao/AnyTypeCode/Alias_TypeCode_Static.h: + * tao/AnyTypeCode/Any.h: + Fixed include of inline file. + +Fri Aug 19 08:35:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Log/LogMgr_i.cpp: + Fixed compile error + +Fri Aug 19 07:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + Merged AnyRefactor branch, a lot of files where moved to the + AnyTypeCode directory. Regenerated all files in the repo, add + AnyTypeCode as base project for a lot of MPC files, zapped + explicit templates + + * TAO_IDL/be/be_codegen.cpp + * TAO_IDL/be/be_global.cpp + * TAO_IDL/be/be_produce.cpp + * TAO_IDL/be/be_visitor_arg_traits.cpp + * TAO_IDL/be/be_visitor_context.cpp + * TAO_IDL/be/be_visitor_root.cpp + * TAO_IDL/be/be_visitor_argument/invoke_cs.cpp + * TAO_IDL/be/be_visitor_argument/marshal_ss.cpp + * TAO_IDL/be/be_visitor_argument/paramlist.cpp + * TAO_IDL/be/be_visitor_array/any_op_ch.cpp + * TAO_IDL/be/be_visitor_enum/any_op_ch.cpp + * TAO_IDL/be/be_visitor_exception/any_op_ch.cpp + * TAO_IDL/be/be_visitor_exception/exception_cs.cpp + * TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp + * TAO_IDL/be/be_visitor_field/serializer_op_cs.cpp + * TAO_IDL/be/be_visitor_interface/any_op_ch.cpp + * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp + * TAO_IDL/be/be_visitor_interface_fwd/any_op_ch.cpp + * TAO_IDL/be/be_visitor_module/module_ch.cpp + * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp + * TAO_IDL/be/be_visitor_root/any_op.cpp + * TAO_IDL/be/be_visitor_root/root.cpp + * TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp + * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp + * TAO_IDL/be/be_visitor_sequence/serializer_op_cs.cpp + * TAO_IDL/be/be_visitor_structure/any_op_ch.cpp + * TAO_IDL/be/be_visitor_typecode/typecode_decl.cpp + * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp + * TAO_IDL/be/be_visitor_union/any_op_ch.cpp + * TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp + * TAO_IDL/be/be_visitor_union/serializer_op_cs.cpp + * TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp + * TAO_IDL/be/be_visitor_union_branch/serializer_op_cs.cpp + * TAO_IDL/be/be_visitor_valuebox/any_op_ch.cpp + * TAO_IDL/be/be_visitor_valuebox/valuebox_ci.cpp + * TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp + * TAO_IDL/be/be_visitor_valuetype/any_op_ch.cpp + * TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp + * TAO_IDL/be/be_visitor_valuetype_fwd/any_op_ch.cpp + * TAO_IDL/be_include/be_codegen.h + * TAO_IDL/be_include/be_global.h + * TAO_IDL/be_include/be_visitor_arg_traits.h + * TAO_IDL/be_include/be_visitor_context.h + * TAO_IDL/be_include/be_visitor_root/root.h + * TAO_IDL/driver/drv_args.cpp + * docs/compiler.html + * docs/releasenotes/index.html + * examples/Buffered_AMI/client.cpp + * examples/Buffered_Oneways/client.cpp + * examples/Kokyu_dsrt_schedulers/FP_Scheduling.idl + * examples/Kokyu_dsrt_schedulers/Kokyu_qos.idl + * examples/Kokyu_dsrt_schedulers/MIF_Scheduling.idl + * examples/Kokyu_dsrt_schedulers/MUF_Scheduling.idl + * examples/POA/DSI/Database_i.cpp + * examples/POA/Default_Servant/POA_Default_Servant.mpc + * examples/POA/Forwarding/POA_Forwarding.mpc + * examples/POA/POA_BiDir/POA_BiDir.cpp + * examples/POA/TIE/POA_TIE.mpc + * examples/POA/TIE/client.cpp + * examples/POA/TIE/server.cpp + * examples/Simulator/NavWeap.idl + * examples/Simulator/Event_Supplier/Event_Con.cpp + * interop-tests/wchar/interop_wchar.mpc + * orbsvcs/IFR_Service/ifr_adding_visitor_union.cpp + * orbsvcs/PSS/PSDL_Code_Gen.cpp + * orbsvcs/examples/FaultTolerance/RolyPoly/ReplicaController.cpp + * orbsvcs/examples/FaultTolerance/RolyPoly/RolyPoly.mpc + * orbsvcs/examples/FaultTolerance/RolyPoly/RolyPoly_i.cpp + * orbsvcs/examples/ORT/Gateway_i.cpp + * orbsvcs/orbsvcs/PortableGroup.mpc + * orbsvcs/orbsvcs/AV/AVStreams_i.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEvent.h + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h + * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.cpp + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicy_i.cpp + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerPolicy_i.cpp + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerRequest_Interceptor.cpp + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.h + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.cpp + * orbsvcs/orbsvcs/HTIOP/htiop_endpointsC.cpp + * orbsvcs/orbsvcs/IFRService/ConstantDef_i.cpp + * orbsvcs/orbsvcs/IFRService/Container_i.cpp + * orbsvcs/orbsvcs/IFRService/IFR_BaseS.cpp + * orbsvcs/orbsvcs/IFRService/IFR_BaseS.h + * orbsvcs/orbsvcs/IFRService/IFR_BaseS.inl + * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.cpp + * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.h + * orbsvcs/orbsvcs/IFRService/IFR_BaseS_T.inl + * orbsvcs/orbsvcs/IFRService/IFR_BasicS.cpp + * orbsvcs/orbsvcs/IFRService/IFR_BasicS.h + * orbsvcs/orbsvcs/IFRService/IFR_BasicS.inl + * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.cpp + * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.h + * orbsvcs/orbsvcs/IFRService/IFR_BasicS_T.inl + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.cpp + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.h + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.inl + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.cpp + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.h + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS_T.inl + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.cpp + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.h + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.inl + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.cpp + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.h + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS_T.inl + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp + * orbsvcs/orbsvcs/IFRService/IRObject_i.cpp + * orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp + * orbsvcs/orbsvcs/Log/Hash_LogRecordStore.cpp + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.h + * orbsvcs/orbsvcs/Log/PersistStore.cpp + * orbsvcs/orbsvcs/Log/PersistStore.h + * orbsvcs/orbsvcs/Naming/Naming_Server.cpp + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.cpp + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h + * orbsvcs/orbsvcs/SSLIOP/ssl_endpointsC.cpp + * orbsvcs/orbsvcs/Security/SL3_PolicyFactory.cpp + * orbsvcs/orbsvcs/Trader/Constraint_Nodes.cpp + * orbsvcs/orbsvcs/Trader/Interpreter_Utils.h + * orbsvcs/performance-tests/RTEvent/lib/SyncScope_Setup.cpp + * orbsvcs/tests/BiDir_CORBALOC/BiDirCORBALOC.mpc + * orbsvcs/tests/BiDir_CORBALOC/TimeServer.cpp + * orbsvcs/tests/Bug_1630_Regression/test.mpc + * orbsvcs/tests/Bug_1630_Regression/testclient.cpp + * orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/test.idl + * orbsvcs/tests/HTIOP/BiDirectional/client.cpp + * orbsvcs/tests/HTIOP/BiDirectional/server.cpp + * orbsvcs/tests/InterfaceRepo/IFR_Test/Admin_Client.cpp + * orbsvcs/tests/Notify/Reconnecting/Consumer.cpp + * orbsvcs/tests/Security/BiDirectional/client.cpp + * orbsvcs/tests/Security/BiDirectional/server.cpp + * orbsvcs/tests/Security/Big_Request/Big_Request.mpc + * performance-tests/Anyop/Anyop.mpc + * performance-tests/Anyop/anyop.cpp + * performance-tests/Callback/client.cpp + * performance-tests/Callback/server.cpp + * performance-tests/Cubit/TAO/DII_Cubit/client.cpp + * performance-tests/Latency/DII/client.cpp + * performance-tests/Latency/DSI/Roundtrip.cpp + * performance-tests/Latency/Deferred/client.cpp + * performance-tests/RTCorba/Oneways/Reliable/client.cpp + * performance-tests/Sequence_Latency/DII/client.cpp + * performance-tests/Sequence_Latency/DSI/Roundtrip.cpp + * performance-tests/Sequence_Latency/Deferred/client.cpp + * tao/Arg_Traits_T.h + * tao/Argument.cpp + * tao/Argument.h + * tao/Array_VarOut_T.h + * tao/Array_VarOut_T.inl + * tao/Asynch_Queued_Message.h + * tao/BD_String_Argument_T.cpp + * tao/BD_String_Argument_T.h + * tao/BD_String_Argument_T.inl + * tao/Basic_Argument_T.cpp + * tao/Basic_Argument_T.h + * tao/Basic_Argument_T.inl + * tao/Basic_Arguments.h + * tao/BiDir_GIOP.mpc + * tao/Block_Flushing_Strategy.h + * tao/BooleanSeqC.cpp + * tao/BooleanSeqC.h + * tao/BooleanSeqS.h + * tao/Buffering_Constraint_Policy.cpp + * tao/Buffering_Constraint_Policy.h + * tao/CONV_FRAMEC.cpp + * tao/CONV_FRAMEC.h + * tao/CONV_FRAMES.h + * tao/CORBANAME_Parser.cpp + * tao/CORBA_methods.h + * tao/Cache_Entries.h + * tao/Cache_Entries.inl + * tao/CharSeqC.h + * tao/CodecFactory.mpc + * tao/CurrentC.cpp + * tao/CurrentC.h + * tao/CurrentS.h + * tao/Domain.mpc + * tao/DomainC.cpp + * tao/DomainC.h + * tao/DoubleSeqC.h + * tao/DynamicAny.mpc + * tao/DynamicInterface.mpc + * tao/Dynamic_Adapter.cpp + * tao/Exception.cpp + * tao/Exception.h + * tao/Fixed_Array_Argument_T.cpp + * tao/Fixed_Array_Argument_T.h + * tao/Fixed_Array_Argument_T.inl + * tao/Fixed_Size_Argument_T.cpp + * tao/Fixed_Size_Argument_T.h + * tao/Fixed_Size_Argument_T.inl + * tao/FloatSeqC.cpp + * tao/FloatSeqC.h + * tao/FloatSeqS.h + * tao/Flushing_Strategy.h + * tao/GIOPC.cpp + * tao/GIOPC.h + * tao/GIOPS.h + * tao/GIOP_Message_Generator_Parser_10.cpp + * tao/GIOP_Message_Generator_Parser_12.cpp + * tao/GIOP_Message_Lite.cpp + * tao/IFR_Client.mpc + * tao/IFR_Client_Adapter.h + * tao/IIOP.pidl + * tao/IIOPC.cpp + * tao/IIOPC.h + * tao/IIOP_Acceptor.cpp + * tao/IIOP_EndpointsC.h + * tao/IOPC.cpp + * tao/IOPC.h + * tao/IOPS.h + * tao/IOP_IORC.cpp + * tao/IOP_IORC.h + * tao/IOP_IORS.h + * tao/IORInterceptor.mpc + * tao/IORManipulation.mpc + * tao/IORTable.mpc + * tao/ImR_Client.mpc + * tao/Invocation_Adapter.h + * tao/Invocation_Base.cpp + * tao/Invocation_Base.h + * tao/Invocation_Base.inl + * tao/Leader_Follower_Flushing_Strategy.h + * tao/LongDoubleSeqC.h + * tao/LongLongSeqC.h + * tao/LongSeqC.h + * tao/Messaging.mpc + * tao/Messaging_PolicyValue.pidl + * tao/Messaging_PolicyValueC.h + * tao/ORB.cpp + * tao/ORB.h + * tao/ORBInitializer_Registry_Adapter.h + * tao/ORB_Core.cpp + * tao/ORB_Core.h + * tao/ORB_Core.i + * tao/ORB_Core_Auto_Ptr.h + * tao/ORB_Core_TSS_Resources.cpp + * tao/ORB_Core_TSS_Resources.h + * tao/ORB_Table.h + * tao/ObjRefTemplate.mpc + * tao/Object.cpp + * tao/Object.h + * tao/ObjectIdListC.h + * tao/Object_Argument_T.cpp + * tao/Object_Argument_T.h + * tao/Object_Argument_T.inl + * tao/Object_KeyC.cpp + * tao/OctetSeq.pidl + * tao/OctetSeqC.cpp + * tao/OctetSeqC.h + * tao/OctetSeqS.h + * tao/PI.mpc + * tao/PI_ForwardC.cpp + * tao/PI_ForwardC.h + * tao/PI_Server.mpc + * tao/ParameterModeC.h + * tao/PolicyC.cpp + * tao/PolicyC.h + * tao/Policy_Current.cpp + * tao/Policy_ForwardC.cpp + * tao/Policy_ForwardC.h + * tao/Policy_ForwardS.h + * tao/PortableInterceptor.pidl + * tao/PortableInterceptorC.cpp + * tao/PortableInterceptorC.h + * tao/PortableInterceptorS.h + * tao/PortableServer.mpc + * tao/Profile.h + * tao/Profile_Transport_Resolver.h + * tao/Protocols_Hooks.h + * tao/RTCORBA.mpc + * tao/RTPortableServer.mpc + * tao/RTScheduler.mpc + * tao/Reactive_Flushing_Strategy.h + * tao/Refcounted_ObjectKey.h + * tao/Remote_Object_Proxy_Broker.cpp + * tao/ServerRequestInterceptor_Adapter.h + * tao/Services.pidl + * tao/ServicesC.cpp + * tao/ServicesC.h + * tao/ServicesS.h + * tao/ShortSeqC.cpp + * tao/ShortSeqC.h + * tao/ShortSeqS.h + * tao/SmartProxies.mpc + * tao/Special_Basic_Argument_T.cpp + * tao/Special_Basic_Argument_T.h + * tao/Special_Basic_Argument_T.inl + * tao/Special_Basic_Arguments.h + * tao/Strategies.mpc + * tao/StringSeqC.cpp + * tao/StringSeqC.h + * tao/StringSeqS.h + * tao/Synch_Invocation.cpp + * tao/Synch_Invocation.h + * tao/Synch_Queued_Message.h + * tao/Synch_Reply_Dispatcher.h + * tao/SystemException.cpp + * tao/SystemException.h + * tao/TAOC.cpp + * tao/TAOC.h + * tao/TAOS.h + * tao/TAO_Server_Request.cpp + * tao/TAO_Server_Request.h + * tao/TAO_Server_Request.i + * tao/TSS_Resources.h + * tao/TimeBaseC.h + * tao/Transport.cpp + * tao/Transport.h + * tao/TypeCodeFactory.mpc + * tao/TypeCodeFactory_Adapter.cpp + * tao/TypeCodeFactory_Adapter.h + * tao/UB_String_Argument_T.cpp + * tao/UB_String_Argument_T.h + * tao/UB_String_Argument_T.inl + * tao/UB_String_Arguments.h + * tao/ULongLongSeqC.cpp + * tao/ULongLongSeqC.h + * tao/ULongLongSeqS.h + * tao/ULongSeqC.cpp + * tao/ULongSeqC.h + * tao/ULongSeqS.h + * tao/UShortSeqC.h + * tao/UserException.cpp + * tao/UserException.h + * tao/UserException.inl + * tao/Utils.mpc + * tao/Valuetype.mpc + * tao/Valuetype_Adapter.cpp + * tao/Var_Array_Argument_T.cpp + * tao/Var_Array_Argument_T.h + * tao/Var_Array_Argument_T.inl + * tao/Var_Size_Argument_T.cpp + * tao/Var_Size_Argument_T.h + * tao/Var_Size_Argument_T.inl + * tao/WCharSeqC.cpp + * tao/WCharSeqC.h + * tao/WCharSeqS.h + * tao/WStringSeqC.cpp + * tao/WStringSeqC.h + * tao/WStringSeqS.h + * tao/Wait_On_LF_No_Upcall.h + * tao/Wait_On_Leader_Follower.h + * tao/Wait_On_Reactor.h + * tao/Wait_On_Read.h + * tao/Wait_Strategy.h + * tao/WrongTransactionC.cpp + * tao/WrongTransactionC.h + * tao/corba.h + * tao/corbafwd.h + * tao/extra_core.mpb + * tao/operation_details.cpp + * tao/operation_details.h + * tao/operation_details.i + * tao/orb.idl + * tao/orb_typesC.cpp + * tao/orb_typesC.h + * tao/orb_typesS.h + * tao/params.h + * tao/tao.mpc + * tao/BiDir_GIOP/BiDir_PolicyFactory.cpp + * tao/CodecFactory/CDR_Encaps_Codec.cpp + * tao/CodecFactory/IOP_CodecA.cpp + * tao/CodecFactory/IOP_CodecC.h + * tao/Domain/DomainS.cpp + * tao/DynamicAny/DynAny_i.cpp + * tao/DynamicAny/DynArray_i.cpp + * tao/DynamicAny/DynCommon.cpp + * tao/DynamicAny/DynEnum_i.cpp + * tao/DynamicAny/DynSequence_i.cpp + * tao/DynamicAny/DynStruct_i.cpp + * tao/DynamicAny/DynUnion_i.cpp + * tao/DynamicAny/DynamicAnyC.h + * tao/DynamicInterface/Context.cpp + * tao/DynamicInterface/DII_Arguments.cpp + * tao/DynamicInterface/DII_Arguments.h + * tao/DynamicInterface/DII_Invocation.cpp + * tao/DynamicInterface/Dynamic_Implementation.cpp + * tao/DynamicInterface/Dynamic_Implementation.h + * tao/DynamicInterface/ExceptionList.cpp + * tao/DynamicInterface/Request.cpp + * tao/DynamicInterface/Request.h + * tao/DynamicInterface/Server_Request.cpp + * tao/DynamicInterface/Unknown_User_Exception.cpp + * tao/DynamicInterface/Unknown_User_Exception.h + * tao/IFR_Client/IFR_Base.pidl + * tao/IFR_Client/IFR_BaseC.cpp + * tao/IFR_Client/IFR_BaseC.h + * tao/IFR_Client/IFR_BaseC.inl + * tao/IFR_Client/IFR_BaseS.h + * tao/IFR_Client/IFR_Basic.pidl + * tao/IFR_Client/IFR_BasicC.cpp + * tao/IFR_Client/IFR_BasicC.h + * tao/IFR_Client/IFR_BasicC.inl + * tao/IFR_Client/IFR_Client_Adapter_Impl.cpp + * tao/IFR_Client/IFR_Client_Adapter_Impl.h + * tao/IFR_Client/IFR_Components.pidl + * tao/IFR_Client/IFR_ComponentsC.cpp + * tao/IFR_Client/IFR_ComponentsC.h + * tao/IFR_Client/IFR_ComponentsC.inl + * tao/IFR_Client/IFR_Extended.pidl + * tao/IFR_Client/IFR_ExtendedC.cpp + * tao/IFR_Client/IFR_ExtendedC.h + * tao/IFR_Client/IFR_ExtendedC.inl + * tao/IORInterceptor/IORInfoC.cpp + * tao/IORManipulation/IORA.cpp + * tao/ImR_Client/ImplRepo.pidl + * tao/ImR_Client/ImplRepoA.cpp + * tao/ImR_Client/ImplRepoC.cpp + * tao/ImR_Client/ImplRepoS.cpp + * tao/ImR_Client/ServerObjectA.cpp + * tao/ImR_Client/ServerObjectS.cpp + * tao/Messaging/Connection_Timeout_Policy_i.cpp + * tao/Messaging/Messaging.cpp + * tao/Messaging/MessagingA.cpp + * tao/Messaging/MessagingC.cpp + * tao/Messaging/MessagingS.cpp + * tao/Messaging/Messaging_No_ImplA.cpp + * tao/Messaging/Messaging_PolicyFactory.cpp + * tao/Messaging/Messaging_PolicyFactory.h + * tao/Messaging/Messaging_Policy_i.cpp + * tao/Messaging/Messaging_RT_PolicyA.cpp + * tao/Messaging/Messaging_SyncScope_PolicyA.cpp + * tao/Messaging/PollableC.cpp + * tao/Messaging/TAO_ExtA.cpp + * tao/ObjRefTemplate/Default_ORTA.cpp + * tao/ObjRefTemplate/ObjectReferenceTemplateA.cpp + * tao/ObjRefTemplate/ObjectReferenceTemplateC.cpp + * tao/PI/ClientRequestInfo.cpp + * tao/PI/ClientRequestInfo.h + * tao/PI/ClientRequestInfoA.cpp + * tao/PI/ClientRequestInfoC.h + * tao/PI/ClientRequestInterceptorA.cpp + * tao/PI/InterceptorA.cpp + * tao/PI/ORBInitInfo.cpp + * tao/PI/ORBInitInfoA.cpp + * tao/PI/ORBInitializerA.cpp + * tao/PI/ORBInitializer_Registry_Impl.cpp + * tao/PI/ORBInitializer_Registry_Impl.h + * tao/PI/PI.h + * tao/PI/PIForwardRequestA.cpp + * tao/PI/PolicyFactoryA.cpp + * tao/PI/PolicyFactoryC.h + * tao/PI/RequestInfo.pidl + * tao/PI/RequestInfoA.cpp + * tao/PI/RequestInfoC.h + * tao/PI_Server/POA_Current.cpp + * tao/PI_Server/PS_CurrentA.cpp + * tao/PI_Server/ServerInterceptorAdapter.cpp + * tao/PI_Server/ServerInterceptorAdapter.h + * tao/PI_Server/ServerRequestInfo.cpp + * tao/PI_Server/ServerRequestInfoA.cpp + * tao/PI_Server/ServerRequestInfoC.h + * tao/PI_Server/ServerRequestInterceptorA.cpp + * tao/PortableServer/AdapterActivatorA.cpp + * tao/PortableServer/AdapterActivatorC.cpp + * tao/PortableServer/AdapterActivatorC.h + * tao/PortableServer/Any_SArg_Traits.h + * tao/PortableServer/BD_String_SArgument_T.cpp + * tao/PortableServer/BD_String_SArgument_T.h + * tao/PortableServer/BD_String_SArgument_T.inl + * tao/PortableServer/Basic_SArgument_T.cpp + * tao/PortableServer/Basic_SArgument_T.h + * tao/PortableServer/Basic_SArgument_T.inl + * tao/PortableServer/Basic_SArguments.h + * tao/PortableServer/Fixed_Array_SArgument_T.cpp + * tao/PortableServer/Fixed_Array_SArgument_T.h + * tao/PortableServer/Fixed_Array_SArgument_T.inl + * tao/PortableServer/Fixed_Size_SArgument_T.cpp + * tao/PortableServer/Fixed_Size_SArgument_T.h + * tao/PortableServer/Fixed_Size_SArgument_T.inl + * tao/PortableServer/ForwardRequestA.cpp + * tao/PortableServer/ForwardRequestC.cpp + * tao/PortableServer/ForwardRequestC.h + * tao/PortableServer/IdAssignmentPolicyA.cpp + * tao/PortableServer/IdAssignmentPolicyC.cpp + * tao/PortableServer/IdAssignmentPolicyC.h + * tao/PortableServer/IdUniquenessPolicyA.cpp + * tao/PortableServer/IdUniquenessPolicyC.cpp + * tao/PortableServer/IdUniquenessPolicyC.h + * tao/PortableServer/ImplicitActivationPolicyA.cpp + * tao/PortableServer/ImplicitActivationPolicyC.cpp + * tao/PortableServer/ImplicitActivationPolicyC.h + * tao/PortableServer/LifespanPolicyA.cpp + * tao/PortableServer/LifespanPolicyC.cpp + * tao/PortableServer/LifespanPolicyC.h + * tao/PortableServer/Object_SArg_Traits.h + * tao/PortableServer/Object_SArgument_T.cpp + * tao/PortableServer/Object_SArgument_T.h + * tao/PortableServer/Object_SArgument_T.inl + * tao/PortableServer/POAManagerC.cpp + * tao/PortableServer/POAManagerC.h + * tao/PortableServer/POA_Current_Impl.cpp + * tao/PortableServer/PS_ForwardA.cpp + * tao/PortableServer/PS_ForwardC.cpp + * tao/PortableServer/PS_ForwardC.h + * tao/PortableServer/PolicyS.cpp + * tao/PortableServer/PortableServer.h + * tao/PortableServer/PortableServerA.cpp + * tao/PortableServer/PortableServerC.cpp + * tao/PortableServer/PortableServerC.h + * tao/PortableServer/PortableServerS.h + * tao/PortableServer/PortableServer_includeC.h + * tao/PortableServer/PortableServer_includeS.h + * tao/PortableServer/RequestProcessingPolicyA.cpp + * tao/PortableServer/RequestProcessingPolicyC.cpp + * tao/PortableServer/RequestProcessingPolicyC.h + * tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp + * tao/PortableServer/Root_POA.cpp + * tao/PortableServer/ServantActivatorA.cpp + * tao/PortableServer/ServantActivatorC.cpp + * tao/PortableServer/ServantActivatorC.h + * tao/PortableServer/ServantLocatorA.cpp + * tao/PortableServer/ServantLocatorC.cpp + * tao/PortableServer/ServantLocatorC.h + * tao/PortableServer/ServantManagerA.cpp + * tao/PortableServer/ServantManagerC.cpp + * tao/PortableServer/ServantManagerC.h + * tao/PortableServer/ServantRetentionPolicyA.cpp + * tao/PortableServer/ServantRetentionPolicyC.cpp + * tao/PortableServer/ServantRetentionPolicyC.h + * tao/PortableServer/Servant_Base.cpp + * tao/PortableServer/Special_Basic_SArgument_T.cpp + * tao/PortableServer/Special_Basic_SArgument_T.h + * tao/PortableServer/Special_Basic_SArgument_T.inl + * tao/PortableServer/Special_Basic_SArguments.h + * tao/PortableServer/ThreadPolicyA.cpp + * tao/PortableServer/ThreadPolicyC.cpp + * tao/PortableServer/ThreadPolicyC.h + * tao/PortableServer/TypeCode_SArg_Traits.h + * tao/PortableServer/UB_String_SArgument_T.cpp + * tao/PortableServer/UB_String_SArgument_T.h + * tao/PortableServer/UB_String_SArguments.h + * tao/PortableServer/Upcall_Wrapper.cpp + * tao/PortableServer/Var_Array_SArgument_T.cpp + * tao/PortableServer/Var_Array_SArgument_T.h + * tao/PortableServer/Var_Array_SArgument_T.inl + * tao/PortableServer/Var_Size_SArgument_T.cpp + * tao/PortableServer/Var_Size_SArgument_T.h + * tao/PortableServer/Var_Size_SArgument_T.inl + * tao/RTCORBA/RTCORBAA.cpp + * tao/RTCORBA/RT_Policy_i.cpp + * tao/RTCORBA/RT_Thread_Lane_Resources_Manager.cpp + * tao/RTPortableServer/RTPortableServerA.cpp + * tao/RTScheduling/Current.cpp + * tao/RTScheduling/RTSchedulerA.cpp + * tao/RTScheduling/RTSchedulerC.cpp + * tao/RTScheduling/Request_Interceptor.cpp + * tao/Strategies/sciop_endpointsC.cpp + * tao/Strategies/uiop_endpointsC.cpp + * tao/TypeCodeFactory/Recursive_TypeCode.h + * tao/TypeCodeFactory/TypeCodeFactoryA.cpp + * tao/TypeCodeFactory/TypeCodeFactoryC.h + * tao/TypeCodeFactory/TypeCodeFactory_i.cpp + * tao/Valuetype/AbstractBase.h + * tao/Valuetype/StringValueC.cpp + * tao/Valuetype/ValueBase.cpp + * tao/Valuetype/ValueBase.h + * tests/AMI_Buffering/AMI_Buffering.mpc + * tests/AMI_Buffering/client.cpp + * tests/AMI_Timeouts/AMI_Timeouts.mpc + * tests/AMI_Timeouts/timeout_client.cpp + * tests/Any/Recursive/RecursiveHello.mpc + * tests/BiDirectional/BiDirectional.mpc + * tests/BiDirectional/client.cpp + * tests/BiDirectional/server.cpp + * tests/BiDirectional_MultipleORB/destroy.cpp + * tests/BiDirectional_MultipleORB/destroy.mpc + * tests/BiDirectional_NestedUpcall/client.cpp + * tests/BiDirectional_NestedUpcall/server.cpp + * tests/Big_Reply/Big_Reply.mpc + * tests/Big_Request_Muxing/Client_Task.cpp + * tests/Blocking_Sync_None/client.cpp + * tests/Bug_1020_Basic_Regression/client.cpp + * tests/Bug_1020_Regression/client.cpp + * tests/Bug_1269_Regression/client.cpp + * tests/Bug_1270_Regression/client.cpp + * tests/Bug_1361_Regression/client.cpp + * tests/Bug_1476_Regression/Client_Task.cpp + * tests/Bug_1476_Regression/client.cpp + * tests/Bug_1482_Regression/client.cpp + * tests/Bug_1551_Regression/client.cpp + * tests/Bug_1627_Regression/test.mpc + * tests/Bug_2174_Regression/Bug_2174_Regression.mpc + * tests/Bug_2183_Regression/Bug_2183_Regression.mpc + * tests/CDR/CDR.mpc + * tests/CDR/basic_types.cpp + * tests/CDR/tc.cpp + * tests/Client_Leaks/Client_Leaks.mpc + * tests/CodeSets/simple/CodeSets_simple.mpc + * tests/Collocation/Collocation.mpc + * tests/Collocation_Oneway_Tests/Client_Task.cpp + * tests/Connection_Timeout/client.cpp + * tests/Crashed_Callback/client.cpp + * tests/Crashed_Callback/server.cpp + * tests/DLL_ORB/DLL_ORB.mpc + * tests/DynAny_Test/data.cpp + * tests/DynAny_Test/data.h + * tests/File_IO/File_IO.mpc + * tests/Forwarding/Forwarding.mpc + * tests/Hello/Hello.mpc + * tests/IDL_Test/IDL_Test.mpc + * tests/IDL_Test/main.cpp + * tests/InterOp-Naming/InterOp-Naming.mpc + * tests/MProfile_Connection_Timeout/client.cpp + * tests/MProfile_Forwarding/MProfile_Forwarding.mpc + * tests/MT_BiDir/client.cpp + * tests/MT_BiDir/server.cpp + * tests/MT_Client/MT_Client.mpc + * tests/MT_Server/MT_Server.mpc + * tests/MT_Timeout/Client_Task.cpp + * tests/Muxing/Muxing.mpc + * tests/Native_Exceptions/Native_Exceptions.mpc + * tests/Nested_Upcall_Crash/client.cpp + * tests/Nested_Upcall_Crash/scavenger.cpp + * tests/Nested_Upcall_Crash/server.cpp + * tests/No_Server_MT_Connect_Test/No_Server_Connect_Test.mpc + * tests/ORT/ORT.mpc + * tests/Objref_Sequence_Test/Objref_Sequence_Test.mpc + * tests/OctetSeq/OctetSeq.mpc + * tests/Oneway_Buffering/client.cpp + * tests/POA/Current/Current.mpc + * tests/POA/MT_Servant_Locator/MT_Servant_Locator.cpp + * tests/POA/Policies/Policies.cpp + * tests/Param_Test/Param_Test.mpc + * tests/Param_Test/param_test.idl + * tests/Policies/Manipulation.cpp + * tests/Portable_Interceptors/Benchmark/client_interceptors.cpp + * tests/Portable_Interceptors/Benchmark/server_interceptors.cpp + * tests/Portable_Interceptors/Collocated/Dynamic/interceptors.cpp + * tests/Portable_Interceptors/Dynamic/client_interceptor.cpp + * tests/Portable_Interceptors/Dynamic/server_interceptor.cpp + * tests/Portable_Interceptors/ForwardRequest/test.idl + * tests/Portable_Interceptors/IORInterceptor/FOO_ClientRequestInterceptor.cpp + * tests/Portable_Interceptors/IORInterceptor/PI_IORInterceptor.mpc + * tests/Portable_Interceptors/PICurrent/ServerRequestInterceptor.h + * tests/Portable_Interceptors/PICurrent/client.cpp + * tests/Portable_Interceptors/PICurrent/test_i.h + * tests/Portable_Interceptors/PolicyFactory/PolicyFactory.cpp + * tests/Portable_Interceptors/Request_Interceptor_Flow/Client_Request_Interceptor.cpp + * tests/Portable_Interceptors/Request_Interceptor_Flow/Server_Request_Interceptor.cpp + * tests/RTCORBA/Persistent_IOR/RTCORBA_Persistent_IOR.mpc + * tests/RTCORBA/Policies/Policies.cpp + * tests/Reliable_Oneways/client.cpp + * tests/Server_Leaks/Server_Leaks.mpc + * tests/Stack_Recursion/Stack_Recursion.mpc + * tests/Timed_Buffered_Oneways/client.cpp + * tests/Timeout/client.cpp + * tests/Two_Objects/Two_Objects.mpc + * tests/Typedef_String_Array/typedef_string_array.mpc + * tests/UNKNOWN_Exception/UNKNOWN_Exception.mpc + * utils/catior/catior.cpp + Updated these files because of the AnyTypeCode refactoring + + * tao/AnyTypeCode/Alias_TypeCode.cpp + * tao/AnyTypeCode/Alias_TypeCode.h + * tao/AnyTypeCode/Alias_TypeCode.inl + * tao/AnyTypeCode/Alias_TypeCode_Static.cpp + * tao/AnyTypeCode/Alias_TypeCode_Static.h + * tao/AnyTypeCode/Alias_TypeCode_Static.inl + * tao/AnyTypeCode/Any.cpp + * tao/AnyTypeCode/Any.h + * tao/AnyTypeCode/Any.inl + * tao/AnyTypeCode/AnySeq.pidl + * tao/AnyTypeCode/AnySeqA.cpp + * tao/AnyTypeCode/AnySeqA.h + * tao/AnyTypeCode/AnySeqC.cpp + * tao/AnyTypeCode/AnySeqC.h + * tao/AnyTypeCode/AnySeqS.h + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.cpp + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.h + * tao/AnyTypeCode/AnyTypeCode_methods.h + * tao/AnyTypeCode/Any_Arg_Traits.h + * tao/AnyTypeCode/Any_Array_Impl_T.cpp + * tao/AnyTypeCode/Any_Array_Impl_T.h + * tao/AnyTypeCode/Any_Array_Impl_T.inl + * tao/AnyTypeCode/Any_Basic_Impl.cpp + * tao/AnyTypeCode/Any_Basic_Impl.h + * tao/AnyTypeCode/Any_Basic_Impl_T.cpp + * tao/AnyTypeCode/Any_Basic_Impl_T.h + * tao/AnyTypeCode/Any_Basic_Impl_T.inl + * tao/AnyTypeCode/Any_Dual_Impl_T.cpp + * tao/AnyTypeCode/Any_Dual_Impl_T.h + * tao/AnyTypeCode/Any_Dual_Impl_T.inl + * tao/AnyTypeCode/Any_Impl.cpp + * tao/AnyTypeCode/Any_Impl.h + * tao/AnyTypeCode/Any_Impl_T.cpp + * tao/AnyTypeCode/Any_Impl_T.h + * tao/AnyTypeCode/Any_Impl_T.inl + * tao/AnyTypeCode/Any_Special_Impl_T.cpp + * tao/AnyTypeCode/Any_Special_Impl_T.h + * tao/AnyTypeCode/Any_Special_Impl_T.inl + * tao/AnyTypeCode/Any_SystemException.cpp + * tao/AnyTypeCode/Any_SystemException.h + * tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp + * tao/AnyTypeCode/Any_Unknown_IDL_Type.h + * tao/AnyTypeCode/BooleanSeqA.cpp + * tao/AnyTypeCode/BooleanSeqA.h + * tao/AnyTypeCode/Bounds.pidl + * tao/AnyTypeCode/BoundsA.cpp + * tao/AnyTypeCode/BoundsA.h + * tao/AnyTypeCode/BoundsC.cpp + * tao/AnyTypeCode/BoundsC.h + * tao/AnyTypeCode/CONV_FRAMEA.cpp + * tao/AnyTypeCode/CONV_FRAMEA.h + * tao/AnyTypeCode/CharSeqA.cpp + * tao/AnyTypeCode/CharSeqA.h + * tao/AnyTypeCode/CurrentA.cpp + * tao/AnyTypeCode/CurrentA.h + * tao/AnyTypeCode/DomainA.cpp + * tao/AnyTypeCode/DomainA.h + * tao/AnyTypeCode/DoubleSeqA.cpp + * tao/AnyTypeCode/DoubleSeqA.h + * tao/AnyTypeCode/Dynamic.pidl + * tao/AnyTypeCode/DynamicA.cpp + * tao/AnyTypeCode/DynamicA.h + * tao/AnyTypeCode/DynamicC.cpp + * tao/AnyTypeCode/DynamicC.h + * tao/AnyTypeCode/DynamicS.h + * tao/AnyTypeCode/Dynamic_Parameter.pidl + * tao/AnyTypeCode/Dynamic_ParameterA.cpp + * tao/AnyTypeCode/Dynamic_ParameterA.h + * tao/AnyTypeCode/Dynamic_ParameterC.cpp + * tao/AnyTypeCode/Dynamic_ParameterC.h + * tao/AnyTypeCode/Empty_Param_TypeCode.cpp + * tao/AnyTypeCode/Empty_Param_TypeCode.h + * tao/AnyTypeCode/Empty_Param_TypeCode.inl + * tao/AnyTypeCode/Enum_TypeCode.cpp + * tao/AnyTypeCode/Enum_TypeCode.h + * tao/AnyTypeCode/Enum_TypeCode.inl + * tao/AnyTypeCode/Enum_TypeCode_Static.cpp + * tao/AnyTypeCode/Enum_TypeCode_Static.h + * tao/AnyTypeCode/Enum_TypeCode_Static.inl + * tao/AnyTypeCode/ExceptionA.cpp + * tao/AnyTypeCode/ExceptionA.h + * tao/AnyTypeCode/Fixed_TypeCode.cpp + * tao/AnyTypeCode/Fixed_TypeCode.h + * tao/AnyTypeCode/Fixed_TypeCode.inl + * tao/AnyTypeCode/FloatSeqA.cpp + * tao/AnyTypeCode/FloatSeqA.h + * tao/AnyTypeCode/GIOPA.cpp + * tao/AnyTypeCode/GIOPA.h + * tao/AnyTypeCode/IIOPA.cpp + * tao/AnyTypeCode/IIOPA.h + * tao/AnyTypeCode/IIOP_EndpointsA.cpp + * tao/AnyTypeCode/IIOP_EndpointsA.h + * tao/AnyTypeCode/IOPA.cpp + * tao/AnyTypeCode/IOPA.h + * tao/AnyTypeCode/IOP_IORA.cpp + * tao/AnyTypeCode/IOP_IORA.h + * tao/AnyTypeCode/LongDoubleSeqA.cpp + * tao/AnyTypeCode/LongDoubleSeqA.h + * tao/AnyTypeCode/LongLongSeqA.cpp + * tao/AnyTypeCode/LongLongSeqA.h + * tao/AnyTypeCode/LongSeqA.cpp + * tao/AnyTypeCode/LongSeqA.h + * tao/AnyTypeCode/Marshal.cpp + * tao/AnyTypeCode/Marshal.h + * tao/AnyTypeCode/Marshal.inl + * tao/AnyTypeCode/Messaging_PolicyValueA.cpp + * tao/AnyTypeCode/Messaging_PolicyValueA.h + * tao/AnyTypeCode/Messaging_SyncScopeA.h + * tao/AnyTypeCode/NVList.cpp + * tao/AnyTypeCode/NVList.h + * tao/AnyTypeCode/NVList.inl + * tao/AnyTypeCode/NVList_Adapter_Impl.cpp + * tao/AnyTypeCode/NVList_Adapter_Impl.h + * tao/AnyTypeCode/Null_RefCount_Policy.h + * tao/AnyTypeCode/ObjectIdListA.cpp + * tao/AnyTypeCode/ObjectIdListA.h + * tao/AnyTypeCode/Objref_TypeCode.cpp + * tao/AnyTypeCode/Objref_TypeCode.h + * tao/AnyTypeCode/Objref_TypeCode.inl + * tao/AnyTypeCode/Objref_TypeCode_Static.cpp + * tao/AnyTypeCode/Objref_TypeCode_Static.h + * tao/AnyTypeCode/Objref_TypeCode_Static.inl + * tao/AnyTypeCode/OctetSeqA.cpp + * tao/AnyTypeCode/OctetSeqA.h + * tao/AnyTypeCode/PI_ForwardA.cpp + * tao/AnyTypeCode/PI_ForwardA.h + * tao/AnyTypeCode/ParameterModeA.cpp + * tao/AnyTypeCode/ParameterModeA.h + * tao/AnyTypeCode/PolicyA.cpp + * tao/AnyTypeCode/PolicyA.h + * tao/AnyTypeCode/Policy_ForwardA.cpp + * tao/AnyTypeCode/Policy_ForwardA.h + * tao/AnyTypeCode/PortableInterceptorA.cpp + * tao/AnyTypeCode/PortableInterceptorA.h + * tao/AnyTypeCode/Recursive_Type_TypeCode.cpp + * tao/AnyTypeCode/Recursive_Type_TypeCode.h + * tao/AnyTypeCode/Recursive_Type_TypeCode.inl + * tao/AnyTypeCode/RefCount_Policy_Traits.h + * tao/AnyTypeCode/Sequence_TypeCode.cpp + * tao/AnyTypeCode/Sequence_TypeCode.h + * tao/AnyTypeCode/Sequence_TypeCode.inl + * tao/AnyTypeCode/Sequence_TypeCode_Static.cpp + * tao/AnyTypeCode/Sequence_TypeCode_Static.h + * tao/AnyTypeCode/Sequence_TypeCode_Static.inl + * tao/AnyTypeCode/ServicesA.cpp + * tao/AnyTypeCode/ServicesA.h + * tao/AnyTypeCode/ShortSeqA.cpp + * tao/AnyTypeCode/ShortSeqA.h + * tao/AnyTypeCode/StringSeqA.cpp + * tao/AnyTypeCode/StringSeqA.h + * tao/AnyTypeCode/String_TypeCode.cpp + * tao/AnyTypeCode/String_TypeCode.h + * tao/AnyTypeCode/String_TypeCode.inl + * tao/AnyTypeCode/String_TypeCode_Static.cpp + * tao/AnyTypeCode/String_TypeCode_Static.h + * tao/AnyTypeCode/String_TypeCode_Static.inl + * tao/AnyTypeCode/String_TypeCode_Traits.h + * tao/AnyTypeCode/Struct_TypeCode.cpp + * tao/AnyTypeCode/Struct_TypeCode.h + * tao/AnyTypeCode/Struct_TypeCode.inl + * tao/AnyTypeCode/Struct_TypeCode_Static.cpp + * tao/AnyTypeCode/Struct_TypeCode_Static.h + * tao/AnyTypeCode/Struct_TypeCode_Static.inl + * tao/AnyTypeCode/SystemExceptionA.cpp + * tao/AnyTypeCode/SystemExceptionA.h + * tao/AnyTypeCode/TAOA.cpp + * tao/AnyTypeCode/TAOA.h + * tao/AnyTypeCode/TAO_AnyTypeCode_Export.h + * tao/AnyTypeCode/TC_Constants_Forward.h + * tao/AnyTypeCode/TimeBaseA.cpp + * tao/AnyTypeCode/TimeBaseA.h + * tao/AnyTypeCode/True_RefCount_Policy.cpp + * tao/AnyTypeCode/True_RefCount_Policy.h + * tao/AnyTypeCode/True_RefCount_Policy.inl + * tao/AnyTypeCode/TypeCode.cpp + * tao/AnyTypeCode/TypeCode.h + * tao/AnyTypeCode/TypeCode.inl + * tao/AnyTypeCode/TypeCodeA.cpp + * tao/AnyTypeCode/TypeCode_Base_Attributes.cpp + * tao/AnyTypeCode/TypeCode_Base_Attributes.h + * tao/AnyTypeCode/TypeCode_Base_Attributes.inl + * tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp + * tao/AnyTypeCode/TypeCode_CDR_Extraction.h + * tao/AnyTypeCode/TypeCode_Case_Base_T.cpp + * tao/AnyTypeCode/TypeCode_Case_Base_T.h + * tao/AnyTypeCode/TypeCode_Case_Base_T.inl + * tao/AnyTypeCode/TypeCode_Case_T.cpp + * tao/AnyTypeCode/TypeCode_Case_T.h + * tao/AnyTypeCode/TypeCode_Case_T.inl + * tao/AnyTypeCode/TypeCode_Constants.cpp + * tao/AnyTypeCode/TypeCode_Constants.h + * tao/AnyTypeCode/TypeCode_Struct_Field.h + * tao/AnyTypeCode/TypeCode_Traits.h + * tao/AnyTypeCode/TypeCode_Value_Field.h + * tao/AnyTypeCode/Typecode_typesA.h + * tao/AnyTypeCode/ULongLongSeqA.cpp + * tao/AnyTypeCode/ULongLongSeqA.h + * tao/AnyTypeCode/ULongSeqA.cpp + * tao/AnyTypeCode/ULongSeqA.h + * tao/AnyTypeCode/UShortSeqA.cpp + * tao/AnyTypeCode/UShortSeqA.h + * tao/AnyTypeCode/Union_TypeCode.cpp + * tao/AnyTypeCode/Union_TypeCode.h + * tao/AnyTypeCode/Union_TypeCode.inl + * tao/AnyTypeCode/Union_TypeCode_Static.cpp + * tao/AnyTypeCode/Union_TypeCode_Static.h + * tao/AnyTypeCode/Union_TypeCode_Static.inl + * tao/AnyTypeCode/ValueModifier.pidl + * tao/AnyTypeCode/ValueModifierA.cpp + * tao/AnyTypeCode/ValueModifierA.h + * tao/AnyTypeCode/ValueModifierC.cpp + * tao/AnyTypeCode/ValueModifierC.h + * tao/AnyTypeCode/ValueModifierS.h + * tao/AnyTypeCode/Value_TypeCode.cpp + * tao/AnyTypeCode/Value_TypeCode.h + * tao/AnyTypeCode/Value_TypeCode.inl + * tao/AnyTypeCode/Value_TypeCode_Static.cpp + * tao/AnyTypeCode/Value_TypeCode_Static.h + * tao/AnyTypeCode/Value_TypeCode_Static.inl + * tao/AnyTypeCode/Visibility.pidl + * tao/AnyTypeCode/VisibilityA.cpp + * tao/AnyTypeCode/VisibilityA.h + * tao/AnyTypeCode/VisibilityC.cpp + * tao/AnyTypeCode/VisibilityC.h + * tao/AnyTypeCode/VisibilityS.h + * tao/AnyTypeCode/WCharSeqA.cpp + * tao/AnyTypeCode/WCharSeqA.h + * tao/AnyTypeCode/WStringSeqA.cpp + * tao/AnyTypeCode/WStringSeqA.h + * tao/AnyTypeCode/WrongTransactionA.cpp + * tao/AnyTypeCode/WrongTransactionA.h + * tao/AnyTypeCode/append.cpp + * tao/AnyTypeCode/orb_typesA.cpp + * tao/AnyTypeCode/orb_typesA.h + * tao/AnyTypeCode/skip.cpp + * examples/Kokyu_dsrt_schedulers/EDF_Scheduling.idl + * tao/AnyTypeCode.mpc + * tao/AnyTypeCode_Adapter.cpp + * tao/AnyTypeCode_Adapter.h + * tao/Any_Insert_Policy_T.h + * tao/NVList_Adapter.cpp + * tao/NVList_Adapter.h + * tao/IFR_Client/IFR_BaseA.h + * tao/IFR_Client/IFR_BasicA.h + * tao/IFR_Client/IFR_ComponentsA.h + * tao/ObjRefTemplate/ObjectReferenceTemplate_includeA.h + * tao/PI/InvalidSlot.pidl + * tao/PI/InvalidSlotA.cpp + * tao/PI/InvalidSlotA.h + * tao/PI/InvalidSlotC.cpp + * tao/PI/InvalidSlotC.h + * tao/PI/InvalidSlotS.h + * tao/PortableServer/PortableServer_includeA.h + * tao/PortableServer/RequestProcessingPolicyA.h + * tao/PortableServer/SArg_Traits_T.h + * tao/PortableServer/ServantActivatorA.h + * tao/PortableServer/ServantLocatorA.h + * tao/PortableServer/ServantManagerA.h + * tao/PortableServer/ServantRetentionPolicyA.h + * tao/PortableServer/ThreadPolicyA.h + * tao/PI/PICurrent.cpp + * tao/PI/PICurrent.h + * tao/PI/PICurrent.inl + * tao/PI/PICurrent.pidl + * tao/PI/PICurrentA.cpp + * tao/PI/PICurrentA.h + * tao/PI/PICurrentC.cpp + * tao/PI/PICurrentC.h + * tao/PI/PICurrentS.h + * tao/PI/PICurrent_Copy_Callback.cpp + * tao/PI/PICurrent_Copy_Callback.h + * tao/PI/PICurrent_Impl.cpp + * tao/PI/PICurrent_Impl.h + * tao/PI/PICurrent_Impl.inl + * tao/PI/PICurrent_Loader.cpp + * tao/PI/PICurrent_Loader.h + * tao/RTCORBA/RTCORBA_includeA.h + * tao/ImR_Client/ImplRepoA.h + * tao/IFR_Client/IFR_ExtendedA.h + * tao/RTScheduling/RTScheduler_includeA.h + * tao/PortableServer/ForwardRequestA.h + * tao/PortableServer/IdAssignmentPolicyA.h + * tao/PortableServer/IdUniquenessPolicyA.h + * tao/ImR_Client/ServerObjectA.h + * tao/PortableServer/ImplicitActivationPolicyA.h + * tao/PortableServer/LifespanPolicyA.h + * tao/PortableServer/AdapterActivatorA.h + * tao/PortableServer/PS_ForwardA.h + * tao/PI/RequestInfo_Util.cpp + * tao/PI/RequestInfo_Util.h + * tao/PI_Server/PICurrent_Guard.cpp + * tao/PI_Server/PICurrent_Guard.h + * tao/PI_Server/PI_Server_include.pidl + * tao/PI_Server/PI_Server_includeA.h + * tao/PI_Server/PI_Server_includeC.h + * tao/PI_Server/PI_Server_includeS.h + Added these files to the repo + + * tao/UShortSeqA.cpp + * tao/Union_TypeCode.cpp + * tao/Union_TypeCode.h + * tao/Union_TypeCode.inl + * tao/Union_TypeCode_Static.cpp + * tao/Union_TypeCode_Static.h + * tao/Union_TypeCode_Static.inl + * tao/Dynamic.pidl + * tao/DynamicA.cpp + * tao/DynamicC.cpp + * tao/DynamicC.h + * tao/DynamicS.h + * tao/Dynamic_Parameter.pidl + * tao/Dynamic_ParameterA.cpp + * tao/Dynamic_ParameterC.cpp + * tao/Dynamic_ParameterC.h + * tao/Empty_Param_TypeCode.cpp + * tao/Empty_Param_TypeCode.h + * tao/Empty_Param_TypeCode.inl + * tao/Enum_TypeCode.cpp + * tao/Enum_TypeCode.h + * tao/Enum_TypeCode.inl + * tao/Enum_TypeCode_Static.cpp + * tao/Enum_TypeCode_Static.h + * tao/Enum_TypeCode_Static.inl + * tao/Valuetype/Seq_Tmplinst.cpp + * TAO_IDL/be/be_visitor_tmplinst.cpp + * TAO_IDL/be/be_visitor_tmplinst/arg_tmplinst.cpp + * TAO_IDL/be/be_visitor_tmplinst/tmplinst.cpp + * TAO_IDL/be/be_visitor_tmplinst/tmplinst_cs.cpp + * TAO_IDL/be/be_visitor_tmplinst/tmplinst_ss.cpp + * examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl + * examples/Kokyu_dsrt_schedulers/EDF_SchedulingC.cpp + * examples/Kokyu_dsrt_schedulers/EDF_SchedulingC.h + * examples/Kokyu_dsrt_schedulers/EDF_SchedulingC.h.diff + * examples/Kokyu_dsrt_schedulers/EDF_SchedulingC.i + * TAO_IDL/be_include/be_visitor_tmplinst.h + * TAO_IDL/be_include/be_visitor_tmplinst/arg_tmplinst.h + * TAO_IDL/be_include/be_visitor_tmplinst/tmplinst.h + * TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_cs.h + * TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_ss.h + * tao/ULongSeqA.cpp + * orbsvcs/orbsvcs/IFRService/tmplinst.cpp + * tao/Alias_TypeCode.cpp + * tao/Alias_TypeCode.h + * tao/Alias_TypeCode.inl + * tao/Alias_TypeCode_Static.cpp + * tao/Alias_TypeCode_Static.h + * tao/Alias_TypeCode_Static.inl + * tao/Any.cpp + * tao/Any.h + * tao/Any.i + * tao/AnySeq.pidl + * tao/AnySeqA.cpp + * tao/AnySeqC.cpp + * tao/AnySeqC.h + * tao/AnySeqS.h + * tao/Any_Arg_Traits.h + * tao/Any_Array_Impl_T.cpp + * tao/Any_Array_Impl_T.h + * tao/Any_Array_Impl_T.inl + * tao/Any_Basic_Impl.cpp + * tao/Any_Basic_Impl.h + * tao/Any_Basic_Impl_T.cpp + * tao/SystemExceptionA.cpp + * tao/TAOA.cpp + * tao/IFR_Client/IFR_ExtendedA.cpp + * tao/Any_Basic_Impl_T.h + * tao/Any_Basic_Impl_T.inl + * tao/Any_Dual_Impl_T.cpp + * tao/Any_Dual_Impl_T.h + * tao/Any_Dual_Impl_T.inl + * tao/Any_Impl.cpp + * tao/Any_Impl.h + * tao/Any_Impl_T.cpp + * tao/Any_Impl_T.h + * tao/Any_Impl_T.inl + * tao/IFR_Client/IFR_ComponentsA.cpp + * tao/IFR_Client/IFR_BaseA.cpp + * tao/IFR_Client/IFR_BasicA.cpp + * tao/ValueModifier.pidl + * tao/ValueModifierC.cpp + * tao/ValueModifierC.h + * tao/ValueModifierS.h + * tao/Value_TypeCode.cpp + * tao/Value_TypeCode.h + * tao/Value_TypeCode.inl + * tao/Value_TypeCode_Static.cpp + * tao/Value_TypeCode_Static.h + * tao/Value_TypeCode_Static.inl + * tao/Any_Special_Impl_T.cpp + * tao/Any_Special_Impl_T.h + * tao/Any_Special_Impl_T.inl + * tao/Any_SystemException.cpp + * tao/Any_SystemException.h + * tao/Any_Unknown_IDL_Type.cpp + * tao/Any_Unknown_IDL_Type.h + * tao/BooleanSeqA.cpp + * tao/Bounds.pidl + * tao/BoundsA.cpp + * tao/BoundsC.cpp + * tao/BoundsC.h + * tao/CONV_FRAMEA.cpp + * tao/CurrentA.cpp + * tao/DomainA.cpp + * tao/DoubleSeqA.cpp + * tao/PortableServer/PICurrent_Guard.cpp + * tao/PortableServer/PICurrent_Guard.h + * tao/PortableServer/POAManagerA.cpp + * tao/TC_Constants_Forward.h + * tao/TimeBaseA.cpp + * tao/True_RefCount_Policy.cpp + * tao/True_RefCount_Policy.h + * tao/True_RefCount_Policy.inl + * tao/TypeCode.h + * tao/TypeCode.inl + * tao/TypeCodeA.cpp + * tao/TypeCode_Base_Attributes.cpp + * tao/TypeCode_Base_Attributes.h + * tao/TypeCode_Base_Attributes.inl + * tao/TypeCode_CDR_Extraction.cpp + * tao/Visibility.pidl + * tao/VisibilityC.cpp + * tao/VisibilityC.h + * tao/VisibilityS.h + * tao/WCharSeqA.cpp + * tao/WStringSeqA.cpp + * tao/WrongTransactionA.cpp + * tao/append.cpp + * tao/skip.cpp + * tao/TypeCode_CDR_Extraction.h + * tao/TypeCode_Case.cpp + * tao/TypeCode_Case.h + * tao/TypeCode_Case.inl + * tao/TypeCode_Case_T.cpp + * tao/TypeCode_Case_T.h + * tao/TypeCode_Case_T.inl + * tao/TypeCode_Constants.cpp + * tao/TypeCode_Constants.h + * tao/TypeCode_Struct_Field.h + * tao/TypeCode_Traits.h + * tao/TypeCode_Value_Field.h + * tao/ULongLongSeqA.cpp + * tao/CharSeqA.cpp + * tao/Fixed_TypeCode.cpp + * tao/Fixed_TypeCode.h + * tao/Fixed_TypeCode.inl + * tao/FloatSeqA.cpp + * tao/GIOPA.cpp + * tao/IIOPA.cpp + * tao/IIOP_EndpointsA.cpp + * tao/IOP_IORA.cpp + * tao/InvalidSlot.pidl + * tao/InvalidSlotA.cpp + * tao/InvalidSlotC.cpp + * tao/InvalidSlotC.h + * tao/InvalidSlotS.h + * tao/Marshal.cpp + * tao/LongSeqA.cpp + * tao/LongDoubleSeqA.cpp + * tao/LongLongSeqA.cpp + * tao/Marshal.h + * tao/Marshal.i + * tao/Messaging_PolicyValueA.cpp + * tao/NVList.cpp + * tao/NVList.h + * tao/NVList.i + * tao/Null_RefCount_Policy.h + * tao/ObjectIdListA.cpp + * tao/Objref_TypeCode.cpp + * tao/Objref_TypeCode.h + * tao/Objref_TypeCode.inl + * tao/Objref_TypeCode_Static.cpp + * tao/Objref_TypeCode_Static.h + * tao/Objref_TypeCode_Static.inl + * tao/OctetSeqA.cpp + * tao/PICurrent.cpp + * tao/PICurrent.h + * tao/PICurrent.inl + * tao/PICurrent.pidl + * tao/PICurrentA.cpp + * tao/PICurrentC.cpp + * tao/PICurrentC.h + * tao/PICurrentS.h + * tao/PICurrent_Copy_Callback.cpp + * tao/PICurrent_Copy_Callback.h + * tao/PICurrent_Impl.cpp + * tao/PICurrent_Impl.h + * tao/PICurrent_Impl.inl + * tao/PICurrent_Loader.cpp + * tao/PICurrent_Loader.h + * tao/ParameterModeA.cpp + * tao/PolicyA.cpp + * tao/Policy_ForwardA.cpp + * tao/Recursive_Type_TypeCode.cpp + * tao/Recursive_Type_TypeCode.h + * tao/Recursive_Type_TypeCode.inl + * tao/RefCount_Policy_Traits.h + * tao/RequestInfo_Util.cpp + * tao/RequestInfo_Util.h + * tao/Sequence_TypeCode.cpp + * tao/Sequence_TypeCode.h + * tao/Sequence_TypeCode.inl + * tao/Sequence_TypeCode_Static.cpp + * tao/Sequence_TypeCode_Static.h + * tao/Sequence_TypeCode_Static.inl + * tao/ServicesA.cpp + * tao/ShortSeqA.cpp + * tao/StringSeqA.cpp + * tao/String_TypeCode.cpp + * tao/String_TypeCode.h + * tao/String_TypeCode.inl + * tao/String_TypeCode_Static.cpp + * tao/String_TypeCode_Static.h + * tao/String_TypeCode_Static.inl + * tao/String_TypeCode_Traits.h + * tao/Struct_TypeCode.cpp + * tao/Struct_TypeCode.h + * tao/Struct_TypeCode.inl + * tao/Struct_TypeCode_Static.cpp + * tao/Struct_TypeCode_Static.h + * tao/Struct_TypeCode_Static.inl + Removed these files from the repo + + Thu Aug 18 14:28:45 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * examples/Simulator/Event_Supplier/Event_Con.cpp: + + Removed uses of Any::value() and replaced them with the + generated extraction operator. + + Thu Aug 18 07:43:16 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_arg_traits.cpp: + * TAO_IDL/be_include/be_visitor_arg_traits.h: + When Any generation is not enabled, generate Any_Insert_Policy_Noop + as insert policy for the any, that way we don't get dependent + on the AnyTypeCode library + + Wed Aug 17 13:27:16 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + + In generating the include of *C.h in *A.h, added generation + of the prefix "tao/" if we are processing a .pidl file, since + in that case, the *A.h file will not be in the same directory. + + Wed Aug 17 12:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp: + Generate explicit casts to suppress warnings at level 4 with msvc7 + + Wed Aug 17 10:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Upcall_Wrapper.cpp: + * tao/ServerRequestInterceptor_Adapter.h: + * tao/TAO_Server_Request.{h,cpp,i}: + * tao/PI_Server/ServerInterceptorAdapter.{h,cpp}: + Made PICurrent working again + + Wed Aug 17 08:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_arg_traits.cpp + * tao/AnyTypeCode_Adapter.h + * tao/BD_String_Argument_T.h + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.cpp + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.h + * tao/PortableServer/BD_String_SArgument_T.h + Removed the specialization for bound (w)string from the TAO + lib and just generate the full Arg_Trait in the IDL compiler, + this makes it not needed anymore to have an insertion + method for the bound (w)string in the AnyTypeCode adapter + + Tue Aug 16 20:03:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_interface_fwd/any_op_ch.cpp: + Generate the correct export macro + + Tue Aug 16 19:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/*: + Regenerated + + Tue Aug 16 18:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + Removed pragma push/pop for msvs, those warnings are already + disabled in general + + * tao/Array_VarOut_T.{h,inl}: + In the TAO_Array_Forany_T make the pointer in the constructor + const to get things compiling with the new any insertion + + Mon Aug 15 19:56:10 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_nodule/module_ch.cpp: + + Where namespace openings and closings are generated, add + generation of the same openings and closings in the *A.h + file, if the -GA option is being used. This change ensures + that typecode declarations for types nested in one or more + modules will themselves appear in the same scope. + + Mon Aug 15 19:52:50 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/PI/PICurrent_Loader.cpp: + * tao/PI/PICurrent_Loader.h: + + Change library name in ACE_FACTORY_DEFINE and ACE_FACTORY_DECLARE + to TAO_PI (where the modified files are located) instad of TAO. + + Mon Aug 15 19:14:16 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * orbsvcs/tests/BiDir_CORBALOC/TimeServer.cpp: + + Added #include of "tao/AnyTypeCode/Any.h". + + Mon Aug 15 19:10:43 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * orbsvcs/orbsvcs/PortableGroup.mpc: + + Removed the extra subgroup labeled OBRSVCS_COMPONENTS. This is + not used on any platform and it creates an extra subdirectory + in the MSVC 7.1 solution browser. + + Mon Aug 15 09:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + Generate the A.h includes in the header file instead of the cpp file. + When A.idl includes B.pidl which includes C.pidl, when we generate + the includes in the header file, then in AC.h we don't have the types + from CC.h. + + Fri Aug 12 12:59:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/ORBInitializer_Registry_Impl.cpp: + * tao/PI/PICurrent.{h,cpp,inl}: + Made PICurrent on the client side working again. When PICurrent is + requested and used, then we allocate a key in the orb tss resources + and create the PICurrent_Impl at that moment. The server side of + PICurrent is now the next todo. + + Fri Aug 12 09:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB.cpp: + * tao/ORBInitializer_Registry_Adapter.h: + * tao/PI/ORBInitializer_Registry_Impl.{h,cpp}: + Changed the way the number of allocated slots is passed to PICurrent. + This is now completely handled in the PI library, it is not up + to the ORB anymore. This makes the ORB unaware of PICurrent + + Thu Aug 11 15:56:51 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + + Fixed the logic of generating a *A.h include associated + with an included .pidl file to determine whether the + .pidl file is located in $TAO_ROOT/tao or in a subdirectory, + and thus whether to include the *A.h file from the + AnyTypeCode library or not. Only .pidl files in the + $TAO_ROOT/tao directory itself have their associated + *A.* files moved to the AnyTypeCode library. + + Thu Aug 11 09:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PI/PI.h: + * orbsvcs/IFR_Service/ifr_adding_visitor_union.cpp + * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.cpp + * orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicy_i.cpp + * orbsvcs/orbsvcs/FaultTolerance/FT_ServerRequest_Interceptor.cpp + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.h + * orbsvcs/orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.cpp + * orbsvcs/orbsvcs/IFRService/ConstantDef_i.cpp + * orbsvcs/orbsvcs/IFRService/Container_i.cpp + * orbsvcs/orbsvcs/IFRService/IFR_BaseS.cpp + * orbsvcs/orbsvcs/IFRService/IFR_BasicS.cpp + * orbsvcs/orbsvcs/IFRService/IFR_ComponentsS.cpp + * orbsvcs/orbsvcs/IFRService/IFR_ExtendedS.cpp + * orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp + * orbsvcs/orbsvcs/Log/Hash_LogRecordStore.cpp + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.cpp + * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.h + * orbsvcs/orbsvcs/Log/PersistStore.cpp + * orbsvcs/orbsvcs/Log/PersistStore.h + * orbsvcs/orbsvcs/Naming/Naming_Server.cpp + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp + * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h + * orbsvcs/orbsvcs/Security/SL3_PolicyFactory.cpp + * orbsvcs/orbsvcs/Trader/Constraint_Nodes.cpp + * orbsvcs/orbsvcs/Trader/Interpreter_Utils.h + * orbsvcs/tests/InterfaceRepo/IFR_Test/Admin_Client.cpp + * examples/POA/DSI/Database_i.cpp + * examples/POA/POA_BiDir/POA_BiDir.cpp + * examples/Simulator/Event_Supplier/Event_Con.cpp + * orbsvcs/PSS/PSDL_Code_Gen.cpp + * orbsvcs/examples/ORT/Gateway_i.cpp + * orbsvcs/tests/Notify/Reconnecting/Consumer.cpp + * tao/IFR_Client.mpc + * tao/tao.mpc + * tests/Nested_Upcall_Crash/client.cpp + * tests/Nested_Upcall_Crash/scavenger.cpp + * tests/Nested_Upcall_Crash/server.cpp + * tests/Oneway_Buffering/client.cpp + * tests/POA/Policies/Policies.cpp + * tests/Portable_Interceptors/PICurrent/client.cpp + + Wed Aug 10 19:47:30 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_visitor_root.cpp: + * TAO_IDL/be/be_visitor_root/root.cpp: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/be_include/be_visitor_root/root.h: + + Removed calls to the visitor classes in the files + below that have been removed, and removed the -GT + command line option and the associated usage message. + The IDL compiler now generates no explicit template + instantiations, and has no command line option to + do so. + + * TAO_IDL/be_include/be_visitor_tmplinst/arg_tmplinst.h: + * TAO_IDL/be_include/be_visitor_tmplinst/tmplinst.h: + * TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_cs.h: + * TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_ss.h: + * TAO_IDL/be/be_visitor_tmplinst/arg_tmplinst.cpp: + * TAO_IDL/be/be_visitor_tmplinst/tmplinst.cpp: + * TAO_IDL/be/be_visitor_tmplinst/tmplinst_cs.cpp: + * TAO_IDL/be/be_visitor_tmplinst/tmplinst_ss.cpp: + * TAO_IDL/be_include/be_visitor_tmplinst.h: + * TAO_IDL/be/be_visitor_tmplinst.cpp: + + Unused visitor classes related to generation of + explicit template instantiations, their files + have been removed from CVS. + + * docs/compiler.html: + + Removed the -GT command line option from the table. + + * docs/releasenotes/index.html: + + Updated documentation of the IDL compiler to reflect + the above changes. + + Wed Aug 10 13:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/PortableInterceptors/Benchmark/client_interceptors.cpp + * tests/PortableInterceptors/Benchmark/server_interceptors.cpp + * tests/PortableInterceptors/Collocated/Dynamic/interceptors.cpp + * tests/PortableInterceptors/Dynamic/client_interceptor.cpp + * tests/PortableInterceptors/Dynamic/server_interceptor.cpp + * tests/PortableInterceptors/PolicyFactory/PolicyFactory.cpp + + Wed Aug 10 13:27:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * examples/Buffered_AMI/client.cpp + * examples/Buffered_Oneways/client.cpp + * orbsvcs/orbsvcs/AV/AVStreams_i.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEvent.h + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h + * tests/MProfile_Connection_Timeout/client.cpp + * tests/MProfile_Forwarding/MProfile_Forwarding.mpc + * tests/MT_BiDir/client.cpp + * tests/MT_BiDir/server.cpp + * tests/MT_Client/MT_Client.mpc + * tests/MT_Server/MT_Server.mpc + * tests/MT_Timeout/Client_Task.cpp + * performance_tests/Anyop/Anyop.mpc + * performance_tests/Anyop/anyop.cpp + * performance_tests/Callback/client.cpp + * performance_tests/Callback/server.cpp + * performance_tests/Cubit/TAO/DII_Cubit/client.cpp + * performance_tests/Latency/DII/client.cpp + * performance_tests/Latency/DSI/Roundtrip.cpp + * performance_tests/Latency/Deferred/client.cpp + * performance_tests/RTCorba/Oneways/Reliable/client.cpp + * performance_tests/Sequence_Latency/DII/client.cpp + * performance_tests/Sequence_Latency/DSI/Roundtrip.cpp + * performance_tests/Sequence_Latency/Deferred/client.cpp + Updated for moves. + + Wed Aug 10 12:59:06 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_interface/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + + Removed generation of Any operators for local interfaces. + + Wed Aug 10 11:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/MProfile_Forwarding/MProfile_Forwarding.mpc + * tests/MT_Client/MT_Client.mpc + * tests/MT_Server/MT_Server.mpc + * tests/DLL_ORB/DLL_ORB.mpc + * tests/CDR/CDR.mpc: + * tests/AMI_Buffering/AMI_Buffering.mpc: + * tests/AMI_Timeouts/AMI_Timeouts.mpc: + * tests/BiDirectional/BiDirectional.mpc: + * tests/BiDirectional_MultipleORB/destroy.mpc: + * tests/Collocation/Collocation.mpc: + * CDR/CDR.mpc + Simplified this MPC file + + * orbsvcs/orbsvcs/AV/AVStreams_i.cpp + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEvent.h + * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h + * orbsvcs/orbsvcs/Security/SL3_PolicyFactory.cpp + * tests/MProfile_Connection_Timeout/client.cpp + * tests/MT_BiDir/client.cpp + * tests/MT_BiDir/server.cpp + * tests/MT_Timeout/Client_Task.cpp + * tests/CDR/tc.cpp: + * tests/AMI_Buffering/client.cpp: + * tests/AMI_Timeouts/timeout_client.cpp: + * tests/BiDirectional/client.cpp: + * tests/BiDirectional/server.cpp: + * tests/BiDirectional_MultipleORB/destroy.cpp: + * tests/BiDirectional_NestedUpcall/client.cpp: + * tests/BiDirectional_NestedUpcall/server.cpp: + * tests/Big_Request_Muxing/Client_Task.cpp: + * Blocking_Sync_None/client.cpp + * Bug_1020_Basic_Regression/client.cpp + * Bug_1020_Regression/client.cpp + * Bug_1269_Regression/client.cpp + * Bug_1270_Regression/client.cpp + * Bug_1361_Regression/client.cpp + * Bug_1476_Regression/Client_Task.cpp + * Bug_1476_Regression/client.cpp + * Bug_1482_Regression/client.cpp + * Bug_1551_Regression/client.cpp + * CDR/basic_types.cpp + * tests/Connection_Timeout/client.cpp + * tests/Crashed_Callback/client.cpp + * tests/Crashed_Callback/server.cpp + * tests/DynAny_Test/data.cpp + * tests/DynAny_Test/data.h + Added missing includes that are needed because of file moves + + * tests/Any/Recursive/RecursiveHello.mpc: + Don't use -GA, causes problems with the recursive structs + + * tao/corba.h: + Removed AnySeqC, file moved to a seperate library + + * tao/BD_String_Argument_T.h: + * tao/PortableServer/BD_String_SArgument_T.{h,inl}: + Fixed some errors in these files + + * tao/Fixed_Size_Argument_T.cpp + * tao/Fixed_Size_Argument_T.h + * tao/Fixed_Size_Argument_T.inl + * tao/PortableServer/Fixed_Size_SArgument_T.h + * tao/PortableServer/Fixed_Size_SArgument_T.inl + Updated + + * tao/orb.idl + Removed moved files + + Wed Aug 10 08:14:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + Added AnyTypeCode to include path of Any_Arg_Traits.h + + Wed Aug 10 08:06:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/IFR_Client/*: + Removed -GA in the generation options and removed all *A.cpp + files. The IFR_Client has a struct defined in an interface, then + the generation of seperate *A.h file will not work. + + * tao/AnyTypeCode/ValueModifier*.*: + Added A.{h,cpp} file. + + Tue Aug 9 13:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/Any_SArg_Traits.h + * tao/PortableServer/BD_String_SArgument_T.cpp + * tao/PortableServer/BD_String_SArgument_T.h + * tao/PortableServer/BD_String_SArgument_T.inl + * tao/PortableServer/Basic_SArgument_T.cpp + * tao/PortableServer/Basic_SArgument_T.h + * tao/PortableServer/Basic_SArgument_T.inl + * tao/PortableServer/Basic_SArguments.h + * tao/PortableServer/Fixed_Array_SArgument_T.cpp + * tao/PortableServer/Fixed_Array_SArgument_T.h + * tao/PortableServer/Fixed_Array_SArgument_T.inl + * tao/PortableServer/Fixed_Size_SArgument_T.cpp + * tao/PortableServer/Fixed_Size_SArgument_T.h + * tao/PortableServer/Fixed_Size_SArgument_T.inl + * tao/PortableServer/Object_SArg_Traits.h + * tao/PortableServer/Object_SArgument_T.cpp + * tao/PortableServer/Object_SArgument_T.h + * tao/PortableServer/Object_SArgument_T.inl + * tao/PortableServer/PolicyS.cpp + * tao/PortableServer/Special_Basic_SArgument_T.cpp + * tao/PortableServer/Special_Basic_SArgument_T.h + * tao/PortableServer/Special_Basic_SArgument_T.inl + * tao/PortableServer/Special_Basic_SArguments.h + * tao/PortableServer/TypeCode_SArg_Traits.h + Updated also all SArg_Traits templates + + Tue Aug 9 12:37:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_arg_traits.cpp: + Updated Arg traits generation + + Tue Aug 9 11:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * AnyTypeCode_Adapter.h + * BD_String_Argument_T.cpp + * BD_String_Argument_T.h + * BD_String_Argument_T.inl + * Basic_Argument_T.cpp + * Basic_Argument_T.h + * Basic_Argument_T.inl + * Basic_Arguments.h + * DomainC.cpp + * Fixed_Array_Argument_T.cpp + * Fixed_Array_Argument_T.h + * Fixed_Array_Argument_T.inl + * ORB_Core_TSS_Resources.cpp + * ORB_Core_TSS_Resources.h + * Object.cpp + * Object.h + * Object_Argument_T.cpp + * Object_Argument_T.h + * Object_Argument_T.inl + * PolicyC.cpp + * Special_Basic_Argument_T.cpp + * Special_Basic_Argument_T.h + * Special_Basic_Argument_T.inl + * Special_Basic_Arguments.h + * UB_String_Argument_T.cpp + * UB_String_Argument_T.h + * UB_String_Argument_T.inl + * UB_String_Arguments.h + * Var_Array_Argument_T.cpp + * Var_Array_Argument_T.h + * Var_Array_Argument_T.inl + * Var_Size_Argument_T.cpp + * Var_Size_Argument_T.h + * Var_Size_Argument_T.inl + * AnyTypeCode/AnyTypeCode_Adapter_Impl.h + * AnyTypeCode/Any_Arg_Traits.h + * AnyTypeCode/TypeCode.h + * Domain/DomainS.cpp + * IFR_Client/IFR_BaseC.cpp + * IORInterceptor/IORInfoC.cpp + * ImR_Client/ImplRepoC.cpp + * ImR_Client/ImplRepoS.cpp + * ObjRefTemplate/ObjectReferenceTemplateC.cpp + * PortableServer/PolicyS.cpp + * PortableServer/PortableServerC.cpp + * RTScheduling/RTSchedulerC.cpp + * Valuetype/AbstractBase.h + * Valuetype/ValueBase.h + Updated Argument classes to use new Any Insert Policy template + + Mon Aug 8 09:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/ORB.cpp: + * tao/ORB_Core.{h,cpp,i}: + * tao/PI/ClientRequestInfo.cpp: + * tao/PI_Server/POA_Current.cpp: + * tao/PI_Server/ServerRequestInfo.cpp: + Updated partly for PI changes. Idea is now to store PICurrent in the + ORB Core as Object_ptr, a dynamic cast can then be done in the PI libs + + * tao/Argument.cpp + * tao/Argument.h + * tao/BD_String_Argument_T.cpp + * tao/BD_String_Argument_T.h + * tao/Basic_Argument_T.cpp + * tao/Basic_Argument_T.h + * tao/Basic_Arguments.h + * tao/DomainC.cpp + * tao/Fixed_Array_Argument_T.cpp + * tao/Fixed_Array_Argument_T.h + * tao/Fixed_Size_Argument_T.cpp + * tao/Fixed_Size_Argument_T.h + * tao/IFR_Client_Adapter.h + * tao/Object.cpp + * tao/Object.h + * tao/Object_Argument_T.cpp + * tao/Object_Argument_T.h + * tao/PolicyC.cpp + * tao/Special_Basic_Argument_T.cpp + * tao/Special_Basic_Argument_T.h + * tao/UB_String_Argument_T.cpp + * tao/UB_String_Argument_T.h + * tao/Var_Array_Argument_T.cpp + * tao/Var_Array_Argument_T.h + * tao/Var_Size_Argument_T.cpp + * tao/Var_Size_Argument_T.h + * tao/DynamicInterface/DII_Arguments.cpp + * tao/DynamicInterface/DII_Arguments.h + * tao/IFR_Client/IFR_BaseC.cpp + * tao/IFR_Client/IFR_BasicC.cpp + * tao/IFR_Client/IFR_Client_Adapter_Impl.cpp + * tao/IFR_Client/IFR_Client_Adapter_Impl.h + * tao/IFR_Client/IFR_ComponentsC.cpp + * tao/IFR_Client/IFR_ExtendedC.cpp + * tao/ImR_Client/ImplRepoC.cpp + * tao/ImR_Client/ServerObjectC.cpp + * tao/ObjRefTemplate/ObjectReferenceTemplateC.cpp + * tao/PI/ClientRequestInfo.cpp + * tao/PI_Server/ServerRequestInfo.cpp + * tao/PortableServer/BD_String_SArgument_T.cpp + * tao/PortableServer/BD_String_SArgument_T.h + * tao/PortableServer/Basic_SArgument_T.cpp + * tao/PortableServer/Basic_SArgument_T.h + * tao/PortableServer/Basic_SArguments.h + * tao/PortableServer/Fixed_Array_SArgument_T.cpp + * tao/PortableServer/Fixed_Array_SArgument_T.h + * tao/PortableServer/Fixed_Size_SArgument_T.cpp + * tao/PortableServer/Fixed_Size_SArgument_T.h + * tao/PortableServer/Object_SArgument_T.cpp + * tao/PortableServer/Object_SArgument_T.h + * tao/PortableServer/PolicyS.cpp + * tao/PortableServer/Special_Basic_SArgument_T.cpp + * tao/PortableServer/Special_Basic_SArgument_T.h + * tao/PortableServer/UB_String_SArgument_T.cpp + * tao/PortableServer/UB_String_SArgument_T.h + * tao/PortableServer/Var_Array_SArgument_T.cpp + * tao/PortableServer/Var_Array_SArgument_T.h + * tao/PortableServer/Var_Size_SArgument_T.cpp + * tao/PortableServer/Var_Size_SArgument_T.h + Changed the interface of TAO::Argument. Instead of using + Dynamic::Parameter as argument, use the method interceptor_ + value that gets an Any* argument and a separate mode argument + to get the mode of the argument (in/out/inout). Instead of + duplicating this mode method, added InArgument, InoutArgument, + OutArgument and RetArgument class that implement this method. + All templates are then derived from the correct base method. + + Mon Aug 8 20:26:22 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/AnyTypeCode/NVList_Adapter_Impl.h: + + Corrected the export macro. + + Mon Aug 8 19:55:07 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: + + Moved generation of the _tao_type() method for user exceptions + to the *A.cpp file if we are using the -GA option. + + * TAO_IDL/be/be_codegen.cp: + + Added code generation of *A.h includes from the AnyTypeCode + library corresponding to included .pidl files. + + Thu Aug 4 18:52:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Cache_Entries.{h,inl}: + Removed non const index method + + * tao/PortableServer/SArg_Traits_T.h: + * tao/PortableServer/Basic_SArguments.h: + * tao/PortableServer/Special_Basic_SArguments.h: + * tao/PortableServer/UB_String_SArguments.h: + * tao/Arg_Traits_T.h: + Moved SArg_Traits to its own file and updated includes + + * tao/PI_Server/ServerRequestInfo.cpp: + * tao/PI_Server/ServerInterceptorAdapter.cpp: + Updated for PICurrent changes + + * tao/PI/ClientRequestInfo.{h,cpp}: + Implemented several methods here instead of using + functionality that was in the TAO lib for interceptors + + * tao/DynamicInterface/DII_Invocation.cpp: + Updated include of RequestInfo_Util.h + + * tao/Invocation_Base.{h,cpp}: + * tao/operation_details.{h,cpp,i}: + Removed several methods that are just there for the + ClientRequestInfo. The functionality moved to the + ClientRequestInfo class in the PI library where we just + access the operation details. + + * tao/tao.mpc: + Removed files + + * tao/RequestInfo_Util.{h,cpp}: + * tao/PI/RequestInfo_Util.{h,cpp}: + Moved to the PI lib + + * tao/Invocation_Adapter.h: + Removed obsolete forward declaration of TAO_Exception_Data + + * tao/AnyTypeCode/TypeCode.cpp: + Applied some patches Ossama did to the main branch also + + * tao/Argument.cpp: + Use true instead of 1 + + * tao/PI/InvalidSlotA.h: + * tao/PI/InvalidSlotC.h: + Corrected export macro + + * tao/DynamicInterface/Unknown_User_Exception.{h,cpp}: + Removed _is_a method + + * tao/operation_details.{h,i}: + Removed non const version of addressing_mode + + * tao/Invocation_Base.{h,inl}: + Added accessor for operation details + + Tue Aug 2 13:13:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/TC_Constants_Forward.h: + * tao/AnyTypeCode/TC_Constants_Forward.h: + Moved to AnyTypeCode lib + + Tue Aug 2 12:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/CORBA_methods.h: + Removed not needed forward declarations + + * tao/Dynamic_Adapter.cpp: + Removed not needed includes and explicit templates + + * tao/NVList_Adapter.{h,cpp}: + New NVList adapter + + * tao/ORB.{h,cpp}: + Use new NVList Adapter + + * tao/tao.mpc: + Added NVList_Adapter files + + * tao/AnyTypeCode.mpc: + Added new files + + * tao/NVList.h: + Updated friends + + * tao/NVList_Adapter_Impl.{h,cpp}: + Concrete NVList Adapter implementation + + Tue Aug 2 12:17:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/AnyTypeCode_Adapter_Impl.{h,cpp}: + Adapter implementation. _tao_type for all systemexceptions + is not available + + Tue Aug 2 12:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/ExceptionA.cpp: + Reenabled CORBA::Exception Any operators now _tao_type is available + again + + Mon Aug 1 19:18:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Exception.{h,cpp}: + Removed class TAO_DONT_CATCH, it is not used at all. Also removed + the emulated exception argument from create_system_exception, it + is not needed + + Mon Aug 1 19:06:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode_Adapter.{h,cpp}: + * tao/SystemException.cpp: + Added first version of Adapter interface and implemented + SystemException::_tao_type to call the adapter method. + + * tao/tao.mpc: + Added new file + + Mon Aug 1 18:10:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Exception.{h,cpp}: + * tao/SystemException.{h,cpp}: + * tao/UserException.{h,cpp}: + Removed _is_a, it is TAO specific to handle environments without + RTTI but we require and use that, so zapped this method. + Reimplemented SystemException::_tao_get_omg_exception_description + to use dynamic_cast to check for the specific exception type + + Mon Aug 1 15:22:59 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/AnyTypeCode/DynamicA.h: + * tao/AnyTypeCode/DynamicC.h: + + Fixed some export macros that were not changed when these + files were moved to the AnyTypeCode library. + + Mon Aug 1 14:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Exception.h: + * tao/SystemException.h: + * tao/UserException.h: + Documentation improvements + + Mon Aug 1 12:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Exception.{h,cpp}: + Declared _tao_type as pure virtual. No need to have a default + implementation here + + * tao/ORB.{h,cpp}: + Optimized InvalidName::_downcast. Implemented _tao_type as + return 0, we don't have a default implementatio anymore in the + base + + * tao/PolicyC.{h,cpp}: + * tao/WrongTransactionC.{h,cpp}: + Made _tao_type active again, implement this as return 0 at this + moment, have to call a new adapter later + + * tao/SystemException.{h,cpp}: + Added _tao_type again, implemented it as return 0, have to add + a call to an adapter later for all system exceptions + + * tao/UserException.{h,cpp}: + Added _tao_type with return 0 as default implementation, coming + from the base + + * tao/AnyTypeCode/BoundsC.{h,cpp}: + * tao/PI/InvalidSlotC.{h,cpp}: + Added _tao_type again. + + * tao/AnyTypeCode/TypeCode.{h,cpp}: + Added _tao_type with return 0 + + Mon Aug 1 11:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode.mpc: + Updated for a lot of changes + + * tao/Basic_Argument_T.cpp: + Added a temporarily specialization for unsigned int, will need to be + removed soon + + * tao/Object_Argument_T.cpp + Added a temporarily specialization for Policy, will need to be + removed soon + + * tao/Special_Basic_Argument_T.cpp: + Added a temporarily specialization for bool, will need to be + removed soon + + * tao/UB_String_Argument_T.cpp: + Added a temporarily specialization for string, will need to be + removed soon + + * tao/BD_String_Argument_T.cpp: + * tao/Fixed_Array_Argument_T.cpp: + * tao/Fixed_Size_Argument_T.cpp: + Removed include of Dynamic_ParameterC.h + + * tao/Block_Flushing_Strategy.h: + * tao/Flushing_Strategy.h: + * tao/Leader_Follower_Flushing_Strategy.h: + * tao/Reactive_Flushing_Strategy.h: + * tao/Wait_On_Leader_Follower.h: + * tao/Wait_On_LF_No_Upcall.h: + * tao/Wait_On_Reactor.h: + * tao/Wait_On_Read.h: + * tao/Wait_Strategy.h: + No need to export the class in this file + + * tao/DomainC.cpp: + Pass the Dynamic_Parameter to the IFR Adapter, this way we don't + depend on Any + + * tao/IFR_Client_Adapter.h: + Pass the Dynamic::Parameter to interfacedef_any_insert + + * tao/InvalidSlot*.*: + Moved to the PI library + + * tao/Invocation_Base.cpp: + * tao/operation_details.cpp: + Commented out several methods which need to be reimplemented + using a new adapter + + * tao/ORB.cpp: + * tao/ORB_Core.{h,cpp,i}: + * tao/ORB_Core_TSS_Resources.{h,cpp}: + Commented out creation of PICurrent, will have to reimplement this + now PICurrent moved to the PI lib + + * tao/PortableInterceptor.pidl: + * tao/PortableInterceptorC.h: + Removed the files that moved to the PI lib + + * tao/PICurrent.{h,cpp,inl,pidl}: + * tao/PICurrent_Copy_Callback.{h,cpp}: + * tao/PICurrent_Impl.{h,cpp,inl}: + * tao/PICurrent_Loader.{h,cpp}: + * tao/PICurrentC.{h,cpp}: + * tao/PICurrentS.h: + Moved to the PI lib + + * tao/Server_Request.{h,cpp,inl}: + Use pointers for the PI stuff, will need to update this soon + + * tao/TypeCodeFactory_Adapter.h: + Added forward declaration for ValueModifier + + * tao/ValueModifier.pidl: + * tao/ValueModifierC.{h,cpp}: + * tao/ValueModifierS.h: + Moved to AnyTypeCode lib + + * tao/Visibility.pidl: + * tao/VisibilityC.{h,cpp}: + * tao/VisibilityS.h: + Moved to AnyTypeCode lib + + * tao/AnyTypeCode/PICurrentA.{h,cpp}: + * tao/AnyTypeCode/InvalidSlotA.{h,cpp}: + Moved to the PI lib + + * tao/AnyTypeCode/PortableInterceptorA.h: + Removed some includes + + * tao/AnyTypeCode/TypeCode.h: + * tao/AnyTypeCode/Value_TypeCode: + * tao/AnyTypeCode/Value_TypeCode_Static.h: + Updated includes + + * tao/IFR_Client/*C.cpp: + Added include of Dynamic_Parameter.h + + * tao/PI/ClientRequestInfo.{h,cpp}: + Updated includes + + * tao/PI/PICurrent*.*: + Moved here from the tao lib + + * tao/PoratbleServer/Basic_SArgument_T.cpp + * tao/PoratbleServer/BD_String_SArgument_T.cpp + * tao/PoratbleServer/Fixed_Array_SArgument_T.cpp + * tao/PoratbleServer/Fixed_Size_SArgument_T.cpp + * tao/PoratbleServer/Object_SArgument_T.cpp + * tao/PoratbleServer/Special_Basic_SArgument_T.cpp + * tao/PoratbleServer/UB_String_SArgument_T.cpp + * tao/PoratbleServer/Var_Array_SArgument_T.cpp + * tao/PoratbleServer/Var_Size_SArgument_T.cpp + Update includes + + * tao/PortableServer/Upcall_Wrapper.cpp: + Temporarily commented out PICurrent_Guard. Need to change this + to a call to the PI adapter and an auto_ptr + + Fri Jul 29 19:23:17 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be_include/be_global.h: + + Added -oA <path> option to direct the output of generated + *A.* files. The -oA option overrides path specified by + -o, if any. + + * docs/compiler.html: + + Added above option to commandline option table. + + Fri Jul 29 18:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/DynamicAny.mpc + * tao/IFR_Client.mpc + * tao/IORManipulation.mpc + * tao/Strategies.mpc + * tao/Valuetype.mpc + * tao/Var_Size_Argument_T.cpp + * tao/corba.h + * tao/AnyTypeCode/DynamicA.cpp + * tao/AnyTypeCode/DynamicA.h + * tao/AnyTypeCode/DynamicC.cpp + * tao/AnyTypeCode/DynamicC.h + * tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp + * tao/AnyTypeCode/orb_typesA.h + * tao/DynamicInterface/DII_Arguments.cpp + * tao/DynamicInterface/Request.cpp + * tao/DynamicInterface/Request.h + * tao/DynamicInterface/Server_Request.cpp + * tao/IFR_Client/IFR_BaseA.cpp + * tao/IFR_Client/IFR_BaseC.cpp + * tao/IFR_Client/IFR_BasicA.cpp + * tao/IFR_Client/IFR_BasicC.cpp + * tao/IFR_Client/IFR_Client_Adapter_Impl.cpp + * tao/IFR_Client/IFR_ComponentsA.cpp + * tao/IFR_Client/IFR_ExtendedA.cpp + * tao/IORManipulation/IORA.cpp + * tao/ImR_Client/ImplRepoA.cpp + * tao/Messaging/Messaging_PolicyFactory.cpp + * tao/Messaging/Messaging_Policy_i.cpp + * tao/Messaging/Messaging_RT_PolicyA.cpp + * tao/ObjRefTemplate/Default_ORTA.cpp + * tao/ObjRefTemplate/ObjectReferenceTemplateA.cpp + * tao/PI/ClientRequestInfoA.cpp + * tao/PI/ClientRequestInterceptorA.cpp + * tao/PI/InterceptorA.cpp + * tao/PI/ORBInitInfoA.cpp + * tao/PI/RequestInfo.pidl + * tao/PI/RequestInfoA.cpp + * tao/PI_Server/ServerRequestInfoA.cpp + * tao/PI_Server/ServerRequestInterceptorA.cpp + * tao/PortableServer/Var_Size_SArgument_T.cpp + * tao/RTCORBA/RTCORBAA.cpp + * tao/RTCORBA/RT_Policy_i.cpp + * tao/RTPortableServer/RTPortableServerA.cpp + * tao/RTScheduling/RTSchedulerA.cpp + * tao/Strategies/sciop_endpointsC.cpp + * tao/Strategies/uiop_endpointsC.cpp + * tao/TypeCodeFactory/Recursive_TypeCode.h + * tao/TypeCodeFactory/TypeCodeFactoryA.cpp + * tao/TypeCodeFactory/TypeCodeFactory_i.cpp + * tao/Valuetype/StringValueC.cpp + * tao/Valuetype/ValueBase.cpp + All kinds of changes to get things compiling again + + * AnyTypeCode/Union_TypeCode.{h,cpp,inl}: + * AnyTypeCode/Union_TypeCode_T.{h,cpp,inl}: + Renamed _T back to normal file + + Fri Jul 29 15:26:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/DynamicInterface/DynamicParameter*.{h,cpp}: + * tao/AnyTypeCode/DynamicParameter*.{h,cpp}: + Moved DynamicParameter to the AnyTypeCode lib. The PI lib uses this + and having it in DynamicInterface will make PI dependent on + DynamicInterface + + Fri Jul 29 11:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Exception.{h,cpp}: + * tao/AnyTypeCode/Exception.{h,cpp}: + Moved Any code from Exception to AnyTypeCode. Have to solve the + _tao_type issue. + + Fri Jul 29 10:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode/AnyTypeCode_methods.h: + * tao/AnyTypeCode/TypeCode.h: + Moved is_nil and release from TypeCode.h to AnyTypeCode_methods.h + + Fri Jul 29 04:19:55 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/CORBA_methods.h: + + Removed static CORBA is_nil() and release() methods for + NamedValue and NVList. + + * tao/SystemException.cpp: + + Restored definition of static _tao_any_destructor() + methods for system exceptions. They are used by Anys, + but do not depend on them. This move eliminated + 'inconsistent dll linkage' warnings on MSVC. + + * tao/SystemException.h: + + Removed declarations of typecodes and Any operators + for the system exceptions. + + * tao/AnyTypeCode/NVList.h: + + Added include of the new AnyTypeCode_methods.h file below. + + * tao/AnyTypeCode/SystemExceptionA.cpp: + + Removed definition of static _tao_any_destructor() + methods for system exceptions. + + * tao/AnyTypeCode/SystemExceptionA.h: + + New file, contains typecode and Any operator declarations + for system exceptions. + + * tao/AnyTypeCode/AnyTypeCode_methods.h: + + New file, contains declarations of static CORBA is_nil() + and release() methods for NamedValue and NVList. This + move eliminated 'inconsistent dll linkage' warnings on + MSVC. + + Thu Jul 28 22:40:26 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_visitor_context.cpp: + * TAO_IDL/be/be_visitor_typecode/typecode_decl.cpp: + * TAO_IDL/be_include/be_visitor_context.h: + + Added logic to make the anyop export macro and export include + default to the corresponding stub values, if any, when the + former values have not been set on the command line, but -GA + is used. This behavior will enable the *A.* files to be + generated, but compiled into the same library as the stub + files, if desired. + + Thu Jul 28 18:35:07 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Buffering_Constraint_Policy.{h,cpp}: + * tao/Messaging/Messaging_PolicyFactory.{h,cpp}: + Moved the create method to extract a BufferingConstraint out of + an Any to the Messaging lib. It is used there and not needed at + all in the core TAO lib. In the future we probably will move the + complete Buffering_Constraint_Policy to the Messaging lib + + Thu Jul 28 16:43:07 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + + Added code generation to include *A.h files (in the + *A.cpp file) for each included IDL file. If possible, + existence checks for these included files will be added + at a future date. + + * TAO_IDL/be/be_visitor_typecode/typecode_decl.cpp: + + Switched generation of the typecode declaration to the + *A.h file, if the -GA option is used. + + * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp: + + Updated comment. + + * TAO_IDL/be/be_global.cpp: + + Fixed typo in generated usage message. + + * TAO_IDL/driver/drv_args.cpp: + + Added usage messages for each individual recognized + -W[p|b] option. + + * docs/compiler.html: + + Updated command line option table with the new -Wb options + for export macro and export include in *A.h files. + + Thu Jul 28 12:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/PortableServer/AdapterActivatorA.cpp + * tao/PortableServer/ForwardRequestA.cpp + * tao/PortableServer/IdAssignmentPolicyA.cpp + * tao/PortableServer/IdUniquenessPolicyA.cpp + * tao/PortableServer/ImplicitActivationPolicyA.cpp + * tao/PortableServer/LifespanPolicyA.cpp + * tao/PortableServer/POAManagerA.cpp + * tao/PortableServer/PolicyS.cpp + * tao/PortableServer/PortableServerA.cpp + * tao/PortableServer/PS_ForwardA.cpp + * tao/PortableServer/RequestProcessingPolicyA.cpp + * tao/PortableServer/ServantActivatorA.cpp + * tao/PortableServer/ServantLocatorA.cpp + * tao/PortableServer/ServantManagerA.cpp + * tao/PortableServer/ServantRetentionPolicyA.cpp + * tao/PortableServer/ThreadPolicyA.cpp + Updated includes to the new AnyTypeCode library. Just a quick + search and replace to get this lib compiling again. Only have + an unresolved link error I have to investigate + + Thu Jul 28 11:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_codegen.cpp: + Generate post include in A.h file, updated generated + includes for moving of files + + * TAO_IDL/be/be_visitor_interface/any_op_ch.cpp: + Zapped starting spaces + + * tao/PortableServer/Basic_SArgument_T.cpp: + * tao/PortableServer/Object_SArgument_T.cpp: + * tao/PortableServer/Special_Basic_SArgument_T.cpp: + * tao/PortableServer/UB_String_SArgument_T.cpp: + Only include DynamicParameter.h when interceptors are enabled + + Thu Jul 28 11:18:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/AnyTypeCode.mpc: + New MPC file + + * tao/Alias_TypeCode.cpp + * tao/Alias_TypeCode.h + * tao/Alias_TypeCode.inl + * tao/Alias_TypeCode_Static.cpp + * tao/Alias_TypeCode_Static.h + * tao/Alias_TypeCode_Static.inl + * tao/Any.cpp + * tao/Any.h + * tao/Any.i + * tao/AnySeq.pidl + * tao/AnySeqA.cpp + * tao/AnySeqC.cpp + * tao/AnySeqC.h + * tao/AnySeqS.h + * tao/Any_Arg_Traits.h + * tao/Any_Array_Impl_T.cpp + * tao/Any_Array_Impl_T.h + * tao/Any_Array_Impl_T.inl + * tao/Any_Basic_Impl.cpp + * tao/Any_Basic_Impl.h + * tao/Any_Basic_Impl_T.cpp + * tao/Any_Basic_Impl_T.h + * tao/Any_Basic_Impl_T.inl + * tao/Any_Dual_Impl_T.cpp + * tao/Any_Dual_Impl_T.h + * tao/Any_Dual_Impl_T.inl + * tao/Any_Impl.cpp + * tao/Any_Impl.h + * tao/Any_Impl_T.cpp + * tao/Any_Impl_T.h + * tao/Any_Impl_T.inl + * tao/Any_Special_Impl_T.cpp + * tao/Any_Special_Impl_T.h + * tao/Any_Special_Impl_T.inl + * tao/Any_SystemException.cpp + * tao/Any_SystemException.h + * tao/Any_Unknown_IDL_Type.cpp + * tao/Any_Unknown_IDL_Type.h + * tao/BooleanSeqA.cpp + * tao/Bounds.pidl + * tao/BoundsA.cpp + * tao/BoundsC.cpp + * tao/BoundsC.h + * tao/CONV_FRAMEA.cpp + * tao/CharSeqA.cpp + * tao/CurrentA.cpp + * tao/DomainA.cpp + * tao/DoubleSeqA.cpp + * tao/Dynamic.pidl + * tao/DynamicA.cpp + * tao/DynamicC.cpp + * tao/DynamicC.h + * tao/DynamicS.h + * tao/Dynamic_Parameter.pidl + * tao/Dynamic_ParameterA.cpp + * tao/Dynamic_ParameterC.cpp + * tao/Dynamic_ParameterC.h + * tao/Empty_Param_TypeCode.cpp + * tao/Empty_Param_TypeCode.h + * tao/Empty_Param_TypeCode.inl + * tao/Enum_TypeCode.cpp + * tao/Enum_TypeCode.h + * tao/Enum_TypeCode.inl + * tao/Enum_TypeCode_Static.cpp + * tao/Enum_TypeCode_Static.h + * tao/Enum_TypeCode_Static.inl + * tao/Fixed_TypeCode.cpp + * tao/Fixed_TypeCode.h + * tao/Fixed_TypeCode.inl + * tao/FloatSeqA.cpp + * tao/GIOPA.cpp + * tao/IIOPA.cpp + * tao/IIOP_EndpointsA.cpp + * tao/IOP_IORA.cpp + * tao/InvalidSlotA.cpp + * tao/LongDoubleSeqA.cpp + * tao/LongLongSeqA.cpp + * tao/LongSeqA.cpp + * tao/Marshal.cpp + * tao/Marshal.h + * tao/Marshal.i + * tao/Messaging_PolicyValueA.cpp + * tao/NVList.cpp + * tao/NVList.h + * tao/NVList.i + * tao/Null_RefCount_Policy.h + * tao/ObjectIdListA.cpp + * tao/Objref_TypeCode.cpp + * tao/Objref_TypeCode.h + * tao/Objref_TypeCode.inl + * tao/Objref_TypeCode_Static.cpp + * tao/Objref_TypeCode_Static.h + * tao/Objref_TypeCode_Static.inl + * tao/OctetSeqA.cpp + * tao/PICurrentA.cpp + * tao/ParameterModeA.cpp + * tao/PolicyA.cpp + * tao/Policy_ForwardA.cpp + * tao/Recursive_Type_TypeCode.cpp + * tao/Recursive_Type_TypeCode.h + * tao/Recursive_Type_TypeCode.inl + * tao/RefCount_Policy_Traits.h + * tao/Sequence_TypeCode.cpp + * tao/Sequence_TypeCode.h + * tao/Sequence_TypeCode.inl + * tao/Sequence_TypeCode_Static.cpp + * tao/Sequence_TypeCode_Static.h + * tao/Sequence_TypeCode_Static.inl + * tao/ShortSeqA.cpp + * tao/StringSeqA.cpp + * tao/String_TypeCode.cpp + * tao/String_TypeCode.h + * tao/String_TypeCode.inl + * tao/String_TypeCode_Static.cpp + * tao/String_TypeCode_Static.h + * tao/String_TypeCode_Static.inl + * tao/String_TypeCode_Traits.h + * tao/Struct_TypeCode.cpp + * tao/Struct_TypeCode.h + * tao/Struct_TypeCode.inl + * tao/Struct_TypeCode_Static.cpp + * tao/Struct_TypeCode_Static.h + * tao/Struct_TypeCode_Static.inl + * tao/SystemExceptionA.cpp + * tao/TAOA.cpp + * tao/TimeBaseA.cpp + * tao/True_RefCount_Policy.cpp + * tao/True_RefCount_Policy.h + * tao/True_RefCount_Policy.inl + * tao/TypeCode.cpp + * tao/TypeCode.h + * tao/TypeCode.inl + * tao/TypeCodeA.cpp + * tao/TypeCode_Base_Attributes.cpp + * tao/TypeCode_Base_Attributes.h + * tao/TypeCode_Base_Attributes.inl + * tao/TypeCode_CDR_Extraction.cpp + * tao/TypeCode_CDR_Extraction.h + * tao/TypeCode_Case.cpp + * tao/TypeCode_Case.h + * tao/TypeCode_Case.inl + * tao/TypeCode_Case_T.cpp + * tao/TypeCode_Case_T.h + * tao/TypeCode_Case_T.inl + * tao/TypeCode_Constants.cpp + * tao/TypeCode_Constants.h + * tao/TypeCode_Struct_Field.h + * tao/TypeCode_Traits.h + * tao/TypeCode_Value_Field.h + * tao/ULongLongSeqA.cpp + * tao/ULongSeqA.cpp + * tao/UShortSeqA.cpp + * tao/Union_TypeCode.cpp + * tao/Union_TypeCode.h + * tao/Union_TypeCode.inl + * tao/Union_TypeCode_Static.cpp + * tao/Union_TypeCode_Static.h + * tao/Union_TypeCode_Static.inl + * tao/Value_TypeCode.cpp + * tao/Value_TypeCode.h + * tao/Value_TypeCode.inl + * tao/Value_TypeCode_Static.cpp + * tao/Value_TypeCode_Static.h + * tao/Value_TypeCode_Static.inl + * tao/WCharSeqA.cpp + * tao/WStringSeqA.cpp + * tao/WrongTransactionA.cpp + * tao/append.cpp + * tao/skip.cpp + All these files are moved to the AnyTypeCode directory + + * tao/UB_String_Argument_T.cpp: + * tao/Special_Basic_Argument_T.cpp: + * tao/Basic_Argument_T.cpp: + * tao/Object_Argument_T.cpp: + * tao/operation_details.cpp + * tao/Invocation_Base.cpp + Only include Dynamic_ParameterC.h when interceptors are enabled + + * tao/SystemException.{h,cpp}: + Moved excp_factory to this file, we need it here, temporarily + removed _tao_type, we need to work on this. + + * tao/RequestInfo_Util.{h,cpp}: + Don't build these when interceptors are disabled + + * tao/ORB_Core.cpp + Include ace/Message_Block.h to get ACE_Data_Block + + * tao/ORB_Core.h: + Added forward declaration of ACE_Data_Block + + * tao/extra_core.mpb: + Removed NVList + + * tao/corba.h: + Removed BoundsC.h + + * tao/PortableInterceptorC.cpp + * tao/VisibilityC.cpp + * tao/orb_typesC.cpp + * tao/ORB.cpp + * tao/PI_ForwardC.cpp + * tao/InvalidSlotC.cpp + * tao/WrongTransactionC.cpp + * tao/GIOPC.cpp + + * tao/Exception.{h,cpp}: + Commented out the Any operators, they should go to another lib, + will handle this later + + * tao/Buffering_Constraint_Policy.cpp: + Commented out Any usage, needs to be addressed + + * tao/WrongTransactionC.{h,cpp}: + * tao/PolicyC.cpp: + Commented out _tao_type for exceptions, we have to solve this + because exceptions now use TypeCode but we have subsetted that + + * tao/UShortSeqC.h + * tao/ULongSeqC.h + * tao/WCharSeqC.h + * tao/Typecode_typesC.h + * tao/ULongLongSeqC.h + * tao/StringSeqC.h + * tao/TAOC.h + * tao/TimeBaseC.h + * tao/Policy_ForwardC.h + * tao/PortableInterceptorC.h + * tao/ShortSeqC.h + * tao/VisibilityC.h + * tao/LongDoubleSeqC.h + * tao/LongLongSeqC.h + * tao/LongSeqC.h + * tao/Messaging_PolicyValueC.h + * tao/ObjectIdListC.h + * tao/OctetSeqC.h + * tao/PICurrentC.h + * tao/PI_ForwardC.h + * tao/ParameterModeC.h + * tao/PolicyC.h + * tao/GIOPC.h + * tao/IIOPC.h + * tao/IIOP_EndpointsC.h + * tao/IOP_IORC.h + * tao/InvalidSlotC.h + * tao/DomainC.h + * tao/CharSeqC.h + * tao/CurrentC.h + * tao/DoubleSeqC.h + * tao/Exception.h + * tao/FloatSeqC.h + * tao/WStringSeqC.h + * tao/WrongTransactionC.h + * tao/orb_typesC.h + * tao/BooleanSeqC.h + * tao/CONV_FRAMEC.h + Removed TypeCode and Any operators, these are now all + in AnyTypeCode/*.h. This has been by hand, with the + change of Jeff below we can automate this + + * tao.mpc + Removed a lot of files + + Thu Jul 28 02:15:01 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_produce.cpp: + * TAO_IDL/be/be_visitor_context.cpp: + * TAO_IDL/be/be_visitor_array/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_enum/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_exception/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_interface/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_root/any_op.cpp: + * TAO_IDL/be/be_visitor_root/root.cpp: + * TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_structure/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_union/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuebox/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/any_op_ch.cpp: + * TAO_IDL/be_include/be_codegen.h: + * TAO_IDL/be_include/be_global.h: + * TAO_IDL/be_include/be_visitor_context.h: + + Modified -GA option to generate a *A.h file as well as + a *A.cpp file, and added -Wb options 'anyop_export_macro' + and 'anyop_export_include' to optionally compile the *A.* + files into a separate library. + + Wed Jul 27 17:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/be/be_visitor_argument/invoke_cs.cpp: + * TAO_IDL/be/be_visitor_argument/marshal_ss.cpp: + * TAO_IDL/be/be_visitor_argument/paramlist.cpp: + * TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_field/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_sequence/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_union/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_union_branch/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_ci.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp: + Use ACE_OutputCDR::from_octet and ACE_InputCDR:to_octet instead + of CORBA::Any::from_octect and CORBA::Any::to_octet + + Wed Jul 27 14:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/GIOP_Message_Generator_Parser_10.cpp: + * tao/GIOP_Message_Generator_Parser_12.cpp: + * tao/GIOP_Message_Lite.cpp: + Use ACE_OutputCDR::from_octet and ACE_InputCDR:to_octet + +Thu Aug 18 13:59:52 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/LogActivator.cpp: + + Fixed emulated exception build failures. + +Thu Aug 18 13:46:38 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/LogActivator.cpp: + + Changed to omit identifier name for unused parameters. + + * orbsvcs/orbsvcs/Log/LogMgr_i.cpp: + + Changed to use CORBA::RepositoryId_var for the return value of + create_log_repositoryid() so results will be freed on exit. + + * orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/EventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.cpp: + + Changed create_log_repositoryid() to duplicate string rather + than returning a string literal. + +Thu Aug 18 15:19:40 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_exception/exception_ctor.cpp: + * TAO_IDL/be/be_visitor_union_branch/private_ch.cpp: + * TAO_IDL/be/be_visitor_union_branch/public_ch.cpp: + + Removed more instances of generating a leading '::' + in front of ACE_NESTED_CLASS. + +Wed Aug 17 11:30:37 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.cpp (create_with_id): + + Fix bug where _nil() was returned instead of new object + reference. + + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/DsLogAdmin.mpc: + + Add LogActivator.cpp to Source_Files in the DsLogAdmin_Serv + project. + + * orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/EventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.cpp: + + Changed create() and create_with_id() methods to invoke + create_log_reference() instead of create_log_object(). This is + not absolutely necessary, since a log is very likely to be used + after it is created. However, it helps to ensure the servant + activator code path is exercised so it will work when a dynamic + logging strategy that needs it is loaded. + + * orbsvcs/orbsvcs/Log/LogMgr_i.cpp + + Added USE_SERVANT_MANAGER request processing policy to the + log POA. + + * orbsvcs/orbsvcs/Log/LogActivator.cpp: + * orbsvcs/orbsvcs/Log/LogActivator.h: + + New files, servant activator class for creating new logs. This + is useful for persistent log strategies so that servants can be + created when they are first accessed instead of at startup. + +Wed Aug 17 14:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/Event_Service/Event_Service.cpp: + Removed explicit template instantiations + +Tue Aug 16 18:19:13 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_exception/exception_ctor.cpp: + + Removed generation of the leading double colon for typedef'd + basic type names in the exception constructor, since the + ACE_NESTED_CLASS macro could be used, and the double colon + will be incorrect for the VC6 expansion of the macro. + +Mon Aug 15 20:28:14 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/BasicLogFactory_i.h: + * orbsvcs/orbsvcs/Log/EventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/EventLogFactory_i.h: + * orbsvcs/orbsvcs/Log/LogMgr_i.cpp: + * orbsvcs/orbsvcs/Log/LogMgr_i.h: + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.h: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.h: + + Refactor separate create_log_reference() implementations from + the derived factory classes into a single template method in the + base class. + + Added new create_repositoryid() virtual method to return + the repository id for the specific log type. + +Mon Aug 15 16:41:57 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/orbsvcs/DsEventLogAdmin.mpc: + + Add eventlog_serv_export.h to Header_Files section. + + * orbsvcs/orbsvcs/DsLogAdmin.mpc: + + Add log_serv_export.h to Header_Files section. + + * orbsvcs/orbsvcs/DsNotifyLogAdmin.mpc: + + Add notifylog_serv_export.h to Header_Files section. + + * orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/BasicLogFactory_i.h: + * orbsvcs/orbsvcs/Log/EventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/EventLogFactory_i.h: + * orbsvcs/orbsvcs/Log/LogMgr_i.cpp: + * orbsvcs/orbsvcs/Log/LogMgr_i.h: + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.h: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.h: + + Combine identical create_log_objectid() implementations from the + derived factory classes into a single one in the base class. + + Refactor separate create_log_object() implementations to + a single template method in the base class. + +Mon Aug 15 15:13:10 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/tests/Concurrency/Makefile.am: + + Remove tmplinst.cpp from list of files. + + * orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/BasicLogFactory_i.h: + * orbsvcs/orbsvcs/Log/EventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/EventLogFactory_i.h: + * orbsvcs/orbsvcs/Log/LogMgr_i.h: + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/NotifyLogFactory_i.h: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.cpp: + * orbsvcs/orbsvcs/Log/RTEventLogFactory_i.h: + + Create new virtual method create_log_servant() and factor out + implementation from create_log_object(). This change enables + making create_log_object() into a template method in the base + class and using a Servant Activator to avoid creating the log + servants until they're actually used. I hope to make these + changes soon. + +Mon Aug 15 10:56:28 2005 J.T. Conklin <jtc@acorntoolworks.com> + + * orbsvcs/Logging_Service/Basic_Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/Event_Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/Notify_Logging_Service/Makefile.am: + * orbsvcs/Logging_Service/RTEvent_Logging_Service/Makefile.am: + * orbsvcs/orbsvcs/Makefile.am: + + Regenerated. + + * orbsvcs/orbsvcs/DsLogAdmin.mpc: + + Changed to inherit from utils. + + * orbsvcs/orbsvcs/Log/LogMgr_i.cpp (init): + + Use TAO::Utils::PolicyList_Destroyer instead of plain + CORBA::PolicyList and an explicit loop to destroy the policies. + This ensures all policies will be destroyed if an exception is + thrown. + +Mon Aug 15 16:25:23 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_component/component_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + * TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp: + * TAO_IDL/be/be_visitor_interface/tie_si.cpp: + + Removed incorrect generation of '::' before CORBA::is_nil() + and CORBA::release(). + +Mon Aug 15 16:08:15 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_valuetype.cpp: + + Removed incorrect generation of '::' before generation of + CORBA::add_ref() and CORBA::remove_ref() declarations. + +Mon Aug 15 15:45:32 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_exception/exception_ch.cpp: + + Modified changes in + + Fri Aug 12 22:13:15 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + slightly to omit the generation of the leading double colon + if a field is a typedef of a basic type. In some of these + cases, the ACE_NESTED_MACRO will be generated, and the + leading double colon would be incorrect. + +Mon Aug 15 10:15:40 CDT 2005 Steve Totten <totten_s@ociweb.com> + + Committed the following change that came originally from + Dave Giovannini of OCI in OCI's TAO 1.4a. + + Mon Jul 18 14:04:58 2005 David Giovannini <giovannd@ociweb.com> + + * tao/DynamicInterface/DII_Invocation_Adapter.cpp: + + Add forward invocation to DII adaptor. + +Mon Aug 15 10:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * performance-tests/Cubit/TAO/MT_Cubit/tmplinst.cpp: + * performance-tests/Cubit/TAO/IDL_Cubit/tmplinst.cpp: + * orbsvcs/tests/Concurrency/tmplinst.cpp: + Removed these files + + * performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit.mpc: + * performance-tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.mpc: + Removed the files above + +Fri Aug 12 22:15:14 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tests/IDL_Test/nested_scope.idl: + + Added the IDL test file sent in by Nikolay Metchev + <n.metchev@teamphone.com> to the test suite. + +Fri Aug 12 22:13:15 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_predefined_type.cpp: + * TAO_IDL/be/be_valuetype.cpp: + * TAO_IDL/be/be_visitor_traits.cpp: + * TAO_IDL/be/be_visitor_argument/arglist.cpp: + * TAO_IDL/be/be_visitor_argument/invoke_cs.cpp: + * TAO_IDL/be/be_visitor_argument/marshal_ss.cpp: + * TAO_IDL/be/be_visitor_argument/paramlist.cpp: + * TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp: + * TAO_IDL/be/be_visitor_array/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_array/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_array/array.cpp: + * TAO_IDL/be/be_visitor_array/array_cs.cpp: + * TAO_IDL/be/be_visitor_array/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_array/serializer_op_ch.cpp: + * TAO_IDL/be/be_visitor_array/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_component/component_ch.cpp: + * TAO_IDL/be/be_visitor_component/component_ci.cpp: + * TAO_IDL/be/be_visitor_component/component_cs.cpp: + * TAO_IDL/be/be_visitor_component/component_sh.cpp: + * TAO_IDL/be/be_visitor_enum/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_enum/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_enum/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_enum/serializer_op_ch.cpp: + * TAO_IDL/be/be_visitor_enum/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_exception/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_exception/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_exception/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_exception/ctor_assign.cpp: + * TAO_IDL/be/be_visitor_exception/exception_ch.cpp: + * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: + * TAO_IDL/be/be_visitor_exception/exception_ctor.cpp: + * TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_field/field_ch.cpp: + * TAO_IDL/be/be_visitor_field/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/amh_ch.cpp: + * TAO_IDL/be/be_visitor_interface/amh_sh.cpp: + * TAO_IDL/be/be_visitor_interface/amh_ss.cpp: + * TAO_IDL/be/be_visitor_interface/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ci.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + * TAO_IDL/be/be_visitor_interface/interface_sh.cpp: + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: + * TAO_IDL/be/be_visitor_interface/remote_proxy_broker_cs.cpp: + * TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp: + * TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp: + * TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp: + * TAO_IDL/be/be_visitor_interface/tie_sh.cpp: + * TAO_IDL/be/be_visitor_interface/tie_si.cpp: + * TAO_IDL/be/be_visitor_interface_fwd/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp: + * TAO_IDL/be/be_visitor_operation/amh_sh.cpp: + * TAO_IDL/be/be_visitor_operation/amh_ss.cpp: + * TAO_IDL/be/be_visitor_operation/ami_cs.cpp: + * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp: + * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_ch.c + * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.c + * TAO_IDL/be/be_visitor_operation/arglist.cpp: + * TAO_IDL/be/be_visitor_operation/exceptlist_ss.cpp: + * TAO_IDL/be/be_visitor_operation/operation.cpp: + * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: + * TAO_IDL/be/be_visitor_operation/rettype.cpp: + * TAO_IDL/be/be_visitor_root/root.cpp: + * TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_sequence/buffer_type.cpp: + * TAO_IDL/be/be_visitor_sequence/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_sequence/sequence_base.cpp: + * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp: + * TAO_IDL/be/be_visitor_sequence/serializer_op_ch.cpp: + * TAO_IDL/be/be_visitor_sequence/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_structure/serializer_op_ch.cpp: + * TAO_IDL/be/be_visitor_structure/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_typecode/alias_typecode.cpp: + * TAO_IDL/be/be_visitor_typecode/objref_typecode.cpp: + * TAO_IDL/be/be_visitor_typecode/struct_typecode.cpp: + * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp: + * TAO_IDL/be/be_visitor_typecode/union_typecode.cpp: + * TAO_IDL/be/be_visitor_typecode/value_typecode.cpp: + * TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp: + * TAO_IDL/be/be_visitor_union/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_union/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_union/discriminant_ch.cpp: + * TAO_IDL/be/be_visitor_union/discriminant_ci.cpp: + * TAO_IDL/be/be_visitor_union/serializer_op_ch.cpp: + * TAO_IDL/be/be_visitor_union/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_union/union_ch.cpp: + * TAO_IDL/be/be_visitor_union/union_cs.cpp: + * TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_union_branch/private_ch.cpp: + * TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp: + * TAO_IDL/be/be_visitor_union_branch/public_ch.cpp: + * TAO_IDL/be/be_visitor_union_branch/public_ci.cpp: + * TAO_IDL/be/be_visitor_union_branch/public_reset_cs.cpp: + * TAO_IDL/be/be_visitor_union_branch/serializer_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuebox/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuebox/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuebox/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuebox/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuebox/field_ch.cpp: + * TAO_IDL/be/be_visitor_valuebox/field_ci.cpp: + * TAO_IDL/be/be_visitor_valuebox/union_member_ci.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_ch.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_ci.cpp: + * TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/field_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/field_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/marshal_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_init_arglist_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_init_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype/valuetype_obv_cs.cpp: + * TAO_IDL/be/be_visitor_valuetype_fwd/any_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype_fwd/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_valuetype_fwd/cdr_op_ci.cpp: + + Made sure the leading '::' appears before the 'CORBA' + scope of all generated basic type names. If application + IDL has a nested module named 'CORBA' there will be + confusion otherwise. Thanks to Nikolay Metchev + <n.metchev@teamphone.com> for sending in the example + IDL file that uncovered the bug. + +Fri Aug 12 14:17:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/Miop/McastHello/McastHello.h: + Removed not needed msvc pragma push/pop + + * orbsvcs/tests/Miop/McastHello/server.cpp: + Added a line feed to the error message + +Fri Aug 12 07:55:08 2005 Chad Elliott <elliott_c@ociweb.com> + + * tests/Bug_1551_Regression/Hello.cpp: + + Added a line feed to the aborting message. + + * tests/Collocation_Tests/Collocated_Test.cpp: + * tests/Collocation_Tests/Server_Task.cpp: + + Destroy the server (and client) orb only after all threads have + finished. + + * tests/Collocation_Tests/Hello.cpp: + + Added a sleep of 1 second before the orb shutdown to avoid + BAD_INV_ORDER exceptions on fast dual processor machines. + + * tests/OBV/Collocated/Forward/Client_Task.cpp: + * tests/OBV/Collocated/Forward/run_test.pl: + + Changed this test to use if statements instead of ACE_ASSERT so + that the test runs the same on release builds as it does on debug + builds. + + * tests/Portable_Interceptors/Collocated/Dynamic/run_test.pl: + + Check the correct variable to accurately display the test result. + + * tests/RTScheduling/Current/Thread_Task.cpp: + + Added a sleep of 1 second before the orb shutdown to avoid + BAD_INV_ORDER exceptions on fast dual processor machines. + + * tests/Server_Connection_Purging/client.cpp: + + Remove event handlers after finishing with the reactor loop to + avoid the possibility of using the handlers after they go out of + scope. Also, added a parameter to an ACE_ERROR_RETURN that + expected one (by %p). + + + Committing the following changes from OCI. + + Fri Sep 17 10:01:21 2004 Yan Dai <dai_y@ociweb.com> + + * tests/Bug_1361_Regression/Echo.h: + + Make the abort_counter_ to be atomic. This would resolve the + problem of client timeout causes test failure. + + Wed Sep 8 16:43:37 MST 2004 Yan Dai <dai_y@ociweb.com> + + * tests/Bug_1361_Regression/run_test.pl: + + Made it wait longer for server shutdown since the server shutdown + needs more time on some platforms and corrected one syntex error + which uses undefined $client1. + + Mon Apr 28 17:19:32 2003 Steve Totten <totten_s@ociweb.com> + + * tests/Stack_Recursion/run_test.pl: + + Fixed typo in variable name used to print client status. + + Wed Apr 23 13:05:48 2003 Steve Totten <totten_s@ociweb.com> + + * tests/Smart_Proxies/client.cpp: + * tests/Smart_Proxies/server.cpp: + + Cleaned up some poor usage of ACE exception macros in client + and server. Added a short sleep in client after it invokes + shutdown on server to make sure the request is written (this was + causing a problem on Windows XP). + + * tests/Smart_Proxies/Policy/run_test.pl: + + Fixed return-code checking. + + * tests/Strategies/run_test.pl: + + Fixed return-code checking. + +Fri Aug 12 08:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Collocation_Oneway_Tests/Client_Task.{h,cpp}: + * tests/Collocation_Oneway_Tests/Collocated_Test.cpp: + Changed the Client_Task enum, NONE is a macro on VxWorks + +Thu Aug 11 16:16:00 2005 Justin Michel <michel_j@ociweb.com> + + * orbsvcs/Notify_Service/Notify_Service.h: + * orbsvcs/Notify_Service/Notify_Service.cpp: + + Reverted Mon Dec 6 23:08:12 2004 J.T. Conklin <jtc@acorntoolworks.com> + + The code requires use of to_name() to support creation of CosNaming::Name with + length > 1. For example : + CosNaming::Name_var n = to_name("a/b"); + is basically equivalent to : + CosNaming::Name n(2); + n.length(2); + n[0].id = "a"; + n[1].id = "b"; + + Thanks to Mike Chartier <mikec at compgen dot com> for + spotting this problem. + Rather than reverting the code to support both styles, I just made + the new code always use to_name(). + +Thu Aug 11 13:48:57 2005 Chad Elliott <elliott_c@ociweb.com> + + * tao/orbconf.h: + + Removed an unused and deprecated macro, + TAO_CONNECTION_CACHING_STRATEGY. The macro that is used is + TAO_CONNECTION_PURGING_STRATEGY. + +Thu Aug 11 08:02:32 2005 Gary Maxey <gary.maxey@hp.com> + + * tao/CORBANAME_Parser.cpp: + Change variable type because of warnings by some compilers. + +Wed Aug 10 08:46:55 2005 Gary Maxey <gary.maxey@hp.com> + + * tao/CORBANAME_Parser.cpp: + Fixed problem where the following legal syntax was not allowed: + "corbaname:rir" + which should produce the object reference of the naming service. + +Wed Aug 10 11:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Collocation_Exception_Test/Client_Task.cpp: + * tests/Collocation_Exception_Test/Collocation_Excep_Test.mpc: + No need to use messaging + +Tue Aug 9 19:28:15 2005 Ossama Othman <ossama@dre.vanderbilt.edu> + + From J H Choi <jhchoi at sqisoft dot com> + * tao/TypeCode.cpp (equivalent): + + Equivalence of two TypeCodes must be done between their + unaliased counterparts. The code was incorrectly leaving one of + the TypeCodes aliased in the comparison. + +Mon Aug 8 18:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Strategies/advanced_resource.cpp: + Added include of tao/Protocol_Factory.h to not get compile errors + when all protocols are disabled. Thanks to Arvind S. Krishna + <arvindk at dre dot vanderbilt dot edu> for reporting this + +Mon Aug 8 10:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Collocation_Oneway_Tests/Collocation_Oneway_Tests.mpc: + * tests/Collocation_Exception_Test/Collocation_Excep_Test.mpc: + Made projects unique + +Mon Aug 8 08:55:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/tests/ImplRepo/nestea_i.cpp: + Fixed invalid delete + + * tao/PortableServer/Servant_Base.cpp: + Fixed bug when invoking collocated oneways with SYNC_WITH_SERVER + is set + + * tests/Collocation_Oneway_Tests/*: + New test for collocated oneways. Thanks to Vito Bico + <vbica at qualcomm dot com> for making this test to reproduce + the bug in Servant_Base. + + * tests/Collocation_Exception_Test/*: + New test for testing exceptions in collocated case + + * rules.tao.GNU: + Removed TAO libraries, MPC now handles this. + + * tests/Hello/Hello.mpc: + Added -St and -Sa as idl flags. This test doesn't need Any + and TypeCode and this way we can get the footprint down more + when AnyTypeCode refactoring is ready. + +Fri Aug 05 07:49:26 2005 Simon Massey <sma@prismtech.com> + + * TAO version 1.4.7 released. + + diff --git a/TAO/examples/CSD_Strategy/Makefile.am b/TAO/examples/CSD_Strategy/Makefile.am new file mode 100644 index 00000000000..26d99e9e042 --- /dev/null +++ b/TAO/examples/CSD_Strategy/Makefile.am @@ -0,0 +1,18 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +SUBDIRS = \ + ThreadPool \ + ThreadPool2 \ + ThreadPool3 \ + ThreadPool4 \ + ThreadPool5 \ + ThreadPool6 + diff --git a/TAO/examples/CSD_Strategy/ThreadPool/Makefile.am b/TAO/examples/CSD_Strategy/ThreadPool/Makefile.am new file mode 100644 index 00000000000..833eb06aaa2 --- /dev/null +++ b/TAO/examples/CSD_Strategy/ThreadPool/Makefile.am @@ -0,0 +1,143 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +## Makefile.CSD_Test_ThreadPool_Server.am + +BUILT_SOURCES = \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES = \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.cpp FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS = server_main + +server_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +server_main_SOURCES = \ + FooC.cpp \ + FooS.cpp \ + Foo_i.cpp \ + OrbShutdownTask.cpp \ + ServerApp.cpp \ + server_main.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl \ + Foo_i.h \ + OrbShutdownTask.h \ + ServerApp.h + +server_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_ThreadPool.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_Framework.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Makefile.CSD_Test_ThreadPool_Client.am + +BUILT_SOURCES += \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES += \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS += client_main + +client_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +client_main_SOURCES = \ + ClientApp.cpp \ + FooC.cpp \ + client_main.cpp \ + ClientApp.h \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl + +client_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/examples/CSD_Strategy/ThreadPool2/Makefile.am b/TAO/examples/CSD_Strategy/ThreadPool2/Makefile.am new file mode 100644 index 00000000000..9c7e6873815 --- /dev/null +++ b/TAO/examples/CSD_Strategy/ThreadPool2/Makefile.am @@ -0,0 +1,145 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +## Makefile.CSD_Test_ThreadPool2_Server.am + +BUILT_SOURCES = \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES = \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.cpp FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS = server_main + +server_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +server_main_SOURCES = \ + FooC.cpp \ + FooS.cpp \ + FooServantList.cpp \ + Foo_i.cpp \ + OrbShutdownTask.cpp \ + ServerApp.cpp \ + server_main.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl \ + FooServantList.h \ + Foo_i.h \ + OrbShutdownTask.h \ + ServerApp.h + +server_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_ThreadPool.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_Framework.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Makefile.CSD_Test_ThreadPool2_Client.am + +BUILT_SOURCES += \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES += \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS += client_main + +client_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +client_main_SOURCES = \ + ClientApp.cpp \ + FooC.cpp \ + client_main.cpp \ + ClientApp.h \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl + +client_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/examples/CSD_Strategy/ThreadPool3/Makefile.am b/TAO/examples/CSD_Strategy/ThreadPool3/Makefile.am new file mode 100644 index 00000000000..092794c96d1 --- /dev/null +++ b/TAO/examples/CSD_Strategy/ThreadPool3/Makefile.am @@ -0,0 +1,145 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +## Makefile.CSD_Test_ThreadPool3_Server.am + +BUILT_SOURCES = \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES = \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.cpp FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS = server_main + +server_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +server_main_SOURCES = \ + FooC.cpp \ + FooS.cpp \ + Foo_i.cpp \ + OrbShutdownTask.cpp \ + OrbTask.cpp \ + ServerApp.cpp \ + server_main.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl \ + Foo_i.h \ + OrbShutdownTask.h \ + OrbTask.h \ + ServerApp.h + +server_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_ThreadPool.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_Framework.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Makefile.CSD_Test_ThreadPool3_Client.am + +BUILT_SOURCES += \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES += \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS += client_main + +client_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +client_main_SOURCES = \ + ClientApp.cpp \ + FooC.cpp \ + client_main.cpp \ + ClientApp.h \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl + +client_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/examples/CSD_Strategy/ThreadPool4/ClientTask.cpp b/TAO/examples/CSD_Strategy/ThreadPool4/ClientTask.cpp new file mode 100644 index 00000000000..a2cd204a762 --- /dev/null +++ b/TAO/examples/CSD_Strategy/ThreadPool4/ClientTask.cpp @@ -0,0 +1,211 @@ +// This may look like C, but it's really -*- C++ -*- + +//============================================================================= +/** + * @file ClientTask.cpp + * + * $Id$ + * + * @author Tim Bradley <bradley_t@ociweb.com> + */ +//============================================================================= + +#include "ClientTask.h" +#include "ace/SString.h" +#include "ace/OS.h" + + +ClientTask::ClientTask(Foo_ptr foo, + Callback_ptr callback) +: foo_(Foo::_duplicate(foo)), + callback_(Callback::_duplicate(callback)) +{ +} + + +ClientTask::~ClientTask() +{ +} + + +int +ClientTask::open(void*) +{ + if (this->activate(THR_NEW_LWP | THR_JOINABLE, 1) != 0) + { + // Assumes that when activate returns non-zero return code that + // no threads were activated. + ACE_ERROR_RETURN((LM_ERROR, + "(%P|%t) ClientTask failed to activate " + "the client thread.\n"), + -1); + } + + return 0; +} + + +int +ClientTask::svc() +{ + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ClientTask::svc start\n")); + + ACE_TRY_NEW_ENV + { + for (CORBA::Long i = 1; i <= 100; i++) + { + // Simple Two-way calls. + this->foo_->op1(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->foo_->op2(i ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + CORBA::Long value = this->foo_->op3(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ===> Value retrieved from op3() == %d\n", + value)); + + for (CORBA::Long j = 1; j <= 5; j++) + { + this->foo_->op4(495 + (i * 5) + j ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + + ACE_TRY_EX (op5) + { + ACE_DEBUG((LM_DEBUG, "(%P|%t) ===> Invoke op5()\n")); + this->foo_->op5(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK_EX (op5); + ACE_DEBUG((LM_DEBUG, "(%P|%t) ===> No exception raised from op5(). :-(\n")); + } + ACE_CATCH (FooException, ex) + { + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ===> Caught FooException - as expected.\n")); + + } + ACE_ENDTRY; + + // Two-Way calls with inout parameters. + CORBA::String_var message = CORBA::string_dup( "Hello! " ); + CORBA::Boolean result + = this->foo_->op6( "TAO User", message.inout() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (result) + { + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ===> Message from op6() == %s\n", + message.in ())); + } + else + { + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ===> op6() returned false.\n")); + } + + // Callback test. + this->foo_->callback_object (this->callback_.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->foo_->test_callback (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + // One-Way calls with various arguments. + CORBA::String_var ub_string = CORBA::string_dup( "UNBOUNDED STRING" ); + this->foo_->test_unbounded_string_arg (ub_string.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var bd_string = CORBA::string_dup( "BOUNDED STRING" ); + this->foo_->test_bounded_string_arg (bd_string.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Fixed_Array fixed_array; + + for (CORBA::ULong m = 0; m < 20; m ++) + { + fixed_array[m] = i + m; + } + + this->foo_->test_fixed_array_arg (fixed_array ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Var_Array var_array; + var_array[0] = CORBA::string_dup( "STRING 1" ); + var_array[1] = CORBA::string_dup( "STRING 2" ); + var_array[2] = CORBA::string_dup( "STRING 3" ); + this->foo_->test_var_array_arg (var_array ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Bounded_Var_Size_var bd_var_size_string = new Bounded_Var_Size(); + CORBA::String_var buffer1 = CORBA::string_dup ("BOUNDED VAR SIZE CHAR"); + bd_var_size_string->replace (ACE_OS::strlen (buffer1) + 1, buffer1); + this->foo_->test_bounded_var_size_arg (bd_var_size_string.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var buffer2 = CORBA::string_dup ("UNBOUNDED VAR SIZE CHAR"); + Unbounded_Var_Size_var ub_var_size_string = new Unbounded_Var_Size(100); + ub_var_size_string->replace (ub_var_size_string->maximum (), + ACE_OS::strlen (buffer2) + 1, + buffer2); + this->foo_->test_unbounded_var_size_arg (ub_var_size_string.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + TimeOfDay t; + t.hour = 12; + t.minute = 30; + t.second = 10; + this->foo_->test_fixed_size_arg (t ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->foo_->test_fixed_size_arg_two_way (t ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Boolean special_value = 1; + this->foo_->test_special_basic_arg (special_value ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->foo_->test_objref_arg (this->callback_.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ClientTask::svc - Invoke foo->done()\n")); + + this->foo_->done (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ClientTask::svc - Back from foo->done()\n")); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Caught exception in ClientTask::svc():"); + } + ACE_CATCHALL + { + ACE_ERROR((LM_ERROR, + "(%P|%t) Unknown (...) exception caught in ClientTask::svc()\n")); + } + ACE_ENDTRY; + + + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ClientTask::svc end\n")); + + return 0; +} + + +int +ClientTask::close(u_long) +{ + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ClientTask::close() - enter/exit\n")); + return 0; +} diff --git a/TAO/examples/CSD_Strategy/ThreadPool4/Makefile.am b/TAO/examples/CSD_Strategy/ThreadPool4/Makefile.am new file mode 100644 index 00000000000..ebc473557e0 --- /dev/null +++ b/TAO/examples/CSD_Strategy/ThreadPool4/Makefile.am @@ -0,0 +1,139 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +CLEANFILES = +BUILT_SOURCES = + +## Makefile.CSD_Test_ThreadPool4_Server.am + +if BUILD_CORBA_MESSAGING + +BUILT_SOURCES += \ + CallbackC.cpp \ + CallbackC.h \ + CallbackC.inl \ + CallbackS.cpp \ + CallbackS.h \ + CallbackS.inl \ + CallbackS_T.cpp \ + CallbackS_T.h \ + CallbackS_T.inl + +CLEANFILES += \ + Callback-stamp \ + CallbackC.cpp \ + CallbackC.h \ + CallbackC.inl \ + CallbackS.cpp \ + CallbackS.h \ + CallbackS.inl \ + CallbackS_T.cpp \ + CallbackS_T.h \ + CallbackS_T.inl + +CallbackC.cpp CallbackC.h CallbackC.inl CallbackS.cpp CallbackS.h CallbackS.inl CallbackS_T.cpp CallbackS_T.h CallbackS_T.inl: Callback-stamp + +Callback-stamp: $(srcdir)/Callback.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Callback.idl + @touch $@ + +BUILT_SOURCES += \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES += \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.cpp FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS = server_main + +server_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +server_main_SOURCES = \ + CallbackC.cpp \ + CallbackS.cpp \ + Callback_i.cpp \ + ClientTask.cpp \ + FooC.cpp \ + FooS.cpp \ + Foo_i.cpp \ + OrbShutdownTask.cpp \ + ServerApp.cpp \ + server_main.cpp \ + CallbackC.h \ + CallbackC.inl \ + CallbackS.h \ + CallbackS_T.h \ + CallbackS_T.inl \ + Callback_i.h \ + ClientTask.h \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl \ + Foo_i.h \ + OrbShutdownTask.h \ + ServerApp.h + +server_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_ThreadPool.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_Framework.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif BUILD_CORBA_MESSAGING + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/ClientTask.cpp b/TAO/examples/CSD_Strategy/ThreadPool5/ClientTask.cpp new file mode 100644 index 00000000000..49c5cc14841 --- /dev/null +++ b/TAO/examples/CSD_Strategy/ThreadPool5/ClientTask.cpp @@ -0,0 +1,262 @@ +// This may look like C, but it's really -*- C++ -*- + +//============================================================================= +/** + * @file ClientTask.cpp + * + * $Id$ + * + * @author Tim Bradley <bradley_t@ociweb.com> + */ +//============================================================================= + +#include "ClientTask.h" +#include "ace/SString.h" +#include "ace/OS.h" + + +ClientTask::ClientTask(CORBA::ORB_ptr orb, + Foo_ptr foo, + Callback_ptr callback, + bool collocated) +: orb_ (CORBA::ORB::_duplicate (orb)), + foo_(Foo::_duplicate(foo)), + callback_(Callback::_duplicate(callback)), + collocated_ (collocated) +{ +} + + +ClientTask::~ClientTask() +{ +} + + +int +ClientTask::open(void*) +{ + if (this->activate(THR_NEW_LWP | THR_JOINABLE, 1) != 0) + { + // Assumes that when activate returns non-zero return code that + // no threads were activated. + ACE_ERROR_RETURN((LM_ERROR, + "(%P|%t) ClientTask failed to activate " + "the client thread.\n"), + -1); + } + + return 0; +} + + +int +ClientTask::svc() +{ + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ClientTask::svc start\n")); + + ACE_TRY_NEW_ENV + { + // Make sure the connection is established before making + // remote invocations. + if (this->validate_connection () == false) + { + ACE_ERROR((LM_ERROR, "(%P|%t)ClientTask::svc " \ + "client connect failed.\n")); + return -1; + } + + for (CORBA::Long i = 1; i <= 100; i++) + { + // Simple Two-way calls. + this->foo_->op1(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->foo_->op2(i ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Long value = this->foo_->op3(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ===> Value retrieved from op3() == %d\n", + value)); + + for (CORBA::ULong j = 1; j <= 5; j++) + { + this->foo_->op4(495 + (i * 5) + j ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + + ACE_TRY_EX (op5) + { + ACE_DEBUG((LM_DEBUG, "(%P|%t) ===> Invoke op5()\n")); + this->foo_->op5(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK_EX (op5); + ACE_DEBUG((LM_DEBUG, "(%P|%t) ===> No exception raised from op5(). :-(\n")); + } + ACE_CATCH (FooException, ex) + { + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ===> Caught FooException - as expected.\n")); + + } + ACE_ENDTRY; + + // Two-Way calls with inout parameters. + CORBA::String_var message = CORBA::string_dup( "Hello! " ); + CORBA::Boolean result + = this->foo_->op6( "TAO User", message.inout() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (result) + { + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ===> Message from op6() == %s\n", + message.in ())); + } + else + { + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ===> op6() returned false.\n")); + } + + // Callback test. + this->foo_->callback_object (this->callback_.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->foo_->test_callback (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + // One-Way calls with various arguments. + CORBA::String_var ub_string = CORBA::string_dup( "UNBOUNDED STRING" ); + this->foo_->test_unbounded_string_arg (ub_string.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var bd_string = CORBA::string_dup( "BOUNDED STRING" ); + this->foo_->test_bounded_string_arg (bd_string.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Fixed_Array fixed_array; + + for (CORBA::ULong m = 0; m < 20; m ++) + { + fixed_array[m] = i + m; + } + + this->foo_->test_fixed_array_arg (fixed_array ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Var_Array var_array; + var_array[0] = CORBA::string_dup( "STRING 1" ); + var_array[1] = CORBA::string_dup( "STRING 2" ); + var_array[2] = CORBA::string_dup( "STRING 3" ); + this->foo_->test_var_array_arg (var_array ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Bounded_Var_Size_var bd_var_size_string = new Bounded_Var_Size(); + CORBA::String_var buffer1 = CORBA::string_dup ("BOUNDED VAR SIZE CHAR"); + bd_var_size_string->replace (ACE_OS::strlen (buffer1) + 1, + buffer1); + this->foo_->test_bounded_var_size_arg (bd_var_size_string.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var buffer2 = CORBA::string_dup ("UNBOUNDED VAR SIZE CHAR"); + Unbounded_Var_Size_var ub_var_size_string = new Unbounded_Var_Size(100); + ub_var_size_string->replace (ub_var_size_string->maximum (), + ACE_OS::strlen (buffer2) + 1, + buffer2); + this->foo_->test_unbounded_var_size_arg (ub_var_size_string.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + TimeOfDay t; + t.hour = 12; + t.minute = 30; + t.second = 10; + this->foo_->test_fixed_size_arg (t ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->foo_->test_fixed_size_arg_two_way (t ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Boolean special_value = 1; + this->foo_->test_special_basic_arg (special_value ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->foo_->test_objref_arg (this->callback_.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ClientTask::svc - Invoke foo->done()\n")); + + this->foo_->done (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ClientTask::svc - Back from foo->done()\n")); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Caught exception in ClientTask::svc:"); + } + ACE_CATCHALL + { + ACE_ERROR((LM_ERROR, + "(%P|%t) Unknown (...) exception caught in ClientTask::svc()\n")); + } + ACE_ENDTRY; + + if (! collocated_) + { + ACE_OS::sleep (2); + this->orb_->shutdown(0); + } + + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ClientTask::svc end\n")); + + return 0; +} + + +int +ClientTask::close(u_long) +{ + ACE_DEBUG((LM_DEBUG, + "(%P|%t) ClientTask::close() - enter/exit\n")); + return 0; +} + + +bool +ClientTask::validate_connection () +{ + for (CORBA::ULong j = 0; j != 1000; ++j) + { + ACE_TRY_NEW_ENV + { +#if (TAO_HAS_CORBA_MESSAGING == 1) + CORBA::PolicyList_var unused; + this->foo_->_validate_connection (unused + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; +#else + this->foo_->_is_a ("Not_An_IDL_Type" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; +#endif /* TAO_HAS_MESSAGING == 1 */ + return true; + } + ACE_CATCHANY + { + } + ACE_ENDTRY; + } + + return false; +} diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/Makefile.am b/TAO/examples/CSD_Strategy/ThreadPool5/Makefile.am new file mode 100644 index 00000000000..03287948639 --- /dev/null +++ b/TAO/examples/CSD_Strategy/ThreadPool5/Makefile.am @@ -0,0 +1,232 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +## Makefile.CSD_Test_ThreadPool5_Server.am + +BUILT_SOURCES = \ + CallbackC.cpp \ + CallbackC.h \ + CallbackC.inl \ + CallbackS.cpp \ + CallbackS.h \ + CallbackS.inl \ + CallbackS_T.cpp \ + CallbackS_T.h \ + CallbackS_T.inl + +CLEANFILES = \ + Callback-stamp \ + CallbackC.cpp \ + CallbackC.h \ + CallbackC.inl \ + CallbackS.cpp \ + CallbackS.h \ + CallbackS.inl \ + CallbackS_T.cpp \ + CallbackS_T.h \ + CallbackS_T.inl + +CallbackC.cpp CallbackC.h CallbackC.inl CallbackS.cpp CallbackS.h CallbackS.inl CallbackS_T.cpp CallbackS_T.h CallbackS_T.inl: Callback-stamp + +Callback-stamp: $(srcdir)/Callback.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Callback.idl + @touch $@ + +BUILT_SOURCES += \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES += \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.cpp FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS = server_main + +server_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +server_main_SOURCES = \ + CallbackC.cpp \ + CallbackS.cpp \ + Callback_i.cpp \ + ClientTask.cpp \ + FooC.cpp \ + FooS.cpp \ + FooServantList.cpp \ + Foo_i.cpp \ + OrbShutdownTask.cpp \ + OrbTask.cpp \ + ServerApp.cpp \ + server_main.cpp \ + CallbackC.h \ + CallbackC.inl \ + CallbackS.h \ + CallbackS_T.h \ + CallbackS_T.inl \ + Callback_i.h \ + ClientTask.h \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl \ + FooServantList.h \ + Foo_i.h \ + OrbShutdownTask.h \ + OrbTask.h \ + ServerApp.h + +server_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_ThreadPool.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_Framework.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Makefile.CSD_Test_ThreadPool5_Client.am + +BUILT_SOURCES += \ + CallbackC.cpp \ + CallbackC.h \ + CallbackC.inl \ + CallbackS.cpp \ + CallbackS.h \ + CallbackS.inl \ + CallbackS_T.cpp \ + CallbackS_T.h \ + CallbackS_T.inl + +CLEANFILES += \ + Callback-stamp \ + CallbackC.cpp \ + CallbackC.h \ + CallbackC.inl \ + CallbackS.cpp \ + CallbackS.h \ + CallbackS.inl \ + CallbackS_T.cpp \ + CallbackS_T.h \ + CallbackS_T.inl + +CallbackC.cpp CallbackC.h CallbackC.inl CallbackS.cpp CallbackS.h CallbackS.inl CallbackS_T.cpp CallbackS_T.h CallbackS_T.inl: Callback-stamp + +Callback-stamp: $(srcdir)/Callback.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Callback.idl + @touch $@ + +BUILT_SOURCES += \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES += \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS += client_main + +client_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +client_main_SOURCES = \ + CallbackC.cpp \ + CallbackS.cpp \ + Callback_i.cpp \ + ClientApp.cpp \ + ClientTask.cpp \ + FooC.cpp \ + client_main.cpp \ + CallbackC.h \ + CallbackC.inl \ + CallbackS.h \ + CallbackS_T.h \ + CallbackS_T.inl \ + Callback_i.h \ + ClientApp.h \ + ClientTask.h \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl + +client_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_ThreadPool.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_Framework.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/examples/CSD_Strategy/ThreadPool6/Makefile.am b/TAO/examples/CSD_Strategy/ThreadPool6/Makefile.am new file mode 100644 index 00000000000..bc41cbef89e --- /dev/null +++ b/TAO/examples/CSD_Strategy/ThreadPool6/Makefile.am @@ -0,0 +1,151 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +CLEANFILES = +noinst_PROGRAMS = +BUILT_SOURCES = + +## Makefile.CSD_Test_ThreadPool6_Server.am + +if !BUILD_MINIMUM_CORBA + +BUILT_SOURCES += \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES += \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.cpp FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS += server_main + +server_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +server_main_SOURCES = \ + FooC.cpp \ + FooS.cpp \ + Foo_i.cpp \ + OrbShutdownTask.cpp \ + ServerApp.cpp \ + server_main.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl \ + Foo_i.h \ + OrbShutdownTask.h \ + ServerApp.h + +server_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_ThreadPool.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_Framework.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA + +## Makefile.CSD_Test_ThreadPool6_Client.am + +BUILT_SOURCES += \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES += \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) $(srcdir)/Foo.idl + @touch $@ + +noinst_PROGRAMS += client_main + +client_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +client_main_SOURCES = \ + ClientApp.cpp \ + FooC.cpp \ + client_main.cpp \ + ClientApp.h \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.h \ + FooS_T.inl + +client_main_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/orbsvcs/tests/Bug_2074_Regression/Makefile.am b/TAO/orbsvcs/tests/Bug_2074_Regression/Makefile.am new file mode 100644 index 00000000000..02fa11fa326 --- /dev/null +++ b/TAO/orbsvcs/tests/Bug_2074_Regression/Makefile.am @@ -0,0 +1,57 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_ROOT = $(top_srcdir) + + +## Makefile.Bug_2074_Regression_Test.am + +if BUILD_CORBA_MESSAGING +if !BUILD_MINIMUM_CORBA + +noinst_PROGRAMS = test + +test_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_BUILDDIR)/orbsvcs + +test_SOURCES = \ + ORB_Task.cpp \ + test.cpp \ + ORB_Task.h + +test_LDADD = \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_CosNaming.la \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA +endif BUILD_CORBA_MESSAGING + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/orbsvcs/tests/Bug_2285_Regression/Makefile.am b/TAO/orbsvcs/tests/Bug_2285_Regression/Makefile.am new file mode 100644 index 00000000000..3038dbd195a --- /dev/null +++ b/TAO/orbsvcs/tests/Bug_2285_Regression/Makefile.am @@ -0,0 +1,258 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +noinst_PROGRAMS = + +## Makefile.Bug_2285_Regression_IDL.am + +BUILT_SOURCES = \ + TestC.cpp \ + TestC.h \ + TestC.inl \ + TestS.cpp \ + TestS.h \ + TestS.inl \ + TestS_T.cpp \ + TestS_T.h \ + TestS_T.inl + +CLEANFILES = \ + Test-stamp \ + TestC.cpp \ + TestC.h \ + TestC.inl \ + TestS.cpp \ + TestS.h \ + TestS.inl \ + TestS_T.cpp \ + TestS_T.h \ + TestS_T.inl + +TestC.cpp TestC.h TestC.inl TestS.cpp TestS.h TestS.inl TestS_T.cpp TestS_T.h TestS_T.inl: Test-stamp + +Test-stamp: $(srcdir)/Test.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -Sa -St $(srcdir)/Test.idl + @touch $@ + + +noinst_HEADERS = \ + Test.idl + +## Makefile.Bug_2285_Regression_Client.am + +if BUILD_ACE_UUID +if BUILD_CORBA_MESSAGING +if BUILD_INTERCEPTORS +if !BUILD_ACE_FOR_TAO +if !BUILD_MINIMUM_CORBA + +noinst_PROGRAMS += client + +client_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_BUILDDIR)/orbsvcs + +client_SOURCES = \ + Hello.cpp \ + TestC.cpp \ + TestS.cpp \ + client.cpp \ + Hello.h + +client_LDADD = \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FT_ClientORB.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FTORB_Utils.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_PortableGroup.la \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_CosNaming.la \ + $(TAO_BUILDDIR)/tao/libTAO_IORManip.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA +endif !BUILD_ACE_FOR_TAO +endif BUILD_INTERCEPTORS +endif BUILD_CORBA_MESSAGING +endif BUILD_ACE_UUID + +## Makefile.Bug_2285_Regression_Client2.am + +if BUILD_ACE_UUID +if BUILD_CORBA_MESSAGING +if BUILD_INTERCEPTORS +if !BUILD_ACE_FOR_TAO +if !BUILD_MINIMUM_CORBA + +noinst_PROGRAMS += client2 + +client2_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_BUILDDIR)/orbsvcs + +client2_SOURCES = \ + TestC.cpp \ + client2.cpp \ + Hello.h \ + ServerORBInitializer.h \ + ServerORBInitializer2.h \ + ServerRequest_Interceptor.h \ + ServerRequest_Interceptor2.h + +client2_LDADD = \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FT_ClientORB.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FTORB_Utils.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_PortableGroup.la \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_CosNaming.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_IORManip.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA +endif !BUILD_ACE_FOR_TAO +endif BUILD_INTERCEPTORS +endif BUILD_CORBA_MESSAGING +endif BUILD_ACE_UUID + +## Makefile.Bug_2285_Regression_Server.am + +if BUILD_ACE_UUID +if BUILD_CORBA_MESSAGING +if BUILD_INTERCEPTORS +if !BUILD_ACE_FOR_TAO +if !BUILD_MINIMUM_CORBA + +noinst_PROGRAMS += server + +server_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_BUILDDIR)/orbsvcs + +server_SOURCES = \ + Hello.cpp \ + ServerORBInitializer.cpp \ + ServerRequest_Interceptor.cpp \ + TestC.cpp \ + TestS.cpp \ + server.cpp \ + Hello.h \ + ServerORBInitializer.h \ + ServerRequest_Interceptor.h + +server_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_PI_Server.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FT_ClientORB.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FTORB_Utils.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_PortableGroup.la \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_CosNaming.la \ + $(TAO_BUILDDIR)/tao/libTAO_IORManip.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA +endif !BUILD_ACE_FOR_TAO +endif BUILD_INTERCEPTORS +endif BUILD_CORBA_MESSAGING +endif BUILD_ACE_UUID + +## Makefile.Bug_2285_Regression_Server2.am + +if BUILD_ACE_UUID +if BUILD_CORBA_MESSAGING +if BUILD_INTERCEPTORS +if !BUILD_ACE_FOR_TAO +if !BUILD_MINIMUM_CORBA + +noinst_PROGRAMS += server2 + +server2_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_BUILDDIR)/orbsvcs + +server2_SOURCES = \ + Hello.cpp \ + ServerORBInitializer2.cpp \ + ServerRequest_Interceptor2.cpp \ + TestC.cpp \ + TestS.cpp \ + server2.cpp \ + Hello.h \ + ServerORBInitializer2.h \ + ServerRequest_Interceptor2.h + +server2_LDADD = \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FT_ClientORB.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FTORB_Utils.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_PortableGroup.la \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_CosNaming.la \ + $(TAO_BUILDDIR)/tao/libTAO_IORManip.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI_Server.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA +endif !BUILD_ACE_FOR_TAO +endif BUILD_INTERCEPTORS +endif BUILD_CORBA_MESSAGING +endif BUILD_ACE_UUID + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/orbsvcs/tests/Bug_2287_Regression/Makefile.am b/TAO/orbsvcs/tests/Bug_2287_Regression/Makefile.am new file mode 100644 index 00000000000..8a739a1b621 --- /dev/null +++ b/TAO/orbsvcs/tests/Bug_2287_Regression/Makefile.am @@ -0,0 +1,159 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +noinst_PROGRAMS = + +## Makefile.Bug_2287_Regression_IDL.am + +BUILT_SOURCES = \ + TestC.cpp \ + TestC.h \ + TestC.inl \ + TestS.cpp \ + TestS.h \ + TestS.inl \ + TestS_T.cpp \ + TestS_T.h \ + TestS_T.inl + +CLEANFILES = \ + Test-stamp \ + TestC.cpp \ + TestC.h \ + TestC.inl \ + TestS.cpp \ + TestS.h \ + TestS.inl \ + TestS_T.cpp \ + TestS_T.h \ + TestS_T.inl + +TestC.cpp TestC.h TestC.inl TestS.cpp TestS.h TestS.inl TestS_T.cpp TestS_T.h TestS_T.inl: Test-stamp + +Test-stamp: $(srcdir)/Test.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -Sa -St $(srcdir)/Test.idl + @touch $@ + + +noinst_HEADERS = \ + Test.idl + +## Makefile.Bug_2287_Regression_Client.am + +if BUILD_ACE_UUID +if BUILD_CORBA_MESSAGING +if BUILD_INTERCEPTORS +if !BUILD_ACE_FOR_TAO +if !BUILD_MINIMUM_CORBA + +noinst_PROGRAMS += client + +client_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_BUILDDIR)/orbsvcs + +client_SOURCES = \ + Hello.cpp \ + TestC.cpp \ + TestS.cpp \ + client.cpp \ + Hello.h + +client_LDADD = \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FT_ClientORB.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FTORB_Utils.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_PortableGroup.la \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_CosNaming.la \ + $(TAO_BUILDDIR)/tao/libTAO_IORManip.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA +endif !BUILD_ACE_FOR_TAO +endif BUILD_INTERCEPTORS +endif BUILD_CORBA_MESSAGING +endif BUILD_ACE_UUID + +## Makefile.Bug_2287_Regression_Server.am + +if BUILD_ACE_UUID +if BUILD_CORBA_MESSAGING +if BUILD_INTERCEPTORS +if !BUILD_ACE_FOR_TAO +if !BUILD_MINIMUM_CORBA + +noinst_PROGRAMS += server + +server_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_BUILDDIR)/orbsvcs + +server_SOURCES = \ + Hello.cpp \ + ServerORBInitializer2.cpp \ + ServerRequest_Interceptor2.cpp \ + TestC.cpp \ + TestS.cpp \ + server.cpp \ + Hello.h \ + ServerORBInitializer2.h \ + ServerRequest_Interceptor2.h + +server_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_PI_Server.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FT_ClientORB.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_FTORB_Utils.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_PortableGroup.la \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_CosNaming.la \ + $(TAO_BUILDDIR)/tao/libTAO_IORManip.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA +endif !BUILD_ACE_FOR_TAO +endif BUILD_INTERCEPTORS +endif BUILD_CORBA_MESSAGING +endif BUILD_ACE_UUID + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/orbsvcs/tests/Bug_2316_Regression/Makefile.am b/TAO/orbsvcs/tests/Bug_2316_Regression/Makefile.am new file mode 100644 index 00000000000..cf310b42938 --- /dev/null +++ b/TAO/orbsvcs/tests/Bug_2316_Regression/Makefile.am @@ -0,0 +1,136 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +noinst_PROGRAMS = + +## Makefile.Bug_2316_Regression_IDL.am + +BUILT_SOURCES = \ + TestC.cpp \ + TestC.h \ + TestC.inl \ + TestS.cpp \ + TestS.h \ + TestS.inl \ + TestS_T.cpp \ + TestS_T.h \ + TestS_T.inl + +CLEANFILES = \ + Test-stamp \ + TestC.cpp \ + TestC.h \ + TestC.inl \ + TestS.cpp \ + TestS.h \ + TestS.inl \ + TestS_T.cpp \ + TestS_T.h \ + TestS_T.inl + +TestC.cpp TestC.h TestC.inl TestS.cpp TestS.h TestS.inl TestS_T.cpp TestS_T.h TestS_T.inl: Test-stamp + +Test-stamp: $(srcdir)/Test.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -Sa -St $(srcdir)/Test.idl + @touch $@ + + +noinst_HEADERS = \ + Test.idl + +## Makefile.Bug_2316_Regression_Client.am + +if BUILD_CORBA_MESSAGING +if !BUILD_MINIMUM_CORBA + +noinst_PROGRAMS += client + +client_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_BUILDDIR)/orbsvcs + +client_SOURCES = \ + TestC.cpp \ + client.cpp \ + Test_impl.h + +client_LDADD = \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_PortableGroup.la \ + $(TAO_BUILDDIR)/tao/libTAO_IORManip.la \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_CosNaming.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA +endif BUILD_CORBA_MESSAGING + +## Makefile.Bug_2316_Regression_Server.am + +if BUILD_CORBA_MESSAGING +if !BUILD_MINIMUM_CORBA + +noinst_PROGRAMS += server + +server_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_BUILDDIR)/orbsvcs + +server_SOURCES = \ + TestC.cpp \ + TestS.cpp \ + Test_impl.cpp \ + server.cpp \ + Test_impl.h + +server_LDADD = \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_PortableGroup.la \ + $(TAO_BUILDDIR)/tao/libTAO_IORManip.la \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_CosNaming.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA +endif BUILD_CORBA_MESSAGING + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/orbsvcs/tests/Bug_2377_Regression/Makefile.am b/TAO/orbsvcs/tests/Bug_2377_Regression/Makefile.am new file mode 100644 index 00000000000..94f9c0a5633 --- /dev/null +++ b/TAO/orbsvcs/tests/Bug_2377_Regression/Makefile.am @@ -0,0 +1,96 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + + +## Makefile.Bug_2377_Regression_Test.am + +if BUILD_CORBA_MESSAGING +if !BUILD_MINIMUM_CORBA + +BUILT_SOURCES = \ + HelloC.cpp \ + HelloC.h \ + HelloC.inl \ + HelloS.cpp \ + HelloS.h \ + HelloS.inl \ + HelloS_T.cpp \ + HelloS_T.h \ + HelloS_T.inl + +CLEANFILES = \ + Hello-stamp \ + HelloC.cpp \ + HelloC.h \ + HelloC.inl \ + HelloS.cpp \ + HelloS.h \ + HelloS.inl \ + HelloS_T.cpp \ + HelloS_T.h \ + HelloS_T.inl + +HelloC.cpp HelloC.h HelloC.inl HelloS.cpp HelloS.h HelloS.inl HelloS_T.cpp HelloS_T.h HelloS_T.inl: Hello-stamp + +Hello-stamp: $(srcdir)/Hello.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -I$(TAO_ROOT)/orbsvcs $(srcdir)/Hello.idl + @touch $@ + +noinst_PROGRAMS = uipmc_test + +uipmc_test_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_BUILDDIR)/orbsvcs + +uipmc_test_SOURCES = \ + Hello.cpp \ + HelloC.cpp \ + HelloS.cpp \ + HelloC.h \ + HelloC.inl \ + HelloS.h \ + HelloS_T.h \ + HelloS_T.inl + +uipmc_test_LDADD = \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_PortableGroup.la \ + $(TAO_BUILDDIR)/tao/libTAO_IORManip.la \ + $(TAO_BUILDDIR)/tao/libTAO_Messaging.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_Valuetype.la \ + $(TAO_BUILDDIR)/orbsvcs/orbsvcs/libTAO_CosNaming.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +endif !BUILD_MINIMUM_CORBA +endif BUILD_CORBA_MESSAGING + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/Makefile.am b/TAO/orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/Makefile.am new file mode 100644 index 00000000000..65568172685 --- /dev/null +++ b/TAO/orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/Makefile.am @@ -0,0 +1,42 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_ROOT = $(top_srcdir) + +## Makefile.IFR_Inheritance_Test.am + +noinst_PROGRAMS = IFR_Inheritance_Test + +IFR_Inheritance_Test_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) + +IFR_Inheritance_Test_SOURCES = \ + main.cpp + +IFR_Inheritance_Test_LDADD = \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_IFR_Client.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/main.cpp b/TAO/orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/main.cpp new file mode 100644 index 00000000000..3c76d0785bb --- /dev/null +++ b/TAO/orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/main.cpp @@ -0,0 +1,120 @@ +// -*- C++ -*- +// $Id$ + +// The run_test.pl perl script will check for the expected output. + +#include "tao/IFR_Client/IFR_BasicC.h" + +ACE_RCSID (IFR_Inheritance_Test, + main, + "$Id$") + +void printContents( const CORBA::ContainedSeq& cont ) +{ + ACE_TRY_NEW_ENV + { + for( unsigned int i=0; i<cont.length(); i++ ) + { + if( cont[i]->describe()->kind == CORBA::dk_Interface ) + { + CORBA::InterfaceDef_var intDef = + CORBA::InterfaceDef::_narrow (cont[i] + ACE_ENV_ARG_PARAMETER ); + ACE_TRY_CHECK; + + CORBA::InterfaceDef::FullInterfaceDescription* desc = + intDef->describe_interface (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + //printf( "-- %s:\n", (const char*)(desc->name) ); + + for( unsigned int j1=0; j1 < desc->operations.length (); j1++ ) + printf( "operation %s::%s\n", + (const char*)(desc->name), + (const char*)((desc->operations[j1]).name) ); + + for( unsigned int j2=0; j2 < desc->attributes.length (); j2++ ) + printf( "attribute %s::%s\n", + (const char*)(desc->name), + (const char*)((desc->attributes[j2]).name) ); + } + else if( cont[i]->describe ()->kind == CORBA::dk_Module ) + { + CORBA::ModuleDef_var moduleDef = + CORBA::ModuleDef::_narrow (cont[i] + ACE_ENV_ARG_PARAMETER ); + ACE_TRY_CHECK; + + CORBA::ContainedSeq_var moduleContents = + moduleDef->contents (CORBA::dk_all,1 + ACE_ENV_ARG_PARAMETER ); + ACE_TRY_CHECK; + printContents (moduleContents.in ()); + } + } + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "printContents"); + ACE_OS::exit(-1); // the test has failed! + } + ACE_ENDTRY; +} + + +int main(int argc, char** argv) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = CORBA::ORB_init (argc, + argv, + 0 + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + CORBA::Object_var object = + orb->resolve_initial_references ("InterfaceRepository" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (object.in ())) + { + ACE_ERROR_RETURN (( + LM_ERROR, + "Null objref from resolve_initial_references\n" + ), + -1 + ); + } + + CORBA::Repository_var ifr = + CORBA::Repository::_narrow (object.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (ifr.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "CORBA::Repository::_narrow failed\n"), + -1); + } + + CORBA::ContainedSeq_var cont = ifr->contents (CORBA::dk_all, 0 + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + printContents (cont.in ()); + + orb->shutdown (); + + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "main"); + return -1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/performance-tests/CSD_Strategy/Makefile.am b/TAO/performance-tests/CSD_Strategy/Makefile.am new file mode 100644 index 00000000000..866ff552f62 --- /dev/null +++ b/TAO/performance-tests/CSD_Strategy/Makefile.am @@ -0,0 +1,15 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +SUBDIRS = \ + TestInf \ + TestServant \ + TestApps + diff --git a/TAO/performance-tests/CSD_Strategy/TestApps/Makefile.am b/TAO/performance-tests/CSD_Strategy/TestApps/Makefile.am new file mode 100644 index 00000000000..75662f143d6 --- /dev/null +++ b/TAO/performance-tests/CSD_Strategy/TestApps/Makefile.am @@ -0,0 +1,78 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_ROOT = $(top_srcdir) + +## Makefile.csd_test_client.am + +noinst_PROGRAMS = client_main + +client_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/performance-tests/CSD_Strategy + +client_main_SOURCES = \ + ClientApp.cpp \ + client_main.cpp \ + ClientApp.h + +client_main_LDADD = \ + $(top_builddir)/performance-tests/CSD_Strategy/TestServant/libCSD_PT_TestServant.la \ + $(top_builddir)/performance-tests/CSD_Strategy/TestInf/libCSD_PT_TestInf.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_ThreadPool.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_Framework.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Makefile.csd_test_server.am + +noinst_PROGRAMS += server_main + +server_main_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/performance-tests/CSD_Strategy + +server_main_SOURCES = \ + ServerApp.cpp \ + server_main.cpp \ + ServerApp.h + +server_main_LDADD = \ + $(top_builddir)/performance-tests/CSD_Strategy/TestServant/libCSD_PT_TestServant.la \ + $(top_builddir)/performance-tests/CSD_Strategy/TestInf/libCSD_PT_TestInf.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_ThreadPool.la \ + $(TAO_BUILDDIR)/tao/libTAO_CSD_Framework.la \ + $(TAO_BUILDDIR)/tao/libTAO_PI.la \ + $(TAO_BUILDDIR)/tao/libTAO_CodecFactory.la \ + $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \ + $(TAO_BUILDDIR)/tao/libTAO_AnyTypeCode.la \ + $(TAO_BUILDDIR)/tao/libTAO.la \ + $(ACE_BUILDDIR)/ace/libACE.la + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/performance-tests/CSD_Strategy/TestInf/Makefile.am b/TAO/performance-tests/CSD_Strategy/TestInf/Makefile.am new file mode 100644 index 00000000000..05de2c176fb --- /dev/null +++ b/TAO/performance-tests/CSD_Strategy/TestInf/Makefile.am @@ -0,0 +1,211 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +## Makefile.csd_pt_testinf.am + +BUILT_SOURCES = \ + FooExceptionC.cpp \ + FooExceptionC.h \ + FooExceptionC.inl \ + FooExceptionS.cpp \ + FooExceptionS.h \ + FooExceptionS.inl \ + FooExceptionS_T.cpp \ + FooExceptionS_T.h \ + FooExceptionS_T.inl + +CLEANFILES = \ + FooException-stamp \ + FooExceptionC.cpp \ + FooExceptionC.h \ + FooExceptionC.inl \ + FooExceptionS.cpp \ + FooExceptionS.h \ + FooExceptionS.inl \ + FooExceptionS_T.cpp \ + FooExceptionS_T.h \ + FooExceptionS_T.inl + +FooExceptionC.cpp FooExceptionC.h FooExceptionC.inl FooExceptionS.cpp FooExceptionS.h FooExceptionS.inl FooExceptionS_T.cpp FooExceptionS_T.h FooExceptionS_T.inl: FooException-stamp + +FooException-stamp: $(srcdir)/FooException.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -Wb,export_macro=CSD_PT_TestInf_Export -Wb,export_include=CSD_PT_TestInf_Export.h $(srcdir)/FooException.idl + @touch $@ + +BUILT_SOURCES += \ + TestAppExceptionC.cpp \ + TestAppExceptionC.h \ + TestAppExceptionC.inl \ + TestAppExceptionS.cpp \ + TestAppExceptionS.h \ + TestAppExceptionS.inl \ + TestAppExceptionS_T.cpp \ + TestAppExceptionS_T.h \ + TestAppExceptionS_T.inl + +CLEANFILES += \ + TestAppException-stamp \ + TestAppExceptionC.cpp \ + TestAppExceptionC.h \ + TestAppExceptionC.inl \ + TestAppExceptionS.cpp \ + TestAppExceptionS.h \ + TestAppExceptionS.inl \ + TestAppExceptionS_T.cpp \ + TestAppExceptionS_T.h \ + TestAppExceptionS_T.inl + +TestAppExceptionC.cpp TestAppExceptionC.h TestAppExceptionC.inl TestAppExceptionS.cpp TestAppExceptionS.h TestAppExceptionS.inl TestAppExceptionS_T.cpp TestAppExceptionS_T.h TestAppExceptionS_T.inl: TestAppException-stamp + +TestAppException-stamp: $(srcdir)/TestAppException.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -Wb,export_macro=CSD_PT_TestInf_Export -Wb,export_include=CSD_PT_TestInf_Export.h $(srcdir)/TestAppException.idl + @touch $@ + +BUILT_SOURCES += \ + CancelledExceptionC.cpp \ + CancelledExceptionC.h \ + CancelledExceptionC.inl \ + CancelledExceptionS.cpp \ + CancelledExceptionS.h \ + CancelledExceptionS.inl \ + CancelledExceptionS_T.cpp \ + CancelledExceptionS_T.h \ + CancelledExceptionS_T.inl + +CLEANFILES += \ + CancelledException-stamp \ + CancelledExceptionC.cpp \ + CancelledExceptionC.h \ + CancelledExceptionC.inl \ + CancelledExceptionS.cpp \ + CancelledExceptionS.h \ + CancelledExceptionS.inl \ + CancelledExceptionS_T.cpp \ + CancelledExceptionS_T.h \ + CancelledExceptionS_T.inl + +CancelledExceptionC.cpp CancelledExceptionC.h CancelledExceptionC.inl CancelledExceptionS.cpp CancelledExceptionS.h CancelledExceptionS.inl CancelledExceptionS_T.cpp CancelledExceptionS_T.h CancelledExceptionS_T.inl: CancelledException-stamp + +CancelledException-stamp: $(srcdir)/CancelledException.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -Wb,export_macro=CSD_PT_TestInf_Export -Wb,export_include=CSD_PT_TestInf_Export.h $(srcdir)/CancelledException.idl + @touch $@ + +BUILT_SOURCES += \ + CustomExceptionC.cpp \ + CustomExceptionC.h \ + CustomExceptionC.inl \ + CustomExceptionS.cpp \ + CustomExceptionS.h \ + CustomExceptionS.inl \ + CustomExceptionS_T.cpp \ + CustomExceptionS_T.h \ + CustomExceptionS_T.inl + +CLEANFILES += \ + CustomException-stamp \ + CustomExceptionC.cpp \ + CustomExceptionC.h \ + CustomExceptionC.inl \ + CustomExceptionS.cpp \ + CustomExceptionS.h \ + CustomExceptionS.inl \ + CustomExceptionS_T.cpp \ + CustomExceptionS_T.h \ + CustomExceptionS_T.inl + +CustomExceptionC.cpp CustomExceptionC.h CustomExceptionC.inl CustomExceptionS.cpp CustomExceptionS.h CustomExceptionS.inl CustomExceptionS_T.cpp CustomExceptionS_T.h CustomExceptionS_T.inl: CustomException-stamp + +CustomException-stamp: $(srcdir)/CustomException.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -Wb,export_macro=CSD_PT_TestInf_Export -Wb,export_include=CSD_PT_TestInf_Export.h $(srcdir)/CustomException.idl + @touch $@ + +noinst_LTLIBRARIES = libCSD_PT_TestInf.la + +libCSD_PT_TestInf_la_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/tao \ + -DCSD_PT_TESTINF_BUILD_DLL + +libCSD_PT_TestInf_la_SOURCES = \ + AppHelper.cpp \ + AppShutdown.cpp \ + CancelledExceptionC.cpp \ + CancelledExceptionS.cpp \ + ClientEngine.cpp \ + ClientTask.cpp \ + CustomExceptionC.cpp \ + CustomExceptionS.cpp \ + FooExceptionC.cpp \ + FooExceptionS.cpp \ + OrbRunner.cpp \ + OrbShutdownTask.cpp \ + OrbTask.cpp \ + TestAppBase.cpp \ + TestAppExceptionC.cpp \ + TestAppExceptionS.cpp + +noinst_HEADERS = \ + AppHelper.h \ + AppShutdown.h \ + CancelledException.idl \ + CancelledExceptionC.h \ + CancelledExceptionC.inl \ + CancelledExceptionS.h \ + CancelledExceptionS_T.cpp \ + CancelledExceptionS_T.h \ + CancelledExceptionS_T.inl \ + ClientEngine.h \ + ClientTask.h \ + CustomException.idl \ + CustomExceptionC.h \ + CustomExceptionC.inl \ + CustomExceptionS.h \ + CustomExceptionS_T.cpp \ + CustomExceptionS_T.h \ + CustomExceptionS_T.inl \ + FooException.idl \ + FooExceptionC.h \ + FooExceptionC.inl \ + FooExceptionS.h \ + FooExceptionS_T.cpp \ + FooExceptionS_T.h \ + FooExceptionS_T.inl \ + OrbRunner.h \ + OrbShutdownTask.h \ + OrbTask.h \ + ServantList_T.cpp \ + ServantList_T.h \ + TestAppBase.h \ + TestAppException.idl \ + TestAppExceptionC.h \ + TestAppExceptionC.inl \ + TestAppExceptionS.h \ + TestAppExceptionS_T.cpp \ + TestAppExceptionS_T.h \ + TestAppExceptionS_T.inl + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/performance-tests/CSD_Strategy/TestServant/Makefile.am b/TAO/performance-tests/CSD_Strategy/TestServant/Makefile.am new file mode 100644 index 00000000000..759a30a6adf --- /dev/null +++ b/TAO/performance-tests/CSD_Strategy/TestServant/Makefile.am @@ -0,0 +1,86 @@ +## Process this file with automake to create Makefile.in +## +## $Id$ +## +## This file was generated by MPC. Any changes made directly to +## this file will be lost the next time it is generated. +## +## MPC Command: +## ../bin/mwc.pl -type automake -noreldefs TAO.mwc + +ACE_BUILDDIR = $(top_builddir)/.. +ACE_ROOT = $(top_srcdir)/.. +TAO_BUILDDIR = $(top_builddir) +TAO_IDL = ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf +TAO_ROOT = $(top_srcdir) + +## Makefile.csd_pt_testservant.am + +BUILT_SOURCES = \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +CLEANFILES = \ + Foo-stamp \ + FooC.cpp \ + FooC.h \ + FooC.inl \ + FooS.cpp \ + FooS.h \ + FooS.inl \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl + +FooC.cpp FooC.h FooC.inl FooS.cpp FooS.h FooS.inl FooS_T.cpp FooS_T.h FooS_T.inl: Foo-stamp + +Foo-stamp: $(srcdir)/Foo.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -I$(TAO_ROOT)/performance-tests/CSD_Strategy -Wb,export_macro=CSD_PT_TestServant_Export -Wb,export_include=CSD_PT_TestServant_Export.h $(srcdir)/Foo.idl + @touch $@ + +noinst_LTLIBRARIES = libCSD_PT_TestServant.la + +libCSD_PT_TestServant_la_CPPFLAGS = \ + -I$(ACE_ROOT) \ + -I$(ACE_BUILDDIR) \ + -I$(TAO_ROOT) \ + -I$(TAO_BUILDDIR) \ + -I$(TAO_ROOT)/performance-tests/CSD_Strategy \ + -I$(TAO_ROOT)/tao \ + -DCSD_PT_TESTSERVANT_BUILD_DLL + +libCSD_PT_TestServant_la_SOURCES = \ + FooC.cpp \ + FooS.cpp \ + Foo_ClientEngine.cpp \ + Foo_Statistics.cpp \ + Foo_i.cpp + +noinst_HEADERS = \ + Foo.idl \ + FooC.h \ + FooC.inl \ + FooS.h \ + FooS_T.cpp \ + FooS_T.h \ + FooS_T.inl \ + Foo_ClientEngine.h \ + Foo_Statistics.h \ + Foo_i.h + +## Clean up template repositories, etc. +clean-local: + -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* + -rm -f gcctemp.c gcctemp so_locations *.ics + -rm -rf cxx_repository ptrepository ti_files + -rm -rf templateregistry ir.out + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/TAO/tao/Array_Traits_T.h b/TAO/tao/Array_Traits_T.h new file mode 100644 index 00000000000..56af536bc40 --- /dev/null +++ b/TAO/tao/Array_Traits_T.h @@ -0,0 +1,69 @@ +#ifndef guard_array_traits_hpp +#define guard_array_traits_hpp +/** + * @file + * + * @brief Implement the element manipulation traits for types with + * array-like semantics. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include <algorithm> +#include "tao/Array_VarOut_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template <typename T_array, typename T_slice, typename T_tag> +struct array_traits +{ + typedef T_array value_type; + typedef T_array const const_value_type; + + typedef T_slice slice_type; + typedef T_tag TAG; + + inline static void zero_range( + value_type * begin, value_type * end) + { + std::for_each( + begin, end, &TAO::Array_Traits<value_type,slice_type,TAG>::zero); + } + + inline static void initialize_range( + value_type * begin, value_type * end) + { + std::for_each( + begin, end, &TAO::Array_Traits<value_type,slice_type,TAG>::zero); + } + + inline static void copy_range( + value_type * begin, value_type * end, value_type *dst) + { + for(value_type * i = begin; i != end; ++i, ++dst) + { + TAO::Array_Traits<value_type,slice_type,TAG>::copy(*dst, *i); + } + } + + inline static void release_range( + value_type * begin, value_type * end, value_type *dst) + { + std::for_each( + begin, end, &TAO::Array_Traits<value_type,slice_type,TAG>::zero); + } +}; + +} // namespace details +} // namespace CORBA + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_array_traits_hpp diff --git a/TAO/tao/Bounded_Array_Allocation_Traits_T.h b/TAO/tao/Bounded_Array_Allocation_Traits_T.h new file mode 100644 index 00000000000..af6849f407c --- /dev/null +++ b/TAO/tao/Bounded_Array_Allocation_Traits_T.h @@ -0,0 +1,55 @@ +#ifndef guard_bounded_array_allocation_traits_hpp +#define guard_bounded_array_allocation_traits_hpp +/** + * @file + * + * @brief Details can be found in the documentation for + * TAO::details::generic_sequence + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename T, CORBA::ULong MAX, bool dummy> +struct bounded_array_allocation_traits +{ + typedef T value_type; + + inline static CORBA::ULong default_maximum() + { + return MAX; + } + + inline static value_type * default_buffer_allocation() + { + return allocbuf(MAX); + } + + inline static value_type * allocbuf(CORBA::ULong /* maximum */) + { + return new value_type[MAX]; + } + + inline static void freebuf(value_type * buffer) + { + delete[] buffer; + } +}; + +} // namespace details +} // namespace TAO + + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_array_allocation_traits_hpp diff --git a/TAO/tao/Bounded_Array_Sequence_T.h b/TAO/tao/Bounded_Array_Sequence_T.h new file mode 100644 index 00000000000..8850a9dfe8e --- /dev/null +++ b/TAO/tao/Bounded_Array_Sequence_T.h @@ -0,0 +1,145 @@ +#ifndef guard_bounded_array_sequence_hpp +#define guard_bounded_array_sequence_hpp +/** + * @file + * + * @brief Implement unbounded sequences for arrays. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "Bounded_Array_Allocation_Traits_T.h" +#include "Generic_Sequence_T.h" +#include "Array_Traits_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +template<typename T_array, typename T_slice, typename T_tag, CORBA::ULong MAX> +class bounded_array_sequence +{ +public: + typedef T_array * element_type; + typedef T_array value_type; + typedef T_slice * T_slice_ptr; + typedef T_slice_ptr * const_value_type; + typedef value_type & subscript_type; + typedef value_type const & const_subscript_type; + + typedef details::bounded_array_allocation_traits<value_type,MAX,true> allocation_traits; + typedef details::array_traits <T_array, T_slice, T_tag> element_traits; + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + + inline bounded_array_sequence() + : impl_() + {} + inline bounded_array_sequence( + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) + : impl_(MAX, length, data, release) + {} + inline CORBA::ULong maximum() const { + return impl_.maximum(); + } + inline CORBA::Boolean release() const { + return impl_.release(); + } + inline CORBA::ULong length() const { + return impl_.length(); + } + inline void length(CORBA::ULong length) { + impl_.length(length); + } + inline value_type const & operator[](CORBA::ULong i) const { + return impl_[i]; + } + inline value_type & operator[](CORBA::ULong i) { + return impl_[i]; + } + inline void replace( + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + impl_.replace(MAX, length, data, release); + } + inline value_type const * get_buffer() const { + return impl_.get_buffer(); + } + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + return impl_.get_buffer(orphan); + } + inline void swap(bounded_array_sequence & rhs) throw() { + impl_.swap(rhs.impl_); + } + static value_type * allocbuf(CORBA::ULong maximum) { + return implementation_type::allocbuf(maximum); + } + static void freebuf(value_type * buffer) { + implementation_type::freebuf(buffer); + } + +private: + implementation_type impl_; +}; +} + +namespace TAO +{ + template <typename stream, typename T_array, typename T_slice, typename T_tag, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_array_sequence<T_array, T_slice, T_tag, MAX> & target) { + typedef TAO::bounded_array_sequence<T_array, T_slice, T_tag, MAX> sequence; + typedef TAO::Array_Traits<T_array, T_slice, T_tag> array_traits; + typedef TAO_Array_Forany_T <T_array, T_slice, T_tag> forany; + + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + for(CORBA::ULong i = 0; i < new_length; ++i) { + forany tmp (array_traits::alloc ()); + bool const _tao_marshal_flag = (strm >> tmp); + if (_tao_marshal_flag) { + array_traits::copy (buffer[i], tmp.in ()); + } + array_traits::free (tmp.inout ()); + if (!_tao_marshal_flag) { + return false; + } + } + tmp.swap(target); + return true; + } + + template <typename stream, typename T_array, typename T_slice, typename T_tag, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_array_sequence<T_array, T_slice, T_tag, MAX> & source) { + typedef TAO_FixedArray_Var_T <T_array, T_slice, T_tag> fixed_array; + typedef TAO::Array_Traits<T_array, T_slice, T_tag> array_traits; + typedef TAO_Array_Forany_T <T_array, T_slice, T_tag> forany; + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + for(CORBA::ULong i = 0; i < length; ++i) { + fixed_array tmp_array = array_traits::dup (source[i]); + forany tmp (tmp_array.inout ()); + if (!(strm << tmp)) { + return false; + } + } + return true; + } +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_bounded_array_sequence_hpp diff --git a/TAO/tao/Bounded_Basic_String_Sequence_T.h b/TAO/tao/Bounded_Basic_String_Sequence_T.h new file mode 100644 index 00000000000..da573662bc7 --- /dev/null +++ b/TAO/tao/Bounded_Basic_String_Sequence_T.h @@ -0,0 +1,118 @@ +#ifndef guard_bounded_basic_string_sequence_hpp +#define guard_bounded_basic_string_sequence_hpp +/** + * @file + * + * @brief Implement bounded sequences for strings and wide-strings. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "tao/Bounded_Reference_Allocation_Traits_T.h" +#include "tao/String_Traits_T.h" +#include "tao/Generic_Sequence_T.h" +#include "tao/String_Sequence_Element_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename charT, CORBA::ULong MAX> +class bounded_basic_string_sequence +{ +public: + typedef charT character_type; + typedef charT * value_type; + typedef charT const * const_value_type; + + typedef details::string_traits<charT,true> element_traits; + typedef details::bounded_reference_allocation_traits<value_type,element_traits,MAX,true> allocation_traits; + + typedef details::string_sequence_element<element_traits> element_type; + typedef element_type subscript_type; + typedef const_value_type const_subscript_type; + + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + + /// @copydoc generic_sequence::generic_sequence + inline bounded_basic_string_sequence() + : impl_() + {} + /// @copydoc generic_sequence::generic_sequence + inline bounded_basic_string_sequence( + CORBA::ULong length, + value_type * data, + CORBA::Boolean release) + : impl_(MAX, length, data, release) + {} + /// @copydoc generic_sequence::maximum + inline CORBA::ULong maximum() const { + return impl_.maximum(); + } + /// @copydoc generic_sequence::release + inline CORBA::Boolean release() const { + return impl_.release(); + } + /// @copydoc generic_sequence::length + inline CORBA::ULong length() const { + return impl_.length(); + } + + /// @copydoc generic_sequence::length + inline void length(CORBA::ULong length) { + implementation_type::range::check_length(length, MAX); + impl_.length(length); + } + /// @copydoc generic_sequence::operator[] + inline const_value_type operator[](CORBA::ULong i) const { + return impl_[i]; + } + /// @copydoc generic_sequence::operator[] + inline element_type operator[](CORBA::ULong i) { + return element_type(impl_[i], release()); + } + /// @copydoc generic_sequence::get_buffer + inline const_value_type const * get_buffer() const { + return impl_.get_buffer(); + } + /// @copydoc generic_sequence::replace + inline void replace( + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + impl_.replace(MAX, length, data, release); + } + /// @copydoc generic_sequence::get_buffer(CORBA::Boolean) + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + return impl_.get_buffer(orphan); + } + inline void swap(bounded_basic_string_sequence & rhs) throw() { + impl_.swap(rhs.impl_); + } + + static value_type * allocbuf(CORBA::ULong maximum) + { + return implementation_type::allocbuf(maximum); + } + static value_type * allocbuf() { + return implementation_type::allocbuf(MAX); + } + static void freebuf(value_type * buffer) + { + implementation_type::freebuf(buffer); + } + +private: + implementation_type impl_; +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_bounded_basic_string_sequence_hpp diff --git a/TAO/tao/Bounded_Object_Reference_Sequence_T.h b/TAO/tao/Bounded_Object_Reference_Sequence_T.h new file mode 100644 index 00000000000..9754820576c --- /dev/null +++ b/TAO/tao/Bounded_Object_Reference_Sequence_T.h @@ -0,0 +1,105 @@ +#ifndef guard_bounded_object_reference_sequence_hpp +#define guard_bounded_object_reference_sequence_hpp +/** + * @file + * + * @brief Implement bounded sequences for object references. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "Bounded_Reference_Allocation_Traits_T.h" +#include "Object_Reference_Traits_T.h" +#include "Generic_Sequence_T.h" +#include "Object_Reference_Sequence_Element_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +template<typename object_t, typename object_t_var, CORBA::ULong MAX> +class bounded_object_reference_sequence +{ +public: + typedef object_t object_type; + typedef object_type * value_type; + typedef value_type const const_value_type; + typedef object_t_var object_type_var; + + typedef details::object_reference_traits<object_type,object_type_var,true> element_traits; + typedef details::bounded_reference_allocation_traits<value_type,element_traits,MAX,true> allocation_traits; + + typedef details::object_reference_sequence_element<element_traits> element_type; + typedef element_type subscript_type; + typedef value_type const & const_subscript_type; + + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + + inline bounded_object_reference_sequence() + : impl_() + {} + inline bounded_object_reference_sequence( + CORBA::ULong length, + value_type * data, + CORBA::Boolean release) + : impl_(MAX, length, data, release) + {} + + /* Use default ctor, operator= and dtor */ + inline CORBA::ULong maximum() const { + return impl_.maximum(); + } + inline CORBA::Boolean release() const { + return impl_.release(); + } + inline CORBA::ULong length() const { + return impl_.length(); + } + + inline void length(CORBA::ULong length) { + implementation_type::range::check_length(length, MAX); + impl_.length(length); + } + inline value_type const & operator[](CORBA::ULong i) const { + return impl_[i]; + } + inline element_type operator[](CORBA::ULong i) { + return element_type(impl_[i], release()); + } + inline value_type const * get_buffer() const { + return impl_.get_buffer(); + } + inline void replace( + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + impl_.replace(MAX, length, data, release); + } + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + return impl_.get_buffer(orphan); + } + inline void swap(bounded_object_reference_sequence & rhs) throw() { + impl_.swap(rhs.impl_); + } + + static value_type * allocbuf(CORBA::ULong maximum) + { + return implementation_type::allocbuf(maximum); + } + static void freebuf(value_type * buffer) + { + implementation_type::freebuf(buffer); + } + + +private: + implementation_type impl_; +}; + +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_bounded_object_reference_sequence_hpp diff --git a/TAO/tao/Bounded_Reference_Allocation_Traits_T.h b/TAO/tao/Bounded_Reference_Allocation_Traits_T.h new file mode 100644 index 00000000000..b5ff17fca98 --- /dev/null +++ b/TAO/tao/Bounded_Reference_Allocation_Traits_T.h @@ -0,0 +1,65 @@ +#ifndef guard_bounded_reference_allocation_traits_hpp +#define guard_bounded_reference_allocation_traits_hpp +/** + * @file + * + * @brief Details can be found in the documentation for + * TAO::details::generic_sequence + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename T, class ref_traits, CORBA::ULong MAX, bool dummy> +struct bounded_reference_allocation_traits +{ + typedef T value_type; + typedef ref_traits reference_traits; + + inline static CORBA::ULong default_maximum() + { + return MAX; + } + + inline static value_type * default_buffer_allocation() + { + return allocbuf(MAX); + } + + inline static value_type * allocbuf(CORBA::ULong /* maximum */) + { + value_type * buffer = new value_type[MAX]; + // no throw + reference_traits::zero_range(buffer, buffer + MAX); + + return buffer; + } + + inline static void freebuf(value_type * buffer) + { + reference_traits::release_range(buffer, buffer + MAX); + delete[] buffer; + } + + inline static CORBA::ULong maximum() + { + return MAX; + } +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_bounded_reference_allocation_traits_hpp diff --git a/TAO/tao/Bounded_Sequence_CDR_T.h b/TAO/tao/Bounded_Sequence_CDR_T.h new file mode 100644 index 00000000000..c0cbbdb5a01 --- /dev/null +++ b/TAO/tao/Bounded_Sequence_CDR_T.h @@ -0,0 +1,516 @@ +#ifndef guard_bounded_sequence_cdr +#define guard_bounded_sequence_cdr +/** + * @file + * + * @brief Extract the sequence + * + * $Id$ + * + * @author Carlos O'Ryan + * @author Johnny Willemsen + */ + +#include "tao/orbconf.h" +#include "tao/SystemException.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO { + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::Short, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::Short, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_short_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::Long, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::Long, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_long_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::ULong, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::ULong, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_ulong_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::UShort, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::UShort, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_ushort_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::Octet, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::Octet, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_octet_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::Char, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::Char, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_char_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + +# if defined (ACE_HAS_WCHAR) || defined (ACE_HAS_XPG4_MULTIBYTE_CHAR) + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::WChar, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::WChar, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_wchar_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } +#endif + + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::Float, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::Float, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_float_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::Double, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::Double, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_double_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::ULongLong, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::ULongLong, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_ulonglong_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::LongDouble, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::LongDouble, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_longdouble_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <CORBA::Boolean, MAX> & target) { + typedef TAO::bounded_value_sequence <CORBA::Boolean, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_boolean_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, typename value_t, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence <value_t, MAX> & target) { + typedef TAO::bounded_value_sequence <value_t, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + for(CORBA::ULong i = 0; i < new_length; ++i) { + if (!(strm >> buffer[i])) { + return false; + } + } + tmp.swap(target); + return true; + } + + template <typename stream, typename charT, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::details::bounded_basic_string_sequence <charT, MAX> & target) { + typedef typename TAO::details::bounded_basic_string_sequence <charT, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + for(CORBA::ULong i = 0; i < new_length; ++i) { + if (!(strm >> buffer[i])) { + return false; + } + } + tmp.swap(target); + return true; + } + + template <typename stream, typename object_t, typename object_t_var, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_object_reference_sequence<object_t, object_t_var, MAX> & target) { + typedef typename TAO::bounded_object_reference_sequence<object_t, object_t_var, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + for(CORBA::ULong i = 0; i < new_length; ++i) { + if (!(strm >> buffer[i])) { + return false; + } + } + tmp.swap(target); + return true; + } +} + +namespace TAO { + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::Short, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_short_array (source.get_buffer (), length); + } + + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::Long, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_long_array (source.get_buffer (), length); + } + + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::ULong, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_ulong_array (source.get_buffer (), length); + } + + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::UShort, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_ushort_array (source.get_buffer (), length); + } + + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::Octet, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_octet_array (source.get_buffer (), length); + } + + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::Char, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_char_array (source.get_buffer (), length); + } + +# if defined (ACE_HAS_WCHAR) || defined (ACE_HAS_XPG4_MULTIBYTE_CHAR) + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::WChar, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_wchar_array (source.get_buffer (), length); + } +#endif + + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::Float, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_float_array (source.get_buffer (), length); + } + + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::Double, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_double_array (source.get_buffer (), length); + } + + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::ULongLong, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_ulonglong_array (source.get_buffer (), length); + } + + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::LongDouble, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_longdouble_array (source.get_buffer (), length); + } + + template <typename stream, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <CORBA::Boolean, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_boolean_array (source.get_buffer (), length); + } + + template <typename stream, typename value_t, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence <value_t, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + for(CORBA::ULong i = 0; i < length; ++i) { + if (!(strm << source[i])) { + return false; + } + } + return true; + } + + template <typename stream, typename charT, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::details::bounded_basic_string_sequence <charT, MAX> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + for(CORBA::ULong i = 0; i < length; ++i) { + if (!(strm << source[i])) { + return false; + } + } + return true; + } + + template <typename stream, typename object_t, typename object_t_var, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_object_reference_sequence<object_t, object_t_var, MAX> & source) { + typedef typename TAO::bounded_object_reference_sequence<object_t, object_t_var, MAX>::object_type object_type; + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + for(CORBA::ULong i = 0; i < length; ++i) { + if (!TAO::Objref_Traits<object_type>::marshal (source[i], strm)) { + return false; + } + } + return true; + } +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif /* guard_bounded_sequence_cdr */ diff --git a/TAO/tao/Bounded_String_Sequence_T.h b/TAO/tao/Bounded_String_Sequence_T.h new file mode 100644 index 00000000000..9f6373343b6 --- /dev/null +++ b/TAO/tao/Bounded_String_Sequence_T.h @@ -0,0 +1,42 @@ +#ifndef guard_bounded_string_sequence_hpp +#define guard_bounded_string_sequence_hpp +/** + * @file + * + * @brief Implement bounded sequences for strings. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Bounded_Basic_String_Sequence_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +template<CORBA::ULong MAX> +class bounded_string_sequence + : public details::bounded_basic_string_sequence<char,MAX> +{ +public: + inline bounded_string_sequence() + : details::bounded_basic_string_sequence<char,MAX>() + {} + inline bounded_string_sequence( + CORBA::ULong length, + char * * data, + CORBA::Boolean release = false) + : details::bounded_basic_string_sequence<char,MAX>( + length, data, release) + {} +}; + + +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_bounded_string_sequence_hpp diff --git a/TAO/tao/Bounded_Value_Allocation_Traits_T.h b/TAO/tao/Bounded_Value_Allocation_Traits_T.h new file mode 100644 index 00000000000..aa94641e539 --- /dev/null +++ b/TAO/tao/Bounded_Value_Allocation_Traits_T.h @@ -0,0 +1,60 @@ +#ifndef guard_bounded_value_allocation_traits_hpp +#define guard_bounded_value_allocation_traits_hpp +/** + * @file + * + * @brief Details can be found in the documentation for + * TAO::details::generic_sequence + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename T, CORBA::ULong MAX, bool dummy> +struct bounded_value_allocation_traits +{ + typedef T value_type; + + inline static CORBA::ULong default_maximum() + { + return MAX; + } + + inline static value_type * default_buffer_allocation() + { + return allocbuf(MAX); + } + + inline static value_type * allocbuf(CORBA::ULong /* maximum */) + { + return new value_type[MAX]; + } + + inline static void freebuf(value_type * buffer) + { + delete[] buffer; + } + + inline static CORBA::ULong maximum() + { + return MAX; + } + /* static CORBA::ULong const MAXIMUM = MAX; */ +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_bounded_value_allocation_traits_hpp diff --git a/TAO/tao/Bounded_Value_Sequence_T.h b/TAO/tao/Bounded_Value_Sequence_T.h new file mode 100644 index 00000000000..dbb466fac3a --- /dev/null +++ b/TAO/tao/Bounded_Value_Sequence_T.h @@ -0,0 +1,100 @@ +#ifndef guard_bounded_value_sequence_hpp +#define guard_bounded_value_sequence_hpp +/** + * @file + * + * @brief Implement bounded sequences for types with value-like + * semantics. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Bounded_Value_Allocation_Traits_T.h" +#include "tao/Value_Traits_T.h" +#include "tao/Generic_Sequence_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +template<class T, CORBA::ULong MAX> +class bounded_value_sequence +{ +public: + typedef T value_type; + typedef T element_type; + typedef T const const_value_type; + typedef value_type & subscript_type; + typedef value_type const & const_subscript_type; + + typedef details::bounded_value_allocation_traits<value_type,MAX,true> allocation_traits; + typedef details::value_traits<value_type,true> element_traits; + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + + inline bounded_value_sequence() + : impl_() + {} + inline bounded_value_sequence( + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) + : impl_(MAX, length, data, release) + {} + /* Use default ctor, operator= and dtor */ + inline CORBA::ULong maximum() const { + return impl_.maximum(); + } + inline CORBA::Boolean release() const { + return impl_.release(); + } + inline CORBA::ULong length() const { + return impl_.length(); + } + inline void length(CORBA::ULong length) { + implementation_type::range::check_length(length, MAX); + impl_.length(length); + } + inline value_type const & operator[](CORBA::ULong i) const { + return impl_[i]; + } + inline value_type & operator[](CORBA::ULong i) { + return impl_[i]; + } + inline void replace( + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + impl_.replace(MAX, length, data, release); + } + inline value_type const * get_buffer() const { + return impl_.get_buffer(); + } + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + return impl_.get_buffer(orphan); + } + inline void swap(bounded_value_sequence & rhs) throw() { + impl_.swap(rhs.impl_); + } + static value_type * allocbuf(CORBA::ULong maximum) { + return implementation_type::allocbuf(maximum); + } + static value_type * allocbuf() { + return implementation_type::allocbuf(MAX); + } + static void freebuf(value_type * buffer) + { + implementation_type::freebuf(buffer); + } + +private: + implementation_type impl_; +}; + +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_bounded_string_sequence_hpp diff --git a/TAO/tao/Bounded_Wstring_Sequence_T.h b/TAO/tao/Bounded_Wstring_Sequence_T.h new file mode 100644 index 00000000000..c0ed84f289e --- /dev/null +++ b/TAO/tao/Bounded_Wstring_Sequence_T.h @@ -0,0 +1,42 @@ +#ifndef guard_bounded_wstring_sequence_hpp +#define guard_bounded_wstring_sequence_hpp +/** + * @file + * + * @brief Implement bounded sequences for wstrings. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Bounded_Basic_String_Sequence_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +template<CORBA::ULong MAX> +class bounded_wstring_sequence + : public details::bounded_basic_string_sequence<CORBA::WChar,MAX> +{ +public: + inline bounded_wstring_sequence() + : details::bounded_basic_string_sequence<CORBA::WChar,MAX>() + {} + inline bounded_wstring_sequence( + CORBA::ULong length, + CORBA::WChar * * data, + CORBA::Boolean release = false) + : details::bounded_basic_string_sequence<CORBA::WChar,MAX>( + length, data, release) + {} +}; + + +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_bounded_wstring_sequence_hpp diff --git a/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.cpp b/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.cpp new file mode 100644 index 00000000000..72b8028cd94 --- /dev/null +++ b/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.cpp @@ -0,0 +1,60 @@ +// $Id$ + +#include "tao/CSD_Framework/CSD_Default_Servant_Dispatcher.h" +#include "tao/CSD_Framework/CSD_POA.h" +#include "tao/CSD_Framework/CSD_Strategy_Repository.h" +#include "ace/Dynamic_Service.h" + +ACE_RCSID(CSD_Framework, + CSD_Default_Servant_Dispatcher, + "$Id$") + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +TAO_CSD_Default_Servant_Dispatcher::~TAO_CSD_Default_Servant_Dispatcher (void) +{ +} + + +TAO_Root_POA * +TAO_CSD_Default_Servant_Dispatcher::create_Root_POA (const ACE_CString &name, + PortableServer::POAManager_ptr poa_manager, + const TAO_POA_Policy_Set &policies, + ACE_Lock &lock, + TAO_SYNCH_MUTEX &thread_lock, + TAO_ORB_Core &orb_core, + TAO_Object_Adapter *object_adapter + ACE_ENV_ARG_DECL) + { + TAO_CSD_POA *poa = 0; + + ACE_NEW_THROW_EX (poa, + TAO_CSD_POA (name, + poa_manager, + policies, + 0, + lock, + thread_lock, + orb_core, + object_adapter + ACE_ENV_ARG_PARAMETER), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (0); + + + TAO_CSD_Strategy_Repository *repo = + ACE_Dynamic_Service<TAO_CSD_Strategy_Repository>::instance ("TAO_CSD_Strategy_Repository"); + + CSD_Framework::Strategy_var strategy = repo->find (name); + + if (! ::CORBA::is_nil (strategy.in ())) + { + poa->set_csd_strategy (strategy.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + } + + return poa; +} + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.h b/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.h new file mode 100644 index 00000000000..1d041331e99 --- /dev/null +++ b/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.h @@ -0,0 +1,53 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file CSD_Default_Servant_Dispatcher.h + * + * $Id$ + * + * @author Yan Dai (dai_y@ociweb.com) + */ +//============================================================================= + +#ifndef TAO_CSD_DEFAULT_SERVANT_DISPATCHER_H +#define TAO_CSD_DEFAULT_SERVANT_DISPATCHER_H +#include /**/ "ace/pre.h" + +#include "tao/CSD_Framework/CSD_FW_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/PortableServer/Default_Servant_Dispatcher.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/** + * @class TAO_CSD_Default_Servant_Dispatcher + * + * @brief Interface for CSD_POA servant dispatching strategies. + */ +class TAO_CSD_FW_Export TAO_CSD_Default_Servant_Dispatcher + : public virtual TAO_Default_Servant_Dispatcher +{ +public: + virtual ~TAO_CSD_Default_Servant_Dispatcher (void); + + + /// Factory method for creating new CSD Root POA. + virtual TAO_Root_POA *create_Root_POA (const ACE_CString &name, + PortableServer::POAManager_ptr poa_manager, + const TAO_POA_Policy_Set &policies, + ACE_Lock &lock, + TAO_SYNCH_MUTEX &thread_lock, + TAO_ORB_Core &orb_core, + TAO_Object_Adapter *object_adapter + ACE_ENV_ARG_DECL); +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" +#endif /* TAO_CSD_DEFAULT_SERVANT_DISPATCHER_H */ diff --git a/TAO/tao/CSD_Framework/CSD_FrameworkC.cpp b/TAO/tao/CSD_Framework/CSD_FrameworkC.cpp new file mode 100644 index 00000000000..b69086bef7b --- /dev/null +++ b/TAO/tao/CSD_Framework/CSD_FrameworkC.cpp @@ -0,0 +1,294 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// .\be\be_codegen.cpp:277 + + +#include "tao/CSD_Framework/CSD_FrameworkC.h" +#include "tao/CDR.h" +#include "ace/OS_NS_string.h" + + +// TAO_IDL - Generated from +// .\be\be_visitor_arg_traits.cpp:70 + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +// Arg traits specializations. +namespace TAO +{ +} + + +// TAO_IDL - Generated from +// c:\csd\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_cs.cpp:60 + +// Traits specializations for CSD_Framework::Strategy. + +CSD_Framework::Strategy_ptr +TAO::Objref_Traits<CSD_Framework::Strategy>::duplicate ( + CSD_Framework::Strategy_ptr p + ) +{ + return CSD_Framework::Strategy::_duplicate (p); +} + +void +TAO::Objref_Traits<CSD_Framework::Strategy>::release ( + CSD_Framework::Strategy_ptr p + ) +{ + ::CORBA::release (p); +} + +CSD_Framework::Strategy_ptr +TAO::Objref_Traits<CSD_Framework::Strategy>::nil (void) +{ + return CSD_Framework::Strategy::_nil (); +} + +::CORBA::Boolean +TAO::Objref_Traits<CSD_Framework::Strategy>::marshal ( + CSD_Framework::Strategy_ptr p, + TAO_OutputCDR & cdr + ) +{ + return ::CORBA::Object::marshal (p, cdr); +} + +CSD_Framework::Strategy::Strategy (void) +{} + +CSD_Framework::Strategy::~Strategy (void) +{} + +CSD_Framework::Strategy_ptr +CSD_Framework::Strategy::_narrow ( + ::CORBA::Object_ptr _tao_objref + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + return Strategy::_duplicate ( + dynamic_cast<Strategy_ptr> (_tao_objref) + ); +} + +CSD_Framework::Strategy_ptr +CSD_Framework::Strategy::_unchecked_narrow ( + ::CORBA::Object_ptr _tao_objref + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + return Strategy::_duplicate ( + dynamic_cast<Strategy_ptr> (_tao_objref) + ); +} + +CSD_Framework::Strategy_ptr +CSD_Framework::Strategy::_duplicate (Strategy_ptr obj) +{ + if (! ::CORBA::is_nil (obj)) + { + obj->_add_ref (); + } + + return obj; +} + +void +CSD_Framework::Strategy::_tao_release (Strategy_ptr obj) +{ + ::CORBA::release (obj); +} + +::CORBA::Boolean +CSD_Framework::Strategy::_is_a ( + const char *value + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + if ( + !ACE_OS::strcmp ( + value, + "IDL:CSD_Framework/Strategy:2.3" + ) || + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/LocalObject:1.0" + ) || + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/Object:1.0" + ) + ) + { + return true; // success using local knowledge + } + else + { + return false; + } +} + +const char* CSD_Framework::Strategy::_interface_repository_id (void) const +{ + return "IDL:CSD_Framework/Strategy:2.3"; +} + +::CORBA::Boolean +CSD_Framework::Strategy::marshal (TAO_OutputCDR &) +{ + return false; +} + +// TAO_IDL - Generated from +// c:\csd\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_cs.cpp:60 + +// Traits specializations for CSD_Framework::POA. + +CSD_Framework::POA_ptr +TAO::Objref_Traits<CSD_Framework::POA>::duplicate ( + CSD_Framework::POA_ptr p + ) +{ + return CSD_Framework::POA::_duplicate (p); +} + +void +TAO::Objref_Traits<CSD_Framework::POA>::release ( + CSD_Framework::POA_ptr p + ) +{ + ::CORBA::release (p); +} + +CSD_Framework::POA_ptr +TAO::Objref_Traits<CSD_Framework::POA>::nil (void) +{ + return CSD_Framework::POA::_nil (); +} + +::CORBA::Boolean +TAO::Objref_Traits<CSD_Framework::POA>::marshal ( + CSD_Framework::POA_ptr p, + TAO_OutputCDR & cdr + ) +{ + return ::CORBA::Object::marshal (p, cdr); +} + +CSD_Framework::POA::POA (void) +{} + +CSD_Framework::POA::~POA (void) +{} + +CSD_Framework::POA_ptr +CSD_Framework::POA::_narrow ( + ::CORBA::Object_ptr _tao_objref + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + return POA::_duplicate ( + dynamic_cast<POA_ptr> (_tao_objref) + ); +} + +CSD_Framework::POA_ptr +CSD_Framework::POA::_unchecked_narrow ( + ::CORBA::Object_ptr _tao_objref + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + return POA::_duplicate ( + dynamic_cast<POA_ptr> (_tao_objref) + ); +} + +CSD_Framework::POA_ptr +CSD_Framework::POA::_duplicate (POA_ptr obj) +{ + if (! ::CORBA::is_nil (obj)) + { + obj->_add_ref (); + } + + return obj; +} + +void +CSD_Framework::POA::_tao_release (POA_ptr obj) +{ + ::CORBA::release (obj); +} + +::CORBA::Boolean +CSD_Framework::POA::_is_a ( + const char *value + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + if ( + !ACE_OS::strcmp ( + value, + "IDL:omg.org/PortableServer/POA:2.3" + ) || + !ACE_OS::strcmp ( + value, + "IDL:CSD_Framework/POA:2.3" + ) || + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/LocalObject:1.0" + ) || + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/Object:1.0" + ) + ) + { + return true; // success using local knowledge + } + else + { + return false; + } +} + +const char* CSD_Framework::POA::_interface_repository_id (void) const +{ + return "IDL:CSD_Framework/POA:2.3"; +} + +::CORBA::Boolean +CSD_Framework::POA::marshal (TAO_OutputCDR &) +{ + return false; +} + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/CSD_Framework/CSD_POA.cpp b/TAO/tao/CSD_Framework/CSD_POA.cpp new file mode 100644 index 00000000000..f3cc8e605f5 --- /dev/null +++ b/TAO/tao/CSD_Framework/CSD_POA.cpp @@ -0,0 +1,134 @@ +// $Id$ + +#include "tao/CSD_Framework/CSD_POA.h" +#include "tao/CSD_Framework/CSD_Strategy_Repository.h" +#include "tao/CSD_Framework/CSD_Strategy_Base.h" + +#include "ace/Dynamic_Service.h" + +ACE_RCSID (CSD_Framework, + CSD_POA, + "$Id$") + +#if !defined (__ACE_INLINE__) +# include "tao/CSD_Framework/CSD_POA.inl" +#endif /* ! __ACE_INLINE__ */ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +// Implementation skeleton constructor +TAO_CSD_POA::TAO_CSD_POA (const String &name, + PortableServer::POAManager_ptr poa_manager, + const TAO_POA_Policy_Set &policies, + TAO_Root_POA *parent, + ACE_Lock &lock, + TAO_SYNCH_MUTEX &thread_lock, + TAO_ORB_Core &orb_core, + TAO_Object_Adapter *object_adapter + ACE_ENV_ARG_DECL) +: TAO_Regular_POA (name, + poa_manager, + policies, + parent, + lock, + thread_lock, + orb_core, + object_adapter + ACE_ENV_ARG_PARAMETER) +{ + ACE_NEW_THROW_EX (this->sds_proxy_, + TAO::CSD::Strategy_Proxy (), + CORBA::NO_MEMORY ()); + ACE_CHECK; +} + + +// Implementation skeleton destructor +TAO_CSD_POA::~TAO_CSD_POA (void) +{ + delete this->sds_proxy_; +} + +void TAO_CSD_POA::set_csd_strategy ( + ::CSD_Framework::Strategy_ptr strategy + ACE_ENV_ARG_DECL + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) +{ + if (CORBA::is_nil (strategy)) + { + ACE_THROW (CORBA::BAD_PARAM ()); + } + this->sds_proxy_->custom_strategy (strategy); +} + +TAO_Root_POA * +TAO_CSD_POA::new_POA (const String &name, + PortableServer::POAManager_ptr poa_manager, + const TAO_POA_Policy_Set &policies, + TAO_Root_POA *parent, + ACE_Lock &lock, + TAO_SYNCH_MUTEX &thread_lock, + TAO_ORB_Core &orb_core, + TAO_Object_Adapter *object_adapter + ACE_ENV_ARG_DECL) +{ + TAO_CSD_POA *poa = 0; + + ACE_NEW_THROW_EX (poa, + TAO_CSD_POA (name, + poa_manager, + policies, + parent, + lock, + thread_lock, + orb_core, + object_adapter + ACE_ENV_ARG_PARAMETER), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (0); + + TAO_CSD_Strategy_Repository *repo = + ACE_Dynamic_Service<TAO_CSD_Strategy_Repository>::instance ("TAO_CSD_Strategy_Repository"); + + + CSD_Framework::Strategy_var strategy = repo->find (name); + + if (! ::CORBA::is_nil (strategy.in ())) + { + poa->set_csd_strategy (strategy.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + } + + return poa; +} + +void TAO_CSD_POA::poa_activated_hook () +{ + this->sds_proxy_->poa_activated_event (); +} + +void TAO_CSD_POA::poa_deactivated_hook () +{ + this->sds_proxy_->poa_deactivated_event (); +} + +void TAO_CSD_POA::servant_activated_hook (PortableServer::Servant servant, + const PortableServer::ObjectId& oid + ACE_ENV_ARG_DECL) +{ + this->sds_proxy_->servant_activated_event (servant, oid ACE_ENV_ARG_PARAMETER); + ACE_CHECK; +} + +void TAO_CSD_POA::servant_deactivated_hook (PortableServer::Servant servant, + const PortableServer::ObjectId& oid + ACE_ENV_ARG_DECL) +{ + this->sds_proxy_->servant_deactivated_event (servant, oid ACE_ENV_ARG_PARAMETER); + ACE_CHECK; +} + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/CSD_Framework/CSD_POA.h b/TAO/tao/CSD_Framework/CSD_POA.h new file mode 100644 index 00000000000..bcbf2e0495f --- /dev/null +++ b/TAO/tao/CSD_Framework/CSD_POA.h @@ -0,0 +1,111 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file CSD_POA.h + * + * $Id$ + * + * @author Yan Dai (dai_y@ociweb.com) + */ +//============================================================================= + +#ifndef TAO_CSD_POA_H +#define TAO_CSD_POA_H + +#include /**/ "ace/pre.h" + +#include "tao/CSD_Framework/CSD_FW_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/PortableServer/Regular_POA.h" +#include "tao/CSD_Framework/CSD_Strategy_Proxy.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/** + * @class TAO_CSD_POA + * + * @brief Implementation of the CSD_Framework::POA interface. + * + * Implementation of the CSD_Framework::POA interface. + */ +class TAO_CSD_FW_Export TAO_CSD_POA + : public virtual CSD_Framework::POA, + public virtual TAO_Regular_POA +{ +public: + //Constructor + TAO_CSD_POA (const String &name, + PortableServer::POAManager_ptr poa_manager, + const TAO_POA_Policy_Set &policies, + TAO_Root_POA *parent, + ACE_Lock &lock, + TAO_SYNCH_MUTEX &thread_lock, + TAO_ORB_Core &orb_core, + TAO_Object_Adapter *object_adapter + ACE_ENV_ARG_DECL); + + //Destructor + virtual ~TAO_CSD_POA (void); + + /// Pass the Strategy object reference to the CSD poa. + virtual + void set_csd_strategy ( + ::CSD_Framework::Strategy_ptr s + ACE_ENV_ARG_DECL + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + /// Hook - The POA has been (or is being) activated. + virtual void poa_activated_hook (); + + /// Hook - The POA has been deactivated. + virtual void poa_deactivated_hook (); + + /// Hook - A servant has been activated. + virtual void servant_activated_hook (PortableServer::Servant servant, + const PortableServer::ObjectId& oid + ACE_ENV_ARG_DECL); + + /// Hook - A servant has been deactivated. + virtual void servant_deactivated_hook (PortableServer::Servant servant, + const PortableServer::ObjectId& oid + ACE_ENV_ARG_DECL); + + ///Method for creating new CSD POA. + TAO_Root_POA * new_POA (const String &name, + PortableServer::POAManager_ptr poa_manager, + const TAO_POA_Policy_Set &policies, + TAO_Root_POA *parent, + ACE_Lock &lock, + TAO_SYNCH_MUTEX &thread_lock, + TAO_ORB_Core &orb_core, + TAO_Object_Adapter *object_adapter + ACE_ENV_ARG_DECL); + + /// Servant Dispatching Strategy proxy accessor. + TAO::CSD::Strategy_Proxy& + servant_dispatching_strategy_proxy (void) const; + +private: + + TAO::CSD::Strategy_Proxy* sds_proxy_; +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + + +#if defined (__ACE_INLINE__) +# include "tao/CSD_Framework/CSD_POA.inl" +#endif /* __ACE_INLINE__ */ + +#include /**/ "ace/post.h" + +#endif /* TAO_CSD_POA_H */ + diff --git a/TAO/tao/EndpointPolicy.mpc b/TAO/tao/EndpointPolicy.mpc new file mode 100644 index 00000000000..62d0c80c7e4 --- /dev/null +++ b/TAO/tao/EndpointPolicy.mpc @@ -0,0 +1,35 @@ +//$Id$ +project : taolib, core, portableserver, pi { + sharedname = TAO_EndpointPolicy + dynamicflags = TAO_ENDPOINTPOLICY_BUILD_DLL + + Source_Files { + EndpointPolicy + } + + Header_Files { + EndpointPolicy + } + + Inline_Files { + EndpointPolicy + } + + Template_Files { + EndpointPolicy + } + + Resource_Files { + EndpointPolicy + } + + PIDL_Files { + } + + IDL_Files { + } + + Pkgconfig_Files { + EndpointPolicy/TAO_EndpointPolicy.pc.in + } +} diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy.cpp b/TAO/tao/EndpointPolicy/EndpointPolicy.cpp new file mode 100644 index 00000000000..534ac8fbd77 --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicy.cpp @@ -0,0 +1,61 @@ +// @(#) $Id$ + +#include "tao/EndpointPolicy/EndpointPolicy.h" +#include "tao/EndpointPolicy/EndpointPolicy_ORBInitializer.h" +#include "tao/EndpointPolicy/Endpoint_Acceptor_Filter_Factory.h" + +#include "tao/ORB_Core.h" +#include "tao/ORBInitializer_Registry.h" + + +ACE_RCSID (EndpointPolicy, EndpointPolicy, "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +int +TAO_EndpointPolicy_Initializer::init (void) +{ + ACE_Service_Config::process_directive (ace_svc_desc_TAO_Endpoint_Acceptor_Filter_Factory); + + PortableInterceptor::ORBInitializer_ptr temp_orb_initializer = + PortableInterceptor::ORBInitializer::_nil (); + PortableInterceptor::ORBInitializer_var orb_initializer; + + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + /// Register the EndpointPolicy ORBInitializer. + ACE_NEW_THROW_EX (temp_orb_initializer, + TAO_EndpointPolicy_ORBInitializer, + CORBA::NO_MEMORY ( + CORBA::SystemException::_tao_minor_code ( + TAO::VMCID, + ENOMEM), + CORBA::COMPLETED_NO)); + ACE_TRY_CHECK; + + orb_initializer = temp_orb_initializer; + + PortableInterceptor::register_orb_initializer (orb_initializer.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + if (TAO_debug_level > 0) + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Caught exception:"); + } + return -1; + } + ACE_ENDTRY; + + ACE_Service_Config::process_directive + (ace_svc_desc_TAO_Endpoint_Acceptor_Filter_Factory,1); // force replacement + + + return 0; +} + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy.h b/TAO/tao/EndpointPolicy/EndpointPolicy.h new file mode 100644 index 00000000000..14c9bd7f1a0 --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicy.h @@ -0,0 +1,50 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file EndpointPolicy.h + * + * $Id$ + * + * @author Yan Dai <dai_y@ociweb.com> + */ +//============================================================================= + + +#ifndef TAO_ENDPOINTPOLICY_H +#define TAO_ENDPOINTPOLICY_H + +#include /**/ "ace/pre.h" + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/Versioned_Namespace.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +class TAO_EndpointPolicy_Export TAO_EndpointPolicy_Initializer +{ +public: + /// Used to force the initialization of the ORB code. + static int init (void); +}; + +static int +TAO_Requires_EndpointPolicy_Initializer = TAO_EndpointPolicy_Initializer::init (); + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#define TAO_ENDPOINTPOLICY_SAFE_INCLUDE +#include "tao/EndpointPolicy/EndpointPolicyC.h" +#include "tao/EndpointPolicy/EndpointPolicyA.h" +#include "tao/IOP_IORC.h" +#include "tao/AnyTypeCode/Any.h" +#undef TAO_ENDPOINTPOLICY_SAFE_INCLUDE + +#endif /* TAO_ENDPOINTPOLICY_H */ diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy.pidl b/TAO/tao/EndpointPolicy/EndpointPolicy.pidl new file mode 100644 index 00000000000..4b0fcede25f --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicy.pidl @@ -0,0 +1,55 @@ +// +// $Id$ +// +// ================================================================ +// +// = LIBRARY +// EndpointPolicy +// +// = FILENAME +// EndpointPolicy.pidl +// +// = DESCRIPTION +// This file contains idl definition for Endpoint policy interface and +// the policy value. This TAO-specific policy is used to filter endpoints +// in the profiles for use in Object References. +// +// +// This file was used to generate the code in +// EndpointPolicyC.* The command used to generate code +// is: +/* + $ACE_ROOT/bin/tao_idl \ + -Ge 1 -Sc \ + -Wb,export_macro=TAO_EndpointPolicy_Export \ + -Wb,export_include="tao/EndpointPolicy/EndpointPolicy_Export.h" \ + -Wb,pre_include="ace/pre.h" \ + -Wb,post_include="ace/post.h" \ + EndpointPolicy.pidl +*/ +// ================================================================ + +#ifndef _TAO_ENDPOINT_POLICY_IDL_ +#define _TAO_ENDPOINT_POLICY_IDL_ + +///FUZZ: disable check_for_include/ +#include "tao/Policy.pidl" +#include "tao/EndpointPolicy/EndpointPolicyType.pidl" + +module EndpointPolicy +{ + local interface EndpointValueBase + { + readonly attribute unsigned long protocol_tag; + }; + + typedef sequence<EndpointValueBase> EndpointList; + + local interface Policy : CORBA::Policy + { + readonly attribute EndpointList value; + }; +}; + + +#endif /* _TAO_ENDPOINT_POLICY_IDL_ */ diff --git a/TAO/tao/EndpointPolicy/EndpointPolicyA.cpp b/TAO/tao/EndpointPolicy/EndpointPolicyA.cpp new file mode 100644 index 00000000000..94a683d6b1f --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicyA.cpp @@ -0,0 +1,212 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +#include "EndpointPolicyA.h" +#include "tao/AnyTypeCode/Null_RefCount_Policy.h" +#include "tao/AnyTypeCode/TypeCode_Constants.h" +#include "tao/AnyTypeCode/Alias_TypeCode_Static.h" +#include "tao/AnyTypeCode/Objref_TypeCode_Static.h" +#include "tao/AnyTypeCode/Sequence_TypeCode_Static.h" +#include "tao/AnyTypeCode/Any.h" +#include "tao/CDR.h" +#include "tao/AnyTypeCode/Any.h" +#include "tao/AnyTypeCode/Any_Impl_T.h" +#include "tao/AnyTypeCode/Any_Dual_Impl_T.h" + +// TAO_IDL - Generated from +// be/be_visitor_typecode/objref_typecode.cpp:76 + +static TAO::TypeCode::Objref<char const *, + TAO::Null_RefCount_Policy> + _tao_tc_EndpointPolicy_EndpointValueBase ( + ::CORBA::tk_local_interface, + "IDL:EndpointPolicy/EndpointValueBase:1.0", + "EndpointValueBase"); + +namespace EndpointPolicy +{ + ::CORBA::TypeCode_ptr const _tc_EndpointValueBase = + &_tao_tc_EndpointPolicy_EndpointValueBase; +} + + + +// TAO_IDL - Generated from +// be/be_visitor_typecode/alias_typecode.cpp:50 + + + +// TAO_IDL - Generated from +// be/be_visitor_typecode/typecode_defn.cpp:942 + + +#ifndef _TAO_TYPECODE_EndpointPolicy_EndpointList_GUARD +#define _TAO_TYPECODE_EndpointPolicy_EndpointList_GUARD + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + namespace TypeCode + { + TAO::TypeCode::Sequence< ::CORBA::TypeCode_ptr const *, + TAO::Null_RefCount_Policy> + EndpointPolicy_EndpointList_0 ( + ::CORBA::tk_sequence, + &EndpointPolicy::_tc_EndpointValueBase, + 0U); + + ::CORBA::TypeCode_ptr const tc_EndpointPolicy_EndpointList_0 = + &EndpointPolicy_EndpointList_0; + + } +} + + +TAO_END_VERSIONED_NAMESPACE_DECL + + +#endif /* _TAO_TYPECODE_EndpointPolicy_EndpointList_GUARD */ + +static TAO::TypeCode::Alias<char const *, + ::CORBA::TypeCode_ptr const *, + TAO::Null_RefCount_Policy> + _tao_tc_EndpointPolicy_EndpointList ( + ::CORBA::tk_alias, + "IDL:EndpointPolicy/EndpointList:1.0", + "EndpointList", + &TAO::TypeCode::tc_EndpointPolicy_EndpointList_0); + +namespace EndpointPolicy +{ + ::CORBA::TypeCode_ptr const _tc_EndpointList = + &_tao_tc_EndpointPolicy_EndpointList; +} + + + +// TAO_IDL - Generated from +// be/be_visitor_typecode/objref_typecode.cpp:76 + +static TAO::TypeCode::Objref<char const *, + TAO::Null_RefCount_Policy> + _tao_tc_EndpointPolicy_Policy ( + ::CORBA::tk_local_interface, + "IDL:EndpointPolicy/Policy:1.0", + "Policy"); + +namespace EndpointPolicy +{ + ::CORBA::TypeCode_ptr const _tc_Policy = + &_tao_tc_EndpointPolicy_Policy; +} + + + +// TAO_IDL - Generated from +// be/be_visitor_sequence/any_op_cs.cpp:54 + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + template<> + ::CORBA::Boolean + Any_Dual_Impl_T<EndpointPolicy::EndpointList>::marshal_value (TAO_OutputCDR &) + { + return false; + } + + template<> + ::CORBA::Boolean + Any_Dual_Impl_T<EndpointPolicy::EndpointList>::demarshal_value (TAO_InputCDR &) + { + return false; + } +} + +// Copying insertion. +void operator<<= ( + ::CORBA::Any &_tao_any, + const EndpointPolicy::EndpointList &_tao_elem + ) +{ + if (0 == &_tao_elem) // Trying to de-reference NULL object + _tao_any <<= static_cast<EndpointPolicy::EndpointList *>( 0 ); // Use non-copying insertion of a NULL + else + TAO::Any_Dual_Impl_T<EndpointPolicy::EndpointList>::insert_copy ( + _tao_any, + EndpointPolicy::EndpointList::_tao_any_destructor, + TAO::TypeCode::tc_EndpointPolicy_EndpointList_0, + _tao_elem + ); +} + +// Non-copying insertion. +void operator<<= ( + ::CORBA::Any &_tao_any, + EndpointPolicy::EndpointList *_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<EndpointPolicy::EndpointList>::insert ( + _tao_any, + EndpointPolicy::EndpointList::_tao_any_destructor, + TAO::TypeCode::tc_EndpointPolicy_EndpointList_0, + _tao_elem + ); +} + +// Extraction to non-const pointer (deprecated). +::CORBA::Boolean operator>>= ( + const ::CORBA::Any &_tao_any, + EndpointPolicy::EndpointList *&_tao_elem + ) +{ + return _tao_any >>= const_cast< + const EndpointPolicy::EndpointList *&> ( + _tao_elem + ); +} + +// Extraction to const pointer. +::CORBA::Boolean operator>>= ( + const ::CORBA::Any &_tao_any, + const EndpointPolicy::EndpointList *&_tao_elem + ) +{ + return + TAO::Any_Dual_Impl_T<EndpointPolicy::EndpointList>::extract ( + _tao_any, + EndpointPolicy::EndpointList::_tao_any_destructor, + TAO::TypeCode::tc_EndpointPolicy_EndpointList_0, + _tao_elem + ); +} +TAO_END_VERSIONED_NAMESPACE_DECL + + diff --git a/TAO/tao/EndpointPolicy/EndpointPolicyA.h b/TAO/tao/EndpointPolicy/EndpointPolicyA.h new file mode 100644 index 00000000000..f8e99832e13 --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicyA.h @@ -0,0 +1,84 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// be/be_codegen.cpp:796 + +#ifndef _TAO_IDL_ENDPOINTPOLICYA_H_ +#define _TAO_IDL_ENDPOINTPOLICYA_H_ + +#include /**/ "ace/pre.h" + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" +#include "tao/EndpointPolicy/EndpointPolicyC.h" +#include "tao/AnyTypeCode/PolicyA.h" +#include "tao/EndpointPolicy/EndpointPolicyTypeA.h" + + +// TAO_IDL - Generated from +// be/be_visitor_module/module_ch.cpp:59 + +namespace EndpointPolicy +{ + + // TAO_IDL - Generated from + // be/be_visitor_typecode/typecode_decl.cpp:49 + + extern TAO_EndpointPolicy_Export ::CORBA::TypeCode_ptr const _tc_EndpointValueBase; + + // TAO_IDL - Generated from + // be/be_visitor_typecode/typecode_decl.cpp:49 + + extern TAO_EndpointPolicy_Export ::CORBA::TypeCode_ptr const _tc_EndpointList; + + // TAO_IDL - Generated from + // be/be_visitor_typecode/typecode_decl.cpp:49 + + extern TAO_EndpointPolicy_Export ::CORBA::TypeCode_ptr const _tc_Policy; + +// TAO_IDL - Generated from +// be/be_visitor_module/module_ch.cpp:86 + +} // module EndpointPolicy + +// TAO_IDL - Generated from +// be/be_visitor_sequence/any_op_ch.cpp:53 + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +TAO_EndpointPolicy_Export void operator<<= ( ::CORBA::Any &, const EndpointPolicy::EndpointList &); // copying version +TAO_EndpointPolicy_Export void operator<<= ( ::CORBA::Any &, EndpointPolicy::EndpointList*); // noncopying version +TAO_EndpointPolicy_Export ::CORBA::Boolean operator>>= (const ::CORBA::Any &, EndpointPolicy::EndpointList *&); // deprecated +TAO_EndpointPolicy_Export ::CORBA::Boolean operator>>= (const ::CORBA::Any &, const EndpointPolicy::EndpointList *&); +TAO_END_VERSIONED_NAMESPACE_DECL + + + +#include /**/ "ace/post.h" + +#endif /* ifndef */ diff --git a/TAO/tao/EndpointPolicy/EndpointPolicyType.pidl b/TAO/tao/EndpointPolicy/EndpointPolicyType.pidl new file mode 100644 index 00000000000..2a07f2c886a --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicyType.pidl @@ -0,0 +1,41 @@ +// +// $Id$ +// +// ================================================================ +// +// = LIBRARY +// EndpointPolicy +// +// = FILENAME +// EndpointPolicyType.pidl +// +// = DESCRIPTION +// This file contains idl definition for EndpointPolicy type. +// +// +// This file was used to generate the code in +// EndpointPolicyTypeC.* The command used to generate code +// is: +// +// tao_idl +// -o orig -Ge 1 -GA -Sc \ +// -Wb,export_macro=TAO_EndpointPolicy_Export \ +// -Wb,export_include="tao/EndpointPolicy/TAO_EndpointPolicy_Export.h" \ +// -Wb,pre_include="ace/pre.h" \ +// -Wb,post_include="ace/post.h" \ +// EndpointPolicyType.pidl +// +// ================================================================ + +#ifndef _TAO_ENDPOINT_POLICY_TYPE_IDL_ +#define _TAO_ENDPOINT_POLICY_TYPE_IDL_ + +#include "tao/Policy.pidl" + +module EndpointPolicy +{ + const CORBA::PolicyType ENDPOINT_POLICY_TYPE = 0x4f43000c; +}; + + +#endif /* _TAO_ENDPOINT_POLICY_TYPE_IDL_ */ diff --git a/TAO/tao/EndpointPolicy/EndpointPolicyTypeA.cpp b/TAO/tao/EndpointPolicy/EndpointPolicyTypeA.cpp new file mode 100644 index 00000000000..c4c90d969c0 --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicyTypeA.cpp @@ -0,0 +1,33 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +#include "tao/EndpointPolicy/EndpointPolicyTypeA.h" +#include "tao/AnyTypeCode/Null_RefCount_Policy.h" +#include "tao/AnyTypeCode/TypeCode_Constants.h" +#include "tao/AnyTypeCode/Alias_TypeCode_Static.h" +#include "tao/AnyTypeCode/Any.h" +#include "tao/CDR.h" diff --git a/TAO/tao/EndpointPolicy/EndpointPolicyTypeA.h b/TAO/tao/EndpointPolicy/EndpointPolicyTypeA.h new file mode 100644 index 00000000000..a7953240ff9 --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicyTypeA.h @@ -0,0 +1,54 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// .\be\be_codegen.cpp:797 + +#ifndef _TAO_IDL_ENDPOINTPOLICYTYPEA_H_ +#define _TAO_IDL_ENDPOINTPOLICYTYPEA_H_ + +#include /**/ "ace/pre.h" + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" +#include "tao/EndpointPolicy/EndpointPolicyTypeC.h" +#include "tao/AnyTypeCode/PolicyA.h" + + +// TAO_IDL - Generated from +// c:\ticket\tao-1_4_8_merge\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_ch.cpp:59 + +namespace EndpointPolicy +{ + +// TAO_IDL - Generated from +// c:\ticket\tao-1_4_8_merge\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_ch.cpp:86 + +} // module EndpointPolicy + +#include /**/ "ace/post.h" + +#endif /* ifndef */ diff --git a/TAO/tao/EndpointPolicy/EndpointPolicyTypeC.cpp b/TAO/tao/EndpointPolicy/EndpointPolicyTypeC.cpp new file mode 100644 index 00000000000..a3f9a0e196d --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicyTypeC.cpp @@ -0,0 +1,49 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// .\be\be_codegen.cpp:283 + + +#include "tao/EndpointPolicy/EndpointPolicyTypeC.h" +#include "tao/CDR.h" + +// TAO_IDL - Generated from +// .\be\be_visitor_arg_traits.cpp:70 +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + + + +// Arg traits specializations. +namespace TAO +{ +} + +TAO_END_VERSIONED_NAMESPACE_DECL + + + diff --git a/TAO/tao/EndpointPolicy/EndpointPolicyTypeC.h b/TAO/tao/EndpointPolicy/EndpointPolicyTypeC.h new file mode 100644 index 00000000000..59b8f094a5b --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicyTypeC.h @@ -0,0 +1,90 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// .\be\be_codegen.cpp:155 + +#ifndef _TAO_IDL_ENDPOINTPOLICYTYPEC_H_ +#define _TAO_IDL_ENDPOINTPOLICYTYPEC_H_ + +#include /**/ "ace/pre.h" + + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" +#include "tao/ORB.h" +#include "tao/SystemException.h" +#include "tao/Environment.h" +#include "tao/Versioned_Namespace.h" + +#include "tao/PolicyC.h" + +#if defined (TAO_EXPORT_MACRO) +#undef TAO_EXPORT_MACRO +#endif +#define TAO_EXPORT_MACRO TAO_EndpointPolicy_Export + +// TAO_IDL - Generated from +// c:\ticket\tao-1_4_8_merge\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_ch.cpp:49 + +namespace EndpointPolicy +{ + + // TAO_IDL - Generated from + // c:\ticket\tao-1_4_8_merge\ace_wrappers\tao\tao_idl\be\be_visitor_constant/constant_ch.cpp:52 + + const CORBA::PolicyType ENDPOINT_POLICY_TYPE = 1329790988U; + +// TAO_IDL - Generated from +// c:\ticket\tao-1_4_8_merge\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_ch.cpp:78 + +} // module EndpointPolicy + +// TAO_IDL - Generated from +// .\be\be_visitor_traits.cpp:62 +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + + + +// Traits specializations. +namespace TAO +{ +} +TAO_END_VERSIONED_NAMESPACE_DECL + + + +#include /**/ "ace/post.h" + +#endif /* ifndef */ + + diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy_Export.h b/TAO/tao/EndpointPolicy/EndpointPolicy_Export.h new file mode 100644 index 00000000000..d9940484cfe --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicy_Export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -s TAO_EndpointPolicy +// ------------------------------ +#ifndef TAO_ENDPOINTPOLICY_EXPORT_H +#define TAO_ENDPOINTPOLICY_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (TAO_ENDPOINTPOLICY_HAS_DLL) +# define TAO_ENDPOINTPOLICY_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && TAO_ENDPOINTPOLICY_HAS_DLL */ + +#if !defined (TAO_ENDPOINTPOLICY_HAS_DLL) +# define TAO_ENDPOINTPOLICY_HAS_DLL 1 +#endif /* ! TAO_ENDPOINTPOLICY_HAS_DLL */ + +#if defined (TAO_ENDPOINTPOLICY_HAS_DLL) && (TAO_ENDPOINTPOLICY_HAS_DLL == 1) +# if defined (TAO_ENDPOINTPOLICY_BUILD_DLL) +# define TAO_EndpointPolicy_Export ACE_Proper_Export_Flag +# define TAO_ENDPOINTPOLICY_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define TAO_ENDPOINTPOLICY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* TAO_ENDPOINTPOLICY_BUILD_DLL */ +# define TAO_EndpointPolicy_Export ACE_Proper_Import_Flag +# define TAO_ENDPOINTPOLICY_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define TAO_ENDPOINTPOLICY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* TAO_ENDPOINTPOLICY_BUILD_DLL */ +#else /* TAO_ENDPOINTPOLICY_HAS_DLL == 1 */ +# define TAO_EndpointPolicy_Export +# define TAO_ENDPOINTPOLICY_SINGLETON_DECLARATION(T) +# define TAO_ENDPOINTPOLICY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* TAO_ENDPOINTPOLICY_HAS_DLL == 1 */ + +// Set TAO_ENDPOINTPOLICY_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (TAO_ENDPOINTPOLICY_NTRACE) +# if (ACE_NTRACE == 1) +# define TAO_ENDPOINTPOLICY_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define TAO_ENDPOINTPOLICY_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !TAO_ENDPOINTPOLICY_NTRACE */ + +#if (TAO_ENDPOINTPOLICY_NTRACE == 1) +# define TAO_ENDPOINTPOLICY_TRACE(X) +#else /* (TAO_ENDPOINTPOLICY_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define TAO_ENDPOINTPOLICY_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (TAO_ENDPOINTPOLICY_NTRACE == 1) */ + +#endif /* TAO_ENDPOINTPOLICY_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy_Factory.cpp b/TAO/tao/EndpointPolicy/EndpointPolicy_Factory.cpp new file mode 100644 index 00000000000..11c4a887519 --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicy_Factory.cpp @@ -0,0 +1,94 @@ +// @(#) $Id$ +#include "tao/EndpointPolicy/EndpointPolicy_Factory.h" + +ACE_RCSID (EndpointPolicy, + EndpointPolicy_Factory, + "$Id$") + +#include "tao/EndpointPolicy/EndpointPolicy_i.h" +#include "tao/EndpointPolicy/EndpointPolicyA.h" +#include "tao/EndpointPolicy/Endpoint_Value_Impl.h" + +#include "tao/PolicyC.h" +#include "tao/ORB_Constants.h" +#include "tao/ORB_Core.h" +#include "tao/Acceptor_Registry.h" +#include "tao/AnyTypeCode/TAOA.h" +#include "tao/AnyTypeCode/Any.h" +#include "tao/Thread_Lane_Resources.h" +#include "tao/Transport_Acceptor.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + + +TAO_EndpointPolicy_Factory::TAO_EndpointPolicy_Factory (TAO_ORB_Core * orb_core) +: orb_core_ (orb_core) +{ +} + + +CORBA::Policy_ptr +TAO_EndpointPolicy_Factory::create_policy ( + CORBA::PolicyType type, + const CORBA::Any &value + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + CORBA::PolicyError)) +{ + if (type == EndpointPolicy::ENDPOINT_POLICY_TYPE) + { + const EndpointPolicy::EndpointList* endpoint_list; + if ((value >>= endpoint_list) == 0) + ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_VALUE), + CORBA::Policy::_nil ()); + + TAO_Acceptor_Registry & registry + = this->orb_core_->lane_resources ().acceptor_registry (); + + TAO_Acceptor ** acceptors_begin = registry.begin (); + TAO_Acceptor ** acceptors_end = registry.end (); + CORBA::ULong num_eps = endpoint_list->length (); + + // The endpoint list in the value is validated to ensure that + // at least one endpoint in the list matches an endpoint the + // ORB is listening on. + + bool found_one = true; + for (CORBA::ULong idx = 0; !found_one && idx < num_eps; ++idx) + { + CORBA::ULong prot_tag = (*endpoint_list)[idx]->protocol_tag(); + + const TAO_Endpoint_Value_Impl *evi = + dynamic_cast <const TAO_Endpoint_Value_Impl*> ((*endpoint_list)[idx]); + + for (TAO_Acceptor** acceptor = acceptors_begin; + !found_one && acceptor != acceptors_end; + ++acceptor) + { + if ((*acceptor)->tag() == prot_tag) + found_one = evi->validate_acceptor(*acceptor); + } + } + // There is no endpoint policy value matches an endpoint the ORB + // is listening on. A CORBA::PolicyError exception with a + // PolicyErrorCode of UNSUPPORTED_POLICY_VALUE is raised. + if (!found_one) + ACE_THROW_RETURN (CORBA::PolicyError (CORBA::UNSUPPORTED_POLICY_VALUE), + CORBA::Policy::_nil ()); + + TAO_EndpointPolicy_i *tmp; + ACE_NEW_THROW_EX (tmp, + TAO_EndpointPolicy_i (*endpoint_list), + CORBA::NO_MEMORY (TAO::VMCID, + CORBA::COMPLETED_NO)); + ACE_CHECK_RETURN (CORBA::Policy::_nil ()); + + return tmp; + } + else + ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_TYPE), + CORBA::Policy::_nil ()); +} + + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy_Factory.h b/TAO/tao/EndpointPolicy/EndpointPolicy_Factory.h new file mode 100644 index 00000000000..667c7f2aa9a --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicy_Factory.h @@ -0,0 +1,67 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file EndpointPolicy_Factory.h + * + * $Id$ + * + * @author Yan Dai <dai_y@ociweb.com> + */ +//============================================================================= + + +#ifndef TAO_ENDPOINTPOLICY_FACTORY_H +#define TAO_ENDPOINTPOLICY_FACTORY_H + +#include /**/ "ace/pre.h" + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/PI/PI.h" +#include "tao/LocalObject.h" + +// This is to remove "inherits via dominance" warnings from MSVC. +// MSVC is being a little too paranoid. +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +// Forward declarations. +class TAO_ORB_Core; + +/// Policy factory for the endpoint policies. +class TAO_EndpointPolicy_Export TAO_EndpointPolicy_Factory + : public virtual PortableInterceptor::PolicyFactory, + public virtual TAO_Local_RefCounted_Object +{ +public: + + TAO_EndpointPolicy_Factory (TAO_ORB_Core * orb_core); + + virtual CORBA::Policy_ptr create_policy (CORBA::PolicyType type, + const CORBA::Any & value + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + CORBA::PolicyError)); +private: + + TAO_ORB_Core * orb_core_; +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#include /**/ "ace/post.h" + +#endif /* TAO_ENDPOINTPOLICY_FACTORY_H */ diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy_ORBInitializer.cpp b/TAO/tao/EndpointPolicy/EndpointPolicy_ORBInitializer.cpp new file mode 100644 index 00000000000..d457e78d389 --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicy_ORBInitializer.cpp @@ -0,0 +1,86 @@ +// $Id$ + +#include "tao/EndpointPolicy/EndpointPolicy_ORBInitializer.h" + +#include "tao/EndpointPolicy/EndpointPolicyC.h" +#include "tao/EndpointPolicy/EndpointPolicy_Factory.h" +#include "tao/ORB_Core.h" +#include "tao/PI/ORBInitInfo.h" + +ACE_RCSID (EndpointPolicy, + EndpointPolicy_ORBInitializer, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +void +TAO_EndpointPolicy_ORBInitializer::pre_init ( + PortableInterceptor::ORBInitInfo_ptr + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ +} + +void +TAO_EndpointPolicy_ORBInitializer::post_init ( + PortableInterceptor::ORBInitInfo_ptr info + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->register_policy_factories (info + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; +} + +void +TAO_EndpointPolicy_ORBInitializer::register_policy_factories ( + PortableInterceptor::ORBInitInfo_ptr info + ACE_ENV_ARG_DECL) +{ + TAO_ORBInitInfo * local_info = dynamic_cast <TAO_ORBInitInfo *> (info); + TAO_ORB_Core * the_orb_core = local_info->orb_core (); + + // Register the EndpointPolicy policy factories. + PortableInterceptor::PolicyFactory_ptr policy_factory_ptr; + ACE_NEW_THROW_EX (policy_factory_ptr, + TAO_EndpointPolicy_Factory(the_orb_core), + CORBA::NO_MEMORY ( + CORBA::SystemException::_tao_minor_code ( + TAO::VMCID, + ENOMEM), + CORBA::COMPLETED_NO)); + ACE_CHECK; + + + PortableInterceptor::PolicyFactory_var policy_factory = + policy_factory_ptr; + + ACE_TRY + { + info->register_policy_factory (EndpointPolicy::ENDPOINT_POLICY_TYPE, + policy_factory.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCH (CORBA::BAD_INV_ORDER, ex) + { + if (ex.minor () == (CORBA::OMGVMCID | 16)) + { + // The factory is already there, it happens because the + // magic initializer in Messaging.cpp registers with the + // ORB multiple times. This is an indication that we + // should do no more work in this ORBInitializer. + return; + } + ACE_RE_THROW; + } + ACE_CATCHANY + { + // Rethrow any other exceptions... + ACE_RE_THROW; + } + ACE_ENDTRY; + ACE_CHECK; +} + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy_ORBInitializer.h b/TAO/tao/EndpointPolicy/EndpointPolicy_ORBInitializer.h new file mode 100644 index 00000000000..daeeff7f2c0 --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicy_ORBInitializer.h @@ -0,0 +1,79 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file EndpointPolicy_ORBInitializer.h + * + * $Id$ + * + * @author Yan Dai <dai_y@ociweb.com> + */ +//============================================================================= + + +#ifndef TAO_ENDPOINTPOLICY_ORB_INITIALIZER_H +#define TAO_ENDPOINTPOLICY_ORB_INITIALIZER_H + +#include /**/ "ace/pre.h" + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/PI/PI.h" +#include "tao/LocalObject.h" + +// This is to remove "inherits via dominance" warnings from MSVC. +// MSVC is being a little too paranoid. +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/// EndpointPolicy ORB initializer. +class TAO_EndpointPolicy_ORBInitializer + : public virtual PortableInterceptor::ORBInitializer, + public virtual TAO_Local_RefCounted_Object +{ +public: + + /** + * @name PortableInterceptor::ORBInitializer Methods + * + * The following methods are required by the + * PortableInterceptor::ORBInitializer interface. + */ + //@{ + + virtual void pre_init (PortableInterceptor::ORBInitInfo_ptr info + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void post_init (PortableInterceptor::ORBInitInfo_ptr info + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + //@} + +private: + + /// Register Endpoint policy factories. + void register_policy_factories ( + PortableInterceptor::ORBInitInfo_ptr info + ACE_ENV_ARG_DECL); + +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#include /**/ "ace/post.h" + +#endif /* TAO_ENDPOINTPOLICY_ORB_INITIALIZER_H */ diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy_i.cpp b/TAO/tao/EndpointPolicy/EndpointPolicy_i.cpp new file mode 100644 index 00000000000..41df9fe5175 --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicy_i.cpp @@ -0,0 +1,84 @@ +// $Id$ + +#include "tao/EndpointPolicy/EndpointPolicy_i.h" + +#include "tao/SystemException.h" + +ACE_RCSID (EndpointPolicy, + EndpointPolicy_i, + "$Id$") + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +TAO_EndpointPolicy_i::TAO_EndpointPolicy_i (const EndpointPolicy::EndpointList &value) +: value_ (value) +{ +} + +TAO_EndpointPolicy_i::TAO_EndpointPolicy_i (const TAO_EndpointPolicy_i &rhs) + : ACE_NESTED_CLASS (CORBA, Object) () + , ACE_NESTED_CLASS (CORBA, Policy) () + , ACE_NESTED_CLASS (EndpointPolicy, Policy) () + , ACE_NESTED_CLASS (CORBA, LocalObject) () + , TAO_Local_RefCounted_Object () + , value_ (rhs.value_) +{ +} + +CORBA::PolicyType +TAO_EndpointPolicy_i::policy_type (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return EndpointPolicy::ENDPOINT_POLICY_TYPE; +} + +TAO_EndpointPolicy_i * +TAO_EndpointPolicy_i::clone (void) const +{ + TAO_EndpointPolicy_i *copy = 0; + ACE_NEW_RETURN (copy, + TAO_EndpointPolicy_i (*this), + 0); + return copy; +} + +EndpointPolicy::EndpointList * +TAO_EndpointPolicy_i::value (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + EndpointPolicy::EndpointList* list = 0; + ACE_NEW_RETURN (list, + EndpointPolicy::EndpointList (this->value_), + 0); + + return list; +} + +CORBA::Policy_ptr +TAO_EndpointPolicy_i::copy (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + TAO_EndpointPolicy_i* servant = 0; + ACE_NEW_THROW_EX (servant, + TAO_EndpointPolicy_i (*this), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (CORBA::Policy::_nil ()); + + return servant; +} + +void +TAO_EndpointPolicy_i::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ +} + +TAO_Cached_Policy_Type +TAO_EndpointPolicy_i::_tao_cached_type (void) const +{ + return TAO_CACHED_POLICY_ENDPOINT; +} + + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy_i.h b/TAO/tao/EndpointPolicy/EndpointPolicy_i.h new file mode 100644 index 00000000000..c41626ba4d8 --- /dev/null +++ b/TAO/tao/EndpointPolicy/EndpointPolicy_i.h @@ -0,0 +1,93 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file EndpointPolicy_i.h + * + * $Id$ + * + * @author Yan Dai <dai_y@ociweb.com> + */ +//============================================================================= + + +#ifndef TAO_ENDPOINTPOLICY_I_H +#define TAO_ENDPOINTPOLICY_I_H + +#include /**/ "ace/pre.h" + +#include "tao/TAOC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/EndpointPolicy/EndpointPolicyC.h" +#include "tao/LocalObject.h" + +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + + +/** + * @class TAO_EndpointPolicy_i + * + * @brief Implementation class for TAO-specific Endpoint Policy. + * + * This policy is used to filter the endpoints in profiles during + * the creation of object references. + */ +class TAO_EndpointPolicy_Export TAO_EndpointPolicy_i + : public virtual EndpointPolicy::Policy, + public virtual TAO_Local_RefCounted_Object +{ +public: + /// Constructor. + TAO_EndpointPolicy_i (const EndpointPolicy::EndpointList &value); + + /// Copy constructor. + TAO_EndpointPolicy_i (const TAO_EndpointPolicy_i &rhs); + + /// Returns a copy of <this>. + virtual TAO_EndpointPolicy_i *clone (void) const; + + // = The EndpointPolicy::Policy methods + + virtual CORBA::PolicyType policy_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Policy_ptr copy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Return the cached policy type for this policy. + virtual TAO_Cached_Policy_Type _tao_cached_type (void) const; + + virtual EndpointPolicy::EndpointList * value ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )); + +private: + /// The attribute + EndpointPolicy::EndpointList value_; +}; + + + +TAO_END_VERSIONED_NAMESPACE_DECL + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#include /**/ "ace/post.h" +#endif /* TAO_ENDPOINTPOLICY_I_H */ diff --git a/TAO/tao/EndpointPolicy/Endpoint_Acceptor_Filter.h b/TAO/tao/EndpointPolicy/Endpoint_Acceptor_Filter.h new file mode 100644 index 00000000000..818c3847455 --- /dev/null +++ b/TAO/tao/EndpointPolicy/Endpoint_Acceptor_Filter.h @@ -0,0 +1,70 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Endpoint_Acceptor_Filter.h + * + * $Id$ + * + * Subclass of TAO_Default_Acceptor_Filter that populates mprofile and filters + * mprofile with the endpoint policy in TAO_POA_Manager. + * + * @author Yan Dai <dai_y@ociweb.com> + */ +//============================================================================= + + +#ifndef TAO_ENDPOINT_ACCEPTOR_FILTER_H +#define TAO_ENDPOINT_ACCEPTOR_FILTER_H + +#include /**/ "ace/pre.h" + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/PortableServer/Default_Acceptor_Filter.h" +#include "tao/EndpointPolicy/EndpointPolicyC.h" + +class TAO_POA_Manager; + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +//============================================================================= +/** + * @class TAO_Endpoint_Acceptor_Filter + * + * @brief Subclass of default Acceptor_Filter. + * + * Endpoint strategy for populating mprofile: only the endpoints match + * the POAManager endpoint policy are included. + */ +//============================================================================= +class TAO_EndpointPolicy_Export TAO_Endpoint_Acceptor_Filter + : public TAO_Default_Acceptor_Filter +{ +public: + TAO_Endpoint_Acceptor_Filter (EndpointPolicy::Policy_ptr p); + + /// Populate @a mprofile with endpoints match the POAManager endpoint + /// policy. + int fill_profile (const TAO::ObjectKey &object_key, + TAO_MProfile &mprofile, + TAO_Acceptor **acceptors_begin, + TAO_Acceptor **acceptors_end, + CORBA::Short priority = TAO_INVALID_PRIORITY); + +private: + // this is the list of endpoints as obtained from the policy value supplied + // to the constructor. + EndpointPolicy::EndpointList_var endpoints_; +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_ENDPOINT_ACCEPTOR_FILTER_H */ diff --git a/TAO/tao/EndpointPolicy/Endpoint_Acceptor_Filter_Factory.cpp b/TAO/tao/EndpointPolicy/Endpoint_Acceptor_Filter_Factory.cpp new file mode 100644 index 00000000000..13aeb5d62da --- /dev/null +++ b/TAO/tao/EndpointPolicy/Endpoint_Acceptor_Filter_Factory.cpp @@ -0,0 +1,56 @@ +// @(#) $Id$ + +#include "tao/EndpointPolicy/Endpoint_Acceptor_Filter_Factory.h" +#include "tao/EndpointPolicy/Endpoint_Acceptor_Filter.h" +#include "tao/PortableServer/Default_Acceptor_Filter.h" +#include "tao/PortableServer/POAManager.h" +#include "tao/EndpointPolicy/EndpointPolicyC.h" + +ACE_RCSID(EndpointPolicy, + Endpoint_Acceptor_Filter_Factory, + "$Id$") + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + + +TAO_Endpoint_Acceptor_Filter_Factory::~TAO_Endpoint_Acceptor_Filter_Factory(void) +{ +} + + TAO_Acceptor_Filter* + TAO_Endpoint_Acceptor_Filter_Factory::create_object (TAO_POA_Manager& poamanager) +{ + CORBA::PolicyList& policies = poamanager.get_policies (); + EndpointPolicy::Policy_var policy; + TAO_Acceptor_Filter* filter = 0; + for (CORBA::ULong i = 0; i < policies.length(); i++) + { + if (policies[i]->policy_type() == EndpointPolicy::ENDPOINT_POLICY_TYPE) + { + policy = EndpointPolicy::Policy::_narrow (policies[0]); + ACE_NEW_RETURN (filter, + TAO_Endpoint_Acceptor_Filter (policy.in()), + 0); + return filter; + } + } + // no policy was in force, just return a default filter + ACE_NEW_RETURN (filter, + TAO_Default_Acceptor_Filter (), + 0); + + return filter; +} + + +TAO_END_VERSIONED_NAMESPACE_DECL + +ACE_FACTORY_DEFINE (TAO_EndpointPolicy, TAO_Endpoint_Acceptor_Filter_Factory) +ACE_STATIC_SVC_DEFINE (TAO_Endpoint_Acceptor_Filter_Factory, + ACE_TEXT ("TAO_Acceptor_Filter_Factory"), + ACE_SVC_OBJ_T, + &ACE_SVC_NAME (TAO_Endpoint_Acceptor_Filter_Factory), + ACE_Service_Type::DELETE_THIS + | ACE_Service_Type::DELETE_OBJ, + 0) diff --git a/TAO/tao/EndpointPolicy/Endpoint_Acceptor_Filter_Factory.h b/TAO/tao/EndpointPolicy/Endpoint_Acceptor_Filter_Factory.h new file mode 100644 index 00000000000..54a61c45c93 --- /dev/null +++ b/TAO/tao/EndpointPolicy/Endpoint_Acceptor_Filter_Factory.h @@ -0,0 +1,56 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Endpoint_Acceptor_Filter_Factory.h + * + * $Id$ + * + * The factory of the TAO_Endpoint_Acceptor_Filter objects. + * + * @author Yan Dai <dai_y@ociweb.com> + */ +//============================================================================= + +#ifndef TAO_ENDPOINT_ACCEPTOR_FILTER_FACTORY_H +#define TAO_ENDPOINT_ACCEPTOR_FILTER_FACTORY_H + +#include /**/ "ace/pre.h" +#include "ace/Service_Config.h" + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/PortableServer/Acceptor_Filter_Factory.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/** + * @class TAO_Endpoint_Acceptor_Filter_Factory + * + * @brief The factory of the TAO_Endpoint_Acceptor_Filter objects. + * + * Factory service object that creates the TAO_Endpoint_Acceptor_Filter objects. + */ +class TAO_EndpointPolicy_Export TAO_Endpoint_Acceptor_Filter_Factory + : public TAO_Acceptor_Filter_Factory +{ +public: + virtual ~TAO_Endpoint_Acceptor_Filter_Factory(void); + + /// Create a new TAO_Endpoint_Acceptor_Filter object. + TAO_Acceptor_Filter* create_object (TAO_POA_Manager& poamanager); +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +ACE_STATIC_SVC_DECLARE_EXPORT (TAO_EndpointPolicy, TAO_Endpoint_Acceptor_Filter_Factory) +ACE_FACTORY_DECLARE (TAO_EndpointPolicy, TAO_Endpoint_Acceptor_Filter_Factory) + + +#include /**/ "ace/post.h" + +#endif /* TAO_ENDPOINT_ACCEPTOR_FILTER_FACTORY_H */ diff --git a/TAO/tao/EndpointPolicy/IIOPEndpointValue.pidl b/TAO/tao/EndpointPolicy/IIOPEndpointValue.pidl new file mode 100644 index 00000000000..a1b97a957ad --- /dev/null +++ b/TAO/tao/EndpointPolicy/IIOPEndpointValue.pidl @@ -0,0 +1,49 @@ +// +// $Id$ +// +// ================================================================ +// +// = LIBRARY +// EndpointPolicy +// +// = FILENAME +// EndpointPolicy.pidl +// +// = DESCRIPTION +// This file contains idl definition for Endpoint policy interface and +// the policy value. This TAO-specific policy is used to filter endpoints +// in the profiles for use in Object References. +// +// +// This file was used to generate the code in +// EndpointPolicyC.* The command used to generate code +// is: +// +// tao_idl +// -o orig -Ge 1 -GA -Sc \ +// -Wb,export_macro=TAO_EndpointPolicy_Export \ +// -Wb,export_include="tao/EndpointPolicy/EndpointPolicy_Export.h" \ +// -Wb,pre_include="ace/pre.h" \ +// -Wb,post_include="ace/post.h" \ +// IIOPEndpointValue.pidl +// +// ================================================================ + +#ifndef _TAO_IIOPENDPOINT_VALUE_IDL_ +#define _TAO_IIOPENDPOINT_VALUE_IDL_ + +///FUZZ: disable check_for_include/ +#include "tao/EndpointPolicy/EndpointPolicy.pidl" + +module EndpointPolicy +{ + local interface IIOPEndpointValue : EndpointValueBase + { + // protocol_tag set to TAG_Internet_IOP; + + attribute string host; + attribute unsigned short port; + }; +}; + +#endif /* _TAO_IIOPENDPOINT_VALUE_IDL_ */ diff --git a/TAO/tao/EndpointPolicy/IIOPEndpointValueA.cpp b/TAO/tao/EndpointPolicy/IIOPEndpointValueA.cpp new file mode 100644 index 00000000000..0c27c6a5ce5 --- /dev/null +++ b/TAO/tao/EndpointPolicy/IIOPEndpointValueA.cpp @@ -0,0 +1,53 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +#include "tao/EndpointPolicy/IIOPEndpointValueA.h" +#include "tao/AnyTypeCode/Null_RefCount_Policy.h" +#include "tao/AnyTypeCode/TypeCode_Constants.h" +#include "tao/AnyTypeCode/Alias_TypeCode_Static.h" +#include "tao/AnyTypeCode/Objref_TypeCode_Static.h" +#include "tao/AnyTypeCode/String_TypeCode_Static.h" +#include "tao/AnyTypeCode/Any.h" +#include "tao/CDR.h" +#include "tao/AnyTypeCode/Any.h" +#include "tao/AnyTypeCode/Any_Impl_T.h" + +// TAO_IDL - Generated from +// be/be_visitor_typecode/objref_typecode.cpp:76 + +static TAO::TypeCode::Objref<char const *, + TAO::Null_RefCount_Policy> + _tao_tc_EndpointPolicy_IIOPEndpointValue ( + ::CORBA::tk_local_interface, + "IDL:EndpointPolicy/IIOPEndpointValue:1.0", + "IIOPEndpointValue"); + +namespace EndpointPolicy +{ + ::CORBA::TypeCode_ptr const _tc_IIOPEndpointValue = + &_tao_tc_EndpointPolicy_IIOPEndpointValue; +} diff --git a/TAO/tao/EndpointPolicy/IIOPEndpointValueA.h b/TAO/tao/EndpointPolicy/IIOPEndpointValueA.h new file mode 100644 index 00000000000..e0113397f95 --- /dev/null +++ b/TAO/tao/EndpointPolicy/IIOPEndpointValueA.h @@ -0,0 +1,59 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// be/be_codegen.cpp:797 + +#ifndef _TAO_IDL_IIOPENDPOINTVALUEA_H_ +#define _TAO_IDL_IIOPENDPOINTVALUEA_H_ + +#include /**/ "ace/pre.h" + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" +#include "tao/EndpointPolicy/IIOPEndpointValueC.h" +#include "tao/EndpointPolicy/EndpointPolicyA.h" + + +// TAO_IDL - Generated from +// be/be_visitor_module/module_ch.cpp:59 + +namespace EndpointPolicy +{ + + // TAO_IDL - Generated from + // be/be_visitor_typecode/typecode_decl.cpp:49 + + extern TAO_EndpointPolicy_Export ::CORBA::TypeCode_ptr const _tc_IIOPEndpointValue; + +// TAO_IDL - Generated from +// be/be_visitor_module/module_ch.cpp:86 + +} // module EndpointPolicy + +#include /**/ "ace/post.h" + +#endif /* ifndef */ diff --git a/TAO/tao/EndpointPolicy/IIOPEndpointValueC.cpp b/TAO/tao/EndpointPolicy/IIOPEndpointValueC.cpp new file mode 100644 index 00000000000..9ebff2c4571 --- /dev/null +++ b/TAO/tao/EndpointPolicy/IIOPEndpointValueC.cpp @@ -0,0 +1,176 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// be/be_codegen.cpp:283 + + +#include "tao/EndpointPolicy/IIOPEndpointValueC.h" +#include "tao/CDR.h" +#include "tao/Basic_Arguments.h" +#include "tao/UB_String_Arguments.h" +#include "ace/OS_NS_string.h" + +// TAO_IDL - Generated from +// be/be_visitor_arg_traits.cpp:70 +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + + + +// Arg traits specializations. +namespace TAO +{ +} + +TAO_END_VERSIONED_NAMESPACE_DECL + + + +// TAO_IDL - Generated from +// be/be_visitor_interface/interface_cs.cpp:60 + +// Traits specializations for EndpointPolicy::IIOPEndpointValue. + +EndpointPolicy::IIOPEndpointValue_ptr +TAO::Objref_Traits<EndpointPolicy::IIOPEndpointValue>::duplicate ( + EndpointPolicy::IIOPEndpointValue_ptr p + ) +{ + return EndpointPolicy::IIOPEndpointValue::_duplicate (p); +} + +void +TAO::Objref_Traits<EndpointPolicy::IIOPEndpointValue>::release ( + EndpointPolicy::IIOPEndpointValue_ptr p + ) +{ + CORBA::release (p); +} + +EndpointPolicy::IIOPEndpointValue_ptr +TAO::Objref_Traits<EndpointPolicy::IIOPEndpointValue>::nil (void) +{ + return EndpointPolicy::IIOPEndpointValue::_nil (); +} + +::CORBA::Boolean +TAO::Objref_Traits<EndpointPolicy::IIOPEndpointValue>::marshal ( + const EndpointPolicy::IIOPEndpointValue_ptr p, + TAO_OutputCDR & cdr + ) +{ + return ::CORBA::Object::marshal (p, cdr); +} + +EndpointPolicy::IIOPEndpointValue::IIOPEndpointValue (void) +{} + +EndpointPolicy::IIOPEndpointValue::~IIOPEndpointValue (void) +{} + +EndpointPolicy::IIOPEndpointValue_ptr +EndpointPolicy::IIOPEndpointValue::_narrow ( + ::CORBA::Object_ptr _tao_objref + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + return IIOPEndpointValue::_duplicate ( + dynamic_cast<IIOPEndpointValue_ptr> (_tao_objref) + ); +} + +EndpointPolicy::IIOPEndpointValue_ptr +EndpointPolicy::IIOPEndpointValue::_unchecked_narrow ( + ::CORBA::Object_ptr _tao_objref + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + return IIOPEndpointValue::_duplicate ( + dynamic_cast<IIOPEndpointValue_ptr> (_tao_objref) + ); +} + +EndpointPolicy::IIOPEndpointValue_ptr +EndpointPolicy::IIOPEndpointValue::_duplicate (IIOPEndpointValue_ptr obj) +{ + if (! CORBA::is_nil (obj)) + { + obj->_add_ref (); + } + + return obj; +} + +void +EndpointPolicy::IIOPEndpointValue::_tao_release (IIOPEndpointValue_ptr obj) +{ + CORBA::release (obj); +} + +::CORBA::Boolean +EndpointPolicy::IIOPEndpointValue::_is_a ( + const char *value + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + if ( + !ACE_OS::strcmp ( + value, + "IDL:EndpointPolicy/EndpointValueBase:1.0" + ) || + !ACE_OS::strcmp ( + value, + "IDL:EndpointPolicy/IIOPEndpointValue:1.0" + ) || + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/LocalObject:1.0" + ) || + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/Object:1.0" + ) + ) + { + return true; // success using local knowledge + } + else + { + return false; + } +} + +const char* EndpointPolicy::IIOPEndpointValue::_interface_repository_id (void) const +{ + return "IDL:EndpointPolicy/IIOPEndpointValue:1.0"; +} + +::CORBA::Boolean +EndpointPolicy::IIOPEndpointValue::marshal (TAO_OutputCDR &) +{ + return false; +} diff --git a/TAO/tao/EndpointPolicy/IIOPEndpointValueC.h b/TAO/tao/EndpointPolicy/IIOPEndpointValueC.h new file mode 100644 index 00000000000..2ccc247bd8e --- /dev/null +++ b/TAO/tao/EndpointPolicy/IIOPEndpointValueC.h @@ -0,0 +1,230 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// be/be_codegen.cpp:155 + +#ifndef _TAO_IDL_IIOPENDPOINTVALUEC_H_ +#define _TAO_IDL_IIOPENDPOINTVALUEC_H_ + +#include /**/ "ace/pre.h" + + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" +#include "tao/ORB.h" +#include "tao/SystemException.h" +#include "tao/Environment.h" +#include "tao/Object.h" +#include "tao/Objref_VarOut_T.h" +#include "tao/Versioned_Namespace.h" + +#include "tao/EndpointPolicy/EndpointPolicyC.h" + +#if defined (TAO_EXPORT_MACRO) +#undef TAO_EXPORT_MACRO +#endif +#define TAO_EXPORT_MACRO TAO_EndpointPolicy_Export + +// TAO_IDL - Generated from +// be/be_visitor_module/module_ch.cpp:49 + +namespace EndpointPolicy +{ + + // TAO_IDL - Generated from + // be/be_interface.cpp:646 + +#if !defined (_ENDPOINTPOLICY_IIOPENDPOINTVALUE__VAR_OUT_CH_) +#define _ENDPOINTPOLICY_IIOPENDPOINTVALUE__VAR_OUT_CH_ + + class IIOPEndpointValue; + typedef IIOPEndpointValue *IIOPEndpointValue_ptr; + + typedef + TAO_Objref_Var_T< + IIOPEndpointValue + > + IIOPEndpointValue_var; + + typedef + TAO_Objref_Out_T< + IIOPEndpointValue + > + IIOPEndpointValue_out; + +#endif /* end #if !defined */ + + // TAO_IDL - Generated from + // be/be_visitor_interface/interface_ch.cpp:54 + +#if !defined (_ENDPOINTPOLICY_IIOPENDPOINTVALUE_CH_) +#define _ENDPOINTPOLICY_IIOPENDPOINTVALUE_CH_ + + class TAO_EndpointPolicy_Export IIOPEndpointValue + : public virtual ::EndpointPolicy::EndpointValueBase + { + public: + typedef IIOPEndpointValue_ptr _ptr_type; + typedef IIOPEndpointValue_var _var_type; + + // The static operations. + static IIOPEndpointValue_ptr _duplicate (IIOPEndpointValue_ptr obj); + + static void _tao_release (IIOPEndpointValue_ptr obj); + + static IIOPEndpointValue_ptr _narrow ( + ::CORBA::Object_ptr obj + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ); + + static IIOPEndpointValue_ptr _unchecked_narrow ( + ::CORBA::Object_ptr obj + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ); + + static IIOPEndpointValue_ptr _nil (void) + { + return static_cast<IIOPEndpointValue_ptr> (0); + } + + + + // TAO_IDL - Generated from + // be/be_visitor_operation/operation_ch.cpp:46 + + virtual char * host ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) = 0; + + // TAO_IDL - Generated from + // be/be_visitor_operation/operation_ch.cpp:46 + + virtual void host ( + const char * host + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) = 0; + + // TAO_IDL - Generated from + // be/be_visitor_operation/operation_ch.cpp:46 + + virtual ::CORBA::UShort port ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) = 0; + + // TAO_IDL - Generated from + // be/be_visitor_operation/operation_ch.cpp:46 + + virtual void port ( + ::CORBA::UShort port + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) = 0; + + // TAO_IDL - Generated from + // be/be_visitor_interface/interface_ch.cpp:210 + + virtual ::CORBA::Boolean _is_a ( + const char *type_id + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ); + + virtual const char* _interface_repository_id (void) const; + virtual ::CORBA::Boolean marshal (TAO_OutputCDR &cdr); + + protected: + // Abstract or local interface only. + IIOPEndpointValue (void); + + virtual ~IIOPEndpointValue (void); + + private: + // Private and unimplemented for concrete interfaces. + IIOPEndpointValue (const IIOPEndpointValue &); + + void operator= (const IIOPEndpointValue &); + }; + +#endif /* end #if !defined */ + +// TAO_IDL - Generated from +// be/be_visitor_module/module_ch.cpp:78 + +} // module EndpointPolicy + +// TAO_IDL - Generated from +// be/be_visitor_traits.cpp:62 +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + + + +// Traits specializations. +namespace TAO +{ + +#if !defined (_ENDPOINTPOLICY_IIOPENDPOINTVALUE__TRAITS_) +#define _ENDPOINTPOLICY_IIOPENDPOINTVALUE__TRAITS_ + + template<> + struct TAO_EndpointPolicy_Export Objref_Traits< ::EndpointPolicy::IIOPEndpointValue> + { + static ::EndpointPolicy::IIOPEndpointValue_ptr duplicate ( + ::EndpointPolicy::IIOPEndpointValue_ptr + ); + static void release ( + ::EndpointPolicy::IIOPEndpointValue_ptr + ); + static ::EndpointPolicy::IIOPEndpointValue_ptr nil (void); + static ::CORBA::Boolean marshal ( + const ::EndpointPolicy::IIOPEndpointValue_ptr p, + TAO_OutputCDR & cdr + ); + }; + +#endif /* end #if !defined */ +} +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* ifndef */ diff --git a/TAO/tao/EndpointPolicy/IIOPEndpointValue_i.cpp b/TAO/tao/EndpointPolicy/IIOPEndpointValue_i.cpp new file mode 100644 index 00000000000..299f53bcb28 --- /dev/null +++ b/TAO/tao/EndpointPolicy/IIOPEndpointValue_i.cpp @@ -0,0 +1,119 @@ +// -*- C++ -*- + +#include "tao/EndpointPolicy/IIOPEndpointValue_i.h" +#include "tao/IIOP_Endpoint.h" +#include "tao/IIOP_Acceptor.h" +#include "ace/OS_NS_strings.h" + +ACE_RCSID (IIOPEndpointValue, + IIOPEndpointValue_i, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +IIOPEndpointValue_i::IIOPEndpointValue_i () + :host_(CORBA::string_dup("")), + port_(0) +{ +} + +IIOPEndpointValue_i::IIOPEndpointValue_i (const char *host, + CORBA::UShort port) + :host_(host), + port_(port) +{ +} + +IIOPEndpointValue_i::~IIOPEndpointValue_i (void) +{ +} + +CORBA::Boolean +IIOPEndpointValue_i::is_equivalent (const TAO_Endpoint * endpoint) const +{ + const TAO_IIOP_Endpoint *iep = + dynamic_cast<const TAO_IIOP_Endpoint *>(endpoint); + if (iep == 0) + return 0; + return this->is_equivalent_i(iep->port(), iep->host()); +} + +CORBA::Boolean +IIOPEndpointValue_i::is_equivalent_i (CORBA::UShort port, + const char *host) const +{ + return + this->port_ == port && ACE_OS::strcasecmp(host, this->host_.in()) == 0; +} + +CORBA::Boolean +IIOPEndpointValue_i::validate_acceptor(TAO_Acceptor * acceptor) const +{ + TAO_IIOP_Acceptor *iacc = dynamic_cast<TAO_IIOP_Acceptor *>(acceptor); + if (iacc == 0) + return 0; + +#if 0 + // @@@ mesnier_p@ociweb.com @@@ + // This test was originally intended to validate that there is an + // acceptor available which supports the target endpoint. However, + // variablility in the definition of a "hostname" makes this hard + // to determine, without adding more overhead, probably to the + // IIOP_Acceptor class. + // I'm not sure this level of validation is really required, so + // for now I'm just leaving it out. + + const ACE_INET_Addr * eps = iacc->endpoints (); + CORBA::ULong eps_count = iacc->endpoint_count (); + for (CORBA::ULong eps_idx = 0; eps_idx < eps_count; ++ eps_idx) + { + char hostname[513]; + eps[eps_idx].get_host_name(hostname,512); + if (this->is_equivalent_i(eps[eps_idx].get_port_number(),hostname)) + return 1; + } + return 0; +#else + return 1; +#endif /* 0 */ +} + +char * +IIOPEndpointValue_i::host ( void ) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return CORBA::string_dup (this->host_.in()); +} + +void +IIOPEndpointValue_i::host (const char *h) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->host_ = h; +} + +CORBA::UShort +IIOPEndpointValue_i::port (void) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return this->port_; +} + +void +IIOPEndpointValue_i::port (CORBA::UShort p ) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->port_ = p; +} + + +CORBA::ULong +IIOPEndpointValue_i::protocol_tag (void) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return IOP::TAG_INTERNET_IOP; +} + + + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/EndpointPolicy/IIOPEndpointValue_i.h b/TAO/tao/EndpointPolicy/IIOPEndpointValue_i.h new file mode 100644 index 00000000000..254841b7954 --- /dev/null +++ b/TAO/tao/EndpointPolicy/IIOPEndpointValue_i.h @@ -0,0 +1,115 @@ +// -*- C++ -*- +//============================================================================= +/** + * @file IIOPEndpointValue_i.h + * + * $Id$ + * + * Implementation of the IIOP-Specific endpoint policy value + * + * @author Phil Mesnier <mesnier_p@ociweb.com> + */ +//============================================================================= + +#ifndef _TAO_IIOP_ENDPOINT_VALUE_I_H_ +#define _TAO_IIOP_ENDPOINT_VALUE_I_H_ + +#include /**/ "ace/pre.h" + +#include "tao/EndpointPolicy/EndpointPolicy_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/EndpointPolicy/IIOPEndpointValueC.h" +#include "tao/EndpointPolicy/Endpoint_Value_Impl.h" +#include "tao/LocalObject.h" + + +// This is to remove "inherits via dominance" warnings from MSVC. +// MSVC is being a little too paranoid. +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/** + * @class IIOPEndpointValue_i + * + * @brief Implementation of the IIOP-Specific endpoint policy value + * + * This class is used by applications to create an instance of an + * endpoint value for constructing an EndpointPolicy. While the + * endpoint policy argument is of type + * EndpointPolicy::EndpointValueBase, always use instances of this + * type so that the endpoint policy framework is able to call the + * equivalency test method. + */ + +class TAO_EndpointPolicy_Export IIOPEndpointValue_i : + public virtual EndpointPolicy::IIOPEndpointValue, + public virtual TAO_Endpoint_Value_Impl, + public virtual CORBA::LocalObject +{ +public: + + /// Default Constructor. It is acceptable to create an empty value + /// and modify the state via the attributes. + IIOPEndpointValue_i (); + + /// Value initializing constructor, this is typically for creation + /// of one-off values. + IIOPEndpointValue_i (const char *host, + CORBA::UShort port); + + virtual ~IIOPEndpointValue_i (void); + + /// The is_equivalent test is used by the endpoint policy framework + /// for testing if a target endpoint is the same as the endpoint + /// defined by this value. + CORBA::Boolean is_equivalent (const TAO_Endpoint * endpoint) const; + + /// The validate_acceptor method is used during EndpointPolicy + /// creation to ensure there is an acceptor which provides this + /// endpoint. Currently the test is limited to only validating that + /// the acceptor's tag is consistent, as the interfaces do not yet + /// exist for examining the eventual TAO_Endpoint values the + /// acceptor would produce. + CORBA::Boolean validate_acceptor (TAO_Acceptor *) const; + + /// Host attribute get/set operators. + char * host ( void ) + ACE_THROW_SPEC ((CORBA::SystemException)); + void host (const char *) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /// Port attribute get/set operators. + CORBA::UShort port (void) + ACE_THROW_SPEC ((CORBA::SystemException)); + void port (CORBA::UShort ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Protocol tag get operator, inherited from EndpointValueBase + CORBA::ULong protocol_tag (void) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + CORBA::Boolean is_equivalent_i (CORBA::UShort port, const char *host) const; + + CORBA::String_var host_; + CORBA::UShort port_; +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#include /**/ "ace/post.h" + +#endif /* _TAO_IIOP_ENDPOINT_VALUE_I_H_ */ diff --git a/TAO/tao/EndpointPolicy/TAO_EndpointPolicy.pc.in b/TAO/tao/EndpointPolicy/TAO_EndpointPolicy.pc.in new file mode 100644 index 00000000000..aae5ef22117 --- /dev/null +++ b/TAO/tao/EndpointPolicy/TAO_EndpointPolicy.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: TAO_EndpointPolicy +Description: TAO EndpointPolicy Library +Requires: TAO_PI, TAO_PortableServer, TAO +Version: @VERSION@ +Libs: -L${libdir} -lTAO_EndpointPolicy +Cflags: -I${includedir} diff --git a/TAO/tao/GIOP_Fragmentation_Strategy.cpp b/TAO/tao/GIOP_Fragmentation_Strategy.cpp new file mode 100644 index 00000000000..d10348117a6 --- /dev/null +++ b/TAO/tao/GIOP_Fragmentation_Strategy.cpp @@ -0,0 +1,9 @@ +// $Id$ + + +#include "tao/GIOP_Fragmentation_Strategy.h" + + +TAO_GIOP_Fragmentation_Strategy::~TAO_GIOP_Fragmentation_Strategy (void) +{ +} diff --git a/TAO/tao/GIOP_Fragmentation_Strategy.h b/TAO/tao/GIOP_Fragmentation_Strategy.h new file mode 100644 index 00000000000..6ffc058cb6a --- /dev/null +++ b/TAO/tao/GIOP_Fragmentation_Strategy.h @@ -0,0 +1,85 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file GIOP_Fragmentation_Strategy.h + * + * $Id$ + * + * @author Ossama Othman <ossama@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef TAO_GIOP_FRAGMENTATION_STRATEGY_H +#define TAO_GIOP_FRAGMENTATION_STRATEGY_H + +#include /**/ "ace/pre.h" + +#include "tao/TAO_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/orbconf.h" +#include "ace/CDR_Base.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +class TAO_OutputCDR; + +/** + * @class TAO_GIOP_Fragmenation_Strategy + * + * @brief Abstract base class that defines TAO fragmentation strategy + * interface. + * + * GIOP message fragmentation is deferred to a fragmentation strategy + */ +class TAO_Export TAO_GIOP_Fragmentation_Strategy +{ +public: + + /// Constructor + TAO_GIOP_Fragmentation_Strategy (void) {} + + /// Destructor. + virtual ~TAO_GIOP_Fragmentation_Strategy (void); + + /// Fragment the (potentially partially) encoded GIOP message. + /** + * Fragmentation the contents of the CDR output stream @a cdr into + * smaller chunks of data of size that fits within the configured + * ORB fragmentation threshold, and send each fragment "over the + * wire." + * + * @note Fragmentation will only occur if the CDR stream length will + * surpass the configured fragmentation threshold when + * marshaling the pending set of data. + * + * @param cdr Output CDR stream. + * @param pending_alignment Size of alignment boundary for next data + * to be marshaled (e.g. 4 for a + * CORBA::ULong). + * @param pending_length Size of next data to be marshaled (e.g. 2 + * for a CORBA::UShort). + * + * @return Zero on success. + */ + virtual int fragment (TAO_OutputCDR & cdr, + ACE_CDR::ULong pending_alignment, + ACE_CDR::ULong pending_length) = 0; + +private: + + // Disallow copying and assignment. + TAO_GIOP_Fragmentation_Strategy (TAO_GIOP_Fragmentation_Strategy const &); + void operator= (TAO_GIOP_Fragmentation_Strategy const &); + +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_GIOP_FRAGMENTATION_STRATEGY_H */ diff --git a/TAO/tao/Generic_Sequence_T.h b/TAO/tao/Generic_Sequence_T.h new file mode 100644 index 00000000000..a9786082b5d --- /dev/null +++ b/TAO/tao/Generic_Sequence_T.h @@ -0,0 +1,319 @@ +#ifndef guard_generic_sequence_hpp +#define guard_generic_sequence_hpp +/** + * @file + * + * @brief Implement the generic version of CORBA sequences. + * + * All CORBA sequences are based on this class template. The behavior + * of this class is controlled by two sets of traits. First, the + * ALLOCATION_TRAITS control how buffers are allocated and + * initialized. Since this is where most of the variation between + * unbounded and bounded sequences is found, the ALLOCATION_TRAITS can + * be thought as the bounded aspect of the sequence. + * + * Second, the element traits control how are elements copied, + * initialized and released. Value-like types, such as integers and + * structures, have trivial initialization and release requirements + * (their constructor/destructors do the job!) But reference-like + * types, such as strings and object references, have more complicated + * requirements. This is yet another aspect of the sequences, we can + * call it the "element copy semantics" or something. + * + * Oh, and let us not forget the type that the sequences encapsulates. + * + * The intent is not for sequences to simply derive or instantiate this + * type. Instead, different each sequence type is written using + * composition. They instantiate a generic sequence with the correct + * traits, and implement the adapt the generic sequence interface to + * whatever requirements the spec may impose. For example, replace() + * has different number of arguments in bounded vs. unbounded + * sequences, and operator[] returns different types depending on the + * underlying type of the sequence. + * + * This class offers the strong exception-safety guarantee, as long as + * destructors and release operations do not throw. + * + * This class is not thread-safe. Thread-safe collections are mostly + * useless anyways. + * + * In general the performance characteristics of the class depends on + * the traits. Obviously, they can only be expressed on the number of + * element constructor and destructor calls. If the constructor takes + * O(K) time that is not the sequence fault! + * + * All accessors are O(1), single-element modifiers are O(1), multiple + * element modifiers are O(n + m) where n is the number of elements + * originally in the sequence, and m is the number of elements left in + * the sequence afterwards. + * + * Beware: + * - get_buffer(true) may modify multiple elements + * - length(CORBA::ULong) may modify multiple elements! + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Range_Checking_T.h" + +#include <algorithm> + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename T, + class ALLOCATION_TRAITS, + class ELEMENT_TRAITS> +class generic_sequence +{ +public: + typedef T value_type; + typedef ALLOCATION_TRAITS allocation_traits; + typedef ELEMENT_TRAITS element_traits; + typedef range_checking<value_type,true> range; + + /// Default constructor. + generic_sequence() + : maximum_(allocation_traits::default_maximum()) + , length_(0) + , buffer_(allocation_traits::default_buffer_allocation()) + , release_(true) + { + } + + /// Constructor with control of ownership. + explicit generic_sequence(CORBA::ULong maximum) + : maximum_(maximum) + , length_(0) + , buffer_(allocbuf(maximum_)) + , release_(true) + { + } + + generic_sequence( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release) + : maximum_(maximum) + , length_(length) + , buffer_(data) + , release_(release) + { + } + + /// Copy constructor + generic_sequence(generic_sequence const & rhs) + : maximum_(0) + , length_(0) + , buffer_(0) + , release_(false) + { + generic_sequence tmp(rhs.maximum_); + tmp.length_ = rhs.length_; + element_traits::copy_range( + rhs.buffer_, rhs.buffer_ + rhs.length_, tmp.buffer_); + swap(tmp); + } + + /// Assignment operator + generic_sequence & operator=(generic_sequence const & rhs) + { + generic_sequence tmp(rhs); + swap(tmp); + return * this; + } + + /// Destructor. + ~generic_sequence() + { + if (release_) + { + freebuf(buffer_); + } + } + + /// Return the maximum length of the sequence + inline CORBA::ULong maximum() const + { + return maximum_; + } + + /// Returns the state of the sequence release flag. + inline CORBA::Boolean release() const + { + return release_; + } + + /// Returns the length of the sequence + inline CORBA::ULong length() const + { + return length_; + } + + /// Set a new length for the sequence + void length(CORBA::ULong length) + { + if (length <= maximum_ || length <= length_) + { + if (length_ < length) + { + // TODO This code does not provide the strong-exception + // guarantee, but it does provide the weak-exception + // guarantee. The problem would appear when + // initialize_range() raises an exception after several + // elements have been modified. One could argue that + // this problem is irrelevant, as the elements already + // modified are unreachable to conforming applications. + element_traits::initialize_range( + buffer_ + length_, buffer_ + length); + } + length_ = length; + return; + } + + generic_sequence tmp(length); tmp.length_ = length; + element_traits::copy_range( + buffer_, buffer_ + length_, tmp.buffer_); + element_traits::initialize_range( + tmp.buffer_ + length_, tmp.buffer_ + length); + + swap(tmp); + } + + /// Get a const element from the sequence + value_type const & operator[](CORBA::ULong i) const + { + range::check(i, length_, maximum_, "operator[]() const"); + return buffer_[i]; + } + + /// Get an element from the sequence + value_type & operator[](CORBA::ULong i) + { + range::check(i, length_, maximum_, "operator[]() non-const"); + return buffer_[i]; + } + + /** + * Allows the buffer underlying a sequence to be replaced. The + * parameters to replace() are identical in type, order, and purpose + * to those for the <T *data> constructor for the sequence. + */ + void replace( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release) + { + generic_sequence tmp(maximum, length, data, release); + swap(tmp); + } + + /** + * This function allows read-only access to the sequence buffer. + * The sequence returns its buffer, allocating one of one has not + * yet been allocated. No direct modification of the returned + * buffer by the caller is permitted. + */ + value_type const * get_buffer() const + { + if (buffer_ == 0) + { + buffer_ = allocbuf(maximum_); + } + return buffer_; + } + + /// Allows read-write access to the underlying buffer. + /** + * If @a orphan is FALSE the sequence returns a pointer to its buffer, + * allocating one if it has not yet done so. The number of elements in the + * buffer can be determined from the sequence length() accessor. + * + * If the @a orphan argument to get_buffer() is FALSE, the sequence + * maintains ownership of the underlying buffer. Elements in the + * returned buffer may be directly replaced by the caller. For + * sequences of strings, wide strings, and object references, the + * caller must use the sequence <release> accessor to determine + * whether elements should be freed (using <string_free>, + * <wstring_free>, or <CORBA::release> for strings, wide strings, + * and object references, respective) before being directly assigned + * to. + * + * If the @a orphan argument to @a get_buffer is TRUE, the sequence + * yields ownership of the buffer to the caller. If @a orphan is + * TRUE and the sequence does not own its buffer (i.e., its + * release_ flag is FALSE), the return value is a null pointer. If + * the buffer is taken from the sequence using this form of + * get_buffer(), the sequence reverts to the same state it would + * have if constructed using its default constructor. The caller + * becomes responsible for eventually freeing each element of the + * returned buffer (for strings, wide string, and object + * references), and then freeing the returned buffer itself using + * freebuf(). + */ + value_type * get_buffer(CORBA::Boolean orphan) + { + if (orphan && !release_) + { + return 0; + } + if (buffer_ == 0) + { + buffer_ = allocbuf(maximum_); + } + if (!orphan) + { + return buffer_; + } + + generic_sequence tmp; + swap(tmp); + tmp.release_ = false; + + return tmp.buffer_; + } + + void swap(generic_sequence & rhs) throw() + { + std::swap(maximum_, rhs.maximum_); + std::swap(length_, rhs.length_); + std::swap(buffer_, rhs.buffer_); + std::swap(release_, rhs.release_); + } + + static value_type * allocbuf(CORBA::ULong maximum) + { + return allocation_traits::allocbuf(maximum); + } + + static void freebuf(value_type * buffer) + { + allocation_traits::freebuf(buffer); + } + +private: + /// The maximum number of elements the buffer can contain. + CORBA::ULong maximum_; + /// The current number of elements in the buffer. + CORBA::ULong length_; + /// The buffer with all the elements + mutable value_type * buffer_; + /// If true then the sequence should release the buffer when it is + /// destroyed. + CORBA::Boolean release_; +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_generic_sequence_hpp diff --git a/TAO/tao/Incoming_Message_Stack.cpp b/TAO/tao/Incoming_Message_Stack.cpp new file mode 100644 index 00000000000..2d5627fd3d5 --- /dev/null +++ b/TAO/tao/Incoming_Message_Stack.cpp @@ -0,0 +1,11 @@ + +# include "tao/Incoming_Message_Stack.h" + +#if !defined (__ACE_INLINE__) +# include "tao/Incoming_Message_Stack.inl" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID (tao, + Incoming_Message_Stack, + "$Id$") + diff --git a/TAO/tao/Incoming_Message_Stack.inl b/TAO/tao/Incoming_Message_Stack.inl new file mode 100755 index 00000000000..fd13e03a54e --- /dev/null +++ b/TAO/tao/Incoming_Message_Stack.inl @@ -0,0 +1,63 @@ +// -*- C++ -*- +// +//$Id$ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/************************************************************************/ +// Methods for TAO_Incoming_Message_Stack +/************************************************************************/ +namespace TAO +{ +ACE_INLINE +Incoming_Message_Stack::Incoming_Message_Stack() +: top_(0) +{ +} + +ACE_INLINE +Incoming_Message_Stack::~Incoming_Message_Stack() +{ + // Delete all the nodes left behind + TAO_Queued_Data *del = 0; + + while (this->pop (del) != -1) + { + TAO_Queued_Data::release (del); + } +} + +ACE_INLINE void +Incoming_Message_Stack::push(TAO_Queued_Data *data) +{ + data->next_ = this->top_; + this->top_ = data; +} + + + /* @return 0 for Ok, -1 for error */ +ACE_INLINE int +Incoming_Message_Stack::pop (TAO_Queued_Data* &data) +{ + if (this->top_ == 0) + return -1; + + data = this->top_; + this->top_ = data->next_; + + return 0; +} + +ACE_INLINE int +Incoming_Message_Stack::top (TAO_Queued_Data* &data) +{ + if (this->top_ == 0) + return -1; + + data = this->top_; + + return 0; +} + +} /* namespace TAO */ +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/LF_Multi_Event.cpp b/TAO/tao/LF_Multi_Event.cpp new file mode 100644 index 00000000000..c0252cf1bab --- /dev/null +++ b/TAO/tao/LF_Multi_Event.cpp @@ -0,0 +1,118 @@ +#include "tao/LF_Multi_Event.h" +#include "tao/Connection_Handler.h" +#include "ace/OS_Memory.h" + +ACE_RCSID(tao, + LF_Multi_Event, + "$Id$") + +TAO_LF_Multi_Event::TAO_LF_Multi_Event (void) + : TAO_LF_Event (), + events_ (0), + winner_ (0) +{ +} + +TAO_LF_Multi_Event::~TAO_LF_Multi_Event (void) +{ + while (this->events_ != 0) + { + Event_Node *n = this->events_->next_; + delete this->events_; + this->events_ = n; + } +} + +int +TAO_LF_Multi_Event::bind (TAO_LF_Follower *follower) +{ + if (this->TAO_LF_Event::bind(follower) == -1) + { + return -1; + } + + for (Event_Node *n = this->events_; n != 0; n = n->next_) + if (n->ptr_->bind(follower) == -1) + { + return -1; + } + return 0; +} + +int +TAO_LF_Multi_Event::unbind (void) +{ + if (this->TAO_LF_Event::unbind() == -1) + { + return -1; + } + + for (Event_Node *n = this->events_; n != 0; n = n->next_) + if (n->ptr_->unbind() == -1) + { + return -1; + } + return 0; +} + + +void +TAO_LF_Multi_Event::add_event (TAO_Connection_Handler *ev) +{ + Event_Node *node = 0; + ACE_NEW (node, Event_Node); + node->next_ = this->events_; + node->ptr_ = ev; + + this->events_ = node; +} + +TAO_Connection_Handler* +TAO_LF_Multi_Event::winner (void) +{ + return this->winner_; +} + +TAO_Transport * +TAO_LF_Multi_Event::base_transport (void) +{ + return (this->events_ == 0) ? 0 : this->events_->ptr_->transport(); +} + +int +TAO_LF_Multi_Event::successful (void) const +{ + for (Event_Node *n = this->events_; n != 0; n = n->next_) + if (n->ptr_->successful() == 1) + { + this->winner_ = n->ptr_; + return 1; + } + return 0; +} + +int +TAO_LF_Multi_Event::error_detected (void) const +{ + int result = 1; + for (Event_Node *n = this->events_; n != 0; n = n->next_) + if (n->ptr_->error_detected () == 0) + result = 0; + return result; +} + +void +TAO_LF_Multi_Event::state_changed_i (int ) +{ + // no-op +} + +int +TAO_LF_Multi_Event::is_state_final (void) +{ + int result = 1; + for (Event_Node *n = this->events_; n != 0; n = n->next_) + if (!n->ptr_->is_state_final () == 0) + result = 0; + return result; +} diff --git a/TAO/tao/LF_Multi_Event.h b/TAO/tao/LF_Multi_Event.h new file mode 100644 index 00000000000..11727f8ab16 --- /dev/null +++ b/TAO/tao/LF_Multi_Event.h @@ -0,0 +1,97 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file LF_Multi_Event.h + * + * $Id$ + * + * @author Phil Mesnier <mesnier_p@ociweb.com> + */ +//============================================================================= + +#ifndef TAO_LF_MULTI_EVENT_H +#define TAO_LF_MULTI_EVENT_H + +#include /**/ "ace/pre.h" + +#include "tao/LF_Event.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +// Forward decls +class TAO_Connection_Handler; +class TAO_Transport; + +/** + * @class TAO_LF_Multi_Event + * + * @brief Use the Leader/Follower loop to wait for one specific event + * in the invocation path. + * + * Used by the parallel connection strategy for waiting on one of many + * connections. + */ +class TAO_Export TAO_LF_Multi_Event: public TAO_LF_Event +{ +public: + /// Constructor + TAO_LF_Multi_Event (void); + + /// Destructor + virtual ~TAO_LF_Multi_Event (void); + + /// propogate the follower to all the events in the collection. + virtual int bind (TAO_LF_Follower *follower); + + /// Unbind the follower from all the collected events. + virtual int unbind (void); + + /// Adds a handler to the collection + void add_event (TAO_Connection_Handler *ch); + + /// Returns the connection handler that caused the successful status + /// to be returned. + TAO_Connection_Handler *winner(void); + + /// Returns the transport associated with the first entry in the collection. + TAO_Transport *base_transport(void); + + //@{ + /// Return 1 if the condition was satisfied successfully, 0 if it + /// has not - This iterates over the list of attached events and + /// returns 1 if any of them return 1 from successful. + int successful (void) const; + + /// Return 1 if an error was detected while waiting for the + /// event - This iterates over the list of events and returns + /// 1 only if all of them return 1 from error_detected. + int error_detected (void) const; + + //@} +protected: + + /// Validate the state change + virtual void state_changed_i (int new_state); + + /// Check whether we have reached the final state.. + virtual int is_state_final (void); + +private: + + struct Event_Node { + TAO_Connection_Handler * ptr_; + Event_Node *next_; + }; + + struct Event_Node *events_; + + mutable TAO_Connection_Handler * winner_; + +}; + +#include /**/ "ace/post.h" + +#endif /* TAO_LF_Multi_EVENT_H */ diff --git a/TAO/tao/Messaging/ExceptionHolder_i.cpp b/TAO/tao/Messaging/ExceptionHolder_i.cpp new file mode 100644 index 00000000000..47ef03212b3 --- /dev/null +++ b/TAO/tao/Messaging/ExceptionHolder_i.cpp @@ -0,0 +1,95 @@ +// -*- C++ -*- +// $Id$ + +#include "tao/Messaging/ExceptionHolder_i.h" + +ACE_RCSID (Messaging, + ExceptionHolder_i, + "$Id$") + +#include "tao/Messaging/Messaging.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + ExceptionHolder::ExceptionHolder (void) : + data_ (0), + count_ (0) + { + } + + ExceptionHolder::ExceptionHolder ( + ::CORBA::Boolean is_system_exception, + ::CORBA::Boolean byte_order, + const ::CORBA::OctetSeq &marshaled_exception, + ::TAO::Exception_Data* data, + ::CORBA::ULong exceptions_count) : + ::OBV_Messaging::ExceptionHolder (is_system_exception, byte_order, marshaled_exception), + data_ (data), + count_ (exceptions_count) + { + } + + ExceptionHolder::~ExceptionHolder () + { + } + + void ExceptionHolder::raise_exception ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + { + TAO_Messaging_Helper::exception_holder_raise ( + this->data_, + this->count_, + this->marshaled_exception ().get_buffer (), + this->marshaled_exception ().length (), + this->byte_order (), + this->is_system_exception () + ACE_ENV_ARG_PARAMETER); + } + + void ExceptionHolder::raise_exception_with_list ( + const ::Dynamic::ExceptionList & ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + { + // todo convert exceptionlist to something we can really use. + this->raise_exception (ACE_ENV_SINGLE_ARG_PARAMETER); + } + + CORBA::ValueBase* + ExceptionHolder::_copy_value (void) + { + TAO::ExceptionHolder* ret_val = 0; + ACE_NEW_THROW_EX (ret_val, + ExceptionHolder, + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (0); + + // @todo According to the latest corba spec we should be able to + // pass this to the ExceptionHolder constructor but the TAO_IDL + // compiler doesn't seem to generate this. + ret_val->is_system_exception (this->is_system_exception ()); + ret_val->byte_order (this->byte_order ()); + ret_val->marshaled_exception (this->marshaled_exception ()); + + return ret_val; + } + + CORBA::ValueBase * + ExceptionHolderFactory::create_for_unmarshal ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + { + TAO::ExceptionHolder* ret_val = 0; + ACE_NEW_THROW_EX (ret_val, + ExceptionHolder, + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (0); + + return ret_val; + } + +} + +TAO_END_VERSIONED_NAMESPACE_DECL + diff --git a/TAO/tao/Messaging/ExceptionHolder_i.h b/TAO/tao/Messaging/ExceptionHolder_i.h new file mode 100644 index 00000000000..c77d78e1e28 --- /dev/null +++ b/TAO/tao/Messaging/ExceptionHolder_i.h @@ -0,0 +1,100 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file ExceptionHolder_i.h + * + * $Id$ + * + * @author Johnny Willemsen <jwillemsen@remedy.nl> + */ +//============================================================================= + +#ifndef TAO_MESSAGING_EXCEPTIONHOLDER_I_H +#define TAO_MESSAGING_EXCEPTIONHOLDER_I_H +#include /**/ "ace/pre.h" + +#include "tao/Messaging/messaging_export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/orbconf.h" + +#include "tao/Messaging/ExceptionHolderA.h" +#include "tao/Messaging/ExceptionHolderC.h" +#include "tao/Valuetype/ValueFactory.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace Dynamic +{ + class ExceptionList; +} + +namespace Messaging +{ + class ReplyHandler; +} + +namespace TAO +{ + struct Exception_Data; + + class TAO_Messaging_Export ExceptionHolder + : public virtual ::OBV_Messaging::ExceptionHolder, + public virtual ::CORBA::DefaultValueRefCountBase + { + public: + ExceptionHolder (void); + + ExceptionHolder ( + ::CORBA::Boolean is_system_exception, + ::CORBA::Boolean byte_order, + const ::CORBA::OctetSeq &marshaled_exception, + ::TAO::Exception_Data* data_, + ::CORBA::ULong exceptions_count + ); + + virtual void raise_exception (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); + + virtual void raise_exception_with_list ( + const ::Dynamic::ExceptionList & exc_list ACE_ENV_ARG_DECL_WITH_DEFAULTS + ); + + virtual CORBA::ValueBase* _copy_value (void); + + protected: + + virtual ~ExceptionHolder (void); + + private: + + TAO::Exception_Data* const data_; + CORBA::ULong const count_; + + }; + + /** + * @class ExceptionHolderFactory + * + * @brief OBV factory implementation. + * + * Factory for ExceptionHolder + */ + class TAO_Messaging_Export ExceptionHolderFactory : + public virtual CORBA::ValueFactoryBase + { + public: + virtual CORBA::ValueBase * create_for_unmarshal ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); + }; + +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" +#endif /* TAO_MESSAGING_EXCEPTIONHOLDER_I_H */ + diff --git a/TAO/tao/Null_Fragmentation_Strategy.cpp b/TAO/tao/Null_Fragmentation_Strategy.cpp new file mode 100644 index 00000000000..79ddde5c290 --- /dev/null +++ b/TAO/tao/Null_Fragmentation_Strategy.cpp @@ -0,0 +1,17 @@ +// $Id$ + + +#include "tao/Null_Fragmentation_Strategy.h" + + +TAO_Null_Fragmentation_Strategy::~TAO_Null_Fragmentation_Strategy (void) +{ +} + +int +TAO_Null_Fragmentation_Strategy::fragment (TAO_OutputCDR &, + ACE_CDR::ULong, + ACE_CDR::ULong) +{ + return 0; +} diff --git a/TAO/tao/Null_Fragmentation_Strategy.h b/TAO/tao/Null_Fragmentation_Strategy.h new file mode 100644 index 00000000000..ace58815d2d --- /dev/null +++ b/TAO/tao/Null_Fragmentation_Strategy.h @@ -0,0 +1,64 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Null_Fragmentation_Strategy.h + * + * $Id$ + * + * @author Ossama Othman <ossama@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef TAO_NULL_FRAGMENTATION_STRATEGY_H +#define TAO_NULL_FRAGMENTATION_STRATEGY_H + +#include /**/ "ace/pre.h" + +#include "tao/GIOP_Fragmentation_Strategy.h" +#include "ace/CDR_Base.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +class TAO_OutputCDR; + + +/** + * @class TAO_Null_Fragmenation_Strategy + * + * @brief Null GIOP message fragmentation strategy. + * + * No-op GIOP message fragmentation strategy. This strategy performs + * no GIOP fragmentation. + * + * @see TAO_GIOP_Fragmentation_Strategy + */ +class TAO_Null_Fragmentation_Strategy + : public TAO_GIOP_Fragmentation_Strategy +{ +public: + + TAO_Null_Fragmentation_Strategy (void) {} + virtual ~TAO_Null_Fragmentation_Strategy (void); + virtual int fragment (TAO_OutputCDR &, + ACE_CDR::ULong, + ACE_CDR::ULong); + +private: + + // Disallow copying and assignment. + TAO_Null_Fragmentation_Strategy (TAO_Null_Fragmentation_Strategy const &); + void operator= (TAO_Null_Fragmentation_Strategy const &); + +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_NULL_FRAGMENTATION_STRATEGY_H */ diff --git a/TAO/tao/Object_Reference_Sequence_Element_T.h b/TAO/tao/Object_Reference_Sequence_Element_T.h new file mode 100644 index 00000000000..7e9d04a4595 --- /dev/null +++ b/TAO/tao/Object_Reference_Sequence_Element_T.h @@ -0,0 +1,127 @@ +#ifndef guard_object_reference_sequence_element_hpp +#define guard_object_reference_sequence_element_hpp +/** + * @file + * + * @brief Implement the type returned by operator[] in object_reference + * sequences. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename obj_ref_traits> +class object_reference_sequence_element +{ +public: + typedef typename obj_ref_traits::object_type object_reference_type; + typedef object_reference_type * value_type; + typedef object_reference_type const * const_value_type; + typedef typename obj_ref_traits::object_type_var object_reference_var; + +private: + inline object_reference_sequence_element<obj_ref_traits> & pseudo_copy_swap( + object_reference_var & rhs) + { + if (release()) + { + obj_ref_traits::release(*element_); + } + *element_ = rhs._retn(); + return *this; + } + +public: + object_reference_sequence_element( + value_type & e, CORBA::Boolean release) + : element_(&e) + , release_(release) + { + } + + object_reference_sequence_element( + object_reference_sequence_element const & rhs) + : element_(rhs.element_) + , release_(rhs.release_) + { + } + + ~object_reference_sequence_element() + { + } + + object_reference_sequence_element & operator=( + object_reference_var const & rhs) + { + object_reference_var tmp(rhs); + return pseudo_copy_swap(tmp); + } + + object_reference_sequence_element & operator=( + object_reference_sequence_element const & rhs) + { + object_reference_var tmp(obj_ref_traits::duplicate(*rhs.element_)); + return pseudo_copy_swap(tmp); + } + + object_reference_sequence_element & operator=(value_type rhs) + { + object_reference_var tmp(rhs); + return pseudo_copy_swap(tmp); + } + + inline operator value_type() + { + return *element_; + } + + inline operator const_value_type() const + { + return *element_; + } + + inline value_type operator->() + { + return *element_; + } + + inline value_type operator->() const + { + return *element_; + } + + void swap(object_reference_sequence_element & rhs) + { + std::swap(element_, rhs.element_); + std::swap(release_, rhs.release_); + } + + inline CORBA::Boolean release() const + { + return release_; + } + +private: + // This function is not implemented + object_reference_sequence_element(); + +private: + value_type * element_; + CORBA::Boolean release_; +}; + +} // namespace details +} // namespace CORBA + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_object_reference_sequence_element_hpp diff --git a/TAO/tao/Object_Reference_Traits_Base_T.h b/TAO/tao/Object_Reference_Traits_Base_T.h new file mode 100644 index 00000000000..91eb1d44a18 --- /dev/null +++ b/TAO/tao/Object_Reference_Traits_Base_T.h @@ -0,0 +1,56 @@ +#ifndef object_reference_traits_base_hpp +#define object_reference_traits_base_hpp +/** + * @file + * + * @brief Base class for the object reference traits. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Objref_VarOut_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename object_t, typename object_t_var> +struct object_reference_traits_base +{ + typedef object_t object_type; + typedef object_type * value_type; + typedef object_type const * const_value_type; + typedef object_t_var object_type_var; + + inline static void release(object_type * object) + { + TAO::Objref_Traits<object_type>::release(object); + } + + inline static object_type * duplicate(object_type * object) + { + return TAO::Objref_Traits<object_type>::duplicate(object); + } + + inline static object_type * nil() + { + return TAO::Objref_Traits<object_type>::nil(); + } + + inline static object_type * default_initializer() + { + return nil(); + } +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // object_reference_traits_base_hpp diff --git a/TAO/tao/Object_Reference_Traits_T.h b/TAO/tao/Object_Reference_Traits_T.h new file mode 100644 index 00000000000..004c191fe28 --- /dev/null +++ b/TAO/tao/Object_Reference_Traits_T.h @@ -0,0 +1,83 @@ +#ifndef guard_object_reference_traits_hpp +#define guard_object_reference_traits_hpp +/** + * @file + * + * @brief Implement the element manipulation traits for object + * reference types. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "Object_Reference_Traits_Base_T.h" + +#include <algorithm> +#include <functional> + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<class object_t, class object_t_var, class derived> +struct object_reference_traits_decorator +{ + typedef object_t object_type; + typedef object_type * value_type; + typedef object_type const * const_value_type; + typedef object_t_var object_type_var; + + inline static void zero_range( + object_type ** begin, object_type ** end) + { + std::fill(begin, end, derived::nil()); + } + + inline static void initialize_range( + object_type ** begin, object_type ** end) + { + std::generate(begin, end, &derived::default_initializer); + } + + inline static void copy_range( + object_type ** begin, object_type ** end, object_type ** dst) + { + std::transform(begin, end, dst, &derived::duplicate); + } + + inline static void release_range( + object_type ** begin, object_type ** end) + { + std::for_each(begin, end, &derived::release); + } + + inline static object_type const * initialize_if_zero(object_type * & element) + { + if (element == 0) + { + element = derived::nil(); + } + return element; + } +}; + +template<typename object_t, typename object_t_var, bool dummy> +struct object_reference_traits + : public object_reference_traits_base<object_t, object_t_var> + , public object_reference_traits_decorator<object_t, object_t_var, object_reference_traits<object_t,object_t_var,dummy> > +{ + typedef object_t object_type; + typedef object_type * value_type; + typedef object_type const * const_value_type; + typedef object_t_var object_type_var; +}; + +} // namespace details +} // namespace CORBA + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_object_reference_traits_hpp diff --git a/TAO/tao/On_Demand_Fragmentation_Strategy.cpp b/TAO/tao/On_Demand_Fragmentation_Strategy.cpp new file mode 100644 index 00000000000..329b6940b80 --- /dev/null +++ b/TAO/tao/On_Demand_Fragmentation_Strategy.cpp @@ -0,0 +1,93 @@ +// $Id$ + + +#include "tao/On_Demand_Fragmentation_Strategy.h" + +#include "tao/Transport.h" +#include "tao/CDR.h" +#include "tao/Pluggable_Messaging.h" +#include "tao/debug.h" + +TAO_On_Demand_Fragmentation_Strategy::TAO_On_Demand_Fragmentation_Strategy ( + TAO_Transport * transport, + CORBA::ULong max_message_size) + : transport_ (transport) + , max_message_size_ (max_message_size) +{ +} + +TAO_On_Demand_Fragmentation_Strategy::~TAO_On_Demand_Fragmentation_Strategy ( + void) +{ +} + +int +TAO_On_Demand_Fragmentation_Strategy::fragment ( + TAO_OutputCDR & cdr, + ACE_CDR::ULong pending_alignment, + ACE_CDR::ULong pending_length) +{ + if (this->transport_ == 0) + return 0; // No transport. Can't fragment. + + CORBA::Octet major = 0; + CORBA::Octet minor = 0; + + (void) cdr.get_version (major, minor); + + // GIOP fragments are supported in GIOP 1.1 and better, but TAO only + // supports them in 1.2 or better since GIOP 1.1 fragments do not + // have a fragment message header. + if (major == 1 && minor < 2) + return -1; + + // Determine increase in CDR stream length if pending data is + // marshaled, taking into account the alignment for the given data + // type. + ACE_CDR::ULong const total_pending_length = + ACE_align_binary (cdr.total_length (), pending_alignment) + + pending_length; + + // Except for the last fragment, fragmented GIOP messages must + // always be aligned on an 8-byte boundary. Padding will be added + // if necessary. + ACE_CDR::ULong const aligned_length = + ACE_align_binary (total_pending_length, ACE_CDR::MAX_ALIGNMENT); + + // this->max_message_size_ must be >= 24 bytes, i.e.: + // 12 for GIOP protocol header + // + 4 for GIOP fragment header + // + 8 for payload (including padding) + // since fragments must be aligned on an 8 byte boundary. + if (aligned_length > this->max_message_size_) + { + // Pad the outgoing fragment if necessary. + if (cdr.align_write_ptr (ACE_CDR::MAX_ALIGNMENT) != 0) + return -1; + + // More fragments to come. + cdr.more_fragments (true); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - On_Demand_Fragmentation_Strategy::fragment, " + "sending fragment of size %d\n", + cdr.total_length ())); + + // Send the current CDR stream contents through the transport, + // making sure to switch on the the GIOP flags "more fragments" + // bit. + if (this->transport_->send_message (cdr, + cdr.stub (), + cdr.message_semantics (), + cdr.timeout ()) == -1 + + // Now generate a fragment header. + || this->transport_->messaging_object ()->generate_fragment_header ( + cdr, + cdr.request_id ()) != 0) + return -1; + } + + return 0; +} diff --git a/TAO/tao/On_Demand_Fragmentation_Strategy.h b/TAO/tao/On_Demand_Fragmentation_Strategy.h new file mode 100644 index 00000000000..8ac103f5bc7 --- /dev/null +++ b/TAO/tao/On_Demand_Fragmentation_Strategy.h @@ -0,0 +1,77 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file On_Demand_Fragmentation_Strategy.h + * + * $Id$ + * + * @author Ossama Othman <ossama@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef TAO_ONDEMAND_FRAGMENTATION_STRATEGY_H +#define TAO_ONDEMAND_FRAGMENTATION_STRATEGY_H + +#include /**/ "ace/pre.h" + +#include "tao/GIOP_Fragmentation_Strategy.h" +#include "ace/CDR_Base.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +class TAO_OutputCDR; +class TAO_Transport; + + +/** + * @class TAO_On_Demand_Fragmenation_Strategy + * + * @brief On Demand GIOP message fragmentation strategy. + * + * GIOP message fragmentation strategy that performs fragmentation + * when the size of the CDR stream will exceed the user configured + * threshold when marshaling the next/pending set of data. + * + * @see TAO_GIOP_Fragmentation_Strategy + */ +class TAO_On_Demand_Fragmentation_Strategy + : public TAO_GIOP_Fragmentation_Strategy +{ +public: + + /// Constructor. + TAO_On_Demand_Fragmentation_Strategy (TAO_Transport * transport, + ACE_CDR::ULong max_message_size); + + virtual ~TAO_On_Demand_Fragmentation_Strategy (void); + virtual int fragment (TAO_OutputCDR & cdr, + ACE_CDR::ULong pending_alignment, + ACE_CDR::ULong pending_length); + +private: + + // Disallow copying and assignment. + TAO_On_Demand_Fragmentation_Strategy (TAO_On_Demand_Fragmentation_Strategy const &); + void operator= (TAO_On_Demand_Fragmentation_Strategy const &); + +private: + + /// Pointer to the underlying transport object. + TAO_Transport * const transport_; + + /// Size of GIOP message at which fragmentation will occur. + ACE_CDR::ULong const max_message_size_; + +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_ONDEMAND_FRAGMENTATION_STRATEGY_H */ diff --git a/TAO/tao/PI/ClientRequestDetails.cpp b/TAO/tao/PI/ClientRequestDetails.cpp new file mode 100644 index 00000000000..969f8adfde2 --- /dev/null +++ b/TAO/tao/PI/ClientRequestDetails.cpp @@ -0,0 +1,77 @@ +#include "tao/PI/ClientRequestDetails.h" + +#if TAO_HAS_INTERCEPTORS == 1 + +#if !defined (__ACE_INLINE__) +#include "tao/PI/ClientRequestDetails.inl" +#endif /* defined INLINE */ + +ACE_RCSID (PI, + ClientRequestDetails, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + void + ClientRequestDetails::apply_policies ( + const CORBA::PolicyList &policies + ACE_ENV_ARG_DECL) + { + // Flag to check for duplicate ProcessingModePolicy objects in the list. + bool processing_mode_applied = false; + + const CORBA::ULong plen = policies.length (); + + for (CORBA::ULong i = 0; i < plen; ++i) + { + CORBA::Policy_var policy = CORBA::Policy::_duplicate (policies[i]); + + if (CORBA::is_nil (policy.in ())) + { + // Just ignore nil policies... + continue; + } + + // Obtain the PolicyType from the current Policy object. + const CORBA::PolicyType policy_type = + policy->policy_type (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + if (policy_type == PortableInterceptor::PROCESSING_MODE_POLICY_TYPE) + { + if (processing_mode_applied) + { + // This is the second time we have run into this policy type, + // and that is not allowed. + ACE_THROW (CORBA::INV_POLICY ()); + } + + // Flip the flag to true in order to trap any dupes. + processing_mode_applied = true; + + // Narrow the Policy to the ProcessingModePolicy interface. + PortableInterceptor::ProcessingModePolicy_var pm_policy = + PortableInterceptor::ProcessingModePolicy::_narrow ( + policy.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + // Save the value of the ProcessingModePolicy in our data member. + this->processing_mode_ = + pm_policy->processing_mode (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + } + else + { + // We don't support the current policy type. + ACE_THROW (CORBA::INV_POLICY ()); + } + } + } +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif /* TAO_HAS_INTERCEPTORS == 1 */ diff --git a/TAO/tao/PI/ProcessingModePolicyC.cpp b/TAO/tao/PI/ProcessingModePolicyC.cpp new file mode 100644 index 00000000000..6430acfb8a0 --- /dev/null +++ b/TAO/tao/PI/ProcessingModePolicyC.cpp @@ -0,0 +1,221 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// be/be_codegen.cpp:292 + + +#include "tao/PI/ProcessingModePolicyC.h" +#include "tao/AnyTypeCode/Null_RefCount_Policy.h" +#include "tao/AnyTypeCode/TypeCode_Constants.h" +#include "tao/AnyTypeCode/Alias_TypeCode_Static.h" +#include "tao/AnyTypeCode/Objref_TypeCode_Static.h" +#include "tao/CDR.h" +#include "tao/AnyTypeCode/Any.h" +#include "tao/AnyTypeCode/Any_Impl_T.h" +#include "ace/OS_NS_string.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + + + +// TAO_IDL - Generated from +// be/be_visitor_arg_traits.cpp:70 + +// Arg traits specializations. +namespace TAO +{ +} + + +// TAO_IDL - Generated from +// be/be_visitor_typecode/alias_typecode.cpp:50 + +static TAO::TypeCode::Alias<char const *, + ::CORBA::TypeCode_ptr const *, + TAO::Null_RefCount_Policy> + _tao_tc_PortableInterceptor_ProcessingMode ( + ::CORBA::tk_alias, + "IDL:PortableInterceptor/ProcessingMode:1.0", + "ProcessingMode", + &CORBA::_tc_short); + +namespace PortableInterceptor +{ + ::CORBA::TypeCode_ptr const _tc_ProcessingMode = + &_tao_tc_PortableInterceptor_ProcessingMode; +} + + + +// TAO_IDL - Generated from +// be/be_visitor_interface/interface_cs.cpp:60 + +// Traits specializations for PortableInterceptor::ProcessingModePolicy. + +PortableInterceptor::ProcessingModePolicy_ptr +TAO::Objref_Traits<PortableInterceptor::ProcessingModePolicy>::duplicate ( + PortableInterceptor::ProcessingModePolicy_ptr p + ) +{ + return PortableInterceptor::ProcessingModePolicy::_duplicate (p); +} + +void +TAO::Objref_Traits<PortableInterceptor::ProcessingModePolicy>::release ( + PortableInterceptor::ProcessingModePolicy_ptr p + ) +{ + ::CORBA::release (p); +} + +PortableInterceptor::ProcessingModePolicy_ptr +TAO::Objref_Traits<PortableInterceptor::ProcessingModePolicy>::nil (void) +{ + return PortableInterceptor::ProcessingModePolicy::_nil (); +} + +::CORBA::Boolean +TAO::Objref_Traits<PortableInterceptor::ProcessingModePolicy>::marshal ( + const PortableInterceptor::ProcessingModePolicy_ptr p, + TAO_OutputCDR & cdr + ) +{ + return ::CORBA::Object::marshal (p, cdr); +} + +PortableInterceptor::ProcessingModePolicy::ProcessingModePolicy (void) +{} + +PortableInterceptor::ProcessingModePolicy::~ProcessingModePolicy (void) +{} + +PortableInterceptor::ProcessingModePolicy_ptr +PortableInterceptor::ProcessingModePolicy::_narrow ( + ::CORBA::Object_ptr _tao_objref + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + return ProcessingModePolicy::_duplicate ( + dynamic_cast<ProcessingModePolicy_ptr> (_tao_objref) + ); +} + +PortableInterceptor::ProcessingModePolicy_ptr +PortableInterceptor::ProcessingModePolicy::_unchecked_narrow ( + ::CORBA::Object_ptr _tao_objref + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + return ProcessingModePolicy::_duplicate ( + dynamic_cast<ProcessingModePolicy_ptr> (_tao_objref) + ); +} + +PortableInterceptor::ProcessingModePolicy_ptr +PortableInterceptor::ProcessingModePolicy::_duplicate (ProcessingModePolicy_ptr obj) +{ + if (! ::CORBA::is_nil (obj)) + { + obj->_add_ref (); + } + + return obj; +} + +void +PortableInterceptor::ProcessingModePolicy::_tao_release (ProcessingModePolicy_ptr obj) +{ + ::CORBA::release (obj); +} + +::CORBA::Boolean +PortableInterceptor::ProcessingModePolicy::_is_a ( + const char *value + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + if ( + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/Policy:1.0" + ) || + !ACE_OS::strcmp ( + value, + "IDL:PortableInterceptor/ProcessingModePolicy:1.0" + ) || + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/LocalObject:1.0" + ) || + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/Object:1.0" + ) + ) + { + return true; // success using local knowledge + } + else + { + return false; + } +} + +const char* PortableInterceptor::ProcessingModePolicy::_interface_repository_id (void) const +{ + return "IDL:PortableInterceptor/ProcessingModePolicy:1.0"; +} + +::CORBA::Boolean +PortableInterceptor::ProcessingModePolicy::marshal (TAO_OutputCDR &) +{ + return false; +} + +// TAO_IDL - Generated from +// be/be_visitor_typecode/objref_typecode.cpp:76 + +static TAO::TypeCode::Objref<char const *, + TAO::Null_RefCount_Policy> + _tao_tc_PortableInterceptor_ProcessingModePolicy ( + ::CORBA::tk_local_interface, + "IDL:PortableInterceptor/ProcessingModePolicy:1.0", + "ProcessingModePolicy"); + +namespace PortableInterceptor +{ + ::CORBA::TypeCode_ptr const _tc_ProcessingModePolicy = + &_tao_tc_PortableInterceptor_ProcessingModePolicy; +} + + + + +TAO_END_VERSIONED_NAMESPACE_DECL + + diff --git a/TAO/tao/PI_Server/ServerRequestDetails.cpp b/TAO/tao/PI_Server/ServerRequestDetails.cpp new file mode 100644 index 00000000000..c06a9429d1d --- /dev/null +++ b/TAO/tao/PI_Server/ServerRequestDetails.cpp @@ -0,0 +1,77 @@ +#include "tao/PI_Server/ServerRequestDetails.h" + +#if TAO_HAS_INTERCEPTORS == 1 + +#if !defined (__ACE_INLINE__) +#include "tao/PI_Server/ServerRequestDetails.inl" +#endif /* defined INLINE */ + +ACE_RCSID (PI_Server, + ServerRequestDetails, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + void + ServerRequestDetails::apply_policies ( + const CORBA::PolicyList &policies + ACE_ENV_ARG_DECL) + { + // Flag to check for duplicate ProcessingModePolicy objects in the list. + bool processing_mode_applied = false; + + const CORBA::ULong plen = policies.length (); + + for (CORBA::ULong i = 0; i < plen; ++i) + { + CORBA::Policy_var policy = CORBA::Policy::_duplicate (policies[i]); + + if (CORBA::is_nil (policy.in ())) + { + // Just ignore nil policies... + continue; + } + + // Obtain the PolicyType from the current Policy object. + const CORBA::PolicyType policy_type = + policy->policy_type (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + if (policy_type == PortableInterceptor::PROCESSING_MODE_POLICY_TYPE) + { + if (processing_mode_applied) + { + // This is the second time we have run into this policy type, + // and that is not allowed. + ACE_THROW (CORBA::INV_POLICY ()); + } + + // Flip the flag to true in order to trap any dupes. + processing_mode_applied = true; + + // Narrow the Policy to the ProcessingModePolicy interface. + PortableInterceptor::ProcessingModePolicy_var pm_policy = + PortableInterceptor::ProcessingModePolicy::_narrow ( + policy.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + // Save the value of the ProcessingModePolicy in our data member. + this->processing_mode_ = + pm_policy->processing_mode (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + } + else + { + // We don't support the current policy type. + ACE_THROW (CORBA::INV_POLICY ()); + } + } + } +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif /* TAO_HAS_INTERCEPTORS == 1 */ diff --git a/TAO/tao/PortableServer/Acceptor_Filter_Factory.cpp b/TAO/tao/PortableServer/Acceptor_Filter_Factory.cpp new file mode 100644 index 00000000000..033aace13b3 --- /dev/null +++ b/TAO/tao/PortableServer/Acceptor_Filter_Factory.cpp @@ -0,0 +1,50 @@ +// @(#) $Id$ + +#include "tao/PortableServer/Acceptor_Filter_Factory.h" +#include "tao/PortableServer/Default_Acceptor_Filter.h" + +ACE_RCSID(PortableServer, + Acceptor_Filter_Factory, + "$Id$") + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +TAO_Acceptor_Filter_Factory::~TAO_Acceptor_Filter_Factory(void) +{ +} + +TAO_Acceptor_Filter* +TAO_Acceptor_Filter_Factory::create_object (TAO_POA_Manager& ) +{ + TAO_Acceptor_Filter *filter; + + ACE_NEW_RETURN (filter, + TAO_Default_Acceptor_Filter (), + 0); + + return filter; +} + + +int +TAO_Acceptor_Filter_Factory::initialize (void) +{ + return ACE_Service_Config::process_directive + (ace_svc_desc_TAO_Acceptor_Filter_Factory); +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +static int +TAO_Requires_Acceptor_Filter_Factory = +TAO_Acceptor_Filter_Factory::initialize (); + +ACE_FACTORY_DEFINE (TAO_PortableServer, TAO_Acceptor_Filter_Factory) +ACE_STATIC_SVC_DEFINE (TAO_Acceptor_Filter_Factory, + ACE_TEXT ("TAO_Acceptor_Filter_Factory"), + ACE_SVC_OBJ_T, + &ACE_SVC_NAME (TAO_Acceptor_Filter_Factory), + ACE_Service_Type::DELETE_THIS + | ACE_Service_Type::DELETE_OBJ, + 0) diff --git a/TAO/tao/PortableServer/Acceptor_Filter_Factory.h b/TAO/tao/PortableServer/Acceptor_Filter_Factory.h new file mode 100644 index 00000000000..3d4267ff944 --- /dev/null +++ b/TAO/tao/PortableServer/Acceptor_Filter_Factory.h @@ -0,0 +1,68 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Acceptor_Filter_Factory.h + * + * $Id$ + * + * Provides default acceptor filters for use by the POA. + * + * @author Yan Dai <dai_y@ociweb.com> + * @author Phil Mesnier <mesnier_p@ociweb.com> + */ +//============================================================================= + + +#ifndef TAO_ACCEPTOR_FILTER_FACTORY_H +#define TAO_ACCEPTOR_FILTER_FACTORY_H + +#include /**/ "ace/pre.h" + +#include "portableserver_export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/Versioned_Namespace.h" + +#include "ace/Service_Object.h" +#include "ace/Service_Config.h" + +class TAO_POA_Manager; +class TAO_Acceptor_Filter; + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/** + * @class TAO_Acceptor_Filter_Factory + * + * @brief Default class for factories providing the endpoint acceptor + * filter objects. + * + * The TAO_Acceptor_Filter_Factory is a loadable service object. It exists + * to allow external application of filters used to control the assembly of + * object references and how endpoints are assigned. + */ +class TAO_PortableServer_Export TAO_Acceptor_Filter_Factory + : public ACE_Service_Object +{ +public: + virtual ~TAO_Acceptor_Filter_Factory(void); + + virtual TAO_Acceptor_Filter* create_object (TAO_POA_Manager& poamanager); + + /// Static initializer ensures the factory is loaded + static int initialize (void); + +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +ACE_STATIC_SVC_DECLARE (TAO_Acceptor_Filter_Factory) +ACE_FACTORY_DECLARE (TAO_PortableServer, TAO_Acceptor_Filter_Factory) + +#include /**/ "ace/post.h" + +#endif /* TAO_ACCEPTOR_FILTER_FACTORY_H */ diff --git a/TAO/tao/PortableServer/POAManagerFactory.h b/TAO/tao/PortableServer/POAManagerFactory.h new file mode 100644 index 00000000000..ce8a82d0ac0 --- /dev/null +++ b/TAO/tao/PortableServer/POAManagerFactory.h @@ -0,0 +1,80 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file POAManagerFactory.h + * + * $Id$ + * + * POAManagerFactory + * + * @author Johnny Willemsen <jwillemsen@remedy.nl> + */ +//============================================================================= + +#ifndef TAO_POAMANAGERFACTORY_H +#define TAO_POAMANAGERFACTORY_H +#include /**/ "ace/pre.h" + +#include "tao/PortableServer/portableserver_export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/PortableServer/POAManagerFactoryC.h" +#include "tao/PortableServer/Object_Adapter.h" +#include "tao/LocalObject.h" +#include "ace/Unbounded_Set.h" + +// This is to remove "inherits via dominance" warnings from MSVC. +// MSVC is being a little too paranoid. +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +class TAO_PortableServer_Export TAO_POAManager_Factory : + public ::PortableServer::POAManagerFactory, + public TAO_Local_RefCounted_Object +{ +public: + TAO_POAManager_Factory (TAO_Object_Adapter &object_adapter); + + virtual ~TAO_POAManager_Factory (void); + + virtual ::PortableServer::POAManager_ptr create_POAManager ( + const char * id, + const ::CORBA::PolicyList & policies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + ::PortableServer::POAManagerFactory::ManagerAlreadyExists, + ::CORBA::PolicyError)); + + virtual ::PortableServer::POAManagerFactory::POAManagerSeq * list ( + ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual ::PortableServer::POAManager_ptr find ( + const char * id ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + int remove_poamanager (::PortableServer::POAManager_ptr poamanager); + + int register_poamanager (::PortableServer::POAManager_ptr poamanager); + +private: + TAO_Object_Adapter &object_adapter_; + + typedef ACE_Unbounded_Set < ::PortableServer::POAManager_ptr> POAMANAGERSET; + + POAMANAGERSET poamanager_set_; +}; + + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#include /**/ "ace/post.h" +#endif /* TAO_POAMANAGERFACTORY_H */ diff --git a/TAO/tao/PortableServer/POAManagerFactory.pidl b/TAO/tao/PortableServer/POAManagerFactory.pidl new file mode 100644 index 00000000000..562190c8685 --- /dev/null +++ b/TAO/tao/PortableServer/POAManagerFactory.pidl @@ -0,0 +1,47 @@ +/** + * @file POAManagerFactory.pidl + * + * $Id$ + * + * @brief Pre-compiled IDL source for the PortableServer module. + * + $ACE_ROOT/bin/tao_idl \ + -Gp -Gd -Ge 1 -Sc -Sci -I$TAO_ROOT \ + -Wb,export_macro=TAO_PortableServer_Export \ + -Wb,export_include="tao/PortableServer/portableserver_export.h" \ + -Wb,pre_include="ace/pre.h" \ + -Wb,post_include="ace/post.h" \ + POAManagerFactory.pidl + */ + +#ifndef _PORTABLESERVER_POAMANAGER_FACTORY_IDL +#define _PORTABLESERVER_POAMANAGER_FACTORY_IDL + +#include "tao/Policy.pidl" + +#pragma prefix "omg.org" + +module PortableServer +{ +# pragma version PortableServer 2.3 + + local interface POAManager; + + local interface POAManagerFactory + { + typedef sequence<POAManager> POAManagerSeq; + + exception ManagerAlreadyExists {}; + + POAManager create_POAManager( + in string id, + in CORBA::PolicyList policies + ) raises(ManagerAlreadyExists, CORBA::PolicyError); + + POAManagerSeq list(); + + POAManager find(in string id); + }; +}; + +#endif // _PORTABLESERVER_POAMANAGER_FACTORY_IDL diff --git a/TAO/tao/PortableServer/POAManagerFactoryC.cpp b/TAO/tao/PortableServer/POAManagerFactoryC.cpp new file mode 100644 index 00000000000..ae838de1e98 --- /dev/null +++ b/TAO/tao/PortableServer/POAManagerFactoryC.cpp @@ -0,0 +1,423 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// be/be_codegen.cpp:282 + + +#include "POAManagerFactoryC.h" +#include "tao/AnyTypeCode/Null_RefCount_Policy.h" +#include "tao/AnyTypeCode/TypeCode_Constants.h" +#include "tao/AnyTypeCode/Alias_TypeCode_Static.h" +#include "tao/AnyTypeCode/Objref_TypeCode_Static.h" +#include "tao/AnyTypeCode/Sequence_TypeCode_Static.h" +#include "tao/AnyTypeCode/String_TypeCode_Static.h" +#include "tao/AnyTypeCode/Struct_TypeCode_Static.h" +#include "tao/AnyTypeCode/TypeCode_Struct_Field.h" +#include "tao/CDR.h" +#include "tao/AnyTypeCode/Any.h" +#include "tao/AnyTypeCode/Any_Impl_T.h" +#include "tao/AnyTypeCode/Any_Dual_Impl_T.h" +#include "ace/OS_NS_string.h" + +// TAO_IDL - Generated from +// be/be_visitor_arg_traits.cpp:71 +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + + + +// Arg traits specializations. +namespace TAO +{ +} + +TAO_END_VERSIONED_NAMESPACE_DECL + + + +// TAO_IDL - Generated from +// be/be_visitor_interface/interface_cs.cpp:60 + +// Traits specializations for PortableServer::POAManagerFactory. + +PortableServer::POAManagerFactory_ptr +TAO::Objref_Traits<PortableServer::POAManagerFactory>::duplicate ( + PortableServer::POAManagerFactory_ptr p + ) +{ + return PortableServer::POAManagerFactory::_duplicate (p); +} + +void +TAO::Objref_Traits<PortableServer::POAManagerFactory>::release ( + PortableServer::POAManagerFactory_ptr p + ) +{ + ::CORBA::release (p); +} + +PortableServer::POAManagerFactory_ptr +TAO::Objref_Traits<PortableServer::POAManagerFactory>::nil (void) +{ + return PortableServer::POAManagerFactory::_nil (); +} + +::CORBA::Boolean +TAO::Objref_Traits<PortableServer::POAManagerFactory>::marshal ( + const PortableServer::POAManagerFactory_ptr p, + TAO_OutputCDR & cdr + ) +{ + return ::CORBA::Object::marshal (p, cdr); +} + +// TAO_IDL - Generated from +// be/be_visitor_sequence/sequence_cs.cpp:65 + +#if !defined (_PORTABLESERVER_POAMANAGERFACTORY_POAMANAGERSEQ_CS_) +#define _PORTABLESERVER_POAMANAGERFACTORY_POAMANAGERSEQ_CS_ + +PortableServer::POAManagerFactory::POAManagerSeq::POAManagerSeq (void) +{} + +PortableServer::POAManagerFactory::POAManagerSeq::POAManagerSeq ( + ::CORBA::ULong max + ) + : TAO::unbounded_object_reference_sequence< + PortableServer::POAManager, + PortableServer::POAManager_var + > + (max) +{} + +PortableServer::POAManagerFactory::POAManagerSeq::POAManagerSeq ( + ::CORBA::ULong max, + ::CORBA::ULong length, + PortableServer::POAManager_ptr * buffer, + ::CORBA::Boolean release + ) + : TAO::unbounded_object_reference_sequence< + PortableServer::POAManager, + PortableServer::POAManager_var + > + (max, length, buffer, release) +{} + +PortableServer::POAManagerFactory::POAManagerSeq::POAManagerSeq ( + const POAManagerSeq &seq + ) + : TAO::unbounded_object_reference_sequence< + PortableServer::POAManager, + PortableServer::POAManager_var + > + (seq) +{} + +PortableServer::POAManagerFactory::POAManagerSeq::~POAManagerSeq (void) +{} + +void PortableServer::POAManagerFactory::POAManagerSeq::_tao_any_destructor ( + void * _tao_void_pointer + ) +{ + POAManagerSeq * _tao_tmp_pointer = + static_cast<POAManagerSeq *> (_tao_void_pointer); + delete _tao_tmp_pointer; +} + +#endif /* end #if !defined */ + +// TAO_IDL - Generated from +// be/be_visitor_typecode/alias_typecode.cpp:50 + + + +// TAO_IDL - Generated from +// be/be_visitor_typecode/typecode_defn.cpp:942 + +namespace PortableServer +{ + extern ::CORBA::TypeCode_ptr const _tc_POAManager; +} + + +#ifndef _TAO_TYPECODE_PortableServer_POAManagerFactory_POAManagerSeq_GUARD +#define _TAO_TYPECODE_PortableServer_POAManagerFactory_POAManagerSeq_GUARD + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + namespace TypeCode + { + TAO::TypeCode::Sequence< ::CORBA::TypeCode_ptr const *, + TAO::Null_RefCount_Policy> + PortableServer_POAManagerFactory_POAManagerSeq_0 ( + ::CORBA::tk_sequence, + &PortableServer::_tc_POAManager, + 0U); + + ::CORBA::TypeCode_ptr const tc_PortableServer_POAManagerFactory_POAManagerSeq_0 = + &PortableServer_POAManagerFactory_POAManagerSeq_0; + + } +} + + +TAO_END_VERSIONED_NAMESPACE_DECL + + +#endif /* _TAO_TYPECODE_PortableServer_POAManagerFactory_POAManagerSeq_GUARD */ + +static TAO::TypeCode::Alias<char const *, + ::CORBA::TypeCode_ptr const *, + TAO::Null_RefCount_Policy> + _tao_tc_PortableServer_POAManagerFactory_POAManagerSeq ( + ::CORBA::tk_alias, + "IDL:omg.org/PortableServer/POAManagerFactory/POAManagerSeq:2.3", + "POAManagerSeq", + &TAO::TypeCode::tc_PortableServer_POAManagerFactory_POAManagerSeq_0); + +::CORBA::TypeCode_ptr const PortableServer::POAManagerFactory::_tc_POAManagerSeq = + &_tao_tc_PortableServer_POAManagerFactory_POAManagerSeq; + +// TAO_IDL - Generated from +// be/be_visitor_exception/exception_cs.cpp:63 + +PortableServer::POAManagerFactory::ManagerAlreadyExists::ManagerAlreadyExists (void) + : ::CORBA::UserException ( + "IDL:omg.org/PortableServer/POAManagerFactory/ManagerAlreadyExists:2.3", + "ManagerAlreadyExists" + ) +{ +} + +PortableServer::POAManagerFactory::ManagerAlreadyExists::~ManagerAlreadyExists (void) +{ +} + +PortableServer::POAManagerFactory::ManagerAlreadyExists::ManagerAlreadyExists (const ::PortableServer::POAManagerFactory::ManagerAlreadyExists &_tao_excp) + : ::CORBA::UserException ( + _tao_excp._rep_id (), + _tao_excp._name () + ) +{ +} + +PortableServer::POAManagerFactory::ManagerAlreadyExists& +PortableServer::POAManagerFactory::ManagerAlreadyExists::operator= (const ::PortableServer::POAManagerFactory::ManagerAlreadyExists &_tao_excp) +{ + this->::CORBA::UserException::operator= (_tao_excp); + return *this; +} + +void PortableServer::POAManagerFactory::ManagerAlreadyExists::_tao_any_destructor (void *_tao_void_pointer) +{ + ManagerAlreadyExists *_tao_tmp_pointer = + static_cast<ManagerAlreadyExists *> (_tao_void_pointer); + delete _tao_tmp_pointer; +} + +PortableServer::POAManagerFactory::ManagerAlreadyExists * +PortableServer::POAManagerFactory::ManagerAlreadyExists::_downcast ( ::CORBA::Exception *_tao_excp) +{ + return dynamic_cast<ManagerAlreadyExists *> (_tao_excp); +} + +const PortableServer::POAManagerFactory::ManagerAlreadyExists * +PortableServer::POAManagerFactory::ManagerAlreadyExists::_downcast ( ::CORBA::Exception const *_tao_excp) +{ + return dynamic_cast<const ManagerAlreadyExists *> (_tao_excp); +} + +::CORBA::Exception *PortableServer::POAManagerFactory::ManagerAlreadyExists::_alloc (void) +{ + ::CORBA::Exception *retval = 0; + ACE_NEW_RETURN (retval, ::PortableServer::POAManagerFactory::ManagerAlreadyExists, 0); + return retval; +} + +::CORBA::Exception * +PortableServer::POAManagerFactory::ManagerAlreadyExists::_tao_duplicate (void) const +{ + ::CORBA::Exception *result = 0; + ACE_NEW_RETURN ( + result, + ::PortableServer::POAManagerFactory::ManagerAlreadyExists (*this), + 0 + ); + return result; +} + +void PortableServer::POAManagerFactory::ManagerAlreadyExists::_raise (void) const +{ + TAO_RAISE (*this); +} + +void PortableServer::POAManagerFactory::ManagerAlreadyExists::_tao_encode ( + TAO_OutputCDR & + ACE_ENV_ARG_DECL + ) const +{ + ACE_THROW ( ::CORBA::MARSHAL ()); +} + +void PortableServer::POAManagerFactory::ManagerAlreadyExists::_tao_decode ( + TAO_InputCDR & + ACE_ENV_ARG_DECL + ) +{ + ACE_THROW ( ::CORBA::MARSHAL ()); +} + +// TAO extension - the virtual _type method. +::CORBA::TypeCode_ptr PortableServer::POAManagerFactory::ManagerAlreadyExists::_tao_type (void) const +{ + return ::PortableServer::POAManagerFactory::_tc_ManagerAlreadyExists; +} + +// TAO_IDL - Generated from +// be/be_visitor_typecode/struct_typecode.cpp:89 + +static TAO::TypeCode::Struct_Field<char const *, ::CORBA::TypeCode_ptr const *> const * const _tao_fields_PortableServer_POAManagerFactory_ManagerAlreadyExists = 0; +static TAO::TypeCode::Struct<char const *, + ::CORBA::TypeCode_ptr const *, + TAO::TypeCode::Struct_Field<char const *, ::CORBA::TypeCode_ptr const *> const *, + TAO::Null_RefCount_Policy> + _tao_tc_PortableServer_POAManagerFactory_ManagerAlreadyExists ( + ::CORBA::tk_except, + "IDL:omg.org/PortableServer/POAManagerFactory/ManagerAlreadyExists:2.3", + "ManagerAlreadyExists", + _tao_fields_PortableServer_POAManagerFactory_ManagerAlreadyExists, + 0); + +::CORBA::TypeCode_ptr const PortableServer::POAManagerFactory::_tc_ManagerAlreadyExists = + &_tao_tc_PortableServer_POAManagerFactory_ManagerAlreadyExists; + +PortableServer::POAManagerFactory::POAManagerFactory (void) +{} + +PortableServer::POAManagerFactory::~POAManagerFactory (void) +{} + +PortableServer::POAManagerFactory_ptr +PortableServer::POAManagerFactory::_narrow ( + ::CORBA::Object_ptr _tao_objref + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + return POAManagerFactory::_duplicate ( + dynamic_cast<POAManagerFactory_ptr> (_tao_objref) + ); +} + +PortableServer::POAManagerFactory_ptr +PortableServer::POAManagerFactory::_unchecked_narrow ( + ::CORBA::Object_ptr _tao_objref + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + return POAManagerFactory::_duplicate ( + dynamic_cast<POAManagerFactory_ptr> (_tao_objref) + ); +} + +PortableServer::POAManagerFactory_ptr +PortableServer::POAManagerFactory::_duplicate (POAManagerFactory_ptr obj) +{ + if (! ::CORBA::is_nil (obj)) + { + obj->_add_ref (); + } + + return obj; +} + +void +PortableServer::POAManagerFactory::_tao_release (POAManagerFactory_ptr obj) +{ + ::CORBA::release (obj); +} + +::CORBA::Boolean +PortableServer::POAManagerFactory::_is_a ( + const char *value + ACE_ENV_ARG_DECL_NOT_USED + ) +{ + if ( + !ACE_OS::strcmp ( + value, + "IDL:omg.org/PortableServer/POAManagerFactory:2.3" + ) || + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/LocalObject:1.0" + ) || + !ACE_OS::strcmp ( + value, + "IDL:omg.org/CORBA/Object:1.0" + ) + ) + { + return true; // success using local knowledge + } + else + { + return false; + } +} + +const char* PortableServer::POAManagerFactory::_interface_repository_id (void) const +{ + return "IDL:omg.org/PortableServer/POAManagerFactory:2.3"; +} + +::CORBA::Boolean +PortableServer::POAManagerFactory::marshal (TAO_OutputCDR &) +{ + return false; +} + +// TAO_IDL - Generated from +// be/be_visitor_typecode/objref_typecode.cpp:76 + +static TAO::TypeCode::Objref<char const *, + TAO::Null_RefCount_Policy> + _tao_tc_PortableServer_POAManagerFactory ( + ::CORBA::tk_local_interface, + "IDL:omg.org/PortableServer/POAManagerFactory:2.3", + "POAManagerFactory"); + +namespace PortableServer +{ + ::CORBA::TypeCode_ptr const _tc_POAManagerFactory = + &_tao_tc_PortableServer_POAManagerFactory; +} + + + diff --git a/TAO/tao/PortableServer/POAManagerFactoryC.h b/TAO/tao/PortableServer/POAManagerFactoryC.h new file mode 100644 index 00000000000..77890521957 --- /dev/null +++ b/TAO/tao/PortableServer/POAManagerFactoryC.h @@ -0,0 +1,381 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// be/be_codegen.cpp:154 + +#ifndef _TAO_IDL_POAMANAGERFACTORYC_H_ +#define _TAO_IDL_POAMANAGERFACTORYC_H_ + +#include /**/ "ace/pre.h" + + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/PortableServer/portableserver_export.h" +#include "tao/AnyTypeCode/AnyTypeCode_methods.h" +#include "tao/ORB.h" +#include "tao/SystemException.h" +#include "tao/Environment.h" +#include "tao/Object.h" +#include "tao/AnyTypeCode/PolicyA.h" +#include "tao/Sequence_T.h" +#include "tao/Objref_VarOut_T.h" +#include "tao/Seq_Var_T.h" +#include "tao/Seq_Out_T.h" +#include "tao/Versioned_Namespace.h" + +#include "tao/PolicyC.h" + +#if defined (TAO_EXPORT_MACRO) +#undef TAO_EXPORT_MACRO +#endif +#define TAO_EXPORT_MACRO TAO_PortableServer_Export + +// TAO_IDL - Generated from +// be/be_visitor_module/module_ch.cpp:49 + +namespace PortableServer +{ + + // TAO_IDL - Generated from + // be/be_interface.cpp:640 + +#if !defined (_PORTABLESERVER_POAMANAGER__VAR_OUT_CH_) +#define _PORTABLESERVER_POAMANAGER__VAR_OUT_CH_ + + class POAManager; + typedef POAManager *POAManager_ptr; + + typedef + TAO_Objref_Var_T< + POAManager + > + POAManager_var; + + typedef + TAO_Objref_Out_T< + POAManager + > + POAManager_out; + +#endif /* end #if !defined */ + + // TAO_IDL - Generated from + // be/be_interface.cpp:640 + +#if !defined (_PORTABLESERVER_POAMANAGERFACTORY__VAR_OUT_CH_) +#define _PORTABLESERVER_POAMANAGERFACTORY__VAR_OUT_CH_ + + class POAManagerFactory; + typedef POAManagerFactory *POAManagerFactory_ptr; + + typedef + TAO_Objref_Var_T< + POAManagerFactory + > + POAManagerFactory_var; + + typedef + TAO_Objref_Out_T< + POAManagerFactory + > + POAManagerFactory_out; + +#endif /* end #if !defined */ + + // TAO_IDL - Generated from + // be/be_visitor_interface/interface_ch.cpp:54 + +#if !defined (_PORTABLESERVER_POAMANAGERFACTORY_CH_) +#define _PORTABLESERVER_POAMANAGERFACTORY_CH_ + + class TAO_PortableServer_Export POAManagerFactory + : public virtual ::CORBA::Object + { + public: + typedef POAManagerFactory_ptr _ptr_type; + typedef POAManagerFactory_var _var_type; + + // The static operations. + static POAManagerFactory_ptr _duplicate (POAManagerFactory_ptr obj); + + static void _tao_release (POAManagerFactory_ptr obj); + + static POAManagerFactory_ptr _narrow ( + ::CORBA::Object_ptr obj + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ); + + static POAManagerFactory_ptr _unchecked_narrow ( + ::CORBA::Object_ptr obj + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ); + + static POAManagerFactory_ptr _nil (void) + { + return static_cast<POAManagerFactory_ptr> (0); + } + + + + // TAO_IDL - Generated from + // be/be_visitor_sequence/sequence_ch.cpp:101 + +#if !defined (_PORTABLESERVER_POAMANAGERFACTORY_POAMANAGERSEQ_CH_) +#define _PORTABLESERVER_POAMANAGERFACTORY_POAMANAGERSEQ_CH_ + + class POAManagerSeq; + + typedef + TAO_VarSeq_Var_T< + POAManagerSeq + > + POAManagerSeq_var; + + typedef + TAO_Seq_Out_T< + POAManagerSeq + > + POAManagerSeq_out; + + class TAO_PortableServer_Export POAManagerSeq + : public + TAO::unbounded_object_reference_sequence< + PortableServer::POAManager, + PortableServer::POAManager_var + > + { + public: + POAManagerSeq (void); + POAManagerSeq ( ::CORBA::ULong max); + POAManagerSeq ( + ::CORBA::ULong max, + ::CORBA::ULong length, + PortableServer::POAManager_ptr* buffer, + ::CORBA::Boolean release = false + ); + POAManagerSeq (const POAManagerSeq &); + ~POAManagerSeq (void); + + static void _tao_any_destructor (void *); + + typedef POAManagerSeq_var _var_type; + }; + +#endif /* end #if !defined */ + + // TAO_IDL - Generated from + // be/be_visitor_typecode/typecode_decl.cpp:49 + + static ::CORBA::TypeCode_ptr const _tc_POAManagerSeq; + + // TAO_IDL - Generated from + // be/be_visitor_exception/exception_ch.cpp:53 + +#if !defined (_PORTABLESERVER_POAMANAGERFACTORY_MANAGERALREADYEXISTS_CH_) +#define _PORTABLESERVER_POAMANAGERFACTORY_MANAGERALREADYEXISTS_CH_ + + class TAO_PortableServer_Export ManagerAlreadyExists : public ::CORBA::UserException + { + public: + + ManagerAlreadyExists (void); + ManagerAlreadyExists (const ManagerAlreadyExists &); + ~ManagerAlreadyExists (void); + + ManagerAlreadyExists &operator= (const ManagerAlreadyExists &); + + static void _tao_any_destructor (void *); + + static ManagerAlreadyExists *_downcast ( ::CORBA::Exception *); + static const ManagerAlreadyExists *_downcast ( ::CORBA::Exception const *); + + static ::CORBA::Exception *_alloc (void); + + virtual ::CORBA::Exception *_tao_duplicate (void) const; + + virtual void _raise (void) const; + + virtual void _tao_encode ( + TAO_OutputCDR &cdr + ACE_ENV_ARG_DECL + ) const; + + virtual void _tao_decode ( + TAO_InputCDR &cdr + ACE_ENV_ARG_DECL + ); + + virtual ::CORBA::TypeCode_ptr _tao_type (void) const; + }; + + // TAO_IDL - Generated from + // be/be_visitor_typecode/typecode_decl.cpp:49 + + static ::CORBA::TypeCode_ptr const _tc_ManagerAlreadyExists; + +#endif /* end #if !defined */ + + // TAO_IDL - Generated from + // be/be_visitor_operation/operation_ch.cpp:46 + + virtual ::PortableServer::POAManager_ptr create_POAManager ( + const char * id, + const ::CORBA::PolicyList & policies + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::PortableServer::POAManagerFactory::ManagerAlreadyExists, + ::CORBA::PolicyError + )) = 0; + + // TAO_IDL - Generated from + // be/be_visitor_operation/operation_ch.cpp:46 + + virtual ::PortableServer::POAManagerFactory::POAManagerSeq * list ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) = 0; + + // TAO_IDL - Generated from + // be/be_visitor_operation/operation_ch.cpp:46 + + virtual ::PortableServer::POAManager_ptr find ( + const char * id + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) = 0; + + // TAO_IDL - Generated from + // be/be_visitor_interface/interface_ch.cpp:210 + + virtual ::CORBA::Boolean _is_a ( + const char *type_id + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ); + + virtual const char* _interface_repository_id (void) const; + virtual ::CORBA::Boolean marshal (TAO_OutputCDR &cdr); + + protected: + // Abstract or local interface only. + POAManagerFactory (void); + + virtual ~POAManagerFactory (void); + + private: + // Private and unimplemented for concrete interfaces. + POAManagerFactory (const POAManagerFactory &); + + void operator= (const POAManagerFactory &); + }; + +#endif /* end #if !defined */ + + // TAO_IDL - Generated from + // be/be_visitor_typecode/typecode_decl.cpp:49 + + extern TAO_PortableServer_Export ::CORBA::TypeCode_ptr const _tc_POAManagerFactory; + +// TAO_IDL - Generated from +// be/be_visitor_module/module_ch.cpp:78 + +} // module PortableServer + +// TAO_IDL - Generated from +// be/be_visitor_traits.cpp:63 +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + + + +// Traits specializations. +namespace TAO +{ + +#if !defined (_PORTABLESERVER_POAMANAGER__TRAITS_) +#define _PORTABLESERVER_POAMANAGER__TRAITS_ + + template<> + struct TAO_PortableServer_Export Objref_Traits< ::PortableServer::POAManager> + { + static ::PortableServer::POAManager_ptr duplicate ( + ::PortableServer::POAManager_ptr + ); + static void release ( + ::PortableServer::POAManager_ptr + ); + static ::PortableServer::POAManager_ptr nil (void); + static ::CORBA::Boolean marshal ( + const ::PortableServer::POAManager_ptr p, + TAO_OutputCDR & cdr + ); + }; + +#endif /* end #if !defined */ + +#if !defined (_PORTABLESERVER_POAMANAGERFACTORY__TRAITS_) +#define _PORTABLESERVER_POAMANAGERFACTORY__TRAITS_ + + template<> + struct TAO_PortableServer_Export Objref_Traits< ::PortableServer::POAManagerFactory> + { + static ::PortableServer::POAManagerFactory_ptr duplicate ( + ::PortableServer::POAManagerFactory_ptr + ); + static void release ( + ::PortableServer::POAManagerFactory_ptr + ); + static ::PortableServer::POAManagerFactory_ptr nil (void); + static ::CORBA::Boolean marshal ( + const ::PortableServer::POAManagerFactory_ptr p, + TAO_OutputCDR & cdr + ); + }; + +#endif /* end #if !defined */ +} +TAO_END_VERSIONED_NAMESPACE_DECL + + + +// TAO_IDL - Generated from +// be/be_codegen.cpp:1092 +#include /**/ "ace/post.h" + +#endif /* ifndef */ + + diff --git a/TAO/tao/Range_Checking_T.h b/TAO/tao/Range_Checking_T.h new file mode 100644 index 00000000000..f5e461ef09f --- /dev/null +++ b/TAO/tao/Range_Checking_T.h @@ -0,0 +1,150 @@ +#ifndef guard_range_checking_hpp +#define guard_range_checking_hpp +/** + * @file + * + * @brief Details can be found in the documentation for + * TAO::details::generic_sequence + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +/** + * @struct range_checking + * + * @brief Configurable traits to tradeoff safety vs. performance in + * the implementation of TAO sequences. + * + * The CORBA specification grants certain latitude to implementors by + * not defining the behavior of sequences under certain conditions. + * Probably the most clear example is the operator[] access, where the + * application <b>must</b> set the length to a high enough value + * before using the operator[]. + * + * Implementors that cater to high-performance applications tend to + * exploit this latitude to the extreme, basically reasoning that + * correct applications will behave normally, while incorrect + * applications will crash, but those crashes will be detected during + * development/testing. + * + * Realizing that this may be a bad tradeoff some implementors offer + * compile-time hooks to control the behavior of sequences when used + * improperly, some implementors may go as far as using run-time + * hooks. + * + * The implementation of sequences calls the following template class + * in points where the application may trigger undefined behavior. + * The application developer can use partial (or full) template + * specialization to introduce her own code at these critical points. + * + * Some examples may help, suppose you want to change your application + * so for all sequence types the operator[] raises an exception if the + * index is out of range. Then you would provide the following + * (partial) template specialization: + * + * <PRE> + * template<typename T> + * struct range_checking<T,true> { + * void check(CORBA::ULong index, CORBA::ULong length) { + * if (index < length) + * return; + * throw std::range_error("CORBA sequence range error"); + * }; + * ... + * .. + * }; + * </PRE> + * + * This specialization must be introduced before any sequence code is + * seen, therefore, the application would also need to define the + * following macro in their $ACE_ROOT/ace/config.h file: + * + * - #define TAO_USER_DEFINED_SEQUENCE_SAFETY_TRAITS_INCLUDE "<filename here>" + * + * Likewise, if the application only wanted to check the range for a + * special type, say some structure MyStruct, then they would provide + * a full specialization. Just for giggles, we will also introduce + * run-time controls to this example: + * + * <PRE> + * template<> + * struct safety_traits<tao::details::value_traits<MyStruct>,true> { + * bool enable_range_checking; + * void check_range(CORBA::ULong index, CORBA::ULong length) { + * if (!enable_range_checking || index < length) + * return; + * throw std::range_error("CORBA sequence range error"); + * }; + * ... + * .. + * }; + * </PRE> + * + * + * + * @todo There is no control on a per-sequence type basis, only on a + * per-underlying type basis, for example, the following two IDL + * sequences would get the same behavior: + * // IDL + * typedef sequence<MyStruct> MyStructSequence; + * typedef sequence<MyStruct> MyStructList; + * + * @todo There is no way to control behavior on a per-sequence basis, + * i.e. to have some sequences of longs checked while others are + * not. This is easy to fix, simply: + * - make all members of safety_traits non-static + * - have each sequence contain their own instance of + * safety_traits + * - grant users read/write access to the safety_traits of each + * sequence + * but there are footprint consequences to that approach. Until + * there is more demand to justify the cost, I will not + * implement such a change. + */ +template<typename T, bool dummy> +struct range_checking +{ + typedef T value_type; + + inline static void check( + CORBA::ULong /* index */, + CORBA::ULong /* length */, + CORBA::ULong /* maximum */, + char const * /* function_name */) + { + // Applications and tests can specialize this function to define + // their own behavior + } + + inline static void check_length( + CORBA::ULong & /* new_length */, + CORBA::ULong /* maximum */) + { + /* + if (maximum < new_length) + new_length = maximum; + */ + } +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#if defined(TAO_USER_DEFINED_SEQUENCE_RANGE_CHECKING_INCLUDE) +# include TAO_USER_DEFINED_SEQUENCE_RANGE_CHECKING_INCLUDE +#endif // TAO_USER_DEFINED_SEQUENCE_RANGE_CHECKING_INCLUDE + +#endif // guard_range_checking_hpp diff --git a/TAO/tao/Strategies/OC_Endpoint_Selector_Loader.cpp b/TAO/tao/Strategies/OC_Endpoint_Selector_Loader.cpp new file mode 100644 index 00000000000..314ec97354b --- /dev/null +++ b/TAO/tao/Strategies/OC_Endpoint_Selector_Loader.cpp @@ -0,0 +1,28 @@ +// ================================================================= +/** + * @file OC_Endpoint_Selector_Loader.cpp + * + * $Id$ + * + * @author Phil Mesnier <mesnier_p@ociweb.com> + * + */ +// ================================================================= +// $Id$ + +#include "tao/Strategies/OC_Endpoint_Selector_Loader.h" +#include "tao/Strategies/OC_Endpoint_Selector_Factory.h" + +ACE_RCSID (tao, + OC_Endpoint_Selector_Loader, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +int +TAO_OC_Endpoint_Selector_Loader::init (void) +{ + return ACE_Service_Config::process_directive (ace_svc_desc_TAO_OC_Endpoint_Selector_Factory); +} + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/Strategies/OC_Endpoint_Selector_Loader.h b/TAO/tao/Strategies/OC_Endpoint_Selector_Loader.h new file mode 100644 index 00000000000..a19f9cf5b1e --- /dev/null +++ b/TAO/tao/Strategies/OC_Endpoint_Selector_Loader.h @@ -0,0 +1,63 @@ +// This may look like C, but it's really -*- C++ -*- + +//============================================================================= +/** + * @file OC_Endpoint_Selector_Loader.h + * + * $Id$ + * + * Strategies for selecting profile/endpoint from an IOR for making an + * invocation. + * + * @author Phil Mesnier <mesnier_p@ociweb.com> + */ +//============================================================================= + + +#ifndef TAO_OC_ENDPOINT_LOADER_H +#define TAO_OC_ENDPOINT_LOADER_H +#include /**/ "ace/pre.h" + +#include "tao/Strategies/strategies_export.h" +#include "tao/Strategies/OC_Endpoint_Selector_Factory.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +// Forward references +class TAO_Optimized_Connection_Endpoint_Selector; + +// **************************************************************** + +/** + * @class TAO_OC_Endpoint_Selector_Loader + * + * @brief Static initializer used to ensure the Optimized Connector + * Endpoint Selector is available for use in static applications + * + * This class is not needed when using dynamic linking and the service + * configuratior. Statically linked applications need to include this + * header to ensure that all the necessary dependencies are met. In + * addition, the svc config directive is required for setting any + * initialization parameters for the endpoint selector. + * + */ +class TAO_Strategies_Export TAO_OC_Endpoint_Selector_Loader +{ +public: + static int init(void); +}; + +static int +TAO_Requires_OC_Endpoint_Selector_Loader = + TAO_OC_Endpoint_Selector_Loader::init (); + + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" +#endif /* TAO_OC_ENDPOINT_LOADER_H */ diff --git a/TAO/tao/Strategies/Optimized_Connection_Endpoint_Selector.cpp b/TAO/tao/Strategies/Optimized_Connection_Endpoint_Selector.cpp new file mode 100644 index 00000000000..ad864ad1b9f --- /dev/null +++ b/TAO/tao/Strategies/Optimized_Connection_Endpoint_Selector.cpp @@ -0,0 +1,178 @@ +// -*- C++ -*- + +#include "tao/Strategies/Optimized_Connection_Endpoint_Selector.h" + +#include "tao/debug.h" +#include "tao/Stub.h" +#include "tao/Profile.h" +#include "tao/Endpoint.h" +#include "tao/Base_Transport_Property.h" +#include "tao/ORB_Core.h" +#include "tao/Transport.h" +#include "tao/Profile_Transport_Resolver.h" + +ACE_RCSID (tao, + Invocation_Endpoint_Selectors, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +// **************************************************************** + +ACE_Time_Value TAO_Optimized_Connection_Endpoint_Selector::timeout_; + +TAO_Optimized_Connection_Endpoint_Selector::TAO_Optimized_Connection_Endpoint_Selector (const ACE_Time_Value &tv) +{ + TAO_Optimized_Connection_Endpoint_Selector::timeout_ = tv; + if (TAO_debug_level) + { + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("TAO(%P|%t) Optimized Connection Enpoint Selector: ") + ACE_TEXT ("Initializing timeout hook tv = %d sec, %d usec\n"), + tv.sec(), tv.usec())); + } + if (tv > ACE_Time_Value::zero) + { + TAO_ORB_Core::connection_timeout_hook + (TAO_Optimized_Connection_Endpoint_Selector::hook); + } +} + +TAO_Optimized_Connection_Endpoint_Selector::~TAO_Optimized_Connection_Endpoint_Selector (void) +{ +} + + +void +TAO_Optimized_Connection_Endpoint_Selector::hook (TAO_ORB_Core *, + TAO_Stub *, + bool &has_timeout, + ACE_Time_Value &tv) +{ + has_timeout = + TAO_Optimized_Connection_Endpoint_Selector:: + timeout_ > ACE_Time_Value::zero; + if (has_timeout) + tv = TAO_Optimized_Connection_Endpoint_Selector::timeout_; +} + +int +TAO_Optimized_Connection_Endpoint_Selector::check_profile (TAO_Profile *p, + TAO::Profile_Transport_Resolver *r) +{ + TAO_Endpoint *effective_endpoint = 0; + + r->profile(p); + effective_endpoint = p->endpoint (); + size_t endpoint_count = p->endpoint_count(); + for (size_t i = 0; i < endpoint_count; ++i) + { + TAO_Base_Transport_Property desc (effective_endpoint); + if (r->find_transport(&desc)) + return 1; + // Go to the next endpoint in this profile + effective_endpoint = effective_endpoint->next(); + } + return 0; +} + +void +TAO_Optimized_Connection_Endpoint_Selector::select_endpoint + ( TAO::Profile_Transport_Resolver *r, + ACE_Time_Value *max_wait_time + ACE_ENV_ARG_DECL) +{ + TAO_Stub *stub = r->stub(); + TAO_Profile *p = stub->profile_in_use(); + + // first, look for the endpoints for the current profile in use. + // if that is available then go for it. + + if (this->check_profile (p, r) != 0) + return; + + // next, look for any other profiles. If the stub has any forward profiles, + // use those, otherwise look at the base profiles. This separation is + // necessary to avoid re-using a corbaloc or other previously forwarded + // profile. + + const TAO_MProfile *profiles = stub->forward_profiles(); + if (profiles != 0) + { + for (CORBA::ULong count = 0; count < profiles->profile_count(); count++) + { + p = const_cast<TAO_Profile *>(profiles->get_profile(count)); + if (this->check_profile (p, r) != 0) + { + if (stub->profile_in_use() != p) + { + // thread-safe way to coerse stub to this profile. + stub->reset_profiles(); + while (stub->profile_in_use() != p) + if (stub->next_profile_retry() == 0) + break; + } + return; + } + } + } + else + { + do + { + p = stub->profile_in_use(); + if (this->check_profile(p, r) != 0) + return; + } + while (stub->next_profile_retry () != 0); + } + + + + // at this point, we do not have an existing transport, so we must + // reset the profile list and try establishing connections via the + // connector(s). + + do + { + r->profile (r->stub ()->profile_in_use ()); + + // Check whether we need to do a blocked wait or we have a + // non-blocked wait and we support that. If this is not the + // case we can't use this profile so try the next. + if (r->blocked_connect () || + (!r->blocked_connect () && r->profile ()->supports_non_blocking_oneways ())) + { + const size_t endpoint_count = + r->profile ()->endpoint_count (); + + TAO_Endpoint *ep = + r->profile ()->endpoint (); + + for (size_t i = 0; i < endpoint_count; ++i) + { + TAO_Base_Transport_Property desc (ep); + const bool retval = + r->try_connect (&desc, + max_wait_time + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + // Check if the connect has completed. + if (retval) + return; + + // Go to the next endpoint in this profile. + ep = ep->next (); + } + } + } + while (r->stub ()->next_profile_retry () != 0); + + // If we get here, we completely failed to find an endpoint selector + // that we know how to use, so throw an exception. + ACE_THROW (CORBA::TRANSIENT (CORBA::OMGVMCID | 2, + CORBA::COMPLETED_NO)); +} + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/String_Alloc.cpp b/TAO/tao/String_Alloc.cpp new file mode 100644 index 00000000000..5844fb9503f --- /dev/null +++ b/TAO/tao/String_Alloc.cpp @@ -0,0 +1,104 @@ +#include "String_Alloc.h" + +#include "ace/OS_NS_string.h" +#include "ace/OS_NS_wchar.h" +#include "ace/OS_Memory.h" + +// FUZZ: disable check_for_streams_include +#include "ace/streams.h" + +ACE_RCSID (tao, + String_Alloc, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +char * +CORBA::string_dup (const char *str) +{ + if (!str) + { + errno = EINVAL; + return 0; + } + + const size_t len = ACE_OS::strlen (str); + + // This allocates an extra byte for the '\0'; + char * copy = CORBA::string_alloc (static_cast<CORBA::ULong> (len)); + + // The memcpy() below assumes that the destination is a valid buffer. + if (copy == 0) + { + return 0; + } + + ACE_OS::memcpy (copy, + str, + len + 1); + return copy; +} + +char * +CORBA::string_alloc (CORBA::ULong len) +{ + // Allocate 1 + strlen to accomodate the null terminating character. + + char *s = 0; + ACE_NEW_RETURN (s, + char[size_t (len + 1)], + 0); + + s[0]= '\0'; + + return s; +} + +void +CORBA::string_free (char *str) +{ + delete [] str; +} + +// **************************************************************** + +CORBA::WChar* +CORBA::wstring_dup (const WChar *const str) +{ + if (!str) + { + errno = EINVAL; + return 0; + } + + CORBA::WChar* retval = + CORBA::wstring_alloc (static_cast <CORBA::ULong> (ACE_OS::strlen (str))); + + // The wscpy() below assumes that the destination is a valid buffer. + if (retval == 0) + { + return 0; + } + + return ACE_OS::wscpy (retval, + str); +} + +CORBA::WChar* +CORBA::wstring_alloc (CORBA::ULong len) +{ + CORBA::WChar *s = 0; + ACE_NEW_RETURN (s, + CORBA::WChar [(size_t) (len + 1)], + 0); + + return s; +} + +void +CORBA::wstring_free (CORBA::WChar *const str) +{ + delete [] str; +} + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/String_Alloc.h b/TAO/tao/String_Alloc.h new file mode 100644 index 00000000000..6537f97b44b --- /dev/null +++ b/TAO/tao/String_Alloc.h @@ -0,0 +1,57 @@ +// -*- C++ -*- +//============================================================================= +/** + * @file String_Alloc.h + * + * $Id$ + * + * Header file for the CORBA string types. + * + * @author DOC Group at Wash U, UCI, and Vanderbilt U. + */ +//============================================================================= + +#ifndef TAO_STRING_ALLOC_H +#define TAO_STRING_ALLOC_H + +#include /**/ "ace/pre.h" + +#include "tao/TAO_Export.h" +#include "tao/Basic_Types.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace CORBA +{ + /** + * @name CORBA String Memory Management + * + * CORBA string memory management functions. + */ + //@{ + TAO_Export char * string_alloc (ULong len); + TAO_Export char * string_dup (const char *); + TAO_Export void string_free (char *); + //@} + + /** + * @name CORBA Wide String Memory Management + * + * CORBA wide string memory management functions. + */ + //@{ + TAO_Export WChar * wstring_alloc (ULong len); + TAO_Export WChar * wstring_dup (const WChar * const); + TAO_Export void wstring_free (WChar * const); + //@} +} // End CORBA namespace. + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_STRING_ALLOC_H */ diff --git a/TAO/tao/String_Manager_T.h b/TAO/tao/String_Manager_T.h new file mode 100644 index 00000000000..66561317f5b --- /dev/null +++ b/TAO/tao/String_Manager_T.h @@ -0,0 +1,138 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file String_Manager_T.h + * + * $Id$ + * + * @author Johnny Willemsen <jwillemsen@remedy.nl> + */ +//============================================================================= + +#ifndef TAO_STRING_MANAGER_T +#define TAO_STRING_MANAGER_T + +#include /**/ "ace/pre.h" + +#include "tao/TAO_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/Basic_Types.h" +#include "tao/String_Traits_Base_T.h" + +#include <algorithm> + +/****************************************************************/ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +template <typename charT> +class String_Manager_T +{ +public: + typedef charT character_type; + typedef TAO::details::string_traits_base <charT> s_traits; + + /// Default CTOR will initialize the underlying ptr_ to empty string. + inline String_Manager_T (void) : ptr_ (s_traits::default_initializer()) + { + } + + /// Copy constructor + inline String_Manager_T (const String_Manager_T<charT> &rhs) : ptr_ (s_traits::duplicate (rhs.ptr_)) + { + } + + /// Constructor from const char* makes a copy. + inline String_Manager_T (const character_type *s) : ptr_ (s_traits::duplicate (s)) + { + } + + /// Destructor + inline ~String_Manager_T (void) { + s_traits::release (this->ptr_); + } + + /// Assignment from another managed type + inline String_Manager_T &operator= (const String_Manager_T<charT> &rhs) { + // Strongly exception safe by means of copy and non-throwing swap + // technique. + String_Manager_T <character_type> tmp (rhs); + std::swap (this->ptr_, tmp.ptr_); + return *this; + } + + /// Assignment from var type will make a copy + inline String_Manager_T &operator= (const typename s_traits::string_var& value) { + // Strongly exception safe by means of copy and non-throwing swap + // technique. + String_Manager_T <character_type> tmp (value.in ()); + std::swap (this->ptr_, tmp.ptr_); + return *this; + } + + /// Assignment from a constant * will make a copy + inline String_Manager_T &operator= (const character_type *p) { + // Strongly exception safe by means of copy and non-throwing swap + // technique. + String_Manager_T <character_type> tmp (p); + std::swap (this->ptr_, tmp.ptr_); + return *this; + } + + /// Assignment from char* will not make a copy. The String_Manager_T will now + /// own the string. + inline String_Manager_T &operator= (character_type *p) { + s_traits::release (this->ptr_); + this->ptr_ = p; + return *this; + } + + /// Cast (read-only) + inline operator const character_type*() const { + return this->ptr_; + } + + /// For in parameter. + inline const character_type *in (void) const { + return this->ptr_; + } + + /// For inout parameter. + inline character_type *&inout (void) { + return this->ptr_; + } + + /// for out parameter. + inline character_type *&out (void) { + s_traits::release (this->ptr_); + this->ptr_ = s_traits::default_initializer(); + return this->ptr_; + } + + /// For string of return type. + inline character_type *_retn (void) { + character_type *temp = this->ptr_; + this->ptr_ = s_traits::default_initializer(); + return temp; + } + +private: + /// The underlying string + character_type *ptr_; +}; + + typedef TAO::String_Manager_T<CORBA::Char> String_Manager; + typedef TAO::String_Manager_T<CORBA::WChar> WString_Manager; +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" +#endif /* TAO_STRING_MANAGER_T */ diff --git a/TAO/tao/String_Sequence_Element_T.h b/TAO/tao/String_Sequence_Element_T.h new file mode 100644 index 00000000000..245b652b92f --- /dev/null +++ b/TAO/tao/String_Sequence_Element_T.h @@ -0,0 +1,124 @@ +#ifndef guard_string_sequence_element_hpp +#define guard_string_sequence_element_hpp +/** + * @file + * + * @brief Implement the type returned by operator[] in string + * sequences. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename traits> +class string_sequence_element +{ +public: + typedef typename traits::char_type character_type; + typedef character_type * value_type; + typedef character_type const * const_value_type; + typedef typename traits::string_var string_var; + typedef typename traits::string_mgr string_mgr; + +private: + inline string_sequence_element<traits> & pseudo_copy_swap( + string_var & rhs) + { + if (release()) + { + traits::release(*element_); + } + *element_ = rhs._retn(); + return *this; + } + +public: + string_sequence_element( + value_type & e, CORBA::Boolean release) + : element_(&e) + , release_(release) + { + } + + string_sequence_element( + string_sequence_element const & rhs) + : element_(rhs.element_) + , release_(rhs.release_) + { + } + + ~string_sequence_element() + { + } + + string_sequence_element & operator=(const_value_type rhs) + { + string_var tmp(rhs); + return pseudo_copy_swap(tmp); + } + + string_sequence_element & operator=(value_type rhs) + { + string_var tmp(rhs); + return pseudo_copy_swap(tmp); + } + + string_sequence_element & operator=(string_sequence_element const & rhs) + { + string_var tmp(static_cast<const_value_type>(rhs)); + return pseudo_copy_swap(tmp); + } + + string_sequence_element & operator=(string_var const & rhs) + { + string_var tmp(rhs); + return pseudo_copy_swap(tmp); + } + + string_sequence_element & operator=(string_mgr const & rhs) + { + string_var tmp(rhs.in()); + return pseudo_copy_swap(tmp); + } + + inline operator const_value_type() const + { + return *element_; + } + + void swap(string_sequence_element & rhs) + { + std::swap(element_, rhs.element_); + std::swap(release_, rhs.release_); + } + + CORBA::Boolean release() const + { + return release_; + } + +private: + // This function is not implemented + string_sequence_element(); + +private: + value_type * element_; + CORBA::Boolean release_; +}; + +} // namespace details +} // namespace CORBA + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_string_sequence_element_hpp diff --git a/TAO/tao/String_Traits_Base_T.h b/TAO/tao/String_Traits_Base_T.h new file mode 100644 index 00000000000..fc5197b01ea --- /dev/null +++ b/TAO/tao/String_Traits_Base_T.h @@ -0,0 +1,107 @@ +#ifndef guard_string_traits_base_hpp +#define guard_string_traits_base_hpp +/** + * @file + * + * @brief Isolate the string_traits from the accidental differences + * between wstring and string. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/String_Alloc.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +template<typename charT> +class String_Manager_T; + +template<typename charT> +class String_var; + +template<typename charT> +class String_out; + +namespace details +{ + +template<typename charT> +struct string_traits_base +{ +}; + +template<> +struct string_traits_base<char> +{ + typedef char char_type; + typedef TAO::String_var <char_type> string_var; + typedef TAO::String_out <char_type> string_out; + typedef TAO::String_Manager_T <char_type> string_mgr; + + inline static char_type * default_initializer() + { + return CORBA::string_dup(""); + } + + inline static char_type * duplicate(char_type const * s) + { + return CORBA::string_dup(s); + } + + inline static void release(char_type * s) + { + CORBA::string_free(s); + } + + inline static char_type * allocate (CORBA::ULong len) + { + return CORBA::string_alloc (len); + } +}; + +template<> +struct string_traits_base<CORBA::WChar> +{ + typedef CORBA::WChar char_type; + typedef TAO::String_var <char_type> string_var; + typedef TAO::String_out <char_type> string_out; + typedef TAO::String_Manager_T <char_type> string_mgr; + + inline static char_type * default_initializer() + { +#if defined(ACE_HAS_WCHAR) || defined(ACE_HAS_XPG4_MULTIBYTE_CHAR) + return CORBA::wstring_dup(L""); +#else +//#warning "platform not configured with native wchar_t support" +// static CORBA::WChar empty[] = { 0 }; + CORBA::WChar empty[] = { 0 }; + return CORBA::wstring_dup(empty); +#endif /* 0 */ + } + + inline static char_type * duplicate(char_type const * s) + { + return CORBA::wstring_dup(s); + } + + inline static void release(char_type * s) + { + CORBA::wstring_free(s); + } + + inline static char_type * allocate (CORBA::ULong len) + { + return CORBA::wstring_alloc (len); + } +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_string_traits_base_hpp diff --git a/TAO/tao/String_Traits_T.h b/TAO/tao/String_Traits_T.h new file mode 100644 index 00000000000..3b55b49a011 --- /dev/null +++ b/TAO/tao/String_Traits_T.h @@ -0,0 +1,77 @@ +#ifndef guard_string_traits_hpp +#define guard_string_traits_hpp +/** + * @file + * + * @brief Implement the element manipulation traits for string types. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "String_Traits_Base_T.h" + +#include <algorithm> +#include <functional> + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename char_type, class derived> +struct string_traits_decorator +{ + typedef char_type * value_type; + typedef char_type const * const_value_type; + + inline static void zero_range( + char_type ** begin, char_type ** end) + { + std::fill(begin, end, static_cast<char_type*>(0)); + } + + inline static void initialize_range( + char_type ** begin, char_type ** end) + { + std::generate(begin, end, &derived::default_initializer); + } + + inline static void copy_range( + char_type ** begin, char_type ** end, char_type ** dst) + { + std::transform(begin, end, dst, &derived::duplicate); + } + + inline static void release_range( + char_type ** begin, char_type ** end) + { + std::for_each(begin, end, &derived::release); + } + + inline static char_type const * initialize_if_zero(char_type * & element) + { + if (element == 0) + { + element = derived::default_initializer(); + } + return element; + } +}; + +template<class charT, bool dummy> +struct string_traits + : public string_traits_base<charT> + , public string_traits_decorator<charT,string_traits<charT,dummy> > +{ +}; + +} // namespace details +} // namespace CORBA + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_string_traits_hpp diff --git a/TAO/tao/Unbounded_Array_Allocation_Traits_T.h b/TAO/tao/Unbounded_Array_Allocation_Traits_T.h new file mode 100644 index 00000000000..283094749ba --- /dev/null +++ b/TAO/tao/Unbounded_Array_Allocation_Traits_T.h @@ -0,0 +1,54 @@ +#ifndef guard_unbounded_array_allocation_traits_hpp +#define guard_unbounded_array_allocation_traits_hpp +/** + * @file + * + * @brief Details can be found in the documentation for + * TAO::details::generic_sequence + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename T, bool dummy> +struct unbounded_array_allocation_traits +{ + typedef T value_type; + + inline static CORBA::ULong default_maximum() + { + return 0; + } + + inline static value_type * default_buffer_allocation() + { + return 0; + } + + inline static value_type * allocbuf(CORBA::ULong maximum) + { + return new value_type[maximum]; + } + + inline static void freebuf(value_type * buffer) + { + delete[] buffer; + } +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_array_allocation_traits_hpp diff --git a/TAO/tao/Unbounded_Array_Sequence_T.h b/TAO/tao/Unbounded_Array_Sequence_T.h new file mode 100644 index 00000000000..d91a6baf8be --- /dev/null +++ b/TAO/tao/Unbounded_Array_Sequence_T.h @@ -0,0 +1,150 @@ +#ifndef guard_unbounded_array_sequence_hpp +#define guard_unbounded_array_sequence_hpp +/** + * @file + * + * @brief Implement unbounded sequences for arrays. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "Unbounded_Array_Allocation_Traits_T.h" +#include "Generic_Sequence_T.h" +#include "Array_Traits_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +template<typename T_array, typename T_slice, typename T_tag> +class unbounded_array_sequence +{ +public: + typedef T_array * element_type; + typedef T_array value_type; + typedef T_slice * T_slice_ptr; + typedef T_slice_ptr * const_value_type; + typedef value_type & subscript_type; + typedef value_type const & const_subscript_type; + + typedef details::unbounded_array_allocation_traits<value_type,true> allocation_traits; + typedef details::array_traits <T_array, T_slice, T_tag> element_traits; + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + + inline unbounded_array_sequence() + : impl_() + {} + inline explicit unbounded_array_sequence(CORBA::ULong maximum) + : impl_(maximum) + {} + inline unbounded_array_sequence( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) + : impl_(maximum, length, data, release) + {} + inline CORBA::ULong maximum() const { + return impl_.maximum(); + } + inline CORBA::Boolean release() const { + return impl_.release(); + } + inline CORBA::ULong length() const { + return impl_.length(); + } + inline void length(CORBA::ULong length) { + impl_.length(length); + } + inline value_type const & operator[](CORBA::ULong i) const { + return impl_[i]; + } + inline value_type & operator[](CORBA::ULong i) { + return impl_[i]; + } + inline void replace( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + impl_.replace(maximum, length, data, release); + } + inline value_type const * get_buffer() const { + return impl_.get_buffer(); + } + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + return impl_.get_buffer(orphan); + } + inline void swap(unbounded_array_sequence & rhs) throw() { + impl_.swap(rhs.impl_); + } + static value_type * allocbuf(CORBA::ULong maximum) { + return implementation_type::allocbuf(maximum); + } + static void freebuf(value_type * buffer) { + implementation_type::freebuf(buffer); + } + +private: + implementation_type impl_; +}; +} + +namespace TAO +{ + template <typename stream, typename T_array, typename T_slice, typename T_tag> + bool demarshal_sequence(stream & strm, TAO::unbounded_array_sequence<T_array, T_slice, T_tag> & target) { + typedef TAO::unbounded_array_sequence<T_array, T_slice, T_tag> sequence; + typedef TAO::Array_Traits<T_array, T_slice, T_tag> array_traits; + typedef TAO_Array_Forany_T <T_array, T_slice, T_tag> forany; + + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + for(CORBA::ULong i = 0; i < new_length; ++i) { + forany tmp (array_traits::alloc ()); + bool _tao_marshal_flag = (strm >> tmp); + if (_tao_marshal_flag) { + array_traits::copy (buffer[i], tmp.in ()); + } + array_traits::free (tmp.inout ()); + if (!_tao_marshal_flag) { + return false; + } + } + tmp.swap(target); + return true; + } + + template <typename stream, typename T_array, typename T_slice, typename T_tag> + bool marshal_sequence(stream & strm, const TAO::unbounded_array_sequence<T_array, T_slice, T_tag> & source) { + typedef TAO_FixedArray_Var_T <T_array, T_slice, T_tag> fixed_array; + typedef TAO::Array_Traits<T_array, T_slice, T_tag> array_traits; + typedef TAO_Array_Forany_T <T_array, T_slice, T_tag> forany; + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + for(CORBA::ULong i = 0; i < length; ++i) { + fixed_array tmp_array = array_traits::dup (source[i]); + forany tmp (tmp_array.inout ()); + if (!(strm << tmp)) { + return false; + } + } + return true; + } +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_array_sequence_hpp diff --git a/TAO/tao/Unbounded_Basic_String_Sequence_T.h b/TAO/tao/Unbounded_Basic_String_Sequence_T.h new file mode 100644 index 00000000000..79aed91cb64 --- /dev/null +++ b/TAO/tao/Unbounded_Basic_String_Sequence_T.h @@ -0,0 +1,112 @@ +#ifndef guard_unbounded_basic_string_sequence_hpp +#define guard_unbounded_basic_string_sequence_hpp +/** + * @file + * + * @brief Implement unbounded sequences for strings and wide-strings. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "tao/Unbounded_Reference_Allocation_Traits_T.h" +#include "tao/String_Traits_T.h" +#include "tao/Generic_Sequence_T.h" +#include "tao/String_Sequence_Element_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename charT> +class unbounded_basic_string_sequence +{ +public: + typedef charT character_type; + typedef character_type * value_type; + typedef character_type const * const_value_type; + + typedef details::string_traits<character_type,true> element_traits; + typedef details::unbounded_reference_allocation_traits<value_type,element_traits,true> allocation_traits; + + typedef details::string_sequence_element<element_traits> element_type; + + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + + typedef element_type subscript_type; + typedef const_value_type const_subscript_type; + + inline unbounded_basic_string_sequence() + : impl_() + {} + inline explicit unbounded_basic_string_sequence(CORBA::ULong maximum) + : impl_(maximum) + {} + inline unbounded_basic_string_sequence( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release) + : impl_(maximum, length, data, release) + {} + + /* Use default ctor, operator= and dtor */ + inline CORBA::ULong maximum() const { + return impl_.maximum(); + } + inline CORBA::Boolean release() const { + return impl_.release(); + } + inline CORBA::ULong length() const { + return impl_.length(); + } + + inline void length(CORBA::ULong length) { + impl_.length(length); + } + inline const_value_type operator[](CORBA::ULong i) const { + return impl_[i]; + } + inline element_type operator[](CORBA::ULong i) { + return element_type(impl_[i], release()); + } + inline const_value_type const * get_buffer() const { + return impl_.get_buffer(); + } + inline void replace( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + impl_.replace(maximum, length, data, release); + } + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + return impl_.get_buffer(orphan); + } + inline void swap(unbounded_basic_string_sequence & rhs) throw() { + impl_.swap(rhs.impl_); + } + + static value_type * allocbuf(CORBA::ULong maximum) + { + return implementation_type::allocbuf(maximum); + } + static void freebuf(value_type * buffer) + { + implementation_type::freebuf(buffer); + } + + +private: + implementation_type impl_; +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_basic_string_sequence_hpp diff --git a/TAO/tao/Unbounded_Object_Reference_Sequence_T.h b/TAO/tao/Unbounded_Object_Reference_Sequence_T.h new file mode 100644 index 00000000000..37c1b73a251 --- /dev/null +++ b/TAO/tao/Unbounded_Object_Reference_Sequence_T.h @@ -0,0 +1,108 @@ +#ifndef guard_unbounded_object_reference_sequence_hpp +#define guard_unbounded_object_reference_sequence_hpp +/** + * @file + * + * @brief Implement unbounded sequences for object references. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "Unbounded_Reference_Allocation_Traits_T.h" +#include "Object_Reference_Traits_T.h" +#include "Generic_Sequence_T.h" +#include "Object_Reference_Sequence_Element_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +template<typename object_t, typename object_t_var> +class unbounded_object_reference_sequence +{ +public: + typedef object_t object_type; + typedef object_type * value_type; + typedef value_type const const_value_type; + + typedef details::object_reference_traits<object_type,object_t_var,true> element_traits; + typedef details::unbounded_reference_allocation_traits<value_type,element_traits,true> allocation_traits; + + typedef details::object_reference_sequence_element<element_traits> element_type; + typedef element_type subscript_type; + typedef value_type const & const_subscript_type; + + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + + inline unbounded_object_reference_sequence() + : impl_() + {} + inline explicit unbounded_object_reference_sequence(CORBA::ULong maximum) + : impl_(maximum) + {} + inline unbounded_object_reference_sequence( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release) + : impl_(maximum, length, data, release) + {} + + /* Use default ctor, operator= and dtor */ + inline CORBA::ULong maximum() const { + return impl_.maximum(); + } + inline CORBA::Boolean release() const { + return impl_.release(); + } + inline CORBA::ULong length() const { + return impl_.length(); + } + + inline void length(CORBA::ULong length) { + impl_.length(length); + } + inline value_type const & operator[](CORBA::ULong i) const { + return impl_[i]; + } + inline element_type operator[](CORBA::ULong i) { + return element_type(impl_[i], release()); + } + inline value_type const * get_buffer() const { + return impl_.get_buffer(); + } + inline void replace( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + impl_.replace(maximum, length, data, release); + } + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + return impl_.get_buffer(orphan); + } + inline void swap(unbounded_object_reference_sequence & rhs) throw() { + impl_.swap(rhs.impl_); + } + + static value_type * allocbuf(CORBA::ULong maximum) + { + return implementation_type::allocbuf(maximum); + } + static void freebuf(value_type * buffer) + { + implementation_type::freebuf(buffer); + } + + +private: + implementation_type impl_; +}; + +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_object_reference_sequence_hpp diff --git a/TAO/tao/Unbounded_Octet_Sequence_T.h b/TAO/tao/Unbounded_Octet_Sequence_T.h new file mode 100644 index 00000000000..a2c0122218f --- /dev/null +++ b/TAO/tao/Unbounded_Octet_Sequence_T.h @@ -0,0 +1,318 @@ +#ifndef guard_unbounded_octet_sequence_hpp +#define guard_unbounded_octet_sequence_hpp +/** + * @file + * + * @brief Implement octet sequences + * + * $Id$ + * + * @author Johnny Willemsen + */ +#include "tao/orbconf.h" + +#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) + +#include "tao/Unbounded_Value_Allocation_Traits_T.h" +#include "tao/Value_Traits_T.h" +#include "tao/Unbounded_Value_Sequence_T.h" +#include "tao/Range_Checking_T.h" + +#include "tao/Basic_Types.h" +#include "ace/Message_Block.h" +#include "ace/OS_Memory.h" +#include "ace/OS_NS_string.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +template<> +class unbounded_value_sequence<CORBA::Octet> +{ +public: + typedef CORBA::Octet value_type; + typedef CORBA::Octet element_type; + typedef CORBA::Octet const const_value_type; + typedef value_type & subscript_type; + typedef value_type const & const_subscript_type; + + typedef details::unbounded_value_allocation_traits<value_type,true> allocation_traits; + typedef details::value_traits<value_type,true> element_traits; + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + typedef details::range_checking<value_type,true> range; + + inline unbounded_value_sequence<CORBA::Octet>() + : maximum_ (allocation_traits::default_maximum()) + , length_ (0) + , buffer_ (allocation_traits::default_buffer_allocation()) + , release_ (true) + , mb_ (0) + {} + inline explicit unbounded_value_sequence<CORBA::Octet>(CORBA::ULong maximum) + : maximum_(maximum) + , length_(0) + , buffer_(allocbuf(maximum_)) + , release_(true) + , mb_ (0) + {} + inline unbounded_value_sequence<CORBA::Octet>( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) + : maximum_ (maximum), + length_ (length), + buffer_ (data), + release_ (release), + mb_ (0) + {} + inline ~unbounded_value_sequence<CORBA::Octet>() { + if (mb_) + ACE_Message_Block::release (mb_); + if (release_) + freebuf(buffer_); + } + /// Create a sequence of octets from a single message block (i.e. it + /// ignores any chaining in the meesage block). + inline unbounded_value_sequence<CORBA::Octet> (CORBA::ULong length, + const ACE_Message_Block* mb) + : maximum_ (length) + , length_ (length) + , buffer_ (reinterpret_cast <CORBA::Octet *>(mb->rd_ptr ())) + , release_ (false) + , mb_(0) { + // Get the message block flags. + ACE_Message_Block::Message_Flags flg = mb->self_flags (); + + // If the DONT_DELETE flag is disabled just a duplicate would + // help. If the DONT_DELETE flag is enabled a deep copy is needed as + // the contents would be on stack. Just incrementing the ref count + // on the stack based data block would only crash the program when + // the stack unwinds + if (ACE_BIT_DISABLED (flg, + ACE_Message_Block::DONT_DELETE)) + { + this->mb_ = ACE_Message_Block::duplicate (mb); + } + else + { + // As we are in CORBA mode, all the data blocks would be aligned + // on an 8 byte boundary + ACE_Message_Block msgb (*mb, + ACE_CDR::MAX_ALIGNMENT); + + // Get the base pointer of the incoming message block + char *start = ACE_ptr_align_binary (mb->base (), + ACE_CDR::MAX_ALIGNMENT); + + // Get the read and write displacements in the incoming stream + size_t rd_pos = mb->rd_ptr () - start; + size_t wr_pos = mb->wr_ptr () - start; + + this->mb_ = ACE_Message_Block::duplicate (&msgb); + + this->mb_->rd_ptr (rd_pos); + this->mb_->wr_ptr (wr_pos); + } + } + inline CORBA::ULong maximum() const { + return maximum_; + } + inline CORBA::Boolean release() const { + return release_; + } + inline CORBA::ULong length() const { + return length_; + } + inline void length(CORBA::ULong length) { + if (length <= maximum_ || length <= length_) + { + if (length_ < length) + { + // TODO This code does not provide the strong-exception + // guarantee, but it does provide the weak-exception + // guarantee. The problem would appear when + // initialize_range() raises an exception after several + // elements have been modified. One could argue that + // this problem is irrelevant, as the elements already + // modified are unreachable to conforming applications. + element_traits::initialize_range( + buffer_ + length_, buffer_ + length); + } + length_ = length; + return; + } + + unbounded_value_sequence<CORBA::Octet> tmp(length); + tmp.length_ = length; + element_traits::copy_range( + buffer_, buffer_ + length_, tmp.buffer_); + element_traits::initialize_range( + tmp.buffer_ + length_, tmp.buffer_ + length); + swap(tmp); + } + inline value_type const & operator[](CORBA::ULong i) const { + range::check(i, length_, maximum_, "operator[]() const"); + return buffer_[i]; + } + inline value_type & operator[](CORBA::ULong i) { + range::check(i, length_, maximum_, "operator[]() non-const"); + return buffer_[i]; + } + inline void replace( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + unbounded_value_sequence<CORBA::Octet> tmp(maximum, length, data, release); + swap(tmp); + } + inline value_type const * get_buffer() const { + if (buffer_ == 0) + { + buffer_ = allocbuf(maximum_); + } + return buffer_; + } + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + if (orphan && !release_) + { + return 0; + } + if (buffer_ == 0) + { + buffer_ = allocbuf(maximum_); + } + if (!orphan) + { + return buffer_; + } + + unbounded_value_sequence<CORBA::Octet> tmp; + swap(tmp); + tmp.release_ = false; + + return tmp.buffer_; + } + inline void swap(unbounded_value_sequence & rhs) throw() { + std::swap (mb_, rhs.mb_); + std::swap (maximum_, rhs.maximum_); + std::swap (length_, rhs.length_); + std::swap (buffer_, rhs.buffer_); + std::swap (release_, rhs.release_); + } + static value_type * allocbuf(CORBA::ULong maximum) { + return allocation_traits::allocbuf(maximum); + } + static void freebuf(value_type * buffer) { + allocation_traits::freebuf(buffer); + } + + /// Returns the underlying message block, the caller must *not* + /// release the copy. + inline ACE_Message_Block* mb (void) const { + return mb_; + } + + /// Replaces the current buffer with <mb>, using only <length> bytes. + /// It takes a duplicate of <mb> so the user still owns it. + inline void replace (CORBA::ULong length, const ACE_Message_Block* mb) { + unbounded_value_sequence<CORBA::Octet> s (length, mb); + swap (s); + } + + unbounded_value_sequence<CORBA::Octet> ( + const unbounded_value_sequence<CORBA::Octet> &rhs) + : maximum_ (0) + , length_ (0) + , buffer_(0) + , release_(false) + , mb_ (0) + { + unbounded_value_sequence<CORBA::Octet> tmp(rhs.maximum_); + tmp.length_ = rhs.length_; + if (rhs.mb_ == 0) + { + ACE_OS::memcpy (tmp.buffer_, + rhs.buffer_, + rhs.length_); + } + else + { + size_t offset = 0; + for (const ACE_Message_Block *i = rhs.mb_; i != 0; i = i->cont ()) + { + ACE_OS::memcpy (tmp.buffer_ + offset, + i->rd_ptr (), + i->length ()); + + offset += i->length (); + } + } + swap(tmp); + } + + unbounded_value_sequence<CORBA::Octet> & + operator= (const unbounded_value_sequence<CORBA::Octet> & rhs) + { + unbounded_value_sequence<CORBA::Octet> tmp(rhs); + swap(tmp); + return * this; + } + +private: + /// The maximum number of elements the buffer can contain. + CORBA::ULong maximum_; + + /// The current number of elements in the buffer. + CORBA::ULong length_; + + /// The buffer with all the elements, casting must be done in derived + /// classes. + mutable value_type * buffer_; + + /// If true then the sequence should release the buffer when it is + /// destroyed. + CORBA::Boolean release_; + ACE_Message_Block* mb_; +}; + +} // namespace TAO + +#endif + +inline +bool +operator== (const TAO::unbounded_value_sequence<CORBA::Octet> & lhs, + const TAO::unbounded_value_sequence<CORBA::Octet> & rhs) +{ + const CORBA::ULong rlen = rhs.length (); + + if (rlen != lhs.length ()) + { + return false; + } + + for (CORBA::ULong i = 0; i < rlen; ++i) + { + if (rhs[i] != lhs[i]) + { + return false; + } + } + + return true; +} + +inline +bool +operator!= (const TAO::unbounded_value_sequence<CORBA::Octet> & lhs, + const TAO::unbounded_value_sequence<CORBA::Octet> & rhs) +{ + return !(lhs == rhs); +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_octet_sequence_hpp diff --git a/TAO/tao/Unbounded_Reference_Allocation_Traits_T.h b/TAO/tao/Unbounded_Reference_Allocation_Traits_T.h new file mode 100644 index 00000000000..193bcf7c2bc --- /dev/null +++ b/TAO/tao/Unbounded_Reference_Allocation_Traits_T.h @@ -0,0 +1,69 @@ +#ifndef guard_unbounded_reference_allocation_traits_hpp +#define guard_unbounded_reference_allocation_traits_hpp +/** + * @file + * + * @brief Details can be found in the documentation for + * TAO::details::generic_sequence + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename T, class ref_traits, bool dummy> +struct unbounded_reference_allocation_traits +{ + typedef T value_type; + typedef ref_traits reference_traits; + + inline static CORBA::ULong default_maximum() + { + return 0; + } + + inline static value_type * default_buffer_allocation() + { + return 0; + } + + inline static value_type * allocbuf(CORBA::ULong maximum) + { + value_type * buffer = new value_type[maximum + 1]; + reinterpret_cast<value_type**>(buffer)[0] = buffer + maximum + 1; + + // no throw + reference_traits::zero_range(buffer + 1, buffer + maximum + 1); + + return buffer + 1; + } + + inline static void freebuf(value_type * buffer) + { + if(buffer != 0) + { + value_type * begin = buffer - 1; + value_type * end = reinterpret_cast<value_type*>(*begin); + reference_traits::release_range(buffer, end); + + buffer = begin; + } + delete[] buffer; + } +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_reference_allocation_traits_hpp diff --git a/TAO/tao/Unbounded_Sequence_CDR_T.h b/TAO/tao/Unbounded_Sequence_CDR_T.h new file mode 100644 index 00000000000..d942e07e9f3 --- /dev/null +++ b/TAO/tao/Unbounded_Sequence_CDR_T.h @@ -0,0 +1,567 @@ +#ifndef guard_unbounded_sequence_cdr +#define guard_unbounded_sequence_cdr +/** + * @file + * + * @brief Extract the sequence + * + * $Id$ + * + * @author Carlos O'Ryan + * @author Johnny Willemsen + */ + +#include "tao/orbconf.h" +#include "tao/SystemException.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO { + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::Short> & target) { + typedef TAO::unbounded_value_sequence <CORBA::Short> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_short_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::Long> & target) { + typedef TAO::unbounded_value_sequence <CORBA::Long> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_long_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::ULong> & target) { + typedef TAO::unbounded_value_sequence <CORBA::ULong> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_ulong_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::UShort> & target) { + typedef TAO::unbounded_value_sequence <CORBA::UShort> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_ushort_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + +#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::Octet> & target) { + typedef TAO::unbounded_value_sequence <CORBA::Octet> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + if (ACE_BIT_DISABLED (strm.start ()->flags (), ACE_Message_Block::DONT_DELETE)) + { + TAO_ORB_Core* orb_core = strm.orb_core (); + if (orb_core != 0 && strm.orb_core ()->resource_factory ()-> + input_cdr_allocator_type_locked () == 1) + { + tmp.replace (new_length, strm.start ()); + tmp.mb ()->wr_ptr (tmp.mb()->rd_ptr () + new_length); + strm.skip_bytes (new_length); + tmp.swap(target); + return true; + } + } + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_octet_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } +#else + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::Octet> & target) { + typedef TAO::unbounded_value_sequence <CORBA::Octet> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_octet_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } +#endif + + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::Char> & target) { + typedef TAO::unbounded_value_sequence <CORBA::Char> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_char_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + +# if defined (ACE_HAS_WCHAR) || defined (ACE_HAS_XPG4_MULTIBYTE_CHAR) + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::WChar> & target) { + typedef TAO::unbounded_value_sequence <CORBA::WChar> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_wchar_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } +#endif + + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::Float> & target) { + typedef TAO::unbounded_value_sequence <CORBA::Float> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_float_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::Double> & target) { + typedef TAO::unbounded_value_sequence <CORBA::Double> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_double_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::ULongLong> & target) { + typedef TAO::unbounded_value_sequence <CORBA::ULongLong> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_ulonglong_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::LongDouble> & target) { + typedef TAO::unbounded_value_sequence <CORBA::LongDouble> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_longdouble_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <CORBA::Boolean> & target) { + typedef TAO::unbounded_value_sequence <CORBA::Boolean> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_boolean_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template <typename stream, typename value_t> + bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence <value_t> & target) { + typedef TAO::unbounded_value_sequence <value_t> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + for(CORBA::ULong i = 0; i < new_length; ++i) { + if (!(strm >> buffer[i])) { + return false; + } + } + tmp.swap(target); + return true; + } + + template <typename stream, typename charT> + bool demarshal_sequence(stream & strm, TAO::details::unbounded_basic_string_sequence <charT> & target) { + typedef TAO::details::unbounded_basic_string_sequence <charT> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + for(CORBA::ULong i = 0; i < new_length; ++i) { + if (!(strm >> buffer[i])) { + return false; + } + } + tmp.swap(target); + return true; + } + + template <typename stream, typename object_t, typename object_t_var> + bool demarshal_sequence(stream & strm, TAO::unbounded_object_reference_sequence<object_t, object_t_var> & target) { + typedef TAO::unbounded_object_reference_sequence<object_t, object_t_var> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + for(CORBA::ULong i = 0; i < new_length; ++i) { + if (!(strm >> buffer[i])) { + return false; + } + } + tmp.swap(target); + return true; + } +} + +namespace TAO { + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::Short> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_short_array (source.get_buffer (), length); + } + + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::Long> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_long_array (source.get_buffer (), length); + } + + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::ULong> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_ulong_array (source.get_buffer (), length); + } + + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::UShort> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_ushort_array (source.get_buffer (), length); + } + +#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::Octet> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + if (source.mb ()) { + return strm.write_octet_array_mb (source.mb ()); + } + return strm.write_octet_array (source.get_buffer (), length); + } +#else + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::Octet> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_octet_array (source.get_buffer (), length); + } +#endif + + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::Char> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_char_array (source.get_buffer (), length); + } + +# if defined (ACE_HAS_WCHAR) || defined (ACE_HAS_XPG4_MULTIBYTE_CHAR) + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::WChar> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_wchar_array (source.get_buffer (), length); + } +#endif + + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::Float> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_float_array (source.get_buffer (), length); + } + + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::Double> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_double_array (source.get_buffer (), length); + } + + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::ULongLong> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_ulonglong_array (source.get_buffer (), length); + } + + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::LongDouble> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_longdouble_array (source.get_buffer (), length); + } + + template <typename stream> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <CORBA::Boolean> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_boolean_array (source.get_buffer (), length); + } + + template <typename stream, typename value_t> + bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence <value_t> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + for(CORBA::ULong i = 0; i < length; ++i) { + if (!(strm << source[i])) { + return false; + } + } + return true; + } + + template <typename stream, typename charT> + bool marshal_sequence(stream & strm, const TAO::details::unbounded_basic_string_sequence <charT> & source) { + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + for(CORBA::ULong i = 0; i < length; ++i) { + if (!(strm << source[i])) { + return false; + } + } + return true; + } + + template <typename stream, typename object_t, typename object_t_var> + bool marshal_sequence(stream & strm, const TAO::unbounded_object_reference_sequence<object_t, object_t_var> & source) { + typedef typename TAO::unbounded_object_reference_sequence<object_t, object_t_var>::object_type objec_t; + if (0 == &source) + ACE_THROW_RETURN (::CORBA::BAD_PARAM(0, CORBA::COMPLETED_MAYBE), false); + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + for(CORBA::ULong i = 0; i < length; ++i) { + if (!TAO::Objref_Traits<objec_t>::marshal (source[i], strm)) { + return false; + } + } + return true; + } +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif /* guard_unbounded_sequence_cdr */ diff --git a/TAO/tao/Unbounded_String_Sequence_T.h b/TAO/tao/Unbounded_String_Sequence_T.h new file mode 100644 index 00000000000..9b126308dcd --- /dev/null +++ b/TAO/tao/Unbounded_String_Sequence_T.h @@ -0,0 +1,43 @@ +#ifndef guard_unbounded_string_sequence_hpp +#define guard_unbounded_string_sequence_hpp +/** + * @file + * + * @brief Implement unbounded sequences for strings. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "tao/Unbounded_Basic_String_Sequence_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +class unbounded_string_sequence + : public details::unbounded_basic_string_sequence<char> +{ +public: + inline unbounded_string_sequence() + : details::unbounded_basic_string_sequence<char>() + {} + inline explicit unbounded_string_sequence(CORBA::ULong maximum) + : details::unbounded_basic_string_sequence<char>(maximum) + {} + inline unbounded_string_sequence( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) + : details::unbounded_basic_string_sequence<char>( + maximum, length, data, release) + {} +}; + +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_string_sequence_hpp diff --git a/TAO/tao/Unbounded_Value_Allocation_Traits_T.h b/TAO/tao/Unbounded_Value_Allocation_Traits_T.h new file mode 100644 index 00000000000..e435d0f1fbc --- /dev/null +++ b/TAO/tao/Unbounded_Value_Allocation_Traits_T.h @@ -0,0 +1,54 @@ +#ifndef guard_unbounded_value_allocation_traits_hpp +#define guard_unbounded_value_allocation_traits_hpp +/** + * @file + * + * @brief Details can be found in the documentation for + * TAO::details::generic_sequence + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename T, bool dummy> +struct unbounded_value_allocation_traits +{ + typedef T value_type; + + inline static CORBA::ULong default_maximum() + { + return 0; + } + + inline static value_type * default_buffer_allocation() + { + return 0; + } + + inline static value_type * allocbuf(CORBA::ULong maximum) + { + return new value_type[maximum]; + } + + inline static void freebuf(value_type * buffer) + { + delete[] buffer; + } +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_value_allocation_traits_hpp diff --git a/TAO/tao/Unbounded_Value_Sequence_T.h b/TAO/tao/Unbounded_Value_Sequence_T.h new file mode 100644 index 00000000000..e39893e1f5c --- /dev/null +++ b/TAO/tao/Unbounded_Value_Sequence_T.h @@ -0,0 +1,101 @@ +#ifndef guard_unbounded_value_sequence_hpp +#define guard_unbounded_value_sequence_hpp +/** + * @file + * + * @brief Implement unbounded sequences for types with value-like + * semantics. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Unbounded_Value_Allocation_Traits_T.h" +#include "tao/Value_Traits_T.h" +#include "tao/Generic_Sequence_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +template<class T> +class unbounded_value_sequence +{ +public: + typedef T value_type; + typedef T element_type; + typedef T const const_value_type; + typedef value_type & subscript_type; + typedef value_type const & const_subscript_type; + + typedef details::unbounded_value_allocation_traits<value_type,true> allocation_traits; + typedef details::value_traits<value_type,true> element_traits; + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + + inline unbounded_value_sequence() + : impl_() + {} + inline explicit unbounded_value_sequence(CORBA::ULong maximum) + : impl_(maximum) + {} + inline unbounded_value_sequence( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) + : impl_(maximum, length, data, release) + {} + /* Use default ctor, operator= and dtor */ + inline CORBA::ULong maximum() const { + return impl_.maximum(); + } + inline CORBA::Boolean release() const { + return impl_.release(); + } + inline CORBA::ULong length() const { + return impl_.length(); + } + inline void length(CORBA::ULong length) { + impl_.length(length); + } + inline value_type const & operator[](CORBA::ULong i) const { + return impl_[i]; + } + inline value_type & operator[](CORBA::ULong i) { + return impl_[i]; + } + inline void replace( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + impl_.replace(maximum, length, data, release); + } + inline value_type const * get_buffer() const { + return impl_.get_buffer(); + } + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + return impl_.get_buffer(orphan); + } + inline void swap(unbounded_value_sequence & rhs) throw() { + impl_.swap(rhs.impl_); + } + static value_type * allocbuf(CORBA::ULong maximum) { + return implementation_type::allocbuf(maximum); + } + static void freebuf(value_type * buffer) { + implementation_type::freebuf(buffer); + } + +private: + implementation_type impl_; +}; + +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_string_sequence_hpp + diff --git a/TAO/tao/Unbounded_Wstring_Sequence_T.h b/TAO/tao/Unbounded_Wstring_Sequence_T.h new file mode 100644 index 00000000000..fe8bd1d14b2 --- /dev/null +++ b/TAO/tao/Unbounded_Wstring_Sequence_T.h @@ -0,0 +1,43 @@ +#ifndef guard_unbounded_wstring_sequence_hpp +#define guard_unbounded_wstring_sequence_hpp +/** + * @file + * + * @brief Implement unbounded sequences for wide strings. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "tao/Unbounded_Basic_String_Sequence_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +class unbounded_wstring_sequence + : public details::unbounded_basic_string_sequence<CORBA::WChar> +{ +public: + inline unbounded_wstring_sequence() + : details::unbounded_basic_string_sequence<CORBA::WChar>() + {} + inline /* explicit */ unbounded_wstring_sequence(CORBA::ULong maximum) + : details::unbounded_basic_string_sequence<CORBA::WChar>(maximum) + {} + inline unbounded_wstring_sequence( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) + : details::unbounded_basic_string_sequence<CORBA::WChar>( + maximum, length, data, release) + {} +}; + +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_wstring_sequence_hpp diff --git a/TAO/tao/Value_Traits_T.h b/TAO/tao/Value_Traits_T.h new file mode 100644 index 00000000000..a16c7a02d89 --- /dev/null +++ b/TAO/tao/Value_Traits_T.h @@ -0,0 +1,53 @@ +#ifndef guard_value_traits_hpp +#define guard_value_traits_hpp +/** + * @file + * + * @brief Implement the element manipulation traits for types with + * value-like semantics. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include <algorithm> + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename T, bool dummy> +struct value_traits +{ + typedef T value_type; + typedef T const const_value_type; + + inline static void zero_range( + value_type * begin , value_type * end) + { + std::fill(begin, end, value_type ()); + } + + inline static void initialize_range( + value_type * begin, value_type * end) + { + std::fill(begin, end, value_type ()); + } + + inline static void copy_range( + value_type * begin, value_type * end, value_type *dst) + { + std::copy(begin, end, dst); + } +}; + +} // namespace details +} // namespace CORBA + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_value_traits_hpp diff --git a/TAO/tao/Valuetype/Bounded_Valuetype_Allocation_Traits_T.h b/TAO/tao/Valuetype/Bounded_Valuetype_Allocation_Traits_T.h new file mode 100644 index 00000000000..321fa834aba --- /dev/null +++ b/TAO/tao/Valuetype/Bounded_Valuetype_Allocation_Traits_T.h @@ -0,0 +1,65 @@ +#ifndef guard_bounded_valuetype_allocation_traits_hpp +#define guard_bounded_valuetype_allocation_traits_hpp +/** + * @file + * + * @brief Details can be found in the documentation for + * TAO::details::generic_sequence + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename T, class ref_traits, CORBA::ULong MAX, bool dummy> +struct bounded_valuetype_allocation_traits +{ + typedef T value_type; + typedef ref_traits valuetype_traits; + + inline static CORBA::ULong default_maximum() + { + return MAX; + } + + inline static value_type * default_buffer_allocation() + { + return allocbuf(MAX); + } + + inline static value_type * allocbuf(CORBA::ULong /* maximum */) + { + value_type * buffer = new value_type[MAX]; + // no throw + valuetype_traits::zero_range(buffer, buffer + MAX); + + return buffer; + } + + inline static void freebuf(value_type * buffer) + { + valuetype_traits::release_range(buffer, buffer + MAX); + delete[] buffer; + } + + inline static CORBA::ULong maximum() + { + return MAX; + } +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_bounded_valuetype_allocation_traits_hpp diff --git a/TAO/tao/Valuetype/Bounded_Valuetype_Sequence_T.h b/TAO/tao/Valuetype/Bounded_Valuetype_Sequence_T.h new file mode 100644 index 00000000000..ef96347f10e --- /dev/null +++ b/TAO/tao/Valuetype/Bounded_Valuetype_Sequence_T.h @@ -0,0 +1,144 @@ +#ifndef guard_bounded_valuetype_sequence_hpp +#define guard_bounded_valuetype_sequence_hpp +/** + * @file + * + * @brief Implement bounded sequences for object references. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "Bounded_Valuetype_Allocation_Traits_T.h" +#include "Valuetype_Traits_T.h" +#include "tao/Generic_Sequence_T.h" +#include "Valuetype_Sequence_Element_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +template<typename object_t, typename object_t_var, CORBA::ULong MAX> +class bounded_valuetype_sequence +{ +public: + typedef object_t object_type; + typedef object_type * value_type; + typedef value_type const const_value_type; + typedef object_t_var object_type_var; + + typedef details::valuetype_traits<object_type,object_type_var,true> element_traits; + typedef details::bounded_reference_allocation_traits<value_type,element_traits,MAX,true> allocation_traits; + + typedef details::valuetype_sequence_element<element_traits> element_type; + typedef element_type subscript_type; + typedef value_type const & const_subscript_type; + + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + + inline bounded_valuetype_sequence() + : impl_() + {} + inline bounded_valuetype_sequence( + CORBA::ULong length, + value_type * data, + CORBA::Boolean release) + : impl_(MAX, length, data, release) + {} + + /* Use default ctor, operator= and dtor */ + inline CORBA::ULong maximum() const { + return impl_.maximum(); + } + inline CORBA::Boolean release() const { + return impl_.release(); + } + inline CORBA::ULong length() const { + return impl_.length(); + } + + inline void length(CORBA::ULong length) { + implementation_type::range::check_length(length, MAX); + impl_.length(length); + } + inline value_type const & operator[](CORBA::ULong i) const { + return impl_[i]; + } + inline element_type operator[](CORBA::ULong i) { + return element_type(impl_[i], release()); + } + inline value_type const * get_buffer() const { + return impl_.get_buffer(); + } + inline void replace( + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + impl_.replace(MAX, length, data, release); + } + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + return impl_.get_buffer(orphan); + } + inline void swap(bounded_valuetype_sequence & rhs) throw() { + impl_.swap(rhs.impl_); + } + + static value_type * allocbuf(CORBA::ULong maximum) + { + return implementation_type::allocbuf(maximum); + } + static void freebuf(value_type * buffer) + { + implementation_type::freebuf(buffer); + } + + +private: + implementation_type impl_; +}; + + + template <typename stream, typename object_t, typename object_t_var, CORBA::ULong MAX> + bool marshal_sequence(stream & strm, const TAO::bounded_valuetype_sequence<object_t, object_t_var, MAX> & source) { + typedef typename TAO::bounded_valuetype_sequence<object_t, object_t_var, MAX>::object_type seq_object_t; + const ::CORBA::ULong length = source.length (); + if (!(strm << length)) { + return false; + } + for(CORBA::ULong i = 0; i < length; ++i) { + if (!TAO::Objref_Traits<seq_object_t>::marshal (source[i], strm)) { + return false; + } + } + return true; + } + + template <typename stream, typename object_t, typename object_t_var, CORBA::ULong MAX> + bool demarshal_sequence(stream & strm, TAO::bounded_valuetype_sequence<object_t, object_t_var, MAX> & target) { + typedef TAO::bounded_valuetype_sequence<object_t, object_t_var, MAX> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + for(CORBA::ULong i = 0; i < new_length; ++i) { + if (!(strm >> buffer[i])) { + return false; + } + } + tmp.swap(target); + return true; + } + +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + + +#endif // guard_bounded_valuetype_sequence_hpp diff --git a/TAO/tao/Valuetype/Unbounded_Valuetype_Allocation_Traits_T.h b/TAO/tao/Valuetype/Unbounded_Valuetype_Allocation_Traits_T.h new file mode 100644 index 00000000000..d407e683109 --- /dev/null +++ b/TAO/tao/Valuetype/Unbounded_Valuetype_Allocation_Traits_T.h @@ -0,0 +1,69 @@ +#ifndef guard_unbounded_valuetype_allocation_traits_hpp +#define guard_unbounded_valuetype_allocation_traits_hpp +/** + * @file + * + * @brief Details can be found in the documentation for + * TAO::details::generic_sequence + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename T, class ref_traits, bool dummy> +struct unbounded_valuetype_allocation_traits +{ + typedef T value_type; + typedef ref_traits valuetype_traits; + + inline static CORBA::ULong default_maximum() + { + return 0; + } + + inline static value_type * default_buffer_allocation() + { + return 0; + } + + inline static value_type * allocbuf(CORBA::ULong maximum) + { + value_type * buffer = new value_type[maximum + 1]; + reinterpret_cast<value_type**>(buffer)[0] = buffer + maximum + 1; + + // no throw + valuetype_traits::zero_range(buffer + 1, buffer + maximum + 1); + + return buffer + 1; + } + + inline static void freebuf(value_type * buffer) + { + if(buffer != 0) + { + value_type * begin = buffer - 1; + value_type * end = reinterpret_cast<value_type*>(*begin); + valuetype_traits::release_range(buffer, end); + + buffer = begin; + } + delete[] buffer; + } +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_unbounded_valuetype_allocation_traits_hpp diff --git a/TAO/tao/Valuetype/Unbounded_Valuetype_Sequence_T.h b/TAO/tao/Valuetype/Unbounded_Valuetype_Sequence_T.h new file mode 100644 index 00000000000..9695f8c940e --- /dev/null +++ b/TAO/tao/Valuetype/Unbounded_Valuetype_Sequence_T.h @@ -0,0 +1,145 @@ +#ifndef guard_unbounded_valuetype_sequence_hpp +#define guard_unbounded_valuetype_sequence_hpp +/** + * @file + * + * @brief Implement unbounded sequences for value types. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "Unbounded_Valuetype_Allocation_Traits_T.h" +#include "Valuetype_Traits_T.h" +#include "tao/Generic_Sequence_T.h" +#include "Valuetype_Sequence_Element_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + +template<typename object_t, typename object_t_var> +class unbounded_valuetype_sequence +{ +public: + typedef object_t object_type; + typedef object_type * value_type; + typedef value_type const const_value_type; + + typedef details::valuetype_traits<object_type,object_t_var,true> element_traits; + typedef details::unbounded_reference_allocation_traits<value_type,element_traits,true> allocation_traits; + + typedef details::valuetype_sequence_element<element_traits> element_type; + typedef element_type subscript_type; + typedef value_type const & const_subscript_type; + + typedef details::generic_sequence<value_type, allocation_traits, element_traits> implementation_type; + + inline unbounded_valuetype_sequence() + : impl_() + {} + inline explicit unbounded_valuetype_sequence(CORBA::ULong maximum) + : impl_(maximum) + {} + inline unbounded_valuetype_sequence( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release) + : impl_(maximum, length, data, release) + {} + + /* Use default ctor, operator= and dtor */ + inline CORBA::ULong maximum() const { + return impl_.maximum(); + } + inline CORBA::Boolean release() const { + return impl_.release(); + } + inline CORBA::ULong length() const { + return impl_.length(); + } + + inline void length(CORBA::ULong length) { + impl_.length(length); + } + inline value_type const & operator[](CORBA::ULong i) const { + return impl_[i]; + } + inline element_type operator[](CORBA::ULong i) { + return element_type(impl_[i], release()); + } + inline value_type const * get_buffer() const { + return impl_.get_buffer(); + } + inline void replace( + CORBA::ULong maximum, + CORBA::ULong length, + value_type * data, + CORBA::Boolean release = false) { + impl_.replace(maximum, length, data, release); + } + inline value_type * get_buffer(CORBA::Boolean orphan = false) { + return impl_.get_buffer(orphan); + } + inline void swap(unbounded_valuetype_sequence & rhs) throw() { + impl_.swap(rhs.impl_); + } + + static value_type * allocbuf(CORBA::ULong maximum) + { + return implementation_type::allocbuf(maximum); + } + static void freebuf(value_type * buffer) + { + implementation_type::freebuf(buffer); + } + + +private: + implementation_type impl_; +}; + + template <typename stream, typename object_t, typename object_t_var> + bool marshal_sequence(stream & strm, const TAO::unbounded_valuetype_sequence<object_t, object_t_var> & source) { + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + for(CORBA::ULong i = 0; i < length; ++i) { + if (!(strm << source[i])) { + return false; + } + } + return true; + } + + template <typename stream, typename object_t, typename object_t_var> + bool demarshal_sequence(stream & strm, TAO::unbounded_valuetype_sequence <object_t, object_t_var> & target) { + typedef typename TAO::unbounded_valuetype_sequence <object_t, object_t_var> sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + for(CORBA::ULong i = 0; i < new_length; ++i) { + if (!(strm >> buffer[i])) { + return false; + } + } + tmp.swap(target); + return true; + } + +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + + +#endif // guard_unbounded_valuetype_sequence_hpp diff --git a/TAO/tao/Valuetype/Valuetype_Adapter_Factory_Impl.cpp b/TAO/tao/Valuetype/Valuetype_Adapter_Factory_Impl.cpp new file mode 100644 index 00000000000..0c58622685d --- /dev/null +++ b/TAO/tao/Valuetype/Valuetype_Adapter_Factory_Impl.cpp @@ -0,0 +1,59 @@ +// $Id$ + +#include "tao/Valuetype/Valuetype_Adapter_Impl.h" +#include "tao/Valuetype/Valuetype_Adapter_Factory_Impl.h" + +#include "tao/ORB_Core.h" + +ACE_RCSID (ValueType, + Valuetype_Adapter_Factory_Impl, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +TAO_Valuetype_Adapter_Factory_Impl::~TAO_Valuetype_Adapter_Factory_Impl (void) +{ +} + +TAO_Valuetype_Adapter * +TAO_Valuetype_Adapter_Factory_Impl::create (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + TAO_Valuetype_Adapter_Impl *nva = 0; + ACE_NEW_THROW_EX (nva, + TAO_Valuetype_Adapter_Impl (), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (nva); + + return nva; +} + +// ********************************************************************* + +// Initialization and registration of dynamic service object. + +int +TAO_Valuetype_Adapter_Factory_Impl::Initializer (void) +{ + TAO_ORB_Core::valuetype_adapter_factory_name ( + "Concrete_Valuetype_Adapter_Factory" + ); + + return + ACE_Service_Config::process_directive ( + ace_svc_desc_TAO_Valuetype_Adapter_Factory_Impl + ); +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +ACE_STATIC_SVC_DEFINE ( + TAO_Valuetype_Adapter_Factory_Impl, + ACE_TEXT ("Concrete_Valuetype_Adapter_Factory"), + ACE_SVC_OBJ_T, + &ACE_SVC_NAME (TAO_Valuetype_Adapter_Factory_Impl), + ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, + 0 + ) + +ACE_FACTORY_DEFINE (TAO_Valuetype, TAO_Valuetype_Adapter_Factory_Impl) diff --git a/TAO/tao/Valuetype/Valuetype_Adapter_Factory_Impl.h b/TAO/tao/Valuetype/Valuetype_Adapter_Factory_Impl.h new file mode 100644 index 00000000000..91b8cbe6e8c --- /dev/null +++ b/TAO/tao/Valuetype/Valuetype_Adapter_Factory_Impl.h @@ -0,0 +1,70 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Valuetype_Adapter_Factory_Impl.h + * + * $Id$ + * + * @author Kees van Marle <kvmarle@remedy.nl> + */ +//============================================================================= + + +#ifndef TAO_VALUETYPE_ADAPTER_FACTORY_IMPL_H +#define TAO_VALUETYPE_ADAPTER_FACTORY_IMPL_H + +#include /**/ "ace/pre.h" + +#include "tao/Valuetype/valuetype_export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/Valuetype_Adapter_Factory.h" +#include "ace/Service_Config.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +class TAO_Valuetype_Adapter; + +/** + * @class TAO_Valuetype_Adapter_Factory_Impl + * + * @brief TAO_Valuetype_Adapter_Factory_Impl. + * + * Class that creates instances of TAO_Valuetype_Adapter (one per ORB). + * This is the derived class that contains the actual implementations. + */ +class TAO_Valuetype_Export TAO_Valuetype_Adapter_Factory_Impl + : public TAO_Valuetype_Adapter_Factory +{ +public: + virtual ~TAO_Valuetype_Adapter_Factory_Impl (void); + + virtual TAO_Valuetype_Adapter * create ( + ACE_ENV_SINGLE_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Used to force the initialization of the ORB code. + static int Initializer (void); +}; + +static int +TAO_Requires_ValueType_Initializer = + TAO_Valuetype_Adapter_Factory_Impl::Initializer (); + +TAO_END_VERSIONED_NAMESPACE_DECL + +ACE_STATIC_SVC_DECLARE (TAO_Valuetype_Adapter_Factory_Impl) +ACE_FACTORY_DECLARE (TAO_Valuetype, TAO_Valuetype_Adapter_Factory_Impl) + +#define TAO_VALUETYPE_SAFE_INCLUDE +// #include "tao/ValueType/ValueTypeC.h" +#undef TAO_VALUETYPE_SAFE_INCLUDE + +#include /**/ "ace/post.h" + +#endif /* TAO_VALUETYPE_ADAPTER_FACTORY_IMPL_H */ diff --git a/TAO/tao/Valuetype/Valuetype_Sequence_Element_T.h b/TAO/tao/Valuetype/Valuetype_Sequence_Element_T.h new file mode 100644 index 00000000000..e9631236169 --- /dev/null +++ b/TAO/tao/Valuetype/Valuetype_Sequence_Element_T.h @@ -0,0 +1,127 @@ +#ifndef guard_valuetype_sequence_element_hpp +#define guard_valuetype_sequence_element_hpp +/** + * @file + * + * @brief Implement the type returned by operator[] in valuetype + * sequences. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "tao/Basic_Types.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename obj_ref_traits> +class valuetype_sequence_element +{ +public: + typedef typename obj_ref_traits::object_type valuetype_type; + typedef valuetype_type * value_type; + typedef valuetype_type const * const_value_type; + typedef typename obj_ref_traits::object_type_var valuetype_var; + +private: + inline valuetype_sequence_element<obj_ref_traits> & pseudo_copy_swap( + valuetype_var & rhs) + { + if (release()) + { + obj_ref_traits::release(*element_); + } + *element_ = rhs._retn(); + return *this; + } + +public: + valuetype_sequence_element( + value_type & e, CORBA::Boolean release) + : element_(&e) + , release_(release) + { + } + + valuetype_sequence_element( + valuetype_sequence_element const & rhs) + : element_(rhs.element_) + , release_(rhs.release_) + { + } + + ~valuetype_sequence_element() + { + } + + valuetype_sequence_element & operator=( + valuetype_var const & rhs) + { + valuetype_var tmp(rhs); + return pseudo_copy_swap(tmp); + } + + valuetype_sequence_element & operator=( + valuetype_sequence_element const & rhs) + { + valuetype_var tmp(obj_ref_traits::duplicate(*rhs.element_)); + return pseudo_copy_swap(tmp); + } + + valuetype_sequence_element & operator=(value_type rhs) + { + valuetype_var tmp(rhs); + return pseudo_copy_swap(tmp); + } + + inline operator value_type() + { + return *element_; + } + + inline operator const_value_type() const + { + return *element_; + } + + inline value_type operator->() + { + return *element_; + } + + inline value_type operator->() const + { + return *element_; + } + + void swap(valuetype_sequence_element & rhs) + { + std::swap(element_, rhs.element_); + std::swap(release_, rhs.release_); + } + + inline CORBA::Boolean release() const + { + return release_; + } + +private: + // This function is not implemented + valuetype_sequence_element(); + +private: + value_type * element_; + CORBA::Boolean release_; +}; + +} // namespace details +} // namespace CORBA + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_valuetype_sequence_element_hpp diff --git a/TAO/tao/Valuetype/Valuetype_Traits_Base_T.h b/TAO/tao/Valuetype/Valuetype_Traits_Base_T.h new file mode 100644 index 00000000000..13dfe7ad06d --- /dev/null +++ b/TAO/tao/Valuetype/Valuetype_Traits_Base_T.h @@ -0,0 +1,57 @@ +#ifndef valuetype_traits_base_hpp +#define valuetype_traits_base_hpp +/** + * @file + * + * @brief Base class for the valuetype traits. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "tao/Objref_VarOut_T.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<typename object_t, typename object_t_var> +struct valuetype_traits_base +{ + typedef object_t object_type; + typedef object_type * value_type; + typedef object_type const * const_value_type; + typedef object_t_var object_type_var; + + inline static void release(object_type * object) + { + TAO::Value_Traits<object_type>::remove_ref(object); + } + + inline static object_type * duplicate(object_type * object) + { + TAO::Value_Traits<object_type>::add_ref(object); + return object; + } + + inline static object_type * nil() + { + return 0; + } + + inline static object_type * default_initializer() + { + return nil(); + } +}; + +} // namespace details +} // namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // valuetype_traits_base_hpp diff --git a/TAO/tao/Valuetype/Valuetype_Traits_T.h b/TAO/tao/Valuetype/Valuetype_Traits_T.h new file mode 100644 index 00000000000..f8b5ee460be --- /dev/null +++ b/TAO/tao/Valuetype/Valuetype_Traits_T.h @@ -0,0 +1,82 @@ +#ifndef guard_valuetype_traits_hpp +#define guard_valuetype_traits_hpp +/** + * @file + * + * @brief Implement the element manipulation traits for valuetype types. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "Valuetype_Traits_Base_T.h" + +#include <algorithm> +#include <functional> + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +namespace details +{ + +template<class object_t, class object_t_var, class derived> +struct valuetype_traits_decorator +{ + typedef object_t object_type; + typedef object_type * value_type; + typedef object_type const * const_value_type; + typedef object_t_var object_type_var; + + inline static void zero_range( + object_type ** begin, object_type ** end) + { + std::fill(begin, end, derived::nil()); + } + + inline static void initialize_range( + object_type ** begin, object_type ** end) + { + std::generate(begin, end, &derived::default_initializer); + } + + inline static void copy_range( + object_type ** begin, object_type ** end, object_type ** dst) + { + std::transform(begin, end, dst, &derived::duplicate); + } + + inline static void release_range( + object_type ** begin, object_type ** end) + { + std::for_each(begin, end, &derived::release); + } + + inline static object_type const * initialize_if_zero(object_type * & element) + { + if (element == 0) + { + element = derived::nil(); + } + return element; + } +}; + +template<typename object_t, typename object_t_var, bool dummy> +struct valuetype_traits + : public valuetype_traits_base<object_t, object_t_var> + , public valuetype_traits_decorator<object_t, object_t_var, valuetype_traits<object_t,object_t_var,dummy> > +{ + typedef object_t object_type; + typedef object_type * value_type; + typedef object_type const * const_value_type; + typedef object_t_var object_type_var; +}; + +} // namespace details +} // namespace CORBA + +TAO_END_VERSIONED_NAMESPACE_DECL + +#endif // guard_valuetype_traits_hpp diff --git a/TAO/tao/Valuetype_Adapter_Factory.cpp b/TAO/tao/Valuetype_Adapter_Factory.cpp new file mode 100644 index 00000000000..5cee721f6af --- /dev/null +++ b/TAO/tao/Valuetype_Adapter_Factory.cpp @@ -0,0 +1,14 @@ +// $Id$ +#include "tao/Valuetype_Adapter_Factory.h" + +ACE_RCSID (tao, + Valuetype_Adapter_Factory, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +TAO_Valuetype_Adapter_Factory::~TAO_Valuetype_Adapter_Factory (void) +{ +} + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/Valuetype_Adapter_Factory.h b/TAO/tao/Valuetype_Adapter_Factory.h new file mode 100644 index 00000000000..dabd7e7159a --- /dev/null +++ b/TAO/tao/Valuetype_Adapter_Factory.h @@ -0,0 +1,55 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Valuetype_Adapter_Factory.h + * + * $Id$ + * + * @author Kees van Marle <kvmarle@remedy.nl> + */ +//============================================================================= + + +#ifndef TAO_VALUETYPE_ADAPTER_FACTORY_H +#define TAO_VALUETYPE_ADAPTER_FACTORY_H + +#include /**/ "ace/pre.h" +#include "ace/Service_Object.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/SystemException.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +class TAO_Valuetype_Adapter; + +/** + * @class TAO_Valuetype_Adapter_Factory + * + * @brief TAO_Valuetype_Adapter_Factory. + * + * Class that creates one instance of TAO_Valuetype_Adapter per + * ORB on the ORB's first usage of its valuetype_adapter_. This is a base + * class for the actual implementation in the TAO_Valuetype library. + */ +class TAO_Export TAO_Valuetype_Adapter_Factory + : public ACE_Service_Object +{ +public: + virtual ~TAO_Valuetype_Adapter_Factory (void); + + virtual TAO_Valuetype_Adapter * create ( + ACE_ENV_SINGLE_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException)) = 0; +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_VALUETYPE_ADAPTER_FACTORY_H */ diff --git a/TAO/tao/Versioned_Namespace.h b/TAO/tao/Versioned_Namespace.h new file mode 100644 index 00000000000..4e23f8c4421 --- /dev/null +++ b/TAO/tao/Versioned_Namespace.h @@ -0,0 +1,58 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Versioned_Namespace.h + * + * $Id$ + * + * Versioned namespace support. + * + * Useful for preventing conflicts when using a third party library. + * + * @author Ossama Othman <ossama@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef TAO_VERSIONED_NAMESPACE_H +#define TAO_VERSIONED_NAMESPACE_H + +#if !defined (TAO_ORBCONF_H) && !defined (ACE_CONFIG_MACROS_H) +# error This header is only meant to be included after "tao/orbconf.h". +#endif /* !TAO_ORBCONF_H */ + + +#if !defined (TAO_HAS_VERSIONED_NAMESPACE) \ + && defined (ACE_HAS_VERSIONED_NAMESPACE) \ + && ACE_HAS_VERSIONED_NAMESPACE == 1 +# define TAO_HAS_VERSIONED_NAMESPACE 1 +#endif /* !TAO_HAS_VERSIONED_NAMESPACE + && ACE_HAS_VERSIONED_NAMESPACE == 1*/ + +#if defined (TAO_HAS_VERSIONED_NAMESPACE) && TAO_HAS_VERSIONED_NAMESPACE == 1 + +# ifndef TAO_VERSIONED_NAMESPACE_NAME +# include "tao/Version.h" + +// Preprocessor symbols will not be expanded if they are +// concatenated. Force the preprocessor to expand them during the +// argument prescan by calling a macro that itself calls another that +// performs the actual concatenation. +# define TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,BETA) TAO_ ## MAJOR ## _ ## MINOR ## _ ## BETA +# define TAO_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,BETA) TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,BETA) +# define TAO_VERSIONED_NAMESPACE_NAME TAO_MAKE_VERSIONED_NAMESPACE_NAME(TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION) +# endif /* !TAO_VERSIONED_NAMESPACE_NAME */ + +# define TAO_BEGIN_VERSIONED_NAMESPACE_DECL namespace TAO_VERSIONED_NAMESPACE_NAME { +# define TAO_END_VERSIONED_NAMESPACE_DECL } \ + using namespace TAO_VERSIONED_NAMESPACE_NAME; + +#else + +# define TAO_VERSIONED_NAMESPACE_NAME +# define TAO_BEGIN_VERSIONED_NAMESPACE_DECL +# define TAO_END_VERSIONED_NAMESPACE_DECL + +#endif /* TAO_HAS_VERSIONED_NAMESPACE */ + +#endif /* !TAO_VERSIONED_NAMESPACE_H */ diff --git a/TAO/tests/Bug_1676_Regression/Bug_1676_Regression.mpc b/TAO/tests/Bug_1676_Regression/Bug_1676_Regression.mpc new file mode 100644 index 00000000000..9a1892855d9 --- /dev/null +++ b/TAO/tests/Bug_1676_Regression/Bug_1676_Regression.mpc @@ -0,0 +1,19 @@ +// -*- MPC -*- +// $Id$ + +project(*Server): taoserver { + idlflags += -Sa -St + Source_Files { + Hello.cpp + server.cpp + } +} + +project(*Client): taoclient { + after += *Server + Source_Files { + TestC.cpp + client.cpp + } +} + diff --git a/TAO/tests/Bug_1676_Regression/Hello.cpp b/TAO/tests/Bug_1676_Regression/Hello.cpp new file mode 100644 index 00000000000..b0afc671195 --- /dev/null +++ b/TAO/tests/Bug_1676_Regression/Hello.cpp @@ -0,0 +1,98 @@ +// +// $Id$ +// +#include "Hello.h" + +ACE_RCSID(Hello, Hello, "$Id$") + +Hello::Hello (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +#if 0 +char * +Hello::get_string (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return CORBA::string_dup ("Hello there!"); +} +#endif + +::Test::StringList * +Hello::get_stringList ( + // ACE_ENV_SINGLE_ARG_DECL_NOT_USED + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + Test::StringList * seq; + ACE_NEW_RETURN (seq, + Test::StringList(10), + 0); + seq->length(10); + for (CORBA::ULong i = 0; i<seq->length(); i++) + { + char tmp[255] = {0}; + sprintf(tmp, "Hello World %d", i); + (*seq)[i] = CORBA::string_dup(tmp); + } + + return seq; +} + +void +Hello::get_stringList2 ( + ::CORBA::Boolean initialize, + ::Test::StringList_out osl + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + // CORBA::String_var the_string = osl->length(); + // ACE_DEBUG ((LM_DEBUG, "(%P|%t) - Entering get_stringList2(%.4d)\n", osl)); + + if (initialize) { + ACE_NEW (osl, + Test::StringList(10)); + + osl->length(5); + for (CORBA::ULong i = 0; i<osl->length(); i++) + { + char tmp[255] = {0}; + sprintf(tmp, "Hello Again %d", i); + (*osl)[i] = CORBA::string_dup(tmp); + } + } +} + +void +Hello::mod_stringList ( + ::Test::StringList & iosl + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + // osl->length(10); + for (CORBA::ULong i = 0; i<iosl.length(); i++) + { + char tmp[255] = {0}; + sprintf(tmp, "Hello Client %d", i); + if (i%2) { + iosl[i] = CORBA::string_dup(tmp); + } + } +} + +void +Hello::shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER); +} diff --git a/TAO/tests/Bug_1676_Regression/Hello.h b/TAO/tests/Bug_1676_Regression/Hello.h new file mode 100644 index 00000000000..d7bd79aab93 --- /dev/null +++ b/TAO/tests/Bug_1676_Regression/Hello.h @@ -0,0 +1,54 @@ +// +// $Id$ +// + +#ifndef HELLO_H +#define HELLO_H +#include /**/ "ace/pre.h" + +#include "TestS.h" + +/// Implement the Test::Hello interface +class Hello + : public virtual POA_Test::Hello +{ +public: + /// Constructor + Hello (CORBA::ORB_ptr orb); + + // = The skeleton methods + virtual ::Test::StringList * get_stringList ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )); + + virtual void get_stringList2 ( + ::CORBA::Boolean initialize, + ::Test::StringList_out osl + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )); + + virtual void mod_stringList ( + ::Test::StringList & iosl + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )); + + virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + /// Use an ORB reference to convert strings to objects and shutdown + /// the application. + CORBA::ORB_var orb_; +}; + +#include /**/ "ace/post.h" +#endif /* HELLO_H */ diff --git a/TAO/tests/Bug_1676_Regression/Test.idl b/TAO/tests/Bug_1676_Regression/Test.idl new file mode 100644 index 00000000000..9884187dc0c --- /dev/null +++ b/TAO/tests/Bug_1676_Regression/Test.idl @@ -0,0 +1,39 @@ +// -*- IDL -*- + +//============================================================================= +/** + * @file Test.idl + * + * $Id$ + * + * "test" IDL interface for the Uninitialized "out" param for sequence<string> + * can cause server to core test. + * + * @author Kees van Marle <kvmarle@ermedy.nl> + */ +//============================================================================= + + +module Test +{ + typedef sequence<string> StringList; + + /// A very simple interface + interface Hello + { + /// Return a string list + StringList get_stringList (); + + /// Return a string list + void get_stringList2 (in boolean initialize, out StringList osl); + + /// Modify a string list + void mod_stringList (inout StringList iosl); + + /// A method to shutdown the ORB + /** + * This method is used to simplify the test shutdown process + */ + oneway void shutdown (); + }; +}; diff --git a/TAO/tests/Bug_1676_Regression/client.cpp b/TAO/tests/Bug_1676_Regression/client.cpp new file mode 100644 index 00000000000..9687e3ec488 --- /dev/null +++ b/TAO/tests/Bug_1676_Regression/client.cpp @@ -0,0 +1,151 @@ +// $Id$ + +#include "TestC.h" +#include "ace/Get_Opt.h" + +ACE_RCSID(Hello, client, "$Id$") + +const char *ior = "file://test.ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + ior = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-k <ior> " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +void get_stringList2(Test::Hello_var hello); + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + CORBA::Object_var tmp = + orb->string_to_object(ior ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Test::Hello_var hello = + Test::Hello::_narrow(tmp.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (hello.in ())) + { + ACE_ERROR_RETURN ((LM_DEBUG, + "Nil Test::Hello reference <%s>\n", + ior), + 1); + } + + ACE_DEBUG ((LM_DEBUG, "\n(%P|%t) - get_stringList\n")); + + Test::StringList_var seq = + hello->get_stringList (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + for (CORBA::ULong i = 0; i<seq->length(); i++) { + CORBA::String_var the_string = CORBA::string_dup ((*seq)[i]); + ACE_DEBUG ((LM_DEBUG, "(%P|%t) - string returned <%s>\n", + the_string.in ())); + } + + ACE_DEBUG ((LM_DEBUG, "\n(%P|%t) - get_stringList2 with initialization\n")); + + Test::StringList_var seq2; + hello->get_stringList2(true, seq2.out()); + ACE_TRY_CHECK; + + for (CORBA::ULong i = 0; i<seq2->length(); i++) { + CORBA::String_var the_string = seq2.in()[i]; + ACE_DEBUG ((LM_DEBUG, "(%P|%t) - string returned <%s>\n", + the_string.in ())); + } + + ACE_DEBUG ((LM_DEBUG, "\n(%P|%t) - get_stringList2 without initialization\n")); + + get_stringList2(hello); + + ACE_DEBUG ((LM_DEBUG, "\n(%P|%t) - mod_stringList\n")); + + hello->mod_stringList(seq.inout()); + ACE_TRY_CHECK; + + for (CORBA::ULong i = 0; i<seq->length(); i++) { + CORBA::String_var the_string = CORBA::string_dup ((*seq)[i]); + ACE_DEBUG ((LM_DEBUG, "(%P|%t) - string returned <%s>\n", + the_string.in ())); + } + + hello->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} + +void get_stringList2(Test::Hello_var hello) +{ + Test::StringList_var seq2; + + ACE_TRY_NEW_ENV + { + // Shutdown the ORB and block until the shutdown is complete. + hello->get_stringList2(false, seq2.out()); + ACE_TRY_CHECK; + + for (CORBA::ULong i = 0; i<seq2->length(); i++) { + CORBA::String_var the_string = seq2.in()[i]; + ACE_DEBUG ((LM_DEBUG, "(%P|%t) - string returned <%s>\n", + the_string.in ())); + } + } + ACE_CATCH(CORBA::BAD_PARAM, ex) + { + ACE_DEBUG ((LM_DEBUG, "(%P|%t) - catched expected exception BAD_PARAM\n")); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "get_stringList2"); + } + ACE_ENDTRY; + + + return; +} diff --git a/TAO/tests/Bug_1676_Regression/run_test.pl b/TAO/tests/Bug_1676_Regression/run_test.pl new file mode 100755 index 00000000000..5d02e3606f1 --- /dev/null +++ b/TAO/tests/Bug_1676_Regression/run_test.pl @@ -0,0 +1,49 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../bin'; +use PerlACE::Run_Test; + +$status = 0; + +$iorfile = PerlACE::LocalFile ("server.ior"); +unlink $iorfile; + +if (PerlACE::is_vxworks_test()) { + $SV = new PerlACE::ProcessVX ("server", "-o server.ior"); +} +else { + $SV = new PerlACE::Process ("server", "-o $iorfile"); +} +$CL = new PerlACE::Process ("client", " -k file://$iorfile"); + +$SV->Spawn (); + +if (PerlACE::waitforfile_timed ($iorfile, + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: cannot find file <$iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$client = $CL->SpawnWaitKill (300); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$server = $SV->WaitKill (10); + +if ($server != 0) { + print STDERR "ERROR: server returned $server\n"; + $status = 1; +} + +unlink $iorfile; + +exit $status; diff --git a/TAO/tests/Bug_1676_Regression/server.cpp b/TAO/tests/Bug_1676_Regression/server.cpp new file mode 100644 index 00000000000..177aad4d1d8 --- /dev/null +++ b/TAO/tests/Bug_1676_Regression/server.cpp @@ -0,0 +1,115 @@ +// $Id$ + +#include "Hello.h" +#include "ace/Get_Opt.h" +#include "ace/OS_NS_stdio.h" + +ACE_RCSID (Hello, + server, + "$Id$") + +const char *ior_output_file = "test.ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "o:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'o': + ior_output_file = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-o <iorfile>" + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Object_var poa_object = + orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (root_poa.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Panic: nil RootPOA\n"), + 1); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + Hello *hello_impl; + ACE_NEW_RETURN (hello_impl, + Hello (orb.in ()), + 1); + PortableServer::ServantBase_var owner_transfer(hello_impl); + + Test::Hello_var hello = + hello_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var ior = + orb->object_to_string (hello.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Output the IOR to the <ior_output_file> + FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + ior_output_file), + 1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n")); + + root_poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/tests/Bug_2319_Regression/server.cpp b/TAO/tests/Bug_2319_Regression/server.cpp new file mode 100644 index 00000000000..8bf1e026102 --- /dev/null +++ b/TAO/tests/Bug_2319_Regression/server.cpp @@ -0,0 +1,365 @@ + +// $Id$ + +#include "ace/Thread_Manager.h" +#include "ace/OS_NS_stdio.h" +#include "ace/OS_NS_unistd.h" +#include "ace/Get_Opt.h" + +#include "TestS.h" +#include "TestC.h" + +int num_calls = 10; // total calls client is going to make +const int sleep_time = 1; // sleep for 1 sec on each call + +// This should equal num_calls within 'sleep * num_calls' seconds +int calls_received = 0; + +const char *ior = "file://test.ior"; +const char *ior_file = "test.ior"; + + + +/***************************/ +/*** Servant Declaration ***/ +/***************************/ + +class ST_AMH_Servant + : public virtual POA_Test::AMH_Roundtrip + { + public: + + ST_AMH_Servant (CORBA::ORB_ptr orb); + + void test_method (Test::AMH_RoundtripResponseHandler_ptr _tao_rh, + Test::Timestamp send_time + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + protected: + CORBA::ORB_ptr orb_; + }; + + + +/****************************/ +/**** Server Declaration ****/ +/****************************/ + +/** + Class that performs all 'dirty' initialisation work that is common to + all the AMH servers and 'hides' all the common ORB functions. + */ +class ST_AMH_Server + { + public: + ST_AMH_Server (int *argc, char **argv); + virtual ~ST_AMH_Server (); + + /// ORB inititalisation stuff + int start_orb_and_poa (const CORBA::ORB_var &_orb); + + /// register the servant with the poa + virtual void register_servant (ST_AMH_Servant *servant); + + /// orb-perform_work () abstraction + virtual void run_event_loop (); + + public: + + protected: + int *argc_; + char **argv_; + char *ior_output_file_; + CORBA::ORB_ptr orb_; + PortableServer::POA_var root_poa_; + + private: + /// Write servant IOR to file specified with the '-o' option + int write_ior_to_file (CORBA::String_var ior); + }; + + + +// ------------------------------------------------------------------------ +// ------------------------------------------------------------------------ +// ------------------------------------------------------------------------ + + + +// ------------------------------------------------------------------------ +// +int parse_args (int argc, char *argv[]) +{ +ACE_Get_Opt get_opts (argc, argv, "n:"); +int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'n': + num_calls = ACE_OS::atoi (get_opts.opt_arg ()); + break; + default: + break; + } + return 0; +} + + + + +/***************************/ +/*** Servant Definition ***/ +/***************************/ + +// ------------------------------------------------------------------------ +// +ST_AMH_Servant::ST_AMH_Servant (CORBA::ORB_ptr orb) + : orb_(CORBA::ORB::_duplicate(orb)) +{ +} + +// ------------------------------------------------------------------------ +// +void +ST_AMH_Servant::test_method (Test::AMH_RoundtripResponseHandler_ptr _tao_rh, + Test::Timestamp send_time + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + printf("Recieved Timestamp # %d \n", calls_received); + ACE_OS::sleep(1); + calls_received++; + + ACE_UNUSED_ARG (send_time); + ACE_UNUSED_ARG (_tao_rh); + + // When _tao_rh destructor is called, it shouldn't send anything to + // the client as well +} + + + + + +/*** Server Declaration ***/ + +// ------------------------------------------------------------------------ +// +ST_AMH_Server::ST_AMH_Server (int* argc, char **argv) + : argc_ (argc), argv_ (argv) +{ + this->ior_output_file_ = const_cast<char*>(ior_file); +} + +// ------------------------------------------------------------------------ +// +ST_AMH_Server::~ST_AMH_Server () +{ + ACE_TRY_NEW_ENV + { + this->root_poa_->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught:"); + } + ACE_ENDTRY; + +} + +// ------------------------------------------------------------------------ +// +int ST_AMH_Server::start_orb_and_poa (const CORBA::ORB_var &_orb) +{ + ACE_TRY_NEW_ENV + { + this->orb_ = CORBA::ORB::_duplicate(_orb.in ()); + ACE_TRY_CHECK; + + CORBA::Object_var poa_object = + this->orb_->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (poa_object.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to initialize the POA.\n"), + 1); + + this->root_poa_ = PortableServer::POA::_narrow (poa_object.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POAManager_var poa_manager = + this->root_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught:"); + return -1; + } + ACE_ENDTRY; + + return 0; +} + +// ------------------------------------------------------------------------ +// +void ST_AMH_Server::register_servant (ST_AMH_Servant *servant) +{ + ACE_TRY_NEW_ENV + { + Test::Roundtrip_var roundtrip = servant->_this(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var iorstr = this->orb_->object_to_string(roundtrip.in ()); + ACE_TRY_CHECK; + + (void) this->write_ior_to_file(iorstr); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught:"); + } + ACE_ENDTRY; +} + +// ------------------------------------------------------------------------ +// +void ST_AMH_Server::run_event_loop () +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + ACE_Time_Value period (1, 0); + while (1) + { + this->orb_->perform_work (&period); + ACE_TRY_CHECK; + + // when all calls from client have been recieved, exit + if (calls_received == num_calls ) + return; + } + ACE_TRY_CHECK; + } + ACE_CATCHANY + {} + ACE_ENDTRY; +} + +// ------------------------------------------------------------------------ +// +int +ST_AMH_Server::write_ior_to_file (CORBA::String_var iorstr) +{ + // If the ior_output_file exists, output the ior to it + FILE *output_file= ACE_OS::fopen (ST_AMH_Server::ior_output_file_, "w"); + if (output_file == 0) + { + ACE_ERROR ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + ST_AMH_Server::ior_output_file_)); + return -1; + } + + ACE_OS::fprintf (output_file, "%s", iorstr.in ()); + ACE_OS::fclose (output_file); + return 0; +} + + +// ------------------------------------------------------------------------ +// +static ACE_THR_FUNC_RETURN start_server(void* _arg) +{ +ST_AMH_Server *amh_server = static_cast<ST_AMH_Server*>(_arg); + amh_server->run_event_loop(); + return 0; +} + +// ------------------------------------------------------------------------ +// +static ACE_THR_FUNC_RETURN start_client(void* _arg) +{ +Test::Roundtrip_var roundtrip(static_cast<Test::Roundtrip_ptr>(_arg)); + + // Do a couple of calls on the server. If the sever is trying to + // do something stupid like sending an exception to us, then it + // won't be able to handle more than 1 request from us. +Test::Timestamp time = 10; + + for (int i = 0; i < num_calls; i++) + { + roundtrip->test_method(time); + ACE_DEBUG ((LM_DEBUG, "Sent call # %d \n", i)); + ACE_TRY_CHECK; + } + + return 0; +} + + +// ------------------------------------------------------------------------ +// +int main (int argc, char *argv[]) +{ + if (parse_args (argc, argv) != 0) + return 1; + +ST_AMH_Server amh_server (&argc, argv); +CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, ""); + + ACE_TRY_CHECK; + + amh_server.start_orb_and_poa(orb); + +ST_AMH_Servant servant(orb.in()); + + amh_server.register_servant(&servant); + + CORBA::Object_var object = orb->string_to_object(ior); + ACE_TRY_CHECK; + + Test::Roundtrip_var roundtrip = Test::Roundtrip::_narrow(object.in ()); + ACE_TRY_CHECK; + + if (CORBA::is_nil(roundtrip.in())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Nil Test::Roundtrip reference <%s>\n", + ior), + 1); + } + + ACE_thread_t serverThr; + ACE_thread_t clientThr; + + ACE_Thread_Manager::instance()->spawn(start_server, + (void*)&amh_server, + THR_NEW_LWP | THR_JOINABLE, + &serverThr + ); + + ACE_Thread_Manager::instance()->spawn(start_client, + (void*)roundtrip.in (), + THR_NEW_LWP | THR_JOINABLE, + &clientThr + ); + + ACE_Thread_Manager::instance()->join(clientThr); + printf("End client\n"); + ACE_Thread_Manager::instance()->join(serverThr); + printf("End server\n"); + + orb->destroy(); + ACE_TRY_CHECK; + + return 0; +} diff --git a/TAO/tests/Bug_2349_Regression/client.cpp b/TAO/tests/Bug_2349_Regression/client.cpp new file mode 100644 index 00000000000..c4a618f29f2 --- /dev/null +++ b/TAO/tests/Bug_2349_Regression/client.cpp @@ -0,0 +1,39 @@ +// $Id$ + +#include "fooC.h" +#include "ace/Log_Msg.h" + +const char* ior = "file://server.ior"; + +int +main (int argc, char** argv) +{ + try + { + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + CORBA::Object_var tmp = orb->string_to_object(ior); + + foo_var server = foo::_narrow(tmp.in ()); + + if (CORBA::is_nil (server.in ())) + { + ACE_ERROR_RETURN ((LM_DEBUG, + "Nil foo reference <%s>\n", + ior), + 1); + } + + server->destroy (); + + server->shutdown (); + + orb->destroy (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("CORBA::Exception"); + } + + return 0; +} diff --git a/TAO/tests/Bug_2349_Regression/foo.idl b/TAO/tests/Bug_2349_Regression/foo.idl new file mode 100644 index 00000000000..a31000cea9f --- /dev/null +++ b/TAO/tests/Bug_2349_Regression/foo.idl @@ -0,0 +1,8 @@ +// $Id$ + +interface foo +{ + oneway void destroy (); + + oneway void shutdown (); +}; diff --git a/TAO/tests/Bug_2349_Regression/server.cpp b/TAO/tests/Bug_2349_Regression/server.cpp new file mode 100644 index 00000000000..9e3b0abce15 --- /dev/null +++ b/TAO/tests/Bug_2349_Regression/server.cpp @@ -0,0 +1,115 @@ +// $Id$ + +#include "fooS.h" +#include "ace/OS_NS_stdio.h" + +const char* ior_output_file = "server.ior"; + +class foo_i: public POA_foo +{ +public: + foo_i (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) { + } + + void shutdown () + ACE_THROW_SPEC ((CORBA::SystemException)); + + void destroy () + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + CORBA::ORB_var orb_; +}; + +void +foo_i::shutdown () + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->orb_->shutdown (); +} + +void +foo_i::destroy () + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + bool expected_exception_raised = false; + + ACE_TRY + { + // This should case an BAD_INV_ORDER exception + this->orb_->destroy (); + ACE_TRY_CHECK; + } + ACE_CATCH (CORBA::BAD_INV_ORDER, ex) + { + if ((ex.minor() & 0xFFFU) == 3) + { + expected_exception_raised = true; + } + } + ACE_ENDTRY; + + if (!expected_exception_raised) + ACE_ERROR ((LM_ERROR, "ERROR: Caught incorrect exception\n")); + else + ACE_DEBUG ((LM_DEBUG, "Caught correct exception\n")); +} + + +int +main (int argc, char** argv) +{ + try + { + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + CORBA::Object_var poa_object = + orb->resolve_initial_references("RootPOA"); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in ()); + + if (CORBA::is_nil (root_poa.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Panic: nil RootPOA\n"), + 1); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (); + + foo_i* server_impl = 0; + ACE_NEW_RETURN (server_impl, + foo_i (orb.in ()), + 1); + PortableServer::ServantBase_var owner_transfer(server_impl); + + foo_var server = server_impl->_this (); + + CORBA::String_var ior = + orb->object_to_string (server.in ()); + + // Output the IOR to the <ior_output_file> + FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + ior_output_file), + 1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + + poa_manager->activate (); + + orb->run (); + + root_poa->destroy (1, 1); + orb->destroy (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("CORBA::Exception"); + } + + return 0; +} diff --git a/TAO/tests/Bug_2503_Regression/Bug_2503_Regression.mpc b/TAO/tests/Bug_2503_Regression/Bug_2503_Regression.mpc new file mode 100644 index 00000000000..8541c4b3c74 --- /dev/null +++ b/TAO/tests/Bug_2503_Regression/Bug_2503_Regression.mpc @@ -0,0 +1,20 @@ +// -*- MPC -*- +// $Id$ + +project(*Server): messaging, taoserver, exceptions, ami { + Source_Files { + test_i.cpp + common.cpp + server.cpp + } +} + +project(*Client): messaging, taoexe, portableserver, exceptions, ami { + after += *Server + Source_Files { + test_i.cpp + common.cpp + client.cpp + } +} + diff --git a/TAO/tests/Bug_2503_Regression/Test.idl b/TAO/tests/Bug_2503_Regression/Test.idl new file mode 100644 index 00000000000..8e4193d12b7 --- /dev/null +++ b/TAO/tests/Bug_2503_Regression/Test.idl @@ -0,0 +1,6 @@ +// $Id$ + +interface Test +{ + void the_operation(out long x); +}; diff --git a/TAO/tests/Bug_2503_Regression/client.cpp b/TAO/tests/Bug_2503_Regression/client.cpp new file mode 100644 index 00000000000..d7f3a8b5c9b --- /dev/null +++ b/TAO/tests/Bug_2503_Regression/client.cpp @@ -0,0 +1,92 @@ +// $Id$ + +#include "test_i.h" +#include "common.h" +#include "ace/Get_Opt.h" + +void parse_args(int argc, char * argv[]); +void test_remote_calls(CORBA::ORB_ptr orb); +void test_colocated_calls(CORBA::ORB_ptr orb); + +int +main(int argc, char * argv[]) +{ + try + { + CORBA::ORB_var orb = initialize_orb_and_poa(argc, argv); + + parse_args(argc, argv); + + test_remote_calls(orb.in()); + test_colocated_calls(orb.in()); + } + catch(...) + { + report_exception(); + return 1; + } + + return 0; +} + +const char *ior_argument = "file://test.ior"; +int niterations = 100; + +void +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:i:"); + int c; + + while ((c = get_opts ()) != -1) + { + switch (c) + { + case 'k': + ior_argument = get_opts.opt_arg (); + break; + + case 'i': + niterations = ACE_OS::atoi (get_opts.opt_arg ()); + break; + + case '?': + default: + throw "Usage: [-k ior] [-i iteration_count]"; + } + } +} + +void test_impl( + CORBA::ORB_ptr orb, + char const * ior) +{ + CORBA::Object_var object = orb->string_to_object(ior); + Test_var test = Test::_narrow(object.in()); + + if(CORBA::is_nil(test.in())) + { + throw "Nil reference after narrow"; + } + + for(int i = 0; i != niterations; ++i) + { + test->sendc_the_operation(AMI_TestHandler::_nil()); + } + + ACE_Time_Value wait_for_responses_interval(1, 0); + orb->run(wait_for_responses_interval); +} + +void test_remote_calls(CORBA::ORB_ptr orb) +{ + test_impl(orb, ior_argument); +} + +void test_colocated_calls(CORBA::ORB_ptr orb) +{ + CORBA::String_var ior = + test_i::create_and_activate_server(orb); + + test_impl(orb, ior.in()); +} diff --git a/TAO/tests/Bug_2503_Regression/common.cpp b/TAO/tests/Bug_2503_Regression/common.cpp new file mode 100644 index 00000000000..c295a6eb141 --- /dev/null +++ b/TAO/tests/Bug_2503_Regression/common.cpp @@ -0,0 +1,45 @@ +// $Id$ + +#include "common.h" +#include "tao/PortableServer/PortableServer.h" + +CORBA::ORB_ptr +initialize_orb_and_poa(int & argc, char * argv[]) +{ + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, ""); + + CORBA::Object_var poa_object = + orb->resolve_initial_references("RootPOA"); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in ()); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (); + + poa_manager->activate (); + + return orb._retn(); +} + +void report_exception() +{ + try + { + throw; + } + catch(CORBA::Exception & ex) + { + ACE_PRINT_EXCEPTION (ex, "CORBA Exception raised:"); + } + catch(char const * msg) + { + ACE_ERROR ((LM_ERROR, "Exception (char const*) raised: %s\n", + msg)); + } + catch(...) + { + ACE_ERROR ((LM_ERROR, "Unknown exception raised\n")); + } +} diff --git a/TAO/tests/Bug_2503_Regression/common.h b/TAO/tests/Bug_2503_Regression/common.h new file mode 100644 index 00000000000..f4c08c7035f --- /dev/null +++ b/TAO/tests/Bug_2503_Regression/common.h @@ -0,0 +1,12 @@ +// $Id$ + +#ifndef common_h +#define common_h + +#include "tao/ORB.h" + +CORBA::ORB_ptr initialize_orb_and_poa(int & argc, char * argv[]); +void report_exception(); + +#endif // common_h + diff --git a/TAO/tests/Bug_2503_Regression/run_test.pl b/TAO/tests/Bug_2503_Regression/run_test.pl new file mode 100755 index 00000000000..8df523760ef --- /dev/null +++ b/TAO/tests/Bug_2503_Regression/run_test.pl @@ -0,0 +1,54 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../bin'; +use PerlACE::Run_Test; + +$status = 0; + +$iorfile = PerlACE::LocalFile ("server.ior"); +unlink $iorfile; + +if (PerlACE::is_vxworks_test()) { + $SV = new PerlACE::ProcessVX ("server", "-o server.ior"); +} +else { + $SV = new PerlACE::Process ("server", "-o $iorfile"); +} +$CL = new PerlACE::Process ("client", " -k file://$iorfile -ORBDebugLevel 10"); + +$server = $SV->Spawn (); + +if ($server != 0) { + print STDERR "ERROR: server returned $server\n"; + exit 1; +} + +if (PerlACE::waitforfile_timed ($iorfile, + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: cannot find file <$iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$client = $CL->SpawnWaitKill (300); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$server = $SV->WaitKill (10); + +if ($server != 0) { + print STDERR "ERROR: server returned $server\n"; + $status = 1; +} + +unlink $iorfile; + +exit $status; diff --git a/TAO/tests/Bug_2503_Regression/server.cpp b/TAO/tests/Bug_2503_Regression/server.cpp new file mode 100644 index 00000000000..7ffeceb406e --- /dev/null +++ b/TAO/tests/Bug_2503_Regression/server.cpp @@ -0,0 +1,77 @@ +// $Id$ + +#include "test_i.h" +#include "common.h" +#include "ace/Get_Opt.h" +#include "ace/OS_NS_stdio.h" + +void parse_args(int argc, char * argv[]); +void write_ior_to_file(char const * ior); + +int +main(int argc, char * argv[]) +{ + try + { + CORBA::ORB_var orb = initialize_orb_and_poa(argc, argv); + + parse_args(argc, argv); + + CORBA::String_var ior = + test_i::create_and_activate_server(orb.in()); + + write_ior_to_file(ior.in()); + + ACE_Time_Value timeout (10, 0); + orb->run(timeout); + } + catch(...) + { + report_exception(); + return 1; + } + return 0; +} + +namespace +{ +const char *ior_output_file = "test.ior"; +} + +void +parse_args(int argc, char * argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "o:"); + int c; + + while ((c = get_opts ()) != -1) + { + switch (c) + { + case 'o': + ior_output_file = get_opts.opt_arg (); + break; + + case '?': + default: + throw "Usage: server [-o iorfile]\n"; + } + } +} + +void write_ior_to_file(char const * ior) +{ + if (ior_output_file == 0) + { + return; + } + + FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); + if (output_file == 0) + { + throw "Cannot open output file to write the IOR"; + } + + ACE_OS::fprintf (output_file, "%s", ior); + ACE_OS::fclose (output_file); +} diff --git a/TAO/tests/Bug_2503_Regression/test_i.cpp b/TAO/tests/Bug_2503_Regression/test_i.cpp new file mode 100644 index 00000000000..eabea6fb241 --- /dev/null +++ b/TAO/tests/Bug_2503_Regression/test_i.cpp @@ -0,0 +1,28 @@ +// $Id$ + +#include "test_i.h" + +#include "tao/Utils/Servant_Var.h" + +test_i:: +test_i() +{ +} + +void test_i:: +the_operation(CORBA::Long & x) + throw(CORBA::SystemException) +{ + x = 42; +} + +char * test_i:: +create_and_activate_server(CORBA::ORB_ptr orb) +{ + TAO::Utils::Servant_Var<test_i> impl( + new test_i); + + Test_var ref = impl->_this(); + + return orb->object_to_string(ref.in()); +} diff --git a/TAO/tests/Bug_2503_Regression/test_i.h b/TAO/tests/Bug_2503_Regression/test_i.h new file mode 100644 index 00000000000..e90082479f9 --- /dev/null +++ b/TAO/tests/Bug_2503_Regression/test_i.h @@ -0,0 +1,20 @@ +// $Id$ + +#ifndef test_i_h +#define test_i_h + +#include "TestS.h" + +class test_i + : public POA_Test +{ +public: + test_i(); + + virtual void the_operation(CORBA::Long & x) + throw(CORBA::SystemException); + + static char * create_and_activate_server(CORBA::ORB_ptr); +}; + +#endif // test_i_h diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.cpp new file mode 100644 index 00000000000..a928eb12169 --- /dev/null +++ b/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.cpp @@ -0,0 +1,209 @@ +// $Id$ +#include "Foo_B_ClientEngine.h" +#include "Callback_i.h" +#include "Foo_B_Statistics.h" +#include "TestAppExceptionC.h" +#include "AppHelper.h" +#include "ace/Log_Msg.h" +#include "ace/OS.h" + +const char* ONEWAY_ARG_TEST_STR = "TEST"; + +Foo_B_ClientEngine::Foo_B_ClientEngine(Foo_B_ptr obj, + Callback_ptr callback, + unsigned client_id, + bool collocated) + : obj_(Foo_B::_duplicate(obj)), + callback_(Callback::_duplicate(callback)), + client_id_(client_id), + collocated_(collocated) +{ +} + + +Foo_B_ClientEngine::~Foo_B_ClientEngine() +{ +} + + +bool +Foo_B_ClientEngine::execute(ACE_ENV_SINGLE_ARG_DECL) +{ + // Make sure the connection is established before making + // remote invocations. + if (AppHelper::validate_connection (this->obj_.in ()) == false) + { + ACE_ERROR((LM_ERROR, "(%P|%t)Foo_A_ClientEngine::execute " \ + "client %d connect failed.\n", this->client_id_)); + return false; + } + + // Verify the return values and return the results. + bool check_validity = true; + + this->obj_->op1(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + this->obj_->op2(this->client_id_ ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + CORBA::Long value = this->obj_->op3(this->client_id_ ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + if (value != static_cast<CORBA::Long>(this->client_id_)) + { + check_validity = false; + } + + for (CORBA::ULong j = 1; j <= 5; j++) + { + this->obj_->op4(495 + (this->client_id_ * 5) + j ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + } + + bool caught_exception = false; + + ACE_TRY + { + this->obj_->op5(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCH (FooException, ex) + { + // Expected + caught_exception = true; + } + ACE_ENDTRY; + + if (! caught_exception) + { + check_validity = false; + } + + TimeOfDay t; + t.hour = 12; + t.minute = 30; + t.second = 10; + + char test_str [20]; + ACE_OS::sprintf (test_str, "%d %s", this->client_id_, ONEWAY_ARG_TEST_STR); + + char buffer [20]; + + // Two-Way calls with "inout" and fixed size "in" arguments. + CORBA::String_var message = CORBA::string_dup(test_str); + + CORBA::Boolean result = this->obj_->op6( t, message.inout() ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + ACE_UNUSED_ARG(result); + + ACE_OS::sprintf (buffer, "%d %s %d:%d:%d", this->client_id_, ONEWAY_ARG_TEST_STR, + t.hour, t.minute, t.second); + + if (ACE_OS::strncmp (message.in (), buffer, ACE_OS::strlen (buffer)) != 0) + { + check_validity = false; + } + + // Callback test. + this->obj_->op7 (this->callback_.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + // One-Way calls with various arguments. + CORBA::String_var ub_string = CORBA::string_dup( test_str ); + this->obj_->test_unbounded_string_arg (ub_string.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + CORBA::String_var bd_string = CORBA::string_dup( test_str ); + this->obj_->test_bounded_string_arg (bd_string.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + Fixed_Array fixed_array; + + for (CORBA::ULong m = 0 ; m < 20; m ++) + { + fixed_array[m] = this->client_id_ + m; + } + + this->obj_->test_fixed_array_arg (fixed_array ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + Var_Array var_array; + + for (CORBA::ULong k = 0; k < 3; k++) + { + ACE_OS::sprintf (buffer, "%d %s %d", + this->client_id_, ONEWAY_ARG_TEST_STR, k); + var_array[k] = CORBA::string_dup(buffer); + } + + this->obj_->test_var_array_arg (var_array ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + Bounded_Var_Size_var bd_var_size_string = new Bounded_Var_Size(); + + bd_var_size_string->replace (ACE_OS::strlen (test_str) + 1, + test_str); + this->obj_->test_bounded_var_size_arg (bd_var_size_string.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + Unbounded_Var_Size_var ub_var_size_string = new Unbounded_Var_Size(100); + ub_var_size_string->replace (ub_var_size_string->maximum (), + ACE_OS::strlen (test_str) + 1, + test_str); + this->obj_->test_unbounded_var_size_arg (ub_var_size_string.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + this->obj_->test_fixed_size_arg (t ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + this->obj_->test_special_basic_arg (this->client_id_ % 2, + this->client_id_ + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + this->obj_->test_objref_arg (this->callback_.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + // Sleep for 5 seconds before invoking done(). + // This is a workaround with the problem that some oneway requests lost + // when the server has multiple orb threads. + ACE_OS::sleep (5); + this->obj_->done(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (false); + + return check_validity; +} + + +void +Foo_B_ClientEngine::expected_results(Foo_B_Statistics& stats) +{ + stats.expected(1, 1, Foo_B_Statistics::FOO_B_STAT_NONE); + stats.expected(2, 1, Foo_B_Statistics::FOO_B_STAT_LONG); + stats.expected(3, 1, Foo_B_Statistics::FOO_B_STAT_LONG); + stats.expected(4, 5, Foo_B_Statistics::FOO_B_STAT_LONG); + stats.expected(5, 1, Foo_B_Statistics::FOO_B_STAT_NONE); + stats.expected(6, 1, Foo_B_Statistics::FOO_B_STAT_NONE); + stats.expected(7, 1, Foo_B_Statistics::FOO_B_STAT_NONE); + stats.expected(8, 1, Foo_B_Statistics::FOO_B_STAT_STRING); + stats.expected(9, 1, Foo_B_Statistics::FOO_B_STAT_STRING); + stats.expected(10, 1, Foo_B_Statistics::FOO_B_STAT_LONG); + stats.expected(11, 1, Foo_B_Statistics::FOO_B_STAT_STRING); + stats.expected(12, 1, Foo_B_Statistics::FOO_B_STAT_STRING); + stats.expected(13, 1, Foo_B_Statistics::FOO_B_STAT_NONE); + stats.expected(14, 1, Foo_B_Statistics::FOO_B_STAT_STRING); + stats.expected(15, 1, Foo_B_Statistics::FOO_B_STAT_NONE); + stats.expected(16, 1, Foo_B_Statistics::FOO_B_STAT_NONE); + stats.expected_callbacks (1); +} + + +unsigned +Foo_B_ClientEngine::expected_callbacks () +{ + return 1; +} diff --git a/TAO/tests/OBV/Simple/Client_i.cpp b/TAO/tests/OBV/Simple/Client_i.cpp new file mode 100644 index 00000000000..c3548daf462 --- /dev/null +++ b/TAO/tests/OBV/Simple/Client_i.cpp @@ -0,0 +1,69 @@ +//$Id$ + +#include "Client_i.h" +#include "OBV_impl.h" + +#include "tao/ORB_Core.h" + +#include "ace/Get_Opt.h" +#include "ace/OS_NS_sys_time.h" + +int +Checkpoint_Client_i::run (const char *name, + int argc, + char *argv[]) +{ + // Initialize the client (read ior...). + if (checkpoint.init (name,argc, argv) == -1) + return -1; + + // Set random seed + ACE_Time_Value now (ACE_OS::gettimeofday ()); + ACE_OS::srand ((unsigned int) now.sec () ); + + ACE_DECLARE_NEW_CORBA_ENV; + + ACE_TRY + { + ACE_DEBUG ((LM_DEBUG, "Send some random events:\n")); + + CORBA::Long value = 64; + Event_var t_e (static_cast<Event*> (new Event_impl (value))); + t_e->do_print (); + checkpoint->put_event (t_e ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + value = 34; + t_e = new Event_impl (value); + t_e->do_print (); + checkpoint->put_event (t_e ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (checkpoint.shutdown () == 1) + checkpoint->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); + + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"\n Exception in RMI"); + return -1; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (-1); + + return 0; +} + +// Constructor. +Checkpoint_Client_i::Checkpoint_Client_i (void) +{ + //no-op +} + +//Destructor. +Checkpoint_Client_i::~Checkpoint_Client_i (void) +{ + //no-op +} + diff --git a/TAO/tests/OBV/Simple/Client_i.h b/TAO/tests/OBV/Simple/Client_i.h new file mode 100644 index 00000000000..5c705839530 --- /dev/null +++ b/TAO/tests/OBV/Simple/Client_i.h @@ -0,0 +1,56 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/examples/OBV/Typed_Events +// +// = FILENAME +// Client_i.h +// +// = DESCRIPTION +// This class is a template for a CORBA client. +// run () sends some valuetypes to a server and +// gets back a list of valuetypes. +// +// = AUTHOR +// +// Torsten Kuepper +// based on the echo example +// from code from Balachandran Natarajan <bala@cs.wustl.edu> +// +// ============================================================================ + +#ifndef ECHO_CLIENT_I_H +#define ECHO_CLIENT_I_H + +#include "OBVC.h" +#include "Simple_util.h" + +class Checkpoint_Client_i +{ + // = TITLE + // Checkpoint_Client interface subclass. + // + // = DESCRIPTION + // This class implements the interface between the interface + // objects and the client . +public: + // = Initialization and termination methods. + Checkpoint_Client_i (void); + // Constructor + + virtual ~Checkpoint_Client_i (void); + // Destructor + + virtual int run (const char *,int, char** ); + // Execute the methods + +private: + Client<Checkpoint, Checkpoint_var> checkpoint; + // Instantiate the checkpoint object. +}; + + +#endif /* TIME_CLIENT_I_H */ diff --git a/TAO/tests/OBV/Simple/OBV.idl b/TAO/tests/OBV/Simple/OBV.idl new file mode 100644 index 00000000000..f909dc25975 --- /dev/null +++ b/TAO/tests/OBV/Simple/OBV.idl @@ -0,0 +1,16 @@ +// $Id$ + +valuetype Event +{ + void do_print (); + public long value_; +}; + +interface Checkpoint +{ + void put_event (in Event e); + // This operation will shutdown the server. + oneway void shutdown (); +}; + + diff --git a/TAO/tests/OBV/Simple/OBV_Simple.mpc b/TAO/tests/OBV/Simple/OBV_Simple.mpc new file mode 100644 index 00000000000..0e4105cb9e1 --- /dev/null +++ b/TAO/tests/OBV/Simple/OBV_Simple.mpc @@ -0,0 +1,37 @@ +// -*- MPC -*- +// $Id$ + +project(*IDL): taoidldefaults { + IDL_Files { + OBV.idl + } + custom_only = 1 +} + +project(*server): taoserver, utils, valuetype, minimum_corba { + exename = server + after += *IDL + Source_Files { + Server_i.cpp + OBV_impl.cpp + server.cpp + OBVS.cpp + OBVC.cpp + } + IDL_Files { + } +} + +project(*client): taoserver, utils, valuetype, minimum_corba { + exename = client + after += *IDL + Source_Files { + Client_i.cpp + OBV_impl.cpp + client.cpp + OBVS.cpp + OBVC.cpp + } + IDL_Files { + } +} diff --git a/TAO/tests/OBV/Simple/OBV_impl.cpp b/TAO/tests/OBV/Simple/OBV_impl.cpp new file mode 100644 index 00000000000..f55cee0af44 --- /dev/null +++ b/TAO/tests/OBV/Simple/OBV_impl.cpp @@ -0,0 +1,44 @@ +// $Id$ + +#include "OBV_impl.h" +#include "ace/OS_NS_sys_time.h" + +// Implementation of the valuetype member functions. + +Event_impl::Event_impl () +{ +} + +Event_impl::Event_impl (CORBA::Long value) +{ + this->value_ (value); +} + +Event_impl::~Event_impl () +{ +} + +CORBA::ValueBase* +Event_impl::_copy_value (void) +{ + return new Event_impl (this->value_ ()); +} + + +void +Event_impl::do_print (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) +{ + ACE_DEBUG((LM_DEBUG, "(value %d) \n", + (CORBA::ULong) this->value_())); +} + +Event_factory::~Event_factory () +{ +} + +TAO_OBV_CREATE_RETURN_TYPE (Event) +Event_factory::create_for_unmarshal (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) +{ + return new Event_impl; +} + diff --git a/TAO/tests/OBV/Simple/OBV_impl.h b/TAO/tests/OBV/Simple/OBV_impl.h new file mode 100644 index 00000000000..1b619553402 --- /dev/null +++ b/TAO/tests/OBV/Simple/OBV_impl.h @@ -0,0 +1,39 @@ +// -*- C++ -*- +// $Id$ + +#if !defined (OBV_IMPL_H) +#define OBV_IMPL_H + +#include "OBVC.h" + +#include "tao/Valuetype/ValueFactory.h" + +class Event_impl : public virtual OBV_Event, + public virtual CORBA::DefaultValueRefCountBase +{ + public: + Event_impl (); + Event_impl (CORBA::Long value); + virtual ~Event_impl (); + virtual CORBA::ValueBase* _copy_value (void); + + + virtual void do_print (ACE_ENV_SINGLE_ARG_DECL); +}; + +class Event_factory : public CORBA::ValueFactoryBase +{ +public: + + // create (...) would go here + +protected: + + virtual ~Event_factory (); + +private: + + TAO_OBV_CREATE_RETURN_TYPE (Event) create_for_unmarshal (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); +}; + +#endif /* OBV_IMPL_H */ diff --git a/TAO/tests/OBV/Simple/Server_i.cpp b/TAO/tests/OBV/Simple/Server_i.cpp new file mode 100644 index 00000000000..a429ce1bc3a --- /dev/null +++ b/TAO/tests/OBV/Simple/Server_i.cpp @@ -0,0 +1,80 @@ +// $Id$ + +#include "Server_i.h" +#include "OBV_impl.h" +#include "tao/ORB_Core.h" + +// Set the ORB pointer, register OBV factories and init the +// lists declared above. + +void +Checkpoint_i::orb (CORBA::ORB_ptr o) +{ + this->orb_ = CORBA::ORB::_duplicate (o); + + TAO_OBV_REGISTER_FACTORY (Event_factory, Event); +} + + +// Sidebar on assignment from pointer to _var type. +// +// Event_var e_var (event); +// This is fatal because the reference counter in *event is not increased +// when a pointer is assigned to a _var. (This happens only +// in assignments from another Event_var; +// But Assignment from new is fine, the referencecount is yet one.) +// +// ok is +// CORBA::add_ref (event); +// Event_var e_var (event); +// +// but possibly easier to read it a macro +#define DUP_REF(vt_ptr) (CORBA::add_ref (vt_ptr), vt_ptr) +// then it reads: Event_var e_var (DUP_REF (event)); +// (But it may cause desaster if vt_ptr is a function call.) +// +// Be careful with assignments from T1_var to T2_var, if T1 and T2 are +// related through inheritance. Because there are many implicit casts +// between pointer and _var types possible, the reference counter of +// the duplicated reference is not increased. +// +// Is there any general solution with faulty reference counting ? + + +void +Checkpoint_i::put_event (Event *event + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + // Let us see what event has arrived + event->do_print (); + + return; +} + +// Shutdown the server application. + +void +Checkpoint_i::shutdown (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_DEBUG ((LM_DEBUG, + "\n%s\n", + "The Checkpoint server is shutting down")); + + // Instruct the ORB to shutdown. + this->orb_->shutdown (); +} + + +// Constructor. + +Checkpoint_i::Checkpoint_i (void) +{ +} + +// Destructor. + +Checkpoint_i::~Checkpoint_i (void) +{ +} diff --git a/TAO/tests/OBV/Simple/Server_i.h b/TAO/tests/OBV/Simple/Server_i.h new file mode 100644 index 00000000000..c1a026c25e2 --- /dev/null +++ b/TAO/tests/OBV/Simple/Server_i.h @@ -0,0 +1,60 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/OBV/Typed_Events +// +// = FILENAME +// Server_i.h +// +// = DESCRIPTION +// This class implements the Event_Types IDL interface. +// +// = AUTHOR +// Torsten Kuepper +// derived from the Echo example TAO/example/Simple/echo +// of Kirthika Parameswaran <kirthika@cs.wustl.edu> +// +// ============================================================================ + +#ifndef ECHO_I_H +#define ECHO_I_H + +#include "OBVS.h" + + +class Checkpoint_i : public POA_Checkpoint +{ +public: + // = Initialization and termination methods. + Checkpoint_i (void); + // Constructor. + + ~Checkpoint_i (void); + // Destructor. + + virtual void put_event ( + Event * e + ACE_ENV_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void shutdown ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )); + + void orb (CORBA::ORB_ptr o); + // Set the ORB pointer. + +private: + CORBA::ORB_var orb_; + // ORB pointer. +}; + +#endif /* ECHO_I_H */ + diff --git a/TAO/tests/OBV/Simple/Simple_util.cpp b/TAO/tests/OBV/Simple/Simple_util.cpp new file mode 100644 index 00000000000..979bc54cc79 --- /dev/null +++ b/TAO/tests/OBV/Simple/Simple_util.cpp @@ -0,0 +1,317 @@ +// $Id$ + +// This version of Simple_Util doesn't need to link against orbsvcs +// On the other hand it has no naming service. + +#ifndef SIMPLE_UTIL_C +#define SIMPLE_UTIL_C +# include "Simple_util.h" +# include "tao/debug.h" +# include "ace/OS_NS_stdio.h" +# include "ace/OS_NS_fcntl.h" +# include "ace/OS_NS_unistd.h" +# include "ace/OS_NS_string.h" + +// Constructor. + +template <class Servant> +Server<Servant>::Server (void) + : ior_output_file_ (0) +{ + // no-op. +} + +// Destructor. + +template <class Servant> +Server<Servant>::~Server (void) +{ +} + +// Parse the command-line arguments and set options. + +template <class Servant> int +Server<Servant>::parse_args (void) +{ + ACE_Get_Opt get_opts (this->argc_, this->argv_, "do:ni:"); + int c = 0; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'd': // debug flag. + TAO_debug_level++; + break; + case 'o': // output the IOR to a file. + this->ior_output_file_ = ACE_OS::fopen (get_opts.opt_arg (), "w"); + if (this->ior_output_file_ == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to open %s for writing: %p\n", + get_opts.opt_arg ()), -1); + break; + + case '?': // display help for use of the server. + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s" + " [-d]" + " [-o] <ior_output_file>" + "\n", + argv_ [0]), + -1); + } + + // Indicates successful parsing of command line. + return 0; +} + +// Initialize the server. +template <class Servant> int +Server<Servant>::init (const char *servant_name, + int argc, + char *argv[] + ACE_ENV_ARG_DECL) +{ + // Call the init of <TAO_ORB_Manager> to initialize the ORB and + // create a child POA under the root POA. + if (this->orb_manager_.init_child_poa (argc, + argv, + "child_poa" + ACE_ENV_ARG_PARAMETER) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + "%p\n", + "init_child_poa"), + -1); + + ACE_CHECK_RETURN (-1); + + this->argc_ = argc; + this->argv_ = argv; + + int retval = this->parse_args (); + + if (retval != 0) + return retval; + + CORBA::ORB_var orb = this->orb_manager_.orb (); + + // Stash our ORB pointer for later reference. + this->servant_.orb (orb.in ()); + + // Activate the servant in its own child POA. + + // Make sure that you check for failures here via the ACE_TRY + // macros?! + ACE_TRY + { + CORBA::String_var str = + this->orb_manager_.activate_under_child_poa (servant_name, + &this->servant_ + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, + "The IOR is: <%s>\n", + str.in ())); + + if (this->ior_output_file_) + { + ACE_OS::fprintf (this->ior_output_file_, + "%s", + str.in ()); + ACE_OS::fclose (this->ior_output_file_); + } + + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception in activation of POA"); + return -1; + } + ACE_ENDTRY; + + return 0; +} + +template <class Servant>int +Server<Servant>::run (ACE_ENV_SINGLE_ARG_DECL) +{ + // Run the main event loop for the ORB. + if (this->orb_manager_.run (ACE_ENV_SINGLE_ARG_PARAMETER) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + "Server_i::run"), + -1); + + return 0; +} + +template <class Servant> int +Server<Servant>::register_name (void) +{ + return -1; +} + +// Constructor. + +template <class InterfaceObj, class Var> +Client<InterfaceObj, Var>::Client (void) + : ior_ (0) +{ + //no-op +} + +// Reads the Server ior from a file + +template <class InterfaceObj, class Var> int +Client<InterfaceObj, Var>::read_ior (char *filename) +{ + // Open the file for reading. + ACE_HANDLE f_handle = ACE_OS::open (filename, 0); + + if (f_handle == ACE_INVALID_HANDLE) + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to open %s for writing: %p\n", + filename), + -1); + + ACE_Read_Buffer ior_buffer (f_handle); + char *data = ior_buffer.read (); + + if (data == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to read ior: %p\n"), + -1); + + this->ior_ = ACE_OS::strdup (data); + ior_buffer.alloc ()->free (data); + + ACE_OS::close (f_handle); + + return 0; +} + +// Parses the command line arguments and returns an error status. + +template <class InterfaceObj, class Var> int +Client<InterfaceObj, Var>::parse_args (void) +{ + ACE_Get_Opt get_opts (argc_, argv_, "df:nk:x"); + int c = 0; + int result = 0; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'd': // debug flag + TAO_debug_level++; + break; + case 'k': // ior provide on command line + this->ior_ = ACE_OS::strdup (get_opts.opt_arg ()); + break; + case 'f': // read the IOR from the file. + result = this->read_ior (get_opts.opt_arg ()); + if (result < 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to read ior from %s : %p\n", + get_opts.opt_arg ()), + -1); + break; + case 'x': // read the flag for shutting down + this->shutdown_ = 1; + break; + } + + // Indicates successful parsing of command line. + return 0; +} + +template <class InterfaceObj, class Var> +Client<InterfaceObj, Var>::~Client (void) +{ + ACE_OS::free (this->ior_); +} + +template <class InterfaceObj, class Var> int +Client<InterfaceObj, Var>::init (const char *name, + int argc, + char **argv) +{ + this->argc_ = argc; + this->argv_ = argv; + + + ACE_DECLARE_NEW_CORBA_ENV; + + ACE_TRY + { + // Retrieve the ORB. + this->orb_ = CORBA::ORB_init (this->argc_, + this->argv_, + name + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Parse command line and verify parameters. + if (this->parse_args () == -1) + return -1; + + + + if(this->ior_ != 0) + { + CORBA::Object_var server_object = + this->orb_->string_to_object (this->ior_ ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + + if (CORBA::is_nil (server_object.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + "invalid ior <%s>\n", + this->ior_), + -1); + this->server_ = InterfaceObj::_narrow (server_object.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + else + ACE_ERROR_RETURN ((LM_ERROR, + "no ior or naming options specified\n"), + -1); + + + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Client_i::init"); + return -1; + } + ACE_ENDTRY; + + + return 0; +} + + +template <class InterfaceObj, class Var> int +Client<InterfaceObj, Var>::obtain_initial_references (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) +{ + + return 0; +} + +template <class InterfaceObj, class Var> int +Client<InterfaceObj, Var>::shutdown (void ) +{ + // Returns the shutdwon flag + return shutdown_; +} + +template <class InterfaceObj, class Var> void +Client<InterfaceObj, Var>::shutdown (int flag) +{ + // Fills the flag + shutdown_ = flag; +} + +#endif diff --git a/TAO/tests/OBV/Simple/Simple_util.h b/TAO/tests/OBV/Simple/Simple_util.h new file mode 100644 index 00000000000..380dc749dc6 --- /dev/null +++ b/TAO/tests/OBV/Simple/Simple_util.h @@ -0,0 +1,170 @@ +//$Id$ + +// This version of Simple_Util doesn't need to link against orbsvcs +// On the other hand it has no naming service. + +// ============================================================================ +// +// = LIBRARY +// +// taken from TAO/tests/Simple +// +// = FILENAME +// Simple_Util.h +// +// = DESCRIPTION +// The classe define the templates for the client and server. +// +// = AUTHOR +// Balachandran Natarajan <bala@cs.wustl.edu> +// +// ============================================================================ + +#ifndef TAO_UTIL_H +#define TAO_UTIL_H + +#include "tao/Utils/ORB_Manager.h" + +#include "ace/Get_Opt.h" +#include "ace/Read_Buffer.h" + +template <class Servant> +class Server +{ + // = TITLE + // A set of useful class Templates for using the TAO CORBA + // implementation. + // + // = DESCRIPTION + // A template server definition. This template can be used by + // single server/client projects for defintion of their + // server/clients. See the directories time, bank, echo for + // further details of implemenatation. +public: + // = Initialization and termination methods. + + Server (void); + // Constructor. + + ~Server (void); + // Destructor. + + int init (const char *servant_name, + int argc, + char *argv[] + ACE_ENV_ARG_DECL); + // Initialize the Server state - parsing arguments and waiting. + // interface_name is the name used to register the Servant. + + int register_name (void); + // After calling <init>, this method will register the server with + // the TAO Naming Service using the servant_name passed to <init>. + + int run (ACE_ENV_SINGLE_ARG_DECL); + // Run the orb. + +protected: + Servant servant_; + // Servant class + + const char *name; + // name of the servant to be used for TAO Naming Service + + int parse_args (void); + // Parses the commandline arguments. + + TAO_ORB_Manager orb_manager_; + // The ORB manager - a helper class for accessing the POA and + // registering objects. + + // TAO_Naming_Server namingServer; + // helper class for getting access to Naming Service. + + FILE *ior_output_file_; + // File where the IOR of the server object is stored. + + int argc_; + // Number of command line arguments. + + char **argv_; + // The command line arguments. +}; + +template <class InterfaceObj, class Var> +class Client +{ + // = TITLE + // Template Client class + // + // = DESCRIPTION + // A template client implementation for a single server/client + // model. The example usage of these usage can be found in the + // sub-directories below +public: + + // = Initialization and termination methods. + Client (void); + // Constructor. + + ~Client (void); + // Destructor. + + int init (const char *name,int argc, char *argv[]); + // Initialize the client communication endpoint with server. + + InterfaceObj *operator-> () { return server_.in ();}; + // Return the interface object pointer. + + int shutdown (void ); + // Returns the shutdown flag. + + void shutdown (int); + // Fills in the shutdwon flag. + + int obtain_initial_references (ACE_ENV_SINGLE_ARG_DECL); + // Initialize naming service + +protected: + int read_ior (char *filename); + // Function to read the server IOR from a file. + + int parse_args (void); + // Parses the arguments passed on the command line. + +// TAO_Naming_Client namingClient; + // helper class for getting access to Naming Service. + + int argc_; + // # of arguments on the command line. + + char **argv_; + // arguments from command line. + + char *ior_; + // IOR of the obj ref of the server. + + char *name_; + // Name to be usred for the naming service + + CORBA::ORB_var orb_; + // Remember our orb. + + Var server_; + // Server object + + int naming_; + // Flag to use the naming service + + int shutdown_; + // Flag for shutting down the server + +}; + +#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) +#include "Simple_util.cpp" +#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ +#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) +#pragma implementation ("Simple_util.cpp") +#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ + +#endif /* TAO_UTIL_H */ diff --git a/TAO/tests/OBV/Simple/client.cpp b/TAO/tests/OBV/Simple/client.cpp new file mode 100644 index 00000000000..d4e502a26bd --- /dev/null +++ b/TAO/tests/OBV/Simple/client.cpp @@ -0,0 +1,23 @@ +//$Id$ + +# include "Client_i.h" + +// The client program for the application. + +int +main (int argc, char **argv) +{ + Checkpoint_Client_i client; + + + ACE_DEBUG ((LM_DEBUG, + "\nEvent_Types client\n\n")); + + if (client.run ("Event_Types_Checkpoint", + argc, + argv) == -1) + return -1; + else + return 0; + +} diff --git a/TAO/tests/OBV/Simple/run_test.pl b/TAO/tests/OBV/Simple/run_test.pl new file mode 100755 index 00000000000..3a125c5703c --- /dev/null +++ b/TAO/tests/OBV/Simple/run_test.pl @@ -0,0 +1,44 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "../../../../bin"; +use PerlACE::Run_Test; + +$status = 0; + +$iorfile = PerlACE::LocalFile ("obv.ior"); + +unlink $iorfile; + +$SV = new PerlACE::Process ("server", "-o $iorfile"); +$CL = new PerlACE::Process ("client", "-f $iorfile"); + +$SV->Spawn (); + +if (PerlACE::waitforfile_timed ($iorfile, 15) == -1) { + print STDERR "ERROR: timed out waiting for file <$iorfile>\n"; + $SV->Kill (); + exit 1; +} + +$client = $CL->SpawnWaitKill (60); + +if ($client != 0) { + print STDERR "ERROR: the client returned $client\n"; + $status = 1; +} + +$server = $SV->TerminateWaitKill (5); + +if ($server != 0) { + print STDERR "ERROR: server returned $server\n"; + $status = 1; +} + +unlink $iorfile; + +exit $status; diff --git a/TAO/tests/OBV/Simple/server.cpp b/TAO/tests/OBV/Simple/server.cpp new file mode 100644 index 00000000000..c5f5140f307 --- /dev/null +++ b/TAO/tests/OBV/Simple/server.cpp @@ -0,0 +1,44 @@ +// $Id$ +#include "Simple_util.h" +#include "Server_i.h" + +// This is the main driver program for the time and date server. + +int +main (int argc, char *argv[]) +{ + Server<Checkpoint_i> server; + + ACE_DEBUG ((LM_DEBUG, + "\n\tCheckpoint Event_Types server\n\n")); + + ACE_DECLARE_NEW_CORBA_ENV; + + ACE_TRY + { + if (server.init ("Event_Types_Checkpoint", + argc, + argv + ACE_ENV_ARG_PARAMETER) == -1) + return 1; + else + { + server.run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + } + ACE_CATCH (CORBA::SystemException, sysex) + { + ACE_PRINT_EXCEPTION (sysex, "System Exception"); + return -1; + } + ACE_CATCH (CORBA::UserException, userex) + { + ACE_PRINT_EXCEPTION (userex, "User Exception"); + return -1; + } + ACE_ENDTRY; + + return 0; +} + diff --git a/TAO/tests/OBV/Truncatable/OBV_Truncatable.mpc b/TAO/tests/OBV/Truncatable/OBV_Truncatable.mpc new file mode 100644 index 00000000000..629bd43296d --- /dev/null +++ b/TAO/tests/OBV/Truncatable/OBV_Truncatable.mpc @@ -0,0 +1,18 @@ +// -*- MPC -*- +// $Id$ + +project(*Server): taoexe, portableserver, valuetype { + Source_Files { + TruncatableS_impl.cpp + server.cpp + } +} + +project(*Client): taoexe, valuetype { + after += *Server + Source_Files { + TruncatableC.cpp + client.cpp + } +} + diff --git a/TAO/tests/OBV/Truncatable/README b/TAO/tests/OBV/Truncatable/README new file mode 100644 index 00000000000..74473f9019e --- /dev/null +++ b/TAO/tests/OBV/Truncatable/README @@ -0,0 +1,20 @@ +/** + +@page OBV/Any Test README File + + This test shows and verifies truncatable inheritence functionality. + + To run the test either use the run_test.pl script: + +$ ./run_test.pl + + or start the client and the server manually: + +$ server -o ior& +$ client -k file://ior + +To get a detailed test report, run the server manually and then run the client as: +$ client -v -k file://ior + + +*/ diff --git a/TAO/tests/OBV/Truncatable/Truncatable.idl b/TAO/tests/OBV/Truncatable/Truncatable.idl new file mode 100644 index 00000000000..46c894f4619 --- /dev/null +++ b/TAO/tests/OBV/Truncatable/Truncatable.idl @@ -0,0 +1,100 @@ +// $Id$ + +// +// This file contains few valuetypes to show and test truncatable feature of +// valuetype. +// + +module OBV_TruncatableTest +{ + // + // Base valuetype. + // + valuetype BaseValue + { + public unsigned long basic_data; + }; + + // + // Valuetype with one-level truncatable inheritence. + // + valuetype TValue1 : truncatable BaseValue + { + public unsigned long data1; + }; + + // + // Valuetype with multi-level truncatable inheritence. + // + valuetype TValue2 : truncatable TValue1 + { + public unsigned long data2; + }; + + // + // Valuetype with multi-level inheritence, but not all truncatable. + // + valuetype TValue3 : TValue1 + { + public unsigned long data3; + }; + + // + // An valuetype nested in a valuetype. + // + valuetype NestedValue + { + public long data; + }; + + // + // Truncatable valuetype with nested valuetype. + // + valuetype TValue4 : truncatable BaseValue + { + public NestedValue nv4; + public unsigned long data4; + }; + + // + // More complex truncatable valuetype. + // + valuetype TValue5 : truncatable TValue4 + { + public string str1; + public unsigned long data5; + public NestedValue nv5; + public string str2; + }; + + // + // No data valuetype with truncatable parent. + valuetype TValue6 : truncatable BaseValue + { + }; + + // + // Interface to pass valuetypes. + // + interface Test + { + + //NOTE: the "desc" parameter helps verify that truncated values are skipped properly. + // the output is "<id>: <input desc>" + void op1 (in string id, in BaseValue iv, out BaseValue ov, inout string desc); + void op2 (in TValue1 iv, in string id, out TValue1 ov, inout string desc); + void op3 (in string id, in TValue4 iv, out TValue4 ov, inout string desc); + BaseValue op4 (in string id, + in TValue1 iv1, + in short x, + in TValue4 iv2, + in TValue4 iv3, + in TValue1 iv4, + inout string desc); + + // Shutdown the romote ORB + oneway void shutdown (); + + }; + +}; diff --git a/TAO/tests/OBV/Truncatable/TruncatableS_impl.cpp b/TAO/tests/OBV/Truncatable/TruncatableS_impl.cpp new file mode 100644 index 00000000000..2316be3f75f --- /dev/null +++ b/TAO/tests/OBV/Truncatable/TruncatableS_impl.cpp @@ -0,0 +1,140 @@ +// $Id$ + +#include "TruncatableS_impl.h" +#include "ace/OS_NS_stdio.h" + +ACE_RCSID(Truncatable, TruncatableS_impl, "$Id$") + +Test_impl::Test_impl (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +void +Test_impl::op1 ( + const char * id, + ::OBV_TruncatableTest::BaseValue * iv, + ::OBV_TruncatableTest::BaseValue_out ov, + char *& desc + ACE_ENV_ARG_DECL + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + if (TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "(%P|%t)Test_impl::op1 id=%s basic_data=%u desc=%s \n", + id, iv->basic_data (), desc)); + + char *tmp = CORBA::string_alloc (ACE_OS::strlen (id) + ACE_OS::strlen (desc) + 2); + ACE_OS::sprintf (tmp, "%s: %s", id, desc); + CORBA::string_free (desc); + desc = tmp; + + ov = new ::OBV_OBV_TruncatableTest::BaseValue(); + ov->basic_data (iv->basic_data()); + } + + +void +Test_impl::op2 ( + ::OBV_TruncatableTest::TValue1 * iv, + const char * id, + ::OBV_TruncatableTest::TValue1_out ov, + char *& desc + ACE_ENV_ARG_DECL + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + if (TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "(%P|%t)Test_impl::op2 id=%s basic_data=%u data1=%u desc=%s \n", + id, iv->basic_data (), iv->data1 (), desc)); + char *tmp = CORBA::string_alloc (ACE_OS::strlen (id) + ACE_OS::strlen (desc) + 2); + ACE_OS::sprintf (tmp, "%s: %s", id, desc); + CORBA::string_free (desc); + desc = tmp; + + ov = new ::OBV_OBV_TruncatableTest::TValue1(); + ov->basic_data (iv->basic_data()); + ov->data1 (iv->data1()); +} + + +void +Test_impl::op3 ( + const char * id, + ::OBV_TruncatableTest::TValue4 * iv, + ::OBV_TruncatableTest::TValue4_out ov, + char *& desc + ACE_ENV_ARG_DECL +) +ACE_THROW_SPEC (( + ::CORBA::SystemException +)) +{ + if (TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "(%P|%t)Test_impl::op3 id=%s basic_data=%u data=%u data4=%u desc=%s \n", + id, iv->basic_data (), iv->nv4()->data (), iv->data4 (), desc)); + + char *tmp = CORBA::string_alloc (ACE_OS::strlen (id) + ACE_OS::strlen (desc) + 2); + ACE_OS::sprintf (tmp, "%s: %s", id, desc); + CORBA::string_free (desc); + desc = tmp; + + ov = new ::OBV_OBV_TruncatableTest::TValue4(); + ::OBV_OBV_TruncatableTest::NestedValue* nv = new ::OBV_OBV_TruncatableTest::NestedValue(); + nv->data (iv->nv4()->data ()); + ov->basic_data (iv->basic_data()); + ov->nv4 (nv); + ov->data4 (iv->data4()); +} + + +::OBV_TruncatableTest::BaseValue * +Test_impl::op4 ( + const char * id, + ::OBV_TruncatableTest::TValue1 * iv1, + ::CORBA::Short x, + ::OBV_TruncatableTest::TValue4 * iv2, + ::OBV_TruncatableTest::TValue4 * iv3, + ::OBV_TruncatableTest::TValue1 * iv4, + char *& desc + ACE_ENV_ARG_DECL + ) +ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + if (TAO_debug_level > 0) + { + ACE_DEBUG((LM_DEBUG, "(%P|%t)Test_impl::op4 id=%s basic_data=%u data1=%u desc=%s \n", + id, iv1->basic_data (), iv1->data1 (), desc)); + ACE_DEBUG((LM_DEBUG, "(%P|%t)Test_impl::op4 id=%s basic_data=%u data=%u data4=%u desc=%s \n", + id, iv2->basic_data (), iv2->nv4()->data (), iv2->data4 (), desc)); + ACE_DEBUG((LM_DEBUG, "(%P|%t)Test_impl::op4 id=%s basic_data=%u data=%u data4=%u desc=%s \n", + id, iv3->basic_data (), iv3->nv4()->data (), iv3->data4 (), desc)); + ACE_DEBUG((LM_DEBUG, "(%P|%t)Test_impl::op4 id=%s basic_data=%u data1=%u desc=%s \n", + id, iv4->basic_data (), iv4->data1 (), desc)); + } + + char *tmp = CORBA::string_alloc (ACE_OS::strlen (id) + ACE_OS::strlen (desc) + 2); + ACE_OS::sprintf (tmp, "%s: %s", id, desc); + CORBA::string_free (desc); + desc = tmp; + + ::OBV_TruncatableTest::BaseValue * ov = new ::OBV_OBV_TruncatableTest::BaseValue(); + CORBA::ULong total = x * (iv1->basic_data () + iv2->basic_data () + iv3->basic_data () + iv4->basic_data ()); + ov->basic_data (total); + + return ov; +} + + +void +Test_impl::shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER); +} diff --git a/TAO/tests/OBV/Truncatable/TruncatableS_impl.h b/TAO/tests/OBV/Truncatable/TruncatableS_impl.h new file mode 100644 index 00000000000..de45a9717e3 --- /dev/null +++ b/TAO/tests/OBV/Truncatable/TruncatableS_impl.h @@ -0,0 +1,89 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/OBV/Truncatable +// +// = FILENAME +// TruncatableS_impl.h +// +// = AUTHOR +// Boris Kolpackov <bosk@ipmce.ru> +// +// ============================================================================ + +#ifndef TAO_TRUNCATABLE_S_IMPL_H +#define TAO_TRUNCATABLE_S_IMPL_H + +#include "TruncatableS.h" + +class Test_impl : public POA_OBV_TruncatableTest::Test +{ + // = TITLE + // Implementation of Test interface + // + // = DESCRIPTION + // This interface is provided to produce valuetypes and test + // marshaling + // +public: + Test_impl (CORBA::ORB_ptr orb); + // ctor + + virtual void op1 ( + const char * id, + ::OBV_TruncatableTest::BaseValue * iv, + ::OBV_TruncatableTest::BaseValue_out ov, + char *& desc + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )); + + virtual void op2 ( + ::OBV_TruncatableTest::TValue1 * iv, + const char * id, + ::OBV_TruncatableTest::TValue1_out ov, + char *& desc + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )); + + virtual void op3 ( + const char * id, + ::OBV_TruncatableTest::TValue4 * iv, + ::OBV_TruncatableTest::TValue4_out ov, + char *& desc + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )); + + virtual ::OBV_TruncatableTest::BaseValue * op4 ( + const char * id, + ::OBV_TruncatableTest::TValue1 * iv1, + ::CORBA::Short x, + ::OBV_TruncatableTest::TValue4 * iv2, + ::OBV_TruncatableTest::TValue4 * iv3, + ::OBV_TruncatableTest::TValue1 * iv4, + char *& desc + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )); + + virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + CORBA::ORB_var orb_; + // The ORB +}; + +#endif /* TAO_TRUNCATABLE_S_IMPL_H */ diff --git a/TAO/tests/OBV/Truncatable/client.cpp b/TAO/tests/OBV/Truncatable/client.cpp new file mode 100644 index 00000000000..4f037efa3ed --- /dev/null +++ b/TAO/tests/OBV/Truncatable/client.cpp @@ -0,0 +1,453 @@ +// $Id$ + +#include "TruncatableC.h" +#include "ace/Get_Opt.h" + +ACE_RCSID(Truncatable, client, "$Id$") + + const char *ior = "file://test.ior"; + +int fail = 0; +int pretest = 0; +int verbose = 0; + +#define VERIFY(Condition) \ +{ \ + if ((Condition)==0) \ + { \ + fail++; \ + if (!verbose) \ + ACE_DEBUG ((LM_DEBUG, ACE_TEXT("(%P|%t) - Failure at line %l\n"))); \ + } \ +} + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:v"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + ior = get_opts.optarg; + break; + case 'v': + verbose = 1; + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-k <ior> " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + // Create factories. + + OBV_TruncatableTest::BaseValue_init *base_factory = 0; + ACE_NEW_RETURN (base_factory, + OBV_TruncatableTest::BaseValue_init, + 1); + + orb->register_value_factory (base_factory->tao_repository_id (), + base_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + base_factory->_remove_ref (); // release ownership + + + + OBV_TruncatableTest::TValue1_init *value1_factory = 0; + ACE_NEW_RETURN (value1_factory, + OBV_TruncatableTest::TValue1_init, + 1); + + orb->register_value_factory (value1_factory->tao_repository_id (), + value1_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + value1_factory->_remove_ref (); + + + + OBV_TruncatableTest::TValue2_init *value2_factory = 0; + ACE_NEW_RETURN (value2_factory, + OBV_TruncatableTest::TValue2_init, + 1); + + orb->register_value_factory (value2_factory->tao_repository_id (), + value2_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + value2_factory->_remove_ref (); + + + OBV_TruncatableTest::TValue3_init *value3_factory = 0; + ACE_NEW_RETURN (value3_factory, + OBV_TruncatableTest::TValue3_init, + 1); + + orb->register_value_factory (value3_factory->tao_repository_id (), + value3_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + value3_factory->_remove_ref (); + + OBV_TruncatableTest::TValue4_init *value4_factory = 0; + ACE_NEW_RETURN (value4_factory, + OBV_TruncatableTest::TValue4_init, + 1); + + orb->register_value_factory (value4_factory->tao_repository_id (), + value4_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + value4_factory->_remove_ref (); + + OBV_TruncatableTest::TValue5_init *value5_factory = 0; + ACE_NEW_RETURN (value5_factory, + OBV_TruncatableTest::TValue5_init, + 1); + + orb->register_value_factory (value5_factory->tao_repository_id (), + value5_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + value5_factory->_remove_ref (); + + OBV_TruncatableTest::NestedValue_init *nested_value_factory = 0; + ACE_NEW_RETURN (nested_value_factory, + OBV_TruncatableTest::NestedValue_init, + 1); + + orb->register_value_factory (nested_value_factory->tao_repository_id (), + nested_value_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + nested_value_factory->_remove_ref (); + + // Obtain reference to the object + CORBA::Object_var tmp = + orb->string_to_object(ior ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + OBV_TruncatableTest::Test_var test = + OBV_TruncatableTest::Test::_narrow(tmp.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (test.in ())) + { + ACE_ERROR_RETURN ((LM_DEBUG, + "Nil OBV_TruncatableTest::Test reference <%s>\n", + ior), + 1); + } + + CORBA::String_var desc;; + { //issolate the scope of objects to avoid using wrong values + OBV_TruncatableTest::TValue1_var v1; + ACE_NEW_RETURN (v1, + OBV_OBV_TruncatableTest::TValue1, + 1); + v1->basic_data (9); + v1->data1 (99); + + OBV_TruncatableTest::BaseValue_var ov1; + + desc = CORBA::string_dup ("A<-tB, truncate B to A"); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT("Case 1: %s: "), + ACE_TEXT_CHAR_TO_TCHAR(desc.in()))); + pretest = fail; + + test->op1 ("case1", v1.in (), ov1.out (), desc.inout () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (! ACE_OS::strcmp (desc.in (), "case1: A<-tB, truncate B to A")); + VERIFY (v1->basic_data () == ov1->basic_data ()); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + } + + { //issolate the scope of objects to avoid using wrong values + OBV_TruncatableTest::TValue2_var v2; + ACE_NEW_RETURN (v2, + OBV_OBV_TruncatableTest::TValue2, + 1); + v2->basic_data (9); + v2->data1 (99); + v2->data2 (99 * 2); + + OBV_TruncatableTest::BaseValue_var ov2; + desc = CORBA::string_dup ("A<-tB<-tC, truncate C to A"); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT("Case 2: %s: "), + ACE_TEXT_CHAR_TO_TCHAR(desc.in()))); + pretest = fail; + + test->op1 ("case2", v2.in (), ov2.out (), desc.inout () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (! ACE_OS::strcmp (desc.in (), "case2: A<-tB<-tC, truncate C to A")); + VERIFY (v2->basic_data () == ov2->basic_data ()); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + + OBV_TruncatableTest::TValue1_var otv1; + desc = CORBA::string_dup ("A<-tB<-tC, truncate C to B"); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT("Case 3: %s: "), + ACE_TEXT_CHAR_TO_TCHAR(desc.in()))); + pretest = fail; + + test->op2 (v2.in (), "case3", otv1.out (), desc.inout () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (! ACE_OS::strcmp (desc.in (), "case3: A<-tB<-tC, truncate C to B")); + VERIFY (v2->basic_data () == otv1->basic_data ()); + VERIFY (v2->data1 () == otv1->data1 ()); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + } + + { //issolate the scope of objects to avoid using wrong values + OBV_TruncatableTest::TValue1_var itv1b; + ACE_NEW_RETURN (itv1b, + OBV_OBV_TruncatableTest::TValue1, + 1); + itv1b->basic_data(7); + itv1b->data1(8); + OBV_TruncatableTest::TValue1_var otv1b; + desc = CORBA::string_dup ("A<-tB, truncatable but no truncation"); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT("Case 3b: %s: "), + ACE_TEXT_CHAR_TO_TCHAR(desc.in()))); + pretest = fail; + + test->op2 (itv1b, "case3b", otv1b.out (), desc.inout () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (! ACE_OS::strcmp (desc.in (), "case3b: A<-tB, truncatable but no truncation")); + VERIFY (itv1b->basic_data () == otv1b->basic_data ()); + VERIFY (itv1b->data1 () == otv1b->data1 ()); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + } + + { //issolate the scope of objects to avoid using wrong values + OBV_TruncatableTest::TValue3_var v3; + ACE_NEW_RETURN (v3, + OBV_OBV_TruncatableTest::TValue3, + 1); + v3->basic_data (9); + v3->data1 (99); + v3->data3 (99 * 3); + + bool caught_expected_exception = false; + ACE_TRY_EX (value3) + { + OBV_TruncatableTest::BaseValue_var ov3; + desc = CORBA::string_dup ("A<-tB<-C, try truncate C to A, MARSHAL exception"); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT("Case 4: %s: "), + ACE_TEXT_CHAR_TO_TCHAR(desc.in()))); + test->op1 ("case4", v3.in (), ov3.out (), desc.inout () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK_EX (value3); + } + ACE_CATCH (CORBA::MARSHAL, ex) + { + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("passed\n"))); + caught_expected_exception = true; + } + ACE_ENDTRY; + + if ( ! caught_expected_exception) + { + fail++; + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("faileded\n"))); + } + } //end marshaling exception test. + + { //issolate the scope of objects to avoid using wrong values + OBV_TruncatableTest::NestedValue_var nv; + ACE_NEW_RETURN (nv, + OBV_OBV_TruncatableTest::NestedValue, + 1); + nv->data (2); + + OBV_TruncatableTest::TValue5_var v5; + ACE_NEW_RETURN (v5, + OBV_OBV_TruncatableTest::TValue5, + 1); + v5->basic_data (9); + v5->nv4 (nv.in ()); + v5->data4 (99 * 4); + v5->str1 ("str1"); + v5->data5 (99 * 5); + v5->nv5 (nv.in ()); + v5->str2 ("str2"); + + OBV_TruncatableTest::BaseValue_var ov5; + desc = CORBA::string_dup ("A<-tB<-tC, B & C have nested value type, truncate C to A"); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT("Case 5: %s: "), + ACE_TEXT_CHAR_TO_TCHAR(desc.in()))); + pretest = fail; + test->op1 ("case5", v5.in (), ov5.out (), desc.inout () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (! ACE_OS::strcmp (desc.in (), "case5: A<-tB<-tC, B & C have nested value type, truncate C to A")); + VERIFY (v5->basic_data () == ov5->basic_data ()); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + + OBV_TruncatableTest::TValue4_var otv4; + desc = CORBA::string_dup ("A<-tB<-tC, B & C have nested value type, truncate C to B"); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT("Case 6: %s: "), + ACE_TEXT_CHAR_TO_TCHAR(desc.in()))); + pretest = fail; + test->op3 ("case6", v5.in (), otv4.out (), desc.inout () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (! ACE_OS::strcmp (desc.in (), "case6: A<-tB<-tC, B & C have nested value type, truncate C to B")); + VERIFY (v5->basic_data () == otv4->basic_data ()); + VERIFY (v5->nv4 ()->data () == otv4->nv4 ()->data ()); + VERIFY (v5->data4 () == otv4->data4 ()); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + } + + { //issolate the scope of objects to avoid using wrong values + OBV_TruncatableTest::TValue6_var iv; + ACE_NEW_RETURN (iv, + OBV_OBV_TruncatableTest::TValue6, + 1); + iv->basic_data (9); + + OBV_TruncatableTest::BaseValue_var ov; + + desc = CORBA::string_dup ("A<-tB, B has no data, truncate B to A"); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT("Case 7: %s: "), + ACE_TEXT_CHAR_TO_TCHAR(desc.in()))); + pretest = fail; + test->op1 ("case7", iv.in (), ov.out (), desc.inout () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (! ACE_OS::strcmp (desc.in (), "case7: A<-tB, B has no data, truncate B to A")); + VERIFY (iv->basic_data () == ov->basic_data ()); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + } + + { //issolate the scope of objects to avoid using wrong values + OBV_TruncatableTest::TValue1_var v1; + ACE_NEW_RETURN (v1, + OBV_OBV_TruncatableTest::TValue1, + 1); + v1->basic_data (8); + v1->data1 (88); + + + OBV_TruncatableTest::TValue1_var v4; + ACE_NEW_RETURN (v4, + OBV_OBV_TruncatableTest::TValue1, + 1); + v4->basic_data (9); + v4->data1 (99); + + OBV_TruncatableTest::NestedValue_var nv; + ACE_NEW_RETURN (nv, + OBV_OBV_TruncatableTest::NestedValue, + 1); + nv->data (2); + + OBV_TruncatableTest::TValue4_var v2; + ACE_NEW_RETURN (v2, + OBV_OBV_TruncatableTest::TValue4, + 1); + v2->basic_data (7); + v2->nv4 (nv.in ()); + v2->data4 (77); + + OBV_TruncatableTest::TValue4_var v3; + ACE_NEW_RETURN (v3, + OBV_OBV_TruncatableTest::TValue4, + 1); + v3->basic_data (6); + v3->nv4 (nv.in ()); + v3->data4 (66); + + desc = CORBA::string_dup ("multiple IN truncatable valuetype parameters and return truncatable valuetype"); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT("Case 8: %s: "), + ACE_TEXT_CHAR_TO_TCHAR(desc.in()))); + pretest = fail; + OBV_TruncatableTest::BaseValue_var ov + = test->op4 ("case8", v1.in (), 5, v2.in (), v3.in (), v4.in (), desc.inout () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (! ACE_OS::strcmp (desc.in (), "case8: multiple IN truncatable valuetype parameters and return truncatable valuetype")); + CORBA::ULong total = 5 * (v1->basic_data () + v2->basic_data () + v3->basic_data () + v4->basic_data ()); + VERIFY (ov->basic_data () == total); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + } + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) client - shutdown orb \n")); + + + test->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (fail) + { + ACE_ERROR ((LM_ERROR, "(%P|%t) client: test failed \n")); + return 1; + } + else + ACE_DEBUG((LM_DEBUG, "(%P|%t) client: test passed \n")); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/tests/OBV/Truncatable/run_test.pl b/TAO/tests/OBV/Truncatable/run_test.pl new file mode 100755 index 00000000000..5a0f4d990f9 --- /dev/null +++ b/TAO/tests/OBV/Truncatable/run_test.pl @@ -0,0 +1,58 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../bin'; +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +# This is a Perl script that runs all Naming Service tests. It starts +# all the servers and clients as necessary. + +use lib '../../../../bin'; +use PerlACE::Run_Test; + +$iorfile = PerlACE::LocalFile ("server.ior"); +unlink $iorfile; + +if (PerlACE::is_vxworks_test()) { + $SV = new PerlACE::ProcessVX ("server", "-o server.ior"); +} +else { + $SV = new PerlACE::Process ("server", "-o $iorfile"); +} +$CL = new PerlACE::Process ("client", " -k file://$iorfile"); + +$SV->Spawn (); + +if (PerlACE::waitforfile_timed ($iorfile, + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: cannot find file <$iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$client = $CL->SpawnWaitKill (300); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$server = $SV->WaitKill (10); + +if ($server != 0) { + print STDERR "ERROR: server returned $server\n"; + $status = 1; +} + +unlink $iorfile; + +exit $status; diff --git a/TAO/tests/OBV/Truncatable/server.cpp b/TAO/tests/OBV/Truncatable/server.cpp new file mode 100644 index 00000000000..c097af17c86 --- /dev/null +++ b/TAO/tests/OBV/Truncatable/server.cpp @@ -0,0 +1,159 @@ +// $Id$ + +#include "TruncatableS_impl.h" +#include "TruncatableC.h" +#include "ace/Get_Opt.h" +#include "ace/OS_NS_stdio.h" + +ACE_RCSID(Truncatable, server, "$Id$") + +const char *ior_output_file = "test.ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "o:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'o': + ior_output_file = get_opts.optarg; + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-o <iorfile>" + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Object_var poa_object = + orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (root_poa.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Panic: nil RootPOA\n"), + 1); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + Test_impl *test_impl; + ACE_NEW_RETURN (test_impl, + Test_impl (orb.in ()), + 1); + + PortableServer::ServantBase_var owner_transfer(test_impl); + + OBV_TruncatableTest::Test_var test = + test_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var ior = + orb->object_to_string (test.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // If the ior_output_file exists, output the ior to it + FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + ior_output_file), + 1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + OBV_TruncatableTest::BaseValue_init *base_factory = 0; + ACE_NEW_RETURN (base_factory, + OBV_TruncatableTest::BaseValue_init, + 1); + + orb->register_value_factory (base_factory->tao_repository_id (), + base_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + base_factory->_remove_ref (); // release ownership + + OBV_TruncatableTest::TValue1_init *value1_factory = 0; + ACE_NEW_RETURN (value1_factory, + OBV_TruncatableTest::TValue1_init, + 1); + + orb->register_value_factory (value1_factory->tao_repository_id (), + value1_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + value1_factory->_remove_ref (); + + OBV_TruncatableTest::TValue4_init *value4_factory = 0; + ACE_NEW_RETURN (value4_factory, + OBV_TruncatableTest::TValue4_init, + 1); + + orb->register_value_factory (value4_factory->tao_repository_id (), + value4_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + value4_factory->_remove_ref (); + + OBV_TruncatableTest::NestedValue_init *nested_value_factory = 0; + ACE_NEW_RETURN (nested_value_factory, + OBV_TruncatableTest::NestedValue_init, + 1); + + orb->register_value_factory (nested_value_factory->tao_repository_id (), + nested_value_factory + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + nested_value_factory->_remove_ref (); + + orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n")); + + root_poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/tests/Ondemand_Write/Hello.cpp b/TAO/tests/Ondemand_Write/Hello.cpp new file mode 100644 index 00000000000..6e0195eff58 --- /dev/null +++ b/TAO/tests/Ondemand_Write/Hello.cpp @@ -0,0 +1,29 @@ +// +// $Id$ +// +#include "Hello.h" + +ACE_RCSID(Hello, Hello, "$Id$") + +Hello::Hello (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +char * +Hello::get_string ( + ::CORBA::Long , + const char * inputa, + ::CORBA::Long , + const char * ) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return CORBA::string_dup (inputa); +} + +void +Hello::shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER); +} diff --git a/TAO/tests/Ondemand_Write/Hello.h b/TAO/tests/Ondemand_Write/Hello.h new file mode 100644 index 00000000000..17f387990e2 --- /dev/null +++ b/TAO/tests/Ondemand_Write/Hello.h @@ -0,0 +1,37 @@ +// +// $Id$ +// + +#ifndef HELLO_H +#define HELLO_H +#include /**/ "ace/pre.h" + +#include "TestS.h" + +/// Implement the Test::Hello interface +class Hello + : public virtual POA_Test::Hello +{ +public: + /// Constructor + Hello (CORBA::ORB_ptr orb); + + // = The skeleton methods + virtual char * get_string ( + ::CORBA::Long valuea, + const char * inputa, + ::CORBA::Long valueb, + const char * inputb) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + /// Use an ORB reference to conver strings to objects and shutdown + /// the application. + CORBA::ORB_var orb_; +}; + +#include /**/ "ace/post.h" +#endif /* HELLO_H */ diff --git a/TAO/tests/Ondemand_Write/Ondemand_Write.mpc b/TAO/tests/Ondemand_Write/Ondemand_Write.mpc new file mode 100644 index 00000000000..9a1892855d9 --- /dev/null +++ b/TAO/tests/Ondemand_Write/Ondemand_Write.mpc @@ -0,0 +1,19 @@ +// -*- MPC -*- +// $Id$ + +project(*Server): taoserver { + idlflags += -Sa -St + Source_Files { + Hello.cpp + server.cpp + } +} + +project(*Client): taoclient { + after += *Server + Source_Files { + TestC.cpp + client.cpp + } +} + diff --git a/TAO/tests/Ondemand_Write/README b/TAO/tests/Ondemand_Write/README new file mode 100644 index 00000000000..ee77329decb --- /dev/null +++ b/TAO/tests/Ondemand_Write/README @@ -0,0 +1,37 @@ +/** + +@page Hello Test README File + + The simplest possible test for TAO. This is a very simple +test for TAO, it can be argued that it is in fact too simple to do +anything useful, i.e. chances are that this test will always pass. + + The goals of writing this test are: + +- Provide a very simple, very fast 'smoke test' for ORB developers. + If Hello does not pass then something is extremely broken and you + should go back to the drawing board. +- Provide a code base to write more complex tests +- Rule out basic infrastructure problems: if this test does not work + for a user then the infrastructure (network, DNS, host + configuration) are more likely to be at fault than the ORB. +- External users are often asked to send us a 'simple test' for their + use case, we can now point them to this test to explain what do we + mean by "simple". +- The -GA option has been added to the IDL compiler command line. + This option generates type code and Any insertion/extraction + operator implementations in a separate file with the extension *A.cpp. + This file is not included in the compilation however, to make sure + there is no dependency on it if the client and server do not use + type codes or Anys. + + Please refrain from "improving", extending or expanding this +test, if you need to change + + To run the test use the run_test.pl script: + +$ ./run_test.pl + + the script returns 0 if the test was successful. + +*/ diff --git a/TAO/tests/Ondemand_Write/Test.idl b/TAO/tests/Ondemand_Write/Test.idl new file mode 100644 index 00000000000..59719f1eee7 --- /dev/null +++ b/TAO/tests/Ondemand_Write/Test.idl @@ -0,0 +1,20 @@ +// +// $Id$ +// + +/// Put the interfaces in a module, to avoid global namespace pollution +module Test +{ + /// A very simple interface + interface Hello + { + /// Return a simple string + string get_string (in long valuea, in string inputa, in long valueb, in string inputb); + + /// A method to shutdown the ORB + /** + * This method is used to simplify the test shutdown process + */ + oneway void shutdown (); + }; +}; diff --git a/TAO/tests/Ondemand_Write/client.cpp b/TAO/tests/Ondemand_Write/client.cpp new file mode 100644 index 00000000000..e000950a65a --- /dev/null +++ b/TAO/tests/Ondemand_Write/client.cpp @@ -0,0 +1,87 @@ +// $Id$ + +#include "TestC.h" +#include "ace/Get_Opt.h" + +ACE_RCSID(Hello, client, "$Id$") + +const char *ior = "file://test.ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + ior = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-k <ior> " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + CORBA::Object_var tmp = + orb->string_to_object(ior ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Test::Hello_var hello = + Test::Hello::_narrow(tmp.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (hello.in ())) + { + ACE_ERROR_RETURN ((LM_DEBUG, + "Nil Test::Hello reference <%s>\n", + ior), + 1); + } + + CORBA::String_var test_string = CORBA::string_dup ("661234567890123456789012345678901234567890"); + CORBA::String_var the_string = + hello->get_string (5, test_string.in (), 6, test_string.in ()); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) - string returned <%s>\n", + the_string.in ())); + + hello->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/tests/Ondemand_Write/run_test.pl b/TAO/tests/Ondemand_Write/run_test.pl new file mode 100644 index 00000000000..023e5521bca --- /dev/null +++ b/TAO/tests/Ondemand_Write/run_test.pl @@ -0,0 +1,49 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../bin'; +use PerlACE::Run_Test; + +$status = 0; + +$iorfile = PerlACE::LocalFile ("server.ior"); +unlink $iorfile; + +if (PerlACE::is_vxworks_test()) { + $SV = new PerlACE::ProcessVX ("server", "-o server.ior"); +} +else { + $SV = new PerlACE::Process ("server", "-o $iorfile -ORBMaxMessageSize 40 "); +} +$CL = new PerlACE::Process ("client", " -k file://$iorfile -ORBMaxMessageSize 40 -ORBDebugLevel 10 "); + +$SV->Spawn (); + +if (PerlACE::waitforfile_timed ($iorfile, + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: cannot find file <$iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$client = $CL->SpawnWaitKill (300); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$server = $SV->WaitKill (10); + +if ($server != 0) { + print STDERR "ERROR: server returned $server\n"; + $status = 1; +} + +unlink $iorfile; + +exit $status; diff --git a/TAO/tests/Ondemand_Write/server.cpp b/TAO/tests/Ondemand_Write/server.cpp new file mode 100644 index 00000000000..177aad4d1d8 --- /dev/null +++ b/TAO/tests/Ondemand_Write/server.cpp @@ -0,0 +1,115 @@ +// $Id$ + +#include "Hello.h" +#include "ace/Get_Opt.h" +#include "ace/OS_NS_stdio.h" + +ACE_RCSID (Hello, + server, + "$Id$") + +const char *ior_output_file = "test.ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "o:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'o': + ior_output_file = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-o <iorfile>" + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Object_var poa_object = + orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (root_poa.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Panic: nil RootPOA\n"), + 1); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + Hello *hello_impl; + ACE_NEW_RETURN (hello_impl, + Hello (orb.in ()), + 1); + PortableServer::ServantBase_var owner_transfer(hello_impl); + + Test::Hello_var hello = + hello_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var ior = + orb->object_to_string (hello.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Output the IOR to the <ior_output_file> + FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + ior_output_file), + 1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n")); + + root_poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/tests/POA/Bug_2511_Regression/Bug_2511_Regression.mpc b/TAO/tests/POA/Bug_2511_Regression/Bug_2511_Regression.mpc new file mode 100644 index 00000000000..8bd676130d6 --- /dev/null +++ b/TAO/tests/POA/Bug_2511_Regression/Bug_2511_Regression.mpc @@ -0,0 +1,5 @@ +// -*- MPC -*- +// $Id$ + +project(POA*): taoserver, minimum_corba { +} diff --git a/TAO/tests/POA/Bug_2511_Regression/run_test.pl b/TAO/tests/POA/Bug_2511_Regression/run_test.pl new file mode 100755 index 00000000000..2fa2e079325 --- /dev/null +++ b/TAO/tests/POA/Bug_2511_Regression/run_test.pl @@ -0,0 +1,25 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../../bin'; +use PerlACE::Run_Test; + +if (PerlACE::is_vxworks_test()) { + $T = new PerlACE::ProcessVX ("server"); +} +else { + $T = new PerlACE::Process ("server"); +} + +$test = $T->SpawnWaitKill (60); + +if ($test != 0) { + print STDERR "ERROR: test returned $test\n"; + exit 1; +} + +exit 0; diff --git a/TAO/tests/POA/Bug_2511_Regression/server.cpp b/TAO/tests/POA/Bug_2511_Regression/server.cpp new file mode 100644 index 00000000000..a12ae327ee7 --- /dev/null +++ b/TAO/tests/POA/Bug_2511_Regression/server.cpp @@ -0,0 +1,286 @@ +// $Id$ + +//======================================================================== +// +// = LIBRARY +// TAO/tests/POA/MT_Servant_Locator +// +// = FILENAME +// server.cpp +// +// = DESCRIPTION +// This program tests that multiple calls to the Servant Locator +// can take place simultaneously. +// +// = AUTHOR +// Irfan Pyarali +// +//========================================================================= + +#include "testS.h" +#include "ace/OS.h" +#include "tao/PortableServer/ServantLocatorC.h" +#include "tao/CDR.h" + +int postCount = 0; +int errorCount = 0; + +class test_i : + public virtual POA_test +{ +public: + + test_i (PortableServer::POA_ptr poa); + + void normal (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void exceptional (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void notexisting (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + PortableServer::POA_var poa_; +}; + +test_i::test_i (PortableServer::POA_ptr poa) + : poa_ (PortableServer::POA::_duplicate (poa)) +{ +} + +void +test_i::normal (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_DEBUG ((LM_DEBUG, "executing normal\n")); +} + +void +test_i::exceptional (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_DEBUG ((LM_DEBUG, "executing exceptional\n")); +} + +void +test_i::notexisting (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_DEBUG ((LM_DEBUG, "executing notexisting\n")); +} + +class Servant_Locator : + public PortableServer::ServantLocator +{ +public: + + Servant_Locator (PortableServer::POA_ptr poa); + + ::PortableServer::Servant preinvoke (const PortableServer::ObjectId &, + PortableServer::POA_ptr, + const char *, + PortableServer::ServantLocator::Cookie & + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + PortableServer::ForwardRequest)); + + void postinvoke (const PortableServer::ObjectId &, + PortableServer::POA_ptr, + const char *, + PortableServer::ServantLocator::Cookie, + PortableServer::Servant + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + test_i servant_; +}; + +Servant_Locator::Servant_Locator (PortableServer::POA_ptr poa) + : servant_ (poa) +{ +} + +::PortableServer::Servant +Servant_Locator::preinvoke (const PortableServer::ObjectId &oid, + PortableServer::POA_ptr, + const char *op, + PortableServer::ServantLocator::Cookie & + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException, + PortableServer::ForwardRequest)) +{ + CORBA::String_var name = + PortableServer::ObjectId_to_string (oid); + + ACE_DEBUG ((LM_DEBUG, + "Servant_Locator::preinvoke for %s.%s ", + name.in (), op )); + + if (ACE_OS::strcmp (op, "normal") == 0) + { + ACE_DEBUG ((LM_DEBUG, "returning servant\n")); + return &this->servant_; + } + else if (ACE_OS::strcmp (op, "exceptional") == 0) + { + ACE_DEBUG ((LM_DEBUG, "throwing exception\n")); + throw CORBA::INTERNAL(); + } + else + { + ACE_DEBUG ((LM_DEBUG, "returning NULL\n")); + return 0; + } +} + +void +Servant_Locator::postinvoke (const PortableServer::ObjectId &oid, + PortableServer::POA_ptr, + const char *op, + PortableServer::ServantLocator::Cookie, + PortableServer::Servant + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ++postCount; + CORBA::String_var name = + PortableServer::ObjectId_to_string (oid); + + if (!op) + { + op = "NULL"; + ++errorCount; + } + + ACE_DEBUG ((LM_DEBUG, + "Servant_Locator::postinvoke for %s.%s\n", + name.in (), op )); + +} + +int +main (int argc, char **argv) +{ + int retval = 0; + + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv, + 0 + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Object_var obj = + orb->resolve_initial_references ("RootPOA" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::PolicyList policies; + CORBA::ULong current_length = 0; + + policies.length (current_length + 1); + policies[current_length++] = + root_poa->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + policies.length (current_length + 1); + policies[current_length++] = + root_poa->create_servant_retention_policy (PortableServer::NON_RETAIN + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + policies.length (current_length + 1); + policies[current_length++] = + root_poa->create_id_assignment_policy (PortableServer::USER_ID + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var child_poa = + root_poa->create_POA ("child", + poa_manager.in (), + policies + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Servant_Locator* servant_locator = new Servant_Locator(child_poa.in ()) ; + child_poa->set_servant_manager (servant_locator + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::ObjectId_var objectID = + PortableServer::string_to_ObjectId ("object"); + + CORBA::Object_var objectREF = + child_poa->create_reference_with_id (objectID.in (), + "IDL:test:1.0" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + test_var testObject = + test::_narrow (objectREF.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + testObject->normal(); + + bool caught = false; + ACE_TRY + { + testObject->exceptional(); + } + ACE_CATCHANY + { + ACE_DEBUG ((LM_DEBUG, "exceptional() yielded exception\n")); + caught = true; + } + ACE_ENDTRY; + if (!caught) ++errorCount; + + caught = false; + ACE_TRY + { + testObject->notexisting(); + } + ACE_CATCHANY + { + ACE_DEBUG ((LM_DEBUG, "notexisting() yielded exception\n")); + caught = true; + } + ACE_ENDTRY; + if (!caught) ++errorCount; + + if (!errorCount) + { + ACE_DEBUG ((LM_DEBUG,"test successful\n")); + } + else + { + ACE_DEBUG ((LM_DEBUG,"unsuccessfull: %d errors\n", errorCount )); + } + + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught"); + retval = -1; + } + ACE_ENDTRY; + + return retval; +} diff --git a/TAO/tests/POA/Bug_2511_Regression/test.idl b/TAO/tests/POA/Bug_2511_Regression/test.idl new file mode 100644 index 00000000000..373c4ef82f0 --- /dev/null +++ b/TAO/tests/POA/Bug_2511_Regression/test.idl @@ -0,0 +1,8 @@ +// $Id$ + +interface test +{ + void normal (); + void exceptional (); + void notexisting (); +}; diff --git a/TAO/tests/POA/EndpointPolicy/EndpointPolicy.mpc b/TAO/tests/POA/EndpointPolicy/EndpointPolicy.mpc new file mode 100644 index 00000000000..24b3507198f --- /dev/null +++ b/TAO/tests/POA/EndpointPolicy/EndpointPolicy.mpc @@ -0,0 +1,19 @@ +// -*- MPC -*- +// $Id$ + +project(*Server): taoserver, endpointpolicy, pi_server { + idlflags += -Sa -St + Source_Files { + Hello.cpp + server.cpp + } +} + +project(*Client): taoclient { + after += *Server + Source_Files { + TestC.cpp + client.cpp + } +} + diff --git a/TAO/tests/POA/EndpointPolicy/Hello.cpp b/TAO/tests/POA/EndpointPolicy/Hello.cpp new file mode 100644 index 00000000000..70af3ea8a11 --- /dev/null +++ b/TAO/tests/POA/EndpointPolicy/Hello.cpp @@ -0,0 +1,25 @@ +// +// $Id$ +// +#include "Hello.h" + +ACE_RCSID(Hello, Hello, "$Id$") + +Hello::Hello (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +char * +Hello::get_string (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return CORBA::string_dup ("Hello there!"); +} + +void +Hello::shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER); +} diff --git a/TAO/tests/POA/EndpointPolicy/Hello.h b/TAO/tests/POA/EndpointPolicy/Hello.h new file mode 100644 index 00000000000..1a404058944 --- /dev/null +++ b/TAO/tests/POA/EndpointPolicy/Hello.h @@ -0,0 +1,33 @@ +// +// $Id$ +// + +#ifndef HELLO_H +#define HELLO_H +#include /**/ "ace/pre.h" + +#include "TestS.h" + +/// Implement the Test::Hello interface +class Hello + : public virtual POA_Test::Hello +{ +public: + /// Constructor + Hello (CORBA::ORB_ptr orb); + + // = The skeleton methods + virtual char * get_string (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + /// Use an ORB reference to conver strings to objects and shutdown + /// the application. + CORBA::ORB_var orb_; +}; + +#include /**/ "ace/post.h" +#endif /* HELLO_H */ diff --git a/TAO/tests/POA/EndpointPolicy/README b/TAO/tests/POA/EndpointPolicy/README new file mode 100644 index 00000000000..611858f1666 --- /dev/null +++ b/TAO/tests/POA/EndpointPolicy/README @@ -0,0 +1,26 @@ +/** + +@page EndpointPolicy Test README File + + This test bases on the simplest TAO test - Hello test and adds the + endpoint policy test in the server application. The server application + explicitly creates the POAManager with a valid endpoint policy, uses + the POAManager to create a poa and uses the poa to activate a servant. + This is to test the endpoint policy in the POAManager influences the + selection of endpoints to be used when collecting Profiles for use + in Object References. + + In addition, the server application also tests some error conditions + such as an inappropriate policy is supplied to a new POAManager. + + + To run the test use the run_test.pl script: + +$ ./run_test.pl + + or start the client and the server manually: + +$ server -o $iorfile -p $port -ORBEndpoint iiop://localhost:$port & +$ client -k file://$iorfile + +*/ diff --git a/TAO/tests/POA/EndpointPolicy/Test.idl b/TAO/tests/POA/EndpointPolicy/Test.idl new file mode 100644 index 00000000000..3c0976e106d --- /dev/null +++ b/TAO/tests/POA/EndpointPolicy/Test.idl @@ -0,0 +1,20 @@ +// +// $Id$ +// + +/// Put the interfaces in a module, to avoid global namespace pollution +module Test +{ + /// A very simple interface + interface Hello + { + /// Return a simple string + string get_string (); + + /// A method to shutdown the ORB + /** + * This method is used to simplify the test shutdown process + */ + oneway void shutdown (); + }; +}; diff --git a/TAO/tests/POA/EndpointPolicy/client.cpp b/TAO/tests/POA/EndpointPolicy/client.cpp new file mode 100644 index 00000000000..61d7e6af070 --- /dev/null +++ b/TAO/tests/POA/EndpointPolicy/client.cpp @@ -0,0 +1,112 @@ +// $Id$ + +#include "TestC.h" +#include "ace/Get_Opt.h" + +ACE_RCSID(Hello, client, "$Id$") + +const char *ior = "file://test.ior"; +int bad_ior = 0; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:b"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + ior = get_opts.opt_arg (); + break; + + case 'b': + bad_ior = 1; + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-k <ior> " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + CORBA::ORB_var orb; + CORBA::Object_var tmp; + + ACE_TRY_NEW_ENV + { + orb = CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + tmp = orb->string_to_object(ior ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + ACE_TRY_NEW_ENV + { + ACE_DEBUG ((LM_DEBUG,"client: Invocation expecting to %s\n", + (bad_ior ? "fail" : "work"))); + Test::Hello_var hello = + Test::Hello::_narrow(tmp.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (hello.in ())) + { + ACE_ERROR_RETURN ((LM_DEBUG, + "Nil Test::Hello reference <%s>\n", + ior), + 1); + } + + CORBA::String_var the_string = + hello->get_string (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (bad_ior) + { + ACE_DEBUG ((LM_DEBUG,"client: Error: was expecting an exception.\n")); + return 1; + } + + ACE_DEBUG ((LM_DEBUG, "client: success!\n")); + + hello->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + if (!bad_ior) + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "client: Exception caught:"); + return 1; + } + ACE_DEBUG ((LM_DEBUG, "client: success!\n")); + } + ACE_ENDTRY; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + + return 0; +} diff --git a/TAO/tests/POA/EndpointPolicy/run_test.pl b/TAO/tests/POA/EndpointPolicy/run_test.pl new file mode 100755 index 00000000000..67303c96926 --- /dev/null +++ b/TAO/tests/POA/EndpointPolicy/run_test.pl @@ -0,0 +1,107 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../../bin'; +use PerlACE::Run_Test; + +$status = 0; + +$goodiorfile = PerlACE::LocalFile ("good.ior"); +$badiorfile = PerlACE::LocalFile ("bad.ior"); +unlink $goodiorfile; +unlink $badiorfile; + +$port = 12345; + +if (PerlACE::is_vxworks_test()) { + $sharedSV = new PerlACE::ProcessVX ("server", "-ORBUseSharedProfile 1 -g $goodiorfile -b $badiorfile -p $port"); +} +else { + $sharedSV = new PerlACE::Process ("server", "-ORBUseSharedProfile 1 -g $goodiorfile -b $badiorfile -p $port"); +} + +if (PerlACE::is_vxworks_test()) { + $multiSV = new PerlACE::ProcessVX ("server", "-ORBUseSharedProfile 0 -g $goodiorfile -b $badiorfile -p $port"); +} +else { + $multiSV = new PerlACE::Process ("server", "-ORBUseSharedProfile 0 -g $goodiorfile -b $badiorfile -p $port"); +} + +$goodCL = new PerlACE::Process ("client", " -k file://$goodiorfile"); +$badCL = new PerlACE::Process ("client", " -b -k file://$badiorfile"); + +print "Starting server using shared profiles\n"; + +$sharedSV->Spawn (); + +if (PerlACE::waitforfile_timed ($goodiorfile, + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: cannot find file <$goodiorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$client = $badCL->SpawnWaitKill (300); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$client = $goodCL->SpawnWaitKill (300); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$server = $sharedSV->WaitKill (10); + +if ($server != 0) { + print STDERR "ERROR: server [single profile per IOR] returned $server\n"; + $status = 1; +} + +unlink $goodiorfile; +unlink $badiorfile; + +print "Starting server using multiple profiles\n"; + +$multiSV->Spawn(); + +if (PerlACE::waitforfile_timed ($goodiorfile, + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: cannot find file <$goodiorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$client = $badCL->SpawnWaitKill (300); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$client = $goodCL->SpawnWaitKill (300); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$server = $multiSV->WaitKill (10); + +if ($server != 0) { + print STDERR "ERROR: server [multiple profiles per IOR] returned $server\n"; + $status = 1; +} + +unlink $goodiorfile; +unlink $badiorfile; + +exit $status; diff --git a/TAO/tests/POA/EndpointPolicy/server.cpp b/TAO/tests/POA/EndpointPolicy/server.cpp new file mode 100644 index 00000000000..b9a84c24704 --- /dev/null +++ b/TAO/tests/POA/EndpointPolicy/server.cpp @@ -0,0 +1,345 @@ +// $Id$ + +#include "Hello.h" +#include "tao/EndpointPolicy/EndpointPolicy.h" +#include "tao/EndpointPolicy/IIOPEndpointValue_i.h" +#include "tao/PI_Server/PI_Server.h" +#include "tao/ORB_Constants.h" +#include "ace/OS_NS_strings.h" +#include "ace/OS_NS_stdio.h" + +ACE_RCSID (Hello, + server, + "$Id$") + +const char *good_ior_file = "good.ior"; +const char *bad_ior_file = "bad.ior"; +const char *root_ior_file = "root.ior"; + +CORBA::Short endpoint_port = 12345; +int verbose = 0; + +int +parse_args (int argc, char *argv[]) +{ + for (int c = 1; c < argc; c++) { + if (ACE_OS::strcasecmp(argv[c],"-g") == 0) + { + good_ior_file = argv[++c]; + } + else if (ACE_OS::strcasecmp(argv[c],"-b") == 0) + { + bad_ior_file = argv[++c]; + } + else if (ACE_OS::strcasecmp(argv[c],"-p") == 0) + { + endpoint_port = ACE_OS::atoi (argv[++c]); + } + else if (ACE_OS::strcasecmp(argv[c],"-v") == 0) + { + verbose = 1; + } + else if (strstr(argv[c],"-ORB") == argv[c]) + { + c++; + continue; + } + else + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-g <goodiorfile> " + "-b <badiorfile> " + "-p <port> " + "-v " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +void +add_endpoint_args(int &argc, char**argv, char** &largv) +{ + largv = new char*[argc+4]; + for (int i = 0; i < argc; i++) + largv[i] = argv[i]; + largv[argc++] = "-ORBEndpoint"; + largv[argc] = new char[100]; + ACE_OS::sprintf (largv[argc++],"iiop://localhost:%d",endpoint_port); + largv[argc++] = "-ORBEndpoint"; + largv[argc] = new char[100]; + ACE_OS::sprintf (largv[argc++],"iiop://localhost:%d/hostname_in_ior=unreachable",endpoint_port+1); +} + +int +main (int argc, char *argv[]) +{ + + CORBA::ORB_var orb; + CORBA::Object_var obj; + PortableServer::POA_var root_poa; + PortableServer::POAManagerFactory_var poa_manager_factory; + + try + { + if (parse_args (argc, argv) != 0) + return 1; + char **largv; + add_endpoint_args(argc,argv, largv); + orb = + CORBA::ORB_init (argc, largv, "EndpointPolicy"); + + obj = + orb->resolve_initial_references("RootPOA"); + + root_poa = + PortableServer::POA::_narrow (obj.in ()); + + if (CORBA::is_nil (root_poa.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Panic: nil RootPOA\n"), + 1); + + poa_manager_factory + = root_poa->the_POAManagerFactory (); + } + catch (CORBA::Exception &ex) + { + ex._tao_print_exception("initialization error "); + return 1; + } + + // Currently, only single ENDPOINT_POLICY_TYPE policy is supported in + // the POAManager. A PolicyError exception with BAD_POLICY reason is + // raised if the POAManager has multiple policies. + bool policy_error_test = false; + CORBA::PolicyList policies; + + try + { + policies.length (2); + PortableServer::POAManager_var poa_manager + = poa_manager_factory->create_POAManager ("wrongPOAManager", + policies); + } + catch (CORBA::PolicyError &ex) + { + if (ex.reason == CORBA::BAD_POLICY) + policy_error_test = true; + } + + if (! policy_error_test) + return 1; + + policy_error_test = false; + + // A PolicyError exception with BAD_POLICY reason is raised if + // the POAManager has other policies. + try + { + policies.length (1); + + CORBA::Any policy_value; + policy_value <<= PortableServer::ORB_CTRL_MODEL; + + policies[0] = orb->create_policy (PortableServer::THREAD_POLICY_ID, + policy_value); + + PortableServer::POAManager_var poa_manager + = poa_manager_factory->create_POAManager ("wrongPOAManager", + policies); + } + catch (CORBA::PolicyError &ex) + { + if (ex.reason == CORBA::BAD_POLICY) + policy_error_test = true; + } + + if (! policy_error_test) + return 1; + + policy_error_test = false; + +#if 0 + // @@@ mesnier_p@ociweb.com + // This test is currently blocked out due to the vagueries of hostname + // creation at intermediate stages of endpoint production. See my note + // in tao/EndpointPolicy/IIOPEndpointValue_i.cpp (validate_acceptor()) + // for more information about this situation. + + // A PolicyError exception with UNSUPPORTED_POLICY_VALUE reason + // is raised if the Endpoint policy does not contain an endpoint + // that match any endpoint the ORB is listening on. + try + { + policies.length (1); + + CORBA::ULong port = 0xdead; + EndpointPolicy::EndpointValueBase_var iiop_endpoint + = new IIOPEndpointValue_i("localhost", port); + + EndpointPolicy::EndpointList list; + list.length (1); + + list[0] = iiop_endpoint; + + CORBA::Any policy_value; + policy_value <<= list; + + policies[0] = orb->create_policy (EndpointPolicy::ENDPOINT_POLICY_TYPE, + policy_value); + + PortableServer::POAManager_var poa_manager + = poa_manager_factory->create_POAManager ("wrongPOAManager", + policies); + } + catch (CORBA::PolicyError &ex) + { + if (ex.reason == CORBA::UNSUPPORTED_POLICY_VALUE) + policy_error_test = true; + } + + if (! policy_error_test) + return 1; +#endif + //----------------------------------------------------------------------- + + + // Create two valid endpoint policies. One to match each of the generated + // endpoint arguments supplied to ORB_init(). + PortableServer::POAManager_var good_pm; + PortableServer::POAManager_var bad_pm; + + policies.length (1); + + EndpointPolicy::EndpointValueBase_var iiop_endpoint = + new IIOPEndpointValue_i("localhost", endpoint_port); + + EndpointPolicy::EndpointList list; + list.length (1); + list[0] = iiop_endpoint; + + try + { + CORBA::Any policy_value; + policy_value <<= list; + policies[0] = orb->create_policy (EndpointPolicy::ENDPOINT_POLICY_TYPE, + policy_value); + good_pm = poa_manager_factory->create_POAManager ("goodPOAManager", + policies); + } + catch (CORBA::Exception &ex) + { + ex._tao_print_exception ("Failed to create reachable POA manager"); + return 1; + } + + list[0] = new IIOPEndpointValue_i("unreachable", endpoint_port+1); + try + { + CORBA::Any policy_value; + policy_value <<= list; + policies[0] = orb->create_policy (EndpointPolicy::ENDPOINT_POLICY_TYPE, + policy_value); + bad_pm = poa_manager_factory->create_POAManager ("badPOAManager", + policies); + } + catch (CORBA::Exception &ex) + { + ex._tao_print_exception ("Failed to create unreachable POA manager"); + return 1; + } + + try + { + PortableServer::ObjectId_var oid; + CORBA::Object_var o = CORBA::Object::_nil(); + FILE *output_file= 0; + // Create poas assiciated with the each the good poa manager and the + // bad poa manager. + policies.length(0); + PortableServer::POA_var good_poa = + root_poa->create_POA ("goodPOA", + good_pm.in (), + policies); + + PortableServer::POA_var bad_poa = + root_poa->create_POA ("badPOA", + bad_pm.in (), + policies); + + Hello *hello_impl; + ACE_NEW_RETURN (hello_impl, + Hello (orb.in ()), + 1); + PortableServer::ServantBase_var owner_transfer(hello_impl); + + ACE_DEBUG ((LM_DEBUG, "Creating IOR from root poa\n")); + + oid = root_poa->activate_object (hello_impl); + o = root_poa->id_to_reference (oid.in ()); + + CORBA::String_var root_ior = + orb->object_to_string (o.in ()); + + output_file= ACE_OS::fopen (root_ior_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + root_ior_file), + 1); + ACE_OS::fprintf (output_file, "%s", root_ior.in ()); + ACE_OS::fclose (output_file); + + ACE_DEBUG ((LM_DEBUG, "Creating IOR from bad poa\n")); + + oid = bad_poa->activate_object (hello_impl); + o = bad_poa->id_to_reference (oid.in()); + + CORBA::String_var bad_ior = + orb->object_to_string (o.in ()); + + ACE_DEBUG ((LM_DEBUG, "Creating IOR from good poa\n")); + + oid = good_poa->activate_object (hello_impl); + o = good_poa->id_to_reference (oid.in ()); + + CORBA::String_var good_ior = + orb->object_to_string (o.in ()); + + output_file= ACE_OS::fopen (good_ior_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + good_ior_file), + 1); + ACE_OS::fprintf (output_file, "%s", good_ior.in ()); + ACE_OS::fclose (output_file); + + output_file= ACE_OS::fopen (bad_ior_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + bad_ior_file), + 1); + ACE_OS::fprintf (output_file, "%s", bad_ior.in ()); + ACE_OS::fclose (output_file); + + good_pm->activate (); + bad_pm->activate (); + + orb->run (); + ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n")); + } + catch (CORBA::Exception &ex) + { + ex._tao_print_exception ("cannot run server"); + } + root_poa->destroy (1, 1); + + orb->destroy (); + + return 0; +} diff --git a/TAO/tests/POA/POAManagerFactory/POAManagerFactory.cpp b/TAO/tests/POA/POAManagerFactory/POAManagerFactory.cpp new file mode 100644 index 00000000000..184d3a7eaa5 --- /dev/null +++ b/TAO/tests/POA/POAManagerFactory/POAManagerFactory.cpp @@ -0,0 +1,306 @@ +// $Id$ + +//======================================================================== +// +// = LIBRARY +// TAO/tests/POA/POAManagerFactory +// +// = FILENAME +// POAManagerFactory.cpp +// +// = DESCRIPTION +// This program tests Root_POA::the_POAManagerFactory and +// the POAManagerFactory interfaces such as create_POAManager(), +// list () and find (). +// +// = AUTHOR +// Yan Dai +// +//========================================================================= + +#include "tao/ORB.h" +#include "tao/AnyTypeCode/Any.h" +#include "tao/PortableServer/PortableServer.h" +#include "tao/PI_Server/PI_Server.h" + +#include "ace/Log_Msg.h" +#include "ace/OS_NS_string.h" +#include "ace/Get_Opt.h" + +int fail = 0; +int pretest = 0; +int verbose = 0; + +#define VERIFY(Condition) \ +{ \ + if (!(Condition)) \ + { \ + fail++; \ + if (!verbose) \ + ACE_DEBUG ((LM_DEBUG, ACE_TEXT("(%P|%t) - Failure at line %l\n"))); \ + } \ +} + + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "v"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'v': + verbose = 1; + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-v " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char **argv) +{ + ACE_DECLARE_NEW_CORBA_ENV; + + ACE_TRY + { + // Initialize the ORB first. + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv, + "POAManagerFactoryTest" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + // Obtain the RootPOA. + CORBA::Object_var obj = + orb->resolve_initial_references ("RootPOA" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Narrow to POA. + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (verbose) + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("Obtain PoaManagerFactory reference: "))); + pretest = fail; + + // Obtain the POAManagerFactory. + PortableServer::POAManagerFactory_var poa_manager_factory + = root_poa->the_POAManagerFactory (); + + VERIFY (!CORBA::is_nil(poa_manager_factory.in())); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + if (CORBA::is_nil(poa_manager_factory.in())) + return 1; + + CORBA::PolicyList policies (0); + policies.length (0); + + if (verbose) + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("Create a POAManager: "))); + pretest = fail; + + // Explicitly create a POAManager - "POAManager1" . + PortableServer::POAManager_var poa_manager_1 + = poa_manager_factory->create_POAManager ("POAManager1", + policies + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (!CORBA::is_nil(poa_manager_1.in())); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + if (CORBA::is_nil(poa_manager_1.in())) + return 1; + + // Creating a POAManager with an exiting POAManager name raises exception. + if (verbose) + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("Prevent duplicated POAManagers: "))); + pretest = fail; + CORBA::Boolean got_expected_exception = false; + ACE_TRY_EX (create) + { + PortableServer::POAManager_var poa_manager + = poa_manager_factory->create_POAManager ("POAManager1", + policies + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK_EX (create); + } + ACE_CATCH (PortableServer::POAManagerFactory::ManagerAlreadyExists, ex) + { + got_expected_exception = true; + } + ACE_ENDTRY; + + VERIFY (got_expected_exception); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + + if (! got_expected_exception) + return 1; + + { + if (verbose) + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("Implicitly create a POAManagers: "))); + pretest = fail; + // Implicitly create a POAManager instance which has an automatically + // assigned name. + PortableServer::POA_var child_poa = + root_poa->create_POA ("childPOA2", + PortableServer::POAManager::_nil (), + policies + ACE_ENV_ARG_PARAMETER); + + PortableServer::POAManager_var poa_manager_2 + = child_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (!CORBA::is_nil(poa_manager_2.in())); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + + if (CORBA::is_nil(poa_manager_2.in())) + return 1; + + CORBA::String_var poa_manager_2_name + = poa_manager_2->get_id (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + if (verbose) + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("Implicitly created POAManager's ID: [%s]\n"), + ACE_TEXT_CHAR_TO_TCHAR(poa_manager_2_name.in()))); + + if (ACE_OS::strlen(poa_manager_2_name.in()) == 0) + return 1; + + if (verbose) + ACE_DEBUG ((LM_DEBUG, ACE_TEXT("List POAManagers: "))); + pretest = fail; + + PortableServer::POAManagerFactory::POAManagerSeq_var managers + = poa_manager_factory->list (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY (managers->length () == 3); + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + + PortableServer::POAManager_var root_poa_manager + = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + for (CORBA::ULong i = 0; i < managers->length(); ++i) + { + CORBA::String_var name = managers[i]->get_id (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + if (verbose) + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("Validate listed POAManager [%s]: "), + ACE_TEXT_CHAR_TO_TCHAR(name.in()))); + pretest = fail; + + if ((ACE_OS::strcmp (name.in (), "RootPOAManager") == 0 + && managers[i] == root_poa_manager.in ()) + || (ACE_OS::strcmp (name.in (), "POAManager1") == 0 + && managers[i] == poa_manager_1.in ()) + || (ACE_OS::strcmp (name.in (), poa_manager_2_name.in ()) == 0 + && managers[i] == poa_manager_2.in ())) + { + if (verbose) + ACE_DEBUG ((LM_DEBUG, ACE_TEXT("passed\n"))); + continue; + } + else + { + if (verbose) + ACE_DEBUG ((LM_DEBUG, ACE_TEXT("failed\n"))); + fail++; + } + } + } + + { + // Find a specific POAManager. + if (verbose) + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("Find a POAManager: "))); + pretest = fail; + + PortableServer::POAManager_var manager + = poa_manager_factory->find ("POAManager1" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var name = manager->get_id (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + VERIFY ((ACE_OS::strcmp (name.in (), "POAManager1") == 0 + && manager.in () == poa_manager_1.in ())); + + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("%s\n"), + (pretest == fail) ? ACE_TEXT ("passed") : ACE_TEXT ("failed"))); + } + + // Create a child poa that associates with the explicitly + // created POAManager. + if (verbose) + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("Create A POA with explicit POAManager: "))); + pretest = fail; + PortableServer::POA_var child_poa = + root_poa->create_POA ("childPOA", + poa_manager_1.in (), + policies + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + poa_manager_1->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + root_poa->destroy (1, 1); + + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("passed\n"))); + } + ACE_CATCHANY + { + fail++; + if (verbose) + ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("failed\n"))); + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught"); + } + ACE_ENDTRY; + ACE_CHECK_RETURN (-1); + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT("POAManagerFactory %s\n"), + (pretest == fail) ? ACE_TEXT ("succeeded") : ACE_TEXT ("failed"))); + + return 0; +} diff --git a/TAO/tests/POA/POAManagerFactory/POAManagerFactory.mpc b/TAO/tests/POA/POAManagerFactory/POAManagerFactory.mpc new file mode 100644 index 00000000000..49fcc0fc6a3 --- /dev/null +++ b/TAO/tests/POA/POAManagerFactory/POAManagerFactory.mpc @@ -0,0 +1,5 @@ +// -*- MPC -*- +// $Id$ + +project(POA*): taoexe, portableserver, pi_server { +} diff --git a/TAO/tests/POA/POAManagerFactory/run_test.pl b/TAO/tests/POA/POAManagerFactory/run_test.pl new file mode 100755 index 00000000000..39be0d05e74 --- /dev/null +++ b/TAO/tests/POA/POAManagerFactory/run_test.pl @@ -0,0 +1,25 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../../bin'; +use PerlACE::Run_Test; + +if (PerlACE::is_vxworks_test()) { + $T = new PerlACE::ProcessVX ("POAManagerFactory"); +} +else { + $T = new PerlACE::Process ("POAManagerFactory"); +} + +$test = $T->SpawnWaitKill (60); + +if ($test != 0) { + print STDERR "ERROR: test returned $test\n"; + exit 1; +} + +exit 0; diff --git a/TAO/tests/Parallel_Connect_Strategy/Parallel_Connect_Strategy.mpc b/TAO/tests/Parallel_Connect_Strategy/Parallel_Connect_Strategy.mpc new file mode 100644 index 00000000000..29d26448590 --- /dev/null +++ b/TAO/tests/Parallel_Connect_Strategy/Parallel_Connect_Strategy.mpc @@ -0,0 +1,18 @@ +// -*- MPC -*- +// $Id$ + +project(*Server): taoserver, iortable { + idlflags += -Sa -St + Source_Files { + Test_i.cpp + server.cpp + } +} + +project(*Client): taoclient { + after += *Server + Source_Files { + TestC.cpp + client.cpp + } +} diff --git a/TAO/tests/Parallel_Connect_Strategy/README b/TAO/tests/Parallel_Connect_Strategy/README new file mode 100644 index 00000000000..75dac13ce01 --- /dev/null +++ b/TAO/tests/Parallel_Connect_Strategy/README @@ -0,0 +1,33 @@ +/** + +@page Parallel Connect Strategy Test README File + +This test is intended to demonstrate that the Parallel Connect +strategy improves performance of connection establishment regardless +of the wait strategy involved. + +The measurements are timed invocations based on the ACE_High_Res_Timer. + +Sample run_test.pl output: +LF wait strategy test +Starting invocation 1 - call completed in 6347 usec +Starting invocation 2 - call completed in 406 usec + +LF wait strategy, corbaloc test +Narrowing IOR - call completed in 5172 usec +Starting invocation 1 - call completed in 193 usec +Starting invocation 2 - call completed in 170 usec + +Reactive wait strategy test +Starting invocation 1 - call completed in 4469 usec +Starting invocation 2 - call completed in 361 usec + +Blocked wait strategy test +Starting invocation 1 - call completed in 189015027 usec +Starting invocation 2 - call completed in 408 usec + +No parallel connect test +Starting invocation 1 - call completed in 189014806 usec +Starting invocation 2 - call completed in 189012352 usec + +*/ diff --git a/TAO/tests/Parallel_Connect_Strategy/Test.idl b/TAO/tests/Parallel_Connect_Strategy/Test.idl new file mode 100644 index 00000000000..3c0976e106d --- /dev/null +++ b/TAO/tests/Parallel_Connect_Strategy/Test.idl @@ -0,0 +1,20 @@ +// +// $Id$ +// + +/// Put the interfaces in a module, to avoid global namespace pollution +module Test +{ + /// A very simple interface + interface Hello + { + /// Return a simple string + string get_string (); + + /// A method to shutdown the ORB + /** + * This method is used to simplify the test shutdown process + */ + oneway void shutdown (); + }; +}; diff --git a/TAO/tests/Parallel_Connect_Strategy/Test_i.cpp b/TAO/tests/Parallel_Connect_Strategy/Test_i.cpp new file mode 100644 index 00000000000..bdf487d4a54 --- /dev/null +++ b/TAO/tests/Parallel_Connect_Strategy/Test_i.cpp @@ -0,0 +1,23 @@ +// +// $Id$ +// +#include "Test_i.h" + +Hello::Hello (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +char * +Hello::get_string (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return CORBA::string_dup ("Hello there!"); +} + +void +Hello::shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER); +} diff --git a/TAO/tests/Parallel_Connect_Strategy/Test_i.h b/TAO/tests/Parallel_Connect_Strategy/Test_i.h new file mode 100644 index 00000000000..0fbcc7a4ab6 --- /dev/null +++ b/TAO/tests/Parallel_Connect_Strategy/Test_i.h @@ -0,0 +1,35 @@ +// -*- C++ -*- + +// +// $Id$ +// + +#ifndef TEST_I_H +#define TEST_I_H +#include /**/ "ace/pre.h" + +#include "TestS.h" + +/// Implement the Test::Hello interface +class Hello + : public virtual POA_Test::Hello +{ +public: + /// Constructor + Hello (CORBA::ORB_ptr orb); + + // = The skeleton methods + virtual char * get_string (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + /// Use an ORB reference to conver strings to objects and shutdown + /// the application. + CORBA::ORB_var orb_; +}; + +#include /**/ "ace/post.h" +#endif /* TEST_I_H */ diff --git a/TAO/tests/Parallel_Connect_Strategy/blocked.conf b/TAO/tests/Parallel_Connect_Strategy/blocked.conf new file mode 100644 index 00000000000..2feddbe2302 --- /dev/null +++ b/TAO/tests/Parallel_Connect_Strategy/blocked.conf @@ -0,0 +1,3 @@ +# test for using the blocked connect strategy + +static Client_Strategy_Factory "-ORBConnectStrategy Blocked" diff --git a/TAO/tests/Parallel_Connect_Strategy/client.cpp b/TAO/tests/Parallel_Connect_Strategy/client.cpp new file mode 100644 index 00000000000..ee7747bb1ca --- /dev/null +++ b/TAO/tests/Parallel_Connect_Strategy/client.cpp @@ -0,0 +1,121 @@ +// $Id$ + +#include "TestC.h" +#include "ace/Get_Opt.h" +#include "ace/High_Res_Timer.h" + +ACE_RCSID(Hello, client, "$Id$") + +const char *ior = "file://test.ior"; +int kill_server = 0; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:x"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + ior = get_opts.opt_arg (); + break; + case 'x': + kill_server = 1; + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-k <ior> " + "-x " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + CORBA::Object_var tmp = + orb->string_to_object(ior ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_High_Res_Timer hrt; + ACE_hrtime_t elapsed; + + ACE_DEBUG ((LM_DEBUG,"Narrowing IOR - ")); + hrt.start(); + + Test::Hello_var hello = + Test::Hello::_narrow(tmp.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + hrt.stop(); + hrt.elapsed_microseconds (elapsed); + hrt.reset(); + + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("call completed in %d usec\n"), + elapsed )); + + if (CORBA::is_nil (hello.in ())) + { + ACE_ERROR_RETURN ((LM_DEBUG, + "Nil Test::Hello reference <%s>\n", + ior), + 1); + } + if (kill_server) + { + hello->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + else + { + ACE_DEBUG ((LM_DEBUG,"Starting invocation 1 - ")); + hrt.start(); + CORBA::String_var the_string = + hello->get_string (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + hrt.stop(); + hrt.elapsed_microseconds (elapsed); + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("call completed in %d usec\n"), + elapsed )); + ACE_DEBUG ((LM_DEBUG,"Starting invocation 2 - ")); + hrt.reset(); + hrt.start(); + the_string = hello->get_string (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + hrt.stop(); + hrt.elapsed_microseconds (elapsed); + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("call completed in %d usec\n"), + elapsed )); + } + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/tests/Parallel_Connect_Strategy/reactive.conf b/TAO/tests/Parallel_Connect_Strategy/reactive.conf new file mode 100644 index 00000000000..0317f1c624c --- /dev/null +++ b/TAO/tests/Parallel_Connect_Strategy/reactive.conf @@ -0,0 +1,3 @@ +# test for using the blocked connect strategy + +static Client_Strategy_Factory "-ORBConnectStrategy Reactive" diff --git a/TAO/tests/Parallel_Connect_Strategy/run_test.pl b/TAO/tests/Parallel_Connect_Strategy/run_test.pl new file mode 100755 index 00000000000..e663d69e42d --- /dev/null +++ b/TAO/tests/Parallel_Connect_Strategy/run_test.pl @@ -0,0 +1,97 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../bin'; +use PerlACE::Run_Test; + +$iorfile = PerlACE::LocalFile ("altiiop.ior"); +unlink $iorfile; +$status = 0; +@bogus_eps = ("-orbendpoint iiop://localhost:10200/hostname_in_ior=126.0.0.123", + "-orbendpoint iiop://localhost:10202/hostname_in_ior=126.0.0.124"); +$valid_ep = "-orbendpoint iiop://localhost:10201"; + +$corbaloc = "corbaloc::126.0.0.123:10200,:localhost:10201,:126.0.0.124:10202/pcs_test"; + +$SV_ALT_IIOP = new PerlACE::Process ("server", "-ORBUseSharedProfile 1 -o $iorfile $bogus_eps[0] $valid_ep $bogus_eps[1]"); + +$CL_LF = new PerlACE::Process ("client", "-ORBuseParallelConnects 1 -k file://$iorfile"); +$CL_CORBALOC = new PerlACE::Process ("client", "-ORBuseParallelConnects 1 -k $corbaloc"); +$CL_Reactive = new PerlACE::Process ("client", "-ORBSvcConf reactive.conf -ORBuseParallelConnects 1 -k file://$iorfile"); +$CL_Blocked = new PerlACE::Process ("client", "-ORBSvcConf blocked.conf -ORBuseParallelConnects 1 -k file://$iorfile"); +$CL_None = new PerlACE::Process ("client", "-ORBuseParallelConnects 0 -k file://$iorfile"); +$CL_Shutdown = new PerlACE::Process ("client", "-ORBuseParallelConnects 1 -k file://$iorfile -x"); + +$SV_ALT_IIOP->Spawn (); + +if (PerlACE::waitforfile_timed ($iorfile, + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: cannot find file <$iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +print "LF wait strategy test\n"; + +$client = $CL_LF->SpawnWaitKill (60); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +print "\nLF wait strategy, corbaloc test\n"; + +$client = $CL_CORBALOC->SpawnWaitKill (60); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +print "\nReactive wait strategy test\n"; + +$client = $CL_Reactive->SpawnWaitKill (60); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +print "\nBlocked wait strategy test\n"; + +$client = $CL_Blocked->SpawnWaitKill (600); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +print "\nNo parallel connect test\n"; + +$client = $CL_None->SpawnWaitKill (900); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$client = $CL_Shutdown->SpawnWaitKill (60); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$server = $SV_ALT_IIOP->WaitKill (60); + +if ($server != 0) { + print STDERR "ERROR: server returned $server\n"; + $status = 1; +} + +exit $status; diff --git a/TAO/tests/Parallel_Connect_Strategy/server.cpp b/TAO/tests/Parallel_Connect_Strategy/server.cpp new file mode 100644 index 00000000000..153aba883ff --- /dev/null +++ b/TAO/tests/Parallel_Connect_Strategy/server.cpp @@ -0,0 +1,136 @@ +// $Id$ + +#include "Test_i.h" +#include "ace/Get_Opt.h" +#include "ace/OS_NS_stdio.h" +#include "tao/IORTable/IORTable.h" + +ACE_RCSID (Hello, + server, + "$Id$") + +const char *ior_output_file = "test.ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "o:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'o': + ior_output_file = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-o <iorfile>" + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Object_var poa_object = + orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (root_poa.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Panic: nil RootPOA\n"), + 1); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + Hello *hello_impl; + ACE_NEW_RETURN (hello_impl, + Hello (orb.in ()), + 1); + PortableServer::ServantBase_var owner_transfer(hello_impl); + + Test::Hello_var hello = + hello_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + + CORBA::String_var ior = + orb->object_to_string (hello.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Output the IOR to the <ior_output_file> + FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + ior_output_file), + 1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + + CORBA::Object_var table_object = + orb->resolve_initial_references ("IORTable" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + IORTable::Table_var adapter = + IORTable::Table::_narrow (table_object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (adapter.in ())) + { + ACE_ERROR ((LM_ERROR, "Nil IORTable\n")); + } + else + { + adapter->bind ("pcs_test", ior.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n")); + + root_poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/Bug_2510_Regression.mpc b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/Bug_2510_Regression.mpc new file mode 100644 index 00000000000..a49d6902aa6 --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/Bug_2510_Regression.mpc @@ -0,0 +1,20 @@ +// -*- MPC -*- +// $Id$ + +project(*Server): taoserver, pi_server, interceptors { + Source_Files { + test_i.cpp + server.cpp + } +} + +project(*Client): taoclient, pi, interceptors { + after += *Server + Source_Files { + testC.cpp + Client_ORBInitializer.cpp + client_interceptor.cpp + client.cpp + } +} + diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/Client_ORBInitializer.cpp b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/Client_ORBInitializer.cpp new file mode 100644 index 00000000000..acceb91568b --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/Client_ORBInitializer.cpp @@ -0,0 +1,49 @@ +// -*- C++ -*- +// +// $Id$ +// + +#include "Client_ORBInitializer.h" +#include "client_interceptor.h" + +ACE_RCSID (Bug_2510_Regression, Client_ORBInitializer, "$Id$") + +Client_ORBInitializer::Client_ORBInitializer (void) +{ +} + +void +Client_ORBInitializer::pre_init ( + PortableInterceptor::ORBInitInfo_ptr + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ +} + +void +Client_ORBInitializer::post_init ( + PortableInterceptor::ORBInitInfo_ptr info + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableInterceptor::SlotId slot_id = info->allocate_slot_id (); + + PortableInterceptor::ClientRequestInterceptor_ptr interceptor = + PortableInterceptor::ClientRequestInterceptor::_nil (); + + // Install the Echo client request interceptor + ACE_NEW_THROW_EX (interceptor, + Echo_Client_Request_Interceptor (), + CORBA::NO_MEMORY ()); + ACE_CHECK; + + PortableInterceptor::ClientRequestInterceptor_var + client_interceptor = interceptor; + + info->add_client_request_interceptor (client_interceptor.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + ACE_UNUSED_ARG (slot_id); +} + diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/Client_ORBInitializer.h b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/Client_ORBInitializer.h new file mode 100644 index 00000000000..569419fb346 --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/Client_ORBInitializer.h @@ -0,0 +1,48 @@ +// -*- C++ -*- +// +// $Id$ +// + +#ifndef TAO_CLIENT_ORB_INITIALIZER_H +#define TAO_CLIENT_ORB_INITIALIZER_H +#include /**/ "ace/pre.h" + +#include "tao/PI/PI.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/LocalObject.h" + +// This is to remove "inherits via dominance" warnings from MSVC. +// MSVC is being a little too paranoid. +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +/// Client ORB initializer. +class Client_ORBInitializer : + public virtual PortableInterceptor::ORBInitializer, + public virtual TAO_Local_RefCounted_Object +{ +public: + /// Constructor + Client_ORBInitializer (void); + + virtual void pre_init (PortableInterceptor::ORBInitInfo_ptr info + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void post_init (PortableInterceptor::ORBInitInfo_ptr info + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); +}; + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#include /**/ "ace/post.h" +#endif /* TAO_CLIENT_ORB_INITIALIZER_H */ diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/client.cpp b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/client.cpp new file mode 100644 index 00000000000..7c0c3cc2431 --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/client.cpp @@ -0,0 +1,117 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ace/Synch.h" +#include "testC.h" +#include "Client_ORBInitializer.h" +#include "tao/ORBInitializer_Registry.h" + +ACE_RCSID(Bug_2510_Regression, client, "$Id$") + +const char *ior = "file://test.ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "ef:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'e': + break; + case 'f': + ior = get_opts.opt_arg (); + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-v " + "\n", + argv [0]), + -1); + } + return 0; +} + +static ACE_THR_FUNC_RETURN run_test(void* pData) +{ + Test_Interceptors::Visual_ptr server = static_cast<Test_Interceptors::Visual_ptr>(pData); + + server->normal (10 ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + return (ACE_THR_FUNC_RETURN)0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + PortableInterceptor::ORBInitializer_ptr temp_initializer; + + ACE_NEW_RETURN (temp_initializer, + Client_ORBInitializer, + -1); // No exceptions yet! + PortableInterceptor::ORBInitializer_var initializer = + temp_initializer; + + PortableInterceptor::register_orb_initializer (initializer.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + CORBA::Object_var object = + orb->string_to_object (ior ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Test_Interceptors::Visual_var server = + Test_Interceptors::Visual::_narrow (object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (server.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Object reference <%s> is nil\n", + ior), + 1); + } + + ACE_hthread_t threadHandle; + if ( ACE_Thread::spawn( run_test, + static_cast<void*>(server.in()), + THR_NEW_LWP | THR_JOINABLE , + 0, + & threadHandle + ) == -1 ) + { + ACE_ERROR_RETURN ((LM_ERROR,"Cannot start thread"), 1); + } + + ACE_Thread::join (threadHandle); + ACE_TRY_CHECK; + + //server->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Caught exception in client:"); + return 1; + } + + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/client_interceptor.cpp b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/client_interceptor.cpp new file mode 100644 index 00000000000..8b6c9a89a5c --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/client_interceptor.cpp @@ -0,0 +1,116 @@ +// $Id$ + +#include "client_interceptor.h" +#include "tao/OctetSeqC.h" +#include "ace/Log_Msg.h" +#include "tao/ORB_Constants.h" +#include "ace/OS_NS_string.h" + +ACE_RCSID (Bug_2510_Regression, + client_interceptor, + "$Id$") + +const IOP::ServiceId service_id = 0xdeadbeef; +const char *request_msg = "REQUEST message"; +const char *reply_msg = "REPLY message"; +const char *forward_msg = "FORWARD message"; + +Echo_Client_Request_Interceptor:: +Echo_Client_Request_Interceptor () + : myname_ ("Echo_Client_Interceptor") +{ +} + +Echo_Client_Request_Interceptor::~Echo_Client_Request_Interceptor (void) +{ +} + +char * +Echo_Client_Request_Interceptor::name (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return CORBA::string_dup (this->myname_); +} + +void +Echo_Client_Request_Interceptor::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ +} + +void +Echo_Client_Request_Interceptor::send_poll ( + PortableInterceptor::ClientRequestInfo_ptr + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + // Do Nothing +} + +void +Echo_Client_Request_Interceptor::send_request ( + PortableInterceptor::ClientRequestInfo_ptr ri + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + PortableInterceptor::ForwardRequest)) +{ + CORBA::String_var operation = + ri->operation (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + CORBA::Object_var target = + ri->target (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + ACE_DEBUG ((LM_DEBUG,"%s.send_request from %s\n", this->myname_, operation.in ())); +} + +void +Echo_Client_Request_Interceptor::receive_reply ( + PortableInterceptor::ClientRequestInfo_ptr ri + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + CORBA::String_var operation = + ri->operation (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + CORBA::Object_var target = + ri->target (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + ACE_DEBUG ((LM_DEBUG,"%s.receive_reply from %s\n", this->myname_, operation.in ())); +} + +void +Echo_Client_Request_Interceptor::receive_other ( + PortableInterceptor::ClientRequestInfo_ptr ri + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + PortableInterceptor::ForwardRequest)) +{ + CORBA::String_var operation = ri->operation (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + CORBA::Object_var target = ri->target (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + ACE_DEBUG ((LM_DEBUG,"%s.receive_other from %s\n", this->myname_, operation.in ())); +} + +void +Echo_Client_Request_Interceptor::receive_exception ( + PortableInterceptor::ClientRequestInfo_ptr ri + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + PortableInterceptor::ForwardRequest)) +{ + CORBA::String_var operation = ri->operation (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + CORBA::Object_var target = ri->target (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + ACE_DEBUG ((LM_DEBUG,"%s.receive_exception from %s\n", this->myname_, operation.in ())); +} + diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/client_interceptor.h b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/client_interceptor.h new file mode 100644 index 00000000000..95c3e21346f --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/client_interceptor.h @@ -0,0 +1,72 @@ +// -*- C++ -*- +// +// $Id$ + +#ifndef TAO_CLIENT_INTERCEPTOR_H +#define TAO_CLIENT_INTERCEPTOR_H + +#include "tao/PI/PI.h" +#include "tao/PortableInterceptorC.h" +#include "tao/LocalObject.h" +#include "tao/ORB.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +class Echo_Client_Request_Interceptor + : public virtual PortableInterceptor::ClientRequestInterceptor, + public virtual TAO_Local_RefCounted_Object +{ + // = Client-side echo interceptor. For checking interceptor visually only. +public: + Echo_Client_Request_Interceptor (); + // ctor. + + virtual ~Echo_Client_Request_Interceptor (); + // dtor. + + virtual char * name (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + // Canonical name of the interceptor. + + virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void send_poll (PortableInterceptor::ClientRequestInfo_ptr + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void send_request (PortableInterceptor::ClientRequestInfo_ptr ri + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + PortableInterceptor::ForwardRequest)); + + virtual void receive_reply (PortableInterceptor::ClientRequestInfo_ptr ri + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void receive_other (PortableInterceptor::ClientRequestInfo_ptr ri + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + PortableInterceptor::ForwardRequest)); + + virtual void receive_exception (PortableInterceptor::ClientRequestInfo_ptr ri + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + PortableInterceptor::ForwardRequest)); + +private: + const char *myname_; +}; + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#endif /* TAO_CLIENT_INTERCEPTOR_H */ diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/run_test.pl b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/run_test.pl new file mode 100755 index 00000000000..fa204e17d8c --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/run_test.pl @@ -0,0 +1,50 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../../bin'; +use PerlACE::Run_Test; + +$status = 0; +$file = PerlACE::LocalFile ("test.ior"); + +unlink $file; + +if (PerlACE::is_vxworks_test()) { + $SV = new PerlACE::ProcessVX ("server", "-o test.ior"); +} +else { + $SV = new PerlACE::Process ("server", "-o $file"); +} +$CL = new PerlACE::Process ("client", "-f file://$file"); + +print STDERR "\n\n==== Running interceptor test\n"; + +$SV->Spawn (); + +if (PerlACE::waitforfile_timed ($file, 15) == -1) { + print STDERR "ERROR: cannot find file <$file>\n"; + $SV->Kill (); + exit 1; +} + +$client = $CL->SpawnWaitKill (60); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +$server = $SV->WaitKill (5); + +if ($server != 0) { + print STDERR "ERROR: server returned $server\n"; + $status = 1; +} + +unlink $file; + +exit $status; diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/server.cpp b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/server.cpp new file mode 100644 index 00000000000..4043ed02514 --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/server.cpp @@ -0,0 +1,127 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ace/OS_NS_stdio.h" +#include "test_i.h" +#include "tao/ORBInitializer_Registry.h" + +ACE_RCSID (Bug_2510_Regression, + server, + "$Id$") + +const char *ior_output_file = "test.ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "o:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'o': + ior_output_file = get_opts.opt_arg (); + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-o <iorfile>" + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + // Now create an ORB + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Object_var poa_object = + orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (poa_object.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to initialize the POA.\n"), + 1); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + Visual_i server_impl (orb.in ()); + + PortableServer::ObjectId_var id = + root_poa->activate_object (&server_impl + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Object_var test_obj = + root_poa->id_to_reference (id.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Test_Interceptors::Visual_var server = + Test_Interceptors::Visual::_narrow (test_obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var ior = + orb->object_to_string (server.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, + "Test_Interceptors::Visual: <%s>\n", + ior.in ())); + + // If the ior_output_file exists, output the ior to it + if (ior_output_file != 0) + { + FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + ior_output_file), + 1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + } + + orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "event loop finished\n")); + + root_poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Caught exception in server:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/test.idl b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/test.idl new file mode 100644 index 00000000000..d895106d35a --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/test.idl @@ -0,0 +1,32 @@ +// $Id$ + +module Test_Interceptors +{ + exception Silly + {}; + + interface Visual + { + // = TITLE + // A test idl for checking interceptor visually. + // + // = DESCRIPTION + // + + void normal (in long arg); + // Normal operation. + + void nothing (); + // Normal operation without return. + + void user () + raises (Silly); + // throws a user exception. + + void system (); + // thows a system exception. + + oneway void shutdown (); + // shutdown the ORB + }; +}; diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/test_i.cpp b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/test_i.cpp new file mode 100644 index 00000000000..39039d4e834 --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/test_i.cpp @@ -0,0 +1,53 @@ +// $Id$ + +#include "test_i.h" + +ACE_RCSID (Bug_2510_Regression, + test_i, + "$Id$") + + +Visual_i::Visual_i (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +void +Visual_i::normal (CORBA::Long arg + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_DEBUG ((LM_DEBUG, "Visual::normal called with %d\n", arg)); +} + +void +Visual_i::nothing (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_DEBUG ((LM_DEBUG, "Visual::nothing\n")); +} + +void +Visual_i::user (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Test_Interceptors::Silly)) +{ + ACE_DEBUG ((LM_DEBUG, "Visual::user, throwing Silly\n")); + ACE_THROW (Test_Interceptors::Silly ()); +} + +void +Visual_i::system (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_DEBUG ((LM_DEBUG, "Visual::user, throwing INV_OBJREF\n")); + ACE_THROW (CORBA::INV_OBJREF ()); +} + +void +Visual_i::shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER); + ACE_CHECK; +} diff --git a/TAO/tests/Portable_Interceptors/Bug_2510_Regression/test_i.h b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/test_i.h new file mode 100644 index 00000000000..5a6df58c457 --- /dev/null +++ b/TAO/tests/Portable_Interceptors/Bug_2510_Regression/test_i.h @@ -0,0 +1,55 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file test_i.h + * + * $Id$ + * + * @author Nanbor Wang + */ +//============================================================================= + + +#ifndef TAO_INTERCEPTOR_TEST_I_H +#define TAO_INTERCEPTOR_TEST_I_H + +#include "testS.h" + +/** + * @class Visual_i + * + * Implements the Visual interface in test.idl + */ +class Visual_i : public POA_Test_Interceptors::Visual +{ + +public: + + Visual_i (CORBA::ORB_ptr orb); + + void normal (CORBA::Long arg + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void nothing (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void user (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Test_Interceptors::Silly)); + + void system (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void shutdown (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + + /// The ORB pseudo-reference (for shutdown). + CORBA::ORB_var orb_; + +}; + +#endif /* TAO_INTERCEPTOR_TEST_I_H */ diff --git a/TAO/tests/Sequence_Unit_Tests/Unbounded_Octet.cpp b/TAO/tests/Sequence_Unit_Tests/Unbounded_Octet.cpp new file mode 100644 index 00000000000..2ec62a8fe35 --- /dev/null +++ b/TAO/tests/Sequence_Unit_Tests/Unbounded_Octet.cpp @@ -0,0 +1,52 @@ +/** + * @file + * + * @brief Smoke test (basically just compile) the unbounded sequences + * for octets. + * + * $Id$ + * + * @author Johnny Willemsen <jwillemsen@remedy.nl> + */ +#include "tao/Basic_Types.h" +#include "tao/Unbounded_Octet_Sequence_T.h" + +typedef TAO::unbounded_value_sequence <CORBA::Octet> s_sequence; + +int main(int,char*[]) +{ + s_sequence a; + s_sequence b(23); + + s_sequence c(32, 0, s_sequence::allocbuf(32), true); + a = b; + + a.length(c.maximum()); + if (a.release()) + { + b.length(a.length()); + } + a[0] = 'a'; + b[0] = a[0]; + + s_sequence const & d = a; + c[0] = d[0]; + + b.replace(64, 0, s_sequence::allocbuf(64), true); + + CORBA::Octet const * x = d.get_buffer(); + if (x != 0) + { + s_sequence::freebuf(a.get_buffer(true)); + } + x = b.get_buffer(); + + if (d.length()) + { + s_sequence::freebuf(s_sequence::allocbuf(64)); + } + + s_sequence e(c); + + return 0; +} diff --git a/TAO/tests/Sequence_Unit_Tests/bounded_sequence_cdr_ut.cpp b/TAO/tests/Sequence_Unit_Tests/bounded_sequence_cdr_ut.cpp new file mode 100644 index 00000000000..dcae6b009f4 --- /dev/null +++ b/TAO/tests/Sequence_Unit_Tests/bounded_sequence_cdr_ut.cpp @@ -0,0 +1,126 @@ +/** + * @file + * + * @brief Unit test for bounded sequences of object references. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "testing_object_reference_traits.hpp" +#include "tao/Object_Reference_Traits_T.h" +#include "testing_allocation_traits.hpp" +#include "testing_range_checking.hpp" + +#include "mock_reference.hpp" + +#include "tao/Bounded_Object_Reference_Sequence_T.h" +#include "tao/Bounded_Value_Sequence_T.h" +#include "tao/Bounded_Sequence_CDR_T.h" +#include "tao/CDR.h" + +#include <boost/test/unit_test.hpp> +#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> + +using namespace boost::unit_test_framework; +using namespace TAO_VERSIONED_NAMESPACE_NAME::TAO; + +CORBA::ULong const TMAX = 64; + +typedef bounded_object_reference_sequence<mock_reference, mock_reference_var,TMAX> tested_sequence; + +CORBA::Boolean operator<< (TAO_OutputCDR &strm, const tested_sequence &sequence) +{ + return TAO::marshal_sequence(strm, sequence); +} + +CORBA::Boolean operator>> (TAO_InputCDR &strm, tested_sequence &sequence) +{ + return TAO::demarshal_sequence(strm, sequence); +} + +struct Tester +{ + typedef tested_sequence::value_type value_type; + typedef tested_sequence::const_value_type const_value_type; + + typedef tested_sequence::element_traits tested_element_traits; + typedef tested_sequence::allocation_traits tested_allocation_traits; + typedef TAO::details::range_checking<value_type,true> range; + + value_type * alloc_and_init_buffer() + { + value_type * buf = tested_sequence::allocbuf(8); + buf[0] = mock_reference::allocate(1); + buf[1] = mock_reference::allocate(4); + buf[2] = mock_reference::allocate(9); + buf[3] = mock_reference::allocate(16); + + return buf; + } + + void check_values(tested_sequence const & a) + { + BOOST_CHECK_EQUAL( 1, a[0]->id()); + BOOST_CHECK_EQUAL( 4, a[1]->id()); + BOOST_CHECK_EQUAL( 9, a[2]->id()); + BOOST_CHECK_EQUAL(16, a[3]->id()); + } + + void test_stream() + { + value_type * buffer = alloc_and_init_buffer(); + + expected_calls s(mock_reference::marshal_calls); + { + tested_sequence a; + a.replace(4, buffer, false); + + BOOST_CHECK_EQUAL(CORBA::ULong(64), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(false, a.release()); + check_values(a); + + TAO_OutputCDR stream; + stream << a; + BOOST_CHECK_MESSAGE(s.expect(4), s); + } + tested_sequence::freebuf(buffer); + } + + void add_all(test_suite * ts) + { + boost::shared_ptr<Tester> shared_this(self_); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_stream, + shared_this)); + } + + static boost::shared_ptr<Tester> allocate() + { + boost::shared_ptr<Tester> ptr(new Tester); + ptr->self_ = ptr; + + return ptr; + } + +private: + Tester() {} + + boost::weak_ptr<Tester> self_; +}; + +ACE_Proper_Export_Flag test_suite * +init_unit_test_suite(int, char*[]) +{ + test_suite * ts = + BOOST_TEST_SUITE("unbounded object reference sequence unit test"); + + boost::shared_ptr<Tester> tester(Tester::allocate()); + tester->add_all(ts); + + return ts; +} + diff --git a/TAO/tests/Sequence_Unit_Tests/mock_array.cpp b/TAO/tests/Sequence_Unit_Tests/mock_array.cpp new file mode 100644 index 00000000000..ae4017ff3e9 --- /dev/null +++ b/TAO/tests/Sequence_Unit_Tests/mock_array.cpp @@ -0,0 +1,51 @@ +/** + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "mock_array.hpp" + +my_array_slice * +TAO::Array_Traits<my_array,my_array_slice,my_array_tag>:: +alloc() +{ + return new my_array; +} + +void +TAO::Array_Traits<my_array,my_array_slice,my_array_tag>:: +free(my_array_slice * _tao_slice) +{ + delete[] _tao_slice; +} + +my_array_slice * +TAO::Array_Traits<my_array,my_array_slice,my_array_tag>:: +dup(my_array_slice const * _tao_source) +{ + // TODO exception safety + my_array_slice * _tao_destination = alloc(); + copy(_tao_destination, _tao_source); + return _tao_destination; +} + +void +TAO::Array_Traits<my_array,my_array_slice,my_array_tag>:: +copy( + my_array_slice * _tao_destination, + my_array_slice const * _tao_source) +{ + std::copy( + _tao_source, _tao_source + sizeof(my_array)/sizeof(my_array_slice), + _tao_destination); +} + +void +TAO::Array_Traits<my_array,my_array_slice,my_array_tag>:: +zero( + my_array_slice * _tao_slice) +{ + std::fill( + _tao_slice, _tao_slice + sizeof(my_array)/sizeof(my_array_slice), + 0); +} diff --git a/TAO/tests/Sequence_Unit_Tests/mock_array.hpp b/TAO/tests/Sequence_Unit_Tests/mock_array.hpp new file mode 100644 index 00000000000..c864d59dbf2 --- /dev/null +++ b/TAO/tests/Sequence_Unit_Tests/mock_array.hpp @@ -0,0 +1,46 @@ +#ifndef guard_mock_array_hpp +#define guard_mock_array_hpp +#include /**/ "ace/pre.h" +/** + * @file + * + * @brief Mock an IDL-generated array + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "testing_counters.hpp" + +#include <algorithm> + +typedef unsigned long my_array[5]; +typedef unsigned long my_array_slice; +struct my_array_tag {}; + +namespace TAO +{ + +template<typename T, typename T_slice, typename TAG> +struct Array_Traits; + +template<> +struct Array_Traits<my_array,my_array_slice,my_array_tag> +{ + static my_array_slice * alloc(); + static void free(my_array_slice * _tao_slice); + static my_array_slice * dup(my_array_slice const * _tao_source); + static void copy( + my_array_slice * _tao_destination, + my_array_slice const * _tao_source); + + // TODO This is a new function + static void zero( + my_array_slice * _tao_slice); + +}; + +} + +#include /**/ "ace/post.h" +#endif // guard_mock_array_hpp diff --git a/TAO/tests/Sequence_Unit_Tests/string_ut.cpp b/TAO/tests/Sequence_Unit_Tests/string_ut.cpp new file mode 100644 index 00000000000..5ff67e39e0d --- /dev/null +++ b/TAO/tests/Sequence_Unit_Tests/string_ut.cpp @@ -0,0 +1,139 @@ +/** + * @file + * + * @brief Unit test for CORBA string + * + * $Id$ + * + * @author Johnny Willemsen + */ +#include "testing_string_traits.hpp" +#include "tao/CORBA_String.h" + +#include "ace/OS_NS_string.h" + +#include <sstream> +#include <stdexcept> +#include <iostream> + +#include <boost/test/unit_test.hpp> +#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> + +using namespace TAO::details; + +using namespace boost::unit_test_framework; + +template<typename charT> +struct helper {}; + +template<> +struct helper<char> +{ + static char const * empty() { + return ""; + } + static char const * sample0() { + return "Hello"; + } + static char const * sample1() { + return "World"; + } + static char * dup_sample0() { + return string_traits<char,true>::duplicate(sample0()); + } + static char * dup_sample1() { + return string_traits<char,true>::duplicate(sample1()); + } + static bool equal(char const * lhs, char const * rhs) { + return ACE_OS::strcmp(lhs, rhs) == 0; + } +}; + +template<> +struct helper<CORBA::WChar> +{ + static CORBA::WChar const * empty() { + return L""; + } + static CORBA::WChar const * sample0() { + return L"Hello"; + } + static CORBA::WChar const * sample1() { + return L"World"; + } + static CORBA::WChar * dup_sample0() { + return string_traits<CORBA::WChar,true>::duplicate(sample0()); + } + static CORBA::WChar * dup_sample1() { + return string_traits<CORBA::WChar,true>::duplicate(sample1()); + } + static bool equal(CORBA::WChar const * lhs, CORBA::WChar const * rhs) { + return ACE_OS::strcmp(lhs, rhs) == 0; + } +}; + +template<class charT> +struct Tester +{ + typedef string_traits<charT,true> tested_string_traits; + typedef charT * string_type; + typedef charT const * const_string_type; + typedef typename tested_string_traits::string_var string_var; + typedef typename tested_string_traits::string_mgr string_mgr; + typedef typename tested_string_traits::string_out string_out; + + void test_copy_constructor() + { + expected_calls d(tested_string_traits::duplicate_calls); + expected_calls r(tested_string_traits::release_calls); + + { + string_var xe = helper<charT>::dup_sample0(); + string_var xb (xe); + } + + BOOST_CHECK_MESSAGE(d.expect(1), d); + BOOST_CHECK_MESSAGE(r.expect(1), r); + } + + void add_all(test_suite * ts) + { + boost::shared_ptr<Tester> shared_this(self_); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_copy_constructor, + shared_this)); + } + + static boost::shared_ptr<Tester> allocate() + { + boost::shared_ptr<Tester> ptr(new Tester); + ptr->self_ = ptr; + + return ptr; + } + +private: + Tester() {} + + boost::weak_ptr<Tester> self_; +}; + +test_suite * +init_unit_test_suite(int, char*[]) +{ + test_suite * ts = + BOOST_TEST_SUITE("string unit test"); + + boost::shared_ptr<Tester<char> > char_tester( + Tester<char>::allocate()); + char_tester->add_all(ts); + + boost::shared_ptr<Tester<CORBA::WChar> > wchar_tester( + Tester<CORBA::WChar>::allocate()); + wchar_tester->add_all(ts); + + return ts; +} + diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_array_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_array_sequence_ut.cpp new file mode 100644 index 00000000000..9648158918a --- /dev/null +++ b/TAO/tests/Sequence_Unit_Tests/unbounded_array_sequence_ut.cpp @@ -0,0 +1,77 @@ +/** + * @file + * + * @brief Unit test for unbounded sequences of arrays. + * + * $Id$ + * + * @author Carlos O'Ryan + */ + +#include "mock_array.hpp" +#include "testing_allocation_traits.hpp" +#include "testing_range_checking.hpp" + +#include "tao/Unbounded_Array_Sequence_T.h" + +#include <boost/test/unit_test.hpp> +#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> + +using namespace boost::unit_test_framework; +using namespace TAO; + +struct Tester +{ + typedef unbounded_array_sequence<my_array, my_array_slice, my_array_tag> tested_sequence; + typedef tested_sequence::value_type value_type; + typedef tested_sequence::const_value_type const_value_type; + + typedef tested_sequence::element_traits tested_element_traits; + typedef tested_sequence::allocation_traits tested_allocation_traits; + typedef TAO::details::range_checking<value_type,true> range; + + void test_default_constructor() + { + { + tested_sequence x; + + BOOST_CHECK_EQUAL(CORBA::ULong(0), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + } + } + + void add_all(test_suite * ts) + { + boost::shared_ptr<Tester> shared_this(self_); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_default_constructor, + shared_this)); + } + static boost::shared_ptr<Tester> allocate() + { + boost::shared_ptr<Tester> ptr(new Tester); + ptr->self_ = ptr; + + return ptr; + } + +private: + Tester() {} + + boost::weak_ptr<Tester> self_; +}; + +test_suite * +init_unit_test_suite(int, char*[]) +{ + test_suite * ts = + BOOST_TEST_SUITE("unbounded array sequence unit test"); + + boost::shared_ptr<Tester> tester(Tester::allocate()); + tester->add_all(ts); + + return ts; +} + diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_fwd_object_reference_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_fwd_object_reference_sequence_ut.cpp new file mode 100644 index 00000000000..e8f829b732d --- /dev/null +++ b/TAO/tests/Sequence_Unit_Tests/unbounded_fwd_object_reference_sequence_ut.cpp @@ -0,0 +1,86 @@ +/** + * @file + * + * @brief Unit test for unbounded sequences of forward declared object + * references. + * + * $Id$ + * + * @author Johnny Willemsen <jwillemsen@remedy.nl> + */ +#include "testing_object_reference_traits.hpp" +#include "testing_allocation_traits.hpp" +#include "testing_range_checking.hpp" + +#include "fwd_mock_reference.hpp" + +#include "tao/Unbounded_Object_Reference_Sequence_T.h" + +#include <boost/test/unit_test.hpp> +#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> + +using namespace boost::unit_test_framework; +using namespace TAO_VERSIONED_NAMESPACE_NAME::TAO; + +struct Tester +{ + typedef unbounded_object_reference_sequence<fwd_mock_reference, fwd_mock_reference_var> tested_sequence; + typedef tested_sequence::value_type value_type; + typedef tested_sequence::const_value_type const_value_type; + + typedef tested_sequence::element_traits tested_element_traits; + typedef tested_sequence::allocation_traits tested_allocation_traits; + typedef TAO::details::range_checking<value_type,true> range; + + void test_default_constructor() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + expected_calls i(tested_element_traits::default_initializer_calls); + { + tested_sequence x; + + BOOST_CHECK_EQUAL(CORBA::ULong(0), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + } + BOOST_CHECK_MESSAGE(a.expect(0), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + BOOST_CHECK_MESSAGE(i.expect(0), i); + } + + void add_all(test_suite * ts) + { + boost::shared_ptr<Tester> shared_this(self_); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_default_constructor, + shared_this)); + } + + static boost::shared_ptr<Tester> allocate() + { + boost::shared_ptr<Tester> ptr(new Tester); + ptr->self_ = ptr; + + return ptr; + } + +private: + Tester() {} + + boost::weak_ptr<Tester> self_; +}; + +ACE_Proper_Export_Flag test_suite * +init_unit_test_suite(int, char*[]) +{ + test_suite * ts = + BOOST_TEST_SUITE("unbounded object reference sequence unit test"); + + boost::shared_ptr<Tester> tester(Tester::allocate()); + tester->add_all(ts); + + return ts; +} + diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_nocopy_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_nocopy_ut.cpp new file mode 100644 index 00000000000..051135f5335 --- /dev/null +++ b/TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_nocopy_ut.cpp @@ -0,0 +1,487 @@ +/** + * @file + * + * @brief Unit test for unbounded sequences of octet types using the TAO + * specific no copy specialization + * + * $Id$ + * + * @author Johnny Willemsen + */ +#include "testing_allocation_traits.hpp" +#include "testing_range_checking.hpp" + +#include "tao/Unbounded_Octet_Sequence_T.h" + +#include "value_sequence_tester.hpp" + +#include <boost/test/unit_test.hpp> +#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> + +#include "tao/Basic_Types.h" +#include "tao/CDR.h" + +using namespace boost::unit_test_framework; +using namespace TAO_VERSIONED_NAMESPACE_NAME::TAO; + +typedef unbounded_value_sequence<CORBA::Octet> tested_sequence; +typedef tested_sequence::element_traits tested_element_traits; +typedef tested_sequence::allocation_traits tested_allocation_traits; +typedef details::range_checking<CORBA::Octet,true> range; + +struct Tester +{ + typedef tested_sequence::value_type value_type; + + void test_copy_constructor_from_ulong() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x(16); + BOOST_CHECK_MESSAGE(a.expect(1), a); + x.length(8); + + BOOST_CHECK_EQUAL(CORBA::ULong(16), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(8), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + + tested_sequence y(x); + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_EQUAL(CORBA::ULong(16), y.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(8), y.length()); + BOOST_CHECK_EQUAL(true, y.release()); + } + BOOST_CHECK_MESSAGE(f.expect(2), f); + } + + void test_assignment_from_ulong() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x(16); + x.length(8); + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_EQUAL(CORBA::ULong(16), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(8), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + + tested_sequence y; + BOOST_CHECK_MESSAGE(a.expect(0), a); + + y = x; + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + BOOST_CHECK_EQUAL(CORBA::ULong(16), y.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(8), y.length()); + BOOST_CHECK_EQUAL(true, y.release()); + } + BOOST_CHECK_MESSAGE(f.expect(2), f); + } + + void test_ulong_constructor() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x(16); + + BOOST_CHECK_EQUAL(CORBA::ULong(16), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + } + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + void test_exception_in_ulong_constructor() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_allocation_traits::allocbuf_calls.failure_countdown(1); + BOOST_CHECK_THROW(tested_sequence x(16), testing_exception); + BOOST_CHECK_MESSAGE(a.expect(1), a); + } + BOOST_CHECK_MESSAGE(f.expect(0), f); + } + + void test_set_length_less_than_maximum() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x(16); + + x.length(8); + BOOST_CHECK_EQUAL(CORBA::ULong(16), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(8), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + } + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + void test_set_length_more_than_maximum() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x(16); + BOOST_CHECK_MESSAGE(a.expect(1), a); + + x.length(32); + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + + BOOST_CHECK_EQUAL(CORBA::ULong(32), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(32), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + } + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + void test_exception_in_set_length() + { + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x; + + expected_calls a(tested_allocation_traits::allocbuf_calls); + tested_allocation_traits::allocbuf_calls.failure_countdown(1); + BOOST_CHECK_THROW(x.length(8), testing_exception); + BOOST_CHECK_MESSAGE(a.expect(1), a); + } + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + value_type * alloc_and_init_buffer() + { + value_type * buf = tested_sequence::allocbuf(8); + buf[0] = 1; buf[1] = 4; buf[2] = 9; buf[3] = 16; + + return buf; + } + + ACE_Message_Block * alloc_and_init_mb() + { + char buf[8]; + sprintf (buf, "%s", "testing "); + size_t n = (strlen (buf) + 1) * sizeof (char); + ACE_Message_Block * mb = new ACE_Message_Block (n); + mb->copy ((char *) buf, n); + + return mb; + } + + void test_buffer_constructor_default() + { + value_type * buffer = alloc_and_init_buffer(); + + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence a(8, 4, buffer); + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(false, a.release()); + } + BOOST_CHECK_MESSAGE(a.expect(0), a); + BOOST_CHECK_MESSAGE(f.expect(0), f); + tested_sequence::freebuf(buffer); + } + + void test_buffer_constructor_false() + { + value_type * buffer = alloc_and_init_buffer(); + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence a(8, 4, buffer, false); + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(false, a.release()); + } + BOOST_CHECK_MESSAGE(a.expect(0), a); + BOOST_CHECK_MESSAGE(f.expect(0), f); + tested_sequence::freebuf(buffer); + } + + void test_buffer_constructor_true() + { + value_type * buffer = alloc_and_init_buffer(); + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence a(8, 4, buffer, true); + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(true, a.release()); + } + BOOST_CHECK_MESSAGE(a.expect(0), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + void test_replace_default() + { + value_type * buffer = alloc_and_init_buffer(); + + expected_calls c(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence a; + a.replace(8, 4, buffer); + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(1), f); + + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(false, a.release()); + } + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(0), f); + tested_sequence::freebuf(buffer); + } + + void test_replace_false() + { + value_type * buffer = alloc_and_init_buffer(); + expected_calls c(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + + { + tested_sequence a; + a.replace(8, 4, buffer, false); + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(1), f); + + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(false, a.release()); + } + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(0), f); + tested_sequence::freebuf(buffer); + } + + void test_replace_true() + { + value_type * buffer = alloc_and_init_buffer(); + expected_calls c(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + + { + tested_sequence a; + a.replace(8, 4, buffer, true); + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(1), f); + + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(true, a.release()); + } + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + void test_get_buffer_default() + { + value_type * buffer = alloc_and_init_buffer(); + tested_sequence a(8, 4, buffer, true); + BOOST_CHECK_EQUAL(a.get_buffer(), buffer); + } + + void test_get_buffer_false() + { + value_type * buffer = alloc_and_init_buffer(); + tested_sequence a(8, 4, buffer, true); + BOOST_CHECK_EQUAL(a.get_buffer(), buffer); + } + + void test_get_buffer_true_with_release_false() + { + value_type * buffer = alloc_and_init_buffer(); + tested_sequence a(8, 4, buffer, false); + BOOST_CHECK(0 == a.get_buffer(true)); + tested_sequence::freebuf(buffer); + } + + void test_get_buffer_true_with_release_true() + { + value_type * buffer = alloc_and_init_buffer(); + expected_calls c(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence a(8, 4, buffer, true); + BOOST_CHECK_EQUAL(buffer, a.get_buffer(true)); + + tested_sequence const & b = a; + BOOST_CHECK_EQUAL(0UL, b.maximum()); + BOOST_CHECK_EQUAL(0UL, b.length()); + BOOST_CHECK(0 != b.get_buffer()); + BOOST_CHECK_EQUAL(true, b.release()); + + BOOST_CHECK_MESSAGE(c.expect(1), c); + + BOOST_CHECK(buffer != b.get_buffer()); + } + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(1), f); + tested_sequence::freebuf(buffer); + } + + void test_no_copy_octet() + { +#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) + ACE_Message_Block * mb = alloc_and_init_mb(); + tested_sequence a (8, mb); + BOOST_CHECK_EQUAL(CORBA::Octet( 't'), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 'g'), a[6]); + + char upperbuf[256]; + sprintf (upperbuf, "%s", "THIS IS A TEST"); + size_t n = (strlen (upperbuf) + 1) * sizeof (char); + ACE_Message_Block * upper_mb = 0; + ACE_NEW (upper_mb, + ACE_Message_Block (n)); + // Copy buf into the Message_Block and update the wr_ptr (). + upper_mb->copy ((char *) upperbuf, n); + a.replace (n, upper_mb); + BOOST_CHECK_EQUAL(CORBA::Octet( 'T'), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 'S'), a[6]); +#endif + } + + void add_all(test_suite * ts) + { + boost::shared_ptr<Tester> shared_this(self_); + + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_no_copy_octet, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_ulong_constructor, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_copy_constructor_from_ulong, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_assignment_from_ulong, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_exception_in_ulong_constructor, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_set_length_less_than_maximum, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_set_length_more_than_maximum, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_exception_in_set_length, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_buffer_constructor_default, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_buffer_constructor_false, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_buffer_constructor_true, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_replace_default, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_replace_false, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_replace_true, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_get_buffer_false, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_get_buffer_true_with_release_false, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_get_buffer_true_with_release_true, + shared_this)); + + } + + static boost::shared_ptr<Tester> allocate() + { + boost::shared_ptr<Tester> ptr(new Tester); + ptr->self_ = ptr; + + return ptr; + } + +private: + Tester() {} + + boost::weak_ptr<Tester> self_; +}; + +ACE_Proper_Export_Flag test_suite * +init_unit_test_suite(int, char*[]) +{ + test_suite * ts = + BOOST_TEST_SUITE("unbounded no copy octet sequence unit test"); + + { + boost::shared_ptr<Tester> tester(Tester::allocate()); + tester->add_all(ts); + } + + { + typedef value_sequence_tester<tested_sequence,tested_allocation_traits> common; + boost::shared_ptr<common> tester(common::allocate()); + tester->add_all(ts); + } + + return ts; +} + diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp new file mode 100644 index 00000000000..efb44423d9e --- /dev/null +++ b/TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp @@ -0,0 +1,450 @@ +/** + * @file + * + * @brief Unit test for unbounded sequences of octet types + * + * $Id$ + * + * @author Johnny Willemsen + */ + +#include <boost/test/unit_test.hpp> +#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> + +#include "testing_allocation_traits.hpp" +#include "testing_range_checking.hpp" + +#include "tao/Unbounded_Value_Sequence_T.h" + +#include "value_sequence_tester.hpp" + +#include "tao/Basic_Types.h" +#include "tao/CDR.h" + +using namespace TAO_VERSIONED_NAMESPACE_NAME::TAO; +using namespace boost::unit_test_framework; + +typedef unbounded_value_sequence<CORBA::Octet> tested_sequence; +typedef tested_sequence::element_traits tested_element_traits; +typedef tested_sequence::allocation_traits tested_allocation_traits; +typedef details::range_checking<CORBA::Octet,true> range; + +struct Tester +{ + typedef tested_sequence::value_type value_type; + + void test_copy_constructor_from_ulong() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x(16); + BOOST_CHECK_MESSAGE(a.expect(1), a); + x.length(8); + + BOOST_CHECK_EQUAL(CORBA::ULong(16), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(8), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + + tested_sequence y(x); + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_EQUAL(CORBA::ULong(16), y.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(8), y.length()); + BOOST_CHECK_EQUAL(true, y.release()); + } + BOOST_CHECK_MESSAGE(f.expect(2), f); + } + + void test_assignment_from_ulong() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x(16); + x.length(8); + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_EQUAL(CORBA::ULong(16), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(8), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + + tested_sequence y; + BOOST_CHECK_MESSAGE(a.expect(0), a); + + y = x; + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + BOOST_CHECK_EQUAL(CORBA::ULong(16), y.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(8), y.length()); + BOOST_CHECK_EQUAL(true, y.release()); + } + BOOST_CHECK_MESSAGE(f.expect(2), f); + } + + void test_ulong_constructor() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x(16); + + BOOST_CHECK_EQUAL(CORBA::ULong(16), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + } + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + void test_exception_in_ulong_constructor() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_allocation_traits::allocbuf_calls.failure_countdown(1); + BOOST_CHECK_THROW(tested_sequence x(16), testing_exception); + BOOST_CHECK_MESSAGE(a.expect(1), a); + } + BOOST_CHECK_MESSAGE(f.expect(0), f); + } + + void test_set_length_less_than_maximum() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x(16); + + x.length(8); + BOOST_CHECK_EQUAL(CORBA::ULong(16), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(8), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + } + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + void test_set_length_more_than_maximum() + { + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x(16); + BOOST_CHECK_MESSAGE(a.expect(1), a); + + x.length(32); + BOOST_CHECK_MESSAGE(a.expect(1), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + + BOOST_CHECK_EQUAL(CORBA::ULong(32), x.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(32), x.length()); + BOOST_CHECK_EQUAL(true, x.release()); + } + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + void test_exception_in_set_length() + { + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence x; + + expected_calls a(tested_allocation_traits::allocbuf_calls); + tested_allocation_traits::allocbuf_calls.failure_countdown(1); + BOOST_CHECK_THROW(x.length(8), testing_exception); + BOOST_CHECK_MESSAGE(a.expect(1), a); + } + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + value_type * alloc_and_init_buffer() + { + value_type * buf = tested_sequence::allocbuf(8); + buf[0] = 1; buf[1] = 4; buf[2] = 9; buf[3] = 16; + + return buf; + } + + void test_buffer_constructor_default() + { + value_type * buffer = alloc_and_init_buffer(); + + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence a(8, 4, buffer); + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(false, a.release()); + } + BOOST_CHECK_MESSAGE(a.expect(0), a); + BOOST_CHECK_MESSAGE(f.expect(0), f); + tested_sequence::freebuf(buffer); + } + + void test_buffer_constructor_false() + { + value_type * buffer = alloc_and_init_buffer(); + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence a(8, 4, buffer, false); + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(false, a.release()); + } + BOOST_CHECK_MESSAGE(a.expect(0), a); + BOOST_CHECK_MESSAGE(f.expect(0), f); + tested_sequence::freebuf(buffer); + } + + void test_buffer_constructor_true() + { + value_type * buffer = alloc_and_init_buffer(); + expected_calls a(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence a(8, 4, buffer, true); + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(true, a.release()); + } + BOOST_CHECK_MESSAGE(a.expect(0), a); + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + void test_replace_default() + { + value_type * buffer = alloc_and_init_buffer(); + + expected_calls c(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence a; + a.replace(8, 4, buffer); + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(1), f); + + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(false, a.release()); + } + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(0), f); + tested_sequence::freebuf(buffer); + } + + void test_replace_false() + { + value_type * buffer = alloc_and_init_buffer(); + expected_calls c(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + + { + tested_sequence a; + a.replace(8, 4, buffer, false); + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(1), f); + + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(false, a.release()); + } + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(0), f); + tested_sequence::freebuf(buffer); + } + + void test_replace_true() + { + value_type * buffer = alloc_and_init_buffer(); + expected_calls c(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + + { + tested_sequence a; + a.replace(8, 4, buffer, true); + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(1), f); + + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(CORBA::Octet( 1), a[0]); + BOOST_CHECK_EQUAL(CORBA::Octet( 4), a[1]); + BOOST_CHECK_EQUAL(CORBA::Octet( 9), a[2]); + BOOST_CHECK_EQUAL(CORBA::Octet(16), a[3]); + BOOST_CHECK_EQUAL(true, a.release()); + } + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(1), f); + } + + void test_get_buffer_default() + { + value_type * buffer = alloc_and_init_buffer(); + tested_sequence a(8, 4, buffer, true); + BOOST_CHECK_EQUAL(a.get_buffer(), buffer); + } + + void test_get_buffer_false() + { + value_type * buffer = alloc_and_init_buffer(); + tested_sequence a(8, 4, buffer, true); + BOOST_CHECK_EQUAL(a.get_buffer(), buffer); + } + + void test_get_buffer_true_with_release_false() + { + value_type * buffer = alloc_and_init_buffer(); + tested_sequence a(8, 4, buffer, false); + BOOST_CHECK(0 == a.get_buffer(true)); + tested_sequence::freebuf(buffer); + } + + void test_get_buffer_true_with_release_true() + { + value_type * buffer = alloc_and_init_buffer(); + expected_calls c(tested_allocation_traits::allocbuf_calls); + expected_calls f(tested_allocation_traits::freebuf_calls); + { + tested_sequence a(8, 4, buffer, true); + BOOST_CHECK_EQUAL(buffer, a.get_buffer(true)); + + tested_sequence const & b = a; + BOOST_CHECK_EQUAL(0UL, b.maximum()); + BOOST_CHECK_EQUAL(0UL, b.length()); + BOOST_CHECK(0 != b.get_buffer()); + BOOST_CHECK_EQUAL(true, b.release()); + + BOOST_CHECK_MESSAGE(c.expect(1), c); + + BOOST_CHECK(buffer != b.get_buffer()); + } + BOOST_CHECK_MESSAGE(c.expect(0), c); + BOOST_CHECK_MESSAGE(f.expect(1), f); + tested_sequence::freebuf(buffer); + } + + void add_all(test_suite * ts) + { + boost::shared_ptr<Tester> shared_this(self_); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_ulong_constructor, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_copy_constructor_from_ulong, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_assignment_from_ulong, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_exception_in_ulong_constructor, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_set_length_less_than_maximum, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_set_length_more_than_maximum, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_exception_in_set_length, + shared_this)); + + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_buffer_constructor_default, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_buffer_constructor_false, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_buffer_constructor_true, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_replace_default, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_replace_false, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_replace_true, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_get_buffer_false, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_get_buffer_true_with_release_false, + shared_this)); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_get_buffer_true_with_release_true, + shared_this)); + + } + + static boost::shared_ptr<Tester> allocate() + { + boost::shared_ptr<Tester> ptr(new Tester); + ptr->self_ = ptr; + + return ptr; + } + +private: + Tester() {} + + boost::weak_ptr<Tester> self_; +}; + +using namespace boost::unit_test_framework; + +ACE_Proper_Export_Flag test_suite * +init_unit_test_suite(int, char*[]) +{ + test_suite * ts = + BOOST_TEST_SUITE("unbounded octet sequence unit test"); + + { + boost::shared_ptr<Tester> tester(Tester::allocate()); + tester->add_all(ts); + } + + { + typedef value_sequence_tester<tested_sequence,tested_allocation_traits> common; + boost::shared_ptr<common> tester(common::allocate()); + tester->add_all(ts); + } + + return ts; +} diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_sequence_cdr_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_sequence_cdr_ut.cpp new file mode 100644 index 00000000000..76069b39f04 --- /dev/null +++ b/TAO/tests/Sequence_Unit_Tests/unbounded_sequence_cdr_ut.cpp @@ -0,0 +1,124 @@ +/** + * @file + * + * @brief Unit test for unbounded sequences of object references. + * + * $Id$ + * + * @author Carlos O'Ryan + */ +#include "testing_object_reference_traits.hpp" +#include "tao/Object_Reference_Traits_T.h" +#include "testing_allocation_traits.hpp" +#include "testing_range_checking.hpp" + +#include "mock_reference.hpp" + +#include "tao/Unbounded_Value_Sequence_T.h" +#include "tao/Unbounded_Object_Reference_Sequence_T.h" +#include "tao/Unbounded_Sequence_CDR_T.h" +#include "tao/CDR.h" + +#include <boost/test/unit_test.hpp> +#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> + +using namespace boost::unit_test_framework; +using namespace TAO_VERSIONED_NAMESPACE_NAME::TAO; + +typedef unbounded_object_reference_sequence<mock_reference, mock_reference_var> tested_sequence; + +CORBA::Boolean operator<< (TAO_OutputCDR &strm, const tested_sequence &sequence) +{ + return TAO::marshal_sequence(strm, sequence); +} + +CORBA::Boolean operator>> (TAO_InputCDR &strm, tested_sequence &sequence) +{ + return TAO::demarshal_sequence(strm, sequence); +} + +struct Tester +{ + typedef tested_sequence::value_type value_type; + typedef tested_sequence::const_value_type const_value_type; + + typedef tested_sequence::element_traits tested_element_traits; + typedef tested_sequence::allocation_traits tested_allocation_traits; + typedef TAO::details::range_checking<value_type,true> range; + + value_type * alloc_and_init_buffer() + { + value_type * buf = tested_sequence::allocbuf(8); + buf[0] = mock_reference::allocate(1); + buf[1] = mock_reference::allocate(4); + buf[2] = mock_reference::allocate(9); + buf[3] = mock_reference::allocate(16); + + return buf; + } + + void check_values(tested_sequence const & a) + { + BOOST_CHECK_EQUAL( 1, a[0]->id()); + BOOST_CHECK_EQUAL( 4, a[1]->id()); + BOOST_CHECK_EQUAL( 9, a[2]->id()); + BOOST_CHECK_EQUAL(16, a[3]->id()); + } + + void test_stream() + { + value_type * buffer = alloc_and_init_buffer(); + + expected_calls s(mock_reference::marshal_calls); + { + tested_sequence a; + a.replace(8, 4, buffer, false); + + BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum()); + BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); + BOOST_CHECK_EQUAL(buffer, a.get_buffer()); + BOOST_CHECK_EQUAL(false, a.release()); + check_values(a); + + TAO_OutputCDR stream; + stream << a; + BOOST_CHECK_MESSAGE(s.expect(4), s); + } + tested_sequence::freebuf(buffer); + } + + void add_all(test_suite * ts) + { + boost::shared_ptr<Tester> shared_this(self_); + ts->add(BOOST_CLASS_TEST_CASE( + &Tester::test_stream, + shared_this)); + } + + static boost::shared_ptr<Tester> allocate() + { + boost::shared_ptr<Tester> ptr(new Tester); + ptr->self_ = ptr; + + return ptr; + } + +private: + Tester() {} + + boost::weak_ptr<Tester> self_; +}; + +ACE_Proper_Export_Flag test_suite * +init_unit_test_suite(int, char*[]) +{ + test_suite * ts = + BOOST_TEST_SUITE("unbounded object reference sequence unit test"); + + boost::shared_ptr<Tester> tester(Tester::allocate()); + tester->add_all(ts); + + return ts; +} + diff --git a/ace/MMAP_Memory_Pool.inl b/ace/MMAP_Memory_Pool.inl new file mode 100644 index 00000000000..db3f5a7ba0f --- /dev/null +++ b/ace/MMAP_Memory_Pool.inl @@ -0,0 +1,21 @@ +// -*- C++ -*- +// +// $Id$ + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL + +ACE_INLINE +ACE_Mem_Map const & +ACE_MMAP_Memory_Pool::mmap (void) const +{ + return mmap_; +} + +ACE_INLINE +ACE_Mem_Map & +ACE_MMAP_Memory_Pool::mmap (void) +{ + return mmap_; +} + +ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ace/OS_NS_sys_sendfile.cpp b/ace/OS_NS_sys_sendfile.cpp new file mode 100644 index 00000000000..ba731a71acd --- /dev/null +++ b/ace/OS_NS_sys_sendfile.cpp @@ -0,0 +1,37 @@ +// $Id$ + +#include "ace/OS_NS_sys_sendfile.h" +#include "ace/OS_NS_sys_mman.h" +#include "ace/OS_NS_unistd.h" + +#ifndef ACE_HAS_INLINED_OSCALLS +# include "ace/OS_NS_sys_sendfile.inl" +#endif /* ACE_HAS_INLINED_OS_CALLS */ + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL + +#ifndef ACE_HAS_SENDFILE +ssize_t +ACE_OS::sendfile_emulation (ACE_HANDLE out_fd, + ACE_HANDLE in_fd, + ACE_LOFF_T * offset, + size_t count) +{ + // @@ We may want set up a signal lease (or oplock) if supported by + // the platform so that we don't get a bus error if the mmap()ed + // file is truncated. + void * const buf = + ACE_OS::mmap (0, count, PROT_READ, MAP_PRIVATE, in_fd, *offset); + + ssize_t const r = ACE_OS::write (out_fd, buf, count); + + (void) ACE_OS::munmap (buf, count); + + if (r > 0) + *offset += static_cast<ACE_LOFF_T> (r); + + return r; +} +#endif /* !ACE_HAS_SENDFILE */ + +ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ace/OS_NS_sys_sendfile.h b/ace/OS_NS_sys_sendfile.h new file mode 100644 index 00000000000..c12cdf15c47 --- /dev/null +++ b/ace/OS_NS_sys_sendfile.h @@ -0,0 +1,64 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file OS_NS_sys_sendfile.h + * + * $Id$ + * + * @author Ossama Othman <ossama@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef ACE_OS_NS_SYS_SENDFILE_H +#define ACE_OS_NS_SYS_SENDFILE_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_include/sys/os_types.h" + +#if defined (ACE_EXPORT_MACRO) +# undef ACE_EXPORT_MACRO +#endif +#define ACE_EXPORT_MACRO ACE_Export + + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace ACE_OS +{ + /// Sendfile wrapper. + ACE_NAMESPACE_INLINE_FUNCTION + ssize_t sendfile (ACE_HANDLE out_fd, + ACE_HANDLE in_fd, + ACE_LOFF_T * offset, + size_t count); + +#ifndef ACE_HAS_SENDFILE + extern ssize_t sendfile_emulation (ACE_HANDLE out_fd, + ACE_HANDLE in_fd, + ACE_LOFF_T * offset, + size_t count); +#endif /* !ACE_HAS_SENDFILE */ + +} + +ACE_END_VERSIONED_NAMESPACE_DECL + +# if defined (ACE_HAS_INLINED_OSCALLS) +# if defined (ACE_INLINE) +# undef ACE_INLINE +# endif /* ACE_INLINE */ +# define ACE_INLINE inline +# include "ace/OS_NS_sys_sendfile.inl" +# endif /* ACE_HAS_INLINED_OSCALLS */ + +#include /**/ "ace/post.h" + +#endif /* ACE_OS_NS_SYS_SENDFILE_H */ diff --git a/ace/OS_NS_sys_sendfile.inl b/ace/OS_NS_sys_sendfile.inl new file mode 100644 index 00000000000..3a1a03b32da --- /dev/null +++ b/ace/OS_NS_sys_sendfile.inl @@ -0,0 +1,20 @@ +// -*- C++ -*- +// +// $Id$ + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL + +ACE_INLINE ssize_t +ACE_OS::sendfile (ACE_HANDLE out_fd, + ACE_HANDLE in_fd, + ACE_LOFF_T * offset, + size_t count) +{ +#ifdef ACE_HAS_SENDFILE + return sendfile (out_fd, in_fd, offset, count); +#else + return ACE_OS::sendfile_emulation (out_fd, in_fd, offset, count); +#endif /* ACE_HAS_SENDFILE */ +} + +ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ace/Versioned_Namespace.h b/ace/Versioned_Namespace.h new file mode 100644 index 00000000000..542254876ff --- /dev/null +++ b/ace/Versioned_Namespace.h @@ -0,0 +1,51 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Versioned_Namespace.h + * + * $Id$ + * + * Versioned namespace support. + * + * Useful for preventing conflicts when using a third party library. + * + * @author Ossama Othman <ossama@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef ACE_VERSIONED_NAMESPACE_H +#define ACE_VERSIONED_NAMESPACE_H + +#ifndef ACE_CONFIG_MACROS_H +# error This header is only meant to be included by or after "ace/config-lite.h". +#endif /* !ACE_CONFIG_LITE_H */ + + +#if defined (ACE_HAS_VERSIONED_NAMESPACE) && ACE_HAS_VERSIONED_NAMESPACE == 1 + +# ifndef ACE_VERSIONED_NAMESPACE_NAME +//# include "ace/Version.h" + +// Preprocessor symbols will not be expanded if they are +// concatenated. Force the preprocessor to expand them during the +// argument prescan by calling a macro that itself calls another that +// performs the actual concatenation. +# define ACE_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,BETA) ACE_ ## MAJOR ## _ ## MINOR ## _ ## BETA +# define ACE_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,BETA) ACE_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,BETA) +# define ACE_VERSIONED_NAMESPACE_NAME ACE_MAKE_VERSIONED_NAMESPACE_NAME(ACE_MAJOR_VERSION,ACE_MINOR_VERSION,ACE_BETA_VERSION) +# endif /* !ACE_VERSIONED_NAMESPACE_NAME */ + +# define ACE_BEGIN_VERSIONED_NAMESPACE_DECL namespace ACE_VERSIONED_NAMESPACE_NAME { +# define ACE_END_VERSIONED_NAMESPACE_DECL } \ + using namespace ACE_VERSIONED_NAMESPACE_NAME; + +#else + +# define ACE_VERSIONED_NAMESPACE_NAME +# define ACE_BEGIN_VERSIONED_NAMESPACE_DECL +# define ACE_END_VERSIONED_NAMESPACE_DECL + +#endif /* ACE_HAS_VERSIONED_NAMESPACE */ + +#endif /* !ACE_VERSIONED_NAMESPACE_H */ diff --git a/ace/config-macros.h b/ace/config-macros.h new file mode 100644 index 00000000000..9a8c22aa90a --- /dev/null +++ b/ace/config-macros.h @@ -0,0 +1,648 @@ +// -*- C++ -*- + +//========================================================================== +/** + * @file config-macros.h + * + * $Id$ + * + * @author (Originally in OS.h)Doug Schmidt <schmidt@cs.wustl.edu> + * @author Jesper S. M|ller<stophph@diku.dk> + * @author and a cast of thousands... + * + * This file contains the contents of the old config-lite.h header + * without C++ code (except for C++ code in macros). Specifically, + * only macros or C language constructs are found in this header. + * Allows configuration values and macros to be used by some C + * language sources. + */ +//========================================================================== + +#ifndef ACE_CONFIG_MACROS_H +#define ACE_CONFIG_MACROS_H + +#include "ace/config.h" + +#include "ace/Version.h" +#include "ace/Versioned_Namespace.h" + +// ACE_HAS_TLI is used to decide whether to try any XTI/TLI functionality +// so if it isn't set, set it. Capabilities and differences between +// XTI and TLI favor XTI, but when deciding to do anything, as opposed to +// ACE_NOTSUP_RETURN for example, ACE_HAS_TLI is the deciding factor. +#if !defined (ACE_HAS_TLI) +# if defined (ACE_HAS_XTI) +# define ACE_HAS_TLI +# endif /* ACE_HAS_XTI */ +#endif /* ACE_HAS_TLI */ + +#define ACE_BITS_PER_ULONG (8 * sizeof (u_long)) + +#if !defined (ACE_OSTREAM_TYPE) +# if defined (ACE_LACKS_IOSTREAM_TOTALLY) +# define ACE_OSTREAM_TYPE FILE +# else /* ! ACE_LACKS_IOSTREAM_TOTALLY */ +# define ACE_OSTREAM_TYPE ostream +# endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */ +#endif /* ! ACE_OSTREAM_TYPE */ + +#if !defined (ACE_DEFAULT_LOG_STREAM) +# if defined (ACE_LACKS_IOSTREAM_TOTALLY) +# define ACE_DEFAULT_LOG_STREAM 0 +# else /* ! ACE_LACKS_IOSTREAM_TOTALLY */ +# define ACE_DEFAULT_LOG_STREAM (&cerr) +# endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */ +#endif /* ! ACE_DEFAULT_LOG_STREAM */ + +// These two are only for backward compatibility. You should avoid +// using them if not necessary. +#if !defined (ACE_LACKS_DEPRECATED_MACROS) +/** + * @deprecated The ACE_SYNCH_1 macro is deprecated + */ +# define ACE_SYNCH_1 ACE_SYNCH_DECL +/** + * @deprecated The ACE_SYNCH_2 macro is deprecated + */ +# define ACE_SYNCH_2 ACE_SYNCH_USE +#endif + +// For Win32 compatibility... +# if !defined (ACE_WSOCK_VERSION) +# define ACE_WSOCK_VERSION 0, 0 +# endif /* ACE_WSOCK_VERSION */ + +# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) +# define ACE_MT(X) X +# if !defined (_REENTRANT) +# define _REENTRANT +# endif /* _REENTRANT */ +# else +# define ACE_MT(X) +# endif /* ACE_MT_SAFE */ + +# if defined (ACE_HAS_PURIFY) +# define ACE_INITIALIZE_MEMORY_BEFORE_USE +# endif /* ACE_HAS_PURIFY */ + +# if defined (ACE_HAS_VALGRIND) +# define ACE_INITIALIZE_MEMORY_BEFORE_USE +# endif /* ACE_HAS_VALGRIND */ + +#if !defined (ACE_LACKS_DEPRECATED_MACROS) +/** + * @deprecated The @c ACE_HAS_USING macros are deprecated + */ +# define ACE_USING using +#endif /* !ACE_LACKS_DEPRECATED_MACROS */ + +# if defined (ACE_HAS_TYPENAME_KEYWORD) +# define ACE_TYPENAME typename +# else +# define ACE_TYPENAME +# endif /* ACE_HAS_TYPENAME_KEYWORD */ + +#if !defined (ACE_LACKS_DEPRECATED_MACROS) +/** + * @deprecated The @c ACE_TEMPLATE_SPECIALIZATION and + * @c ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION macros are + * deprecated. Use standard C++ template specialization + * syntax instead. + */ +# define ACE_TEMPLATE_SPECIALIZATION template<> +# define ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION +#endif /* !ACE_LACKS_DEPRECATED_MACROS */ + +// ========================================================================= +// Perfect Multicast filting refers to RFC 3376, where a socket is only +// delivered dgrams for groups joined even if it didn't bind the group +// address. We turn this option off by default, although most OS's +// except for Windows and Solaris probably lack perfect filtering. +// ========================================================================= + +# if !defined (ACE_LACKS_PERFECT_MULTICAST_FILTERING) +# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 0 +# endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */ + +// ========================================================================= +// Enable/Disable Features By Default +// ========================================================================= + +# if !defined (ACE_HAS_POSITION_INDEPENDENT_POINTERS) +# define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1 +# endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS */ + +# if !defined (ACE_HAS_PROCESS_SPAWN) +# if !defined (ACE_LACKS_FORK) || defined (ACE_WIN32) || defined (ACE_WINCE) || defined (ACE_OPENVMS) || defined (CHORUS) +# define ACE_HAS_PROCESS_SPAWN 1 +# endif +# endif /* ACE_HAS_PROCESS_SPAWN */ + +# if !defined (ACE_HAS_DYNAMIC_LINKING) +# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING) || defined (ACE_WIN32) || defined (ACE_VXWORKS) || defined (__hpux) +# define ACE_HAS_DYNAMIC_LINKING 1 +# endif +# endif /* ACE_HAS_DYNAMIC_LINKING */ + +# if defined (ACE_USES_FIFO_SEM) +# if defined (ACE_HAS_POSIX_SEM) || defined (ACE_LACKS_MKFIFO) || defined (ACE_LACKS_FCNTL) +# undef ACE_USES_FIFO_SEM +# endif +# endif /* ACE_USES_FIFO_SEM */ + +// ========================================================================= +// RCSID Macros +// ========================================================================= + +// By default, DO NOT include RCS Id strings in object code. +#if ! defined (ACE_USE_RCSID) +# define ACE_USE_RCSID 0 +#endif /* #if ! defined (ACE_USE_RCSID) */ + +#if (defined (ACE_USE_RCSID) && (ACE_USE_RCSID != 0)) +# if ! defined (ACE_RCSID) + + // This hack has the following purposes: + // 1. To define the RCS id string variable as a static char*, so + // that there won't be any duplicate extern symbols at link + // time. + // 2. To have a RCS id string variable with a unique name for each + // file. + // 3. To avoid warnings of the type "variable declared and never + // used". + +# define ACE_RCSID(path, file, id) \ + static inline const char* get_rcsid_ ## path ## _ ## file (const char*) \ + { \ + return id ; \ + } \ + static const char* rcsid_ ## path ## _ ## file = \ + get_rcsid_ ## path ## _ ## file ( rcsid_ ## path ## _ ## file ) ; + +# endif /* #if ! defined (ACE_RCSID) */ +#else + + // RCS id strings are not wanted. +# if defined (ACE_RCSID) +# undef ACE_RCSID +# endif /* #if defined (ACE_RCSID) */ +# define ACE_RCSID(path, file, id) /* noop */ +#endif /* #if (defined (ACE_USE_RCSID) && (ACE_USE_RCSID != 0)) */ + +// ========================================================================= +// INLINE macros +// +// These macros handle all the inlining of code via the .i or .inl files +// ========================================================================= + +#if defined (ACE_LACKS_INLINE_FUNCTIONS) && !defined (ACE_NO_INLINE) +# define ACE_NO_INLINE +#endif /* defined (ACE_LACKS_INLINE_FUNCTIONS) && !defined (ACE_NO_INLINE) */ + +// ACE inlining has been explicitly disabled. Implement +// internally within ACE by undefining __ACE_INLINE__. +#if defined (ACE_NO_INLINE) +# undef __ACE_INLINE__ +#endif /* ! ACE_NO_INLINE */ + +#if defined (__ACE_INLINE__) +# define ACE_INLINE inline +# if !defined (ACE_HAS_INLINED_OSCALLS) +# define ACE_HAS_INLINED_OSCALLS +# endif /* !ACE_HAS_INLINED_OSCALLS */ +#else +# define ACE_INLINE +#endif /* __ACE_INLINE__ */ + +#if !defined (ACE_LACKS_DEPRECATED_MACROS) + // ========================================================================= + // EXPLICIT macro + // ========================================================================= + + /** + * @deprecated explicit is deprecated. ACE requires C++ + * "explicit" keyword support. + */ + # define ACE_EXPLICIT explicit +#endif /* ACE_LACKS_DEPRECATED_MACROS */ + +#if !defined (ACE_LACKS_DEPRECATED_MACROS) + // ========================================================================= + // MUTABLE macro + // ========================================================================= + + /** + * @deprecated ACE_MUTABLE is deprecated. ACE requires C++ "mutable" + * keyword support. + */ + # define ACE_MUTABLE mutable + # define ACE_CONST_WHEN_MUTABLE const +#endif /* ACE_LACKS_DEPRECATED_MACROS */ + +// ============================================================================ +// EXPORT macros +// +// Since Win32 DLL's do not export all symbols by default, they must be +// explicitly exported (which is done by *_Export macros). +// ============================================================================ + +// Win32 should have already defined the macros in config-win32-common.h +#if !defined (ACE_HAS_CUSTOM_EXPORT_MACROS) +# define ACE_Proper_Export_Flag +# define ACE_Proper_Import_Flag +# define ACE_EXPORT_SINGLETON_DECLARATION(T) +# define ACE_IMPORT_SINGLETON_DECLARATION(T) +# define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#else +// An export macro should at the very least have been defined. + +# ifndef ACE_Proper_Import_Flag +# define ACE_Proper_Import_Flag +# endif /* !ACE_Proper_Import_Flag */ + +# ifndef ACE_EXPORT_SINGLETON_DECLARATION +# define ACE_EXPORT_SINGLETON_DECLARATION(T) +# endif /* !ACE_EXPORT_SINGLETON_DECLARATION */ + +# ifndef ACE_IMPORT_SINGLETON_DECLARATION +# define ACE_IMPORT_SINGLETON_DECLARATION(T) +# endif /* !ACE_IMPORT_SINGLETON_DECLARATION */ + +# ifndef ACE_EXPORT_SINGLETON_DECLARE +# define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* !ACE_EXPORT_SINGLETON_DECLARE */ + +# ifndef ACE_IMPORT_SINGLETON_DECLARE +# define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* !ACE_IMPORT_SINGLETON_DECLARE */ + +#endif /* !ACE_HAS_CUSTOM_EXPORT_MACROS */ + +// This is a whim of mine -- that instead of annotating a class with +// ACE_Export in its declaration, we make the declaration near the TOP +// of the file with ACE_DECLARE_EXPORT. +// TS = type specifier (e.g., class, struct, int, etc.) +// ID = identifier +// So, how do you use it? Most of the time, just use ... +// ACE_DECLARE_EXPORT(class, someobject); +// If there are global functions to be exported, then use ... +// ACE_DECLARE_EXPORT(void, globalfunction) (int, ...); +// Someday, when template libraries are supported, we made need ... +// ACE_DECLARE_EXPORT(template class, sometemplate) <class TYPE, class LOCK>; +# define ACE_DECLARE_EXPORT(TS,ID) TS ACE_Export ID + +// ============================================================================ +// Cast macros +// +// These macros are used to choose between the old cast style and the new +// *_cast<> operators +// ============================================================================ + +# define ACE_sap_any_cast(TYPE) reinterpret_cast<TYPE> (const_cast<ACE_Addr &> (ACE_Addr::sap_any)) + +#if !defined (ACE_LACKS_DEPRECATED_MACROS) + /** + * @deprecated ACE_{static,reinterpret,dynamic,const}_cast@<@> is + * deprecated. Directly use standard C++ casts instead. + */ + # define ACE_static_cast(TYPE, EXPR) static_cast<TYPE> (EXPR) + # define ACE_static_cast_1_ptr(TYPE, T1, EXPR) static_cast<TYPE<T1> *> (EXPR) + # define ACE_static_cast_2_ptr(TYPE, T1, T2, EXPR) static_cast<TYPE<T1, T2> *> (EXPR) + # define ACE_static_cast_3_ptr(TYPE, T1, T2, T3, EXPR) static_cast<TYPE<T1, T2, T3> *> (EXPR) + # define ACE_static_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) static_cast<TYPE<T1, T2, T3, T4> *> (EXPR) + # define ACE_static_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) static_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR) + # define ACE_static_cast_1_ref(TYPE, T1, EXPR) static_cast<TYPE<T1> &> (EXPR) + # define ACE_static_cast_2_ref(TYPE, T1, T2, EXPR) static_cast<TYPE<T1, T2> &> (EXPR) + # define ACE_static_cast_3_ref(TYPE, T1, T2, T3, EXPR) static_cast<TYPE<T1, T2, T3> &> (EXPR) + # define ACE_static_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) static_cast<TYPE<T1, T2, T3, T4> &> (EXPR) + # define ACE_static_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) static_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR) + + # define ACE_const_cast(TYPE, EXPR) const_cast<TYPE> (EXPR) + # define ACE_const_cast_1_ptr(TYPE, T1, EXPR) const_cast<TYPE<T1> *> (EXPR) + # define ACE_const_cast_2_ptr(TYPE, T1, T2, EXPR) const_cast<TYPE<T1, T2> *> (EXPR) + # define ACE_const_cast_3_ptr(TYPE, T1, T2, T3, EXPR) const_cast<TYPE<T1, T2, T3> *> (EXPR) + # define ACE_const_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) const_cast<TYPE<T1, T2, T3, T4> *> (EXPR) + # define ACE_const_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) const_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR) + # define ACE_const_cast_1_ref(TYPE, T1, EXPR) const_cast<TYPE<T1> &> (EXPR) + # define ACE_const_cast_2_ref(TYPE, T1, T2, EXPR) const_cast<TYPE<T1, T2> &> (EXPR) + # define ACE_const_cast_3_ref(TYPE, T1, T2, T3, EXPR) const_cast<TYPE<T1, T2, T3> &> (EXPR) + # define ACE_const_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) const_cast<TYPE<T1, T2, T3, T4> &> (EXPR) + # define ACE_const_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) const_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR) + + # define ACE_reinterpret_cast(TYPE, EXPR) reinterpret_cast<TYPE> (EXPR) + # define ACE_reinterpret_cast_1_ptr(TYPE, T1, EXPR) reinterpret_cast<TYPE<T1> *> (EXPR) + # define ACE_reinterpret_cast_2_ptr(TYPE, T1, T2, EXPR) reinterpret_cast<TYPE<T1, T2> *> (EXPR) + # define ACE_reinterpret_cast_3_ptr(TYPE, T1, T2, T3, EXPR) reinterpret_cast<TYPE<T1, T2, T3> *> (EXPR) + # define ACE_reinterpret_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4> *> (EXPR) + # define ACE_reinterpret_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR) + # define ACE_reinterpret_cast_1_ref(TYPE, T1, EXPR) reinterpret_cast<TYPE<T1> &> (EXPR) + # define ACE_reinterpret_cast_2_ref(TYPE, T1, T2, EXPR) reinterpret_cast<TYPE<T1, T2> &> (EXPR) + # define ACE_reinterpret_cast_3_ref(TYPE, T1, T2, T3, EXPR) reinterpret_cast<TYPE<T1, T2, T3> &> (EXPR) + # define ACE_reinterpret_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4> &> (EXPR) + # define ACE_reinterpret_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR) + + # if defined (ACE_LACKS_RTTI) + # define ACE_dynamic_cast(TYPE, EXPR) static_cast<TYPE> (EXPR) + # define ACE_dynamic_cast_1_ptr(TYPE, T1, EXPR) static_cast<TYPE<T1> *> (EXPR) + # define ACE_dynamic_cast_2_ptr(TYPE, T1, T2, EXPR) static_cast<TYPE<T1, T2> *> (EXPR) + # define ACE_dynamic_cast_3_ptr(TYPE, T1, T2, T3, EXPR) static_cast<TYPE<T1, T2, T3> *> (EXPR) + # define ACE_dynamic_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) static_cast<TYPE<T1, T2, T3, T4> *> (EXPR) + # define ACE_dynamic_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) static_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR) + # define ACE_dynamic_cast_1_ref(TYPE, T1, EXPR) static_cast<TYPE<T1> &> (EXPR) + # define ACE_dynamic_cast_2_ref(TYPE, T1, T2, EXPR) static_cast<TYPE<T1, T2> &> (EXPR) + # define ACE_dynamic_cast_3_ref(TYPE, T1, T2, T3, EXPR) static_cast<TYPE<T1, T2, T3> &> (EXPR) + # define ACE_dynamic_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) static_cast<TYPE<T1, T2, T3, T4> &> (EXPR) + # define ACE_dynamic_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) static_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR) + # else /* ! ACE_LACKS_RTTI */ + # define ACE_dynamic_cast(TYPE, EXPR) dynamic_cast<TYPE> (EXPR) + # define ACE_dynamic_cast_1_ptr(TYPE, T1, EXPR) dynamic_cast<TYPE<T1> *> (EXPR) + # define ACE_dynamic_cast_2_ptr(TYPE, T1, T2, EXPR) dynamic_cast<TYPE<T1, T2> *> (EXPR) + # define ACE_dynamic_cast_3_ptr(TYPE, T1, T2, T3, EXPR) dynamic_cast<TYPE<T1, T2, T3> *> (EXPR) + # define ACE_dynamic_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4> *> (EXPR) + # define ACE_dynamic_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR) + # define ACE_dynamic_cast_1_ref(TYPE, T1, EXPR) dynamic_cast<TYPE<T1> &> (EXPR) + # define ACE_dynamic_cast_2_ref(TYPE, T1, T2, EXPR) dynamic_cast<TYPE<T1, T2> &> (EXPR) + # define ACE_dynamic_cast_3_ref(TYPE, T1, T2, T3, EXPR) dynamic_cast<TYPE<T1, T2, T3> &> (EXPR) + # define ACE_dynamic_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4> &> (EXPR) + # define ACE_dynamic_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR) + # endif /* ! ACE_LACKS_RTTI */ +#endif /* ACE_LACKS_DEPRECATED_MACROS */ + +# if !defined (ACE_CAST_CONST) + // Sun CC 4.2, for example, requires const in reinterpret casts of + // data members in const member functions. But, other compilers + // complain about the useless const. This keeps everyone happy. +# if defined (__SUNPRO_CC) +# define ACE_CAST_CONST const +# else /* ! __SUNPRO_CC */ +# define ACE_CAST_CONST +# endif /* ! __SUNPRO_CC */ +# endif /* ! ACE_CAST_CONST */ + +// ============================================================================ +// Compiler Silencing macros +// +// Some compilers complain about parameters that are not used. This macro +// should keep them quiet. +// ============================================================================ + +#if defined (ghs) || defined (__GNUC__) || defined (__hpux) || defined (__sgi) || defined (__DECCXX) || defined (__KCC) || defined (__rational__) || defined (__USLC__) || defined (ACE_RM544) || defined (__DCC__) || defined (__PGI) || defined (__TANDEM) +// Some compilers complain about "statement with no effect" with (a). +// This eliminates the warnings, and no code is generated for the null +// conditional statement. @note that may only be true if -O is enabled, +// such as with GreenHills (ghs) 1.8.8. +# define ACE_UNUSED_ARG(a) do {/* null */} while (&a == 0) +#elif defined (__DMC__) + #define ACE_UNUSED_ID(identifier) + template <class T> + inline void ACE_UNUSED_ARG(const T& ACE_UNUSED_ID(t)) { } +#else /* ghs || __GNUC__ || ..... */ +# define ACE_UNUSED_ARG(a) (a) +#endif /* ghs || __GNUC__ || ..... */ + +#if defined (__sgi) || defined (ghs) || defined (__DECCXX) || defined(__BORLANDC__) || defined (__KCC) || defined (ACE_RM544) || defined (__USLC__) || defined (__DCC__) || defined (__PGI) || defined (__TANDEM) || (defined (__HP_aCC) && (__HP_aCC >= 33200)) +# define ACE_NOTREACHED(a) +#else /* __sgi || ghs || ..... */ +# define ACE_NOTREACHED(a) a +#endif /* __sgi || ghs || ..... */ + +// ============================================================================ +// ACE_ALLOC_HOOK* macros +// +// Macros to declare and define class-specific allocation operators. +// ============================================================================ + +# if defined (ACE_HAS_ALLOC_HOOKS) +# define ACE_ALLOC_HOOK_DECLARE \ + void *operator new (size_t bytes); \ + void operator delete (void *ptr); + + // Note that these are just place holders for now. Some day they + // may be be replaced by <ACE_Malloc>. +# define ACE_ALLOC_HOOK_DEFINE(CLASS) \ + void *CLASS::operator new (size_t bytes) { return ::new char[bytes]; } \ + void CLASS::operator delete (void *ptr) { delete [] ((char *) ptr); } +# else +# define ACE_ALLOC_HOOK_DECLARE struct __Ace {} /* Just need a dummy... */ +# define ACE_ALLOC_HOOK_DEFINE(CLASS) +# endif /* ACE_HAS_ALLOC_HOOKS */ + +// ============================================================================ +/** + * ACE_OSCALL* macros + * + * @deprecated ACE_OSCALL_RETURN and ACE_OSCALL should not be used. + * Please restart system calls in your application code. + * See the @c sigaction(2) man page for documentation + * regarding enabling restartable system calls across + * signals via the @c SA_RESTART flag. + * + * The following two macros used ensure that system calls are properly + * restarted (if necessary) when interrupts occur. However, that + * capability was never enabled by any of our supported platforms. + * In fact, some parts of ACE would not function properly when that + * ability was enabled. Furthermore, they assumed that ability to + * restart system calls was determined statically. That assumption + * does not hold for modern platforms, where that ability is + * determined dynamically at run-time. + */ +// ============================================================================ + +#define ACE_OSCALL_RETURN(X,TYPE,FAILVALUE) \ + do \ + return (TYPE) (X); \ + while (0) +#define ACE_OSCALL(X,TYPE,FAILVALUE,RESULT) \ + do \ + RESULT = (TYPE) (X); \ + while (0) + +#if defined (ACE_WIN32) +# if defined (__BORLANDC__) && (__BORLANDC__ <= 0x550) +# define ACE_WIN32CALL_RETURN(X,TYPE,FAILVALUE) \ + do { \ + TYPE ace_result_; \ + TYPE ace_local_result_ = (TYPE) X; \ + ace_result_ = ace_local_result_; \ + if (ace_result_ == FAILVALUE) \ + ACE_OS::set_errno_to_last_error (); \ + return ace_result_; \ + } while (0) +# else +# define ACE_WIN32CALL_RETURN(X,TYPE,FAILVALUE) \ + do { \ + TYPE ace_result_ = (TYPE) X; \ + if (ace_result_ == FAILVALUE) \ + ACE_OS::set_errno_to_last_error (); \ + return ace_result_; \ + } while (0) +# endif /* defined (__BORLANDC__) && (__BORLANDC__ <= 0x550) */ +# define ACE_WIN32CALL(X,TYPE,FAILVALUE,RESULT) \ + do { \ + RESULT = (TYPE) X; \ + if (RESULT == FAILVALUE) \ + ACE_OS::set_errno_to_last_error (); \ + } while (0) +#endif /* ACE_WIN32 */ + +// ============================================================================ +// Fundamental types +// ============================================================================ + +#if defined (ACE_WIN32) + +typedef HANDLE ACE_HANDLE; +typedef SOCKET ACE_SOCKET; +# define ACE_INVALID_HANDLE INVALID_HANDLE_VALUE + +#else /* ! ACE_WIN32 */ + +typedef int ACE_HANDLE; +typedef ACE_HANDLE ACE_SOCKET; +# define ACE_INVALID_HANDLE -1 + +#endif /* ACE_WIN32 */ + +// Define the type that's returned from the platform's native thread +// functions. ACE_THR_FUNC_RETURN is the type defined as the thread +// function's return type, except when the thread function doesn't return +// anything (pSoS). The ACE_THR_FUNC_NO_RETURN_VAL macro is used to +// indicate that the actual thread function doesn't return anything. The +// rest of ACE uses a real type so there's no a ton of conditional code +// everywhere to deal with the possibility of no return type. +# if defined (ACE_VXWORKS) && !defined (ACE_HAS_PTHREADS) +# include /**/ <taskLib.h> +typedef int ACE_THR_FUNC_RETURN; +# elif defined (ACE_PSOS) +typedef int ACE_THR_FUNC_RETURN; +// pSOS task functions don't really return anything... this just makes it +// easier to deal with declaring variables internally in ACE. +# elif defined (ACE_WIN32) +typedef DWORD ACE_THR_FUNC_RETURN; +# else +typedef void* ACE_THR_FUNC_RETURN; +# endif /* ACE_VXWORKS */ +typedef ACE_THR_FUNC_RETURN (*ACE_THR_FUNC)(void *); + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +typedef void (*ACE_THR_C_DEST)(void *); +#ifdef __cplusplus +} +#endif /* __cplusplus */ +typedef void (*ACE_THR_DEST)(void *); + +// Now some platforms have special requirements... +# if defined (ACE_VXWORKS) && !defined (ACE_HAS_PTHREADS) +typedef FUNCPTR ACE_THR_FUNC_INTERNAL; // where typedef int (*FUNCPTR) (...) +# elif defined (ACE_PSOS) +typedef void (*ACE_THR_FUNC_INTERNAL)(void *); +# else +typedef ACE_THR_FUNC ACE_THR_FUNC_INTERNAL; +# endif /* ACE_VXWORKS */ + +# ifdef __cplusplus +extern "C" +{ +# endif /* __cplusplus */ +# if defined (ACE_VXWORKS) && !defined (ACE_HAS_PTHREADS) +typedef FUNCPTR ACE_THR_C_FUNC; // where typedef int (*FUNCPTR) (...) +# elif defined (ACE_PSOS) +// needed to handle task entry point type inconsistencies in pSOS+ +typedef void (*PSOS_TASK_ENTRY_POINT)(); +typedef void (*ACE_THR_C_FUNC)(void *); +# else +typedef ACE_THR_FUNC_RETURN (*ACE_THR_C_FUNC)(void *); +# endif /* ACE_VXWORKS */ +# ifdef __cplusplus +} +# endif /* __cplusplus */ + +// ============================================================================ +// Macros for controlling the lifetimes of dlls loaded by ACE_DLL--including +// all dlls loaded via the ACE Service Config framework. +// +// Please don't change these values or add new ones wantonly, since we use +// the ACE_BIT_ENABLED, etc..., macros to test them. +// ============================================================================ + +// Per-process policy that unloads dlls eagerly. +#define ACE_DLL_UNLOAD_POLICY_PER_PROCESS 0 +// Apply policy on a per-dll basis. If the dll doesn't use one of the macros +// below, the current per-process policy will be used. +#define ACE_DLL_UNLOAD_POLICY_PER_DLL 1 +// Don't unload dll when refcount reaches zero, i.e., wait for either an +// explicit unload request or program exit. +#define ACE_DLL_UNLOAD_POLICY_LAZY 2 +// Default policy allows dlls to control their own destinies, but will +// unload those that don't make a choice eagerly. +#define ACE_DLL_UNLOAD_POLICY_DEFAULT ACE_DLL_UNLOAD_POLICY_PER_DLL + +// Add this macro you one of your cpp file in your dll. X should +// be either ACE_DLL_UNLOAD_POLICY_DEFAULT or ACE_DLL_UNLOAD_POLICY_LAZY. +#define ACE_DLL_UNLOAD_POLICY(CLS,X) \ +extern "C" u_long CLS##_Export _get_dll_unload_policy (void) \ + { return X;} + +// ============================================================================ +// ACE_USES_CLASSIC_SVC_CONF macro +// ============================================================================ + +// For now, default is to use the classic svc.conf format. +#if !defined (ACE_USES_CLASSIC_SVC_CONF) +# if defined (ACE_HAS_CLASSIC_SVC_CONF) && defined (ACE_HAS_XML_SVC_CONF) +# error You can only use either CLASSIC or XML svc.conf, not both. +# endif +// Change the ACE_HAS_XML_SVC_CONF to ACE_HAS_CLASSIC_SVC_CONF when +// we switch ACE to use XML svc.conf as default format. +# if defined (ACE_HAS_XML_SVC_CONF) +# define ACE_USES_CLASSIC_SVC_CONF 0 +# else +# define ACE_USES_CLASSIC_SVC_CONF 1 +# endif /* ACE_HAS_XML_SVC_CONF */ +#endif /* ACE_USES_CLASSIC_SVC_CONF */ + +// ============================================================================ +// Default svc.conf file extension. +// ============================================================================ +#if defined (ACE_USES_CLASSIC_SVC_CONF) && (ACE_USES_CLASSIC_SVC_CONF == 1) +# define ACE_DEFAULT_SVC_CONF_EXT ".conf" +#else +# define ACE_DEFAULT_SVC_CONF_EXT ".conf.xml" +#endif /* ACE_USES_CLASSIC_SVC_CONF && ACE_USES_CLASSIC_SVC_CONF == 1 */ + +// ============================================================================ +// Miscellaneous macros +// ============================================================================ + +#if defined (ACE_USES_EXPLICIT_STD_NAMESPACE) +# define ACE_STD_NAMESPACE std +#else +# define ACE_STD_NAMESPACE +#endif + +#if !defined (ACE_OS_String) +# define ACE_OS_String ACE_OS +#endif /* ACE_OS_String */ +#if !defined (ACE_OS_Memory) +# define ACE_OS_Memory ACE_OS +#endif /* ACE_OS_Memory */ +#if !defined (ACE_OS_Dirent) +# define ACE_OS_Dirent ACE_OS +#endif /* ACE_OS_Dirent */ +#if !defined (ACE_OS_TLI) +# define ACE_OS_TLI ACE_OS +#endif /* ACE_OS_TLI */ + +// ------------------------------------------------------------------- +// Preprocessor symbols will not be expanded if they are +// concatenated. Force the preprocessor to expand them during the +// argument prescan by calling a macro that itself calls another that +// performs the actual concatenation. +#define ACE_PREPROC_CONCATENATE_IMPL(A,B) A ## B +#define ACE_PREPROC_CONCATENATE(A,B) ACE_PREPROC_CONCATENATE_IMPL(A,B) +// ------------------------------------------------------------------- + +#endif /* ACE_CONFIG_MACROS_H */ diff --git a/bin/MakeProjectCreator/config/endpointpolicy.mpb b/bin/MakeProjectCreator/config/endpointpolicy.mpb new file mode 100644 index 00000000000..740b240e816 --- /dev/null +++ b/bin/MakeProjectCreator/config/endpointpolicy.mpb @@ -0,0 +1,7 @@ +// -*- MPC -*- +// $Id$ + +project : taolib, core, portableserver, pi { + after += EndpointPolicy + libs += TAO_EndpointPolicy +} diff --git a/tests/Bug_2368_Regression_Test.cpp b/tests/Bug_2368_Regression_Test.cpp new file mode 100644 index 00000000000..8441abe346f --- /dev/null +++ b/tests/Bug_2368_Regression_Test.cpp @@ -0,0 +1,123 @@ +/** + * @file Bug_2368_Regression_Test.cpp + * + * $Id$ + * + * Reproduces the problems reported in bug 2368: + * http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2368 + * + * @author Johnny Willemsen <jwillemsen@remedy.nl> + */ + +#include "test_config.h" +#include "ace/Service_Config.h" +#include "ace/Reactor.h" +#include "ace/Log_Msg.h" +#include "ace/Signal.h" + +ACE_RCSID (tests, + Bug_2368_Regression_Test, + "$Id$") + +static bool handleA_close_called = false; +static bool handleB_close_called = false; + +class My_HandlerA : public ACE_Event_Handler +{ +public: + virtual int handle_close (ACE_HANDLE, + ACE_Reactor_Mask) + { + ACE_DEBUG ((LM_DEBUG, + "Handle close called\n")); + handleA_close_called = true; + + return 0; + } + + virtual int handle_signal (int, + siginfo_t *, + ucontext_t *) + { + ACE_DEBUG ((LM_DEBUG, + "Handle signal called\n")); + + return 0; + } +}; + +class My_HandlerB : public ACE_Event_Handler +{ +public: + virtual int handle_close (ACE_HANDLE, + ACE_Reactor_Mask) + { + ACE_DEBUG ((LM_DEBUG, + "Handle close called\n")); + handleB_close_called = true; + + return 0; + } + + virtual int handle_signal (int, + siginfo_t *, + ucontext_t *) + { + ACE_DEBUG ((LM_DEBUG, + "Handle signal called\n")); + + return 0; + } +}; + +int +run_main (int, ACE_TCHAR *[]) +{ + ACE_START_TEST (ACE_TEXT ("Bug_2368_Regression_Test")); + + My_HandlerA my_handlerA; + My_HandlerB my_handlerB; + + // Set up an ACE signal handler. + if (ACE_Reactor::instance ()->register_handler + (SIGINT, + &my_handlerA) == -1) + ACE_ERROR_RETURN ((LM_DEBUG, + "%p\n", + "register_handlerA"), + -1); + + if (ACE_Reactor::instance ()->register_handler + (SIGINT, + &my_handlerB) == -1) + ACE_ERROR_RETURN ((LM_DEBUG, + "%p\n", + "register_handlerB"), + -1); + + ACE_Sig_Action *new_disp = 0; + if (ACE_Reactor::instance ()->remove_handler + (SIGINT, + new_disp) == -1) + ACE_ERROR_RETURN ((LM_DEBUG, + "%p\n", + "remove_handlerB"), + -1); + + if (ACE_Reactor::instance ()->close () == -1) + ACE_ERROR ((LM_ERROR, + "%p\n", + "close")); + + if (!handleA_close_called) + ACE_ERROR ((LM_ERROR, + "Handle close hasn't been called for A\n")); + + if (!handleB_close_called) + ACE_ERROR ((LM_ERROR, + "Handle close hasn't been called for B\n")); + + ACE_END_TEST; + + return 0; +} diff --git a/tests/SSL/SSL_Asynch_Stream_Test.cpp b/tests/SSL/SSL_Asynch_Stream_Test.cpp new file mode 100644 index 00000000000..58556a44f0b --- /dev/null +++ b/tests/SSL/SSL_Asynch_Stream_Test.cpp @@ -0,0 +1,478 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// tests/SSL +// +// = FILENAME +// SSL_Asynch_Stream_Test.cpp +// +// = DESCRIPTION +// This program is a functionality test of ACE_SSL_Asynch_Stream. +// It demonstrates one proper use case of ACE_SSL_Asynch_Stream in the +// Proactor framework and validates its basic functionality. +// +// Usage: SSL_Asynch_Stream_Test [-r <hostname:port#>] +// [-t <num threads>] [-d <delay>] +// [-i <client conn attempt#>] [-n <client request# per conn>] +// +// Default value: +// <hostname:port#>: ACE_DEFAULT_SERVER_HOST:ACE_DEFAULT_PORT +// <num threads>: ACE_MAX_THREADS +// <client conn attempt#>: ACE_MAX_ITERATIONS +// <client req# per conn>: 20 +// <delay>: 0 usec +// +// = AUTHOR +// Steve Huston <shuston@riverace.com> +// +// ============================================================================ + +#include "tests/test_config.h" +#include "ace/Default_Constants.h" +#include "ace/OS_NS_string.h" +#include "ace/Event_Handler.h" +#include "ace/Get_Opt.h" +#include "ace/Proactor.h" +#include "ace/Reactor.h" +#include "ace/Thread_Manager.h" +#include "ace/INET_Addr.h" +#include "ace/SSL/SSL_Asynch_Stream.h" +#include "ace/SSL/SSL_SOCK_Connector.h" +#include "ace/SSL/SSL_SOCK_Acceptor.h" +#include "ace/SSL/SSL_SOCK_Stream.h" + +ACE_RCSID(tests, SSL_Asynch_Stream_Test, "$Id$") + +#if defined (ACE_HAS_THREADS) && ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS))) + // This only works on Win32 platforms and on Unix platforms + // supporting POSIX aio calls. + +class Client_Handler : public ACE_Handler +{ +public: + Client_Handler () + : msgs_sent_ (0), + stream_ (ACE_SSL_Asynch_Stream::ST_CLIENT), + block_ (1024) {} + ~Client_Handler (); + + int open (ACE_HANDLE); + +private: + virtual void handle_write_stream (const ACE_SSL_Asynch_Write_Stream_Result &result); + +private: + size_t msgs_sent_; + ACE_SSL_Asynch_Stream stream_; + ACE_Message_Block block_; +}; + +class Server_Handler : public ACE_Handler +{ +public: + Server_Handler () + : msgs_rcvd_ (0), + stream_ (ACE_SSL_Asynch_Stream::ST_SERVER), + block_ (1024) {} + ~Server_Handler (); + + int open (ACE_HANDLE); + +private: + virtual void handle_read_stream (const ACE_SSL_Asynch_Read_Stream_Result &result); + +private: + size_t msgs_rcvd_; + ACE_SSL_Asynch_Stream stream_; + ACE_Message_Block block_; +}; + +class Server_Acceptor : public ACE_Event_Handler +{ +public: + int open (const ACE_INET_Addr &listen_addr); + + // Called when a new connection is ready to accept. + virtual int handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE); + + virtual int handle_close (ACE_HANDLE handle, + ACE_Reactor_Mask close_mask); + +private: + ACE_SSL_SOCK_Acceptor acceptor_; +}; + +// Accepting end point. This is actually "localhost:10010", but some +// platform couldn't resolve the name so we use the IP address +// directly here. +static const ACE_TCHAR *rendezvous = \ + ACE_DEFAULT_SERVER_HOST ACE_TEXT (":") ACE_DEFAULT_SERVER_PORT_STR; + +// Total number of proactor threads. +static size_t num_threads = ACE_MAX_THREADS; + +#if defined (CHORUS) // Add platforms that can't handle too many + // connection simultaneously here. +#define ACE_LOAD_FACTOR /2 +#else +#define ACE_LOAD_FACTOR +#endif + +// Number of client connections to attempt. +static size_t cli_conn_no = ACE_MAX_ITERATIONS ACE_LOAD_FACTOR; + +// Number of requests each client connection sends. +static size_t cli_req_no = ACE_MAX_THREADS ACE_LOAD_FACTOR; + +// Delay before a thread sending the next request (in msec.) +static int req_delay = 0; + +// This is the string sent from client to server. +static const char *test_string = "SSL_Asynch_Stream_Test!"; + +static void +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt getopt (argc, argv, ACE_TEXT ("r:t:d:i:n:")); + + int c; + + while ((c = getopt ()) != -1) + { + switch (c) + { + case 'r': // hostname:port + rendezvous = getopt.opt_arg (); + break; + case 't': + num_threads = ACE_OS::atoi (getopt.opt_arg ()); + break; + case 'd': + req_delay = ACE_OS::atoi (getopt.opt_arg ()); + break; + case 'i': + cli_conn_no = ACE_OS::atoi (getopt.opt_arg ()); + break; + case 'n': + cli_req_no = ACE_OS::atoi (getopt.opt_arg ()); + break; + default: + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("Usage: %s [-r <hostname:port#>]") + ACE_TEXT ("\t[-t <nr threads>] [-d <delay>]") + ACE_TEXT ("\t[-i <client conn attempt#>]") + ACE_TEXT ("\t[-n <client request# per conn>]\n"), + argv[0])); + break; + } + } +} + +Client_Handler::~Client_Handler () +{ + if (this->stream_.handle () != ACE_INVALID_HANDLE) + { + if (this->msgs_sent_ != cli_req_no) + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("(%t) Client handle %d sent %d messages; ") + ACE_TEXT ("expected %d\n"), + this->stream_.handle (), + this->msgs_sent_, + cli_req_no)); + else + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("(%t) Client handle %d sent %d messages; ") + ACE_TEXT ("closing connection\n"), + this->stream_.handle (), + cli_req_no)); + } + this->stream_.close (); +} + +int +Client_Handler::open (ACE_HANDLE handle) +{ + if (this->stream_.open (*this, handle) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("(%t) Client_Handler: %p\n"), + ACE_TEXT ("open")), + -1); + this->block_.copy (test_string); + if (this->stream_.write (this->block_, this->block_.length ()) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("(%t) Client_Handler: %p\n"), + ACE_TEXT ("initiate write")), + -1); + return 0; +} + +void +Client_Handler::handle_write_stream + (const ACE_SSL_Asynch_Write_Stream_Result &result) +{ + if (!result.success ()) + { + errno = result.error (); + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("(%t) Client handle %d: %p\n"), + this->stream_.handle (), + ACE_TEXT ("write"))); + delete this; + return; + } + ACE_Message_Block &b = result.message_block (); + bool send_again = true; + if (b.length () == 0) + { + // All block's data sent; rewind the read pointer and send it again + // until we've sent the configured number of times. + ++this->msgs_sent_; + if (this->msgs_sent_ == cli_req_no) + send_again = false; // All done + else + b.rd_ptr (b.base ()); + } + + if (send_again) + { + if (this->stream_.write (this->block_, this->block_.length ()) == -1) + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("(%t) Client_Handler: %p\n"), + ACE_TEXT ("initiate write"))); + delete this; + } + } + else + { + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("(%t) Client handle %d done sending\n"), + this->stream_.handle ())); + delete this; + } + return; +} + +Server_Handler::~Server_Handler () +{ + if (this->stream_.handle () != ACE_INVALID_HANDLE) + { + if (this->msgs_rcvd_ != cli_req_no) + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("(%t) Server handle %d received %d messages; ") + ACE_TEXT ("expected %d\n"), + this->stream_.handle (), + this->msgs_rcvd_, + cli_req_no)); + else + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("(%t) Server handle %d received %d messages; ") + ACE_TEXT ("closing connection\n"), + this->stream_.handle (), + cli_req_no)); + } + this->stream_.close (); +} + +int +Server_Handler::open (ACE_HANDLE handle) +{ + if (this->stream_.open (*this, handle) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("(%t) Server_Handler: %p\n"), + ACE_TEXT ("open")), + -1); + if (this->stream_.read (this->block_, this->block_.space () - 1) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("(%t) Server_Handler: %p\n"), + ACE_TEXT ("read")), + -1); + return 0; +} + +void +Server_Handler::handle_read_stream + (const ACE_SSL_Asynch_Read_Stream_Result &result) +{ + if (!result.success ()) + { + errno = result.error (); + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("(%t) Server handle %d: %p\n"), + this->stream_.handle (), + ACE_TEXT ("read"))); + delete this; + return; + } + if (result.bytes_transferred () == 0) + { + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("(%t) Server handle %d closed by peer\n"), + this->stream_.handle ())); + delete this; + return; + } + + // Scan through the received data for the expected string. There may be + // multiples and/or partials. Count up how many arrive before the connection + // is closed. + // The read operation left one byte space at the end so we can insert a + // nul terminator to ease scanning. + ACE_Message_Block &b = result.message_block (); + *(b.wr_ptr ()) = '\0'; + size_t test_string_len = ACE_OS::strlen (test_string); + while (b.length () >= test_string_len) + { + if (0 != ACE_OS::strncmp (b.rd_ptr (), test_string, test_string_len)) + ACE_ERROR_BREAK ((LM_ERROR, + ACE_TEXT ("(%t) Read string: %C; expected: %C\n"), + b.rd_ptr (), + test_string)); + b.rd_ptr (test_string_len); + } + b.crunch (); + if (this->stream_.read (b, b.space () - 1) == -1) + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("(%t) Server_Handler: %p\n"), + ACE_TEXT ("read"))); + delete this; + } + return; +} + + +int +Server_Acceptor::open (const ACE_INET_Addr &listen_addr) +{ + if (this->acceptor_.open (listen_addr) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("listen")), + -1); + return 0; +} + +int +Server_Acceptor::handle_input (ACE_HANDLE) +{ + ACE_SSL_SOCK_Stream new_stream; + if (this->acceptor_.accept (new_stream) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("(%t) %p\n"), + ACE_TEXT ("accept")), + -1); + Server_Handler *new_handler = 0; + ACE_NEW_RETURN (new_handler, Server_Handler, -1); + if (new_handler->open (new_stream.get_handle ()) != 0) + delete new_handler; + + return 0; +} + +int +Server_Acceptor::handle_close (ACE_HANDLE, ACE_Reactor_Mask) +{ + this->acceptor_.close (); + return 0; +} + + +static ACE_THR_FUNC_RETURN +proactor_loop (void *) +{ + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Start handling events.\n"))); + + int result = + ACE_Proactor::instance ()->proactor_run_event_loop (); + if (result == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("(%t) %p\n"), + ACE_TEXT ("Error handling events")), + 0); + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Done handling events.\n"))); + + return 0; +} + +static ACE_THR_FUNC_RETURN +start_clients (void *) +{ + // Client thread function. + ACE_INET_Addr addr (rendezvous); + ACE_SSL_SOCK_Stream stream; + ACE_SSL_SOCK_Connector connect; + + for (size_t i = 0 ; i < cli_conn_no; i++) + { + if (connect.connect (stream, addr) < 0) + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("(%t) %p\n"), + ACE_TEXT ("connect"))); + continue; + } + + Client_Handler *new_handler = 0; + ACE_NEW_RETURN (new_handler, Client_Handler, (ACE_THR_FUNC_RETURN)-1); + if (new_handler->open (stream.get_handle ()) != 0) + delete new_handler; + stream.set_handle (ACE_INVALID_HANDLE); + } + + return 0; +} + +int +run_main (int argc, ACE_TCHAR *argv[]) +{ + ACE_START_TEST (ACE_TEXT ("SSL_Asynch_Stream_Test")); + + ACE_SSL_Context *context = ACE_SSL_Context::instance (); + // Note - the next two strings are naked on purpose... the arguments to + // the ACE_SSL_Context methods are const char *, not ACE_TCHAR *. + context->certificate ("dummy.pem", SSL_FILETYPE_PEM); + context->private_key ("key.pem", SSL_FILETYPE_PEM); + + parse_args (argc, argv); + + Server_Acceptor acceptor; + ACE_INET_Addr accept_addr (rendezvous); + + if (acceptor.open (accept_addr) == -1) + return 1; + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Listening at %s\n"), rendezvous)); + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("(%t) Spawning %d proactor threads\n"), + num_threads)); + ACE_Thread_Manager::instance ()->spawn_n (num_threads, proactor_loop); + ACE_Thread_Manager::instance ()->spawn (start_clients); + + ACE_Time_Value loop_limit (20); + ACE_Reactor::instance ()->run_reactor_event_loop (loop_limit); + ACE_Thread_Manager::instance ()->wait (); + + // Check for num connections up/down. + + ACE_END_TEST; + return 0; +} + +#else +int +run_main (int, ACE_TCHAR *[]) +{ + ACE_START_TEST (ACE_TEXT ("SSL_Asynch_Stream_Test")); + + ACE_ERROR ((LM_INFO, + ACE_TEXT ("This test requires threads and AIO which are not ") + ACE_TEXT ("supported on this platform\n"))); + + ACE_END_TEST; + return 0; +} +#endif /* ACE_HAS_THREADS && (WIN32 || AIO) */ |