From 005aafb271bd2d1bd4a5c8c21005eb5edab4910d Mon Sep 17 00:00:00 2001 From: nobody Date: Mon, 3 Dec 2001 23:52:58 +0000 Subject: This commit was manufactured by cvs2svn to create branch 'corba-env-clean'. --- ChangeLog | 6249 ++++++++++++++++++++ ChangeLogs/ChangeLog-02a | 6249 ++++++++++++++++++++ ChangeLogs/ChangeLog-03a | 6249 ++++++++++++++++++++ TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp | 393 ++ TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.h | 212 + .../tests/AVStreams/Bidirectional_Flows/Makefile | 58 + .../tests/AVStreams/Bidirectional_Flows/README | 45 + .../tests/AVStreams/Bidirectional_Flows/input | 995 ++++ .../AVStreams/Bidirectional_Flows/receiver.cpp | 363 ++ .../tests/AVStreams/Bidirectional_Flows/receiver.h | 146 + .../AVStreams/Bidirectional_Flows/run_test.pl | 67 + .../tests/AVStreams/Bidirectional_Flows/sender.cpp | 513 ++ .../tests/AVStreams/Bidirectional_Flows/sender.h | 150 + .../tests/AVStreams/Multiple_Flows/Makefile | 58 + TAO/orbsvcs/tests/AVStreams/Multiple_Flows/README | 57 + TAO/orbsvcs/tests/AVStreams/Multiple_Flows/input | 995 ++++ .../tests/AVStreams/Multiple_Flows/receiver.cpp | 305 + .../tests/AVStreams/Multiple_Flows/receiver.h | 144 + .../tests/AVStreams/Multiple_Flows/run_test.pl | 67 + .../tests/AVStreams/Multiple_Flows/sender.cpp | 443 ++ .../tests/AVStreams/Multiple_Flows/sender.h | 123 + .../AVStreams/Pluggable_Flow_Protocol/Makefile | 69 + .../tests/AVStreams/Pluggable_Flow_Protocol/README | 47 + .../Pluggable_Flow_Protocol/TimeStamp.cpp | 241 + .../AVStreams/Pluggable_Flow_Protocol/TimeStamp.h | 63 + .../tests/AVStreams/Pluggable_Flow_Protocol/input | 995 ++++ .../AVStreams/Pluggable_Flow_Protocol/receiver.cpp | 269 + .../AVStreams/Pluggable_Flow_Protocol/receiver.h | 100 + .../AVStreams/Pluggable_Flow_Protocol/run_test.pl | 67 + .../AVStreams/Pluggable_Flow_Protocol/sender.cpp | 415 ++ .../AVStreams/Pluggable_Flow_Protocol/sender.h | 117 + .../AVStreams/Pluggable_Flow_Protocol/svc.conf | 5 + 32 files changed, 26269 insertions(+) create mode 100644 ChangeLog create mode 100644 ChangeLogs/ChangeLog-02a create mode 100644 ChangeLogs/ChangeLog-03a create mode 100644 TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp create mode 100644 TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.h create mode 100644 TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/Makefile create mode 100644 TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/README create mode 100644 TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/input create mode 100644 TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp create mode 100644 TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.h create mode 100755 TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/run_test.pl create mode 100644 TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp create mode 100644 TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.h create mode 100644 TAO/orbsvcs/tests/AVStreams/Multiple_Flows/Makefile create mode 100644 TAO/orbsvcs/tests/AVStreams/Multiple_Flows/README create mode 100644 TAO/orbsvcs/tests/AVStreams/Multiple_Flows/input create mode 100644 TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp create mode 100644 TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.h create mode 100755 TAO/orbsvcs/tests/AVStreams/Multiple_Flows/run_test.pl create mode 100644 TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp create mode 100644 TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.h create mode 100644 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/Makefile create mode 100644 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/README create mode 100644 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/TimeStamp.cpp create mode 100644 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/TimeStamp.h create mode 100644 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/input create mode 100644 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/receiver.cpp create mode 100644 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/receiver.h create mode 100755 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/run_test.pl create mode 100644 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp create mode 100644 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.h create mode 100644 TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/svc.conf diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 00000000000..fa845881eb7 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,6249 @@ +Mon Dec 03 14:22:57 2001 Carlos O'Ryan + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: + Add UNIX-only files. Though strictly not required to compile + ACE under NT, putting them in the project makes this directory + more amenable for samwise. + + * ace/POSIX_Proactor.cpp: + Remove duplicate ACE_BUILD_DLL macro, when needed this is + defined via options in the project file. + +Mon Dec 3 13:59:06 2001 Ossama Othman + + * ace/README: + + The ACE_HAS_IP6 macro has been superceded by the ACE_HAS_IPV6 + macro. Also added description of the + ACE_USES_IPV4_IPV6_MIGRATION macro based on Steve's description + below. + +Mon Dec 3 15:50:42 2001 Steve Huston + + * IPv6 changes done by John Aughey and myself. To enable IPv6 + support for a build, put this in your config.h file: + #define ACE_HAS_IPV6 + If your build with IPv6 enabled must also run on systems where + the IPv6 support in the kernel is not actually turned on (for + example, Redhat Linux 7 by default), also add this to your + config.h file: + #define ACE_USES_IPV4_IPV6_MIGRATION + + * ace/ACE.cpp (format_hexdump): Add \n to last part of a dump line. + + * ace/INET_Addr.(h i cpp): If IPv6 is enabled, the inet_addr_ + member is now a union of sockaddr_in and sockaddr_in6. Which + one is legit is noted in ACE_Addr::type as well as the family + member of either of the union members. The host name lookup + functions can look up ipv6 as well as ipv4 names, and the + caller can force one or the other by using the address_family + argument to set(). + + * ace/OS.(h i): Removed ACE_OS::gethostbyname2; replaced it with + the more correctly-named and more flexible ACE_OS::getipnodebyname. + Also added ACE_OS::getipnodebyaddr. These are the IPv6-capable + functions analogous to gethostbyname and gethostbyaddr. + + * ace/SOCK.cpp (get_remote_addr, get_local_addr): Set up the + ACE_Addr's type properly to account for ipv4/6 possibilities. + + * ace/SOCK_Acceptor.(h cpp): Allow accepting on ipv4 and ipv6 sockets. + + * ace/SOCK_CODgram.h: + * ace/SOCK_Connector.(cpp h ): + * ace/SOCK_Dgram.(cpp h ): Change default protocol family from + PF_INET to vary and take advantage of IPv6 if available. + + * ace/Sock_Connect.(cpp h): Added ACE_Sock_Connect::ipv6_enabled() + method - it checks to see if the running kernel can do IPv6 + sockets or not. + + * ace/Sock_Connect.cpp (get_ip_interfaces): Removed a #if 0'd + block that had possible specializations for MSVC 4.2. It's + been a number of years, and it's obviously not needed. + + * ace/MEM_Addr.cpp (same_host): Don't try to compare binary + addresses directly... get ACE_INET_Addr objects, clear the port + numbers, and compare them. + + * ace/MEM_Connector.cpp (connect): Print error text with message. + + * ace/Asynch_Acceptor.cpp (open): For the new socket, use the + protocol family from the listen address, not PF_INET. + + * tests/INET_Addr_Test.cpp: New test. + + * tests/Makefile: Added INET_Addr_Test. + +Mon Dec 3 10:54:34 2001 Carlos O'Ryan + + * ace/OS.h: + Document CDR default buffer sizes and control macros + using Doxygen. + Document memory alignment macros in Doxygen form. + + * ace/Sample_History.h: + * ace/Sample_History.inl: + Add accessor to get the samples saved on the history. + + * ace/RMCast/RMCast_Singleton_Factory.h: + Document constructor in more detail. + +Mon Dec 03 07:54:04 2001 Johnny Willemsen + + * ace/Unbounded_Queue.{h,cpp}: + Added const iterator for this container class + +Sun Dec 02 15:13:30 2001 Carlos O'Ryan + + * ace/OS.cpp: + Fixed Fuzz problems, the ACE_TRACE calls in operator++/-- + definitions had less whitespace than the actual operators. + +Sun Dec 02 15:17:47 2001 Nanbor Wang + + * ace/Thread_Manager.cpp (join): This method mistakenly used the + local copy of Thread_Descriptor to change the thread status when + it found a thread to join from the . This prevented + the status of the original Thread_Descriptor to be updated + correctly and the same descriptor got put into the + again, which caused the same thread to be + waiting on in some cases. Changed to manipulate the descriptor + directly to avoid the problem. Thanks to Eyal Lubetzky + for reporting the problem and providing a + nice example to showcase it. + +Sun Dec 2 12:44:58 2001 Carlos O'Ryan + + * tests/ACE_Init_Test.cpp: + * tests/ACE_Init_TestDlg.cpp: + Protect this test against compilation on non-Win32 platforms, + that makes it easier to compile using samwise. + + * tests/RMCast/RMCast_Fragment_Test.cpp: + * tests/RMCast/RMCast_Membership_Test.cpp: + * tests/RMCast/RMCast_Reassembly_Test.cpp: + * tests/RMCast/RMCast_Reordering_Test.cpp: + * tests/RMCast/RMCast_Retransmission_Test.cpp: + * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: + Change #include "test_config.h" to #include "../test_config.h", + it is easier to generate makefiles and projects files with + samwise if we do that. + +Sun Dec 02 12:15:25 2001 Carlos O'Ryan + + * ace/OS.cpp: + Fixed typos in ACE_Time_Value::operator++ implementations. + Also moved the implementation outside the #ifdef ACE_WIN32 + section. + +Sun Dec 2 12:17:09 2001 Balachandran Natarajan + + * ace/Reactor.i: Fixed a warning in TRU 64. Thanks to + which reminded me of the fix in one of my + workspaces. This shows up only in V6.3-013 (cxx) of the + compiler. + +Sat Dec 1 19:39:22 2001 Steve Huston + + * ace/Date_Time.i (update): Use ACE_OS::gettimeofday for the time + source. This gets both the seconds-since-epoch value from which + the date and time are calculated and the microseconds value. + Thanks to Jim Connelly for reporting this. + + * THANKS: Added Jim Connelly to the Hall of Fame. + + * ace/Log_Msg_NT_Event_Log.{cpp h} (open): + * ace/Log_Msg_UNIX_Syslog.{cpp h} (open): + If the caller passes a prog_name (logger_key) argument, use it + for the Source field in the event log entries (or ident in the + syslog entries). If not, use the program name (previous behavior). + Added comments to define this behavior. + + * ace/Log_Msg.cpp (open): Don't refuse to open a backend if the + arg is 0 and the SYSLOG bit is enabled. The SYSLOG + backends, both UNIX and NT Event Log, work perfectly fine with + a 0 logger_key. Thanks to Steve Witten for + reporting this. + +Sat Dec 1 18:03:51 2001 Douglas C. Schmidt + + * ace/config-macosx.h: + * include/makeinclude/platform_macosx.GNU: + Added support so that ACE will build and run on Mac OS X 10.1. + Thanks to John Michael Zorko for contributing + this. + +Fri Nov 30 19:08:19 2001 Douglas C. Schmidt + + * ace/ARGV.cpp (dump): Fixed a bug with dump() so that it + works properly even if argv_ changes. Thanks to Kyle Brost + for this fix. + +Thu Nov 29 16:31:57 2001 Douglas C. Schmidt + + * ace/OS.{h,i,cpp}: Changed the return value of + ACE_Time_Value::operator+= and operator -= to be ACE_Time_Value + & rather than void. Also, added overloaded operator++ and + operator--. This is all to make this stuff work better with + ACE_Atomic_Op. Thanks to Kelly F. Hickel + for suggesting this. + + * ace/Asynch_Acceptor.cpp (parse_address): Changed + the "message_block.size () - 2 * this->address_size ()" argument + to "bytes_to_read_" to work properly on Win32. Thanks to Kelly + F. Hickel for reporting this. + +Wed Nov 28 17:44:26 2001 Douglas C. Schmidt + + * ace/OS_Dirent.cpp (readdir_emulation): Fixed a memory leak + in the dirent emulation. Thanks to Olivier Brunet + for reporting this. + + * ace/SPIPE_Acceptor.h (ACE_SPIPE_Acceptor): Clarified the + return value of open(). Thanks to Garth Watney + for motivating this. + + * ace/OS.h: Added a workaround to the Borland bug for + ACE_OS::stat(). Thanks to Christopher Kohlhoff + and Chris Able for + reporting/fixing this. + +Sat Dec 01 09:26:27 2001 Balachandran + + * ACE version 5.2.1 released. + +Wed Nov 28 09:28:09 2001 Johnny Willemsen + + * ace/examples/IPC_SAP/SOCK_SAP/* + * ace/examples/IPC_SAP/SPIPE_SAP/* + * ace/examples/Misc/* + * ace/examples/Naming/* + * ace/examples/RMCast/Send_File/* + * ace/examples/Reactor/DGram/* + * ace/examples/Reactor/Ntalker/* + * ace/examples/Registry/* + * ace/examples/Threads/* + * ace/examples/Service_Configurator/IPC_tests/client/* + Made these examples compiling when ACE_USES_WCHAR is set + +Mon Nov 26 16:07:57 2001 Balachandran Natarajan + + * bin/make_release: The distribution will be available in bzip2 + compressed format too. Made modifications to the release scripts + to put out the beta in bzip2 compressed format. + +Sat Nov 24 10:23:00 2001 Douglas C. Schmidt + + * ace/Unbounded_Set.h (class ACE_Unbounded_Set): Moved the + insert_tail() method from the private part of the class to the + public part since it's needed by the examples/Misc/test_set.cpp + file. + + * examples/Misc/test_set.cpp (main): Somehow the contents of this file + got lost. Thanks to Johnny Willemsen for reporting this! + +Fri Nov 23 08:40:33 2001 Douglas C. Schmidt + + * tests/Refcounted_Auto_Ptr_Test.cpp: Added some ACE_DEBUGs to + print out the reference count. + + * ace/Refcounted_Auto_Ptr.h: Added a count() accessor method to + return the reference count. Thanks to Andrea Bernicchia + for contributing this. + +Thu Nov 22 05:24:51 2001 Craig Rodrigues + + * examples/QOS/Diffserv: Added a simple example to illustrate + how to set Diffserv Codepoints on an ACE_SOCK_CODgram. + * examples/QOS/Makefile: Updated. + +Wed Nov 21 11:35:50 2001 Michael Kircher + + * ace/Bound_Ptr.h + * ace/Bound_Ptr.i + * ace/Future.cpp + * ace/Future.h + * ace/Refcounted_Auto_Ptr.h + * ace/Refcounted_Auto_Ptr.i + + Made the memory allocation failure behavior consistent + to the behavior prior to the change on Sun Oct 28 13:15:00 2001. + Thanks to Christopher Kohlhoff who prepared + this change. + The problem was that with the above mentioned change failed + allocations would return 0 in either case, if exceptions were + enabled by the platform or not. This was incosistent to the + behavior before, as new threw bad_alloc on allocation failure + when exceptions were supported by the platform. + + To fix this we faced the following forces: + - Not to introduce yet another macro + - Minimize impact of changes, localize the problem + - Keep the new calls wrapped by a ACE_NEW macro to allow + users to eventually redefine the macro (using e.g. new (nothrow) + + As the ACE_NEW macros are quite restrictive in their supported + semantics, e.g. you can only return on error, we decided to introduce + a new method (as inline) internal_create which does the allocation. + internal_create is called by create which does the differentiation + between the exception-supported and exception-not-supported case. + +Wed Nov 21 09:07:37 2001 Douglas C. Schmidt + + * ace/OS.h: Updated the ACE_GUARD_ACTION macro and added a new + ACE_GUARD_REACTION macro. Then, reimplemented the ACE_GUARD and + ACE_GUARD_RETURN macros in terms of these new macros. Thanks to + Don Hinton for contributing these. + + * ace/Log_Msg_Callback.h: Improved the comments to explain why + ACE_Log_Msg_Callback isn't inherited. Thanks to + Alexey Chalimov for motivating this. + +Tue Nov 20 15:36:52 2001 Douglas C. Schmidt + + * ACE-INSTALL.html: Pointed out that on Solaris with g++ you may + need to use GNU as instead of /usr/ccs/bin/as, if you want + -gstabs+ and -pipe support. Thanks to C Chan + for reporting this. + +Mon Nov 19 07:24:05 2001 Douglas C. Schmidt + + * examples/Synch/proc_sema.cpp: Added the ACE_TEXT macro so that + ACE_Get_Opt works correctly. Thanks to Johnny Willemsen for + contributing this. + + * tests/Aio_Platform_Test.cpp (main): Fixed the code so that it + compiles when ACE_USES_WCHAR. Thanks to Johnny Willemsen for + reporting this. + + * docs/ACE-categories.html: Updated the Doxygen URLs to use the + new format. Thanks to Peter J. Mason + for reporting the problem. + +Fri Nov 16 10:39:52 2001 Douglas C. Schmidt + + * docs: Moved minimumTAO.html from $TAO_ROOT/docs/ to + $ACE_ROOT/docs. + + * ace/OS.h: Added two new macros ACE_GUARD_ACTION and + ACE_GUARD_ACTION_RETURN. Thanks to Boris Kaminer + for suggesting these. + + * ace/NT_Service.cpp (state): Fixed a bug where calling + ACE_NT_Service::state(x,x) while the service is stopped was + causing the internal status variables of ACE_NT_Service to + become corrupt. If the control_mask is set to + SERVICE_ACCEPT_STOP in the constructor, the call to state will + cause this mask to be reset (if the service is not running). + This ultimately results in an NT Service that can be started but + not stopped. Thanks to Kyle Brost for + providing this fix. + +Wed Nov 21 10:00:20 2001 Chad Elliott + + * ace/config-irix6.x-common.h: + + Changed the size of a long double from 16 to 8 for the GNU + compiler. + + * include/makeinclude/platform_irix6.x_sgic++.GNU: + + Add buildbits macro to allow 32 and 64 bit builds on IRIX. + +Wed Nov 21 12:49:08 2001 Johnny Willemsen + + * performance-tests/Misc/basic_perf.cpp + * performance-tests/Misc/childbirth_time.cpp + * performance-tests/Misc/context_switch_time.cpp + * performance-tests/Misc/preempt.cpp + * performance-tests/Misc/test_mutex.cpp + * performance-tests/Misc/test_singleton.cpp + Made these tests compiling when ACE_USES_WCHAR is set + +Wed Nov 21 08:49:12 2001 Johnny Willemsen + + * ace/OS.h + Added ACE_LIB_TEXT around ACE_DEFAULT_RENDEZVOUS to make a unicode + constant when ACE_USES_WCHAR is defined + + * tests/FlReactor_Test.cpp + * tests/TkReactor_Test.cpp + * tests/XtReactor_Test.cpp + Changed type of argv argument of main from char to ACE_TCHAR so that + these tests compile without problems when ACE_USES_WCHAR is defined + + * examples/IPC_SAP/ATM_SAP/CPP-client.cpp + * examples/IPC_SAP/ATM_SAP/CPP-server.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp + Made these example compiling when ACE_USES_WCHAR is set + +Tue Nov 20 12:02:16 2001 Ossama Othman + + * configure.in: + + Removed this file from the distribution. Some folks insist on + attempting to build ACE/TAO with the configure script and + reporting problems despite the fact we've explicitly disabled + it. + +Tue Nov 20 13:30:36 2001 Balachandran Natarajan + + * ace/Strategies.h: + * ace/Strategies.cpp: + * ace/Strategies.i: Re-added files back into the main trunk. Got + accidentally removed from the main when I was doing some work on + a branch. + +Mon Nov 19 20:35:44 2001 Jaiganesh Balasubramanian + + * ace/SOCK_Dgram_Mcast.cpp: + This class allow application to subscribe a single socket to + many multicast groups. However, the unsubscribe operation + failed to work with more than one group. For some strange + reason it was storing the first multicast group subscription in + a class member and using that member in all the paths for the + unsubscribe methods. + + We have changed the unsubscribe(const ACE_INET_Addr&,...) method + to work as adversited, i.e. unsubscribe the *given* multicast + address, not the stored one, as an added benefit the method is + now re-entrant. The unsubscribe(void) method works as before. + The code has been re-factored to minimize duplication. + +Mon Nov 19 11:03:07 2001 Ossama Othman + + * ACE-INSTALL.html: + + Added missing build instructions for the ACE_SSL library, and + updated the list of "make" flags recognized by ACE's Makefile + scheme. + +Mon Nov 19 00:53:54 2001 Krishnakumar B + + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_Tokens.h: + + Fixed some bugs introduced by my previous checkin because of + patch confusion. Replaced all the standard C system calls with + ACE_OS calls. Made it more wchar friendly. + + * ace/Makefile: + + Removed the dependency on /pkg/gnu/bin/flex. It was broken. We + now use $(LEX) and $(YACC) defined in + $ACE_ROOT/include/makeinclude/wrapper_macros.GNU. + + * include/makeinclude/wrapper_macros.GNU: + + Changed the definition of YACC to bison (by default). If people + want to change this, it can be overridden by a variable in the + Makefile. But things are most likely to break if you use yacc. + + * etc/Svc_Conf_l.cpp.diff: + * etc/Svc_Conf_y.cpp.diff: + + Regenerated the diffs. + + *Sigh* This patching business is ugly. + +Fri Nov 16 07:22:19 2001 Balachandran Natarajan + + * bin/make_release: Updated the script to copy the beta to a + different location. Have tested this by creating a dummy + repository and a dummy export directory. Things worked + fine. Hopefully the beta should go through without any hassle. + + The script is tied to its usage on ace.cs. Needs to be + changed. Will do that after this beta goes out. Having too many + changes at the same time may not be good. + +Thu Nov 15 20:44:40 2001 Craig Rodrigues + + * etc/Svc_Conf_l.cpp.diff: Updated. Thanks to Kitty for reporting it. + * etc/Svc_Conf_y.cpp.diff: Added. We need it for uses of ACE_LIB_TEXT. + * ace/Makefile: Added rule to apply patch to Svc_Conf_y.cpp. + +Thu Nov 15 08:26:57 2001 Douglas C. Schmidt + + * ace/*.cpp: Changed all remaining uses of ACE_TEXT to ACE_LIB_TEXT + to be consistent... Thanks to Johnny Willemsen for reporting + the inconsistencies and for Darrell Brunsch for clarifying what + the right behavior should be. + +Wed Nov 14 07:43:20 2001 Douglas C. Schmidt + + * docs/ACE-guidelines.html: Updated the guidelines to explain + the use of ACE_TCHAR for the argv parameter to main(). Thanks + to Johnny Willemsen for reporting this. + + * ace/OS_Dirent.inl (opendir): Replace char * const cast with + ACE_TCHAR * const cast. Thanks to Nick Pratt for reporting + this. + + * tests/Upgradable_RW_Test.cpp (main): Fixed the test to avoid + dividing by 0 and also initialized all pointers to NULL. Thanks + to Johnny Willemsen for reporting this. Thanks fixes BudID 650. + +Tue Nov 13 15:25:04 2001 Douglas C. Schmidt + + * ace/ACE.h (ACE): Clarified what the time_len parameter is used for. + Thanks to Tompa for reporting this. + +Sun Nov 11 09:50:52 2001 Douglas C. Schmidt + + * ace/Naming_Context.cpp (info): Added an ACE_UNUSED_ARG to + silence warning about "length" parameter and changed buf from + char to ACE_TCHAR. Thanks to Johnny Willemsen for reporting + this. + + * tests/Aio_Platform_Test.cpp: The argv parameter of main() should + be ACE_TCHAR rather than char. Thanks to Johnny Willemsen for + reporting this. + +Thu Nov 15 15:43:20 2001 Craig Rodrigues + + * ace/Naming_Context.cpp (info): Wrapped sprintf() arguments with + ACE_LIB_TEXT. Fix supplied by Johnny Willemsen. + +Thu Nov 15 12:43:31 2001 Nanbor Wang + + * docs/wchar.txt: Added a writeup for ACE_LIB_TEXT and ACE_TEXT + from "the authority." + +Wed Nov 14 21:36:42 2001 Ossama Othman + + * docs/usage-bugzilla.html: + + Corrected link to the DOC Center's bugzilla site. + +Wed Nov 14 23:11:59 2001 Craig Rodrigues + + * ace/Naming_Context.cpp (info): Fixed Unicode build problems + by consistently using ACE_TCHAR instead of char, and by + using Unicode aware string functions in ACE_OS_String + instead of ACE_OS. + + * ace/Svc_Conf_l.cpp: Default intialized ace_yy_c_buf_p to ACE_TCHAR + instead of char. Default initialized ace_yy_cp, ace_yy_bp to 0. + + * ace/Svc_Conf_y.cpp: Wrap string literals passed to ace_yyerror + with ACE_LIB_TEXT(). + +Wed Nov 14 06:38:41 2001 Balachandran Natarajan + + * docs/ACE-bug-process.html (HREF): Changed references from ace.cs + to deuce.doc. Thanks to Johnny Willemsen for reporting this. + +Tue Nov 13 15:04:15 2001 Carlos O'Ryan + + * html/Stats/index.shtml: + * html/Stats/detailed_performance.shtml: + Improved documentation about the test location, ORB, and network + configuration used. Thanks to David Yongqiang Wang + for pointing out the problems. + +Tue Nov 13 11:46:11 2001 Chris Cleeland + + * tests/Collection_Test.cpp (iterate_const): Fixed ACE_DEBUG print + statements that were accessing the element of the unbounded set + as an int rather than an UglyThing. Thanks to Ossama for + pointing this out. + +Mon Nov 12 11:41:35 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.cpp (send, recv): + + In the va_arg versions of these methods, do not use + send/recv_n() to as the underlying send/recv() method. It + forces unnecessary blocking. + + Corrected return value semantics in versions of these methods + that use loop to send/receive multiple buffers. If data was + sent or received than do not return -1 on error. Instead return + the amount of bytes sent/received. This is necessary to allow + the caller to keep track of sent or received data. [Bug 882] + +Sun Nov 11 23:50:00 2001 Craig Rodrigues + + * tests/Date_Time_Test.cpp: Remove argv variable from + main() to eliminate unused variable compiler warning. + * tests/Arg_Shifter_Test.cpp: Same. + +Sun Nov 11 10:00:56 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.h (ACE_SSL_SOCK_Stream): + + Removed unused class members. + + * ace/SSL/SSL_SOCK_Stream.cpp (sendv): + + If an error occurs but data was sent on a previous loop + iteration then return the amount of bytes sent, not the error. + This extends previous check for EWOULDBLOCK and ETIME. All + errors are now caught. The caller must always know if any data + was successfully sent. [Bug 882] + + Do not continue on to the next loop iteration if the amount of + data sent was less than the amount data given. This avoids a + subtle problem where "holes" in the data stream would occur if + partial sends of a given buffer in the iovec array occured. + [Bug 882] + +Sun Nov 11 07:58:07 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.cpp (sendv): + + Fixed unused variable warnings. + +Sat Nov 10 23:25:50 2001 Ossama Othman + + * bin/auto_run_tests.lst: + + Added new SSLIOP "Big_Request" test to the list of regression + tests to automatically run during the nightly builds. + +Sat Nov 10 22:13:54 2001 Krishnakumar B + + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_Tokens.h: + + Regenerated the files after fixing the warnings that showed up + under Sun CC Forte Update. They were caused because Sun CC's + preprocessor doesn't like the #line statements generated by flex + and bison. Since these files are not modified on a daily basis, + people debugging the lexer can turn it on by removing the flags + '-l' and '-L' to bison and flex respectively in the Makefile. + For now, this removes a lot of noise. + + * ace/Makefile: + + Added flags '-l' to bison and '-L' to flex. + + * etc/Svc_Conf_l.cpp.diff: + + Regenerated the diff to match the current version. + + * etc/Svc_Conf_y.cpp.diff: + + This file held the stuff which have been obsoleted by the move + to use bison. So removed this file to avoid causing confusion in + the future. Thanks to Ossama for pointing this out. + + Let's see some green :-) + +Sat Nov 10 19:27:36 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + + If data is still buffered within OpenSSL's internal buffer, then + force the Reactor to invoke the event handler (with + the appropriate mask) before waiting for more events + (e.g. blocking on select()) by returning a value greater than + one. All pending data must be processed before waiting for more + events to come in on the SSL handle. + + * ace/SSL/SSL_SOCK_Stream.h (reactor, handler, notify): + + These methods are no longer needed. Removed them. + + (sendv): + + Added missing timeout parameter. + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i (notify, recv_i, send_i, close): + + Reverted code that notify()ed the Reactor if data was still + pending in OpenSSL's internal buffers. The idea was to force + the reactor to call the appropriate event handler before polling + for events (e.g. blocking on select()). However, notifications + are not dispatched until after events are polled which meant + that there is no point in notify()ing the Reactor. + + * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler): + + These methods are no longer needed. Removed them. + + (sendv): + + Fixed/improved the writev() semantics and emulation in this + method. Previously, if an iov_base buffer was successfully + sent, that success was not reported to the caller if subsequent + sends in the emulation loop failed. The caller would end up + thinking that no part of the message was sent. The improved + semantics are now the following if the underlying send() call + returns with an EWOULDBLOCK or ETIME error condition: + + - If no data was sent, then return -1. + - If some data was sent on a previous loop iteration then + return the number of bytes successfully sent. + + In both cases, errno is unchanged. [Bug 882] + + Incidentally, this fixes a problem in TAO's SSLIOP pluggable + protocol when sending very large requests. Thanks to Andrew + Finnell for providing an + example that exhibited the problem. + + Lastly, the missing timeout support has been added. The timeout + is decremented on each loop iteration. + +Sat Nov 10 17:16:59 2001 Nanbor Wang + + * ace/OS.cpp (fopen): Removed redundant parentheses. + +Sat Nov 10 09:29:48 2001 Douglas C. Schmidt + + * ace/OS.i (pipe): Replaced the _pipe() call on Win32 with the + CreatePipe() call. Thanks to Bo Balders + for reporting this. + + * ace/Log_Msg.cpp (log): The "format" string was omitted. Thanks + to Martin Krumpolec for noticing this. + +Sat Nov 10 08:48:24 2001 Douglas C. Schmidt + + * ace/Arg_Shifter.{h,cpp}: Added a new constructor to ACE_Arg_Shifter + so that it can handle both const char ** and char ** arguments. + +Fri Nov 9 07:42:41 2001 Douglas C. Schmidt + + * ace/Arg_Shifter.cpp: Made the argv parameter to ACE_Arg_Shifter + a "const" ACE_CHAR **. + + * tests/Arg_Shifter_Test.cpp (main): Added "const" to the + args local variable to remove a warning from SunC++. + +Fri Nov 9 11:23:01 2001 Chris Cleeland + + * tests/Collection_Test.cpp: Fixed up things that caused problems + on several platforms. Added the ARRAY tests back in. + +Thu Nov 8 14:52:39 2001 Steve Huston + + * ace/Log_Msg.h: Added a new 'M' option to print out the name of + the log priority. Thanks to Vladimir Chovanec + for reporting this. + +Thu Nov 8 10:41:44 2001 Douglas C. Schmidt + + * ace/OS_String.h: Enhanced the documentation so that it explains + the differences between ACE_OS::strsncpy() and ACE_OS::strcpy() + more precisely. Thanks to Alain Decamps for contributing this. + + * ace/Naming_Context.{h,cpp}: The info() method should have + ACE_TCHAR ** rather than char **. Thanks to Johnny Willemsen + for reporting this. + + * ace/OS.cpp: Added support for Borland's idiosyncratic _wfdopen() + method. Thanks to Johnny Willemsen for reporting this. + +Wed Nov 7 05:17:03 2001 Douglas C. Schmidt + + * ace/Message_Queue_T.{h,cpp}: Changed the typo DEFUALT_PRIORITY + to DEFAULT_PRIORITY. + + * ace/OS.i: In BCB the _wtempnam() has the following signature: + wchar_t *_wtempnam(wchar_t *dir, wchar_t *prefix) + + This means that the arguments must be made non-const by a cast. The + fix is to add some defines so that with BCB and no wchar the + _tempnam is used (with the casts) and with BCB and wchar then + the _wtempnam is used with the casts. Thanks to Johnny + Willemsen for this fix. + +Thu Nov 8 14:52:39 2001 Steve Huston + + * ace/Arg_Shifter.h: Doxygen-ized some comments. + + * ace/Date_Time.i (update): Add 1900 to years value to convert from + localtime's years-since-1900 value to now. Add 1 to the month + to convert localtime's 0-11 range to 1-12. Thanks to Syed + Wasim Ali for reporting this. + + * tests/Date_Time_Test.(cpp dsp icc): New test for ACE_Date_Time. + + * tests/tests.dsw: + * tests/tests.icp: + * tests/Makefile[.bor]: Added Date_Time_Test. + + * tests/run_test.lst: Added Arg_Shifter_Test and Date_Time_Test. + +Thu Nov 8 11:53:00 2001 Steve Huston + + * tests/Arg_Shifter_Test.(cpp dsp icc): New test for ACE_Arg_Shifter. + + * tests/tests.dsw: + * tests/tests.icp: + * tests/Makefile[.bor]: Added Arg_Shifter_Test. + +Thu Nov 8 13:05:12 2001 Chad Elliott + + * include/makeinclude/platform_irix6.x_sgic++.GNU: + + Added an option to suppress warnings about #pragma pack. + +Thu Nov 8 10:43:22 2001 Chad Elliott + + * ace/OS.cpp: + + Correct a build problem for GHS on Win32. + +Wed Nov 07 13:50:39 2001 Nanbor Wang + + * ace/Task_T.h (ACE_Task): Decorated ACE_Task with ACE_Export to + avoid VC7's internal compiler error. Thanks to Darrell for + submitting the change. + +Wed Nov 7 10:59:00 2001 Craig Rodrigues + + * include/makeinclude/platform_sunos5_g++.GNU: Append -D_REENTRANT + to CPPFLAGS if threads=1 + +Wed Nov 7 08:09:20 2001 Balachandran Natarajan + + * bin/nightlybuilds/builds.lst: Changed the name CC5 build as + CC51. It uses version 5.1 of the compiler anyway. + +Tue Nov 6 14:39:28 2001 Douglas C. Schmidt + + * ace/SString.i (find), + * ace/Local_Name_Space_T.cpp (resolve_i): Fixed "off-by-one" + bugs with ACE_OS::strscpy(). Thanks to Alain Decamps + for contributing this. + +Tue Nov 6 13:25:40 2001 Chris Cleeland + + * tests/Collection_Test.cpp: Committed an old change that uses an + actual class as the element in the Unbounded_Set rather than an + int. I wrote this to get a better understanding of how the + iterator and accessors on the iterator worked. + + * tests/SString_Test.cpp (main): Added a test for the rep() method + that insures that the char array returned is equivalent to the + string in the ACE_CString from which it's obtained. + +Mon Nov 5 10:12:01 2001 Douglas C. Schmidt + + * ace/OS.cpp, + * ace/Local_Name_Space_T.cpp, + * ace/FILE_Addr.cpp, + * ace/Acceptor.cpp, + * ace/ACE.cpp: Changed uses of strncpy() to ACE_OS::strsncpy(). + Thanks to Alain Decamps for these fixes. + +Sun Nov 4 12:11:31 2001 Douglas C. Schmidt + + * ace/Reactor.cpp: Enhanced all the Reactor's event loop methods + to first check and see if the Reactor's been deactivated and to + bailout immediately in this case. Thanks to Don Hinton for + suggesting this. + + * ace/Reactor.i: Moved the reactor_event_loop_done() method from + the *.cpp file into the *.i file and made inlineable. + + * ace/Select_Reactor_T.cpp: Be more careful about error handling in the + dispatch_notification_handlers() method. If a failure occurs, + when dispatch_notifications() is called, return -1, rather than + erroneously "incrementing" the count of the number of handlers + dispatched. Thanks to Don Hinton for reporting this. + +Sat Nov 3 11:15:43 2001 Douglas C. Schmidt + + * The following fixes are from Joachim Achtzehnter : + + In ace/config-pharlap.h we had to explicitly #undef + ACE_HAS_WCHAR after the #include "ace/config-win32.h" + directive. Without this change the resulting DLL depended on + several wide character versions of Win32 system functions, such + as _CreateMutexW. At least some of these dependencies were + caused by ace/OS.i. + + In ace/Log_Msg.cpp we had to add !defined(ACE_HAS_PHARLAP) to a + few more places in addition to the ones Bruce Trask had posted + to avoid reference to the NT Eventlog functionality. + + At the top of ace/Log_Msg_NT_Event_Log.h and + ace/Log_Msg_NT_Event_Log.cpp we added !defined(ACE_HAS_PHARLAP) + to completely bypass the contents of these two files. + + * ace/DEV_Addr.i (addr_to_string): + * ace/Local_Tokens.i (name): + * ace/Module.i (name): + * ace/OS.i (asctime_r): + * ace/SPIPE_Addr.i (addr_to_string): + * ace/UNIX_Addr.i (addr_to_string): + * ace/SString.i (rep): Changed uses of strncpy() to ACE_OS::strsncpy(). + Thanks to Alain Decamps for these fixes. + +Fri Nov 2 14:38:49 2001 Douglas C. Schmidt + + * ace/Task.h (ACE_Task_Base): Clarify the meaning of the put() + hook method. Thanks to Tommy Svensson + for motivating this. + +Mon Nov 5 14:23:12 2001 Chad Elliott + + * ace/ACE.cpp: + + Remove a build warning for gcc 2.95.3 on SunOS 5.6. + +Mon Nov 5 14:21:30 2001 Chad Elliott + + * bin/nightlybuilds/builds.lst: + + Added the HP-UX nightly build back to the list. + +Mon Nov 5 13:31:15 2001 Chad Elliott + + * ace/ACE.cpp: + + Fix a build warning for 64-bit HP-UX. + + * ace/Active_Map_Manager_T.i: + + Cast the free list id to ACE_UINT32 to match up with the + slot_index () type. On 64-bit HP-UX, the free list id type + (size_t) is a 64 bit number and must be cast down to 32 bits. + Otherwise, the slot_index is cast up to 64 bits and does not give + the correct results. + + * include/makeinclude/platform_hpux_aCC.GNU: + + Add a -L./ to allow the 64-bit HP-UX builds to link properly. + +Mon Nov 5 11:17:20 2001 Carlos O'Ryan + + * bin/auto_compile: + Add support for the new status.txt file in the scoreboard. + +Mon Nov 5 13:02:50 2001 Chad Elliott + + * ace/config-hpux-11.00.h: + + Added #define of ACE_HAS_CHARPTR_DL. This corresponds with the + declaration of dlopen(char*,unsigned int). + + * ace/OS.cpp: + + Changed the default thread scope to system (similar to Linux). + Process thread scope is not supported in HP-UX. + +Sun Nov 04 11:18:31 2001 Nanbor Wang + + * ace/OS.cpp (fopen): Changed to forward call to fopen instead of + _fopen on non-borland compilers when not using UNICODE. This + change allows the code to compile on Win98. Thanks to Jstwo + for submitting the fix. + +Thu Nov 1 16:21:51 2001 Chris Cleeland + + * bin/auto_run_tests.pl: Added snippet of code that puts the + current directory ('.') in the PATH environment variable since + auto_run_tests.pl depends on the current directory being there. + +Thu Nov 1 15:49:04 Balachandran Natarajan + + * include/makeinclude/platform_osf1_4.x_cxx.GNU: Moved the + CXX_VERSION definition to the global scope. + + * include/makeinclude/platform_tru64_cxx.GNU: Added + -D_PTHREAD_ENV_DECCXX flag to the CPPFLAGS. This is done only + for v5.1, 1885. The pthreads.h in 1885 is messed up. The + conditional include of c_asm.h is busted for DECCXX and + v1885. Hence the change. We need to do this to protect ACE and + TAO applications on this platform and compiler + combinations. Thanks to Don Hinton for + reporting the problem. + +Thu Nov 1 14:25:52 2001 Jeff Parsons + + * ace/config-win32-borland.h: + + Added fix sent in by Chris Kohlhoff + to ACE_CC_PREPROCESSOR_ARGS to enable the recognition of a + filename to which the preprocessor output is to be directed. + There is also a corresponding fix in TAO_IDL/driver/drv_preproc.cpp + that carries out the redirection. + +Thu Nov 1 10:27:21 2001 Ossama Othman + + * ace/Select_Reactor_Base.h (open): + * ace/Select_Reactor_T.h (ACE_Select_Reactor_T, open): + + Added a note about the "size" of the Select_Reactor on Unix + platforms. On Unix platforms, the size parameter should be as + large as the maximum number of file descriptors allowed for a + given process. This is necessary since a file descriptor is + used to directly index the array of event handlers maintained by + the Reactor's handler repository. Direct indexing is used for + efficiency reasons. + +Thu Nov 1 06:38:30 2001 Douglas C. Schmidt + + * ace/ACE.cpp: Fixed some minor formatting problems so that + format_hexdump() works properly. Thanks to Kyle Brost + for reporting this. + + * ace/config-win32.h: Include the config-cygwin32.h file when + __CYGWIN32__ is enabled. Thanks to Johnny Willemsen for + reporting this. + + * ace/Synch.i (remove): Added some casts to make certain compilers + happy? Thanks to Guillaume Renaud + for reporting this. + + * ace/OS.i: Updated the Win32 version of ACE_OS::llseek(). Thanks to + Doron Rajwan for reporting this. + +Wed Oct 31 11:25:40 2001 Douglas C. Schmidt + + * ace/OS.h: The ACE_OS::llseek() method must be static! Thanks to + Doron Rajwan for reporting this. + +Tue Oct 30 08:30:16 2001 Douglas C. Schmidt + + * ace/RB_Tree.cpp (operator=): Make sure to check for self-assignment + in the operator=. Thanks to Johnny Willemsen for reporting + this. + +Mon Oct 29 05:23:56 2001 Douglas C. Schmidt + + * ace/Naming_Context.{h,cpp}: Moved ACE_STATIC_SVC_REQUIRE from the + .h file to the .cpp file to avoid multiple definitions. Thanks to + Boris Kaminer for reporting this. + +Sun Oct 28 10:05:32 2001 Douglas C. Schmidt + + * ace/config-macosx.h: + * include/makeincludes/platform_macosx.GNU + Added new fixes to get this to work on MacOS X. Thanks to John + Michael Zorko and Fikri Pribadi + for contributing this. + +Wed Oct 24 23:59:13 2001 Douglas C. Schmidt + + * ace/Configuration_Import_Export.cpp: Fixed a bug where a + check of a pointer was made rather than the character pointed to + by the pointer. Thanks to Juan Jose Comellas + for reporting this. + +Wed Oct 31 16:45:07 2001 Ossama Othman + + * ace/OS.h (llseek): + + Made ACE_OS::llseek() a static method, as it was originally + intended to be. Thanks to Doron Rajwan for + pointing out the problem. + +Tue Oct 30 22:53:57 2001 Ossama Othman + + * ace/Svc_Conf_l.cpp: + + Fixed incorrect #line preprocessor directives. + + * etc/Svc_Conf_l.cpp.diff: + + Regenerated this diff so that it includes recent updates. + +Mon Oct 29 20:12:40 2001 Ossama Othman + + * tests/run_test.lst: + + Added the Proactor test to the list of one-button tests to run. + +Mon Oct 29 20:04:40 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + More patches from Alexander Libman. The Proactor_Test appears + to finally work on Linux. + +Mon Oct 29 17:49:21 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Added some error checks at places where + token where acquired. + +Mon Oct 29 16:59:58 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp (acquire_token): The acquire_token () called + acquire with a sleep hook. It was wrong. It should just unblock + the thread by sending notify. A bad cut and paste error + :(. Thanks to Graeme Clark for reporting + this. This closes [BUGID 1077]. + +Sun Oct 28 20:36:56 2001 Ossama Othman + + * ace/Map_T.i (clone): + + Fixed syntax errors. + + * ace/Svc_Handler.cpp (new): + + Reverted Michael's change. It incorrectly altered the semantics + of the new operator, particularly when compiling with native + exception support enabled. Fixes a warning. + +Sun Oct 28 16:44:20 2001 Ossama Othman + + * ace/Timer_Hash_T.cpp (ACE_Timer_Hash_T): + + Corrected syntax error that was introduced in the changes + described below by removing extraneous trailing bracket. + +Sun Oct 28 13:15:00 2001 Michael Kircher + + * ace/ACE.i: + * ace/Activation_Queue.cpp: + * ace/Bound_Ptr.i: + * ace/Configuration.cpp: + * ace/Configuration_Import_Export.cpp: + * ace/Containers_T.cpp: + * ace/Future.cpp: + * ace/Handle_Gobbler.h: + * ace/Local_Tokens.i: + * ace/MEM_SAP.i: + * ace/Map_T.i: + * ace/Message_Block.cpp: + * ace/OS_Errno.cpp: + * ace/Object_Manager.cpp: + * ace/Obstack_T.cpp: + * ace/Refcounted_Auto_Ptr.i: + * ace/Remote_Tokens.i: + * ace/Strategies_T.cpp: + * ace/Stream.cpp: + * ace/Svc_Handler.cpp: + * ace/Synch_T.cpp: + * ace/TLI.cpp: + * ace/Timer_Hash_T.cpp: + * ace/Timer_Queue_T.cpp: + * ace/Unbounded_Queue.cpp: + * ace/Unbounded_Set.cpp: + + Changed almost all direct usages of operator new in ACE to use + ACE_NEW_RETURN (Exceptions is Dump_T.h). In one case in + Stream.cpp the semantics changed slightly if operator new would + have been overloaded, see the "@@ Michael" comment. + + When new got used with placement most of the usages got + replaced with ACE_NEW_MALLOC_RETURN. In some cases as in + Malloc_T.cpp, Map_Manager.cpp, PI_Malloc.i, Array_Base.cpp + special cases exist, where the macros would have incurred + different semantics and performance penalties. + +Fri Oct 26 07:37:43 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Quoter example will not run in + minimum_corba builds. + +Wed Oct 24 08:04:36 2001 Balachandran Natarajan + + * ace/Reactor.h: Improved the documentation of the + end_reactor_event_loop (). + +Tue Oct 23 10:04:25 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Replaced uses of a static global lock with the + ACE_Static_Object_Lock singleton. + + Fixed incorrect uses of the "%l" format specifier. "%d" is the + expected format specifier. + + (Acceptor): + + Initialize the "sessions_" member in the base member initializer + list. Corrects a problem where the session number initially + contained a "garbage" value. + +Mon Oct 22 17:55:00 2001 Craig Rodrigues + + * ace/Svc_Conf_l.cpp: Remove include of stdlib.h, fix g++/Solaris + build. + +Mon Oct 22 15:54:29 2001 Steve Huston + + * ace/config-hpux-10.x-hpc++.h: Remove hard-coded setting of + ACE_HAS_EXCEPTIONS. It is controlled by platform_hpux_aCC.GNU. + +Mon Oct 22 15:50:35 2001 Balachandran Natarajan + + * THANKS: Added Chris Hughes name to the Hall of Fame + +Sun Oct 21 16:44:41 2001 Ossama Othman + + * tests/Proactor_Test.cpp (disable_signal): + + Fixed warnings regarding a method that "hid" virtual function + with the same name, in addition to unused argument warnings. + +Sun Oct 21 15:22:57 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Fixed warning about deprecated conversion of "const char *" to + "char *" exhibited by GCC 3.0.x builds. + +Sun Oct 21 12:50:39 2001 Douglas C. Schmidt + + * ace/LSOCK.cpp: The ACE_LSOCK::recv_handle() was returning success + without setting the I/O handle. Thanks to Rick Ohnemus + for reporting this. + + * ace/config-freebsd-pthread.h: Changed + #if (__FreeBSD_version > 430000) to + #if (__FreeBSD_version > 440000) to get ACE to work with FreeBSD 4.4. + Thanks to Gu Song for reporting this. + +Fri Oct 19 06:44:17 2001 Douglas C. Schmidt + + * examples/Reactor/WFMO_Reactor/test_window_messages.cpp: + Don't use a global Event_Handler object since this violates the + design rules for the ACE_Reactor. + +Sun Oct 21 13:39:27 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the Quoter example in + $TAO_ROOT/examples to the list of tests in the daily builds. + +Thu Oct 18 20:56:53 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Added no-op main() function for platforms that do not support + asynchronous IO. + +Thu Oct 18 22:46:09 2001 Balachandran Natarajan + + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: Fixed warnings in Sun CC and TRU 64 builds. + +Thu Oct 18 20:42:55 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Fixed Unicode build errors. + +Thu Oct 18 19:52:44 2001 Craig Rodrigues + + * ace/SString.h: clarify example in comments to ACE_Tokenize + so that constant strings are not passed in its constructor. + + * examples/OS/Process/process.cpp: do not pass constant strings + to ACE_Tokenize constructor. Thanks to + Werner Buchert and + Don Hinton . + +Wed Oct 17 23:56:45 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + * tests/Proactor_Test.dsp: + + Proactor test contributed by Alexander Libman + . + + * tests/tests.dsw: + + Added Proactor_Test project to the tests workspace. + +Wed Oct 17 18:59:53 2001 Christopher Kohlhoff + + * include/makeinclude/install.bor: + Borland makefile fix to ensure that, when doing the install + target, core executables are built correctly if they don't + already exist. + +Wed Oct 17 09:15:10 2001 Douglas C. Schmidt + + * ace/config-linux-common.h: Clarified that this file should + not be included directly! Thanks to Suresh N + for reporting this. + +Wed Oct 17 16:00:19 2001 Balachandran Natarajan + + * THANKS: Added Graeme Clark to the Hall of Fame. + +Wed Oct 17 15:49:20 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: + * ace/TP_Reactor.h: Added remove_handler () calls to the + TP_Reactor. Before this, the call on the reactor used to be + handled by the Select_Reactor's implementation. The + implementation has a problem. It tries to call handle_close () + (an upcall) as one of the calls after holding the token. This + was asking for trouble. This could lead to deadlocks as + mentioned in [BUG ID 1055]. + + The method in the TP_Reactor now calls remove_handler () on the + Select_Reactor (its base class) with a DONT_CALL flag. Then it + calls handle_close () on the Event_Handler if the user did not + pass in the DONT_CALL mask. This two step process would get + around the problem that was mentioned before. Thanks to Graeme + Clark for reporting the problem and + testing this fix. + + This should close [BUG ID 1055]. + +Wed Oct 17 10:40:17 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + + If errno is set to EWOULDBLOCK for the SSL_ERROR_SYSCALL case, + then continue the connection establishment loop. Do not return + right away. Fixes non-blocking connection establishment on AIX. + Thanks to Vladimir Chovanec for + providing this fix. + + * ace/SSL/SSL_SOCK_Stream.h (notify): + + Made this method protected. It isn't intended to be used + internally by the ACE_SSL_SOCK_Stream class. + +Wed Oct 17 12:15:15 2001 Chris Cleeland + + * ace/Select_Reactor_T.cpp (handle_error, check_handles): Add + vxworks to the ever-growing list of OSs which return + unpredictable values in errno when there's a bad file descriptor + in a select mask. [Bug 1058]. + + Thanks to Dave Arndt , Tad Hetke + , and Erik Johannes + for tracking down and providing this fix. + +Tue Oct 16 23:08:27 2001 Ossama Othman + + * ace/Svc_Conf.h (ACE_Svc_Conf_Param): + + Added a new ACE_Obstack attribute that is passed down to the + parser and scanner. This obviates the need for the global + pointer to the ACE_Obstack that was formally used, which in turn + avoids a race condition. + + (ace_obstack): + + No longer a need to maintain a global pointer to the ACE_Obstack + instance used during parsing/scanning. + + * ace/Svc_Conf.y: + * ace/Svc_Conf.l: + + Retrieve the Obstack from the parameter passed down to yyparse() + and yylex() instead of using the (now non-existent) global + instance. This is part of a race condition fix. + + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_l.cpp: + + Updated to pull in the changes made to the source files from + which these files were generated. + + * ace/Service_Config.cpp (process_directives_i): + + The global ACE_Obstack pointer used during each Service + Configurator parse has been removed. An ACE_Obstack instance is + now passed down to the parser and scanner in a + reentrant/thread-safe manner via the new ACE_Svc_Conf_Param + parameter. As such, there is no longer any need to maintain a + global pointer to the ACE_Obstack instance in use, nor is it + necessary to store/restore the previous value when performing + nested or parallel Service Configurator directive processing. + This fixes a race condition that was causing some memory + corruption when parsing Service Configurator directives in + parallel. + + Note that the ACE_Obstack is now instantiated on the stack + rather than the heap, thus improving Service Configurator + directive processing performance. + +Mon Oct 15 23:16:55 2001 Ossama Othman + + * ace/Service_Config.h (process_directives_i): + + Updated the signature of this method to accept a parameter that + will eventually passed to the parser and the scanner. + + * ace/Service_Config.cpp: + + No need to include "ace/Svc_Conf_Lexer_Guard.h" and + "ace/Object_Manager.h". + + (process_directives_i): + + Updated the signature of this method to accept a parameter that + will eventually passed to the parser and the scanner. + + Pass the "ACE_Svc_Conf_Param" parameter to the yyparse() call. + This is reentrant/thread-safe. + + Check the error count found in the "ACE_Svc_Conf_Param" object. + It's count is incremented in a thread-safe/reentrant manner. + + (process_directive, process_directives): + + The ACE_Svc_Conf_Lexer_Guard and its accompanying + synchronization has been moved to the generated scanner code. + This makes locking finer grained. Specifically, instead of + holding a lock for the duration of the scope within which + service configurator directive parsing and scanning is + performed (e.g. for the duration of the yyparse() call), the + lock is only held for the duration of the scope where service + configurator directive scanning occurs (i.e. the entire yylex() + call is synchronized). This is part of the core fix that + corrects a deadlock that occurred when activating an ACE_Task, + in conjunction with the singleton instance of the + ACE_Thread_Manager, during Service Object initialization. + [Bug 1036] + + * ace/Service_Config.i: + + Cosmetic update. + + * ace/Svc_Conf.h: + + Added declaration and method definitions for the + ACE_Svc_Conf_Param class. Instances of this class contain the + state used when parsing/scanning a given service configurator + file or service configurator directive. + + (ACE_SERVICE_DIRECTIVE_STACK_DEPTH): + + There is no longer any hard-coded limit on the maximum depth + nested service configurator directives may be processed. Only + process resource limits limit the maximum nesting depth. + + (ace_yyparse, ace_yylex): + + Updated the parser and lexer entry points to accept an + additional parameter, i.e. a pointer to an ACE_Svc_Conf_Param + object. + + (ace_yy_push_buffer, ace_yy_pop_buffer): + + Pass a pointer to the buffer that will be "switched" in our out + when processing nested service configurator directives those + that are processed in parallel. + + * ace/Svc_Conf.l: + + Removed array that implemented the service configurator + directive stack. The "stack" is now implemented using the + function call stack itself. Hence there is no hard-coded limit + to the stack size. + + Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE, + COLON, STAR}. Just return their corresponding symbolic integer + constants (e.g. ACE_COLON --> ':'). + + Increment error and line count in the ACE_Svc_Conf_Param object + passed to the yylex() function from yyparse(). This improves + reentrance/thread-safety when tracking error counts. + + (yy_push_buffer, yy_pop_buffer): + + Pass a pointer to the buffer that will be "switched" in our out + when processing nested service configurator directives those + that are processed in parallel. + + * ace/Svc_Conf.y: + + Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE, + COLON, STAR}. Just use their corresponding symbolic integer + constants (e.g. ACE_COLON --> ':'). + + Increment error and line count in the ACE_Svc_Conf_Param object + passed to the yylex() function from yyparse(). This improves + reentrance/thread-safety when tracking error counts. + + * ace/Svc_Conf_Lexer_Guard.h: + + Store a pointer the lexer buffer currently being scanned. + + * ace/Svc_Conf_Lexer_Guard.cpp: + + Updated constructor to accept a pointer to an ACE_Svc_Conf_Param + object. If the buffer in that object is zero, it will be + initialized. + + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_Tokens.h: + + Regenerated these files in order to pull in the updates made to + their corresponding source files (i.e. Svc_Conf.{l,y}). + +Mon Oct 15 11:26:39 2001 Steve Huston + + * examples/C++NPv2: New directory for examples in "C++ Network + Programming, Volume 2: Systematic Reuse with ACE and Frameworks" + Moved these changes to the new directory, and reverted the + C++NPv1 files to their ACE 5.2 state: + Sun Oct 14 17:05:14 2001 Douglas C. Schmidt + Tue Oct 9 07:46:20 2001 Douglas C. Schmidt + +Sun Oct 14 17:05:14 2001 Douglas C. Schmidt + + * examples/C++NPv1/Logging_Handler.{h,cpp}: Changed log_file_ from + a reference to a pointer so that it can be initialized + correctly. Thanks to Kitty for reporting this. + +Fri Oct 12 14:54:58 2001 Craig Rodrigues + + * ace/OS.i: + Remove extraneous check for macro ACE_HAS_WINSOCK2_GQOS, + which was breaking various builds under Windows. + Thanks to Jeff McNiel for pointing it out. + +Fri Oct 12 12:15:22 2001 Carlos O'Ryan + + * bin/nightlybuilds/builds.lst: + The QNX machine is no longer running that OS, plus attempts to + bring it back to life failed. The build is removed until + further notice. + +Thu Oct 11 17:52:32 2001 Priyanka Gontla + + * ace/SOCK_Dgram_Mcast.cpp: + Somehow the file didnt get committed yesterday. So, committing + the following change now. + + Wed Oct 10 16:56:18 2001 Priyanka Gontla + +Thu Oct 11 10:57:58 2001 Carlos O'Ryan + + * ace/RB_Tree.h: + * ace/RB_Tree.i: + * ace/RB_Tree.cpp: + Reverted to the 5.2 release state. The proposed changes were + breaking some builds, and they were not bug fixes in any case. + +Wed Oct 10 16:56:18 2001 Priyanka Gontla + + * ace/SOCK_Dgram_Mcast.cpp: + Reverted the following change as it ended up with some problems + for multicast services. + + Fri Oct 5 14:40:03 2001 Balachandran Natarajan + +Wed Oct 10 06:16:52 2001 Douglas C. Schmidt + + * ace/Activation_Queue.{h,cpp}: Added support for two ACE_Allocator that + will control how the message blocks and data blocks are + allocated. Thanks to Gil Rapaport + for contributing this. + + * examples/Reactor/WFMO_Reactor/test_apc.cpp (main): + * examples/Reactor/WFMO_Reactor/test_abandoned.cpp (main): Don't + use a global Event_Handler since this violates the design rules + for the ACE_Reactor. Thanks to Heping He + and Hartmut Quast + for reporting this and to Irfan for + suggesting where the problem arose. + +Tue Oct 9 07:46:20 2001 Douglas C. Schmidt + + * examples/C++NPv1/Logging_Handler.h: Added a new constructor to + class Logging_Handler that just takes an ACE_SOCK_Stream. We + need to use this in C++NPv2. + + * ace/Message_Queue_T.cpp (wait_not_full_cond): Thanks to Leo Kov + for reporting this. + + * ace/TTY_IO.cpp (control): Inserted some useful + ACE_OS::set_errno_to_last_error() calls. Also, for Win32 made + readtimeoutmsec == 0 cause no timeout, whereas readtimeoutmsec + == MAXDWORD causes infinite timeout. Thanks to Lars Steubesand + for reporting this. + +Mon Oct 8 20:19:44 2001 Nanbor Wang + + * examples/DLL/test_dll.cpp: There's no need to specify + ACE_DLL_SUFFIX as it prevent ACE_Lib_Find to figure out the + correct DLL name. + + The ACE_ERROR_RETURN macro store and reset the errno so there's + no need to use dll.error() with it. Changed to use "%p" to + display the error. + + Thanks to Heping He for reporting + the problem. + +Mon Oct 8 11:15:21 2001 Angelo Corsaro + + * ace/RB_Tree.h (class ACE_RB_Tree_Node): + * ace/RB_Tree.i: + + Changed access privilege on the operator new/delete to be + public, and added assertion in those method implementation to + make sure that wrong use of these method are promptly notified. + This changes should fix the problem that some compiling were + still having with RB_Trees. + +Sat Oct 06 23:06:41 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i, close): + + Removed the do/while(SSL_pending()) loop. Its introduction into + the code was a bit misguided. There is no need to flush the SSL + buffer before returning to the Reactor's event loop since the + code now sends a notification to the Reactor to force the + Reactor to invoke the event handler before waiting in the event + loop. This fixes some SSL protocol errors that manifested + during multithreaded SSL communication. [Bug 943] + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + It is no longer necessary to call SSL_accept()/connect() to + flush the SSL buffer before running the Reactor's event loop + since the Reactor is notified that it should call the + appropriate event handler before blocking on select() for + WaitForMultipleObjects(), for example. + + * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler): + + New methods to set the Reactor and event handler associated with + the ACE_SSL_SOCK_Stream. If each of these is set, then the + Reactor will be notified if data is still pending in the SSL + buffer. + + (~ACE_SSL_SOCK_Stream): + + Uninlined the destructor. There is no need for it to be + inlined, and doing so only caused unnecessary code bloat. + + * ace/SSL/SSL_SOCK_Stream.h (notify, reactor, handler): + + Added these new method declarations, in addition to the + corresponding attributes. + + Updated documentation. + + * ace/SSL/SSL_SOCK_Stream.i (notify): + + Method that pushes the event handler on to the Reactor's + notification pipe when necessary. Invoked by recv_i() and + send_i(). + + * ace/SSL/SSL_SOCK_Acceptor.h: + * ace/SSL/SSL_SOCK_Connector.h: + * ace/SSL/SSL_Accept_Handler.h: + * ace/SSL/SSL_Connect_Handler.h: + + Updated documentation. + +Sat Oct 6 16:04:29 2001 Angelo Corsaro + + * ace/RB_Tree.h: + * ace/RB_Tree.i: + + The operator new and delete were declared to be No-Op but were + not implemented as such. This was breaking some builds. Now the + operator are declared as private and they also have a no-op + implementation. This should solve some linking error that were + occurring. + +Sat Oct 6 11:17:22 2001 Balachandran Natarajan + + * THANKS: Added Adrian Mercieca to the hallf of fame. + +Fri Oct 05 18:30:59 2001 Irfan Pyarali + + * ace/RW_Process_Mutex.cpp: Added inclusion ACE.h and fixed member + initialization. + +Fri Oct 5 18:16:53 2001 Balachandran Natarajan + + * ace/SString.h: + * ace/SString.cpp: Changes the usage of ostream to + ACE_OSTREAM_TYPE. Thanks to Russ Noseworthy for letting us + know. + +Thu Oct 4 07:10:01 2001 Douglas C. Schmidt + + * ace/RB_Tree.*: Added support for using the "ACE_Allocator" parameters + to manage memory. Thanks to Airat A. Sadreev + for reporting contributing this. + +Wed Oct 3 07:20:06 2001 Douglas C. Schmidt + + * ace/RW_Process_Mutex.{h,cpp}: Added the ability to create a + unique name if the user doesn't supply one. Thanks to Tom + Wagner for suggesting this. + + * ace/Synch.h: Clarified that the timed wait capabilities of + ACE_Semaphore only work on Solaris if ACE_HAS_PTHREAD is enabled + *and* ACE_HAS_POSIX_SEM/ACE_HAS_STHREAD are disabled. Thanks to + Bonifides Bautista for reporting this. + +Fri Oct 5 12:48:48 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (close): + + Reset the SSL object to allow another connection to be made + using the existing ACE_SSL_SOCK_Stream instance. This prevents + the previous SSL session state from being associated with the + new SSL session/connection. Thanks to Vladimir Chovanec + for pointing out this problem and + suggesting a course of action. + +Fri Oct 5 14:40:03 2001 Balachandran Natarajan + + * ace/SOCK_Dgram_Mcast.cpp (open): Removed the #if defined (linux) + from the code. Looks like this had to be removed to get it + working for RTI under Linux. The other ChangeLog entries that + this change is concerned with are "Sat Feb 17 17:23:46 2001 + Darrell Brunsch " and "Fri Jan 26 11:18:15 2001 + Douglas C. Schmidt". Looks like the patch provided by Keith + Nicewarner is being reverted. I remember + a communication from Keith which seemed to hint that this may + not be required. + + Thanks to Russ Noseworthy for suggesting this. + +Fri Oct 5 14:04:39 2001 Balachandran Natarajan + + * THANKS: Added Hagen Ulrich to the Hall of Fame. + +Fri Oct 5 13:55:02 2001 Balachandran Natarajan + + * ace/Makefile: Removed the SUPPRESS_DASH_G option. Not really + sure where it is used. Further, added a tab to the place where + rules for CHORUS are set. This should fix BUGID 1049. Thanks to + Hagen Ulrich and Dr.David Levine for + reporting and verifying the fix. + +Fri Oct 05 05:56:50 2001 Balachandran + + * ACE version 5.2 released. + +Thu Oct 4 17:38:21 2001 Steve Huston + + * ace/Synch.h: Added some comments to explain the rationale for + the different return values from the blocking and timed + versions of ACE_Null_Semaphore::acquire(). Thanks to Doug + Schmidt for explaining this. + +Thu Oct 4 17:27:39 2001 Steve Huston + + * examples/C++NPv1/Logging_Handler.cpp (recv_log_record): Insure that + the payload message block is properly aligned for any CDR + extraction. Many thanks to Bala for noticing this problem and + sending code for the fix. + +Thu Oct 4 17:08:39 2001 Steve Huston + + * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: + In prepare(), call ACE_Process_Options::command_line() rather + than ACE_Process_Options::process_name() to set the program + path for the child process. + +Thu Oct 4 13:18:37 2001 Steve Huston + + * examples/C++NPv1/Logging_Handler.cpp: Use a ACE_Message_Block, + rather than hijacking a CDR block, to read the payload into. + +Thu Oct 4 10:14:34 2001 Balachandran Natarajan + + * THANKS: Added Donald Acton to the Hall of Fame. + +Thu Oct 4 06:39:20 2001 Balachandran Natarajan + + * ace/config-sunos5.5.h: Added ACE_LACKS_MKSTEMP as SunOS 5.5 does + not support mkstemp (). + + * ace/config-sunos5.6.h: Undefined ACE_LACKS_MKSTEMP as Sun 5.6 + and above support it. + + Thanks to Don Hinton for reporting this + problem and Chad Elliott for testing this out on a Sun OS 5.5 + box. + +Wed Oct 3 16:37:41 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp (read_1): Reverted this change "Wed Oct 3 + 15:05:43 2001 Jeff Parsons ". This + change is alone not enough to fix the problem that Brad + reported. The sample program for the text needs to be fixed to + get it working right. + +Wed Oct 3 15:05:43 2001 Jeff Parsons + + * ace/CDR_Stream.cpp (read_1); + + Reverted changed made in + + Fri Aug 17 16:56:16 2001 Jeff Parsons + + to read_1(). A similar change made in several other methods is + ok, but in this case bytes can be copied into the input CDR + stream without changing wr_ptr, so the check will fail + unnecessarily. Thanks to Brad Hoskins + for pointing this out. + +Wed Oct 2 12:18:37 2001 Steve Huston + + * examples/C++NPv1/Logging_Server.cpp: Fixed spelling error. + * examples/C++NPv1/Logging_Handler.cpp: Comment length adjustment. + +Tue Oct 2 21:52:31 2001 Steve Huston + + * examples/C++NPv1/Logging_Client.cpp: Reverted this: + Mon Oct 1 18:27:41 2001 Steve Huston + +Tue Oct 2 19:52:57 2001 Balachandran Natarajan + + * Makefile: Removed some of the files that no longer exist in the + repository. The inclusion of these files in the Makefile added + noise during the beta cutting process. + +Tue Oct 02 15:34:49 2001 Carlos O'Ryan + + * etc/tao_cosevent.doxygen: + * etc/tao_cosnotification.doxygen: + Fixed typos in the tag file names. + +Tue Oct 2 15:52:27 2001 Balachandran Natarajan + + * THANKS: Added Sunny Leung to the Hall of Fame. + +Tue Oct 2 15:33:36 2001 Balachandran Natarajan + + * THANKS: Removed one instance of Peter Phillips + from the Hall of Fame. + +Tue Oct 2 15:00:37 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp (clone_from): Copied the GIOP major and minor + versions from the incoming CDR stream. Thanks to Sunny Leung + for reporting this. This closes bugzilla + #1043. + +Tue Oct 2 09:45:39 2001 Steve Huston + + * tests/libDLL_Test.icc: + * tests/libService_Config_DLL.icc: Add link(exportAll) to the link + options to export the entrypoints needed for the tests. + +Mon Oct 1 20:04:14 2001 Priyanka Gontla + + * THANKS: + Added Tushar Nair to the THANKS file. + +Mon Oct 1 18:06:48 2001 Priyanka Gontla + + * ace/Object_Manager.cpp (ACE_UnhandledExceptionFilter): + Removed the un-needed #if 0's. Left them before as a safety + measure (in case something doesnt work) and forgot to remove + them later. + + * ace/Log_Msg.cpp (instance): + Fixed the seg faults that are raised when ace is compiled with + ACE_NTRACE=0 on SunOS. Added a check before locking and + releasing a lock. + + Thanks to Tushar Nair for reporting the + problem and for providing a fix. + +Mon Oct 1 18:27:41 2001 Steve Huston + + * examples/C++NPv1/Logging_Client.cpp: Remove the third (optional) + arg from getline(). Using a char literal without further + qualification causes confusion in Unicode builds. + +Mon Oct 1 14:44:13 2001 Ossama Othman + + * ace/SSL/SSL_Context.cpp (ssl_library_init): + + Initialize the locking callbacks in the crypto library before + initializing the OpenSSL library. OpenSSL may require the + locking callbacks to be initialized before its own + initialization. + + * ace/SSL/SSL_Context.cpp (ssl_library_fini): + + Perform crypto library resource cleanup before reclaiming the + locks used by the locking callbacks. Crypto library resource + cleanup makes use of the locking callbacks. + +Mon Oct 1 15:19:11 2001 Douglas C. Schmidt + + * examples/C++NPv1/README: Added a section that illustrates the + mapping of chapters onto files in the directory. + +Mon Oct 1 12:58:57 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp (handle_socket_events): A fix for the problem + that started showing up this time is like this. One of the + threads was dispatching an upcall. In the intermediate time the + Reactor woke up another thread to close the handler, remember + that this is possible with the TP_Reactor if the application + resumes the handles (the way TAO does that). Now when the thread + that that dispatched the upcall returned it tries to invoke a + method on the already closed handle. To prevent that from + happening we make an extra check to see whether the handle + associated with the handler is still available in the internal + map of the Reactor. As this check is done in the return path of + the thread this should have less performance impact. This is + another reason why we should have #1031 in place ASAP. + +Mon Oct 1 12:23:57 2001 Balachandran Natarajan + + * bin/nightlybuilds/builds.lst (WEB): Changed the name of the + Sun's EGCS build. We have not been using EGCS but 2.95.x for a + long time now. + +Mon Oct 1 10:46:15 2001 Balachandran Natarajan + + * bin/PerlACE/Run_Test.pm (check_n_cleanup_files): Removed the + word "ERROR" when files are left behind. This was creating noise + in the daily builds. We have captured the problem in the + bugzilla with id #1014. After 1.2 goes out, if someone is + looking at this problem again we need to add this back so that + our daily builds can pick them up. + +Sun Sep 30 17:25:33 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): + + Reset errno to prevent previous values (e.g. EWOULDBLOCK) from + being associated with a fatal SSL error (e.g. an alert). + +Sun Sep 30 16:52:22 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_shutdown): + + Return the "retval" variable instead of always returning -1. + The actual return value may not always be -1. Thanks to Alain + Totouom for providing this fix. + + * THANKS: + + Added Alain to the list of contributors. + +Sun Sep 30 09:13:04 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + + Made reactor mask constant to emphasize the fact that it is + indeed a constant. + +Sat Sep 29 08:07:07 2001 Douglas C. Schmidt + + * ace/Configuration.{h,cpp}: Changed "allocator" to "alloc" to + avoid bugs with MSVC++ 5.0. Thanks to Munagala Ramanath + for reporting this. + + * ACE-INSTALL.html: Yet more improvements courtesy of Chris + Kohloff. + +Fri Sep 28 23:38:07 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + + Cleaned up the code. + + Do not attempt to verify the X.509 certificate. Only the + application knows how best to do that. + + * ace/SSL/SSL_Context.cpp (ssl_library_init): + + Fixed some Unicode problems. Wrap strings within an ACE_TEXT + macro. + + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i: + + Corrected some comments. + + * ace/SSL/SSL_SOCK_Stream.h (send_n, recv_n): + + Added a "bytes transferred" pointer parameter. This allows the + amount of bytes transferred to returned via this parameter, thus + matching the semantics of their ACE_SOCK_Stream counterparts. + + * ace/SSL/SSL_SOCK_Stream.cpp (send): + + Do not block attempt a timed send() if data is available in + OpenSSL's internal buffer. This prevents a condition where + needlessly blocking on select() would occur. A similar fix for + recv() was made earlier. See Fri Aug 24 16:54:02 2001 Ossama + Othman for details. + + (send_n, recv_n): + + If the "bytes transferred" pointer parameter is non-zero then + return the amounts of bytes transferred through it. This makes + these methods better match the semantics of their + ACE_SOCK_Stream counterparts. + +Fri Sep 28 19:24:51 2001 Steve Huston + + * ace/config-hpux-11.00.h: Moved the definitions for ACE_HAS_WCHAR + and ACE_HAS_XPG4_MULTIBYTE_CHAR from the compiler-independent + section to the aC++ section. (at least) gcc 3.0 distributed from + HP can't handle compiling wide char stuff... it refers to + wctype.h, only available in aC++. + +Fri Sep 28 12:46:25 2001 Ossama Othman + + * ace/SSL/SSL_Context.cpp (report_error): + + Don't bother displaying an error message if the error code is + zero (i.e. no error). + +Fri Sep 28 12:31:39 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + Transfer ownership of the Reactor to the previous owner for the + SSL_ERROR_ZERO_RETURN case. Thanks to Vladimir Chovanec + for pointing out this problem. + + Remove the SSL event handler from the reactor for the + SSL_ERROR_ZERO_RETURN case. Previously, this method returned + without removing it, resulting in a seg fault. + + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + + Ported the updates made to the ssl_accept() counterpart to this + method. + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i (send_i): + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + + In the event a SSL_ERROR_SYSCALL error condition occurs, call + ACE_OS::set_errno_to_last_error() to make sure errno is updated + appropriately since OpenSSL does not do that. Fixes some + "misbehaving" Reactor interactions. Thanks to Andrew Finnell + for tracking down the problem + and suggesting these fixes. + +Fri Sep 28 09:37:28 2001 Ossama Othman + + * ace/SSL/SSL_Context.h (report_error): + * ace/SSL/SSL_Context.cpp (report_error): + + New SSL error reporting functions that use the ACE_Log_Msg + facilities to dump error information. + + * ace/SSL/SSL_Context.cpp (set_mode): + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + + Use the new report_error() static method to display error + information instead of OpenSSL's ERR_print_error_fp(). + + * ace/SSL/SSL_SOCK_Connector.cpp: + + Include 'ace/Log_Msg.h' to pull ACE_ERROR macro definitions. + Fixes compile-time problems on Tru64. Thanks to Martin + Krumpolec for providing this fix. [Bug 1034] + + (ACE_SSL_SOCK_Connector): + + Wrap format specifier string in ACE_ERROR call with ACE_TEXT. + Fixes mismatched Unicode/non-unicode strings. + +Fri Sep 28 06:17:27 2001 Douglas C. Schmidt + + * ace/SPIPE_Acceptor.{h,cpp}: Fixed the use of "char" for + "already_connected_" to be "int". Thanks to Johnny Willemsen + for reporting this. + + * ACE-INSTALL.html: Improved the installation instructions for BCB 4/5. + Thanks to Chris Kohloff for contributing this and to + Jan Kalin for motivating this. + + * ace/TTY_IO.cpp: Fixed numerous bugs in the control() method. + Thanks to Airat A. Sadreev for reporting this. + + * ace/TTY_IO.h: Add a new field for Win32. Thanks to + Airat A. Sadreev for reporting this. + +Thu Sep 27 06:12:21 2001 Douglas C. Schmidt + + * ace/config-win32.h: Added a special-case for Borland C++ Builder, + which must include vcl.h before windows.h. Thanks to Chris + Kohloff for reporting this. This fixes Bug ID 899 for the time + being. + + * ace/Module.cpp (ACE_Module): The line + + this->name (""); + + was be replaced with + + this->name (ACE_TEXT("")); + + Thanks to Airat A. Sadreev for + reporting this. This fixes bug id 1041. + +Thu Sep 27 13:09:19 2001 Bala + + * ACE version 5.1.21 released. + +Tue Sep 25 16:12:14 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + Use ACE_OS::set_errno_to_last_error() set errno instead of doing + so manually to get around broken compilers that reset the last + error when assigning to errno. Thanks to Chris Kohloff for + pointing out the problem and suggesting this fix. + +Tue Sep 25 13:00:37 2001 Nanbor Wang + + * ace/Obstack.h: Fixed a typo when declaring ACE_Obstack + exportable. I mistakenly used the underlying + ACE_EXPORT_SINGLETON_DECLARATION macro directly. + ACE_SINGLETON_DECLARATION is the right macro to use here. + Thanks to Martin Krumpolec for reporting + the bug. + +Tue Sep 25 09:12:28 2001 Andrew Finnell + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + On MS Windows, OpenSSL does not store the last error in errno so + explicitly do so. This corrects problems where a server is + unaware that a client has forcefully disconnected. + +Tue Sep 25 00:01:59 2001 Irfan Pyarali + + * ace/Service_Repository.cpp (instance): There are three stages of + the Object Manager: (a) starting up; (b) running; (c) shutdown. + ACE_Service_Repository::instance() was not creating a new + instance in (a) and (c). It was changed to allow creation (a). + +Mon Sep 24 01:55:29 2001 Ossama Othman + + * bin/auto_run_tests.lst: + + Added TAO's PICurrent test to the list of automated regression + tests. + +Sun Sep 23 19:28:06 2001 Nanbor Wang + + * ace/Reactor.h (ACE_Reactor): Fixed comments for + and . Both + methods work on an instance of reactor, not the global singleton + reactor. Thanks to Doug for noticing this. + +Sun Sep 23 10:02:59 2001 Balachandran Natarajan + + * ace/High_Res_Timer.h: Removed a question mark "?", in a line + which read "or sometimes 3.579 Mhz??". This seems to remove the + warning in VXWORKS builds. I have no clue about the problem that + VXWORKS compiler sees. It took only more than an hour to figure + this out. :(. + +Sat Sep 22 08:59:24 2001 Douglas C. Schmidt + + * ace/Service_Manager.cpp (handle_input): Added some logic to + strip off newlines and carriage returns for Windows platforms. + Thanks to Kyle Brost for contributing + this. + +Sat Sep 22 12:28:21 2001 Ossama Othman + + * ace/SSL/ACE_SSL_LIB.dsp: + + Corrected code generation settings to use the multi-threaded DLL + version of the run-time library. Corrects "legacy" build + problems. + +Sat Sep 22 08:59:24 2001 Douglas C. Schmidt + + * ace/High_Res_Timer.{h,i,cpp}: Added comments to explain how + to configure the timers properly on various platforms. Thanks + to Alain Decamps for reporting this. + + * ace/OS.i (ACE_Flow_Spec): Added a check for ACE_HAS_WINSOCK2_GQOS + so that things will compile properly on MinGW32. Thanks to Jeff + McNiel for reporting this. + +Fri Sep 21 15:54:55 2001 Douglas C. Schmidt + + * ace/OS_Dirent.cpp: Fixed all the allocations so they work properly + when used with ACE_TCHAR! Thanks to Olof Lindfors + . + +Tue Sep 18 06:25:22 2001 Douglas C. Schmidt + + * ace/*Reactor*: Changed all uses of "delta_time" to "delay_time". + Thanks to Johnny Willemsen for reporting this. + +Sun Sep 16 11:53:38 2001 Douglas C. Schmidt + + * ace/Connector.cpp (handle_output): Fixed the comment to be + ACE_WIN32. Thanks to Kobi Cohen-Arazi for + reporting this. + +Fri Sep 21 17:11:52 2001 Balachandran Natarajan + + * ace/Message_Block.h: Tried rewording some comments in the + ACE_Message_Block. Thanks to Tom Wagner for + suggesting this. + + * THANKS: Added Tom Wagner to the Hall of + Fame. + +Fri Sep 21 22:11:53 2001 Ossama Othman + + * ace/SSL/ACE_SSL_LIB.dsp: + + Removed hardcoded user-specific include paths, and user-specific + preprocessor macro definitions. + +Thu Sep 20 18:15:49 2001 Steve Huston + + * tests/Config_Test.cpp: Added some more tests to verify correct + string value reset and enumerate values/sections. + +Thu Sep 20 12:29:09 2001 Ossama Othman + + * ace/SSL/ACE_SSL_LIB.dsp: + * ace/SSL/ACE_SSL_LIB.dsw: + + New static build MSVC++ project and workspace files for the + ACE_SSL library contributed by Jonathan Reis . + [Bug 1032] + +Thu Sep 20 12:16:13 2001 Ossama Othman + + * ace/SSL/SSL_SOCK.cpp (enable, disable): + + Removed unreachable "return" statements. [Bug 1033] + + * ace/SSL/SSL_SOCK_Stream.i (ACE_SSL_SOCK_Stream): + * ace/SSL/SSL_SOCK_Stream.cpp: + + Moved constructor to the ".cpp" file since to prevent inclusion + of `ace/Log_Msg.h' in `SSL_SOCK_Stream.h'. This fixes problems + with some platforms needing the Log_Msg include to pull in the + ACE_ERROR macros without needlessly increasing inter-header + dependencies and inclusions. [Bug 1034] + +Thu Sep 20 14:44:29 2001 Steve Huston + + * ace/Process.cpp (ACE_Process_Options): Moved avoid_zombies_ + initialization outside the !Win32 section. Thanks to Johnny + Willemsen for this fix. + +Thu Sep 20 06:28:50 2001 Chad Elliott + + * ace/config-hpux-11.00.h: + + Reverting the change from "Wed Aug 29 15:32:10 2001 Douglas C. + Schmidt ". HP-UX 11.00 does + not actually support pread/pwrite. + +Wed Sep 19 16:56:02 2001 Irfan Pyarali + + * ace/OS.h (THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM): Added + definitions for THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM on + platforms that do not support threads. + +Wed Sep 19 16:54:04 2001 Jeff Parsons + + * ace/Containers_T.cpp: + + In copy constructor for ACE_Double_Linked_List, added line to + copy the size of the rhs to the lhs. The new list was ending + up with a garbage value for its size. + +Wed Sep 19 14:15:08 2001 Nanbor Wang + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: Enabled generation of debug info even for + release configurations. Thanks to Jonathan Reis + for suggesting this. + +Wed Sep 19 10:23:06 2001 Carlos O'Ryan + + * html/index.html: + Add couple of missing links to the RT-CORBA components + +Wed Sep 19 12:00:04 2001 Johnny Willemsen + + * ACE-INSTALL.html: + Added BCB5 to some places as supported/used compiler + + * ace/Future.h: + * ace/Test_and_Set.h: + Removed the ACE_EXPORT from the templates ACE_Future_Holder and + ACE_Test_and_Set + + * ace/Service_Config.{h,cpp}: + Changed the type of the members be_a_daemon_ and no_static_svcs_ + from char to int + +Tue Sep 18 13:57:36 2001 Carlos O'Ryan + + * */Makefile: + * */Makefile.*: + Updated dependencies, some of the paths were absolute leading to + ambiguities in parallel builds. + +Tue Sep 18 12:18:26 2001 Carlos O'Ryan + + * bin/footprint_stats.sh: + Fixed bug in footprint charts generation. + +Tue Sep 18 10:50:15 2001 Carlos O'Ryan + + * html/index.html: + Add COS Event and COS Notification services to the index. + +Mon Sep 17 19:00:00 2001 Irfan Pyarali + + * ace/OS.h: + + - THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM were not defined + for NT. Added them. + + - Moved the following definitions of VxWorks around such + that these defines are available even when PACE is not + used. + + THR_INHERIT_SCHED + THR_EXPLICIT_SCHED + THR_SCHED_IO + THR_SCOPE_SYSTEM + THR_SCOPE_PROCESS + + * ace/OS.cpp: LinuxThreads do not have support for + PTHREAD_SCOPE_PROCESS; only PTHREAD_SCOPE_SYSTEM is supported. + Therefore, PTHREAD_SCOPE_PROCESS is ignored when setting the + thread scheduling scope. + + * ace/Sample_History.cpp: Added accessors for and + . + + * bin/auto_run_tests.lst: Added new RTCORBA tests. Removed + Minimum CORBA dependency on these tests. + +Mon Sep 17 13:49:07 2001 Carlos O'Ryan + + * etc/tao_cosevent.doxygen: + * etc/tao_cosnotification.doxygen: + Add new Doxygen files for the Notification and COS Event + Services + + * bin/generate_doxygen.pl: + Add new doxygen files to the automatically generated + documentation. + +Mon Sep 17 11:36:54 2001 Balachandran Natarajan + + * tests/run_tests.lst: This is the script used by the shell + script in that directory. As the name is confusing this is being + moved as a new file. + + * tests/run_tests_remote.lst: Renamed the run_tests.lst as + run_tests_shell.lst. This is invoked by run_tests.sh + + * tests/run_tests.sh: Renamed as a new file. + + * tests/run_tests_remote.sh: Renamed the file run_tests.sh as this + one. This script can be used to run tests remotely on a + CHORUS/ClassiX/MVME targets. Further this can also be used to + run tests on platforms that dont support perl or do not have + perl. + +Sun Sep 16 11:19:01 2001 Balachandran + + * ACE version 5.1.20 released. + +Sat Sep 15 16:58:08 2001 Balachandran Natarajan + + * tests/High_Res_Timer_Test.cpp: Fixed compile problem with Sun CC + 4.2. + +Fri Sep 14 05:28:13 2001 Douglas C. Schmidt + + * THANKS: We now have over 1,300 contributors to ACE+TAO! + + * ace/Basic_Types.{h,i}: Added "const" to various operators and + methods. Thanks to Alain Decamps for reporting this. + +Thu Sep 13 11:02:41 2001 Douglas C. Schmidt + + * ace/Singleton.cpp: If we're not compiling with threading enabled, + don't call the get_singleton_lock() code. Thanks to Charles + Frasch for contributing this. + +Tue Sep 11 06:23:08 2001 Douglas C. Schmidt + + * ace/Array_Base.h: Changed current_ from u_int to size_t. Thanks + to Johnny Willemsen for reporting this. + +Fri Sep 14 17:18:37 2001 Steve Huston + + * tests/High_Res_Timer_Test.cpp (check_micro_nano): If the + nanointerval is 0, change it to 1 to prevent divide-by-zero. + +Fri Sep 14 17:02:39 2001 Steve Huston + + * tests/High_Res_Timer_Test.cpp: Replaced some (u_int) casts with + ACE_U64_TO_U32, which is correct. Thanks to Alain Decamps, yet + again!, for this fix. + +Fri Sep 14 11:39:03 2001 Balachandran Natarajan + + * THANKS: Added Mahesh Varadarajan and Kevin Clien to the Hall of + Fame. + +Thu Sep 13 22:43:34 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the new Cache_Growth_Test to the + daily tests. + +Thu Sep 13 20:38:44 2001 Nanbor Wang + + * ace/Thread_Manager.h (ACE_Thread_Manager): Changed the default + argument for the constructor from 0 to + ACE_DEFAULT_THREAD_MANAGER_PREALLOC. Thanks to Doug for + pointing this out. + + Added better documentation to explain the purpose of each + argument in ACE_Thread_Manager's constructor. Thanks to Nick + Pratt for motivating the change. + +Thu Sep 13 13:38:41 2001 Steve Huston + + * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds), + elapsed_time_incr (ACE_hrtime_t&nanoseconds): Instead of using + "nanoseconds >>= 10", use "nanoseconds = nanoseconds >> 10" to + work around a Borland C++Builder bug. Thanks very much to + Johnny Willemsen, Christopher Kohlhoff, and Alain Decamps + for solving this problem. + +Thu Sep 13 13:33:29 2001 Steve Huston + + * tests/Service_Config_Test.cpp: Added #include "ace/Log_Msg.h". + This was probably to get AIX to build clean, but it's been a + while. + +Thu Sep 13 12:04:04 2001 Balachandran Natarajan + + * THANKS: Added Werner Buchert to the Hall of Fame. + +Wed Sep 12 15:10:41 2001 Steve Huston + + * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds), + elapsed_time_incr (ACE_hrtime_t&nanoseconds): Changes to account + for very fast clocks (> 1GHz). Thank you to Derek Dominish + and Alain Decamps + for identifying the problem and coming + up with a good solution. This fixes Bugzilla #1024 (how + appropriate! ;-) + + * ace/High_Res_Timer.i (elapsed_microseconds (ACE_hrtime_t &usecs): + More adjustment to the Win32 scale factor adjusting. Thanks (again!) + to Alain Decamps for identifying and + supplying a fix for this. This fixes Bugzilla #948 (again). + +Wed Sep 12 14:33:29 2001 Steve Huston + + * tests/High_Res_Timer_Test.cpp: Incorporated some additional tests + for usec/nsec sanity checks on the calculated ACE_High_Res_Timer + values. Thank you very much to Alain Decamps + for this test. + +Tue Sep 11 12:40:01 2001 Balachandran Natarajan + + * Terror unleashed. The World Trade Center and the Pentagon + attacked today. Looks like there could be lots of loss to + precious lives. This is too horrible. We convey our condolences + to the bereaved families. God save this world. + +Tue Sep 11 06:41:31 2001 Balachandran Natarajan + + * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: Fixed a + typo. This should fix most of the errors in the scoreboard. + +Mon Sep 10 18:59:24 2001 Douglas C. Schmidt + + * apps/Gateway/Peer/Peer.cpp (nonblk_put): + * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (nonblk_put): + Reverted Bala's changes below since the original code was + correct. Also, added comments to clarify things to prevent + confusion in the future. + +Mon Sep 10 17:31:11 2001 Balachandran Natarajan + + * ACE-INSTALL.html: Added a new platform to the list. + +Mon Sep 10 12:54:28 2001 Balachandran Natarajan + + * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: + Changed the condition that checks for EWOULDBLOCK after a + send. It was erroneously written. Thanks to Nick Pratt + for pointing this out. + +Mon Sep 10 12:36:07 2001 Balachandran Natarajan + + * apps/Gateway/Peer/Peer.cpp (nonblk_put): Changed the condition + that checks for EWOULDBLOCK after a send. It was erroneously + written. Thanks to Nick Pratt for + pointing this out. + +Mon Sep 10 08:17:08 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Will not run the File_IO test in the + Minimum CORBA configuration. + +Mon Sep 10 08:05:39 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Prevented the DLL_ORB test from running + in static builds. + +Sun Sep 9 10:20:59 2001 Balachandran Natarajan + + * */Makefile: Updated dependencies. + +Sun Sep 9 08:43:02 2001 Balachandran Natarajan + + * ace/Handle_Set.i: Added a check in set_bit () and clr_bit () for + ACE_INVALID_HANDLE. If we pass a ACE_INVALID_HANDLE we were + crashing which is not good and hence the fix. + +Sun Sep 9 08:28:52 2001 Balachandran Natarajan + + * ace/Reactor_Impl.h: + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_Base.cpp (is_dispatchable): Added a new + method. This method, just figures out whether the buffer has any + dispatchable info or not. + + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp: Added the above method in the WFMO + Reactor. + + * ace/TP_Reactor.cpp: The handle_notify_events () method now + checks whether the buffer it has read is dispatchable or not. If + it is then it gives up the token to make an upcall. Else, it + just sits around to remove messages of the pipe, till it find + one with a dispatchable info. The fix was necessary so that + wake-up calls that are unanswered are removed of the + pipe. Unanswered wakeup calls were filling up the pipe and they + were blocking some application from writing further to the + pipe. This should be in all probability be the final fix to the + Reactor. + +Sat Sep 8 09:34:52 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Fixed a typo that was giving + compile errors in VXWORKS builds. + +Fri Sep 7 16:40:37 2001 Priyanka Gontla + + * ace/OS.h: + Added an if-def case for IP_MULTICAST_TTL too. + +Fri Sep 7 17:09:04 2001 Balachandran Natarajan + + * tests/Thread_Pool_Reactor_Resume_Test.cpp: Initialised the lock + to null in the constrcutor before allocating memory for + it. This was done to remove the ABW errors in + purify. This should remove the problem that we see with this + test in our daily builds with SunCC 4.2. + +Fri Sep 7 15:51:48 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Included Auto_Ptr.h. + +Fri Sep 07 15:29:37 2001 Yamuna Krishnamurthy + + * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp: + * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp:: + * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp: + + * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp: + * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp:: + * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp: + + * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp: + * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp: + * examples/QOS/Simple/Fill_ACE_QoS.cpp: + + Fixed compile errors. + +Fri Sep 7 14:17:41 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Do not clear the notify handle bit when + trying to dispatch notify calls. This shoudl fix the long + pending problems with TRU 64 builds. + +Fri Sep 07 12:12:39 2001 Steve Huston + + * examples/C++NPv1/Iterative_Logging_Server.dsp: + * examples/C++NPv1/Logging_Client.dsp: + * examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp: + * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp: + * examples/C++NPv1/Reactive_Logging_Server.dsp: + * examples/C++NPv1/Reactive_Logging_Server_Ex.dsp: + * examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp: + Use relative paths to include and library files rather than + $(ACE_ROOT). Makes it easier to use in place regardless of + ACE version. + + * examples/C++NPv1/Logging_Client.cpp: Fixed scoping of the getline() + method call. + +Thu Sep 6 21:14:05 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Changed the usage of auto_ptr + <> to ACE_Auto_Basic_Ptr<>. Thanks to Carlos O'Ryan for this + suggestion. + +Thu Sep 06 18:42:39 2001 Steve Huston + + * examples/C++NPv1: New directory that contains all of the example + code for Doug/my book, C++ Network Programming, Vol 1. + +Thu Sep 6 12:01:15 2001 Priyanka Gontla + + * ace/OS.h: + Added a if-def case for IP_MULTICAST_IF. Seems like it is not + defined in some of the OS versions. + +Thu Sep 06 12:36:43 2001 Yamuna Krishnamurthy + + * ace/OS.h: + * ace/OS.i: + * ace/QoS/QoS_Session_Impl.cpp: + * ace/QoS/QoS_Session.h: + + Fixed compile errors. + +Thu Sep 6 10:24:15 2001 Ossama Othman + + * ace/Acceptor.cpp (accept_svc_handler): + * ace/Strategies_T.cpp (accept_svc_handler): + + Do not close and reopen the peer acceptor on failed attempts to + accept a connection. Several problems were fixed by removing + this code: + + - A race condition existed where another thread or process + could acquire the port that the peer acceptor was + listening on before it was closed. Note that it is not + enough to attempt to synchronize this code with a lock + since an external process could still acquire the port. + + - If the port in the peer acceptor (assuming it is an + ACE_INET_Addr based one) is the wildcard port (zero), then + there is no guarantee that the acceptor will be opened on + the same port upon which it is was previously listening. + In such a case, IORs generated by TAO (for example) can be + rendered invalid since the addressing information embedded + in those IORs will no longer contain the actual port to + connect to when making invocations. [Bug 962] + + - The above two problems actually introduced a + denial-of-service attack vulnerability (now closed by this + fix) since it was relatively easy to force a failed + connection attempt, which would then cause the peer + acceptor to be reopened on potentially a different port, + or to shutdown completely if reopening failed. + + * ace/SSL/SSL_SOCK_Acceptor.i (close): + + Invalidate the handle stored within the ACE_SSL_SOCK_Acceptor + instance. Corrects problems arising from attempts to use a + listening socket that has been shut down. + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + Perform an OpenSSL SSL_accept() in case OpenSSL buffered data + that must be handled before entering the Reactor event loop used + to complete a non-blocking SSL passive connection. + + If the OpenSSL error status is SSL_ERROR_ZERO_RETURN shut down + the partially initialized SSL stream/session since the peer has + itself shut down. + +Thu Sep 6 11:00:46 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: The timer events are not included as a part + of number of active handles from wait_for_multiple_events + (). The check for event_count > 0 before processing timer events + was wrong. Removed the check. Thanks to Chad Elliott for + pointing this out. + + Further did some cosmetic changes like adding comments, removing + comments that was not valid etc. + +Thu Sep 6 07:50:56 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: The AMI buffering test should not be run + Single threaded builds. + +Thu Sep 6 02:30:14 2001 Christopher Kohlhoff + + * examples/Export/Makefile.bor: + * examples/Export/export_dll.bor: + * examples/Export/test.bor: + * examples/Export/dll.h: + Added makefiles for this example and fixed a template problem with + Borland C++. Thanks to Charles Frasch for + contributing this. + +Wed Sep 5 19:48:34 2001 Priyanka Gontla + + * ace/SOCK_Dgram.cpp (set_nic): + Fixed the errors that raised in Win. + +Wed Sep 5 20:38:10 2001 Balachandran Natarajan + + * ace/OS.h: + * ace/OS.i: + * ace/QoS/QoS_Session_Impl.cpp: + * ace/QoS/QoS_Session.h: Reverted the change "Wed Sep 5 18:58:00 + 2001 Yamuna Krishnamurthy ". The change + broke builds. Further there was no reason why the QoS + information should come inside OS.* files. Talk about increasing + foot print. + +Wed Sep 5 18:58:00 2001 Yamuna Krishnamurthy + + * ace/QoS/QoS_Session.h: + * ace/QoS/QoS_Session_Impl.h: + * ace/QoS/QoS_Session_Impl.cpp: + + Added rapi_sender and rapi_reserve calls with null tspec and + flow spec respectively to facilitate the tearing down of PATH + and RESV messages. + + * ace/OS.h: + * ace/OS.i: + + Changed the sending_flowspec_ and receiving_flowspec_ members of + the ACE_QoS class to pointers so they can be initialized to null + flow specs. + +Wed Sep 5 16:50:03 2001 Balachandran Natarajan + + * THANKS: Added Peter Phillips to the Hall + of Fame. + + * ace/OS_String.cpp: Fixed a warning in TRU64 builds. + +Wed Sep 5 11:29:59 2001 Priyanka Gontla + + * ace/SOCK_Dgram.h: + * ace/SOCK_Dgram.cpp: + + Added a new method to set the NIC address in the socket. + +Wed Sep 05 12:00:42 2001 Steve Huston + + * include/makeinclude/platform_aix4_g++.GNU: Sets ACE_AIX_VERS rather + than separate major/minor; see entry below for further info. + +Wed Sep 05 11:52:39 2001 Steve Huston + + * ace/config-aix5.1.h: New config file for AIX 5L, version 5.1, + using Visual Age C++ 5. + + * ace/config-aix-4.1.x.h: + * ace/config-aix-4.2.x.h: + * ace/config-aix-4.3.x.h: + * ace/config-aix-4.x.h: Use ACE_AIX_VERS (which has both major and + minor version) rather than ACE_AIX_MAJOR_VERS and ACE_AIX_MINOR_VERS. + + * include/makeinclude/platform_aix_ibm.GNU: Rather than making + separate major/minor OS version variables, use one that incorporates + both to make it easier for config.h files to set upwardly-compatible + feature flags. + +Wed Sep 5 06:55:44 2001 Chad Elliott + + * tests/Log_Msg_Test.cpp: + + Add ACE_TEXT() around the default program name for the Windows + WChar Unicode build. + +Tue Sep 4 18:48:00 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Changed the value returned from + ACE_Select_Reactor_Notify_Handler::handle_input (). This now + returns a 0 if we did not dispatch any handles or the number of + handles dispatched. We were returning a -1 if we did not + dispatch any handles, after reading the notification from the + pipe. This should fix the Reactor_Notify_Test in the Implicit + templates build. + +Tue Sep 4 12:46:50 2001 Balachandran Natarajan + + * ace/ACE.cpp: Reverted this change "Tue Sep 4 07:37:17 2001 + Balachandran Natarajan ". Thanks to Irfan + for pointing that this change, changes the semantics of the + methods. + +Tue Sep 4 09:14:36 2001 Chad Elliott + + * ace/CDR_Stream.i: + * ace/CDR_Stream.cpp: + + Work around a compiler bug in the latest Green Hills Multi200. + Casting a float to an ACE_CDR::ULong* caused internal compiler + errors if the code was inlined. + + * ace/config-vxworks5.x.h: + * include/makeinclude/platform_vxworks5.x_ghs.GNU: + + Updated support for Green Hills Multi2000. + +Tue Sep 4 07:41:42 2001 Balachandran Natarajan + + * THANKS: Added Eyal Neuman to the Hall of + Fame. + +Tue Sep 4 07:37:17 2001 Balachandran Natarajan + + * ace/ACE.cpp: Fixed a bug with recv_n_i (). The problem was form + returning the exact number of bytes from the for loop. If the + loop had executed once and if we get 0 in the next recv_i () + call, then we should be returning the number of bytes read in + the previous iteration and not 0. Thanks to Eyal Neuman + for this fix. This closes bug 1015. + +Tue Sep 4 07:08:30 2001 Balachandran Natarajan + + * ace/ACE.cpp: Fixed a unicode error in teh Win32 builds. Acted as + a dumbo when I made this change yesterday:( + +Mon Sep 3 20:08:25 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Fixed a warning in TRU 64 builds. + +Mon Sep 3 09:58:32 2001 Balachandran Natarajan + + * */Makefile: Updated dependencies + +Mon Sep 3 09:44:46 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a warning in Implicit + template builds. + +Mon Sep 3 08:21:36 2001 Balachandran Natarajan + + * ace/ACE.cpp: Replaced L with ACE_TEXT_WIDE. + +Mon Sep 3 07:54:32 2001 Balachandran Natarajan + + * ace/OS_String.cpp: Fixed compile errors in win32 builds. Thanks + to Johnny Willemsen for sending in patches for replacing L with + ACE_TEXT_WIDE. + +Sun Sep 2 19:33:07 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a small problem with the + select reactor's notify () handling mechanism. This was more of + a problem with me not checking the while () loop condition + properly. This should fix most of the reactor problems seen in + the daily builds. + +Sat Sep 1 14:10:08 2001 Douglas C. Schmidt + + * ace/System_Time.cpp, + * ace/Stream_Modules.cpp, + * ace/Service_Types.cpp, + * ace/Service_Manager.cpp, + * ace/SPIPE_Addr.cpp, + * ace/OS.cpp, + * ace/Memory_Pool.cpp, + * ace/Mem_Map.cpp, + * ace/Local_Name_Space_T.cpp, + * ace/FILE_Addr.cpp, + * ace/FIFO.cpp, + * ace/Connector.cpp, + * ace/Acceptor.cpp, + * ace/Token_Collection.cpp, + * ace/Name_Request_Reply.cpp, + * ace/Local_Tokens.cpp, + * ace/ACE.cpp, + * ace/Log_Record.cpp, + * ace/Log_Msg.cpp: Added the use of the new ACE_OS::strsncpy() + method. Thanks to Alain for reporting this. + + * ace/OS_String.{h,cpp}: Added a "safe" c string copy method: + strsncpy(dst,src,maxlen). Changing an occurence off strncpy() + to strsncpy() is less errorprone, but could break somebody's + code if he/she is using the fact that the strncpy's where + nul-padding the destination, but this is extremely + unlikely. Using strsncpy() is also almost always (a lot) faster + than strncpy(). Thanks to Alain Decamps + for this method. + +Sat Sep 1 09:54:55 2001 Balachandran Natarajan + + * tests/Bound_Ptr_Test.cpp: Added a patch from Chris Kohlhoff that + fixes the problem with VXWORKS builds. The old gcc compiler + seems to have problems with forward declared types as template + parameters. Chris solves the problem by defining a ABC properly + and making the offending class inherit from it. This should fix + our daily VXWORKS builds. + +Sat Sep 1 08:07:51 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a compilation error in the + Notification queue portion of the code. Thanks to our daily + builds for helping me with this testing. + +Fri Aug 31 22:12:26 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: + * ace/Select_Reactor_Base.cpp: Fixed fuzz errors. + +Fri Aug 31 22:07:57 2001 Balachandran Natarajan + + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp: Added the method read_notify_pipe () to + the WFMO_Notify_Handler. + +Fri Aug 31 19:14:52 2001 Balachandran Natarajan + + * ace/Reactor_Impl.h: Added a new method by name read_notify_pipe + (). Also changed the dispatch_notify () to take in a + Notification buffer instead of a ACE_HANDLE. + + * ace/Select_Reactor_Base.cpp: + * ace/Select_Reactor_Base.h: Made the following changes + + - Implemented read_notify_pipe (). Will read just one message from + the notify pipe or one message from the notification queue. + + - Reimplemented dispatch_notify (). This method would just + dispatch the upcall using the information in the notification + buffer. + + - The handle_input () now uses the read_notify_pipe () and + dispatch_notify () to achieve what it was doing before. + + - The notify () call now sends one notify message on the pipe + for every message in the notification queue. + + * ace/TP_Reactor.cpp (handle_socket_events): + * ace/TP_Reactor.h: + * ace/TP_Reactor.i: We had a race condition. The race condition + was because two threads were trying to read from the notify_pipe + at the same instance. This race condition was fixed by adding a + call to read_notify_pipe () with the lock held and then calling + dispatch_notify () with the buffer read after releasing the + lock. Did the following minor modifications + + - Changed dispatch_socket_events () as dispatch_socket_event () + as we were dispatching only one event. + + - We dont grab the token in the constructor of the token. We + have to make a call specfically to grab_token () to get the + token. + + The above checkins should fix the correctness of the reactor + problems that we have been seeing. + +Fri Aug 31 18:30:28 2001 Krishnakumar B + + * bin/auto_run_tests.lst: + + Added Blocking_Sync_None to the list of tests to be run on + Tru64. + + * ACE-INSTALL.html: + + Added Linux/IA64 to the list of platforms supported. + +Fri Aug 31 15:27:09 2001 Balachandran Natarajan + + * ace/Bound_Ptr.i: Fixed a problem with Sun CC42 builds. Used 1 + instead of true. + +Fri Aug 31 14:57:42 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Fixed usage of ACE_SYNCH meta-class + to work correctly with templates. + +Fri Aug 31 11:53:05 2001 Krishnakumar B + + * ace/OS.h: + * ace/Timer_Queue_T.h: + * ace/Timer_Queue_T.h: + * ace/config-hpux-11.00.h: + * ace/config-hpux11.h: + * ace/config-irix6.x-common.h: + * ace/config-linux-common.h: + * ace/config-lynxos.h: + * ace/config-osf1-4.0.h: + * ace/config-pharlap.h: + * ace/config-sunos4-g++.h: + * ace/config-sunos4-lucid3.2.h: + * ace/config-sunos4-sun3.x.h: + * ace/config-sunos4-sun4.1.4.h: + * ace/config-sunos4-sun4.x-orbix.h: + * ace/config-sunos5.4-centerline-2.x.h: + * ace/config-sunos5.4-g++.h: + * ace/config-sunos5.4-sunc++-4.x-orbix.h: + * ace/config-sunos5.4-sunc++-4.x.h: + * ace/config-sunos5.5.h: + * ace/config-tandem.h: + + Fixed up documentation of ACE_TIMER_SKEW. Fixed bogus values in + all the above files. Should help in removing some of the errors + in TAO tests. Any test in ACE/TAO which breaks because of this + change is broken and should be fixed. + +Fri Aug 31 12:00:00 2001 Steve Huston + + * tests/Bound_Ptr_Test.icc: New Visual Age C++ config for this test. + * tests/tests.icp: Added Bound_Ptr_Test.icc, Service_Config_Test.icc, + and libService_Config_DLL.icc. + +Fri Aug 31 11:40:31 2001 Steve Huston + + * tests/MEM_Stream_Test.(cpp h): Fixed single-threaded builds. + +Fri Aug 31 08:13:26 2001 Chad Elliott + + * bin/perltest2cpp.pl: + + Added a -t option to set the timeout factor. + +Thu Aug 30 18:08:32 2001 Krishnakumar B + + * ace/config-linux-common.h: + + Added some more missing stuff which might break compilations. + The previous change also removed the existing definition for + ACE_TIMER_SKEW so add it back till the new version is checked in. + +Thu Aug 30 17:54:40 2001 Krishnakumar B + + * ace/config-linux-common.h: + + This file was checked in inadvertently when checking in fixes + for ACE_NEEDS_HUGE_THREAD_STACKSIZE. + +Thu Aug 30 13:04:38 2001 Steve Huston + + * tests/run_test.lst: Added Bound_Ptr_Test. + +Thu Aug 30 11:40:39 2001 Steve Huston + + * tests/run_test.pl (run_program): Fixed the 'unlink' to get + all of a test's log files; prevents seeing previous sub-logs + from a test such as MEM_Stream_Test and falsely reporting errors. + +Thu Aug 30 10:46:51 2001 Steve Huston + + * ace/High_Res_Timer.cpp (global_scale_factor ()): When checking for + a high-res timer mechanism, don't set the global_scale_factor_status_ + away from 0 until _after_ getting the scale factor, to avoid + a second parallel thread from using a bogus value. Thanks very much + to Alain Decamps for this fix. + +Thu Aug 30 09:30:19 2001 Chad Elliott + + * tests/Log_Msg_Test.cpp: + + Fix for VxWorks when ace_main() is called with argc == 0. + + * tests/run_test.lst: + + Update the list of tests that run on VxWorks. + + * tests/Makefile: + * tests/run_test.pl: + + Update the script to output VxWorks commands to a file. + +Thu Aug 30 09:58:38 2001 Steve Huston + + * ace/High_Res_Timer.i (elapsed_microseconds): For Win32, isolate the + msec modulus before converting it up to usecs. Thanks to Francois + Rioux for reporting this. + +Thu Aug 30 00:42:41 2001 Christopher Kohlhoff + + * ace/Service_Config.cpp: + Service_Object instances are now inserted into the Service_Repository + only after they have been successfully initialised, to provide better + support for recursive use of the service configurator. With this + change, a service loaded from 'inside' another services's init() will + be inserted into the repository first and unloaded last. This ensures + that any recursively loaded services on which the original service + depends still exist when the original service's fini() function is + called. + +Thu Aug 30 00:27:05 2001 Krishnakumar B + + * ChangeLog: + + Removed bogus files from the previous entry. I should not play + around with a lot of tasks at once. + +Wed Aug 29 19:57:29 2001 Krishnakumar B + + * ace/config-osf1-4.0.h: + + Remove definition of ACE_NEEDS_HUGE_THREAD_STACKSIZE. The + default value seems to be good enough. + + * ace/config-vxworks5.x.h: + * ace/config-lynxos.h: + * ace/config-qnx-neutrino.h: + * ace/config-rtems.h: + + Standardized the values to 64KB on these platforms. Don't know + if these platforms need it. But I don't have access to any of + these so playing it safe. + + +Wed Aug 29 18:52:12 2001 Christopher Kohlhoff + + * tests/Bound_Ptr_Test.cpp: + Removed a stray asterisk that was causing compilation failures. + +Wed Aug 29 17:54:52 2001 Steve Huston + + * tests/libDLL_Test.icc: + * tests/libService_Config_DLL.icc: Fixed the "run after" directives + to correctly build the lib*.a files. Also, fixed the cleanup + directives to properly clean up both .a and shr.o files. + +Wed Aug 29 15:32:10 2001 Douglas C. Schmidt + + * ace/config-aix-4.x.h: + * ace/config-hpux-11.00.h: + * ace/config-osf1-4.0.h: Added better support for pread()/pwrite(). + Thanks to Steve Vranyes for these fixes. + +Wed Aug 29 15:47:33 2001 Steve Huston + + * tests/run_test.lst: Re-enabled MEM_Stream_Test. + +Wed Aug 29 12:15:01 2001 Nanbor Wang + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: Added Bound_Ptr.* to the projects. + + * tests/tests.dsw: + * tests/Bound_Ptr_Test.dsp: Added a new project for + Bound_Ptr_Test. + +Wed Aug 29 11:01:22 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Fixed a cut/paste error and now runs the + proper number of threads/processes for the MT case, avoiding a + hang. + +Wed Aug 29 07:08:23 2001 Douglas C. Schmidt + + * tests/run_tests.lst: + * tests/Makefile + * tests/Makefile.bor + * ace/Makefile + * ace/Bound_Ptr.{h,i} + * tests/Bound_Ptr_Test.cpp + * examples/Smart_Pointer: Added a pair of new smart pointer classes, + ACE_Strong_Bound_Ptr and ACE_Weak_Bound_Ptr. Thanks to + Christopher Kohlhoff for contributing + these. + +Tue Aug 28 17:51:19 2001 Steve Huston + + * tests/run_test.pl: If a test has log files associated with the + main log of the form -.log, e.g. MEM_Stream_Test-331.log + the check_log function will scan those for errors/warnings too. + +Tue Aug 28 16:48:23 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: We (the current thread) should not release the + token unless we own it. This simple mistake just took 3 days to + figure out. An 'if' condition was mixing and have added + it. Shows how a small problem at lower levels can take days to + fix. + +Tue Aug 28 17:45:22 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Fixed compile warning on gcc. + +Tue Aug 28 13:16:31 2001 Chad Elliott + + * bin/vxworks_modify.pl: + * bin/perltest2cpp.pl: + + Generated c++ files now pass the fuzz check. + +Tue Aug 28 11:02:08 2001 Ossama Othman + + * bin/nightlybuilds/builds.lst: + + Renamed the GCC 3.0 build to "Debian_GCC_3.0.1." since we're + actually compiling with GCC 3.0.1, not GCC 3.0. The latter has + bugs that prevent it from compiling ACE/TAO at the "-O3" + optimization level. + +Tue Aug 28 10:19:18 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + Corrected Borland warning using a more efficient fix (i.e. less + function calls). + +Tue Aug 28 10:36:10 2001 Chad Elliott + + * bin/vxworks_modify.pl: + * bin/perltest2cpp.pl: + + Added these scripts for use with VxWorks and the newly added TAO + TestUtils. These scripts modify c++ and perl to generate + "one-button" modules for TAO testing on VxWorks. + +Tue Aug 28 11:07:26 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Be sure to close the stream from the + client end. + +Mon Aug 27 20:16:38 2001 Balachandran Natarajan + + * tests/run_test.lst: Removed the MEM_Stream_Test from the daily + builds as they were hanging. This was causing the builds to + choke. I will keep Steve Huston informed on this so that he can + reenable them once he has fixed the test. + +Mon Aug 27 18:33:59 2001 Krishnakumar B + + * bin/nightlybuilds/builds.lst (WEB): + + Removed the stray yoda part of LIST which is causing the wrong + results to show up. + +Mon Aug 27 18:14:38 2001 Krishnakumar B + + * bin/nightlybuilds/builds.lst (WEB): + + Added the IA-64 builds back again. We now have a faster machine + running a better version of Linux. + +Mon Aug 27 09:39:33 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.i (get_dispatch_info): + * ace/Timer_Queue_T.h: Fixed the compile problem in VXWORKS + builds. How could I forget that there are a few compilers which + cannot grok traits? + +Mon Aug 27 09:39:12 2001 Johnny Willemsen + + * examples/Makefile.bor: + * examples/NT_Service/Makefile.bor + Added BCB makefile for this example + +Sun Aug 26 22:08:32 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: Reordered methods to fix warnings in TRU 64 + builds. + +Sun Aug 26 20:50:22 2001 Balachandran Natarajan + + * ace/SSL/SSL_SOCK_Stream.i: Fixed a warning (hopefully) in + Borland builds. The warning was because a temporary variable was + created. + +Sun Aug 26 20:45:24 2001 Balachandran Natarajan + + * tests/MEM_Stream_Test.cpp: Fixed a unused variable warning in + Borland. + +Sun Aug 26 08:13:12 2001 Douglas C. Schmidt + + * tests/test_config.h: Added a new ACE_CLOSE_TEST_LOG macro. Thanks to + Edan for this. + +Sun Aug 26 09:07:32 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Fixed a compile error with SunCC4.2 + +Sun Aug 26 08:28:09 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.cpp: Fixed a warning from an unused variable + reported by KCC compilers. + +Sun Aug 26 08:13:12 2001 Douglas C. Schmidt + + * tests/Logging_Strategy_Test.cpp: Applied the following fixes from + Edan: + + - Included ace/Logging_Strategy.h + - Addition of -w switch to enable initial wipeout of logfile + - Removal of the redundant ACE_LOG_MSG->open() + - Explicitly close the previous log before applying the changes to the + ACE_LOG_MSG + - Moved remove_files() call higher, just before logfile close + + * ace/Logging_Strategy.{h,cpp}: Added the following fixes from + Edan Ayal: + + - Logging_Strategy now supports any ACE_Log_Msg, not just the + ACE_LOG_MSG singleton. + - Added a check for success (ios::goodbit) of new ofstream + creation. + - Changed default values for max_size and interval. Now the + default interval is 10 minutes (instead of 0) and the default + log file size is 0 (was 16K). The timer is now activated only + if both are non-zero. + - Added a mutator to set the ACE_Log_Msg to work with, and a + member variable + - Added definition for ACE_DEFAULT_LOGFILE_POLL_INTERVAL + - Removed definition of ACE_DEFAULT_MAX_LOGFILE_SIZE + + * ace/Log_Record.{h,cpp}: Enhanced this implementation to (1) + be consistent with recent changes to Log_Msg.h and (2) to + replace problematic use of strncpy(). Thanks to Alain + Decamps for these fixes. + +Sat Aug 25 20:58:22 2001 Nanbor Wang + + * ace/FILE_IO.i (send_n): Changed to use ACE::write_n to send the + chain of Message_Blocks. The originally used ACE::send_n was + causing problem on NT because send_n was restricted for sockets + I/O on NT. Thanks to Doug for pointing this out. + +Sat Aug 25 10:16:21 2001 Douglas C. Schmidt + + * tests/Svc_Handler_Test.cpp (main): The destructor of svc_handler + will close file_io, so we don't need to do it explicitly! + + * ace/Log_Msg.cpp (log): Changed range check from + + this->msg_ + ACE_Log_Record::MAXLOGMSGLEN + + to + + this->msg_ + sizeof this->msg_ + + to correspond to the change below. + + * ace/Log_Msg.h (ACE_Log_Msg): Increased the size of the buffer + used to store log records to account for the NUL-terminator. + + * tests/Svc_Handler_Test.cpp (main): Changed the buffer size + and NUL-terminated the buffer so that things print correctly. + Thanks to Nanbor for finding this. + +Sat Aug 25 09:00:28 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: + * ace/TP_Reactor.h (ACE_TP_Reactor): Fixed a warning in KCC + builds. + +Sat Aug 25 08:42:57 2001 Balachandran Natarajan + + * ace/Configuration_Import_Export.cpp: Fixed warnings with g++. I + am not sure how this fix will be accepted on different + compilers. Things are always dicy when you want to delete a + void *. + +Fri Aug 24 23:29:09 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added File_IO test to our daily builds. + +Fri Aug 24 23:12:15 2001 Balachandran Natarajan + + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp (dispatch_notify): Fixed a compile error on + MSVC. + +Fri Aug 24 23:07:42 2001 Balachandran Natarajan + + * ace/Configuration_Import_Export.cpp: Fixed a compile error with + g++. + +Fri Aug 24 21:55:00 2001 Craig Rodrigues + + * ace/QoS/QoS_Session_Impl.cpp: + Check for null parameters in rsvp_callback(). + Thanks to Yamuna Krishnamurthy . + +Fri Aug 24 20:32:39 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Changed this test to use multiple + processes on any platform without ACE_LACKS_FORK. It actually + could be broader than this if desired. This is motivated by the + fact that HP-UX can't mmap() (the call underlying ACE_MEM_IO) + the same file more than once in the same process. With this, + MEM_Stream_Test goes a lot better on HP-UX, though not perfectly + yet. + +Fri Aug 24 16:54:02 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.h (recv_i): + + Added a timeout parameter. See below for details. + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + Perform an SSL_read() before attempting to block on select() + with a timeout. OpenSSL may buffer more data than requested + since it is a record-oriented protocol. Fixes a problem where + subsequent calls to ACE_SSL_SOCK_Stream::recv() could timeout + when needlessly blocking on select() because the expected data + has already been buffered by OpenSSL. Thanks to Martin + Krumpolec for reporting and diagnosing the + problem. [Bug 1006] + + * ace/SSL/SSL_SOCK_Stream.cpp (recv): + + Moved the timed recv() code to the lower level recv_i() method + since timeout support must now be more tightly integrated with + do/while(SSL_pending()) SSL_read() loop. + +Fri Aug 24 18:33:09 2001 Douglas C. Schmidt + + * ace/Parse_Node.cpp (ACE_Function_Node): Make sure to dynamically + allocate the pathname_ so we can delete it! Thanks to + Don Hinton for reporting this. + + * ace/Configuration_Import_Export.cpp: Changed a couple of + delete (char *) buf to delete (char *) [] buf. Thanks to + Don Hinton for reporting this. + +Fri Aug 24 16:10:20 2001 Balachandran Natarajan + + Merged in changes from the reactor_deadlock branch. This set of + changes actually fixes a long standing problem with the + TP_Reactor. The TP_Reactor was holding the token too long and + this created all sorts of problems for TAO. The changes have been + merged from the branch and here are the relevant + ChangeLog entries. + + Fri Aug 24 14:59:52 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp (dispatch_socket_events): Cosmetic changes. + + Fri Aug 24 14:19:02 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.i: + * ace/Timer_Queue_T.h:Removed the default constructor and + destructor for ACE_Timer_Node_Dispatch_Info_T allowing the + compiler to do the job. + + Fri Aug 24 12:05:25 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.cpp: Removed some vague debug statements. + + Fri Aug 24 11:34:11 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.h: + * ace/Timer_Queue_T.cpp: + * ace/Timer_Queue_T.i: Added a new class + ACE_Timer_Node_Dispatch_Info_T that has the dispatch information + needed to make the upcall. Added methods, dispatch_info () and + dispatch_info_i () in ACE_Timer_Queue_T. These methods return + the dispatch information if there is a node in the queue whose + timer value <= current time. Changed the expire () method to use + this method to get dispatch information. + + * ace/Timer_Queue.h: Added a template specialisation for + ACE_Timer_Node_Dispatch_Info_T. + + * ace/Timer_Queue.cpp: Added template instantiations for the + specialisation. + + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: Added a new method handle_timer_events () + that would handles timer events. + + Thu Aug 23 11:50:18 2001 Balachandran Natarajan + + * ace/Reactor_Impl.h: Added two new methods notify_handle () and + dispatch_notify () to the ACE_Reactor_Impl class. + + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_Base.cpp: Implemented the above two + methods in the ACE_Select_Reactor_Notify class. The + notify_handle () method returns the handle of the pipe on which + it is listening. The dispatch_notify () call does a dispatch of + just one notify () call in the notify pipe. The handle_input () + call that used to process all the notify calls now calls the + dispatch_notify () in a loop. The change essentially allows + some extrenal client of this class to just process one notify at + a time if needed. + + * ace/TP_Reactor.h: + * ace/TP_Reactor.i: + * ace/TP_Reactor.cpp (handle_events): Fixed a bug with + handle_events (ACE_Time_Value &). This should be calling the + handle_events () of the TP_Reactor and not the select reactor. + + Added a whole slew of new methods that basically allows us to do + this + - handle one event at a time + + - once the thread knows the event that needs handling it should + release the token before dispatching the events + + The new methods that have been added are + + - handle_signals (), which handle signals that interrupted the + select (). The implementation of this method is busted. The + implementation has been copied from the existing setup + + - handle_notify_events (), which handles one notify on the + notify_pipe at a time + + - handle_socket_events (), which handles socket events. + + Quite a few helper methods have also been added. They are + get_notify_handle (), get_socket_event_info (), and + dispatch_socket_events (). Removed the methods dispatch_i (), + dispatch_i_protected () and notify_handle (). This checkin fixes + the problem in 1002. But we still have to add handling timeouts + into the TP_Reactor. + + + Tue Aug 21 17:21:07 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: Made lots of changes which havent been + compiled yet. Added a new class ACE_TP_Token_Guard that helps + in obtaining and releasing tokens. Moved the grab_token () from + the ACE_TP_Reactor class to the TP_Token_Guard class. Added a + new method for handling signals. They havent been compiled yet + and this checkin is to put files from work to my home box. + + Tue Aug 21 07:58:42 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp (handle_events): Started refactoring some of + the code to help with this bug. This change has not been + compiled. This is just being done to transfer files from home + to work. + +Fri Aug 24 14:25:31 2001 Balachandran Natarajan + + * THANKS: Added Massimo Pichini to the + Hall of Fame. + +Fri Aug 24 13:40:01 2001 Balachandran Natarajan + + * bin/nightlybuilds/builds.lst: Removed HPUX and AIX_VAC for the + timebeing. Looks like OCI is running different versions of the + OS for their internal use. + +Fri Aug 24 10:17:00 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp (log_hexdump): Added a patch provided by Massimo + Pichini . This prevents overflows with + long strings that are used in printing hexdumps. Previously we + had a buffer of 80 bytes on the stack. + +Fri Aug 24 10:03:29 2001 Steve Huston + + * ace/INET_Addr.(h cpp): Applied changes submitted by + Alain Decamps to insure that + get_host_name (char hostname[], size_t len) const always + nul-terminates the hostname string. If the host lookup is + successful, but the supplied buffer is too short, the function + returns -1, errno == ENOSPC. + +Thu Aug 23 22:01:11 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Reverted this change "Thu Aug + 23 05:24:57 2001 Douglas C. Schmidt" as this was giving + warnings with MSVC 6.0 + +Thu Aug 23 11:49:15 2001 Paul Calabrese + + * bin/msvc_auto_compile.pl: + + Revert changes from Mon Aug 20 15:48:30 2001. + Thanks to Darrell to showing me the error in my ways. + +Thu Aug 23 09:17:25 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp (file): Reduced the number of bytes copied in + ACE_Log_Msg::file () and ACE_Log_Msg::msg () by one. Thanks to + Alain Decamps for pointing this out. + +Thu Aug 23 08:11:22 2001 Steve Huston + + * ace/Configuration_Import_Export.cpp (process_previous_line_format): + Prepend ACE_OS:: to atoi to work with both narrow and wide chars. + +Thu Aug 23 08:03:00 2001 Craig Rodrigues + + * ace/QoS/QoS_Session_Impl.cpp: + Improve debugging messages. Return -1 inside rsvp_callback() + if flowspec type is unknown. + +Thu Aug 23 05:24:57 2001 Douglas C. Schmidt + + * tests/Logging_Strategy_Test.cpp: Added new and improved test that + it better documented and fixes some minor bugs. Thanks to + Edan Ayal for this. + +Wed Aug 22 19:04:57 2001 Douglas C. Schmidt + + * tests/Logging_Strategy_Test.cpp: Enable this test to work + on platforms that don't support DLLs. Thanks to Edan Ayal + for suggestion this and providing the code. + + * tests/Logging_Strategy_Test.cpp (parse_args): Changed 'n' for 'N' + since that controls the max number of log files. Thanks to Edan + Ayal for reporting this. + +Thu Aug 23 07:30:12 2001 Johnny Willemsen + + * ace/SString.{h,i}: Added clear() method to the ACE_CString and + ACE_WString so that it is possible to clear a string in just one + call + * tests/SString_Test.cpp: Extended to test clear() method + +Wed Aug 22 15:30:05 2001 Carlos O'Ryan + + * bin/auto_compile: + Use the print_config.pl script to print out the configuration. + +Wed Aug 22 17:33:29 2001 Steve Huston + + Applied fixes submitted by Jerry D. Odenwelder, to fix + Bugzilla #953: + + * ace/Configuration.cpp (import_config, export_config): Changed + from using a ACE_Ini_ImpExp object to an ACE_Registry_ImpExp + to preserve type information in the import/export files, and + retain the ability to read an ACE 5.1-format file (with the + changes next...) + + * ace/Configuration_Import_Export.(h cpp): Added a new + ACE_Registry_ImpExp::process_previous_line_format() method that + knows how to read an ACE 5.1-format config line. If + ACE_Registry_ImpExp::import_config finds a line that does not + begin with one of <"[#;> it calls process_previous_line_format + to try to convert it using ACE 5.1-format rules. + Note that the auto conversion works on import. If the + object is subsequently exported, the new registry format + will be used to write the file, effectively updating it + from old to new format. + +Wed Aug 22 12:04:04 2001 Douglas C. Schmidt + + * ace/WFMO_Reactor.h (ACE_WFMO_Reactor): Clarified that the + work_pending() method isn't implemented and suggest what to do + for a workaround. Thanks to Michelangelo Riccobene + (michelangelo.riccobene@marconi.com) for reporting this. + +Wed Aug 22 10:38:08 2001 Carlos O'Ryan + + * bin/nightlybuilds/print_config.pl: + Add new perl script to print out the build configuration, the + script will be shared by the Unix and Win32 builds. + +Wed Aug 22 11:30:13 2001 Joe Hoffert + + * ace/OS_Memory.h: + Removed include of pace/stddef.h. PACE does not have this + file. There are no POSIX functions that typically reside + in this header. Maybe PACE will need this later but it + doesn't now. + + * ace/OS.h (ACE_cond_t): + Modified #if guard to include ACE_cond_t class if we're + on Win32. If we're using PACE then we don't want this method + (since PACE takes care of it) unless we're on Windows. Win32 + mutexes, semaphores, and condition variables are not yet + supported in PACE. + + * ace/OS.cpp (ACE_OS::cond_destroy): + Modified #if guard to include ACE_cond_t::cond_destroy + if we're on Win32. If we're using PACE then we don't want + this method (since PACE takes care of it) unless we're on + Windows. Win32 mutexes, semaphores, and condition variables + are not yet supported in PACE. + + * ace/OS.i (ACE_OS::waiters): + Modified #if guard to include ACE_cond_t::waiters if + we're not on Win32. If we're using PACE then we want + this method (since PACE defines cond_t) unless we're + on Windows. Win32 mutexes, semaphores, and condition + variables are not yet supported in PACE. + +Tue Aug 21 08:26:30 2001 David L. Levine + + * docs/ACE-guidelines.html: changed the example referenced + in: + Sun Aug 19 08:17:14 2001 David L. Levine + to be a bit more realistic. + +Tue Aug 21 06:58:49 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp: Fixed problematic uses of strncpy. Thanks to + Alain Decamps for giving this patch. + +Tue Aug 21 10:40:12 2001 Johnny Willemsen + + * ace/Map.i: Made the return value of ACE_Incremental_Key_Generator + getCurrentValue() const + + * ace/Map_Manager.*: Added a const iterator for the + ACE_Map_Manager + +Mon Aug 20 18:20:51 2001 Steve Huston + + * ace/Process.cpp (pass_handle): Only try to compile the + DuplicateHandle stuff when !ACE_HAS_WINCE... I think it's + right this time... + +Mon Aug 20 15:54:46 2001 Douglas C. Schmidt + + * ace/SUN_Proactor.cpp: Removed the instantiation of + ACE_Condition. Thanks to David Trusty + for reporting this. + +Mon Aug 20 15:48:30 2001 Paul Calabrese + + * bin/msvc_auto_compile.pl: + + Modify script to print config.h contents. + +Mon Aug 20 13:14:00 2001 Carlos O'Ryan + + * bin/auto_compile: + Fixed chdir commands for the auto_compile scripts. + +Mon Aug 20 14:33:31 2001 Douglas C. Schmidt + + * ace/Message_Queue_T.cpp: If we timeout in the semaphore implementation + of the message queue in wait_not_full_cond() or + wait_not_empty_cond() make sure to decrement the "waiters" count + accordingly! Thanks to Patrick Rabau + for noticing this in the C++NPv1 book version! + +Mon Aug 20 07:01:31 2001 Douglas C. Schmidt + + * ace/Synch_T.i (release): If owner_ == -1 then return + -1. Thanks to Don Hinton for suggesting this. + +Mon Aug 20 13:18:51 2001 Steve Huston + + * ace/SOCK.h: Corrected comment on ACE_SOCK ctor being protected, + not private. Thanks to Don Hinton for + pointing this out. + + * THANKS: Added Don Hinton to the Hall of Fame. + +Mon Aug 20 11:00:50 2001 Chad Elliott + + * ace/OS.h: + + Set the ACE_DEFAULT_FILE_PERMS to the correct value for VxWorks. + + * tests/run_test.lst: + + Removed tests for VxWorks for which the platform has no support. + + * tests/CDR_File_Test.cpp: + * tests/Svc_Handler_Test.cpp: + + Add VxWorks to the list of platforms that can't unlink the file + in advance of the test completing. + +Mon Aug 20 01:49:12 2001 Christopher Kohlhoff + + * include/makeinclude/build_dll.bor: + Build non-core DLLs into the common bin directory. This is necessary + so that the tests can find all the DLLs they need on the path. + + * tests/run_test.pl: + Removed the append of the ExeSubDir to the path, since it is no + longer needed and never really worked properly anyway. + +Mon Aug 20 00:01:29 2001 Steve Huston + + * ace/SOCK_Connector.h: Clarify the conditions under which errno + will be ETIME (caller-specified timeout expires w/o connect) + vs. ETIMEDOUT (protocol layer timed out the connect). + + * ace/SOCK_Connector.cpp: Add "|| errno == ETIME" to a couple + places where an ACE_ERROR is _not_ done for certain conditions. + + * ace/ACE.cpp (handle_timed_complete): If the user-specified timeout + expires before the connect is resolved one way or the other, + set errno to ETIME, not ETIMEDOUT. This makes it match the + documented behavior in the ACE_SOCK_Connector man page. + +Sun Aug 19 20:33:39 2001 Carlos O'Ryan + + * bin/nightlybuilds/builds.lst: + Update build list + +Sun Aug 19 15:36:23 2001 Carlos O'Ryan + + * bin/auto_compile: + Add new 'Config' section at the end of the build, useful for the + next generation scoreboard. + +Sun Aug 19 13:25:51 2001 Carlos O'Ryan + + * bin/footprint_stats.sh: + * bin/performance_stats.sh: + * bin/generate_footprint_chart.sh: + * bin/generate_performance_chart.sh: + * html/Stats/Stats.css: + * html/Stats/configuration.shtml: + * html/Stats/detailed_footprint.shtml: + * html/Stats/detailed_performance.shtml: + * html/Stats/footer.html: + * html/Stats/index.shtml: + * html/Stats/navigation.html: + Put the scripts and HTML documents used to generate the Stats + pages under CVS control. Now it is easier for people to add + their own libraries and tests, as well as let our user community + examine the way the pages are generated. + + * bin/auto_run_tests.lst: + Remove TAO/tests/LongUpcalls/run_ami_test.pl, the tests have + been incorporated into the run_test.pl script. + + * bin/sandbox.cpp: + Minor changes to the sandbox script, actually not very useful, + the ACE classes to create processes start a new process group by + default, therefore there is no simple way to kill all the + subprocesses if a test fails. + +Sun Aug 19 08:17:14 2001 David L. Levine + + * docs/ACE-guidelines.html: replaced function call in + ASSERT with simple comparison of a variable value. Thanks + to Tino Schwarze + for suggesting this. + +Sat Aug 18 18:26:24 2001 Balachandran Natarajan + + * ace/ACE.cpp: Removed the ASYS_INLINE macro from the definition + of write_n (). + +Sat Aug 18 13:18:10 2001 Douglas C. Schmidt + + * ace/ACE.{h,cpp}: Added a new write_n(...ACE_Message_Block *...) + for file transfers that's the dual of + send_n(...ACE_Message_Block *...). This helps out the C++NPv1 + book symmetry. Thanks to Alain Decamps + for motivating this. + +Fri Aug 17 18:17:38 2001 Douglas C. Schmidt + + * bin/clone.cpp: Only use extern char *sys_errlist[] if we're not + compiling on Linux. Thanks to Thomas Groth + for reporting this. + +Fri Aug 17 19:04:31 2001 Steve Huston + + * ace/Process.cpp (ACE_Process_Options::pass_handle): For WinCE, + just do ACE_NOTSUP_RETURN (-1). It can't dup a handle. + +Fri Aug 17 16:56:16 2001 Jeff Parsons + + * ace/CDR_Stream.h: + * ace/CDR_Stream.i: + * ace/CDR_Stream.cpp: + + Added wr_ptr() accessor method to ACE_InputCDR, and added its + use to adjust(), align_read_ptr(), read_1(), skip_string() and + skip_bytes() instead of end(). Also added reset of good_bit_ + to 0 upon failure in read_string() and read_wstring(). Thanks to + Peter Phillips for reporting this bug, + which was causing excessive memory allocation is some cases. + [Bug 591, 944, 983] + +Fri Aug 17 13:31:45 2001 Chad Elliott + + * tests/run_test.pl: + + Added the ability to generate windsh commands to load and run + the ace tests. + + * tests/Makefile: + + Added a rule to generate run_test.vxworks, using run_test.pl, + which can be used to run the tests selected for the VxWorks OS. + + * tests/run_test.lst: + + Update this list to take into account the limitations of VxWorks. + + * tests/test_config.h: + + Change the permissions of the log file open (for VxWorks only) to + use the symbolic permission names instead of 0x644. The + permissions differ from the standard UNIX modes. + + * tests/run_tests.vxworks: + + This file was out of date and no longer needs to be maintained. + So, it has been removed. + +Fri Aug 17 09:44:49 2001 Balachandran Natarajan + + * ace/Map_T.{h,i}: Reverted this change "Fri Aug 17 08:07:12 2001 + Johnny Willemsen " as this was giving too + much of warnings in the builds. + +Fri Aug 17 09:30:34 2001 Balachandran Natarajan + + * gperf/apps/tests/Makefile: Fixed the problem that was causing + the builds to fail. + +Fri Aug 17 08:07:12 2001 Johnny Willemsen + + * ace/Map_T.(h i): made the return value of + ACE_Incremental_Key_Generator::current_value const T& instead + of T&. Added uppercase traits to the ACE_Map class. + +Thu Aug 16 19:27:29 2001 Steve Huston + + * ace/Process.cpp (ACE_Process_Options::pass_handle): Add + "::" to front of "DuplicateHandle" so the WinCE compiler + sees the right function. + Also added ctor/dtor for ACE_Managed_Process to try and fix the + can't find vtable error on Linux. + + * ace/Process.h: Added a constructor for ACE_Managed_Process + to fix "can't find vtable" error on Linux. + + * ace/Process.i: Moved ACE_Managed_Process dtor to .cpp file. + +Thu Aug 16 15:10:42 2001 Steve Huston + + * ace/Process.h (pass_handle): Clarify comments for this method. + + * ace/Process_Manager.cpp: + * ace/Process.(h i): Moved the ACE_Managed_Process class out + of Process_Manager.cpp, exposing it for general use. + +Thu Aug 16 10:34:20 2001 Douglas C. Schmidt + + * ace/POSIX_Proactor.cpp (allocate_aio_slot): Added a fix so that + the POSIX Proactor compiles with FreeBSD 4.4. Thanks to Yev + Omenzel for reporting this and to Craig + Rodrigues for fixing it and to + John E Hein for fixing the fix ;-) + +Thu Aug 16 08:09:53 2001 Chad Elliott + + * tests/run_test.lst: + + Added the OTHER requirement to the Thread_Pool_Reactor_Test and + the Thread_Pool_Reactor_Resume_Test. These are only built if + OTHER is part of the ACE components list. + + +Wed Aug 15 15:50:38 2001 Douglas C. Schmidt + + * ace/WFMO_Reactor.cpp: Don't try to purge the notifications if + notify_handler_ is 0. Thanks to Edan Ayal + for reporting this. + +Wed Aug 15 11:33:26 2001 Carlos O'Ryan + + * bin/nightlybuilds/builds.lst: + Remove one build from the list, the machine is being retargeted + for performance testing. + +Wed Aug 15 11:10:22 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Added $(VDIR) for + OBJDIRS. This prevents hardcoding the value of OBJDIRS. This has + been tested for a dynamic and a static library on Linux. If + there are other platforms that gives problems, please feel free + to revert the changes to the version 4.114 of the file. + +Wed Aug 15 09:35:19 2001 Chad Elliott + + * ace/Dirent_Test.cpp: + + Added #define's for VXWORKS that allow this test to function + properly. Avoid hard-coded relative paths that may not exist on + VxWorks. + +Wed Aug 15 09:08:40 2001 Chad Elliott + + * ace/Sock_Connect.cpp: + + Added an implementation to ACE_Sock_Connect::get_ip_interfaces(). + With this, the Enum_Interfaces_Test works correctly. + +Wed Aug 15 07:54:49 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Unravelled the mystery a + bit. The patch that was applied to remove the hard coding of + OBJDIRS seems to be the problem. The OBJDIRS has been hardcoded + again. This should fix the problems that we have been seeing in + the builds. If at all we need to remove hardcoding the OBJDIRS, + we either need to put the value of VDIR or VSHDIR. If we put + both we are going to end up with duplicate targets. Now the + killer, what do we add to the OBJDIRS? Me thinks it is VDIR. I + have test that out else I would be breaking builds again. + +Wed Aug 15 07:30:00 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Reverted the change "Tue + Aug 14 21:42:24 2001 Balachandran Natarajan". Thought that was a + typo. But looks like it is not. + +Wed Aug 15 06:39:50 2001 Balachandran Natarajan + + * ace/Process.cpp: Fixed a warning with g++. + +Tue Aug 14 23:57:42 2001 Steve Huston + + * A set of changes to encapsulate passing handles to spawned + processes. Thanks very much to Eamonn Saunders + for suggesting that this could work + and pointing out the Win32 details! + + * THANKS: Added Eamonn Saunders to the Hall of Fame + + * ace/Handle_Set.h: Replace include ace/ACE.h with ace/OS.h. This + class is part of the OS subset. + + * ace/Process.h: Added the following methods: + - ACE_Process_Options::pass_handle (ACE_HANDLE). Cause the specified + handle to be passed to a child process when it's spawned. Has + meaning mainly for Win32. The handle value will be included + in the spawned process's command line as +H . The passed + handle value will be duplicated if on Win32 less than NT4. + + - ACE_Process_Options::dup_handles (ACE_Handle_Set set) const + Get a copy of the handles the ACE_Process_Options duplicated + for the spawned process. + + - ACE_Process_Options::passed_handles (ACE_Handle_Set set) const + Get a copy of the handles passed to the spawned process. This + will be the set of handles previously passed to pass_handle(). + + - ACE_Process::close_dup_handles (). Close all the handles in + the set obtained from ACE_Process_Options::dup_handles. + + - ACE_Process::close_passed_handles (). Close all the handles in + the set obtained from ACE_Process_Options::passed_handles. + + Also moved the avoid_zombies() functions and flag out of the + non-Win32 section - it can safely be ignored, maintain the + intended semantics, and help apps stay portable. + + * Process.cpp: Implement the above new methods. Also, after spawning + a process, the parent will call the above dup_handles/passed_handles + methods to get any passed handles. The close_*_handles() methods + can then close them. Also, the destructor will call close_dup_handles + to be sure that no handles leak on Win32 less than NT4. + + * Process.i (command_line_buf ()): Added a new arg to receive the + maximum length of the buffer pointed to on return. To maintain + backward compatibility, the arg defaults to 0 (don't return + the max length). + + * ace/Makefile: Moved Handle_Set from the UTILS group to the OS group. + + * ace/ace.icc: Moved Handle_Set from DEMUX to OS. + + * docs/ACE-subsets.html: Move Handle_Set from DEMUX to OS. + +Tue Aug 14 21:42:24 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Fixed a typo. + +Tue Aug 14 21:30:04 2001 Balachandran Natarajan + + * apps/Makefile: Removed JAWS2 and JAWS from the Makefile. There + are several reasons for reverting. This breaks the builds. The + Makefiles in the recursed directories are all messed up. The + library dependencies doesnt seem trivial. Nobody may have time + to fix this. Further, our daily builds return too quickly and we + just needed more files to compile :-). + +Tue Aug 14 14:19:49 2001 Steve Huston + + * ace/Memory_Pool.i (ACE_Local_Memory_Pool dtor): Call release() + here to free up the blocks allocated by the pool, else they're + stranded and can't be freed. + + * ace/Memory_Pool.cpp (ACE_Local_Memory_Pool::release): After + freeing up the blocks, reset the allocated_chunks_ set to be + sure they are also freed, and the chunks can't be freed again. + +Tue Aug 14 14:19:37 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp: Applied the patches sent by Tibor Kiss + for ACE_Log_Msg::close () + +Tue Aug 14 13:55:42 2001 Balachandran Natarajan + + * include/makeinclude/platform_macosx.GNU: Added a patch from John + Michael Zorko . + +Tue Aug 14 10:21:39 2001 Steve Huston + + * ace/Log_Msg.h: Clarified the defaults for the per-process and + per-instance default priority masks. + +Mon Aug 13 14:01:35 2001 Douglas C. Schmidt + + * include/makeinclude/wrapper_macros.GNU: Fixed some hard-coded + uses of .shobj and .obj. Thanks to Shashi Bhushan + for contributing these. + + * ace/CDR_Stream.h: Added comments warning about the deletarious + effects of not aligning buffers to ACE_InputCDR and + ACE_OutputCDR properly. Thanks to Alain Decamps + for reporting this. + +Sun Aug 12 14:46:07 2001 Douglas C. Schmidt + + * ace/OS.cpp (sched_params): Make sure to set errno for Win32 so + that callers can figure out what's going wrong in a consistent + way. + + * ace/Select_Reactor_Base.i (purge_pending_notifications): Don't + try to purge the notifications if notify_handler_ is 0. thanks + to Steve Rahn for reporting this. + +Mon Aug 13 20:09:04 2001 Balachandran + + * ACE version 5.1.19 released. + +Sun Aug 12 02:17:01 2001 Nanbor Wang + + * ace/MEM_Acceptor.cpp: + * ace/MEM_Connector.cpp: On non-Win32 platforms, disable + multithreaded MEM_IO if _ACE_USE_SV_SEM is defined. + +Sun Aug 12 01:27:51 2001 Steve Huston + + * tests/Log_Msg_Test.cpp: Correct const-ness of a pointer + retrieved from ACE_Log_Record::msg_data(). + +Sun Aug 12 00:34:42 2001 Steve Huston + + * ace/Log_Record.h: + * ace/Log_Record.i (msg_data()): Changed ACE_TCHAR *msg_data() + to: const ACE_TCHAR *msg_data (void) const. Makes it safer, + and conforms to all current usage inside ACE. Also makes + C++ Network Programming examples simpler :-) + +Sat Aug 11 09:01:11 2001 Douglas C. Schmidt + + * ace/Thread.h: + * ace/Task.h: Added a list of other flags that can be passed to + activate(). + +Fri Aug 10 19:39:48 2001 Krishnakumar B + + * bin/auto_run_tests.lst: + + Disabled the Blocking_Sync_None test from running under Tru64. + Also changed the config parameter passed to the auto_compile + script from TRU_64 to Tru64 in + ~bugzilla/bin/auto_compile_tru64_cxx. + + This is so that the test is disabled only for the WashU builds. + The reason being that Bala was not too happy with changing the + default values for all the platforms and we also wanted to avoid + more #ifdefs in the code. Other builds might have better values + and the test might succeed. Have to confirm this though. + +Fri Aug 10 17:59:47 2001 Nanbor Wang + + * ace/Svc_Conf_y.cpp: + * ace/OS.h: Added /**/ between #include and and + to avoid warning from CE compiler. + + * ace/ace_dll.vcp: Added Svc_Conf_Lexer_Guard.* to the project. + +Fri Aug 10 13:40:46 2001 Chad Elliott + + * bin/nightlybuilds/builds.lst: + + I didn't realize the LIST definition was needed. I have + added it for the Tru64 4.0f Compaq C++ 6.3-10 build. + +Fri Aug 10 11:45:03 2001 Chad Elliott + + * bin/nightlybuilds/builds.lst: + + Added the Tru64 4.0f Compaq C++ 6.3-10 build. + +Fri Aug 10 11:06:23 2001 Chad Elliott + + * apps/drwho/CM_Client.cpp: + * apps/drwho/CM_Server.cpp: + * apps/drwho/server.cpp: + + Changes to avoid warnings on HP-UX with aCC. + +Thu Aug 9 16:56:05 2001 Balachandran Natarajan + + * ace/Hash_Map_Manager_T.i: + * ace/Hash_Map_Manager_T.cpp: We seem to be re-inventing wheels + again and again. A few months back we had a show stopper in a + beta which was caused by usage of static cast. The cast was not + to the liking of SunCC 4.2. Looks like we had to change a bunch + of static cast sprayed in these two files to a C style cast as + 4.2 doesnt like them. Compilers like Borland handle these + better, but not 4.2. + +Thu Aug 9 11:51:10 2001 Balachandran Natarajan + + * include/makeinclude/platform_hpux_aCC.GNU: On popular mandate we + have the -w flag removed from CCFLAGS in the above file. Looks + like the -w disables lots of warnings that may be useful. + +Thu Aug 9 11:41:01 2001 Balachandran Natarajan + + * ace/CDR_Stream.h (ACE_OutputCDR): Fixed the ambigous constructor + problem. The InputCDR class had two constructors which were + similar if the default values for the arguments were + exercised. Thanks to Torbjorn Backstrom + for reporting this. + +Thu Aug 9 12:31:21 2001 Douglas C. Schmidt + + * ace/OS_String.cpp (strtok_r_emulation): Make sure to check + for a NULL return from strtok() before calling strlen()! Thanks + to Boris Sukholitko for reporting this. + +Wed Aug 08 21:27:50 2001 Ossama Othman + + * bin/nightlybuilds/builds.lst (Debian_Wchar, Debian_GCC_3.0): + + The host these nightly builds were built on is now called + "rumba" (previously "valinor"). Updated the build list + accordingly. + +Wed Aug 08 21:19:09 2001 Ossama Othman + + * tests/Service_Config_Test.UTF-16.conf: + + Removed extraneous characters from this file that were causing + the Service Configurator's underlying lexer to "choke." + +Wed Aug 8 16:23:31 2001 Carlos O'Ryan + + * bin/auto_run_tests.lst: + Add the AMI_Buffering tests to the nightly regression testsuite. + +Wed Aug 8 16:07:26 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: The GIOP lite tests will not work in the + static builds. It was adding more complications to the test + than what is already there to get it working for the static + builds. + +Wed Aug 8 14:06:36 2001 Krishnakumar B + + * ace/config-tru64.h: + + Define ACE_HAS_NONSTATIC_OBJECT_MANAGER for all DEC Unix 4.x + versions. + + * ace/config-cxx-common.h: + + Define ACE_AUTO_PTR_LACKS_RESET if __DECCXX_VER == 60190027. + Thanks to Robert Burke for reporting + this. + + * include/makeinclude/platform_osf1_3.2.GNU: + * include/makeinclude/platform_osf1_4.0.GNU: + * include/makeinclude/platform_osf1_4.0_g++.GNU: + * include/makeinclude/platform_osf1_4.0_kcc.GNU: + * include/makeinclude/platform_osf1_4.0_rcc.GNU: + + Removed the following files. + + * include/makeinclude/platform_osf1_3.2_cxx.GNU: + * include/makeinclude/platform_osf1_4.x_cxx.GNU: + * include/makeinclude/platform_osf1_4.x_g++.GNU: + * include/makeinclude/platform_osf1_4.x_kcc.GNU: + * include/makeinclude/platform_osf1_4.x_rcc.GNU: + + Added new versions of the removed files. + + * include/makeinclude/platform_tru64_pre.GNU: + * include/makeinclude/platform_tru64_post.GNU: + + Moved a lot of duplicated code into these new files. + + * include/makeinclude/platform_tru64_cxx.GNU: + * include/makeinclude/platform_tru64_g++.GNU: + * include/makeinclude/platform_tru64_kcc.GNU: + + Removed a lot of old *cruft* like setting up compilation with + cxx when gcc was asked for etc. etc. Somebody went overboard + with cut'n paste and copied David's changes blindly. Still not + completely satisfied. But it works and is better than before. + This also fixes Bug Id 989. + +Wed Aug 08 11:30:26 2001 Ossama Othman + + * tests/Service_Config_Test.cpp (run_test): + + Don't check if "ACE_USES_WCHAR == 1" since some configurations + neglect to set it an integer value. Instead, just check if it + is defined. + +Wed Aug 8 12:31:51 2001 Balachandran Natarajan + + * tests/MEM_Stream_Test.cpp: Changed a ACE_DEBUG statment with an + LM_WARNING to an LM_DEBUG. + +Wed Aug 08 11:59:45 2001 Nanbor Wang + + * ace/OS.h: Do not redefine ACE_IOV_MAX if it has already been + defined. + +Wed Aug 8 06:21:24 2001 Douglas C. Schmidt + + * ace/Makefile: Moved Message_Block from STREAMS_FILES to + UTILS_FILES. + + * ace/OS_Dirent.inl (closedir): Changed delete d->directory_name_ to + delete [] d->directory_name_. Thanks to Olivier Brunet + for reporting this. + +Tue Aug 7 21:59:42 2001 Douglas C. Schmidt + + * tests/Svc_Handler_Test.cpp: Modified the test to dump the contents + of the temporary file to the log file. + +Tue Aug 7 19:14:24 2001 Douglas C. Schmidt + + * ace/CDR_Stream.i: + * ace/SOCK_Stream.h: Fixed incorrect comments. + Thanks to Alain Decamps for reporting + these. + +Tue Aug 7 15:19:38 2001 Douglas C. Schmidt + + * ace: Changed all uses of IOV_MAX to use the new ACE_IOV_MAX. + * ace/OS.h: Added a new ACE_IOV_MAX that makes it clear this is + an ACE-level #define. We use this in C++NP v1. + +Tue Aug 7 14:16:57 2001 Douglas C. Schmidt + + * ace/Svc_Handler.cpp: Reimplemented the flush() method to use + the new send_n() method on the various ACE I/O classes. + + * ace/SOCK_Stream.{h,i}: + * ace/FILE_IO.{h,i}: Added a new send_n() method that sends all + the s chained through their and + pointers using the underlying OS gather-write operation to + reduce the domain-crossing penalty. + +Tue Aug 7 17:27:16 2001 Balachandran Natarajan + + * tests/Collection_test.cpp: Fixed a compile error with g++. This + is a patch that Johnny Willemsen sent as a part of his last + checkin. + +Tue Aug 07 11:25:36 2001 Nanbor Wang + + * ace/config-freebsd-pthread.h: Made the following definition + valid only for pre-4.2-RELEASE. + + #define ACE_LACKS_GETPGID + #define ACE_LACKS_SETPGID + #define ACE_LACKS_SETREGID + #define ACE_LACKS_SETREUID + + Thanks to Robert Burke for reporting + this. + +Tue Aug 07 16:40:12 2001 Johnny Willemsen + + * ace/Hash_Map_Manager_T.*: + Added const_iterator to the Hash_Map_Manager so that it is + possible to iterate over a hash map in a const method + + The operator= of the iterator now check the value of this to + check that the iterator instance is assigned to itself + + * tests/Hash_Map_Manager_Test.cpp + Extended this test to test the new const_iterator capabilities + of the hash map + + * ace/Unbounded_Set.cpp: + Implemented missing operator* for the const iterator + + * tests/Collection_test.cpp: + Extended test to test the operator* of the + Unbounded_Set_Const_Iterator + +Mon Aug 6 19:58:48 2001 Douglas C. Schmidt + + * ace/config-hpux-11.00.h: Added #define for ACE_HAS_TERM_IOCTLS. + Thanks to Torbjorn Backstrom + for reporting this. + + * ace/OS.h: Added a #include for for HP/UX. Thanks + to Torbjorn Backstrom for + reporting this. + +Mon Aug 6 12:51:35 2001 Douglas C. Schmidt + + * ace/Synch.h (ACE_Null_Mutex>): Fixed a cut&paste error + where acquire_write() should be acquire_read(). Thanks to + Russell Mora for fixing this. + +Mon Aug 06 17:17:33 2001 Ossama Othman + + * ace/Service_Config.cpp: + + Fixed some debugging messages that were not wrapped within an + ACE_LIB_TEXT macro. + + * tests/Service_Config_Test.UTF-16.conf: + + Interim UTF-16 encoded version of the UTF-8 encoded + Service_Config_Test.conf. It was generated on a little-endian + host. Its current purpose is simply to keep our Unicode + regression testing happy until the on-the-fly generation is + implemented. Once we start generating this file on-the-fly + this file should disappear. + + * tests/Service_Config_Test.cpp (run_test): + + When using full Unicode support, use the version of the Service + Configurator file that is UTF-16 encoded (as described above). + +Mon Aug 06 11:10:24 2001 Ossama Othman + + * ace/Svc_Conf_l.cpp: + + More Unicode fixes. Flex's allocation function uses malloc() as + its underlying allocator. Since it only accepts the size in + bytes, allocate "size * sizeof (ACE_TCHAR)" when allocating + string buffers. This should clear up some strange looking text + "unknown character" messages emanating from the Service + Configurator's underlying text scanner. + + Note that these changes do not fix the cause of the "unknown + character." Those fixes should soon follow. + +Mon Aug 06 09:04:04 2001 Ossama Othman + + * ace/Svc_Conf.l: + + Unicode updates. Wrap debugging text within an ACE_LIB_TEXT + macro. + +Sun Aug 5 14:31:10 2001 Balachandran Natarajan + + * tests/run_tests.lst: Ossama suggested that we dont run the + Service_Config_Test in static builds. + +Fri Aug 04 3:33:31 2001 Yamuna Krishnamurthy + + * ace/QoS/SOCK_Dgram_Mcast_QoS.h: + * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: + + Made the open method public so we can open UDP sockets for + non-multicast addresses. + +Fri Aug 03 22:19:31 2001 Steve Huston + + * ace/config-hpux-11.00.h: Added ACE_HAS_WCHAR to build in the + wide char handling since Darrell so nicely straightened all + the muck out throughout ACE. Thanks Darrell! + +Fri Aug 03 22:15:51 2001 Steve Huston + + * ace/Log_Msg.cpp (log): For 'W' and 'w' on HP-UX, the 'ls' and + 'lc' forms are not allowed; HP-UX requires 'S' and 'C'. + +Fri Aug 3 13:10:59 2001 Ossama Othman + + * ace/config-linux-common.h (ACE_UINT64_FORMAT_SPECIFIER, + ACE_SSIZE_T_FORMAT_SPECIFIER, ACE_SIZE_T_FORMAT_SPECIFIER): + + Removed unnecessary and some incorrect format specifiers for the + 32-bit platform case. In particular, the format specifier for + an unsigned 64-bit integer was incorrectly set to "%Lu." "%L" + is the format specifier for a "long double," not a "long long" + integer on 32-bit platforms. "%llu" is the correct format + specifier which `ace/Basic_Types.h' already defines. + +Fri Aug 3 09:55:38 2001 Ossama Othman + + * bin/auto_run_tests.lst: + + Added the new TAO "DLL_ORB" test to the list of tests to run. + +Fri Aug 3 08:26:45 2001 Balachandran Natarajan + + * ace/RW_Process_Mutex.cpp: Added a missing comma in the + constructor. This should fix Win32 compile errors. + +Fri Aug 3 08:07:45 2001 Balachandran Natarajan + + * ace/CDR_Base.cpp: Added a check for a memory allocation failure + in grow (). Thanks to Francis Paul for + pointing this out. + +Thu Aug 2 18:37:23 2001 Douglas C. Schmidt + + * ace/RW_Process_Mutex.cpp: Added ACE_DEFAULT_OPEN_PERMS + to the constructor call to ACE_RW_Process_Mutex so that it does + the right thing on Win32. Thanks to Wayne Erchak + for reporting this. This fixes + bugid 996. + +Thu Aug 02 13:04:19 2001 Steve Huston + + * ace/ace.icc: Added Intrusive_List.cpp to the TEMPLATE_FILES + section. + +Thu Aug 02 06:59:39 2001 Steve Huston + + * ace/Basic_Types.h (ACE_SIZEOF_WCHAR): If ACE_HAS_XPG4_MULTIBYTE_CHAR + is defined, use sizeof(wchar_t) to set ACE_SIZEOF_WCHAR. + +Wed Aug 1 16:05:49 2001 Carlos O'Ryan + + * Merged changes from the fix_886 branch + + Tue Jul 31 09:17:49 2001 Carlos O'Ryan + + * ace/Intrusive_List.h: + * ace/Intrusive_List.inl: + Add new methods to access the head and tail of the list. + + * ace/Intrusive_List.cpp: + Fixed the implementation of remove(), if the element to be + removed was the last on the list it wasn't removed at all. + Left some code to check invariants, have to find a way to keep + that code around with some optional compilation flags. + + Thu Jul 26 16:50:54 2001 Carlos O'Ryan + + * ace/Makefile: + * ace/Makefile.am: + * ace/Makefile.bor: + * ace/Intrusive_List.h: + * ace/Intrusive_List.inl: + * ace/Intrusive_List.cpp: + Add new template to implement intrusive lists, i.e. lists that + assume their elements implement the next() and prev() methods. + + * ace/Intrusive_List_Node.h: + * ace/Intrusive_List_Node.inl: + * ace/Intrusive_List_Node.cpp: + Helper class to add the requirements of ACE_Intrusive_List to + any other class, simply do: + class Foo : public ACE_Intrusive_List_Node + +Wed Aug 1 15:57:35 2001 Ossama Othman + + * ace/Message_Block.cpp (release, release_i): + + Obtain the pointer to the allocator from the object that will be + destroyed before calling ACE_DES_FREE on the object. Previously + we were obtaining the allocator after the object was destroyed, + due to the way the ACE_DES_FREE macro works. Thanks to Hyman + Rosen for reporting the problem, and to + Carlos for suggesting a fix. [Bug 992] + +Wed Aug 1 15:00:21 2001 Douglas C. Schmidt + + * ace/Log_Record.{h,i}: Changed msg_data_len() from a "setter" + to a "getter" method, which makes more sense. Thanks to Patrick + Rabau for reporting this. + +Wed Aug 1 12:43:57 2001 Ossama Othman + + * ace/Svc_Conf_l.cpp: + + Reintegreated Nanbor's change (Wed Jun 13 10:22:10 2001 Nanbor + Wang ) that enables proper handling of + UNICODE Service Configurator directives. + +Wed Aug 1 07:14:42 2001 Douglas C. Schmidt + + * include/makeinclude/platform_vxworks5.x_g++.GNU: Checked in a new + version of this file, which includes support for the Hitachi + chip. Thanks to Frank Wolf for this. + + * ace/Log_Record.cpp (format_msg): Added a cast to fix a warning. + Thanks to Bala for reporting this. + +Tue Jul 31 22:53:26 2001 Ossama Othman + + * tests/libService_Config_DLL.icc: + + New Visual Age project file for the libService_Config_DLL + library. + + * tests/Makefile.am: + + Added build targets/dependencies for the libService_Config_DLL + library. + +Tue Jul 31 22:46:33 2001 Ossama Othman + + * tests/Service_Config_DLL.dsp: + * tests/Service_Config_Test.dsp: + + Removed the static library configurations. The + Service_Config_Test currently requires dynamically loadable + objects. Fixes Win32 "LIB" build failures. + +Tue Jul 31 22:10:48 2001 Ossama Othman + + * tests/Service_Config_Test.cpp (run_test): + + Wrap strings passed to ACE_ARGV::add() within an ACE_TEXT + macro. Fixes Unicode conversion problems. + +Tue Jul 31 16:53:57 2001 Ossama Othman + + * ace/Svc_Conf.h (ace_yyrestart, ace_yy_delete_parse_buffer, + ace_yydirective): + + Remove these global function and variable declarations. They + are no longer used. + +Tue Jul 31 16:43:33 2001 Ossama Othman + + * ace/Basic_Types.h: + + If "__LITTLE_ENDIAN__" is defined then assume that the + architecture is little endian. Some compilers/platforms define + that macro. Suggested by Frank Wolf" . + + * ace/Svc_Conf.h (yy_push_buffer): + * ace/Svc_Conf.l (yy_push_buffer): + * ace/Svc_Conf_l.cpp (ace_yy_push_buffer): + * ace/Svc_Conf_Lexer_Guard.cpp (ACE_Svc_Conf_Lexer_Guard): + * ace/Svc_Conf_Lexer_Guard.h (ACE_Svc_Conf_Lexer_Guard): + + The Service Configurator directive is an "ACE_TCHAR *" not a + "char *". Updated these method/function parameters to accept + the former. Fixes a compile-time problem on "wchar/Unicode" + builds. + +Tue Jul 31 05:34:48 2001 Douglas C. Schmidt + + * ace/OS.h: Removed a spurious WNOHANG definition. Thanks to + Christina Junru for reporting this. + +Mon Jul 30 15:31:42 2001 Douglas C. Schmidt + + * ace/Log_Msg.{h,i,cpp}: Fixed this class so that all of its fields + are ACE_UINT32 or ACE_INT32 internally so that it'll always be + the same on all platforms. Thanks to Fabris + for reporting this. + +Tue Jul 31 10:22:38 2001 Ossama Othman + + * tests/Makefile: + + Only build the Service_Config_Test if shared libraries are + enabled, since it attempts to dynamically load a shared + library. + +Tue Jul 31 10:16:31 2001 Steve Huston + + * ace/Dump.h: Clarified the use of ACE_NDEBUG for turning this + feature off, not on. Thanks to Don Hinton + for noticing this. + +Mon Jul 30 13:41:00 2001 Nanbor Wang + + * ace/OS.cpp (ACE_Time_Value::FILETIME_to_timval_skew): Updated + docuementation to better explain the meaning of this constant. + Thanks to Mike Vitalo for motivating the + change. + +Mon Jul 30 09:43:06 2001 Douglas C. Schmidt + + * ace/OS.i (mutex_lock): Missing an argument to the ACE_OSCALL macro. + Thanks to Bala for reporting this. + +Mon Jul 30 05:43:23 2001 Douglas C. Schmidt + + * ace/Synch.h (ACE_Semaphore): Corrected the comment on + how to get POSIX Pthreads "implementation" of semaphores (which + supports the timed acquire() option). Thanks to Grzegorz + Sikora for reporting this. + +Sun Jul 29 19:03:56 2001 Douglas C. Schmidt + + * tests/Thread_Mutex_Test.cpp (test): Fixed this test to be + consistent wrt the errno for the timed acquire(), which should + now always be set to ETIME rather than ETIMEDOUT and EBUSY. + + * ace/Message_Queue_T.cpp (wait_not_full_cond, + wait_not_empty_cond): Fixed a nasty bug with the semaphore + version of ACE_Message_Queue that would have reared it's ugly + head if ACE_NULL_SYNCH were used when + ACE_HAS_OPTIMIZED_MESSAGE_QUEUE was enabled. Fixing this bug + also triggered the following changes. + + * ace/OS.{h,i}: Added support for ACE_OS::sema_wait(), + ACE_OS::mutex_lock(), ACE_OS::thread_mutex_lock() that take + ACE_Time_Value *. + + * ace/OS.i: For some odd reason the timeouts for the timed version + of mutex_lock() were returning a random smattering of errnos. + I've changed them to all be consistent with the + ACE_Condition_Thread_Mutex::wait() errno, which is ETIME. + + * ace/Synch.h: Updated the documentation of all the timed + acquire() methods to explain what the various return values + mean. + +Sun Jul 29 22:10:40 2001 Ossama Othman + + * tests/Service_Config_DLL.cpp: + * tests/Service_Config_DLL.h: + * tests/Service_Config_DLL.dsp: + * tests/Service_Config_DLL_Export.h: + * tests/Service_Config_Test.conf: + + New files associated with the existing Service_Config_Test. + They are used when testing the reentrance/thread-safety of the + Service Configurator, in addition to testing the Service + Configurator's ability to handle nested processing of Service + Configurator directives. + + * tests/Service_Config_Test.cpp (run_test): + + Add arguments to the Service Configurator argument vector to + make it process the newly added `Service_Config_Test.conf' + file. + + (main): + + Make the ACE_Thread_Manager wait for all running threads before + exiting the test. Processing the `Service_Config_Test.conf' + file causes some threads to be spawned. + +Sun Jul 29 19:19:20 2001 Ossama Othman + + * ace/Service_Config.cpp (process_directive, process_directives): + + Wrap the ACE_GUARD_RETURN macro within an ACE_MT block. The + ACE_Static_Object_Lock declaration is only visible if + ACE_HAS_THREADS is defined. This truly fixes the + single-threaded build problems. + +Sun Jul 29 19:06:11 2001 Ossama Othman + + * ace/Svc_Conf.y (ace_obstack): + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_l.cpp: + + UNICODE updates and fixes. + +Sun Jul 29 10:50:45 2001 Ossama Othman + + * ace/Svc_Conf_Lexer_Guard.cpp: + + There is no longer any need to include "ace/Object_Manager.h" + + * ace/Service_Config.cpp: + + Include "ace/Object_Manager.h" to pull in the definition of + ACE_Static_Object_Lock. Fixes a problem found in Sun builds and + single-threaded builds. + +Sat Jul 28 23:03:24 2001 Ossama Othman + + The following are changes that make the Service Configurator + reentrant and thread-safe. + + * ace/Svc_Conf.y: + + Generate a pure (reentrant) parser using Bison. BYACC doesn't + support generation of reentrant parsers. + + * ace/Svc_Conf.l: + + Implemented "buffer stack" support. This feature makes it + possible to process Service Configurator directives within a + Service Object's init() method, i.e. support nested directive + processing. + + (ace_yyerrno): + + Moved declaration of ace_yyerrno from this file to + `Svc_Conf.y'. ace_yyerrno was not used in the generated + scanner. It was only used in the generated parser. + + (yy_delete_parse_buffer): + + There is no longer any need for this function. The lexer buffer + stack implementation handles memory management of lexer buffers. + + (yywrap): + + Do not call yy_delete_parse_buffer(). It is no longer necessary + to do so, in addition to the fact that that function was + removed (as described above). + + (<>): + + Do not call ACE_YY_NEW_FILE in this rule. The new buffer stack + implementation handles the buffer switching that ACE_YY_NEW_FILE + did, and more. + + * ace/Svc_Conf_Tokens.h: + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + + Regenerated these files using updated Bison/YACC and FLEX input + files to pull in support for reentrant parsing and nested + processing of Service Configurator directives. + + * ace/Svc_Conf.h (ace_yy_push_buffer, ace_yy_pop_buffer): + + Added function prototypes for the newly implemented lexer buffer + stack manipulation functions. + + (ace_yylex): + + Added ACE_YYSTYPE parameter to this functions signature, as + required by the new reentrant parser support. + + (ACE_SERVICE_DIRECTIVE_STACK_DEPTH): + + New symbolic constant that defines the maximum supported depth + for nested Service Configurator processing. The current default + is 8. + + (ACE_YY_INPUT): + + No longer any need to redefine this macro to support scanning of + Service Configurator directive strings. The new lexer buffer + stack implementation provides support for lexer buffer scanning + from a string instead of a pointer to "FILE." + + (ace_yydirective): + + This global variable is no longer needed due to the fact that + the new buffer stack implementation handles directives read from + both a string and a file. + + * ace/Service_Config.cpp: + + (process_directive, process_directives): + + Obtain a recursive lock before manipulating the lexer buffer + stack, and invoking the parser and scanner. This makes + invocation of the scanner thread-safe. + + The new lexer buffer stack implemenation obviates the need to + call yyrestart() since buffer switching is handled by the stack + implementation. + + (open_i, close): + + No need to deallocate the lexer buffer since the buffer stack + implementation handles that. + + * ace/Svc_Conf_Lexer_Guard.h: + * ace/Svc_Conf_Lexer_Guard.cpp: + + New "guard" class that makes lexer buffer stack pushing and + popping exception-safe. + + * ace/Makefile: + * ace/Makefile.am: + * ace/Makefile.bor: + * ace/ace.icc: + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: + + Added Svc_Conf_Lexer_Guard.* sources to these Makefiles and + project files. + +Sat Jul 28 14:58:30 2001 Douglas C. Schmidt + + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: Reran BYACC and FLEX on the Svc_Conf.l and + Svc_Conf.y files to regenerate them. Thanks to Bala for + motivating this. + + * netsvcs/clients/Tokens/collection/Makefile, + netsvcs/clients/Tokens/deadlock/Makefile, + netsvcs/clients/Tokens/invariant/Makefile, + netsvcs/clients/Tokens/mutex/Makefile, + netsvcs/clients/Tokens/rw_lock/Makefile, + examples/ASX/CCM_App/Makefile, + examples/Logger/Acceptor-server/Makefile, + examples/Reactor/Multicast/Makefile, + examples/Reactor/Ntalker/Makefile, + examples/Shared_Malloc/Makefile, + performance-tests/TCP/Makefile, + performance-tests/UDP/Makefile: Removed the line + include $(ACE_ROOT)/include/makeinclude/rules.LIB.GNU + so that these projects will build correctly on VxWorks with + Make 3.79.1. Thanks to Frank Wolf for reporting this. + +Fri Jul 27 11:24:50 2001 Douglas C. Schmidt + + * ace/Svc_Conf.y: Allow quoted strings as the pathname. Thanks + to Kevin Burge for suggesting this + and providing the fix. + + * ace/Svc_Conf.l: Added support for "~" in pathnames to support + Win32isms. Thanks to Kevin Burge + for suggesting this and providing the fix. + + * ace/Refcounted_Auto_Ptr.i (assign): Fixed the code to avoid a + race condition. Thanks to Charlie Duke for this fix. + +Thu Jul 26 08:15:36 2001 Douglas C. Schmidt + + * include/makeinclude/platform_vxworks5.x_g++.GNU: Changed + $PATH to $(PATH). Thanks to Frank Wolf for reporting this. + +Wed Jul 25 17:46:58 2001 Douglas C. Schmidt + + * ace/Asynch_Acceptor.{h,cpp}: Added an asynch_accept() accessor + method. Thanks to Craig L. Ching for + reporting this. + +Wed Jul 25 17:36:09 2001 Douglas C. Schmidt + + * ace/Refcounted_Auto_Ptr.i: Added a lock for the reference count + to the assign() method. Thanks to Charlie Duke + for reporting this. + +Fri Jul 27 23:17:31 2001 Steve Huston + + * ace/ace_wchar.h: If ACE_HAS_XPG4_MULTIBYTE_CHAR is set, then + also set up definitions for functions that are not present + (ACE_LACKS_ITOW, ACE_LACKS_WCSICMP, ACE_LACKS_WCSNICMP, + ACE_LACKS_WCSDUP). + + * ace/ace_wchar.inl: If not ACE_WIN32, include to see + strlen(). + + * ace/OS_String.inl (strstr): The XPG4 multibyte version of + strstr() is wcswcs(), whereas the ANSI C / UNIX98 version is + wcsstr(). So if ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, use + wcswcs. + +Fri Jul 27 21:52:48 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the IDL_Cubut test with GIOP Lite + script, to our daily builds. + +Fri Jul 27 16:50:49 2001 Steve Huston + + * tests/Log_Msg_Test.cpp: Silence a compile warning in g++. + +Fri Jul 27 12:18:49 2001 Steve Huston + + * ace/Log_Msg.cpp (log): Fixed compile error - missing "" around + 's' for the %S case. + +Fri Jul 27 11:07:26 2001 Chad Elliott + + * ace/OS.h: + + After conversation with Steve Huston, I am reverting his change + pertaining to HPUX from "Tue Jul 10 18:15:39 2001 Steve Huston + ". + +Fri Jul 27 10:57:24 2001 Chad Elliott + + * ace/SOCK_Dgram_Bcast.cpp: + + Fix the ACE_SOCK_Dgram_Bcast::mk_broadcast() which was completely + broken on AIX. The broadcast_client in docs/tutorials/008 now + works with the help of this change. + +Thu Jul 26 22:09:19 2001 Steve Huston + + * ace/Log_Msg.cpp (log): Extend behavior so that all printf + formatting conversion specifiers can be used with all legal + ACE_Log_Msg format characters. This allows the caller to line + up columns on any field, like line number or program name, or + thread ID. Thanks to Paul Caffrey for + motivating this extension. + + * tests/Log_Msg_Test.cpp: Added a new function, test_format_specs, + that verifies the formatting. Right now it does not detect the + correctness of the strings produced - they have to be examined + in the log file to check. This needs to be fixed still. + +Thu Jul 26 11:48:16 2001 Carlos O'Ryan + + * bin/count_lines: + Add a few new file types. + +Wed Jul 25 23:49:43 2001 Krishnakumar B + + * include/makeinclude/platform_tru64_g++.GNU: + + Fixed some missing defines in the Makefile for DEC Unix versions + 4.0D, 4.0E. We don't support or suggest this combination. Hence + the oversight in missing the needed defines. + + Thanks to Martin Krumpolec for reporting this. + +Wed Jul 25 23:49:00 2001 Craig Rodrigues + + * include/makeinclude/wrapper_macros.GNU: + + Remove extraneous rapi = 0. + +Wed Jul 25 18:53:18 2001 Ossama Othman + + * html/index.html: + + Added CORBA Security Service main page link to the list of + documentation. + +Wed Jul 25 17:41:43 2001 Ossama Othman + + * ltcf-c.sh: + * ltcf-cxx.sh: + * ltconfig: + + Removed these libtool related files. New versions of libtool + (GNU libtool >= 1.4b) no longer use them. + + * config.guess: + * config.sub: + * ltmain.sh: + + Removed these files. We no longer need to keep custom copies + lieing around since libtool 1.4b includes all of our local + changes (i.e. our changes have been folded into the upstream + libtool sources). + + * install-sh: + * missing: + * mkinstalldirs: + + Removed these files. Automake will automatically add these when + necessary. + +Wed Jul 25 16:29:48 2001 Steve Huston + + * tests/Max_Default_Port_Test.cpp: ACE-ified the code and fixed + a number of ACE_DEBUG %p directives without a corresponding + string. Also, closed a 2 handle-per-try handle leak, which + may have affected test results on some platforms. + * tests/Max_Default_Port_Test.h: Added a destructor to the + test class - it's used to close the acceptor handle down. + +Wed Jul 25 15:21:22 2001 Krishnakumar B + + * ace/OS.h: + + Fixed the _XOPEN_SOURCE checking to _XOPEN_SOURCE < 500 to fix + incorrect declaration of prototype. This fixes the warnings when + compiling with gcc-3.0. Thanks to Ossama for suggesting the fix. + +Wed Jul 25 08:05:45 2001 Balachandran Natarajan + + * tests/Thread_Pool_Reactor_Resume_Test.h: + * tests/Thread_Pool_Reactor_Resume_Test.cpp: Fixed a subtle race + condition. This hardly showed up in many of our daily + builds. The race condition had to be fixed to show the users of + the cautious approach that one needs to take if they are + resuming the handle in the application itself. + +Tue Jul 24 16:41:57 2001 Joe Hoffert + + * ace/Thread_Manager.cpp : + Added "&& ! defined (ACE_HAS_PACE)" ifdefs to already existing + #if defined (VXWORKS) sections of code to get ACE_HAS_PACE to + compile on VxWorks. + + * ace/OS.i : + * ace/OS.cpp: + Fixed formatting of some comments and added needed PACE + calls for ACE_HAS_PACE on VxWorks. + + * ace/OS.h : + Put #if !defined guards around the ACE_THR_PRI* macros + so that we can define them in the config*.h files if + they need to be corrected. For instance, ACE_THR_PRI_OTHER_MIN + has a different value on SunOS 5.8 than it does on SunOS 5.7, + i.e., -20 vs. 0 respectively. + + Also, added some needed typedefs and #define for ACE_HAS_PACE + on VxWorks and updated some comments concerning ACE_OS::thr_create + flags. + + * ace/Sched_Params.cpp (priority_min, priority_max): + Changed to return correct thread priority min/max for + Solaris threads. We now use the ACE_PRI_THR* macros + for these values while still calling ACE_OS::priority_control + for process and LWP priorities. + + * ace/config-sunos5.8.h: + Added setting of ACE_THR_PRI_OTHER_MIN to be correct + for SunOS 5.8. + +Tue Jul 24 13:47:32 2001 Balachandran Natarajan + + * ace/SSL/SSL_Asynch_Stream.h (ACE_SSL_Asynch_Stream): + * ace/SSL/SSL_Asynch_Stream.cpp: Added a open () method that + matches the signature of ACE_Service_Handler. This should fix + the warnings in Borland builds that complain about hiding + the virtual functions. + +Tue Jul 24 10:56:04 2001 Ossama Othman + + * bin/generate_doxygen.pl (TAO_DOCS): + + Added "tao_security" and "tao_ssliop" Doxygen configurations to + the list of documentation to generate. + +Tue Jul 24 07:45:03 2001 Douglas C. Schmidt + + * ace/Containers_T: Fixed some problems with the lack of + const for the ACE_DLList and ACE_Double_Linked_List classes. + Thanks to Michael Kircher for reporting this. + + * ace/config-cygwin32-common.h: Removed the ACE_LACKS_FORK + macro since this is apparently working on Cygwin. Thanks tj + Stefan Kluehspies for reporting + this. + + * ace/config-cygwin32.h: Removed the #define _CLOCKID_T + macro, which should now be handled by the following change. + + * ace/OS.h: Added a #defined for _CLOCKID_T_. Thanks to + Stefan Kluehspies for + reporting this. + +Tue Jul 24 11:10:59 2001 Krishnakumar B + + * ace/OS.h: + + Fix the compile errors seen on gcc-3.0 with -pedantic and + -Wno-long-long. This should fix all the errors. + +Tue Jul 24 10:07:31 2001 Chad Elliott + + * include/makeinclude/platform_sunos5_g++.GNU: + + Add an optimize override to 0 for g++ 3.0. The compiler breaks on + a tremendous amount of files, even with -O. + +Tue Jul 24 10:04:52 2001 Chad Elliott + + * ace/INET_Addr.cpp: + + Corrected a run-time error on Tru64 with gcc. Any executable + that called ACE_INET_Addr::get_host_name() would core dump. + This was caused by the call to ACE_OS::gethostbyaddr_r(). + +Tue Jul 24 08:20:02 2001 Chad Elliott + + * include/makeinclude/platform_aix_ibm.GNU: + + Change -O2 to -O. The optimizer seems to be a tiny + bit broken, which is demonstrated by a few TAO and orbsvcs + tests. + +Mon Jul 23 17:38:46 2001 Ossama Othman + + * etc/tao_security.doxygen: + * etc/tao_ssliop.doxygen: + + New Doxygen files for TAO's CORBA security libraries. + +Mon Jul 23 13:48:26 2001 Ossama Othman + + * ace/MEM_Connector.cpp (connect): + + Disable non-blocking on the stream after its handle has been + set. Previously, non-blocking was disabled on an uninitialized + MEM_Stream, after which the handle was set (i.e. initializing + the stream). In order to properly disable non-blocking on a + stream, its handle must be set first since ioctl() operations + are typically performed on the underlying stream handle. + +Mon Jul 23 13:06:39 2001 Steve Huston + + * ace/WFMO_Reactor.cpp (event_handling): Corrected the loop check + to account for a zero ACE_Time_Value *, avoiding a crash in + tests/Reactor_Timer_Test, as well as any other program that + called ACE_Reactor::handle_events with a zero timer pointer. + +Mon Jul 23 10:39:55 2001 Nanbor Wang + + * ace/OS.h: Added /**/ between #include and to + avoid warning from CE compiler. + + * ace/ace_dll.vcp: Added Obchunk.cpp to the project. + +Sun Jul 22 08:19:43 2001 Douglas C. Schmidt + + * ace/config-cygwin32.h: ADded a #define for_CLOCKID_T. Thanks to + Christophe Galerne for + reporting this. + + * ace/Log_Record.cpp (priority_names_): Added commas after the + 'ACE_LIB_TEXT ("LM_UNK(04000)")' lines. Thanks to Steve Harris + for reporting this. + +Sat Jul 21 19:56:08 2001 Douglas C. Schmidt + + * ace/Map_T.{h,i}: Made current_value() a const member function. + Thanks to Johnny Willemsen for reporting this. + +Fri Jul 20 10:16:46 2001 Douglas C. Schmidt + + * ace/Connector.cpp (create_AST): Replaced some calls to + sh->get_handle () with a cached value of handle. This fixes a + bug with gcc 2.96 on Tornado 2.1/VxWorks for SuperH. Thanks to + Frank Wolf for reporting this. + + * examples/Connection/non_blocking/CPP-acceptor.cpp: + * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: + * examples/Connection/non_blocking/CPP-connector.cpp: Changed the + SH macro to SVH to avoid clashes with a macro in VxWorks. + Thanks to Frank Wolf for reporting this. + +Thu Jul 19 06:55:07 2001 Douglas C. Schmidt + + * ace/config-g++-common.h: Version 2.96 of g++ on VxWorks + is missing auto_ptr, so let's add the ACE_LACK_AUTO_PTR flag + there. Thanks to Frank Wolf for suggesting this. + +Fri Jul 20 09:47:38 2001 Nanbor Wang + + * ace/Log_Msg.cpp: Fixed WinCE errors. CE does not support + UNIX_Syslog. + +Thu Jul 19 22:39:32 2001 Nanbor Wang + + * tests/MEM_Stream_Test.cpp: + * ace/MEM_IO.h: + * ace/MEM_IO.i: + * ace/MEM_IO.cpp: On non-Win32 platforms, disable multithreaded + MEM_IO if _ACE_USE_SV_SEM is defined. + +Thu Jul 19 15:25:11 2001 Paul Calabrese + + * ace/MEM_Acceptor.i (mmap_prefix): + + Fix case where a null pointer is passed in. + +Thu Jul 19 06:55:07 2001 Douglas C. Schmidt + + * ace/Connector.cpp (connect_svc_handler): Missed one change... + Thanks to Bala for reporting this! + + * include/makeinclude/platform_vxworks5.x_g++.GNU (HOST_DIR): Added + support for the SH7700 and SH7700LE. Thanks to Frank Wolf + for reporting this. + + * ace/OS.i (truncate): Make sure to close the handle that we + opens. Thanks to Lothar for reporting this. + + * ace/Connector.cpp: Changed the SH macro to SVH to avoid clashes + with a macro in VxWorks. Thanks to Frank Wolf + for reporting this. + +Wed Jul 18 13:15:06 2001 Douglas C. Schmidt + + * ace/OS_Dirent.cpp (scandir_emulation): Removed the calls to the + ACE_ERROR_RETURN macros to avoid dependencies on ACE_Log_Msg + from within the ACE_OS layer. Thanks to Bala for pointing this + out! + + * ace/ACE.{h,cpp}: Added a new wrapper method for ACE_OS::select() + that uses ACE_Handle_Set *'s rather than fd_set *'s. This is + motivated by work Steve Huston and I are doing on our new book + "C++ Network Programming: Resolving Complexity with ACE and + Patterns." + + * ace/Malloc_T.i (release): Removed an unnecessary "else" to + make gcc 2.96 happy. Thanks to Frank Wolf for + reporting this. + + * Happy birthday to me and Angelo Corsaro! + +Tue Jul 17 00:34:40 2001 Douglas C. Schmidt + + * ace/SString.h (ACE_Tokenizer): Make sure that the data members + are protected, not private... Thanks to Martin Krumpolec for + reporting this (again)! + +Wed Jul 18 16:40:56 2001 Irfan Pyarali + + * ace/Log_Msg.cpp (program_name): Undid the following changes: + + ChangeLogTag:Tue Jul 10 11:32:26 2001 Tibor Kiss + + Tibor will be looking into this further since this change + currently causes shutdown problems on Win2000. + +Wed Jul 18 15:59:03 2001 Krishnakumar B + + * ace/config-tru64.h: + + Removed _LIBC_POLLUTION_H. It seems that this macro is causing + problems for some users. Thanks to Pierre Oberson + for prompting this fix. + +Tue Jul 17 13:00:11 2001 Balachandran Natarajan + + * tests/run_test.lst: Enabled the MEM_Stream test on Linux. + +Mon Jul 16 14:59:32 2001 Douglas C. Schmidt + + * ace/Memory_Pool.h (ACE_Shared_Memory_Pool): Added a comment + that discourages developer from using the ACE_Shared_Memory_Pool + and points them to the ACE_MMAP_Memory_Pool instead. Thanks to + Johnny Chen for motivating this. + + * ace/OS_Dirent.cpp (readdir_emulation): Fixed a handle leak + in the event that errors occur. Thanks to Kevin Burge + for reporting this. + + * ace/Log_Msg_UNIX_Syslog.cpp (open): Add an ACE_const_cast() + to the program name for platforms like LynxOS whose openlog() + method is char * rather than const char *. Thanks to Bala for + reporting this. + +Sun Jul 15 11:06:33 2001 Douglas C. Schmidt + + * ace/Log_Msg_NT_Event_Log.cpp: Fixed the implementation so that + it's consistent with the new program_name() features. Thanks to + Chris Kohloff for this fix. + +Sun Jul 15 11:04:26 2001 Carlos O'Ryan + + * ace/SSL/ACE_SSL.dsp: + Removed references to $OPENSSL_ROOT, the user should configure + those in the Tools -> Option -> Directories tab. + +Fri Jul 13 23:02:46 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_Stream.h: + * ace/SSL/SSL_Asynch_Stream.cpp: + * ace/SSL/SSL_Asynch_BIO.h: + * ace/SSL/SSL_Asynch_BIO.cpp: + + Only support asynchronous SSL streams when using OpenSSL > + 0.9.5a. The BIO method signatures changed in OpenSSL 0.9.6. + +Fri Jul 13 22:48:56 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_BIO.cpp (methods_ACE): + + Removed excess element in aggregate initializer. + +Fri Jul 13 22:29:01 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_Stream.cpp (print_error): + + The OpenSSL ERR_error_string_n() function is only supported in + OpenSSL 0.9.6 or better. + +Fri Jul 13 14:59:18 2001 Alexander Libman + + * ace/WIN32_Asynch_IO.h (ACE_WIN32_Asynch_Result): + * ace/WIN32_Asynch_IO.cpp (set_error, set_bytes_transferred): + + Added new methods set_error() and set_bytes_transferred(). + Needed for below changes and new asynchronous SSL stream + implementation. + + * ace/WIN32_Proactor.cpp (handle_events): + + Fixed error handling semantics so that it is consistent with the + POSIX Proactor error handling semantics. + + (post_completion): + + Pass the amount of bytes transferred and the completion key to + the Win32 PostQueuedCompletionStatus() function. The error, if + any, will later be extracted in the handle_events() method. + +Fri Jul 13 15:59:45 2001 Douglas C. Schmidt + + * netsvcs/servers/main.cpp (main): The server was always outputing + LM_DEBUG information, even when the program was not run with the + -d command line argument. Therefore, changed the following + lines from: + + if (ACE::debug () == 0) + ACE_Log_Msg::disable_debug_messages (); + + to: + + if (ACE::debug () == 0) + ACE_LOG_MSG->priority_mask (~LM_DEBUG, ACE_Log_Msg::PROCESS); + + Thanks to Jerry D. De Master for + reporting this fix. + +Fri Jul 13 12:16:03 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_BIO.h: + * ace/SSL/SSL_Asynch_BIO.cpp: + * ace/SSL/SSL_Asynch_Stream.h: + * ace/SSL/SSL_Asynch_Stream.cpp: + + New asynchrounous SSL stream implementation contributed by + Alexander Libman . + + * ace/SSL/ACE_SSL.dsp: + * ace/SSL/Makefile: + * ace/SSL/Makefile.bor: + + Added new asynchronous SSL stream source files to these + Makefiles and project files. + +Fri Jul 13 09:40:08 2001 Jerry D. De Master + + * ace/Log_Msg.*, + ace/Logging_Strategy.*, + ace/Log_Msg_UNIX_Syslog.*: + Applied patches to ACE_Log_Msg, ACE_Logging_Strategy, and + ACE_Log_Msg_UNIX_Syslog that are required to add the program + name logging strategy option ('n') and to initialize the UNIX + syslog facility with the program name. Also included are Boris + Kolpackov patches for ACE_LACKS_IOSTREAM_TOTALLY + to ACE_Logging_Strategy. + +Thu Jul 12 19:54:27 2001 Ossama Othman + + * examples/Registry/test_registry_update.cpp (main): + + Fixed unused argument warning. + +Thu Jul 12 19:57:12 2001 Frank Hunleth + + * bin/auto_run_tests.lst: + + Added TAO/tests/RTCORBA/ORB_init to the auto run list. + +Thu Jul 12 17:11:35 2001 Krishnakumar B + + * bin/nightlybuilds/builds.lst (WEB): + + Temporarily removed the IA-64 build till some issues get sorted + out. + +Thu Jul 12 06:01:03 2001 John Michael Zorko + + * netsvcs/lib/Server_Logging_Handler.cpp: + Added an an additional #define in config-macosx.h called + ACE_HAS_MACOSX_DYLIB, and checked to see if this was _not_ + defined before instantiating the offending template in + Server_Logging_Handler.cpp. OS X has this thing about .dylibs + (OS X version of .so) where they can't have any duplicate + symbols, which is why libnetsvcs wasn't building on OS X + earlier. This fixes that. + + * include/makeincludes/platform-macosx.GNU: Added -lACE to the + LIBS line, which fixed the majority of the build problems. + + * ace/config-macosx.h: Added the ACE_HAS_MACOSX_DYLIB #define + mentioned above. + +Thu Jul 12 06:01:03 2001 Douglas C. Schmidt + + * ace/TLI_Connector.cpp (complete): Changed ACE_OS::t_rcvconnect() + to simply t_rcvconnect(). Thansk to Andreas Geisler for + reporting this. + +Thu Jul 12 09:43:36 2001 Ossama Othman + + * ace/FILE_Connector.h (ACE_FILE_Connector, connect): + + Removed the default O_EXCL flag I added a few days ago. It is + mostly useful for preventing symbolic link attacks in a + directory with global write permissions. Pass the + responsibility of using the O_EXCL flag when necessary on to the + application developer. + +Wed Jul 11 22:31:50 2001 Krishnakumar B + + * include/makeinclude/rules.local.GNU (clean.local): + + Added ti_files to remove the template cache generated by KCC. + + * ace/TLI_Acceptor.cpp(open_new_endpoint): + + Fixed a small typo causing compilation errors under Tru64. + +Wed Jul 11 13:06:33 2001 Steve Huston + + * tests/Log_Msg_Test.cpp: Changed the ostream test to close the + under-test ostream file before trying to open it and read the + contents. Avoids the "already open" error now that + ACE_FILE_Connector includes O_EXCL by default, and avoids any + potential file buffering issues reading an already-open file. + +Wed Jul 11 08:31:02 2001 Jeff Parsons + + * tests/Dirent_Test.cpp: + + Wrapped a string literal with ACE_TEXT, to get rid of a Win2000 + WChar build error. + +Wed Jul 11 06:41:43 2001 Douglas C. Schmidt + + * ace/TLI_Stream.cpp, + * ace/TLI_Connector.cpp, + * ace/TLI_Acceptor.cpp: Added enhancements so that the code would + work on Win32. Thanks to Andreas Geisler + for reporting this. + +Tue Jul 10 19:26:15 2001 Ossama Othman + + * ace/ace_dll.dsp: + + Disabled generation of source browse information. It was + causing problems on some existing builds that didn't use it. + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + Removed certificate verification code. It is up to the + application, not the ACE_SSL library, to perform proper + certificate verification. + +Tue Jul 10 23:02:00 2001 Craig Rodrigues + + * tests/Log_Msg_Test.cpp: + Fix test so it doesn't open output file to write to twice. + Thanks to Ossama for finding it. + +Tue Jul 10 19:10:19 2001 Steve Huston + + * ace/ace.icc: Corrected the mis-applied patch for ace.icc in + Mon Jul 09 19:12:42 2001 Steve Huston + +Tue Jul 10 16:01:52 2001 Ossama Othman + + * THANKS: + + Added Sangeetha Ramadurai to + the hall of fame. + +Tue Jul 10 18:15:39 2001 Steve Huston + + * ace/WFMO_Reactor.cpp (event_handling): Move the logic for + noticing that the wait timed out, but did not expire any + timers, into this function. Will remove it from Reactor.cpp, + to properly move the fix into handle_events() rather than + needing to call run_reactor_event_loop to get it right. + * ace/Select_Reactor_T.cpp - still need to add similar logic here. + + * ace/config-sunos5.6.h: Re the following: + Mon Jul 2 15:26:32 2001 Nanbor Wang + Replaced ACE_HAS_POSIX_SEM, and left ACE_LACKS_NAMED_POSIX_SEM out. + Solaris does indeed have POSIX semaphores in 2.6 and later, but + requires the changes to OS.i below to work right. + + * ace/OS.h: For ACE_PROC_PRI_OTHER_MIN (and MAX), on HP-UX, + convert the HP-UX priority value to the POSIX range. + + * ace/OS.i (ACE_OS::sema_init, named POSIX semaphore): On Solaris + and HP-UX, the name of a POSIX semaphore needs to start with + a slash (further restricted on Solaris). Enforce that here by + prepending a slash, or by chopping off parts of the name. + +Tue Jul 10 16:08:04 2001 Krishnakumar B + + * include/makeinclude/platform_osf1_4.0.GNU: + + Fixed the default flags so that it enables the user to override + settings. Now that the long pending fix to wrapper_macros.GNU is + through, this should work fine now. + +Tue Jul 10 13:37:31 2001 Jeff Parsons + + * ace/OS_Dirent.cpp (readdir_emulation): + + Removed the hard cast to char* of one of the two arguments in + a call to strcpy. In the WChar win32 build, this cast was + causing the source and target strings to be of different widths. + +Tue Jul 10 11:32:26 2001 Tibor Kiss + + * ace/Log_Msg.cpp: + Completed the ACE_Log_Msg::close method with the + ACE_Thread::keyfree (log_msg_tss_key_) and key_created_ = 0; to + ensure restartability by multiple successive ACE::init and + ACE::fini calls. This fix prevent leaks from occurring when + ACE::init() and ACE::fini() are called multiple times. + +Tue Jul 10 11:12:00 2001 Chris Gill + + * ace/OS_Dirent.{h, inl}: refactored XDIR, dirent usage for pSOS - + user is no longer responsible for buffer deallocation after each + readdir call, only for passing the pointer returned from opendir + into closedir when all done. ACE_DIR structure is now used + consistently for all pSOS dirent calls. + +Tue Jul 10 06:06:07 2001 Douglas C. Schmidt + + * ace/Service_Repository.h: Updated the insert() comment to + clarify the return values. Thanks to Johnny Willemsen for + suggesting this. + + * ace/Service_Repository.{h,i}: Made the current_size() and + total_size() methods const. Thanks to Johnny Willemsen for + suggesting this. + + * ace/Service_Repository.h: Fixed a typo in the comments. Thanks + to Johnny Willemsen for reporting this. + +Tue Jul 10 08:39:04 2001 Chad Elliott + + * ace/config-vxworks5.x.h: + + Added the macro ACE_LACKS_UNIX_SYSLOG. + +Tue Jul 10 08:26:57 2001 Chad Elliott + + * ace/Log_Msg_UNIX_Syslog.cpp: + + Added a macro, ACE_LACKS_SETLOGMASK, for platforms that have + syslog, but don't have setlogmask(). + + * ace/config-chorus.h: + + ChorusOS 4.0.1 happens to be one of them. + +Tue Jul 10 09:00:12 2001 Johnny Willemsen + + * ace/OS_Dirent.h + Made the member 'd_name' of the 'dirent' struct non-const, because + BCB had problems with it + +Mon Jul 09 22:41:43 2001 Ossama Othman + + * include/makeinclude/wrapper_macros.GNU (exceptions): + + Include platform_macros.GNU before the default for "exceptions" + is set. This fixes a problem where the default native + exceptions setting in platform_linux.GNU was not set due to the + fact that it was previously set in wrapper_macros.GNU. Thanks + to Hans Utz for tracking down + the problem. + +Mon Jul 9 16:40:02 2001 Ossama Othman + + * ace/Dirent_Selector.cpp (ACE_Dirent_Selector): + + Correct order of initialization of members to match order of + declaration. Fixes a warning issued from GCC. + + * ace/Dirent_Selector.inl: + + Added missing RCS ID keyword. Fuzz was whining about the lack + of it. + + * ace/Dirent_Selector.h: + + Corrected some Doxygen comments. + +Mon Jul 09 19:12:42 2001 Steve Huston + + * ace/ace.icc: Added Log_Msg_UNIX_Syslog and Log_Msg_NT_Event_Log + modules to the LOGGING component. Added Dirent_Selector to the + UTILS component. + +Mon Jul 9 15:59:56 2001 Joe Hoffert + + * ace/config-lynxos.h: + Added ACE_LACKS_MKSTEMP since LynxOS doesn't seem to have + this. + +Mon Jul 9 15:28:29 2001 Jeff Parsons + + * ace/Dirent_Selector.cpp: + * ace/Dirent_Selector.h: + + Added ACE_INLINE guards around inclusion of Dirent_Selector.inl. + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: + + Added Dirent_Selector.{h,i,cpp} to these projects. + +Mon Jul 9 06:52:09 2001 Douglas C. Schmidt + + * ace/Makefile.bor (OBJFILES): Added the Dirent_Selector.obj file. + + * tests/Dirent_Test.cpp: Integrated a new test for the + ACE_Dirent_Selector class. + + * ace/Makefile (UTILS_FILES), + * ace/Dirent_Selector.h, + * ace/Dirent_Selector.inl, + * ace/Dirent_Selector.cpp: Added support for a C++ wrapper facade that + encapsulates ACE_OS_Dirent::scandir(). Thanks to Rich Newman for + contributing this, as well. + + * ace/OS_Dirent.h, + * ace/OS_Dirent.inl, + * ace/OS_Dirent.cpp: Added support for the scandir() feature, which + makes it possible to selectively pick which files in a directory + to iterate over. Also fixed a bug in the emulation of dirent. + Thanks to Rich Newman for contributing + these fixes. + +Mon Jul 09 14:39:50 2001 Irfan Pyarali + + * ace/OS.i (thr_getprio and thr_setprio): Changed these two + function such that if we are on Solaris and we have pthreads + enabled, we should use the pthread calls rather than the native + Solaris calls. The reasons for choosing the pthread calls is + due to following problems with the native calls: + + - thr_getprio() is evil because on Solaris 5.8, a thread with + priority -20 (SCHED_OTHER) is reported to have priority 80. + + - thr_setprio() is evil because it cannot set the negative + priorities on Solaris 5.8. + + - Also, thr_setprio() cannot change the priority of a thread + with negative priority to a positive priority on Solaris 5.8 + (even though there is no error reported and thr_getprio() shows + that the change happened but pthread_getschedparam() shows that + no change happened). + + - In addition, suppose a thread of policy SCHED_RR or SCHED_FIFO + uses thr_setprio() to reset its priority, the priority will be + reset but the scheduling policy will be dropped to SCHED_OTHER. + This happens with both Solaris 5.7 and Solaris 5.8. + +Mon Jul 9 13:33:43 2001 Joe Hoffert + + * include/makeinclude/wrapper_macros.GNU: + Change PACE path to start at $PACE_ROOT rather than $ACE_ROOT/PACE + since the latter is not as flexible. Defined PACE_ROOT if not + already defined. Also, added inclusion of PACE library for VxWorks + even when inlining since not all the PACE functions should be + inlined. + +Mon Jul 09 10:59:22 2001 Ossama Othman + + * THANKS: + + Added Mouna Seri to the hall of fame. + +Mon Jul 9 11:10:44 2001 Jeff Parsons + + * ace/config-win32-msvc-5.h: + * ace/config-win32-msvc-6.h: + + Added conditional definitions for ACE_LD_DECORATOR_STR + "mfc" and "mfcd" so that the MFC release and debug versions + of libraries can be dynamically loaded in the same way that + the non-MFC release and debug versions are. Thanks to + Francois Bernier for suggesting + this enhancement. + +Mon Jul 09 11:31:12 2001 Johnny Willemsen + + * ace/pre.h + * include/makeinclude/compiler.bor + + Removed the disabling of the compiler warning 'parameter never + used'. Unused parameters are handled by ACE_UNUSED_ARG macro. + A missing ACE_UNUSED_ARG is now shown as warning in the BCB build + log. + +Sun Jul 08 11:26:23 2001 Ossama Othman + + * ace/OS.h (mkstemp): + * ace/OS.i (mkstemp): + + New mkstemp() wrapper. It is assumed to be available on the + given platform, unless ACE_LACKS_MKSTEMP is defined. + + * ace/FILE_Connector.h: + + Added O_EXCL to the default flags. This is a security hole + fix. + + * ace/FILE_Connector.cpp (connect): + + If mkstemp() is available, then use it to create a temporary + file rather than mktemp() (via ACE_FILE_Addr) since mktemp() is + susceptible to a denial-of-service attack. + + * ace/config-win32-common.h: + * ace/config-vxworks5.x.h: + + mkstemp() is not supported on MS Windows and VxWorks. Define + ACE_LACKS_MKSTEMP in these headers. + +Sun Jul 8 08:13:12 2001 Douglas C. Schmidt + + * ace/Select_Reactor_Base.h: Added a comment explaining what + the ACE_HAS_REACTOR_NOTIFICATION_QUEUE macro means. Thanks to + Kobi Cohen-Arazi for motivating this. + +Sat Jul 7 18:53:49 2001 Krishnakumar B + + * include/makeinclude/platform_osf1_4.0.GNU: + + Revert the changes made to this file. Please see the file for a + lengthy description. + +Fri Jul 06 21:53:26 2001 Christopher Kohlhoff + + * ace/config-win32-borland.h: + Reverted addition of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION. + +Fri Jul 6 19:55:23 2001 Douglas C. Schmidt + + * examples/Reactor/Multicast: Adding the support for UNIX Syslog + broke this example because LOG_DEBUG was suddenly defined as a + macro (it's in syslog.h). I've fixed this by renaming the LOG_ + enums to LM_ instead. Thanks to Bala for reporting this. + +Fri Jul 06 20:23:41 2001 Steve Huston + + * ace/Refcoutned_Auto_Ptr.i (null): Change const_cast<> to + ACE_const_cast() to build on older compilers, like IBM C/C++ 3.6.6. + +Fri Jul 06 20:13:29 2001 Steve Huston + + * netsvcs/lib/Name_Handler.cpp: + * netsvcs/lib/Server_Logging_Handler_T.cpp: + * netsvcs/lib/Token_Handler.cpp: + + More ACE_DEBUG disables. + +Fri Jul 6 15:55:54 2001 Ossama Othman + + * ace/OS.h (ACE_FD_SETSIZE): + + Integrated patch from Jody Hagins . Set the + default reactor file descriptor set size to be an integer + constant rather than a preprocessor constant. Some third party + software #undef FD_SETSIZE in their header files, causing build + problems in ACE. + +Fri Jul 06 18:20:39 2001 Steve Huston + + * netsvcs/lib/Client_Logging_Handler.cpp: #if 0'd out a bunch of + ACE_DEBUG statements that aren't appropriate for use in commercial + logging. These can be #if 1'd if there's some doubt while debugging + this stuff, but they aren't useful once debugged, and are + distracting since they're interespersed with application records. + +Fri Jul 6 13:40:20 2001 Balachandran Natarajan + + * ace/Log_Msg_UNIX_Syslog.cpp: Fixed a warning in g++. + +Fri Jul 06 11:39:41 2001 Steve Huston + + * ace/INET_Addr.h: Clarified (and improved doxygenation) of + constructor and set() methods regarding byte orders. + + * tests/Max_Default_Port_Test.icc: New file for this test. + * tests/tests.icp: Added Max_Default_Port_Test + +Fri Jul 6 08:36:20 2001 Chad Elliott + + * netsvcs/Makefile: Don't build this if ACE_COMPONENTS does not + contain Other. The netsvcs library requires Naming_Context. + +Fri Jul 6 05:44:13 2001 Douglas C. Schmidt + + * ace/Makefile (LOGGING_FILES): Added support for + Log_Msg_UNIX_Syslog. + + * ace/Log_Msg_UNIX_Syslog.{h,cpp}: + * ace/Log_Msg.cpp, + * ace/OS.h: Added support for a new UNIX syslog backend for the + ACE_Log_Msg class. Thanks to Jerry D. De Master + and Robert Davidson + . + + * ace/SOCK_Dgram.h: Fixed a typo in one of the send() method + comments. Thanks to Alain Decamps for + reporting this. + + * ace/config-macosx.h: Added a new file courtesy of John + Zorko so that things will work on MacOSX. + +Thu Jul 5 23:22:21 2001 Balachandran Natarajan + + Fixes that were required for fixing bug 575. Merged in from + branch bug_575_stage_2. + +Thu Jul 5 23:09:29 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp (ACE_InputCDR): Fixed a long standing bug in + the branch. This caused the DSI_Gateway test to fail. The + problem was from setting the write pointer to a wrong position + during the construction. + +Thu Jul 5 14:39:45 2001 Balachandran Natarajan + + * Merged with the main trunk and moved it to a new branch by name + bug_575_stage_2. + +Thu Jun 28 15:25:07 2001 Balachandran Natarajan + + * ace/Reactor.h (ACE_Reactor): + * ace/Reactor.cpp: Added a new method resumable_handler () to the + reactor interface. This would indicate whether the application + can take advantage by resuming the handlers themselves or + not. Not all reactors can allow this feature. + + * ace/Reactor_Impl.h: + * ace/Reactor_Impl.cpp: Added a pure virtual function so that all + the implementations can decide whether the handlers are + resumable or not. + + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_Base.cpp: + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp:Implemented resumable_handlers (). + +Sun Jun 24 11:25:07 2001 Balachandran Natarajan + + * Created this file. Got the whole stuff in ace to a new branch by + name bug_575_stage_1. This ChangeLog file will be in branch + bug_575. + +Fri Jun 22 16:52:13 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp: Changed the copy constructor for the + ACE_InputCDR's. Instead of duplicating the ACE_Data_Block we + now use the new copy constructor in the ACE_Message_Block. + + * ace/Message_Block.h: + * ace/Message_Block.cpp: Added a new copy constructor to the + ACE_Message_Block. This copy constructor does a deep copy from + the data block if the data block of the incoming message block + is on the stack or does a shallow copy of the data block (by + incrementing the ref count) if it is on the heap. + + END of entries from bug_575_stage_2. + +Thu Jul 5 22:07:33 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the new perl script in LongUpcalls + in the daily builds. + +Thu Jul 5 20:36:00 2001 Craig Rodrigues + + * ace/config-win32-borland.h + define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION + * tests/Token_Test.cpp + Fix template instantiation problem. + +Wed Jul 4 15:35:47 2001 Joe Hoffert + + * tests/run_tests.vxworks: + Removed invocation of CDR_Array_Test. According to the ace + config files the compiler we are using is pre 2.8 (i.e., + ACE_HAS_GNUG_PRE_2_8 is defined). Therefore don't run + CDR_Array_Test since the Makefile doesn't build it (due to + the ACE_HAS_GNUG_PRE_2_8 macro). + +Wed Jul 04 14:26:10 2001 Irfan Pyarali + + * ace/Synch_T.h (class ACE_Acquire_Method): Moved the enums from + the Reverse Lock class into ACE_Acquire_Method, a non-template + class. These enums should have been inside the reverse lock + class, but some lame compilers cannot handle enums inside + template classes. + +Wed Jul 04 12:43:22 2001 Irfan Pyarali + + * ace/Synch_T.i (ACE_Reverse_Lock): Fully specified the + ACE_ACQUIRE_METHOD type. + +Tue Jul 3 15:43:25 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a warning in g++. + +Tue Jul 3 14:44:00 2001 Craig Rodrigues + + * ace/config-win32-common.h: Borland C++ apparently + does not support the "extern template class" Microsoft VC++ + proprietary extension. Thanks to Chris Kohloff + for the fix. + +Tue Jul 03 12:26:33 2001 Irfan Pyarali + + * ace/Synch_T.h (class ACE_Reverse_Lock): Added a parameter to the + constructor of the reverse lock. The ACE_ACQUIRE_METHOD + parameter is used to indicate which acquire() method will be + called on the real lock when the release() method is called on + the reverse lock. REGULAR indicated the acquire() method, READ + indicates the acquire_read() method, and WRITE indicates the + acquire_write() method. Note that the try_*() methods are not + represented here because we have to make sure that the release() + method on the reverse lock acquires a lock on the real lock. + + Thanks to Edan Ayal for suggesting this. + +Tue Jul 3 06:20:13 2001 Douglas C. Schmidt + + * ace/Reactor.h, + * ace/Reactor_Impl.h, + * ace/Select_Reactor_Base.cpp, + * ace/Select_Reactor_Base.i, + * ace/Select_Reactor_Base.h, + * ace/WFMO_Reactor.cpp, + * ace/WFMO_Reactor.h: Added an enhancement that allows the + Reactor to selectively purge event handlers from its + notification queue according to their Reactor_Mask type. Thanks + to Edan Ayal for contributing this. + + * tests/Reactor_Notify_Test.cpp (run_notify_purge_test): + Added a new set of tests for the new selective notification + purging features of the Reactor. Thanks to Edan Ayal + for contributing this. + + * ace/WIN32_Asynch_IO.cpp: Removed the + ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority, + signal_number), initializer since we no longer use virtual + inheritance. Thanks to Alexander Libman + for reporting this. + + * ace/WIN32_Asynch_IO.h: Removed the virtual inheritance from + ACE_WIN32_Asynch_Result for the ACE_Asynch_Read_Stream_Result + and ACE_Asynch_Read_Dgram_Result classes. Thanks to Alexander + Libman for reporting this. + + * ace/Refcounted_Auto_Ptr.h: Made the destructor of + ACE_Refcounted_Auto_Ptr virtual so that users can override it + locally. Thanks to Jenny Kowald for + reporting this. + +Tue Jul 3 09:40:59 2001 Chad Elliott + + * include/makeinclude/platform_osf1_4.0.GNU: + * include/makeinclude/platform_osf1_4.0_g++.GNU: + + Allow users to set options like debug, exceptions, ... without + using override. + +Tue Jul 3 08:38:47 2001 Jeff Parsons + + * examples/Reactor/Proactor/test_dup_proactor.dsp: + + Fixed a mistake in the link to the ACE library. + +Mon Jul 2 16:23:04 2001 Jeff Parsons + + * examples/Reactor/Proactor/test_multiple_loops.dsp: + * examples/Reactor/Proactor/test_proactor.dsp: + * examples/Reactor/Proactor/test_proactor.dsw: + * examples/Reactor/Proactor/test_timeout.dsp: + * examples/Reactor/Proactor/test_udp_proactor.dsp: + + Fixed settings on release version of test_udp_proactor.dsp, + added it to the workspace, and removed unused file folders + from the FileViews of the other projects. + +Mon Jul 2 15:26:32 2001 Nanbor Wang + + * ace/config-sunos5.6.h: Removed ACE_HAS_POSIX_SEM and + ACE_LACKS_NAMED_POSIX_SEM. Thanks to Glenn Popelka + for helping track this down. + +Mon Jul 02 11:45:57 2001 Ossama Othman + + * bin/make_release: + + Disabled bootstrapping of ACE's autoconf support. It isn't + ready for general use. Doing so reduces the amount of + confusion. Thanks to Holger P. Krekel for + motivating this change. + +Mon Jul 2 13:18:14 2001 Douglas C. Schmidt + + * Moved ACE-configurations.txt into the docs directory. Also + removed the hopelessly out of date BIBLIOGRAPHY file. + + * Moved all the ChangeLog-* files into the new ChangeLogs + directory. Thanks to Holger P. Krekel for + this suggestion. + +Mon Jul 02 11:20:52 2001 Ossama Othman + + * config.guess: + * config.sub: + + Updated to the latest versions from the GNU FTP site. + +Mon Jul 02 11:30:20 2001 Irfan Pyarali + + * ace/Synch_T.i: Since the release() method on the reverse lock + calls the simple acquire() method on the real lock, it is + assumed that it is a simple acquire/release protocol with the + real lock. Therefore, I think all the other methods on the + reverse lock tryacquire(), acquire_read(), acquire_write(), + tryacquire_read(), tryacquire_write(), and + tryacquire_write_upgrade() should not be allowed. This falls in + line with the original concept of using reverse locks with + regular guards. + + Thanks to Edan Ayal for pointing this out. + +Mon Jul 2 11:17:37 2001 Chad Elliott + + * ace/Profile_Timer.cpp: + + Cleaned up the conditional macros. Added method bodies for + ACE_Profile_Timer::get_rusage() and + ACE_Profile_Timer::elapsed_rusage() when neither ACE_HAS_PRUSAGE_T + nor ACE_HAS_GETRUSAGE is defined. + + * Reverted the reverted changes in this entry. + "Fri Jun 29 22:31:56 2001 Balachandran Natarajan + ". These changes are ok, I just + needed to fix the bug in Profile_Timer.cpp. + +Mon Jul 2 09:40:45 2001 Chad Elliott + + * include/makeinclude/platform_aix_ibm.GNU: + + Add the output filter to the linker to avoid the duplicate symbol + warnings on AIX. + +Mon Jul 2 05:40:54 2001 Douglas C. Schmidt + + * ace/Logging_Strategy.cpp: Enhanced the code so that it works with + ACE_LACKS_IOSTREAM_TOTALLY. Thanks to Nir Drang + and Edan Ayal for reporting this. + + * ace/SPIPE_Addr.cpp (set): Added a "+ 1" to the computation of + the size of the SPIPE_Addr to account for the trailing NUL. + Thanks to Oren Zeev-Ben-Mordehai for + reporting this. + + * ace/Refcounted_Auto_Ptr.{h,i}: Added support for a "null()" + method to check if a refcounted auto ptr is NULL. Thanks to + Jenny Kowald for reporting this. + + * ace/config-macosx.h, + * ace/platform_macosx.GNU: Enhanced these files to support MacOSX. + Thanks to John Zorko for contributing this. + + * ace/Synch.h: Fixed the Doxygen documentation for all the + removed_ fields, which where somehow messed up. Thanks to + Johnny Willemsen for reporting this. + +Sun Jul 1 11:49:13 2001 Alexander Libman + + * ace: Enhanced the POSIX and Sun Proactor implementations as + follows: + + . POSIX_SIG_Proactor is now based on POSIX_AIOCB_Proactor + + . All classes ACE_POSIX_SIG_Asynch_XXXX are removed. + POSIX_SIG_Proactor uses the ACE_POSIX_AIOCB_Asynch_XXXX + classes now. + + . ACE_POSIX_AIOCB_Proactor::register_and_start_aio (...) + now calls a new virtual method: int + ACE_POSIX_AIOCB_Proactor::allocate_aio_slot + (ACE_POSIX_Asynch_Result *result). + + . The strategy of free slot allocation in SIG_Proactor is + a bit different from AIOCB and SUN Proactors. The + allocate_aio_slot() method is responsible for setting + notification information for aio request + (SIGEV_NONE/SIGEV_SIGNAL). For SIG_Proactor, the field + aio_sigevent.sigev_value.sival_int now contains index of aiocb + in the aiocb_list_, not a pointer. + + . The ACE_POSIX_AIOCB_Proactor::find_completed_aio (int &error_status, + int &return_status, size_t + &index, size_t &count) + parameter index defines initial slot to scan and the new + parameter count tells us maximum number slots to scan. On + return: index contains value to start scan next time, count + contains remained number of slots. Scanning is performed in + "wheel" style to allow all requests be handled with equal + priorities. + + . ACE_POSIX_AIOCB_Proactor::check_max_aio_num () checks for + max_number_files to open and tries to setup max_number_files + equal to aiocb_max_size_. if we failed than cut off + aiocb_max_size_ value to existing max_number_files. + + . POSIX_Proactor added member int os_id_ and constructor sets up + os_id_ (compilation time + run_time function) to know + OS(Sun/HP/Linux/...) and version. We need such info for + POSIX_SIG_Proactors to take into account the behavior of + different OS. + + . Delivery of simulated/"post_completed" Asynch_Results + (Timers, AsynchAccept,Wakeup ...). As both Proactors have no + reliable mechanizm for delivery "post_completed" results, so + the reliable queue of "post_completed" results was + implemented. The new member of AIOCB Proactor + ACE_Unbounded_Queue result_queue_ + has been added. Also added protected methods to the + ACE_POSIX_AIOCB_Proactor. + + . We had an error in all previous versions (from major ACE 5.1): + post_completion (int how_many) does not guarantee that all + completions will be delivered to the different threads running + event_loop (sometimes several completions could be delivered + to the one thread, in another thread performs during long time + application_spesific_code ()). Moreover, you can run now + Proactor event_loop in any number of threads (more than + SIGQUEMAX). + +Sun Jul 1 11:49:13 2001 Douglas C. Schmidt + + * examples/Reactor/Proactor: Integrated a test that exercises the + support for asynchronous UDP operations. Thanks to Roger Tragin + for contributing this. + + * ace/Synch_T.i: Changed the implementations of all the + acquire*() method to call release(). Thanks to Edan Ayal + for reporting this. + +Sat Jun 30 12:44:11 2001 Douglas C. Schmidt + + * examples/Connection/blocking/SPIPE-acceptor.cpp: Added better + support for shutting down the server when a signal occurs. + Thanks to Rich Newman for this + enhancement. diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a new file mode 100644 index 00000000000..fa845881eb7 --- /dev/null +++ b/ChangeLogs/ChangeLog-02a @@ -0,0 +1,6249 @@ +Mon Dec 03 14:22:57 2001 Carlos O'Ryan + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: + Add UNIX-only files. Though strictly not required to compile + ACE under NT, putting them in the project makes this directory + more amenable for samwise. + + * ace/POSIX_Proactor.cpp: + Remove duplicate ACE_BUILD_DLL macro, when needed this is + defined via options in the project file. + +Mon Dec 3 13:59:06 2001 Ossama Othman + + * ace/README: + + The ACE_HAS_IP6 macro has been superceded by the ACE_HAS_IPV6 + macro. Also added description of the + ACE_USES_IPV4_IPV6_MIGRATION macro based on Steve's description + below. + +Mon Dec 3 15:50:42 2001 Steve Huston + + * IPv6 changes done by John Aughey and myself. To enable IPv6 + support for a build, put this in your config.h file: + #define ACE_HAS_IPV6 + If your build with IPv6 enabled must also run on systems where + the IPv6 support in the kernel is not actually turned on (for + example, Redhat Linux 7 by default), also add this to your + config.h file: + #define ACE_USES_IPV4_IPV6_MIGRATION + + * ace/ACE.cpp (format_hexdump): Add \n to last part of a dump line. + + * ace/INET_Addr.(h i cpp): If IPv6 is enabled, the inet_addr_ + member is now a union of sockaddr_in and sockaddr_in6. Which + one is legit is noted in ACE_Addr::type as well as the family + member of either of the union members. The host name lookup + functions can look up ipv6 as well as ipv4 names, and the + caller can force one or the other by using the address_family + argument to set(). + + * ace/OS.(h i): Removed ACE_OS::gethostbyname2; replaced it with + the more correctly-named and more flexible ACE_OS::getipnodebyname. + Also added ACE_OS::getipnodebyaddr. These are the IPv6-capable + functions analogous to gethostbyname and gethostbyaddr. + + * ace/SOCK.cpp (get_remote_addr, get_local_addr): Set up the + ACE_Addr's type properly to account for ipv4/6 possibilities. + + * ace/SOCK_Acceptor.(h cpp): Allow accepting on ipv4 and ipv6 sockets. + + * ace/SOCK_CODgram.h: + * ace/SOCK_Connector.(cpp h ): + * ace/SOCK_Dgram.(cpp h ): Change default protocol family from + PF_INET to vary and take advantage of IPv6 if available. + + * ace/Sock_Connect.(cpp h): Added ACE_Sock_Connect::ipv6_enabled() + method - it checks to see if the running kernel can do IPv6 + sockets or not. + + * ace/Sock_Connect.cpp (get_ip_interfaces): Removed a #if 0'd + block that had possible specializations for MSVC 4.2. It's + been a number of years, and it's obviously not needed. + + * ace/MEM_Addr.cpp (same_host): Don't try to compare binary + addresses directly... get ACE_INET_Addr objects, clear the port + numbers, and compare them. + + * ace/MEM_Connector.cpp (connect): Print error text with message. + + * ace/Asynch_Acceptor.cpp (open): For the new socket, use the + protocol family from the listen address, not PF_INET. + + * tests/INET_Addr_Test.cpp: New test. + + * tests/Makefile: Added INET_Addr_Test. + +Mon Dec 3 10:54:34 2001 Carlos O'Ryan + + * ace/OS.h: + Document CDR default buffer sizes and control macros + using Doxygen. + Document memory alignment macros in Doxygen form. + + * ace/Sample_History.h: + * ace/Sample_History.inl: + Add accessor to get the samples saved on the history. + + * ace/RMCast/RMCast_Singleton_Factory.h: + Document constructor in more detail. + +Mon Dec 03 07:54:04 2001 Johnny Willemsen + + * ace/Unbounded_Queue.{h,cpp}: + Added const iterator for this container class + +Sun Dec 02 15:13:30 2001 Carlos O'Ryan + + * ace/OS.cpp: + Fixed Fuzz problems, the ACE_TRACE calls in operator++/-- + definitions had less whitespace than the actual operators. + +Sun Dec 02 15:17:47 2001 Nanbor Wang + + * ace/Thread_Manager.cpp (join): This method mistakenly used the + local copy of Thread_Descriptor to change the thread status when + it found a thread to join from the . This prevented + the status of the original Thread_Descriptor to be updated + correctly and the same descriptor got put into the + again, which caused the same thread to be + waiting on in some cases. Changed to manipulate the descriptor + directly to avoid the problem. Thanks to Eyal Lubetzky + for reporting the problem and providing a + nice example to showcase it. + +Sun Dec 2 12:44:58 2001 Carlos O'Ryan + + * tests/ACE_Init_Test.cpp: + * tests/ACE_Init_TestDlg.cpp: + Protect this test against compilation on non-Win32 platforms, + that makes it easier to compile using samwise. + + * tests/RMCast/RMCast_Fragment_Test.cpp: + * tests/RMCast/RMCast_Membership_Test.cpp: + * tests/RMCast/RMCast_Reassembly_Test.cpp: + * tests/RMCast/RMCast_Reordering_Test.cpp: + * tests/RMCast/RMCast_Retransmission_Test.cpp: + * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: + Change #include "test_config.h" to #include "../test_config.h", + it is easier to generate makefiles and projects files with + samwise if we do that. + +Sun Dec 02 12:15:25 2001 Carlos O'Ryan + + * ace/OS.cpp: + Fixed typos in ACE_Time_Value::operator++ implementations. + Also moved the implementation outside the #ifdef ACE_WIN32 + section. + +Sun Dec 2 12:17:09 2001 Balachandran Natarajan + + * ace/Reactor.i: Fixed a warning in TRU 64. Thanks to + which reminded me of the fix in one of my + workspaces. This shows up only in V6.3-013 (cxx) of the + compiler. + +Sat Dec 1 19:39:22 2001 Steve Huston + + * ace/Date_Time.i (update): Use ACE_OS::gettimeofday for the time + source. This gets both the seconds-since-epoch value from which + the date and time are calculated and the microseconds value. + Thanks to Jim Connelly for reporting this. + + * THANKS: Added Jim Connelly to the Hall of Fame. + + * ace/Log_Msg_NT_Event_Log.{cpp h} (open): + * ace/Log_Msg_UNIX_Syslog.{cpp h} (open): + If the caller passes a prog_name (logger_key) argument, use it + for the Source field in the event log entries (or ident in the + syslog entries). If not, use the program name (previous behavior). + Added comments to define this behavior. + + * ace/Log_Msg.cpp (open): Don't refuse to open a backend if the + arg is 0 and the SYSLOG bit is enabled. The SYSLOG + backends, both UNIX and NT Event Log, work perfectly fine with + a 0 logger_key. Thanks to Steve Witten for + reporting this. + +Sat Dec 1 18:03:51 2001 Douglas C. Schmidt + + * ace/config-macosx.h: + * include/makeinclude/platform_macosx.GNU: + Added support so that ACE will build and run on Mac OS X 10.1. + Thanks to John Michael Zorko for contributing + this. + +Fri Nov 30 19:08:19 2001 Douglas C. Schmidt + + * ace/ARGV.cpp (dump): Fixed a bug with dump() so that it + works properly even if argv_ changes. Thanks to Kyle Brost + for this fix. + +Thu Nov 29 16:31:57 2001 Douglas C. Schmidt + + * ace/OS.{h,i,cpp}: Changed the return value of + ACE_Time_Value::operator+= and operator -= to be ACE_Time_Value + & rather than void. Also, added overloaded operator++ and + operator--. This is all to make this stuff work better with + ACE_Atomic_Op. Thanks to Kelly F. Hickel + for suggesting this. + + * ace/Asynch_Acceptor.cpp (parse_address): Changed + the "message_block.size () - 2 * this->address_size ()" argument + to "bytes_to_read_" to work properly on Win32. Thanks to Kelly + F. Hickel for reporting this. + +Wed Nov 28 17:44:26 2001 Douglas C. Schmidt + + * ace/OS_Dirent.cpp (readdir_emulation): Fixed a memory leak + in the dirent emulation. Thanks to Olivier Brunet + for reporting this. + + * ace/SPIPE_Acceptor.h (ACE_SPIPE_Acceptor): Clarified the + return value of open(). Thanks to Garth Watney + for motivating this. + + * ace/OS.h: Added a workaround to the Borland bug for + ACE_OS::stat(). Thanks to Christopher Kohlhoff + and Chris Able for + reporting/fixing this. + +Sat Dec 01 09:26:27 2001 Balachandran + + * ACE version 5.2.1 released. + +Wed Nov 28 09:28:09 2001 Johnny Willemsen + + * ace/examples/IPC_SAP/SOCK_SAP/* + * ace/examples/IPC_SAP/SPIPE_SAP/* + * ace/examples/Misc/* + * ace/examples/Naming/* + * ace/examples/RMCast/Send_File/* + * ace/examples/Reactor/DGram/* + * ace/examples/Reactor/Ntalker/* + * ace/examples/Registry/* + * ace/examples/Threads/* + * ace/examples/Service_Configurator/IPC_tests/client/* + Made these examples compiling when ACE_USES_WCHAR is set + +Mon Nov 26 16:07:57 2001 Balachandran Natarajan + + * bin/make_release: The distribution will be available in bzip2 + compressed format too. Made modifications to the release scripts + to put out the beta in bzip2 compressed format. + +Sat Nov 24 10:23:00 2001 Douglas C. Schmidt + + * ace/Unbounded_Set.h (class ACE_Unbounded_Set): Moved the + insert_tail() method from the private part of the class to the + public part since it's needed by the examples/Misc/test_set.cpp + file. + + * examples/Misc/test_set.cpp (main): Somehow the contents of this file + got lost. Thanks to Johnny Willemsen for reporting this! + +Fri Nov 23 08:40:33 2001 Douglas C. Schmidt + + * tests/Refcounted_Auto_Ptr_Test.cpp: Added some ACE_DEBUGs to + print out the reference count. + + * ace/Refcounted_Auto_Ptr.h: Added a count() accessor method to + return the reference count. Thanks to Andrea Bernicchia + for contributing this. + +Thu Nov 22 05:24:51 2001 Craig Rodrigues + + * examples/QOS/Diffserv: Added a simple example to illustrate + how to set Diffserv Codepoints on an ACE_SOCK_CODgram. + * examples/QOS/Makefile: Updated. + +Wed Nov 21 11:35:50 2001 Michael Kircher + + * ace/Bound_Ptr.h + * ace/Bound_Ptr.i + * ace/Future.cpp + * ace/Future.h + * ace/Refcounted_Auto_Ptr.h + * ace/Refcounted_Auto_Ptr.i + + Made the memory allocation failure behavior consistent + to the behavior prior to the change on Sun Oct 28 13:15:00 2001. + Thanks to Christopher Kohlhoff who prepared + this change. + The problem was that with the above mentioned change failed + allocations would return 0 in either case, if exceptions were + enabled by the platform or not. This was incosistent to the + behavior before, as new threw bad_alloc on allocation failure + when exceptions were supported by the platform. + + To fix this we faced the following forces: + - Not to introduce yet another macro + - Minimize impact of changes, localize the problem + - Keep the new calls wrapped by a ACE_NEW macro to allow + users to eventually redefine the macro (using e.g. new (nothrow) + + As the ACE_NEW macros are quite restrictive in their supported + semantics, e.g. you can only return on error, we decided to introduce + a new method (as inline) internal_create which does the allocation. + internal_create is called by create which does the differentiation + between the exception-supported and exception-not-supported case. + +Wed Nov 21 09:07:37 2001 Douglas C. Schmidt + + * ace/OS.h: Updated the ACE_GUARD_ACTION macro and added a new + ACE_GUARD_REACTION macro. Then, reimplemented the ACE_GUARD and + ACE_GUARD_RETURN macros in terms of these new macros. Thanks to + Don Hinton for contributing these. + + * ace/Log_Msg_Callback.h: Improved the comments to explain why + ACE_Log_Msg_Callback isn't inherited. Thanks to + Alexey Chalimov for motivating this. + +Tue Nov 20 15:36:52 2001 Douglas C. Schmidt + + * ACE-INSTALL.html: Pointed out that on Solaris with g++ you may + need to use GNU as instead of /usr/ccs/bin/as, if you want + -gstabs+ and -pipe support. Thanks to C Chan + for reporting this. + +Mon Nov 19 07:24:05 2001 Douglas C. Schmidt + + * examples/Synch/proc_sema.cpp: Added the ACE_TEXT macro so that + ACE_Get_Opt works correctly. Thanks to Johnny Willemsen for + contributing this. + + * tests/Aio_Platform_Test.cpp (main): Fixed the code so that it + compiles when ACE_USES_WCHAR. Thanks to Johnny Willemsen for + reporting this. + + * docs/ACE-categories.html: Updated the Doxygen URLs to use the + new format. Thanks to Peter J. Mason + for reporting the problem. + +Fri Nov 16 10:39:52 2001 Douglas C. Schmidt + + * docs: Moved minimumTAO.html from $TAO_ROOT/docs/ to + $ACE_ROOT/docs. + + * ace/OS.h: Added two new macros ACE_GUARD_ACTION and + ACE_GUARD_ACTION_RETURN. Thanks to Boris Kaminer + for suggesting these. + + * ace/NT_Service.cpp (state): Fixed a bug where calling + ACE_NT_Service::state(x,x) while the service is stopped was + causing the internal status variables of ACE_NT_Service to + become corrupt. If the control_mask is set to + SERVICE_ACCEPT_STOP in the constructor, the call to state will + cause this mask to be reset (if the service is not running). + This ultimately results in an NT Service that can be started but + not stopped. Thanks to Kyle Brost for + providing this fix. + +Wed Nov 21 10:00:20 2001 Chad Elliott + + * ace/config-irix6.x-common.h: + + Changed the size of a long double from 16 to 8 for the GNU + compiler. + + * include/makeinclude/platform_irix6.x_sgic++.GNU: + + Add buildbits macro to allow 32 and 64 bit builds on IRIX. + +Wed Nov 21 12:49:08 2001 Johnny Willemsen + + * performance-tests/Misc/basic_perf.cpp + * performance-tests/Misc/childbirth_time.cpp + * performance-tests/Misc/context_switch_time.cpp + * performance-tests/Misc/preempt.cpp + * performance-tests/Misc/test_mutex.cpp + * performance-tests/Misc/test_singleton.cpp + Made these tests compiling when ACE_USES_WCHAR is set + +Wed Nov 21 08:49:12 2001 Johnny Willemsen + + * ace/OS.h + Added ACE_LIB_TEXT around ACE_DEFAULT_RENDEZVOUS to make a unicode + constant when ACE_USES_WCHAR is defined + + * tests/FlReactor_Test.cpp + * tests/TkReactor_Test.cpp + * tests/XtReactor_Test.cpp + Changed type of argv argument of main from char to ACE_TCHAR so that + these tests compile without problems when ACE_USES_WCHAR is defined + + * examples/IPC_SAP/ATM_SAP/CPP-client.cpp + * examples/IPC_SAP/ATM_SAP/CPP-server.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp + Made these example compiling when ACE_USES_WCHAR is set + +Tue Nov 20 12:02:16 2001 Ossama Othman + + * configure.in: + + Removed this file from the distribution. Some folks insist on + attempting to build ACE/TAO with the configure script and + reporting problems despite the fact we've explicitly disabled + it. + +Tue Nov 20 13:30:36 2001 Balachandran Natarajan + + * ace/Strategies.h: + * ace/Strategies.cpp: + * ace/Strategies.i: Re-added files back into the main trunk. Got + accidentally removed from the main when I was doing some work on + a branch. + +Mon Nov 19 20:35:44 2001 Jaiganesh Balasubramanian + + * ace/SOCK_Dgram_Mcast.cpp: + This class allow application to subscribe a single socket to + many multicast groups. However, the unsubscribe operation + failed to work with more than one group. For some strange + reason it was storing the first multicast group subscription in + a class member and using that member in all the paths for the + unsubscribe methods. + + We have changed the unsubscribe(const ACE_INET_Addr&,...) method + to work as adversited, i.e. unsubscribe the *given* multicast + address, not the stored one, as an added benefit the method is + now re-entrant. The unsubscribe(void) method works as before. + The code has been re-factored to minimize duplication. + +Mon Nov 19 11:03:07 2001 Ossama Othman + + * ACE-INSTALL.html: + + Added missing build instructions for the ACE_SSL library, and + updated the list of "make" flags recognized by ACE's Makefile + scheme. + +Mon Nov 19 00:53:54 2001 Krishnakumar B + + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_Tokens.h: + + Fixed some bugs introduced by my previous checkin because of + patch confusion. Replaced all the standard C system calls with + ACE_OS calls. Made it more wchar friendly. + + * ace/Makefile: + + Removed the dependency on /pkg/gnu/bin/flex. It was broken. We + now use $(LEX) and $(YACC) defined in + $ACE_ROOT/include/makeinclude/wrapper_macros.GNU. + + * include/makeinclude/wrapper_macros.GNU: + + Changed the definition of YACC to bison (by default). If people + want to change this, it can be overridden by a variable in the + Makefile. But things are most likely to break if you use yacc. + + * etc/Svc_Conf_l.cpp.diff: + * etc/Svc_Conf_y.cpp.diff: + + Regenerated the diffs. + + *Sigh* This patching business is ugly. + +Fri Nov 16 07:22:19 2001 Balachandran Natarajan + + * bin/make_release: Updated the script to copy the beta to a + different location. Have tested this by creating a dummy + repository and a dummy export directory. Things worked + fine. Hopefully the beta should go through without any hassle. + + The script is tied to its usage on ace.cs. Needs to be + changed. Will do that after this beta goes out. Having too many + changes at the same time may not be good. + +Thu Nov 15 20:44:40 2001 Craig Rodrigues + + * etc/Svc_Conf_l.cpp.diff: Updated. Thanks to Kitty for reporting it. + * etc/Svc_Conf_y.cpp.diff: Added. We need it for uses of ACE_LIB_TEXT. + * ace/Makefile: Added rule to apply patch to Svc_Conf_y.cpp. + +Thu Nov 15 08:26:57 2001 Douglas C. Schmidt + + * ace/*.cpp: Changed all remaining uses of ACE_TEXT to ACE_LIB_TEXT + to be consistent... Thanks to Johnny Willemsen for reporting + the inconsistencies and for Darrell Brunsch for clarifying what + the right behavior should be. + +Wed Nov 14 07:43:20 2001 Douglas C. Schmidt + + * docs/ACE-guidelines.html: Updated the guidelines to explain + the use of ACE_TCHAR for the argv parameter to main(). Thanks + to Johnny Willemsen for reporting this. + + * ace/OS_Dirent.inl (opendir): Replace char * const cast with + ACE_TCHAR * const cast. Thanks to Nick Pratt for reporting + this. + + * tests/Upgradable_RW_Test.cpp (main): Fixed the test to avoid + dividing by 0 and also initialized all pointers to NULL. Thanks + to Johnny Willemsen for reporting this. Thanks fixes BudID 650. + +Tue Nov 13 15:25:04 2001 Douglas C. Schmidt + + * ace/ACE.h (ACE): Clarified what the time_len parameter is used for. + Thanks to Tompa for reporting this. + +Sun Nov 11 09:50:52 2001 Douglas C. Schmidt + + * ace/Naming_Context.cpp (info): Added an ACE_UNUSED_ARG to + silence warning about "length" parameter and changed buf from + char to ACE_TCHAR. Thanks to Johnny Willemsen for reporting + this. + + * tests/Aio_Platform_Test.cpp: The argv parameter of main() should + be ACE_TCHAR rather than char. Thanks to Johnny Willemsen for + reporting this. + +Thu Nov 15 15:43:20 2001 Craig Rodrigues + + * ace/Naming_Context.cpp (info): Wrapped sprintf() arguments with + ACE_LIB_TEXT. Fix supplied by Johnny Willemsen. + +Thu Nov 15 12:43:31 2001 Nanbor Wang + + * docs/wchar.txt: Added a writeup for ACE_LIB_TEXT and ACE_TEXT + from "the authority." + +Wed Nov 14 21:36:42 2001 Ossama Othman + + * docs/usage-bugzilla.html: + + Corrected link to the DOC Center's bugzilla site. + +Wed Nov 14 23:11:59 2001 Craig Rodrigues + + * ace/Naming_Context.cpp (info): Fixed Unicode build problems + by consistently using ACE_TCHAR instead of char, and by + using Unicode aware string functions in ACE_OS_String + instead of ACE_OS. + + * ace/Svc_Conf_l.cpp: Default intialized ace_yy_c_buf_p to ACE_TCHAR + instead of char. Default initialized ace_yy_cp, ace_yy_bp to 0. + + * ace/Svc_Conf_y.cpp: Wrap string literals passed to ace_yyerror + with ACE_LIB_TEXT(). + +Wed Nov 14 06:38:41 2001 Balachandran Natarajan + + * docs/ACE-bug-process.html (HREF): Changed references from ace.cs + to deuce.doc. Thanks to Johnny Willemsen for reporting this. + +Tue Nov 13 15:04:15 2001 Carlos O'Ryan + + * html/Stats/index.shtml: + * html/Stats/detailed_performance.shtml: + Improved documentation about the test location, ORB, and network + configuration used. Thanks to David Yongqiang Wang + for pointing out the problems. + +Tue Nov 13 11:46:11 2001 Chris Cleeland + + * tests/Collection_Test.cpp (iterate_const): Fixed ACE_DEBUG print + statements that were accessing the element of the unbounded set + as an int rather than an UglyThing. Thanks to Ossama for + pointing this out. + +Mon Nov 12 11:41:35 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.cpp (send, recv): + + In the va_arg versions of these methods, do not use + send/recv_n() to as the underlying send/recv() method. It + forces unnecessary blocking. + + Corrected return value semantics in versions of these methods + that use loop to send/receive multiple buffers. If data was + sent or received than do not return -1 on error. Instead return + the amount of bytes sent/received. This is necessary to allow + the caller to keep track of sent or received data. [Bug 882] + +Sun Nov 11 23:50:00 2001 Craig Rodrigues + + * tests/Date_Time_Test.cpp: Remove argv variable from + main() to eliminate unused variable compiler warning. + * tests/Arg_Shifter_Test.cpp: Same. + +Sun Nov 11 10:00:56 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.h (ACE_SSL_SOCK_Stream): + + Removed unused class members. + + * ace/SSL/SSL_SOCK_Stream.cpp (sendv): + + If an error occurs but data was sent on a previous loop + iteration then return the amount of bytes sent, not the error. + This extends previous check for EWOULDBLOCK and ETIME. All + errors are now caught. The caller must always know if any data + was successfully sent. [Bug 882] + + Do not continue on to the next loop iteration if the amount of + data sent was less than the amount data given. This avoids a + subtle problem where "holes" in the data stream would occur if + partial sends of a given buffer in the iovec array occured. + [Bug 882] + +Sun Nov 11 07:58:07 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.cpp (sendv): + + Fixed unused variable warnings. + +Sat Nov 10 23:25:50 2001 Ossama Othman + + * bin/auto_run_tests.lst: + + Added new SSLIOP "Big_Request" test to the list of regression + tests to automatically run during the nightly builds. + +Sat Nov 10 22:13:54 2001 Krishnakumar B + + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_Tokens.h: + + Regenerated the files after fixing the warnings that showed up + under Sun CC Forte Update. They were caused because Sun CC's + preprocessor doesn't like the #line statements generated by flex + and bison. Since these files are not modified on a daily basis, + people debugging the lexer can turn it on by removing the flags + '-l' and '-L' to bison and flex respectively in the Makefile. + For now, this removes a lot of noise. + + * ace/Makefile: + + Added flags '-l' to bison and '-L' to flex. + + * etc/Svc_Conf_l.cpp.diff: + + Regenerated the diff to match the current version. + + * etc/Svc_Conf_y.cpp.diff: + + This file held the stuff which have been obsoleted by the move + to use bison. So removed this file to avoid causing confusion in + the future. Thanks to Ossama for pointing this out. + + Let's see some green :-) + +Sat Nov 10 19:27:36 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + + If data is still buffered within OpenSSL's internal buffer, then + force the Reactor to invoke the event handler (with + the appropriate mask) before waiting for more events + (e.g. blocking on select()) by returning a value greater than + one. All pending data must be processed before waiting for more + events to come in on the SSL handle. + + * ace/SSL/SSL_SOCK_Stream.h (reactor, handler, notify): + + These methods are no longer needed. Removed them. + + (sendv): + + Added missing timeout parameter. + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i (notify, recv_i, send_i, close): + + Reverted code that notify()ed the Reactor if data was still + pending in OpenSSL's internal buffers. The idea was to force + the reactor to call the appropriate event handler before polling + for events (e.g. blocking on select()). However, notifications + are not dispatched until after events are polled which meant + that there is no point in notify()ing the Reactor. + + * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler): + + These methods are no longer needed. Removed them. + + (sendv): + + Fixed/improved the writev() semantics and emulation in this + method. Previously, if an iov_base buffer was successfully + sent, that success was not reported to the caller if subsequent + sends in the emulation loop failed. The caller would end up + thinking that no part of the message was sent. The improved + semantics are now the following if the underlying send() call + returns with an EWOULDBLOCK or ETIME error condition: + + - If no data was sent, then return -1. + - If some data was sent on a previous loop iteration then + return the number of bytes successfully sent. + + In both cases, errno is unchanged. [Bug 882] + + Incidentally, this fixes a problem in TAO's SSLIOP pluggable + protocol when sending very large requests. Thanks to Andrew + Finnell for providing an + example that exhibited the problem. + + Lastly, the missing timeout support has been added. The timeout + is decremented on each loop iteration. + +Sat Nov 10 17:16:59 2001 Nanbor Wang + + * ace/OS.cpp (fopen): Removed redundant parentheses. + +Sat Nov 10 09:29:48 2001 Douglas C. Schmidt + + * ace/OS.i (pipe): Replaced the _pipe() call on Win32 with the + CreatePipe() call. Thanks to Bo Balders + for reporting this. + + * ace/Log_Msg.cpp (log): The "format" string was omitted. Thanks + to Martin Krumpolec for noticing this. + +Sat Nov 10 08:48:24 2001 Douglas C. Schmidt + + * ace/Arg_Shifter.{h,cpp}: Added a new constructor to ACE_Arg_Shifter + so that it can handle both const char ** and char ** arguments. + +Fri Nov 9 07:42:41 2001 Douglas C. Schmidt + + * ace/Arg_Shifter.cpp: Made the argv parameter to ACE_Arg_Shifter + a "const" ACE_CHAR **. + + * tests/Arg_Shifter_Test.cpp (main): Added "const" to the + args local variable to remove a warning from SunC++. + +Fri Nov 9 11:23:01 2001 Chris Cleeland + + * tests/Collection_Test.cpp: Fixed up things that caused problems + on several platforms. Added the ARRAY tests back in. + +Thu Nov 8 14:52:39 2001 Steve Huston + + * ace/Log_Msg.h: Added a new 'M' option to print out the name of + the log priority. Thanks to Vladimir Chovanec + for reporting this. + +Thu Nov 8 10:41:44 2001 Douglas C. Schmidt + + * ace/OS_String.h: Enhanced the documentation so that it explains + the differences between ACE_OS::strsncpy() and ACE_OS::strcpy() + more precisely. Thanks to Alain Decamps for contributing this. + + * ace/Naming_Context.{h,cpp}: The info() method should have + ACE_TCHAR ** rather than char **. Thanks to Johnny Willemsen + for reporting this. + + * ace/OS.cpp: Added support for Borland's idiosyncratic _wfdopen() + method. Thanks to Johnny Willemsen for reporting this. + +Wed Nov 7 05:17:03 2001 Douglas C. Schmidt + + * ace/Message_Queue_T.{h,cpp}: Changed the typo DEFUALT_PRIORITY + to DEFAULT_PRIORITY. + + * ace/OS.i: In BCB the _wtempnam() has the following signature: + wchar_t *_wtempnam(wchar_t *dir, wchar_t *prefix) + + This means that the arguments must be made non-const by a cast. The + fix is to add some defines so that with BCB and no wchar the + _tempnam is used (with the casts) and with BCB and wchar then + the _wtempnam is used with the casts. Thanks to Johnny + Willemsen for this fix. + +Thu Nov 8 14:52:39 2001 Steve Huston + + * ace/Arg_Shifter.h: Doxygen-ized some comments. + + * ace/Date_Time.i (update): Add 1900 to years value to convert from + localtime's years-since-1900 value to now. Add 1 to the month + to convert localtime's 0-11 range to 1-12. Thanks to Syed + Wasim Ali for reporting this. + + * tests/Date_Time_Test.(cpp dsp icc): New test for ACE_Date_Time. + + * tests/tests.dsw: + * tests/tests.icp: + * tests/Makefile[.bor]: Added Date_Time_Test. + + * tests/run_test.lst: Added Arg_Shifter_Test and Date_Time_Test. + +Thu Nov 8 11:53:00 2001 Steve Huston + + * tests/Arg_Shifter_Test.(cpp dsp icc): New test for ACE_Arg_Shifter. + + * tests/tests.dsw: + * tests/tests.icp: + * tests/Makefile[.bor]: Added Arg_Shifter_Test. + +Thu Nov 8 13:05:12 2001 Chad Elliott + + * include/makeinclude/platform_irix6.x_sgic++.GNU: + + Added an option to suppress warnings about #pragma pack. + +Thu Nov 8 10:43:22 2001 Chad Elliott + + * ace/OS.cpp: + + Correct a build problem for GHS on Win32. + +Wed Nov 07 13:50:39 2001 Nanbor Wang + + * ace/Task_T.h (ACE_Task): Decorated ACE_Task with ACE_Export to + avoid VC7's internal compiler error. Thanks to Darrell for + submitting the change. + +Wed Nov 7 10:59:00 2001 Craig Rodrigues + + * include/makeinclude/platform_sunos5_g++.GNU: Append -D_REENTRANT + to CPPFLAGS if threads=1 + +Wed Nov 7 08:09:20 2001 Balachandran Natarajan + + * bin/nightlybuilds/builds.lst: Changed the name CC5 build as + CC51. It uses version 5.1 of the compiler anyway. + +Tue Nov 6 14:39:28 2001 Douglas C. Schmidt + + * ace/SString.i (find), + * ace/Local_Name_Space_T.cpp (resolve_i): Fixed "off-by-one" + bugs with ACE_OS::strscpy(). Thanks to Alain Decamps + for contributing this. + +Tue Nov 6 13:25:40 2001 Chris Cleeland + + * tests/Collection_Test.cpp: Committed an old change that uses an + actual class as the element in the Unbounded_Set rather than an + int. I wrote this to get a better understanding of how the + iterator and accessors on the iterator worked. + + * tests/SString_Test.cpp (main): Added a test for the rep() method + that insures that the char array returned is equivalent to the + string in the ACE_CString from which it's obtained. + +Mon Nov 5 10:12:01 2001 Douglas C. Schmidt + + * ace/OS.cpp, + * ace/Local_Name_Space_T.cpp, + * ace/FILE_Addr.cpp, + * ace/Acceptor.cpp, + * ace/ACE.cpp: Changed uses of strncpy() to ACE_OS::strsncpy(). + Thanks to Alain Decamps for these fixes. + +Sun Nov 4 12:11:31 2001 Douglas C. Schmidt + + * ace/Reactor.cpp: Enhanced all the Reactor's event loop methods + to first check and see if the Reactor's been deactivated and to + bailout immediately in this case. Thanks to Don Hinton for + suggesting this. + + * ace/Reactor.i: Moved the reactor_event_loop_done() method from + the *.cpp file into the *.i file and made inlineable. + + * ace/Select_Reactor_T.cpp: Be more careful about error handling in the + dispatch_notification_handlers() method. If a failure occurs, + when dispatch_notifications() is called, return -1, rather than + erroneously "incrementing" the count of the number of handlers + dispatched. Thanks to Don Hinton for reporting this. + +Sat Nov 3 11:15:43 2001 Douglas C. Schmidt + + * The following fixes are from Joachim Achtzehnter : + + In ace/config-pharlap.h we had to explicitly #undef + ACE_HAS_WCHAR after the #include "ace/config-win32.h" + directive. Without this change the resulting DLL depended on + several wide character versions of Win32 system functions, such + as _CreateMutexW. At least some of these dependencies were + caused by ace/OS.i. + + In ace/Log_Msg.cpp we had to add !defined(ACE_HAS_PHARLAP) to a + few more places in addition to the ones Bruce Trask had posted + to avoid reference to the NT Eventlog functionality. + + At the top of ace/Log_Msg_NT_Event_Log.h and + ace/Log_Msg_NT_Event_Log.cpp we added !defined(ACE_HAS_PHARLAP) + to completely bypass the contents of these two files. + + * ace/DEV_Addr.i (addr_to_string): + * ace/Local_Tokens.i (name): + * ace/Module.i (name): + * ace/OS.i (asctime_r): + * ace/SPIPE_Addr.i (addr_to_string): + * ace/UNIX_Addr.i (addr_to_string): + * ace/SString.i (rep): Changed uses of strncpy() to ACE_OS::strsncpy(). + Thanks to Alain Decamps for these fixes. + +Fri Nov 2 14:38:49 2001 Douglas C. Schmidt + + * ace/Task.h (ACE_Task_Base): Clarify the meaning of the put() + hook method. Thanks to Tommy Svensson + for motivating this. + +Mon Nov 5 14:23:12 2001 Chad Elliott + + * ace/ACE.cpp: + + Remove a build warning for gcc 2.95.3 on SunOS 5.6. + +Mon Nov 5 14:21:30 2001 Chad Elliott + + * bin/nightlybuilds/builds.lst: + + Added the HP-UX nightly build back to the list. + +Mon Nov 5 13:31:15 2001 Chad Elliott + + * ace/ACE.cpp: + + Fix a build warning for 64-bit HP-UX. + + * ace/Active_Map_Manager_T.i: + + Cast the free list id to ACE_UINT32 to match up with the + slot_index () type. On 64-bit HP-UX, the free list id type + (size_t) is a 64 bit number and must be cast down to 32 bits. + Otherwise, the slot_index is cast up to 64 bits and does not give + the correct results. + + * include/makeinclude/platform_hpux_aCC.GNU: + + Add a -L./ to allow the 64-bit HP-UX builds to link properly. + +Mon Nov 5 11:17:20 2001 Carlos O'Ryan + + * bin/auto_compile: + Add support for the new status.txt file in the scoreboard. + +Mon Nov 5 13:02:50 2001 Chad Elliott + + * ace/config-hpux-11.00.h: + + Added #define of ACE_HAS_CHARPTR_DL. This corresponds with the + declaration of dlopen(char*,unsigned int). + + * ace/OS.cpp: + + Changed the default thread scope to system (similar to Linux). + Process thread scope is not supported in HP-UX. + +Sun Nov 04 11:18:31 2001 Nanbor Wang + + * ace/OS.cpp (fopen): Changed to forward call to fopen instead of + _fopen on non-borland compilers when not using UNICODE. This + change allows the code to compile on Win98. Thanks to Jstwo + for submitting the fix. + +Thu Nov 1 16:21:51 2001 Chris Cleeland + + * bin/auto_run_tests.pl: Added snippet of code that puts the + current directory ('.') in the PATH environment variable since + auto_run_tests.pl depends on the current directory being there. + +Thu Nov 1 15:49:04 Balachandran Natarajan + + * include/makeinclude/platform_osf1_4.x_cxx.GNU: Moved the + CXX_VERSION definition to the global scope. + + * include/makeinclude/platform_tru64_cxx.GNU: Added + -D_PTHREAD_ENV_DECCXX flag to the CPPFLAGS. This is done only + for v5.1, 1885. The pthreads.h in 1885 is messed up. The + conditional include of c_asm.h is busted for DECCXX and + v1885. Hence the change. We need to do this to protect ACE and + TAO applications on this platform and compiler + combinations. Thanks to Don Hinton for + reporting the problem. + +Thu Nov 1 14:25:52 2001 Jeff Parsons + + * ace/config-win32-borland.h: + + Added fix sent in by Chris Kohlhoff + to ACE_CC_PREPROCESSOR_ARGS to enable the recognition of a + filename to which the preprocessor output is to be directed. + There is also a corresponding fix in TAO_IDL/driver/drv_preproc.cpp + that carries out the redirection. + +Thu Nov 1 10:27:21 2001 Ossama Othman + + * ace/Select_Reactor_Base.h (open): + * ace/Select_Reactor_T.h (ACE_Select_Reactor_T, open): + + Added a note about the "size" of the Select_Reactor on Unix + platforms. On Unix platforms, the size parameter should be as + large as the maximum number of file descriptors allowed for a + given process. This is necessary since a file descriptor is + used to directly index the array of event handlers maintained by + the Reactor's handler repository. Direct indexing is used for + efficiency reasons. + +Thu Nov 1 06:38:30 2001 Douglas C. Schmidt + + * ace/ACE.cpp: Fixed some minor formatting problems so that + format_hexdump() works properly. Thanks to Kyle Brost + for reporting this. + + * ace/config-win32.h: Include the config-cygwin32.h file when + __CYGWIN32__ is enabled. Thanks to Johnny Willemsen for + reporting this. + + * ace/Synch.i (remove): Added some casts to make certain compilers + happy? Thanks to Guillaume Renaud + for reporting this. + + * ace/OS.i: Updated the Win32 version of ACE_OS::llseek(). Thanks to + Doron Rajwan for reporting this. + +Wed Oct 31 11:25:40 2001 Douglas C. Schmidt + + * ace/OS.h: The ACE_OS::llseek() method must be static! Thanks to + Doron Rajwan for reporting this. + +Tue Oct 30 08:30:16 2001 Douglas C. Schmidt + + * ace/RB_Tree.cpp (operator=): Make sure to check for self-assignment + in the operator=. Thanks to Johnny Willemsen for reporting + this. + +Mon Oct 29 05:23:56 2001 Douglas C. Schmidt + + * ace/Naming_Context.{h,cpp}: Moved ACE_STATIC_SVC_REQUIRE from the + .h file to the .cpp file to avoid multiple definitions. Thanks to + Boris Kaminer for reporting this. + +Sun Oct 28 10:05:32 2001 Douglas C. Schmidt + + * ace/config-macosx.h: + * include/makeincludes/platform_macosx.GNU + Added new fixes to get this to work on MacOS X. Thanks to John + Michael Zorko and Fikri Pribadi + for contributing this. + +Wed Oct 24 23:59:13 2001 Douglas C. Schmidt + + * ace/Configuration_Import_Export.cpp: Fixed a bug where a + check of a pointer was made rather than the character pointed to + by the pointer. Thanks to Juan Jose Comellas + for reporting this. + +Wed Oct 31 16:45:07 2001 Ossama Othman + + * ace/OS.h (llseek): + + Made ACE_OS::llseek() a static method, as it was originally + intended to be. Thanks to Doron Rajwan for + pointing out the problem. + +Tue Oct 30 22:53:57 2001 Ossama Othman + + * ace/Svc_Conf_l.cpp: + + Fixed incorrect #line preprocessor directives. + + * etc/Svc_Conf_l.cpp.diff: + + Regenerated this diff so that it includes recent updates. + +Mon Oct 29 20:12:40 2001 Ossama Othman + + * tests/run_test.lst: + + Added the Proactor test to the list of one-button tests to run. + +Mon Oct 29 20:04:40 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + More patches from Alexander Libman. The Proactor_Test appears + to finally work on Linux. + +Mon Oct 29 17:49:21 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Added some error checks at places where + token where acquired. + +Mon Oct 29 16:59:58 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp (acquire_token): The acquire_token () called + acquire with a sleep hook. It was wrong. It should just unblock + the thread by sending notify. A bad cut and paste error + :(. Thanks to Graeme Clark for reporting + this. This closes [BUGID 1077]. + +Sun Oct 28 20:36:56 2001 Ossama Othman + + * ace/Map_T.i (clone): + + Fixed syntax errors. + + * ace/Svc_Handler.cpp (new): + + Reverted Michael's change. It incorrectly altered the semantics + of the new operator, particularly when compiling with native + exception support enabled. Fixes a warning. + +Sun Oct 28 16:44:20 2001 Ossama Othman + + * ace/Timer_Hash_T.cpp (ACE_Timer_Hash_T): + + Corrected syntax error that was introduced in the changes + described below by removing extraneous trailing bracket. + +Sun Oct 28 13:15:00 2001 Michael Kircher + + * ace/ACE.i: + * ace/Activation_Queue.cpp: + * ace/Bound_Ptr.i: + * ace/Configuration.cpp: + * ace/Configuration_Import_Export.cpp: + * ace/Containers_T.cpp: + * ace/Future.cpp: + * ace/Handle_Gobbler.h: + * ace/Local_Tokens.i: + * ace/MEM_SAP.i: + * ace/Map_T.i: + * ace/Message_Block.cpp: + * ace/OS_Errno.cpp: + * ace/Object_Manager.cpp: + * ace/Obstack_T.cpp: + * ace/Refcounted_Auto_Ptr.i: + * ace/Remote_Tokens.i: + * ace/Strategies_T.cpp: + * ace/Stream.cpp: + * ace/Svc_Handler.cpp: + * ace/Synch_T.cpp: + * ace/TLI.cpp: + * ace/Timer_Hash_T.cpp: + * ace/Timer_Queue_T.cpp: + * ace/Unbounded_Queue.cpp: + * ace/Unbounded_Set.cpp: + + Changed almost all direct usages of operator new in ACE to use + ACE_NEW_RETURN (Exceptions is Dump_T.h). In one case in + Stream.cpp the semantics changed slightly if operator new would + have been overloaded, see the "@@ Michael" comment. + + When new got used with placement most of the usages got + replaced with ACE_NEW_MALLOC_RETURN. In some cases as in + Malloc_T.cpp, Map_Manager.cpp, PI_Malloc.i, Array_Base.cpp + special cases exist, where the macros would have incurred + different semantics and performance penalties. + +Fri Oct 26 07:37:43 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Quoter example will not run in + minimum_corba builds. + +Wed Oct 24 08:04:36 2001 Balachandran Natarajan + + * ace/Reactor.h: Improved the documentation of the + end_reactor_event_loop (). + +Tue Oct 23 10:04:25 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Replaced uses of a static global lock with the + ACE_Static_Object_Lock singleton. + + Fixed incorrect uses of the "%l" format specifier. "%d" is the + expected format specifier. + + (Acceptor): + + Initialize the "sessions_" member in the base member initializer + list. Corrects a problem where the session number initially + contained a "garbage" value. + +Mon Oct 22 17:55:00 2001 Craig Rodrigues + + * ace/Svc_Conf_l.cpp: Remove include of stdlib.h, fix g++/Solaris + build. + +Mon Oct 22 15:54:29 2001 Steve Huston + + * ace/config-hpux-10.x-hpc++.h: Remove hard-coded setting of + ACE_HAS_EXCEPTIONS. It is controlled by platform_hpux_aCC.GNU. + +Mon Oct 22 15:50:35 2001 Balachandran Natarajan + + * THANKS: Added Chris Hughes name to the Hall of Fame + +Sun Oct 21 16:44:41 2001 Ossama Othman + + * tests/Proactor_Test.cpp (disable_signal): + + Fixed warnings regarding a method that "hid" virtual function + with the same name, in addition to unused argument warnings. + +Sun Oct 21 15:22:57 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Fixed warning about deprecated conversion of "const char *" to + "char *" exhibited by GCC 3.0.x builds. + +Sun Oct 21 12:50:39 2001 Douglas C. Schmidt + + * ace/LSOCK.cpp: The ACE_LSOCK::recv_handle() was returning success + without setting the I/O handle. Thanks to Rick Ohnemus + for reporting this. + + * ace/config-freebsd-pthread.h: Changed + #if (__FreeBSD_version > 430000) to + #if (__FreeBSD_version > 440000) to get ACE to work with FreeBSD 4.4. + Thanks to Gu Song for reporting this. + +Fri Oct 19 06:44:17 2001 Douglas C. Schmidt + + * examples/Reactor/WFMO_Reactor/test_window_messages.cpp: + Don't use a global Event_Handler object since this violates the + design rules for the ACE_Reactor. + +Sun Oct 21 13:39:27 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the Quoter example in + $TAO_ROOT/examples to the list of tests in the daily builds. + +Thu Oct 18 20:56:53 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Added no-op main() function for platforms that do not support + asynchronous IO. + +Thu Oct 18 22:46:09 2001 Balachandran Natarajan + + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: Fixed warnings in Sun CC and TRU 64 builds. + +Thu Oct 18 20:42:55 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Fixed Unicode build errors. + +Thu Oct 18 19:52:44 2001 Craig Rodrigues + + * ace/SString.h: clarify example in comments to ACE_Tokenize + so that constant strings are not passed in its constructor. + + * examples/OS/Process/process.cpp: do not pass constant strings + to ACE_Tokenize constructor. Thanks to + Werner Buchert and + Don Hinton . + +Wed Oct 17 23:56:45 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + * tests/Proactor_Test.dsp: + + Proactor test contributed by Alexander Libman + . + + * tests/tests.dsw: + + Added Proactor_Test project to the tests workspace. + +Wed Oct 17 18:59:53 2001 Christopher Kohlhoff + + * include/makeinclude/install.bor: + Borland makefile fix to ensure that, when doing the install + target, core executables are built correctly if they don't + already exist. + +Wed Oct 17 09:15:10 2001 Douglas C. Schmidt + + * ace/config-linux-common.h: Clarified that this file should + not be included directly! Thanks to Suresh N + for reporting this. + +Wed Oct 17 16:00:19 2001 Balachandran Natarajan + + * THANKS: Added Graeme Clark to the Hall of Fame. + +Wed Oct 17 15:49:20 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: + * ace/TP_Reactor.h: Added remove_handler () calls to the + TP_Reactor. Before this, the call on the reactor used to be + handled by the Select_Reactor's implementation. The + implementation has a problem. It tries to call handle_close () + (an upcall) as one of the calls after holding the token. This + was asking for trouble. This could lead to deadlocks as + mentioned in [BUG ID 1055]. + + The method in the TP_Reactor now calls remove_handler () on the + Select_Reactor (its base class) with a DONT_CALL flag. Then it + calls handle_close () on the Event_Handler if the user did not + pass in the DONT_CALL mask. This two step process would get + around the problem that was mentioned before. Thanks to Graeme + Clark for reporting the problem and + testing this fix. + + This should close [BUG ID 1055]. + +Wed Oct 17 10:40:17 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + + If errno is set to EWOULDBLOCK for the SSL_ERROR_SYSCALL case, + then continue the connection establishment loop. Do not return + right away. Fixes non-blocking connection establishment on AIX. + Thanks to Vladimir Chovanec for + providing this fix. + + * ace/SSL/SSL_SOCK_Stream.h (notify): + + Made this method protected. It isn't intended to be used + internally by the ACE_SSL_SOCK_Stream class. + +Wed Oct 17 12:15:15 2001 Chris Cleeland + + * ace/Select_Reactor_T.cpp (handle_error, check_handles): Add + vxworks to the ever-growing list of OSs which return + unpredictable values in errno when there's a bad file descriptor + in a select mask. [Bug 1058]. + + Thanks to Dave Arndt , Tad Hetke + , and Erik Johannes + for tracking down and providing this fix. + +Tue Oct 16 23:08:27 2001 Ossama Othman + + * ace/Svc_Conf.h (ACE_Svc_Conf_Param): + + Added a new ACE_Obstack attribute that is passed down to the + parser and scanner. This obviates the need for the global + pointer to the ACE_Obstack that was formally used, which in turn + avoids a race condition. + + (ace_obstack): + + No longer a need to maintain a global pointer to the ACE_Obstack + instance used during parsing/scanning. + + * ace/Svc_Conf.y: + * ace/Svc_Conf.l: + + Retrieve the Obstack from the parameter passed down to yyparse() + and yylex() instead of using the (now non-existent) global + instance. This is part of a race condition fix. + + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_l.cpp: + + Updated to pull in the changes made to the source files from + which these files were generated. + + * ace/Service_Config.cpp (process_directives_i): + + The global ACE_Obstack pointer used during each Service + Configurator parse has been removed. An ACE_Obstack instance is + now passed down to the parser and scanner in a + reentrant/thread-safe manner via the new ACE_Svc_Conf_Param + parameter. As such, there is no longer any need to maintain a + global pointer to the ACE_Obstack instance in use, nor is it + necessary to store/restore the previous value when performing + nested or parallel Service Configurator directive processing. + This fixes a race condition that was causing some memory + corruption when parsing Service Configurator directives in + parallel. + + Note that the ACE_Obstack is now instantiated on the stack + rather than the heap, thus improving Service Configurator + directive processing performance. + +Mon Oct 15 23:16:55 2001 Ossama Othman + + * ace/Service_Config.h (process_directives_i): + + Updated the signature of this method to accept a parameter that + will eventually passed to the parser and the scanner. + + * ace/Service_Config.cpp: + + No need to include "ace/Svc_Conf_Lexer_Guard.h" and + "ace/Object_Manager.h". + + (process_directives_i): + + Updated the signature of this method to accept a parameter that + will eventually passed to the parser and the scanner. + + Pass the "ACE_Svc_Conf_Param" parameter to the yyparse() call. + This is reentrant/thread-safe. + + Check the error count found in the "ACE_Svc_Conf_Param" object. + It's count is incremented in a thread-safe/reentrant manner. + + (process_directive, process_directives): + + The ACE_Svc_Conf_Lexer_Guard and its accompanying + synchronization has been moved to the generated scanner code. + This makes locking finer grained. Specifically, instead of + holding a lock for the duration of the scope within which + service configurator directive parsing and scanning is + performed (e.g. for the duration of the yyparse() call), the + lock is only held for the duration of the scope where service + configurator directive scanning occurs (i.e. the entire yylex() + call is synchronized). This is part of the core fix that + corrects a deadlock that occurred when activating an ACE_Task, + in conjunction with the singleton instance of the + ACE_Thread_Manager, during Service Object initialization. + [Bug 1036] + + * ace/Service_Config.i: + + Cosmetic update. + + * ace/Svc_Conf.h: + + Added declaration and method definitions for the + ACE_Svc_Conf_Param class. Instances of this class contain the + state used when parsing/scanning a given service configurator + file or service configurator directive. + + (ACE_SERVICE_DIRECTIVE_STACK_DEPTH): + + There is no longer any hard-coded limit on the maximum depth + nested service configurator directives may be processed. Only + process resource limits limit the maximum nesting depth. + + (ace_yyparse, ace_yylex): + + Updated the parser and lexer entry points to accept an + additional parameter, i.e. a pointer to an ACE_Svc_Conf_Param + object. + + (ace_yy_push_buffer, ace_yy_pop_buffer): + + Pass a pointer to the buffer that will be "switched" in our out + when processing nested service configurator directives those + that are processed in parallel. + + * ace/Svc_Conf.l: + + Removed array that implemented the service configurator + directive stack. The "stack" is now implemented using the + function call stack itself. Hence there is no hard-coded limit + to the stack size. + + Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE, + COLON, STAR}. Just return their corresponding symbolic integer + constants (e.g. ACE_COLON --> ':'). + + Increment error and line count in the ACE_Svc_Conf_Param object + passed to the yylex() function from yyparse(). This improves + reentrance/thread-safety when tracking error counts. + + (yy_push_buffer, yy_pop_buffer): + + Pass a pointer to the buffer that will be "switched" in our out + when processing nested service configurator directives those + that are processed in parallel. + + * ace/Svc_Conf.y: + + Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE, + COLON, STAR}. Just use their corresponding symbolic integer + constants (e.g. ACE_COLON --> ':'). + + Increment error and line count in the ACE_Svc_Conf_Param object + passed to the yylex() function from yyparse(). This improves + reentrance/thread-safety when tracking error counts. + + * ace/Svc_Conf_Lexer_Guard.h: + + Store a pointer the lexer buffer currently being scanned. + + * ace/Svc_Conf_Lexer_Guard.cpp: + + Updated constructor to accept a pointer to an ACE_Svc_Conf_Param + object. If the buffer in that object is zero, it will be + initialized. + + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_Tokens.h: + + Regenerated these files in order to pull in the updates made to + their corresponding source files (i.e. Svc_Conf.{l,y}). + +Mon Oct 15 11:26:39 2001 Steve Huston + + * examples/C++NPv2: New directory for examples in "C++ Network + Programming, Volume 2: Systematic Reuse with ACE and Frameworks" + Moved these changes to the new directory, and reverted the + C++NPv1 files to their ACE 5.2 state: + Sun Oct 14 17:05:14 2001 Douglas C. Schmidt + Tue Oct 9 07:46:20 2001 Douglas C. Schmidt + +Sun Oct 14 17:05:14 2001 Douglas C. Schmidt + + * examples/C++NPv1/Logging_Handler.{h,cpp}: Changed log_file_ from + a reference to a pointer so that it can be initialized + correctly. Thanks to Kitty for reporting this. + +Fri Oct 12 14:54:58 2001 Craig Rodrigues + + * ace/OS.i: + Remove extraneous check for macro ACE_HAS_WINSOCK2_GQOS, + which was breaking various builds under Windows. + Thanks to Jeff McNiel for pointing it out. + +Fri Oct 12 12:15:22 2001 Carlos O'Ryan + + * bin/nightlybuilds/builds.lst: + The QNX machine is no longer running that OS, plus attempts to + bring it back to life failed. The build is removed until + further notice. + +Thu Oct 11 17:52:32 2001 Priyanka Gontla + + * ace/SOCK_Dgram_Mcast.cpp: + Somehow the file didnt get committed yesterday. So, committing + the following change now. + + Wed Oct 10 16:56:18 2001 Priyanka Gontla + +Thu Oct 11 10:57:58 2001 Carlos O'Ryan + + * ace/RB_Tree.h: + * ace/RB_Tree.i: + * ace/RB_Tree.cpp: + Reverted to the 5.2 release state. The proposed changes were + breaking some builds, and they were not bug fixes in any case. + +Wed Oct 10 16:56:18 2001 Priyanka Gontla + + * ace/SOCK_Dgram_Mcast.cpp: + Reverted the following change as it ended up with some problems + for multicast services. + + Fri Oct 5 14:40:03 2001 Balachandran Natarajan + +Wed Oct 10 06:16:52 2001 Douglas C. Schmidt + + * ace/Activation_Queue.{h,cpp}: Added support for two ACE_Allocator that + will control how the message blocks and data blocks are + allocated. Thanks to Gil Rapaport + for contributing this. + + * examples/Reactor/WFMO_Reactor/test_apc.cpp (main): + * examples/Reactor/WFMO_Reactor/test_abandoned.cpp (main): Don't + use a global Event_Handler since this violates the design rules + for the ACE_Reactor. Thanks to Heping He + and Hartmut Quast + for reporting this and to Irfan for + suggesting where the problem arose. + +Tue Oct 9 07:46:20 2001 Douglas C. Schmidt + + * examples/C++NPv1/Logging_Handler.h: Added a new constructor to + class Logging_Handler that just takes an ACE_SOCK_Stream. We + need to use this in C++NPv2. + + * ace/Message_Queue_T.cpp (wait_not_full_cond): Thanks to Leo Kov + for reporting this. + + * ace/TTY_IO.cpp (control): Inserted some useful + ACE_OS::set_errno_to_last_error() calls. Also, for Win32 made + readtimeoutmsec == 0 cause no timeout, whereas readtimeoutmsec + == MAXDWORD causes infinite timeout. Thanks to Lars Steubesand + for reporting this. + +Mon Oct 8 20:19:44 2001 Nanbor Wang + + * examples/DLL/test_dll.cpp: There's no need to specify + ACE_DLL_SUFFIX as it prevent ACE_Lib_Find to figure out the + correct DLL name. + + The ACE_ERROR_RETURN macro store and reset the errno so there's + no need to use dll.error() with it. Changed to use "%p" to + display the error. + + Thanks to Heping He for reporting + the problem. + +Mon Oct 8 11:15:21 2001 Angelo Corsaro + + * ace/RB_Tree.h (class ACE_RB_Tree_Node): + * ace/RB_Tree.i: + + Changed access privilege on the operator new/delete to be + public, and added assertion in those method implementation to + make sure that wrong use of these method are promptly notified. + This changes should fix the problem that some compiling were + still having with RB_Trees. + +Sat Oct 06 23:06:41 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i, close): + + Removed the do/while(SSL_pending()) loop. Its introduction into + the code was a bit misguided. There is no need to flush the SSL + buffer before returning to the Reactor's event loop since the + code now sends a notification to the Reactor to force the + Reactor to invoke the event handler before waiting in the event + loop. This fixes some SSL protocol errors that manifested + during multithreaded SSL communication. [Bug 943] + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + It is no longer necessary to call SSL_accept()/connect() to + flush the SSL buffer before running the Reactor's event loop + since the Reactor is notified that it should call the + appropriate event handler before blocking on select() for + WaitForMultipleObjects(), for example. + + * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler): + + New methods to set the Reactor and event handler associated with + the ACE_SSL_SOCK_Stream. If each of these is set, then the + Reactor will be notified if data is still pending in the SSL + buffer. + + (~ACE_SSL_SOCK_Stream): + + Uninlined the destructor. There is no need for it to be + inlined, and doing so only caused unnecessary code bloat. + + * ace/SSL/SSL_SOCK_Stream.h (notify, reactor, handler): + + Added these new method declarations, in addition to the + corresponding attributes. + + Updated documentation. + + * ace/SSL/SSL_SOCK_Stream.i (notify): + + Method that pushes the event handler on to the Reactor's + notification pipe when necessary. Invoked by recv_i() and + send_i(). + + * ace/SSL/SSL_SOCK_Acceptor.h: + * ace/SSL/SSL_SOCK_Connector.h: + * ace/SSL/SSL_Accept_Handler.h: + * ace/SSL/SSL_Connect_Handler.h: + + Updated documentation. + +Sat Oct 6 16:04:29 2001 Angelo Corsaro + + * ace/RB_Tree.h: + * ace/RB_Tree.i: + + The operator new and delete were declared to be No-Op but were + not implemented as such. This was breaking some builds. Now the + operator are declared as private and they also have a no-op + implementation. This should solve some linking error that were + occurring. + +Sat Oct 6 11:17:22 2001 Balachandran Natarajan + + * THANKS: Added Adrian Mercieca to the hallf of fame. + +Fri Oct 05 18:30:59 2001 Irfan Pyarali + + * ace/RW_Process_Mutex.cpp: Added inclusion ACE.h and fixed member + initialization. + +Fri Oct 5 18:16:53 2001 Balachandran Natarajan + + * ace/SString.h: + * ace/SString.cpp: Changes the usage of ostream to + ACE_OSTREAM_TYPE. Thanks to Russ Noseworthy for letting us + know. + +Thu Oct 4 07:10:01 2001 Douglas C. Schmidt + + * ace/RB_Tree.*: Added support for using the "ACE_Allocator" parameters + to manage memory. Thanks to Airat A. Sadreev + for reporting contributing this. + +Wed Oct 3 07:20:06 2001 Douglas C. Schmidt + + * ace/RW_Process_Mutex.{h,cpp}: Added the ability to create a + unique name if the user doesn't supply one. Thanks to Tom + Wagner for suggesting this. + + * ace/Synch.h: Clarified that the timed wait capabilities of + ACE_Semaphore only work on Solaris if ACE_HAS_PTHREAD is enabled + *and* ACE_HAS_POSIX_SEM/ACE_HAS_STHREAD are disabled. Thanks to + Bonifides Bautista for reporting this. + +Fri Oct 5 12:48:48 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (close): + + Reset the SSL object to allow another connection to be made + using the existing ACE_SSL_SOCK_Stream instance. This prevents + the previous SSL session state from being associated with the + new SSL session/connection. Thanks to Vladimir Chovanec + for pointing out this problem and + suggesting a course of action. + +Fri Oct 5 14:40:03 2001 Balachandran Natarajan + + * ace/SOCK_Dgram_Mcast.cpp (open): Removed the #if defined (linux) + from the code. Looks like this had to be removed to get it + working for RTI under Linux. The other ChangeLog entries that + this change is concerned with are "Sat Feb 17 17:23:46 2001 + Darrell Brunsch " and "Fri Jan 26 11:18:15 2001 + Douglas C. Schmidt". Looks like the patch provided by Keith + Nicewarner is being reverted. I remember + a communication from Keith which seemed to hint that this may + not be required. + + Thanks to Russ Noseworthy for suggesting this. + +Fri Oct 5 14:04:39 2001 Balachandran Natarajan + + * THANKS: Added Hagen Ulrich to the Hall of Fame. + +Fri Oct 5 13:55:02 2001 Balachandran Natarajan + + * ace/Makefile: Removed the SUPPRESS_DASH_G option. Not really + sure where it is used. Further, added a tab to the place where + rules for CHORUS are set. This should fix BUGID 1049. Thanks to + Hagen Ulrich and Dr.David Levine for + reporting and verifying the fix. + +Fri Oct 05 05:56:50 2001 Balachandran + + * ACE version 5.2 released. + +Thu Oct 4 17:38:21 2001 Steve Huston + + * ace/Synch.h: Added some comments to explain the rationale for + the different return values from the blocking and timed + versions of ACE_Null_Semaphore::acquire(). Thanks to Doug + Schmidt for explaining this. + +Thu Oct 4 17:27:39 2001 Steve Huston + + * examples/C++NPv1/Logging_Handler.cpp (recv_log_record): Insure that + the payload message block is properly aligned for any CDR + extraction. Many thanks to Bala for noticing this problem and + sending code for the fix. + +Thu Oct 4 17:08:39 2001 Steve Huston + + * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: + In prepare(), call ACE_Process_Options::command_line() rather + than ACE_Process_Options::process_name() to set the program + path for the child process. + +Thu Oct 4 13:18:37 2001 Steve Huston + + * examples/C++NPv1/Logging_Handler.cpp: Use a ACE_Message_Block, + rather than hijacking a CDR block, to read the payload into. + +Thu Oct 4 10:14:34 2001 Balachandran Natarajan + + * THANKS: Added Donald Acton to the Hall of Fame. + +Thu Oct 4 06:39:20 2001 Balachandran Natarajan + + * ace/config-sunos5.5.h: Added ACE_LACKS_MKSTEMP as SunOS 5.5 does + not support mkstemp (). + + * ace/config-sunos5.6.h: Undefined ACE_LACKS_MKSTEMP as Sun 5.6 + and above support it. + + Thanks to Don Hinton for reporting this + problem and Chad Elliott for testing this out on a Sun OS 5.5 + box. + +Wed Oct 3 16:37:41 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp (read_1): Reverted this change "Wed Oct 3 + 15:05:43 2001 Jeff Parsons ". This + change is alone not enough to fix the problem that Brad + reported. The sample program for the text needs to be fixed to + get it working right. + +Wed Oct 3 15:05:43 2001 Jeff Parsons + + * ace/CDR_Stream.cpp (read_1); + + Reverted changed made in + + Fri Aug 17 16:56:16 2001 Jeff Parsons + + to read_1(). A similar change made in several other methods is + ok, but in this case bytes can be copied into the input CDR + stream without changing wr_ptr, so the check will fail + unnecessarily. Thanks to Brad Hoskins + for pointing this out. + +Wed Oct 2 12:18:37 2001 Steve Huston + + * examples/C++NPv1/Logging_Server.cpp: Fixed spelling error. + * examples/C++NPv1/Logging_Handler.cpp: Comment length adjustment. + +Tue Oct 2 21:52:31 2001 Steve Huston + + * examples/C++NPv1/Logging_Client.cpp: Reverted this: + Mon Oct 1 18:27:41 2001 Steve Huston + +Tue Oct 2 19:52:57 2001 Balachandran Natarajan + + * Makefile: Removed some of the files that no longer exist in the + repository. The inclusion of these files in the Makefile added + noise during the beta cutting process. + +Tue Oct 02 15:34:49 2001 Carlos O'Ryan + + * etc/tao_cosevent.doxygen: + * etc/tao_cosnotification.doxygen: + Fixed typos in the tag file names. + +Tue Oct 2 15:52:27 2001 Balachandran Natarajan + + * THANKS: Added Sunny Leung to the Hall of Fame. + +Tue Oct 2 15:33:36 2001 Balachandran Natarajan + + * THANKS: Removed one instance of Peter Phillips + from the Hall of Fame. + +Tue Oct 2 15:00:37 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp (clone_from): Copied the GIOP major and minor + versions from the incoming CDR stream. Thanks to Sunny Leung + for reporting this. This closes bugzilla + #1043. + +Tue Oct 2 09:45:39 2001 Steve Huston + + * tests/libDLL_Test.icc: + * tests/libService_Config_DLL.icc: Add link(exportAll) to the link + options to export the entrypoints needed for the tests. + +Mon Oct 1 20:04:14 2001 Priyanka Gontla + + * THANKS: + Added Tushar Nair to the THANKS file. + +Mon Oct 1 18:06:48 2001 Priyanka Gontla + + * ace/Object_Manager.cpp (ACE_UnhandledExceptionFilter): + Removed the un-needed #if 0's. Left them before as a safety + measure (in case something doesnt work) and forgot to remove + them later. + + * ace/Log_Msg.cpp (instance): + Fixed the seg faults that are raised when ace is compiled with + ACE_NTRACE=0 on SunOS. Added a check before locking and + releasing a lock. + + Thanks to Tushar Nair for reporting the + problem and for providing a fix. + +Mon Oct 1 18:27:41 2001 Steve Huston + + * examples/C++NPv1/Logging_Client.cpp: Remove the third (optional) + arg from getline(). Using a char literal without further + qualification causes confusion in Unicode builds. + +Mon Oct 1 14:44:13 2001 Ossama Othman + + * ace/SSL/SSL_Context.cpp (ssl_library_init): + + Initialize the locking callbacks in the crypto library before + initializing the OpenSSL library. OpenSSL may require the + locking callbacks to be initialized before its own + initialization. + + * ace/SSL/SSL_Context.cpp (ssl_library_fini): + + Perform crypto library resource cleanup before reclaiming the + locks used by the locking callbacks. Crypto library resource + cleanup makes use of the locking callbacks. + +Mon Oct 1 15:19:11 2001 Douglas C. Schmidt + + * examples/C++NPv1/README: Added a section that illustrates the + mapping of chapters onto files in the directory. + +Mon Oct 1 12:58:57 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp (handle_socket_events): A fix for the problem + that started showing up this time is like this. One of the + threads was dispatching an upcall. In the intermediate time the + Reactor woke up another thread to close the handler, remember + that this is possible with the TP_Reactor if the application + resumes the handles (the way TAO does that). Now when the thread + that that dispatched the upcall returned it tries to invoke a + method on the already closed handle. To prevent that from + happening we make an extra check to see whether the handle + associated with the handler is still available in the internal + map of the Reactor. As this check is done in the return path of + the thread this should have less performance impact. This is + another reason why we should have #1031 in place ASAP. + +Mon Oct 1 12:23:57 2001 Balachandran Natarajan + + * bin/nightlybuilds/builds.lst (WEB): Changed the name of the + Sun's EGCS build. We have not been using EGCS but 2.95.x for a + long time now. + +Mon Oct 1 10:46:15 2001 Balachandran Natarajan + + * bin/PerlACE/Run_Test.pm (check_n_cleanup_files): Removed the + word "ERROR" when files are left behind. This was creating noise + in the daily builds. We have captured the problem in the + bugzilla with id #1014. After 1.2 goes out, if someone is + looking at this problem again we need to add this back so that + our daily builds can pick them up. + +Sun Sep 30 17:25:33 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): + + Reset errno to prevent previous values (e.g. EWOULDBLOCK) from + being associated with a fatal SSL error (e.g. an alert). + +Sun Sep 30 16:52:22 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_shutdown): + + Return the "retval" variable instead of always returning -1. + The actual return value may not always be -1. Thanks to Alain + Totouom for providing this fix. + + * THANKS: + + Added Alain to the list of contributors. + +Sun Sep 30 09:13:04 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + + Made reactor mask constant to emphasize the fact that it is + indeed a constant. + +Sat Sep 29 08:07:07 2001 Douglas C. Schmidt + + * ace/Configuration.{h,cpp}: Changed "allocator" to "alloc" to + avoid bugs with MSVC++ 5.0. Thanks to Munagala Ramanath + for reporting this. + + * ACE-INSTALL.html: Yet more improvements courtesy of Chris + Kohloff. + +Fri Sep 28 23:38:07 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + + Cleaned up the code. + + Do not attempt to verify the X.509 certificate. Only the + application knows how best to do that. + + * ace/SSL/SSL_Context.cpp (ssl_library_init): + + Fixed some Unicode problems. Wrap strings within an ACE_TEXT + macro. + + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i: + + Corrected some comments. + + * ace/SSL/SSL_SOCK_Stream.h (send_n, recv_n): + + Added a "bytes transferred" pointer parameter. This allows the + amount of bytes transferred to returned via this parameter, thus + matching the semantics of their ACE_SOCK_Stream counterparts. + + * ace/SSL/SSL_SOCK_Stream.cpp (send): + + Do not block attempt a timed send() if data is available in + OpenSSL's internal buffer. This prevents a condition where + needlessly blocking on select() would occur. A similar fix for + recv() was made earlier. See Fri Aug 24 16:54:02 2001 Ossama + Othman for details. + + (send_n, recv_n): + + If the "bytes transferred" pointer parameter is non-zero then + return the amounts of bytes transferred through it. This makes + these methods better match the semantics of their + ACE_SOCK_Stream counterparts. + +Fri Sep 28 19:24:51 2001 Steve Huston + + * ace/config-hpux-11.00.h: Moved the definitions for ACE_HAS_WCHAR + and ACE_HAS_XPG4_MULTIBYTE_CHAR from the compiler-independent + section to the aC++ section. (at least) gcc 3.0 distributed from + HP can't handle compiling wide char stuff... it refers to + wctype.h, only available in aC++. + +Fri Sep 28 12:46:25 2001 Ossama Othman + + * ace/SSL/SSL_Context.cpp (report_error): + + Don't bother displaying an error message if the error code is + zero (i.e. no error). + +Fri Sep 28 12:31:39 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + Transfer ownership of the Reactor to the previous owner for the + SSL_ERROR_ZERO_RETURN case. Thanks to Vladimir Chovanec + for pointing out this problem. + + Remove the SSL event handler from the reactor for the + SSL_ERROR_ZERO_RETURN case. Previously, this method returned + without removing it, resulting in a seg fault. + + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + + Ported the updates made to the ssl_accept() counterpart to this + method. + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i (send_i): + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + + In the event a SSL_ERROR_SYSCALL error condition occurs, call + ACE_OS::set_errno_to_last_error() to make sure errno is updated + appropriately since OpenSSL does not do that. Fixes some + "misbehaving" Reactor interactions. Thanks to Andrew Finnell + for tracking down the problem + and suggesting these fixes. + +Fri Sep 28 09:37:28 2001 Ossama Othman + + * ace/SSL/SSL_Context.h (report_error): + * ace/SSL/SSL_Context.cpp (report_error): + + New SSL error reporting functions that use the ACE_Log_Msg + facilities to dump error information. + + * ace/SSL/SSL_Context.cpp (set_mode): + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + + Use the new report_error() static method to display error + information instead of OpenSSL's ERR_print_error_fp(). + + * ace/SSL/SSL_SOCK_Connector.cpp: + + Include 'ace/Log_Msg.h' to pull ACE_ERROR macro definitions. + Fixes compile-time problems on Tru64. Thanks to Martin + Krumpolec for providing this fix. [Bug 1034] + + (ACE_SSL_SOCK_Connector): + + Wrap format specifier string in ACE_ERROR call with ACE_TEXT. + Fixes mismatched Unicode/non-unicode strings. + +Fri Sep 28 06:17:27 2001 Douglas C. Schmidt + + * ace/SPIPE_Acceptor.{h,cpp}: Fixed the use of "char" for + "already_connected_" to be "int". Thanks to Johnny Willemsen + for reporting this. + + * ACE-INSTALL.html: Improved the installation instructions for BCB 4/5. + Thanks to Chris Kohloff for contributing this and to + Jan Kalin for motivating this. + + * ace/TTY_IO.cpp: Fixed numerous bugs in the control() method. + Thanks to Airat A. Sadreev for reporting this. + + * ace/TTY_IO.h: Add a new field for Win32. Thanks to + Airat A. Sadreev for reporting this. + +Thu Sep 27 06:12:21 2001 Douglas C. Schmidt + + * ace/config-win32.h: Added a special-case for Borland C++ Builder, + which must include vcl.h before windows.h. Thanks to Chris + Kohloff for reporting this. This fixes Bug ID 899 for the time + being. + + * ace/Module.cpp (ACE_Module): The line + + this->name (""); + + was be replaced with + + this->name (ACE_TEXT("")); + + Thanks to Airat A. Sadreev for + reporting this. This fixes bug id 1041. + +Thu Sep 27 13:09:19 2001 Bala + + * ACE version 5.1.21 released. + +Tue Sep 25 16:12:14 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + Use ACE_OS::set_errno_to_last_error() set errno instead of doing + so manually to get around broken compilers that reset the last + error when assigning to errno. Thanks to Chris Kohloff for + pointing out the problem and suggesting this fix. + +Tue Sep 25 13:00:37 2001 Nanbor Wang + + * ace/Obstack.h: Fixed a typo when declaring ACE_Obstack + exportable. I mistakenly used the underlying + ACE_EXPORT_SINGLETON_DECLARATION macro directly. + ACE_SINGLETON_DECLARATION is the right macro to use here. + Thanks to Martin Krumpolec for reporting + the bug. + +Tue Sep 25 09:12:28 2001 Andrew Finnell + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + On MS Windows, OpenSSL does not store the last error in errno so + explicitly do so. This corrects problems where a server is + unaware that a client has forcefully disconnected. + +Tue Sep 25 00:01:59 2001 Irfan Pyarali + + * ace/Service_Repository.cpp (instance): There are three stages of + the Object Manager: (a) starting up; (b) running; (c) shutdown. + ACE_Service_Repository::instance() was not creating a new + instance in (a) and (c). It was changed to allow creation (a). + +Mon Sep 24 01:55:29 2001 Ossama Othman + + * bin/auto_run_tests.lst: + + Added TAO's PICurrent test to the list of automated regression + tests. + +Sun Sep 23 19:28:06 2001 Nanbor Wang + + * ace/Reactor.h (ACE_Reactor): Fixed comments for + and . Both + methods work on an instance of reactor, not the global singleton + reactor. Thanks to Doug for noticing this. + +Sun Sep 23 10:02:59 2001 Balachandran Natarajan + + * ace/High_Res_Timer.h: Removed a question mark "?", in a line + which read "or sometimes 3.579 Mhz??". This seems to remove the + warning in VXWORKS builds. I have no clue about the problem that + VXWORKS compiler sees. It took only more than an hour to figure + this out. :(. + +Sat Sep 22 08:59:24 2001 Douglas C. Schmidt + + * ace/Service_Manager.cpp (handle_input): Added some logic to + strip off newlines and carriage returns for Windows platforms. + Thanks to Kyle Brost for contributing + this. + +Sat Sep 22 12:28:21 2001 Ossama Othman + + * ace/SSL/ACE_SSL_LIB.dsp: + + Corrected code generation settings to use the multi-threaded DLL + version of the run-time library. Corrects "legacy" build + problems. + +Sat Sep 22 08:59:24 2001 Douglas C. Schmidt + + * ace/High_Res_Timer.{h,i,cpp}: Added comments to explain how + to configure the timers properly on various platforms. Thanks + to Alain Decamps for reporting this. + + * ace/OS.i (ACE_Flow_Spec): Added a check for ACE_HAS_WINSOCK2_GQOS + so that things will compile properly on MinGW32. Thanks to Jeff + McNiel for reporting this. + +Fri Sep 21 15:54:55 2001 Douglas C. Schmidt + + * ace/OS_Dirent.cpp: Fixed all the allocations so they work properly + when used with ACE_TCHAR! Thanks to Olof Lindfors + . + +Tue Sep 18 06:25:22 2001 Douglas C. Schmidt + + * ace/*Reactor*: Changed all uses of "delta_time" to "delay_time". + Thanks to Johnny Willemsen for reporting this. + +Sun Sep 16 11:53:38 2001 Douglas C. Schmidt + + * ace/Connector.cpp (handle_output): Fixed the comment to be + ACE_WIN32. Thanks to Kobi Cohen-Arazi for + reporting this. + +Fri Sep 21 17:11:52 2001 Balachandran Natarajan + + * ace/Message_Block.h: Tried rewording some comments in the + ACE_Message_Block. Thanks to Tom Wagner for + suggesting this. + + * THANKS: Added Tom Wagner to the Hall of + Fame. + +Fri Sep 21 22:11:53 2001 Ossama Othman + + * ace/SSL/ACE_SSL_LIB.dsp: + + Removed hardcoded user-specific include paths, and user-specific + preprocessor macro definitions. + +Thu Sep 20 18:15:49 2001 Steve Huston + + * tests/Config_Test.cpp: Added some more tests to verify correct + string value reset and enumerate values/sections. + +Thu Sep 20 12:29:09 2001 Ossama Othman + + * ace/SSL/ACE_SSL_LIB.dsp: + * ace/SSL/ACE_SSL_LIB.dsw: + + New static build MSVC++ project and workspace files for the + ACE_SSL library contributed by Jonathan Reis . + [Bug 1032] + +Thu Sep 20 12:16:13 2001 Ossama Othman + + * ace/SSL/SSL_SOCK.cpp (enable, disable): + + Removed unreachable "return" statements. [Bug 1033] + + * ace/SSL/SSL_SOCK_Stream.i (ACE_SSL_SOCK_Stream): + * ace/SSL/SSL_SOCK_Stream.cpp: + + Moved constructor to the ".cpp" file since to prevent inclusion + of `ace/Log_Msg.h' in `SSL_SOCK_Stream.h'. This fixes problems + with some platforms needing the Log_Msg include to pull in the + ACE_ERROR macros without needlessly increasing inter-header + dependencies and inclusions. [Bug 1034] + +Thu Sep 20 14:44:29 2001 Steve Huston + + * ace/Process.cpp (ACE_Process_Options): Moved avoid_zombies_ + initialization outside the !Win32 section. Thanks to Johnny + Willemsen for this fix. + +Thu Sep 20 06:28:50 2001 Chad Elliott + + * ace/config-hpux-11.00.h: + + Reverting the change from "Wed Aug 29 15:32:10 2001 Douglas C. + Schmidt ". HP-UX 11.00 does + not actually support pread/pwrite. + +Wed Sep 19 16:56:02 2001 Irfan Pyarali + + * ace/OS.h (THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM): Added + definitions for THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM on + platforms that do not support threads. + +Wed Sep 19 16:54:04 2001 Jeff Parsons + + * ace/Containers_T.cpp: + + In copy constructor for ACE_Double_Linked_List, added line to + copy the size of the rhs to the lhs. The new list was ending + up with a garbage value for its size. + +Wed Sep 19 14:15:08 2001 Nanbor Wang + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: Enabled generation of debug info even for + release configurations. Thanks to Jonathan Reis + for suggesting this. + +Wed Sep 19 10:23:06 2001 Carlos O'Ryan + + * html/index.html: + Add couple of missing links to the RT-CORBA components + +Wed Sep 19 12:00:04 2001 Johnny Willemsen + + * ACE-INSTALL.html: + Added BCB5 to some places as supported/used compiler + + * ace/Future.h: + * ace/Test_and_Set.h: + Removed the ACE_EXPORT from the templates ACE_Future_Holder and + ACE_Test_and_Set + + * ace/Service_Config.{h,cpp}: + Changed the type of the members be_a_daemon_ and no_static_svcs_ + from char to int + +Tue Sep 18 13:57:36 2001 Carlos O'Ryan + + * */Makefile: + * */Makefile.*: + Updated dependencies, some of the paths were absolute leading to + ambiguities in parallel builds. + +Tue Sep 18 12:18:26 2001 Carlos O'Ryan + + * bin/footprint_stats.sh: + Fixed bug in footprint charts generation. + +Tue Sep 18 10:50:15 2001 Carlos O'Ryan + + * html/index.html: + Add COS Event and COS Notification services to the index. + +Mon Sep 17 19:00:00 2001 Irfan Pyarali + + * ace/OS.h: + + - THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM were not defined + for NT. Added them. + + - Moved the following definitions of VxWorks around such + that these defines are available even when PACE is not + used. + + THR_INHERIT_SCHED + THR_EXPLICIT_SCHED + THR_SCHED_IO + THR_SCOPE_SYSTEM + THR_SCOPE_PROCESS + + * ace/OS.cpp: LinuxThreads do not have support for + PTHREAD_SCOPE_PROCESS; only PTHREAD_SCOPE_SYSTEM is supported. + Therefore, PTHREAD_SCOPE_PROCESS is ignored when setting the + thread scheduling scope. + + * ace/Sample_History.cpp: Added accessors for and + . + + * bin/auto_run_tests.lst: Added new RTCORBA tests. Removed + Minimum CORBA dependency on these tests. + +Mon Sep 17 13:49:07 2001 Carlos O'Ryan + + * etc/tao_cosevent.doxygen: + * etc/tao_cosnotification.doxygen: + Add new Doxygen files for the Notification and COS Event + Services + + * bin/generate_doxygen.pl: + Add new doxygen files to the automatically generated + documentation. + +Mon Sep 17 11:36:54 2001 Balachandran Natarajan + + * tests/run_tests.lst: This is the script used by the shell + script in that directory. As the name is confusing this is being + moved as a new file. + + * tests/run_tests_remote.lst: Renamed the run_tests.lst as + run_tests_shell.lst. This is invoked by run_tests.sh + + * tests/run_tests.sh: Renamed as a new file. + + * tests/run_tests_remote.sh: Renamed the file run_tests.sh as this + one. This script can be used to run tests remotely on a + CHORUS/ClassiX/MVME targets. Further this can also be used to + run tests on platforms that dont support perl or do not have + perl. + +Sun Sep 16 11:19:01 2001 Balachandran + + * ACE version 5.1.20 released. + +Sat Sep 15 16:58:08 2001 Balachandran Natarajan + + * tests/High_Res_Timer_Test.cpp: Fixed compile problem with Sun CC + 4.2. + +Fri Sep 14 05:28:13 2001 Douglas C. Schmidt + + * THANKS: We now have over 1,300 contributors to ACE+TAO! + + * ace/Basic_Types.{h,i}: Added "const" to various operators and + methods. Thanks to Alain Decamps for reporting this. + +Thu Sep 13 11:02:41 2001 Douglas C. Schmidt + + * ace/Singleton.cpp: If we're not compiling with threading enabled, + don't call the get_singleton_lock() code. Thanks to Charles + Frasch for contributing this. + +Tue Sep 11 06:23:08 2001 Douglas C. Schmidt + + * ace/Array_Base.h: Changed current_ from u_int to size_t. Thanks + to Johnny Willemsen for reporting this. + +Fri Sep 14 17:18:37 2001 Steve Huston + + * tests/High_Res_Timer_Test.cpp (check_micro_nano): If the + nanointerval is 0, change it to 1 to prevent divide-by-zero. + +Fri Sep 14 17:02:39 2001 Steve Huston + + * tests/High_Res_Timer_Test.cpp: Replaced some (u_int) casts with + ACE_U64_TO_U32, which is correct. Thanks to Alain Decamps, yet + again!, for this fix. + +Fri Sep 14 11:39:03 2001 Balachandran Natarajan + + * THANKS: Added Mahesh Varadarajan and Kevin Clien to the Hall of + Fame. + +Thu Sep 13 22:43:34 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the new Cache_Growth_Test to the + daily tests. + +Thu Sep 13 20:38:44 2001 Nanbor Wang + + * ace/Thread_Manager.h (ACE_Thread_Manager): Changed the default + argument for the constructor from 0 to + ACE_DEFAULT_THREAD_MANAGER_PREALLOC. Thanks to Doug for + pointing this out. + + Added better documentation to explain the purpose of each + argument in ACE_Thread_Manager's constructor. Thanks to Nick + Pratt for motivating the change. + +Thu Sep 13 13:38:41 2001 Steve Huston + + * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds), + elapsed_time_incr (ACE_hrtime_t&nanoseconds): Instead of using + "nanoseconds >>= 10", use "nanoseconds = nanoseconds >> 10" to + work around a Borland C++Builder bug. Thanks very much to + Johnny Willemsen, Christopher Kohlhoff, and Alain Decamps + for solving this problem. + +Thu Sep 13 13:33:29 2001 Steve Huston + + * tests/Service_Config_Test.cpp: Added #include "ace/Log_Msg.h". + This was probably to get AIX to build clean, but it's been a + while. + +Thu Sep 13 12:04:04 2001 Balachandran Natarajan + + * THANKS: Added Werner Buchert to the Hall of Fame. + +Wed Sep 12 15:10:41 2001 Steve Huston + + * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds), + elapsed_time_incr (ACE_hrtime_t&nanoseconds): Changes to account + for very fast clocks (> 1GHz). Thank you to Derek Dominish + and Alain Decamps + for identifying the problem and coming + up with a good solution. This fixes Bugzilla #1024 (how + appropriate! ;-) + + * ace/High_Res_Timer.i (elapsed_microseconds (ACE_hrtime_t &usecs): + More adjustment to the Win32 scale factor adjusting. Thanks (again!) + to Alain Decamps for identifying and + supplying a fix for this. This fixes Bugzilla #948 (again). + +Wed Sep 12 14:33:29 2001 Steve Huston + + * tests/High_Res_Timer_Test.cpp: Incorporated some additional tests + for usec/nsec sanity checks on the calculated ACE_High_Res_Timer + values. Thank you very much to Alain Decamps + for this test. + +Tue Sep 11 12:40:01 2001 Balachandran Natarajan + + * Terror unleashed. The World Trade Center and the Pentagon + attacked today. Looks like there could be lots of loss to + precious lives. This is too horrible. We convey our condolences + to the bereaved families. God save this world. + +Tue Sep 11 06:41:31 2001 Balachandran Natarajan + + * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: Fixed a + typo. This should fix most of the errors in the scoreboard. + +Mon Sep 10 18:59:24 2001 Douglas C. Schmidt + + * apps/Gateway/Peer/Peer.cpp (nonblk_put): + * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (nonblk_put): + Reverted Bala's changes below since the original code was + correct. Also, added comments to clarify things to prevent + confusion in the future. + +Mon Sep 10 17:31:11 2001 Balachandran Natarajan + + * ACE-INSTALL.html: Added a new platform to the list. + +Mon Sep 10 12:54:28 2001 Balachandran Natarajan + + * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: + Changed the condition that checks for EWOULDBLOCK after a + send. It was erroneously written. Thanks to Nick Pratt + for pointing this out. + +Mon Sep 10 12:36:07 2001 Balachandran Natarajan + + * apps/Gateway/Peer/Peer.cpp (nonblk_put): Changed the condition + that checks for EWOULDBLOCK after a send. It was erroneously + written. Thanks to Nick Pratt for + pointing this out. + +Mon Sep 10 08:17:08 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Will not run the File_IO test in the + Minimum CORBA configuration. + +Mon Sep 10 08:05:39 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Prevented the DLL_ORB test from running + in static builds. + +Sun Sep 9 10:20:59 2001 Balachandran Natarajan + + * */Makefile: Updated dependencies. + +Sun Sep 9 08:43:02 2001 Balachandran Natarajan + + * ace/Handle_Set.i: Added a check in set_bit () and clr_bit () for + ACE_INVALID_HANDLE. If we pass a ACE_INVALID_HANDLE we were + crashing which is not good and hence the fix. + +Sun Sep 9 08:28:52 2001 Balachandran Natarajan + + * ace/Reactor_Impl.h: + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_Base.cpp (is_dispatchable): Added a new + method. This method, just figures out whether the buffer has any + dispatchable info or not. + + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp: Added the above method in the WFMO + Reactor. + + * ace/TP_Reactor.cpp: The handle_notify_events () method now + checks whether the buffer it has read is dispatchable or not. If + it is then it gives up the token to make an upcall. Else, it + just sits around to remove messages of the pipe, till it find + one with a dispatchable info. The fix was necessary so that + wake-up calls that are unanswered are removed of the + pipe. Unanswered wakeup calls were filling up the pipe and they + were blocking some application from writing further to the + pipe. This should be in all probability be the final fix to the + Reactor. + +Sat Sep 8 09:34:52 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Fixed a typo that was giving + compile errors in VXWORKS builds. + +Fri Sep 7 16:40:37 2001 Priyanka Gontla + + * ace/OS.h: + Added an if-def case for IP_MULTICAST_TTL too. + +Fri Sep 7 17:09:04 2001 Balachandran Natarajan + + * tests/Thread_Pool_Reactor_Resume_Test.cpp: Initialised the lock + to null in the constrcutor before allocating memory for + it. This was done to remove the ABW errors in + purify. This should remove the problem that we see with this + test in our daily builds with SunCC 4.2. + +Fri Sep 7 15:51:48 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Included Auto_Ptr.h. + +Fri Sep 07 15:29:37 2001 Yamuna Krishnamurthy + + * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp: + * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp:: + * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp: + + * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp: + * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp:: + * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp: + + * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp: + * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp: + * examples/QOS/Simple/Fill_ACE_QoS.cpp: + + Fixed compile errors. + +Fri Sep 7 14:17:41 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Do not clear the notify handle bit when + trying to dispatch notify calls. This shoudl fix the long + pending problems with TRU 64 builds. + +Fri Sep 07 12:12:39 2001 Steve Huston + + * examples/C++NPv1/Iterative_Logging_Server.dsp: + * examples/C++NPv1/Logging_Client.dsp: + * examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp: + * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp: + * examples/C++NPv1/Reactive_Logging_Server.dsp: + * examples/C++NPv1/Reactive_Logging_Server_Ex.dsp: + * examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp: + Use relative paths to include and library files rather than + $(ACE_ROOT). Makes it easier to use in place regardless of + ACE version. + + * examples/C++NPv1/Logging_Client.cpp: Fixed scoping of the getline() + method call. + +Thu Sep 6 21:14:05 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Changed the usage of auto_ptr + <> to ACE_Auto_Basic_Ptr<>. Thanks to Carlos O'Ryan for this + suggestion. + +Thu Sep 06 18:42:39 2001 Steve Huston + + * examples/C++NPv1: New directory that contains all of the example + code for Doug/my book, C++ Network Programming, Vol 1. + +Thu Sep 6 12:01:15 2001 Priyanka Gontla + + * ace/OS.h: + Added a if-def case for IP_MULTICAST_IF. Seems like it is not + defined in some of the OS versions. + +Thu Sep 06 12:36:43 2001 Yamuna Krishnamurthy + + * ace/OS.h: + * ace/OS.i: + * ace/QoS/QoS_Session_Impl.cpp: + * ace/QoS/QoS_Session.h: + + Fixed compile errors. + +Thu Sep 6 10:24:15 2001 Ossama Othman + + * ace/Acceptor.cpp (accept_svc_handler): + * ace/Strategies_T.cpp (accept_svc_handler): + + Do not close and reopen the peer acceptor on failed attempts to + accept a connection. Several problems were fixed by removing + this code: + + - A race condition existed where another thread or process + could acquire the port that the peer acceptor was + listening on before it was closed. Note that it is not + enough to attempt to synchronize this code with a lock + since an external process could still acquire the port. + + - If the port in the peer acceptor (assuming it is an + ACE_INET_Addr based one) is the wildcard port (zero), then + there is no guarantee that the acceptor will be opened on + the same port upon which it is was previously listening. + In such a case, IORs generated by TAO (for example) can be + rendered invalid since the addressing information embedded + in those IORs will no longer contain the actual port to + connect to when making invocations. [Bug 962] + + - The above two problems actually introduced a + denial-of-service attack vulnerability (now closed by this + fix) since it was relatively easy to force a failed + connection attempt, which would then cause the peer + acceptor to be reopened on potentially a different port, + or to shutdown completely if reopening failed. + + * ace/SSL/SSL_SOCK_Acceptor.i (close): + + Invalidate the handle stored within the ACE_SSL_SOCK_Acceptor + instance. Corrects problems arising from attempts to use a + listening socket that has been shut down. + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + Perform an OpenSSL SSL_accept() in case OpenSSL buffered data + that must be handled before entering the Reactor event loop used + to complete a non-blocking SSL passive connection. + + If the OpenSSL error status is SSL_ERROR_ZERO_RETURN shut down + the partially initialized SSL stream/session since the peer has + itself shut down. + +Thu Sep 6 11:00:46 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: The timer events are not included as a part + of number of active handles from wait_for_multiple_events + (). The check for event_count > 0 before processing timer events + was wrong. Removed the check. Thanks to Chad Elliott for + pointing this out. + + Further did some cosmetic changes like adding comments, removing + comments that was not valid etc. + +Thu Sep 6 07:50:56 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: The AMI buffering test should not be run + Single threaded builds. + +Thu Sep 6 02:30:14 2001 Christopher Kohlhoff + + * examples/Export/Makefile.bor: + * examples/Export/export_dll.bor: + * examples/Export/test.bor: + * examples/Export/dll.h: + Added makefiles for this example and fixed a template problem with + Borland C++. Thanks to Charles Frasch for + contributing this. + +Wed Sep 5 19:48:34 2001 Priyanka Gontla + + * ace/SOCK_Dgram.cpp (set_nic): + Fixed the errors that raised in Win. + +Wed Sep 5 20:38:10 2001 Balachandran Natarajan + + * ace/OS.h: + * ace/OS.i: + * ace/QoS/QoS_Session_Impl.cpp: + * ace/QoS/QoS_Session.h: Reverted the change "Wed Sep 5 18:58:00 + 2001 Yamuna Krishnamurthy ". The change + broke builds. Further there was no reason why the QoS + information should come inside OS.* files. Talk about increasing + foot print. + +Wed Sep 5 18:58:00 2001 Yamuna Krishnamurthy + + * ace/QoS/QoS_Session.h: + * ace/QoS/QoS_Session_Impl.h: + * ace/QoS/QoS_Session_Impl.cpp: + + Added rapi_sender and rapi_reserve calls with null tspec and + flow spec respectively to facilitate the tearing down of PATH + and RESV messages. + + * ace/OS.h: + * ace/OS.i: + + Changed the sending_flowspec_ and receiving_flowspec_ members of + the ACE_QoS class to pointers so they can be initialized to null + flow specs. + +Wed Sep 5 16:50:03 2001 Balachandran Natarajan + + * THANKS: Added Peter Phillips to the Hall + of Fame. + + * ace/OS_String.cpp: Fixed a warning in TRU64 builds. + +Wed Sep 5 11:29:59 2001 Priyanka Gontla + + * ace/SOCK_Dgram.h: + * ace/SOCK_Dgram.cpp: + + Added a new method to set the NIC address in the socket. + +Wed Sep 05 12:00:42 2001 Steve Huston + + * include/makeinclude/platform_aix4_g++.GNU: Sets ACE_AIX_VERS rather + than separate major/minor; see entry below for further info. + +Wed Sep 05 11:52:39 2001 Steve Huston + + * ace/config-aix5.1.h: New config file for AIX 5L, version 5.1, + using Visual Age C++ 5. + + * ace/config-aix-4.1.x.h: + * ace/config-aix-4.2.x.h: + * ace/config-aix-4.3.x.h: + * ace/config-aix-4.x.h: Use ACE_AIX_VERS (which has both major and + minor version) rather than ACE_AIX_MAJOR_VERS and ACE_AIX_MINOR_VERS. + + * include/makeinclude/platform_aix_ibm.GNU: Rather than making + separate major/minor OS version variables, use one that incorporates + both to make it easier for config.h files to set upwardly-compatible + feature flags. + +Wed Sep 5 06:55:44 2001 Chad Elliott + + * tests/Log_Msg_Test.cpp: + + Add ACE_TEXT() around the default program name for the Windows + WChar Unicode build. + +Tue Sep 4 18:48:00 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Changed the value returned from + ACE_Select_Reactor_Notify_Handler::handle_input (). This now + returns a 0 if we did not dispatch any handles or the number of + handles dispatched. We were returning a -1 if we did not + dispatch any handles, after reading the notification from the + pipe. This should fix the Reactor_Notify_Test in the Implicit + templates build. + +Tue Sep 4 12:46:50 2001 Balachandran Natarajan + + * ace/ACE.cpp: Reverted this change "Tue Sep 4 07:37:17 2001 + Balachandran Natarajan ". Thanks to Irfan + for pointing that this change, changes the semantics of the + methods. + +Tue Sep 4 09:14:36 2001 Chad Elliott + + * ace/CDR_Stream.i: + * ace/CDR_Stream.cpp: + + Work around a compiler bug in the latest Green Hills Multi200. + Casting a float to an ACE_CDR::ULong* caused internal compiler + errors if the code was inlined. + + * ace/config-vxworks5.x.h: + * include/makeinclude/platform_vxworks5.x_ghs.GNU: + + Updated support for Green Hills Multi2000. + +Tue Sep 4 07:41:42 2001 Balachandran Natarajan + + * THANKS: Added Eyal Neuman to the Hall of + Fame. + +Tue Sep 4 07:37:17 2001 Balachandran Natarajan + + * ace/ACE.cpp: Fixed a bug with recv_n_i (). The problem was form + returning the exact number of bytes from the for loop. If the + loop had executed once and if we get 0 in the next recv_i () + call, then we should be returning the number of bytes read in + the previous iteration and not 0. Thanks to Eyal Neuman + for this fix. This closes bug 1015. + +Tue Sep 4 07:08:30 2001 Balachandran Natarajan + + * ace/ACE.cpp: Fixed a unicode error in teh Win32 builds. Acted as + a dumbo when I made this change yesterday:( + +Mon Sep 3 20:08:25 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Fixed a warning in TRU 64 builds. + +Mon Sep 3 09:58:32 2001 Balachandran Natarajan + + * */Makefile: Updated dependencies + +Mon Sep 3 09:44:46 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a warning in Implicit + template builds. + +Mon Sep 3 08:21:36 2001 Balachandran Natarajan + + * ace/ACE.cpp: Replaced L with ACE_TEXT_WIDE. + +Mon Sep 3 07:54:32 2001 Balachandran Natarajan + + * ace/OS_String.cpp: Fixed compile errors in win32 builds. Thanks + to Johnny Willemsen for sending in patches for replacing L with + ACE_TEXT_WIDE. + +Sun Sep 2 19:33:07 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a small problem with the + select reactor's notify () handling mechanism. This was more of + a problem with me not checking the while () loop condition + properly. This should fix most of the reactor problems seen in + the daily builds. + +Sat Sep 1 14:10:08 2001 Douglas C. Schmidt + + * ace/System_Time.cpp, + * ace/Stream_Modules.cpp, + * ace/Service_Types.cpp, + * ace/Service_Manager.cpp, + * ace/SPIPE_Addr.cpp, + * ace/OS.cpp, + * ace/Memory_Pool.cpp, + * ace/Mem_Map.cpp, + * ace/Local_Name_Space_T.cpp, + * ace/FILE_Addr.cpp, + * ace/FIFO.cpp, + * ace/Connector.cpp, + * ace/Acceptor.cpp, + * ace/Token_Collection.cpp, + * ace/Name_Request_Reply.cpp, + * ace/Local_Tokens.cpp, + * ace/ACE.cpp, + * ace/Log_Record.cpp, + * ace/Log_Msg.cpp: Added the use of the new ACE_OS::strsncpy() + method. Thanks to Alain for reporting this. + + * ace/OS_String.{h,cpp}: Added a "safe" c string copy method: + strsncpy(dst,src,maxlen). Changing an occurence off strncpy() + to strsncpy() is less errorprone, but could break somebody's + code if he/she is using the fact that the strncpy's where + nul-padding the destination, but this is extremely + unlikely. Using strsncpy() is also almost always (a lot) faster + than strncpy(). Thanks to Alain Decamps + for this method. + +Sat Sep 1 09:54:55 2001 Balachandran Natarajan + + * tests/Bound_Ptr_Test.cpp: Added a patch from Chris Kohlhoff that + fixes the problem with VXWORKS builds. The old gcc compiler + seems to have problems with forward declared types as template + parameters. Chris solves the problem by defining a ABC properly + and making the offending class inherit from it. This should fix + our daily VXWORKS builds. + +Sat Sep 1 08:07:51 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a compilation error in the + Notification queue portion of the code. Thanks to our daily + builds for helping me with this testing. + +Fri Aug 31 22:12:26 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: + * ace/Select_Reactor_Base.cpp: Fixed fuzz errors. + +Fri Aug 31 22:07:57 2001 Balachandran Natarajan + + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp: Added the method read_notify_pipe () to + the WFMO_Notify_Handler. + +Fri Aug 31 19:14:52 2001 Balachandran Natarajan + + * ace/Reactor_Impl.h: Added a new method by name read_notify_pipe + (). Also changed the dispatch_notify () to take in a + Notification buffer instead of a ACE_HANDLE. + + * ace/Select_Reactor_Base.cpp: + * ace/Select_Reactor_Base.h: Made the following changes + + - Implemented read_notify_pipe (). Will read just one message from + the notify pipe or one message from the notification queue. + + - Reimplemented dispatch_notify (). This method would just + dispatch the upcall using the information in the notification + buffer. + + - The handle_input () now uses the read_notify_pipe () and + dispatch_notify () to achieve what it was doing before. + + - The notify () call now sends one notify message on the pipe + for every message in the notification queue. + + * ace/TP_Reactor.cpp (handle_socket_events): + * ace/TP_Reactor.h: + * ace/TP_Reactor.i: We had a race condition. The race condition + was because two threads were trying to read from the notify_pipe + at the same instance. This race condition was fixed by adding a + call to read_notify_pipe () with the lock held and then calling + dispatch_notify () with the buffer read after releasing the + lock. Did the following minor modifications + + - Changed dispatch_socket_events () as dispatch_socket_event () + as we were dispatching only one event. + + - We dont grab the token in the constructor of the token. We + have to make a call specfically to grab_token () to get the + token. + + The above checkins should fix the correctness of the reactor + problems that we have been seeing. + +Fri Aug 31 18:30:28 2001 Krishnakumar B + + * bin/auto_run_tests.lst: + + Added Blocking_Sync_None to the list of tests to be run on + Tru64. + + * ACE-INSTALL.html: + + Added Linux/IA64 to the list of platforms supported. + +Fri Aug 31 15:27:09 2001 Balachandran Natarajan + + * ace/Bound_Ptr.i: Fixed a problem with Sun CC42 builds. Used 1 + instead of true. + +Fri Aug 31 14:57:42 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Fixed usage of ACE_SYNCH meta-class + to work correctly with templates. + +Fri Aug 31 11:53:05 2001 Krishnakumar B + + * ace/OS.h: + * ace/Timer_Queue_T.h: + * ace/Timer_Queue_T.h: + * ace/config-hpux-11.00.h: + * ace/config-hpux11.h: + * ace/config-irix6.x-common.h: + * ace/config-linux-common.h: + * ace/config-lynxos.h: + * ace/config-osf1-4.0.h: + * ace/config-pharlap.h: + * ace/config-sunos4-g++.h: + * ace/config-sunos4-lucid3.2.h: + * ace/config-sunos4-sun3.x.h: + * ace/config-sunos4-sun4.1.4.h: + * ace/config-sunos4-sun4.x-orbix.h: + * ace/config-sunos5.4-centerline-2.x.h: + * ace/config-sunos5.4-g++.h: + * ace/config-sunos5.4-sunc++-4.x-orbix.h: + * ace/config-sunos5.4-sunc++-4.x.h: + * ace/config-sunos5.5.h: + * ace/config-tandem.h: + + Fixed up documentation of ACE_TIMER_SKEW. Fixed bogus values in + all the above files. Should help in removing some of the errors + in TAO tests. Any test in ACE/TAO which breaks because of this + change is broken and should be fixed. + +Fri Aug 31 12:00:00 2001 Steve Huston + + * tests/Bound_Ptr_Test.icc: New Visual Age C++ config for this test. + * tests/tests.icp: Added Bound_Ptr_Test.icc, Service_Config_Test.icc, + and libService_Config_DLL.icc. + +Fri Aug 31 11:40:31 2001 Steve Huston + + * tests/MEM_Stream_Test.(cpp h): Fixed single-threaded builds. + +Fri Aug 31 08:13:26 2001 Chad Elliott + + * bin/perltest2cpp.pl: + + Added a -t option to set the timeout factor. + +Thu Aug 30 18:08:32 2001 Krishnakumar B + + * ace/config-linux-common.h: + + Added some more missing stuff which might break compilations. + The previous change also removed the existing definition for + ACE_TIMER_SKEW so add it back till the new version is checked in. + +Thu Aug 30 17:54:40 2001 Krishnakumar B + + * ace/config-linux-common.h: + + This file was checked in inadvertently when checking in fixes + for ACE_NEEDS_HUGE_THREAD_STACKSIZE. + +Thu Aug 30 13:04:38 2001 Steve Huston + + * tests/run_test.lst: Added Bound_Ptr_Test. + +Thu Aug 30 11:40:39 2001 Steve Huston + + * tests/run_test.pl (run_program): Fixed the 'unlink' to get + all of a test's log files; prevents seeing previous sub-logs + from a test such as MEM_Stream_Test and falsely reporting errors. + +Thu Aug 30 10:46:51 2001 Steve Huston + + * ace/High_Res_Timer.cpp (global_scale_factor ()): When checking for + a high-res timer mechanism, don't set the global_scale_factor_status_ + away from 0 until _after_ getting the scale factor, to avoid + a second parallel thread from using a bogus value. Thanks very much + to Alain Decamps for this fix. + +Thu Aug 30 09:30:19 2001 Chad Elliott + + * tests/Log_Msg_Test.cpp: + + Fix for VxWorks when ace_main() is called with argc == 0. + + * tests/run_test.lst: + + Update the list of tests that run on VxWorks. + + * tests/Makefile: + * tests/run_test.pl: + + Update the script to output VxWorks commands to a file. + +Thu Aug 30 09:58:38 2001 Steve Huston + + * ace/High_Res_Timer.i (elapsed_microseconds): For Win32, isolate the + msec modulus before converting it up to usecs. Thanks to Francois + Rioux for reporting this. + +Thu Aug 30 00:42:41 2001 Christopher Kohlhoff + + * ace/Service_Config.cpp: + Service_Object instances are now inserted into the Service_Repository + only after they have been successfully initialised, to provide better + support for recursive use of the service configurator. With this + change, a service loaded from 'inside' another services's init() will + be inserted into the repository first and unloaded last. This ensures + that any recursively loaded services on which the original service + depends still exist when the original service's fini() function is + called. + +Thu Aug 30 00:27:05 2001 Krishnakumar B + + * ChangeLog: + + Removed bogus files from the previous entry. I should not play + around with a lot of tasks at once. + +Wed Aug 29 19:57:29 2001 Krishnakumar B + + * ace/config-osf1-4.0.h: + + Remove definition of ACE_NEEDS_HUGE_THREAD_STACKSIZE. The + default value seems to be good enough. + + * ace/config-vxworks5.x.h: + * ace/config-lynxos.h: + * ace/config-qnx-neutrino.h: + * ace/config-rtems.h: + + Standardized the values to 64KB on these platforms. Don't know + if these platforms need it. But I don't have access to any of + these so playing it safe. + + +Wed Aug 29 18:52:12 2001 Christopher Kohlhoff + + * tests/Bound_Ptr_Test.cpp: + Removed a stray asterisk that was causing compilation failures. + +Wed Aug 29 17:54:52 2001 Steve Huston + + * tests/libDLL_Test.icc: + * tests/libService_Config_DLL.icc: Fixed the "run after" directives + to correctly build the lib*.a files. Also, fixed the cleanup + directives to properly clean up both .a and shr.o files. + +Wed Aug 29 15:32:10 2001 Douglas C. Schmidt + + * ace/config-aix-4.x.h: + * ace/config-hpux-11.00.h: + * ace/config-osf1-4.0.h: Added better support for pread()/pwrite(). + Thanks to Steve Vranyes for these fixes. + +Wed Aug 29 15:47:33 2001 Steve Huston + + * tests/run_test.lst: Re-enabled MEM_Stream_Test. + +Wed Aug 29 12:15:01 2001 Nanbor Wang + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: Added Bound_Ptr.* to the projects. + + * tests/tests.dsw: + * tests/Bound_Ptr_Test.dsp: Added a new project for + Bound_Ptr_Test. + +Wed Aug 29 11:01:22 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Fixed a cut/paste error and now runs the + proper number of threads/processes for the MT case, avoiding a + hang. + +Wed Aug 29 07:08:23 2001 Douglas C. Schmidt + + * tests/run_tests.lst: + * tests/Makefile + * tests/Makefile.bor + * ace/Makefile + * ace/Bound_Ptr.{h,i} + * tests/Bound_Ptr_Test.cpp + * examples/Smart_Pointer: Added a pair of new smart pointer classes, + ACE_Strong_Bound_Ptr and ACE_Weak_Bound_Ptr. Thanks to + Christopher Kohlhoff for contributing + these. + +Tue Aug 28 17:51:19 2001 Steve Huston + + * tests/run_test.pl: If a test has log files associated with the + main log of the form -.log, e.g. MEM_Stream_Test-331.log + the check_log function will scan those for errors/warnings too. + +Tue Aug 28 16:48:23 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: We (the current thread) should not release the + token unless we own it. This simple mistake just took 3 days to + figure out. An 'if' condition was mixing and have added + it. Shows how a small problem at lower levels can take days to + fix. + +Tue Aug 28 17:45:22 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Fixed compile warning on gcc. + +Tue Aug 28 13:16:31 2001 Chad Elliott + + * bin/vxworks_modify.pl: + * bin/perltest2cpp.pl: + + Generated c++ files now pass the fuzz check. + +Tue Aug 28 11:02:08 2001 Ossama Othman + + * bin/nightlybuilds/builds.lst: + + Renamed the GCC 3.0 build to "Debian_GCC_3.0.1." since we're + actually compiling with GCC 3.0.1, not GCC 3.0. The latter has + bugs that prevent it from compiling ACE/TAO at the "-O3" + optimization level. + +Tue Aug 28 10:19:18 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + Corrected Borland warning using a more efficient fix (i.e. less + function calls). + +Tue Aug 28 10:36:10 2001 Chad Elliott + + * bin/vxworks_modify.pl: + * bin/perltest2cpp.pl: + + Added these scripts for use with VxWorks and the newly added TAO + TestUtils. These scripts modify c++ and perl to generate + "one-button" modules for TAO testing on VxWorks. + +Tue Aug 28 11:07:26 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Be sure to close the stream from the + client end. + +Mon Aug 27 20:16:38 2001 Balachandran Natarajan + + * tests/run_test.lst: Removed the MEM_Stream_Test from the daily + builds as they were hanging. This was causing the builds to + choke. I will keep Steve Huston informed on this so that he can + reenable them once he has fixed the test. + +Mon Aug 27 18:33:59 2001 Krishnakumar B + + * bin/nightlybuilds/builds.lst (WEB): + + Removed the stray yoda part of LIST which is causing the wrong + results to show up. + +Mon Aug 27 18:14:38 2001 Krishnakumar B + + * bin/nightlybuilds/builds.lst (WEB): + + Added the IA-64 builds back again. We now have a faster machine + running a better version of Linux. + +Mon Aug 27 09:39:33 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.i (get_dispatch_info): + * ace/Timer_Queue_T.h: Fixed the compile problem in VXWORKS + builds. How could I forget that there are a few compilers which + cannot grok traits? + +Mon Aug 27 09:39:12 2001 Johnny Willemsen + + * examples/Makefile.bor: + * examples/NT_Service/Makefile.bor + Added BCB makefile for this example + +Sun Aug 26 22:08:32 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: Reordered methods to fix warnings in TRU 64 + builds. + +Sun Aug 26 20:50:22 2001 Balachandran Natarajan + + * ace/SSL/SSL_SOCK_Stream.i: Fixed a warning (hopefully) in + Borland builds. The warning was because a temporary variable was + created. + +Sun Aug 26 20:45:24 2001 Balachandran Natarajan + + * tests/MEM_Stream_Test.cpp: Fixed a unused variable warning in + Borland. + +Sun Aug 26 08:13:12 2001 Douglas C. Schmidt + + * tests/test_config.h: Added a new ACE_CLOSE_TEST_LOG macro. Thanks to + Edan for this. + +Sun Aug 26 09:07:32 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Fixed a compile error with SunCC4.2 + +Sun Aug 26 08:28:09 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.cpp: Fixed a warning from an unused variable + reported by KCC compilers. + +Sun Aug 26 08:13:12 2001 Douglas C. Schmidt + + * tests/Logging_Strategy_Test.cpp: Applied the following fixes from + Edan: + + - Included ace/Logging_Strategy.h + - Addition of -w switch to enable initial wipeout of logfile + - Removal of the redundant ACE_LOG_MSG->open() + - Explicitly close the previous log before applying the changes to the + ACE_LOG_MSG + - Moved remove_files() call higher, just before logfile close + + * ace/Logging_Strategy.{h,cpp}: Added the following fixes from + Edan Ayal: + + - Logging_Strategy now supports any ACE_Log_Msg, not just the + ACE_LOG_MSG singleton. + - Added a check for success (ios::goodbit) of new ofstream + creation. + - Changed default values for max_size and interval. Now the + default interval is 10 minutes (instead of 0) and the default + log file size is 0 (was 16K). The timer is now activated only + if both are non-zero. + - Added a mutator to set the ACE_Log_Msg to work with, and a + member variable + - Added definition for ACE_DEFAULT_LOGFILE_POLL_INTERVAL + - Removed definition of ACE_DEFAULT_MAX_LOGFILE_SIZE + + * ace/Log_Record.{h,cpp}: Enhanced this implementation to (1) + be consistent with recent changes to Log_Msg.h and (2) to + replace problematic use of strncpy(). Thanks to Alain + Decamps for these fixes. + +Sat Aug 25 20:58:22 2001 Nanbor Wang + + * ace/FILE_IO.i (send_n): Changed to use ACE::write_n to send the + chain of Message_Blocks. The originally used ACE::send_n was + causing problem on NT because send_n was restricted for sockets + I/O on NT. Thanks to Doug for pointing this out. + +Sat Aug 25 10:16:21 2001 Douglas C. Schmidt + + * tests/Svc_Handler_Test.cpp (main): The destructor of svc_handler + will close file_io, so we don't need to do it explicitly! + + * ace/Log_Msg.cpp (log): Changed range check from + + this->msg_ + ACE_Log_Record::MAXLOGMSGLEN + + to + + this->msg_ + sizeof this->msg_ + + to correspond to the change below. + + * ace/Log_Msg.h (ACE_Log_Msg): Increased the size of the buffer + used to store log records to account for the NUL-terminator. + + * tests/Svc_Handler_Test.cpp (main): Changed the buffer size + and NUL-terminated the buffer so that things print correctly. + Thanks to Nanbor for finding this. + +Sat Aug 25 09:00:28 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: + * ace/TP_Reactor.h (ACE_TP_Reactor): Fixed a warning in KCC + builds. + +Sat Aug 25 08:42:57 2001 Balachandran Natarajan + + * ace/Configuration_Import_Export.cpp: Fixed warnings with g++. I + am not sure how this fix will be accepted on different + compilers. Things are always dicy when you want to delete a + void *. + +Fri Aug 24 23:29:09 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added File_IO test to our daily builds. + +Fri Aug 24 23:12:15 2001 Balachandran Natarajan + + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp (dispatch_notify): Fixed a compile error on + MSVC. + +Fri Aug 24 23:07:42 2001 Balachandran Natarajan + + * ace/Configuration_Import_Export.cpp: Fixed a compile error with + g++. + +Fri Aug 24 21:55:00 2001 Craig Rodrigues + + * ace/QoS/QoS_Session_Impl.cpp: + Check for null parameters in rsvp_callback(). + Thanks to Yamuna Krishnamurthy . + +Fri Aug 24 20:32:39 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Changed this test to use multiple + processes on any platform without ACE_LACKS_FORK. It actually + could be broader than this if desired. This is motivated by the + fact that HP-UX can't mmap() (the call underlying ACE_MEM_IO) + the same file more than once in the same process. With this, + MEM_Stream_Test goes a lot better on HP-UX, though not perfectly + yet. + +Fri Aug 24 16:54:02 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.h (recv_i): + + Added a timeout parameter. See below for details. + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + Perform an SSL_read() before attempting to block on select() + with a timeout. OpenSSL may buffer more data than requested + since it is a record-oriented protocol. Fixes a problem where + subsequent calls to ACE_SSL_SOCK_Stream::recv() could timeout + when needlessly blocking on select() because the expected data + has already been buffered by OpenSSL. Thanks to Martin + Krumpolec for reporting and diagnosing the + problem. [Bug 1006] + + * ace/SSL/SSL_SOCK_Stream.cpp (recv): + + Moved the timed recv() code to the lower level recv_i() method + since timeout support must now be more tightly integrated with + do/while(SSL_pending()) SSL_read() loop. + +Fri Aug 24 18:33:09 2001 Douglas C. Schmidt + + * ace/Parse_Node.cpp (ACE_Function_Node): Make sure to dynamically + allocate the pathname_ so we can delete it! Thanks to + Don Hinton for reporting this. + + * ace/Configuration_Import_Export.cpp: Changed a couple of + delete (char *) buf to delete (char *) [] buf. Thanks to + Don Hinton for reporting this. + +Fri Aug 24 16:10:20 2001 Balachandran Natarajan + + Merged in changes from the reactor_deadlock branch. This set of + changes actually fixes a long standing problem with the + TP_Reactor. The TP_Reactor was holding the token too long and + this created all sorts of problems for TAO. The changes have been + merged from the branch and here are the relevant + ChangeLog entries. + + Fri Aug 24 14:59:52 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp (dispatch_socket_events): Cosmetic changes. + + Fri Aug 24 14:19:02 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.i: + * ace/Timer_Queue_T.h:Removed the default constructor and + destructor for ACE_Timer_Node_Dispatch_Info_T allowing the + compiler to do the job. + + Fri Aug 24 12:05:25 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.cpp: Removed some vague debug statements. + + Fri Aug 24 11:34:11 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.h: + * ace/Timer_Queue_T.cpp: + * ace/Timer_Queue_T.i: Added a new class + ACE_Timer_Node_Dispatch_Info_T that has the dispatch information + needed to make the upcall. Added methods, dispatch_info () and + dispatch_info_i () in ACE_Timer_Queue_T. These methods return + the dispatch information if there is a node in the queue whose + timer value <= current time. Changed the expire () method to use + this method to get dispatch information. + + * ace/Timer_Queue.h: Added a template specialisation for + ACE_Timer_Node_Dispatch_Info_T. + + * ace/Timer_Queue.cpp: Added template instantiations for the + specialisation. + + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: Added a new method handle_timer_events () + that would handles timer events. + + Thu Aug 23 11:50:18 2001 Balachandran Natarajan + + * ace/Reactor_Impl.h: Added two new methods notify_handle () and + dispatch_notify () to the ACE_Reactor_Impl class. + + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_Base.cpp: Implemented the above two + methods in the ACE_Select_Reactor_Notify class. The + notify_handle () method returns the handle of the pipe on which + it is listening. The dispatch_notify () call does a dispatch of + just one notify () call in the notify pipe. The handle_input () + call that used to process all the notify calls now calls the + dispatch_notify () in a loop. The change essentially allows + some extrenal client of this class to just process one notify at + a time if needed. + + * ace/TP_Reactor.h: + * ace/TP_Reactor.i: + * ace/TP_Reactor.cpp (handle_events): Fixed a bug with + handle_events (ACE_Time_Value &). This should be calling the + handle_events () of the TP_Reactor and not the select reactor. + + Added a whole slew of new methods that basically allows us to do + this + - handle one event at a time + + - once the thread knows the event that needs handling it should + release the token before dispatching the events + + The new methods that have been added are + + - handle_signals (), which handle signals that interrupted the + select (). The implementation of this method is busted. The + implementation has been copied from the existing setup + + - handle_notify_events (), which handles one notify on the + notify_pipe at a time + + - handle_socket_events (), which handles socket events. + + Quite a few helper methods have also been added. They are + get_notify_handle (), get_socket_event_info (), and + dispatch_socket_events (). Removed the methods dispatch_i (), + dispatch_i_protected () and notify_handle (). This checkin fixes + the problem in 1002. But we still have to add handling timeouts + into the TP_Reactor. + + + Tue Aug 21 17:21:07 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: Made lots of changes which havent been + compiled yet. Added a new class ACE_TP_Token_Guard that helps + in obtaining and releasing tokens. Moved the grab_token () from + the ACE_TP_Reactor class to the TP_Token_Guard class. Added a + new method for handling signals. They havent been compiled yet + and this checkin is to put files from work to my home box. + + Tue Aug 21 07:58:42 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp (handle_events): Started refactoring some of + the code to help with this bug. This change has not been + compiled. This is just being done to transfer files from home + to work. + +Fri Aug 24 14:25:31 2001 Balachandran Natarajan + + * THANKS: Added Massimo Pichini to the + Hall of Fame. + +Fri Aug 24 13:40:01 2001 Balachandran Natarajan + + * bin/nightlybuilds/builds.lst: Removed HPUX and AIX_VAC for the + timebeing. Looks like OCI is running different versions of the + OS for their internal use. + +Fri Aug 24 10:17:00 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp (log_hexdump): Added a patch provided by Massimo + Pichini . This prevents overflows with + long strings that are used in printing hexdumps. Previously we + had a buffer of 80 bytes on the stack. + +Fri Aug 24 10:03:29 2001 Steve Huston + + * ace/INET_Addr.(h cpp): Applied changes submitted by + Alain Decamps to insure that + get_host_name (char hostname[], size_t len) const always + nul-terminates the hostname string. If the host lookup is + successful, but the supplied buffer is too short, the function + returns -1, errno == ENOSPC. + +Thu Aug 23 22:01:11 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Reverted this change "Thu Aug + 23 05:24:57 2001 Douglas C. Schmidt" as this was giving + warnings with MSVC 6.0 + +Thu Aug 23 11:49:15 2001 Paul Calabrese + + * bin/msvc_auto_compile.pl: + + Revert changes from Mon Aug 20 15:48:30 2001. + Thanks to Darrell to showing me the error in my ways. + +Thu Aug 23 09:17:25 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp (file): Reduced the number of bytes copied in + ACE_Log_Msg::file () and ACE_Log_Msg::msg () by one. Thanks to + Alain Decamps for pointing this out. + +Thu Aug 23 08:11:22 2001 Steve Huston + + * ace/Configuration_Import_Export.cpp (process_previous_line_format): + Prepend ACE_OS:: to atoi to work with both narrow and wide chars. + +Thu Aug 23 08:03:00 2001 Craig Rodrigues + + * ace/QoS/QoS_Session_Impl.cpp: + Improve debugging messages. Return -1 inside rsvp_callback() + if flowspec type is unknown. + +Thu Aug 23 05:24:57 2001 Douglas C. Schmidt + + * tests/Logging_Strategy_Test.cpp: Added new and improved test that + it better documented and fixes some minor bugs. Thanks to + Edan Ayal for this. + +Wed Aug 22 19:04:57 2001 Douglas C. Schmidt + + * tests/Logging_Strategy_Test.cpp: Enable this test to work + on platforms that don't support DLLs. Thanks to Edan Ayal + for suggestion this and providing the code. + + * tests/Logging_Strategy_Test.cpp (parse_args): Changed 'n' for 'N' + since that controls the max number of log files. Thanks to Edan + Ayal for reporting this. + +Thu Aug 23 07:30:12 2001 Johnny Willemsen + + * ace/SString.{h,i}: Added clear() method to the ACE_CString and + ACE_WString so that it is possible to clear a string in just one + call + * tests/SString_Test.cpp: Extended to test clear() method + +Wed Aug 22 15:30:05 2001 Carlos O'Ryan + + * bin/auto_compile: + Use the print_config.pl script to print out the configuration. + +Wed Aug 22 17:33:29 2001 Steve Huston + + Applied fixes submitted by Jerry D. Odenwelder, to fix + Bugzilla #953: + + * ace/Configuration.cpp (import_config, export_config): Changed + from using a ACE_Ini_ImpExp object to an ACE_Registry_ImpExp + to preserve type information in the import/export files, and + retain the ability to read an ACE 5.1-format file (with the + changes next...) + + * ace/Configuration_Import_Export.(h cpp): Added a new + ACE_Registry_ImpExp::process_previous_line_format() method that + knows how to read an ACE 5.1-format config line. If + ACE_Registry_ImpExp::import_config finds a line that does not + begin with one of <"[#;> it calls process_previous_line_format + to try to convert it using ACE 5.1-format rules. + Note that the auto conversion works on import. If the + object is subsequently exported, the new registry format + will be used to write the file, effectively updating it + from old to new format. + +Wed Aug 22 12:04:04 2001 Douglas C. Schmidt + + * ace/WFMO_Reactor.h (ACE_WFMO_Reactor): Clarified that the + work_pending() method isn't implemented and suggest what to do + for a workaround. Thanks to Michelangelo Riccobene + (michelangelo.riccobene@marconi.com) for reporting this. + +Wed Aug 22 10:38:08 2001 Carlos O'Ryan + + * bin/nightlybuilds/print_config.pl: + Add new perl script to print out the build configuration, the + script will be shared by the Unix and Win32 builds. + +Wed Aug 22 11:30:13 2001 Joe Hoffert + + * ace/OS_Memory.h: + Removed include of pace/stddef.h. PACE does not have this + file. There are no POSIX functions that typically reside + in this header. Maybe PACE will need this later but it + doesn't now. + + * ace/OS.h (ACE_cond_t): + Modified #if guard to include ACE_cond_t class if we're + on Win32. If we're using PACE then we don't want this method + (since PACE takes care of it) unless we're on Windows. Win32 + mutexes, semaphores, and condition variables are not yet + supported in PACE. + + * ace/OS.cpp (ACE_OS::cond_destroy): + Modified #if guard to include ACE_cond_t::cond_destroy + if we're on Win32. If we're using PACE then we don't want + this method (since PACE takes care of it) unless we're on + Windows. Win32 mutexes, semaphores, and condition variables + are not yet supported in PACE. + + * ace/OS.i (ACE_OS::waiters): + Modified #if guard to include ACE_cond_t::waiters if + we're not on Win32. If we're using PACE then we want + this method (since PACE defines cond_t) unless we're + on Windows. Win32 mutexes, semaphores, and condition + variables are not yet supported in PACE. + +Tue Aug 21 08:26:30 2001 David L. Levine + + * docs/ACE-guidelines.html: changed the example referenced + in: + Sun Aug 19 08:17:14 2001 David L. Levine + to be a bit more realistic. + +Tue Aug 21 06:58:49 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp: Fixed problematic uses of strncpy. Thanks to + Alain Decamps for giving this patch. + +Tue Aug 21 10:40:12 2001 Johnny Willemsen + + * ace/Map.i: Made the return value of ACE_Incremental_Key_Generator + getCurrentValue() const + + * ace/Map_Manager.*: Added a const iterator for the + ACE_Map_Manager + +Mon Aug 20 18:20:51 2001 Steve Huston + + * ace/Process.cpp (pass_handle): Only try to compile the + DuplicateHandle stuff when !ACE_HAS_WINCE... I think it's + right this time... + +Mon Aug 20 15:54:46 2001 Douglas C. Schmidt + + * ace/SUN_Proactor.cpp: Removed the instantiation of + ACE_Condition. Thanks to David Trusty + for reporting this. + +Mon Aug 20 15:48:30 2001 Paul Calabrese + + * bin/msvc_auto_compile.pl: + + Modify script to print config.h contents. + +Mon Aug 20 13:14:00 2001 Carlos O'Ryan + + * bin/auto_compile: + Fixed chdir commands for the auto_compile scripts. + +Mon Aug 20 14:33:31 2001 Douglas C. Schmidt + + * ace/Message_Queue_T.cpp: If we timeout in the semaphore implementation + of the message queue in wait_not_full_cond() or + wait_not_empty_cond() make sure to decrement the "waiters" count + accordingly! Thanks to Patrick Rabau + for noticing this in the C++NPv1 book version! + +Mon Aug 20 07:01:31 2001 Douglas C. Schmidt + + * ace/Synch_T.i (release): If owner_ == -1 then return + -1. Thanks to Don Hinton for suggesting this. + +Mon Aug 20 13:18:51 2001 Steve Huston + + * ace/SOCK.h: Corrected comment on ACE_SOCK ctor being protected, + not private. Thanks to Don Hinton for + pointing this out. + + * THANKS: Added Don Hinton to the Hall of Fame. + +Mon Aug 20 11:00:50 2001 Chad Elliott + + * ace/OS.h: + + Set the ACE_DEFAULT_FILE_PERMS to the correct value for VxWorks. + + * tests/run_test.lst: + + Removed tests for VxWorks for which the platform has no support. + + * tests/CDR_File_Test.cpp: + * tests/Svc_Handler_Test.cpp: + + Add VxWorks to the list of platforms that can't unlink the file + in advance of the test completing. + +Mon Aug 20 01:49:12 2001 Christopher Kohlhoff + + * include/makeinclude/build_dll.bor: + Build non-core DLLs into the common bin directory. This is necessary + so that the tests can find all the DLLs they need on the path. + + * tests/run_test.pl: + Removed the append of the ExeSubDir to the path, since it is no + longer needed and never really worked properly anyway. + +Mon Aug 20 00:01:29 2001 Steve Huston + + * ace/SOCK_Connector.h: Clarify the conditions under which errno + will be ETIME (caller-specified timeout expires w/o connect) + vs. ETIMEDOUT (protocol layer timed out the connect). + + * ace/SOCK_Connector.cpp: Add "|| errno == ETIME" to a couple + places where an ACE_ERROR is _not_ done for certain conditions. + + * ace/ACE.cpp (handle_timed_complete): If the user-specified timeout + expires before the connect is resolved one way or the other, + set errno to ETIME, not ETIMEDOUT. This makes it match the + documented behavior in the ACE_SOCK_Connector man page. + +Sun Aug 19 20:33:39 2001 Carlos O'Ryan + + * bin/nightlybuilds/builds.lst: + Update build list + +Sun Aug 19 15:36:23 2001 Carlos O'Ryan + + * bin/auto_compile: + Add new 'Config' section at the end of the build, useful for the + next generation scoreboard. + +Sun Aug 19 13:25:51 2001 Carlos O'Ryan + + * bin/footprint_stats.sh: + * bin/performance_stats.sh: + * bin/generate_footprint_chart.sh: + * bin/generate_performance_chart.sh: + * html/Stats/Stats.css: + * html/Stats/configuration.shtml: + * html/Stats/detailed_footprint.shtml: + * html/Stats/detailed_performance.shtml: + * html/Stats/footer.html: + * html/Stats/index.shtml: + * html/Stats/navigation.html: + Put the scripts and HTML documents used to generate the Stats + pages under CVS control. Now it is easier for people to add + their own libraries and tests, as well as let our user community + examine the way the pages are generated. + + * bin/auto_run_tests.lst: + Remove TAO/tests/LongUpcalls/run_ami_test.pl, the tests have + been incorporated into the run_test.pl script. + + * bin/sandbox.cpp: + Minor changes to the sandbox script, actually not very useful, + the ACE classes to create processes start a new process group by + default, therefore there is no simple way to kill all the + subprocesses if a test fails. + +Sun Aug 19 08:17:14 2001 David L. Levine + + * docs/ACE-guidelines.html: replaced function call in + ASSERT with simple comparison of a variable value. Thanks + to Tino Schwarze + for suggesting this. + +Sat Aug 18 18:26:24 2001 Balachandran Natarajan + + * ace/ACE.cpp: Removed the ASYS_INLINE macro from the definition + of write_n (). + +Sat Aug 18 13:18:10 2001 Douglas C. Schmidt + + * ace/ACE.{h,cpp}: Added a new write_n(...ACE_Message_Block *...) + for file transfers that's the dual of + send_n(...ACE_Message_Block *...). This helps out the C++NPv1 + book symmetry. Thanks to Alain Decamps + for motivating this. + +Fri Aug 17 18:17:38 2001 Douglas C. Schmidt + + * bin/clone.cpp: Only use extern char *sys_errlist[] if we're not + compiling on Linux. Thanks to Thomas Groth + for reporting this. + +Fri Aug 17 19:04:31 2001 Steve Huston + + * ace/Process.cpp (ACE_Process_Options::pass_handle): For WinCE, + just do ACE_NOTSUP_RETURN (-1). It can't dup a handle. + +Fri Aug 17 16:56:16 2001 Jeff Parsons + + * ace/CDR_Stream.h: + * ace/CDR_Stream.i: + * ace/CDR_Stream.cpp: + + Added wr_ptr() accessor method to ACE_InputCDR, and added its + use to adjust(), align_read_ptr(), read_1(), skip_string() and + skip_bytes() instead of end(). Also added reset of good_bit_ + to 0 upon failure in read_string() and read_wstring(). Thanks to + Peter Phillips for reporting this bug, + which was causing excessive memory allocation is some cases. + [Bug 591, 944, 983] + +Fri Aug 17 13:31:45 2001 Chad Elliott + + * tests/run_test.pl: + + Added the ability to generate windsh commands to load and run + the ace tests. + + * tests/Makefile: + + Added a rule to generate run_test.vxworks, using run_test.pl, + which can be used to run the tests selected for the VxWorks OS. + + * tests/run_test.lst: + + Update this list to take into account the limitations of VxWorks. + + * tests/test_config.h: + + Change the permissions of the log file open (for VxWorks only) to + use the symbolic permission names instead of 0x644. The + permissions differ from the standard UNIX modes. + + * tests/run_tests.vxworks: + + This file was out of date and no longer needs to be maintained. + So, it has been removed. + +Fri Aug 17 09:44:49 2001 Balachandran Natarajan + + * ace/Map_T.{h,i}: Reverted this change "Fri Aug 17 08:07:12 2001 + Johnny Willemsen " as this was giving too + much of warnings in the builds. + +Fri Aug 17 09:30:34 2001 Balachandran Natarajan + + * gperf/apps/tests/Makefile: Fixed the problem that was causing + the builds to fail. + +Fri Aug 17 08:07:12 2001 Johnny Willemsen + + * ace/Map_T.(h i): made the return value of + ACE_Incremental_Key_Generator::current_value const T& instead + of T&. Added uppercase traits to the ACE_Map class. + +Thu Aug 16 19:27:29 2001 Steve Huston + + * ace/Process.cpp (ACE_Process_Options::pass_handle): Add + "::" to front of "DuplicateHandle" so the WinCE compiler + sees the right function. + Also added ctor/dtor for ACE_Managed_Process to try and fix the + can't find vtable error on Linux. + + * ace/Process.h: Added a constructor for ACE_Managed_Process + to fix "can't find vtable" error on Linux. + + * ace/Process.i: Moved ACE_Managed_Process dtor to .cpp file. + +Thu Aug 16 15:10:42 2001 Steve Huston + + * ace/Process.h (pass_handle): Clarify comments for this method. + + * ace/Process_Manager.cpp: + * ace/Process.(h i): Moved the ACE_Managed_Process class out + of Process_Manager.cpp, exposing it for general use. + +Thu Aug 16 10:34:20 2001 Douglas C. Schmidt + + * ace/POSIX_Proactor.cpp (allocate_aio_slot): Added a fix so that + the POSIX Proactor compiles with FreeBSD 4.4. Thanks to Yev + Omenzel for reporting this and to Craig + Rodrigues for fixing it and to + John E Hein for fixing the fix ;-) + +Thu Aug 16 08:09:53 2001 Chad Elliott + + * tests/run_test.lst: + + Added the OTHER requirement to the Thread_Pool_Reactor_Test and + the Thread_Pool_Reactor_Resume_Test. These are only built if + OTHER is part of the ACE components list. + + +Wed Aug 15 15:50:38 2001 Douglas C. Schmidt + + * ace/WFMO_Reactor.cpp: Don't try to purge the notifications if + notify_handler_ is 0. Thanks to Edan Ayal + for reporting this. + +Wed Aug 15 11:33:26 2001 Carlos O'Ryan + + * bin/nightlybuilds/builds.lst: + Remove one build from the list, the machine is being retargeted + for performance testing. + +Wed Aug 15 11:10:22 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Added $(VDIR) for + OBJDIRS. This prevents hardcoding the value of OBJDIRS. This has + been tested for a dynamic and a static library on Linux. If + there are other platforms that gives problems, please feel free + to revert the changes to the version 4.114 of the file. + +Wed Aug 15 09:35:19 2001 Chad Elliott + + * ace/Dirent_Test.cpp: + + Added #define's for VXWORKS that allow this test to function + properly. Avoid hard-coded relative paths that may not exist on + VxWorks. + +Wed Aug 15 09:08:40 2001 Chad Elliott + + * ace/Sock_Connect.cpp: + + Added an implementation to ACE_Sock_Connect::get_ip_interfaces(). + With this, the Enum_Interfaces_Test works correctly. + +Wed Aug 15 07:54:49 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Unravelled the mystery a + bit. The patch that was applied to remove the hard coding of + OBJDIRS seems to be the problem. The OBJDIRS has been hardcoded + again. This should fix the problems that we have been seeing in + the builds. If at all we need to remove hardcoding the OBJDIRS, + we either need to put the value of VDIR or VSHDIR. If we put + both we are going to end up with duplicate targets. Now the + killer, what do we add to the OBJDIRS? Me thinks it is VDIR. I + have test that out else I would be breaking builds again. + +Wed Aug 15 07:30:00 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Reverted the change "Tue + Aug 14 21:42:24 2001 Balachandran Natarajan". Thought that was a + typo. But looks like it is not. + +Wed Aug 15 06:39:50 2001 Balachandran Natarajan + + * ace/Process.cpp: Fixed a warning with g++. + +Tue Aug 14 23:57:42 2001 Steve Huston + + * A set of changes to encapsulate passing handles to spawned + processes. Thanks very much to Eamonn Saunders + for suggesting that this could work + and pointing out the Win32 details! + + * THANKS: Added Eamonn Saunders to the Hall of Fame + + * ace/Handle_Set.h: Replace include ace/ACE.h with ace/OS.h. This + class is part of the OS subset. + + * ace/Process.h: Added the following methods: + - ACE_Process_Options::pass_handle (ACE_HANDLE). Cause the specified + handle to be passed to a child process when it's spawned. Has + meaning mainly for Win32. The handle value will be included + in the spawned process's command line as +H . The passed + handle value will be duplicated if on Win32 less than NT4. + + - ACE_Process_Options::dup_handles (ACE_Handle_Set set) const + Get a copy of the handles the ACE_Process_Options duplicated + for the spawned process. + + - ACE_Process_Options::passed_handles (ACE_Handle_Set set) const + Get a copy of the handles passed to the spawned process. This + will be the set of handles previously passed to pass_handle(). + + - ACE_Process::close_dup_handles (). Close all the handles in + the set obtained from ACE_Process_Options::dup_handles. + + - ACE_Process::close_passed_handles (). Close all the handles in + the set obtained from ACE_Process_Options::passed_handles. + + Also moved the avoid_zombies() functions and flag out of the + non-Win32 section - it can safely be ignored, maintain the + intended semantics, and help apps stay portable. + + * Process.cpp: Implement the above new methods. Also, after spawning + a process, the parent will call the above dup_handles/passed_handles + methods to get any passed handles. The close_*_handles() methods + can then close them. Also, the destructor will call close_dup_handles + to be sure that no handles leak on Win32 less than NT4. + + * Process.i (command_line_buf ()): Added a new arg to receive the + maximum length of the buffer pointed to on return. To maintain + backward compatibility, the arg defaults to 0 (don't return + the max length). + + * ace/Makefile: Moved Handle_Set from the UTILS group to the OS group. + + * ace/ace.icc: Moved Handle_Set from DEMUX to OS. + + * docs/ACE-subsets.html: Move Handle_Set from DEMUX to OS. + +Tue Aug 14 21:42:24 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Fixed a typo. + +Tue Aug 14 21:30:04 2001 Balachandran Natarajan + + * apps/Makefile: Removed JAWS2 and JAWS from the Makefile. There + are several reasons for reverting. This breaks the builds. The + Makefiles in the recursed directories are all messed up. The + library dependencies doesnt seem trivial. Nobody may have time + to fix this. Further, our daily builds return too quickly and we + just needed more files to compile :-). + +Tue Aug 14 14:19:49 2001 Steve Huston + + * ace/Memory_Pool.i (ACE_Local_Memory_Pool dtor): Call release() + here to free up the blocks allocated by the pool, else they're + stranded and can't be freed. + + * ace/Memory_Pool.cpp (ACE_Local_Memory_Pool::release): After + freeing up the blocks, reset the allocated_chunks_ set to be + sure they are also freed, and the chunks can't be freed again. + +Tue Aug 14 14:19:37 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp: Applied the patches sent by Tibor Kiss + for ACE_Log_Msg::close () + +Tue Aug 14 13:55:42 2001 Balachandran Natarajan + + * include/makeinclude/platform_macosx.GNU: Added a patch from John + Michael Zorko . + +Tue Aug 14 10:21:39 2001 Steve Huston + + * ace/Log_Msg.h: Clarified the defaults for the per-process and + per-instance default priority masks. + +Mon Aug 13 14:01:35 2001 Douglas C. Schmidt + + * include/makeinclude/wrapper_macros.GNU: Fixed some hard-coded + uses of .shobj and .obj. Thanks to Shashi Bhushan + for contributing these. + + * ace/CDR_Stream.h: Added comments warning about the deletarious + effects of not aligning buffers to ACE_InputCDR and + ACE_OutputCDR properly. Thanks to Alain Decamps + for reporting this. + +Sun Aug 12 14:46:07 2001 Douglas C. Schmidt + + * ace/OS.cpp (sched_params): Make sure to set errno for Win32 so + that callers can figure out what's going wrong in a consistent + way. + + * ace/Select_Reactor_Base.i (purge_pending_notifications): Don't + try to purge the notifications if notify_handler_ is 0. thanks + to Steve Rahn for reporting this. + +Mon Aug 13 20:09:04 2001 Balachandran + + * ACE version 5.1.19 released. + +Sun Aug 12 02:17:01 2001 Nanbor Wang + + * ace/MEM_Acceptor.cpp: + * ace/MEM_Connector.cpp: On non-Win32 platforms, disable + multithreaded MEM_IO if _ACE_USE_SV_SEM is defined. + +Sun Aug 12 01:27:51 2001 Steve Huston + + * tests/Log_Msg_Test.cpp: Correct const-ness of a pointer + retrieved from ACE_Log_Record::msg_data(). + +Sun Aug 12 00:34:42 2001 Steve Huston + + * ace/Log_Record.h: + * ace/Log_Record.i (msg_data()): Changed ACE_TCHAR *msg_data() + to: const ACE_TCHAR *msg_data (void) const. Makes it safer, + and conforms to all current usage inside ACE. Also makes + C++ Network Programming examples simpler :-) + +Sat Aug 11 09:01:11 2001 Douglas C. Schmidt + + * ace/Thread.h: + * ace/Task.h: Added a list of other flags that can be passed to + activate(). + +Fri Aug 10 19:39:48 2001 Krishnakumar B + + * bin/auto_run_tests.lst: + + Disabled the Blocking_Sync_None test from running under Tru64. + Also changed the config parameter passed to the auto_compile + script from TRU_64 to Tru64 in + ~bugzilla/bin/auto_compile_tru64_cxx. + + This is so that the test is disabled only for the WashU builds. + The reason being that Bala was not too happy with changing the + default values for all the platforms and we also wanted to avoid + more #ifdefs in the code. Other builds might have better values + and the test might succeed. Have to confirm this though. + +Fri Aug 10 17:59:47 2001 Nanbor Wang + + * ace/Svc_Conf_y.cpp: + * ace/OS.h: Added /**/ between #include and and + to avoid warning from CE compiler. + + * ace/ace_dll.vcp: Added Svc_Conf_Lexer_Guard.* to the project. + +Fri Aug 10 13:40:46 2001 Chad Elliott + + * bin/nightlybuilds/builds.lst: + + I didn't realize the LIST definition was needed. I have + added it for the Tru64 4.0f Compaq C++ 6.3-10 build. + +Fri Aug 10 11:45:03 2001 Chad Elliott + + * bin/nightlybuilds/builds.lst: + + Added the Tru64 4.0f Compaq C++ 6.3-10 build. + +Fri Aug 10 11:06:23 2001 Chad Elliott + + * apps/drwho/CM_Client.cpp: + * apps/drwho/CM_Server.cpp: + * apps/drwho/server.cpp: + + Changes to avoid warnings on HP-UX with aCC. + +Thu Aug 9 16:56:05 2001 Balachandran Natarajan + + * ace/Hash_Map_Manager_T.i: + * ace/Hash_Map_Manager_T.cpp: We seem to be re-inventing wheels + again and again. A few months back we had a show stopper in a + beta which was caused by usage of static cast. The cast was not + to the liking of SunCC 4.2. Looks like we had to change a bunch + of static cast sprayed in these two files to a C style cast as + 4.2 doesnt like them. Compilers like Borland handle these + better, but not 4.2. + +Thu Aug 9 11:51:10 2001 Balachandran Natarajan + + * include/makeinclude/platform_hpux_aCC.GNU: On popular mandate we + have the -w flag removed from CCFLAGS in the above file. Looks + like the -w disables lots of warnings that may be useful. + +Thu Aug 9 11:41:01 2001 Balachandran Natarajan + + * ace/CDR_Stream.h (ACE_OutputCDR): Fixed the ambigous constructor + problem. The InputCDR class had two constructors which were + similar if the default values for the arguments were + exercised. Thanks to Torbjorn Backstrom + for reporting this. + +Thu Aug 9 12:31:21 2001 Douglas C. Schmidt + + * ace/OS_String.cpp (strtok_r_emulation): Make sure to check + for a NULL return from strtok() before calling strlen()! Thanks + to Boris Sukholitko for reporting this. + +Wed Aug 08 21:27:50 2001 Ossama Othman + + * bin/nightlybuilds/builds.lst (Debian_Wchar, Debian_GCC_3.0): + + The host these nightly builds were built on is now called + "rumba" (previously "valinor"). Updated the build list + accordingly. + +Wed Aug 08 21:19:09 2001 Ossama Othman + + * tests/Service_Config_Test.UTF-16.conf: + + Removed extraneous characters from this file that were causing + the Service Configurator's underlying lexer to "choke." + +Wed Aug 8 16:23:31 2001 Carlos O'Ryan + + * bin/auto_run_tests.lst: + Add the AMI_Buffering tests to the nightly regression testsuite. + +Wed Aug 8 16:07:26 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: The GIOP lite tests will not work in the + static builds. It was adding more complications to the test + than what is already there to get it working for the static + builds. + +Wed Aug 8 14:06:36 2001 Krishnakumar B + + * ace/config-tru64.h: + + Define ACE_HAS_NONSTATIC_OBJECT_MANAGER for all DEC Unix 4.x + versions. + + * ace/config-cxx-common.h: + + Define ACE_AUTO_PTR_LACKS_RESET if __DECCXX_VER == 60190027. + Thanks to Robert Burke for reporting + this. + + * include/makeinclude/platform_osf1_3.2.GNU: + * include/makeinclude/platform_osf1_4.0.GNU: + * include/makeinclude/platform_osf1_4.0_g++.GNU: + * include/makeinclude/platform_osf1_4.0_kcc.GNU: + * include/makeinclude/platform_osf1_4.0_rcc.GNU: + + Removed the following files. + + * include/makeinclude/platform_osf1_3.2_cxx.GNU: + * include/makeinclude/platform_osf1_4.x_cxx.GNU: + * include/makeinclude/platform_osf1_4.x_g++.GNU: + * include/makeinclude/platform_osf1_4.x_kcc.GNU: + * include/makeinclude/platform_osf1_4.x_rcc.GNU: + + Added new versions of the removed files. + + * include/makeinclude/platform_tru64_pre.GNU: + * include/makeinclude/platform_tru64_post.GNU: + + Moved a lot of duplicated code into these new files. + + * include/makeinclude/platform_tru64_cxx.GNU: + * include/makeinclude/platform_tru64_g++.GNU: + * include/makeinclude/platform_tru64_kcc.GNU: + + Removed a lot of old *cruft* like setting up compilation with + cxx when gcc was asked for etc. etc. Somebody went overboard + with cut'n paste and copied David's changes blindly. Still not + completely satisfied. But it works and is better than before. + This also fixes Bug Id 989. + +Wed Aug 08 11:30:26 2001 Ossama Othman + + * tests/Service_Config_Test.cpp (run_test): + + Don't check if "ACE_USES_WCHAR == 1" since some configurations + neglect to set it an integer value. Instead, just check if it + is defined. + +Wed Aug 8 12:31:51 2001 Balachandran Natarajan + + * tests/MEM_Stream_Test.cpp: Changed a ACE_DEBUG statment with an + LM_WARNING to an LM_DEBUG. + +Wed Aug 08 11:59:45 2001 Nanbor Wang + + * ace/OS.h: Do not redefine ACE_IOV_MAX if it has already been + defined. + +Wed Aug 8 06:21:24 2001 Douglas C. Schmidt + + * ace/Makefile: Moved Message_Block from STREAMS_FILES to + UTILS_FILES. + + * ace/OS_Dirent.inl (closedir): Changed delete d->directory_name_ to + delete [] d->directory_name_. Thanks to Olivier Brunet + for reporting this. + +Tue Aug 7 21:59:42 2001 Douglas C. Schmidt + + * tests/Svc_Handler_Test.cpp: Modified the test to dump the contents + of the temporary file to the log file. + +Tue Aug 7 19:14:24 2001 Douglas C. Schmidt + + * ace/CDR_Stream.i: + * ace/SOCK_Stream.h: Fixed incorrect comments. + Thanks to Alain Decamps for reporting + these. + +Tue Aug 7 15:19:38 2001 Douglas C. Schmidt + + * ace: Changed all uses of IOV_MAX to use the new ACE_IOV_MAX. + * ace/OS.h: Added a new ACE_IOV_MAX that makes it clear this is + an ACE-level #define. We use this in C++NP v1. + +Tue Aug 7 14:16:57 2001 Douglas C. Schmidt + + * ace/Svc_Handler.cpp: Reimplemented the flush() method to use + the new send_n() method on the various ACE I/O classes. + + * ace/SOCK_Stream.{h,i}: + * ace/FILE_IO.{h,i}: Added a new send_n() method that sends all + the s chained through their and + pointers using the underlying OS gather-write operation to + reduce the domain-crossing penalty. + +Tue Aug 7 17:27:16 2001 Balachandran Natarajan + + * tests/Collection_test.cpp: Fixed a compile error with g++. This + is a patch that Johnny Willemsen sent as a part of his last + checkin. + +Tue Aug 07 11:25:36 2001 Nanbor Wang + + * ace/config-freebsd-pthread.h: Made the following definition + valid only for pre-4.2-RELEASE. + + #define ACE_LACKS_GETPGID + #define ACE_LACKS_SETPGID + #define ACE_LACKS_SETREGID + #define ACE_LACKS_SETREUID + + Thanks to Robert Burke for reporting + this. + +Tue Aug 07 16:40:12 2001 Johnny Willemsen + + * ace/Hash_Map_Manager_T.*: + Added const_iterator to the Hash_Map_Manager so that it is + possible to iterate over a hash map in a const method + + The operator= of the iterator now check the value of this to + check that the iterator instance is assigned to itself + + * tests/Hash_Map_Manager_Test.cpp + Extended this test to test the new const_iterator capabilities + of the hash map + + * ace/Unbounded_Set.cpp: + Implemented missing operator* for the const iterator + + * tests/Collection_test.cpp: + Extended test to test the operator* of the + Unbounded_Set_Const_Iterator + +Mon Aug 6 19:58:48 2001 Douglas C. Schmidt + + * ace/config-hpux-11.00.h: Added #define for ACE_HAS_TERM_IOCTLS. + Thanks to Torbjorn Backstrom + for reporting this. + + * ace/OS.h: Added a #include for for HP/UX. Thanks + to Torbjorn Backstrom for + reporting this. + +Mon Aug 6 12:51:35 2001 Douglas C. Schmidt + + * ace/Synch.h (ACE_Null_Mutex>): Fixed a cut&paste error + where acquire_write() should be acquire_read(). Thanks to + Russell Mora for fixing this. + +Mon Aug 06 17:17:33 2001 Ossama Othman + + * ace/Service_Config.cpp: + + Fixed some debugging messages that were not wrapped within an + ACE_LIB_TEXT macro. + + * tests/Service_Config_Test.UTF-16.conf: + + Interim UTF-16 encoded version of the UTF-8 encoded + Service_Config_Test.conf. It was generated on a little-endian + host. Its current purpose is simply to keep our Unicode + regression testing happy until the on-the-fly generation is + implemented. Once we start generating this file on-the-fly + this file should disappear. + + * tests/Service_Config_Test.cpp (run_test): + + When using full Unicode support, use the version of the Service + Configurator file that is UTF-16 encoded (as described above). + +Mon Aug 06 11:10:24 2001 Ossama Othman + + * ace/Svc_Conf_l.cpp: + + More Unicode fixes. Flex's allocation function uses malloc() as + its underlying allocator. Since it only accepts the size in + bytes, allocate "size * sizeof (ACE_TCHAR)" when allocating + string buffers. This should clear up some strange looking text + "unknown character" messages emanating from the Service + Configurator's underlying text scanner. + + Note that these changes do not fix the cause of the "unknown + character." Those fixes should soon follow. + +Mon Aug 06 09:04:04 2001 Ossama Othman + + * ace/Svc_Conf.l: + + Unicode updates. Wrap debugging text within an ACE_LIB_TEXT + macro. + +Sun Aug 5 14:31:10 2001 Balachandran Natarajan + + * tests/run_tests.lst: Ossama suggested that we dont run the + Service_Config_Test in static builds. + +Fri Aug 04 3:33:31 2001 Yamuna Krishnamurthy + + * ace/QoS/SOCK_Dgram_Mcast_QoS.h: + * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: + + Made the open method public so we can open UDP sockets for + non-multicast addresses. + +Fri Aug 03 22:19:31 2001 Steve Huston + + * ace/config-hpux-11.00.h: Added ACE_HAS_WCHAR to build in the + wide char handling since Darrell so nicely straightened all + the muck out throughout ACE. Thanks Darrell! + +Fri Aug 03 22:15:51 2001 Steve Huston + + * ace/Log_Msg.cpp (log): For 'W' and 'w' on HP-UX, the 'ls' and + 'lc' forms are not allowed; HP-UX requires 'S' and 'C'. + +Fri Aug 3 13:10:59 2001 Ossama Othman + + * ace/config-linux-common.h (ACE_UINT64_FORMAT_SPECIFIER, + ACE_SSIZE_T_FORMAT_SPECIFIER, ACE_SIZE_T_FORMAT_SPECIFIER): + + Removed unnecessary and some incorrect format specifiers for the + 32-bit platform case. In particular, the format specifier for + an unsigned 64-bit integer was incorrectly set to "%Lu." "%L" + is the format specifier for a "long double," not a "long long" + integer on 32-bit platforms. "%llu" is the correct format + specifier which `ace/Basic_Types.h' already defines. + +Fri Aug 3 09:55:38 2001 Ossama Othman + + * bin/auto_run_tests.lst: + + Added the new TAO "DLL_ORB" test to the list of tests to run. + +Fri Aug 3 08:26:45 2001 Balachandran Natarajan + + * ace/RW_Process_Mutex.cpp: Added a missing comma in the + constructor. This should fix Win32 compile errors. + +Fri Aug 3 08:07:45 2001 Balachandran Natarajan + + * ace/CDR_Base.cpp: Added a check for a memory allocation failure + in grow (). Thanks to Francis Paul for + pointing this out. + +Thu Aug 2 18:37:23 2001 Douglas C. Schmidt + + * ace/RW_Process_Mutex.cpp: Added ACE_DEFAULT_OPEN_PERMS + to the constructor call to ACE_RW_Process_Mutex so that it does + the right thing on Win32. Thanks to Wayne Erchak + for reporting this. This fixes + bugid 996. + +Thu Aug 02 13:04:19 2001 Steve Huston + + * ace/ace.icc: Added Intrusive_List.cpp to the TEMPLATE_FILES + section. + +Thu Aug 02 06:59:39 2001 Steve Huston + + * ace/Basic_Types.h (ACE_SIZEOF_WCHAR): If ACE_HAS_XPG4_MULTIBYTE_CHAR + is defined, use sizeof(wchar_t) to set ACE_SIZEOF_WCHAR. + +Wed Aug 1 16:05:49 2001 Carlos O'Ryan + + * Merged changes from the fix_886 branch + + Tue Jul 31 09:17:49 2001 Carlos O'Ryan + + * ace/Intrusive_List.h: + * ace/Intrusive_List.inl: + Add new methods to access the head and tail of the list. + + * ace/Intrusive_List.cpp: + Fixed the implementation of remove(), if the element to be + removed was the last on the list it wasn't removed at all. + Left some code to check invariants, have to find a way to keep + that code around with some optional compilation flags. + + Thu Jul 26 16:50:54 2001 Carlos O'Ryan + + * ace/Makefile: + * ace/Makefile.am: + * ace/Makefile.bor: + * ace/Intrusive_List.h: + * ace/Intrusive_List.inl: + * ace/Intrusive_List.cpp: + Add new template to implement intrusive lists, i.e. lists that + assume their elements implement the next() and prev() methods. + + * ace/Intrusive_List_Node.h: + * ace/Intrusive_List_Node.inl: + * ace/Intrusive_List_Node.cpp: + Helper class to add the requirements of ACE_Intrusive_List to + any other class, simply do: + class Foo : public ACE_Intrusive_List_Node + +Wed Aug 1 15:57:35 2001 Ossama Othman + + * ace/Message_Block.cpp (release, release_i): + + Obtain the pointer to the allocator from the object that will be + destroyed before calling ACE_DES_FREE on the object. Previously + we were obtaining the allocator after the object was destroyed, + due to the way the ACE_DES_FREE macro works. Thanks to Hyman + Rosen for reporting the problem, and to + Carlos for suggesting a fix. [Bug 992] + +Wed Aug 1 15:00:21 2001 Douglas C. Schmidt + + * ace/Log_Record.{h,i}: Changed msg_data_len() from a "setter" + to a "getter" method, which makes more sense. Thanks to Patrick + Rabau for reporting this. + +Wed Aug 1 12:43:57 2001 Ossama Othman + + * ace/Svc_Conf_l.cpp: + + Reintegreated Nanbor's change (Wed Jun 13 10:22:10 2001 Nanbor + Wang ) that enables proper handling of + UNICODE Service Configurator directives. + +Wed Aug 1 07:14:42 2001 Douglas C. Schmidt + + * include/makeinclude/platform_vxworks5.x_g++.GNU: Checked in a new + version of this file, which includes support for the Hitachi + chip. Thanks to Frank Wolf for this. + + * ace/Log_Record.cpp (format_msg): Added a cast to fix a warning. + Thanks to Bala for reporting this. + +Tue Jul 31 22:53:26 2001 Ossama Othman + + * tests/libService_Config_DLL.icc: + + New Visual Age project file for the libService_Config_DLL + library. + + * tests/Makefile.am: + + Added build targets/dependencies for the libService_Config_DLL + library. + +Tue Jul 31 22:46:33 2001 Ossama Othman + + * tests/Service_Config_DLL.dsp: + * tests/Service_Config_Test.dsp: + + Removed the static library configurations. The + Service_Config_Test currently requires dynamically loadable + objects. Fixes Win32 "LIB" build failures. + +Tue Jul 31 22:10:48 2001 Ossama Othman + + * tests/Service_Config_Test.cpp (run_test): + + Wrap strings passed to ACE_ARGV::add() within an ACE_TEXT + macro. Fixes Unicode conversion problems. + +Tue Jul 31 16:53:57 2001 Ossama Othman + + * ace/Svc_Conf.h (ace_yyrestart, ace_yy_delete_parse_buffer, + ace_yydirective): + + Remove these global function and variable declarations. They + are no longer used. + +Tue Jul 31 16:43:33 2001 Ossama Othman + + * ace/Basic_Types.h: + + If "__LITTLE_ENDIAN__" is defined then assume that the + architecture is little endian. Some compilers/platforms define + that macro. Suggested by Frank Wolf" . + + * ace/Svc_Conf.h (yy_push_buffer): + * ace/Svc_Conf.l (yy_push_buffer): + * ace/Svc_Conf_l.cpp (ace_yy_push_buffer): + * ace/Svc_Conf_Lexer_Guard.cpp (ACE_Svc_Conf_Lexer_Guard): + * ace/Svc_Conf_Lexer_Guard.h (ACE_Svc_Conf_Lexer_Guard): + + The Service Configurator directive is an "ACE_TCHAR *" not a + "char *". Updated these method/function parameters to accept + the former. Fixes a compile-time problem on "wchar/Unicode" + builds. + +Tue Jul 31 05:34:48 2001 Douglas C. Schmidt + + * ace/OS.h: Removed a spurious WNOHANG definition. Thanks to + Christina Junru for reporting this. + +Mon Jul 30 15:31:42 2001 Douglas C. Schmidt + + * ace/Log_Msg.{h,i,cpp}: Fixed this class so that all of its fields + are ACE_UINT32 or ACE_INT32 internally so that it'll always be + the same on all platforms. Thanks to Fabris + for reporting this. + +Tue Jul 31 10:22:38 2001 Ossama Othman + + * tests/Makefile: + + Only build the Service_Config_Test if shared libraries are + enabled, since it attempts to dynamically load a shared + library. + +Tue Jul 31 10:16:31 2001 Steve Huston + + * ace/Dump.h: Clarified the use of ACE_NDEBUG for turning this + feature off, not on. Thanks to Don Hinton + for noticing this. + +Mon Jul 30 13:41:00 2001 Nanbor Wang + + * ace/OS.cpp (ACE_Time_Value::FILETIME_to_timval_skew): Updated + docuementation to better explain the meaning of this constant. + Thanks to Mike Vitalo for motivating the + change. + +Mon Jul 30 09:43:06 2001 Douglas C. Schmidt + + * ace/OS.i (mutex_lock): Missing an argument to the ACE_OSCALL macro. + Thanks to Bala for reporting this. + +Mon Jul 30 05:43:23 2001 Douglas C. Schmidt + + * ace/Synch.h (ACE_Semaphore): Corrected the comment on + how to get POSIX Pthreads "implementation" of semaphores (which + supports the timed acquire() option). Thanks to Grzegorz + Sikora for reporting this. + +Sun Jul 29 19:03:56 2001 Douglas C. Schmidt + + * tests/Thread_Mutex_Test.cpp (test): Fixed this test to be + consistent wrt the errno for the timed acquire(), which should + now always be set to ETIME rather than ETIMEDOUT and EBUSY. + + * ace/Message_Queue_T.cpp (wait_not_full_cond, + wait_not_empty_cond): Fixed a nasty bug with the semaphore + version of ACE_Message_Queue that would have reared it's ugly + head if ACE_NULL_SYNCH were used when + ACE_HAS_OPTIMIZED_MESSAGE_QUEUE was enabled. Fixing this bug + also triggered the following changes. + + * ace/OS.{h,i}: Added support for ACE_OS::sema_wait(), + ACE_OS::mutex_lock(), ACE_OS::thread_mutex_lock() that take + ACE_Time_Value *. + + * ace/OS.i: For some odd reason the timeouts for the timed version + of mutex_lock() were returning a random smattering of errnos. + I've changed them to all be consistent with the + ACE_Condition_Thread_Mutex::wait() errno, which is ETIME. + + * ace/Synch.h: Updated the documentation of all the timed + acquire() methods to explain what the various return values + mean. + +Sun Jul 29 22:10:40 2001 Ossama Othman + + * tests/Service_Config_DLL.cpp: + * tests/Service_Config_DLL.h: + * tests/Service_Config_DLL.dsp: + * tests/Service_Config_DLL_Export.h: + * tests/Service_Config_Test.conf: + + New files associated with the existing Service_Config_Test. + They are used when testing the reentrance/thread-safety of the + Service Configurator, in addition to testing the Service + Configurator's ability to handle nested processing of Service + Configurator directives. + + * tests/Service_Config_Test.cpp (run_test): + + Add arguments to the Service Configurator argument vector to + make it process the newly added `Service_Config_Test.conf' + file. + + (main): + + Make the ACE_Thread_Manager wait for all running threads before + exiting the test. Processing the `Service_Config_Test.conf' + file causes some threads to be spawned. + +Sun Jul 29 19:19:20 2001 Ossama Othman + + * ace/Service_Config.cpp (process_directive, process_directives): + + Wrap the ACE_GUARD_RETURN macro within an ACE_MT block. The + ACE_Static_Object_Lock declaration is only visible if + ACE_HAS_THREADS is defined. This truly fixes the + single-threaded build problems. + +Sun Jul 29 19:06:11 2001 Ossama Othman + + * ace/Svc_Conf.y (ace_obstack): + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_l.cpp: + + UNICODE updates and fixes. + +Sun Jul 29 10:50:45 2001 Ossama Othman + + * ace/Svc_Conf_Lexer_Guard.cpp: + + There is no longer any need to include "ace/Object_Manager.h" + + * ace/Service_Config.cpp: + + Include "ace/Object_Manager.h" to pull in the definition of + ACE_Static_Object_Lock. Fixes a problem found in Sun builds and + single-threaded builds. + +Sat Jul 28 23:03:24 2001 Ossama Othman + + The following are changes that make the Service Configurator + reentrant and thread-safe. + + * ace/Svc_Conf.y: + + Generate a pure (reentrant) parser using Bison. BYACC doesn't + support generation of reentrant parsers. + + * ace/Svc_Conf.l: + + Implemented "buffer stack" support. This feature makes it + possible to process Service Configurator directives within a + Service Object's init() method, i.e. support nested directive + processing. + + (ace_yyerrno): + + Moved declaration of ace_yyerrno from this file to + `Svc_Conf.y'. ace_yyerrno was not used in the generated + scanner. It was only used in the generated parser. + + (yy_delete_parse_buffer): + + There is no longer any need for this function. The lexer buffer + stack implementation handles memory management of lexer buffers. + + (yywrap): + + Do not call yy_delete_parse_buffer(). It is no longer necessary + to do so, in addition to the fact that that function was + removed (as described above). + + (<>): + + Do not call ACE_YY_NEW_FILE in this rule. The new buffer stack + implementation handles the buffer switching that ACE_YY_NEW_FILE + did, and more. + + * ace/Svc_Conf_Tokens.h: + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + + Regenerated these files using updated Bison/YACC and FLEX input + files to pull in support for reentrant parsing and nested + processing of Service Configurator directives. + + * ace/Svc_Conf.h (ace_yy_push_buffer, ace_yy_pop_buffer): + + Added function prototypes for the newly implemented lexer buffer + stack manipulation functions. + + (ace_yylex): + + Added ACE_YYSTYPE parameter to this functions signature, as + required by the new reentrant parser support. + + (ACE_SERVICE_DIRECTIVE_STACK_DEPTH): + + New symbolic constant that defines the maximum supported depth + for nested Service Configurator processing. The current default + is 8. + + (ACE_YY_INPUT): + + No longer any need to redefine this macro to support scanning of + Service Configurator directive strings. The new lexer buffer + stack implementation provides support for lexer buffer scanning + from a string instead of a pointer to "FILE." + + (ace_yydirective): + + This global variable is no longer needed due to the fact that + the new buffer stack implementation handles directives read from + both a string and a file. + + * ace/Service_Config.cpp: + + (process_directive, process_directives): + + Obtain a recursive lock before manipulating the lexer buffer + stack, and invoking the parser and scanner. This makes + invocation of the scanner thread-safe. + + The new lexer buffer stack implemenation obviates the need to + call yyrestart() since buffer switching is handled by the stack + implementation. + + (open_i, close): + + No need to deallocate the lexer buffer since the buffer stack + implementation handles that. + + * ace/Svc_Conf_Lexer_Guard.h: + * ace/Svc_Conf_Lexer_Guard.cpp: + + New "guard" class that makes lexer buffer stack pushing and + popping exception-safe. + + * ace/Makefile: + * ace/Makefile.am: + * ace/Makefile.bor: + * ace/ace.icc: + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: + + Added Svc_Conf_Lexer_Guard.* sources to these Makefiles and + project files. + +Sat Jul 28 14:58:30 2001 Douglas C. Schmidt + + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: Reran BYACC and FLEX on the Svc_Conf.l and + Svc_Conf.y files to regenerate them. Thanks to Bala for + motivating this. + + * netsvcs/clients/Tokens/collection/Makefile, + netsvcs/clients/Tokens/deadlock/Makefile, + netsvcs/clients/Tokens/invariant/Makefile, + netsvcs/clients/Tokens/mutex/Makefile, + netsvcs/clients/Tokens/rw_lock/Makefile, + examples/ASX/CCM_App/Makefile, + examples/Logger/Acceptor-server/Makefile, + examples/Reactor/Multicast/Makefile, + examples/Reactor/Ntalker/Makefile, + examples/Shared_Malloc/Makefile, + performance-tests/TCP/Makefile, + performance-tests/UDP/Makefile: Removed the line + include $(ACE_ROOT)/include/makeinclude/rules.LIB.GNU + so that these projects will build correctly on VxWorks with + Make 3.79.1. Thanks to Frank Wolf for reporting this. + +Fri Jul 27 11:24:50 2001 Douglas C. Schmidt + + * ace/Svc_Conf.y: Allow quoted strings as the pathname. Thanks + to Kevin Burge for suggesting this + and providing the fix. + + * ace/Svc_Conf.l: Added support for "~" in pathnames to support + Win32isms. Thanks to Kevin Burge + for suggesting this and providing the fix. + + * ace/Refcounted_Auto_Ptr.i (assign): Fixed the code to avoid a + race condition. Thanks to Charlie Duke for this fix. + +Thu Jul 26 08:15:36 2001 Douglas C. Schmidt + + * include/makeinclude/platform_vxworks5.x_g++.GNU: Changed + $PATH to $(PATH). Thanks to Frank Wolf for reporting this. + +Wed Jul 25 17:46:58 2001 Douglas C. Schmidt + + * ace/Asynch_Acceptor.{h,cpp}: Added an asynch_accept() accessor + method. Thanks to Craig L. Ching for + reporting this. + +Wed Jul 25 17:36:09 2001 Douglas C. Schmidt + + * ace/Refcounted_Auto_Ptr.i: Added a lock for the reference count + to the assign() method. Thanks to Charlie Duke + for reporting this. + +Fri Jul 27 23:17:31 2001 Steve Huston + + * ace/ace_wchar.h: If ACE_HAS_XPG4_MULTIBYTE_CHAR is set, then + also set up definitions for functions that are not present + (ACE_LACKS_ITOW, ACE_LACKS_WCSICMP, ACE_LACKS_WCSNICMP, + ACE_LACKS_WCSDUP). + + * ace/ace_wchar.inl: If not ACE_WIN32, include to see + strlen(). + + * ace/OS_String.inl (strstr): The XPG4 multibyte version of + strstr() is wcswcs(), whereas the ANSI C / UNIX98 version is + wcsstr(). So if ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, use + wcswcs. + +Fri Jul 27 21:52:48 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the IDL_Cubut test with GIOP Lite + script, to our daily builds. + +Fri Jul 27 16:50:49 2001 Steve Huston + + * tests/Log_Msg_Test.cpp: Silence a compile warning in g++. + +Fri Jul 27 12:18:49 2001 Steve Huston + + * ace/Log_Msg.cpp (log): Fixed compile error - missing "" around + 's' for the %S case. + +Fri Jul 27 11:07:26 2001 Chad Elliott + + * ace/OS.h: + + After conversation with Steve Huston, I am reverting his change + pertaining to HPUX from "Tue Jul 10 18:15:39 2001 Steve Huston + ". + +Fri Jul 27 10:57:24 2001 Chad Elliott + + * ace/SOCK_Dgram_Bcast.cpp: + + Fix the ACE_SOCK_Dgram_Bcast::mk_broadcast() which was completely + broken on AIX. The broadcast_client in docs/tutorials/008 now + works with the help of this change. + +Thu Jul 26 22:09:19 2001 Steve Huston + + * ace/Log_Msg.cpp (log): Extend behavior so that all printf + formatting conversion specifiers can be used with all legal + ACE_Log_Msg format characters. This allows the caller to line + up columns on any field, like line number or program name, or + thread ID. Thanks to Paul Caffrey for + motivating this extension. + + * tests/Log_Msg_Test.cpp: Added a new function, test_format_specs, + that verifies the formatting. Right now it does not detect the + correctness of the strings produced - they have to be examined + in the log file to check. This needs to be fixed still. + +Thu Jul 26 11:48:16 2001 Carlos O'Ryan + + * bin/count_lines: + Add a few new file types. + +Wed Jul 25 23:49:43 2001 Krishnakumar B + + * include/makeinclude/platform_tru64_g++.GNU: + + Fixed some missing defines in the Makefile for DEC Unix versions + 4.0D, 4.0E. We don't support or suggest this combination. Hence + the oversight in missing the needed defines. + + Thanks to Martin Krumpolec for reporting this. + +Wed Jul 25 23:49:00 2001 Craig Rodrigues + + * include/makeinclude/wrapper_macros.GNU: + + Remove extraneous rapi = 0. + +Wed Jul 25 18:53:18 2001 Ossama Othman + + * html/index.html: + + Added CORBA Security Service main page link to the list of + documentation. + +Wed Jul 25 17:41:43 2001 Ossama Othman + + * ltcf-c.sh: + * ltcf-cxx.sh: + * ltconfig: + + Removed these libtool related files. New versions of libtool + (GNU libtool >= 1.4b) no longer use them. + + * config.guess: + * config.sub: + * ltmain.sh: + + Removed these files. We no longer need to keep custom copies + lieing around since libtool 1.4b includes all of our local + changes (i.e. our changes have been folded into the upstream + libtool sources). + + * install-sh: + * missing: + * mkinstalldirs: + + Removed these files. Automake will automatically add these when + necessary. + +Wed Jul 25 16:29:48 2001 Steve Huston + + * tests/Max_Default_Port_Test.cpp: ACE-ified the code and fixed + a number of ACE_DEBUG %p directives without a corresponding + string. Also, closed a 2 handle-per-try handle leak, which + may have affected test results on some platforms. + * tests/Max_Default_Port_Test.h: Added a destructor to the + test class - it's used to close the acceptor handle down. + +Wed Jul 25 15:21:22 2001 Krishnakumar B + + * ace/OS.h: + + Fixed the _XOPEN_SOURCE checking to _XOPEN_SOURCE < 500 to fix + incorrect declaration of prototype. This fixes the warnings when + compiling with gcc-3.0. Thanks to Ossama for suggesting the fix. + +Wed Jul 25 08:05:45 2001 Balachandran Natarajan + + * tests/Thread_Pool_Reactor_Resume_Test.h: + * tests/Thread_Pool_Reactor_Resume_Test.cpp: Fixed a subtle race + condition. This hardly showed up in many of our daily + builds. The race condition had to be fixed to show the users of + the cautious approach that one needs to take if they are + resuming the handle in the application itself. + +Tue Jul 24 16:41:57 2001 Joe Hoffert + + * ace/Thread_Manager.cpp : + Added "&& ! defined (ACE_HAS_PACE)" ifdefs to already existing + #if defined (VXWORKS) sections of code to get ACE_HAS_PACE to + compile on VxWorks. + + * ace/OS.i : + * ace/OS.cpp: + Fixed formatting of some comments and added needed PACE + calls for ACE_HAS_PACE on VxWorks. + + * ace/OS.h : + Put #if !defined guards around the ACE_THR_PRI* macros + so that we can define them in the config*.h files if + they need to be corrected. For instance, ACE_THR_PRI_OTHER_MIN + has a different value on SunOS 5.8 than it does on SunOS 5.7, + i.e., -20 vs. 0 respectively. + + Also, added some needed typedefs and #define for ACE_HAS_PACE + on VxWorks and updated some comments concerning ACE_OS::thr_create + flags. + + * ace/Sched_Params.cpp (priority_min, priority_max): + Changed to return correct thread priority min/max for + Solaris threads. We now use the ACE_PRI_THR* macros + for these values while still calling ACE_OS::priority_control + for process and LWP priorities. + + * ace/config-sunos5.8.h: + Added setting of ACE_THR_PRI_OTHER_MIN to be correct + for SunOS 5.8. + +Tue Jul 24 13:47:32 2001 Balachandran Natarajan + + * ace/SSL/SSL_Asynch_Stream.h (ACE_SSL_Asynch_Stream): + * ace/SSL/SSL_Asynch_Stream.cpp: Added a open () method that + matches the signature of ACE_Service_Handler. This should fix + the warnings in Borland builds that complain about hiding + the virtual functions. + +Tue Jul 24 10:56:04 2001 Ossama Othman + + * bin/generate_doxygen.pl (TAO_DOCS): + + Added "tao_security" and "tao_ssliop" Doxygen configurations to + the list of documentation to generate. + +Tue Jul 24 07:45:03 2001 Douglas C. Schmidt + + * ace/Containers_T: Fixed some problems with the lack of + const for the ACE_DLList and ACE_Double_Linked_List classes. + Thanks to Michael Kircher for reporting this. + + * ace/config-cygwin32-common.h: Removed the ACE_LACKS_FORK + macro since this is apparently working on Cygwin. Thanks tj + Stefan Kluehspies for reporting + this. + + * ace/config-cygwin32.h: Removed the #define _CLOCKID_T + macro, which should now be handled by the following change. + + * ace/OS.h: Added a #defined for _CLOCKID_T_. Thanks to + Stefan Kluehspies for + reporting this. + +Tue Jul 24 11:10:59 2001 Krishnakumar B + + * ace/OS.h: + + Fix the compile errors seen on gcc-3.0 with -pedantic and + -Wno-long-long. This should fix all the errors. + +Tue Jul 24 10:07:31 2001 Chad Elliott + + * include/makeinclude/platform_sunos5_g++.GNU: + + Add an optimize override to 0 for g++ 3.0. The compiler breaks on + a tremendous amount of files, even with -O. + +Tue Jul 24 10:04:52 2001 Chad Elliott + + * ace/INET_Addr.cpp: + + Corrected a run-time error on Tru64 with gcc. Any executable + that called ACE_INET_Addr::get_host_name() would core dump. + This was caused by the call to ACE_OS::gethostbyaddr_r(). + +Tue Jul 24 08:20:02 2001 Chad Elliott + + * include/makeinclude/platform_aix_ibm.GNU: + + Change -O2 to -O. The optimizer seems to be a tiny + bit broken, which is demonstrated by a few TAO and orbsvcs + tests. + +Mon Jul 23 17:38:46 2001 Ossama Othman + + * etc/tao_security.doxygen: + * etc/tao_ssliop.doxygen: + + New Doxygen files for TAO's CORBA security libraries. + +Mon Jul 23 13:48:26 2001 Ossama Othman + + * ace/MEM_Connector.cpp (connect): + + Disable non-blocking on the stream after its handle has been + set. Previously, non-blocking was disabled on an uninitialized + MEM_Stream, after which the handle was set (i.e. initializing + the stream). In order to properly disable non-blocking on a + stream, its handle must be set first since ioctl() operations + are typically performed on the underlying stream handle. + +Mon Jul 23 13:06:39 2001 Steve Huston + + * ace/WFMO_Reactor.cpp (event_handling): Corrected the loop check + to account for a zero ACE_Time_Value *, avoiding a crash in + tests/Reactor_Timer_Test, as well as any other program that + called ACE_Reactor::handle_events with a zero timer pointer. + +Mon Jul 23 10:39:55 2001 Nanbor Wang + + * ace/OS.h: Added /**/ between #include and to + avoid warning from CE compiler. + + * ace/ace_dll.vcp: Added Obchunk.cpp to the project. + +Sun Jul 22 08:19:43 2001 Douglas C. Schmidt + + * ace/config-cygwin32.h: ADded a #define for_CLOCKID_T. Thanks to + Christophe Galerne for + reporting this. + + * ace/Log_Record.cpp (priority_names_): Added commas after the + 'ACE_LIB_TEXT ("LM_UNK(04000)")' lines. Thanks to Steve Harris + for reporting this. + +Sat Jul 21 19:56:08 2001 Douglas C. Schmidt + + * ace/Map_T.{h,i}: Made current_value() a const member function. + Thanks to Johnny Willemsen for reporting this. + +Fri Jul 20 10:16:46 2001 Douglas C. Schmidt + + * ace/Connector.cpp (create_AST): Replaced some calls to + sh->get_handle () with a cached value of handle. This fixes a + bug with gcc 2.96 on Tornado 2.1/VxWorks for SuperH. Thanks to + Frank Wolf for reporting this. + + * examples/Connection/non_blocking/CPP-acceptor.cpp: + * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: + * examples/Connection/non_blocking/CPP-connector.cpp: Changed the + SH macro to SVH to avoid clashes with a macro in VxWorks. + Thanks to Frank Wolf for reporting this. + +Thu Jul 19 06:55:07 2001 Douglas C. Schmidt + + * ace/config-g++-common.h: Version 2.96 of g++ on VxWorks + is missing auto_ptr, so let's add the ACE_LACK_AUTO_PTR flag + there. Thanks to Frank Wolf for suggesting this. + +Fri Jul 20 09:47:38 2001 Nanbor Wang + + * ace/Log_Msg.cpp: Fixed WinCE errors. CE does not support + UNIX_Syslog. + +Thu Jul 19 22:39:32 2001 Nanbor Wang + + * tests/MEM_Stream_Test.cpp: + * ace/MEM_IO.h: + * ace/MEM_IO.i: + * ace/MEM_IO.cpp: On non-Win32 platforms, disable multithreaded + MEM_IO if _ACE_USE_SV_SEM is defined. + +Thu Jul 19 15:25:11 2001 Paul Calabrese + + * ace/MEM_Acceptor.i (mmap_prefix): + + Fix case where a null pointer is passed in. + +Thu Jul 19 06:55:07 2001 Douglas C. Schmidt + + * ace/Connector.cpp (connect_svc_handler): Missed one change... + Thanks to Bala for reporting this! + + * include/makeinclude/platform_vxworks5.x_g++.GNU (HOST_DIR): Added + support for the SH7700 and SH7700LE. Thanks to Frank Wolf + for reporting this. + + * ace/OS.i (truncate): Make sure to close the handle that we + opens. Thanks to Lothar for reporting this. + + * ace/Connector.cpp: Changed the SH macro to SVH to avoid clashes + with a macro in VxWorks. Thanks to Frank Wolf + for reporting this. + +Wed Jul 18 13:15:06 2001 Douglas C. Schmidt + + * ace/OS_Dirent.cpp (scandir_emulation): Removed the calls to the + ACE_ERROR_RETURN macros to avoid dependencies on ACE_Log_Msg + from within the ACE_OS layer. Thanks to Bala for pointing this + out! + + * ace/ACE.{h,cpp}: Added a new wrapper method for ACE_OS::select() + that uses ACE_Handle_Set *'s rather than fd_set *'s. This is + motivated by work Steve Huston and I are doing on our new book + "C++ Network Programming: Resolving Complexity with ACE and + Patterns." + + * ace/Malloc_T.i (release): Removed an unnecessary "else" to + make gcc 2.96 happy. Thanks to Frank Wolf for + reporting this. + + * Happy birthday to me and Angelo Corsaro! + +Tue Jul 17 00:34:40 2001 Douglas C. Schmidt + + * ace/SString.h (ACE_Tokenizer): Make sure that the data members + are protected, not private... Thanks to Martin Krumpolec for + reporting this (again)! + +Wed Jul 18 16:40:56 2001 Irfan Pyarali + + * ace/Log_Msg.cpp (program_name): Undid the following changes: + + ChangeLogTag:Tue Jul 10 11:32:26 2001 Tibor Kiss + + Tibor will be looking into this further since this change + currently causes shutdown problems on Win2000. + +Wed Jul 18 15:59:03 2001 Krishnakumar B + + * ace/config-tru64.h: + + Removed _LIBC_POLLUTION_H. It seems that this macro is causing + problems for some users. Thanks to Pierre Oberson + for prompting this fix. + +Tue Jul 17 13:00:11 2001 Balachandran Natarajan + + * tests/run_test.lst: Enabled the MEM_Stream test on Linux. + +Mon Jul 16 14:59:32 2001 Douglas C. Schmidt + + * ace/Memory_Pool.h (ACE_Shared_Memory_Pool): Added a comment + that discourages developer from using the ACE_Shared_Memory_Pool + and points them to the ACE_MMAP_Memory_Pool instead. Thanks to + Johnny Chen for motivating this. + + * ace/OS_Dirent.cpp (readdir_emulation): Fixed a handle leak + in the event that errors occur. Thanks to Kevin Burge + for reporting this. + + * ace/Log_Msg_UNIX_Syslog.cpp (open): Add an ACE_const_cast() + to the program name for platforms like LynxOS whose openlog() + method is char * rather than const char *. Thanks to Bala for + reporting this. + +Sun Jul 15 11:06:33 2001 Douglas C. Schmidt + + * ace/Log_Msg_NT_Event_Log.cpp: Fixed the implementation so that + it's consistent with the new program_name() features. Thanks to + Chris Kohloff for this fix. + +Sun Jul 15 11:04:26 2001 Carlos O'Ryan + + * ace/SSL/ACE_SSL.dsp: + Removed references to $OPENSSL_ROOT, the user should configure + those in the Tools -> Option -> Directories tab. + +Fri Jul 13 23:02:46 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_Stream.h: + * ace/SSL/SSL_Asynch_Stream.cpp: + * ace/SSL/SSL_Asynch_BIO.h: + * ace/SSL/SSL_Asynch_BIO.cpp: + + Only support asynchronous SSL streams when using OpenSSL > + 0.9.5a. The BIO method signatures changed in OpenSSL 0.9.6. + +Fri Jul 13 22:48:56 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_BIO.cpp (methods_ACE): + + Removed excess element in aggregate initializer. + +Fri Jul 13 22:29:01 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_Stream.cpp (print_error): + + The OpenSSL ERR_error_string_n() function is only supported in + OpenSSL 0.9.6 or better. + +Fri Jul 13 14:59:18 2001 Alexander Libman + + * ace/WIN32_Asynch_IO.h (ACE_WIN32_Asynch_Result): + * ace/WIN32_Asynch_IO.cpp (set_error, set_bytes_transferred): + + Added new methods set_error() and set_bytes_transferred(). + Needed for below changes and new asynchronous SSL stream + implementation. + + * ace/WIN32_Proactor.cpp (handle_events): + + Fixed error handling semantics so that it is consistent with the + POSIX Proactor error handling semantics. + + (post_completion): + + Pass the amount of bytes transferred and the completion key to + the Win32 PostQueuedCompletionStatus() function. The error, if + any, will later be extracted in the handle_events() method. + +Fri Jul 13 15:59:45 2001 Douglas C. Schmidt + + * netsvcs/servers/main.cpp (main): The server was always outputing + LM_DEBUG information, even when the program was not run with the + -d command line argument. Therefore, changed the following + lines from: + + if (ACE::debug () == 0) + ACE_Log_Msg::disable_debug_messages (); + + to: + + if (ACE::debug () == 0) + ACE_LOG_MSG->priority_mask (~LM_DEBUG, ACE_Log_Msg::PROCESS); + + Thanks to Jerry D. De Master for + reporting this fix. + +Fri Jul 13 12:16:03 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_BIO.h: + * ace/SSL/SSL_Asynch_BIO.cpp: + * ace/SSL/SSL_Asynch_Stream.h: + * ace/SSL/SSL_Asynch_Stream.cpp: + + New asynchrounous SSL stream implementation contributed by + Alexander Libman . + + * ace/SSL/ACE_SSL.dsp: + * ace/SSL/Makefile: + * ace/SSL/Makefile.bor: + + Added new asynchronous SSL stream source files to these + Makefiles and project files. + +Fri Jul 13 09:40:08 2001 Jerry D. De Master + + * ace/Log_Msg.*, + ace/Logging_Strategy.*, + ace/Log_Msg_UNIX_Syslog.*: + Applied patches to ACE_Log_Msg, ACE_Logging_Strategy, and + ACE_Log_Msg_UNIX_Syslog that are required to add the program + name logging strategy option ('n') and to initialize the UNIX + syslog facility with the program name. Also included are Boris + Kolpackov patches for ACE_LACKS_IOSTREAM_TOTALLY + to ACE_Logging_Strategy. + +Thu Jul 12 19:54:27 2001 Ossama Othman + + * examples/Registry/test_registry_update.cpp (main): + + Fixed unused argument warning. + +Thu Jul 12 19:57:12 2001 Frank Hunleth + + * bin/auto_run_tests.lst: + + Added TAO/tests/RTCORBA/ORB_init to the auto run list. + +Thu Jul 12 17:11:35 2001 Krishnakumar B + + * bin/nightlybuilds/builds.lst (WEB): + + Temporarily removed the IA-64 build till some issues get sorted + out. + +Thu Jul 12 06:01:03 2001 John Michael Zorko + + * netsvcs/lib/Server_Logging_Handler.cpp: + Added an an additional #define in config-macosx.h called + ACE_HAS_MACOSX_DYLIB, and checked to see if this was _not_ + defined before instantiating the offending template in + Server_Logging_Handler.cpp. OS X has this thing about .dylibs + (OS X version of .so) where they can't have any duplicate + symbols, which is why libnetsvcs wasn't building on OS X + earlier. This fixes that. + + * include/makeincludes/platform-macosx.GNU: Added -lACE to the + LIBS line, which fixed the majority of the build problems. + + * ace/config-macosx.h: Added the ACE_HAS_MACOSX_DYLIB #define + mentioned above. + +Thu Jul 12 06:01:03 2001 Douglas C. Schmidt + + * ace/TLI_Connector.cpp (complete): Changed ACE_OS::t_rcvconnect() + to simply t_rcvconnect(). Thansk to Andreas Geisler for + reporting this. + +Thu Jul 12 09:43:36 2001 Ossama Othman + + * ace/FILE_Connector.h (ACE_FILE_Connector, connect): + + Removed the default O_EXCL flag I added a few days ago. It is + mostly useful for preventing symbolic link attacks in a + directory with global write permissions. Pass the + responsibility of using the O_EXCL flag when necessary on to the + application developer. + +Wed Jul 11 22:31:50 2001 Krishnakumar B + + * include/makeinclude/rules.local.GNU (clean.local): + + Added ti_files to remove the template cache generated by KCC. + + * ace/TLI_Acceptor.cpp(open_new_endpoint): + + Fixed a small typo causing compilation errors under Tru64. + +Wed Jul 11 13:06:33 2001 Steve Huston + + * tests/Log_Msg_Test.cpp: Changed the ostream test to close the + under-test ostream file before trying to open it and read the + contents. Avoids the "already open" error now that + ACE_FILE_Connector includes O_EXCL by default, and avoids any + potential file buffering issues reading an already-open file. + +Wed Jul 11 08:31:02 2001 Jeff Parsons + + * tests/Dirent_Test.cpp: + + Wrapped a string literal with ACE_TEXT, to get rid of a Win2000 + WChar build error. + +Wed Jul 11 06:41:43 2001 Douglas C. Schmidt + + * ace/TLI_Stream.cpp, + * ace/TLI_Connector.cpp, + * ace/TLI_Acceptor.cpp: Added enhancements so that the code would + work on Win32. Thanks to Andreas Geisler + for reporting this. + +Tue Jul 10 19:26:15 2001 Ossama Othman + + * ace/ace_dll.dsp: + + Disabled generation of source browse information. It was + causing problems on some existing builds that didn't use it. + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + Removed certificate verification code. It is up to the + application, not the ACE_SSL library, to perform proper + certificate verification. + +Tue Jul 10 23:02:00 2001 Craig Rodrigues + + * tests/Log_Msg_Test.cpp: + Fix test so it doesn't open output file to write to twice. + Thanks to Ossama for finding it. + +Tue Jul 10 19:10:19 2001 Steve Huston + + * ace/ace.icc: Corrected the mis-applied patch for ace.icc in + Mon Jul 09 19:12:42 2001 Steve Huston + +Tue Jul 10 16:01:52 2001 Ossama Othman + + * THANKS: + + Added Sangeetha Ramadurai to + the hall of fame. + +Tue Jul 10 18:15:39 2001 Steve Huston + + * ace/WFMO_Reactor.cpp (event_handling): Move the logic for + noticing that the wait timed out, but did not expire any + timers, into this function. Will remove it from Reactor.cpp, + to properly move the fix into handle_events() rather than + needing to call run_reactor_event_loop to get it right. + * ace/Select_Reactor_T.cpp - still need to add similar logic here. + + * ace/config-sunos5.6.h: Re the following: + Mon Jul 2 15:26:32 2001 Nanbor Wang + Replaced ACE_HAS_POSIX_SEM, and left ACE_LACKS_NAMED_POSIX_SEM out. + Solaris does indeed have POSIX semaphores in 2.6 and later, but + requires the changes to OS.i below to work right. + + * ace/OS.h: For ACE_PROC_PRI_OTHER_MIN (and MAX), on HP-UX, + convert the HP-UX priority value to the POSIX range. + + * ace/OS.i (ACE_OS::sema_init, named POSIX semaphore): On Solaris + and HP-UX, the name of a POSIX semaphore needs to start with + a slash (further restricted on Solaris). Enforce that here by + prepending a slash, or by chopping off parts of the name. + +Tue Jul 10 16:08:04 2001 Krishnakumar B + + * include/makeinclude/platform_osf1_4.0.GNU: + + Fixed the default flags so that it enables the user to override + settings. Now that the long pending fix to wrapper_macros.GNU is + through, this should work fine now. + +Tue Jul 10 13:37:31 2001 Jeff Parsons + + * ace/OS_Dirent.cpp (readdir_emulation): + + Removed the hard cast to char* of one of the two arguments in + a call to strcpy. In the WChar win32 build, this cast was + causing the source and target strings to be of different widths. + +Tue Jul 10 11:32:26 2001 Tibor Kiss + + * ace/Log_Msg.cpp: + Completed the ACE_Log_Msg::close method with the + ACE_Thread::keyfree (log_msg_tss_key_) and key_created_ = 0; to + ensure restartability by multiple successive ACE::init and + ACE::fini calls. This fix prevent leaks from occurring when + ACE::init() and ACE::fini() are called multiple times. + +Tue Jul 10 11:12:00 2001 Chris Gill + + * ace/OS_Dirent.{h, inl}: refactored XDIR, dirent usage for pSOS - + user is no longer responsible for buffer deallocation after each + readdir call, only for passing the pointer returned from opendir + into closedir when all done. ACE_DIR structure is now used + consistently for all pSOS dirent calls. + +Tue Jul 10 06:06:07 2001 Douglas C. Schmidt + + * ace/Service_Repository.h: Updated the insert() comment to + clarify the return values. Thanks to Johnny Willemsen for + suggesting this. + + * ace/Service_Repository.{h,i}: Made the current_size() and + total_size() methods const. Thanks to Johnny Willemsen for + suggesting this. + + * ace/Service_Repository.h: Fixed a typo in the comments. Thanks + to Johnny Willemsen for reporting this. + +Tue Jul 10 08:39:04 2001 Chad Elliott + + * ace/config-vxworks5.x.h: + + Added the macro ACE_LACKS_UNIX_SYSLOG. + +Tue Jul 10 08:26:57 2001 Chad Elliott + + * ace/Log_Msg_UNIX_Syslog.cpp: + + Added a macro, ACE_LACKS_SETLOGMASK, for platforms that have + syslog, but don't have setlogmask(). + + * ace/config-chorus.h: + + ChorusOS 4.0.1 happens to be one of them. + +Tue Jul 10 09:00:12 2001 Johnny Willemsen + + * ace/OS_Dirent.h + Made the member 'd_name' of the 'dirent' struct non-const, because + BCB had problems with it + +Mon Jul 09 22:41:43 2001 Ossama Othman + + * include/makeinclude/wrapper_macros.GNU (exceptions): + + Include platform_macros.GNU before the default for "exceptions" + is set. This fixes a problem where the default native + exceptions setting in platform_linux.GNU was not set due to the + fact that it was previously set in wrapper_macros.GNU. Thanks + to Hans Utz for tracking down + the problem. + +Mon Jul 9 16:40:02 2001 Ossama Othman + + * ace/Dirent_Selector.cpp (ACE_Dirent_Selector): + + Correct order of initialization of members to match order of + declaration. Fixes a warning issued from GCC. + + * ace/Dirent_Selector.inl: + + Added missing RCS ID keyword. Fuzz was whining about the lack + of it. + + * ace/Dirent_Selector.h: + + Corrected some Doxygen comments. + +Mon Jul 09 19:12:42 2001 Steve Huston + + * ace/ace.icc: Added Log_Msg_UNIX_Syslog and Log_Msg_NT_Event_Log + modules to the LOGGING component. Added Dirent_Selector to the + UTILS component. + +Mon Jul 9 15:59:56 2001 Joe Hoffert + + * ace/config-lynxos.h: + Added ACE_LACKS_MKSTEMP since LynxOS doesn't seem to have + this. + +Mon Jul 9 15:28:29 2001 Jeff Parsons + + * ace/Dirent_Selector.cpp: + * ace/Dirent_Selector.h: + + Added ACE_INLINE guards around inclusion of Dirent_Selector.inl. + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: + + Added Dirent_Selector.{h,i,cpp} to these projects. + +Mon Jul 9 06:52:09 2001 Douglas C. Schmidt + + * ace/Makefile.bor (OBJFILES): Added the Dirent_Selector.obj file. + + * tests/Dirent_Test.cpp: Integrated a new test for the + ACE_Dirent_Selector class. + + * ace/Makefile (UTILS_FILES), + * ace/Dirent_Selector.h, + * ace/Dirent_Selector.inl, + * ace/Dirent_Selector.cpp: Added support for a C++ wrapper facade that + encapsulates ACE_OS_Dirent::scandir(). Thanks to Rich Newman for + contributing this, as well. + + * ace/OS_Dirent.h, + * ace/OS_Dirent.inl, + * ace/OS_Dirent.cpp: Added support for the scandir() feature, which + makes it possible to selectively pick which files in a directory + to iterate over. Also fixed a bug in the emulation of dirent. + Thanks to Rich Newman for contributing + these fixes. + +Mon Jul 09 14:39:50 2001 Irfan Pyarali + + * ace/OS.i (thr_getprio and thr_setprio): Changed these two + function such that if we are on Solaris and we have pthreads + enabled, we should use the pthread calls rather than the native + Solaris calls. The reasons for choosing the pthread calls is + due to following problems with the native calls: + + - thr_getprio() is evil because on Solaris 5.8, a thread with + priority -20 (SCHED_OTHER) is reported to have priority 80. + + - thr_setprio() is evil because it cannot set the negative + priorities on Solaris 5.8. + + - Also, thr_setprio() cannot change the priority of a thread + with negative priority to a positive priority on Solaris 5.8 + (even though there is no error reported and thr_getprio() shows + that the change happened but pthread_getschedparam() shows that + no change happened). + + - In addition, suppose a thread of policy SCHED_RR or SCHED_FIFO + uses thr_setprio() to reset its priority, the priority will be + reset but the scheduling policy will be dropped to SCHED_OTHER. + This happens with both Solaris 5.7 and Solaris 5.8. + +Mon Jul 9 13:33:43 2001 Joe Hoffert + + * include/makeinclude/wrapper_macros.GNU: + Change PACE path to start at $PACE_ROOT rather than $ACE_ROOT/PACE + since the latter is not as flexible. Defined PACE_ROOT if not + already defined. Also, added inclusion of PACE library for VxWorks + even when inlining since not all the PACE functions should be + inlined. + +Mon Jul 09 10:59:22 2001 Ossama Othman + + * THANKS: + + Added Mouna Seri to the hall of fame. + +Mon Jul 9 11:10:44 2001 Jeff Parsons + + * ace/config-win32-msvc-5.h: + * ace/config-win32-msvc-6.h: + + Added conditional definitions for ACE_LD_DECORATOR_STR + "mfc" and "mfcd" so that the MFC release and debug versions + of libraries can be dynamically loaded in the same way that + the non-MFC release and debug versions are. Thanks to + Francois Bernier for suggesting + this enhancement. + +Mon Jul 09 11:31:12 2001 Johnny Willemsen + + * ace/pre.h + * include/makeinclude/compiler.bor + + Removed the disabling of the compiler warning 'parameter never + used'. Unused parameters are handled by ACE_UNUSED_ARG macro. + A missing ACE_UNUSED_ARG is now shown as warning in the BCB build + log. + +Sun Jul 08 11:26:23 2001 Ossama Othman + + * ace/OS.h (mkstemp): + * ace/OS.i (mkstemp): + + New mkstemp() wrapper. It is assumed to be available on the + given platform, unless ACE_LACKS_MKSTEMP is defined. + + * ace/FILE_Connector.h: + + Added O_EXCL to the default flags. This is a security hole + fix. + + * ace/FILE_Connector.cpp (connect): + + If mkstemp() is available, then use it to create a temporary + file rather than mktemp() (via ACE_FILE_Addr) since mktemp() is + susceptible to a denial-of-service attack. + + * ace/config-win32-common.h: + * ace/config-vxworks5.x.h: + + mkstemp() is not supported on MS Windows and VxWorks. Define + ACE_LACKS_MKSTEMP in these headers. + +Sun Jul 8 08:13:12 2001 Douglas C. Schmidt + + * ace/Select_Reactor_Base.h: Added a comment explaining what + the ACE_HAS_REACTOR_NOTIFICATION_QUEUE macro means. Thanks to + Kobi Cohen-Arazi for motivating this. + +Sat Jul 7 18:53:49 2001 Krishnakumar B + + * include/makeinclude/platform_osf1_4.0.GNU: + + Revert the changes made to this file. Please see the file for a + lengthy description. + +Fri Jul 06 21:53:26 2001 Christopher Kohlhoff + + * ace/config-win32-borland.h: + Reverted addition of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION. + +Fri Jul 6 19:55:23 2001 Douglas C. Schmidt + + * examples/Reactor/Multicast: Adding the support for UNIX Syslog + broke this example because LOG_DEBUG was suddenly defined as a + macro (it's in syslog.h). I've fixed this by renaming the LOG_ + enums to LM_ instead. Thanks to Bala for reporting this. + +Fri Jul 06 20:23:41 2001 Steve Huston + + * ace/Refcoutned_Auto_Ptr.i (null): Change const_cast<> to + ACE_const_cast() to build on older compilers, like IBM C/C++ 3.6.6. + +Fri Jul 06 20:13:29 2001 Steve Huston + + * netsvcs/lib/Name_Handler.cpp: + * netsvcs/lib/Server_Logging_Handler_T.cpp: + * netsvcs/lib/Token_Handler.cpp: + + More ACE_DEBUG disables. + +Fri Jul 6 15:55:54 2001 Ossama Othman + + * ace/OS.h (ACE_FD_SETSIZE): + + Integrated patch from Jody Hagins . Set the + default reactor file descriptor set size to be an integer + constant rather than a preprocessor constant. Some third party + software #undef FD_SETSIZE in their header files, causing build + problems in ACE. + +Fri Jul 06 18:20:39 2001 Steve Huston + + * netsvcs/lib/Client_Logging_Handler.cpp: #if 0'd out a bunch of + ACE_DEBUG statements that aren't appropriate for use in commercial + logging. These can be #if 1'd if there's some doubt while debugging + this stuff, but they aren't useful once debugged, and are + distracting since they're interespersed with application records. + +Fri Jul 6 13:40:20 2001 Balachandran Natarajan + + * ace/Log_Msg_UNIX_Syslog.cpp: Fixed a warning in g++. + +Fri Jul 06 11:39:41 2001 Steve Huston + + * ace/INET_Addr.h: Clarified (and improved doxygenation) of + constructor and set() methods regarding byte orders. + + * tests/Max_Default_Port_Test.icc: New file for this test. + * tests/tests.icp: Added Max_Default_Port_Test + +Fri Jul 6 08:36:20 2001 Chad Elliott + + * netsvcs/Makefile: Don't build this if ACE_COMPONENTS does not + contain Other. The netsvcs library requires Naming_Context. + +Fri Jul 6 05:44:13 2001 Douglas C. Schmidt + + * ace/Makefile (LOGGING_FILES): Added support for + Log_Msg_UNIX_Syslog. + + * ace/Log_Msg_UNIX_Syslog.{h,cpp}: + * ace/Log_Msg.cpp, + * ace/OS.h: Added support for a new UNIX syslog backend for the + ACE_Log_Msg class. Thanks to Jerry D. De Master + and Robert Davidson + . + + * ace/SOCK_Dgram.h: Fixed a typo in one of the send() method + comments. Thanks to Alain Decamps for + reporting this. + + * ace/config-macosx.h: Added a new file courtesy of John + Zorko so that things will work on MacOSX. + +Thu Jul 5 23:22:21 2001 Balachandran Natarajan + + Fixes that were required for fixing bug 575. Merged in from + branch bug_575_stage_2. + +Thu Jul 5 23:09:29 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp (ACE_InputCDR): Fixed a long standing bug in + the branch. This caused the DSI_Gateway test to fail. The + problem was from setting the write pointer to a wrong position + during the construction. + +Thu Jul 5 14:39:45 2001 Balachandran Natarajan + + * Merged with the main trunk and moved it to a new branch by name + bug_575_stage_2. + +Thu Jun 28 15:25:07 2001 Balachandran Natarajan + + * ace/Reactor.h (ACE_Reactor): + * ace/Reactor.cpp: Added a new method resumable_handler () to the + reactor interface. This would indicate whether the application + can take advantage by resuming the handlers themselves or + not. Not all reactors can allow this feature. + + * ace/Reactor_Impl.h: + * ace/Reactor_Impl.cpp: Added a pure virtual function so that all + the implementations can decide whether the handlers are + resumable or not. + + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_Base.cpp: + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp:Implemented resumable_handlers (). + +Sun Jun 24 11:25:07 2001 Balachandran Natarajan + + * Created this file. Got the whole stuff in ace to a new branch by + name bug_575_stage_1. This ChangeLog file will be in branch + bug_575. + +Fri Jun 22 16:52:13 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp: Changed the copy constructor for the + ACE_InputCDR's. Instead of duplicating the ACE_Data_Block we + now use the new copy constructor in the ACE_Message_Block. + + * ace/Message_Block.h: + * ace/Message_Block.cpp: Added a new copy constructor to the + ACE_Message_Block. This copy constructor does a deep copy from + the data block if the data block of the incoming message block + is on the stack or does a shallow copy of the data block (by + incrementing the ref count) if it is on the heap. + + END of entries from bug_575_stage_2. + +Thu Jul 5 22:07:33 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the new perl script in LongUpcalls + in the daily builds. + +Thu Jul 5 20:36:00 2001 Craig Rodrigues + + * ace/config-win32-borland.h + define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION + * tests/Token_Test.cpp + Fix template instantiation problem. + +Wed Jul 4 15:35:47 2001 Joe Hoffert + + * tests/run_tests.vxworks: + Removed invocation of CDR_Array_Test. According to the ace + config files the compiler we are using is pre 2.8 (i.e., + ACE_HAS_GNUG_PRE_2_8 is defined). Therefore don't run + CDR_Array_Test since the Makefile doesn't build it (due to + the ACE_HAS_GNUG_PRE_2_8 macro). + +Wed Jul 04 14:26:10 2001 Irfan Pyarali + + * ace/Synch_T.h (class ACE_Acquire_Method): Moved the enums from + the Reverse Lock class into ACE_Acquire_Method, a non-template + class. These enums should have been inside the reverse lock + class, but some lame compilers cannot handle enums inside + template classes. + +Wed Jul 04 12:43:22 2001 Irfan Pyarali + + * ace/Synch_T.i (ACE_Reverse_Lock): Fully specified the + ACE_ACQUIRE_METHOD type. + +Tue Jul 3 15:43:25 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a warning in g++. + +Tue Jul 3 14:44:00 2001 Craig Rodrigues + + * ace/config-win32-common.h: Borland C++ apparently + does not support the "extern template class" Microsoft VC++ + proprietary extension. Thanks to Chris Kohloff + for the fix. + +Tue Jul 03 12:26:33 2001 Irfan Pyarali + + * ace/Synch_T.h (class ACE_Reverse_Lock): Added a parameter to the + constructor of the reverse lock. The ACE_ACQUIRE_METHOD + parameter is used to indicate which acquire() method will be + called on the real lock when the release() method is called on + the reverse lock. REGULAR indicated the acquire() method, READ + indicates the acquire_read() method, and WRITE indicates the + acquire_write() method. Note that the try_*() methods are not + represented here because we have to make sure that the release() + method on the reverse lock acquires a lock on the real lock. + + Thanks to Edan Ayal for suggesting this. + +Tue Jul 3 06:20:13 2001 Douglas C. Schmidt + + * ace/Reactor.h, + * ace/Reactor_Impl.h, + * ace/Select_Reactor_Base.cpp, + * ace/Select_Reactor_Base.i, + * ace/Select_Reactor_Base.h, + * ace/WFMO_Reactor.cpp, + * ace/WFMO_Reactor.h: Added an enhancement that allows the + Reactor to selectively purge event handlers from its + notification queue according to their Reactor_Mask type. Thanks + to Edan Ayal for contributing this. + + * tests/Reactor_Notify_Test.cpp (run_notify_purge_test): + Added a new set of tests for the new selective notification + purging features of the Reactor. Thanks to Edan Ayal + for contributing this. + + * ace/WIN32_Asynch_IO.cpp: Removed the + ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority, + signal_number), initializer since we no longer use virtual + inheritance. Thanks to Alexander Libman + for reporting this. + + * ace/WIN32_Asynch_IO.h: Removed the virtual inheritance from + ACE_WIN32_Asynch_Result for the ACE_Asynch_Read_Stream_Result + and ACE_Asynch_Read_Dgram_Result classes. Thanks to Alexander + Libman for reporting this. + + * ace/Refcounted_Auto_Ptr.h: Made the destructor of + ACE_Refcounted_Auto_Ptr virtual so that users can override it + locally. Thanks to Jenny Kowald for + reporting this. + +Tue Jul 3 09:40:59 2001 Chad Elliott + + * include/makeinclude/platform_osf1_4.0.GNU: + * include/makeinclude/platform_osf1_4.0_g++.GNU: + + Allow users to set options like debug, exceptions, ... without + using override. + +Tue Jul 3 08:38:47 2001 Jeff Parsons + + * examples/Reactor/Proactor/test_dup_proactor.dsp: + + Fixed a mistake in the link to the ACE library. + +Mon Jul 2 16:23:04 2001 Jeff Parsons + + * examples/Reactor/Proactor/test_multiple_loops.dsp: + * examples/Reactor/Proactor/test_proactor.dsp: + * examples/Reactor/Proactor/test_proactor.dsw: + * examples/Reactor/Proactor/test_timeout.dsp: + * examples/Reactor/Proactor/test_udp_proactor.dsp: + + Fixed settings on release version of test_udp_proactor.dsp, + added it to the workspace, and removed unused file folders + from the FileViews of the other projects. + +Mon Jul 2 15:26:32 2001 Nanbor Wang + + * ace/config-sunos5.6.h: Removed ACE_HAS_POSIX_SEM and + ACE_LACKS_NAMED_POSIX_SEM. Thanks to Glenn Popelka + for helping track this down. + +Mon Jul 02 11:45:57 2001 Ossama Othman + + * bin/make_release: + + Disabled bootstrapping of ACE's autoconf support. It isn't + ready for general use. Doing so reduces the amount of + confusion. Thanks to Holger P. Krekel for + motivating this change. + +Mon Jul 2 13:18:14 2001 Douglas C. Schmidt + + * Moved ACE-configurations.txt into the docs directory. Also + removed the hopelessly out of date BIBLIOGRAPHY file. + + * Moved all the ChangeLog-* files into the new ChangeLogs + directory. Thanks to Holger P. Krekel for + this suggestion. + +Mon Jul 02 11:20:52 2001 Ossama Othman + + * config.guess: + * config.sub: + + Updated to the latest versions from the GNU FTP site. + +Mon Jul 02 11:30:20 2001 Irfan Pyarali + + * ace/Synch_T.i: Since the release() method on the reverse lock + calls the simple acquire() method on the real lock, it is + assumed that it is a simple acquire/release protocol with the + real lock. Therefore, I think all the other methods on the + reverse lock tryacquire(), acquire_read(), acquire_write(), + tryacquire_read(), tryacquire_write(), and + tryacquire_write_upgrade() should not be allowed. This falls in + line with the original concept of using reverse locks with + regular guards. + + Thanks to Edan Ayal for pointing this out. + +Mon Jul 2 11:17:37 2001 Chad Elliott + + * ace/Profile_Timer.cpp: + + Cleaned up the conditional macros. Added method bodies for + ACE_Profile_Timer::get_rusage() and + ACE_Profile_Timer::elapsed_rusage() when neither ACE_HAS_PRUSAGE_T + nor ACE_HAS_GETRUSAGE is defined. + + * Reverted the reverted changes in this entry. + "Fri Jun 29 22:31:56 2001 Balachandran Natarajan + ". These changes are ok, I just + needed to fix the bug in Profile_Timer.cpp. + +Mon Jul 2 09:40:45 2001 Chad Elliott + + * include/makeinclude/platform_aix_ibm.GNU: + + Add the output filter to the linker to avoid the duplicate symbol + warnings on AIX. + +Mon Jul 2 05:40:54 2001 Douglas C. Schmidt + + * ace/Logging_Strategy.cpp: Enhanced the code so that it works with + ACE_LACKS_IOSTREAM_TOTALLY. Thanks to Nir Drang + and Edan Ayal for reporting this. + + * ace/SPIPE_Addr.cpp (set): Added a "+ 1" to the computation of + the size of the SPIPE_Addr to account for the trailing NUL. + Thanks to Oren Zeev-Ben-Mordehai for + reporting this. + + * ace/Refcounted_Auto_Ptr.{h,i}: Added support for a "null()" + method to check if a refcounted auto ptr is NULL. Thanks to + Jenny Kowald for reporting this. + + * ace/config-macosx.h, + * ace/platform_macosx.GNU: Enhanced these files to support MacOSX. + Thanks to John Zorko for contributing this. + + * ace/Synch.h: Fixed the Doxygen documentation for all the + removed_ fields, which where somehow messed up. Thanks to + Johnny Willemsen for reporting this. + +Sun Jul 1 11:49:13 2001 Alexander Libman + + * ace: Enhanced the POSIX and Sun Proactor implementations as + follows: + + . POSIX_SIG_Proactor is now based on POSIX_AIOCB_Proactor + + . All classes ACE_POSIX_SIG_Asynch_XXXX are removed. + POSIX_SIG_Proactor uses the ACE_POSIX_AIOCB_Asynch_XXXX + classes now. + + . ACE_POSIX_AIOCB_Proactor::register_and_start_aio (...) + now calls a new virtual method: int + ACE_POSIX_AIOCB_Proactor::allocate_aio_slot + (ACE_POSIX_Asynch_Result *result). + + . The strategy of free slot allocation in SIG_Proactor is + a bit different from AIOCB and SUN Proactors. The + allocate_aio_slot() method is responsible for setting + notification information for aio request + (SIGEV_NONE/SIGEV_SIGNAL). For SIG_Proactor, the field + aio_sigevent.sigev_value.sival_int now contains index of aiocb + in the aiocb_list_, not a pointer. + + . The ACE_POSIX_AIOCB_Proactor::find_completed_aio (int &error_status, + int &return_status, size_t + &index, size_t &count) + parameter index defines initial slot to scan and the new + parameter count tells us maximum number slots to scan. On + return: index contains value to start scan next time, count + contains remained number of slots. Scanning is performed in + "wheel" style to allow all requests be handled with equal + priorities. + + . ACE_POSIX_AIOCB_Proactor::check_max_aio_num () checks for + max_number_files to open and tries to setup max_number_files + equal to aiocb_max_size_. if we failed than cut off + aiocb_max_size_ value to existing max_number_files. + + . POSIX_Proactor added member int os_id_ and constructor sets up + os_id_ (compilation time + run_time function) to know + OS(Sun/HP/Linux/...) and version. We need such info for + POSIX_SIG_Proactors to take into account the behavior of + different OS. + + . Delivery of simulated/"post_completed" Asynch_Results + (Timers, AsynchAccept,Wakeup ...). As both Proactors have no + reliable mechanizm for delivery "post_completed" results, so + the reliable queue of "post_completed" results was + implemented. The new member of AIOCB Proactor + ACE_Unbounded_Queue result_queue_ + has been added. Also added protected methods to the + ACE_POSIX_AIOCB_Proactor. + + . We had an error in all previous versions (from major ACE 5.1): + post_completion (int how_many) does not guarantee that all + completions will be delivered to the different threads running + event_loop (sometimes several completions could be delivered + to the one thread, in another thread performs during long time + application_spesific_code ()). Moreover, you can run now + Proactor event_loop in any number of threads (more than + SIGQUEMAX). + +Sun Jul 1 11:49:13 2001 Douglas C. Schmidt + + * examples/Reactor/Proactor: Integrated a test that exercises the + support for asynchronous UDP operations. Thanks to Roger Tragin + for contributing this. + + * ace/Synch_T.i: Changed the implementations of all the + acquire*() method to call release(). Thanks to Edan Ayal + for reporting this. + +Sat Jun 30 12:44:11 2001 Douglas C. Schmidt + + * examples/Connection/blocking/SPIPE-acceptor.cpp: Added better + support for shutting down the server when a signal occurs. + Thanks to Rich Newman for this + enhancement. diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a new file mode 100644 index 00000000000..fa845881eb7 --- /dev/null +++ b/ChangeLogs/ChangeLog-03a @@ -0,0 +1,6249 @@ +Mon Dec 03 14:22:57 2001 Carlos O'Ryan + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: + Add UNIX-only files. Though strictly not required to compile + ACE under NT, putting them in the project makes this directory + more amenable for samwise. + + * ace/POSIX_Proactor.cpp: + Remove duplicate ACE_BUILD_DLL macro, when needed this is + defined via options in the project file. + +Mon Dec 3 13:59:06 2001 Ossama Othman + + * ace/README: + + The ACE_HAS_IP6 macro has been superceded by the ACE_HAS_IPV6 + macro. Also added description of the + ACE_USES_IPV4_IPV6_MIGRATION macro based on Steve's description + below. + +Mon Dec 3 15:50:42 2001 Steve Huston + + * IPv6 changes done by John Aughey and myself. To enable IPv6 + support for a build, put this in your config.h file: + #define ACE_HAS_IPV6 + If your build with IPv6 enabled must also run on systems where + the IPv6 support in the kernel is not actually turned on (for + example, Redhat Linux 7 by default), also add this to your + config.h file: + #define ACE_USES_IPV4_IPV6_MIGRATION + + * ace/ACE.cpp (format_hexdump): Add \n to last part of a dump line. + + * ace/INET_Addr.(h i cpp): If IPv6 is enabled, the inet_addr_ + member is now a union of sockaddr_in and sockaddr_in6. Which + one is legit is noted in ACE_Addr::type as well as the family + member of either of the union members. The host name lookup + functions can look up ipv6 as well as ipv4 names, and the + caller can force one or the other by using the address_family + argument to set(). + + * ace/OS.(h i): Removed ACE_OS::gethostbyname2; replaced it with + the more correctly-named and more flexible ACE_OS::getipnodebyname. + Also added ACE_OS::getipnodebyaddr. These are the IPv6-capable + functions analogous to gethostbyname and gethostbyaddr. + + * ace/SOCK.cpp (get_remote_addr, get_local_addr): Set up the + ACE_Addr's type properly to account for ipv4/6 possibilities. + + * ace/SOCK_Acceptor.(h cpp): Allow accepting on ipv4 and ipv6 sockets. + + * ace/SOCK_CODgram.h: + * ace/SOCK_Connector.(cpp h ): + * ace/SOCK_Dgram.(cpp h ): Change default protocol family from + PF_INET to vary and take advantage of IPv6 if available. + + * ace/Sock_Connect.(cpp h): Added ACE_Sock_Connect::ipv6_enabled() + method - it checks to see if the running kernel can do IPv6 + sockets or not. + + * ace/Sock_Connect.cpp (get_ip_interfaces): Removed a #if 0'd + block that had possible specializations for MSVC 4.2. It's + been a number of years, and it's obviously not needed. + + * ace/MEM_Addr.cpp (same_host): Don't try to compare binary + addresses directly... get ACE_INET_Addr objects, clear the port + numbers, and compare them. + + * ace/MEM_Connector.cpp (connect): Print error text with message. + + * ace/Asynch_Acceptor.cpp (open): For the new socket, use the + protocol family from the listen address, not PF_INET. + + * tests/INET_Addr_Test.cpp: New test. + + * tests/Makefile: Added INET_Addr_Test. + +Mon Dec 3 10:54:34 2001 Carlos O'Ryan + + * ace/OS.h: + Document CDR default buffer sizes and control macros + using Doxygen. + Document memory alignment macros in Doxygen form. + + * ace/Sample_History.h: + * ace/Sample_History.inl: + Add accessor to get the samples saved on the history. + + * ace/RMCast/RMCast_Singleton_Factory.h: + Document constructor in more detail. + +Mon Dec 03 07:54:04 2001 Johnny Willemsen + + * ace/Unbounded_Queue.{h,cpp}: + Added const iterator for this container class + +Sun Dec 02 15:13:30 2001 Carlos O'Ryan + + * ace/OS.cpp: + Fixed Fuzz problems, the ACE_TRACE calls in operator++/-- + definitions had less whitespace than the actual operators. + +Sun Dec 02 15:17:47 2001 Nanbor Wang + + * ace/Thread_Manager.cpp (join): This method mistakenly used the + local copy of Thread_Descriptor to change the thread status when + it found a thread to join from the . This prevented + the status of the original Thread_Descriptor to be updated + correctly and the same descriptor got put into the + again, which caused the same thread to be + waiting on in some cases. Changed to manipulate the descriptor + directly to avoid the problem. Thanks to Eyal Lubetzky + for reporting the problem and providing a + nice example to showcase it. + +Sun Dec 2 12:44:58 2001 Carlos O'Ryan + + * tests/ACE_Init_Test.cpp: + * tests/ACE_Init_TestDlg.cpp: + Protect this test against compilation on non-Win32 platforms, + that makes it easier to compile using samwise. + + * tests/RMCast/RMCast_Fragment_Test.cpp: + * tests/RMCast/RMCast_Membership_Test.cpp: + * tests/RMCast/RMCast_Reassembly_Test.cpp: + * tests/RMCast/RMCast_Reordering_Test.cpp: + * tests/RMCast/RMCast_Retransmission_Test.cpp: + * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: + Change #include "test_config.h" to #include "../test_config.h", + it is easier to generate makefiles and projects files with + samwise if we do that. + +Sun Dec 02 12:15:25 2001 Carlos O'Ryan + + * ace/OS.cpp: + Fixed typos in ACE_Time_Value::operator++ implementations. + Also moved the implementation outside the #ifdef ACE_WIN32 + section. + +Sun Dec 2 12:17:09 2001 Balachandran Natarajan + + * ace/Reactor.i: Fixed a warning in TRU 64. Thanks to + which reminded me of the fix in one of my + workspaces. This shows up only in V6.3-013 (cxx) of the + compiler. + +Sat Dec 1 19:39:22 2001 Steve Huston + + * ace/Date_Time.i (update): Use ACE_OS::gettimeofday for the time + source. This gets both the seconds-since-epoch value from which + the date and time are calculated and the microseconds value. + Thanks to Jim Connelly for reporting this. + + * THANKS: Added Jim Connelly to the Hall of Fame. + + * ace/Log_Msg_NT_Event_Log.{cpp h} (open): + * ace/Log_Msg_UNIX_Syslog.{cpp h} (open): + If the caller passes a prog_name (logger_key) argument, use it + for the Source field in the event log entries (or ident in the + syslog entries). If not, use the program name (previous behavior). + Added comments to define this behavior. + + * ace/Log_Msg.cpp (open): Don't refuse to open a backend if the + arg is 0 and the SYSLOG bit is enabled. The SYSLOG + backends, both UNIX and NT Event Log, work perfectly fine with + a 0 logger_key. Thanks to Steve Witten for + reporting this. + +Sat Dec 1 18:03:51 2001 Douglas C. Schmidt + + * ace/config-macosx.h: + * include/makeinclude/platform_macosx.GNU: + Added support so that ACE will build and run on Mac OS X 10.1. + Thanks to John Michael Zorko for contributing + this. + +Fri Nov 30 19:08:19 2001 Douglas C. Schmidt + + * ace/ARGV.cpp (dump): Fixed a bug with dump() so that it + works properly even if argv_ changes. Thanks to Kyle Brost + for this fix. + +Thu Nov 29 16:31:57 2001 Douglas C. Schmidt + + * ace/OS.{h,i,cpp}: Changed the return value of + ACE_Time_Value::operator+= and operator -= to be ACE_Time_Value + & rather than void. Also, added overloaded operator++ and + operator--. This is all to make this stuff work better with + ACE_Atomic_Op. Thanks to Kelly F. Hickel + for suggesting this. + + * ace/Asynch_Acceptor.cpp (parse_address): Changed + the "message_block.size () - 2 * this->address_size ()" argument + to "bytes_to_read_" to work properly on Win32. Thanks to Kelly + F. Hickel for reporting this. + +Wed Nov 28 17:44:26 2001 Douglas C. Schmidt + + * ace/OS_Dirent.cpp (readdir_emulation): Fixed a memory leak + in the dirent emulation. Thanks to Olivier Brunet + for reporting this. + + * ace/SPIPE_Acceptor.h (ACE_SPIPE_Acceptor): Clarified the + return value of open(). Thanks to Garth Watney + for motivating this. + + * ace/OS.h: Added a workaround to the Borland bug for + ACE_OS::stat(). Thanks to Christopher Kohlhoff + and Chris Able for + reporting/fixing this. + +Sat Dec 01 09:26:27 2001 Balachandran + + * ACE version 5.2.1 released. + +Wed Nov 28 09:28:09 2001 Johnny Willemsen + + * ace/examples/IPC_SAP/SOCK_SAP/* + * ace/examples/IPC_SAP/SPIPE_SAP/* + * ace/examples/Misc/* + * ace/examples/Naming/* + * ace/examples/RMCast/Send_File/* + * ace/examples/Reactor/DGram/* + * ace/examples/Reactor/Ntalker/* + * ace/examples/Registry/* + * ace/examples/Threads/* + * ace/examples/Service_Configurator/IPC_tests/client/* + Made these examples compiling when ACE_USES_WCHAR is set + +Mon Nov 26 16:07:57 2001 Balachandran Natarajan + + * bin/make_release: The distribution will be available in bzip2 + compressed format too. Made modifications to the release scripts + to put out the beta in bzip2 compressed format. + +Sat Nov 24 10:23:00 2001 Douglas C. Schmidt + + * ace/Unbounded_Set.h (class ACE_Unbounded_Set): Moved the + insert_tail() method from the private part of the class to the + public part since it's needed by the examples/Misc/test_set.cpp + file. + + * examples/Misc/test_set.cpp (main): Somehow the contents of this file + got lost. Thanks to Johnny Willemsen for reporting this! + +Fri Nov 23 08:40:33 2001 Douglas C. Schmidt + + * tests/Refcounted_Auto_Ptr_Test.cpp: Added some ACE_DEBUGs to + print out the reference count. + + * ace/Refcounted_Auto_Ptr.h: Added a count() accessor method to + return the reference count. Thanks to Andrea Bernicchia + for contributing this. + +Thu Nov 22 05:24:51 2001 Craig Rodrigues + + * examples/QOS/Diffserv: Added a simple example to illustrate + how to set Diffserv Codepoints on an ACE_SOCK_CODgram. + * examples/QOS/Makefile: Updated. + +Wed Nov 21 11:35:50 2001 Michael Kircher + + * ace/Bound_Ptr.h + * ace/Bound_Ptr.i + * ace/Future.cpp + * ace/Future.h + * ace/Refcounted_Auto_Ptr.h + * ace/Refcounted_Auto_Ptr.i + + Made the memory allocation failure behavior consistent + to the behavior prior to the change on Sun Oct 28 13:15:00 2001. + Thanks to Christopher Kohlhoff who prepared + this change. + The problem was that with the above mentioned change failed + allocations would return 0 in either case, if exceptions were + enabled by the platform or not. This was incosistent to the + behavior before, as new threw bad_alloc on allocation failure + when exceptions were supported by the platform. + + To fix this we faced the following forces: + - Not to introduce yet another macro + - Minimize impact of changes, localize the problem + - Keep the new calls wrapped by a ACE_NEW macro to allow + users to eventually redefine the macro (using e.g. new (nothrow) + + As the ACE_NEW macros are quite restrictive in their supported + semantics, e.g. you can only return on error, we decided to introduce + a new method (as inline) internal_create which does the allocation. + internal_create is called by create which does the differentiation + between the exception-supported and exception-not-supported case. + +Wed Nov 21 09:07:37 2001 Douglas C. Schmidt + + * ace/OS.h: Updated the ACE_GUARD_ACTION macro and added a new + ACE_GUARD_REACTION macro. Then, reimplemented the ACE_GUARD and + ACE_GUARD_RETURN macros in terms of these new macros. Thanks to + Don Hinton for contributing these. + + * ace/Log_Msg_Callback.h: Improved the comments to explain why + ACE_Log_Msg_Callback isn't inherited. Thanks to + Alexey Chalimov for motivating this. + +Tue Nov 20 15:36:52 2001 Douglas C. Schmidt + + * ACE-INSTALL.html: Pointed out that on Solaris with g++ you may + need to use GNU as instead of /usr/ccs/bin/as, if you want + -gstabs+ and -pipe support. Thanks to C Chan + for reporting this. + +Mon Nov 19 07:24:05 2001 Douglas C. Schmidt + + * examples/Synch/proc_sema.cpp: Added the ACE_TEXT macro so that + ACE_Get_Opt works correctly. Thanks to Johnny Willemsen for + contributing this. + + * tests/Aio_Platform_Test.cpp (main): Fixed the code so that it + compiles when ACE_USES_WCHAR. Thanks to Johnny Willemsen for + reporting this. + + * docs/ACE-categories.html: Updated the Doxygen URLs to use the + new format. Thanks to Peter J. Mason + for reporting the problem. + +Fri Nov 16 10:39:52 2001 Douglas C. Schmidt + + * docs: Moved minimumTAO.html from $TAO_ROOT/docs/ to + $ACE_ROOT/docs. + + * ace/OS.h: Added two new macros ACE_GUARD_ACTION and + ACE_GUARD_ACTION_RETURN. Thanks to Boris Kaminer + for suggesting these. + + * ace/NT_Service.cpp (state): Fixed a bug where calling + ACE_NT_Service::state(x,x) while the service is stopped was + causing the internal status variables of ACE_NT_Service to + become corrupt. If the control_mask is set to + SERVICE_ACCEPT_STOP in the constructor, the call to state will + cause this mask to be reset (if the service is not running). + This ultimately results in an NT Service that can be started but + not stopped. Thanks to Kyle Brost for + providing this fix. + +Wed Nov 21 10:00:20 2001 Chad Elliott + + * ace/config-irix6.x-common.h: + + Changed the size of a long double from 16 to 8 for the GNU + compiler. + + * include/makeinclude/platform_irix6.x_sgic++.GNU: + + Add buildbits macro to allow 32 and 64 bit builds on IRIX. + +Wed Nov 21 12:49:08 2001 Johnny Willemsen + + * performance-tests/Misc/basic_perf.cpp + * performance-tests/Misc/childbirth_time.cpp + * performance-tests/Misc/context_switch_time.cpp + * performance-tests/Misc/preempt.cpp + * performance-tests/Misc/test_mutex.cpp + * performance-tests/Misc/test_singleton.cpp + Made these tests compiling when ACE_USES_WCHAR is set + +Wed Nov 21 08:49:12 2001 Johnny Willemsen + + * ace/OS.h + Added ACE_LIB_TEXT around ACE_DEFAULT_RENDEZVOUS to make a unicode + constant when ACE_USES_WCHAR is defined + + * tests/FlReactor_Test.cpp + * tests/TkReactor_Test.cpp + * tests/XtReactor_Test.cpp + Changed type of argv argument of main from char to ACE_TCHAR so that + these tests compile without problems when ACE_USES_WCHAR is defined + + * examples/IPC_SAP/ATM_SAP/CPP-client.cpp + * examples/IPC_SAP/ATM_SAP/CPP-server.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp + * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp + Made these example compiling when ACE_USES_WCHAR is set + +Tue Nov 20 12:02:16 2001 Ossama Othman + + * configure.in: + + Removed this file from the distribution. Some folks insist on + attempting to build ACE/TAO with the configure script and + reporting problems despite the fact we've explicitly disabled + it. + +Tue Nov 20 13:30:36 2001 Balachandran Natarajan + + * ace/Strategies.h: + * ace/Strategies.cpp: + * ace/Strategies.i: Re-added files back into the main trunk. Got + accidentally removed from the main when I was doing some work on + a branch. + +Mon Nov 19 20:35:44 2001 Jaiganesh Balasubramanian + + * ace/SOCK_Dgram_Mcast.cpp: + This class allow application to subscribe a single socket to + many multicast groups. However, the unsubscribe operation + failed to work with more than one group. For some strange + reason it was storing the first multicast group subscription in + a class member and using that member in all the paths for the + unsubscribe methods. + + We have changed the unsubscribe(const ACE_INET_Addr&,...) method + to work as adversited, i.e. unsubscribe the *given* multicast + address, not the stored one, as an added benefit the method is + now re-entrant. The unsubscribe(void) method works as before. + The code has been re-factored to minimize duplication. + +Mon Nov 19 11:03:07 2001 Ossama Othman + + * ACE-INSTALL.html: + + Added missing build instructions for the ACE_SSL library, and + updated the list of "make" flags recognized by ACE's Makefile + scheme. + +Mon Nov 19 00:53:54 2001 Krishnakumar B + + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_Tokens.h: + + Fixed some bugs introduced by my previous checkin because of + patch confusion. Replaced all the standard C system calls with + ACE_OS calls. Made it more wchar friendly. + + * ace/Makefile: + + Removed the dependency on /pkg/gnu/bin/flex. It was broken. We + now use $(LEX) and $(YACC) defined in + $ACE_ROOT/include/makeinclude/wrapper_macros.GNU. + + * include/makeinclude/wrapper_macros.GNU: + + Changed the definition of YACC to bison (by default). If people + want to change this, it can be overridden by a variable in the + Makefile. But things are most likely to break if you use yacc. + + * etc/Svc_Conf_l.cpp.diff: + * etc/Svc_Conf_y.cpp.diff: + + Regenerated the diffs. + + *Sigh* This patching business is ugly. + +Fri Nov 16 07:22:19 2001 Balachandran Natarajan + + * bin/make_release: Updated the script to copy the beta to a + different location. Have tested this by creating a dummy + repository and a dummy export directory. Things worked + fine. Hopefully the beta should go through without any hassle. + + The script is tied to its usage on ace.cs. Needs to be + changed. Will do that after this beta goes out. Having too many + changes at the same time may not be good. + +Thu Nov 15 20:44:40 2001 Craig Rodrigues + + * etc/Svc_Conf_l.cpp.diff: Updated. Thanks to Kitty for reporting it. + * etc/Svc_Conf_y.cpp.diff: Added. We need it for uses of ACE_LIB_TEXT. + * ace/Makefile: Added rule to apply patch to Svc_Conf_y.cpp. + +Thu Nov 15 08:26:57 2001 Douglas C. Schmidt + + * ace/*.cpp: Changed all remaining uses of ACE_TEXT to ACE_LIB_TEXT + to be consistent... Thanks to Johnny Willemsen for reporting + the inconsistencies and for Darrell Brunsch for clarifying what + the right behavior should be. + +Wed Nov 14 07:43:20 2001 Douglas C. Schmidt + + * docs/ACE-guidelines.html: Updated the guidelines to explain + the use of ACE_TCHAR for the argv parameter to main(). Thanks + to Johnny Willemsen for reporting this. + + * ace/OS_Dirent.inl (opendir): Replace char * const cast with + ACE_TCHAR * const cast. Thanks to Nick Pratt for reporting + this. + + * tests/Upgradable_RW_Test.cpp (main): Fixed the test to avoid + dividing by 0 and also initialized all pointers to NULL. Thanks + to Johnny Willemsen for reporting this. Thanks fixes BudID 650. + +Tue Nov 13 15:25:04 2001 Douglas C. Schmidt + + * ace/ACE.h (ACE): Clarified what the time_len parameter is used for. + Thanks to Tompa for reporting this. + +Sun Nov 11 09:50:52 2001 Douglas C. Schmidt + + * ace/Naming_Context.cpp (info): Added an ACE_UNUSED_ARG to + silence warning about "length" parameter and changed buf from + char to ACE_TCHAR. Thanks to Johnny Willemsen for reporting + this. + + * tests/Aio_Platform_Test.cpp: The argv parameter of main() should + be ACE_TCHAR rather than char. Thanks to Johnny Willemsen for + reporting this. + +Thu Nov 15 15:43:20 2001 Craig Rodrigues + + * ace/Naming_Context.cpp (info): Wrapped sprintf() arguments with + ACE_LIB_TEXT. Fix supplied by Johnny Willemsen. + +Thu Nov 15 12:43:31 2001 Nanbor Wang + + * docs/wchar.txt: Added a writeup for ACE_LIB_TEXT and ACE_TEXT + from "the authority." + +Wed Nov 14 21:36:42 2001 Ossama Othman + + * docs/usage-bugzilla.html: + + Corrected link to the DOC Center's bugzilla site. + +Wed Nov 14 23:11:59 2001 Craig Rodrigues + + * ace/Naming_Context.cpp (info): Fixed Unicode build problems + by consistently using ACE_TCHAR instead of char, and by + using Unicode aware string functions in ACE_OS_String + instead of ACE_OS. + + * ace/Svc_Conf_l.cpp: Default intialized ace_yy_c_buf_p to ACE_TCHAR + instead of char. Default initialized ace_yy_cp, ace_yy_bp to 0. + + * ace/Svc_Conf_y.cpp: Wrap string literals passed to ace_yyerror + with ACE_LIB_TEXT(). + +Wed Nov 14 06:38:41 2001 Balachandran Natarajan + + * docs/ACE-bug-process.html (HREF): Changed references from ace.cs + to deuce.doc. Thanks to Johnny Willemsen for reporting this. + +Tue Nov 13 15:04:15 2001 Carlos O'Ryan + + * html/Stats/index.shtml: + * html/Stats/detailed_performance.shtml: + Improved documentation about the test location, ORB, and network + configuration used. Thanks to David Yongqiang Wang + for pointing out the problems. + +Tue Nov 13 11:46:11 2001 Chris Cleeland + + * tests/Collection_Test.cpp (iterate_const): Fixed ACE_DEBUG print + statements that were accessing the element of the unbounded set + as an int rather than an UglyThing. Thanks to Ossama for + pointing this out. + +Mon Nov 12 11:41:35 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.cpp (send, recv): + + In the va_arg versions of these methods, do not use + send/recv_n() to as the underlying send/recv() method. It + forces unnecessary blocking. + + Corrected return value semantics in versions of these methods + that use loop to send/receive multiple buffers. If data was + sent or received than do not return -1 on error. Instead return + the amount of bytes sent/received. This is necessary to allow + the caller to keep track of sent or received data. [Bug 882] + +Sun Nov 11 23:50:00 2001 Craig Rodrigues + + * tests/Date_Time_Test.cpp: Remove argv variable from + main() to eliminate unused variable compiler warning. + * tests/Arg_Shifter_Test.cpp: Same. + +Sun Nov 11 10:00:56 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.h (ACE_SSL_SOCK_Stream): + + Removed unused class members. + + * ace/SSL/SSL_SOCK_Stream.cpp (sendv): + + If an error occurs but data was sent on a previous loop + iteration then return the amount of bytes sent, not the error. + This extends previous check for EWOULDBLOCK and ETIME. All + errors are now caught. The caller must always know if any data + was successfully sent. [Bug 882] + + Do not continue on to the next loop iteration if the amount of + data sent was less than the amount data given. This avoids a + subtle problem where "holes" in the data stream would occur if + partial sends of a given buffer in the iovec array occured. + [Bug 882] + +Sun Nov 11 07:58:07 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.cpp (sendv): + + Fixed unused variable warnings. + +Sat Nov 10 23:25:50 2001 Ossama Othman + + * bin/auto_run_tests.lst: + + Added new SSLIOP "Big_Request" test to the list of regression + tests to automatically run during the nightly builds. + +Sat Nov 10 22:13:54 2001 Krishnakumar B + + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_Tokens.h: + + Regenerated the files after fixing the warnings that showed up + under Sun CC Forte Update. They were caused because Sun CC's + preprocessor doesn't like the #line statements generated by flex + and bison. Since these files are not modified on a daily basis, + people debugging the lexer can turn it on by removing the flags + '-l' and '-L' to bison and flex respectively in the Makefile. + For now, this removes a lot of noise. + + * ace/Makefile: + + Added flags '-l' to bison and '-L' to flex. + + * etc/Svc_Conf_l.cpp.diff: + + Regenerated the diff to match the current version. + + * etc/Svc_Conf_y.cpp.diff: + + This file held the stuff which have been obsoleted by the move + to use bison. So removed this file to avoid causing confusion in + the future. Thanks to Ossama for pointing this out. + + Let's see some green :-) + +Sat Nov 10 19:27:36 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + + If data is still buffered within OpenSSL's internal buffer, then + force the Reactor to invoke the event handler (with + the appropriate mask) before waiting for more events + (e.g. blocking on select()) by returning a value greater than + one. All pending data must be processed before waiting for more + events to come in on the SSL handle. + + * ace/SSL/SSL_SOCK_Stream.h (reactor, handler, notify): + + These methods are no longer needed. Removed them. + + (sendv): + + Added missing timeout parameter. + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i (notify, recv_i, send_i, close): + + Reverted code that notify()ed the Reactor if data was still + pending in OpenSSL's internal buffers. The idea was to force + the reactor to call the appropriate event handler before polling + for events (e.g. blocking on select()). However, notifications + are not dispatched until after events are polled which meant + that there is no point in notify()ing the Reactor. + + * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler): + + These methods are no longer needed. Removed them. + + (sendv): + + Fixed/improved the writev() semantics and emulation in this + method. Previously, if an iov_base buffer was successfully + sent, that success was not reported to the caller if subsequent + sends in the emulation loop failed. The caller would end up + thinking that no part of the message was sent. The improved + semantics are now the following if the underlying send() call + returns with an EWOULDBLOCK or ETIME error condition: + + - If no data was sent, then return -1. + - If some data was sent on a previous loop iteration then + return the number of bytes successfully sent. + + In both cases, errno is unchanged. [Bug 882] + + Incidentally, this fixes a problem in TAO's SSLIOP pluggable + protocol when sending very large requests. Thanks to Andrew + Finnell for providing an + example that exhibited the problem. + + Lastly, the missing timeout support has been added. The timeout + is decremented on each loop iteration. + +Sat Nov 10 17:16:59 2001 Nanbor Wang + + * ace/OS.cpp (fopen): Removed redundant parentheses. + +Sat Nov 10 09:29:48 2001 Douglas C. Schmidt + + * ace/OS.i (pipe): Replaced the _pipe() call on Win32 with the + CreatePipe() call. Thanks to Bo Balders + for reporting this. + + * ace/Log_Msg.cpp (log): The "format" string was omitted. Thanks + to Martin Krumpolec for noticing this. + +Sat Nov 10 08:48:24 2001 Douglas C. Schmidt + + * ace/Arg_Shifter.{h,cpp}: Added a new constructor to ACE_Arg_Shifter + so that it can handle both const char ** and char ** arguments. + +Fri Nov 9 07:42:41 2001 Douglas C. Schmidt + + * ace/Arg_Shifter.cpp: Made the argv parameter to ACE_Arg_Shifter + a "const" ACE_CHAR **. + + * tests/Arg_Shifter_Test.cpp (main): Added "const" to the + args local variable to remove a warning from SunC++. + +Fri Nov 9 11:23:01 2001 Chris Cleeland + + * tests/Collection_Test.cpp: Fixed up things that caused problems + on several platforms. Added the ARRAY tests back in. + +Thu Nov 8 14:52:39 2001 Steve Huston + + * ace/Log_Msg.h: Added a new 'M' option to print out the name of + the log priority. Thanks to Vladimir Chovanec + for reporting this. + +Thu Nov 8 10:41:44 2001 Douglas C. Schmidt + + * ace/OS_String.h: Enhanced the documentation so that it explains + the differences between ACE_OS::strsncpy() and ACE_OS::strcpy() + more precisely. Thanks to Alain Decamps for contributing this. + + * ace/Naming_Context.{h,cpp}: The info() method should have + ACE_TCHAR ** rather than char **. Thanks to Johnny Willemsen + for reporting this. + + * ace/OS.cpp: Added support for Borland's idiosyncratic _wfdopen() + method. Thanks to Johnny Willemsen for reporting this. + +Wed Nov 7 05:17:03 2001 Douglas C. Schmidt + + * ace/Message_Queue_T.{h,cpp}: Changed the typo DEFUALT_PRIORITY + to DEFAULT_PRIORITY. + + * ace/OS.i: In BCB the _wtempnam() has the following signature: + wchar_t *_wtempnam(wchar_t *dir, wchar_t *prefix) + + This means that the arguments must be made non-const by a cast. The + fix is to add some defines so that with BCB and no wchar the + _tempnam is used (with the casts) and with BCB and wchar then + the _wtempnam is used with the casts. Thanks to Johnny + Willemsen for this fix. + +Thu Nov 8 14:52:39 2001 Steve Huston + + * ace/Arg_Shifter.h: Doxygen-ized some comments. + + * ace/Date_Time.i (update): Add 1900 to years value to convert from + localtime's years-since-1900 value to now. Add 1 to the month + to convert localtime's 0-11 range to 1-12. Thanks to Syed + Wasim Ali for reporting this. + + * tests/Date_Time_Test.(cpp dsp icc): New test for ACE_Date_Time. + + * tests/tests.dsw: + * tests/tests.icp: + * tests/Makefile[.bor]: Added Date_Time_Test. + + * tests/run_test.lst: Added Arg_Shifter_Test and Date_Time_Test. + +Thu Nov 8 11:53:00 2001 Steve Huston + + * tests/Arg_Shifter_Test.(cpp dsp icc): New test for ACE_Arg_Shifter. + + * tests/tests.dsw: + * tests/tests.icp: + * tests/Makefile[.bor]: Added Arg_Shifter_Test. + +Thu Nov 8 13:05:12 2001 Chad Elliott + + * include/makeinclude/platform_irix6.x_sgic++.GNU: + + Added an option to suppress warnings about #pragma pack. + +Thu Nov 8 10:43:22 2001 Chad Elliott + + * ace/OS.cpp: + + Correct a build problem for GHS on Win32. + +Wed Nov 07 13:50:39 2001 Nanbor Wang + + * ace/Task_T.h (ACE_Task): Decorated ACE_Task with ACE_Export to + avoid VC7's internal compiler error. Thanks to Darrell for + submitting the change. + +Wed Nov 7 10:59:00 2001 Craig Rodrigues + + * include/makeinclude/platform_sunos5_g++.GNU: Append -D_REENTRANT + to CPPFLAGS if threads=1 + +Wed Nov 7 08:09:20 2001 Balachandran Natarajan + + * bin/nightlybuilds/builds.lst: Changed the name CC5 build as + CC51. It uses version 5.1 of the compiler anyway. + +Tue Nov 6 14:39:28 2001 Douglas C. Schmidt + + * ace/SString.i (find), + * ace/Local_Name_Space_T.cpp (resolve_i): Fixed "off-by-one" + bugs with ACE_OS::strscpy(). Thanks to Alain Decamps + for contributing this. + +Tue Nov 6 13:25:40 2001 Chris Cleeland + + * tests/Collection_Test.cpp: Committed an old change that uses an + actual class as the element in the Unbounded_Set rather than an + int. I wrote this to get a better understanding of how the + iterator and accessors on the iterator worked. + + * tests/SString_Test.cpp (main): Added a test for the rep() method + that insures that the char array returned is equivalent to the + string in the ACE_CString from which it's obtained. + +Mon Nov 5 10:12:01 2001 Douglas C. Schmidt + + * ace/OS.cpp, + * ace/Local_Name_Space_T.cpp, + * ace/FILE_Addr.cpp, + * ace/Acceptor.cpp, + * ace/ACE.cpp: Changed uses of strncpy() to ACE_OS::strsncpy(). + Thanks to Alain Decamps for these fixes. + +Sun Nov 4 12:11:31 2001 Douglas C. Schmidt + + * ace/Reactor.cpp: Enhanced all the Reactor's event loop methods + to first check and see if the Reactor's been deactivated and to + bailout immediately in this case. Thanks to Don Hinton for + suggesting this. + + * ace/Reactor.i: Moved the reactor_event_loop_done() method from + the *.cpp file into the *.i file and made inlineable. + + * ace/Select_Reactor_T.cpp: Be more careful about error handling in the + dispatch_notification_handlers() method. If a failure occurs, + when dispatch_notifications() is called, return -1, rather than + erroneously "incrementing" the count of the number of handlers + dispatched. Thanks to Don Hinton for reporting this. + +Sat Nov 3 11:15:43 2001 Douglas C. Schmidt + + * The following fixes are from Joachim Achtzehnter : + + In ace/config-pharlap.h we had to explicitly #undef + ACE_HAS_WCHAR after the #include "ace/config-win32.h" + directive. Without this change the resulting DLL depended on + several wide character versions of Win32 system functions, such + as _CreateMutexW. At least some of these dependencies were + caused by ace/OS.i. + + In ace/Log_Msg.cpp we had to add !defined(ACE_HAS_PHARLAP) to a + few more places in addition to the ones Bruce Trask had posted + to avoid reference to the NT Eventlog functionality. + + At the top of ace/Log_Msg_NT_Event_Log.h and + ace/Log_Msg_NT_Event_Log.cpp we added !defined(ACE_HAS_PHARLAP) + to completely bypass the contents of these two files. + + * ace/DEV_Addr.i (addr_to_string): + * ace/Local_Tokens.i (name): + * ace/Module.i (name): + * ace/OS.i (asctime_r): + * ace/SPIPE_Addr.i (addr_to_string): + * ace/UNIX_Addr.i (addr_to_string): + * ace/SString.i (rep): Changed uses of strncpy() to ACE_OS::strsncpy(). + Thanks to Alain Decamps for these fixes. + +Fri Nov 2 14:38:49 2001 Douglas C. Schmidt + + * ace/Task.h (ACE_Task_Base): Clarify the meaning of the put() + hook method. Thanks to Tommy Svensson + for motivating this. + +Mon Nov 5 14:23:12 2001 Chad Elliott + + * ace/ACE.cpp: + + Remove a build warning for gcc 2.95.3 on SunOS 5.6. + +Mon Nov 5 14:21:30 2001 Chad Elliott + + * bin/nightlybuilds/builds.lst: + + Added the HP-UX nightly build back to the list. + +Mon Nov 5 13:31:15 2001 Chad Elliott + + * ace/ACE.cpp: + + Fix a build warning for 64-bit HP-UX. + + * ace/Active_Map_Manager_T.i: + + Cast the free list id to ACE_UINT32 to match up with the + slot_index () type. On 64-bit HP-UX, the free list id type + (size_t) is a 64 bit number and must be cast down to 32 bits. + Otherwise, the slot_index is cast up to 64 bits and does not give + the correct results. + + * include/makeinclude/platform_hpux_aCC.GNU: + + Add a -L./ to allow the 64-bit HP-UX builds to link properly. + +Mon Nov 5 11:17:20 2001 Carlos O'Ryan + + * bin/auto_compile: + Add support for the new status.txt file in the scoreboard. + +Mon Nov 5 13:02:50 2001 Chad Elliott + + * ace/config-hpux-11.00.h: + + Added #define of ACE_HAS_CHARPTR_DL. This corresponds with the + declaration of dlopen(char*,unsigned int). + + * ace/OS.cpp: + + Changed the default thread scope to system (similar to Linux). + Process thread scope is not supported in HP-UX. + +Sun Nov 04 11:18:31 2001 Nanbor Wang + + * ace/OS.cpp (fopen): Changed to forward call to fopen instead of + _fopen on non-borland compilers when not using UNICODE. This + change allows the code to compile on Win98. Thanks to Jstwo + for submitting the fix. + +Thu Nov 1 16:21:51 2001 Chris Cleeland + + * bin/auto_run_tests.pl: Added snippet of code that puts the + current directory ('.') in the PATH environment variable since + auto_run_tests.pl depends on the current directory being there. + +Thu Nov 1 15:49:04 Balachandran Natarajan + + * include/makeinclude/platform_osf1_4.x_cxx.GNU: Moved the + CXX_VERSION definition to the global scope. + + * include/makeinclude/platform_tru64_cxx.GNU: Added + -D_PTHREAD_ENV_DECCXX flag to the CPPFLAGS. This is done only + for v5.1, 1885. The pthreads.h in 1885 is messed up. The + conditional include of c_asm.h is busted for DECCXX and + v1885. Hence the change. We need to do this to protect ACE and + TAO applications on this platform and compiler + combinations. Thanks to Don Hinton for + reporting the problem. + +Thu Nov 1 14:25:52 2001 Jeff Parsons + + * ace/config-win32-borland.h: + + Added fix sent in by Chris Kohlhoff + to ACE_CC_PREPROCESSOR_ARGS to enable the recognition of a + filename to which the preprocessor output is to be directed. + There is also a corresponding fix in TAO_IDL/driver/drv_preproc.cpp + that carries out the redirection. + +Thu Nov 1 10:27:21 2001 Ossama Othman + + * ace/Select_Reactor_Base.h (open): + * ace/Select_Reactor_T.h (ACE_Select_Reactor_T, open): + + Added a note about the "size" of the Select_Reactor on Unix + platforms. On Unix platforms, the size parameter should be as + large as the maximum number of file descriptors allowed for a + given process. This is necessary since a file descriptor is + used to directly index the array of event handlers maintained by + the Reactor's handler repository. Direct indexing is used for + efficiency reasons. + +Thu Nov 1 06:38:30 2001 Douglas C. Schmidt + + * ace/ACE.cpp: Fixed some minor formatting problems so that + format_hexdump() works properly. Thanks to Kyle Brost + for reporting this. + + * ace/config-win32.h: Include the config-cygwin32.h file when + __CYGWIN32__ is enabled. Thanks to Johnny Willemsen for + reporting this. + + * ace/Synch.i (remove): Added some casts to make certain compilers + happy? Thanks to Guillaume Renaud + for reporting this. + + * ace/OS.i: Updated the Win32 version of ACE_OS::llseek(). Thanks to + Doron Rajwan for reporting this. + +Wed Oct 31 11:25:40 2001 Douglas C. Schmidt + + * ace/OS.h: The ACE_OS::llseek() method must be static! Thanks to + Doron Rajwan for reporting this. + +Tue Oct 30 08:30:16 2001 Douglas C. Schmidt + + * ace/RB_Tree.cpp (operator=): Make sure to check for self-assignment + in the operator=. Thanks to Johnny Willemsen for reporting + this. + +Mon Oct 29 05:23:56 2001 Douglas C. Schmidt + + * ace/Naming_Context.{h,cpp}: Moved ACE_STATIC_SVC_REQUIRE from the + .h file to the .cpp file to avoid multiple definitions. Thanks to + Boris Kaminer for reporting this. + +Sun Oct 28 10:05:32 2001 Douglas C. Schmidt + + * ace/config-macosx.h: + * include/makeincludes/platform_macosx.GNU + Added new fixes to get this to work on MacOS X. Thanks to John + Michael Zorko and Fikri Pribadi + for contributing this. + +Wed Oct 24 23:59:13 2001 Douglas C. Schmidt + + * ace/Configuration_Import_Export.cpp: Fixed a bug where a + check of a pointer was made rather than the character pointed to + by the pointer. Thanks to Juan Jose Comellas + for reporting this. + +Wed Oct 31 16:45:07 2001 Ossama Othman + + * ace/OS.h (llseek): + + Made ACE_OS::llseek() a static method, as it was originally + intended to be. Thanks to Doron Rajwan for + pointing out the problem. + +Tue Oct 30 22:53:57 2001 Ossama Othman + + * ace/Svc_Conf_l.cpp: + + Fixed incorrect #line preprocessor directives. + + * etc/Svc_Conf_l.cpp.diff: + + Regenerated this diff so that it includes recent updates. + +Mon Oct 29 20:12:40 2001 Ossama Othman + + * tests/run_test.lst: + + Added the Proactor test to the list of one-button tests to run. + +Mon Oct 29 20:04:40 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + More patches from Alexander Libman. The Proactor_Test appears + to finally work on Linux. + +Mon Oct 29 17:49:21 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Added some error checks at places where + token where acquired. + +Mon Oct 29 16:59:58 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp (acquire_token): The acquire_token () called + acquire with a sleep hook. It was wrong. It should just unblock + the thread by sending notify. A bad cut and paste error + :(. Thanks to Graeme Clark for reporting + this. This closes [BUGID 1077]. + +Sun Oct 28 20:36:56 2001 Ossama Othman + + * ace/Map_T.i (clone): + + Fixed syntax errors. + + * ace/Svc_Handler.cpp (new): + + Reverted Michael's change. It incorrectly altered the semantics + of the new operator, particularly when compiling with native + exception support enabled. Fixes a warning. + +Sun Oct 28 16:44:20 2001 Ossama Othman + + * ace/Timer_Hash_T.cpp (ACE_Timer_Hash_T): + + Corrected syntax error that was introduced in the changes + described below by removing extraneous trailing bracket. + +Sun Oct 28 13:15:00 2001 Michael Kircher + + * ace/ACE.i: + * ace/Activation_Queue.cpp: + * ace/Bound_Ptr.i: + * ace/Configuration.cpp: + * ace/Configuration_Import_Export.cpp: + * ace/Containers_T.cpp: + * ace/Future.cpp: + * ace/Handle_Gobbler.h: + * ace/Local_Tokens.i: + * ace/MEM_SAP.i: + * ace/Map_T.i: + * ace/Message_Block.cpp: + * ace/OS_Errno.cpp: + * ace/Object_Manager.cpp: + * ace/Obstack_T.cpp: + * ace/Refcounted_Auto_Ptr.i: + * ace/Remote_Tokens.i: + * ace/Strategies_T.cpp: + * ace/Stream.cpp: + * ace/Svc_Handler.cpp: + * ace/Synch_T.cpp: + * ace/TLI.cpp: + * ace/Timer_Hash_T.cpp: + * ace/Timer_Queue_T.cpp: + * ace/Unbounded_Queue.cpp: + * ace/Unbounded_Set.cpp: + + Changed almost all direct usages of operator new in ACE to use + ACE_NEW_RETURN (Exceptions is Dump_T.h). In one case in + Stream.cpp the semantics changed slightly if operator new would + have been overloaded, see the "@@ Michael" comment. + + When new got used with placement most of the usages got + replaced with ACE_NEW_MALLOC_RETURN. In some cases as in + Malloc_T.cpp, Map_Manager.cpp, PI_Malloc.i, Array_Base.cpp + special cases exist, where the macros would have incurred + different semantics and performance penalties. + +Fri Oct 26 07:37:43 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Quoter example will not run in + minimum_corba builds. + +Wed Oct 24 08:04:36 2001 Balachandran Natarajan + + * ace/Reactor.h: Improved the documentation of the + end_reactor_event_loop (). + +Tue Oct 23 10:04:25 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Replaced uses of a static global lock with the + ACE_Static_Object_Lock singleton. + + Fixed incorrect uses of the "%l" format specifier. "%d" is the + expected format specifier. + + (Acceptor): + + Initialize the "sessions_" member in the base member initializer + list. Corrects a problem where the session number initially + contained a "garbage" value. + +Mon Oct 22 17:55:00 2001 Craig Rodrigues + + * ace/Svc_Conf_l.cpp: Remove include of stdlib.h, fix g++/Solaris + build. + +Mon Oct 22 15:54:29 2001 Steve Huston + + * ace/config-hpux-10.x-hpc++.h: Remove hard-coded setting of + ACE_HAS_EXCEPTIONS. It is controlled by platform_hpux_aCC.GNU. + +Mon Oct 22 15:50:35 2001 Balachandran Natarajan + + * THANKS: Added Chris Hughes name to the Hall of Fame + +Sun Oct 21 16:44:41 2001 Ossama Othman + + * tests/Proactor_Test.cpp (disable_signal): + + Fixed warnings regarding a method that "hid" virtual function + with the same name, in addition to unused argument warnings. + +Sun Oct 21 15:22:57 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Fixed warning about deprecated conversion of "const char *" to + "char *" exhibited by GCC 3.0.x builds. + +Sun Oct 21 12:50:39 2001 Douglas C. Schmidt + + * ace/LSOCK.cpp: The ACE_LSOCK::recv_handle() was returning success + without setting the I/O handle. Thanks to Rick Ohnemus + for reporting this. + + * ace/config-freebsd-pthread.h: Changed + #if (__FreeBSD_version > 430000) to + #if (__FreeBSD_version > 440000) to get ACE to work with FreeBSD 4.4. + Thanks to Gu Song for reporting this. + +Fri Oct 19 06:44:17 2001 Douglas C. Schmidt + + * examples/Reactor/WFMO_Reactor/test_window_messages.cpp: + Don't use a global Event_Handler object since this violates the + design rules for the ACE_Reactor. + +Sun Oct 21 13:39:27 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the Quoter example in + $TAO_ROOT/examples to the list of tests in the daily builds. + +Thu Oct 18 20:56:53 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Added no-op main() function for platforms that do not support + asynchronous IO. + +Thu Oct 18 22:46:09 2001 Balachandran Natarajan + + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: Fixed warnings in Sun CC and TRU 64 builds. + +Thu Oct 18 20:42:55 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + + Fixed Unicode build errors. + +Thu Oct 18 19:52:44 2001 Craig Rodrigues + + * ace/SString.h: clarify example in comments to ACE_Tokenize + so that constant strings are not passed in its constructor. + + * examples/OS/Process/process.cpp: do not pass constant strings + to ACE_Tokenize constructor. Thanks to + Werner Buchert and + Don Hinton . + +Wed Oct 17 23:56:45 2001 Ossama Othman + + * tests/Proactor_Test.cpp: + * tests/Proactor_Test.dsp: + + Proactor test contributed by Alexander Libman + . + + * tests/tests.dsw: + + Added Proactor_Test project to the tests workspace. + +Wed Oct 17 18:59:53 2001 Christopher Kohlhoff + + * include/makeinclude/install.bor: + Borland makefile fix to ensure that, when doing the install + target, core executables are built correctly if they don't + already exist. + +Wed Oct 17 09:15:10 2001 Douglas C. Schmidt + + * ace/config-linux-common.h: Clarified that this file should + not be included directly! Thanks to Suresh N + for reporting this. + +Wed Oct 17 16:00:19 2001 Balachandran Natarajan + + * THANKS: Added Graeme Clark to the Hall of Fame. + +Wed Oct 17 15:49:20 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: + * ace/TP_Reactor.h: Added remove_handler () calls to the + TP_Reactor. Before this, the call on the reactor used to be + handled by the Select_Reactor's implementation. The + implementation has a problem. It tries to call handle_close () + (an upcall) as one of the calls after holding the token. This + was asking for trouble. This could lead to deadlocks as + mentioned in [BUG ID 1055]. + + The method in the TP_Reactor now calls remove_handler () on the + Select_Reactor (its base class) with a DONT_CALL flag. Then it + calls handle_close () on the Event_Handler if the user did not + pass in the DONT_CALL mask. This two step process would get + around the problem that was mentioned before. Thanks to Graeme + Clark for reporting the problem and + testing this fix. + + This should close [BUG ID 1055]. + +Wed Oct 17 10:40:17 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + + If errno is set to EWOULDBLOCK for the SSL_ERROR_SYSCALL case, + then continue the connection establishment loop. Do not return + right away. Fixes non-blocking connection establishment on AIX. + Thanks to Vladimir Chovanec for + providing this fix. + + * ace/SSL/SSL_SOCK_Stream.h (notify): + + Made this method protected. It isn't intended to be used + internally by the ACE_SSL_SOCK_Stream class. + +Wed Oct 17 12:15:15 2001 Chris Cleeland + + * ace/Select_Reactor_T.cpp (handle_error, check_handles): Add + vxworks to the ever-growing list of OSs which return + unpredictable values in errno when there's a bad file descriptor + in a select mask. [Bug 1058]. + + Thanks to Dave Arndt , Tad Hetke + , and Erik Johannes + for tracking down and providing this fix. + +Tue Oct 16 23:08:27 2001 Ossama Othman + + * ace/Svc_Conf.h (ACE_Svc_Conf_Param): + + Added a new ACE_Obstack attribute that is passed down to the + parser and scanner. This obviates the need for the global + pointer to the ACE_Obstack that was formally used, which in turn + avoids a race condition. + + (ace_obstack): + + No longer a need to maintain a global pointer to the ACE_Obstack + instance used during parsing/scanning. + + * ace/Svc_Conf.y: + * ace/Svc_Conf.l: + + Retrieve the Obstack from the parameter passed down to yyparse() + and yylex() instead of using the (now non-existent) global + instance. This is part of a race condition fix. + + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_l.cpp: + + Updated to pull in the changes made to the source files from + which these files were generated. + + * ace/Service_Config.cpp (process_directives_i): + + The global ACE_Obstack pointer used during each Service + Configurator parse has been removed. An ACE_Obstack instance is + now passed down to the parser and scanner in a + reentrant/thread-safe manner via the new ACE_Svc_Conf_Param + parameter. As such, there is no longer any need to maintain a + global pointer to the ACE_Obstack instance in use, nor is it + necessary to store/restore the previous value when performing + nested or parallel Service Configurator directive processing. + This fixes a race condition that was causing some memory + corruption when parsing Service Configurator directives in + parallel. + + Note that the ACE_Obstack is now instantiated on the stack + rather than the heap, thus improving Service Configurator + directive processing performance. + +Mon Oct 15 23:16:55 2001 Ossama Othman + + * ace/Service_Config.h (process_directives_i): + + Updated the signature of this method to accept a parameter that + will eventually passed to the parser and the scanner. + + * ace/Service_Config.cpp: + + No need to include "ace/Svc_Conf_Lexer_Guard.h" and + "ace/Object_Manager.h". + + (process_directives_i): + + Updated the signature of this method to accept a parameter that + will eventually passed to the parser and the scanner. + + Pass the "ACE_Svc_Conf_Param" parameter to the yyparse() call. + This is reentrant/thread-safe. + + Check the error count found in the "ACE_Svc_Conf_Param" object. + It's count is incremented in a thread-safe/reentrant manner. + + (process_directive, process_directives): + + The ACE_Svc_Conf_Lexer_Guard and its accompanying + synchronization has been moved to the generated scanner code. + This makes locking finer grained. Specifically, instead of + holding a lock for the duration of the scope within which + service configurator directive parsing and scanning is + performed (e.g. for the duration of the yyparse() call), the + lock is only held for the duration of the scope where service + configurator directive scanning occurs (i.e. the entire yylex() + call is synchronized). This is part of the core fix that + corrects a deadlock that occurred when activating an ACE_Task, + in conjunction with the singleton instance of the + ACE_Thread_Manager, during Service Object initialization. + [Bug 1036] + + * ace/Service_Config.i: + + Cosmetic update. + + * ace/Svc_Conf.h: + + Added declaration and method definitions for the + ACE_Svc_Conf_Param class. Instances of this class contain the + state used when parsing/scanning a given service configurator + file or service configurator directive. + + (ACE_SERVICE_DIRECTIVE_STACK_DEPTH): + + There is no longer any hard-coded limit on the maximum depth + nested service configurator directives may be processed. Only + process resource limits limit the maximum nesting depth. + + (ace_yyparse, ace_yylex): + + Updated the parser and lexer entry points to accept an + additional parameter, i.e. a pointer to an ACE_Svc_Conf_Param + object. + + (ace_yy_push_buffer, ace_yy_pop_buffer): + + Pass a pointer to the buffer that will be "switched" in our out + when processing nested service configurator directives those + that are processed in parallel. + + * ace/Svc_Conf.l: + + Removed array that implemented the service configurator + directive stack. The "stack" is now implemented using the + function call stack itself. Hence there is no hard-coded limit + to the stack size. + + Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE, + COLON, STAR}. Just return their corresponding symbolic integer + constants (e.g. ACE_COLON --> ':'). + + Increment error and line count in the ACE_Svc_Conf_Param object + passed to the yylex() function from yyparse(). This improves + reentrance/thread-safety when tracking error counts. + + (yy_push_buffer, yy_pop_buffer): + + Pass a pointer to the buffer that will be "switched" in our out + when processing nested service configurator directives those + that are processed in parallel. + + * ace/Svc_Conf.y: + + Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE, + COLON, STAR}. Just use their corresponding symbolic integer + constants (e.g. ACE_COLON --> ':'). + + Increment error and line count in the ACE_Svc_Conf_Param object + passed to the yylex() function from yyparse(). This improves + reentrance/thread-safety when tracking error counts. + + * ace/Svc_Conf_Lexer_Guard.h: + + Store a pointer the lexer buffer currently being scanned. + + * ace/Svc_Conf_Lexer_Guard.cpp: + + Updated constructor to accept a pointer to an ACE_Svc_Conf_Param + object. If the buffer in that object is zero, it will be + initialized. + + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_Tokens.h: + + Regenerated these files in order to pull in the updates made to + their corresponding source files (i.e. Svc_Conf.{l,y}). + +Mon Oct 15 11:26:39 2001 Steve Huston + + * examples/C++NPv2: New directory for examples in "C++ Network + Programming, Volume 2: Systematic Reuse with ACE and Frameworks" + Moved these changes to the new directory, and reverted the + C++NPv1 files to their ACE 5.2 state: + Sun Oct 14 17:05:14 2001 Douglas C. Schmidt + Tue Oct 9 07:46:20 2001 Douglas C. Schmidt + +Sun Oct 14 17:05:14 2001 Douglas C. Schmidt + + * examples/C++NPv1/Logging_Handler.{h,cpp}: Changed log_file_ from + a reference to a pointer so that it can be initialized + correctly. Thanks to Kitty for reporting this. + +Fri Oct 12 14:54:58 2001 Craig Rodrigues + + * ace/OS.i: + Remove extraneous check for macro ACE_HAS_WINSOCK2_GQOS, + which was breaking various builds under Windows. + Thanks to Jeff McNiel for pointing it out. + +Fri Oct 12 12:15:22 2001 Carlos O'Ryan + + * bin/nightlybuilds/builds.lst: + The QNX machine is no longer running that OS, plus attempts to + bring it back to life failed. The build is removed until + further notice. + +Thu Oct 11 17:52:32 2001 Priyanka Gontla + + * ace/SOCK_Dgram_Mcast.cpp: + Somehow the file didnt get committed yesterday. So, committing + the following change now. + + Wed Oct 10 16:56:18 2001 Priyanka Gontla + +Thu Oct 11 10:57:58 2001 Carlos O'Ryan + + * ace/RB_Tree.h: + * ace/RB_Tree.i: + * ace/RB_Tree.cpp: + Reverted to the 5.2 release state. The proposed changes were + breaking some builds, and they were not bug fixes in any case. + +Wed Oct 10 16:56:18 2001 Priyanka Gontla + + * ace/SOCK_Dgram_Mcast.cpp: + Reverted the following change as it ended up with some problems + for multicast services. + + Fri Oct 5 14:40:03 2001 Balachandran Natarajan + +Wed Oct 10 06:16:52 2001 Douglas C. Schmidt + + * ace/Activation_Queue.{h,cpp}: Added support for two ACE_Allocator that + will control how the message blocks and data blocks are + allocated. Thanks to Gil Rapaport + for contributing this. + + * examples/Reactor/WFMO_Reactor/test_apc.cpp (main): + * examples/Reactor/WFMO_Reactor/test_abandoned.cpp (main): Don't + use a global Event_Handler since this violates the design rules + for the ACE_Reactor. Thanks to Heping He + and Hartmut Quast + for reporting this and to Irfan for + suggesting where the problem arose. + +Tue Oct 9 07:46:20 2001 Douglas C. Schmidt + + * examples/C++NPv1/Logging_Handler.h: Added a new constructor to + class Logging_Handler that just takes an ACE_SOCK_Stream. We + need to use this in C++NPv2. + + * ace/Message_Queue_T.cpp (wait_not_full_cond): Thanks to Leo Kov + for reporting this. + + * ace/TTY_IO.cpp (control): Inserted some useful + ACE_OS::set_errno_to_last_error() calls. Also, for Win32 made + readtimeoutmsec == 0 cause no timeout, whereas readtimeoutmsec + == MAXDWORD causes infinite timeout. Thanks to Lars Steubesand + for reporting this. + +Mon Oct 8 20:19:44 2001 Nanbor Wang + + * examples/DLL/test_dll.cpp: There's no need to specify + ACE_DLL_SUFFIX as it prevent ACE_Lib_Find to figure out the + correct DLL name. + + The ACE_ERROR_RETURN macro store and reset the errno so there's + no need to use dll.error() with it. Changed to use "%p" to + display the error. + + Thanks to Heping He for reporting + the problem. + +Mon Oct 8 11:15:21 2001 Angelo Corsaro + + * ace/RB_Tree.h (class ACE_RB_Tree_Node): + * ace/RB_Tree.i: + + Changed access privilege on the operator new/delete to be + public, and added assertion in those method implementation to + make sure that wrong use of these method are promptly notified. + This changes should fix the problem that some compiling were + still having with RB_Trees. + +Sat Oct 06 23:06:41 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i, close): + + Removed the do/while(SSL_pending()) loop. Its introduction into + the code was a bit misguided. There is no need to flush the SSL + buffer before returning to the Reactor's event loop since the + code now sends a notification to the Reactor to force the + Reactor to invoke the event handler before waiting in the event + loop. This fixes some SSL protocol errors that manifested + during multithreaded SSL communication. [Bug 943] + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + It is no longer necessary to call SSL_accept()/connect() to + flush the SSL buffer before running the Reactor's event loop + since the Reactor is notified that it should call the + appropriate event handler before blocking on select() for + WaitForMultipleObjects(), for example. + + * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler): + + New methods to set the Reactor and event handler associated with + the ACE_SSL_SOCK_Stream. If each of these is set, then the + Reactor will be notified if data is still pending in the SSL + buffer. + + (~ACE_SSL_SOCK_Stream): + + Uninlined the destructor. There is no need for it to be + inlined, and doing so only caused unnecessary code bloat. + + * ace/SSL/SSL_SOCK_Stream.h (notify, reactor, handler): + + Added these new method declarations, in addition to the + corresponding attributes. + + Updated documentation. + + * ace/SSL/SSL_SOCK_Stream.i (notify): + + Method that pushes the event handler on to the Reactor's + notification pipe when necessary. Invoked by recv_i() and + send_i(). + + * ace/SSL/SSL_SOCK_Acceptor.h: + * ace/SSL/SSL_SOCK_Connector.h: + * ace/SSL/SSL_Accept_Handler.h: + * ace/SSL/SSL_Connect_Handler.h: + + Updated documentation. + +Sat Oct 6 16:04:29 2001 Angelo Corsaro + + * ace/RB_Tree.h: + * ace/RB_Tree.i: + + The operator new and delete were declared to be No-Op but were + not implemented as such. This was breaking some builds. Now the + operator are declared as private and they also have a no-op + implementation. This should solve some linking error that were + occurring. + +Sat Oct 6 11:17:22 2001 Balachandran Natarajan + + * THANKS: Added Adrian Mercieca to the hallf of fame. + +Fri Oct 05 18:30:59 2001 Irfan Pyarali + + * ace/RW_Process_Mutex.cpp: Added inclusion ACE.h and fixed member + initialization. + +Fri Oct 5 18:16:53 2001 Balachandran Natarajan + + * ace/SString.h: + * ace/SString.cpp: Changes the usage of ostream to + ACE_OSTREAM_TYPE. Thanks to Russ Noseworthy for letting us + know. + +Thu Oct 4 07:10:01 2001 Douglas C. Schmidt + + * ace/RB_Tree.*: Added support for using the "ACE_Allocator" parameters + to manage memory. Thanks to Airat A. Sadreev + for reporting contributing this. + +Wed Oct 3 07:20:06 2001 Douglas C. Schmidt + + * ace/RW_Process_Mutex.{h,cpp}: Added the ability to create a + unique name if the user doesn't supply one. Thanks to Tom + Wagner for suggesting this. + + * ace/Synch.h: Clarified that the timed wait capabilities of + ACE_Semaphore only work on Solaris if ACE_HAS_PTHREAD is enabled + *and* ACE_HAS_POSIX_SEM/ACE_HAS_STHREAD are disabled. Thanks to + Bonifides Bautista for reporting this. + +Fri Oct 5 12:48:48 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (close): + + Reset the SSL object to allow another connection to be made + using the existing ACE_SSL_SOCK_Stream instance. This prevents + the previous SSL session state from being associated with the + new SSL session/connection. Thanks to Vladimir Chovanec + for pointing out this problem and + suggesting a course of action. + +Fri Oct 5 14:40:03 2001 Balachandran Natarajan + + * ace/SOCK_Dgram_Mcast.cpp (open): Removed the #if defined (linux) + from the code. Looks like this had to be removed to get it + working for RTI under Linux. The other ChangeLog entries that + this change is concerned with are "Sat Feb 17 17:23:46 2001 + Darrell Brunsch " and "Fri Jan 26 11:18:15 2001 + Douglas C. Schmidt". Looks like the patch provided by Keith + Nicewarner is being reverted. I remember + a communication from Keith which seemed to hint that this may + not be required. + + Thanks to Russ Noseworthy for suggesting this. + +Fri Oct 5 14:04:39 2001 Balachandran Natarajan + + * THANKS: Added Hagen Ulrich to the Hall of Fame. + +Fri Oct 5 13:55:02 2001 Balachandran Natarajan + + * ace/Makefile: Removed the SUPPRESS_DASH_G option. Not really + sure where it is used. Further, added a tab to the place where + rules for CHORUS are set. This should fix BUGID 1049. Thanks to + Hagen Ulrich and Dr.David Levine for + reporting and verifying the fix. + +Fri Oct 05 05:56:50 2001 Balachandran + + * ACE version 5.2 released. + +Thu Oct 4 17:38:21 2001 Steve Huston + + * ace/Synch.h: Added some comments to explain the rationale for + the different return values from the blocking and timed + versions of ACE_Null_Semaphore::acquire(). Thanks to Doug + Schmidt for explaining this. + +Thu Oct 4 17:27:39 2001 Steve Huston + + * examples/C++NPv1/Logging_Handler.cpp (recv_log_record): Insure that + the payload message block is properly aligned for any CDR + extraction. Many thanks to Bala for noticing this problem and + sending code for the fix. + +Thu Oct 4 17:08:39 2001 Steve Huston + + * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: + In prepare(), call ACE_Process_Options::command_line() rather + than ACE_Process_Options::process_name() to set the program + path for the child process. + +Thu Oct 4 13:18:37 2001 Steve Huston + + * examples/C++NPv1/Logging_Handler.cpp: Use a ACE_Message_Block, + rather than hijacking a CDR block, to read the payload into. + +Thu Oct 4 10:14:34 2001 Balachandran Natarajan + + * THANKS: Added Donald Acton to the Hall of Fame. + +Thu Oct 4 06:39:20 2001 Balachandran Natarajan + + * ace/config-sunos5.5.h: Added ACE_LACKS_MKSTEMP as SunOS 5.5 does + not support mkstemp (). + + * ace/config-sunos5.6.h: Undefined ACE_LACKS_MKSTEMP as Sun 5.6 + and above support it. + + Thanks to Don Hinton for reporting this + problem and Chad Elliott for testing this out on a Sun OS 5.5 + box. + +Wed Oct 3 16:37:41 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp (read_1): Reverted this change "Wed Oct 3 + 15:05:43 2001 Jeff Parsons ". This + change is alone not enough to fix the problem that Brad + reported. The sample program for the text needs to be fixed to + get it working right. + +Wed Oct 3 15:05:43 2001 Jeff Parsons + + * ace/CDR_Stream.cpp (read_1); + + Reverted changed made in + + Fri Aug 17 16:56:16 2001 Jeff Parsons + + to read_1(). A similar change made in several other methods is + ok, but in this case bytes can be copied into the input CDR + stream without changing wr_ptr, so the check will fail + unnecessarily. Thanks to Brad Hoskins + for pointing this out. + +Wed Oct 2 12:18:37 2001 Steve Huston + + * examples/C++NPv1/Logging_Server.cpp: Fixed spelling error. + * examples/C++NPv1/Logging_Handler.cpp: Comment length adjustment. + +Tue Oct 2 21:52:31 2001 Steve Huston + + * examples/C++NPv1/Logging_Client.cpp: Reverted this: + Mon Oct 1 18:27:41 2001 Steve Huston + +Tue Oct 2 19:52:57 2001 Balachandran Natarajan + + * Makefile: Removed some of the files that no longer exist in the + repository. The inclusion of these files in the Makefile added + noise during the beta cutting process. + +Tue Oct 02 15:34:49 2001 Carlos O'Ryan + + * etc/tao_cosevent.doxygen: + * etc/tao_cosnotification.doxygen: + Fixed typos in the tag file names. + +Tue Oct 2 15:52:27 2001 Balachandran Natarajan + + * THANKS: Added Sunny Leung to the Hall of Fame. + +Tue Oct 2 15:33:36 2001 Balachandran Natarajan + + * THANKS: Removed one instance of Peter Phillips + from the Hall of Fame. + +Tue Oct 2 15:00:37 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp (clone_from): Copied the GIOP major and minor + versions from the incoming CDR stream. Thanks to Sunny Leung + for reporting this. This closes bugzilla + #1043. + +Tue Oct 2 09:45:39 2001 Steve Huston + + * tests/libDLL_Test.icc: + * tests/libService_Config_DLL.icc: Add link(exportAll) to the link + options to export the entrypoints needed for the tests. + +Mon Oct 1 20:04:14 2001 Priyanka Gontla + + * THANKS: + Added Tushar Nair to the THANKS file. + +Mon Oct 1 18:06:48 2001 Priyanka Gontla + + * ace/Object_Manager.cpp (ACE_UnhandledExceptionFilter): + Removed the un-needed #if 0's. Left them before as a safety + measure (in case something doesnt work) and forgot to remove + them later. + + * ace/Log_Msg.cpp (instance): + Fixed the seg faults that are raised when ace is compiled with + ACE_NTRACE=0 on SunOS. Added a check before locking and + releasing a lock. + + Thanks to Tushar Nair for reporting the + problem and for providing a fix. + +Mon Oct 1 18:27:41 2001 Steve Huston + + * examples/C++NPv1/Logging_Client.cpp: Remove the third (optional) + arg from getline(). Using a char literal without further + qualification causes confusion in Unicode builds. + +Mon Oct 1 14:44:13 2001 Ossama Othman + + * ace/SSL/SSL_Context.cpp (ssl_library_init): + + Initialize the locking callbacks in the crypto library before + initializing the OpenSSL library. OpenSSL may require the + locking callbacks to be initialized before its own + initialization. + + * ace/SSL/SSL_Context.cpp (ssl_library_fini): + + Perform crypto library resource cleanup before reclaiming the + locks used by the locking callbacks. Crypto library resource + cleanup makes use of the locking callbacks. + +Mon Oct 1 15:19:11 2001 Douglas C. Schmidt + + * examples/C++NPv1/README: Added a section that illustrates the + mapping of chapters onto files in the directory. + +Mon Oct 1 12:58:57 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp (handle_socket_events): A fix for the problem + that started showing up this time is like this. One of the + threads was dispatching an upcall. In the intermediate time the + Reactor woke up another thread to close the handler, remember + that this is possible with the TP_Reactor if the application + resumes the handles (the way TAO does that). Now when the thread + that that dispatched the upcall returned it tries to invoke a + method on the already closed handle. To prevent that from + happening we make an extra check to see whether the handle + associated with the handler is still available in the internal + map of the Reactor. As this check is done in the return path of + the thread this should have less performance impact. This is + another reason why we should have #1031 in place ASAP. + +Mon Oct 1 12:23:57 2001 Balachandran Natarajan + + * bin/nightlybuilds/builds.lst (WEB): Changed the name of the + Sun's EGCS build. We have not been using EGCS but 2.95.x for a + long time now. + +Mon Oct 1 10:46:15 2001 Balachandran Natarajan + + * bin/PerlACE/Run_Test.pm (check_n_cleanup_files): Removed the + word "ERROR" when files are left behind. This was creating noise + in the daily builds. We have captured the problem in the + bugzilla with id #1014. After 1.2 goes out, if someone is + looking at this problem again we need to add this back so that + our daily builds can pick them up. + +Sun Sep 30 17:25:33 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): + + Reset errno to prevent previous values (e.g. EWOULDBLOCK) from + being associated with a fatal SSL error (e.g. an alert). + +Sun Sep 30 16:52:22 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_shutdown): + + Return the "retval" variable instead of always returning -1. + The actual return value may not always be -1. Thanks to Alain + Totouom for providing this fix. + + * THANKS: + + Added Alain to the list of contributors. + +Sun Sep 30 09:13:04 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + + Made reactor mask constant to emphasize the fact that it is + indeed a constant. + +Sat Sep 29 08:07:07 2001 Douglas C. Schmidt + + * ace/Configuration.{h,cpp}: Changed "allocator" to "alloc" to + avoid bugs with MSVC++ 5.0. Thanks to Munagala Ramanath + for reporting this. + + * ACE-INSTALL.html: Yet more improvements courtesy of Chris + Kohloff. + +Fri Sep 28 23:38:07 2001 Ossama Othman + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + + Cleaned up the code. + + Do not attempt to verify the X.509 certificate. Only the + application knows how best to do that. + + * ace/SSL/SSL_Context.cpp (ssl_library_init): + + Fixed some Unicode problems. Wrap strings within an ACE_TEXT + macro. + + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i: + + Corrected some comments. + + * ace/SSL/SSL_SOCK_Stream.h (send_n, recv_n): + + Added a "bytes transferred" pointer parameter. This allows the + amount of bytes transferred to returned via this parameter, thus + matching the semantics of their ACE_SOCK_Stream counterparts. + + * ace/SSL/SSL_SOCK_Stream.cpp (send): + + Do not block attempt a timed send() if data is available in + OpenSSL's internal buffer. This prevents a condition where + needlessly blocking on select() would occur. A similar fix for + recv() was made earlier. See Fri Aug 24 16:54:02 2001 Ossama + Othman for details. + + (send_n, recv_n): + + If the "bytes transferred" pointer parameter is non-zero then + return the amounts of bytes transferred through it. This makes + these methods better match the semantics of their + ACE_SOCK_Stream counterparts. + +Fri Sep 28 19:24:51 2001 Steve Huston + + * ace/config-hpux-11.00.h: Moved the definitions for ACE_HAS_WCHAR + and ACE_HAS_XPG4_MULTIBYTE_CHAR from the compiler-independent + section to the aC++ section. (at least) gcc 3.0 distributed from + HP can't handle compiling wide char stuff... it refers to + wctype.h, only available in aC++. + +Fri Sep 28 12:46:25 2001 Ossama Othman + + * ace/SSL/SSL_Context.cpp (report_error): + + Don't bother displaying an error message if the error code is + zero (i.e. no error). + +Fri Sep 28 12:31:39 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + Transfer ownership of the Reactor to the previous owner for the + SSL_ERROR_ZERO_RETURN case. Thanks to Vladimir Chovanec + for pointing out this problem. + + Remove the SSL event handler from the reactor for the + SSL_ERROR_ZERO_RETURN case. Previously, this method returned + without removing it, resulting in a seg fault. + + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + + Ported the updates made to the ssl_accept() counterpart to this + method. + + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + * ace/SSL/SSL_SOCK_Stream.i (send_i): + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): + + In the event a SSL_ERROR_SYSCALL error condition occurs, call + ACE_OS::set_errno_to_last_error() to make sure errno is updated + appropriately since OpenSSL does not do that. Fixes some + "misbehaving" Reactor interactions. Thanks to Andrew Finnell + for tracking down the problem + and suggesting these fixes. + +Fri Sep 28 09:37:28 2001 Ossama Othman + + * ace/SSL/SSL_Context.h (report_error): + * ace/SSL/SSL_Context.cpp (report_error): + + New SSL error reporting functions that use the ACE_Log_Msg + facilities to dump error information. + + * ace/SSL/SSL_Context.cpp (set_mode): + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): + * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): + * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): + + Use the new report_error() static method to display error + information instead of OpenSSL's ERR_print_error_fp(). + + * ace/SSL/SSL_SOCK_Connector.cpp: + + Include 'ace/Log_Msg.h' to pull ACE_ERROR macro definitions. + Fixes compile-time problems on Tru64. Thanks to Martin + Krumpolec for providing this fix. [Bug 1034] + + (ACE_SSL_SOCK_Connector): + + Wrap format specifier string in ACE_ERROR call with ACE_TEXT. + Fixes mismatched Unicode/non-unicode strings. + +Fri Sep 28 06:17:27 2001 Douglas C. Schmidt + + * ace/SPIPE_Acceptor.{h,cpp}: Fixed the use of "char" for + "already_connected_" to be "int". Thanks to Johnny Willemsen + for reporting this. + + * ACE-INSTALL.html: Improved the installation instructions for BCB 4/5. + Thanks to Chris Kohloff for contributing this and to + Jan Kalin for motivating this. + + * ace/TTY_IO.cpp: Fixed numerous bugs in the control() method. + Thanks to Airat A. Sadreev for reporting this. + + * ace/TTY_IO.h: Add a new field for Win32. Thanks to + Airat A. Sadreev for reporting this. + +Thu Sep 27 06:12:21 2001 Douglas C. Schmidt + + * ace/config-win32.h: Added a special-case for Borland C++ Builder, + which must include vcl.h before windows.h. Thanks to Chris + Kohloff for reporting this. This fixes Bug ID 899 for the time + being. + + * ace/Module.cpp (ACE_Module): The line + + this->name (""); + + was be replaced with + + this->name (ACE_TEXT("")); + + Thanks to Airat A. Sadreev for + reporting this. This fixes bug id 1041. + +Thu Sep 27 13:09:19 2001 Bala + + * ACE version 5.1.21 released. + +Tue Sep 25 16:12:14 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + Use ACE_OS::set_errno_to_last_error() set errno instead of doing + so manually to get around broken compilers that reset the last + error when assigning to errno. Thanks to Chris Kohloff for + pointing out the problem and suggesting this fix. + +Tue Sep 25 13:00:37 2001 Nanbor Wang + + * ace/Obstack.h: Fixed a typo when declaring ACE_Obstack + exportable. I mistakenly used the underlying + ACE_EXPORT_SINGLETON_DECLARATION macro directly. + ACE_SINGLETON_DECLARATION is the right macro to use here. + Thanks to Martin Krumpolec for reporting + the bug. + +Tue Sep 25 09:12:28 2001 Andrew Finnell + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + On MS Windows, OpenSSL does not store the last error in errno so + explicitly do so. This corrects problems where a server is + unaware that a client has forcefully disconnected. + +Tue Sep 25 00:01:59 2001 Irfan Pyarali + + * ace/Service_Repository.cpp (instance): There are three stages of + the Object Manager: (a) starting up; (b) running; (c) shutdown. + ACE_Service_Repository::instance() was not creating a new + instance in (a) and (c). It was changed to allow creation (a). + +Mon Sep 24 01:55:29 2001 Ossama Othman + + * bin/auto_run_tests.lst: + + Added TAO's PICurrent test to the list of automated regression + tests. + +Sun Sep 23 19:28:06 2001 Nanbor Wang + + * ace/Reactor.h (ACE_Reactor): Fixed comments for + and . Both + methods work on an instance of reactor, not the global singleton + reactor. Thanks to Doug for noticing this. + +Sun Sep 23 10:02:59 2001 Balachandran Natarajan + + * ace/High_Res_Timer.h: Removed a question mark "?", in a line + which read "or sometimes 3.579 Mhz??". This seems to remove the + warning in VXWORKS builds. I have no clue about the problem that + VXWORKS compiler sees. It took only more than an hour to figure + this out. :(. + +Sat Sep 22 08:59:24 2001 Douglas C. Schmidt + + * ace/Service_Manager.cpp (handle_input): Added some logic to + strip off newlines and carriage returns for Windows platforms. + Thanks to Kyle Brost for contributing + this. + +Sat Sep 22 12:28:21 2001 Ossama Othman + + * ace/SSL/ACE_SSL_LIB.dsp: + + Corrected code generation settings to use the multi-threaded DLL + version of the run-time library. Corrects "legacy" build + problems. + +Sat Sep 22 08:59:24 2001 Douglas C. Schmidt + + * ace/High_Res_Timer.{h,i,cpp}: Added comments to explain how + to configure the timers properly on various platforms. Thanks + to Alain Decamps for reporting this. + + * ace/OS.i (ACE_Flow_Spec): Added a check for ACE_HAS_WINSOCK2_GQOS + so that things will compile properly on MinGW32. Thanks to Jeff + McNiel for reporting this. + +Fri Sep 21 15:54:55 2001 Douglas C. Schmidt + + * ace/OS_Dirent.cpp: Fixed all the allocations so they work properly + when used with ACE_TCHAR! Thanks to Olof Lindfors + . + +Tue Sep 18 06:25:22 2001 Douglas C. Schmidt + + * ace/*Reactor*: Changed all uses of "delta_time" to "delay_time". + Thanks to Johnny Willemsen for reporting this. + +Sun Sep 16 11:53:38 2001 Douglas C. Schmidt + + * ace/Connector.cpp (handle_output): Fixed the comment to be + ACE_WIN32. Thanks to Kobi Cohen-Arazi for + reporting this. + +Fri Sep 21 17:11:52 2001 Balachandran Natarajan + + * ace/Message_Block.h: Tried rewording some comments in the + ACE_Message_Block. Thanks to Tom Wagner for + suggesting this. + + * THANKS: Added Tom Wagner to the Hall of + Fame. + +Fri Sep 21 22:11:53 2001 Ossama Othman + + * ace/SSL/ACE_SSL_LIB.dsp: + + Removed hardcoded user-specific include paths, and user-specific + preprocessor macro definitions. + +Thu Sep 20 18:15:49 2001 Steve Huston + + * tests/Config_Test.cpp: Added some more tests to verify correct + string value reset and enumerate values/sections. + +Thu Sep 20 12:29:09 2001 Ossama Othman + + * ace/SSL/ACE_SSL_LIB.dsp: + * ace/SSL/ACE_SSL_LIB.dsw: + + New static build MSVC++ project and workspace files for the + ACE_SSL library contributed by Jonathan Reis . + [Bug 1032] + +Thu Sep 20 12:16:13 2001 Ossama Othman + + * ace/SSL/SSL_SOCK.cpp (enable, disable): + + Removed unreachable "return" statements. [Bug 1033] + + * ace/SSL/SSL_SOCK_Stream.i (ACE_SSL_SOCK_Stream): + * ace/SSL/SSL_SOCK_Stream.cpp: + + Moved constructor to the ".cpp" file since to prevent inclusion + of `ace/Log_Msg.h' in `SSL_SOCK_Stream.h'. This fixes problems + with some platforms needing the Log_Msg include to pull in the + ACE_ERROR macros without needlessly increasing inter-header + dependencies and inclusions. [Bug 1034] + +Thu Sep 20 14:44:29 2001 Steve Huston + + * ace/Process.cpp (ACE_Process_Options): Moved avoid_zombies_ + initialization outside the !Win32 section. Thanks to Johnny + Willemsen for this fix. + +Thu Sep 20 06:28:50 2001 Chad Elliott + + * ace/config-hpux-11.00.h: + + Reverting the change from "Wed Aug 29 15:32:10 2001 Douglas C. + Schmidt ". HP-UX 11.00 does + not actually support pread/pwrite. + +Wed Sep 19 16:56:02 2001 Irfan Pyarali + + * ace/OS.h (THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM): Added + definitions for THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM on + platforms that do not support threads. + +Wed Sep 19 16:54:04 2001 Jeff Parsons + + * ace/Containers_T.cpp: + + In copy constructor for ACE_Double_Linked_List, added line to + copy the size of the rhs to the lhs. The new list was ending + up with a garbage value for its size. + +Wed Sep 19 14:15:08 2001 Nanbor Wang + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: Enabled generation of debug info even for + release configurations. Thanks to Jonathan Reis + for suggesting this. + +Wed Sep 19 10:23:06 2001 Carlos O'Ryan + + * html/index.html: + Add couple of missing links to the RT-CORBA components + +Wed Sep 19 12:00:04 2001 Johnny Willemsen + + * ACE-INSTALL.html: + Added BCB5 to some places as supported/used compiler + + * ace/Future.h: + * ace/Test_and_Set.h: + Removed the ACE_EXPORT from the templates ACE_Future_Holder and + ACE_Test_and_Set + + * ace/Service_Config.{h,cpp}: + Changed the type of the members be_a_daemon_ and no_static_svcs_ + from char to int + +Tue Sep 18 13:57:36 2001 Carlos O'Ryan + + * */Makefile: + * */Makefile.*: + Updated dependencies, some of the paths were absolute leading to + ambiguities in parallel builds. + +Tue Sep 18 12:18:26 2001 Carlos O'Ryan + + * bin/footprint_stats.sh: + Fixed bug in footprint charts generation. + +Tue Sep 18 10:50:15 2001 Carlos O'Ryan + + * html/index.html: + Add COS Event and COS Notification services to the index. + +Mon Sep 17 19:00:00 2001 Irfan Pyarali + + * ace/OS.h: + + - THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM were not defined + for NT. Added them. + + - Moved the following definitions of VxWorks around such + that these defines are available even when PACE is not + used. + + THR_INHERIT_SCHED + THR_EXPLICIT_SCHED + THR_SCHED_IO + THR_SCOPE_SYSTEM + THR_SCOPE_PROCESS + + * ace/OS.cpp: LinuxThreads do not have support for + PTHREAD_SCOPE_PROCESS; only PTHREAD_SCOPE_SYSTEM is supported. + Therefore, PTHREAD_SCOPE_PROCESS is ignored when setting the + thread scheduling scope. + + * ace/Sample_History.cpp: Added accessors for and + . + + * bin/auto_run_tests.lst: Added new RTCORBA tests. Removed + Minimum CORBA dependency on these tests. + +Mon Sep 17 13:49:07 2001 Carlos O'Ryan + + * etc/tao_cosevent.doxygen: + * etc/tao_cosnotification.doxygen: + Add new Doxygen files for the Notification and COS Event + Services + + * bin/generate_doxygen.pl: + Add new doxygen files to the automatically generated + documentation. + +Mon Sep 17 11:36:54 2001 Balachandran Natarajan + + * tests/run_tests.lst: This is the script used by the shell + script in that directory. As the name is confusing this is being + moved as a new file. + + * tests/run_tests_remote.lst: Renamed the run_tests.lst as + run_tests_shell.lst. This is invoked by run_tests.sh + + * tests/run_tests.sh: Renamed as a new file. + + * tests/run_tests_remote.sh: Renamed the file run_tests.sh as this + one. This script can be used to run tests remotely on a + CHORUS/ClassiX/MVME targets. Further this can also be used to + run tests on platforms that dont support perl or do not have + perl. + +Sun Sep 16 11:19:01 2001 Balachandran + + * ACE version 5.1.20 released. + +Sat Sep 15 16:58:08 2001 Balachandran Natarajan + + * tests/High_Res_Timer_Test.cpp: Fixed compile problem with Sun CC + 4.2. + +Fri Sep 14 05:28:13 2001 Douglas C. Schmidt + + * THANKS: We now have over 1,300 contributors to ACE+TAO! + + * ace/Basic_Types.{h,i}: Added "const" to various operators and + methods. Thanks to Alain Decamps for reporting this. + +Thu Sep 13 11:02:41 2001 Douglas C. Schmidt + + * ace/Singleton.cpp: If we're not compiling with threading enabled, + don't call the get_singleton_lock() code. Thanks to Charles + Frasch for contributing this. + +Tue Sep 11 06:23:08 2001 Douglas C. Schmidt + + * ace/Array_Base.h: Changed current_ from u_int to size_t. Thanks + to Johnny Willemsen for reporting this. + +Fri Sep 14 17:18:37 2001 Steve Huston + + * tests/High_Res_Timer_Test.cpp (check_micro_nano): If the + nanointerval is 0, change it to 1 to prevent divide-by-zero. + +Fri Sep 14 17:02:39 2001 Steve Huston + + * tests/High_Res_Timer_Test.cpp: Replaced some (u_int) casts with + ACE_U64_TO_U32, which is correct. Thanks to Alain Decamps, yet + again!, for this fix. + +Fri Sep 14 11:39:03 2001 Balachandran Natarajan + + * THANKS: Added Mahesh Varadarajan and Kevin Clien to the Hall of + Fame. + +Thu Sep 13 22:43:34 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the new Cache_Growth_Test to the + daily tests. + +Thu Sep 13 20:38:44 2001 Nanbor Wang + + * ace/Thread_Manager.h (ACE_Thread_Manager): Changed the default + argument for the constructor from 0 to + ACE_DEFAULT_THREAD_MANAGER_PREALLOC. Thanks to Doug for + pointing this out. + + Added better documentation to explain the purpose of each + argument in ACE_Thread_Manager's constructor. Thanks to Nick + Pratt for motivating the change. + +Thu Sep 13 13:38:41 2001 Steve Huston + + * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds), + elapsed_time_incr (ACE_hrtime_t&nanoseconds): Instead of using + "nanoseconds >>= 10", use "nanoseconds = nanoseconds >> 10" to + work around a Borland C++Builder bug. Thanks very much to + Johnny Willemsen, Christopher Kohlhoff, and Alain Decamps + for solving this problem. + +Thu Sep 13 13:33:29 2001 Steve Huston + + * tests/Service_Config_Test.cpp: Added #include "ace/Log_Msg.h". + This was probably to get AIX to build clean, but it's been a + while. + +Thu Sep 13 12:04:04 2001 Balachandran Natarajan + + * THANKS: Added Werner Buchert to the Hall of Fame. + +Wed Sep 12 15:10:41 2001 Steve Huston + + * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds), + elapsed_time_incr (ACE_hrtime_t&nanoseconds): Changes to account + for very fast clocks (> 1GHz). Thank you to Derek Dominish + and Alain Decamps + for identifying the problem and coming + up with a good solution. This fixes Bugzilla #1024 (how + appropriate! ;-) + + * ace/High_Res_Timer.i (elapsed_microseconds (ACE_hrtime_t &usecs): + More adjustment to the Win32 scale factor adjusting. Thanks (again!) + to Alain Decamps for identifying and + supplying a fix for this. This fixes Bugzilla #948 (again). + +Wed Sep 12 14:33:29 2001 Steve Huston + + * tests/High_Res_Timer_Test.cpp: Incorporated some additional tests + for usec/nsec sanity checks on the calculated ACE_High_Res_Timer + values. Thank you very much to Alain Decamps + for this test. + +Tue Sep 11 12:40:01 2001 Balachandran Natarajan + + * Terror unleashed. The World Trade Center and the Pentagon + attacked today. Looks like there could be lots of loss to + precious lives. This is too horrible. We convey our condolences + to the bereaved families. God save this world. + +Tue Sep 11 06:41:31 2001 Balachandran Natarajan + + * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: Fixed a + typo. This should fix most of the errors in the scoreboard. + +Mon Sep 10 18:59:24 2001 Douglas C. Schmidt + + * apps/Gateway/Peer/Peer.cpp (nonblk_put): + * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (nonblk_put): + Reverted Bala's changes below since the original code was + correct. Also, added comments to clarify things to prevent + confusion in the future. + +Mon Sep 10 17:31:11 2001 Balachandran Natarajan + + * ACE-INSTALL.html: Added a new platform to the list. + +Mon Sep 10 12:54:28 2001 Balachandran Natarajan + + * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: + Changed the condition that checks for EWOULDBLOCK after a + send. It was erroneously written. Thanks to Nick Pratt + for pointing this out. + +Mon Sep 10 12:36:07 2001 Balachandran Natarajan + + * apps/Gateway/Peer/Peer.cpp (nonblk_put): Changed the condition + that checks for EWOULDBLOCK after a send. It was erroneously + written. Thanks to Nick Pratt for + pointing this out. + +Mon Sep 10 08:17:08 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Will not run the File_IO test in the + Minimum CORBA configuration. + +Mon Sep 10 08:05:39 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Prevented the DLL_ORB test from running + in static builds. + +Sun Sep 9 10:20:59 2001 Balachandran Natarajan + + * */Makefile: Updated dependencies. + +Sun Sep 9 08:43:02 2001 Balachandran Natarajan + + * ace/Handle_Set.i: Added a check in set_bit () and clr_bit () for + ACE_INVALID_HANDLE. If we pass a ACE_INVALID_HANDLE we were + crashing which is not good and hence the fix. + +Sun Sep 9 08:28:52 2001 Balachandran Natarajan + + * ace/Reactor_Impl.h: + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_Base.cpp (is_dispatchable): Added a new + method. This method, just figures out whether the buffer has any + dispatchable info or not. + + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp: Added the above method in the WFMO + Reactor. + + * ace/TP_Reactor.cpp: The handle_notify_events () method now + checks whether the buffer it has read is dispatchable or not. If + it is then it gives up the token to make an upcall. Else, it + just sits around to remove messages of the pipe, till it find + one with a dispatchable info. The fix was necessary so that + wake-up calls that are unanswered are removed of the + pipe. Unanswered wakeup calls were filling up the pipe and they + were blocking some application from writing further to the + pipe. This should be in all probability be the final fix to the + Reactor. + +Sat Sep 8 09:34:52 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Fixed a typo that was giving + compile errors in VXWORKS builds. + +Fri Sep 7 16:40:37 2001 Priyanka Gontla + + * ace/OS.h: + Added an if-def case for IP_MULTICAST_TTL too. + +Fri Sep 7 17:09:04 2001 Balachandran Natarajan + + * tests/Thread_Pool_Reactor_Resume_Test.cpp: Initialised the lock + to null in the constrcutor before allocating memory for + it. This was done to remove the ABW errors in + purify. This should remove the problem that we see with this + test in our daily builds with SunCC 4.2. + +Fri Sep 7 15:51:48 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Included Auto_Ptr.h. + +Fri Sep 07 15:29:37 2001 Yamuna Krishnamurthy + + * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp: + * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp:: + * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp: + + * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp: + * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp:: + * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp: + + * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp: + * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp: + * examples/QOS/Simple/Fill_ACE_QoS.cpp: + + Fixed compile errors. + +Fri Sep 7 14:17:41 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Do not clear the notify handle bit when + trying to dispatch notify calls. This shoudl fix the long + pending problems with TRU 64 builds. + +Fri Sep 07 12:12:39 2001 Steve Huston + + * examples/C++NPv1/Iterative_Logging_Server.dsp: + * examples/C++NPv1/Logging_Client.dsp: + * examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp: + * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp: + * examples/C++NPv1/Reactive_Logging_Server.dsp: + * examples/C++NPv1/Reactive_Logging_Server_Ex.dsp: + * examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp: + Use relative paths to include and library files rather than + $(ACE_ROOT). Makes it easier to use in place regardless of + ACE version. + + * examples/C++NPv1/Logging_Client.cpp: Fixed scoping of the getline() + method call. + +Thu Sep 6 21:14:05 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Changed the usage of auto_ptr + <> to ACE_Auto_Basic_Ptr<>. Thanks to Carlos O'Ryan for this + suggestion. + +Thu Sep 06 18:42:39 2001 Steve Huston + + * examples/C++NPv1: New directory that contains all of the example + code for Doug/my book, C++ Network Programming, Vol 1. + +Thu Sep 6 12:01:15 2001 Priyanka Gontla + + * ace/OS.h: + Added a if-def case for IP_MULTICAST_IF. Seems like it is not + defined in some of the OS versions. + +Thu Sep 06 12:36:43 2001 Yamuna Krishnamurthy + + * ace/OS.h: + * ace/OS.i: + * ace/QoS/QoS_Session_Impl.cpp: + * ace/QoS/QoS_Session.h: + + Fixed compile errors. + +Thu Sep 6 10:24:15 2001 Ossama Othman + + * ace/Acceptor.cpp (accept_svc_handler): + * ace/Strategies_T.cpp (accept_svc_handler): + + Do not close and reopen the peer acceptor on failed attempts to + accept a connection. Several problems were fixed by removing + this code: + + - A race condition existed where another thread or process + could acquire the port that the peer acceptor was + listening on before it was closed. Note that it is not + enough to attempt to synchronize this code with a lock + since an external process could still acquire the port. + + - If the port in the peer acceptor (assuming it is an + ACE_INET_Addr based one) is the wildcard port (zero), then + there is no guarantee that the acceptor will be opened on + the same port upon which it is was previously listening. + In such a case, IORs generated by TAO (for example) can be + rendered invalid since the addressing information embedded + in those IORs will no longer contain the actual port to + connect to when making invocations. [Bug 962] + + - The above two problems actually introduced a + denial-of-service attack vulnerability (now closed by this + fix) since it was relatively easy to force a failed + connection attempt, which would then cause the peer + acceptor to be reopened on potentially a different port, + or to shutdown completely if reopening failed. + + * ace/SSL/SSL_SOCK_Acceptor.i (close): + + Invalidate the handle stored within the ACE_SSL_SOCK_Acceptor + instance. Corrects problems arising from attempts to use a + listening socket that has been shut down. + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + Perform an OpenSSL SSL_accept() in case OpenSSL buffered data + that must be handled before entering the Reactor event loop used + to complete a non-blocking SSL passive connection. + + If the OpenSSL error status is SSL_ERROR_ZERO_RETURN shut down + the partially initialized SSL stream/session since the peer has + itself shut down. + +Thu Sep 6 11:00:46 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: The timer events are not included as a part + of number of active handles from wait_for_multiple_events + (). The check for event_count > 0 before processing timer events + was wrong. Removed the check. Thanks to Chad Elliott for + pointing this out. + + Further did some cosmetic changes like adding comments, removing + comments that was not valid etc. + +Thu Sep 6 07:50:56 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: The AMI buffering test should not be run + Single threaded builds. + +Thu Sep 6 02:30:14 2001 Christopher Kohlhoff + + * examples/Export/Makefile.bor: + * examples/Export/export_dll.bor: + * examples/Export/test.bor: + * examples/Export/dll.h: + Added makefiles for this example and fixed a template problem with + Borland C++. Thanks to Charles Frasch for + contributing this. + +Wed Sep 5 19:48:34 2001 Priyanka Gontla + + * ace/SOCK_Dgram.cpp (set_nic): + Fixed the errors that raised in Win. + +Wed Sep 5 20:38:10 2001 Balachandran Natarajan + + * ace/OS.h: + * ace/OS.i: + * ace/QoS/QoS_Session_Impl.cpp: + * ace/QoS/QoS_Session.h: Reverted the change "Wed Sep 5 18:58:00 + 2001 Yamuna Krishnamurthy ". The change + broke builds. Further there was no reason why the QoS + information should come inside OS.* files. Talk about increasing + foot print. + +Wed Sep 5 18:58:00 2001 Yamuna Krishnamurthy + + * ace/QoS/QoS_Session.h: + * ace/QoS/QoS_Session_Impl.h: + * ace/QoS/QoS_Session_Impl.cpp: + + Added rapi_sender and rapi_reserve calls with null tspec and + flow spec respectively to facilitate the tearing down of PATH + and RESV messages. + + * ace/OS.h: + * ace/OS.i: + + Changed the sending_flowspec_ and receiving_flowspec_ members of + the ACE_QoS class to pointers so they can be initialized to null + flow specs. + +Wed Sep 5 16:50:03 2001 Balachandran Natarajan + + * THANKS: Added Peter Phillips to the Hall + of Fame. + + * ace/OS_String.cpp: Fixed a warning in TRU64 builds. + +Wed Sep 5 11:29:59 2001 Priyanka Gontla + + * ace/SOCK_Dgram.h: + * ace/SOCK_Dgram.cpp: + + Added a new method to set the NIC address in the socket. + +Wed Sep 05 12:00:42 2001 Steve Huston + + * include/makeinclude/platform_aix4_g++.GNU: Sets ACE_AIX_VERS rather + than separate major/minor; see entry below for further info. + +Wed Sep 05 11:52:39 2001 Steve Huston + + * ace/config-aix5.1.h: New config file for AIX 5L, version 5.1, + using Visual Age C++ 5. + + * ace/config-aix-4.1.x.h: + * ace/config-aix-4.2.x.h: + * ace/config-aix-4.3.x.h: + * ace/config-aix-4.x.h: Use ACE_AIX_VERS (which has both major and + minor version) rather than ACE_AIX_MAJOR_VERS and ACE_AIX_MINOR_VERS. + + * include/makeinclude/platform_aix_ibm.GNU: Rather than making + separate major/minor OS version variables, use one that incorporates + both to make it easier for config.h files to set upwardly-compatible + feature flags. + +Wed Sep 5 06:55:44 2001 Chad Elliott + + * tests/Log_Msg_Test.cpp: + + Add ACE_TEXT() around the default program name for the Windows + WChar Unicode build. + +Tue Sep 4 18:48:00 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Changed the value returned from + ACE_Select_Reactor_Notify_Handler::handle_input (). This now + returns a 0 if we did not dispatch any handles or the number of + handles dispatched. We were returning a -1 if we did not + dispatch any handles, after reading the notification from the + pipe. This should fix the Reactor_Notify_Test in the Implicit + templates build. + +Tue Sep 4 12:46:50 2001 Balachandran Natarajan + + * ace/ACE.cpp: Reverted this change "Tue Sep 4 07:37:17 2001 + Balachandran Natarajan ". Thanks to Irfan + for pointing that this change, changes the semantics of the + methods. + +Tue Sep 4 09:14:36 2001 Chad Elliott + + * ace/CDR_Stream.i: + * ace/CDR_Stream.cpp: + + Work around a compiler bug in the latest Green Hills Multi200. + Casting a float to an ACE_CDR::ULong* caused internal compiler + errors if the code was inlined. + + * ace/config-vxworks5.x.h: + * include/makeinclude/platform_vxworks5.x_ghs.GNU: + + Updated support for Green Hills Multi2000. + +Tue Sep 4 07:41:42 2001 Balachandran Natarajan + + * THANKS: Added Eyal Neuman to the Hall of + Fame. + +Tue Sep 4 07:37:17 2001 Balachandran Natarajan + + * ace/ACE.cpp: Fixed a bug with recv_n_i (). The problem was form + returning the exact number of bytes from the for loop. If the + loop had executed once and if we get 0 in the next recv_i () + call, then we should be returning the number of bytes read in + the previous iteration and not 0. Thanks to Eyal Neuman + for this fix. This closes bug 1015. + +Tue Sep 4 07:08:30 2001 Balachandran Natarajan + + * ace/ACE.cpp: Fixed a unicode error in teh Win32 builds. Acted as + a dumbo when I made this change yesterday:( + +Mon Sep 3 20:08:25 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Fixed a warning in TRU 64 builds. + +Mon Sep 3 09:58:32 2001 Balachandran Natarajan + + * */Makefile: Updated dependencies + +Mon Sep 3 09:44:46 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a warning in Implicit + template builds. + +Mon Sep 3 08:21:36 2001 Balachandran Natarajan + + * ace/ACE.cpp: Replaced L with ACE_TEXT_WIDE. + +Mon Sep 3 07:54:32 2001 Balachandran Natarajan + + * ace/OS_String.cpp: Fixed compile errors in win32 builds. Thanks + to Johnny Willemsen for sending in patches for replacing L with + ACE_TEXT_WIDE. + +Sun Sep 2 19:33:07 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a small problem with the + select reactor's notify () handling mechanism. This was more of + a problem with me not checking the while () loop condition + properly. This should fix most of the reactor problems seen in + the daily builds. + +Sat Sep 1 14:10:08 2001 Douglas C. Schmidt + + * ace/System_Time.cpp, + * ace/Stream_Modules.cpp, + * ace/Service_Types.cpp, + * ace/Service_Manager.cpp, + * ace/SPIPE_Addr.cpp, + * ace/OS.cpp, + * ace/Memory_Pool.cpp, + * ace/Mem_Map.cpp, + * ace/Local_Name_Space_T.cpp, + * ace/FILE_Addr.cpp, + * ace/FIFO.cpp, + * ace/Connector.cpp, + * ace/Acceptor.cpp, + * ace/Token_Collection.cpp, + * ace/Name_Request_Reply.cpp, + * ace/Local_Tokens.cpp, + * ace/ACE.cpp, + * ace/Log_Record.cpp, + * ace/Log_Msg.cpp: Added the use of the new ACE_OS::strsncpy() + method. Thanks to Alain for reporting this. + + * ace/OS_String.{h,cpp}: Added a "safe" c string copy method: + strsncpy(dst,src,maxlen). Changing an occurence off strncpy() + to strsncpy() is less errorprone, but could break somebody's + code if he/she is using the fact that the strncpy's where + nul-padding the destination, but this is extremely + unlikely. Using strsncpy() is also almost always (a lot) faster + than strncpy(). Thanks to Alain Decamps + for this method. + +Sat Sep 1 09:54:55 2001 Balachandran Natarajan + + * tests/Bound_Ptr_Test.cpp: Added a patch from Chris Kohlhoff that + fixes the problem with VXWORKS builds. The old gcc compiler + seems to have problems with forward declared types as template + parameters. Chris solves the problem by defining a ABC properly + and making the offending class inherit from it. This should fix + our daily VXWORKS builds. + +Sat Sep 1 08:07:51 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a compilation error in the + Notification queue portion of the code. Thanks to our daily + builds for helping me with this testing. + +Fri Aug 31 22:12:26 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: + * ace/Select_Reactor_Base.cpp: Fixed fuzz errors. + +Fri Aug 31 22:07:57 2001 Balachandran Natarajan + + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp: Added the method read_notify_pipe () to + the WFMO_Notify_Handler. + +Fri Aug 31 19:14:52 2001 Balachandran Natarajan + + * ace/Reactor_Impl.h: Added a new method by name read_notify_pipe + (). Also changed the dispatch_notify () to take in a + Notification buffer instead of a ACE_HANDLE. + + * ace/Select_Reactor_Base.cpp: + * ace/Select_Reactor_Base.h: Made the following changes + + - Implemented read_notify_pipe (). Will read just one message from + the notify pipe or one message from the notification queue. + + - Reimplemented dispatch_notify (). This method would just + dispatch the upcall using the information in the notification + buffer. + + - The handle_input () now uses the read_notify_pipe () and + dispatch_notify () to achieve what it was doing before. + + - The notify () call now sends one notify message on the pipe + for every message in the notification queue. + + * ace/TP_Reactor.cpp (handle_socket_events): + * ace/TP_Reactor.h: + * ace/TP_Reactor.i: We had a race condition. The race condition + was because two threads were trying to read from the notify_pipe + at the same instance. This race condition was fixed by adding a + call to read_notify_pipe () with the lock held and then calling + dispatch_notify () with the buffer read after releasing the + lock. Did the following minor modifications + + - Changed dispatch_socket_events () as dispatch_socket_event () + as we were dispatching only one event. + + - We dont grab the token in the constructor of the token. We + have to make a call specfically to grab_token () to get the + token. + + The above checkins should fix the correctness of the reactor + problems that we have been seeing. + +Fri Aug 31 18:30:28 2001 Krishnakumar B + + * bin/auto_run_tests.lst: + + Added Blocking_Sync_None to the list of tests to be run on + Tru64. + + * ACE-INSTALL.html: + + Added Linux/IA64 to the list of platforms supported. + +Fri Aug 31 15:27:09 2001 Balachandran Natarajan + + * ace/Bound_Ptr.i: Fixed a problem with Sun CC42 builds. Used 1 + instead of true. + +Fri Aug 31 14:57:42 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Fixed usage of ACE_SYNCH meta-class + to work correctly with templates. + +Fri Aug 31 11:53:05 2001 Krishnakumar B + + * ace/OS.h: + * ace/Timer_Queue_T.h: + * ace/Timer_Queue_T.h: + * ace/config-hpux-11.00.h: + * ace/config-hpux11.h: + * ace/config-irix6.x-common.h: + * ace/config-linux-common.h: + * ace/config-lynxos.h: + * ace/config-osf1-4.0.h: + * ace/config-pharlap.h: + * ace/config-sunos4-g++.h: + * ace/config-sunos4-lucid3.2.h: + * ace/config-sunos4-sun3.x.h: + * ace/config-sunos4-sun4.1.4.h: + * ace/config-sunos4-sun4.x-orbix.h: + * ace/config-sunos5.4-centerline-2.x.h: + * ace/config-sunos5.4-g++.h: + * ace/config-sunos5.4-sunc++-4.x-orbix.h: + * ace/config-sunos5.4-sunc++-4.x.h: + * ace/config-sunos5.5.h: + * ace/config-tandem.h: + + Fixed up documentation of ACE_TIMER_SKEW. Fixed bogus values in + all the above files. Should help in removing some of the errors + in TAO tests. Any test in ACE/TAO which breaks because of this + change is broken and should be fixed. + +Fri Aug 31 12:00:00 2001 Steve Huston + + * tests/Bound_Ptr_Test.icc: New Visual Age C++ config for this test. + * tests/tests.icp: Added Bound_Ptr_Test.icc, Service_Config_Test.icc, + and libService_Config_DLL.icc. + +Fri Aug 31 11:40:31 2001 Steve Huston + + * tests/MEM_Stream_Test.(cpp h): Fixed single-threaded builds. + +Fri Aug 31 08:13:26 2001 Chad Elliott + + * bin/perltest2cpp.pl: + + Added a -t option to set the timeout factor. + +Thu Aug 30 18:08:32 2001 Krishnakumar B + + * ace/config-linux-common.h: + + Added some more missing stuff which might break compilations. + The previous change also removed the existing definition for + ACE_TIMER_SKEW so add it back till the new version is checked in. + +Thu Aug 30 17:54:40 2001 Krishnakumar B + + * ace/config-linux-common.h: + + This file was checked in inadvertently when checking in fixes + for ACE_NEEDS_HUGE_THREAD_STACKSIZE. + +Thu Aug 30 13:04:38 2001 Steve Huston + + * tests/run_test.lst: Added Bound_Ptr_Test. + +Thu Aug 30 11:40:39 2001 Steve Huston + + * tests/run_test.pl (run_program): Fixed the 'unlink' to get + all of a test's log files; prevents seeing previous sub-logs + from a test such as MEM_Stream_Test and falsely reporting errors. + +Thu Aug 30 10:46:51 2001 Steve Huston + + * ace/High_Res_Timer.cpp (global_scale_factor ()): When checking for + a high-res timer mechanism, don't set the global_scale_factor_status_ + away from 0 until _after_ getting the scale factor, to avoid + a second parallel thread from using a bogus value. Thanks very much + to Alain Decamps for this fix. + +Thu Aug 30 09:30:19 2001 Chad Elliott + + * tests/Log_Msg_Test.cpp: + + Fix for VxWorks when ace_main() is called with argc == 0. + + * tests/run_test.lst: + + Update the list of tests that run on VxWorks. + + * tests/Makefile: + * tests/run_test.pl: + + Update the script to output VxWorks commands to a file. + +Thu Aug 30 09:58:38 2001 Steve Huston + + * ace/High_Res_Timer.i (elapsed_microseconds): For Win32, isolate the + msec modulus before converting it up to usecs. Thanks to Francois + Rioux for reporting this. + +Thu Aug 30 00:42:41 2001 Christopher Kohlhoff + + * ace/Service_Config.cpp: + Service_Object instances are now inserted into the Service_Repository + only after they have been successfully initialised, to provide better + support for recursive use of the service configurator. With this + change, a service loaded from 'inside' another services's init() will + be inserted into the repository first and unloaded last. This ensures + that any recursively loaded services on which the original service + depends still exist when the original service's fini() function is + called. + +Thu Aug 30 00:27:05 2001 Krishnakumar B + + * ChangeLog: + + Removed bogus files from the previous entry. I should not play + around with a lot of tasks at once. + +Wed Aug 29 19:57:29 2001 Krishnakumar B + + * ace/config-osf1-4.0.h: + + Remove definition of ACE_NEEDS_HUGE_THREAD_STACKSIZE. The + default value seems to be good enough. + + * ace/config-vxworks5.x.h: + * ace/config-lynxos.h: + * ace/config-qnx-neutrino.h: + * ace/config-rtems.h: + + Standardized the values to 64KB on these platforms. Don't know + if these platforms need it. But I don't have access to any of + these so playing it safe. + + +Wed Aug 29 18:52:12 2001 Christopher Kohlhoff + + * tests/Bound_Ptr_Test.cpp: + Removed a stray asterisk that was causing compilation failures. + +Wed Aug 29 17:54:52 2001 Steve Huston + + * tests/libDLL_Test.icc: + * tests/libService_Config_DLL.icc: Fixed the "run after" directives + to correctly build the lib*.a files. Also, fixed the cleanup + directives to properly clean up both .a and shr.o files. + +Wed Aug 29 15:32:10 2001 Douglas C. Schmidt + + * ace/config-aix-4.x.h: + * ace/config-hpux-11.00.h: + * ace/config-osf1-4.0.h: Added better support for pread()/pwrite(). + Thanks to Steve Vranyes for these fixes. + +Wed Aug 29 15:47:33 2001 Steve Huston + + * tests/run_test.lst: Re-enabled MEM_Stream_Test. + +Wed Aug 29 12:15:01 2001 Nanbor Wang + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: Added Bound_Ptr.* to the projects. + + * tests/tests.dsw: + * tests/Bound_Ptr_Test.dsp: Added a new project for + Bound_Ptr_Test. + +Wed Aug 29 11:01:22 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Fixed a cut/paste error and now runs the + proper number of threads/processes for the MT case, avoiding a + hang. + +Wed Aug 29 07:08:23 2001 Douglas C. Schmidt + + * tests/run_tests.lst: + * tests/Makefile + * tests/Makefile.bor + * ace/Makefile + * ace/Bound_Ptr.{h,i} + * tests/Bound_Ptr_Test.cpp + * examples/Smart_Pointer: Added a pair of new smart pointer classes, + ACE_Strong_Bound_Ptr and ACE_Weak_Bound_Ptr. Thanks to + Christopher Kohlhoff for contributing + these. + +Tue Aug 28 17:51:19 2001 Steve Huston + + * tests/run_test.pl: If a test has log files associated with the + main log of the form -.log, e.g. MEM_Stream_Test-331.log + the check_log function will scan those for errors/warnings too. + +Tue Aug 28 16:48:23 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: We (the current thread) should not release the + token unless we own it. This simple mistake just took 3 days to + figure out. An 'if' condition was mixing and have added + it. Shows how a small problem at lower levels can take days to + fix. + +Tue Aug 28 17:45:22 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Fixed compile warning on gcc. + +Tue Aug 28 13:16:31 2001 Chad Elliott + + * bin/vxworks_modify.pl: + * bin/perltest2cpp.pl: + + Generated c++ files now pass the fuzz check. + +Tue Aug 28 11:02:08 2001 Ossama Othman + + * bin/nightlybuilds/builds.lst: + + Renamed the GCC 3.0 build to "Debian_GCC_3.0.1." since we're + actually compiling with GCC 3.0.1, not GCC 3.0. The latter has + bugs that prevent it from compiling ACE/TAO at the "-O3" + optimization level. + +Tue Aug 28 10:19:18 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + Corrected Borland warning using a more efficient fix (i.e. less + function calls). + +Tue Aug 28 10:36:10 2001 Chad Elliott + + * bin/vxworks_modify.pl: + * bin/perltest2cpp.pl: + + Added these scripts for use with VxWorks and the newly added TAO + TestUtils. These scripts modify c++ and perl to generate + "one-button" modules for TAO testing on VxWorks. + +Tue Aug 28 11:07:26 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Be sure to close the stream from the + client end. + +Mon Aug 27 20:16:38 2001 Balachandran Natarajan + + * tests/run_test.lst: Removed the MEM_Stream_Test from the daily + builds as they were hanging. This was causing the builds to + choke. I will keep Steve Huston informed on this so that he can + reenable them once he has fixed the test. + +Mon Aug 27 18:33:59 2001 Krishnakumar B + + * bin/nightlybuilds/builds.lst (WEB): + + Removed the stray yoda part of LIST which is causing the wrong + results to show up. + +Mon Aug 27 18:14:38 2001 Krishnakumar B + + * bin/nightlybuilds/builds.lst (WEB): + + Added the IA-64 builds back again. We now have a faster machine + running a better version of Linux. + +Mon Aug 27 09:39:33 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.i (get_dispatch_info): + * ace/Timer_Queue_T.h: Fixed the compile problem in VXWORKS + builds. How could I forget that there are a few compilers which + cannot grok traits? + +Mon Aug 27 09:39:12 2001 Johnny Willemsen + + * examples/Makefile.bor: + * examples/NT_Service/Makefile.bor + Added BCB makefile for this example + +Sun Aug 26 22:08:32 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: Reordered methods to fix warnings in TRU 64 + builds. + +Sun Aug 26 20:50:22 2001 Balachandran Natarajan + + * ace/SSL/SSL_SOCK_Stream.i: Fixed a warning (hopefully) in + Borland builds. The warning was because a temporary variable was + created. + +Sun Aug 26 20:45:24 2001 Balachandran Natarajan + + * tests/MEM_Stream_Test.cpp: Fixed a unused variable warning in + Borland. + +Sun Aug 26 08:13:12 2001 Douglas C. Schmidt + + * tests/test_config.h: Added a new ACE_CLOSE_TEST_LOG macro. Thanks to + Edan for this. + +Sun Aug 26 09:07:32 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: Fixed a compile error with SunCC4.2 + +Sun Aug 26 08:28:09 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.cpp: Fixed a warning from an unused variable + reported by KCC compilers. + +Sun Aug 26 08:13:12 2001 Douglas C. Schmidt + + * tests/Logging_Strategy_Test.cpp: Applied the following fixes from + Edan: + + - Included ace/Logging_Strategy.h + - Addition of -w switch to enable initial wipeout of logfile + - Removal of the redundant ACE_LOG_MSG->open() + - Explicitly close the previous log before applying the changes to the + ACE_LOG_MSG + - Moved remove_files() call higher, just before logfile close + + * ace/Logging_Strategy.{h,cpp}: Added the following fixes from + Edan Ayal: + + - Logging_Strategy now supports any ACE_Log_Msg, not just the + ACE_LOG_MSG singleton. + - Added a check for success (ios::goodbit) of new ofstream + creation. + - Changed default values for max_size and interval. Now the + default interval is 10 minutes (instead of 0) and the default + log file size is 0 (was 16K). The timer is now activated only + if both are non-zero. + - Added a mutator to set the ACE_Log_Msg to work with, and a + member variable + - Added definition for ACE_DEFAULT_LOGFILE_POLL_INTERVAL + - Removed definition of ACE_DEFAULT_MAX_LOGFILE_SIZE + + * ace/Log_Record.{h,cpp}: Enhanced this implementation to (1) + be consistent with recent changes to Log_Msg.h and (2) to + replace problematic use of strncpy(). Thanks to Alain + Decamps for these fixes. + +Sat Aug 25 20:58:22 2001 Nanbor Wang + + * ace/FILE_IO.i (send_n): Changed to use ACE::write_n to send the + chain of Message_Blocks. The originally used ACE::send_n was + causing problem on NT because send_n was restricted for sockets + I/O on NT. Thanks to Doug for pointing this out. + +Sat Aug 25 10:16:21 2001 Douglas C. Schmidt + + * tests/Svc_Handler_Test.cpp (main): The destructor of svc_handler + will close file_io, so we don't need to do it explicitly! + + * ace/Log_Msg.cpp (log): Changed range check from + + this->msg_ + ACE_Log_Record::MAXLOGMSGLEN + + to + + this->msg_ + sizeof this->msg_ + + to correspond to the change below. + + * ace/Log_Msg.h (ACE_Log_Msg): Increased the size of the buffer + used to store log records to account for the NUL-terminator. + + * tests/Svc_Handler_Test.cpp (main): Changed the buffer size + and NUL-terminated the buffer so that things print correctly. + Thanks to Nanbor for finding this. + +Sat Aug 25 09:00:28 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp: + * ace/TP_Reactor.h (ACE_TP_Reactor): Fixed a warning in KCC + builds. + +Sat Aug 25 08:42:57 2001 Balachandran Natarajan + + * ace/Configuration_Import_Export.cpp: Fixed warnings with g++. I + am not sure how this fix will be accepted on different + compilers. Things are always dicy when you want to delete a + void *. + +Fri Aug 24 23:29:09 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added File_IO test to our daily builds. + +Fri Aug 24 23:12:15 2001 Balachandran Natarajan + + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp (dispatch_notify): Fixed a compile error on + MSVC. + +Fri Aug 24 23:07:42 2001 Balachandran Natarajan + + * ace/Configuration_Import_Export.cpp: Fixed a compile error with + g++. + +Fri Aug 24 21:55:00 2001 Craig Rodrigues + + * ace/QoS/QoS_Session_Impl.cpp: + Check for null parameters in rsvp_callback(). + Thanks to Yamuna Krishnamurthy . + +Fri Aug 24 20:32:39 2001 Steve Huston + + * tests/MEM_Stream_Test.cpp: Changed this test to use multiple + processes on any platform without ACE_LACKS_FORK. It actually + could be broader than this if desired. This is motivated by the + fact that HP-UX can't mmap() (the call underlying ACE_MEM_IO) + the same file more than once in the same process. With this, + MEM_Stream_Test goes a lot better on HP-UX, though not perfectly + yet. + +Fri Aug 24 16:54:02 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.h (recv_i): + + Added a timeout parameter. See below for details. + + * ace/SSL/SSL_SOCK_Stream.i (recv_i): + + Perform an SSL_read() before attempting to block on select() + with a timeout. OpenSSL may buffer more data than requested + since it is a record-oriented protocol. Fixes a problem where + subsequent calls to ACE_SSL_SOCK_Stream::recv() could timeout + when needlessly blocking on select() because the expected data + has already been buffered by OpenSSL. Thanks to Martin + Krumpolec for reporting and diagnosing the + problem. [Bug 1006] + + * ace/SSL/SSL_SOCK_Stream.cpp (recv): + + Moved the timed recv() code to the lower level recv_i() method + since timeout support must now be more tightly integrated with + do/while(SSL_pending()) SSL_read() loop. + +Fri Aug 24 18:33:09 2001 Douglas C. Schmidt + + * ace/Parse_Node.cpp (ACE_Function_Node): Make sure to dynamically + allocate the pathname_ so we can delete it! Thanks to + Don Hinton for reporting this. + + * ace/Configuration_Import_Export.cpp: Changed a couple of + delete (char *) buf to delete (char *) [] buf. Thanks to + Don Hinton for reporting this. + +Fri Aug 24 16:10:20 2001 Balachandran Natarajan + + Merged in changes from the reactor_deadlock branch. This set of + changes actually fixes a long standing problem with the + TP_Reactor. The TP_Reactor was holding the token too long and + this created all sorts of problems for TAO. The changes have been + merged from the branch and here are the relevant + ChangeLog entries. + + Fri Aug 24 14:59:52 2001 Balachandran Natarajan + + * ace/TP_Reactor.cpp (dispatch_socket_events): Cosmetic changes. + + Fri Aug 24 14:19:02 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.i: + * ace/Timer_Queue_T.h:Removed the default constructor and + destructor for ACE_Timer_Node_Dispatch_Info_T allowing the + compiler to do the job. + + Fri Aug 24 12:05:25 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.cpp: Removed some vague debug statements. + + Fri Aug 24 11:34:11 2001 Balachandran Natarajan + + * ace/Timer_Queue_T.h: + * ace/Timer_Queue_T.cpp: + * ace/Timer_Queue_T.i: Added a new class + ACE_Timer_Node_Dispatch_Info_T that has the dispatch information + needed to make the upcall. Added methods, dispatch_info () and + dispatch_info_i () in ACE_Timer_Queue_T. These methods return + the dispatch information if there is a node in the queue whose + timer value <= current time. Changed the expire () method to use + this method to get dispatch information. + + * ace/Timer_Queue.h: Added a template specialisation for + ACE_Timer_Node_Dispatch_Info_T. + + * ace/Timer_Queue.cpp: Added template instantiations for the + specialisation. + + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: Added a new method handle_timer_events () + that would handles timer events. + + Thu Aug 23 11:50:18 2001 Balachandran Natarajan + + * ace/Reactor_Impl.h: Added two new methods notify_handle () and + dispatch_notify () to the ACE_Reactor_Impl class. + + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_Base.cpp: Implemented the above two + methods in the ACE_Select_Reactor_Notify class. The + notify_handle () method returns the handle of the pipe on which + it is listening. The dispatch_notify () call does a dispatch of + just one notify () call in the notify pipe. The handle_input () + call that used to process all the notify calls now calls the + dispatch_notify () in a loop. The change essentially allows + some extrenal client of this class to just process one notify at + a time if needed. + + * ace/TP_Reactor.h: + * ace/TP_Reactor.i: + * ace/TP_Reactor.cpp (handle_events): Fixed a bug with + handle_events (ACE_Time_Value &). This should be calling the + handle_events () of the TP_Reactor and not the select reactor. + + Added a whole slew of new methods that basically allows us to do + this + - handle one event at a time + + - once the thread knows the event that needs handling it should + release the token before dispatching the events + + The new methods that have been added are + + - handle_signals (), which handle signals that interrupted the + select (). The implementation of this method is busted. The + implementation has been copied from the existing setup + + - handle_notify_events (), which handles one notify on the + notify_pipe at a time + + - handle_socket_events (), which handles socket events. + + Quite a few helper methods have also been added. They are + get_notify_handle (), get_socket_event_info (), and + dispatch_socket_events (). Removed the methods dispatch_i (), + dispatch_i_protected () and notify_handle (). This checkin fixes + the problem in 1002. But we still have to add handling timeouts + into the TP_Reactor. + + + Tue Aug 21 17:21:07 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: Made lots of changes which havent been + compiled yet. Added a new class ACE_TP_Token_Guard that helps + in obtaining and releasing tokens. Moved the grab_token () from + the ACE_TP_Reactor class to the TP_Token_Guard class. Added a + new method for handling signals. They havent been compiled yet + and this checkin is to put files from work to my home box. + + Tue Aug 21 07:58:42 2001 Balachandran Natarajan + + * ace/TP_Reactor.i: + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp (handle_events): Started refactoring some of + the code to help with this bug. This change has not been + compiled. This is just being done to transfer files from home + to work. + +Fri Aug 24 14:25:31 2001 Balachandran Natarajan + + * THANKS: Added Massimo Pichini to the + Hall of Fame. + +Fri Aug 24 13:40:01 2001 Balachandran Natarajan + + * bin/nightlybuilds/builds.lst: Removed HPUX and AIX_VAC for the + timebeing. Looks like OCI is running different versions of the + OS for their internal use. + +Fri Aug 24 10:17:00 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp (log_hexdump): Added a patch provided by Massimo + Pichini . This prevents overflows with + long strings that are used in printing hexdumps. Previously we + had a buffer of 80 bytes on the stack. + +Fri Aug 24 10:03:29 2001 Steve Huston + + * ace/INET_Addr.(h cpp): Applied changes submitted by + Alain Decamps to insure that + get_host_name (char hostname[], size_t len) const always + nul-terminates the hostname string. If the host lookup is + successful, but the supplied buffer is too short, the function + returns -1, errno == ENOSPC. + +Thu Aug 23 22:01:11 2001 Balachandran Natarajan + + * tests/Logging_Strategy_Test.cpp: Reverted this change "Thu Aug + 23 05:24:57 2001 Douglas C. Schmidt" as this was giving + warnings with MSVC 6.0 + +Thu Aug 23 11:49:15 2001 Paul Calabrese + + * bin/msvc_auto_compile.pl: + + Revert changes from Mon Aug 20 15:48:30 2001. + Thanks to Darrell to showing me the error in my ways. + +Thu Aug 23 09:17:25 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp (file): Reduced the number of bytes copied in + ACE_Log_Msg::file () and ACE_Log_Msg::msg () by one. Thanks to + Alain Decamps for pointing this out. + +Thu Aug 23 08:11:22 2001 Steve Huston + + * ace/Configuration_Import_Export.cpp (process_previous_line_format): + Prepend ACE_OS:: to atoi to work with both narrow and wide chars. + +Thu Aug 23 08:03:00 2001 Craig Rodrigues + + * ace/QoS/QoS_Session_Impl.cpp: + Improve debugging messages. Return -1 inside rsvp_callback() + if flowspec type is unknown. + +Thu Aug 23 05:24:57 2001 Douglas C. Schmidt + + * tests/Logging_Strategy_Test.cpp: Added new and improved test that + it better documented and fixes some minor bugs. Thanks to + Edan Ayal for this. + +Wed Aug 22 19:04:57 2001 Douglas C. Schmidt + + * tests/Logging_Strategy_Test.cpp: Enable this test to work + on platforms that don't support DLLs. Thanks to Edan Ayal + for suggestion this and providing the code. + + * tests/Logging_Strategy_Test.cpp (parse_args): Changed 'n' for 'N' + since that controls the max number of log files. Thanks to Edan + Ayal for reporting this. + +Thu Aug 23 07:30:12 2001 Johnny Willemsen + + * ace/SString.{h,i}: Added clear() method to the ACE_CString and + ACE_WString so that it is possible to clear a string in just one + call + * tests/SString_Test.cpp: Extended to test clear() method + +Wed Aug 22 15:30:05 2001 Carlos O'Ryan + + * bin/auto_compile: + Use the print_config.pl script to print out the configuration. + +Wed Aug 22 17:33:29 2001 Steve Huston + + Applied fixes submitted by Jerry D. Odenwelder, to fix + Bugzilla #953: + + * ace/Configuration.cpp (import_config, export_config): Changed + from using a ACE_Ini_ImpExp object to an ACE_Registry_ImpExp + to preserve type information in the import/export files, and + retain the ability to read an ACE 5.1-format file (with the + changes next...) + + * ace/Configuration_Import_Export.(h cpp): Added a new + ACE_Registry_ImpExp::process_previous_line_format() method that + knows how to read an ACE 5.1-format config line. If + ACE_Registry_ImpExp::import_config finds a line that does not + begin with one of <"[#;> it calls process_previous_line_format + to try to convert it using ACE 5.1-format rules. + Note that the auto conversion works on import. If the + object is subsequently exported, the new registry format + will be used to write the file, effectively updating it + from old to new format. + +Wed Aug 22 12:04:04 2001 Douglas C. Schmidt + + * ace/WFMO_Reactor.h (ACE_WFMO_Reactor): Clarified that the + work_pending() method isn't implemented and suggest what to do + for a workaround. Thanks to Michelangelo Riccobene + (michelangelo.riccobene@marconi.com) for reporting this. + +Wed Aug 22 10:38:08 2001 Carlos O'Ryan + + * bin/nightlybuilds/print_config.pl: + Add new perl script to print out the build configuration, the + script will be shared by the Unix and Win32 builds. + +Wed Aug 22 11:30:13 2001 Joe Hoffert + + * ace/OS_Memory.h: + Removed include of pace/stddef.h. PACE does not have this + file. There are no POSIX functions that typically reside + in this header. Maybe PACE will need this later but it + doesn't now. + + * ace/OS.h (ACE_cond_t): + Modified #if guard to include ACE_cond_t class if we're + on Win32. If we're using PACE then we don't want this method + (since PACE takes care of it) unless we're on Windows. Win32 + mutexes, semaphores, and condition variables are not yet + supported in PACE. + + * ace/OS.cpp (ACE_OS::cond_destroy): + Modified #if guard to include ACE_cond_t::cond_destroy + if we're on Win32. If we're using PACE then we don't want + this method (since PACE takes care of it) unless we're on + Windows. Win32 mutexes, semaphores, and condition variables + are not yet supported in PACE. + + * ace/OS.i (ACE_OS::waiters): + Modified #if guard to include ACE_cond_t::waiters if + we're not on Win32. If we're using PACE then we want + this method (since PACE defines cond_t) unless we're + on Windows. Win32 mutexes, semaphores, and condition + variables are not yet supported in PACE. + +Tue Aug 21 08:26:30 2001 David L. Levine + + * docs/ACE-guidelines.html: changed the example referenced + in: + Sun Aug 19 08:17:14 2001 David L. Levine + to be a bit more realistic. + +Tue Aug 21 06:58:49 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp: Fixed problematic uses of strncpy. Thanks to + Alain Decamps for giving this patch. + +Tue Aug 21 10:40:12 2001 Johnny Willemsen + + * ace/Map.i: Made the return value of ACE_Incremental_Key_Generator + getCurrentValue() const + + * ace/Map_Manager.*: Added a const iterator for the + ACE_Map_Manager + +Mon Aug 20 18:20:51 2001 Steve Huston + + * ace/Process.cpp (pass_handle): Only try to compile the + DuplicateHandle stuff when !ACE_HAS_WINCE... I think it's + right this time... + +Mon Aug 20 15:54:46 2001 Douglas C. Schmidt + + * ace/SUN_Proactor.cpp: Removed the instantiation of + ACE_Condition. Thanks to David Trusty + for reporting this. + +Mon Aug 20 15:48:30 2001 Paul Calabrese + + * bin/msvc_auto_compile.pl: + + Modify script to print config.h contents. + +Mon Aug 20 13:14:00 2001 Carlos O'Ryan + + * bin/auto_compile: + Fixed chdir commands for the auto_compile scripts. + +Mon Aug 20 14:33:31 2001 Douglas C. Schmidt + + * ace/Message_Queue_T.cpp: If we timeout in the semaphore implementation + of the message queue in wait_not_full_cond() or + wait_not_empty_cond() make sure to decrement the "waiters" count + accordingly! Thanks to Patrick Rabau + for noticing this in the C++NPv1 book version! + +Mon Aug 20 07:01:31 2001 Douglas C. Schmidt + + * ace/Synch_T.i (release): If owner_ == -1 then return + -1. Thanks to Don Hinton for suggesting this. + +Mon Aug 20 13:18:51 2001 Steve Huston + + * ace/SOCK.h: Corrected comment on ACE_SOCK ctor being protected, + not private. Thanks to Don Hinton for + pointing this out. + + * THANKS: Added Don Hinton to the Hall of Fame. + +Mon Aug 20 11:00:50 2001 Chad Elliott + + * ace/OS.h: + + Set the ACE_DEFAULT_FILE_PERMS to the correct value for VxWorks. + + * tests/run_test.lst: + + Removed tests for VxWorks for which the platform has no support. + + * tests/CDR_File_Test.cpp: + * tests/Svc_Handler_Test.cpp: + + Add VxWorks to the list of platforms that can't unlink the file + in advance of the test completing. + +Mon Aug 20 01:49:12 2001 Christopher Kohlhoff + + * include/makeinclude/build_dll.bor: + Build non-core DLLs into the common bin directory. This is necessary + so that the tests can find all the DLLs they need on the path. + + * tests/run_test.pl: + Removed the append of the ExeSubDir to the path, since it is no + longer needed and never really worked properly anyway. + +Mon Aug 20 00:01:29 2001 Steve Huston + + * ace/SOCK_Connector.h: Clarify the conditions under which errno + will be ETIME (caller-specified timeout expires w/o connect) + vs. ETIMEDOUT (protocol layer timed out the connect). + + * ace/SOCK_Connector.cpp: Add "|| errno == ETIME" to a couple + places where an ACE_ERROR is _not_ done for certain conditions. + + * ace/ACE.cpp (handle_timed_complete): If the user-specified timeout + expires before the connect is resolved one way or the other, + set errno to ETIME, not ETIMEDOUT. This makes it match the + documented behavior in the ACE_SOCK_Connector man page. + +Sun Aug 19 20:33:39 2001 Carlos O'Ryan + + * bin/nightlybuilds/builds.lst: + Update build list + +Sun Aug 19 15:36:23 2001 Carlos O'Ryan + + * bin/auto_compile: + Add new 'Config' section at the end of the build, useful for the + next generation scoreboard. + +Sun Aug 19 13:25:51 2001 Carlos O'Ryan + + * bin/footprint_stats.sh: + * bin/performance_stats.sh: + * bin/generate_footprint_chart.sh: + * bin/generate_performance_chart.sh: + * html/Stats/Stats.css: + * html/Stats/configuration.shtml: + * html/Stats/detailed_footprint.shtml: + * html/Stats/detailed_performance.shtml: + * html/Stats/footer.html: + * html/Stats/index.shtml: + * html/Stats/navigation.html: + Put the scripts and HTML documents used to generate the Stats + pages under CVS control. Now it is easier for people to add + their own libraries and tests, as well as let our user community + examine the way the pages are generated. + + * bin/auto_run_tests.lst: + Remove TAO/tests/LongUpcalls/run_ami_test.pl, the tests have + been incorporated into the run_test.pl script. + + * bin/sandbox.cpp: + Minor changes to the sandbox script, actually not very useful, + the ACE classes to create processes start a new process group by + default, therefore there is no simple way to kill all the + subprocesses if a test fails. + +Sun Aug 19 08:17:14 2001 David L. Levine + + * docs/ACE-guidelines.html: replaced function call in + ASSERT with simple comparison of a variable value. Thanks + to Tino Schwarze + for suggesting this. + +Sat Aug 18 18:26:24 2001 Balachandran Natarajan + + * ace/ACE.cpp: Removed the ASYS_INLINE macro from the definition + of write_n (). + +Sat Aug 18 13:18:10 2001 Douglas C. Schmidt + + * ace/ACE.{h,cpp}: Added a new write_n(...ACE_Message_Block *...) + for file transfers that's the dual of + send_n(...ACE_Message_Block *...). This helps out the C++NPv1 + book symmetry. Thanks to Alain Decamps + for motivating this. + +Fri Aug 17 18:17:38 2001 Douglas C. Schmidt + + * bin/clone.cpp: Only use extern char *sys_errlist[] if we're not + compiling on Linux. Thanks to Thomas Groth + for reporting this. + +Fri Aug 17 19:04:31 2001 Steve Huston + + * ace/Process.cpp (ACE_Process_Options::pass_handle): For WinCE, + just do ACE_NOTSUP_RETURN (-1). It can't dup a handle. + +Fri Aug 17 16:56:16 2001 Jeff Parsons + + * ace/CDR_Stream.h: + * ace/CDR_Stream.i: + * ace/CDR_Stream.cpp: + + Added wr_ptr() accessor method to ACE_InputCDR, and added its + use to adjust(), align_read_ptr(), read_1(), skip_string() and + skip_bytes() instead of end(). Also added reset of good_bit_ + to 0 upon failure in read_string() and read_wstring(). Thanks to + Peter Phillips for reporting this bug, + which was causing excessive memory allocation is some cases. + [Bug 591, 944, 983] + +Fri Aug 17 13:31:45 2001 Chad Elliott + + * tests/run_test.pl: + + Added the ability to generate windsh commands to load and run + the ace tests. + + * tests/Makefile: + + Added a rule to generate run_test.vxworks, using run_test.pl, + which can be used to run the tests selected for the VxWorks OS. + + * tests/run_test.lst: + + Update this list to take into account the limitations of VxWorks. + + * tests/test_config.h: + + Change the permissions of the log file open (for VxWorks only) to + use the symbolic permission names instead of 0x644. The + permissions differ from the standard UNIX modes. + + * tests/run_tests.vxworks: + + This file was out of date and no longer needs to be maintained. + So, it has been removed. + +Fri Aug 17 09:44:49 2001 Balachandran Natarajan + + * ace/Map_T.{h,i}: Reverted this change "Fri Aug 17 08:07:12 2001 + Johnny Willemsen " as this was giving too + much of warnings in the builds. + +Fri Aug 17 09:30:34 2001 Balachandran Natarajan + + * gperf/apps/tests/Makefile: Fixed the problem that was causing + the builds to fail. + +Fri Aug 17 08:07:12 2001 Johnny Willemsen + + * ace/Map_T.(h i): made the return value of + ACE_Incremental_Key_Generator::current_value const T& instead + of T&. Added uppercase traits to the ACE_Map class. + +Thu Aug 16 19:27:29 2001 Steve Huston + + * ace/Process.cpp (ACE_Process_Options::pass_handle): Add + "::" to front of "DuplicateHandle" so the WinCE compiler + sees the right function. + Also added ctor/dtor for ACE_Managed_Process to try and fix the + can't find vtable error on Linux. + + * ace/Process.h: Added a constructor for ACE_Managed_Process + to fix "can't find vtable" error on Linux. + + * ace/Process.i: Moved ACE_Managed_Process dtor to .cpp file. + +Thu Aug 16 15:10:42 2001 Steve Huston + + * ace/Process.h (pass_handle): Clarify comments for this method. + + * ace/Process_Manager.cpp: + * ace/Process.(h i): Moved the ACE_Managed_Process class out + of Process_Manager.cpp, exposing it for general use. + +Thu Aug 16 10:34:20 2001 Douglas C. Schmidt + + * ace/POSIX_Proactor.cpp (allocate_aio_slot): Added a fix so that + the POSIX Proactor compiles with FreeBSD 4.4. Thanks to Yev + Omenzel for reporting this and to Craig + Rodrigues for fixing it and to + John E Hein for fixing the fix ;-) + +Thu Aug 16 08:09:53 2001 Chad Elliott + + * tests/run_test.lst: + + Added the OTHER requirement to the Thread_Pool_Reactor_Test and + the Thread_Pool_Reactor_Resume_Test. These are only built if + OTHER is part of the ACE components list. + + +Wed Aug 15 15:50:38 2001 Douglas C. Schmidt + + * ace/WFMO_Reactor.cpp: Don't try to purge the notifications if + notify_handler_ is 0. Thanks to Edan Ayal + for reporting this. + +Wed Aug 15 11:33:26 2001 Carlos O'Ryan + + * bin/nightlybuilds/builds.lst: + Remove one build from the list, the machine is being retargeted + for performance testing. + +Wed Aug 15 11:10:22 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Added $(VDIR) for + OBJDIRS. This prevents hardcoding the value of OBJDIRS. This has + been tested for a dynamic and a static library on Linux. If + there are other platforms that gives problems, please feel free + to revert the changes to the version 4.114 of the file. + +Wed Aug 15 09:35:19 2001 Chad Elliott + + * ace/Dirent_Test.cpp: + + Added #define's for VXWORKS that allow this test to function + properly. Avoid hard-coded relative paths that may not exist on + VxWorks. + +Wed Aug 15 09:08:40 2001 Chad Elliott + + * ace/Sock_Connect.cpp: + + Added an implementation to ACE_Sock_Connect::get_ip_interfaces(). + With this, the Enum_Interfaces_Test works correctly. + +Wed Aug 15 07:54:49 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Unravelled the mystery a + bit. The patch that was applied to remove the hard coding of + OBJDIRS seems to be the problem. The OBJDIRS has been hardcoded + again. This should fix the problems that we have been seeing in + the builds. If at all we need to remove hardcoding the OBJDIRS, + we either need to put the value of VDIR or VSHDIR. If we put + both we are going to end up with duplicate targets. Now the + killer, what do we add to the OBJDIRS? Me thinks it is VDIR. I + have test that out else I would be breaking builds again. + +Wed Aug 15 07:30:00 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Reverted the change "Tue + Aug 14 21:42:24 2001 Balachandran Natarajan". Thought that was a + typo. But looks like it is not. + +Wed Aug 15 06:39:50 2001 Balachandran Natarajan + + * ace/Process.cpp: Fixed a warning with g++. + +Tue Aug 14 23:57:42 2001 Steve Huston + + * A set of changes to encapsulate passing handles to spawned + processes. Thanks very much to Eamonn Saunders + for suggesting that this could work + and pointing out the Win32 details! + + * THANKS: Added Eamonn Saunders to the Hall of Fame + + * ace/Handle_Set.h: Replace include ace/ACE.h with ace/OS.h. This + class is part of the OS subset. + + * ace/Process.h: Added the following methods: + - ACE_Process_Options::pass_handle (ACE_HANDLE). Cause the specified + handle to be passed to a child process when it's spawned. Has + meaning mainly for Win32. The handle value will be included + in the spawned process's command line as +H . The passed + handle value will be duplicated if on Win32 less than NT4. + + - ACE_Process_Options::dup_handles (ACE_Handle_Set set) const + Get a copy of the handles the ACE_Process_Options duplicated + for the spawned process. + + - ACE_Process_Options::passed_handles (ACE_Handle_Set set) const + Get a copy of the handles passed to the spawned process. This + will be the set of handles previously passed to pass_handle(). + + - ACE_Process::close_dup_handles (). Close all the handles in + the set obtained from ACE_Process_Options::dup_handles. + + - ACE_Process::close_passed_handles (). Close all the handles in + the set obtained from ACE_Process_Options::passed_handles. + + Also moved the avoid_zombies() functions and flag out of the + non-Win32 section - it can safely be ignored, maintain the + intended semantics, and help apps stay portable. + + * Process.cpp: Implement the above new methods. Also, after spawning + a process, the parent will call the above dup_handles/passed_handles + methods to get any passed handles. The close_*_handles() methods + can then close them. Also, the destructor will call close_dup_handles + to be sure that no handles leak on Win32 less than NT4. + + * Process.i (command_line_buf ()): Added a new arg to receive the + maximum length of the buffer pointed to on return. To maintain + backward compatibility, the arg defaults to 0 (don't return + the max length). + + * ace/Makefile: Moved Handle_Set from the UTILS group to the OS group. + + * ace/ace.icc: Moved Handle_Set from DEMUX to OS. + + * docs/ACE-subsets.html: Move Handle_Set from DEMUX to OS. + +Tue Aug 14 21:42:24 2001 Balachandran Natarajan + + * include/makeinclude/wrapper_macros.GNU: Fixed a typo. + +Tue Aug 14 21:30:04 2001 Balachandran Natarajan + + * apps/Makefile: Removed JAWS2 and JAWS from the Makefile. There + are several reasons for reverting. This breaks the builds. The + Makefiles in the recursed directories are all messed up. The + library dependencies doesnt seem trivial. Nobody may have time + to fix this. Further, our daily builds return too quickly and we + just needed more files to compile :-). + +Tue Aug 14 14:19:49 2001 Steve Huston + + * ace/Memory_Pool.i (ACE_Local_Memory_Pool dtor): Call release() + here to free up the blocks allocated by the pool, else they're + stranded and can't be freed. + + * ace/Memory_Pool.cpp (ACE_Local_Memory_Pool::release): After + freeing up the blocks, reset the allocated_chunks_ set to be + sure they are also freed, and the chunks can't be freed again. + +Tue Aug 14 14:19:37 2001 Balachandran Natarajan + + * ace/Log_Msg.cpp: Applied the patches sent by Tibor Kiss + for ACE_Log_Msg::close () + +Tue Aug 14 13:55:42 2001 Balachandran Natarajan + + * include/makeinclude/platform_macosx.GNU: Added a patch from John + Michael Zorko . + +Tue Aug 14 10:21:39 2001 Steve Huston + + * ace/Log_Msg.h: Clarified the defaults for the per-process and + per-instance default priority masks. + +Mon Aug 13 14:01:35 2001 Douglas C. Schmidt + + * include/makeinclude/wrapper_macros.GNU: Fixed some hard-coded + uses of .shobj and .obj. Thanks to Shashi Bhushan + for contributing these. + + * ace/CDR_Stream.h: Added comments warning about the deletarious + effects of not aligning buffers to ACE_InputCDR and + ACE_OutputCDR properly. Thanks to Alain Decamps + for reporting this. + +Sun Aug 12 14:46:07 2001 Douglas C. Schmidt + + * ace/OS.cpp (sched_params): Make sure to set errno for Win32 so + that callers can figure out what's going wrong in a consistent + way. + + * ace/Select_Reactor_Base.i (purge_pending_notifications): Don't + try to purge the notifications if notify_handler_ is 0. thanks + to Steve Rahn for reporting this. + +Mon Aug 13 20:09:04 2001 Balachandran + + * ACE version 5.1.19 released. + +Sun Aug 12 02:17:01 2001 Nanbor Wang + + * ace/MEM_Acceptor.cpp: + * ace/MEM_Connector.cpp: On non-Win32 platforms, disable + multithreaded MEM_IO if _ACE_USE_SV_SEM is defined. + +Sun Aug 12 01:27:51 2001 Steve Huston + + * tests/Log_Msg_Test.cpp: Correct const-ness of a pointer + retrieved from ACE_Log_Record::msg_data(). + +Sun Aug 12 00:34:42 2001 Steve Huston + + * ace/Log_Record.h: + * ace/Log_Record.i (msg_data()): Changed ACE_TCHAR *msg_data() + to: const ACE_TCHAR *msg_data (void) const. Makes it safer, + and conforms to all current usage inside ACE. Also makes + C++ Network Programming examples simpler :-) + +Sat Aug 11 09:01:11 2001 Douglas C. Schmidt + + * ace/Thread.h: + * ace/Task.h: Added a list of other flags that can be passed to + activate(). + +Fri Aug 10 19:39:48 2001 Krishnakumar B + + * bin/auto_run_tests.lst: + + Disabled the Blocking_Sync_None test from running under Tru64. + Also changed the config parameter passed to the auto_compile + script from TRU_64 to Tru64 in + ~bugzilla/bin/auto_compile_tru64_cxx. + + This is so that the test is disabled only for the WashU builds. + The reason being that Bala was not too happy with changing the + default values for all the platforms and we also wanted to avoid + more #ifdefs in the code. Other builds might have better values + and the test might succeed. Have to confirm this though. + +Fri Aug 10 17:59:47 2001 Nanbor Wang + + * ace/Svc_Conf_y.cpp: + * ace/OS.h: Added /**/ between #include and and + to avoid warning from CE compiler. + + * ace/ace_dll.vcp: Added Svc_Conf_Lexer_Guard.* to the project. + +Fri Aug 10 13:40:46 2001 Chad Elliott + + * bin/nightlybuilds/builds.lst: + + I didn't realize the LIST definition was needed. I have + added it for the Tru64 4.0f Compaq C++ 6.3-10 build. + +Fri Aug 10 11:45:03 2001 Chad Elliott + + * bin/nightlybuilds/builds.lst: + + Added the Tru64 4.0f Compaq C++ 6.3-10 build. + +Fri Aug 10 11:06:23 2001 Chad Elliott + + * apps/drwho/CM_Client.cpp: + * apps/drwho/CM_Server.cpp: + * apps/drwho/server.cpp: + + Changes to avoid warnings on HP-UX with aCC. + +Thu Aug 9 16:56:05 2001 Balachandran Natarajan + + * ace/Hash_Map_Manager_T.i: + * ace/Hash_Map_Manager_T.cpp: We seem to be re-inventing wheels + again and again. A few months back we had a show stopper in a + beta which was caused by usage of static cast. The cast was not + to the liking of SunCC 4.2. Looks like we had to change a bunch + of static cast sprayed in these two files to a C style cast as + 4.2 doesnt like them. Compilers like Borland handle these + better, but not 4.2. + +Thu Aug 9 11:51:10 2001 Balachandran Natarajan + + * include/makeinclude/platform_hpux_aCC.GNU: On popular mandate we + have the -w flag removed from CCFLAGS in the above file. Looks + like the -w disables lots of warnings that may be useful. + +Thu Aug 9 11:41:01 2001 Balachandran Natarajan + + * ace/CDR_Stream.h (ACE_OutputCDR): Fixed the ambigous constructor + problem. The InputCDR class had two constructors which were + similar if the default values for the arguments were + exercised. Thanks to Torbjorn Backstrom + for reporting this. + +Thu Aug 9 12:31:21 2001 Douglas C. Schmidt + + * ace/OS_String.cpp (strtok_r_emulation): Make sure to check + for a NULL return from strtok() before calling strlen()! Thanks + to Boris Sukholitko for reporting this. + +Wed Aug 08 21:27:50 2001 Ossama Othman + + * bin/nightlybuilds/builds.lst (Debian_Wchar, Debian_GCC_3.0): + + The host these nightly builds were built on is now called + "rumba" (previously "valinor"). Updated the build list + accordingly. + +Wed Aug 08 21:19:09 2001 Ossama Othman + + * tests/Service_Config_Test.UTF-16.conf: + + Removed extraneous characters from this file that were causing + the Service Configurator's underlying lexer to "choke." + +Wed Aug 8 16:23:31 2001 Carlos O'Ryan + + * bin/auto_run_tests.lst: + Add the AMI_Buffering tests to the nightly regression testsuite. + +Wed Aug 8 16:07:26 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: The GIOP lite tests will not work in the + static builds. It was adding more complications to the test + than what is already there to get it working for the static + builds. + +Wed Aug 8 14:06:36 2001 Krishnakumar B + + * ace/config-tru64.h: + + Define ACE_HAS_NONSTATIC_OBJECT_MANAGER for all DEC Unix 4.x + versions. + + * ace/config-cxx-common.h: + + Define ACE_AUTO_PTR_LACKS_RESET if __DECCXX_VER == 60190027. + Thanks to Robert Burke for reporting + this. + + * include/makeinclude/platform_osf1_3.2.GNU: + * include/makeinclude/platform_osf1_4.0.GNU: + * include/makeinclude/platform_osf1_4.0_g++.GNU: + * include/makeinclude/platform_osf1_4.0_kcc.GNU: + * include/makeinclude/platform_osf1_4.0_rcc.GNU: + + Removed the following files. + + * include/makeinclude/platform_osf1_3.2_cxx.GNU: + * include/makeinclude/platform_osf1_4.x_cxx.GNU: + * include/makeinclude/platform_osf1_4.x_g++.GNU: + * include/makeinclude/platform_osf1_4.x_kcc.GNU: + * include/makeinclude/platform_osf1_4.x_rcc.GNU: + + Added new versions of the removed files. + + * include/makeinclude/platform_tru64_pre.GNU: + * include/makeinclude/platform_tru64_post.GNU: + + Moved a lot of duplicated code into these new files. + + * include/makeinclude/platform_tru64_cxx.GNU: + * include/makeinclude/platform_tru64_g++.GNU: + * include/makeinclude/platform_tru64_kcc.GNU: + + Removed a lot of old *cruft* like setting up compilation with + cxx when gcc was asked for etc. etc. Somebody went overboard + with cut'n paste and copied David's changes blindly. Still not + completely satisfied. But it works and is better than before. + This also fixes Bug Id 989. + +Wed Aug 08 11:30:26 2001 Ossama Othman + + * tests/Service_Config_Test.cpp (run_test): + + Don't check if "ACE_USES_WCHAR == 1" since some configurations + neglect to set it an integer value. Instead, just check if it + is defined. + +Wed Aug 8 12:31:51 2001 Balachandran Natarajan + + * tests/MEM_Stream_Test.cpp: Changed a ACE_DEBUG statment with an + LM_WARNING to an LM_DEBUG. + +Wed Aug 08 11:59:45 2001 Nanbor Wang + + * ace/OS.h: Do not redefine ACE_IOV_MAX if it has already been + defined. + +Wed Aug 8 06:21:24 2001 Douglas C. Schmidt + + * ace/Makefile: Moved Message_Block from STREAMS_FILES to + UTILS_FILES. + + * ace/OS_Dirent.inl (closedir): Changed delete d->directory_name_ to + delete [] d->directory_name_. Thanks to Olivier Brunet + for reporting this. + +Tue Aug 7 21:59:42 2001 Douglas C. Schmidt + + * tests/Svc_Handler_Test.cpp: Modified the test to dump the contents + of the temporary file to the log file. + +Tue Aug 7 19:14:24 2001 Douglas C. Schmidt + + * ace/CDR_Stream.i: + * ace/SOCK_Stream.h: Fixed incorrect comments. + Thanks to Alain Decamps for reporting + these. + +Tue Aug 7 15:19:38 2001 Douglas C. Schmidt + + * ace: Changed all uses of IOV_MAX to use the new ACE_IOV_MAX. + * ace/OS.h: Added a new ACE_IOV_MAX that makes it clear this is + an ACE-level #define. We use this in C++NP v1. + +Tue Aug 7 14:16:57 2001 Douglas C. Schmidt + + * ace/Svc_Handler.cpp: Reimplemented the flush() method to use + the new send_n() method on the various ACE I/O classes. + + * ace/SOCK_Stream.{h,i}: + * ace/FILE_IO.{h,i}: Added a new send_n() method that sends all + the s chained through their and + pointers using the underlying OS gather-write operation to + reduce the domain-crossing penalty. + +Tue Aug 7 17:27:16 2001 Balachandran Natarajan + + * tests/Collection_test.cpp: Fixed a compile error with g++. This + is a patch that Johnny Willemsen sent as a part of his last + checkin. + +Tue Aug 07 11:25:36 2001 Nanbor Wang + + * ace/config-freebsd-pthread.h: Made the following definition + valid only for pre-4.2-RELEASE. + + #define ACE_LACKS_GETPGID + #define ACE_LACKS_SETPGID + #define ACE_LACKS_SETREGID + #define ACE_LACKS_SETREUID + + Thanks to Robert Burke for reporting + this. + +Tue Aug 07 16:40:12 2001 Johnny Willemsen + + * ace/Hash_Map_Manager_T.*: + Added const_iterator to the Hash_Map_Manager so that it is + possible to iterate over a hash map in a const method + + The operator= of the iterator now check the value of this to + check that the iterator instance is assigned to itself + + * tests/Hash_Map_Manager_Test.cpp + Extended this test to test the new const_iterator capabilities + of the hash map + + * ace/Unbounded_Set.cpp: + Implemented missing operator* for the const iterator + + * tests/Collection_test.cpp: + Extended test to test the operator* of the + Unbounded_Set_Const_Iterator + +Mon Aug 6 19:58:48 2001 Douglas C. Schmidt + + * ace/config-hpux-11.00.h: Added #define for ACE_HAS_TERM_IOCTLS. + Thanks to Torbjorn Backstrom + for reporting this. + + * ace/OS.h: Added a #include for for HP/UX. Thanks + to Torbjorn Backstrom for + reporting this. + +Mon Aug 6 12:51:35 2001 Douglas C. Schmidt + + * ace/Synch.h (ACE_Null_Mutex>): Fixed a cut&paste error + where acquire_write() should be acquire_read(). Thanks to + Russell Mora for fixing this. + +Mon Aug 06 17:17:33 2001 Ossama Othman + + * ace/Service_Config.cpp: + + Fixed some debugging messages that were not wrapped within an + ACE_LIB_TEXT macro. + + * tests/Service_Config_Test.UTF-16.conf: + + Interim UTF-16 encoded version of the UTF-8 encoded + Service_Config_Test.conf. It was generated on a little-endian + host. Its current purpose is simply to keep our Unicode + regression testing happy until the on-the-fly generation is + implemented. Once we start generating this file on-the-fly + this file should disappear. + + * tests/Service_Config_Test.cpp (run_test): + + When using full Unicode support, use the version of the Service + Configurator file that is UTF-16 encoded (as described above). + +Mon Aug 06 11:10:24 2001 Ossama Othman + + * ace/Svc_Conf_l.cpp: + + More Unicode fixes. Flex's allocation function uses malloc() as + its underlying allocator. Since it only accepts the size in + bytes, allocate "size * sizeof (ACE_TCHAR)" when allocating + string buffers. This should clear up some strange looking text + "unknown character" messages emanating from the Service + Configurator's underlying text scanner. + + Note that these changes do not fix the cause of the "unknown + character." Those fixes should soon follow. + +Mon Aug 06 09:04:04 2001 Ossama Othman + + * ace/Svc_Conf.l: + + Unicode updates. Wrap debugging text within an ACE_LIB_TEXT + macro. + +Sun Aug 5 14:31:10 2001 Balachandran Natarajan + + * tests/run_tests.lst: Ossama suggested that we dont run the + Service_Config_Test in static builds. + +Fri Aug 04 3:33:31 2001 Yamuna Krishnamurthy + + * ace/QoS/SOCK_Dgram_Mcast_QoS.h: + * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: + + Made the open method public so we can open UDP sockets for + non-multicast addresses. + +Fri Aug 03 22:19:31 2001 Steve Huston + + * ace/config-hpux-11.00.h: Added ACE_HAS_WCHAR to build in the + wide char handling since Darrell so nicely straightened all + the muck out throughout ACE. Thanks Darrell! + +Fri Aug 03 22:15:51 2001 Steve Huston + + * ace/Log_Msg.cpp (log): For 'W' and 'w' on HP-UX, the 'ls' and + 'lc' forms are not allowed; HP-UX requires 'S' and 'C'. + +Fri Aug 3 13:10:59 2001 Ossama Othman + + * ace/config-linux-common.h (ACE_UINT64_FORMAT_SPECIFIER, + ACE_SSIZE_T_FORMAT_SPECIFIER, ACE_SIZE_T_FORMAT_SPECIFIER): + + Removed unnecessary and some incorrect format specifiers for the + 32-bit platform case. In particular, the format specifier for + an unsigned 64-bit integer was incorrectly set to "%Lu." "%L" + is the format specifier for a "long double," not a "long long" + integer on 32-bit platforms. "%llu" is the correct format + specifier which `ace/Basic_Types.h' already defines. + +Fri Aug 3 09:55:38 2001 Ossama Othman + + * bin/auto_run_tests.lst: + + Added the new TAO "DLL_ORB" test to the list of tests to run. + +Fri Aug 3 08:26:45 2001 Balachandran Natarajan + + * ace/RW_Process_Mutex.cpp: Added a missing comma in the + constructor. This should fix Win32 compile errors. + +Fri Aug 3 08:07:45 2001 Balachandran Natarajan + + * ace/CDR_Base.cpp: Added a check for a memory allocation failure + in grow (). Thanks to Francis Paul for + pointing this out. + +Thu Aug 2 18:37:23 2001 Douglas C. Schmidt + + * ace/RW_Process_Mutex.cpp: Added ACE_DEFAULT_OPEN_PERMS + to the constructor call to ACE_RW_Process_Mutex so that it does + the right thing on Win32. Thanks to Wayne Erchak + for reporting this. This fixes + bugid 996. + +Thu Aug 02 13:04:19 2001 Steve Huston + + * ace/ace.icc: Added Intrusive_List.cpp to the TEMPLATE_FILES + section. + +Thu Aug 02 06:59:39 2001 Steve Huston + + * ace/Basic_Types.h (ACE_SIZEOF_WCHAR): If ACE_HAS_XPG4_MULTIBYTE_CHAR + is defined, use sizeof(wchar_t) to set ACE_SIZEOF_WCHAR. + +Wed Aug 1 16:05:49 2001 Carlos O'Ryan + + * Merged changes from the fix_886 branch + + Tue Jul 31 09:17:49 2001 Carlos O'Ryan + + * ace/Intrusive_List.h: + * ace/Intrusive_List.inl: + Add new methods to access the head and tail of the list. + + * ace/Intrusive_List.cpp: + Fixed the implementation of remove(), if the element to be + removed was the last on the list it wasn't removed at all. + Left some code to check invariants, have to find a way to keep + that code around with some optional compilation flags. + + Thu Jul 26 16:50:54 2001 Carlos O'Ryan + + * ace/Makefile: + * ace/Makefile.am: + * ace/Makefile.bor: + * ace/Intrusive_List.h: + * ace/Intrusive_List.inl: + * ace/Intrusive_List.cpp: + Add new template to implement intrusive lists, i.e. lists that + assume their elements implement the next() and prev() methods. + + * ace/Intrusive_List_Node.h: + * ace/Intrusive_List_Node.inl: + * ace/Intrusive_List_Node.cpp: + Helper class to add the requirements of ACE_Intrusive_List to + any other class, simply do: + class Foo : public ACE_Intrusive_List_Node + +Wed Aug 1 15:57:35 2001 Ossama Othman + + * ace/Message_Block.cpp (release, release_i): + + Obtain the pointer to the allocator from the object that will be + destroyed before calling ACE_DES_FREE on the object. Previously + we were obtaining the allocator after the object was destroyed, + due to the way the ACE_DES_FREE macro works. Thanks to Hyman + Rosen for reporting the problem, and to + Carlos for suggesting a fix. [Bug 992] + +Wed Aug 1 15:00:21 2001 Douglas C. Schmidt + + * ace/Log_Record.{h,i}: Changed msg_data_len() from a "setter" + to a "getter" method, which makes more sense. Thanks to Patrick + Rabau for reporting this. + +Wed Aug 1 12:43:57 2001 Ossama Othman + + * ace/Svc_Conf_l.cpp: + + Reintegreated Nanbor's change (Wed Jun 13 10:22:10 2001 Nanbor + Wang ) that enables proper handling of + UNICODE Service Configurator directives. + +Wed Aug 1 07:14:42 2001 Douglas C. Schmidt + + * include/makeinclude/platform_vxworks5.x_g++.GNU: Checked in a new + version of this file, which includes support for the Hitachi + chip. Thanks to Frank Wolf for this. + + * ace/Log_Record.cpp (format_msg): Added a cast to fix a warning. + Thanks to Bala for reporting this. + +Tue Jul 31 22:53:26 2001 Ossama Othman + + * tests/libService_Config_DLL.icc: + + New Visual Age project file for the libService_Config_DLL + library. + + * tests/Makefile.am: + + Added build targets/dependencies for the libService_Config_DLL + library. + +Tue Jul 31 22:46:33 2001 Ossama Othman + + * tests/Service_Config_DLL.dsp: + * tests/Service_Config_Test.dsp: + + Removed the static library configurations. The + Service_Config_Test currently requires dynamically loadable + objects. Fixes Win32 "LIB" build failures. + +Tue Jul 31 22:10:48 2001 Ossama Othman + + * tests/Service_Config_Test.cpp (run_test): + + Wrap strings passed to ACE_ARGV::add() within an ACE_TEXT + macro. Fixes Unicode conversion problems. + +Tue Jul 31 16:53:57 2001 Ossama Othman + + * ace/Svc_Conf.h (ace_yyrestart, ace_yy_delete_parse_buffer, + ace_yydirective): + + Remove these global function and variable declarations. They + are no longer used. + +Tue Jul 31 16:43:33 2001 Ossama Othman + + * ace/Basic_Types.h: + + If "__LITTLE_ENDIAN__" is defined then assume that the + architecture is little endian. Some compilers/platforms define + that macro. Suggested by Frank Wolf" . + + * ace/Svc_Conf.h (yy_push_buffer): + * ace/Svc_Conf.l (yy_push_buffer): + * ace/Svc_Conf_l.cpp (ace_yy_push_buffer): + * ace/Svc_Conf_Lexer_Guard.cpp (ACE_Svc_Conf_Lexer_Guard): + * ace/Svc_Conf_Lexer_Guard.h (ACE_Svc_Conf_Lexer_Guard): + + The Service Configurator directive is an "ACE_TCHAR *" not a + "char *". Updated these method/function parameters to accept + the former. Fixes a compile-time problem on "wchar/Unicode" + builds. + +Tue Jul 31 05:34:48 2001 Douglas C. Schmidt + + * ace/OS.h: Removed a spurious WNOHANG definition. Thanks to + Christina Junru for reporting this. + +Mon Jul 30 15:31:42 2001 Douglas C. Schmidt + + * ace/Log_Msg.{h,i,cpp}: Fixed this class so that all of its fields + are ACE_UINT32 or ACE_INT32 internally so that it'll always be + the same on all platforms. Thanks to Fabris + for reporting this. + +Tue Jul 31 10:22:38 2001 Ossama Othman + + * tests/Makefile: + + Only build the Service_Config_Test if shared libraries are + enabled, since it attempts to dynamically load a shared + library. + +Tue Jul 31 10:16:31 2001 Steve Huston + + * ace/Dump.h: Clarified the use of ACE_NDEBUG for turning this + feature off, not on. Thanks to Don Hinton + for noticing this. + +Mon Jul 30 13:41:00 2001 Nanbor Wang + + * ace/OS.cpp (ACE_Time_Value::FILETIME_to_timval_skew): Updated + docuementation to better explain the meaning of this constant. + Thanks to Mike Vitalo for motivating the + change. + +Mon Jul 30 09:43:06 2001 Douglas C. Schmidt + + * ace/OS.i (mutex_lock): Missing an argument to the ACE_OSCALL macro. + Thanks to Bala for reporting this. + +Mon Jul 30 05:43:23 2001 Douglas C. Schmidt + + * ace/Synch.h (ACE_Semaphore): Corrected the comment on + how to get POSIX Pthreads "implementation" of semaphores (which + supports the timed acquire() option). Thanks to Grzegorz + Sikora for reporting this. + +Sun Jul 29 19:03:56 2001 Douglas C. Schmidt + + * tests/Thread_Mutex_Test.cpp (test): Fixed this test to be + consistent wrt the errno for the timed acquire(), which should + now always be set to ETIME rather than ETIMEDOUT and EBUSY. + + * ace/Message_Queue_T.cpp (wait_not_full_cond, + wait_not_empty_cond): Fixed a nasty bug with the semaphore + version of ACE_Message_Queue that would have reared it's ugly + head if ACE_NULL_SYNCH were used when + ACE_HAS_OPTIMIZED_MESSAGE_QUEUE was enabled. Fixing this bug + also triggered the following changes. + + * ace/OS.{h,i}: Added support for ACE_OS::sema_wait(), + ACE_OS::mutex_lock(), ACE_OS::thread_mutex_lock() that take + ACE_Time_Value *. + + * ace/OS.i: For some odd reason the timeouts for the timed version + of mutex_lock() were returning a random smattering of errnos. + I've changed them to all be consistent with the + ACE_Condition_Thread_Mutex::wait() errno, which is ETIME. + + * ace/Synch.h: Updated the documentation of all the timed + acquire() methods to explain what the various return values + mean. + +Sun Jul 29 22:10:40 2001 Ossama Othman + + * tests/Service_Config_DLL.cpp: + * tests/Service_Config_DLL.h: + * tests/Service_Config_DLL.dsp: + * tests/Service_Config_DLL_Export.h: + * tests/Service_Config_Test.conf: + + New files associated with the existing Service_Config_Test. + They are used when testing the reentrance/thread-safety of the + Service Configurator, in addition to testing the Service + Configurator's ability to handle nested processing of Service + Configurator directives. + + * tests/Service_Config_Test.cpp (run_test): + + Add arguments to the Service Configurator argument vector to + make it process the newly added `Service_Config_Test.conf' + file. + + (main): + + Make the ACE_Thread_Manager wait for all running threads before + exiting the test. Processing the `Service_Config_Test.conf' + file causes some threads to be spawned. + +Sun Jul 29 19:19:20 2001 Ossama Othman + + * ace/Service_Config.cpp (process_directive, process_directives): + + Wrap the ACE_GUARD_RETURN macro within an ACE_MT block. The + ACE_Static_Object_Lock declaration is only visible if + ACE_HAS_THREADS is defined. This truly fixes the + single-threaded build problems. + +Sun Jul 29 19:06:11 2001 Ossama Othman + + * ace/Svc_Conf.y (ace_obstack): + * ace/Svc_Conf_y.cpp: + * ace/Svc_Conf_l.cpp: + + UNICODE updates and fixes. + +Sun Jul 29 10:50:45 2001 Ossama Othman + + * ace/Svc_Conf_Lexer_Guard.cpp: + + There is no longer any need to include "ace/Object_Manager.h" + + * ace/Service_Config.cpp: + + Include "ace/Object_Manager.h" to pull in the definition of + ACE_Static_Object_Lock. Fixes a problem found in Sun builds and + single-threaded builds. + +Sat Jul 28 23:03:24 2001 Ossama Othman + + The following are changes that make the Service Configurator + reentrant and thread-safe. + + * ace/Svc_Conf.y: + + Generate a pure (reentrant) parser using Bison. BYACC doesn't + support generation of reentrant parsers. + + * ace/Svc_Conf.l: + + Implemented "buffer stack" support. This feature makes it + possible to process Service Configurator directives within a + Service Object's init() method, i.e. support nested directive + processing. + + (ace_yyerrno): + + Moved declaration of ace_yyerrno from this file to + `Svc_Conf.y'. ace_yyerrno was not used in the generated + scanner. It was only used in the generated parser. + + (yy_delete_parse_buffer): + + There is no longer any need for this function. The lexer buffer + stack implementation handles memory management of lexer buffers. + + (yywrap): + + Do not call yy_delete_parse_buffer(). It is no longer necessary + to do so, in addition to the fact that that function was + removed (as described above). + + (<>): + + Do not call ACE_YY_NEW_FILE in this rule. The new buffer stack + implementation handles the buffer switching that ACE_YY_NEW_FILE + did, and more. + + * ace/Svc_Conf_Tokens.h: + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: + + Regenerated these files using updated Bison/YACC and FLEX input + files to pull in support for reentrant parsing and nested + processing of Service Configurator directives. + + * ace/Svc_Conf.h (ace_yy_push_buffer, ace_yy_pop_buffer): + + Added function prototypes for the newly implemented lexer buffer + stack manipulation functions. + + (ace_yylex): + + Added ACE_YYSTYPE parameter to this functions signature, as + required by the new reentrant parser support. + + (ACE_SERVICE_DIRECTIVE_STACK_DEPTH): + + New symbolic constant that defines the maximum supported depth + for nested Service Configurator processing. The current default + is 8. + + (ACE_YY_INPUT): + + No longer any need to redefine this macro to support scanning of + Service Configurator directive strings. The new lexer buffer + stack implementation provides support for lexer buffer scanning + from a string instead of a pointer to "FILE." + + (ace_yydirective): + + This global variable is no longer needed due to the fact that + the new buffer stack implementation handles directives read from + both a string and a file. + + * ace/Service_Config.cpp: + + (process_directive, process_directives): + + Obtain a recursive lock before manipulating the lexer buffer + stack, and invoking the parser and scanner. This makes + invocation of the scanner thread-safe. + + The new lexer buffer stack implemenation obviates the need to + call yyrestart() since buffer switching is handled by the stack + implementation. + + (open_i, close): + + No need to deallocate the lexer buffer since the buffer stack + implementation handles that. + + * ace/Svc_Conf_Lexer_Guard.h: + * ace/Svc_Conf_Lexer_Guard.cpp: + + New "guard" class that makes lexer buffer stack pushing and + popping exception-safe. + + * ace/Makefile: + * ace/Makefile.am: + * ace/Makefile.bor: + * ace/ace.icc: + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: + + Added Svc_Conf_Lexer_Guard.* sources to these Makefiles and + project files. + +Sat Jul 28 14:58:30 2001 Douglas C. Schmidt + + * ace/Svc_Conf_l.cpp: + * ace/Svc_Conf_y.cpp: Reran BYACC and FLEX on the Svc_Conf.l and + Svc_Conf.y files to regenerate them. Thanks to Bala for + motivating this. + + * netsvcs/clients/Tokens/collection/Makefile, + netsvcs/clients/Tokens/deadlock/Makefile, + netsvcs/clients/Tokens/invariant/Makefile, + netsvcs/clients/Tokens/mutex/Makefile, + netsvcs/clients/Tokens/rw_lock/Makefile, + examples/ASX/CCM_App/Makefile, + examples/Logger/Acceptor-server/Makefile, + examples/Reactor/Multicast/Makefile, + examples/Reactor/Ntalker/Makefile, + examples/Shared_Malloc/Makefile, + performance-tests/TCP/Makefile, + performance-tests/UDP/Makefile: Removed the line + include $(ACE_ROOT)/include/makeinclude/rules.LIB.GNU + so that these projects will build correctly on VxWorks with + Make 3.79.1. Thanks to Frank Wolf for reporting this. + +Fri Jul 27 11:24:50 2001 Douglas C. Schmidt + + * ace/Svc_Conf.y: Allow quoted strings as the pathname. Thanks + to Kevin Burge for suggesting this + and providing the fix. + + * ace/Svc_Conf.l: Added support for "~" in pathnames to support + Win32isms. Thanks to Kevin Burge + for suggesting this and providing the fix. + + * ace/Refcounted_Auto_Ptr.i (assign): Fixed the code to avoid a + race condition. Thanks to Charlie Duke for this fix. + +Thu Jul 26 08:15:36 2001 Douglas C. Schmidt + + * include/makeinclude/platform_vxworks5.x_g++.GNU: Changed + $PATH to $(PATH). Thanks to Frank Wolf for reporting this. + +Wed Jul 25 17:46:58 2001 Douglas C. Schmidt + + * ace/Asynch_Acceptor.{h,cpp}: Added an asynch_accept() accessor + method. Thanks to Craig L. Ching for + reporting this. + +Wed Jul 25 17:36:09 2001 Douglas C. Schmidt + + * ace/Refcounted_Auto_Ptr.i: Added a lock for the reference count + to the assign() method. Thanks to Charlie Duke + for reporting this. + +Fri Jul 27 23:17:31 2001 Steve Huston + + * ace/ace_wchar.h: If ACE_HAS_XPG4_MULTIBYTE_CHAR is set, then + also set up definitions for functions that are not present + (ACE_LACKS_ITOW, ACE_LACKS_WCSICMP, ACE_LACKS_WCSNICMP, + ACE_LACKS_WCSDUP). + + * ace/ace_wchar.inl: If not ACE_WIN32, include to see + strlen(). + + * ace/OS_String.inl (strstr): The XPG4 multibyte version of + strstr() is wcswcs(), whereas the ANSI C / UNIX98 version is + wcsstr(). So if ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, use + wcswcs. + +Fri Jul 27 21:52:48 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the IDL_Cubut test with GIOP Lite + script, to our daily builds. + +Fri Jul 27 16:50:49 2001 Steve Huston + + * tests/Log_Msg_Test.cpp: Silence a compile warning in g++. + +Fri Jul 27 12:18:49 2001 Steve Huston + + * ace/Log_Msg.cpp (log): Fixed compile error - missing "" around + 's' for the %S case. + +Fri Jul 27 11:07:26 2001 Chad Elliott + + * ace/OS.h: + + After conversation with Steve Huston, I am reverting his change + pertaining to HPUX from "Tue Jul 10 18:15:39 2001 Steve Huston + ". + +Fri Jul 27 10:57:24 2001 Chad Elliott + + * ace/SOCK_Dgram_Bcast.cpp: + + Fix the ACE_SOCK_Dgram_Bcast::mk_broadcast() which was completely + broken on AIX. The broadcast_client in docs/tutorials/008 now + works with the help of this change. + +Thu Jul 26 22:09:19 2001 Steve Huston + + * ace/Log_Msg.cpp (log): Extend behavior so that all printf + formatting conversion specifiers can be used with all legal + ACE_Log_Msg format characters. This allows the caller to line + up columns on any field, like line number or program name, or + thread ID. Thanks to Paul Caffrey for + motivating this extension. + + * tests/Log_Msg_Test.cpp: Added a new function, test_format_specs, + that verifies the formatting. Right now it does not detect the + correctness of the strings produced - they have to be examined + in the log file to check. This needs to be fixed still. + +Thu Jul 26 11:48:16 2001 Carlos O'Ryan + + * bin/count_lines: + Add a few new file types. + +Wed Jul 25 23:49:43 2001 Krishnakumar B + + * include/makeinclude/platform_tru64_g++.GNU: + + Fixed some missing defines in the Makefile for DEC Unix versions + 4.0D, 4.0E. We don't support or suggest this combination. Hence + the oversight in missing the needed defines. + + Thanks to Martin Krumpolec for reporting this. + +Wed Jul 25 23:49:00 2001 Craig Rodrigues + + * include/makeinclude/wrapper_macros.GNU: + + Remove extraneous rapi = 0. + +Wed Jul 25 18:53:18 2001 Ossama Othman + + * html/index.html: + + Added CORBA Security Service main page link to the list of + documentation. + +Wed Jul 25 17:41:43 2001 Ossama Othman + + * ltcf-c.sh: + * ltcf-cxx.sh: + * ltconfig: + + Removed these libtool related files. New versions of libtool + (GNU libtool >= 1.4b) no longer use them. + + * config.guess: + * config.sub: + * ltmain.sh: + + Removed these files. We no longer need to keep custom copies + lieing around since libtool 1.4b includes all of our local + changes (i.e. our changes have been folded into the upstream + libtool sources). + + * install-sh: + * missing: + * mkinstalldirs: + + Removed these files. Automake will automatically add these when + necessary. + +Wed Jul 25 16:29:48 2001 Steve Huston + + * tests/Max_Default_Port_Test.cpp: ACE-ified the code and fixed + a number of ACE_DEBUG %p directives without a corresponding + string. Also, closed a 2 handle-per-try handle leak, which + may have affected test results on some platforms. + * tests/Max_Default_Port_Test.h: Added a destructor to the + test class - it's used to close the acceptor handle down. + +Wed Jul 25 15:21:22 2001 Krishnakumar B + + * ace/OS.h: + + Fixed the _XOPEN_SOURCE checking to _XOPEN_SOURCE < 500 to fix + incorrect declaration of prototype. This fixes the warnings when + compiling with gcc-3.0. Thanks to Ossama for suggesting the fix. + +Wed Jul 25 08:05:45 2001 Balachandran Natarajan + + * tests/Thread_Pool_Reactor_Resume_Test.h: + * tests/Thread_Pool_Reactor_Resume_Test.cpp: Fixed a subtle race + condition. This hardly showed up in many of our daily + builds. The race condition had to be fixed to show the users of + the cautious approach that one needs to take if they are + resuming the handle in the application itself. + +Tue Jul 24 16:41:57 2001 Joe Hoffert + + * ace/Thread_Manager.cpp : + Added "&& ! defined (ACE_HAS_PACE)" ifdefs to already existing + #if defined (VXWORKS) sections of code to get ACE_HAS_PACE to + compile on VxWorks. + + * ace/OS.i : + * ace/OS.cpp: + Fixed formatting of some comments and added needed PACE + calls for ACE_HAS_PACE on VxWorks. + + * ace/OS.h : + Put #if !defined guards around the ACE_THR_PRI* macros + so that we can define them in the config*.h files if + they need to be corrected. For instance, ACE_THR_PRI_OTHER_MIN + has a different value on SunOS 5.8 than it does on SunOS 5.7, + i.e., -20 vs. 0 respectively. + + Also, added some needed typedefs and #define for ACE_HAS_PACE + on VxWorks and updated some comments concerning ACE_OS::thr_create + flags. + + * ace/Sched_Params.cpp (priority_min, priority_max): + Changed to return correct thread priority min/max for + Solaris threads. We now use the ACE_PRI_THR* macros + for these values while still calling ACE_OS::priority_control + for process and LWP priorities. + + * ace/config-sunos5.8.h: + Added setting of ACE_THR_PRI_OTHER_MIN to be correct + for SunOS 5.8. + +Tue Jul 24 13:47:32 2001 Balachandran Natarajan + + * ace/SSL/SSL_Asynch_Stream.h (ACE_SSL_Asynch_Stream): + * ace/SSL/SSL_Asynch_Stream.cpp: Added a open () method that + matches the signature of ACE_Service_Handler. This should fix + the warnings in Borland builds that complain about hiding + the virtual functions. + +Tue Jul 24 10:56:04 2001 Ossama Othman + + * bin/generate_doxygen.pl (TAO_DOCS): + + Added "tao_security" and "tao_ssliop" Doxygen configurations to + the list of documentation to generate. + +Tue Jul 24 07:45:03 2001 Douglas C. Schmidt + + * ace/Containers_T: Fixed some problems with the lack of + const for the ACE_DLList and ACE_Double_Linked_List classes. + Thanks to Michael Kircher for reporting this. + + * ace/config-cygwin32-common.h: Removed the ACE_LACKS_FORK + macro since this is apparently working on Cygwin. Thanks tj + Stefan Kluehspies for reporting + this. + + * ace/config-cygwin32.h: Removed the #define _CLOCKID_T + macro, which should now be handled by the following change. + + * ace/OS.h: Added a #defined for _CLOCKID_T_. Thanks to + Stefan Kluehspies for + reporting this. + +Tue Jul 24 11:10:59 2001 Krishnakumar B + + * ace/OS.h: + + Fix the compile errors seen on gcc-3.0 with -pedantic and + -Wno-long-long. This should fix all the errors. + +Tue Jul 24 10:07:31 2001 Chad Elliott + + * include/makeinclude/platform_sunos5_g++.GNU: + + Add an optimize override to 0 for g++ 3.0. The compiler breaks on + a tremendous amount of files, even with -O. + +Tue Jul 24 10:04:52 2001 Chad Elliott + + * ace/INET_Addr.cpp: + + Corrected a run-time error on Tru64 with gcc. Any executable + that called ACE_INET_Addr::get_host_name() would core dump. + This was caused by the call to ACE_OS::gethostbyaddr_r(). + +Tue Jul 24 08:20:02 2001 Chad Elliott + + * include/makeinclude/platform_aix_ibm.GNU: + + Change -O2 to -O. The optimizer seems to be a tiny + bit broken, which is demonstrated by a few TAO and orbsvcs + tests. + +Mon Jul 23 17:38:46 2001 Ossama Othman + + * etc/tao_security.doxygen: + * etc/tao_ssliop.doxygen: + + New Doxygen files for TAO's CORBA security libraries. + +Mon Jul 23 13:48:26 2001 Ossama Othman + + * ace/MEM_Connector.cpp (connect): + + Disable non-blocking on the stream after its handle has been + set. Previously, non-blocking was disabled on an uninitialized + MEM_Stream, after which the handle was set (i.e. initializing + the stream). In order to properly disable non-blocking on a + stream, its handle must be set first since ioctl() operations + are typically performed on the underlying stream handle. + +Mon Jul 23 13:06:39 2001 Steve Huston + + * ace/WFMO_Reactor.cpp (event_handling): Corrected the loop check + to account for a zero ACE_Time_Value *, avoiding a crash in + tests/Reactor_Timer_Test, as well as any other program that + called ACE_Reactor::handle_events with a zero timer pointer. + +Mon Jul 23 10:39:55 2001 Nanbor Wang + + * ace/OS.h: Added /**/ between #include and to + avoid warning from CE compiler. + + * ace/ace_dll.vcp: Added Obchunk.cpp to the project. + +Sun Jul 22 08:19:43 2001 Douglas C. Schmidt + + * ace/config-cygwin32.h: ADded a #define for_CLOCKID_T. Thanks to + Christophe Galerne for + reporting this. + + * ace/Log_Record.cpp (priority_names_): Added commas after the + 'ACE_LIB_TEXT ("LM_UNK(04000)")' lines. Thanks to Steve Harris + for reporting this. + +Sat Jul 21 19:56:08 2001 Douglas C. Schmidt + + * ace/Map_T.{h,i}: Made current_value() a const member function. + Thanks to Johnny Willemsen for reporting this. + +Fri Jul 20 10:16:46 2001 Douglas C. Schmidt + + * ace/Connector.cpp (create_AST): Replaced some calls to + sh->get_handle () with a cached value of handle. This fixes a + bug with gcc 2.96 on Tornado 2.1/VxWorks for SuperH. Thanks to + Frank Wolf for reporting this. + + * examples/Connection/non_blocking/CPP-acceptor.cpp: + * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: + * examples/Connection/non_blocking/CPP-connector.cpp: Changed the + SH macro to SVH to avoid clashes with a macro in VxWorks. + Thanks to Frank Wolf for reporting this. + +Thu Jul 19 06:55:07 2001 Douglas C. Schmidt + + * ace/config-g++-common.h: Version 2.96 of g++ on VxWorks + is missing auto_ptr, so let's add the ACE_LACK_AUTO_PTR flag + there. Thanks to Frank Wolf for suggesting this. + +Fri Jul 20 09:47:38 2001 Nanbor Wang + + * ace/Log_Msg.cpp: Fixed WinCE errors. CE does not support + UNIX_Syslog. + +Thu Jul 19 22:39:32 2001 Nanbor Wang + + * tests/MEM_Stream_Test.cpp: + * ace/MEM_IO.h: + * ace/MEM_IO.i: + * ace/MEM_IO.cpp: On non-Win32 platforms, disable multithreaded + MEM_IO if _ACE_USE_SV_SEM is defined. + +Thu Jul 19 15:25:11 2001 Paul Calabrese + + * ace/MEM_Acceptor.i (mmap_prefix): + + Fix case where a null pointer is passed in. + +Thu Jul 19 06:55:07 2001 Douglas C. Schmidt + + * ace/Connector.cpp (connect_svc_handler): Missed one change... + Thanks to Bala for reporting this! + + * include/makeinclude/platform_vxworks5.x_g++.GNU (HOST_DIR): Added + support for the SH7700 and SH7700LE. Thanks to Frank Wolf + for reporting this. + + * ace/OS.i (truncate): Make sure to close the handle that we + opens. Thanks to Lothar for reporting this. + + * ace/Connector.cpp: Changed the SH macro to SVH to avoid clashes + with a macro in VxWorks. Thanks to Frank Wolf + for reporting this. + +Wed Jul 18 13:15:06 2001 Douglas C. Schmidt + + * ace/OS_Dirent.cpp (scandir_emulation): Removed the calls to the + ACE_ERROR_RETURN macros to avoid dependencies on ACE_Log_Msg + from within the ACE_OS layer. Thanks to Bala for pointing this + out! + + * ace/ACE.{h,cpp}: Added a new wrapper method for ACE_OS::select() + that uses ACE_Handle_Set *'s rather than fd_set *'s. This is + motivated by work Steve Huston and I are doing on our new book + "C++ Network Programming: Resolving Complexity with ACE and + Patterns." + + * ace/Malloc_T.i (release): Removed an unnecessary "else" to + make gcc 2.96 happy. Thanks to Frank Wolf for + reporting this. + + * Happy birthday to me and Angelo Corsaro! + +Tue Jul 17 00:34:40 2001 Douglas C. Schmidt + + * ace/SString.h (ACE_Tokenizer): Make sure that the data members + are protected, not private... Thanks to Martin Krumpolec for + reporting this (again)! + +Wed Jul 18 16:40:56 2001 Irfan Pyarali + + * ace/Log_Msg.cpp (program_name): Undid the following changes: + + ChangeLogTag:Tue Jul 10 11:32:26 2001 Tibor Kiss + + Tibor will be looking into this further since this change + currently causes shutdown problems on Win2000. + +Wed Jul 18 15:59:03 2001 Krishnakumar B + + * ace/config-tru64.h: + + Removed _LIBC_POLLUTION_H. It seems that this macro is causing + problems for some users. Thanks to Pierre Oberson + for prompting this fix. + +Tue Jul 17 13:00:11 2001 Balachandran Natarajan + + * tests/run_test.lst: Enabled the MEM_Stream test on Linux. + +Mon Jul 16 14:59:32 2001 Douglas C. Schmidt + + * ace/Memory_Pool.h (ACE_Shared_Memory_Pool): Added a comment + that discourages developer from using the ACE_Shared_Memory_Pool + and points them to the ACE_MMAP_Memory_Pool instead. Thanks to + Johnny Chen for motivating this. + + * ace/OS_Dirent.cpp (readdir_emulation): Fixed a handle leak + in the event that errors occur. Thanks to Kevin Burge + for reporting this. + + * ace/Log_Msg_UNIX_Syslog.cpp (open): Add an ACE_const_cast() + to the program name for platforms like LynxOS whose openlog() + method is char * rather than const char *. Thanks to Bala for + reporting this. + +Sun Jul 15 11:06:33 2001 Douglas C. Schmidt + + * ace/Log_Msg_NT_Event_Log.cpp: Fixed the implementation so that + it's consistent with the new program_name() features. Thanks to + Chris Kohloff for this fix. + +Sun Jul 15 11:04:26 2001 Carlos O'Ryan + + * ace/SSL/ACE_SSL.dsp: + Removed references to $OPENSSL_ROOT, the user should configure + those in the Tools -> Option -> Directories tab. + +Fri Jul 13 23:02:46 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_Stream.h: + * ace/SSL/SSL_Asynch_Stream.cpp: + * ace/SSL/SSL_Asynch_BIO.h: + * ace/SSL/SSL_Asynch_BIO.cpp: + + Only support asynchronous SSL streams when using OpenSSL > + 0.9.5a. The BIO method signatures changed in OpenSSL 0.9.6. + +Fri Jul 13 22:48:56 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_BIO.cpp (methods_ACE): + + Removed excess element in aggregate initializer. + +Fri Jul 13 22:29:01 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_Stream.cpp (print_error): + + The OpenSSL ERR_error_string_n() function is only supported in + OpenSSL 0.9.6 or better. + +Fri Jul 13 14:59:18 2001 Alexander Libman + + * ace/WIN32_Asynch_IO.h (ACE_WIN32_Asynch_Result): + * ace/WIN32_Asynch_IO.cpp (set_error, set_bytes_transferred): + + Added new methods set_error() and set_bytes_transferred(). + Needed for below changes and new asynchronous SSL stream + implementation. + + * ace/WIN32_Proactor.cpp (handle_events): + + Fixed error handling semantics so that it is consistent with the + POSIX Proactor error handling semantics. + + (post_completion): + + Pass the amount of bytes transferred and the completion key to + the Win32 PostQueuedCompletionStatus() function. The error, if + any, will later be extracted in the handle_events() method. + +Fri Jul 13 15:59:45 2001 Douglas C. Schmidt + + * netsvcs/servers/main.cpp (main): The server was always outputing + LM_DEBUG information, even when the program was not run with the + -d command line argument. Therefore, changed the following + lines from: + + if (ACE::debug () == 0) + ACE_Log_Msg::disable_debug_messages (); + + to: + + if (ACE::debug () == 0) + ACE_LOG_MSG->priority_mask (~LM_DEBUG, ACE_Log_Msg::PROCESS); + + Thanks to Jerry D. De Master for + reporting this fix. + +Fri Jul 13 12:16:03 2001 Ossama Othman + + * ace/SSL/SSL_Asynch_BIO.h: + * ace/SSL/SSL_Asynch_BIO.cpp: + * ace/SSL/SSL_Asynch_Stream.h: + * ace/SSL/SSL_Asynch_Stream.cpp: + + New asynchrounous SSL stream implementation contributed by + Alexander Libman . + + * ace/SSL/ACE_SSL.dsp: + * ace/SSL/Makefile: + * ace/SSL/Makefile.bor: + + Added new asynchronous SSL stream source files to these + Makefiles and project files. + +Fri Jul 13 09:40:08 2001 Jerry D. De Master + + * ace/Log_Msg.*, + ace/Logging_Strategy.*, + ace/Log_Msg_UNIX_Syslog.*: + Applied patches to ACE_Log_Msg, ACE_Logging_Strategy, and + ACE_Log_Msg_UNIX_Syslog that are required to add the program + name logging strategy option ('n') and to initialize the UNIX + syslog facility with the program name. Also included are Boris + Kolpackov patches for ACE_LACKS_IOSTREAM_TOTALLY + to ACE_Logging_Strategy. + +Thu Jul 12 19:54:27 2001 Ossama Othman + + * examples/Registry/test_registry_update.cpp (main): + + Fixed unused argument warning. + +Thu Jul 12 19:57:12 2001 Frank Hunleth + + * bin/auto_run_tests.lst: + + Added TAO/tests/RTCORBA/ORB_init to the auto run list. + +Thu Jul 12 17:11:35 2001 Krishnakumar B + + * bin/nightlybuilds/builds.lst (WEB): + + Temporarily removed the IA-64 build till some issues get sorted + out. + +Thu Jul 12 06:01:03 2001 John Michael Zorko + + * netsvcs/lib/Server_Logging_Handler.cpp: + Added an an additional #define in config-macosx.h called + ACE_HAS_MACOSX_DYLIB, and checked to see if this was _not_ + defined before instantiating the offending template in + Server_Logging_Handler.cpp. OS X has this thing about .dylibs + (OS X version of .so) where they can't have any duplicate + symbols, which is why libnetsvcs wasn't building on OS X + earlier. This fixes that. + + * include/makeincludes/platform-macosx.GNU: Added -lACE to the + LIBS line, which fixed the majority of the build problems. + + * ace/config-macosx.h: Added the ACE_HAS_MACOSX_DYLIB #define + mentioned above. + +Thu Jul 12 06:01:03 2001 Douglas C. Schmidt + + * ace/TLI_Connector.cpp (complete): Changed ACE_OS::t_rcvconnect() + to simply t_rcvconnect(). Thansk to Andreas Geisler for + reporting this. + +Thu Jul 12 09:43:36 2001 Ossama Othman + + * ace/FILE_Connector.h (ACE_FILE_Connector, connect): + + Removed the default O_EXCL flag I added a few days ago. It is + mostly useful for preventing symbolic link attacks in a + directory with global write permissions. Pass the + responsibility of using the O_EXCL flag when necessary on to the + application developer. + +Wed Jul 11 22:31:50 2001 Krishnakumar B + + * include/makeinclude/rules.local.GNU (clean.local): + + Added ti_files to remove the template cache generated by KCC. + + * ace/TLI_Acceptor.cpp(open_new_endpoint): + + Fixed a small typo causing compilation errors under Tru64. + +Wed Jul 11 13:06:33 2001 Steve Huston + + * tests/Log_Msg_Test.cpp: Changed the ostream test to close the + under-test ostream file before trying to open it and read the + contents. Avoids the "already open" error now that + ACE_FILE_Connector includes O_EXCL by default, and avoids any + potential file buffering issues reading an already-open file. + +Wed Jul 11 08:31:02 2001 Jeff Parsons + + * tests/Dirent_Test.cpp: + + Wrapped a string literal with ACE_TEXT, to get rid of a Win2000 + WChar build error. + +Wed Jul 11 06:41:43 2001 Douglas C. Schmidt + + * ace/TLI_Stream.cpp, + * ace/TLI_Connector.cpp, + * ace/TLI_Acceptor.cpp: Added enhancements so that the code would + work on Win32. Thanks to Andreas Geisler + for reporting this. + +Tue Jul 10 19:26:15 2001 Ossama Othman + + * ace/ace_dll.dsp: + + Disabled generation of source browse information. It was + causing problems on some existing builds that didn't use it. + + * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): + + Removed certificate verification code. It is up to the + application, not the ACE_SSL library, to perform proper + certificate verification. + +Tue Jul 10 23:02:00 2001 Craig Rodrigues + + * tests/Log_Msg_Test.cpp: + Fix test so it doesn't open output file to write to twice. + Thanks to Ossama for finding it. + +Tue Jul 10 19:10:19 2001 Steve Huston + + * ace/ace.icc: Corrected the mis-applied patch for ace.icc in + Mon Jul 09 19:12:42 2001 Steve Huston + +Tue Jul 10 16:01:52 2001 Ossama Othman + + * THANKS: + + Added Sangeetha Ramadurai to + the hall of fame. + +Tue Jul 10 18:15:39 2001 Steve Huston + + * ace/WFMO_Reactor.cpp (event_handling): Move the logic for + noticing that the wait timed out, but did not expire any + timers, into this function. Will remove it from Reactor.cpp, + to properly move the fix into handle_events() rather than + needing to call run_reactor_event_loop to get it right. + * ace/Select_Reactor_T.cpp - still need to add similar logic here. + + * ace/config-sunos5.6.h: Re the following: + Mon Jul 2 15:26:32 2001 Nanbor Wang + Replaced ACE_HAS_POSIX_SEM, and left ACE_LACKS_NAMED_POSIX_SEM out. + Solaris does indeed have POSIX semaphores in 2.6 and later, but + requires the changes to OS.i below to work right. + + * ace/OS.h: For ACE_PROC_PRI_OTHER_MIN (and MAX), on HP-UX, + convert the HP-UX priority value to the POSIX range. + + * ace/OS.i (ACE_OS::sema_init, named POSIX semaphore): On Solaris + and HP-UX, the name of a POSIX semaphore needs to start with + a slash (further restricted on Solaris). Enforce that here by + prepending a slash, or by chopping off parts of the name. + +Tue Jul 10 16:08:04 2001 Krishnakumar B + + * include/makeinclude/platform_osf1_4.0.GNU: + + Fixed the default flags so that it enables the user to override + settings. Now that the long pending fix to wrapper_macros.GNU is + through, this should work fine now. + +Tue Jul 10 13:37:31 2001 Jeff Parsons + + * ace/OS_Dirent.cpp (readdir_emulation): + + Removed the hard cast to char* of one of the two arguments in + a call to strcpy. In the WChar win32 build, this cast was + causing the source and target strings to be of different widths. + +Tue Jul 10 11:32:26 2001 Tibor Kiss + + * ace/Log_Msg.cpp: + Completed the ACE_Log_Msg::close method with the + ACE_Thread::keyfree (log_msg_tss_key_) and key_created_ = 0; to + ensure restartability by multiple successive ACE::init and + ACE::fini calls. This fix prevent leaks from occurring when + ACE::init() and ACE::fini() are called multiple times. + +Tue Jul 10 11:12:00 2001 Chris Gill + + * ace/OS_Dirent.{h, inl}: refactored XDIR, dirent usage for pSOS - + user is no longer responsible for buffer deallocation after each + readdir call, only for passing the pointer returned from opendir + into closedir when all done. ACE_DIR structure is now used + consistently for all pSOS dirent calls. + +Tue Jul 10 06:06:07 2001 Douglas C. Schmidt + + * ace/Service_Repository.h: Updated the insert() comment to + clarify the return values. Thanks to Johnny Willemsen for + suggesting this. + + * ace/Service_Repository.{h,i}: Made the current_size() and + total_size() methods const. Thanks to Johnny Willemsen for + suggesting this. + + * ace/Service_Repository.h: Fixed a typo in the comments. Thanks + to Johnny Willemsen for reporting this. + +Tue Jul 10 08:39:04 2001 Chad Elliott + + * ace/config-vxworks5.x.h: + + Added the macro ACE_LACKS_UNIX_SYSLOG. + +Tue Jul 10 08:26:57 2001 Chad Elliott + + * ace/Log_Msg_UNIX_Syslog.cpp: + + Added a macro, ACE_LACKS_SETLOGMASK, for platforms that have + syslog, but don't have setlogmask(). + + * ace/config-chorus.h: + + ChorusOS 4.0.1 happens to be one of them. + +Tue Jul 10 09:00:12 2001 Johnny Willemsen + + * ace/OS_Dirent.h + Made the member 'd_name' of the 'dirent' struct non-const, because + BCB had problems with it + +Mon Jul 09 22:41:43 2001 Ossama Othman + + * include/makeinclude/wrapper_macros.GNU (exceptions): + + Include platform_macros.GNU before the default for "exceptions" + is set. This fixes a problem where the default native + exceptions setting in platform_linux.GNU was not set due to the + fact that it was previously set in wrapper_macros.GNU. Thanks + to Hans Utz for tracking down + the problem. + +Mon Jul 9 16:40:02 2001 Ossama Othman + + * ace/Dirent_Selector.cpp (ACE_Dirent_Selector): + + Correct order of initialization of members to match order of + declaration. Fixes a warning issued from GCC. + + * ace/Dirent_Selector.inl: + + Added missing RCS ID keyword. Fuzz was whining about the lack + of it. + + * ace/Dirent_Selector.h: + + Corrected some Doxygen comments. + +Mon Jul 09 19:12:42 2001 Steve Huston + + * ace/ace.icc: Added Log_Msg_UNIX_Syslog and Log_Msg_NT_Event_Log + modules to the LOGGING component. Added Dirent_Selector to the + UTILS component. + +Mon Jul 9 15:59:56 2001 Joe Hoffert + + * ace/config-lynxos.h: + Added ACE_LACKS_MKSTEMP since LynxOS doesn't seem to have + this. + +Mon Jul 9 15:28:29 2001 Jeff Parsons + + * ace/Dirent_Selector.cpp: + * ace/Dirent_Selector.h: + + Added ACE_INLINE guards around inclusion of Dirent_Selector.inl. + + * ace/ace_dll.dsp: + * ace/ace_lib.dsp: + + Added Dirent_Selector.{h,i,cpp} to these projects. + +Mon Jul 9 06:52:09 2001 Douglas C. Schmidt + + * ace/Makefile.bor (OBJFILES): Added the Dirent_Selector.obj file. + + * tests/Dirent_Test.cpp: Integrated a new test for the + ACE_Dirent_Selector class. + + * ace/Makefile (UTILS_FILES), + * ace/Dirent_Selector.h, + * ace/Dirent_Selector.inl, + * ace/Dirent_Selector.cpp: Added support for a C++ wrapper facade that + encapsulates ACE_OS_Dirent::scandir(). Thanks to Rich Newman for + contributing this, as well. + + * ace/OS_Dirent.h, + * ace/OS_Dirent.inl, + * ace/OS_Dirent.cpp: Added support for the scandir() feature, which + makes it possible to selectively pick which files in a directory + to iterate over. Also fixed a bug in the emulation of dirent. + Thanks to Rich Newman for contributing + these fixes. + +Mon Jul 09 14:39:50 2001 Irfan Pyarali + + * ace/OS.i (thr_getprio and thr_setprio): Changed these two + function such that if we are on Solaris and we have pthreads + enabled, we should use the pthread calls rather than the native + Solaris calls. The reasons for choosing the pthread calls is + due to following problems with the native calls: + + - thr_getprio() is evil because on Solaris 5.8, a thread with + priority -20 (SCHED_OTHER) is reported to have priority 80. + + - thr_setprio() is evil because it cannot set the negative + priorities on Solaris 5.8. + + - Also, thr_setprio() cannot change the priority of a thread + with negative priority to a positive priority on Solaris 5.8 + (even though there is no error reported and thr_getprio() shows + that the change happened but pthread_getschedparam() shows that + no change happened). + + - In addition, suppose a thread of policy SCHED_RR or SCHED_FIFO + uses thr_setprio() to reset its priority, the priority will be + reset but the scheduling policy will be dropped to SCHED_OTHER. + This happens with both Solaris 5.7 and Solaris 5.8. + +Mon Jul 9 13:33:43 2001 Joe Hoffert + + * include/makeinclude/wrapper_macros.GNU: + Change PACE path to start at $PACE_ROOT rather than $ACE_ROOT/PACE + since the latter is not as flexible. Defined PACE_ROOT if not + already defined. Also, added inclusion of PACE library for VxWorks + even when inlining since not all the PACE functions should be + inlined. + +Mon Jul 09 10:59:22 2001 Ossama Othman + + * THANKS: + + Added Mouna Seri to the hall of fame. + +Mon Jul 9 11:10:44 2001 Jeff Parsons + + * ace/config-win32-msvc-5.h: + * ace/config-win32-msvc-6.h: + + Added conditional definitions for ACE_LD_DECORATOR_STR + "mfc" and "mfcd" so that the MFC release and debug versions + of libraries can be dynamically loaded in the same way that + the non-MFC release and debug versions are. Thanks to + Francois Bernier for suggesting + this enhancement. + +Mon Jul 09 11:31:12 2001 Johnny Willemsen + + * ace/pre.h + * include/makeinclude/compiler.bor + + Removed the disabling of the compiler warning 'parameter never + used'. Unused parameters are handled by ACE_UNUSED_ARG macro. + A missing ACE_UNUSED_ARG is now shown as warning in the BCB build + log. + +Sun Jul 08 11:26:23 2001 Ossama Othman + + * ace/OS.h (mkstemp): + * ace/OS.i (mkstemp): + + New mkstemp() wrapper. It is assumed to be available on the + given platform, unless ACE_LACKS_MKSTEMP is defined. + + * ace/FILE_Connector.h: + + Added O_EXCL to the default flags. This is a security hole + fix. + + * ace/FILE_Connector.cpp (connect): + + If mkstemp() is available, then use it to create a temporary + file rather than mktemp() (via ACE_FILE_Addr) since mktemp() is + susceptible to a denial-of-service attack. + + * ace/config-win32-common.h: + * ace/config-vxworks5.x.h: + + mkstemp() is not supported on MS Windows and VxWorks. Define + ACE_LACKS_MKSTEMP in these headers. + +Sun Jul 8 08:13:12 2001 Douglas C. Schmidt + + * ace/Select_Reactor_Base.h: Added a comment explaining what + the ACE_HAS_REACTOR_NOTIFICATION_QUEUE macro means. Thanks to + Kobi Cohen-Arazi for motivating this. + +Sat Jul 7 18:53:49 2001 Krishnakumar B + + * include/makeinclude/platform_osf1_4.0.GNU: + + Revert the changes made to this file. Please see the file for a + lengthy description. + +Fri Jul 06 21:53:26 2001 Christopher Kohlhoff + + * ace/config-win32-borland.h: + Reverted addition of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION. + +Fri Jul 6 19:55:23 2001 Douglas C. Schmidt + + * examples/Reactor/Multicast: Adding the support for UNIX Syslog + broke this example because LOG_DEBUG was suddenly defined as a + macro (it's in syslog.h). I've fixed this by renaming the LOG_ + enums to LM_ instead. Thanks to Bala for reporting this. + +Fri Jul 06 20:23:41 2001 Steve Huston + + * ace/Refcoutned_Auto_Ptr.i (null): Change const_cast<> to + ACE_const_cast() to build on older compilers, like IBM C/C++ 3.6.6. + +Fri Jul 06 20:13:29 2001 Steve Huston + + * netsvcs/lib/Name_Handler.cpp: + * netsvcs/lib/Server_Logging_Handler_T.cpp: + * netsvcs/lib/Token_Handler.cpp: + + More ACE_DEBUG disables. + +Fri Jul 6 15:55:54 2001 Ossama Othman + + * ace/OS.h (ACE_FD_SETSIZE): + + Integrated patch from Jody Hagins . Set the + default reactor file descriptor set size to be an integer + constant rather than a preprocessor constant. Some third party + software #undef FD_SETSIZE in their header files, causing build + problems in ACE. + +Fri Jul 06 18:20:39 2001 Steve Huston + + * netsvcs/lib/Client_Logging_Handler.cpp: #if 0'd out a bunch of + ACE_DEBUG statements that aren't appropriate for use in commercial + logging. These can be #if 1'd if there's some doubt while debugging + this stuff, but they aren't useful once debugged, and are + distracting since they're interespersed with application records. + +Fri Jul 6 13:40:20 2001 Balachandran Natarajan + + * ace/Log_Msg_UNIX_Syslog.cpp: Fixed a warning in g++. + +Fri Jul 06 11:39:41 2001 Steve Huston + + * ace/INET_Addr.h: Clarified (and improved doxygenation) of + constructor and set() methods regarding byte orders. + + * tests/Max_Default_Port_Test.icc: New file for this test. + * tests/tests.icp: Added Max_Default_Port_Test + +Fri Jul 6 08:36:20 2001 Chad Elliott + + * netsvcs/Makefile: Don't build this if ACE_COMPONENTS does not + contain Other. The netsvcs library requires Naming_Context. + +Fri Jul 6 05:44:13 2001 Douglas C. Schmidt + + * ace/Makefile (LOGGING_FILES): Added support for + Log_Msg_UNIX_Syslog. + + * ace/Log_Msg_UNIX_Syslog.{h,cpp}: + * ace/Log_Msg.cpp, + * ace/OS.h: Added support for a new UNIX syslog backend for the + ACE_Log_Msg class. Thanks to Jerry D. De Master + and Robert Davidson + . + + * ace/SOCK_Dgram.h: Fixed a typo in one of the send() method + comments. Thanks to Alain Decamps for + reporting this. + + * ace/config-macosx.h: Added a new file courtesy of John + Zorko so that things will work on MacOSX. + +Thu Jul 5 23:22:21 2001 Balachandran Natarajan + + Fixes that were required for fixing bug 575. Merged in from + branch bug_575_stage_2. + +Thu Jul 5 23:09:29 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp (ACE_InputCDR): Fixed a long standing bug in + the branch. This caused the DSI_Gateway test to fail. The + problem was from setting the write pointer to a wrong position + during the construction. + +Thu Jul 5 14:39:45 2001 Balachandran Natarajan + + * Merged with the main trunk and moved it to a new branch by name + bug_575_stage_2. + +Thu Jun 28 15:25:07 2001 Balachandran Natarajan + + * ace/Reactor.h (ACE_Reactor): + * ace/Reactor.cpp: Added a new method resumable_handler () to the + reactor interface. This would indicate whether the application + can take advantage by resuming the handlers themselves or + not. Not all reactors can allow this feature. + + * ace/Reactor_Impl.h: + * ace/Reactor_Impl.cpp: Added a pure virtual function so that all + the implementations can decide whether the handlers are + resumable or not. + + * ace/Select_Reactor_Base.h: + * ace/Select_Reactor_Base.cpp: + * ace/TP_Reactor.h: + * ace/TP_Reactor.cpp: + * ace/WFMO_Reactor.h: + * ace/WFMO_Reactor.cpp:Implemented resumable_handlers (). + +Sun Jun 24 11:25:07 2001 Balachandran Natarajan + + * Created this file. Got the whole stuff in ace to a new branch by + name bug_575_stage_1. This ChangeLog file will be in branch + bug_575. + +Fri Jun 22 16:52:13 2001 Balachandran Natarajan + + * ace/CDR_Stream.cpp: Changed the copy constructor for the + ACE_InputCDR's. Instead of duplicating the ACE_Data_Block we + now use the new copy constructor in the ACE_Message_Block. + + * ace/Message_Block.h: + * ace/Message_Block.cpp: Added a new copy constructor to the + ACE_Message_Block. This copy constructor does a deep copy from + the data block if the data block of the incoming message block + is on the stack or does a shallow copy of the data block (by + incrementing the ref count) if it is on the heap. + + END of entries from bug_575_stage_2. + +Thu Jul 5 22:07:33 2001 Balachandran Natarajan + + * bin/auto_run_tests.lst: Added the new perl script in LongUpcalls + in the daily builds. + +Thu Jul 5 20:36:00 2001 Craig Rodrigues + + * ace/config-win32-borland.h + define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION + * tests/Token_Test.cpp + Fix template instantiation problem. + +Wed Jul 4 15:35:47 2001 Joe Hoffert + + * tests/run_tests.vxworks: + Removed invocation of CDR_Array_Test. According to the ace + config files the compiler we are using is pre 2.8 (i.e., + ACE_HAS_GNUG_PRE_2_8 is defined). Therefore don't run + CDR_Array_Test since the Makefile doesn't build it (due to + the ACE_HAS_GNUG_PRE_2_8 macro). + +Wed Jul 04 14:26:10 2001 Irfan Pyarali + + * ace/Synch_T.h (class ACE_Acquire_Method): Moved the enums from + the Reverse Lock class into ACE_Acquire_Method, a non-template + class. These enums should have been inside the reverse lock + class, but some lame compilers cannot handle enums inside + template classes. + +Wed Jul 04 12:43:22 2001 Irfan Pyarali + + * ace/Synch_T.i (ACE_Reverse_Lock): Fully specified the + ACE_ACQUIRE_METHOD type. + +Tue Jul 3 15:43:25 2001 Balachandran Natarajan + + * ace/Select_Reactor_Base.cpp: Fixed a warning in g++. + +Tue Jul 3 14:44:00 2001 Craig Rodrigues + + * ace/config-win32-common.h: Borland C++ apparently + does not support the "extern template class" Microsoft VC++ + proprietary extension. Thanks to Chris Kohloff + for the fix. + +Tue Jul 03 12:26:33 2001 Irfan Pyarali + + * ace/Synch_T.h (class ACE_Reverse_Lock): Added a parameter to the + constructor of the reverse lock. The ACE_ACQUIRE_METHOD + parameter is used to indicate which acquire() method will be + called on the real lock when the release() method is called on + the reverse lock. REGULAR indicated the acquire() method, READ + indicates the acquire_read() method, and WRITE indicates the + acquire_write() method. Note that the try_*() methods are not + represented here because we have to make sure that the release() + method on the reverse lock acquires a lock on the real lock. + + Thanks to Edan Ayal for suggesting this. + +Tue Jul 3 06:20:13 2001 Douglas C. Schmidt + + * ace/Reactor.h, + * ace/Reactor_Impl.h, + * ace/Select_Reactor_Base.cpp, + * ace/Select_Reactor_Base.i, + * ace/Select_Reactor_Base.h, + * ace/WFMO_Reactor.cpp, + * ace/WFMO_Reactor.h: Added an enhancement that allows the + Reactor to selectively purge event handlers from its + notification queue according to their Reactor_Mask type. Thanks + to Edan Ayal for contributing this. + + * tests/Reactor_Notify_Test.cpp (run_notify_purge_test): + Added a new set of tests for the new selective notification + purging features of the Reactor. Thanks to Edan Ayal + for contributing this. + + * ace/WIN32_Asynch_IO.cpp: Removed the + ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority, + signal_number), initializer since we no longer use virtual + inheritance. Thanks to Alexander Libman + for reporting this. + + * ace/WIN32_Asynch_IO.h: Removed the virtual inheritance from + ACE_WIN32_Asynch_Result for the ACE_Asynch_Read_Stream_Result + and ACE_Asynch_Read_Dgram_Result classes. Thanks to Alexander + Libman for reporting this. + + * ace/Refcounted_Auto_Ptr.h: Made the destructor of + ACE_Refcounted_Auto_Ptr virtual so that users can override it + locally. Thanks to Jenny Kowald for + reporting this. + +Tue Jul 3 09:40:59 2001 Chad Elliott + + * include/makeinclude/platform_osf1_4.0.GNU: + * include/makeinclude/platform_osf1_4.0_g++.GNU: + + Allow users to set options like debug, exceptions, ... without + using override. + +Tue Jul 3 08:38:47 2001 Jeff Parsons + + * examples/Reactor/Proactor/test_dup_proactor.dsp: + + Fixed a mistake in the link to the ACE library. + +Mon Jul 2 16:23:04 2001 Jeff Parsons + + * examples/Reactor/Proactor/test_multiple_loops.dsp: + * examples/Reactor/Proactor/test_proactor.dsp: + * examples/Reactor/Proactor/test_proactor.dsw: + * examples/Reactor/Proactor/test_timeout.dsp: + * examples/Reactor/Proactor/test_udp_proactor.dsp: + + Fixed settings on release version of test_udp_proactor.dsp, + added it to the workspace, and removed unused file folders + from the FileViews of the other projects. + +Mon Jul 2 15:26:32 2001 Nanbor Wang + + * ace/config-sunos5.6.h: Removed ACE_HAS_POSIX_SEM and + ACE_LACKS_NAMED_POSIX_SEM. Thanks to Glenn Popelka + for helping track this down. + +Mon Jul 02 11:45:57 2001 Ossama Othman + + * bin/make_release: + + Disabled bootstrapping of ACE's autoconf support. It isn't + ready for general use. Doing so reduces the amount of + confusion. Thanks to Holger P. Krekel for + motivating this change. + +Mon Jul 2 13:18:14 2001 Douglas C. Schmidt + + * Moved ACE-configurations.txt into the docs directory. Also + removed the hopelessly out of date BIBLIOGRAPHY file. + + * Moved all the ChangeLog-* files into the new ChangeLogs + directory. Thanks to Holger P. Krekel for + this suggestion. + +Mon Jul 02 11:20:52 2001 Ossama Othman + + * config.guess: + * config.sub: + + Updated to the latest versions from the GNU FTP site. + +Mon Jul 02 11:30:20 2001 Irfan Pyarali + + * ace/Synch_T.i: Since the release() method on the reverse lock + calls the simple acquire() method on the real lock, it is + assumed that it is a simple acquire/release protocol with the + real lock. Therefore, I think all the other methods on the + reverse lock tryacquire(), acquire_read(), acquire_write(), + tryacquire_read(), tryacquire_write(), and + tryacquire_write_upgrade() should not be allowed. This falls in + line with the original concept of using reverse locks with + regular guards. + + Thanks to Edan Ayal for pointing this out. + +Mon Jul 2 11:17:37 2001 Chad Elliott + + * ace/Profile_Timer.cpp: + + Cleaned up the conditional macros. Added method bodies for + ACE_Profile_Timer::get_rusage() and + ACE_Profile_Timer::elapsed_rusage() when neither ACE_HAS_PRUSAGE_T + nor ACE_HAS_GETRUSAGE is defined. + + * Reverted the reverted changes in this entry. + "Fri Jun 29 22:31:56 2001 Balachandran Natarajan + ". These changes are ok, I just + needed to fix the bug in Profile_Timer.cpp. + +Mon Jul 2 09:40:45 2001 Chad Elliott + + * include/makeinclude/platform_aix_ibm.GNU: + + Add the output filter to the linker to avoid the duplicate symbol + warnings on AIX. + +Mon Jul 2 05:40:54 2001 Douglas C. Schmidt + + * ace/Logging_Strategy.cpp: Enhanced the code so that it works with + ACE_LACKS_IOSTREAM_TOTALLY. Thanks to Nir Drang + and Edan Ayal for reporting this. + + * ace/SPIPE_Addr.cpp (set): Added a "+ 1" to the computation of + the size of the SPIPE_Addr to account for the trailing NUL. + Thanks to Oren Zeev-Ben-Mordehai for + reporting this. + + * ace/Refcounted_Auto_Ptr.{h,i}: Added support for a "null()" + method to check if a refcounted auto ptr is NULL. Thanks to + Jenny Kowald for reporting this. + + * ace/config-macosx.h, + * ace/platform_macosx.GNU: Enhanced these files to support MacOSX. + Thanks to John Zorko for contributing this. + + * ace/Synch.h: Fixed the Doxygen documentation for all the + removed_ fields, which where somehow messed up. Thanks to + Johnny Willemsen for reporting this. + +Sun Jul 1 11:49:13 2001 Alexander Libman + + * ace: Enhanced the POSIX and Sun Proactor implementations as + follows: + + . POSIX_SIG_Proactor is now based on POSIX_AIOCB_Proactor + + . All classes ACE_POSIX_SIG_Asynch_XXXX are removed. + POSIX_SIG_Proactor uses the ACE_POSIX_AIOCB_Asynch_XXXX + classes now. + + . ACE_POSIX_AIOCB_Proactor::register_and_start_aio (...) + now calls a new virtual method: int + ACE_POSIX_AIOCB_Proactor::allocate_aio_slot + (ACE_POSIX_Asynch_Result *result). + + . The strategy of free slot allocation in SIG_Proactor is + a bit different from AIOCB and SUN Proactors. The + allocate_aio_slot() method is responsible for setting + notification information for aio request + (SIGEV_NONE/SIGEV_SIGNAL). For SIG_Proactor, the field + aio_sigevent.sigev_value.sival_int now contains index of aiocb + in the aiocb_list_, not a pointer. + + . The ACE_POSIX_AIOCB_Proactor::find_completed_aio (int &error_status, + int &return_status, size_t + &index, size_t &count) + parameter index defines initial slot to scan and the new + parameter count tells us maximum number slots to scan. On + return: index contains value to start scan next time, count + contains remained number of slots. Scanning is performed in + "wheel" style to allow all requests be handled with equal + priorities. + + . ACE_POSIX_AIOCB_Proactor::check_max_aio_num () checks for + max_number_files to open and tries to setup max_number_files + equal to aiocb_max_size_. if we failed than cut off + aiocb_max_size_ value to existing max_number_files. + + . POSIX_Proactor added member int os_id_ and constructor sets up + os_id_ (compilation time + run_time function) to know + OS(Sun/HP/Linux/...) and version. We need such info for + POSIX_SIG_Proactors to take into account the behavior of + different OS. + + . Delivery of simulated/"post_completed" Asynch_Results + (Timers, AsynchAccept,Wakeup ...). As both Proactors have no + reliable mechanizm for delivery "post_completed" results, so + the reliable queue of "post_completed" results was + implemented. The new member of AIOCB Proactor + ACE_Unbounded_Queue result_queue_ + has been added. Also added protected methods to the + ACE_POSIX_AIOCB_Proactor. + + . We had an error in all previous versions (from major ACE 5.1): + post_completion (int how_many) does not guarantee that all + completions will be delivered to the different threads running + event_loop (sometimes several completions could be delivered + to the one thread, in another thread performs during long time + application_spesific_code ()). Moreover, you can run now + Proactor event_loop in any number of threads (more than + SIGQUEMAX). + +Sun Jul 1 11:49:13 2001 Douglas C. Schmidt + + * examples/Reactor/Proactor: Integrated a test that exercises the + support for asynchronous UDP operations. Thanks to Roger Tragin + for contributing this. + + * ace/Synch_T.i: Changed the implementations of all the + acquire*() method to call release(). Thanks to Edan Ayal + for reporting this. + +Sat Jun 30 12:44:11 2001 Douglas C. Schmidt + + * examples/Connection/blocking/SPIPE-acceptor.cpp: Added better + support for shutting down the server when a signal occurs. + Thanks to Rich Newman for this + enhancement. diff --git a/TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp b/TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp new file mode 100644 index 00000000000..8efc4b7a5d7 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp @@ -0,0 +1,393 @@ +// $Id$ + +#include "orbsvcs/Event/ECG_Mcast_EH.h" +#include "orbsvcs/Event/EC_Gateway_UDP.h" +#include "orbsvcs/Event_Service_Constants.h" + +#if !defined(__ACE_INLINE__) +#include "ECG_Mcast_EH.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(Event, ECG_UDP_EH, "$Id$") + +TAO_ECG_Mcast_EH::TAO_ECG_Mcast_EH (TAO_ECG_UDP_Receiver *recv, + const ACE_TCHAR *net_if) + : net_if_ (net_if?ACE_OS::strdup (net_if):0) + , receiver_ (recv) + , observer_ (this) +{ +} + +TAO_ECG_Mcast_EH::~TAO_ECG_Mcast_EH (void) +{ + ACE_OS::free (this->net_if_); +} + +// @@ TODO Why have a return code *and* exceptions? Only one would do! + +int +TAO_ECG_Mcast_EH::open (RtecEventChannelAdmin::EventChannel_ptr ec, + CORBA::Environment& ACE_TRY_ENV) +{ + // @@ TODO Think about the exception safety (or lack thereof) of + // this code, what if the following operations fail? + + this->ec_ = RtecEventChannelAdmin::EventChannel::_duplicate (ec); + + // @@ TODO This activation should be configured by the application, + // it is too much policy to use _this(). + // @@ TODO Using a full instance instead of a pointer makes memory + // management complex. The observer_ object should derive from + // PortableServer::RefCountServantBase and use the POA to control + // its lifetime. + + RtecEventChannelAdmin::Observer_var obs = + this->observer_._this (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + ACE_TRY + { + this->handle_ = + this->ec_->append_observer (obs.in (), ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + } + ACE_CATCH(CORBA::SystemException, ex) + { + // @@ TODO This code is tedious and error prone, plus its + // exceptions should be ignored (no way to recover from them), + // we should encapsulate it in a Deactivator. + + PortableServer::POA_var poa = + this->observer_._default_POA (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + PortableServer::ObjectId_var id = + poa->servant_to_id (&this->observer_, ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + poa->deactivate_object (id.in (), ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + ACE_RE_THROW; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (-1); + + return 0; +} + +int +TAO_ECG_Mcast_EH::close (CORBA::Environment& ACE_TRY_ENV) +{ + if (this->handle_ == 0) + return 0; + + RtecEventChannelAdmin::Observer_Handle h = this->handle_; + this->handle_ = 0; + this->ec_->remove_observer (h, ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + // @@ TODO If the first operation raises an exception then the + // second one never executes!!! + { + PortableServer::POA_var poa = + this->observer_._default_POA (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + PortableServer::ObjectId_var id = + poa->servant_to_id (&this->observer_, ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + poa->deactivate_object (id.in (), ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + } + + // Ignore the result, the handler could have been removed by a call + // to update_consumer() or something similar. + (void) this->reactor ()->remove_handler (this, + ACE_Event_Handler::READ_MASK); + + size_t sockets_size = this->sockets_.size (); + for (size_t i = 0; i != sockets_size; ++i) + { + // Ignore any errors that we may have when closing the socket, + // there is nothing we can do about them at this point.... + (void) this->sockets_[i]->close(); + delete this->sockets_[i]; + } + this->sockets_.size (0); + + // Once all the sockets are closed they no longer are subscribed for + // anything + this->subscriptions_.unbind_all (); + + return 0; +} + +int +TAO_ECG_Mcast_EH::handle_input (ACE_HANDLE fd) +{ + // @@ TODO How expensive is this loop? Should we use a more + // efficient data structure than an Array? For example a RB tree + // or a hash map? + size_t sockets_size = this->sockets_.size (); + for (size_t i = 0; i != sockets_size; ++i) + { + ACE_SOCK_Dgram_Mcast *socket = this->sockets_[i]; + if (socket->get_handle () == fd) + { + return this->receiver_->handle_input (*socket); + } + } + return -1; +} + +void +TAO_ECG_Mcast_EH::compute_required_subscriptions ( + const RtecEventChannelAdmin::ConsumerQOS& sub, + Address_Set& multicast_addresses, + CORBA::Environment& ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + CORBA::ULong count = sub.dependencies.length (); + for (CORBA::ULong i = 0; i != count; ++i) + { + const RtecEventComm::EventHeader& header = + sub.dependencies[i].event.header; + if (0 <= header.type && header.type < ACE_ES_EVENT_UNDEFINED) + { + continue; + } + RtecUDPAdmin::UDP_Addr addr; + + // For the time being we are exception neutral, i.e., if an + // exception is raised at this point we simply propagate it. + // Notice that we haven't performed any changes to the state of + // the current class, so this is the easiest approach. The + // alternatives are: + // + Ignore the exception and continue with the operation: risky + // because we don't know if the exception indicated a + // temporary or permanent condition, and if it is the former + // we may loose an important multicast group, with no + // opportunity to recover it. + // + Close the MCast Event Handler completely, too much policy + // for this level. + this->receiver_->get_addr (header, addr, ACE_TRY_ENV); + ACE_CHECK; + + ACE_INET_Addr inet_addr (addr.port, addr.ipaddr); + // Ignore errors, if the element is in the set we simply ignore + // the problem... + (void) multicast_addresses.insert (inet_addr); + } +} + +int +TAO_ECG_Mcast_EH::delete_unwanted_subscriptions ( + Address_Set& multicast_addresses) +{ + Subscriptions_Iterator j = this->subscriptions_.begin (); + while (j != this->subscriptions_.end ()) + { + ACE_INET_Addr multicast_group = (*j).ext_id_; + if (multicast_addresses.find (multicast_group)) + { + // Remove from the list of subscriptions that should be + // added, because it is already there... + (void) multicast_addresses.remove (multicast_group); + ++j; + continue; + } + + char buf[256]; + multicast_group.addr_to_string (buf, sizeof buf, 1); + ACE_SOCK_Dgram_Mcast *socket = (*j).int_id_; + // Ignore errors, there is no appropriate policy to handle them + // at this layer. + // @@ TODO Consider if we should raise exceptions. + socket->unsubscribe (multicast_group, this->net_if_); + // Increment and then remove, this is a safe way to remove the + // element without invalidating the iterator. + ++j; + this->subscriptions_.unbind (multicast_group); + } + return 0; +} + +int +TAO_ECG_Mcast_EH::subscribe_to_existing_socket ( + ACE_INET_Addr& multicast_group) +{ + size_t sockets_size = this->sockets_.size (); + int result = -1; + for (size_t i = 0; i != sockets_size; ++i) + { + ACE_SOCK_Dgram_Mcast *socket = this->sockets_[i]; + result = + socket->subscribe (multicast_group, 1, this->net_if_); + if (result == 0) + { + // Add the subscription to the subscription list + (void) this->subscriptions_.bind (multicast_group, socket); + break; + } + /* assert(result == -1) */ + if (errno == ENOBUFS || errno == ETOOMANYREFS) + { + // The socket is full, try with the next one... + continue; + } + // @@ TODO: There was an error, but the problem is not with + // too many subscriptions... what we need to do is close the + // socket? Or skip the subscription? + } + return result; +} + +void +TAO_ECG_Mcast_EH::subscribe_to_new_socket( + ACE_INET_Addr& multicast_group) +{ + ACE_SOCK_Dgram_Mcast *socket; + ACE_NEW (socket, ACE_SOCK_Dgram_Mcast); + size_t sockets_size = this->sockets_.size (); + + if (this->sockets_.max_size () == sockets_size) + { + this->sockets_.max_size (sockets_size + 1); + this->sockets_.size (sockets_size + 1); + } + this->sockets_[sockets_size] = socket; + socket->subscribe (multicast_group, 1, this->net_if_); + + // @@ TODO: we have no way to handle this failure.... + (void) this->subscriptions_.bind (multicast_group, socket); + + // @@ TODO: we have no way to handle this failure.... + (void) this->reactor ()->register_handler (socket->get_handle (), + this, + ACE_Event_Handler::READ_MASK); +} + +void +TAO_ECG_Mcast_EH::add_new_subscriptions ( + Address_Set& multicast_addresses) +{ + typedef ACE_Unbounded_Set_Iterator Address_Iterator; + for (Address_Iterator k = multicast_addresses.begin (); + k != multicast_addresses.end (); + ++k) + { + // This is the multicast group we want to add to... + ACE_INET_Addr multicast_group = *k; + + char buf[256]; + multicast_group.addr_to_string (buf, sizeof buf, 1); + + // Try to find a socket that has space for another multicast + // group. + int successful_subscription = + this->subscribe_to_existing_socket (multicast_group); + + if (successful_subscription == -1) + { + // We try all the sockets and all of them appear to be full, + // we need to open a new one and add it to the Array... + this->subscribe_to_new_socket(multicast_group); + } + } +} + +void +TAO_ECG_Mcast_EH::update_consumer ( + const RtecEventChannelAdmin::ConsumerQOS& sub, + CORBA::Environment& ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + // @@ TODO This function turned out to be too long, we need to break + // it up in pieces, maybe 3 or 4 private member functions.... + + // 1) Figure out the list of multicast groups that we need to + // subscribe to + + Address_Set multicast_addresses; + + this->compute_required_subscriptions (sub, multicast_addresses, ACE_TRY_ENV); + ACE_CHECK; + + // 2) To conserve OS and network resources we first unsubscribe from + // the multicast groups no longer wanted. This is done by + // iterating over the current set of multicast groups and + // removing those not present in the "multicast_addresses" set. + + this->delete_unwanted_subscriptions (multicast_addresses); + + // 3) After the loop above the "multicast_addresses" set contains + // only the new subscriptions... go ahead and add them to the + // sockets, opening sockets if needed. + + this->add_new_subscriptions (multicast_addresses); +} + +void +TAO_ECG_Mcast_EH::update_supplier (const RtecEventChannelAdmin::SupplierQOS&, + CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + // Do nothing +} + +// **************************************************************** + +TAO_ECG_Mcast_EH::Observer::Observer (TAO_ECG_Mcast_EH* eh) + : eh_ (eh) +{ +} + +void +TAO_ECG_Mcast_EH::Observer::update_consumer ( + const RtecEventChannelAdmin::ConsumerQOS& sub, + CORBA::Environment& ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->eh_->update_consumer (sub, ACE_TRY_ENV); +} + +void +TAO_ECG_Mcast_EH::Observer::update_supplier ( + const RtecEventChannelAdmin::SupplierQOS& pub, + CORBA::Environment& ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->eh_->update_supplier (pub, ACE_TRY_ENV); +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) + +template class ACE_Hash_Map_Manager; +template class ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Null_Mutex>; +template class ACE_Hash_Map_Entry; +template class ACE_Hash; +template class ACE_Equal_To; +template class ACE_Unbounded_Set; +template class ACE_Array_Base; +template class ACE_Unbounded_Set_Iterator; +template class ACE_Hash_Map_Iterator_Base_Ex, ACE_Equal_To, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator; +template class ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_Null_Mutex>; +template class ACE_Hash_Map_Reverse_Iterator; +template class ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_Null_Mutex>; + +#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + +#pragma instantiate ACE_Hash_Map_Manager +#pragma instantiate ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Entry +#pragma instantiate ACE_Hash +#pragma instantiate ACE_Equal_To +#pragma instantiate ACE_Unbounded_Set +#pragma instantiate ACE_Array_Base +#pragma instantiate ACE_Unbounded_Set_Iterator +#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex, ACE_Equal_To, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator; +#pragma instantiate ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Reverse_Iterator +#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_Null_Mutex> + +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.h b/TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.h new file mode 100644 index 00000000000..3bb1a708476 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.h @@ -0,0 +1,212 @@ +/* -*- C++ -*- */ +/** + * @file ECG_Mcast_EH.h + * + * $Id$ + * + * @author Carlos O'Ryan + * @author Jaiganesh Balasubramanian + * + * http://doc.ece.uci.edu/~coryan/EC/index.html + * + */ +#ifndef TAO_ECG_MCAST_EH_H +#define TAO_ECG_MCAST_EH_H +#include "ace/pre.h" + +#include "orbsvcs/Event/event_export.h" +#include "orbsvcs/RtecEventChannelAdminS.h" +#include "ace/Event_Handler.h" +#include "ace/Hash_Map_Manager.h" +#include "ace/Array_Base.h" +#include "ace/SOCK_Dgram_Mcast.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class TAO_ECG_UDP_Receiver; + +/** + * @class TAO_ECG_Mcast_EH + * + * @brief Event Handler for UDP messages. + * + * This object receives callbacks from the Reactor when data is + * available on the mcast socket, it forwards to the UDP_Receive + * gateway which reads the events and transform it into an event. + */ +class TAO_RTEvent_Export TAO_ECG_Mcast_EH : public ACE_Event_Handler +{ +public: + /** + * Constructor, the messages received by this EH are forwarded to + * the . + * It is possible to select the NIC where the multicast messages are + * expected using + */ + TAO_ECG_Mcast_EH (TAO_ECG_UDP_Receiver *recv, + const ACE_TCHAR *net_if = 0); + + /// Destructor + virtual ~TAO_ECG_Mcast_EH (void); + + /** + * Register for changes in the EC subscription list. + * When the subscription list becomes non-empty we join the proper + * multicast groups (using the receiver to translate between event + * types and mcast groups) and the class registers itself with the + * reactor. + */ + int open (RtecEventChannelAdmin::EventChannel_ptr ec, + CORBA::Environment &env = TAO_default_environment ()); + + /** + * Remove ourselves from the event channel, unsubscribe from the + * multicast groups, close the sockets and unsubscribe from the + * reactor. + */ + int close (CORBA::Environment &env = TAO_default_environment ()); + + /// Reactor callbacks + virtual int handle_input (ACE_HANDLE fd); + + /// The Observer methods + void update_consumer (const RtecEventChannelAdmin::ConsumerQOS& sub, + CORBA::Environment &env = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + void update_supplier (const RtecEventChannelAdmin::SupplierQOS& pub, + CORBA::Environment &env = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /** + * @class Observer + * + * @brief Observe changes in the EC subscriptions. + * + * As the subscriptions on the EC change we also change the + * mcast groups that we join. + * We could use the TIE classes, but they don't work in all + * compilers. + */ + + class Observer : public POA_RtecEventChannelAdmin::Observer + { + public: + /// We report changes in the EC subscriptions to the event + /// handler. + Observer (TAO_ECG_Mcast_EH* eh); + + // The Observer methods + virtual void update_consumer ( + const RtecEventChannelAdmin::ConsumerQOS& sub, + CORBA::Environment &env = + TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + virtual void update_supplier ( + const RtecEventChannelAdmin::SupplierQOS& pub, + CORBA::Environment &env = + TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + private: + /// Our callback object. + TAO_ECG_Mcast_EH *eh_; + }; + +private: + typedef ACE_Unbounded_Set Address_Set; + + /// Compute the list of multicast addresses that we need to be + /// subscribed to, in order to receive the events described in the + /// ConsumerQOS parameter. + /** + * @param sub The list of event types that our event channel + * consumers are interested into. + * @param multicast_addresses Returns the list of multicast + * addresses that we need to subscribe to. + * @param env Used to raise CORBA exceptions when there is no + * support for native C++ exceptions. + * + * @throw CORBA::SystemException This method needs to perform + * several CORBA invocations and propagates any exceptions + * back to the caller. + */ + + void compute_required_subscriptions ( + const RtecEventChannelAdmin::ConsumerQOS& sub, + Address_Set& multicast_addresses, + CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /// Delete the list of multicast addresses that we need not + /// subscribe to, in order to receive the events described in the + /// ConsumerQOS parameter. + /** + * @param multicast_addresses Returns the list of multicast + * addresses that we need to subscribe to. + */ + + int delete_unwanted_subscriptions ( + Address_Set& multicast_addresses); + + /// Add the list of new multicast addresses that we need to + /// subscribe to, in order to receive the events described in the + /// ConsumerQOS parameter. + /** + * @param multicast_addresses Returns the list of multicast + * addresses that we need to subscribe to. + */ + + void add_new_subscriptions ( + Address_Set& multicast_addresses); + + /// Subscribe an existing socket to a multicast group. + /** + * @param multicast_group Returns the multicast + * address that we need to subscribe to. + */ + int subscribe_to_existing_socket (ACE_INET_Addr& multicast_group); + + /// Subscribe a new socket to a multicast group. + /** + * @param multicast_group Returns the multicast + * address that we need to subscribe to. + */ + void subscribe_to_new_socket (ACE_INET_Addr& multicast_group); + +private: + /// The NIC name used to subscribe for multicast traffic. + ACE_TCHAR *net_if_; + + /// Define the collection used to keep the iterator + typedef ACE_Hash_Map_Manager Subscriptions_Map; + typedef ACE_Hash_Map_Iterator Subscriptions_Iterator; + + /// @@ Please describe this map and its role in the class! + Subscriptions_Map subscriptions_; + + /// The datagram used to receive the data. + typedef ACE_Array_Base Socket_List; + Socket_List sockets_; + + /// We callback to this object when a message arrives. + TAO_ECG_UDP_Receiver* receiver_; + + /// This object will call us back when the subscription list + /// changes. + Observer observer_; + + /// Keep the handle of the observer so we can unregister later. + RtecEventChannelAdmin::Observer_Handle handle_; + + /// The Event Channel. + RtecEventChannelAdmin::EventChannel_var ec_; +}; + +#if defined(__ACE_INLINE__) +#include "ECG_Mcast_EH.i" +#endif /* __ACE_INLINE__ */ + +#include "ace/post.h" +#endif /* TAO_ECG_Mcast_EH_H */ diff --git a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/Makefile b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/Makefile new file mode 100644 index 00000000000..a0d4ef3c63e --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/Makefile @@ -0,0 +1,58 @@ +#---------------------------------------------------------------------------- +# $Id$ +# +# Top-level Makefile for Pluggable testing of AVStreams of TAO. +# +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +LDLIBS = -lTAO_AV -lTAO_CosProperty -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_IORTable -lTAO_PortableServer -lTAO + +RECEIVER_OBJS = receiver.o +SENDER_OBJS = sender.o + +VLDLIBS = $(LDLIBS:%=%$(VAR)) + +ifndef TAO_ROOT +TAO_ROOT = $(ACE_ROOT)/TAO +endif + +FILES = sender receiver +DEFS = $(addsuffix .h,$(FILES)) +LSRC = $(addsuffix .cpp,$(FILES)) + +BIN2 = receiver sender + +#### If the TAO orbsvcs library wasn't built with sufficient components, +#### don't try to build here. +TAO_ORBSVCS := $(shell $(ACE_ROOT)/bin/ace_components --orbsvcs) +ifeq (AV,$(findstring AV,$(TAO_ORBSVCS))) + BIN = $(BIN2) +endif # AV + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(TAO_ROOT)/rules.tao.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +ifeq ($(rapi),1) + LDLIBS += -lACE_QoS +endif # rapi + +#DCFLAGS = -g +LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao +CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT)/orbsvcs/orbsvcs/AV \ + -I$(TAO_ROOT) + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. diff --git a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/README b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/README new file mode 100644 index 00000000000..c637b2c3b25 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/README @@ -0,0 +1,45 @@ +// $Id$ + +Description +----------- + +This directory contains a simple test in the form of a sender and a +receiver. The test has the following features: + +1. It tests the AVStreams Pluggable Protocol Framework +2. Shows a mechanism to pace data. +3. Shows how to set up bidirectional data. + +Running the test +---------------- + +receiver +-------- + +receiver -f + +-f -> The name of the file from which data is sent to the receiver + +sender +------ + +sender [-f ] [-p ] [-r ] [-d] + + +-f filename --> The file to be streamed to the receiver (defaults to + "input"). + +-p protocol --> The protocol string could be UDP or TCP (defaults to + UDP). But with the multicast address it should be UDP. + +-r framerate--> The rate at which tha data frames need to be sent + (defaults to 30 frames per second). + +-d --> Increament the TAO_debug_level for debug messages. + + +The test must be run with the naming service. Check the run_test.pl +to see how to configure the test case. + + + diff --git a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/input b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/input new file mode 100644 index 00000000000..b6579cec283 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/input @@ -0,0 +1,995 @@ +#---------------------------------------------------------------------------- +# input,v 1.1 2001/03/27 11:41:00 irfan Exp +# +# Top-level Makefile for Pluggable testing of AVStreams of TAO. +# +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +LDLIBS = -lTAO_AV -lTAO_CosProperty -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_IORTable -lTAO_PortableServer -lTAO + +SERVER_OBJS = server.o +CLIENT_OBJS = ftp.o + +VLDLIBS = $(LDLIBS:%=%$(VAR)) + +ifndef TAO_ROOT +TAO_ROOT = $(ACE_ROOT)/TAO +endif + +FILES = ftp server +DEFS = $(addsuffix .h,$(FILES)) +LSRC = $(addsuffix .cpp,$(FILES)) + +BIN2 = server ftp + +#### If the TAO orbsvcs library wasn't built with sufficient components, +#### don't try to build here. +TAO_ORBSVCS := $(shell $(ACE_ROOT)/bin/ace_components --orbsvcs) +ifeq (AV,$(findstring AV,$(TAO_ORBSVCS))) + BIN = $(BIN2) +endif # AV + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(TAO_ROOT)/rules.tao.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +#DCFLAGS = -g +LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao +CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT)/orbsvcs/orbsvcs/AV \ + -I$(TAO_ROOT) + +#server:$(addprefix $(VDIR),$(SERVER_OBJS)) +# $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) + +#ftp:$(addprefix $(VDIR),$(CLIENT_OBJS)) +# $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/ftp.o .obj/ftp.so .shobj/ftp.o .shobj/ftp.so: ftp.cpp ftp.h \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Get_Opt.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(TAO_ROOT)/tao/Object_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/TAO_Server_Request.h \ + $(TAO_ROOT)/tao/Tagged_Profile.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/GIOPC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOPC.i \ + $(TAO_ROOT)/tao/Tagged_Profile.i \ + $(TAO_ROOT)/tao/Service_Context.h \ + $(TAO_ROOT)/tao/Service_Context.inl \ + $(TAO_ROOT)/tao/TAO_Server_Request.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/GIOP_Message_State.h \ + $(TAO_ROOT)/tao/GIOP_Message_State.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/Adapter.h \ + $(TAO_ROOT)/tao/Adapter.i \ + $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/PollableC.i \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Parser_Registry.h \ + $(TAO_ROOT)/tao/Parser_Registry.i \ + $(TAO_ROOT)/tao/Service_Callbacks.h \ + $(TAO_ROOT)/tao/Service_Callbacks.i \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(TAO_ROOT)/tao/Cache_Entries.h \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.h \ + $(TAO_ROOT)/tao/Endpoint.h \ + $(TAO_ROOT)/tao/Endpoint.i \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.inl \ + $(TAO_ROOT)/tao/Cache_Entries.inl \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.inl \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(TAO_ROOT)/tao/Object_Ref_Table.h \ + $(TAO_ROOT)/tao/Interceptor_List.h \ + $(TAO_ROOT)/tao/Interceptor_List.inl \ + $(TAO_ROOT)/tao/RT_Policy_i.h \ + $(TAO_ROOT)/tao/RTCORBAS.h \ + $(TAO_ROOT)/tao/IOPS.h \ + $(TAO_ROOT)/tao/IOPS_T.h \ + $(TAO_ROOT)/tao/IOPS_T.i \ + $(TAO_ROOT)/tao/IOPS_T.cpp \ + $(TAO_ROOT)/tao/IOPS.i \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/RTCORBAC.h \ + $(TAO_ROOT)/tao/RTCORBAC.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.h \ + $(TAO_ROOT)/tao/RTCORBAS_T.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.cpp \ + $(TAO_ROOT)/tao/RTCORBAS.i \ + $(TAO_ROOT)/tao/RT_Policy_i.i \ + $(TAO_ROOT)/tao/Protocols_Hooks.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.h \ + $(TAO_ROOT)/tao/Priority_Mapping.h \ + $(TAO_ROOT)/tao/Priority_Mapping.i \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.i \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/operation_details.h \ + $(TAO_ROOT)/tao/target_specification.h \ + $(TAO_ROOT)/tao/target_specification.i \ + $(TAO_ROOT)/tao/operation_details.i \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/ClientRequestInfo.h \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/ClientRequestInfo.inl \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/PortableInterceptor.h \ + $(TAO_ROOT)/tao/PortableInterceptor.i \ + $(TAO_ROOT)/tao/BiDirPolicyC.h \ + $(TAO_ROOT)/tao/BiDirPolicyC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \ + $(ACE_ROOT)/ace/INET_Addr.h \ + $(ACE_ROOT)/ace/Addr.h \ + $(ACE_ROOT)/ace/Addr.i \ + $(ACE_ROOT)/ace/INET_Addr.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ + $(ACE_ROOT)/ace/SOCK_Dgram.h \ + $(ACE_ROOT)/ace/SOCK.h \ + $(ACE_ROOT)/ace/IPC_SAP.h \ + $(ACE_ROOT)/ace/IPC_SAP.i \ + $(ACE_ROOT)/ace/QoS_Session.h \ + $(ACE_ROOT)/ace/SOCK.i \ + $(ACE_ROOT)/ace/SOCK_Dgram.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.h \ + $(ACE_ROOT)/ace/ATM_Addr.h \ + $(ACE_ROOT)/ace/ATM_Addr.i \ + $(ACE_ROOT)/ace/Process.h \ + $(ACE_ROOT)/ace/Process.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.h \ + $(ACE_ROOT)/ace/SOCK_IO.h \ + $(ACE_ROOT)/ace/SOCK_IO.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.i \ + $(ACE_ROOT)/ace/Connector.h \ + $(ACE_ROOT)/ace/Svc_Handler.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Task.h \ + $(ACE_ROOT)/ace/Task.i \ + $(ACE_ROOT)/ace/Task_T.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/Process_Mutex.h \ + $(ACE_ROOT)/ace/Process_Mutex.inl \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/Task_T.i \ + $(ACE_ROOT)/ace/Task_T.cpp \ + $(ACE_ROOT)/ace/Module.h \ + $(ACE_ROOT)/ace/Module.i \ + $(ACE_ROOT)/ace/Module.cpp \ + $(ACE_ROOT)/ace/Stream_Modules.h \ + $(ACE_ROOT)/ace/Stream_Modules.cpp \ + $(ACE_ROOT)/ace/Svc_Handler.cpp \ + $(ACE_ROOT)/ace/Dynamic.h \ + $(ACE_ROOT)/ace/Dynamic.i \ + $(ACE_ROOT)/ace/Connector.cpp \ + $(ACE_ROOT)/ace/SOCK_Connector.h \ + $(ACE_ROOT)/ace/SOCK_Stream.h \ + $(ACE_ROOT)/ace/SOCK_Stream.i \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/SOCK_Connector.i \ + $(ACE_ROOT)/ace/Acceptor.h \ + $(ACE_ROOT)/ace/Acceptor.cpp \ + $(ACE_ROOT)/ace/SOCK_Acceptor.h \ + $(ACE_ROOT)/ace/SOCK_Acceptor.i \ + $(TAO_ROOT)/tao/PortableServer/ORB_Manager.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/property_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/CosPropertyService_i.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_Core.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp \ + $(ACE_ROOT)/ace/Process_Semaphore.h \ + $(ACE_ROOT)/ace/Process_Semaphore.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/sfp.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Protocol_Factory.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.i \ + $(ACE_ROOT)/ace/High_Res_Timer.h \ + $(ACE_ROOT)/ace/High_Res_Timer.i \ + $(ACE_ROOT)/ace/Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.inl \ + $(ACE_ROOT)/ace/Stats.i + +.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp server.h \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Get_Opt.i \ + $(TAO_ROOT)/tao/PortableServer/ORB_Manager.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(TAO_ROOT)/tao/Object_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(TAO_ROOT)/tao/RTCORBAC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/RTCORBAC.i \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/TAO_Server_Request.h \ + $(TAO_ROOT)/tao/Tagged_Profile.h \ + $(TAO_ROOT)/tao/GIOPC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOPC.i \ + $(TAO_ROOT)/tao/Tagged_Profile.i \ + $(TAO_ROOT)/tao/Service_Context.h \ + $(TAO_ROOT)/tao/Service_Context.inl \ + $(TAO_ROOT)/tao/TAO_Server_Request.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/GIOP_Message_State.h \ + $(TAO_ROOT)/tao/GIOP_Message_State.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/Adapter.h \ + $(TAO_ROOT)/tao/Adapter.i \ + $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/PollableC.i \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Parser_Registry.h \ + $(TAO_ROOT)/tao/Parser_Registry.i \ + $(TAO_ROOT)/tao/Service_Callbacks.h \ + $(TAO_ROOT)/tao/Service_Callbacks.i \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(TAO_ROOT)/tao/Cache_Entries.h \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.h \ + $(TAO_ROOT)/tao/Endpoint.h \ + $(TAO_ROOT)/tao/Endpoint.i \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.inl \ + $(TAO_ROOT)/tao/Cache_Entries.inl \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.inl \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(TAO_ROOT)/tao/Object_Ref_Table.h \ + $(TAO_ROOT)/tao/Interceptor_List.h \ + $(TAO_ROOT)/tao/Interceptor_List.inl \ + $(TAO_ROOT)/tao/RT_Policy_i.h \ + $(TAO_ROOT)/tao/RTCORBAS.h \ + $(TAO_ROOT)/tao/IOPS.h \ + $(TAO_ROOT)/tao/IOPS_T.h \ + $(TAO_ROOT)/tao/IOPS_T.i \ + $(TAO_ROOT)/tao/IOPS_T.cpp \ + $(TAO_ROOT)/tao/IOPS.i \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.h \ + $(TAO_ROOT)/tao/RTCORBAS_T.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.cpp \ + $(TAO_ROOT)/tao/RTCORBAS.i \ + $(TAO_ROOT)/tao/RT_Policy_i.i \ + $(TAO_ROOT)/tao/Protocols_Hooks.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.h \ + $(TAO_ROOT)/tao/Priority_Mapping.h \ + $(TAO_ROOT)/tao/Priority_Mapping.i \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.i \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/operation_details.h \ + $(TAO_ROOT)/tao/target_specification.h \ + $(TAO_ROOT)/tao/target_specification.i \ + $(TAO_ROOT)/tao/operation_details.i \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/ClientRequestInfo.h \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/ClientRequestInfo.inl \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/PortableInterceptor.h \ + $(TAO_ROOT)/tao/PortableInterceptor.i \ + $(TAO_ROOT)/tao/BiDirPolicyC.h \ + $(TAO_ROOT)/tao/BiDirPolicyC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \ + $(ACE_ROOT)/ace/INET_Addr.h \ + $(ACE_ROOT)/ace/Addr.h \ + $(ACE_ROOT)/ace/Addr.i \ + $(ACE_ROOT)/ace/INET_Addr.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ + $(ACE_ROOT)/ace/SOCK_Dgram.h \ + $(ACE_ROOT)/ace/SOCK.h \ + $(ACE_ROOT)/ace/IPC_SAP.h \ + $(ACE_ROOT)/ace/IPC_SAP.i \ + $(ACE_ROOT)/ace/QoS_Session.h \ + $(ACE_ROOT)/ace/SOCK.i \ + $(ACE_ROOT)/ace/SOCK_Dgram.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.h \ + $(ACE_ROOT)/ace/ATM_Addr.h \ + $(ACE_ROOT)/ace/ATM_Addr.i \ + $(ACE_ROOT)/ace/Process.h \ + $(ACE_ROOT)/ace/Process.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.h \ + $(ACE_ROOT)/ace/SOCK_IO.h \ + $(ACE_ROOT)/ace/SOCK_IO.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.i \ + $(ACE_ROOT)/ace/Connector.h \ + $(ACE_ROOT)/ace/Svc_Handler.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Task.h \ + $(ACE_ROOT)/ace/Task.i \ + $(ACE_ROOT)/ace/Task_T.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/Process_Mutex.h \ + $(ACE_ROOT)/ace/Process_Mutex.inl \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/Task_T.i \ + $(ACE_ROOT)/ace/Task_T.cpp \ + $(ACE_ROOT)/ace/Module.h \ + $(ACE_ROOT)/ace/Module.i \ + $(ACE_ROOT)/ace/Module.cpp \ + $(ACE_ROOT)/ace/Stream_Modules.h \ + $(ACE_ROOT)/ace/Stream_Modules.cpp \ + $(ACE_ROOT)/ace/Svc_Handler.cpp \ + $(ACE_ROOT)/ace/Dynamic.h \ + $(ACE_ROOT)/ace/Dynamic.i \ + $(ACE_ROOT)/ace/Connector.cpp \ + $(ACE_ROOT)/ace/SOCK_Connector.h \ + $(ACE_ROOT)/ace/SOCK_Stream.h \ + $(ACE_ROOT)/ace/SOCK_Stream.i \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/SOCK_Connector.i \ + $(ACE_ROOT)/ace/Acceptor.h \ + $(ACE_ROOT)/ace/Acceptor.cpp \ + $(ACE_ROOT)/ace/SOCK_Acceptor.h \ + $(ACE_ROOT)/ace/SOCK_Acceptor.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/property_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/CosPropertyService_i.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_Core.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp \ + $(ACE_ROOT)/ace/Process_Semaphore.h \ + $(ACE_ROOT)/ace/Process_Semaphore.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/sfp.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Protocol_Factory.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.i \ + $(ACE_ROOT)/ace/High_Res_Timer.h \ + $(ACE_ROOT)/ace/High_Res_Timer.i \ + $(ACE_ROOT)/ace/Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.inl \ + $(ACE_ROOT)/ace/Stats.i + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp new file mode 100644 index 00000000000..6bceacbf55b --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp @@ -0,0 +1,363 @@ +// $Id$ + +#include "receiver.h" +#include "ace/Get_Opt.h" +#include "ace/High_Res_Timer.h" + +static FILE *output_file = 0; +// File handle of the file into which received data is written. + +static const char *output_file_name = "output"; +// File name of the file into which received data is written. + +typedef ACE_Singleton RECEIVER; +//Create a singleton instance of the receiver. + +int +Receiver_StreamEndPoint::get_callback (const char *, + TAO_AV_Callback *&callback) +{ + // Return the receiver application callback to the AVStreams for + // future upcalls. + callback = &this->callback_; + return 0; +} + + +int +Receiver_StreamEndPoint::set_protocol_object (const char * flowname, + TAO_AV_Protocol_Object *object) +{ + // Set the sender protocol object corresponding to the transport + // protocol selected. + if (ACE_OS::strcmp (flowname, "Data_Receiver1") == 0) + RECEIVER::instance ()->protocol_object (object); + return 0; +} + +Receiver_Callback::Receiver_Callback (void) + : frame_count_ (1), + mb_ (BUFSIZ) +{ +} + +int +Receiver_Callback::receive_frame (ACE_Message_Block *frame, + TAO_AV_frame_info *, + const ACE_Addr &) +{ + // + // Upcall from the AVStreams when there is data to be received from + // the sender. + // + ACE_DEBUG ((LM_DEBUG, + "Receiver_Callback::receive_frame for frame %d\n", + this->frame_count_++)); + + while (frame != 0) + { + // Write the received data to the file. + size_t result = + ACE_OS::fwrite (frame->rd_ptr (), + frame->length (), + 1, + output_file); + + if (result == frame->length ()) + ACE_ERROR_RETURN ((LM_ERROR, + "Receiver_Callback::fwrite failed\n"), + -1); + + frame = frame->cont (); + } + + // Read from the file into a message block. + int n = ACE_OS::fread (this->mb_.wr_ptr (), + 1, + this->mb_.size (), + RECEIVER::instance ()->input_file ()); + + if (n < 0) + ACE_DEBUG ((LM_DEBUG, + "Receiver::receive_frame fread failed\n")); + + if (n == 0) + { + // At end of file break the loop and end the sender. + ACE_DEBUG ((LM_DEBUG,"End of file\n")); + } + else + { + this->mb_.wr_ptr (n); + + // Send frame. + int result = + RECEIVER::instance ()->protocol_object ()->send_frame (&this->mb_); + + if (result < 0) + ACE_DEBUG ((LM_DEBUG, + "Send Frame Failed\n")); + + // Reset the message block. + this->mb_.reset (); + } + return 0; +} + +int +Receiver_Callback::handle_destroy (void) +{ + // Called when the distributer requests the stream to be shutdown. + ACE_DEBUG ((LM_DEBUG, + "Receiver_Callback::handle_destroy\n")); + + static int count = 0; + ++count; + + if (count < 2) + { + ACE_TRY_NEW_ENV + { + TAO_AV_CORE::instance ()->orb ()->shutdown (0, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Receiver_Callback::handle_destroy Failed\n"); + return -1; + + } + + ACE_ENDTRY; + } + + return 0; +} + +Receiver::Receiver (void) + : mmdevice_ (0), + frame_rate_ (30), + input_file_ (0), + frame_count_ (0), + filename_ ("input"), + mb_ (BUFSIZ) +{ +} + +Receiver::~Receiver (void) +{ +} + +void +Receiver::protocol_object (TAO_AV_Protocol_Object *object) +{ + // Set the sender protocol object corresponding to the transport + // protocol selected. + this->protocol_object_ = object; +} + +int +Receiver::parse_args (int argc, + char **argv) +{ + // Parse command line arguments + ACE_Get_Opt opts (argc, argv, "f:r:d"); + + int c; + while ((c= opts ()) != -1) + { + switch (c) + { + case 'f': + this->filename_ = opts.optarg; + break; + case 'r': + this->frame_rate_ = ACE_OS::atoi (opts.optarg); + break; + case 'd': + TAO_debug_level++; + break; + default: + ACE_DEBUG ((LM_DEBUG, "Unknown Option\n")); + return -1; + } + } + return 0; +} + +int +Receiver::init (int argc, + char ** argv, + CORBA::Environment &ACE_TRY_ENV) +{ + // Initialize the endpoint strategy with the orb and poa. + int result = + this->reactive_strategy_.init (TAO_AV_CORE::instance ()->orb (), + TAO_AV_CORE::instance ()->poa ()); + if (result != 0) + return result; + + // Parse the command line arguments + result = + this->parse_args (argc, + argv); + if (result != 0) + return result; + + // Open file to read. + this->input_file_ = + ACE_OS::fopen (this->filename_.c_str (), + "r"); + + if (this->input_file_ == 0) + ACE_ERROR_RETURN ((LM_DEBUG, + "Cannot open input file %s\n", + this->filename_.c_str ()), + -1); + else + ACE_DEBUG ((LM_DEBUG, + "Input File opened successfully\n")); + + // Register the receiver mmdevice object with the ORB + ACE_NEW_RETURN (this->mmdevice_, + TAO_MMDevice (&this->reactive_strategy_), + -1); + + // Servant Reference Counting to manage lifetime + PortableServer::ServantBase_var safe_mmdevice = + this->mmdevice_; + + CORBA::Object_var mmdevice = + this->mmdevice_->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + // Register the mmdevice with the naming service. + CosNaming::Name name (1); + name.length (1); + name [0].id = + CORBA::string_dup ("Receiver"); + + // Initialize the naming services + if (this->naming_client_.init (TAO_AV_CORE::instance ()->orb ()) != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to initialize " + "the TAO_Naming_Client\n"), + -1); + + // Register the receiver object with the naming server. + this->naming_client_->rebind (name, + mmdevice.in (), + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + return 0; +} + +TAO_AV_Protocol_Object* +Receiver::protocol_object (void) +{ + return this->protocol_object_; +} + +FILE * +Receiver::input_file (void) +{ + return this->input_file_; +} + +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, + 0, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + CORBA::Object_var obj + = orb->resolve_initial_references ("RootPOA", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Get the POA_var object from Object_var. + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (obj.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POAManager_var mgr + = root_poa->the_POAManager (ACE_TRY_ENV); + ACE_TRY_CHECK; + + mgr->activate (ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Initialize the AVStreams components. + TAO_AV_CORE::instance ()->init (orb.in (), root_poa.in (), ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Make sure we have a valid + output_file = ACE_OS::fopen (output_file_name, + "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_DEBUG, + "Cannot open output file %s\n", + output_file_name), + -1); + + else + ACE_DEBUG ((LM_DEBUG, + "Output File Opened Successfully\n")); + + int result = + RECEIVER::instance ()->init (argc, + argv, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // // Start sending data. + // result = SENDER::instance ()->pace_data (ACE_TRY_ENV); + // ACE_TRY_CHECK; + + if (result != 0) + return result; + + orb->run (ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Hack for now.... + ACE_OS::sleep (1); + + //orb->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"receiver::init"); + return -1; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (-1); + + ACE_OS::fclose (output_file); + + return 0; +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Singleton ; +template class TAO_AV_Endpoint_Reactive_Strategy_B; +template class TAO_AV_Endpoint_Reactive_Strategy; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Singleton +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.h b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.h new file mode 100644 index 00000000000..4511d5f7710 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.h @@ -0,0 +1,146 @@ +/* -*- C++ -*- */ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/orbsvcs/tests/AVStreams/Simple +// +// = FILENAME +// receiver.h +// +// = DESCRIPTION +// This application receives data from a AV sender and writes it to +// a file. +// +// = AUTHOR +// Yamuna Krishnamurthy +// +// ============================================================================ + +#include "orbsvcs/Naming/Naming_Utils.h" +#include "orbsvcs/AV/AVStreams_i.h" +#include "orbsvcs/AV/Endpoint_Strategy.h" +#include "orbsvcs/AV/Policy.h" +#include "orbsvcs/AV/Protocol_Factory.h" + +class Receiver_Callback : public TAO_AV_Callback +{ + // = TITLE + // Application defined callback object. + // + // = DESCRIPTION + // AVStreams calls this class when data shows up from a sender. +public: + + Receiver_Callback (void); + // Constructor. + + // Method that is called when there is data to be received from a + // sender. + int receive_frame (ACE_Message_Block *frame, + TAO_AV_frame_info *frame_info, + const ACE_Addr &peer_address); + + // Called when the sender is done sending data and wants to close + // down the connection. + int handle_destroy (void); + +private: + int frame_count_; + // Keeping a count of the incoming frames. + + ACE_Message_Block mb_; + // Message block into which data is read from a file and then sent. +}; + +class Receiver_StreamEndPoint : public TAO_Server_StreamEndPoint +{ + // = TITLE + // Application defined stream endpoint object. + // + // = DESCRIPTION + // AVStreams calls this class during connection setup. +public: + // Create a receiver application callback. + int get_callback (const char *flowname, + TAO_AV_Callback *&callback); + + int set_protocol_object (const char *flowname, + TAO_AV_Protocol_Object *object); + // Set protocol object corresponding to the transport protocol + // chosen. + + +private: + Receiver_Callback callback_; + // Receiver application callback. +}; + +class Receiver +{ + // = TITLE + // Receiver application class. + // + // = DESCRIPTION + // This class receives data from a AV sender and writes it to + // a file. +public: + Receiver (void); + // Constructor + + ~Receiver (void); + // Destructor. + + int init (int argc, + char **argv, + CORBA::Environment &); + // Initialize data components. + + void protocol_object (TAO_AV_Protocol_Object *protocol_object); + // Set the protocol object corresponding to the transport protocol chosen. + + TAO_AV_Protocol_Object * protocol_object (void); + // Set the protocol object corresponding to the transport protocol chosen. + + FILE * input_file (void); + +protected: + TAO_Naming_Client naming_client_; + // The Naming Service Client. + + TAO_AV_Endpoint_Reactive_Strategy_B + reactive_strategy_; + // The endpoint reactive strategy. + + TAO_MMDevice *mmdevice_; + // Receiver MMDevice. + + int frame_rate_; + // Rate at which the data will be sent. + + TAO_AV_Protocol_Object *protocol_object_; + // Protocol object corresponding to the transport protocol selected. + + FILE *input_file_; + // File handle of the file read from. + + int frame_count_; + // Number of frames sent. + + ACE_CString filename_; + // File from which data is read. + + int parse_args (int argc, char **argv); + // Method to parse the command line arguments. + + ACE_Message_Block mb_; + // Message block into which data is read from a file and then sent. + +}; + + + + + + diff --git a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/run_test.pl b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/run_test.pl new file mode 100755 index 00000000000..28372903db4 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/run_test.pl @@ -0,0 +1,67 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib $ENV{"ACE_ROOT"}.'/bin'; +use PerlACE::Run_Test; + +# amount of delay between running the servers + +$sleeptime = 2; +$status = 0; + +$nsior = PerlACE::LocalFile ("ns.ior"); +$outfile = PerlACE::LocalFile ("output"); + +unlink $nsior; + +$NS = new PerlACE::Process ($ENV{"TAO_ROOT"}."/orbsvcs/Naming_Service/Naming_Service", "-o $nsior"); +$SV = new PerlACE::Process ("receiver", "-ORBInitRef NameService=file://$nsior -f output"); +$CL = new PerlACE::Process ("sender", "-ORBInitRef NameService=file://$nsior -f input -r 2"); + +print STDERR "Starting Naming Service\n"; + +$NS->Spawn (); + +if (PerlACE::waitforfile_timed ($nsior, 5) == -1) { + print STDERR "ERROR: cannot find naming service IOR file\n"; + $NS->Kill (); + exit 1; +} + +print STDERR "Starting Receiver\n"; + +$SV->Spawn (); + +sleep $sleeptime; + +print STDERR "Starting Sender\n"; + +$sender = $CL->SpawnWaitKill (200); + +if ($sender != 0) { + print STDERR "ERROR: sender returned $sender\n"; + $status = 1; +} + +$receiver = $SV->TerminateWaitKill (5); + +if ($receiver != 0) { + print STDERR "ERROR: receiver returned $receiver\n"; + $status = 1; +} + +$nserver = $NS->TerminateWaitKill (5); + +if ($nserver != 0) { + print STDERR "ERROR: Naming Service returned $nserver\n"; + $status = 1; +} + +unlink $nsior; +unlink $output; + +exit $status; diff --git a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp new file mode 100644 index 00000000000..63dab991dd3 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp @@ -0,0 +1,513 @@ +// $Id$ + +#include "sender.h" +#include "tao/debug.h" +#include "ace/Get_Opt.h" +#include "ace/High_Res_Timer.h" + +typedef ACE_Singleton SENDER; +// Create a singleton instance of the Sender. + +static FILE *output_file = 0; +// File handle of the file into which received data is written. + +static const char *output_file_name = "output"; +// File name of the file into which received data is written. + + +int +Sender_StreamEndPoint::get_callback (const char *, + TAO_AV_Callback *&callback) +{ + // Create and return the sender application callback to AVStreams + // for further upcalls. + callback = &this->callback_; + return 0; +} + +int +Sender_StreamEndPoint::set_protocol_object (const char *, + TAO_AV_Protocol_Object *object) +{ + // Set the sender protocol object corresponding to the transport + // protocol selected. + SENDER::instance ()->protocol_object (object); + return 0; +} + +Sender_Callback::Sender_Callback (void) + : frame_count_ (1) +{ +} + +int +Sender_Callback::receive_frame (ACE_Message_Block *frame, + TAO_AV_frame_info *, + const ACE_Addr &) +{ + // + // Upcall from the AVStreams when there is data to be received from + // the sender. + // + ACE_DEBUG ((LM_DEBUG, + "Sender_Callback::receive_frame for frame %d\n", + this->frame_count_++)); + + while (frame != 0) + { + // Write the received data to the file. + size_t result = + ACE_OS::fwrite (frame->rd_ptr (), + frame->length (), + 1, + output_file); + + if (result == frame->length ()) + ACE_ERROR_RETURN ((LM_ERROR, + "Sender_Callback::fwrite failed\n"), + -1); + + frame = frame->cont (); + } + + if (SENDER::instance ()->eof () == 1) + SENDER::instance ()->shutdown (); + return 0; +} + +Sender::Sender (void) + : sender_mmdevice_ (0), + streamctrl_ (0), + frame_count_ (0), + filename_ ("input"), + input_file_ (0), + protocol_ ("UDP"), + frame_rate_ (30), + mb_ (BUFSIZ), + eof_ (0) +{ +} + +void +Sender::protocol_object (TAO_AV_Protocol_Object *object) +{ + // Set the sender protocol object corresponding to the transport + // protocol selected. + this->protocol_object_ = object; +} + +int +Sender::eof (void) +{ + return this->eof_; +} + +void +Sender::shutdown (void) +{ + ACE_DECLARE_NEW_CORBA_ENV; + // File reading is complete, destroy the stream. + AVStreams::flowSpec stop_spec; + this->streamctrl_->destroy (stop_spec, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Shut the orb down. + TAO_AV_CORE::instance ()->orb ()->shutdown (0, + ACE_TRY_ENV); + ACE_TRY_CHECK; + +} + +int +Sender::parse_args (int argc, + char **argv) +{ + // Parse command line arguments + ACE_Get_Opt opts (argc, argv, "f:p:r:d"); + + int c; + while ((c= opts ()) != -1) + { + switch (c) + { + case 'f': + this->filename_ = opts.optarg; + break; + case 'p': + this->protocol_ = opts.optarg; + break; + case 'r': + this->frame_rate_ = ACE_OS::atoi (opts.optarg); + break; + case 'd': + TAO_debug_level++; + break; + default: + ACE_DEBUG ((LM_DEBUG, "Unknown Option\n")); + return -1; + } + } + return 0; +} + +// Method to get the object reference of the receiver +int +Sender::bind_to_receiver (CORBA::Environment &ACE_TRY_ENV) +{ + CosNaming::Name name (1); + name.length (1); + name [0].id = + CORBA::string_dup ("Receiver"); + + // Resolve the receiver object reference from the Naming Service + CORBA::Object_var receiver_mmdevice_obj = + this->naming_client_->resolve (name, + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + this->receiver_mmdevice_ = + AVStreams::MMDevice::_narrow (receiver_mmdevice_obj.in (), + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + if (CORBA::is_nil (this->receiver_mmdevice_.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + "Could not resolve Receiver_MMdevice in Naming service <%s>\n"), + -1); + + return 0; +} + +int +Sender::init (int argc, + char **argv, + CORBA::Environment &ACE_TRY_ENV) +{ + // Initialize the endpoint strategy with the orb and poa. + int result = + this->endpoint_strategy_.init (TAO_AV_CORE::instance ()->orb (), + TAO_AV_CORE::instance ()->poa ()); + if (result != 0) + return result; + + // Initialize the naming services + result = + this->naming_client_.init (TAO_AV_CORE::instance ()->orb ()); + if (result != 0) + return result; + + // Parse the command line arguments + result = + this->parse_args (argc, + argv); + if (result != 0) + return result; + + // Open file to read. + this->input_file_ = + ACE_OS::fopen (this->filename_.c_str (), + "r"); + + if (this->input_file_ == 0) + ACE_ERROR_RETURN ((LM_DEBUG, + "Cannot open input file %s\n", + this->filename_.c_str ()), + -1); + else + ACE_DEBUG ((LM_DEBUG, + "File opened successfully\n")); + + // Resolve the object reference of the receiver from the Naming Service. + result = this->bind_to_receiver (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + if (result != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "(%P|%t) Error binding to the naming service\n"), + -1); + + + // Initialize the QoS + AVStreams::streamQoS_var the_qos (new AVStreams::streamQoS); + + // Create the forward flow specification to describe the flow. + TAO_Forward_FlowSpec_Entry entry ("Data_Receiver", + "IN", + "USER_DEFINED", + "", + this->protocol_.c_str (), + 0); + + AVStreams::flowSpec flow_spec (1); + flow_spec.length (2); + flow_spec [0] = CORBA::string_dup (entry.entry_to_string ()); + + // Create the forward flow specification to describe the flow. + TAO_Forward_FlowSpec_Entry entry1 ("Data_Receiver1", + "OUT", + "USER_DEFINED", + "", + this->protocol_.c_str (), + 0); + + flow_spec [1] = CORBA::string_dup (entry1.entry_to_string ()); + + // Register the sender mmdevice object with the ORB + ACE_NEW_RETURN (this->sender_mmdevice_, + TAO_MMDevice (&this->endpoint_strategy_), + -1); + + // Servant Reference Counting to manage lifetime + PortableServer::ServantBase_var safe_mmdevice = + this->sender_mmdevice_; + + AVStreams::MMDevice_var mmdevice = + this->sender_mmdevice_->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + ACE_NEW_RETURN (this->streamctrl_, + TAO_StreamCtrl, + -1); + + PortableServer::ServantBase_var safe_streamctrl = + this->streamctrl_; + + // Bind/Connect the sender and receiver MMDevices. + CORBA::Boolean bind_result = + this->streamctrl_->bind_devs (mmdevice.in (), + this->receiver_mmdevice_.in (), + the_qos.inout (), + flow_spec, + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + if (bind_result == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "streamctrl::bind_devs failed\n"), + -1); + + return 0; +} + +// Method to send data at the specified rate +int +Sender::pace_data (CORBA::Environment &ACE_TRY_ENV) +{ + // The time that should lapse between two consecutive frames sent. + ACE_Time_Value inter_frame_time; + + // The time between two consecutive frames. + inter_frame_time.set (1 / (double) this->frame_rate_); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "Frame Rate = %d / second\n" + "Inter Frame Time = %d (msec)\n", + this->frame_rate_, + inter_frame_time.msec ())); + + ACE_TRY + { + // The time taken for sending a frame and preparing for the next frame + ACE_High_Res_Timer elapsed_timer; + + // Continue to send data till the file is read to the end. + while (1) + { + // Read from the file into a message block. + int n = ACE_OS::fread (this->mb_.wr_ptr (), + 1, + this->mb_.size (), + this->input_file_); + + if (n < 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Sender::pace_data fread failed\n"), + -1); + + if (n == 0) + { + // At end of file break the loop and end the sender. + ACE_DEBUG ((LM_DEBUG,"Handle_Start:End of file\n")); + this->eof_ = 1; + break; + } + + this->mb_.wr_ptr (n); + + if (this->frame_count_ > 1) + { + // + // Second frame and beyond + // + + // Stop the timer that was started just before the previous frame was sent. + elapsed_timer.stop (); + + // Get the time elapsed after sending the previous frame. + ACE_Time_Value elapsed_time; + elapsed_timer.elapsed_time (elapsed_time); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "Elapsed Time = %d\n", + elapsed_time.msec ())); + + // Check to see if the inter frame time has elapsed. + if (elapsed_time < inter_frame_time) + { + // Inter frame time has not elapsed. + + // Calculate the time to wait before the next frame needs to be sent. + ACE_Time_Value wait_time (inter_frame_time - elapsed_time); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "Wait Time = %d\n", + wait_time.msec ())); + + // Run the orb for the wait time so the sender can + // continue other orb requests. + TAO_AV_CORE::instance ()->orb ()->run (wait_time, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + } + + // Start timer before sending the frame. + elapsed_timer.start (); + + // Send frame. + int result = + this->protocol_object_->send_frame (&this->mb_); + + if (result < 0) + ACE_ERROR_RETURN ((LM_ERROR, + "send failed:%p", + "Sender::pace_data send\n"), + -1); + + ACE_DEBUG ((LM_DEBUG, + "Sender::pace_data frame %d was sent succesfully\n", + ++this->frame_count_)); + + // Reset the message block. + this->mb_.reset (); + + } // end while + + // File reading is complete, destroy the stream. + AVStreams::flowSpec stop_spec; + this->streamctrl_->destroy (stop_spec, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Shut the orb down. + //TAO_AV_CORE::instance ()->orb ()->shutdown (1, + // ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + //ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + // "Sender::pace_data Failed\n"); + return -1; + } + ACE_ENDTRY; + return 0; +} + +int +main (int argc, + char **argv) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv, + 0, + ACE_TRY_ENV); + + CORBA::Object_var obj + = orb->resolve_initial_references ("RootPOA", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Get the POA_var object from Object_var + PortableServer::POA_var root_poa + = PortableServer::POA::_narrow (obj.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POAManager_var mgr + = root_poa->the_POAManager (ACE_TRY_ENV); + ACE_TRY_CHECK; + + mgr->activate (ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Initialize the AV Stream components. +/* TAO_AV_CORE::instance ()->init (orb.in (), + root_poa.in (), + ACE_TRY_ENV); */ + ACE_TRY_CHECK; + + // Initialize the AVStreams components. + TAO_AV_CORE::instance ()->init (orb.in (), root_poa.in (), ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Initialize the Sender. + int result = 0; + result = SENDER::instance ()->init (argc, + argv, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + if (result < 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Sender::init failed\n"), + -1); + + // Make sure we have a valid + output_file = ACE_OS::fopen (output_file_name, + "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_DEBUG, + "Cannot open output file %s\n", + output_file_name), + -1); + + else + ACE_DEBUG ((LM_DEBUG, + "File Opened Successfull\n")); + + // Start sending data. + result = SENDER::instance ()->pace_data (ACE_TRY_ENV); + ACE_TRY_CHECK; + ACE_Time_Value tv(3,0); + orb->run (tv); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Sender Failed\n"); + return -1; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (-1); + return 0; +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Singleton ; +template class TAO_AV_Endpoint_Reactive_Strategy_A; +template class TAO_AV_Endpoint_Reactive_Strategy; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Singleton +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.h b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.h new file mode 100644 index 00000000000..8188b7f49f7 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.h @@ -0,0 +1,150 @@ +/* -*- C++ -*- */ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/orbsvcs/tests/AVStreams/Simple +// +// = FILENAME +// sender.h +// +// = DESCRIPTION +// This application reads data from a file and sends it to s +// receiver. +// +// = AUTHOR +// Yamuna Krishnamurthy +// +// ============================================================================ + +#include "orbsvcs/Naming/Naming_Utils.h" +#include "orbsvcs/AV/AVStreams_i.h" +#include "orbsvcs/AV/Endpoint_Strategy.h" +#include "orbsvcs/AV/Protocol_Factory.h" + +class Sender_Callback : public TAO_AV_Callback +{ + // = TITLE + // Application defined callback object. + // + // = DESCRIPTION + // AVStreams calls this class when data shows up from a sender. +public: + + Sender_Callback (void); + // Constructor. + + // Method that is called when there is data to be received from a + // sender. + int receive_frame (ACE_Message_Block *frame, + TAO_AV_frame_info *frame_info, + const ACE_Addr &peer_address); + + // Called when the sender is done sending data and wants to close + // down the connection. + // int handle_destroy (void); + +private: + int frame_count_; + // Keeping a count of the incoming frames. +}; + +class Sender_StreamEndPoint : public TAO_Client_StreamEndPoint +{ + // = TITLE + // Defines a sender stream endpoint. +public: + int get_callback (const char *flowname, + TAO_AV_Callback *&callback); + // Create the application callback and return its handle to + // AVStreams for further application callbacks. + + int set_protocol_object (const char *flowname, + TAO_AV_Protocol_Object *object); + // Set protocol object corresponding to the transport protocol + // chosen. + +protected: + Sender_Callback callback_; + // Application callback. +}; + +typedef TAO_AV_Endpoint_Reactive_Strategy_A + + SENDER_ENDPOINT_STRATEGY; + +class Sender +{ + // = TITLE + // Sender Application. + // + // = DESCRIPTION + // Class is responsible for streaming (and pacing) data to a + // receiver. +public: + Sender (void); + // Constructor + + int init (int argc, + char **argv, + CORBA::Environment&); + // Method to initialize the various data components. + + int pace_data (CORBA::Environment &); + // Method to pace and send data from a file. + + void protocol_object (TAO_AV_Protocol_Object *protocol_object); + // Set the protocol object corresponding to the transport protocol chosen. + + int eof (void); + + void shutdown (void); + +private: + int parse_args (int argc, char **argv); + // Method to parse the command line arguments. + + int bind_to_receiver (CORBA::Environment& ACE_TRY_ENV); + // Method that binds the sender to the receiver. + + SENDER_ENDPOINT_STRATEGY endpoint_strategy_; + // The endpoint strategy used by the sender. + + AVStreams::MMDevice_var receiver_mmdevice_; + // The receiver MMDevice that the sender connects to. + + TAO_MMDevice *sender_mmdevice_; + // The sender MMDevice. + + TAO_StreamCtrl *streamctrl_; + // Stream controller + + int frame_count_; + // Number of frames sent. + + ACE_CString filename_; + // File from which data is read. + + TAO_Naming_Client naming_client_; + // The Naming Service client. + + FILE *input_file_; + // File handle of the file read from. + + ACE_CString protocol_; + // Selected protocol - default is UDP + + int frame_rate_; + // Rate at which the data will be sent. + + ACE_Message_Block mb_; + // Message block into which data is read from a file and then sent. + + TAO_AV_Protocol_Object *protocol_object_; + // Protocol object corresponding to the transport protocol selected. + + int eof_; +}; diff --git a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/Makefile b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/Makefile new file mode 100644 index 00000000000..a0d4ef3c63e --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/Makefile @@ -0,0 +1,58 @@ +#---------------------------------------------------------------------------- +# $Id$ +# +# Top-level Makefile for Pluggable testing of AVStreams of TAO. +# +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +LDLIBS = -lTAO_AV -lTAO_CosProperty -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_IORTable -lTAO_PortableServer -lTAO + +RECEIVER_OBJS = receiver.o +SENDER_OBJS = sender.o + +VLDLIBS = $(LDLIBS:%=%$(VAR)) + +ifndef TAO_ROOT +TAO_ROOT = $(ACE_ROOT)/TAO +endif + +FILES = sender receiver +DEFS = $(addsuffix .h,$(FILES)) +LSRC = $(addsuffix .cpp,$(FILES)) + +BIN2 = receiver sender + +#### If the TAO orbsvcs library wasn't built with sufficient components, +#### don't try to build here. +TAO_ORBSVCS := $(shell $(ACE_ROOT)/bin/ace_components --orbsvcs) +ifeq (AV,$(findstring AV,$(TAO_ORBSVCS))) + BIN = $(BIN2) +endif # AV + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(TAO_ROOT)/rules.tao.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +ifeq ($(rapi),1) + LDLIBS += -lACE_QoS +endif # rapi + +#DCFLAGS = -g +LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao +CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT)/orbsvcs/orbsvcs/AV \ + -I$(TAO_ROOT) + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. diff --git a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/README b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/README new file mode 100644 index 00000000000..a6deaa1f938 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/README @@ -0,0 +1,57 @@ +// $Id$ + +Description +----------- + +This directory contains a simple test in the form of a sender and a +receiver. The test has the following features: + +1. It tests the AVStreams Pluggable Protocol Framework +2. Shows a mechanism to pace data. +3. Shows how to set up multiple data streams between the same MMDevices. + +The sender sets up two data streams: +1. Data_Receiver_One and +2. Data_Receiver_Two + +and sends the data from the input file on both these streams. + +The receiver creates two output files: +1. Data_Receiver_One and +2. Data_Receiver_Two + +corresponding to the two data streams. + +Running the test +---------------- + +receiver +-------- + +receiver + +-f -> The name of the file from which data is sent to the receiver + +sender +------ + +sender [-f ] [-p ] [-r ] [-d] + + +-f filename --> The file to be streamed to the receiver (defaults to + "input"). + +-p protocol --> The protocol string could be UDP or TCP (defaults to + UDP). But with the multicast address it should be UDP. + +-r framerate--> The rate at which tha data frames need to be sent + (defaults to 30 frames per second). + +-d --> Increament the TAO_debug_level for debug messages. + + +The test must be run with the naming service. Check the run_test.pl +to see how to configure the test case. + + + diff --git a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/input b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/input new file mode 100644 index 00000000000..b6579cec283 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/input @@ -0,0 +1,995 @@ +#---------------------------------------------------------------------------- +# input,v 1.1 2001/03/27 11:41:00 irfan Exp +# +# Top-level Makefile for Pluggable testing of AVStreams of TAO. +# +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +LDLIBS = -lTAO_AV -lTAO_CosProperty -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_IORTable -lTAO_PortableServer -lTAO + +SERVER_OBJS = server.o +CLIENT_OBJS = ftp.o + +VLDLIBS = $(LDLIBS:%=%$(VAR)) + +ifndef TAO_ROOT +TAO_ROOT = $(ACE_ROOT)/TAO +endif + +FILES = ftp server +DEFS = $(addsuffix .h,$(FILES)) +LSRC = $(addsuffix .cpp,$(FILES)) + +BIN2 = server ftp + +#### If the TAO orbsvcs library wasn't built with sufficient components, +#### don't try to build here. +TAO_ORBSVCS := $(shell $(ACE_ROOT)/bin/ace_components --orbsvcs) +ifeq (AV,$(findstring AV,$(TAO_ORBSVCS))) + BIN = $(BIN2) +endif # AV + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(TAO_ROOT)/rules.tao.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +#DCFLAGS = -g +LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao +CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT)/orbsvcs/orbsvcs/AV \ + -I$(TAO_ROOT) + +#server:$(addprefix $(VDIR),$(SERVER_OBJS)) +# $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) + +#ftp:$(addprefix $(VDIR),$(CLIENT_OBJS)) +# $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/ftp.o .obj/ftp.so .shobj/ftp.o .shobj/ftp.so: ftp.cpp ftp.h \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Get_Opt.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(TAO_ROOT)/tao/Object_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/TAO_Server_Request.h \ + $(TAO_ROOT)/tao/Tagged_Profile.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/GIOPC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOPC.i \ + $(TAO_ROOT)/tao/Tagged_Profile.i \ + $(TAO_ROOT)/tao/Service_Context.h \ + $(TAO_ROOT)/tao/Service_Context.inl \ + $(TAO_ROOT)/tao/TAO_Server_Request.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/GIOP_Message_State.h \ + $(TAO_ROOT)/tao/GIOP_Message_State.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/Adapter.h \ + $(TAO_ROOT)/tao/Adapter.i \ + $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/PollableC.i \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Parser_Registry.h \ + $(TAO_ROOT)/tao/Parser_Registry.i \ + $(TAO_ROOT)/tao/Service_Callbacks.h \ + $(TAO_ROOT)/tao/Service_Callbacks.i \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(TAO_ROOT)/tao/Cache_Entries.h \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.h \ + $(TAO_ROOT)/tao/Endpoint.h \ + $(TAO_ROOT)/tao/Endpoint.i \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.inl \ + $(TAO_ROOT)/tao/Cache_Entries.inl \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.inl \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(TAO_ROOT)/tao/Object_Ref_Table.h \ + $(TAO_ROOT)/tao/Interceptor_List.h \ + $(TAO_ROOT)/tao/Interceptor_List.inl \ + $(TAO_ROOT)/tao/RT_Policy_i.h \ + $(TAO_ROOT)/tao/RTCORBAS.h \ + $(TAO_ROOT)/tao/IOPS.h \ + $(TAO_ROOT)/tao/IOPS_T.h \ + $(TAO_ROOT)/tao/IOPS_T.i \ + $(TAO_ROOT)/tao/IOPS_T.cpp \ + $(TAO_ROOT)/tao/IOPS.i \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/RTCORBAC.h \ + $(TAO_ROOT)/tao/RTCORBAC.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.h \ + $(TAO_ROOT)/tao/RTCORBAS_T.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.cpp \ + $(TAO_ROOT)/tao/RTCORBAS.i \ + $(TAO_ROOT)/tao/RT_Policy_i.i \ + $(TAO_ROOT)/tao/Protocols_Hooks.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.h \ + $(TAO_ROOT)/tao/Priority_Mapping.h \ + $(TAO_ROOT)/tao/Priority_Mapping.i \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.i \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/operation_details.h \ + $(TAO_ROOT)/tao/target_specification.h \ + $(TAO_ROOT)/tao/target_specification.i \ + $(TAO_ROOT)/tao/operation_details.i \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/ClientRequestInfo.h \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/ClientRequestInfo.inl \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/PortableInterceptor.h \ + $(TAO_ROOT)/tao/PortableInterceptor.i \ + $(TAO_ROOT)/tao/BiDirPolicyC.h \ + $(TAO_ROOT)/tao/BiDirPolicyC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \ + $(ACE_ROOT)/ace/INET_Addr.h \ + $(ACE_ROOT)/ace/Addr.h \ + $(ACE_ROOT)/ace/Addr.i \ + $(ACE_ROOT)/ace/INET_Addr.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ + $(ACE_ROOT)/ace/SOCK_Dgram.h \ + $(ACE_ROOT)/ace/SOCK.h \ + $(ACE_ROOT)/ace/IPC_SAP.h \ + $(ACE_ROOT)/ace/IPC_SAP.i \ + $(ACE_ROOT)/ace/QoS_Session.h \ + $(ACE_ROOT)/ace/SOCK.i \ + $(ACE_ROOT)/ace/SOCK_Dgram.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.h \ + $(ACE_ROOT)/ace/ATM_Addr.h \ + $(ACE_ROOT)/ace/ATM_Addr.i \ + $(ACE_ROOT)/ace/Process.h \ + $(ACE_ROOT)/ace/Process.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.h \ + $(ACE_ROOT)/ace/SOCK_IO.h \ + $(ACE_ROOT)/ace/SOCK_IO.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.i \ + $(ACE_ROOT)/ace/Connector.h \ + $(ACE_ROOT)/ace/Svc_Handler.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Task.h \ + $(ACE_ROOT)/ace/Task.i \ + $(ACE_ROOT)/ace/Task_T.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/Process_Mutex.h \ + $(ACE_ROOT)/ace/Process_Mutex.inl \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/Task_T.i \ + $(ACE_ROOT)/ace/Task_T.cpp \ + $(ACE_ROOT)/ace/Module.h \ + $(ACE_ROOT)/ace/Module.i \ + $(ACE_ROOT)/ace/Module.cpp \ + $(ACE_ROOT)/ace/Stream_Modules.h \ + $(ACE_ROOT)/ace/Stream_Modules.cpp \ + $(ACE_ROOT)/ace/Svc_Handler.cpp \ + $(ACE_ROOT)/ace/Dynamic.h \ + $(ACE_ROOT)/ace/Dynamic.i \ + $(ACE_ROOT)/ace/Connector.cpp \ + $(ACE_ROOT)/ace/SOCK_Connector.h \ + $(ACE_ROOT)/ace/SOCK_Stream.h \ + $(ACE_ROOT)/ace/SOCK_Stream.i \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/SOCK_Connector.i \ + $(ACE_ROOT)/ace/Acceptor.h \ + $(ACE_ROOT)/ace/Acceptor.cpp \ + $(ACE_ROOT)/ace/SOCK_Acceptor.h \ + $(ACE_ROOT)/ace/SOCK_Acceptor.i \ + $(TAO_ROOT)/tao/PortableServer/ORB_Manager.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/property_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/CosPropertyService_i.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_Core.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp \ + $(ACE_ROOT)/ace/Process_Semaphore.h \ + $(ACE_ROOT)/ace/Process_Semaphore.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/sfp.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Protocol_Factory.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.i \ + $(ACE_ROOT)/ace/High_Res_Timer.h \ + $(ACE_ROOT)/ace/High_Res_Timer.i \ + $(ACE_ROOT)/ace/Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.inl \ + $(ACE_ROOT)/ace/Stats.i + +.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp server.h \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Get_Opt.i \ + $(TAO_ROOT)/tao/PortableServer/ORB_Manager.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(TAO_ROOT)/tao/Object_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(TAO_ROOT)/tao/RTCORBAC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/RTCORBAC.i \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/TAO_Server_Request.h \ + $(TAO_ROOT)/tao/Tagged_Profile.h \ + $(TAO_ROOT)/tao/GIOPC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOPC.i \ + $(TAO_ROOT)/tao/Tagged_Profile.i \ + $(TAO_ROOT)/tao/Service_Context.h \ + $(TAO_ROOT)/tao/Service_Context.inl \ + $(TAO_ROOT)/tao/TAO_Server_Request.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/GIOP_Message_State.h \ + $(TAO_ROOT)/tao/GIOP_Message_State.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/Adapter.h \ + $(TAO_ROOT)/tao/Adapter.i \ + $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/PollableC.i \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Parser_Registry.h \ + $(TAO_ROOT)/tao/Parser_Registry.i \ + $(TAO_ROOT)/tao/Service_Callbacks.h \ + $(TAO_ROOT)/tao/Service_Callbacks.i \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(TAO_ROOT)/tao/Cache_Entries.h \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.h \ + $(TAO_ROOT)/tao/Endpoint.h \ + $(TAO_ROOT)/tao/Endpoint.i \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.inl \ + $(TAO_ROOT)/tao/Cache_Entries.inl \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.inl \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(TAO_ROOT)/tao/Object_Ref_Table.h \ + $(TAO_ROOT)/tao/Interceptor_List.h \ + $(TAO_ROOT)/tao/Interceptor_List.inl \ + $(TAO_ROOT)/tao/RT_Policy_i.h \ + $(TAO_ROOT)/tao/RTCORBAS.h \ + $(TAO_ROOT)/tao/IOPS.h \ + $(TAO_ROOT)/tao/IOPS_T.h \ + $(TAO_ROOT)/tao/IOPS_T.i \ + $(TAO_ROOT)/tao/IOPS_T.cpp \ + $(TAO_ROOT)/tao/IOPS.i \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.h \ + $(TAO_ROOT)/tao/RTCORBAS_T.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.cpp \ + $(TAO_ROOT)/tao/RTCORBAS.i \ + $(TAO_ROOT)/tao/RT_Policy_i.i \ + $(TAO_ROOT)/tao/Protocols_Hooks.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.h \ + $(TAO_ROOT)/tao/Priority_Mapping.h \ + $(TAO_ROOT)/tao/Priority_Mapping.i \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.i \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/operation_details.h \ + $(TAO_ROOT)/tao/target_specification.h \ + $(TAO_ROOT)/tao/target_specification.i \ + $(TAO_ROOT)/tao/operation_details.i \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/ClientRequestInfo.h \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/ClientRequestInfo.inl \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/PortableInterceptor.h \ + $(TAO_ROOT)/tao/PortableInterceptor.i \ + $(TAO_ROOT)/tao/BiDirPolicyC.h \ + $(TAO_ROOT)/tao/BiDirPolicyC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \ + $(ACE_ROOT)/ace/INET_Addr.h \ + $(ACE_ROOT)/ace/Addr.h \ + $(ACE_ROOT)/ace/Addr.i \ + $(ACE_ROOT)/ace/INET_Addr.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ + $(ACE_ROOT)/ace/SOCK_Dgram.h \ + $(ACE_ROOT)/ace/SOCK.h \ + $(ACE_ROOT)/ace/IPC_SAP.h \ + $(ACE_ROOT)/ace/IPC_SAP.i \ + $(ACE_ROOT)/ace/QoS_Session.h \ + $(ACE_ROOT)/ace/SOCK.i \ + $(ACE_ROOT)/ace/SOCK_Dgram.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.h \ + $(ACE_ROOT)/ace/ATM_Addr.h \ + $(ACE_ROOT)/ace/ATM_Addr.i \ + $(ACE_ROOT)/ace/Process.h \ + $(ACE_ROOT)/ace/Process.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.h \ + $(ACE_ROOT)/ace/SOCK_IO.h \ + $(ACE_ROOT)/ace/SOCK_IO.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.i \ + $(ACE_ROOT)/ace/Connector.h \ + $(ACE_ROOT)/ace/Svc_Handler.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Task.h \ + $(ACE_ROOT)/ace/Task.i \ + $(ACE_ROOT)/ace/Task_T.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/Process_Mutex.h \ + $(ACE_ROOT)/ace/Process_Mutex.inl \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/Task_T.i \ + $(ACE_ROOT)/ace/Task_T.cpp \ + $(ACE_ROOT)/ace/Module.h \ + $(ACE_ROOT)/ace/Module.i \ + $(ACE_ROOT)/ace/Module.cpp \ + $(ACE_ROOT)/ace/Stream_Modules.h \ + $(ACE_ROOT)/ace/Stream_Modules.cpp \ + $(ACE_ROOT)/ace/Svc_Handler.cpp \ + $(ACE_ROOT)/ace/Dynamic.h \ + $(ACE_ROOT)/ace/Dynamic.i \ + $(ACE_ROOT)/ace/Connector.cpp \ + $(ACE_ROOT)/ace/SOCK_Connector.h \ + $(ACE_ROOT)/ace/SOCK_Stream.h \ + $(ACE_ROOT)/ace/SOCK_Stream.i \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/SOCK_Connector.i \ + $(ACE_ROOT)/ace/Acceptor.h \ + $(ACE_ROOT)/ace/Acceptor.cpp \ + $(ACE_ROOT)/ace/SOCK_Acceptor.h \ + $(ACE_ROOT)/ace/SOCK_Acceptor.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/property_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/CosPropertyService_i.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_Core.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp \ + $(ACE_ROOT)/ace/Process_Semaphore.h \ + $(ACE_ROOT)/ace/Process_Semaphore.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/sfp.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Protocol_Factory.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.i \ + $(ACE_ROOT)/ace/High_Res_Timer.h \ + $(ACE_ROOT)/ace/High_Res_Timer.i \ + $(ACE_ROOT)/ace/Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.inl \ + $(ACE_ROOT)/ace/Stats.i + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp new file mode 100644 index 00000000000..4106f1c5e07 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp @@ -0,0 +1,305 @@ +// $Id$ + +#include "receiver.h" +#include "ace/Get_Opt.h" +#include "ace/High_Res_Timer.h" + +int endstream = 0; + +typedef ACE_Singleton RECEIVER; +//Create a singleton instance of the receiver. + +int +Receiver_StreamEndPoint::get_callback (const char *flow_name, + TAO_AV_Callback *&callback) +{ + Receiver_Callback *callback_; + ACE_NEW_RETURN (callback_, + Receiver_Callback, + -1); + + // Return the receiver application callback to the AVStreams for + // future upcalls. + callback = callback_; + callback_->flowname (flow_name); + return 0; +} + + +int +Receiver_StreamEndPoint::set_protocol_object (const char * flowname, + TAO_AV_Protocol_Object *object) +{ + // Set the sender protocol object corresponding to the transport + // protocol selected. + if (ACE_OS::strcmp (flowname, "Data_Receiver1") == 0) + RECEIVER::instance ()->protocol_object (object); + return 0; +} + +Receiver_Callback::Receiver_Callback (void) + : frame_count_ (1), + mb_ (BUFSIZ) +{ + ACE_DEBUG ((LM_DEBUG, + "Receiver_Callback::Receiver_Callback\n")); +} + +void +Receiver_Callback::flowname (const char* flow_name) +{ + this->flowname_ = flow_name; + + // Make sure we have a valid + this->output_file_ = ACE_OS::fopen (this->flowname_.c_str (), + "w"); + if (this->output_file_ == 0) + ACE_ERROR ((LM_DEBUG, + "Cannot open output file %s\n", + this->flowname_.c_str ())); + + else + ACE_DEBUG ((LM_DEBUG, + "%s File Opened Successfully\n", + this->flowname_.c_str ())); + + +} + +int +Receiver_Callback::receive_frame (ACE_Message_Block *frame, + TAO_AV_frame_info *, + const ACE_Addr &) +{ + // + // Upcall from the AVStreams when there is data to be received from + // the sender. + // + ACE_DEBUG ((LM_DEBUG, + "Receiver_Callback::receive_frame for frame %d for flow %s\n", + this->frame_count_++, + this->flowname_.c_str ())); + + while (frame != 0) + { + // Write the received data to the file. + size_t result = + ACE_OS::fwrite (frame->rd_ptr (), + frame->length (), + 1, + this->output_file_); + + if (result == frame->length ()) + ACE_ERROR_RETURN ((LM_ERROR, + "Receiver_Callback::fwrite failed\n"), + -1); + + frame = frame->cont (); + } + + return 0; +} + +int +Receiver_Callback::handle_destroy (void) +{ + // Called when the distributer requests the stream to be shutdown. + ACE_DEBUG ((LM_DEBUG, + "Receiver_Callback::handle_destroy\n")); + + endstream++; + + return 0; +} + +Receiver::Receiver (void) + : mmdevice_ (0), + frame_rate_ (30), + frame_count_ (0), + filename_ ("input"), + mb_ (BUFSIZ) +{ +} + +Receiver::~Receiver (void) +{ +} + +void +Receiver::protocol_object (TAO_AV_Protocol_Object *object) +{ + // Set the sender protocol object corresponding to the transport + // protocol selected. + this->protocol_object_ = object; +} + +int +Receiver::parse_args (int argc, + char **argv) +{ + // Parse command line arguments + ACE_Get_Opt opts (argc, argv, "f:r:d"); + + int c; + while ((c= opts ()) != -1) + { + switch (c) + { + case 'f': + this->filename_ = opts.optarg; + break; + case 'r': + this->frame_rate_ = ACE_OS::atoi (opts.optarg); + break; + case 'd': + TAO_debug_level++; + break; + default: + ACE_DEBUG ((LM_DEBUG, "Unknown Option\n")); + return -1; + } + } + return 0; +} + +int +Receiver::init (int argc, + char ** argv, + CORBA::Environment &ACE_TRY_ENV) +{ + // Initialize the endpoint strategy with the orb and poa. + int result = + this->reactive_strategy_.init (TAO_AV_CORE::instance ()->orb (), + TAO_AV_CORE::instance ()->poa ()); + if (result != 0) + return result; + + // Parse the command line arguments + result = + this->parse_args (argc, + argv); + if (result != 0) + return result; + + + // Register the receiver mmdevice object with the ORB + ACE_NEW_RETURN (this->mmdevice_, + TAO_MMDevice (&this->reactive_strategy_), + -1); + + // Servant Reference Counting to manage lifetime + PortableServer::ServantBase_var safe_mmdevice = + this->mmdevice_; + + CORBA::Object_var mmdevice = + this->mmdevice_->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + // Register the mmdevice with the naming service. + CosNaming::Name name (1); + name.length (1); + name [0].id = + CORBA::string_dup ("Receiver"); + + // Initialize the naming services + if (this->naming_client_.init (TAO_AV_CORE::instance ()->orb ()) != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to initialize " + "the TAO_Naming_Client\n"), + -1); + + // Register the receiver object with the naming server. + this->naming_client_->rebind (name, + mmdevice.in (), + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + return 0; +} + +TAO_AV_Protocol_Object* +Receiver::protocol_object (void) +{ + return this->protocol_object_; +} + +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, + 0, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + CORBA::Object_var obj + = orb->resolve_initial_references ("RootPOA", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Get the POA_var object from Object_var. + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (obj.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POAManager_var mgr + = root_poa->the_POAManager (ACE_TRY_ENV); + ACE_TRY_CHECK; + + mgr->activate (ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Initialize the AVStreams components. + TAO_AV_CORE::instance ()->init (orb.in (), + root_poa.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + int result = + RECEIVER::instance ()->init (argc, + argv, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + if (result != 0) + return result; + + while (endstream != 2) + { + orb->perform_work (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + + // Hack for now.... + ACE_OS::sleep (1); + + orb->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"receiver::init"); + return -1; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (-1); + + return 0; +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Singleton ; +template class TAO_AV_Endpoint_Reactive_Strategy_B; +template class TAO_AV_Endpoint_Reactive_Strategy; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Singleton +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.h b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.h new file mode 100644 index 00000000000..45d6b6586a4 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.h @@ -0,0 +1,144 @@ +/* -*- C++ -*- */ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/orbsvcs/tests/AVStreams/Simple +// +// = FILENAME +// receiver.h +// +// = DESCRIPTION +// This application receives data from a AV sender and writes it to +// a file. +// +// = AUTHOR +// Yamuna Krishnamurthy +// +// ============================================================================ + +#include "orbsvcs/Naming/Naming_Utils.h" +#include "orbsvcs/AV/AVStreams_i.h" +#include "orbsvcs/AV/Endpoint_Strategy.h" +#include "orbsvcs/AV/Policy.h" +#include "orbsvcs/AV/Protocol_Factory.h" + +class Receiver_Callback : public TAO_AV_Callback +{ + // = TITLE + // Application defined callback object. + // + // = DESCRIPTION + // AVStreams calls this class when data shows up from a sender. +public: + + Receiver_Callback (void); + // Constructor. + + // Method that is called when there is data to be received from a + // sender. + int receive_frame (ACE_Message_Block *frame, + TAO_AV_frame_info *frame_info, + const ACE_Addr &peer_address); + + // Called when the sender is done sending data and wants to close + // down the connection. + int handle_destroy (void); + + void flowname (const char*); + +private: + int frame_count_; + // Keeping a count of the incoming frames. + + ACE_Message_Block mb_; + // Message block into which data is read from a file and then sent. + + ACE_CString flowname_; + + FILE *output_file_; + // File handle of the file into which received data is written. + +}; + +class Receiver_StreamEndPoint : public TAO_Server_StreamEndPoint +{ + // = TITLE + // Application defined stream endpoint object. + // + // = DESCRIPTION + // AVStreams calls this class during connection setup. +public: + // Create a receiver application callback. + int get_callback (const char *flowname, + TAO_AV_Callback *&callback); + + int set_protocol_object (const char *flowname, + TAO_AV_Protocol_Object *object); + // Set protocol object corresponding to the transport protocol + // chosen. +}; + +class Receiver +{ + // = TITLE + // Receiver application class. + // + // = DESCRIPTION + // This class receives data from a AV sender and writes it to + // a file. +public: + Receiver (void); + // Constructor + + ~Receiver (void); + // Destructor. + + int init (int argc, + char **argv, + CORBA::Environment &); + // Initialize data components. + + void protocol_object (TAO_AV_Protocol_Object *protocol_object); + // Set the protocol object corresponding to the transport protocol chosen. + + TAO_AV_Protocol_Object * protocol_object (void); + // Set the protocol object corresponding to the transport protocol chosen. + +protected: + TAO_Naming_Client naming_client_; + // The Naming Service Client. + + TAO_AV_Endpoint_Reactive_Strategy_B + reactive_strategy_; + // The endpoint reactive strategy. + + TAO_MMDevice *mmdevice_; + // Receiver MMDevice. + + int frame_rate_; + // Rate at which the data will be sent. + + TAO_AV_Protocol_Object *protocol_object_; + // Protocol object corresponding to the transport protocol selected. + + int frame_count_; + // Number of frames sent. + + ACE_CString filename_; + // File from which data is read. + + int parse_args (int argc, char **argv); + // Method to parse the command line arguments. + + ACE_Message_Block mb_; + // Message block into which data is read from a file and then sent. + +}; + + + + + + diff --git a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/run_test.pl b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/run_test.pl new file mode 100755 index 00000000000..3f07d66d5c9 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/run_test.pl @@ -0,0 +1,67 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib $ENV{"ACE_ROOT"}.'/bin'; +use PerlACE::Run_Test; + +# amount of delay between running the servers + +$sleeptime = 2; +$status = 0; + +$nsior = PerlACE::LocalFile ("ns.ior"); +$outfile = PerlACE::LocalFile ("output"); + +unlink $nsior; + +$NS = new PerlACE::Process ($ENV{"TAO_ROOT"}."/orbsvcs/Naming_Service/Naming_Service", "-o $nsior"); +$SV = new PerlACE::Process ("receiver", "-ORBInitRef NameService=file://$nsior -f output"); +$CL = new PerlACE::Process ("sender", "-ORBDebugLevel 2 -ORBInitRef NameService=file://$nsior -f input -r 2"); + +print STDERR "Starting Naming Service\n"; + +$NS->Spawn (); + +if (PerlACE::waitforfile_timed ($nsior, 5) == -1) { + print STDERR "ERROR: cannot find naming service IOR file\n"; + $NS->Kill (); + exit 1; +} + +print STDERR "Starting Receiver\n"; + +$SV->Spawn (); + +sleep $sleeptime; + +print STDERR "Starting Sender\n"; + +$sender = $CL->SpawnWaitKill (200); + +if ($sender != 0) { + print STDERR "ERROR: sender returned $sender\n"; + $status = 1; +} + +$receiver = $SV->TerminateWaitKill (5); + +if ($receiver != 0) { + print STDERR "ERROR: receiver returned $receiver\n"; + $status = 1; +} + +$nserver = $NS->TerminateWaitKill (5); + +if ($nserver != 0) { + print STDERR "ERROR: Naming Service returned $nserver\n"; + $status = 1; +} + +unlink $nsior; +unlink $output; + +exit $status; diff --git a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp new file mode 100644 index 00000000000..fbdb0919dbb --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp @@ -0,0 +1,443 @@ +// $Id$ + +#include "sender.h" +#include "tao/debug.h" +#include "ace/Get_Opt.h" +#include "ace/High_Res_Timer.h" + +typedef ACE_Singleton SENDER; +// Create a singleton instance of the Sender. + + +int +Sender_StreamEndPoint::get_callback (const char *, + TAO_AV_Callback *&callback) +{ + // Create and return the sender application callback to AVStreams + // for further upcalls. + callback = &this->callback_; + return 0; +} + +int +Sender_StreamEndPoint::set_protocol_object (const char *, + TAO_AV_Protocol_Object *object) +{ + // Set the sender protocol object corresponding to the transport + // protocol selected. + SENDER::instance ()->protocol_object (object); + return 0; +} + +Sender::Sender (void) + : sender_mmdevice_ (0), + streamctrl_ (0), + frame_count_ (0), + filename_ ("input"), + input_file_ (0), + protocol_ ("UDP"), + frame_rate_ (30), + mb_ (BUFSIZ) +{ +} + +void +Sender::protocol_object (TAO_AV_Protocol_Object *object) +{ + // Set the sender protocol object corresponding to the transport + // protocol selected. + this->protocol_object_.insert (object); +} + +void +Sender::shutdown (void) +{ + ACE_DECLARE_NEW_CORBA_ENV; + // File reading is complete, destroy the stream. + AVStreams::flowSpec stop_spec; + this->streamctrl_->destroy (stop_spec, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Shut the orb down. + TAO_AV_CORE::instance ()->orb ()->shutdown (0, + ACE_TRY_ENV); + ACE_TRY_CHECK; + +} + +int +Sender::parse_args (int argc, + char **argv) +{ + // Parse command line arguments + ACE_Get_Opt opts (argc, argv, "f:p:r:d"); + + int c; + while ((c= opts ()) != -1) + { + switch (c) + { + case 'f': + this->filename_ = opts.optarg; + break; + case 'p': + this->protocol_ = opts.optarg; + break; + case 'r': + this->frame_rate_ = ACE_OS::atoi (opts.optarg); + break; + case 'd': + TAO_debug_level++; + break; + default: + ACE_DEBUG ((LM_DEBUG, "Unknown Option\n")); + return -1; + } + } + return 0; +} + +// Method to get the object reference of the receiver +int +Sender::bind_to_receiver (CORBA::Environment &ACE_TRY_ENV) +{ + CosNaming::Name name (1); + name.length (1); + name [0].id = + CORBA::string_dup ("Receiver"); + + // Resolve the receiver object reference from the Naming Service + CORBA::Object_var receiver_mmdevice_obj = + this->naming_client_->resolve (name, + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + this->receiver_mmdevice_ = + AVStreams::MMDevice::_narrow (receiver_mmdevice_obj.in (), + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + if (CORBA::is_nil (this->receiver_mmdevice_.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + "Could not resolve Receiver_MMdevice in Naming service <%s>\n"), + -1); + + return 0; +} + +int +Sender::init (int argc, + char **argv, + CORBA::Environment &ACE_TRY_ENV) +{ + // Initialize the endpoint strategy with the orb and poa. + int result = + this->endpoint_strategy_.init (TAO_AV_CORE::instance ()->orb (), + TAO_AV_CORE::instance ()->poa ()); + if (result != 0) + return result; + + // Initialize the naming services + result = + this->naming_client_.init (TAO_AV_CORE::instance ()->orb ()); + if (result != 0) + return result; + + // Parse the command line arguments + result = + this->parse_args (argc, + argv); + if (result != 0) + return result; + + // Open file to read. + this->input_file_ = + ACE_OS::fopen (this->filename_.c_str (), + "r"); + + if (this->input_file_ == 0) + ACE_ERROR_RETURN ((LM_DEBUG, + "Cannot open input file %s\n", + this->filename_.c_str ()), + -1); + else + ACE_DEBUG ((LM_DEBUG, + "File opened successfully\n")); + + // Resolve the object reference of the receiver from the Naming Service. + result = this->bind_to_receiver (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + if (result != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "(%P|%t) Error binding to the naming service\n"), + -1); + + + // Initialize the QoS + AVStreams::streamQoS_var the_qos (new AVStreams::streamQoS); + + // Create the forward flow specification to describe the flow. + TAO_Forward_FlowSpec_Entry entry ("Data_Receiver_One", + "IN", + "USER_DEFINED", + "", + this->protocol_.c_str (), + 0); + + AVStreams::flowSpec flow_spec (1); + flow_spec.length (2); + flow_spec [0] = CORBA::string_dup (entry.entry_to_string ()); + + // Create the forward flow specification to describe the flow. + TAO_Forward_FlowSpec_Entry entry1 ("Data_Receiver_Two", + "IN", + "USER_DEFINED", + "", + this->protocol_.c_str (), + 0); + + flow_spec [1] = CORBA::string_dup (entry1.entry_to_string ()); + + // Register the sender mmdevice object with the ORB + ACE_NEW_RETURN (this->sender_mmdevice_, + TAO_MMDevice (&this->endpoint_strategy_), + -1); + + // Servant Reference Counting to manage lifetime + PortableServer::ServantBase_var safe_mmdevice = + this->sender_mmdevice_; + + AVStreams::MMDevice_var mmdevice = + this->sender_mmdevice_->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + ACE_NEW_RETURN (this->streamctrl_, + TAO_StreamCtrl, + -1); + + PortableServer::ServantBase_var safe_streamctrl = + this->streamctrl_; + + // Bind/Connect the sender and receiver MMDevices. + CORBA::Boolean bind_result = + this->streamctrl_->bind_devs (mmdevice.in (), + this->receiver_mmdevice_.in (), + the_qos.inout (), + flow_spec, + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + if (bind_result == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "streamctrl::bind_devs failed\n"), + -1); + + return 0; +} + +// Method to send data at the specified rate +int +Sender::pace_data (CORBA::Environment &ACE_TRY_ENV) +{ + // The time that should lapse between two consecutive frames sent. + ACE_Time_Value inter_frame_time; + + // The time between two consecutive frames. + inter_frame_time.set (1 / (double) this->frame_rate_); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "Frame Rate = %d / second\n" + "Inter Frame Time = %d (msec)\n", + this->frame_rate_, + inter_frame_time.msec ())); + + ACE_TRY + { + // The time taken for sending a frame and preparing for the next frame + ACE_High_Res_Timer elapsed_timer; + + // Continue to send data till the file is read to the end. + while (1) + { + // Read from the file into a message block. + int n = ACE_OS::fread (this->mb_.wr_ptr (), + 1, + this->mb_.size (), + this->input_file_); + + if (n < 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Sender::pace_data fread failed\n"), + -1); + + if (n == 0) + { + // At end of file break the loop and end the sender. + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG,"Handle_Start:End of file\n")); + break; + } + + this->mb_.wr_ptr (n); + + if (this->frame_count_ > 1) + { + // + // Second frame and beyond + // + + // Stop the timer that was started just before the previous frame was sent. + elapsed_timer.stop (); + + // Get the time elapsed after sending the previous frame. + ACE_Time_Value elapsed_time; + elapsed_timer.elapsed_time (elapsed_time); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "Elapsed Time = %d\n", + elapsed_time.msec ())); + + // Check to see if the inter frame time has elapsed. + if (elapsed_time < inter_frame_time) + { + // Inter frame time has not elapsed. + + // Calculate the time to wait before the next frame needs to be sent. + ACE_Time_Value wait_time (inter_frame_time - elapsed_time); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "Wait Time = %d\n", + wait_time.msec ())); + + // Run the orb for the wait time so the sender can + // continue other orb requests. + TAO_AV_CORE::instance ()->orb ()->run (wait_time, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + } + + // Start timer before sending the frame. + elapsed_timer.start (); + + ProtocolObject_SetItor end = this->protocol_object_.end (); + for (ProtocolObject_SetItor begin = this->protocol_object_.begin (); + begin != end; ++begin) + { + // Send frame. + int result = + (*begin)->send_frame (&this->mb_); + + if (result < 0) + ACE_ERROR_RETURN ((LM_ERROR, + "send failed:%p", + "Sender::pace_data send\n"), + -1); + } + + + ACE_DEBUG ((LM_DEBUG, + "Sender::pace_data frame %d was sent succesfully\n", + ++this->frame_count_)); + + // Reset the message block. + this->mb_.reset (); + + } // end while + + this->shutdown (); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Sender::pace_data Failed\n"); + return -1; + } + ACE_ENDTRY; + return 0; +} + +int +main (int argc, + char **argv) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv, + 0, + ACE_TRY_ENV); + + CORBA::Object_var obj + = orb->resolve_initial_references ("RootPOA", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Get the POA_var object from Object_var + PortableServer::POA_var root_poa + = PortableServer::POA::_narrow (obj.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POAManager_var mgr + = root_poa->the_POAManager (ACE_TRY_ENV); + ACE_TRY_CHECK; + + mgr->activate (ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Initialize the AV Stream components. + TAO_AV_CORE::instance ()->init (orb.in (), + root_poa.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Initialize the Sender. + int result = 0; + result = SENDER::instance ()->init (argc, + argv, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + if (result < 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Sender::init failed\n"), + -1); + + // Start sending data. + result = SENDER::instance ()->pace_data (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Sender Failed\n"); + return -1; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (-1); + return 0; +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Singleton ; +template class TAO_AV_Endpoint_Reactive_Strategy_A; +template class TAO_AV_Endpoint_Reactive_Strategy; +template class ACE_Node ; +template class ACE_Unbounded_Set ; +template class ACE_Unbounded_Set_Iterator ; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Singleton +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy +#pragma instantiate ACE_Node ; +#pragma instantiate ACE_Unbounded_Set ; +#pragma instantiate ACE_Unbounded_Set_Iterator ; +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.h b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.h new file mode 100644 index 00000000000..a95d6827065 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.h @@ -0,0 +1,123 @@ +/* -*- C++ -*- */ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/orbsvcs/tests/AVStreams/Simple +// +// = FILENAME +// sender.h +// +// = DESCRIPTION +// This application reads data from a file and sends it to s +// receiver. +// +// = AUTHOR +// Yamuna Krishnamurthy +// +// ============================================================================ + +#include "orbsvcs/Naming/Naming_Utils.h" +#include "orbsvcs/AV/AVStreams_i.h" +#include "orbsvcs/AV/Endpoint_Strategy.h" +#include "orbsvcs/AV/Protocol_Factory.h" + +typedef ACE_Unbounded_Set ProtocolObject_Set; +typedef ACE_Unbounded_Set_Iterator ProtocolObject_SetItor; + +class Sender_StreamEndPoint : public TAO_Client_StreamEndPoint +{ + // = TITLE + // Defines a sender stream endpoint. +public: + int get_callback (const char *flowname, + TAO_AV_Callback *&callback); + // Create the application callback and return its handle to + // AVStreams for further application callbacks. + + int set_protocol_object (const char *flowname, + TAO_AV_Protocol_Object *object); + // Set protocol object corresponding to the transport protocol + // chosen. + +protected: + TAO_AV_Callback callback_; + // Application callback. +}; + +typedef TAO_AV_Endpoint_Reactive_Strategy_A + + SENDER_ENDPOINT_STRATEGY; + +class Sender +{ + // = TITLE + // Sender Application. + // + // = DESCRIPTION + // Class is responsible for streaming (and pacing) data to a + // receiver. +public: + Sender (void); + // Constructor + + int init (int argc, + char **argv, + CORBA::Environment&); + // Method to initialize the various data components. + + int pace_data (CORBA::Environment &); + // Method to pace and send data from a file. + + void protocol_object (TAO_AV_Protocol_Object *protocol_object); + // Set the protocol object corresponding to the transport protocol chosen. + + void shutdown (void); + +private: + int parse_args (int argc, char **argv); + // Method to parse the command line arguments. + + int bind_to_receiver (CORBA::Environment& ACE_TRY_ENV); + // Method that binds the sender to the receiver. + + SENDER_ENDPOINT_STRATEGY endpoint_strategy_; + // The endpoint strategy used by the sender. + + AVStreams::MMDevice_var receiver_mmdevice_; + // The receiver MMDevice that the sender connects to. + + TAO_MMDevice *sender_mmdevice_; + // The sender MMDevice. + + TAO_StreamCtrl *streamctrl_; + // Stream controller + + int frame_count_; + // Number of frames sent. + + ACE_CString filename_; + // File from which data is read. + + TAO_Naming_Client naming_client_; + // The Naming Service client. + + FILE *input_file_; + // File handle of the file read from. + + ACE_CString protocol_; + // Selected protocol - default is UDP + + int frame_rate_; + // Rate at which the data will be sent. + + ACE_Message_Block mb_; + // Message block into which data is read from a file and then sent. + + ProtocolObject_Set protocol_object_; + // Protocol object corresponding to the transport protocol selected. + +}; diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/Makefile b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/Makefile new file mode 100644 index 00000000000..b6f1eaa3591 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/Makefile @@ -0,0 +1,69 @@ +#---------------------------------------------------------------------------- +# +# $Id$ +# +#---------------------------------------------------------------------------- +ifndef TAO_ROOT + TAO_ROOT = $(ACE_ROOT)/TAO +endif # ! TAO_ROOT + +MAKEFILE = Makefile +LIBNAME = libTAO_TS +LIB = $(LIBNAME).a +SHLIB = $(LIBNAME).$(SOEXT) + +VPATH=. + +LDLIBS += -lTAO_AV -lTAO_CosProperty -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_PortableServer -lTAO -lACE +ACE_SHLIBS += -lTAO_AV -lTAO_CosProperty -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_PortableServer -lTAO -lACE + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(TAO_ROOT)/rules.tao.GNU + +CPP_SRCS = TimeStamp + +FILES = $(CPP_SRCS) +DEFS = $(addsuffix .h,$(FILES)) +LSRC = $(addsuffix .cpp,$(FILES)) + +BIN = sender receiver + +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +## Do not install a symbolic link for libTAO_TS in $ACE_ROOT/ace +INSTALL= +include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +ifeq ($(rapi),1) + LDLIBS += -lACE_QoS + ACE_SHLIBS += -lACE_QoS +endif # rapi + +#---------------------------------------------------------------------------- +# Local targets (and local hacks) +#---------------------------------------------------------------------------- + +LDFLAGS += -L$(TAO_ROOT)/tao -L$(TAO_ROOT)/orbsvcs/orbsvcs +CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs + +sender: $(addprefix $(VDIR),sender.o) $(SHLIB) + $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) + +receiver: $(addprefix $(VDIR),receiver.o) $(SHLIB) + $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) + + +realclean: clean + +#---------------------------------------------------------------------------- +# Dependencies +#---------------------------------------------------------------------------- + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/README b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/README new file mode 100644 index 00000000000..20365125206 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/README @@ -0,0 +1,47 @@ +// $Id$ + +Description +----------- + +This directory contains a simple test in the form of a sender and a +receiver. The test has the following features: + +1. It tests the AVStreams Pluggable Protocol Framework +2. Shows a mechanism to pace data. + +A new flow protocol called Time Stamp Flow Protocol is plugged into the AV Streams Framework +using the Pluggable Protocol Framework and the ACE Service Configurator. This new protocol +is compiled into a library and loaded when the AVStreams framework is initialized. When a +frame is sent this protocol appends a timestamp to the data being sent. + +Running the test +---------------- + +receiver +-------- + +receiver -f + +-f -> The name of the file under which the received stream + data has to be stored (defaults to "output") + +sender +------ + +sender [-f ] [-p ] [-r ] [-d] + + +-f filename --> The file to be streamed to the receiver (defaults to + "input"). + +-p protocol --> The protocol string could be UDP or TCP (defaults to + UDP). But with the multicast address it should be UDP. + +-r framerate--> The rate at which tha data frames need to be sent + (defaults to 30 frames per second). + +-d --> Increament the TAO_debug_level for debug messages. + + +The test must be run with the naming service. Check the run_test.pl +to see how to configure the test case. diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/TimeStamp.cpp b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/TimeStamp.cpp new file mode 100644 index 00000000000..1004ea6ffa3 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/TimeStamp.cpp @@ -0,0 +1,241 @@ +#include "TimeStamp.h" +#include "orbsvcs/AV/AVStreams_i.h" +#include "ace/High_Res_Timer.h" + +// $Id$ +//TimeStamp Protocol Object + +TimeStamp_Protocol_Object::TimeStamp_Protocol_Object (TAO_AV_Callback *callback, + TAO_AV_Transport *transport) + :TAO_AV_Protocol_Object (callback,transport) +{ + ACE_DEBUG ((LM_DEBUG, + "TimeStamp_Protocol_Object::TimeStamp_Protocol_Object\n")); + ACE_NEW (this->frame_, + ACE_Message_Block); + + this->frame_->size (4 * this->transport_->mtu ()); +} + + +int +TimeStamp_Protocol_Object::handle_input (void) +{ + int n = this->transport_->recv (this->frame_->rd_ptr (), + this->frame_->size ()); + if (n == -1) + ACE_ERROR_RETURN ((LM_ERROR,"TAO_AV_UDP_Flow_Handler::handle_input recv failed\n"),-1); + if (n == -1) + ACE_ERROR_RETURN ((LM_ERROR,"TAO_AV_UDP_Flow_Handler::handle_input connection closed\n"),-1); + this->frame_->wr_ptr (this->frame_->rd_ptr () + n); + + return this->callback_->receive_frame (this->frame_); +} + +// int +// TimeStamp_Protocol_Object::handle_input (void) +// { +// iovec iov; +// int iovcnt; +// int n = this->transport_->recv (&iov, iovcnt); + +// int frame_size = BUFSIZ; + +// int begin = 1; +// ACE_Message_Block* prev; +// int iov_base = 0; +// while (n >= frame_size) +// { +// ACE_DEBUG ((LM_DEBUG, +// "(%N|%l) Frame Size %d %d\n", +// n, +// frame_size)); + +// ACE_Message_Block* mb; +// ACE_NEW_RETURN (mb, +// ACE_Message_Block(frame_size), +// -1); + +// ACE_OS_String::memmove (mb->rd_ptr (), iov.iov_base, frame_size); +// mb->wr_ptr (mb->rd_ptr () + frame_size); + +// // iov_base += frame_size; + +// n -= frame_size; + +// if (begin) +// { +// prev = mb; +// this->frame_ = mb; +// begin = 0; +// } +// else +// { +// prev->cont (mb); +// prev = mb; + +// } +// } + +// if (n > 0) +// if (begin) +// { +// ACE_DEBUG ((LM_DEBUG, +// "(%N|%l) Frame Size %d\n", +// n)); +// ACE_OS_String::memmove (this->frame_->rd_ptr (), iov.iov_base, n); +// this->frame_->wr_ptr (this->frame_->rd_ptr () + n); +// } +// else +// { + +// ACE_DEBUG ((LM_DEBUG, +// "(%N|%l) Frame Size %d\n", +// n)); + +// ACE_Message_Block* mb; +// ACE_NEW_RETURN (mb, +// ACE_Message_Block (frame_size), +// -1); + +// ACE_OS_String::memmove (mb->rd_ptr (), iov.iov_base, n); +// mb->wr_ptr (mb->rd_ptr () + n); +// prev->cont (mb); +// } + +// ACE_DEBUG ((LM_DEBUG, +// "IOVEC SIZE %d %d\n", +// n, +// iov.iov_len)); + +// if (n == -1) +// ACE_ERROR_RETURN ((LM_ERROR,"TAO_AV_TCP_Flow_Handler::handle_input recv failed\n"),-1); +// if (n == 0) +// ACE_ERROR_RETURN ((LM_ERROR,"TAO_AV_TCP_Flow_Handler::handle_input connection closed\n"),-1); + +// return this->callback_->receive_frame (this->frame_); +// } + +/// send a data frame. +int +TimeStamp_Protocol_Object::send_frame (ACE_Message_Block *frame, + TAO_AV_frame_info *) +{ + ACE_DEBUG ((LM_DEBUG, + "TimeStamp_Protocol_Object::send_frame\n")); + + ACE_Message_Block* timestamp; + ACE_NEW_RETURN (timestamp, + ACE_Message_Block (BUFSIZ), + -1); + + ACE_hrtime_t now = ACE_OS::gethrtime (); + + ACE_UINT64 usec = now; + ACE_UINT32 val_1 = ACE_CU64_TO_CU32 (usec); + ACE_DEBUG ((LM_DEBUG, + "Time Stamp %u usecs\n", + val_1)); + + ACE_OS_String::memcpy (timestamp->wr_ptr (), &now, sizeof (now)); + timestamp->wr_ptr (sizeof (now)); + + frame->cont (timestamp); + + int result = this->transport_->send (frame); + if (result < 0) + return result; + return 0; +} + +int +TimeStamp_Protocol_Object::send_frame (iovec const* iov, + int iovcnt, + TAO_AV_frame_info *) +{ + return this->transport_->send (iov,iovcnt); +} + +int +TimeStamp_Protocol_Object::send_frame (const char* buf, + size_t len) +{ + int result = this->transport_->send (buf, len, 0); + if (result < 0) + return result; + return 0; +} + +/// end the stream. +int +TimeStamp_Protocol_Object::destroy (void) +{ + this->callback_->handle_destroy (); + return 0; +} + + +TimeStamp_Protocol_Factory::TimeStamp_Protocol_Factory (void) +{ +} + +TimeStamp_Protocol_Factory::~TimeStamp_Protocol_Factory (void) +{ +} + +int +TimeStamp_Protocol_Factory::init (int, char **) +{ + ACE_DEBUG ((LM_DEBUG, + "TimeStamp_Protocol_Factory::init\n")); + return 0; +} + +int +TimeStamp_Protocol_Factory::match_protocol (const char *flow_string) +{ + ACE_DEBUG ((LM_DEBUG, + "TimeStamp_Protocol_Factory::match_protocol\n")); + if (ACE_OS::strcasecmp (flow_string,"TS") == 0) + return 1; + return 0; +} + +TimeStamp_Protocol_Object* +TimeStamp_Protocol_Factory::make_protocol_object (TAO_FlowSpec_Entry *entry, + TAO_Base_StreamEndPoint *endpoint, + TAO_AV_Flow_Handler *handler, + TAO_AV_Transport *transport) +{ + TAO_AV_Callback *callback = 0; + endpoint->get_callback (entry->flowname (), + callback); + + + TimeStamp_Protocol_Object *object = 0; + ACE_NEW_RETURN (object, + TimeStamp_Protocol_Object (callback, + transport), + 0); + callback->open (object, + handler); + endpoint->set_protocol_object (entry->flowname (), + object); + return object; +} + +ACE_FACTORY_DEFINE (TAO_AV, TimeStamp_Protocol_Factory) +ACE_STATIC_SVC_DEFINE (TimeStamp_Protocol_Factory, + ACE_TEXT ("TimeStamp_Protocol_Factory"), + ACE_SVC_OBJ_T, + &ACE_SVC_NAME (TimeStamp_Protocol_Factory), + ACE_Service_Type::DELETE_THIS | + ACE_Service_Type::DELETE_OBJ, + 0) + + + + + + + diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/TimeStamp.h b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/TimeStamp.h new file mode 100644 index 00000000000..2f7b2fc46be --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/TimeStamp.h @@ -0,0 +1,63 @@ +#ifndef TIMESTAMP_H +#define TIMESTAMP_H +#include "ace/pre.h" + +#include "orbsvcs/AV/Protocol_Factory.h" +#include "ace/Dynamic_Service.h" + +// $Id$ + +class TAO_AV_Export TimeStamp_Protocol_Object : public TAO_AV_Protocol_Object +{ + public: + TimeStamp_Protocol_Object (TAO_AV_Callback *callback, + TAO_AV_Transport *transport); + + virtual int handle_input (void); + + /// send a data frame. + virtual int send_frame (ACE_Message_Block *frame, + TAO_AV_frame_info *frame_info = 0); + + virtual int send_frame (iovec const* iov, + int iovcnt, + TAO_AV_frame_info *frame_info = 0); + + virtual int send_frame (const char*buf, + size_t len); + + /// end the stream. + virtual int destroy (void); + + private: + /// Pre-allocated memory to receive the data... + ACE_Message_Block* frame_; + +}; + +class TAO_AV_Export TimeStamp_Protocol_Factory : public TAO_AV_Flow_Protocol_Factory +{ + public: + /// Initialization hook. + TimeStamp_Protocol_Factory (void); + virtual ~TimeStamp_Protocol_Factory (void); + virtual int init (int argc, char *argv[]); + virtual int match_protocol (const char *flow_string); + virtual TimeStamp_Protocol_Object* make_protocol_object (TAO_FlowSpec_Entry *entry, + TAO_Base_StreamEndPoint *endpoint, + TAO_AV_Flow_Handler *handler, + TAO_AV_Transport *transport); +}; + +ACE_STATIC_SVC_DECLARE (TimeStamp_Protocol_Factory) +ACE_FACTORY_DECLARE (TAO_AV, TimeStamp_Protocol_Factory) + +#include "ace/post.h" +#endif /*TIMESTAMP_H*/ + + + + + + + diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/input b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/input new file mode 100644 index 00000000000..b6579cec283 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/input @@ -0,0 +1,995 @@ +#---------------------------------------------------------------------------- +# input,v 1.1 2001/03/27 11:41:00 irfan Exp +# +# Top-level Makefile for Pluggable testing of AVStreams of TAO. +# +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +LDLIBS = -lTAO_AV -lTAO_CosProperty -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_IORTable -lTAO_PortableServer -lTAO + +SERVER_OBJS = server.o +CLIENT_OBJS = ftp.o + +VLDLIBS = $(LDLIBS:%=%$(VAR)) + +ifndef TAO_ROOT +TAO_ROOT = $(ACE_ROOT)/TAO +endif + +FILES = ftp server +DEFS = $(addsuffix .h,$(FILES)) +LSRC = $(addsuffix .cpp,$(FILES)) + +BIN2 = server ftp + +#### If the TAO orbsvcs library wasn't built with sufficient components, +#### don't try to build here. +TAO_ORBSVCS := $(shell $(ACE_ROOT)/bin/ace_components --orbsvcs) +ifeq (AV,$(findstring AV,$(TAO_ORBSVCS))) + BIN = $(BIN2) +endif # AV + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(TAO_ROOT)/rules.tao.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +#DCFLAGS = -g +LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao +CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT)/orbsvcs/orbsvcs/AV \ + -I$(TAO_ROOT) + +#server:$(addprefix $(VDIR),$(SERVER_OBJS)) +# $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) + +#ftp:$(addprefix $(VDIR),$(CLIENT_OBJS)) +# $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/ftp.o .obj/ftp.so .shobj/ftp.o .shobj/ftp.so: ftp.cpp ftp.h \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Get_Opt.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(TAO_ROOT)/tao/Object_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/TAO_Server_Request.h \ + $(TAO_ROOT)/tao/Tagged_Profile.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/GIOPC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOPC.i \ + $(TAO_ROOT)/tao/Tagged_Profile.i \ + $(TAO_ROOT)/tao/Service_Context.h \ + $(TAO_ROOT)/tao/Service_Context.inl \ + $(TAO_ROOT)/tao/TAO_Server_Request.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/GIOP_Message_State.h \ + $(TAO_ROOT)/tao/GIOP_Message_State.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/Adapter.h \ + $(TAO_ROOT)/tao/Adapter.i \ + $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/PollableC.i \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Parser_Registry.h \ + $(TAO_ROOT)/tao/Parser_Registry.i \ + $(TAO_ROOT)/tao/Service_Callbacks.h \ + $(TAO_ROOT)/tao/Service_Callbacks.i \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(TAO_ROOT)/tao/Cache_Entries.h \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.h \ + $(TAO_ROOT)/tao/Endpoint.h \ + $(TAO_ROOT)/tao/Endpoint.i \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.inl \ + $(TAO_ROOT)/tao/Cache_Entries.inl \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.inl \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(TAO_ROOT)/tao/Object_Ref_Table.h \ + $(TAO_ROOT)/tao/Interceptor_List.h \ + $(TAO_ROOT)/tao/Interceptor_List.inl \ + $(TAO_ROOT)/tao/RT_Policy_i.h \ + $(TAO_ROOT)/tao/RTCORBAS.h \ + $(TAO_ROOT)/tao/IOPS.h \ + $(TAO_ROOT)/tao/IOPS_T.h \ + $(TAO_ROOT)/tao/IOPS_T.i \ + $(TAO_ROOT)/tao/IOPS_T.cpp \ + $(TAO_ROOT)/tao/IOPS.i \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/RTCORBAC.h \ + $(TAO_ROOT)/tao/RTCORBAC.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.h \ + $(TAO_ROOT)/tao/RTCORBAS_T.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.cpp \ + $(TAO_ROOT)/tao/RTCORBAS.i \ + $(TAO_ROOT)/tao/RT_Policy_i.i \ + $(TAO_ROOT)/tao/Protocols_Hooks.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.h \ + $(TAO_ROOT)/tao/Priority_Mapping.h \ + $(TAO_ROOT)/tao/Priority_Mapping.i \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.i \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/operation_details.h \ + $(TAO_ROOT)/tao/target_specification.h \ + $(TAO_ROOT)/tao/target_specification.i \ + $(TAO_ROOT)/tao/operation_details.i \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/ClientRequestInfo.h \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/ClientRequestInfo.inl \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/PortableInterceptor.h \ + $(TAO_ROOT)/tao/PortableInterceptor.i \ + $(TAO_ROOT)/tao/BiDirPolicyC.h \ + $(TAO_ROOT)/tao/BiDirPolicyC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \ + $(ACE_ROOT)/ace/INET_Addr.h \ + $(ACE_ROOT)/ace/Addr.h \ + $(ACE_ROOT)/ace/Addr.i \ + $(ACE_ROOT)/ace/INET_Addr.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ + $(ACE_ROOT)/ace/SOCK_Dgram.h \ + $(ACE_ROOT)/ace/SOCK.h \ + $(ACE_ROOT)/ace/IPC_SAP.h \ + $(ACE_ROOT)/ace/IPC_SAP.i \ + $(ACE_ROOT)/ace/QoS_Session.h \ + $(ACE_ROOT)/ace/SOCK.i \ + $(ACE_ROOT)/ace/SOCK_Dgram.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.h \ + $(ACE_ROOT)/ace/ATM_Addr.h \ + $(ACE_ROOT)/ace/ATM_Addr.i \ + $(ACE_ROOT)/ace/Process.h \ + $(ACE_ROOT)/ace/Process.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.h \ + $(ACE_ROOT)/ace/SOCK_IO.h \ + $(ACE_ROOT)/ace/SOCK_IO.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.i \ + $(ACE_ROOT)/ace/Connector.h \ + $(ACE_ROOT)/ace/Svc_Handler.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Task.h \ + $(ACE_ROOT)/ace/Task.i \ + $(ACE_ROOT)/ace/Task_T.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/Process_Mutex.h \ + $(ACE_ROOT)/ace/Process_Mutex.inl \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/Task_T.i \ + $(ACE_ROOT)/ace/Task_T.cpp \ + $(ACE_ROOT)/ace/Module.h \ + $(ACE_ROOT)/ace/Module.i \ + $(ACE_ROOT)/ace/Module.cpp \ + $(ACE_ROOT)/ace/Stream_Modules.h \ + $(ACE_ROOT)/ace/Stream_Modules.cpp \ + $(ACE_ROOT)/ace/Svc_Handler.cpp \ + $(ACE_ROOT)/ace/Dynamic.h \ + $(ACE_ROOT)/ace/Dynamic.i \ + $(ACE_ROOT)/ace/Connector.cpp \ + $(ACE_ROOT)/ace/SOCK_Connector.h \ + $(ACE_ROOT)/ace/SOCK_Stream.h \ + $(ACE_ROOT)/ace/SOCK_Stream.i \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/SOCK_Connector.i \ + $(ACE_ROOT)/ace/Acceptor.h \ + $(ACE_ROOT)/ace/Acceptor.cpp \ + $(ACE_ROOT)/ace/SOCK_Acceptor.h \ + $(ACE_ROOT)/ace/SOCK_Acceptor.i \ + $(TAO_ROOT)/tao/PortableServer/ORB_Manager.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/property_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/CosPropertyService_i.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_Core.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp \ + $(ACE_ROOT)/ace/Process_Semaphore.h \ + $(ACE_ROOT)/ace/Process_Semaphore.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/sfp.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Protocol_Factory.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.i \ + $(ACE_ROOT)/ace/High_Res_Timer.h \ + $(ACE_ROOT)/ace/High_Res_Timer.i \ + $(ACE_ROOT)/ace/Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.inl \ + $(ACE_ROOT)/ace/Stats.i + +.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp server.h \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Get_Opt.i \ + $(TAO_ROOT)/tao/PortableServer/ORB_Manager.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(TAO_ROOT)/tao/Object_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(TAO_ROOT)/tao/RTCORBAC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/RTCORBAC.i \ + $(TAO_ROOT)/tao/PortableServer/RTPortableServerC.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/TAO_Server_Request.h \ + $(TAO_ROOT)/tao/Tagged_Profile.h \ + $(TAO_ROOT)/tao/GIOPC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOPC.i \ + $(TAO_ROOT)/tao/Tagged_Profile.i \ + $(TAO_ROOT)/tao/Service_Context.h \ + $(TAO_ROOT)/tao/Service_Context.inl \ + $(TAO_ROOT)/tao/TAO_Server_Request.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/GIOP_Message_State.h \ + $(TAO_ROOT)/tao/GIOP_Message_State.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/Adapter.h \ + $(TAO_ROOT)/tao/Adapter.i \ + $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/PollableC.i \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Parser_Registry.h \ + $(TAO_ROOT)/tao/Parser_Registry.i \ + $(TAO_ROOT)/tao/Service_Callbacks.h \ + $(TAO_ROOT)/tao/Service_Callbacks.i \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ + $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(TAO_ROOT)/tao/Cache_Entries.h \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.h \ + $(TAO_ROOT)/tao/Endpoint.h \ + $(TAO_ROOT)/tao/Endpoint.i \ + $(TAO_ROOT)/tao/Connection_Descriptor_Interface.inl \ + $(TAO_ROOT)/tao/Cache_Entries.inl \ + $(TAO_ROOT)/tao/Connection_Cache_Manager.inl \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ + $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(TAO_ROOT)/tao/Object_Ref_Table.h \ + $(TAO_ROOT)/tao/Interceptor_List.h \ + $(TAO_ROOT)/tao/Interceptor_List.inl \ + $(TAO_ROOT)/tao/RT_Policy_i.h \ + $(TAO_ROOT)/tao/RTCORBAS.h \ + $(TAO_ROOT)/tao/IOPS.h \ + $(TAO_ROOT)/tao/IOPS_T.h \ + $(TAO_ROOT)/tao/IOPS_T.i \ + $(TAO_ROOT)/tao/IOPS_T.cpp \ + $(TAO_ROOT)/tao/IOPS.i \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.h \ + $(TAO_ROOT)/tao/RTCORBAS_T.i \ + $(TAO_ROOT)/tao/RTCORBAS_T.cpp \ + $(TAO_ROOT)/tao/RTCORBAS.i \ + $(TAO_ROOT)/tao/RT_Policy_i.i \ + $(TAO_ROOT)/tao/Protocols_Hooks.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.h \ + $(TAO_ROOT)/tao/Priority_Mapping.h \ + $(TAO_ROOT)/tao/Priority_Mapping.i \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.i \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/operation_details.h \ + $(TAO_ROOT)/tao/target_specification.h \ + $(TAO_ROOT)/tao/target_specification.i \ + $(TAO_ROOT)/tao/operation_details.i \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \ + $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/ClientRequestInfo.h \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/ClientRequestInfo.inl \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/PortableInterceptor.h \ + $(TAO_ROOT)/tao/PortableInterceptor.i \ + $(TAO_ROOT)/tao/BiDirPolicyC.h \ + $(TAO_ROOT)/tao/BiDirPolicyC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \ + $(ACE_ROOT)/ace/INET_Addr.h \ + $(ACE_ROOT)/ace/Addr.h \ + $(ACE_ROOT)/ace/Addr.i \ + $(ACE_ROOT)/ace/INET_Addr.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ + $(ACE_ROOT)/ace/SOCK_Dgram.h \ + $(ACE_ROOT)/ace/SOCK.h \ + $(ACE_ROOT)/ace/IPC_SAP.h \ + $(ACE_ROOT)/ace/IPC_SAP.i \ + $(ACE_ROOT)/ace/QoS_Session.h \ + $(ACE_ROOT)/ace/SOCK.i \ + $(ACE_ROOT)/ace/SOCK_Dgram.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \ + $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.h \ + $(ACE_ROOT)/ace/ATM_Addr.h \ + $(ACE_ROOT)/ace/ATM_Addr.i \ + $(ACE_ROOT)/ace/Process.h \ + $(ACE_ROOT)/ace/Process.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.h \ + $(ACE_ROOT)/ace/SOCK_IO.h \ + $(ACE_ROOT)/ace/SOCK_IO.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.i \ + $(ACE_ROOT)/ace/Connector.h \ + $(ACE_ROOT)/ace/Svc_Handler.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Task.h \ + $(ACE_ROOT)/ace/Task.i \ + $(ACE_ROOT)/ace/Task_T.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/Process_Mutex.h \ + $(ACE_ROOT)/ace/Process_Mutex.inl \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/Task_T.i \ + $(ACE_ROOT)/ace/Task_T.cpp \ + $(ACE_ROOT)/ace/Module.h \ + $(ACE_ROOT)/ace/Module.i \ + $(ACE_ROOT)/ace/Module.cpp \ + $(ACE_ROOT)/ace/Stream_Modules.h \ + $(ACE_ROOT)/ace/Stream_Modules.cpp \ + $(ACE_ROOT)/ace/Svc_Handler.cpp \ + $(ACE_ROOT)/ace/Dynamic.h \ + $(ACE_ROOT)/ace/Dynamic.i \ + $(ACE_ROOT)/ace/Connector.cpp \ + $(ACE_ROOT)/ace/SOCK_Connector.h \ + $(ACE_ROOT)/ace/SOCK_Stream.h \ + $(ACE_ROOT)/ace/SOCK_Stream.i \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/SOCK_Connector.i \ + $(ACE_ROOT)/ace/Acceptor.h \ + $(ACE_ROOT)/ace/Acceptor.cpp \ + $(ACE_ROOT)/ace/SOCK_Acceptor.h \ + $(ACE_ROOT)/ace/SOCK_Acceptor.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/property_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Property/CosPropertyService_i.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AV_Core.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp \ + $(ACE_ROOT)/ace/Process_Semaphore.h \ + $(ACE_ROOT)/ace/Process_Semaphore.inl \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Transport.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/FlowSpec_Entry.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Flows_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/sfp.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/sfpC.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Policy.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Protocol_Factory.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/MCast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/AV/UDP.i \ + $(ACE_ROOT)/ace/High_Res_Timer.h \ + $(ACE_ROOT)/ace/High_Res_Timer.i \ + $(ACE_ROOT)/ace/Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.h \ + $(ACE_ROOT)/ace/Basic_Stats.inl \ + $(ACE_ROOT)/ace/Stats.i + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/receiver.cpp b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/receiver.cpp new file mode 100644 index 00000000000..706f47e93c6 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/receiver.cpp @@ -0,0 +1,269 @@ +// $Id$ + +#include "receiver.h" +#include "ace/Get_Opt.h" +#include "ace/OS_String.h" +#include "ace/High_Res_Timer.h" + +static FILE *output_file = 0; +// File handle of the file into which received data is written. + +static const char *output_file_name = "output"; +// File name of the file into which received data is written. + +int endstream = 0; + +int +Receiver_StreamEndPoint::get_callback (const char *, + TAO_AV_Callback *&callback) +{ + // Return the receiver application callback to the AVStreams for + // future upcalls. + callback = &this->callback_; + return 0; +} + +Receiver_Callback::Receiver_Callback (void) + : frame_count_ (1) +{ +} + +int +Receiver_Callback::receive_frame (ACE_Message_Block *frame, + TAO_AV_frame_info *, + const ACE_Addr &) +{ + // + // Upcall from the AVStreams when there is data to be received from + // the sender. + // + ACE_DEBUG ((LM_DEBUG, + "Receiver_Callback::receive_frame for frame %d\n", + this->frame_count_++)); + + int frame_size = BUFSIZ; + + // Write the received data to the file. + size_t result = + ACE_OS::fwrite (frame->rd_ptr (), + frame_size, + 1, + output_file); + + if (result == frame->length ()) + ACE_ERROR_RETURN ((LM_ERROR, + "Receiver_Callback::fwrite failed\n"), + -1); + frame->rd_ptr (frame_size); + + ACE_hrtime_t stamp; + ACE_OS_String::memcpy (&stamp, frame->rd_ptr (), sizeof (stamp)); + + ACE_UINT64 usec = stamp; + ACE_UINT32 val_1 = ACE_CU64_TO_CU32 (usec); + + ACE_DEBUG ((LM_DEBUG, + "Time Stamp %u\n", + val_1)); + + frame->reset (); + return 0; +} + +int +Receiver_Callback::handle_destroy (void) +{ + // Called when the distributer requests the stream to be shutdown. + ACE_DEBUG ((LM_DEBUG, + "Receiver_Callback::end_stream\n")); + + endstream = 1; + return 0; +} + +Receiver::Receiver (void) + : mmdevice_ (0) +{ +} + +Receiver::~Receiver (void) +{ +} + +int +Receiver::init (int, + char **, + CORBA::Environment &ACE_TRY_ENV) +{ + // Initialize the endpoint strategy with the orb and poa. + int result = + this->reactive_strategy_.init (TAO_AV_CORE::instance ()->orb (), + TAO_AV_CORE::instance ()->poa ()); + if (result != 0) + return result; + + // Register the receiver mmdevice object with the ORB + ACE_NEW_RETURN (this->mmdevice_, + TAO_MMDevice (&this->reactive_strategy_), + -1); + + // Servant Reference Counting to manage lifetime + PortableServer::ServantBase_var safe_mmdevice = + this->mmdevice_; + + CORBA::Object_var mmdevice = + this->mmdevice_->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + // Register the mmdevice with the naming service. + CosNaming::Name name (1); + name.length (1); + name [0].id = + CORBA::string_dup ("Receiver"); + + // Initialize the naming services + if (this->naming_client_.init (TAO_AV_CORE::instance ()->orb ()) != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to initialize " + "the TAO_Naming_Client\n"), + -1); + + // Register the receiver object with the naming server. + this->naming_client_->rebind (name, + mmdevice.in (), + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + return 0; +} + +int +parse_args (int argc, + char **argv) +{ + // Parse the command line arguments + ACE_Get_Opt opts (argc, + argv, + "f:"); + + int c; + while ((c = opts ()) != -1) + { + switch (c) + { + case 'f': + output_file_name = opts.optarg; + break; + default: + ACE_ERROR_RETURN ((LM_ERROR, + "Usage: receiver -f filename"), + -1); + } + } + + return 0; +} + +int +main (int argc, + char **argv) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + ACE_High_Res_Timer::global_scale_factor (); + + // Initialize the ORB first. + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv, + 0, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + CORBA::Object_var obj + = orb->resolve_initial_references ("RootPOA", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Get the POA_var object from Object_var. + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (obj.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POAManager_var mgr + = root_poa->the_POAManager (ACE_TRY_ENV); + ACE_TRY_CHECK; + + mgr->activate (ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Initialize the AVStreams components. + TAO_AV_CORE::instance ()->init (orb.in (), + root_poa.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + int result = + parse_args (argc, + argv); + + if (result == -1) + return -1; + + // Make sure we have a valid + output_file = ACE_OS::fopen (output_file_name, + "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_DEBUG, + "Cannot open output file %s\n", + output_file_name), + -1); + + else + ACE_DEBUG ((LM_DEBUG, + "File Opened Successfully\n")); + + Receiver receiver; + result = + receiver.init (argc, + argv, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + if (result != 0) + return result; + + while (!endstream) + { + orb->perform_work (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + + // Hack for now.... + ACE_OS::sleep (1); + + orb->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"receiver::init"); + return -1; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (-1); + + ACE_OS::fclose (output_file); + + return 0; +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class TAO_AV_Endpoint_Reactive_Strategy_B; +template class TAO_AV_Endpoint_Reactive_Strategy; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/receiver.h b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/receiver.h new file mode 100644 index 00000000000..d117c273e90 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/receiver.h @@ -0,0 +1,100 @@ +/* -*- C++ -*- */ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/orbsvcs/tests/AVStreams/Simple +// +// = FILENAME +// receiver.h +// +// = DESCRIPTION +// This application receives data from a AV sender and writes it to +// a file. +// +// = AUTHOR +// Yamuna Krishnamurthy +// +// ============================================================================ + +#include "orbsvcs/Naming/Naming_Utils.h" +#include "orbsvcs/AV/AVStreams_i.h" +#include "orbsvcs/AV/Endpoint_Strategy.h" +#include "orbsvcs/AV/Policy.h" + +class Receiver_Callback : public TAO_AV_Callback +{ + // = TITLE + // Application defined callback object. + // + // = DESCRIPTION + // AVStreams calls this class when data shows up from a sender. +public: + + Receiver_Callback (void); + // Constructor. + + // Method that is called when there is data to be received from a + // sender. + int receive_frame (ACE_Message_Block *frame, + TAO_AV_frame_info *frame_info, + const ACE_Addr &peer_address); + + // Called when the sender is done sending data and wants to close + // down the connection. + int handle_destroy (void); + +private: + int frame_count_; + // Keeping a count of the incoming frames. +}; + +class Receiver_StreamEndPoint : public TAO_Server_StreamEndPoint +{ + // = TITLE + // Application defined stream endpoint object. + // + // = DESCRIPTION + // AVStreams calls this class during connection setup. +public: + // Create a receiver application callback. + int get_callback (const char *flowname, + TAO_AV_Callback *&callback); + +private: + Receiver_Callback callback_; + // Receiver application callback. +}; + +class Receiver +{ + // = TITLE + // Receiver application class. + // + // = DESCRIPTION + // This class receives data from a AV sender and writes it to + // a file. +public: + Receiver (void); + // Constructor + + ~Receiver (void); + // Destructor. + + int init (int argc, + char **argv, + CORBA::Environment &); + // Initialize data components. + +protected: + TAO_Naming_Client naming_client_; + // The Naming Service Client. + + TAO_AV_Endpoint_Reactive_Strategy_B + reactive_strategy_; + // The endpoint reactive strategy. + + TAO_MMDevice *mmdevice_; + // Receiver MMDevice. +}; diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/run_test.pl b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/run_test.pl new file mode 100755 index 00000000000..3f07d66d5c9 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/run_test.pl @@ -0,0 +1,67 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib $ENV{"ACE_ROOT"}.'/bin'; +use PerlACE::Run_Test; + +# amount of delay between running the servers + +$sleeptime = 2; +$status = 0; + +$nsior = PerlACE::LocalFile ("ns.ior"); +$outfile = PerlACE::LocalFile ("output"); + +unlink $nsior; + +$NS = new PerlACE::Process ($ENV{"TAO_ROOT"}."/orbsvcs/Naming_Service/Naming_Service", "-o $nsior"); +$SV = new PerlACE::Process ("receiver", "-ORBInitRef NameService=file://$nsior -f output"); +$CL = new PerlACE::Process ("sender", "-ORBDebugLevel 2 -ORBInitRef NameService=file://$nsior -f input -r 2"); + +print STDERR "Starting Naming Service\n"; + +$NS->Spawn (); + +if (PerlACE::waitforfile_timed ($nsior, 5) == -1) { + print STDERR "ERROR: cannot find naming service IOR file\n"; + $NS->Kill (); + exit 1; +} + +print STDERR "Starting Receiver\n"; + +$SV->Spawn (); + +sleep $sleeptime; + +print STDERR "Starting Sender\n"; + +$sender = $CL->SpawnWaitKill (200); + +if ($sender != 0) { + print STDERR "ERROR: sender returned $sender\n"; + $status = 1; +} + +$receiver = $SV->TerminateWaitKill (5); + +if ($receiver != 0) { + print STDERR "ERROR: receiver returned $receiver\n"; + $status = 1; +} + +$nserver = $NS->TerminateWaitKill (5); + +if ($nserver != 0) { + print STDERR "ERROR: Naming Service returned $nserver\n"; + $status = 1; +} + +unlink $nsior; +unlink $output; + +exit $status; diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp new file mode 100644 index 00000000000..04d695b79a9 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp @@ -0,0 +1,415 @@ +// $Id$ + +#include "sender.h" +#include "tao/debug.h" +#include "ace/Get_Opt.h" +#include "ace/High_Res_Timer.h" + +typedef ACE_Singleton SENDER; +// Create a singleton instance of the Sender. + +int +Sender_StreamEndPoint::get_callback (const char *, + TAO_AV_Callback *&callback) +{ + // Create and return the sender application callback to AVStreams + // for further upcalls. + callback = &this->callback_; + return 0; +} + +int +Sender_StreamEndPoint::set_protocol_object (const char *, + TAO_AV_Protocol_Object *object) +{ + // Set the sender protocol object corresponding to the transport + // protocol selected. + SENDER::instance ()->protocol_object (object); + return 0; +} + +Sender::Sender (void) + : sender_mmdevice_ (0), + streamctrl_ (0), + frame_count_ (0), + filename_ ("input"), + input_file_ (0), + protocol_ ("UDP"), + frame_rate_ (30), + mb_ (BUFSIZ) +{ +} + +void +Sender::protocol_object (TAO_AV_Protocol_Object *object) +{ + // Set the sender protocol object corresponding to the transport + // protocol selected. + this->protocol_object_ = object; +} + +int +Sender::parse_args (int argc, + char **argv) +{ + // Parse command line arguments + ACE_Get_Opt opts (argc, argv, "f:p:r:d"); + + int c; + while ((c= opts ()) != -1) + { + switch (c) + { + case 'f': + this->filename_ = opts.optarg; + break; + case 'p': + this->protocol_ = opts.optarg; + break; + case 'r': + this->frame_rate_ = ACE_OS::atoi (opts.optarg); + break; + case 'd': + TAO_debug_level++; + break; + default: + ACE_DEBUG ((LM_DEBUG, "Unknown Option\n")); + return -1; + } + } + return 0; +} + +// Method to get the object reference of the receiver +int +Sender::bind_to_receiver (CORBA::Environment &ACE_TRY_ENV) +{ + CosNaming::Name name (1); + name.length (1); + name [0].id = + CORBA::string_dup ("Receiver"); + + // Resolve the receiver object reference from the Naming Service + CORBA::Object_var receiver_mmdevice_obj = + this->naming_client_->resolve (name, + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + this->receiver_mmdevice_ = + AVStreams::MMDevice::_narrow (receiver_mmdevice_obj.in (), + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + if (CORBA::is_nil (this->receiver_mmdevice_.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + "Could not resolve Receiver_MMdevice in Naming service <%s>\n"), + -1); + + return 0; +} + +int +Sender::init (int argc, + char **argv, + CORBA::Environment &ACE_TRY_ENV) +{ + // Initialize the endpoint strategy with the orb and poa. + int result = + this->endpoint_strategy_.init (TAO_AV_CORE::instance ()->orb (), + TAO_AV_CORE::instance ()->poa ()); + if (result != 0) + return result; + + // Initialize the naming services + result = + this->naming_client_.init (TAO_AV_CORE::instance ()->orb ()); + if (result != 0) + return result; + + // Parse the command line arguments + result = + this->parse_args (argc, + argv); + if (result != 0) + return result; + + // Open file to read. + this->input_file_ = + ACE_OS::fopen (this->filename_.c_str (), + "r"); + + if (this->input_file_ == 0) + ACE_ERROR_RETURN ((LM_DEBUG, + "Cannot open input file %s\n", + this->filename_.c_str ()), + -1); + else + ACE_DEBUG ((LM_DEBUG, + "File opened successfully\n")); + + // Resolve the object reference of the receiver from the Naming Service. + result = this->bind_to_receiver (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + if (result != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "(%P|%t) Error binding to the naming service\n"), + -1); + + + // Initialize the QoS + AVStreams::streamQoS_var the_qos (new AVStreams::streamQoS); + + // Create the forward flow specification to describe the flow. + TAO_Forward_FlowSpec_Entry entry ("Data_Receiver", + "IN", + "USER_DEFINED", + "TS", + this->protocol_.c_str (), + 0); + + AVStreams::flowSpec flow_spec (1); + flow_spec.length (1); + flow_spec [0] = CORBA::string_dup (entry.entry_to_string ()); + + // Register the sender mmdevice object with the ORB + ACE_NEW_RETURN (this->sender_mmdevice_, + TAO_MMDevice (&this->endpoint_strategy_), + -1); + + // Servant Reference Counting to manage lifetime + PortableServer::ServantBase_var safe_mmdevice = + this->sender_mmdevice_; + + AVStreams::MMDevice_var mmdevice = + this->sender_mmdevice_->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + ACE_NEW_RETURN (this->streamctrl_, + TAO_StreamCtrl, + -1); + + PortableServer::ServantBase_var safe_streamctrl = + this->streamctrl_; + + // Bind/Connect the sender and receiver MMDevices. + CORBA::Boolean bind_result = + this->streamctrl_->bind_devs (mmdevice.in (), + this->receiver_mmdevice_.in (), + the_qos.inout (), + flow_spec, + ACE_TRY_ENV); + ACE_CHECK_RETURN (-1); + + if (bind_result == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "streamctrl::bind_devs failed\n"), + -1); + + return 0; +} + +// Method to send data at the specified rate +int +Sender::pace_data (CORBA::Environment &ACE_TRY_ENV) +{ + // The time that should lapse between two consecutive frames sent. + ACE_Time_Value inter_frame_time; + + // The time between two consecutive frames. + inter_frame_time.set (1 / (double) this->frame_rate_); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "Frame Rate = %d / second\n" + "Inter Frame Time = %d (msec)\n", + this->frame_rate_, + inter_frame_time.msec ())); + + ACE_TRY + { + // The time taken for sending a frame and preparing for the next frame + ACE_High_Res_Timer elapsed_timer; + + // Continue to send data till the file is read to the end. + while (1) + { + // Read from the file into a message block. + int n = ACE_OS::fread (this->mb_.wr_ptr (), + 1, + this->mb_.size (), + this->input_file_); + + if (n < 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Sender::pace_data fread failed\n"), + -1); + + if (n == 0) + { + // At end of file break the loop and end the sender. + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG,"Handle_Start:End of file\n")); + break; + } + + this->mb_.wr_ptr (n); + + if (this->frame_count_ > 1) + { + // + // Second frame and beyond + // + + // Stop the timer that was started just before the previous frame was sent. + elapsed_timer.stop (); + + // Get the time elapsed after sending the previous frame. + ACE_Time_Value elapsed_time; + elapsed_timer.elapsed_time (elapsed_time); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "Elapsed Time = %d\n", + elapsed_time.msec ())); + + // Check to see if the inter frame time has elapsed. + if (elapsed_time < inter_frame_time) + { + // Inter frame time has not elapsed. + + // Calculate the time to wait before the next frame needs to be sent. + ACE_Time_Value wait_time (inter_frame_time - elapsed_time); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "Wait Time = %d\n", + wait_time.msec ())); + + // Run the orb for the wait time so the sender can + // continue other orb requests. + TAO_AV_CORE::instance ()->orb ()->run (wait_time, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + } + + // Start timer before sending the frame. + elapsed_timer.start (); + + // Send frame. + int result = + this->protocol_object_->send_frame (&this->mb_); + + if (result < 0) + ACE_ERROR_RETURN ((LM_ERROR, + "send failed:%p", + "Sender::pace_data send\n"), + -1); + + ACE_DEBUG ((LM_DEBUG, + "Sender::pace_data frame %d was sent succesfully\n", + ++this->frame_count_)); + + // Reset the message block. + this->mb_.reset (); + + } // end while + + // File reading is complete, destroy the stream. + AVStreams::flowSpec stop_spec; + this->streamctrl_->destroy (stop_spec, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Shut the orb down. + TAO_AV_CORE::instance ()->orb ()->shutdown (0, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Sender::pace_data Failed\n"); + return -1; + } + ACE_ENDTRY; + return 0; +} + +int +main (int argc, + char **argv) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + + ACE_High_Res_Timer::global_scale_factor (); + + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv, + 0, + ACE_TRY_ENV); + + CORBA::Object_var obj + = orb->resolve_initial_references ("RootPOA", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Get the POA_var object from Object_var + PortableServer::POA_var root_poa + = PortableServer::POA::_narrow (obj.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POAManager_var mgr + = root_poa->the_POAManager (ACE_TRY_ENV); + ACE_TRY_CHECK; + + mgr->activate (ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Initialize the AV Stream components. + TAO_AV_CORE::instance ()->init (orb.in (), + root_poa.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Initialize the Sender. + int result = 0; + result = SENDER::instance ()->init (argc, + argv, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + if (result < 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Sender::init failed\n"), + -1); + + // Start sending data. + result = SENDER::instance ()->pace_data (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Sender Failed\n"); + return -1; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (-1); + return 0; +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Singleton ; +template class TAO_AV_Endpoint_Reactive_Strategy_A; +template class TAO_AV_Endpoint_Reactive_Strategy; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Singleton +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A +#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.h b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.h new file mode 100644 index 00000000000..87b07bcb553 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.h @@ -0,0 +1,117 @@ +/* -*- C++ -*- */ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/orbsvcs/tests/AVStreams/Simple +// +// = FILENAME +// sender.h +// +// = DESCRIPTION +// This application reads data from a file and sends it to s +// receiver. +// +// = AUTHOR +// Yamuna Krishnamurthy +// +// ============================================================================ + +#include "orbsvcs/Naming/Naming_Utils.h" +#include "orbsvcs/AV/AVStreams_i.h" +#include "orbsvcs/AV/Endpoint_Strategy.h" +#include "orbsvcs/AV/Protocol_Factory.h" + +class Sender_StreamEndPoint : public TAO_Client_StreamEndPoint +{ + // = TITLE + // Defines a sender stream endpoint. +public: + int get_callback (const char *flowname, + TAO_AV_Callback *&callback); + // Create the application callback and return its handle to + // AVStreams for further application callbacks. + + int set_protocol_object (const char *flowname, + TAO_AV_Protocol_Object *object); + // Set protocol object corresponding to the transport protocol + // chosen. + +protected: + TAO_AV_Callback callback_; + // Application callback. +}; + +typedef TAO_AV_Endpoint_Reactive_Strategy_A + + SENDER_ENDPOINT_STRATEGY; + +class Sender +{ + // = TITLE + // Sender Application. + // + // = DESCRIPTION + // Class is responsible for streaming (and pacing) data to a + // receiver. +public: + Sender (void); + // Constructor + + int init (int argc, + char **argv, + CORBA::Environment&); + // Method to initialize the various data components. + + int pace_data (CORBA::Environment &); + // Method to pace and send data from a file. + + void protocol_object (TAO_AV_Protocol_Object *protocol_object); + // Set the protocol object corresponding to the transport protocol chosen. + +private: + int parse_args (int argc, char **argv); + // Method to parse the command line arguments. + + int bind_to_receiver (CORBA::Environment& ACE_TRY_ENV); + // Method that binds the sender to the receiver. + + SENDER_ENDPOINT_STRATEGY endpoint_strategy_; + // The endpoint strategy used by the sender. + + AVStreams::MMDevice_var receiver_mmdevice_; + // The receiver MMDevice that the sender connects to. + + TAO_MMDevice *sender_mmdevice_; + // The sender MMDevice. + + TAO_StreamCtrl *streamctrl_; + // Stream controller + + int frame_count_; + // Number of frames sent. + + ACE_CString filename_; + // File from which data is read. + + TAO_Naming_Client naming_client_; + // The Naming Service client. + + FILE *input_file_; + // File handle of the file read from. + + ACE_CString protocol_; + // Selected protocol - default is UDP + + int frame_rate_; + // Rate at which the data will be sent. + + ACE_Message_Block mb_; + // Message block into which data is read from a file and then sent. + + TAO_AV_Protocol_Object *protocol_object_; + // Protocol object corresponding to the transport protocol selected. +}; diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/svc.conf b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/svc.conf new file mode 100644 index 00000000000..d4f2cd01350 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/svc.conf @@ -0,0 +1,5 @@ +dynamic AV_Default_Resource_Factory Service_Object * TAO_AV:_make_TAO_AV_Default_Resource_Factory() "" +dynamic TimeStamp_Protocol_Factory Service_Object * TAO_TS:_make_TimeStamp_Protocol_Factory() "" +static AV_Default_Resource_Factory "-AVFlowProtocolFactory TimeStamp_Protocol_Factory" +dynamic UDP_Factory Service_Object * TAO_AV:_make_TAO_AV_UDP_Factory() "" +static AV_Default_Resource_Factory "-AVTransportFactory UDP_Factory" -- cgit v1.2.1