Tue Oct 10 21:54:52 2000 Nanbor Wang * bin/msvc_auto_compile.pl (Build_Core): Updated LIB core build dsp list. Tue Oct 10 18:51:16 2000 Carlos O'Ryan * ace/Makefile.bor: * ace/RMCast/Makefile.bor: * include/makeinclude/ace_flags.bor: Add a Borland makefile for the RMCast library. Thanks to Johhny Willemsen for providing this. Tue Oct 10 17:59:09 2000 Carlos O'Ryan * ace/RMCast/RMCast.dsp: Update the project file Tue Oct 10 17:25:32 2000 Carlos O'Ryan * Finally the Send_File example works correctly. In my tests four nodes received the same file successfully. I also tried some features to cleanly terminate receivers and senders. However, I still need to work on flow control, and in strategies to limit the maximum number of messages buffered by the sender and/or receiver. * ace/RMCast/Makefile: Add the new files to the Makefile * ace/RMCast/RMCast.h: Move the state transition matrix to RMCast_Receiver_Module.h * ace/RMCast/RMCast_Ack_Worker.h: * ace/RMCast/RMCast_Ack_Worker.i: * ace/RMCast/RMCast_Ack_Worker.cpp: Move the ACE_RMCast_Ack_Worker class to its own file. Only used in the Retransmission module. * ace/RMCast/RMCast_Fork.h: * ace/RMCast/RMCast_Fork.i: * ace/RMCast/RMCast_Fork.cpp: This class superseeds Control_Splitter. I realized that forking the control messages to the user layer is a more general and cleaner solution for this problem. * ace/RMCast/RMCast_Control_Splitter.h: * ace/RMCast/RMCast_Control_Splitter.i: * ace/RMCast/RMCast_Control_Splitter.cpp: Removed. * ace/RMCast/RMCast_Fragment.cpp: Fixed bug when computing the length of the message, it should be total_length() but I was using total_size(). * ace/RMCast/RMCast_IO_UDP.cpp: Destroy proxys that return -1 from receive_message(). Add multiple debug messages, now commented out. * ace/RMCast/RMCast_Membership.h: * ace/RMCast/RMCast_Membership.cpp: When a new member joins or leaves the group we need to resend the ack messages to the upper layer. The code to compute the correct Ack message is factored out. Many debug messages, but they are commented out. New method so clients can know how many members the group has, it can be used for safe termination of senders. * ace/RMCast/RMCast_Module.cpp: The open() and close() methods propagate through the stack as any other message. * ace/RMCast/RMCast_Reassembly.h: * ace/RMCast/RMCast_Reassembly.cpp: Cleanup is performed in the close() operation. Old messages are dropped from the map immediately, the Reordering layer is the right place to reject them (if any). * ace/RMCast/RMCast_Reliable_Factory.cpp: Use ACE_RMCast_Receiver_Module to validate and process the messages in the proxy, for example, Ack messages are a clear error on the receiver side. * ace/RMCast/RMCast_Receiver_Module.h: * ace/RMCast/RMCast_Receiver_Module.i: * ace/RMCast/RMCast_Receiver_Module.cpp: This module implements message validation and state transitions for a receiver. It also generates the correct responses for an Ack_Join or Poll message. * ace/RMCast/RMCast_Reordering.h: * ace/RMCast/RMCast_Reordering.cpp: Cleanup resources in the close() method * ace/RMCast/RMCast_Resend_Worker.h: * ace/RMCast/RMCast_Resend_Worker.i: * ace/RMCast/RMCast_Resend_Worker.cpp: Move the ACE_RMCast_Resend_Worker class to its own file. Only used in the Retransmission module. * ace/RMCast/RMCast_Resend_Handler.cpp: Resend all the messages after each timeout. * ace/RMCast/RMCast_Retransmission.h: * ace/RMCast/RMCast_Retransmission.cpp: Worker classes moved to their own files. * ace/RMCast/RMCast_Sequencer.h: * ace/RMCast/RMCast_Sequencer.i: * ace/RMCast/RMCast_Sequencer.cpp: Assign unique sequence numbers to each message, used on the sender side. * ace/RMCast/RMCast_UDP_Proxy.cpp: Incoming message must pass through the proxy before going up the stack. The source field was not set in the messages. * ace/RMCast/RMCast_UDP_Reliable_Sender.h: * ace/RMCast/RMCast_UDP_Reliable_Sender.i: * ace/RMCast/RMCast_UDP_Reliable_Sender.cpp: Use the new ACE_RMCast_Sequencer module to assign message sequence numbers. Use the new ACE_RMCast_Fork class to send incoming control messages both to the user and the retransmission/membership modules. Add method to detect how many members are currently registered with the membership layer. * tests/RMCast/RMCast_Retransmission_Test.cpp: Assign the sequence numbers before going into the retransmission layer, as would be done in a normal application. * examples/RMCast/Send_File/Makefile: Update dependencies * examples/RMCast/Send_File/Sender.cpp: Only shutdown once all the members have left the group. Use long periods to make debugging easier. * examples/RMCast/Send_File/Receiver.cpp: Only shutdown once the Ack_Leave message is received. Return -1 from the data() method once the complete file is received, that initiates the termination. Use long periods to make debugging easier. Tue Oct 10 16:34:01 2000 Nanbor Wang * ace/config-win32-common.h: Changed ACE_HAS_SVC_DLL to ACE_SVC_HAS_DLL and commented out its definition. The default definition of ACE_SVC_HAS_DLL has been moved to ace/Svc_export.h. The comment-out code here only serves as a reminder to users. Thanks to Mike Curtis for pointing this out. * netsvcs/lib/Base_Optimizer.cpp: Removed redundant definition of ACE_BUILD_DLL. * ace/ACE_export.h: * ace/OS_Export.h: Added a new macro ACE_AS_STATIC_LIBS that controls the default value of ACE_OS_HAS_DLL and ACE_HAS_DLL so we can build static ACE library easily. * ace/ace_lib.dsp: * apps/gperf/src/gperf.dsp: * apps/gperf/src/gperf_lib.dsp: Changed to use ACE_AS_STATIC_LIBS for static configurations. Mon Oct 09 16:45:00 2000 Carlos O'Ryan * ace/RMCast/Makefile: * ace/RMCast/RMCast.dsp: Add new files to the RMCast project and Makefile. * ace/RMCast/RMCast_Control_Splitter.h: * ace/RMCast/RMCast_Control_Splitter.i: * ace/RMCast/RMCast_Control_Splitter.cpp: A module to separate control messages from regular data flow. * ace/RMCast/RMCast_Copy_On_Write.h: * ace/RMCast/RMCast_Copy_On_Write.cpp: Add accessor to check if the collection is empty. * ace/RMCast/RMCast_IO_UDP.h: * ace/RMCast/RMCast_IO_UDP.i: * ace/RMCast/RMCast_IO_UDP.cpp: * ace/RMCast/RMCast_UDP_Event_Handler.cpp: Decouple the event handler. * ace/RMCast/RMCast_Module.h: * ace/RMCast/RMCast_Module.i: * ace/RMCast/RMCast_Module.cpp: * ace/RMCast/RMCast_UDP_Proxy.h: Fixed comments. * ace/RMCast/RMCast_Module_Factory.h: No need to pass the IO_UDP to the module factory. * ace/RMCast/RMCast_Reliable_Factory.h: * ace/RMCast/RMCast_Reliable_Factory.i: * ace/RMCast/RMCast_Reliable_Factory.cpp: A factory to create the per-proxy stack on the receivers. * ace/RMCast/RMCast_Resend_Handler.h: * ace/RMCast/RMCast_Resend_Handler.i: * ace/RMCast/RMCast_Resend_Handler.cpp: An adapter to resend messages on a Reactor scheduled timer. * ace/RMCast/RMCast_Retransmission.h: * ace/RMCast/RMCast_Retransmission.cpp: Add a method to resend all the messages. * ace/RMCast/RMCast_Singleton_Factory.h: * ace/RMCast/RMCast_Singleton_Factory.i: * ace/RMCast/RMCast_Singleton_Factory.cpp: A module factory that "creates" the same object over and over. * ace/RMCast/RMCast_UDP_Reliable_Receiver.h: * ace/RMCast/RMCast_UDP_Reliable_Receiver.i: * ace/RMCast/RMCast_UDP_Reliable_Receiver.cpp: Helper class to simplify the creation and configuration of a UDP receiver. * ace/RMCast/RMCast_UDP_Reliable_Sender.h: * ace/RMCast/RMCast_UDP_Reliable_Sender.i: * ace/RMCast/RMCast_UDP_Reliable_Sender.cpp: Helper class to simplify the creation and configuration of a UDP sender. * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: Had to change due to modifications in the I/O UDP layer interface. * examples/RMCast/Makefile: * examples/RMCast/Send_File/Makefile: * examples/RMCast/Send_File/Receiver.cpp: * examples/RMCast/Send_File/Receiver.dsp: * examples/RMCast/Send_File/Send_File.dsw: * examples/RMCast/Send_File/Sender.cpp: * examples/RMCast/Send_File/Sender.dsp: Add a simple example that sends a file over reliable UDP multicast. Mon Oct 9 14:44:25 2000 Darrell Brunsch * bin/generate_export_file.pl: Made some minor changes to make a bit more robust. * bin/regenerate_exports.pl: (added) This script should be able to recurse from the current directory reupdating the export files. Use at your own risk. Mon Oct 09 03:23:22 2000 Nanbor Wang * bin/generate_export_file.pl: Changed the script so we can define a single macro to switch multiple *_HAS_DLL default definitions. Sat Oct 7 04:30:00 2000 Douglas C. Schmidt * Doug and Sonja got married in St. Louis, surrounded by their family, friends, and many ACE+TAO developers! Sat Oct 7 000:50:02 2000 Darrell Brunsch * ace/ACE.cpp: * ace/ACE.h: * ace/ACE.i: * ace/ARGV.cpp: * ace/ATM_Acceptor.cpp: * ace/ATM_Acceptor.i: * ace/ATM_Addr.cpp: * ace/ATM_Connector.cpp: * ace/ATM_Connector.i: * ace/ATM_QoS.cpp: * ace/ATM_Stream.cpp: * ace/Acceptor.cpp: * ace/Activation_Queue.cpp: * ace/Addr.cpp: * ace/Arg_Shifter.cpp: * ace/Asynch_Acceptor.cpp: * ace/Asynch_IO.cpp: * ace/Based_Pointer_T.cpp: * ace/Basic_Types.h: * ace/CORBA_Handler.cpp: * ace/Cache_Map_Manager_T.cpp: * ace/Cached_Connect_Strategy_T.cpp: * ace/Caching_Strategies_T.i: * ace/Capabilities.cpp: * ace/Capabilities.h: * ace/Configuration.cpp: * ace/Connector.cpp: * ace/Containers_T.cpp: * ace/DEV_Addr.cpp: * ace/DEV_Connector.i: * ace/DLL.cpp: * ace/Dirent.i: * ace/Dynamic_Service.cpp: * ace/FIFO.cpp: * ace/FIFO_Recv.cpp: * ace/FIFO_Recv_Msg.cpp: * ace/FIFO_Send.cpp: * ace/FIFO_Send_Msg.cpp: * ace/FILE_Addr.cpp: * ace/FILE_Connector.cpp: * ace/FILE_Connector.i: * ace/File_Lock.cpp: * ace/Filecache.cpp: * ace/Filecache.h: * ace/Future.cpp: * ace/Get_Opt.cpp: * ace/Handle_Set.cpp: * ace/Hash_Map_Manager_T.cpp: * ace/Hash_Map_Manager_T.i: * ace/High_Res_Timer.cpp: * ace/High_Res_Timer.h: * ace/INET_Addr.cpp: * ace/INET_Addr.h: * ace/IO_SAP.cpp: * ace/IPC_SAP.cpp: * ace/LSOCK.cpp: * ace/LSOCK_CODgram.cpp: * ace/LSOCK_Connector.cpp: * ace/LSOCK_Dgram.cpp: * ace/Local_Name_Space_T.cpp: * ace/Local_Tokens.cpp: * ace/Local_Tokens.i: * ace/Log_Msg.cpp: * ace/Log_Msg.h: * ace/Log_Record.cpp: * ace/Logging_Strategy.cpp: * ace/MEM_Acceptor.cpp: * ace/MEM_Addr.cpp: * ace/MEM_Connector.cpp: * ace/MEM_SAP.cpp: * ace/Malloc.cpp: * ace/Malloc_T.cpp: * ace/Malloc_T.h: * ace/Map_Manager.cpp: * ace/Map_Manager.i: * ace/Mem_Map.cpp: * ace/Memory_Pool.cpp: * ace/Message_Block.cpp: * ace/Message_Queue.cpp: * ace/Message_Queue_T.cpp: * ace/Module.cpp: * ace/Name_Proxy.cpp: * ace/Name_Request_Reply.cpp: * ace/Naming_Context.cpp: * ace/OS.cpp: * ace/OS.h: * ace/OS.i: * ace/Object_Manager.cpp: * ace/Obstack.cpp: * ace/POSIX_Asynch_IO.cpp: * ace/Parse_Node.cpp: * ace/Pipe.cpp: * ace/Proactor.cpp: * ace/Process.cpp: * ace/Process_Manager.cpp: * ace/QoS_Manager.cpp: * ace/QoS_Session_Factory.cpp: * ace/QoS_Session_Impl.cpp: * ace/RB_Tree.cpp: * ace/RB_Tree.i: * ace/Read_Buffer.cpp: * ace/Registry.cpp: * ace/Registry_Name_Space.cpp: * ace/Remote_Name_Space.cpp: * ace/Remote_Tokens.cpp: * ace/SOCK.cpp: * ace/SOCK_Acceptor.cpp: * ace/SOCK_CODgram.cpp: * ace/SOCK_Connector.cpp: * ace/SOCK_Dgram.cpp: * ace/SOCK_Dgram_Bcast.cpp: * ace/SOCK_Dgram_Mcast.cpp: * ace/SOCK_Dgram_Mcast.h: * ace/SOCK_Dgram_Mcast_QoS.cpp: * ace/SPIPE_Acceptor.cpp: * ace/SPIPE_Addr.cpp: * ace/SPIPE_Connector.cpp: * ace/SV_Message_Queue.cpp: * ace/SV_Semaphore_Complex.cpp: * ace/SV_Semaphore_Simple.cpp: * ace/SV_Shared_Memory.cpp: * ace/Select_Reactor_Base.cpp: * ace/Select_Reactor_T.cpp: * ace/Service_Config.cpp: * ace/Service_Manager.cpp: * ace/Service_Repository.cpp: * ace/Service_Types.cpp: * ace/Singleton.cpp: * ace/Stats.cpp: * ace/Stats.i: * ace/Strategies_T.cpp: * ace/Strategies_T.i: * ace/Stream.cpp: * ace/Svc_Conf.h: * ace/Svc_Conf.l: * ace/Svc_Conf.y: * ace/Svc_Conf_l.cpp: * ace/Svc_Conf_y.cpp: * ace/Svc_Handler.cpp: * ace/Synch.cpp: * ace/Synch.h: * ace/Synch_T.cpp: * ace/System_Time.cpp: * ace/TLI.cpp: * ace/TLI_Acceptor.cpp: * ace/TLI_Connector.i: * ace/TP_Reactor.i: * ace/Task_T.cpp: * ace/Thread_Manager.cpp: * ace/Time_Request_Reply.cpp: * ace/Timeprobe_T.cpp: * ace/Timer_Hash_T.cpp: * ace/Timer_Heap_T.cpp: * ace/Timer_List_T.cpp: * ace/Timer_Queue_Adapters.cpp: * ace/Timer_Queue_T.cpp: * ace/Timer_Wheel_T.cpp: * ace/Token.cpp: * ace/Token_Collection.cpp: * ace/Token_Invariants.cpp: * ace/Token_Manager.cpp: * ace/Token_Request_Reply.cpp: * ace/Token_Request_Reply.i: * ace/Trace.cpp: * ace/Trace.h: * ace/UPIPE_Acceptor.cpp: * ace/UPIPE_Connector.cpp: * ace/UPIPE_Connector.i: * ace/WFMO_Reactor.cpp: * ace/WFMO_Reactor.i: * ace/WIN32_Asynch_IO.cpp: * ace/WIN32_Proactor.cpp: * ace/XTI_ATM_Mcast.i: * ace/ace_wchar.h: * ace/config-WinCE.h: * ace/config-all.h: * ace/config-win32-borland.h: * ace/config-win32-msvc.h: * ace/config-win32-visualage.h: Split several methods into char/wchar_t versions: - ACE_OS::getenv - ACE_OS::cuserid - ACE_Allocator_Adapter constructor - ACE_Manual_Event constructor Split several string macros into char/wchar_t versions: - ACE_DIRECTORY_SEPARATOR_STR - ACE_DIRECTORY_SEPARATOR_CHAR - ACE_PLATFORM - ACE_PLATFORM_EXE_SUFFIX - ACE_DEFAULT_LOCALNAME - ACE_DEFAULT_GLOBALNAME - ACE_DEFAULT_MUTEX Added ACE_DEFAULT_NAMESPACE_DIR back in for ACE_LEGACY_MODE. Fri Oct 06 11:34:26 2000 Steve Huston * ace/Based_Pointer_T.cpp: * ace/Select_Reactor_T.cpp: Added #include "ace/Log_Msg.h" else IBM C++ can't compile the template at instantiation time. Wed Oct 04 12:23:34 2000 Carlos O'Ryan * ace/RMCast/RMCast_Copy_On_Write.h: * ace/RMCast/RMCast_Copy_On_Write.i: * ace/RMCast/RMCast_Copy_On_Write.cpp: More cleanup, this time for the Read_Guard class * ace/RMCast/RMCast_Proxy.h: * ace/RMCast/RMCast_Proxy.cpp: * ace/RMCast/RMCast_UDP_Proxy.cpp: The ACE_RMCast_Proxy class now handles outgoing Ack_Join messages to update the sequence numbers. * ace/RMCast/RMCast_Reordering.cpp: * ace/RMCast/RMCast_Retransmission.cpp: Fixed memory management problems. * tests/RMCast/RMCast_Retransmission_Test.cpp: Add tests to verify that the right number of messages is received by *all* proxies. Also check the Ack_Join messages. Wed Oct 4 12:03:07 2000 Ossama Othman * configure.in (ACE_HAS_STREAM_PIPES): Verify that we can actually set a STREAM option that ACE uses. This is particularly necessary for platforms that have ioctl conflicts. For example, the Linux kernel's CDROM ioctls have the same values as glibc 2.1.94's STREAM ioctls. Attempting to set a STREAM ioctl actually causes one of the CDROM ioctls to be set (unsuccessfully)! * configure.in: * m4/ace.m4: * m4/compiler.m4: Changed all uses of "$target" to "$host." "$target" is only used for compiler tool chains. "$host" is the correct variable since it refers to the host the application will be run on (as opposed to the host the application was built on $build). Wed Oct 4 09:15:42 2000 Darrell Brunsch * ace/RMCast/RMCast.dsp: Added new files. Tue Oct 3 17:07:37 2000 Carlos O'Ryan * ace/RMCast/Makefile: * ace/RMCast/RMCast_Reordering.h: * ace/RMCast/RMCast_Reordering.i: * ace/RMCast/RMCast_Reordering.cpp: Add re-ordering module, this is the receiver-side module that acks messages and delivers them in order to the application. * ace/RMCast/RMCast.h: Fixed data type in the Ack_Join message * ace/RMCast/RMCast_Copy_On_Write.h: * ace/RMCast/RMCast_Copy_On_Write.i: * ace/RMCast/RMCast_Copy_On_Write.cpp: * ace/RMCast/RMCast_Retransmission.cpp: Cleanup the Copy_On_Write implementation * tests/RMCast/Makefile: * tests/RMCast/RMCast_Tests.dsw: * tests/RMCast/RMCast_Reordering_Test.cpp: * tests/RMCast/RMCast_Reordering_Test.dsp: Add test for the reordering module. * tests/RMCast/RMCast_Retransmission_Test.cpp: Remove debug messages for the retransmission stuff. Tue Oct 3 15:03:42 2000 Darrell Brunsch * ace/OS.i: In the non-Win32 section of hostname (wchar version) I forgot to call wchar_rep on the ACE_Ascii_To_Wide temp class I was using. * ace/OS.h: ACE_PLATFORM_EXE_SUFFIX was being defined incorrectly. Tue Oct 3 14:25:09 2000 Darrell Brunsch * ace/OS.cpp: * ace/OS.h: * ace/OS.i: Expanded TCHAR versions of some string macros to have both _A and _W versions. Moved many of these definitions around, since a lot of the same code was being repeated. The macros changed are: ACE_DIRECTORY_SEPARATOR_STR, ACE_DIRECTORY_SEPARATOR_CHAR, ACE_PLATFORM, ACE_PLATFORM_EXE_SUFFIX, ACE_DEFAULT_LOCALNAME, ACE_DEFAULT_GLOBALNAME and ACE_DEFAULT_MUTEX. [Bug 674] Split TCHAR versions of atoi, hostname, access, open, and chdir into char and wchar_t versions. * ace/Process_Mutex.cpp: * ace/Process_Mutex.h: Changed the ACE_Process_Mutex constructor to take a char as a argument instead of TCHAR. Also added a version that takes in wchar_t. * ace/Synch.cpp: * ace/Synch.h: Changed the ACE_Auto_Event constructor to take a char as a argument instead of TCHAR. Just like above, added a version that takes in wchar_t also. * ace/ace_wchar.h: * ace/ace_wchar.inl: (added) Moved the method definitions from inlined in the class definition to the .inl file. Added typedefs for ACE_OS_C/WString to the ACE_Wide_To_Ascii/Asci_To_Wide classes for legacy support. [Bug 675] Added ACE_TEXT_WCHAR_TO_TCHAR macro that acts similar to ACE_TEXT_CHAR_TO_WCHAR (except converts wchar_t's) Added ACE_TEXT_WIDE macro, which is used to make literal strings wide. (We were just directly using L"" in most cases) Tue Oct 3 13:27:13 2000 Joe Hoffert * ace/OS.i: * ace/OS.cpp: Added !ACE_HAS_TSS_EMULATION to the ACE_HAS_PACE checks when TSS emulation is being used. We want to let ACE do the emulation instead of moving it into PACE since this would involve keeping track of the global TSS state. Tue Oct 3 12:25:46 2000 Darrell Brunsch * ace/Thread_Exit.cpp: Removed default argument in the function definition. * ace/Thread_Adapter.cpp: * ace/Thread_Adapter.h: Separated ACE_Thread_Adapter::invoke into invoke and invoke_i because it uses SEH and James added local vars with destructors. They don't work together in the same function. Tue Oct 03 12:53:28 2000 Angelo Corsaro * bin/run_all_list.pm: Disabled Connection Purging test, and enabled Exposed Policies test. Tue Oct 3 10:52:24 2000 Darrell Brunsch * performance-tests/Synch-Benchmarks/Base_Test/mutex_test.cpp: Added explicit includes for Process_Mutex and RW_Process_Mutex. Tue Oct 3 10:40:04 PDT 2000 James Hu * ace/Thread_Adapter.cpp: * ace/Thread_Exit.cpp: * ace/Thread_Exit.h: Changed this check to creating an ACE_Thread_Exit off the heap via a smart pointeresque way of the TSS instance fails to create. Tue Oct 3 05:55:01 2000 Douglas C. Schmidt * ace/Hash_Map_Manager_T.cpp: Added && (__SUNPRO_CC == 0x420) to the #elif defined (__SUNPRO_CC) to make things work properly on the Sun FORTE compiler. Thanks to Russ Noseworthy for reporting this. Mon Oct 2 18:49:06 PDT 2000 James Hu * ace/Thread_Adapter.cpp: If the TSS instance of the ACE_Thread_Exit class fails to create, the application will crash. The new code will detect the failure, wait half a second, and try again. This solution, while cheesy, corrects a problem Entera encountered, and avoids the problems my previous attempt caused with ACE. Mon Oct 2 13:38:44 2000 Ossama Othman * examples/QOS/QoS_Signal_Handler.cpp: * examples/QOS/QoS_Util.cpp: Include "ace/Log_Msg.h" to pull in definitions of the ACE_{DEBUG,ERROR} macros. Mon Oct 2 11:29:47 2000 Carlos O'Ryan * ace/RMCast/RMCast_Retransmission.h: * ace/RMCast/RMCast_Retransmission.cpp: Fixed several minor problems in the Retransmission module. Use Copy_On_Write dispatching for synchronization of the internal message buffer. * ace/RMCast/RMCast_Copy_On_Write.h: * ace/RMCast/RMCast_Copy_On_Write.i: * ace/RMCast/RMCast_Copy_On_Write.cpp: Implement Copy_On_Write semantics for a collection like the retransmission buffer. This is based on the ESF_Copy_On_Write strategy developed for the event channel. We should try to refactor this one in a reusable strategy. * ace/RMCast/RMCast_Worker.h: * ace/RMCast/RMCast_Worker.i: * ace/RMCast/RMCast_Worker.cpp: To implement copy-on-write we need the "alternative" form of iterators. * ace/RMCast/RMCast.h: * ace/RMCast/RMCast_Fragment.h: * ace/RMCast/RMCast_IO_UDP.h: * ace/RMCast/RMCast_IO_UDP.cpp: * ace/RMCast/RMCast_Membership.h: * ace/RMCast/RMCast_Membership.i: * ace/RMCast/RMCast_Membership.cpp: * ace/RMCast/RMCast_Module.h: * ace/RMCast/RMCast_Module_Factory.h: * ace/RMCast/RMCast_Partial_Message.h: * ace/RMCast/RMCast_Proxy.h: * ace/RMCast/RMCast_Proxy.i: * ace/RMCast/RMCast_Proxy.cpp: * ace/RMCast/RMCast_UDP_Event_Handler.h: * ace/RMCast/RMCast_UDP_Proxy.cpp: * tests/RMCast/RMCast_Membership_Test.cpp: Made the comments more doxygen friendly. Renamed the highest_in_sequence field to next_expected, the new name really reflects its semantics, this is the next sequence number that the peer is expecting. All the previous numbers have been either received or are simply assumed lost. * tests/Makefile: If the rmcast makefile flag is set to 1 we build the RMCast subdirectory too. * tests/RMCast/Makefile: * tests/RMCast/RMCast_Tests.dsw: * tests/RMCast/RMCast_Retransmission_Test.dsp: * tests/RMCast/RMCast_Retransmission_Test.cpp: New test for the Retransmission module Sun Oct 01 15:50:42 2000 Darrell Brunsch * bin/auto_run_tests.pl: Added support for a sandbox program that can shutdown a test if it hangs. Fri Sep 29 16:32:22 2000 Darrell Brunsch * bin/msvc_auto_compile.pl: Added the BE and FE projects for TAO_IDL so the static version gets built correctly in auto_compiles. Fri Sep 29 16:17:34 2000 Steve Huston * ace/WFMO_Reactor.cpp (register_handle_i): If a event handle is created for association with a socket handle, the auto_ptr which caused the ACE_Auto_Event destruction at function return usually smashed errno (since it was closing an invalid handle - see comments in code). Added a ACE_Errno_Guard and removed the ACE_Auto_Event's handle while in the guard to prevent errno smashing upon function return. Thu Sep 28 22:06:44 2000 Ossama Othman * ace/SSL/SSL_SOCK_Connector.h: * ace/SSL/SSL_SOCK_Connector.cpp (ACE_SSL_SOCK_Connector, shared_connect_start, shared_connect_finish, connect, complete): Made ACE_Time_Value arguments const to match the changes detailed in: Thu Sep 28 15:02:36 2000 Irfan Pyarali Fri Sep 29 00:23:59 2000 Irfan Pyarali * ace/Log_Msg.h (ACE_RETURN): Fixed minor error. Thu Sep 28 22:13:04 2000 Irfan Pyarali * ace/Log_Msg: Macros are evil! All the ACE debugging macros were evaluating the user arguments twice, once in log_priority_enabled() and the other in log(). The problem was that set() was making a deep copy of the filename. Hence, this change: Wed May 3 11:43:05 2000 Douglas C. Schmidt was made to prevent the deep copy which was unnecessary when the message was not actually logged. However, this resulted in the macro evaluating the user arguments twice. Previously, a statement like this: ACE_DEBUG ((LM_DEBUG, "timeout occured, iterations left %d\n", --iterations)); got reduced by one - now it got reduced by two ;-) The solution was to make a shallow copy of the filename in conditional_set(). Then in log(), if the log priority is correct, make a deep copy and then continue will log(). The macros were changed to call conditional_set() instead of set(). Also, changed ACE_RETURN to specify all the parameters, including , , and . Otherwise, the default parameters of set() will end up losing these parameters set by the user. Thu Sep 28 15:49:00 2000 Douglas C. Schmidt * ace/Stream.h (class ACE_Stream): Updated the documentation to clarify that the ACE_Time_Value's are *absolute* time. Thanks to Pedro for reporting this. Thanks to Pedro Brandao for reporting this. Thu Sep 28 15:02:36 2000 Irfan Pyarali * ace/SOCK_Connector.cpp: ACE_Time_Value args to ACE_SOCK_Connector could be const. Had to patch functions in the following files to make it happen: ACE.cpp ACE.h OS.h OS.i SOCK_Connector.cpp SOCK_Connector.h Thanks to Steve Huston for reporting this. This also fixes bug 673. Thu Sep 28 11:14:29 2000 Martin Stack * ace/config-freebsd.h: * ace/config-freebsd-pthread.h: * ace/config-linux-common.h: * ace/config-irix6.x-common.h: Added/Renamed to ACE_USES_NEW_TERMIOS_STRUCT. * ace/TTY_IO.h: * ace/TTY_IO.cpp: The Win32 section was modified to implement a non-blocking read when read-timeout=0 is set. Also, it was modified to ensure proper operations when a read_timeout is required. Code was added to enable the DTR line on both Win32 and unix platforms when the port is opened. Several new flags where added to give proper access to the serial device. Relabled macro "ACE_USES_OLD_TERMIOS_STRUCT" to "ACE_USES_NEW_TERMIOS_STRUCT" to properly indicate its purpose. Thu Sep 28 09:01:19 2000 Ossama Othman * ace/config-g++-common.h: Reverted my g++ 2.95 updates. They work on all platforms but the cross-compiler used for VxWorks. Wed Sep 27 16:17:36 2000 Ossama Othman * ace/IOStream.h: * ace/IOStream_T.h: Moved inclusion of `ace/INET_Addr.h' and `ace/Handle_Set.h' to `IOStream_T.h'. They weren't needed in `IOStream.h'. * ace/config-g++-common.h (ACE_LACKS_AUTO_PTR, ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES, ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS): G++ 2.95.x properly support the auto_ptr class, templates with static data members, and inlined template functions. Wed Sep 27 14:02:30 2000 Irfan Pyarali * examples/Reactor/WFMO_Reactor/test_abandoned.cpp (handle_timeout): Moved <--this->iterations_> outside the DEBUG statement. Wed Sep 27 08:46:12 2000 Carlos O'Ryan * ace/RMCast/RMCast.dsw: Add new files to the project * tests/RMCast/RMCast_Tests.dsw: * tests/RMCast/RMCast_Membership_Test.dsp: Add project file for the new test * tests/RMCast/RMCast_Membership_Test.cpp: Fixed warning under MSVC Wed Sep 27 08:23:58 2000 Carlos O'Ryan * ace/RMCast/Makefile: Updated dependencies * ace/RMCast/RMCast.h: * ace/RMCast/RMCast_Module.h: * ace/RMCast/RMCast_Proxy.cpp: * ace/RMCast/RMCast_Proxy.h: * ace/RMCast/RMCast_Reassembly.h: * ace/RMCast/RMCast_Reassembly.cpp: * ace/RMCast/RMCast_Retransmission.cpp: Update comments to be doxygen friendly * ace/RMCast/RMCast_Membership.cpp: Fixed problems in Ack management, we were stopping the useful Acks, not the ones that just represented repeated information. * tests/RMCast/Makefile: * tests/RMCast/RMCast_Membership_Test.cpp: Add test for the ACE_RMCast_Membership class. Tue Sep 26 22:39:42 2000 Darrell Brunsch * examples/Reactor/WFMO_Reactor/test_abandoned.cpp: Changed the include of Synch.h to Process_Mutex.h since Process Mutex was moved there. Tue Sep 26 15:06:05 2000 Joe Hoffert * ace/config-all.h: * ace/OS.h: Removed defining ACE_HAS_POSIX_SEM for ACE using PACE from OS.h and put it into the config-all.h file. * ace/OS.{i,cpp}: Added appropriate calls to pace_* functions when ACE is using PACE. Tue Sep 26 14:14:17 2000 Steve Huston * ace/Cache_Map_Manager_T.h: Added some comments to the find() methods to say what they do and what they return. Tue Sep 26 10:09:32 2000 Carlos O'Ryan * bin/auto_compile: Modified to use the auto_run_tests.lst file to select the list of tests to run. Add new -config option to disable one or more tests, this will allow us select new configurations that disable one or more tests without requiring changes to the auto_compile script. * bin/auto_run_tests.lst: Disable some tests in STATIC builds and under linux. * bin/run_all_list.pm: This file is no longer used by auto_compile, add comments to that effect. Tue Sep 26 11:51:27 2000 Steve Huston * ace/Log_Msg.h: Add #include "ace/config-all.h" to be sure that ACE_NDEBUG is defined (or not) properly before using it. Thanks to Edan Ayal for this fix. Mon Sep 25 16:00:30 2000 Douglas C. Schmidt * ace/Synch.h: Clarify that the ACE_Auto_Event and ACE_Manual_Event classes only support USYNC_PROCESS on Win32. Thanks to Andreas Schuelke for motivating this change. Mon Sep 25 23:03:11 2000 Marina Spivak * bin/run_all_list.pm: Added TAO/tests/RTCORBA/Client_Propagated and TAO/tests/RTCORBA/Server_Protocol to the list of auto daily tests. Mon Sep 25 16:58:22 2000 Ossama Othman * ltcf-c.sh: * ltcf-cxx.sh: * ltconfig: * ltmain.sh: Updates from upstream libtool multi-language CVS branch. Mon Sep 25 14:24:49 2000 Jeff Parsons * Static_performance.dsw: Added the modular IDL compiler projects, and set the dependencies. Mon Sep 25 11:45:53 2000 Steve Huston * ace/config-win32-common.h: If NDEBUG is set, then also set ACE_NDEBUG. Thanks to Edan Ayal for noting that ACE_NDEBUG didn't always get set for Release builds. Sat Sep 23 16:55:26 2000 Carlos O'Ryan * ace/RMCast/Makefile: Add new components to the RMCast library. * ace/RMCast/RMCast_Proxy.h: * ace/RMCast/RMCast_Proxy.i: * ace/RMCast/RMCast_Proxy.cpp: All proxies must derive from this class, it offers methods to send back replies directly to the peer. * ace/RMCast/RMCast.h: The Proxy source is propagate among layers. * ace/RMCast/RMCast_IO_UDP.cpp: All proxies are modules. * ace/RMCast/RMCast_Membership.h: * ace/RMCast/RMCast_Membership.i: * ace/RMCast/RMCast_Membership.cpp: New module to keep an explicit collection of all the peers, detecting join and leave messages and computing the messages successfully received by all the peers using the Ack information. * ace/RMCast/RMCast_Retransmission.h: * ace/RMCast/RMCast_Retransmission.i: * ace/RMCast/RMCast_Retransmission.cpp: Buffer messages to allow retransmission. * ace/RMCast/RMCast_UDP_Proxy.h: * ace/RMCast/RMCast_UDP_Proxy.i: * ace/RMCast/RMCast_UDP_Proxy.cpp: Modified to inherit from the new RMCast_Proxy class. Fri Sep 22 15:13:46 2000 Darrell Brunsch * ace/Atomic_Op.i: I was mistaken, inline was being used correctly here, since on NT this is only included from Atomic_Op.h. So I reverted the previous change and added a disable command for fuzz. Fri Sep 22 14:49:19 2000 Darrell Brunsch * ace/OS.h: * ace/README: * ace/Synch.h: * ace/Thread_Control.cpp: * ace/Thread_Control.h: * ace/ace_wchar.h: * ace/config-all.h: Replaced ACE_ONLY_LATEST_AND_GREATEST with ACE_LEGACY_MODE since we wanted to change our usage of it (and this should be a bit clearer). To enable some legacy code, just define ACE_LEGACY_MODE in config.h. Fri Sep 22 14:24:14 2000 Darrell Brunsch * apps/JAWS/remora/app/Remora_Export.h: * apps/JAWS/remora/app/Remora_Import.h * apps/JAWS/remora/app/remora.idl: * apps/JAWS/remora/app/test.cc: * examples/Web_Crawler/Command_Processor.h: * tests/Handle_Set_Test.cpp: The CVS Id strings were not correctly formatted, so CVS never recognized them or updated them. Fixed. Fri Sep 22 12:27:42 2000 Darrell Brunsch * bin/fuzz.pl: The checks for TEXT and TCHAR gave too many false positives. Fixed to be a bit smarter about having these inside other macro names (such as DEFAULTCHARS). Also improved detection of CVS Id strings, since it ends up that there are several places where the strings are close (start with $ and Id) but then are missing a colon so they don't get updated properly. * WindozeCE/ACEApp.cpp: * WindozeCE/WindozeCE.cpp: * WindozeCE/WindozeCE.h: * WindozeCE/WindozeCEDlg.cpp: Disabled the fuzz tchar check, since these are WinCE only files and shouldn't have any problems with using the Win32 specific character macros. * WindozeCE/WindozeCE.plg: (removed) Shouldn't be in the repository * ace/ACE.cpp: There were some TEXT's (albeit in comments) that I changed to ACE_TEXT to make fuzz happy. * ace/Atomic_Op.i: Changed the inline's to ACE_INLINE to be consistent with the rest of the file. * ace/Handle_Gobbler.i: * apps/JAWS/remora/app/Remora_Export.i: * apps/JAWS/remora/app/Remora_Import.i: * examples/ASX/Event_Server/Event_Server/Options.i: * examples/ASX/UPIPE_Event_Server/Options.i: * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.i: Disabled the fuzz check for inline in these files, since they are only included in .h files, so they should be inline instead of ACE_INLINE. * apps/JAWS/clients/WebSTONE/src/bench.c: * apps/JAWS/clients/WebSTONE/src/genrand.c: * apps/JAWS/clients/WebSTONE/src/statistics.c: * apps/JAWS/clients/WebSTONE/src/timefunc.c: * apps/JAWS/clients/WebSTONE/src/webclient.c: * apps/JAWS/clients/WebSTONE/src/webmaster.c: * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h: * apps/JAWS/stress_testing/global.h: Disabled checks for inline and math.h, since there probably isn't any problems with them here. * performance-tests/TCP/tcp_test.cpp: * performance-tests/UDP/udp_test.cpp: Disabled fuzz math.h include checks. Fuzz reports should be pretty clean now, just some Id string stuff to clean up. [Bug 630] Fri Sep 22 12:01:06 2000 Ossama Othman * ace/Basic_Types.h (ACE_ULongLong): This class does't use the ACE_ALLOC_HOOK_DEFINE macro so there was no point in using the corresponding ACE_ALLOC_HOOK_DECLARE macro. Removed ACE_ALLOC_HOOK_DECLARE from the ACE_ULongLong class. * ace/OS.h: * ace/config-all.h: Moved ACE_ALLOC_HOOK* macros to `ace/config-all.h' so that it isn't necessary to include `ace/OS.h' just to pull in the definition of those macros. Fri Sep 22 13:02:41 2000 Steve Huston * ace/config-all.h: Enable ACE_ONLY_LATEST_AND_GREATEST by default. If config.h sets it to 0, then it gets disabled to allow deprecated features to be used. Do not rely on them staying there through the next ACE release however. Fri Sep 22 09:27:42 2000 Darrell Brunsch * ace/Logging_Strategy.cpp: Added ACE_TEXT to a couple of the literal strings. * ace/Registry.cpp: MSVC 5 has a different signature for RegConnectRegistry where the first argument (machine name) is not constant. Added a cast to fix this. [Bug 620] Fri Sep 22 08:30:26 2000 Carlos O'Ryan * ace/Proactor.cpp: Fixed small typo for platforms that define ACE_HAS_SIG_C_FUNC Thu Sep 21 18:04:53 2000 Ossama Othman * examples/IPC_SAP/SSL_SAP/Makefile (LDLIBS): `-lssl -lcrypto' is needed for static builds. Thu Sep 21 16:54:19 2000 Nanbor Wang * ace/OS.cpp: Fixed a typo in . Thanks to Craig Perras . Thu Sep 21 14:40:07 2000 Ossama Othman * ace/SSL/SSL_SOCK_Connector.h: * ace/SSL/SSL_SOCK_Connector.i: * ace/SSL/SSL_SOCK_Connector.cpp: Removed all uses "non_ssl_connect_done_" attribute. It made the SSL_SOCK_Connector class non-reentrant, and prevented the SSL_SOCK_Connector from being used to create additional connections. [Bug 660] (connect, complete): Do not attempt to set the handle in SSL_SOCK_Stream if it is already set. Doing so would cause OpenSSL to create another socket in addition to other internal OpenSSL buffers, which isn't necessary when reconnecting to the same endpoint. (ssl_connect): Do not set the SSL connect state if an SSL connection is already pending. * ace/SSL/ACE_SSL.dsp: Changed output library location to be `../../bin' (equivalent to $ACE_ROOT/bin). This change makes this project file consistent with all other ACE/TAO projects. * examples/IPC_SAP/SSL_SAP/SSL-client.dsp: * examples/IPC_SAP/SSL_SAP/SSL-server.dsp: Updated library path to correspond to the location of the ACE_SSL library. It was still set to the old location. Thu Sep 21 11:54:58 2000 Priyanka Gontla * ace/Service_Config.h : * ace/Service_Config.cpp : * ace/Proactor.cpp: * ace/Proactor.h (ACE_Proactor): Removed dependency of Service_Config on Proactor by registering the Proactor singleton with the Object_Manager when it is instantiated. This way we need not call ACE_Proactor::close_singleton () in Service_Config implementation. Wed Sep 20 17:25:37 2000 Steve Huston * performance-tests/UDP/udp_test.cpp: Use ACE_High_Res_Timer instead of ACE_hrtime_t for calculating elapsed times. ACE_hrtime_t right from ACE_OS::gethrtime is not always in nanoseconds, particularly on Win32. * performance-tests/UDP/udp_test.{dsw dsp}: New MSVC workspace/project. Wed Sep 20 12:57:52 2000 Carlos O'Ryan * ace/ace_dll.dsp: * ace/ace_lib.dsp: Add new files to the MSVC projects * ace/Process_Mutex.h: Under Win32 must include "ace/Synch.h" * ace/WFMO_Reactor.h: Must include "ace/Process_Mutex.h" when ACE_ONLY_LATEST_AND_GREATEST is defined. Wed Sep 20 12:10:41 2000 Ossama Othman * ace/Basic_Types.h: Made inclusion of conditional on definition of ACE_LACKS_SYS_TYPES_H macro. Wed Sep 20 12:00:42 2000 Carlos O'Ryan * ace/Makefile: * ace/Makefile.am: * ace/Makefile.bor: * ace/ace-dll.icc: * ace/ace-lib.icc: * ace/File_Lock.h: * ace/File_Lock.inl: * ace/File_Lock.cpp: * ace/Process_Mutex.h: * ace/Process_Mutex.inl: * ace/Process_Mutex.cpp: * ace/Process_Semaphore.h: * ace/Process_Semaphore.inl: * ace/Process_Semaphore.cpp: * ace/RW_Process_Mutex.h: * ace/RW_Process_Mutex.inl: * ace/RW_Process_Mutex.cpp: * ace/Dynamic.cpp: * ace/Local_Name_Space.cpp: * ace/Local_Name_Space_T.cpp: * ace/MEM_SAP.h: * ace/Naming_Context.cpp: * ace/Synch.h: * ace/Synch.i: * ace/Synch.cpp: * ace/Synch_T.h: * ace/Thread_Exit.cpp: * ace/Thread_Manager.cpp: * examples/Shared_Malloc/Malloc.cpp: * examples/Shared_Malloc/test_multiple_mallocs.cpp: * examples/Shared_Malloc/test_position_independent_malloc.cpp: * examples/Threads/process_mutex.cpp: * examples/Threads/process_semaphore.cpp: * tests/Conn_Test.cpp: * tests/MM_Shared_Memory_Test.cpp: * tests/Malloc_Test.cpp: * tests/Process_Mutex_Test.cpp: * tests/Process_Strategy_Test.cpp: Moved the implementation of ACE_File_Lock, ACE_Process_Mutex, ACE_Process_Semaphore and ACE_RW_Process_Mutex to their own files. This removes some unwanted dependencies in the Synch file. The ACE_ONLY_GREATEST_AND_LATEST macro was used to preserve backwards compatibility. Wed Sep 20 14:51:27 2000 Steve Huston * ace/Basic_Types.h: Added #include after the other system-type includes to be sure u_long is defined. doesn't pick it up, at least on Solaris 8. Wed Sep 20 11:44:46 2000 Carlos O'Ryan * tests/run_test.pl: * tests/run_test.lst: Disable the ACE_Init_Test under UNIX, the test only works on NT. Wed Sep 20 12:55:16 2000 Steve Huston * ace/High_Res_Timer.(h cpp i): Win32's scale factor (from QueryPerformanceFrequency) is very often too small a number to convert to ticks/usec - it ends up losing about 20% of the elapsed time in elapsed calculations. So, on Win32 only, the global_scale_factor is now in ticks/msec, not ticks/usec. Adjusted all of the conversions to ACE_Time_Value, nanoseconds, etc. to account for this. Wed Sep 20 08:24:34 2000 Ossama Othman * ace/Makefile.am (INLINE_FILES): Corrected `CDR_Base.i' to `CDR_Base.inl'. Wed Sep 20 08:12:20 2000 Ossama Othman * tests/CDR_Test.cpp: Included missing `ace/SString.h' header. Tue Sep 19 17:12:29 2000 Ossama Othman * ace/Basic_Types.h: Added missing include of `ace/config-all.h' and `ace/ACE_export.h'. Explicitly include `limits.h', `float.h' and `stdlib.h' to pull in basic type limits (e.g. UINT_MAX) and typedefs (e.g. ptr_arith_t). This allows `ace/Basic_Types.h' to be included as a stand-alone header. Previously, `ace/OS.h' must have been included at least indirectly before `ace/Basic_Types.h'. * ace/CDR_Base.h: * ace/CDR_Base.i: * ace/CDR_Base.cpp: Moved base ACE_CDR class to separate set of files. This reduces inter-header dependencies for sources that only require the CDR types. * ace/CDR_Stream.h: Forward declared ACE_CString, and moved inclusion of `ace/SString.h' to the `.cpp' file to reduce inter-header dependencies. * ace/CDR_Stream.i: * ace/CDR_Stream.cpp: Moved ACE_CString related methods to the `.cpp' file since the ACE_CString method is now forward declared in the `ace/CDR_Stream.h' header. Tue Sep 19 17:40:04 2000 Douglas C. Schmidt * ace/config-win32-common.h, ace/config-sunos5.4-centerline-2.x.h: Removed the nonsensical ACE_HAS_SVR5_GETTIMEOFDAY macro. Thanks to Jeff Grief for reporting this. Mon Sep 18 12:39:39 2000 Ossama Othman * ace/OS.i (cuserid): When using ACE's alternate cuserid() implementation: - ensure that the maximum length argument is non-zero since it doesn't make sense to have a zero length user ID. - Return a static buffer if the buffer argument is zero. This is not reentrant but nothing else can be done in such a case. [Bug 619] Mon Sep 18 11:22:02 2000 Douglas C. Schmidt * ace/SUN_Proactor.cpp (handle_events): Fixed a problem arising on 64 bit Solaris platforms. Thanks to Ganesh Pai for reporting this. Sun Sep 17 19:17:53 2000 Carlos O'Ryan * include/makeinclude/build_example.bor: Add the IORTable library to the Simple examples. Sun Sep 17 17:04:22 2000 Carlos O'Ryan * include/makeinclude/ace_flags.bor: Add support for the IORTable library under Borland C++ Sat Sep 16 16:11:39 2000 Carlos O'Ryan * tests/CDR_Array_Test.cpp: Under some circumstances the buffers allocated for marshaling did not have room for the alignment bytes. The problem was fixed by a small overallocation. Fri Sep 15 16:04:26 2000 Carlos O'Ryan * ace/Makefile.bor: Update the Borland Makefile Thu Sep 14 11:59:48 2000 Ossama Othman * ace/Local_Name_Space_T.cpp (resolve_i, unbind_i): * ace/Local_Tokens.cpp (acquire, tryacquire, renew): * ace/Message_Queue_T.cpp (enqueue_prio, enqueue_head, enqueue_tail, next): * ace/Stream.cpp (open): * ace/Task.cpp (suspend, resume, activate): * ace/Token_Invariants.cpp (mutex_acquired, reader_acquired, writer_acquired): Fixed g++ "control reaches end of non-void function" warnings. * bin/bootstrap (ACE_HTML_MAN_PAGES): Fixed sed expression so that all man pages ending with `.3' are substituted with HTML man pages ending with `.html', not just the last man page in the list. Wed Sep 13 15:21:34 2000 Ossama Othman * ace/Synch_T.cpp (ts_init, ts_object): Moved code in terminating else block outside of that block, and removed unnecessary else clauses. This fixes "control reaches end of non-void function" warnings from GNU C++. * bin/autoconf_compile: Changed mail subject prefix from "[AUTOCONF_COMPILE]" to "[AUTO_COMPILE]" so that those monitoring the build logs won't have to setup an additional mail filter. Wed Sep 13 15:05:08 2000 Chad Elliott * ace/ACE.cpp ace/SOCK_Dgram_Bcast.cpp ace/config-chorus.h include/makeinclude/platform_chorus4.x_g++.GNU Applying changes made by Wei Chiang . Corrects a problem with recognizing ip interfaces due to dynamic size of struct ifreq. Modified config-chorus.h to correctly set the CHORUS macro to the correct version and to undefine ACE_HAS_PTHREAD_PROCESS_ENUM if using Chorus 4.0. Added CHORUS_4 to the CPPFLAGS which corrects a problem with make depend. Thanks Wei for finding all of these problems. Wed Sep 13 15:05:42 2000 Luther J Baker * ace/OS.h: ACE_HAS_PACE type redefinitions. L:3180.., L:2250 * ace/OS.i: ACE over NT implements two different kinds of mutex's. One is a lighter CRITICAL SECTION which has a distinct set of associated functions. In ACE_HAS_PACE code, these functions are calling each other (on POSIX compliant platforms, these are defined to be the same types) but NT needs to distinguish the two. This usually means rearranging the preprocessor code. This is just the beginning. Wed Sep 13 14:33:25 2000 Douglas C. Schmidt * ace/Service_Config.h (ACE_Service_Config): Made parse_args() a public method to work around subtle issues with linking services dynamically using TAO. Thanks to Paul Caffrey for motivating this and Carlos for suggesting the fix. Wed Sep 13 14:01:57 2000 Luther J Baker * ace/OS.i (umask): Missing punctuation. Tue Sep 12 22:00:31 2000 Steve Huston * ace/config-win32-common.h: Added missing 'FD_SETSIZE' to #undef directive. Tue Sep 12 15:15:54 2000 Irfan Pyarali * ace/ACE_export.h (ACE_SINGLETON_DECLARATION): Added the new SINGLETON_DECLARE macros. * ace/Timeprobe.h: Used the new macro ACE_SINGLETON_DECLARE instead of ACE_SINGLETON_DECLARATION. This helps by not requiring the comma which makes the precompiler think that the comma is for an extra argument to the macro. Thanks to Phil Mesnier for reporting this problem. Tue Sep 12 11:34:03 2000 Steve Huston * ace/High_Res_Timer.{h i}: Added a new function, gettimeofday_hr() which returns the current time in a ACE_Time_Value using the high-resolution time source. This is intended to be used as the time retrieval function for the ACE timer queues. Be sure you call ACE_High_Res_Timer::global_scale_factor() (or instantiate a ACE_High_Res_Timer object) before using it to correctly convert the timer count to a ACE_Time_Value. * tests/Timer_Queue_Test.cpp: Added a test for using ACE_Timer_Heap with high-resolution timer as the time source. * tests/Reactor_Timer_Test.cpp: Added an option to run the test using ACE_High_Res_Timer::gettimeofday_hr instead of the ACE_OS::gettimeofday time retrieval. If any option is given to the program it uses high-res, otherwise it uses ACE_OS::gettimeofday. Mon Sep 11 12:57:31 2000 Steve Huston * ace/Synch.{h i cpp} (ACE_Lock, ACE_Adaptive_Lock, ACE_File_Lock, ACE_Semaphore, ACE_Process_Semaphore, ACE_Null_Semaphore, ACE_RW_Mutex, ACE_Mutex, ACE_Process_Mutex, ACE_RW_Process_Mutex, ACE_Null_Mutex, ACE_Thread_Mutex, ACE_Recursive_Thread_Mutex): Added tryacquire_write_upgrade method. * ace/Synch_T.{h i} (ACE_Lock_Adapter, ACE_Reverse_Lock): Added tryacquire_write_upgrade method. * ace/Token.{h i} (ACE_Token): Added tryacquire_write_upgrade method, which is a NOP. Thanks to Joseph Weihs for these suggestions. Mon Sep 11 10:08:38 2000 Balachandran Natarajan * ace/Service_Manager.cpp (handle_input): Missing semicolon in a do-while loop. Mon Sep 11 08:10:21 2000 Douglas C. Schmidt * ace/Service_Manager.cpp: There was a problem with handle_input() on Win32 due to the default non-blocking mode of sockets. In particular, if the client was slow/overloaded, the server recv() would return with -1 and errno == EWOULDBLOCK. Thanks to Sandro Doro for this fix. * tests: Added a new Borland-specific makefile for the ACE tests. Thanks to Johnny Willemsen for contributing this. Sun Sep 10 14:58:36 2000 Carlos O'Ryan * netsvcs/clients/Logger/Makefile.bor: I left out this file when applying Christopher's patch. Sun Sep 10 15:43:23 2000 Douglas C. Schmidt * ace/Acceptor.h: Made the suspend() and resume() methods public. Thanks to Guy Rosen for suggesting this. Fri Sep 8 16:50:52 2000 Carlos O'Ryan * ace/OS.h: * ace/config-all.h: Had to #include in config-all.h to get the definition for FUNCPTR. With this change things are happy (again) on VxWorks. Fri Sep 8 13:56:50 2000 Carlos O'Ryan * ace/Thread_Exit.cpp: It was not compiling under Sun/CC 4.2 and 5.0. The fix was to make the extern "C" cleanup handler simply call the regular cleanup handler. That solves the access problem and it is cleaner code anyways. Fri Sep 8 11:30:56 2000 Christopher Kohlhoff * ace/config-win32-borland.h: Added ACE_LACKS_INLINE_ASSEMBLY since the inline CDR assembly does not currently work under BCB. Thanks to Johnny Willemsen for reporting this. * ace/Makefile.bor: * include/makeinclude/build_dll.bor: * include/makeinclude/build_exe.bor: * include/makeinclude/build_lib.bor: * netsvcs/clients/Logger/Makefile.bor: Added support for both recursion and a build in the one makefile. * include/makeinclude/ace_flags.bor: * include/makeinclude/build_example.bor: Added new libraries for TAO. Thu Sep 07 18:10:00 2000 Darrell Brunsch * ace/config-win32-common.h: ACE_HAS_WINSOCK2 is turned on by default for all of Win32. Windows 98 and Windows ME should have Winsock2, and NT/2000 also does. For Windows 95, this requires that the Winsock 2 library for Windows 95 is added or ACE_HAS_WINSOCK2 defined to 0 in config.h before including config-win32.h (overriding it). Thanks to Giovanni Zito for inquiring about this. Thu Sep 07 17:21:17 2000 Carlos O'Ryan * ace/ace_dll.dsp: * ace/ace_lib.dsp: Add the new files the ACE projects. Thu Sep 7 16:15:24 2000 Carlos O'Ryan * ace/OS.h: * ace/OS.cpp: Break out the dependency between the ACE_Thread_Manager and the OS layer. The OS layer used ACE_Thread_Adapter to create threads, this class depends on ACE_Thread_Manager, but on the path used by the OS layer the class does not use Thread_Manager at all. The solution was to create a base class (ACE_Base_Thread_Adapter) and a specialized version used in the OS layer (ACE_OS_Thread_Adapter). * ace/Makefile: * ace/Makefile.am: * ace/Makefile.bor: Update the Makefile and the dependencies. * ace/Base_Thread_Adapter.h: * ace/Base_Thread_Adapter.inl: * ace/Base_Thread_Adapter.cpp: Abstract base class for ACE_Thread_Adapter. Applications continue to use ACE_Thread_Adapter, but the OS layer uses the base class (or OS_Thread_Adapter). This way we decouple the OS layer from the ACE_Thread_Manager class. * ace/config-all.h: Move the definition of ACE_THR_FUNC and ACE_THR_C_FUNC out here. * ace/OS_Thread_Adapter.h: * ace/OS_Thread_Adapter.inl: * ace/OS_Thread_Adapter.cpp: Implement a version of ACE_Base_Thread_Adapter that does not use the Thread_Manager at all. * ace/Thread_Adapter.h: * ace/Thread_Adapter.inl: * ace/Thread_Adapter.cpp: Removed the common code to Base_Thread_Adapter.* * ace/Thread.h: Include "ace/Thread_Adapter.h" directly because the OS layer does not include it anymore. * ace/Thread_Hook.h: * ace/Thread_Hook.cpp: This class does not need to #include Thread_Manager.h * ace/Log_Msg.h: * ace/Log_Msg.cpp: Add another hook to make the ACE_OS_Thread_Descriptor available to the OS layer when running MFC builds. * ace/Thread_Exit.cpp: The is_constructed_ flag is reset in the cleanup function instead of letting the OS layer do it. Thu Sep 7 12:07:14 2000 Ossama Othman * bin/autoconf_compile (LOGBASE): Create log file with `.txt' extension instead of `.log' to prevent web browsers from needlessly prompting users which viewer should be used. * m4/acinclude.m4: Updated copyright information. * m4/platform.m4: When setting platform-specific flags, use the "$host" autoconf variable instead of "$target." The latter is only supposed to be used when building cross-platform tool chains. * m4/threads.m4 (CPPFLAGS): Place user provided preprocessor flags after the ones set by the configure script to allow the user to override automatically set flags. Thu Sep 07 14:30:49 2000 Nanbor Wang * bin/auto_compile_win32.pl: Added Portable Server to the project lists in (DLL Debug/Release). Thanks to Bruce McIntosh for reporting this Thu Sep 07 11:36:51 2000 Ossama Othman * ace/SSL/SSL_Context.cpp (set_mode): * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): * ace/SSL/SSL_SOCK_Stream.i (recv, send): Do not print OpenSSL error message if ACE_NDEBUG is defined. Thu Sep 7 10:52:47 2000 Jeff Parsons * tests/CDR_Array_Test.cpp: Code intended to allocate and zero and source buffer and destination buffer was actually zeroing the source buffer twice. Thanks to Johnny Willemsen for reporting this bug. Thu Sep 07 11:16:36 2000 Steve Huston * examples/Reactor/WFMO_Reactor/test_network_events.cpp: Add a destructor to Network_Listener which will unregister it from the reactor, and prevent a doomed call to handle_close when the reactor runs down. Thanks to John Buckman for reporting this. Wed Sep 06 19:06:57 2000 Carlos O'Ryan * ACE version 5.1.9 released. Tue Sep 05 13:34:26 2000 Steve Huston * ace/TP_Reactor.cpp (dispatch_i): Try to correct mis-set size_ in the any_ready_ handle sets by sync()ing them if the reactor state has not been changed. This is an attempted workaround to a symptom of having the handle set say size_ > 0 but there are no bits set. The underlying cause is not known. Also, reverse the eval order when checking !found_io && handle_iter done to avoid doing another iter call when not needed. Mon Sep 04 10:25:27 2000 Steve Huston * ace/TP_Reactor.cpp (dispatch_i): If a handle's bit is set via select in any of the masks (wr, ex, rd) and subsequently the handle is selected for dispatching, clear it in all masks to prevent possible spinning on a handle that can't be dispatched because its handler is suspended. Sat Sep 2 15:13:59 2000 Carlos O'Ryan * ace/CDR_Stream.h: Fixed typo in macro name. Sat Sep 2 12:22:59 2000 Carlos O'Ryan * ace/CDR_Stream.h: Define macros to initialize a LongDouble, this is needed to avoid warnings in some ORB code. Sat Sep 2 07:14:06 2000 Douglas C. Schmidt * ace/config-sunos5.5.h: Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE to fix a bug with SunC++ 4.1. Thanks to Sameer Schabungbam for reporting this. Fri Sep 1 16:50:50 2000 Jeff Parsons * ace/Configuration.cpp: The method export_section contained a delete of a void*. Many compilers warn about this. Cast the void* to char*. Fri Sep 1 13:25:24 2000 Jeff Parsons * ace/Configuration.cpp: * ace/Configuration.h: Checked in some fixes to ACE_Configuration sent in by Chris Hafey . Chris writes: Fixed a handle leak in export_config(). Thanks to Matthew Adams for reporting the bug. Fixed a memory leak in export_section() for binary types. Fixed a bug in get_binary_data() for the registry version where binary values > ACE_DEFAULT_BUFSIZE wouldn't be retrieved correctly. For win32 versions, we now export unrecognized types as BINARY values rather than fail entirely. Fixed a bug where the size of a new section name was calculated incorrectly for unicode builds. Thanks to Vijay Aswadhati for reporting this. [Bug 649] Fri Sep 01 03:08:59 2000 Nanbor Wang * ace/Task.h: * ace/Thread_Manager.h: * ace/Thread_Manager.cpp: For some reason, the method that takes a thread_id array did not take the pointer. If a user "activate"'ed a task and asking for the thread_id's, these thread would not be marked as these task, which caused they unaccounted for in subsequent wast_task. Fixed the problem by adding the argument to and make sure the task pointer is passed in method. Thanks to Mervyn Quah for reporting the bug. [Bug 616] Thu Aug 31 15:31:30 2000 Douglas C. Schmidt * include/makeinclude/outputdir.bor: Added a comment to explain how the OBJDIR macro works when the -DPASCAL option is used. Thanks to Marcel Van Der Weert and Christopher Kohlhoff for reporting this. Thu Aug 31 08:32:11 2000 Albert Wijnja * tests/TSS_Test.cpp (ITERATIONS): replaced calculation of ITERATIONS so that it is now dependent on ACE_MAX_THREADS. [Bug 657] Wed Aug 30 10:20:04 2000 Carlos O'Ryan * bin/run_all_list.pm: Enable the Trading Service tests under Minimum CORBA, since now they are compiled in that configuration too. Tue Aug 29 14:27:37 2000 Chad Elliott * include/makeinclude/platform_chorus4.x_g++.GNU Made an additional modification to use the $(MERGEDIR)/Paths include file if MERGEDIR is defined. Tue Aug 29 12:23:41 2000 Steve Huston * ace/TP_Reactor.(h cpp): Added a new dispatch_i_protected method. This just wraps the call to dispatch_i in ACE_SEH_TRY/EXCEPT. If/when the reactor is rearranged to pluck one dispatchable event to call at a time, this can be removed. This fixes the removal of SEH from this entry: Fri Aug 25 16:29:51 2000 Steve Huston Tue Aug 29 01:32:28 2000 Carlos O'Ryan * ace/Logging_Strategy.h: Add missing header file (Log_Msg.h) Mon Aug 28 20:37:21 2000 Luther J Baker * ace/OS.i (rename): * ace/OS.i (pipe): Changed type #if (ACE_HAS_PACE) when all the rest of the files use #if defined (ACE_HAS_PACE). Changed mainly for consistency. Mon Aug 28 18:04:17 2000 Luther J Baker * ace/ace_lib.dsp: * ace/ace_dll.dsp: Added additional #include ../PACE search directories to project settings. Mon Aug 28 17:43:00 2000 Luther J Baker * ace/config-win32.h: Added support for PACE and win32. * ace/OS.h::2283 Altered code to support #define ACE_HAS_PACE && #define WTHREADS. Mon Aug 28 15:05:27 2000 Michael Kircher * ace/OS_Dirent.cpp: Changed a condition in readdir_emulation () to query properly for an invalid file handle. Thanks to Nir Drang for reporting this. Mon Aug 28 12:16:27 2000 Ossama Othman * ace/Makefile.am (libACE_OS_la_SOURCES, HEADER_FILES, INLINE_FILES): Added new Thread_{Adapter, Control, Exit, Hook} source files to these make variables. Mon Aug 28 11:56:42 2000 Ossama Othman * configure.in (ACE_HAS_PENTIUM): Only define this macro if the hardware is x86 *and* GNU C++ is being used since the code enabled by this macro contains assembler code specific to that compiler. Reported by Rich Seibel Mon Aug 28 11:18:27 2000 Ossama Othman * ace/config-irix6.5.x-sgic++.h: Configuration header for IRIX 6.5.x contributed by J. Russell Noseworthy . [Bug 623] Mon Aug 28 10:27:45 2000 Chad Elliott * include/makeinclude/platform_chorus4.x_g++.GNU Modified the platform macros file to use the new variable definitions provide by the "Paths" make include file. Also, removed the use of the old (3.x) chorus macros file. Sat Aug 26 17:39:53 2000 Douglas C. Schmidt * ace/config-all.h: Added new ACE_CONST_WHEN_MUTABLE macro. Thanks to Edan Ayal for contributing this. * ace/Logging_Strategy: Added support for more fine-grained control over logging strategies and priorities. Thanks to Martin Krumpolec for reporting this. * ace: Improved the "const correctness" of many Reactor methods. Thanks to Edan Ayal for contributing this. Sat Aug 26 15:23:54 2000 Carlos O'Ryan * ace/OS.cpp: Commented out another ACE_DEBUG statement, there should be no printing from the ACE_OS layer. Fixed use of obsolete ACE_LOG_MSG accessors for the event handling fields. Sat Aug 26 12:00:18 2000 Douglas C. Schmidt * ace/Service_Repository.cpp: Modify the remove() method so that it is "re-entrant" i.e., one can call it from other svc's fini() called from remove(). Thanks to Martin Krumpolec for contributing this fix. Fri Aug 25 18:09:04 2000 Carlos O'Ryan * ace/config-win32.h: * ace/OS.cpp: * ace/Thread_Adapter.cpp: Factor out the definition of ACE_ENDTHREADEX to the config-win32.h file. Fri Aug 25 17:11:25 2000 Carlos O'Ryan * ace/Thread_Control.h: * ace/Thread_Control.cpp: Fixed problems with the backwards compatible configuration (i.e. ACE_HAS_ONLY_LATEST_AND_GREATEST not defined). Fri Aug 25 16:15:50 2000 Carlos O'Ryan * ace/OS.h: * ace/OS.i: * ace/OS.cpp: * ace/Thread_Adapter.h: * ace/Thread_Adapter.inl: * ace/Thread_Adapter.cpp: * ace/Thread_Control.h: * ace/Thread_Control.inl: * ace/Thread_Control.cpp: * ace/Thread_Exit.h: * ace/Thread_Exit.cpp: * ace/Thread_Hook.h: * ace/Thread_Hook.cpp: * ace/Thread_Manager.h: * ace/Thread_Manager.i: * ace/Thread_Manager.cpp: Move ACE_Thread_Adapter and its friends to a new directory. This was important to discover why OS.o depends on Thread_Manager.o and how we can break that dependency. I'm commiting the change because it will help the compiler when linking static libraries and it is easier to maintain this way. * ace/OS_String.cpp: Cosmetic changes. * ace/Makefile: * ace/Makefile.am: * ace/Makefile.bor: * ace/ace.icc: * ace/ace_dll.dsp: * ace/ace_lib.dsp: Add all the new files to the system. * tests/Task_Test.cpp: We must #include the Thread_Hook.h file directly * */Makefile: Updated all the dependencies for ace. Fri Aug 25 15:15:27 2000 Ossama Othman * Makefile.am (EXTRA_DIST): Added libtool shell script fragments `ltcf-c.sh' and `ltcf-cxx.sh' to the list of additional files to be packaged with the distribution. * ace/Makefile (TEMPLATE_FILES): Added `Hash_Map_With_Allocator_T' to the list of template source files. It was missing. * ace/Makefile.am: Updated to include all newly added source files. Fri Aug 25 16:29:51 2000 Steve Huston * ace/TP_Reactor.cpp: Temporarily remove the ACE_SEH directives to get the build working on Win32. Will fix this correctly and put in a new file soon. Fri Aug 25 15:43:28 2000 Steve Huston * docs/ACE-guidelines.html: Add the "use this->member" rule when referring to member functions or variables. Thanks to Edan Ayal for the reminder to add this rule. Fri Aug 25 12:12:40 2000 Carlos O'Ryan * ace/OS.h: * ace/OS.i: * ace/OS.cpp: * ace/Log_Msg.h: * ace/Log_Msg.cpp: * ace/config-all.h: I removed the direct cyclic dependency between the OS layer and Log_Msg. The OS layer does not use Log_Msg anymore, but it does use parts of ACE_Thread_Manager so there is some work left to do. There was a semantic change involved: the Win32 exception handlers used to be TSS, now they are global. There was not a real use case for that feature. Users that enable ACE_HAS_ONLY_LATEST_AND_GREATEST will not get the TSS version of the functions, I think it is better to make the change visible than hide it behind a seemingly compatible interface that actually breaks at run-time. Fri Aug 25 14:29:27 2000 Steve Huston * ace/Select_Reactor_T.h: Added new method, is_suspended_i (ACE_HANDLE) to see if the handle is suspended or not. It's used in the TP_Reactor to avoid dispatching suspended handlers. * ace/Select_Reactor_T.cpp: New method, is_suspended_i. (any_ready_i): Do not clear this->ready_set_ if that's the set that was scanned for ready bits. TP_Reactor now uses that set directly, and clearing it sort of defeats the purpose. (suspend_i): Fixed function name in ACE_TRACE. * ace/TP_Reactor.h: Added dispatch_i function; Removed dispatch_io_set function and the ACE_EH_Dispatch_Info dispatch_info_ member - they're not used anymore. * ace/TP_Reactor.cpp (handle_events): Does not call handle_events_i in Select_Reactor_T anymore. New function, dispatch_i, handles the work that handle_events_i does for ACE_Select_Reactor - does the wait_for_multiple_events, dispatches timers, signals, and notifications; then, though, it records one dispatchable I/O event for return to handle_events (similarly to what dispatch_io_set used to do when it was called from handle_events_i). All of the token acquiring and releasing now goes on in this function only. Also, the return value (number of dispatched events) is now correct. The effect of all this is that TP_Reactor now saves the ready_set_ bits and the threads running the reactor will dispatch the handlers one by one until they're gone or the reactor state changes in a way that forces select to be re-done. This set of changes fixes Bugzilla # 567. Fri Aug 25 14:23:36 2000 Steve Huston * ace/Handle_Set.i (reset): Commented out the #if !defined for ACE_HAS_BIG_FD_SET; use FD_ZERO to clear the fd bits. This was previously not being done for Linux (which has ACE_HAS_BIG_FD_SET) and it caused grief in the reactor when scanning for bits in sync (). This caused the (new, see above) TP_Reactor to always think there were many bits set in ready_set_ after each dispatched I/O and needlessly scan through them all. Fri Aug 25 09:22:11 2000 Chad Elliott * include/makeinclude/platform_sunos5_sunc++.GNU Modified check for SunCC 5 to work with 5.0 and 5.1 (Forte). Thu Aug 24 09:01:23 2000 JLopez * ace/config-tru64.h: #define ACE_LACKS_SYSTIME_H with DIGITAL_UNIX >= 0x40E, not 0x40F, because that's needed on Tru64 UNIX 4.0E. Thanks to jlopez@uida.es for reporting this. Mon Aug 21 10:07:39 2000 Carlos O'Ryan * ace/RMCast/RMCast_IO_UDP.cpp: Fixed warnings about unused variables. * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: Add newline to debug output, it was completely unreadable otherwise. * ace/RMCast/Makefile: * tests/RMCast/Makefile: Updated file list and dependencies. Mon Aug 21 08:58:19 2000 Carlos O'Ryan * Another iteration on the design. This time we use a single Module to process IO events, the same class can be used on the receiver and sender sides. The type of proxies is fixed, all the variation is moved into the Modules, controlled by a module factory. * ace/RMCast/README: Add a new README file. * ace/RMCast/RMCast_Module.h: * ace/RMCast/RMCast_Module.cpp: Modules can pass and process control messages as well as data messages, add new methods for the control messages. * ace/RMCast/RMCast_IO_UDP.h: * ace/RMCast/RMCast_IO_UDP.i: * ace/RMCast/RMCast_IO_UDP.cpp: New class to manage all the IO events. * ace/RMCast/RMCast_UDP_Event_Handler.h: * ace/RMCast/RMCast_UDP_Event_Handler.i: * ace/RMCast/RMCast_UDP_Event_Handler.cpp: Modified to use the new RMCast_IO_UDP class. * ace/RMCast/RMCast_UDP_Proxy.h: * ace/RMCast/RMCast_UDP_Proxy.i: * ace/RMCast/RMCast_UDP_Proxy.cpp: New module used for both the client and server sides. * ace/RMCast/RMCast_Module_Factory.h: * ace/RMCast/RMCast_Module_Factory.i: * ace/RMCast/RMCast_Module_Factory.cpp: Create and destroy a module stack. Used by both the receiver and sender sides to control the type of event processing they can perform. * ace/RMCast/RMCast.h: Minor changes in the field names and comments. * ace/RMCast/RMCast_Fragment.h: * ace/RMCast/RMCast_Fragment.cpp: * ace/RMCast/RMCast_Reassembly.h: * ace/RMCast/RMCast_Reassembly.cpp: Modified to use the new methods in the Module interface. * tests/RMCast/RMCast_Fragment_Test.cpp: * tests/RMCast/RMCast_Reassembly_Test.cpp: * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: Modified to use the new classes. * tests/RMCast/RMCast_Tests.dsw: * tests/RMCast/RMCast_UDP_Best_Effort_Test.dsp: Add new project file for the UDP best effort test. * ace/RMCast/RMCast.dsp: Update the project file. * ace/RMCast/RMCast_Sender_Proxy.h: * ace/RMCast/RMCast_Sender_Proxy.i: * ace/RMCast/RMCast_Sender_Proxy.cpp: * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.h: * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.i: * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.cpp: * ace/RMCast/RMCast_Sender_Proxy_Factory.h: * ace/RMCast/RMCast_Sender_Proxy_Factory.i: * ace/RMCast/RMCast_Sender_Proxy_Factory.cpp: * ace/RMCast/RMCast_UDP_Receiver.h: * ace/RMCast/RMCast_UDP_Receiver.i: * ace/RMCast/RMCast_UDP_Receiver.cpp: * ace/RMCast/RMCast_UDP_Sender.h: * ace/RMCast/RMCast_UDP_Sender.i: * ace/RMCast/RMCast_UDP_Sender.cpp: Removed. Fri Aug 18 12:36:21 2000 Steve Huston * ace/SUN_Proactor.cpp (find_completed_aio): Wrapped ACE_GUARD_RETURN with ACE_MT to build ok single-threaded. Thu Aug 17 05:48:51 2000 Douglas C. Schmidt * ace/config-win32-common.h: Wrapped the redefinition of FD_SETSIZE to #undef if it's already set to avoid a compiler/pre-processor warning. Thanks to Johnny Willemsen for contributing these. Wed Aug 16 06:03:11 2000 Douglas C. Schmidt * ace/Select_Reactor_Base.h: Make the notify_queue_lock_ in ACE_Select_Reactor_Notify an ACE_SYNCH_MUTEX rather than an ACE_SYNCH_RW_MUTEX to be consistent. Thanks to Ivan Murphy for reporting this. Tue Aug 15 20:54:14 2000 Darrell Brunsch * ace/Logging_Strategy.cpp: * ace/Logging_Strategy.h: * ace/OS.i: * ace/SOCK_Dgram_Mcast_QoS.cpp: * ace/ace_wchar.h: Fixed miscellaneous wide character support problems. Also [Bug 600] Mon Aug 14 21:55:54 2000 Joe Hoffert * ace/OS.{h,i}: Added function typedefs for pace_signal for compiling ACE with PACE for LynxOS. Fri Aug 11 17:49:36 2000 Steve Huston * ace/TP_Reactor.cpp: Add #include "ace/Thread.h" to pick up the definition of ACE_Thread::self (). Fri Aug 11 16:24:13 2000 Shawn Hannan * ace/OS.i: For VXWORKS, changed checks of errno against S_objLib_OBJ_TIMEOUT to S_objLib_OBJ_UNAVAILABLE after calls to semTake with timeout parameter set to NO_WAIT (i.e., 0). semTake will set errno to _UNAVAILABLE, not _TIMEOUT, if the semaphore is empty and the timeout parameter is 0. Thanks to Peter Fischer for reporting this. Fri Aug 11 13:20:40 2000 Nanbor Wang * apps/gperf/src/gperf_lib.dsp: Changed the format for generated debug info from C7 to "Program Database" to conform to rest of the ACE project files. Thanks to Espen Harlinn for reporting this. Fri Aug 11 11:06:30 2000 David L. Levine * include/makeinclude/platform_osf1_4.0.GNU: moved -hidden /usr/lib/cmplrs/cxx/libcxxstd.a -non_hidden to end of link line by moving it from SOFLAGS to the end of LIBS. This allows links to succeed with -D__USE_STD_IOSTREAM. Thanks to Jorn Jensen for finding this solution to the link problem, and to Michael Kramer for verifying that it works. Fri Aug 11 07:40:10 2000 Douglas C. Schmidt * ace/WFMO_Reactor.cpp (open): Removed an unnecessary ACE_UNUSED_ARG(sh). Thanks to Pedro Brandao for reporting this. Thu Aug 10 12:22:31 2000 Steve Huston * ace/Svc_Handler.h (close): Added some comments to help make this function easier to understand. Thu Aug 10 12:15:16 2000 Steve Huston * ace/POSIX_Proactor.(h cpp) (ACE_POSIX_AIOCB_Proactor): Surround definition of mutex_ member in ACE_MT_SAFE; use ACE_MT around ACE_GUARD_RETURN macros to build clean without threads. Thu Aug 10 09:31:51 2000 David L. Levine * ace/config-cxx-common.h: with __USE_STD_IOSTREAM, added #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1. Now, the ACE library builds with __USE_STD_IOSTREAM, thanks to Michael Kramer . Also, removed duplicate #define ACE_HAS_STANDARD_CPP_LIBRARY 1, and move the remaining one to inside the if (__DECCXX_VER >= 60090010) check. I don't know if it is supported on older versions of cxx. Thu Aug 10 04:04:31 2000 John Heitmann * ace/OS.cpp: Added pace version of thr_create and thr_exit. * ace/OS.h: Added pace #define for pthread_cleanup_* Deleted all ansi cast defines since they were also redundantly defined in config-all.h * ace/OS.i: Put all pace functions in the global scope. Minor fixes. * examples/Shared_Malloc/Malloc.cpp Removed template instantiations which are duplicated in ACE.cpp. Wed Aug 9 18:16:26 2000 Carlos O'Ryan * ace/RMCast/RMCast.h: * ace/RMCast/RMCast.i: * ace/RMCast/RMCast.cpp: Document the state transitions for the receivers, the message formats, and the state transitions for the senders. * ace/RMCast/RMCast_Module.h: * ace/RMCast/RMCast_Module.i: * ace/RMCast/RMCast_Module.cpp: Instead of using the ACE ASX framework we are using a lighter weight class hierarchy. The Module interface will contain explicit calls for all the relevant control messages, making it easier to implement and debug. In the future we may move back to the ASX framework, once all the implementation problems have been nailed down. * ace/RMCast/RMCast_Fragment.h: * ace/RMCast/RMCast_Fragment.i: * ace/RMCast/RMCast_Fragment.cpp: Use the RMCast_Module classes instead of ACE_Task. The header information is propagated in the RMCast::Data structure and put on a separate iovec entry by the bottom module in the stack. * ace/RMCast/RMCast_Partial_Message.h: * ace/RMCast/RMCast_Partial_Message.cpp: Fixed missing #include and corrected a number of problems in the implementation of the reassembly algorithm. The randomized test passes cleanly now, even on machines with multiple CPUs. * ace/RMCast/RMCast_Reassembly.h: * ace/RMCast/RMCast_Reassembly.i: * ace/RMCast/RMCast_Reassembly.cpp: Use the RMCast_Module classes instead of ACE_Task. The header information is propagated in the RMCast::Data structure and obtained from the first bytes in the message decoded, but all that magic is performed by the Module at the bottom of the stack. * ace/RMCast/RMCast_Sender_Proxy.h: * ace/RMCast/RMCast_Sender_Proxy.i: * ace/RMCast/RMCast_Sender_Proxy.cpp: This class is used in the receiver side to maintain information about one sender, and to provide an entry point to the per-sender module stack. * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.h: * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.i: * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.cpp: An specialized Sender_Proxy that ignores all the control messages, essentially working in best effort mode. * ace/RMCast/RMCast_Sender_Proxy_Factory.h: * ace/RMCast/RMCast_Sender_Proxy_Factory.i: * ace/RMCast/RMCast_Sender_Proxy_Factory.cpp: Define the interface to create Sender_Proxy instances. The application provides an instance of this class in the receiver side to customize the protocol. * ace/RMCast/RMCast_UDP_Receiver.h: * ace/RMCast/RMCast_UDP_Receiver.i: * ace/RMCast/RMCast_UDP_Receiver.cpp: Implement a UDP based receiver. Applications create an instance of this class, customized through the Sender_Proxy_Factory, to receive messages. The class can be used in (timed) blocking mode or through the reactor (using the UDP_Event_Handler helper class). * ace/RMCast/RMCast_UDP_Sender.h: * ace/RMCast/RMCast_UDP_Sender.i: * ace/RMCast/RMCast_UDP_Sender.cpp: A Module that sends a single fragment using UDP multicast. This version does not send or receive any control messages, so it is best-effort. * ace/RMCast/RMCast_UDP_Event_Handler.h: * ace/RMCast/RMCast_UDP_Event_Handler.i: * ace/RMCast/RMCast_UDP_Event_Handler.cpp: Adapter between the Reactor and the UDP_Sender class. * tests/RMCast/RMCast_Fragment_Test.cpp: * tests/RMCast/RMCast_Reassembly_Test.cpp: Fixed to match the new interfaces * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: New unit test for the best effort UDP based senders and receivers. It creates a sending thread that continuosly send messages to a single multicast address, meanwhile the main thread receives all the messages and verifies that they have the expected contents. It should be expandded to randomize the contents and create multiple sending threads. * tests/RMCast/Makefile: * ace/RMCast/Makefile: Add new files, updated dependencies * ace/RMCast/RMCast_Header_Size.h: * ace/RMCast/RMCast_Header_Size.cpp: Removed Wed Aug 9 13:28:20 2000 Douglas C. Schmidt * ace/Message_Queue_T.cpp (dequeue_head_i): Make sure to reset head_ and tail_ to 0 when the cur_count_ drops to 0. Thanks to Zoran Ivanovic for this fix. Wed Aug 09 18:06:40 2000 Pradeep * ACE version 5.1.8 released. Wed Aug 09 10:10:45 2000 David L. Levine * tests/CDR_Array_Test.cpp: disabled LongLong test if the platform doesn't have native long long support. ACE's long long emulation doesn't have sufficient capability to support what the test needs. Thanks to Peter Kroener for reporting this. [Bug 632] Tue Aug 08 10:35:04 2000 Rich Seibel * ace/config-sunos5.8.h: added. We have compiled successfully with it on Solaris 8.0 using both gcc 2.95.2 and Sun 5.0 compilers. It simply includes the 5.7 config.h file. I have noted that there are some possible efficiencies which autoconfig finds, but this works. Mon Aug 7 21:05:35 2000 Vishal Kachroo * examples/QOS/server.dsp: * examples/QOS/client.dsp: Made changes to add the relative path for aced.lib. Mon Aug 07 07:31:23 2000 Peter Fischer * ace/OS.cpp (cond_timedwait): on VxWorks, handle S_objLib_OBJ_UNAVAILABLE by setting error to ETIME if msec_timeout is 0. This allows Message_Queue_Test to succeed. * tests/run_tests.vxworks: re-enabled Message_Queue_Test. Sun Aug 6 21:40:42 2000 Darrell Brunsch * ace/OS.i: * ace/OS.cpp: * ace/OS_String.cpp: * ace/OS_String.h: * ace/OS_String.inl: * ace/ace_wchar.h: * ace/config-all.h * ace/config-linux-common.h: * ace/config-win32-common.h: Fixed up miscellaneous problems with ACE_HAS_WCHAR on Linux. Highlights are: - Added ACE_HAS_VFWPRINTF and ACE_HAS_VFWPRINTF to NOTSUP a couple of methods, since they don't seem to be available yet. - Added ACE_LACKS_WCSDUP_PROTOTYPE, and added the prototype. - Removed an extra copy of itoa_emulation (..wchar_t..). - Added some static_cast's to remove unsigned/signed comparison warnings. - Added ACE-HAS_SAFE_WCSTOK, since the version supplied with MSVC is the multi-threaded unsafe version (just like strtok). Here it is similar to strtok_r. Sun Aug 6 17:03:29 2000 Ossama Othman * include/makeinclude/wrapper_macros.GNU (CPPFLAGS): Define ACE_HAS_SSL=1 instead of just defining ACE_HAS_SSL without an explicit value. Sat Aug 5 21:49:12 2000 Darrell Brunsch * ace/OS_String.cpp: * ace/OS_String.h: * ace/OS_String.inl: * ace/config-win32-borland.h: Chris Kohlhoff pointed out to me that Borland does have itoa, but the signature is slightly different (itoa, not _itoa). Added it back in for Borland and added some preprocessor commands that will keep the emulation code from being included unless it is needed. Sat Aug 5 11:19:23 2000 Darrell Brunsch * ace/config-win32-common.h: * ace/config-win32-msvc.h: Moved ACE_HAS_ITOA to msvc.h, since it is compiler dependent (and Borland doesn't have it). Sat Aug 05 11:26:08 2000 Ossama Othman * bin/generate_export_file.pl: Changed "#if !defined (...)" include guard to "#ifndef ..." since some preprocessors enable "process once" optimizations if the latter form is used. Sat Aug 5 01:13:01 2000 Darrell Brunsch * ace/OS_String.cpp: * ace/OS_String.h: * ace/OS_String.inl: Added itoa, which takes in a value, string, and radix. It then populates the string with the representation of the value in that radix. * ace/config-win32-common.h: Turned on ACE_HAS_ITOA. Fri Aug 4 15:53:27 2000 Carlos O'Ryan * ace/TP_Reactor.h: * ace/TP_Reactor.cpp: The owner_ field has no effect in the TP reactor, but setting it or checking its value wakes up the leader thread. This can result in performance problems for applications that use both TP and regular reactors, such as TAO. Thanks to Brian Wright for detecting the problem and putting us in the right track to solve it. Thu Aug 3 17:50:39 2000 Carlos O'Ryan * THANKS: * ace/config-irix6.x-sgic++-nothreads.h: * include/makeinclude/platform_irix6.x_sgic++.GNU: Define ACE_HAS_EXCEPTION in the command line, so we can configure exceptions in a single spot. Enabled the -LANG:std option by default. Detect if -LANG:std is used and enable the corresponding ACE macros. Thanks to John Hiltenbrand for detecting this problem and suggesting the fixes. Thu Aug 03 17:40:01 2000 Eric Ding * include/makeinclude/platform_linux.GNU Remove ifeq($(threads),1), xt_reactor=0, fl_reactor=0, and add -I/usr/X11R6/include, -L/usr/X11R6/include to platform_GL flags. Patch supplied by Craig Rodrigues http://www.gis.net/~craigr rodrigc@mediaone.net Wed Aug 2 17:44:58 2000 Balachandran Natarajan * ace/config-win32-borland.h: Suppress all warnings from the preprocessor so that the IDL compiler does not fail on TAO/tao/Policy.pidl. * ace/SSL/Makefile.bor: * include/makeinclude/ace_flags.bor: Add makefile support for the SSL and security libraries in ACE and TAO. The above patches were taken from http://www.tenermerx.com/programming/corba/tao_bcb/patch.html, which is the site maintained by Chistopher Kohlhoff . Tue Aug 01 11:40:46 2000 Bala * ACE version 5.1.7 released. Mon Jul 31 22:51:11 2000 Balachandran * ACE version 5.1.6 released. Sat Jul 29 08:41:48 2000 David L. Levine * tests/Makefile: don't build CDR_Array_Test with ACE_HAS_GNUG_PRE_2_8. Build it on LynxOS >= 3.1.0. Fri Jul 28 15:58:37 2000 Joe Hoffert * bin/pace_components: Deleting from CVS since it is being melded into bin/ace_components. * bin/ace_components: Adding commands for pace. * include/makeinclude/wrapper_macros.GNU: For PACE, modified so that it doesn't include the PACE library if we are inlining. Fri Jul 28 12:46:54 2000 David L. Levine * tests/run_tests.lst: disabled SOCK_Send_Recv_Test, Thread_Pool_Test, Cached_Conn_Test, and Process_Strategy_Test on LynxOS. The work on LynxOS 3.0.0 x86, but not on our LynxOS 3.1.0 PPC (maybe because it runs out of resources?). Fri Jul 28 11:12:39 2000 David L. Levine * tests/Thread_Mutex_Test.cpp (spawn): use 3 threads instead of 4 (ACE_MAX_THREADS) on LynxOS, otherwise the test doesn't seem to terminate. Fri Jul 28 10:47:27 2000 David L. Levine * bin/ace-install: added this handy build+install script. Thanks to Eric Mitchell for initially authoring the script, and to Chad Elliott for converting it from tcsh to Bourne sh. Fri Jul 28 10:39:17 2000 David L. Levine * tests/Reader_Writer_Test.cpp (n_iterations): use default value of 25 instead of 50 on LynxOS as well as on VxWorks, so the test runs in a reasonable period of time (under 1.5 seconds on a 266 MHz PPC). Fri Jul 28 10:34:01 2000 David L. Levine * test/Semaphore_Test.cpp (ACE_ALLOWED_SLACK): set to 1100 if ACE isn't using a high resolution timer, such as on LynxOS/PPC. Fri Jul 28 10:23:03 2000 David L. Levine * Makefile (DIRS, CLONE, CONTROLLED_FILES, RELEASE_LIB_FILES): added PACE, so that it will be in ACE 5.1.6. Fri Jul 28 07:42:50 2000 David L. Levine * tests/Makefile: build CDR_Array_Test, even on LynxOS. It builds and runs successfully on LynxOS 3.1.0. Fri Jul 28 00:23:37 2000 John Heitmann * ace/OS.h Slightly modified semaphore code for pace. * ace/OS.i Updated cond_timedwait in ACE_HAS_PACE to initialize name_ to null. Linux uses native gettimeofday. * docs/ACE-SSL.html Updated with new information about obtaining ACE+SSL. Thu Jul 27 18:03:24 2000 Luther J Baker * include/makeinclude/platform_linux_lxpthread.GNU: Updated to include the current correct platform_linux.GNU. Thu Jul 27 18:17:36 2000 Steve Huston * ace/Future.h: Added some comments to ACE_Future_Rep<>::set and ACE_Future<>::set to say they only have an effect on the first call for that object. Thanks to Andres Kruse , Douglas C. Schmidt , and John Tucker for their insight on the original intentions. Thu Jul 27 08:32:58 2000 John Heitmann * ace/OS.i Qualified two pace functions with the correct pace_ name. Added preliminary pace implementation for ACE_OS::gettimeofday. See PACE/ChangeLog for other changes relevant to ACE_OS compiled with pace. Wed Jul 26 18:08:11 2000 Andrew G. Gilpin * ace/Log_Record.cpp * ace/ACE.cpp * ace/Handle_Set.cpp * ace/Capabilities.{cpp, h} Cosmetic changes required for split-cpp. Wed Jul 26 13:20:00 2000 Kirthika Parameswaran * ace/Cached_Connect_Strategy_T.h (ACE_Bounded_Cached_Connect_Strategy): Added a typedef member which I assumed wrongly would be inherited from the superclass. Tue Jul 25 22:41:53 2000 Steve Huston * ace/Log_Msg.cpp (ACE_Log_Msg::log): Replace use of C++ 'true' value with '1' so old compilers still work. Tue Jul 25 22:35:31 2000 Steve Huston * ace/Future.cpp (ACE_Future_Rep::set): If two threads compete to set the value, make sure only one notifies waiters. Thanks to Joseph Weihs for this fix. Tue Jul 25 20:27:26 2000 Andrew G. Gilpin * ace/Naming_Context.cpp: Cosmetic change required for split-cpp. Tue Jul 25 18:20:37 2000 John Heitmann * include/makeinclude/wrapper_macros.GNU: Changed pace=1 code to check for inline=1, and include libPACE correctly. Tue Jul 25 16:42:02 2000 Andrew G. Gilpin * ace/Logging_Strategy.cpp: Changed #include "Logging_Strategy.h" to #include "ace/Logging_Strategy.h" Tue Jul 25 16:12:31 2000 Andrew G. Gilpin * ace/Log_Msg.h: More cosmetic changes, similar to previous ChangeLog entry. Tue Jul 25 15:58:27 2000 Andrew G. Gilpin * ace/Capabilities.{h, cpp}: * ace/Filecache.cpp: More fixes to allow to be used by $ACE_ROOT/bin/split-cpp. These changes are merely cosmetic. Tue Jul 25 13:30:00 2000 Kirthika Parameswaran * ace/Cached_Connect_Strategy_T.{h, cpp}: Added ACE_Bounded_Cached_Connect_Strategy which provides a bound on the cache which is checked before creating new handlers. Thanks to Edan Ayal for contributing this class and Susan Liebeskind for brainstorming about it. Tue Jul 25 05:46:29 2000 Douglas C. Schmidt * ace/Log_Msg.cpp (log): Optimized the check to make sure that ACE_Log_Msg isn't too long. Now we can keep it in "non-debug" code! Thanks to Tomer for this suggestion. Mon Jul 24 22:49:09 2000 John Heitmann * ace/OS_String.inl The emulation functions still need system libraries, which were not being included when ace was enabled. Mon Jul 24 21:22:03 2000 Andrew G. Gilpin * ace/Remote_Tokens.cpp: * ace/Signal.{cpp,h}: * ace/Priority_Reactor.cpp: * ace/Object_Manager.{cpp,h}: * ace/OS.cpp: * ace/Parse_Node.{cpp,h}: The script $ACE_ROOT/bin/split-cpp makes some assumptions about the source code that it is working with. These changes allow split-cpp to be used with ACE. These fixes are all mostly code formatting changes. The functionality should not be changed in any case. Mon Jul 24 20:21:47 2000 Andrew G. Gilpin * include/makeinclude/wrapper_macros.GNU * include/makeinclude/rules.local.GNU * include/makeinclude/rules.lib.GNU Added support for make split=1 which will use the split-cpp script when compiling. This should be considered an extremely beta, use-at-your-own-risk feature for the time being. Mon Jul 24 20:13:59 2000 Andrew G. Gilpin * bin/split-cpp: Initial check-in. This script is used to split up C++ source files into smaller C++ source files, each containing one static data declaration or one function definition. For more information, see the comments at the top of the file. Mon Jul 24 20:02:03 2000 Douglas C. Schmidt * ace/Process_Manager: Replaced ACE_Thread_Mutex with ACE_Recursive_Thread_Mutex to avoid nasty self-deadlocks! Thanks to Tom Arbuckle's for reporting this. * ace/Log_Msg.cpp (log): Added a sanity check to make sure that long messages don't corrupt the memory. Thanks to Tomer Amiaz for contributing this. Mon Jul 24 14:03:59 2000 Chad Elliott * include/makeinclude/platform_vxworks5.x_g++.GNU Added the PENTIUM and PENTIUMPRO CPU's for x86 VxWorks. Mon Jul 24 10:30:35 2000 Michael Kircher * OS_Dirent.inl: Added the deletion of the DIR.directory_name_ and the DIR struct itself for the Win32 emulation. Sat Jul 22 22:10:35 2000 Marina Spivak * config-win32-common.h * config-win32-visualage.h: By default WIN32 has FD_SETSIZE of 64, which places the limit between 61 and 64 on the number of clients a server using the Select Reactor can support at the same time (i.e., 64 - standard in, out, error). Raised the limit to 1024. Fri Jul 21 21:24:09 2000 Douglas C. Schmidt * ace/Parse_Node.cpp: Updated the ACE_Object_Name and ACE_Function_Node constructors to use the new ACE::ldname() method rather than ACE::strnew(). Thanks to Chris Kohlhoff for this fix. * ace/ACE.cpp: Added a new method called ACE::ldname() so that dynamic loading performed by the service configurator work the same with BCB as with other compilers. With BCB, exported functions from a DLL all have a "_" prepended. Previously you had to explicitly add the "_" into the svc.conf or when you called ACE_Service_Config::process_directive. This change removes that need and makes BCB stuff source/config compatible with other compilers. This change was prompted by Lothar Werzinger and was provided by Christopher Kohlhoff . Fri Jul 21 19:22:20 2000 Carlos O'Ryan * bin/auto_compile: Use a .txt extension instead of .log for the log files, that makes it possible to view them in web browsers without downloading. Fri Jul 21 14:46:37 2000 Vishal Kachroo * ace/QoS_Decorator.h: Added ACE_Export for decorator classes for WinNT. * ace/QoS_Decorator.cpp: Removed an extra semi-colon. Fri Jul 21 09:11:36 2000 Douglas C. Schmidt * ace/Process_Manager: Updated the documentation to reflect the recent change in the notify() implementation. Thu Jul 20 23:21:11 2000 Darrell Brunsch * examples/IPC_SAP/SSL_SAP/SSL-client.dsp: * examples/IPC_SAP/SSL_SAP/SSL-server.dsp: Fixed up the include paths in these projects. Fri Jul 21 00:29:38 2000 Vishal Kachroo * examples/QOS/Receiver_QoS_Event_Handler.h: * examples/QOS/Receiver_QoS_Event_Handler.cpp: Added this event handler to handle QoS and socket data for the receiver. * examples/QOS/Sender_QoS_Event_Handler.h: * examples/QOS/Sender_QoS_Event_Handler.cpp: Added this event handler to handle QoS and socket data for the Sender. * examples/QOS/QoS_Util.h: * examples/QOS/QoS_Util.cpp: This class provides utility funtions like parsing QoS parameters for the QoS enabled applications. * examples/QOS/QoS_Signal_Handler.h: * examples/QOS/QoS_Signal_Handler.cpp: Used to gracefully close QoS sessions and shutdown RSVP signalling. * examples/QOS/FlowSpec_Dbase.h: Provides a name-Flowspec mapping for the standard QoS flowspecs like g711. Typical QoS flowspecs required for different video encoding/decoding schemes can be listed here. * examples/QOS/Fill_ACE_QoS.h: * examples/QOS/Fill_ACE_QoS.cpp: This class helps users to add new flow specs and provides utility functions for filling up the flow specs for simplex/duplex sessions. * examples/QOS/server.cpp: QoS enabled receiver application. * examples/QOS/client.cpp: QoS enabled sender application. * examples/QOS/Makefile: * examples/QOS/README * examples/QOS/QOS.dsw: * examples/QOS/client.dsp: * examples/QOS/server.dsp: Updated these files to reflect changes to the test. The above test demonstrates the use of various aspects of AQoSA (ACE QoS API). Thu Jul 20 23:04:30 2000 John Heitmann * ace/Thread_Manager.cpp * ace/OS_String.inl Added pace functionality. Thu Jul 20 18:28:43 2000 Douglas C. Schmidt * ace/SV_Message_Queue: Made the get_id() method const. Thanks to Mike Winter for suggesting this. * ace/Typed_SV_Message_Queue: Added a get_id() accessor. Thanks to Mike Winter for reporting this. Thu Jul 20 14:19:06 2000 Douglas C. Schmidt * ace/Thread_Manager.h: Updated the comments on the various *kill*() methods to clarify what they do and where they are not portable. Thanks to Steve Huston for motivating this. Thu Jul 20 11:00:00 2000 Kirthika Parameswaran * ace/Caching_Utility_T.cpp: To get rid of egcs warnings on Linux, static casted both fields of ACE_MAX in method . Thanks to David Levine for pointing this out. Also changed ssize_t to size_t in the cast. Thu Jul 20 08:04:13 2000 Douglas C. Schmidt * ace/OS.i: Rearranged some code so that the operator *= and the ACE_Time_Value copy constructor appear in the right order... Thanks to David for reporting this. Wed Jul 19 22:51:42 2000 Steve Huston * ace/OS.i (ACE_OS::cond_timedwait): For pSOS, convert absolute time value to relative, expressed in ticks. Account for pSOS behavior on timeout - returns with mutex unlocked. Thanks to Sarmeesha Reddy for this fix. Wed Jul 19 19:30:00 2000 Kirthika Parameswaran * ace/Caching_Utility_T.cpp: Rectified a typo made in method . Wed Jul 19 17:12:50 2000 John Heitmann * ace/OS.h * ace/OS.i Wrapped most pace calls with ACE_OSCALL to handle EINTR correctly, minor corrections and adjustments to pace functions. Wed Jul 19 16:50:00 2000 Kirthika Parameswaran * ace/Caching_Utility_T.cpp: Changed the formula to calculate the as per the contribution by Edan Ayal . Thanks to Edan for discovering this bug and contributing the solution for it. Wed Jul 19 08:40:10 2000 Douglas C. Schmidt * ace/OS.i: Moved the new operator *= so that it's *after* the inlined sec() and usec() members. Tue Jul 18 23:30:59 2000 John Heitmann * ace/OS.h Modified earlier changes to improve support for LynxOS signals using pace. * ace/ACE.cpp * ace/OS_Memory.h Use pace system calls instead of regular calls when pace is enabled. Tue Jul 18 12:55:55 2000 Joe Hoffert * include/makeinclude/platform_lynxos.GNU: Added PACE_SYSVER assignment to distinguish different versions of LynxOS in the future. Mon Jul 17 23:44:36 2000 Vishal Kachroo * ace/Makefile (OTHER_FILES): Moved SOCK_Dgram_Mcast_QoS to the other files category. It really belongs to a separate category that I'll create later. Mon Jul 17 12:41:25 2000 Andrew G. Gilpin * ace/Log_Msg.cpp (LOCAL_EXTERN_PREFIX): Changed #define LOCALEXTERN_PREFIX to #define LOCAL_EXTERN_PREFIX Mon Jul 17 05:38:15 2000 Douglas C. Schmidt * ace/Process_Manager.cpp (open): Zapped a stray register_handler() call that was mistakenly left around during the recent merge. Thanks to Darrell Brunsch for reporting this. Sun Jul 16 18:53:42 2000 Darrell Brunsch * ace/TTY_IO: Removed the #define for ACE_BUILD_DLL, since it is already defined in the .dsp file. Sun Jul 16 19:36:17 2000 Vishal Kachroo * ace/QoS_Session.h: * ace/QoS_Session_Impl.{cpp,h,i}: * ace/SOCK_Dgram_Mcast_QoS.cpp: Changed these files to accomodate the new QoS decorator classes. * ace/QoS_Decorator.{cpp,h}: Added the QoS decoration for the ACE_Event_Handler that enables it to catch the RAPI events along with the usual socket events. Sun Jul 16 08:49:44 2000 Douglas C. Schmidt * ace/OS: Added multiplication operators to ACE_Time_Value. Thanks to Tomer Amiaz for contributing these. * ace/Process_Manager: To fix deadlocks with the Process_Manager on UNIX applied the following fixes: Use the notify() capability of the reactor from the signal handler. This allows the signal handler to notify the reactor (over a pipe) that the signal should be processed. This is done completely without MT locks. If ACE_HAS_REACTOR_NOTIFICATION_QUEUE is defined, ACE_Select_Reactor_Notify::notify_queue_lock_ is now made a recursive mutex. Thanks to Roger Larsson for contribution these fixes. * ace/TTY_IO: Added additional support for the ACE serial line I/O wrapper facades. Thanks to Martin Stack for contribution this. * ace/Service_Repository.h, * ace/Service_Object.h, * ace/Service_Config.h: Added the following aliases: #define ACE_Component ACE_Service_Object #define ACE_Component_Config ACE_Service_Config #define ACE_Component_Repository ACE_Service_Repository to be consistent with the terminology in the POSA2 book. Fri Jul 14 19:31:39 2000 Eric Ding * ace/config-linux.h * ace/config-linux-lxpthreads.h * include/makeinclude/platform_linux.GNU * include/makeinclude/platform_linux_lxpthreads.GNU Changing the default config/platform setting to thread enable on Linux Fri Jul 14 19:03:49 2000 John Heitmann * include/makeinclude/wrapper_macros.GNU: Added -DPACE_HAS_ALL_POSIX_FUNCS to the pace flag. * ace/OS.h: Changed typedef of ACE_SignalHandler on LynxOS to use pace_sig_pf when pace is enabled. Also changed SIG_IGN accordingly. Fri Jul 14 17:25:29 2000 Steve Huston * tests/UNIXserver.conf: * tests/UNIXclerk.conf: * tests/UNIXtokens.conf: * tests/Win32server.conf: * tests/Win32clerk.conf: * tests/Win32tokens.conf: Look for _make_ACE_Logging_Strategy in ACE, not netsvcs. It was moved there recently. Fri Jul 14 12:00:26 2000 Steve Huston * ace/Log_Msg.h (ACE_Log_Msg): Replaced class comments with some new text submitted by Jerry D. DeMaster that explain the per-thread and per-process logging enablement clearly. Fri Jul 14 00:28:07 2000 John Heitmann * ace/OS.i Updates to srand and qsort to eliminate return (for pace). Thu Jul 13 20:25:51 2000 Douglas C. Schmidt * ACE-INSTALL.html: Updated this file to reflect current reality wrt Borland C++. Thanks to Christopher Kohlhoff for reporting this. Thu Jul 13 16:34:36 2000 John Heitmann * include/makeinclude/wrapper_macros.GNU: Added 'pace' flag to use pace as the underpinnings of ACE_OS. Thu Jul 13 14:50:39 2000 Balachandran Natarajan * ace/OS.h: Undid the change Mon Jun 19 17:33:28 2000 Douglas C. Schmidt This was creating problems in the IRIX builds. Moreover this also busted the 'thread-per-connection' strategy in TAO. The change actually removed a conditional check. I have added that back. Thanks to Nanbor Wang for guiding me through this. Thu Jul 13 14:41:58 2000 John Heitmann * ace/OS.i: Minor updates to PACE functions which used to use double parenthesis. Thu Jul 13 12:58:26 2000 Ossama Othman * ace/SSL/ACE_SSL.dsp: Added `SSL_Export.h' to the list of headers. * ace/SSL/SSL_Context.cpp: Moved preprocessor conditional that checks if ACE_HAS_SSL is defined after the inclusion of SSL_Context.h. This fixes a link error that occurs when ACE_HAS_SSL is defined in the config header instead of on the command line. Thu Jul 13 10:55:44 2000 David L. Levine * ace/Makefile: changed ssl check from ifneq null to ifeq 1, to allow ssl = 0. Thu Jul 13 10:10:54 2000 David L. Levine * ace/Makefile: move ssl check to after include of wrapper_macros.GNU, so that ssl=1 can be set in platform_macros.GNU. Thu Jul 13 09:33:45 2000 Ossama Othman * ace/SSL/SSL_SOCK_Stream.i (send, recv): Fixed typos where size of buffer being sent/received was passed to the OpenSSL SSL_get_error() function, instead of the return status of the SSL_write()/SSL_read() call. This will fix some broken error handling. Reported by Craig Perras Thu Jul 13 07:55:41 2000 David L. Levine * docs/ACE-guidelines.html: added general guideline to not end text lines with spaces, and the .emacs incantation that removes them. Thanks to Craig Rodrigues for suggesting this addition, which we already check for when committing to our CVS repository. Wed Jul 12 09:42:21 2000 Giga Giguashvili * ace/CDR_Stream.h: added forward declaration of ACE_InputCDR before ACE_OutputCDR class definition. Wed Jul 12 07:26:25 2000 David L. Levine * tests/Service_Config_Test.cpp (instance): cast the u_short to u_long before casting to void *, to avoid KCC warning about casting to pointer from integer of different size. Tue Jul 11 17:20:48 2000 David L. Levine * ace/Local_Tokens.cpp (ACE_TPQ_Entry ctor): try a reinterpret cast of ACE_Thread::self () to u_long. We need u_long on Linux. Tue Jul 11 16:09:14 2000 David L. Levine * bin/auto_run_tests.lst: don't run LongUpcalls test with minimum CORBA. Thanks to Irfan for reporting that the test needs AMI to run, and minimum CORBA doesn't have AMI. Tue Jul 11 16:03:58 2000 David L. Levine * ace/Local_Tokens.cpp (ACE_TPQ_Entry ctor): don't cast result of ACE_Thread::self (), because it might be a structure. Thanks to Ossama for reminding me of that. Changed format specifier to be %u instead of %lu, to avoid mismatch, at least on some platforms. Tue Jul 11 14:47:48 2000 Chris Kohlhoff * ace/config-win32-common.h: Use default value of 0 for ACE_USE_RCSID on Win32 since RCS IDs should probably not be required on this platform. * include/makeinclude/build_core_exe.bor: * include/makeinclude/build_core_library.bor: * include/makeinclude/build_dll.bor: * include/makeinclude/build_exe.bor: * include/makeinclude/build_lib.bor: * include/makeinclude/make_flags.bor: * include/makeinclude/outputdir.bor: * include/makeinclude/recurse.bor: * include/makeinclude/install.bor: * ace/Makefile.bor: Added support for 'make install'. * include/makeinclude/build_dll.bor: * include/makeinclude/build_exe.bor: * include/makeinclude/build_lib.bor: * include/makeinclude/clean.bor: Changed clean target so that files generated by the IDL compiler are removed. * ace/ace_wchar.h: * ace/config-win32-borland.h: * ace/OS.h: * ace/OS_String.h: * ace/OS.i: Bring certain types and functions into the global namespace. This is necessary so that the ACE headers will work the same regardless of any standard C++ headers that may be included beforehand. Tue Jul 11 14:21:51 2000 Steve Huston * ace/Log_Msg.cpp (ACE_Log_Msg::log): Added an ACE_Errno_Guard to prevent errors in this function from destroying errno. This function should be benign, just reporting, and leaving errno alone for further checks/logging by apps. Tue Jul 11 14:20:35 2000 Steve Huston * tests/SOCK_Send_Recv_Test.cpp: Added some additional output to replace an assert - helps track problems quicker. Thanks to David Levine for this suggestion. Tue Jul 11 11:06:45 2000 Craig Rodrigues * ace/config-linux-common.h: in glibc 2.2, the function prototypes for msgsnd() and msgrcv() were changed to be POSIX compliant. So, ACE_LACKS_SOME_POSIX_PROTOTYPES breaks compilation. Tue Jul 11 11:03:50 2000 David L. Levine * bin/make_release: chmod of kits to 664, and chgrp to doc, after creation. Tue Jul 11 10:45:46 2000 David L. Levine * bin/generate_man_pages: don't try generate man pages for RMCast_Reassembly.h, either, because it trips up class2man. [Bug 608] Tue Jul 11 10:40:48 2000 David L. Levine * bin/make_release: robustness improvements: 1) set CVSROOT and ACE_ROOT environment variables, and $logname, to reasonable default values if they were null. 2) Always prepend /project/danzon/pkg/gnu/bin to PATH. Before, -d was first used to check to see if it existed. But, it might not have been mounted, and -d won't cause it to automount. Tue Jul 11 08:24:33 2000 Douglas C. Schmidt * ace/POSIX_Asynch_IO.h, * ace/SUN_Proactor.h: Fixed these files so that class2man now generates proper manual pages. [Bug 608] Tue Jul 11 08:07:23 2000 David L. Levine * bin/generate_man_pages: don't try generate man pages for RMCast_Export.h, because it's a generated file and doesn't have any man page formatting info. It trips up class2man. [Bug 608] Tue Jul 11 07:42:57 2000 David L. Levine * ace/Local_Tokens.cpp (ACE_TPQ_Entry ctor): cast result to ACE_Thread::self () to u_long, to avoid mismatch with %lu sprintf parameter. Tue Jul 11 06:21:35 2000 Douglas C. Schmidt * apps/Gateway/Peer/Peer.cpp (transmit): The last two arguments to Event_Header were reversed! Thanks to Kim Lester for reporting this. Mon Jul 10 20:35:08 2000 Marina Spivak * ACE version 5.1.5 released. Mon Jul 10 13:15:10 2000 Ossama Othman * ace/SSL/Makefile (ACE_SHLIBS): Added "-lACE" to the list of libraries that should be linked in to libACE_SSL, since the ACE SSL wrappers depend on ACE. Sun Jul 09 21:38:03 2000 Ossama Othman * ace/SSL/ACE_SSL.dsp: Fixed library path in "Release" configuration. Sun Jul 09 14:20:42 2000 Darrell Brunsch * ace/ace_wchar.h: Added support for wchar_t on VxWorks. It now compiles, but unfortunately VxWorks doesn't come with any C library support beyond conversion to/from multi-byte character strings. This will only take effect when ACE_HAS_WCHAR is defined (it isn't by default). Emulation for the missing str* functions will be added soon. Sun Jul 09 14:00:42 2000 Darrell Brunsch * ace/ace_wchar.h: Added two macros for straight out conversion of strings: ACE_TEXT_CHAR_TO_WCHAR and ACE_TEXT_WCHAR_TO_CHAR. * ace/adapter/README: (Added) * ace/adapter/ace/ACE.h: (Added) * ace/adapter/ace/ARGV.h: (Added) * ace/adapter/ace/Arg_Shifter.h: (Added) * ace/adapter/ace/ATM_Addr.h: (Added) * ace/adapter/ace/DEV_Addr.h: (Added) * ace/adapter/ace/Dirent.h: (Added) * ace/adapter/ace/DLL.h: (Added) * ace/adapter/ace/Dynamic_Service.h: (Added) * ace/adapter/ace/FIFO.h: (Added) * ace/adapter/ace/FIFO_Recv.h: (Added) * ace/adapter/ace/FIFO_Recv_Msg.h: (Added) * ace/adapter/ace/FIFO_Send.h: (Added) * ace/adapter/ace/FIFO_Send_Msg.h: (Added) * ace/adapter/ace/FILE_Addr.h: (Added) * ace/adapter/ace/Functor.h: (Added) * ace/adapter/ace/High_Res_Timer.h: (Added) * ace/adapter/ace/INET_Addr.h: (Added) * ace/adapter/ace/Malloc_T.h: (Added) * ace/adapter/ace/Memory_Pool.h: (Added) * ace/adapter/ace/MEM_Addr.h: (Added) * ace/adapter/ace/OS_Dirent.h: (Added) * ace/adapter/ace/OS_String.h: (Added) * ace/adapter/ace/Service_Config.h: (Added) * ace/adapter/ace/Service_Object.h: (Added) * ace/adapter/ace/SOCK_Dgram_Bcast.h: (Added) * ace/adapter/ace/SOCK_Dgram_Mcast.h: (Added) * ace/adapter/ace/SPIPE_Addr.h: (Added) * ace/adapter/ace/System_Time.h: (Added) * ace/adapter/ace/Task_T.h: (Added) * ace/adapter/ace/Trace.h: (Added) This is a initial shot at the implementation of an adaptation layer for ACE that provides a Wide character interface with a character library and vice versa. Right now the ab