📄 platform.h
字号:
//
// Platform.h
//
// $Id: //poco/Main/Foundation/include/Foundation/Platform.h#5 $
//
// Platform and architecture identification macros.
//
// NOTE: This file may be included from both C++ and C code, so it
// must not contain any C++ specific things.
//
// Copyright (c) 2004, Guenter Obiltschnig/Applied Informatics.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// 3. Redistributions in any form must be accompanied by information on
// how to obtain complete source code for this software and any
// accompanying software that uses this software. The source code
// must either be included in the distribution or be available for no
// more than the cost of distribution plus a nominal fee, and must be
// freely redistributable under reasonable conditions. For an
// executable file, complete source code means the source code for all
// modules it contains. It does not include source code for modules or
// files that typically accompany the major components of the operating
// system on which the executable file runs.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
#ifndef Foundation_Platform_INCLUDED
#define Foundation_Platform_INCLUDED
//
// Platform Identification
//
#define POCO_OS_FREE_BSD 0x0001
#define POCO_OS_AIX 0x0002
#define POCO_OS_HPUX 0x0003
#define POCO_OS_TRU64 0x0004
#define POCO_OS_LINUX 0x0005
#define POCO_OS_MAC_OS_X 0x0006
#define POCO_OS_NET_BSD 0x0007
#define POCO_OS_OPEN_BSD 0x0008
#define POCO_OS_IRIX 0x0009
#define POCO_OS_SOLARIS 0x000a
#define POCO_OS_QNX 0x000b
#define POCO_OS_VXWORKS 0x000c
#define POCO_OS_UNKNOWN_UNIX 0x00ff
#define POCO_OS_WINDOWS_NT 0x1001
#define POCO_OS_WINDOWS_CE 0x1011
#define POCO_OS_VMS 0x2001
#if defined(__FreeBSD__)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS_FAMILY_BSD 1
#define POCO_OS POCO_OS_FREE_BSD
#elif defined(_AIX) || defined(__TOS_AIX__)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS POCO_OS_AIX
#elif defined(hpux) || defined(_hpux)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS POCO_OS_HPUX
#elif defined(__digital__) || defined(__osf__)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS POCO_OS_TRU64
#elif defined(linux) || defined(__linux) || defined(__linux__) || defined(__TOS_LINUX__)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS POCO_OS_LINUX
#elif defined(__APPLE__) || defined(__TOS_MACOS__)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS_FAMILY_BSD 1
#define POCO_OS POCO_OS_MAC_OS_X
#elif defined(__NetBSD__)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS_FAMILY_BSD 1
#define POCO_OS POCO_OS_NET_BSD
#elif defined(__OpenBSD__)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS_FAMILY_BSD 1
#define POCO_OS POCO_OS_OPEN_BSD
#elif defined(sgi) || defined(__sgi)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS POCO_OS_IRIX
#elif defined(sun) || defined(__sun)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS POCO_OS_SOLARIS
#elif defined(__QNX__)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS POCO_OS_QNX
#elif defined(unix) || defined(__unix) || defined(__unix__)
#define POCO_OS_FAMILY_UNIX 1
#define POCO_OS POCO_OS_UNKNOWN_UNIX
#elif defined(_WIN32) || defined(_WIN64)
#define POCO_OS_FAMILY_WINDOWS 1
#define POCO_OS POCO_OS_WINDOWS_NT
#elif defined(__VMS)
#define POCO_OS_FAMILY_VMS 1
#define POCO_OS POCO_OS_VMS
#endif
//
// Hardware Architecture and Byte Order
//
#define POCO_ARCH_ALPHA 0x01
#define POCO_ARCH_IA32 0x02
#define POCO_ARCH_IA64 0x03
#define POCO_ARCH_MIPS 0x04
#define POCO_ARCH_HPPA 0x05
#define POCO_ARCH_PPC 0x06
#define POCO_ARCH_POWER 0x07
#define POCO_ARCH_SPARC 0x08
#if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)
#define POCO_ARCH POCO_ARCH_ALPHA
#define POCO_ARCH_LITTLE_ENDIAN 1
#elif defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_IX86)
#define POCO_ARCH POCO_ARCH_IA32
#define POCO_ARCH_LITTLE_ENDIAN 1
#elif defined(_IA64) || defined(__IA64__) || defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
#define POCO_ARCH POCO_ARCH_IA64
#if defined(hpux) || defined(_hpux)
#define POCO_ARCH_BIG_ENDIAN 1
#else
#define POCO_ARCH_LITTLE_ENDIAN 1
#endif
#elif defined(__mips__) || defined(__mips) || defined(__MIPS__) || defined(_M_MRX000)
#define POCO_ARCH POCO_ARCH_MIPS
#define POCO_ARCH_BIG_ENDIAN 1
#elif defined(__hppa) || defined(__hppa__)
#define POCO_ARCH POCO_ARCH_HPPA
#define POCO_ARCH_BIG_ENDIAN 1
#elif defined(__PPC) || defined(__POWERPC__) || defined(__powerpc) || defined(__PPC__) || \
defined(__powerpc__) || defined(__ppc__) || defined(_ARCH_PPC) || defined(_M_PPC)
#define POCO_ARCH POCO_ARCH_PPC
#define POCO_ARCH_BIG_ENDIAN 1
#elif defined(_POWER) || defined(_ARCH_PWR) || defined(_ARCH_PWR2) || defined(_ARCH_PWR3) || \
defined(_ARCH_PWR4) || defined(__THW_RS6000)
#define POCO_ARCH POCO_ARCH_POWER
#define POCO_ARCH_BIG_ENDIAN 1
#elif defined(__sparc__) || defined(__sparc) || defined(sparc)
#define POCO_ARCH POCO_ARCH_SPARC
#define POCO_ARCH_BIG_ENDIAN 1
#endif
#endif // Foundation_Platform_INCLUDED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -