SysInfo.cpp

Go to the documentation of this file.
00001 #pragma ident "$Id: SysInfo.cpp 2967 2011-11-05 07:47:25Z yanweignss $"
00002 
00008 //============================================================================
00009 //
00010 //  This file is part of GPSTk, the GPS Toolkit.
00011 //
00012 //  The GPSTk is free software; you can redistribute it and/or modify
00013 //  it under the terms of the GNU Lesser General Public License as published
00014 //  by the Free Software Foundation; either version 2.1 of the License, or
00015 //  any later version.
00016 //
00017 //  The GPSTk is distributed in the hope that it will be useful,
00018 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00019 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020 //  GNU Lesser General Public License for more details.
00021 //
00022 //  You should have received a copy of the GNU Lesser General Public
00023 //  License along with GPSTk; if not, write to the Free Software Foundation,
00024 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00025 //
00026 //  Wei Yan - Chinese Academy of Sciences . 2011
00027 //
00028 //============================================================================
00029 
00030 #include "SysInfo.hpp"
00031 
00032 //
00033 // Platform Identification
00034 //
00035 #define GPSTK_OS_FREE_BSD      0x0001
00036 #define GPSTK_OS_AIX           0x0002
00037 #define GPSTK_OS_HPUX          0x0003
00038 #define GPSTK_OS_TRU64         0x0004
00039 #define GPSTK_OS_LINUX         0x0005
00040 #define GPSTK_OS_MAC_OS_X      0x0006
00041 #define GPSTK_OS_NET_BSD       0x0007
00042 #define GPSTK_OS_OPEN_BSD      0x0008
00043 #define GPSTK_OS_IRIX          0x0009
00044 #define GPSTK_OS_SOLARIS       0x000a
00045 #define GPSTK_OS_QNX           0x000b
00046 #define GPSTK_OS_VXWORKS       0x000c
00047 #define GPSTK_OS_CYGWIN        0x000d
00048 #define GPSTK_OS_UNKNOWN_UNIX  0x00ff
00049 #define GPSTK_OS_WINDOWS_NT    0x1001
00050 #define GPSTK_OS_WINDOWS_CE    0x1011
00051 #define GPSTK_OS_VMS           0x2001
00052 
00053 
00054 #if defined(__FreeBSD__)
00055 #define GPSTK_OS_FAMILY_UNIX 1
00056 #define GPSTK_OS_FAMILY_BSD 1
00057 #define GPSTK_OS GPSTK_OS_FREE_BSD
00058 #elif defined(_AIX) || defined(__TOS_AIX__)
00059 #define GPSTK_OS_FAMILY_UNIX 1
00060 #define GPSTK_OS GPSTK_OS_AIX
00061 #elif defined(hpux) || defined(_hpux)
00062 #define GPSTK_OS_FAMILY_UNIX 1
00063 #define GPSTK_OS GPSTK_OS_HPUX
00064 #elif defined(__digital__) || defined(__osf__)
00065 #define GPSTK_OS_FAMILY_UNIX 1
00066 #define GPSTK_OS GPSTK_OS_TRU64
00067 #elif defined(linux) || defined(__linux) || defined(__linux__) || defined(__TOS_LINUX__)
00068 #define GPSTK_OS_FAMILY_UNIX 1
00069 #define GPSTK_OS GPSTK_OS_LINUX
00070 #elif defined(__APPLE__) || defined(__TOS_MACOS__)
00071 #define GPSTK_OS_FAMILY_UNIX 1
00072 #define GPSTK_OS_FAMILY_BSD 1
00073 #define GPSTK_OS GPSTK_OS_MAC_OS_X
00074 #elif defined(__NetBSD__)
00075 #define GPSTK_OS_FAMILY_UNIX 1
00076 #define GPSTK_OS_FAMILY_BSD 1
00077 #define GPSTK_OS GPSTK_OS_NET_BSD
00078 #elif defined(__OpenBSD__)
00079 #define GPSTK_OS_FAMILY_UNIX 1
00080 #define GPSTK_OS_FAMILY_BSD 1
00081 #define GPSTK_OS GPSTK_OS_OPEN_BSD
00082 #elif defined(sgi) || defined(__sgi)
00083 #define GPSTK_OS_FAMILY_UNIX 1
00084 #define GPSTK_OS GPSTK_OS_IRIX
00085 #elif defined(sun) || defined(__sun)
00086 #define GPSTK_OS_FAMILY_UNIX 1
00087 #define GPSTK_OS GPSTK_OS_SOLARIS
00088 #elif defined(__QNX__)
00089 #define GPSTK_OS_FAMILY_UNIX 1
00090 #define GPSTK_OS GPSTK_OS_QNX
00091 #elif defined(unix) || defined(__unix) || defined(__unix__)
00092 #define GPSTK_OS_FAMILY_UNIX 1
00093 #define GPSTK_OS GPSTK_OS_UNKNOWN_UNIX
00094 #elif defined(_WIN32_WCE)
00095 #define GPSTK_OS_FAMILY_WINDOWS 1
00096 #define GPSTK_OS GPSTK_OS_WINDOWS_CE
00097 #elif defined(_WIN32) || defined(_WIN64)
00098 #define GPSTK_OS_FAMILY_WINDOWS 1
00099 #define GPSTK_OS GPSTK_OS_WINDOWS_NT
00100 #elif defined(__CYGWIN__)
00101 #define GPSTK_OS_FAMILY_UNIX 1
00102 #define GPSTK_OS GPSTK_OS_CYGWIN
00103 #elif defined(__VMS)
00104 #define GPSTK_OS_FAMILY_VMS 1
00105 #define GPSTK_OS GPSTK_OS_VMS
00106 #elif defined(GPSTK_VXWORKS)
00107 #define GPSTK_OS_FAMILY_UNIX 1
00108 #define GPSTK_OS GPSTK_OS_VXWORKS
00109 #endif
00110 
00111 
00112 //
00113 // Hardware Architecture and Byte Order
00114 //
00115 #define GPSTK_ARCH_ALPHA   0x01
00116 #define GPSTK_ARCH_IA32    0x02
00117 #define GPSTK_ARCH_IA64    0x03
00118 #define GPSTK_ARCH_MIPS    0x04
00119 #define GPSTK_ARCH_HPPA    0x05
00120 #define GPSTK_ARCH_PPC     0x06
00121 #define GPSTK_ARCH_POWER   0x07
00122 #define GPSTK_ARCH_SPARC   0x08
00123 #define GPSTK_ARCH_AMD64   0x09
00124 #define GPSTK_ARCH_ARM     0x0a
00125 #define GPSTK_ARCH_M68K    0x0b
00126 #define GPSTK_ARCH_S390    0x0c
00127 #define GPSTK_ARCH_SH      0x0d
00128 #define GPSTK_ARCH_NIOS2   0x0e
00129 
00130 
00131 #if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)
00132 #define GPSTK_ARCH GPSTK_ARCH_ALPHA
00133 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00134 #elif defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_IX86)
00135 #define GPSTK_ARCH GPSTK_ARCH_IA32
00136 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00137 #elif defined(_IA64) || defined(__IA64__) || defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
00138 #define GPSTK_ARCH GPSTK_ARCH_IA64
00139 #if defined(hpux) || defined(_hpux)
00140 #define GPSTK_ARCH_BIG_ENDIAN 1
00141 #else
00142 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00143 #endif
00144 #elif defined(__x86_64__) || defined(_M_X64)
00145 #define GPSTK_ARCH GPSTK_ARCH_AMD64
00146 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00147 #elif defined(__mips__) || defined(__mips) || defined(__MIPS__) || defined(_M_MRX000)
00148 #define GPSTK_ARCH GPSTK_ARCH_MIPS
00149 #define GPSTK_ARCH_BIG_ENDIAN 1
00150 #elif defined(__hppa) || defined(__hppa__)
00151 #define GPSTK_ARCH GPSTK_ARCH_HPPA
00152 #define GPSTK_ARCH_BIG_ENDIAN 1
00153 #elif defined(__PPC) || defined(__POWERPC__) || defined(__powerpc) || defined(__PPC__) || \
00154    defined(__powerpc__) || defined(__ppc__) || defined(__ppc) || defined(_ARCH_PPC) || defined(_M_PPC)
00155 #define GPSTK_ARCH GPSTK_ARCH_PPC
00156 #define GPSTK_ARCH_BIG_ENDIAN 1
00157 #elif defined(_POWER) || defined(_ARCH_PWR) || defined(_ARCH_PWR2) || defined(_ARCH_PWR3) || \
00158    defined(_ARCH_PWR4) || defined(__THW_RS6000)
00159 #define GPSTK_ARCH GPSTK_ARCH_POWER
00160 #define GPSTK_ARCH_BIG_ENDIAN 1
00161 #elif defined(__sparc__) || defined(__sparc) || defined(sparc)
00162 #define GPSTK_ARCH GPSTK_ARCH_SPARC
00163 #define GPSTK_ARCH_BIG_ENDIAN 1
00164 #elif defined(__arm__) || defined(__arm) || defined(ARM) || defined(_ARM_) || defined(__ARM__) || defined(_M_ARM)
00165 #define GPSTK_ARCH GPSTK_ARCH_ARM
00166 #if defined(__ARMEB__)
00167 #define GPSTK_ARCH_BIG_ENDIAN 1
00168 #else
00169 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00170 #endif
00171 #elif defined(__m68k__)
00172 #define GPSTK_ARCH GPSTK_ARCH_M68K
00173 #define GPSTK_ARCH_BIG_ENDIAN 1
00174 #elif defined(__s390__)
00175 #define GPSTK_ARCH GPSTK_ARCH_S390
00176 #define GPSTK_ARCH_BIG_ENDIAN 1
00177 #elif defined(__sh__) || defined(__sh)
00178 #define GPSTK_ARCH GPSTK_ARCH_SH
00179 #if defined(__LITTLE_ENDIAN__)
00180 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00181 #else
00182 #define GPSTK_ARCH_BIG_ENDIAN 1
00183 #endif
00184 #elif defined (nios2) || defined(__nios2) || defined(__nios2__)
00185 #define GPSTK_ARCH GPSTK_ARCH_NIOS2
00186 #if defined(__nios2_little_endian) || defined(nios2_little_endian) || defined(__nios2_little_endian__)
00187 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00188 #else
00189 #define GPSTK_ARCH_BIG_ENDIAN 1
00190 #endif
00191 
00192 #endif
00193 
00194 
00195 namespace gpstk
00196 {
00197 
00198    std::string SysInfo::osName()
00199    {
00200       switch (GPSTK_OS)
00201       {
00202       case GPSTK_OS_FREE_BSD:    return "Free BSD";
00203       case GPSTK_OS_AIX:         return "AIX";
00204       case GPSTK_OS_HPUX:        return "HPUX";
00205       case GPSTK_OS_TRU64:       return "IRU64";
00206       case GPSTK_OS_LINUX:       return "Linux";
00207       case GPSTK_OS_MAC_OS_X:    return "Mac OS X";
00208       case GPSTK_OS_NET_BSD:     return "Net BSD";
00209       case GPSTK_OS_OPEN_BSD:    return "Open BSD";
00210       case GPSTK_OS_IRIX:        return "IRIX";
00211       case GPSTK_OS_SOLARIS:     return "Solaris";
00212       case GPSTK_OS_QNX:         return "QNX";
00213       case GPSTK_OS_VXWORKS:     return "Vxworks";
00214       case GPSTK_OS_CYGWIN:      return "Cygwin";
00215       case GPSTK_OS_UNKNOWN_UNIX:return "Unknown Unix";
00216       case GPSTK_OS_WINDOWS_NT:  return "Windows NT";
00217       case GPSTK_OS_WINDOWS_CE:  return "Windows CE";
00218       case GPSTK_OS_VMS:         return "VMS";
00219       default:                   return "Unknown";
00220       }
00221    }
00222 
00223    std::string SysInfo::osArchitecture()
00224    {
00225       switch (GPSTK_ARCH)
00226       {
00227       case GPSTK_ARCH_ALPHA:     return "ALPHA";
00228       case GPSTK_ARCH_IA32:      return "IA32";
00229       case GPSTK_ARCH_IA64:      return "IA64";
00230       case GPSTK_ARCH_MIPS:      return "MIPS";
00231       case GPSTK_ARCH_HPPA:      return "HPPA";
00232       case GPSTK_ARCH_PPC:       return "PPC";
00233       case GPSTK_ARCH_POWER:     return "POWER";
00234       case GPSTK_ARCH_SPARC:     return "SPARC";
00235       case GPSTK_ARCH_AMD64:     return "AMD64";
00236       case GPSTK_ARCH_ARM:       return "ARM";
00237       case GPSTK_ARCH_M68K:      return "M68K";
00238       case GPSTK_ARCH_S390:      return "S390";
00239       case GPSTK_ARCH_SH:        return "SH";
00240       case GPSTK_ARCH_NIOS2:     return "NIOS2";
00241       default:                   return "Unknown";
00242       }
00243    }
00244    
00245 }   // End of namespace gpstk
00246 

Generated on Tue May 22 03:31:02 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1