mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 13:37:05 +00:00
329 lines
9.8 KiB
C++
329 lines
9.8 KiB
C++
// -*- C++ -*-
|
|
|
|
//=============================================================================
|
|
/**
|
|
* @file OS.h
|
|
*
|
|
* $Id: OS.h 80826 2008-03-04 14:51:23Z wotte $
|
|
*
|
|
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
|
|
* @author Jesper S. M|ller<stophph@diku.dk>
|
|
* @author and a cast of thousands...
|
|
*/
|
|
//=============================================================================
|
|
|
|
#ifndef ACE_OS_H
|
|
#define ACE_OS_H
|
|
|
|
#include /**/ "ace/pre.h"
|
|
|
|
#include /**/ "ace/config-all.h"
|
|
|
|
#if !defined (ACE_LACKS_PRAGMA_ONCE)
|
|
# pragma once
|
|
#endif /* ACE_LACKS_PRAGMA_ONCE */
|
|
|
|
#if !defined (DO_NOT_INCLUDE_OS_H)
|
|
#include "ace/Cleanup.h"
|
|
#include "ace/Object_Manager_Base.h"
|
|
#include "ace/OS_main.h"
|
|
#include "ace/OS_NS_arpa_inet.h"
|
|
#include "ace/OS_NS_ctype.h"
|
|
#include "ace/OS_NS_dirent.h"
|
|
#include "ace/OS_NS_dlfcn.h"
|
|
#include "ace/OS_NS_errno.h"
|
|
#include "ace/OS_NS_fcntl.h"
|
|
#include "ace/OS_NS_math.h"
|
|
#include "ace/OS_NS_netdb.h"
|
|
#include "ace/OS_NS_poll.h"
|
|
#include "ace/OS_NS_pwd.h"
|
|
#include "ace/OS_NS_regex.h"
|
|
#include "ace/OS_NS_signal.h"
|
|
#include "ace/OS_NS_stdio.h"
|
|
#include "ace/OS_NS_stdlib.h"
|
|
#include "ace/OS_NS_string.h"
|
|
#include "ace/OS_NS_strings.h"
|
|
#include "ace/OS_NS_stropts.h"
|
|
#include "ace/OS_NS_sys_mman.h"
|
|
#include "ace/OS_NS_sys_msg.h"
|
|
#include "ace/OS_NS_sys_resource.h"
|
|
#include "ace/OS_NS_sys_select.h"
|
|
#include "ace/OS_NS_sys_shm.h"
|
|
#include "ace/OS_NS_sys_socket.h"
|
|
#include "ace/OS_NS_sys_stat.h"
|
|
#include "ace/OS_NS_sys_time.h"
|
|
#include "ace/OS_NS_sys_uio.h"
|
|
#include "ace/OS_NS_sys_utsname.h"
|
|
#include "ace/OS_NS_sys_wait.h"
|
|
#include "ace/OS_NS_Thread.h"
|
|
#include "ace/OS_NS_time.h"
|
|
#include "ace/OS_NS_unistd.h"
|
|
#include "ace/OS_NS_wchar.h"
|
|
|
|
// Include the split up ACE_OS classes
|
|
#include "ace/OS_Dirent.h"
|
|
#include "ace/OS_String.h"
|
|
#include "ace/OS_Memory.h"
|
|
#include "ace/OS_TLI.h"
|
|
#include "ace/OS_Errno.h"
|
|
|
|
#include "ace/os_include/os_dlfcn.h"
|
|
#include "ace/os_include/sys/os_mman.h"
|
|
#include "ace/os_include/os_netdb.h"
|
|
#include "ace/os_include/sys/os_socket.h"
|
|
#include "ace/os_include/net/os_if.h"
|
|
#include "ace/os_include/sys/os_sem.h"
|
|
|
|
#include "ace/Time_Value.h"
|
|
|
|
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
|
|
|
|
class ACE_Timeout_Manager;
|
|
|
|
ACE_END_VERSIONED_NAMESPACE_DECL
|
|
|
|
// Here are all ACE-specific default constants, needed throughout ACE
|
|
// and its applications. The values can be over written by user
|
|
// specific values in config.h files.
|
|
#include "ace/Default_Constants.h"
|
|
|
|
// Here are all ACE-specific global declarations needed throughout
|
|
// ACE.
|
|
#include "ace/Global_Macros.h"
|
|
|
|
// include the ACE min()/max() functions.
|
|
# include "ace/Min_Max.h"
|
|
|
|
///////////////////////////////////////////
|
|
// //
|
|
// NOTE: Please do not add any #includes //
|
|
// before this point. On VxWorks, //
|
|
// vxWorks.h must be #included //
|
|
// first! //
|
|
// //
|
|
///////////////////////////////////////////
|
|
|
|
#include "ace/os_include/netinet/os_tcp.h"
|
|
#include "ace/os_include/sys/os_stat.h"
|
|
#include "ace/os_include/os_stropts.h"
|
|
#include "ace/os_include/os_unistd.h"
|
|
#include "ace/os_include/sys/os_wait.h"
|
|
|
|
|
|
// This needs to go here *first* to avoid problems with AIX.
|
|
# if defined (ACE_HAS_PTHREADS)
|
|
# include "ace/os_include/os_pthread.h"
|
|
# endif /* ACE_HAS_PTHREADS */
|
|
|
|
# if defined (ACE_HAS_PROC_FS)
|
|
# include /**/ <sys/procfs.h>
|
|
# endif /* ACE_HAS_PROC_FS */
|
|
|
|
# if defined (ACE_HAS_POSIX_SEM)
|
|
# include "ace/os_include/os_semaphore.h"
|
|
# endif /* ACE_HAS_POSIX_SEM */
|
|
|
|
#include "ace/os_include/sys/os_types.h"
|
|
#include "ace/os_include/os_stddef.h"
|
|
#if !defined (ACE_LACKS_UNISTD_H)
|
|
# include "ace/os_include/os_unistd.h"
|
|
#endif /* ACE_LACKS_UNISTD_H */
|
|
|
|
// Standard C Library includes
|
|
# if !defined (ACE_HAS_WINCE)
|
|
# include "ace/os_include/os_assert.h"
|
|
# include "ace/os_include/os_stdio.h"
|
|
|
|
# if !defined (ACE_LACKS_NEW_H)
|
|
# if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
|
|
# include /**/ <new>
|
|
# else
|
|
# include /**/ <new.h>
|
|
# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
|
|
# endif /* ! ACE_LACKS_NEW_H */
|
|
|
|
# if !defined (ACE_VXWORKS)
|
|
# define ACE_DONT_INCLUDE_ACE_SIGNAL_H
|
|
# include "ace/os_include/os_signal.h"
|
|
# undef ACE_DONT_INCLUDE_ACE_SIGNAL_H
|
|
# endif /* ! VXWORKS */
|
|
|
|
# include "ace/os_include/os_fcntl.h"
|
|
# endif /* ACE_HAS_WINCE */
|
|
|
|
# include "ace/os_include/os_limits.h"
|
|
# include "ace/os_include/os_ctype.h"
|
|
# include "ace/os_include/os_string.h"
|
|
# include "ace/os_include/os_stdlib.h"
|
|
# include "ace/os_include/os_float.h"
|
|
|
|
# if defined (ACE_NEEDS_SCHED_H)
|
|
# include "ace/os_include/os_sched.h"
|
|
# endif /* ACE_NEEDS_SCHED_H */
|
|
|
|
# include "ace/iosfwd.h"
|
|
|
|
# if !defined (ACE_HAS_WINCE)
|
|
# include "ace/os_include/os_fcntl.h"
|
|
# endif /* ACE_HAS_WINCE */
|
|
|
|
# if defined ACE_HAS_BYTESEX_H
|
|
# include /**/ <bytesex.h>
|
|
# endif /* ACE_HAS_BYTESEX_H */
|
|
# include "ace/Basic_Types.h"
|
|
|
|
# if defined (ACE_HAS_UTIME)
|
|
# include "ace/os_include/os_utime.h"
|
|
# endif /* ACE_HAS_UTIME */
|
|
|
|
# if defined (ACE_WIN32)
|
|
|
|
# if !defined (ACE_HAS_WINCE)
|
|
# include "ace/os_include/sys/os_timeb.h"
|
|
# endif /* ACE_HAS_WINCE */
|
|
|
|
# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
|
|
# include "ace/os_include/netinet/os_in.h" // <ws2tcpip.h>
|
|
# endif /* ACE_HAS_WINSOCK2 */
|
|
|
|
# if !defined (ACE_HAS_WINCE)
|
|
# include "ace/os_include/os_time.h"
|
|
# include "ace/os_include/sys/os_stat.h" // <direct.h>
|
|
# include "ace/os_include/os_unistd.h" // <process.h>
|
|
# endif /* ACE_HAS_WINCE */
|
|
|
|
# include "ace/os_include/os_fcntl.h"
|
|
|
|
# else /* !defined (ACE_WIN32) */
|
|
|
|
# if defined (CYGWIN32)
|
|
# include "ace/os_include/sys/os_uio.h"
|
|
# include "ace/os_include/os_fcntl.h" // <sys/file.h>
|
|
# include "ace/os_include/sys/os_time.h"
|
|
# include "ace/os_include/sys/os_resource.h"
|
|
# include "ace/os_include/sys/os_wait.h"
|
|
# include "ace/os_include/os_pwd.h"
|
|
# elif defined (__QNX__)
|
|
# include "ace/os_include/sys/os_uio.h"
|
|
# include "ace/os_include/sys/os_ipc.h"
|
|
# include "ace/os_include/sys/os_time.h"
|
|
# include "ace/os_include/sys/os_wait.h"
|
|
# include "ace/os_include/sys/os_resource.h"
|
|
# include "ace/os_include/os_pwd.h"
|
|
// sets O_NDELAY
|
|
# include /**/ <unix.h>
|
|
# include "ace/os_include/os_limits.h" // <sys/param.h> /* for NBBY */
|
|
# elif defined(ACE_HAS_RTEMS)
|
|
# include "ace/os_include/os_fcntl.h" // <sys/file.h>
|
|
# include "ace/os_include/sys/os_resource.h"
|
|
# include "ace/os_include/sys/os_time.h"
|
|
# include "ace/os_include/sys/os_utsname.h"
|
|
# include "ace/os_include/sys/os_wait.h"
|
|
# include "ace/os_include/os_pwd.h"
|
|
|
|
# elif ! defined (ACE_VXWORKS) && ! defined (INTEGRITY)
|
|
# include "ace/os_include/sys/os_uio.h"
|
|
# include "ace/os_include/sys/os_ipc.h"
|
|
# if !defined(ACE_LACKS_SYSV_SHMEM)
|
|
// No reason to #include this if the platform lacks support for SHMEM
|
|
# include "ace/os_include/sys/os_shm.h"
|
|
# endif /* ACE_LACKS_SYSV_SHMEM */
|
|
# include "ace/os_include/os_fcntl.h" // <sys/file.h>
|
|
# include "ace/os_include/sys/os_time.h"
|
|
# include "ace/os_include/sys/os_resource.h"
|
|
# include "ace/os_include/sys/os_wait.h"
|
|
# include "ace/os_include/os_pwd.h"
|
|
# endif /* ! VXWORKS */
|
|
# include "ace/os_include/os_stropts.h" // <sys/ioctl.h>
|
|
|
|
// IRIX5 defines bzero() in this odd file...
|
|
# if defined (ACE_HAS_BSTRING)
|
|
# include /**/ <bstring.h>
|
|
# endif /* ACE_HAS_BSTRING */
|
|
|
|
// AIX defines bzero() in this odd file...
|
|
# if defined (ACE_HAS_STRINGS)
|
|
# include "ace/os_include/os_strings.h"
|
|
# endif /* ACE_HAS_STRINGS */
|
|
|
|
# if defined (ACE_HAS_TERMIOS)
|
|
# include "ace/os_include/os_termios.h"
|
|
# endif /* ACE_HAS_TERMIOS */
|
|
|
|
# if defined (ACE_HAS_AIO_CALLS)
|
|
# include "ace/os_include/os_aio.h"
|
|
# endif /* ACE_HAS_AIO_CALLS */
|
|
|
|
# include "ace/os_include/os_limits.h" // <sys/param.h>
|
|
|
|
# if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
|
|
# include "ace/os_include/sys/os_un.h"
|
|
# endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
|
|
|
|
# if defined (ACE_HAS_POLL)
|
|
# include "ace/os_include/os_poll.h"
|
|
# endif /* ACE_HAS_POLL */
|
|
|
|
# if defined (ACE_HAS_SELECT_H)
|
|
# include "ace/os_include/sys/os_select.h"
|
|
# endif /* ACE_HAS_SELECT_H */
|
|
|
|
# include "ace/os_include/sys/os_msg.h"
|
|
|
|
# if defined (ACE_HAS_PRIOCNTL)
|
|
# include /**/ <sys/priocntl.h>
|
|
# endif /* ACE_HAS_PRIOCNTL */
|
|
|
|
# endif /* !defined (ACE_WIN32) */
|
|
|
|
# if !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG)
|
|
# include "ace/os_include/os_syslog.h"
|
|
# endif /* !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG) */
|
|
|
|
|
|
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
|
|
|
|
/**
|
|
* @namespace ACE_OS
|
|
*
|
|
* @brief This namespace defines an OS independent programming API that
|
|
* shields developers from nonportable aspects of writing
|
|
* efficient system programs on Win32, POSIX and other versions
|
|
* of UNIX, and various real-time operating systems.
|
|
*
|
|
* This namespace encapsulates the differences between various OS
|
|
* platforms. When porting ACE to a new platform, this class is
|
|
* the place to focus on. Once this file is ported to a new
|
|
* platform, pretty much everything else comes for "free." See
|
|
* <www.cs.wustl.edu/~schmidt/ACE_wrappers/etc/ACE-porting.html>
|
|
* for instructions on porting ACE. Please see the README file
|
|
* in this directory for complete information on the meaning of
|
|
* the various macros.
|
|
*/
|
|
namespace ACE_OS
|
|
{
|
|
// = A set of wrappers for miscellaneous operations.
|
|
} /* namespace ACE_OS */
|
|
|
|
ACE_END_VERSIONED_NAMESPACE_DECL
|
|
|
|
# if defined (ACE_HAS_INLINED_OSCALLS)
|
|
# if defined (ACE_INLINE)
|
|
# undef ACE_INLINE
|
|
# endif /* ACE_INLINE */
|
|
# define ACE_INLINE inline
|
|
# include "ace/OS.inl"
|
|
# endif /* ACE_HAS_INLINED_OSCALLS */
|
|
|
|
#if defined (ACE_LEGACY_MODE)
|
|
# include "ace/Log_Msg.h"
|
|
# include "ace/Thread_Hook.h"
|
|
# include "ace/Thread_Adapter.h"
|
|
# include "ace/Thread_Exit.h"
|
|
# include "ace/Thread_Control.h"
|
|
#endif /* ACE_LEGACY_MODE */
|
|
|
|
#endif /* 0 */
|
|
|
|
#include /**/ "ace/post.h"
|
|
#endif /* ACE_OS_H */
|