diff options
-rw-r--r-- | ChangeLog-99b | 27 | ||||
-rw-r--r-- | THANKS | 1 | ||||
-rw-r--r-- | ace/ACE.h | 4 | ||||
-rw-r--r-- | ace/ACE.i | 4 | ||||
-rw-r--r-- | ace/OS.cpp | 23 | ||||
-rw-r--r-- | ace/OS.h | 8 | ||||
-rw-r--r-- | ace/ace-dll.icc | 314 | ||||
-rw-r--r-- | ace/config-win32-common.h | 4 |
8 files changed, 289 insertions, 96 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b index 81ca91cd2ab..df6a32c7fcf 100644 --- a/ChangeLog-99b +++ b/ChangeLog-99b @@ -1,12 +1,25 @@ +Fri Sep 3 11:57:24 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * ace/OS.h, + * ace/config-win32-common.h: Added a #ifndef for __IBMCPP__ to + make things work for Visual Age C++. Thanks to Boris Kaminer + <kaminer.boris@cherus.msk.ru> for reporting this. + + * ace/{ACE,OS}: Added ACE_HAS_UNICODE to conditionally compile the + strnew() definition. Thanks to Boris Kaminer + <kaminer.boris@cherus.msk.ru> for reporting this. + + * ace: Added a new optimized ace-dll.icc file so that ACE will + build better with IBM's Visual Age C++. Thanks to Boris Kaminer + <kaminer.boris@cherus.msk.ru> for contributing this. + 1999-09-03 Vishal Kachroo <vishal@cs.wustl.edu> - Added a new overloaded ACE_OS::ioctl () function that takes in - ACE_QoS as one of the parameters, constructs a windows QOS from - it and passes it to WSAIoctl (). This function can be used when - the I/O control code is SIO_SET_QOS. - - * ace/OS.i: - * ace/OS.h: + * ace/OS.i: + * ace/OS.h: Added a new overloaded ACE_OS::ioctl () function that + takes in ACE_QoS as one of the parameters, constructs a windows + QOS from it and passes it to WSAIoctl (). This function can be + used when the I/O control code is SIO_SET_QOS. Fri Sep 3 14:58:51 1999 Darrell Brunsch <brunsch@cs.wustl.edu> @@ -753,6 +753,7 @@ Rusty Conover <rconover@zootweb.com> Alex Mintz <amintz@bear.com> Phillippe Merle <Philippe.Merle@lifl.fr> Mark Winrock <mwinrock@nortelnetworks.com> +Boris Kaminer <kaminer.boris@cherus.msk.ru> I would particularly like to thank Paul Stephenson, who worked with me at Ericsson. Paul devised the recursive Makefile scheme that diff --git a/ace/ACE.h b/ace/ACE.h index cab6a43a2f1..7849ed77760 100644 --- a/ace/ACE.h +++ b/ace/ACE.h @@ -465,11 +465,11 @@ public: // This method is just like <strdup>, except that it uses <operator // new> rather than <malloc>. -# if defined (ACE_WIN32) +# if defined (ACE_WIN32) && defined (ACE_HAS_UNICODE) static wchar_t *strnew (const wchar_t *s); // This method is just like <strdup>, except that it uses <operator // new> rather than <malloc>. -#endif /* ACE_WIN32 */ +#endif /* ACE_WIN32 && ACE_HAS_UNICODE */ static char *strndup (const char *str, size_t n); // Create a fresh new copy of <str>, up to <n> chars long. Uses diff --git a/ace/ACE.i b/ace/ACE.i index 03a43c35cd2..a7f6e541661 100644 --- a/ace/ACE.i +++ b/ace/ACE.i @@ -161,7 +161,7 @@ ACE::strnew (const char *s) return ACE_OS::strcpy (t, s); } -#if defined (ACE_WIN32) +#if defined (ACE_WIN32) && defined (ACE_HAS_UNICODE) ASYS_INLINE wchar_t * ACE::strnew (const wchar_t *s) { @@ -172,4 +172,4 @@ ACE::strnew (const wchar_t *s) else return ACE_OS::strcpy (t, s); } -#endif /* ACE_WIN32 */ +#endif /* ACE_WIN32 && ACE_HAS_UNICODE */ diff --git a/ace/OS.cpp b/ace/OS.cpp index 225a4f696c0..f4e4e250356 100644 --- a/ace/OS.cpp +++ b/ace/OS.cpp @@ -230,7 +230,8 @@ ACE_ALLOC_HOOK_DEFINE(ACE_Time_Value) // // In the beginning (Jan. 1, 1601), there was no time and no computer. // And Bill said: "Let there be time," and there was time.... -const DWORDLONG ACE_Time_Value::FILETIME_to_timval_skew = ACE_INT64_LITERAL (0x19db1ded53e8000); +const DWORDLONG ACE_Time_Value::FILETIME_to_timval_skew = +ACE_INT64_LITERAL (0x19db1ded53e8000); ACE_Time_Value::ACE_Time_Value (const FILETIME &file_time) { @@ -241,8 +242,11 @@ ACE_Time_Value::ACE_Time_Value (const FILETIME &file_time) void ACE_Time_Value::set (const FILETIME &file_time) { // Initializes the ACE_Time_Value object from a Win32 FILETIME - ULARGE_INTEGER _100ns = {file_time.dwLowDateTime, - file_time.dwHighDateTime}; + ULARGE_INTEGER _100ns = + { + file_time.dwLowDateTime, + file_time.dwHighDateTime + }; _100ns.QuadPart -= ACE_Time_Value::FILETIME_to_timval_skew; // Convert 100ns units to seconds; @@ -531,7 +535,8 @@ ACE_OS::uname (struct utsname *name) ACE_TRACE ("ACE_OS::uname"); # if defined (ACE_WIN32) size_t maxnamelen = sizeof name->nodename; - ACE_OS::strcpy (name->sysname, ACE_TEXT ("Win32")); + ACE_OS::strcpy (name->sysname, + ACE_TEXT ("Win32")); OSVERSIONINFO vinfo; vinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); @@ -909,7 +914,8 @@ ACE_TRACE ("ACE_OS::mutex_lock_cleanup"); #if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) FILE * -ACE_OS::fopen (const char *filename, const char *mode) +ACE_OS::fopen (const char *filename, + const char *mode) { ACE_TRACE ("ACE_OS::fopen"); int hmode = _O_TEXT; @@ -939,7 +945,7 @@ ACE_OS::fopen (const char *filename, const char *mode) } #endif /* ACE_WIN32 && !ACE_HAS_WINCE */ -#if defined (ACE_WIN32) +#if defined (ACE_WIN32) && defined (ACE_HAS_UNICODE) FILE * ACE_OS::fopen (const wchar_t *filename, const wchar_t *mode) { @@ -973,7 +979,7 @@ ACE_OS::fopen (const wchar_t *filename, const wchar_t *mode) return NULL; # endif /* !ACE_HAS_WINCE */ } -# endif /* ACE_WIN32 */ +# endif /* ACE_WIN32 && ACE_HAS_UNICODE */ #if !defined (ACE_HAS_WINCE) @@ -2392,8 +2398,7 @@ ACE_Thread_Adapter::inherit_log_msg (void) #if defined (__IBMCPP__) && (__IBMCPP__ >= 400) #define ACE_ENDTHREADEX(STATUS) ::_endthreadex () #define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \ - ::_beginthreadex (STACK, (void *) STACKSIZE, (unsigned int) ENTRYPOINT, (unsigned int *) THR_ID) -#else + (*THR_ID = ::_beginthreadex ((void(_Optlink*)(void*))ENTRY_POINT, STACK, STACKSIZE, ARGS), *THR_ID) #define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS) #define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \ ::_beginthreadex (STACK, STACKSIZE, (unsigned (__stdcall *) (void *)) ENTRY_POINT, ARGS, FLAGS, (unsigned int *) THR_ID) @@ -562,13 +562,13 @@ enum ACE_Recyclable_State // First, we define how to properly export/import objects. # if defined (ACE_WIN32) /* Only Win32 needs special treatment. */ -# if defined(_MSC_VER) || defined(__BORLANDC__) +# if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__IBMCPP__) /* Microsoft, Borland: */ # define ACE_Proper_Export_Flag __declspec (dllexport) # define ACE_Proper_Import_Flag __declspec (dllimport) # define ACE_EXPORT_SINGLETON_DECLARATION(T) template class __declspec (dllexport) T # define ACE_IMPORT_SINGLETON_DECLARATION(T) extern template class T -# else /* defined(_MSC_VER) || defined(__BORLANDC__) */ +# else /* defined (_MSC_VER) || defined (__BORLANDC__) || defined (__IBMCPP__) */ /* Non-Microsoft, non-Borland: */ # define ACE_Proper_Export_Flag _export # define ACE_Proper_Import_Flag _import @@ -3113,6 +3113,10 @@ typedef void (*ACE_SignalHandlerV)(...); # define ACE_SEH_EXCEPT(X) while (0) # define ACE_SEH_FINALLY if (1) # endif +# elif defined (__IBMCPP__) && (__IBMCPP__ >= 400) +# define ACE_SEH_TRY if (1) +# define ACE_SEH_EXCEPT(X) while (0) +# define ACE_SEH_FINALLY if (1) # else # define ACE_SEH_TRY __try # define ACE_SEH_EXCEPT(X) __except(X) diff --git a/ace/ace-dll.icc b/ace/ace-dll.icc index 67f5e97e22f..9e30058e5de 100644 --- a/ace/ace-dll.icc +++ b/ace/ace-dll.icc @@ -1,5 +1,13 @@ + if $__TOS_WIN__ { option PlatformOptions = define ("ACE_HAS_WINSOCK2","1"), + define ("_stricmp", "stricmp"), + define ("_strnicmp", "strnicmp"), + define ("ACE_HAS_WCHAR_TYPEDEFS_CHAR","1"), + define ("_O_TEMPORARY", 0x08), + define ("_O_CREAT", "O_CREAT"), + define ("_O_TRUNC", "O_TRUNC"), + define ("_O_EXCL", "O_EXCL"), define ("WIN32","1"), define ("_WINDOWS","1") TARG = "aced.dll" @@ -12,7 +20,7 @@ if $__TOS_AIX__ { option PlatformOptions, - define ("__ACE_INLINE__","0"), +// define ("__ACE_INLINE__","0"), define("ACE_HAS_DLL","0"), link(exportAll), link(linkwithsharedlib), @@ -23,7 +31,239 @@ option { option macros(global) { - source type(cpp) "OS.h" + source type(hpp) 'wcstr.h' + source type(hpp) + 'Acceptor.h', + 'ACE.h', + 'Activation_Queue.h', + 'Active_Map_Manager.h', + 'Active_Map_Manager_T.h', + 'Addr.h', + 'ARGV.h', + 'Arg_Shifter.h', + 'Array.h', + 'Asynch_Acceptor.h', + 'Asynch_IO.h', + 'Asynch_IO_Impl.h', + 'ATM_Addr.h', + 'Auto_Ptr.h', + 'Basic_Types.h', + 'Cached_Connect_Strategy_T.h', + 'Cache_Map_Manager_T.h', + 'Caching_Strategies_T.h', + 'Caching_Utility_T.h', + 'CDR_Stream.h', + 'Cleanup_Strategies_T.h', + 'Codeset_IBM1047.h', + 'config-visualage.h', + 'config-win32-common.h', + 'config-win32-visualage.h', + 'config-win32.h', + 'config.h', + 'Connector.h', + 'Containers.h', + 'Containers_T.h', + 'CORBA_Handler.h', + 'CORBA_macros.h', + 'CORBA_Ref.h', + 'Date_Time.h', + 'DEV.h', + 'DEV_Addr.h', + 'DEV_Connector.h', + 'DEV_IO.h', + 'Dirent.h', + 'DLL.h', + 'Dump.h', + 'Dump_T.h', + 'Dynamic.h', + 'Dynamic_Service.h', + 'Env_Value_T.h', + 'Event_Handler.h', + 'Event_Handler_T.h', + 'FIFO.h', + 'FIFO_Recv.h', + 'FIFO_Recv_Msg.h', + 'FIFO_Send.h', + 'FIFO_Send_Msg.h', + 'FILE.h', + 'Filecache.h', + 'FILE_Addr.h', + 'FILE_Connector.h', + 'FILE_IO.h', + 'FlReactor.h', + 'Free_List.h', + 'Functor.h', + 'Functor_T.h', + 'Future.h', + 'Future_Set.h', + 'Get_Opt.h', + 'Handle_Gobbler.h', + 'Handle_Set.h', + 'Hash_Cache_Map_Manager_T.h', + 'Hash_Map_Manager.h', + 'Hash_Map_Manager_T.h', + 'Hash_Map_With_Allocator_T.h', + 'High_Res_Timer.h', + 'inc_user_config.h', + 'INET_Addr.h', + 'iosfwd.h', + 'IOStream.h', + 'IOStream_T.h', + 'IO_Cntl_Msg.h', + 'IO_SAP.h', + 'IPC_SAP.h', + 'Local_Name_Space.h', + 'Local_Name_Space_T.h', + 'Local_Tokens.h', + 'LOCK_SOCK_Acceptor.h', + 'Log_Msg.h', + 'Log_Priority.h', + 'Log_Record.h', + 'LSOCK.h', + 'LSOCK_Acceptor.h', + 'LSOCK_CODgram.h', + 'LSOCK_Connector.h', + 'LSOCK_Dgram.h', + 'LSOCK_Stream.h', + 'Malloc.h', + 'Malloc_Base.h', + 'Malloc_T.h', + 'Managed_Object.h', + 'Map.h', + 'Map_Manager.h', + 'Map_T.h', + 'Memory_Pool.h', + 'Mem_Map.h', + 'Message_Block.h', + 'Message_Block_T.h', + 'Message_Queue.h', + 'Message_Queue_T.h', + 'Method_Object.h', + 'Method_Request.h', + 'Module.h', + 'Msg_WFMO_Reactor.h', + 'Multiplexor.h', + 'Name_Proxy.h', + 'Name_Request_Reply.h', + 'Name_Space.h', + 'Naming_Context.h', + 'NT_Service.h', + 'Object_Manager.h', + 'Obstack.h', + "OS.h", + 'Pair.h', + 'Pair_T.h', + 'Parse_Node.h', + 'Pipe.h', + 'POSIX_Asynch_IO.h', + 'POSIX_Proactor.h', + 'Priority_Reactor.h', + 'Proactor.h', + 'Proactor_Impl.h', + 'Process.h', + 'Process_Manager.h', + 'Profile_Timer.h', + 'RB_Tree.h', + 'Reactor.h', + 'Reactor_Impl.h', + 'Read_Buffer.h', + 'Registry.h', + 'Registry_Name_Space.h', + 'Remote_Name_Space.h', + 'Remote_Tokens.h', + 'Sched_Params.h', + 'Select_Reactor.h', + 'Select_Reactor_Base.h', + 'Select_Reactor_T.h', + 'Service_Config.h', + 'Service_Manager.h', + 'Service_Object.h', + 'Service_Repository.h', + 'Service_Types.h', + 'Shared_Memory.h', + 'Shared_Memory_MM.h', + 'Shared_Memory_SV.h', + 'Shared_Object.h', + 'Signal.h', + 'Singleton.h', + 'SOCK.h', + 'SOCK_Acceptor.h', + 'SOCK_CODgram.h', + 'SOCK_Connector.h', + 'SOCK_Dgram.h', + 'SOCK_Dgram_Bcast.h', + 'SOCK_Dgram_Mcast.h', + 'SOCK_IO.h', + 'SOCK_Stream.h', + 'SPIPE.h', + 'SPIPE_Acceptor.h', + 'SPIPE_Addr.h', + 'SPIPE_Connector.h', + 'SPIPE_Stream.h', + 'SString.h', + 'Stats.h', + 'Strategies.h', + 'Strategies_T.h', + 'Stream.h', + 'streams.h', + 'Stream_Modules.h', + 'Svc_Conf.h', + 'Svc_Conf_Tokens.h', + 'Svc_Handler.h', + 'SV_Message.h', + 'SV_Message_Queue.h', + 'SV_Semaphore_Complex.h', + 'SV_Semaphore_Simple.h', + 'SV_Shared_Memory.h', + 'Synch.h', + 'Synch_Options.h', + 'Synch_T.h', + 'System_Time.h', + 'Task.h', + 'Task_T.h', + 'Thread.h', + 'Thread_Manager.h', + 'Timeprobe.h', + 'Timeprobe_T.h', + 'Timer_Hash.h', + 'Timer_Hash_T.h', + 'Timer_Heap.h', + 'Timer_Heap_T.h', + 'Timer_List.h', + 'Timer_List_T.h', + 'Timer_Queue.h', + 'Timer_Queue_Adapters.h', + 'Timer_Queue_T.h', + 'Timer_Wheel.h', + 'Timer_Wheel_T.h', + 'Time_Request_Reply.h', + 'Time_Value.h', + 'TkReactor.h', + 'TLI.h', + 'TLI_Acceptor.h', + 'TLI_Connector.h', + 'TLI_Stream.h', + 'Token.h', + 'Token_Collection.h', + 'Token_Invariants.h', + 'Token_Manager.h', + 'Token_Request_Reply.h', + 'TP_Reactor.h', + 'Trace.h', + 'TTY_IO.h', + 'Typed_SV_Message.h', + 'Typed_SV_Message_Queue.h', + 'UNIX_Addr.h', + 'UPIPE_Acceptor.h', + 'UPIPE_Addr.h', + 'UPIPE_Connector.h', + 'UPIPE_Stream.h', + 'Version.h', + 'WFMO_Reactor.h', + 'WIN32_Asynch_IO.h', + 'WIN32_Proactor.h', + 'ws2tcpip.h', + 'XtReactor.h' } source type(cpp) "Log_Msg.cpp" source type(cpp) "ACE.cpp" @@ -50,7 +290,6 @@ option source type(cpp) "Dynamic.cpp" source type(cpp) "Dynamic_Service.cpp" source type(cpp) "Event_Handler.cpp" - source type(cpp) "Event_Handler_T.cpp" source type(cpp) "FIFO.cpp" source type(cpp) "FIFO_Recv.cpp" source type(cpp) "FIFO_Recv_Msg.cpp" @@ -150,7 +389,6 @@ option source type(cpp) "SV_Shared_Memory.cpp" source type(cpp) "Svc_Conf_l.cpp" source type(cpp) "Svc_Conf_y.cpp" - source type(cpp) "Svc_Handler.cpp" source type(cpp) "Synch.cpp" source type(cpp) "Synch_Options.cpp" source type(cpp) "System_Time.cpp" @@ -187,74 +425,6 @@ option source type(cpp) "WIN32_Asynch_IO.cpp" source type(cpp) "WIN32_Proactor.cpp" source type(cpp) "XtReactor.cpp" - source type(cpp) "Active_Map_Manager_T.cpp" - source type(cpp) "Containers_T.cpp" - source type(cpp) "Dump_T.cpp" - source type(cpp) "Env_Value_T.cpp" - source type(cpp) "Event_Handler_T.cpp" - source type(cpp) "Functor_T.cpp" - source type(cpp) "Hash_Map_Manager_T.cpp" - source type(cpp) "IOStream_T.cpp" - source type(cpp) "Local_Name_Space_T.cpp" - source type(cpp) "Malloc_T.cpp" - source type(cpp) "Map_T.cpp" - source type(cpp) "Message_Block_T.cpp" - source type(cpp) "Message_Queue_T.cpp" - source type(cpp) "Pair_T.cpp" - source type(cpp) "Select_Reactor_T.cpp" - source type(cpp) "Strategies_T.cpp" - source type(cpp) "Synch_T.cpp" - source type(cpp) "Task_T.cpp" - source type(cpp) "Timeprobe_T.cpp" - source type(cpp) "Timer_Hash_T.cpp" - source type(cpp) "Timer_Heap_T.cpp" - source type(cpp) "Timer_List_T.cpp" - source type(cpp) "Timer_Queue_T.cpp" - source type(cpp) "Timer_Wheel_T.cpp" - // Template implementation files (#pragma implementation) - source type (cpp) "Acceptor.cpp" - source type (cpp) "Active_Map_Manager_T.cpp" - source type (cpp) "Containers.cpp" - source type (cpp) "Asynch_Acceptor.cpp" - source type (cpp) "Auto_Ptr.cpp" - source type (cpp) "CORBA_Ref.cpp" - source type (cpp) "Connector.cpp" - source type (cpp) "Containers_T.cpp" - source type (cpp) "Dump_T.cpp" - source type (cpp) "Env_Value_T.cpp" - source type (cpp) "Event_Handler_T.cpp" - source type (cpp) "Free_List.cpp" - source type (cpp) "Functor_T.cpp" - source type (cpp) "Future.cpp" - source type (cpp) "Hash_Map_Manager_T.cpp" - source type (cpp) "IOStream_T.cpp" - source type (cpp) "LOCK_SOCK_Acceptor.cpp" - source type (cpp) "Local_Name_Space_T.cpp" - source type (cpp) "Malloc_T.cpp" - source type (cpp) "Managed_Object.cpp" - source type (cpp) "Map_Manager.cpp" - source type (cpp) "Map_T.cpp" - source type (cpp) "Message_Block_T.cpp" - source type (cpp) "Message_Queue_T.cpp" - source type (cpp) "Module.cpp" - source type (cpp) "Pair_T.cpp" - source type (cpp) "RB_Tree.cpp" - source type (cpp) "Select_Reactor_T.cpp" - source type (cpp) "Singleton.cpp" - source type (cpp) "Strategies_T.cpp" - source type (cpp) "Stream.cpp" - source type (cpp) "Stream_Modules.cpp" - source type (cpp) "Svc_Handler.cpp" - source type (cpp) "Synch_T.cpp" - source type (cpp) "Task_T.cpp" - source type (cpp) "Timeprobe_T.cpp" - source type (cpp) "Timer_Hash_T.cpp" - source type (cpp) "Timer_Heap_T.cpp" - source type (cpp) "Timer_List_T.cpp" - source type (cpp) "Timer_Queue_T.cpp" - source type (cpp) "Timer_Wheel_T.cpp" - source type (cpp) "Typed_SV_Message.cpp" - source type (cpp) "Typed_SV_Message_Queue.cpp" // Libraries needed during linking if $__TOS_WIN__ { diff --git a/ace/config-win32-common.h b/ace/config-win32-common.h index bae9a62df5c..0e62617d71f 100644 --- a/ace/config-win32-common.h +++ b/ace/config-win32-common.h @@ -264,7 +264,7 @@ typedef unsigned __int64 ACE_UINT64; #endif /* _MT */ #endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */ -#if !defined (ACE_HAS_WINCE) && !defined (__BORLANDC__) +#if !defined (ACE_HAS_WINCE) && !defined (__BORLANDC__) !defined (__IBMCPP__) #if defined(ACE_HAS_DLL) && (ACE_HAS_DLL != 0) #if !defined(_DLL) // *** DO NOT *** DO NOT *** defeat this error message @@ -272,7 +272,7 @@ typedef unsigned __int64 ACE_UINT64; #error You must link against (Debug) Multithreaded DLL run-time libraries. #endif /* !_DLL */ #endif /* ACE_HAS_DLL && ACE_HAS_DLL != 0 */ -#endif /* !ACE_HAS_WINCE && !__BORLANDC__ */ +#endif /* !ACE_HAS_WINCE && !__BORLANDC__ && !__IBMCPP__ */ // We are using STL's min and max (in algobase.h). Therefore the // macros in window.h are extra |