Fri Jan 15 21:10:25 1999 Nanbor Wang * ace/CORBA_macros.h: Made sure ACE_CORBA_HAS_EXCEPTIONS always gets set properly. Added ACE_ADPOT_CORBA_ENV to reuse a existing CORBA::Environment variable. Fri Jan 15 17:05:12 1999 Irfan Pyarali * ace/Log_Record: Factored out the redundant formatting code. The new scheme also allows the end user to get to verbose formatted string. Thanks to Nanbor for helping out with this. Fri Jan 15 17:15:18 EST 1999 James CE Johnson * docs/tutorials/templates.html docs/tutorials/001/acceptor.h docs/tutorials/001/logger.h docs/tutorials/001/page01.html docs/tutorials/001/page02.html docs/tutorials/001/page03.html docs/tutorials/001/page04.html docs/tutorials/001/page05.html docs/tutorials/001/server.cpp docs/tutorials/003/page01.html Many changes from Ossama plus a new abstract (for T3) from Kirthika. Fri Jan 15 14:40:26 1999 Douglas C. Schmidt * ace/SOCK_IO, ace/SOCK_Dgram: Modified the recv(iovec *) and recvv(iovec *) methods so that they use select() to avoid spinning if no data is available. Thanks to Mike Goldman for this fix. Fri Jan 15 10:47:26 1999 Douglas C. Schmidt * ace/Service_Repository.cpp: If a service being removed from the Service_Repository used the Service_Repository while being removed it could access objects that had already been deleted. Fix this by decrementing the current_size_ member in "real-time". Thanks to Eric Newton for reporting this. Fri Jan 15 08:08:31 1999 Douglas C. Schmidt * ACE version 4.6.15 released. Fri Jan 15 07:20:46 1999 Chris Gill * ace/OS.i: Fixed variable names in isatty () on NT Fri Jan 15 03:45:46 1999 Nanbor Wang * docs/exceptions.html: Rewrote the exception handling guildlines based on ACE's try macros. Fri Jan 15 01:32:55 1999 Douglas C. Schmidt * ACE version 4.6.14 released. Fri Jan 15 00:03:32 1999 Irfan Pyarali * examples/Log_Msg/test_ostream.cpp: Added new example for Log_Msg. This program tests the Log_Msg abstraction wrt writing to stderr and to a file. Thu Jan 14 21:50:22 1999 Nanbor Wang * ace/CORBA_macros.h: Added a new set of try macros which help application developers write portable code that handles CORBA::Exception portably. The macros will work with any ORB. The total number of macros has reduces significantly and they should be much easier to use because the rules all follow the same style. The new try macros should be prefered over the original try macro in $TAO_ROOT/TAO/try_macros.h because those macros will soon be *DEPRICATED* once we finished convert TAO to use the new macros. Please see ACE_wrappers/docs/exceptions.html for guidelines and rules of using ACE's try macros. Thu Jan 14 20:41:33 1999 Douglas C. Schmidt * ace/OS: Moved some code around to consolidate the getuid() and isatty() functions. * ace/OS: Added support for the setuid() call. Thanks to Susan Liebeskind for suggesting this. Thu Jan 14 16:18:37 EST 1999 James CE Johnson * docs/tutorials/001/page02.html: docs/tutorials/001/page03.html: Included Kirthika Parameswaran's abstract and analogy. Thanks Kirthika! * docs/tutorials/001/Source.tgz: docs/tutorials/001/acceptor.h: docs/tutorials/001/logger.h: docs/tutorials/001/server.cpp: docs/tutorials/001/page[345].html: * docs/tutorials/002/page0[23].html: docs/tutorials/002/handler.h: Added improvements from Kirthika, Pradeep and Yamuna Thu Jan 14 11:46:25 1999 Douglas C. Schmidt * ace/Synch_T.h: Pointed out that we can only parameterize ACE_Condition<> with ACE_Thread_Mutex and ACE_Null_Mutex. Thanks to Knut-Havard Aksnes for reporting this. Thu Jan 14 02:33:37 1999 Douglas C. Schmidt * ACE version 4.6.13 released. Thu Jan 14 00:07:34 1999 Irfan Pyarali * docs/tutorials/014/stream.cpp: Added #include "ace/streams.h". Wed Jan 13 23:18:03 1999 Nanbor Wang * ace/OS.h: * config-g++-common.h: * config-osf1-4.0.h: * config-psos-diab.h: * config-psos-tm.h: Revert my previous change. Removed the ChangeLog entry about the change. Wed Jan 13 22:30:49 1999 David L. Levine * include/makeinclude/platform_chorus_ghs.GNU: removed explicit link with libedgnoe.a, because GreenHills adds that implicitly. * ace/OS.h: added quick hack to ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR logic to allow compilation with g++. Wed Jan 13 18:48:30 EST 1999 James CE Johnson * docs/tutorials/004/client.cpp: docs/tutorials/010/message_queue.cp: docs/tutorials/011/message_queue.cpp: docs/tutorials/012/message_queue.cpp: docs/tutorials/013/message_queue.cpp: docs/tutorials/014/EndTask.h: docs/tutorials/019/client.cpp: docs/tutorials/019/client2.cpp: docs/tutorials/019/server.cpp: docs/tutorials/019/server2.cpp: docs/tutorials/019/shmem.cpp: docs/tutorials/020/client.cpp: docs/tutorials/020/server.cpp: docs/tutorials/021/client.cpp: docs/tutorials/021/mpool.cpp: docs/tutorials/021/mpool.h: docs/tutorials/021/server.cpp: Fixed many NT issues found by Irfan. Most are related to the fact that NT doesn't have SysV shared memory. Wed Jan 13 04:45:59 1999 James C Hu * ace/Cache_Object.{h,cpp}: * ace/Cache_Manager.{h,cpp}: * ace/Cache_Manager_T.{h,cpp}: * ace/Cache_Hash_T.{h,cpp}: * ace/Cache_Heap_T.{h,cpp}: * ace/Hash_Bucket_T.{h,cpp}: Supporting infrastructure for the new Filecache. These classes form the basis of a generic in memory cache engine. Wed Jan 13 02:17:57 1999 Irfan Pyarali * ace/OS.cpp (writev): This function should use ACE::write_n instead of ACE::send_n. Similarly, readv() should use ACE::read_n instead of ACE::recv_n. * ace/ACE.cpp (send): This function should use ACE_OS::sendv instead of ACE_OS::writev. Similarly, recv() should use ACE_OS::recvv instead of ACE_OS::readv. * docs/tutorials: Fixed all the NT project files. Tue Jan 12 22:41:05 1999 Nanbor Wang * ace/config-freebsd.h: Uncommented ACE_HAS_SIGWAIT. This is required for FreeBSD 2.2.8. Thanks to John Aughey for reporting this. * ace/SOCK_IO.{h,i}: * ace/SOCK_Stream.{h,i} (sendv_n/recvv_n): Moved these functions from SOCK_IO to SOCK_Stream where it makes more sense to have the semantic of sending/receiving bytes. Tue Jan 12 19:52:26 1999 Nanbor Wang * ACE-INSTALL.html: Added more info on dynamically linking run-time libraries. * ace/SOCK_IO.{h,i,cpp} (sendv,recvv,sendv_n,recvv_n): Renamed vector send/recv. There were name clashing since these methods have similar signatures to some send_n/recv_n in ACE_SOCK_Stream, they got hidden by the derived methods. Renaming them solve the problem. Tue Jan 12 10:59:58 1999 David L. Levine * include/makeinclude/platform_chorus_ghs.GNU: fixed location of libedgenoe.a, so that a symlink in $(GHS_DIR) is no longer necessary. Thanks to Steve Kay for reporting this. * ace/config-mklinux.h: removed ACE_HAS_SOCKLEN_T, addedUSE_XOPEN. Thanks to Andreas Tobler for these updates. Tue Jan 12 08:44:11 EST 1999 Aniruddha Gokhale * ace/Acceptor.cpp (handle_close): Since the reactor_ data member is made private, we need to use its accessor method to retrieve it. Tue Jan 12 02:12:38 1999 Nanbor Wang * ace/OS.h (ACE_DES_NO_FREE,ACE_DES_FREE): These two macros shouldn't be treated differently no matter ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR is defined or not. Otherwise, virtual destructor won't work in one of the original definitions. There shouldn't be different different definitions for calling template destructor explicitly either. However, we need to find that out. The meaning of ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR seems to be reversed. That needs to be fixed also. Tue Jan 12 00:18:15 1999 Douglas C. Schmidt * ace/Event_Handler.h: Moved the priority_ and reactor_ data members into the private section of the class since these can always be accessed via their accessor methods. Thanks to Mike Goldman for reporting this. Mon Jan 11 15:30:26 1999 Nanbor Wang * ace/Process.{h,i} (get_process_attributes,get_thread_attributes): Removed the constness from the return value to avoid Intel C++ warnings. Thanks to Karel Zuiderveld for reporting this. * bin/ADDIDL.DSM: A VB script to add new IDL files into DevStudio projects. Thanks to Peter for contributing this nice tool. Mon Jan 11 12:54:26 1999 Douglas C. Schmidt * ace/SOCK_IO: Added const qualifiers to all the send*() and recv*() methods that take ACE_Time_Value values. Thanks to Jody Hagins for reporting this. * ace/SOCK_IO: Added a new send_n() method that uses the new ACE::sendv_n() method! * ace/ACE: Added a new sendv_n() and writev_n() method that sends all the bytes in the iovec! * ace/ACE.h (ACE): Added default values of 0 for ACE::writev() and ACE::readv(). * examples/NT_Service: Tidied up the formatting to conform to the ACE programming guidelines. Mon Jan 11 10:23:06 1999 Nanbor Wang * ace/config-freebsd-pthread.h: Added ACE_LACKS_READDIR_R. * ace/config-freebsd.h: Added ACE_LACKS_READDIR_R, ACE_HAS_NONCONST_MSGSND, ACE_LACKS_MALLOC_H. ACE_HAS_SIGINFO_T only applies to 3.0 and above. Thanks to Ivan Pascal for reporting the change. Sun Jan 10 21:52:57 1999 David L. Levine * tests/Message_Queue_Notifications_Test.cpp (iterator_test): added comment explaining why a message queue size of 32 Kb is used, instead of the default of 16 Kb. * docs/ACE-guidelines.html: added guidelines for boolean types and function return values. Sun Jan 10 17:33:29 1999 Douglas C. Schmidt * tests/Message_Queue_Notifications_Test.cpp: Replaced delete mb with mb->release(). Thanks to Susan Liebeskind for reporting this inconsistency. * ace/Task_T.h, ace/Message_Queue_T.h: Clarified the fact that the ACE_Time_Value arguments to the Message_Queue methods use absolute, rather than relative, time. Thanks to Stanford S. Guillory for pointing out the need for this clarification. Sun Jan 10 09:18:41 1999 Martin Krumpolec * ace/Log_Msg.cpp (log): only re-enable tracing if it had not been explicitly disabled. Sun Jan 10 01:06:18 1999 Irfan Pyarali * ace/Log_Msg.cpp (log): Change call from exit() to abort(). * ace/OS.i (abort): Added new function. Sat Jan 9 22:05:07 1999 Nanbor Wang * bin/tao_env.pl: A new perl script that help you translate _env to TAO_IN_ENV. Sat Jan 09 10:53:37 1999 David L. Levine * ace/Name_Proxy.cpp (open): swapped branches of conditional so that options.time_value () is used if USE_TIMEOUT is enabled. Thanks to Mike Goldman for reporting this. Fri Jan 08 19:19:17 1999 Nanbor Wang * ace/OS.h: Applied ACE_TEXT to the definition of ACE_DEFAULT_TEMP_FILE on Win32. Thanks to for reporting this. Fri Jan 08 13:24:12 1999 David L. Levine * ace/Synch.h (ACE_Process_Mutex): made data members private instead of public. Thanks to Peter Gross for reporting this. * examples/Threads/reader_writer.cpp: removed volatile qualifier from declaration of "shared_thr_id", so that the file will compile on DU 4.0 with DCE threads. The volatile qualifier caused a type mismatch with ACE_thread_t. And, it's not necessary, because all access of the shared_thr_id is guarded. * include/makeinclude/platform_chorus_ghs.GNU: added gnuch68 to -alttools, and removed bin from AR; use libedgnoe.a instead of libedg.a with GHS 1.8.9.1. * ace/config-sunos5.5.h: don't define ACE_HAS_XPG4_MULTIBYTE_CHAR with ghs, because its version 1.8.9 doesn't seem to support it. Also, with ghs, replaced the __ctype [] declaration with an #include of , because that's cleaner. Finally, added ACE_HAS_BROKEN_ENUMS for ghs (1.8.9). Thu Jan 07 09:05:27 1999 David L. Levine * ace/config-sunos5.5.h: added ACE_HAS_SIG_C_FUNC with Sun CC >= 4.2. Sun CC 5.0 needs it; Sun CC 4.2 doesn't object to it on SunOS 5.5.1, 5.6, and 5.7. Thanks to Neil Cohen for figuring out how to compile ACE with Sun CC 5.0. * include/makeinclude/platform_sunos5_sunc++.GNU: only use -features=castop and -rtti with Sun CC 4.2. CC 5.0 doesn't support them; I assume that it enables RTTI by default. Thanks to Neil Cohen for reporting this. * ACE-INSTALL.html: added ACE_HAS_REGEX #undef suggestion for shared lib link problems with egcs 1.1.x on Solaris 2.5.x. Thanks to Bob McWhirter for reporting this problem. Thu Jan 07 04:45:36 1999 Douglas C. Schmidt * ACE version 4.6.12 released. Thu Jan 07 04:01:08 1999 Irfan Pyarali * ace/Containers_T.cpp (max_size): No need to reallocate if the new size is the same. Thanks to Mike Goldman for pointing this out. * ace/Strategies_T.cpp (check_hint_i and cleanup_hint_i): purge_i() should be called after the entry is closed. * Select_Reactor_Base.cpp (unbind): The next should be calculated not only based on the but also the . Thanks to Mark L. Boriack for providing a description of this bug. Wed Jan 06 21:42:11 1999 David L. Levine * ace/OS.cpp (thr_create): moved #endif /* ACE_LACKS_SETDETACH */ outside of }, to allow compilation on DU 4.0/cxx with DCE threads. * ace/config-osf1-4.0.h: with DCE threads only, added ACE_LACKS_THREAD_PROCESS_SCOPING. Wed Jan 06 16:36:21 1999 David L. Levine * ACE version 4.6.11 released. Wed Jan 06 15:15:37 1999 Nanbor Wang * ace/Service_Config.cpp (process_directive,close): Moved the deletion of into close method. Otherwise, there's no way to reconfigure the service configuration once it get started. Thanks to Mike Goldman for reporting the problem. Wed Jan 6 14:27:24 EST 1999 James CE Johnson tutorial. It could be a lot better than it is but I'm still new to ACE_Malloc... * docs/tutorials/021/online-tutorials.html: Added the link for #21 Tue Jan 05 22:55:07 1999 Irfan Pyarali * ace/Strategies_T.cpp (cleanup_hint_i and check_hint_i): Since we are holding the connection cache lock in these methods, the Svc_Handler should not call purge(). If it does, a deadlock will occur (unless we have recursive locks) since we are already holding the connection cache lock. Therefore, we zero out the recycler before calling svc_handler->close() and purge out the svc_handler entry ourself (through purge_i()). Thanks to Mark L. Boriack for providing a precise example illustrating this bug. Tue Jan 5 18:48:47 James CE Johnson * docs/tutorials/templates.html: Fixed a number of problems here. Thanks to Amos Shapira for pointing them out. * docs/tutorials/colorize: I pulled out the colorization code from combine into this standalone script. One of these days I'll fix combine so that the code isn't duplicated... Tue Jan 5 16:14:00 1999 Carlos O'Ryan * ace/config-irix6.x-common.h: Added ACE_TIMER_SKEW definition. * ace/FILE.cpp: Fixed the seek() prototype, is was declared as taking a "off_t" argument, but is was defined with a "long" argument, unfortunately in most platforms this was not a problem. Tue Jan 05 13:15:35 1999 Nanbor Wang * ace/Service_Config.i (open): Be sure to pass down the argument down to the real open method. Tue Jan 05 08:08:06 1999 David L. Levine * tests/MM_Shared_Memory_Test.cpp (spawn): fixed syntax error by moving ) to end of ACE_ERROR invocation. * ace/config-osf1-4.0.h: added 10 ms ACE_TIMER_SKEW, so that MT_Reactor_Timer_Test passes. * ace/config-lynxos.h: added 10 ms ACE_TIMER_SKEW, so that MT_Reactor_Timer_Test comes closer to passing. It now chokes on the wait () near the end. * ace/OS.i (thr_getspecific): moved return 0 statement inside the Draft 7/STD #else block, to avoid warning about unreachable statement with Draft 4/6. * ace/config-osf1-4.0.h: with Draft 4 pthreads, added ACE_LACKS_READDIR_R. * tests/MT_Reactor_Timer_Test.cpp (main): added printout if wait () fails. Tue Jan 5 00:59:04 1999 Douglas C. Schmidt * ace/Synch: Changed the remove() method of ACE_Thread_Mutex, ACE_Mutex, ACE_Semaphore, ACE_RW_Mutex, ACE_Event, ACE_Thread_Condition_Mutex, ACE_File_Lock, and ACE_Recursive_Thread_Mutex so that they check a flag to see if remove() has already been called. If it has, then the remove() call does nothing. This avoids nasty problems on platforms like Win95 that fail mysteriously if locks are destroyed multiple times. Note that our solution isn't perfect since it won't protect against race conditions if multiple threads call remove() simultaneously. However, if this happens it's a sign that the application was designed incorrectly... Thanks to Paul Felix and Irfan for tracking this down. * ace/FILE: Added new methods, seek() and tell(), that are more intuitively named than the existing position() methods. The position() methods have been retained for backwards compatiblity, but are now marked as deprecated. * ace/OS.h: Added a macro for ACE_DEFAULT_HTTP_PORT, which is 80 of course... * ace/INET_Addr.cpp: Make sure that addr_to_string() correctly checks the length of its buffer before doing a sprintf(). In addition, added an option to print the results in either ip-addr format or ip-name format. * ace/Mem_Map.cpp (map): where ace/Mem_Map.cpp mmap() will succeed if the length of the file mapping is 0, which will be the case if we've just created the file. This was the wrong place to make this check. * tests/MM_Shared_Memory_Test.cpp: Cleaned up a few things in this test so that it'll be easier to maintain. Mon Jan 04 08:45:45 1999 David L. Levine * ace/config-sunos5.7.h: only use the g++ hacks if the g++ version is prior to 2.8. Assume that later versions were built on SunOS 5.7 host, and/or don't have header files that are incompatible with the system headers. * bin/create_ace_build: changed symlink creation failure from error (with termination) to warning create_ace_build. Mon Jan 4 03:15:57 1999 Douglas C. Schmidt * ace/Mem_Map: If we're remapping an already-mapped file (i.e., the base_addr_ != 0) && the addr parameter IS 0 (i.e., the user isn't trying to respecify where to map this file), then we'll try to map over top of the existing region, which implies "MAP_FIXED". Sun Jan 03 23:21:46 1999 Nanbor Wang * ace/Service_Config.cpp (initialize): Both initialize methods now remove the service object from the repository if its init() method failed. Sun Jan 3 14:39:49 1999 Douglas C. Schmidt * ace/ACE: Added a simple dirname() wrapper method. * ace/SString: The set(const char *, size_t, int = 1) and set(const char *, size_t) methods were inherently ambiguous. I've fixed this by changing removing the default parameters. Thanks to Irfan for suggesting this fix. * ace/Mem_Map.cpp: mmap() will fail if the length of the file mapping is 0, which will be the case if we've just created the file. Therefore, don't even bother trying to mmap() in this case and return a successful result. * ace/FILE: Moved the get_remote_addr() and get_local_addr() methods from the FILE_IO class to the FILE class since that's more properly where they belong. Also added a new remove() method that unlinks the file. * tests/Priority_Reactor_Test.cpp, tests/Conn_Test.cpp, tests/Notify_Performance_Test.cpp, Priority_Reactor_Test.cpp, Reactor_Performance_Test.cpp: Since the default is to skip argv0 there's no sense explicitly saying this in the constructor of ACE_Get_Opt. * ace/FILE_Connector.h: Updated the comments to reflect recent changes. * ace/FILE.h: Added a new get_info() method that takes a reference to an ACE_FILE_Info rather than a pointer. This is a cleaner API, IMHO. * ace/FILE_Connector.cpp (connect): When the argument is ACE_Addr::sap_any, then connect will select a temporary filename using the new feature of ACE_FILE_Addr described below. * ace/FILE_Addr.cpp (set): When the address is ACE_Addr::sap_any, then we'll select a new temporary filename using the new ACE_DEFAULT_TEMP_FILE macro and ACE_OS::mktemp(). * ace/OS.h: Added a new ACE_DEFAULT_TEMP_FILE macro that defaults to "/tmp/ace-fileXXXX" and is used by the ACE_FILE_Connector to create a temporary file when it's given an ACE_Addr::sap_any. * ace/FILE_Addr.h: The accessor should return an int to be consistent. * ace/OS.h: Added a new ACE_sap_any_cast macro, which makes it much easier to cast the ACE_Addr::sap_any to the right subclass. * tests/Reactor_Performance_Test.cpp, tests/Reactor_Exceptions_Test.cpp, tests/Process_Strategy_Test.cpp, tests/Priority_Reactor_Test.cpp, tests/IOStream_Test.cpp, tests/Conn_Test.cpp: Replaced all the C-style casts for ACE_Addr::sap_any with the new ACE_sap_any_cast macro. Sun Jan 03 21:48:37 1999 Irfan Pyarali * ace/Asynch_Acceptor.cpp: Since this is a template file, I removed it from the ace library build on NT. * ace/Asynch_Acceptor.cpp (open): Changed C-style cast to use the new ACE_sap_any_cast macro from Dr. Schmidt. Sun Jan 03 09:12:23 1999 David L. Levine * ace/config-sunos5.5.h: with GreenHills, added ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR. * ace/Basic_Types.* (ACE_U_LongLong): unioned the data members with a double, to ensure alignment on 8-byte boundaries. It could matter when an ACE_U_LongLong is used as a true 8-byte quantity, such as in a call to Solaris ::gethrtime (). * tests/Time_Value_Test.cpp: replaced remaining #ifdef ACE_HAS_STHREADS with #ifdef sun. Sat Jan 2 23:48:44 1999 James CE Johnson * docs/ACE-tutorials.html * docs/tutorials/guide-tutorials.html * docs/tutorials/new-tutorials.html * docs/tutorials/online-tutorials.html Converted some of the absolute URLs to relative. I only have the docs/tutorials tree here at home so I couldn't do any more than these. * docs/tutorials/021/* New tutorial on ACE_Malloc<>. I haven't begun the documentation yet but wanted to get the code commited so it doesn't get lost. Sat Jan 02 08:34:27 1999 David L. Levine * examples/ASX/Event_Server/Event_Server/event_server.cpp (handle_input), examples/Reactor/Misc/test_early_timeouts.cpp (main): added ACE_UNUSED_ARG (n), to avoid compile warning with ACE_NDEBUG. * performance-tests/Misc/test_naming.cpp (find): moved function call w/side effect out of ACE_ASSERT. Thanks to DU 4.0 cxx for noticiing it, with ACE_NDEBUG. Fri Jan 01 18:57:22 1999 David L. Levine * ace/Containers_T.i (ACE_Array,ACE_Array::operator=): added missing ACE_INLINE's. * ace/OS.{h,cpp} (ACE_TSS_Info::operator{==,!=}): added constness. It's necessary with the ACE_Array changes, with ACE_HAS_TSS_EMULATION. Fri Jan 1 12:22:14 1999 Carlos O'Ryan * ace/Containers_T.h: * ace/Containers_T.i: * ace/Containers_T.cpp: * bin/Array_Helper: * bin/Array.pl: Moved most of the implementation of ACE_Array into ACE_Array_Base this class does not require == or != operators defined for the template parameter. I also added methods to access and manipulate the capacity of the array (max_size) as opposed to always changing its size (the portion actually used). * ace/Object_Manager.cpp: * ace/Template_Instantiations.cpp: * ace/OS.cpp: * apps/JAWS/clients/Caching/URL_Properties.cpp: Fixed ACE_Array instantiations.