Rudiments
/home/dmuse/src/rudiments/include/rudiments/system.h
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