Rudiments
|
00001 // Copyright (c) 2004 David Muse 00002 // See the COPYING file for more information. 00003 00004 #ifndef RUDIMENTS_SYSTEM_H 00005 #define RUDIMENTS_SYSTEM_H 00006 00007 #include <rudiments/private/systemincludes.h> 00008 00009 #ifdef RUDIMENTS_NAMESPACE 00010 namespace rudiments { 00011 #endif 00012 00013 class systemprivate; 00014 00018 class RUDIMENTS_DLLSPEC system { 00019 public: 00020 00023 static char *getOperatingSystemName(); 00024 00028 static char *getOperatingSystemRelease(); 00029 00033 static char *getOperatingSystemVersion(); 00034 00037 static char *getOperatingSystemArchitecture(); 00038 00043 static char *getHostName(); 00044 00047 static bool setHostName(const char *hostname); 00048 00051 static bool setHostName(const char *hostname, 00052 uint64_t hostnamelen); 00053 00057 static bool getLoadAverages(double *oneminuteaverage, 00058 double *fiveminuteaverage, 00059 double *fifteenminuteaverage); 00060 00062 static void sync(); 00063 00068 static bool halt(); 00069 00075 static bool shutDown(); 00076 00081 static bool reboot(); 00082 00085 static int64_t getMaxCommandLineArgumentLength(); 00086 00090 static int64_t getMaxProcessesPerUser(); 00091 00095 static int64_t getMaxHostNameLength(); 00096 00100 static int64_t getMaxLoginNameLength(); 00101 00110 static int64_t getClockTicksPerSecond(); 00111 00115 static int64_t getMaxOpenFilesPerProcess(); 00116 00119 static int32_t getPageSize(); 00120 00124 static int64_t getMaxOpenStreamsPerProcess(); 00125 00139 static int64_t getMaxSymlinkLoops(); 00140 00144 static int64_t getMaxTerminalDeviceNameLength(); 00145 00148 static int64_t getMaxTimezoneNameLength(); 00149 00154 static int64_t getMaxLineLength(); 00155 00159 static int64_t getPhysicalPageCount(); 00160 00164 static int64_t getAvailablePhysicalPageCount(); 00165 00169 static int64_t getProcessorCount(); 00170 00174 static int64_t getMaxProcessorCount(); 00175 00178 static int64_t getProcessorsOnline(); 00179 00183 static int64_t getMaxSupplementalGroupsPerUser(); 00184 00188 static int64_t getMaxDelayTimerExpirations(); 00189 00193 static int64_t getMaxRealtimeSignals(); 00194 00198 static int64_t getMaxSemaphoresPerProcess(); 00199 00202 static int64_t getMaxSemaphoreValue(); 00203 00207 static int64_t getMaxSignalQueueLength(); 00208 00212 static int64_t getMaxTimersPerProcess(); 00213 00219 static int64_t getSuggestedGroupEntryBufferSize(); 00220 00226 static int64_t getSuggestedPasswordEntryBufferSize(); 00227 00230 static int64_t getMinThreadStackSize(); 00231 00235 static int64_t getMaxThreadsPerProcess(); 00236 00240 static int64_t getThreadDestructorIterations(); 00241 00244 static int64_t getMaxThreadKeys(); 00245 00249 static int64_t getMaxAtExitFunctions(); 00250 00254 static int64_t getCPUSetSize(); 00255 00258 static int64_t getMaxPasswordLength(); 00259 00262 static int64_t getMaxLogNameLength(); 00263 00266 static int64_t getMaxProcessID(); 00267 00270 static int64_t sysConf(int32_t name); 00271 00272 #include <rudiments/private/system.h> 00273 }; 00274 00275 #ifdef RUDIMENTS_NAMESPACE 00276 } 00277 #endif 00278 00279 #endif