Добавлена реализация для Windows
This commit is contained in:
parent
74cdbd9401
commit
c1089b4806
|
@ -4,7 +4,9 @@
|
|||
|
||||
/*Статическое поле класса Memorator*/
|
||||
#ifdef __linux__
|
||||
sysinfo Memorator::info;
|
||||
struct sysinfo Memorator::info;
|
||||
#elif _WIN32
|
||||
MEMORYSTATUSEX Memorator::statex;
|
||||
#endif
|
||||
|
||||
/*Заполняет поле с информацией класса Memorator данными от системы*/
|
||||
|
@ -12,15 +14,22 @@ void Memorator::ask()
|
|||
{
|
||||
#ifdef __linux__
|
||||
sysinfo(&info);
|
||||
#elif _WIN32
|
||||
statex.dwLength = sizeof (statex);
|
||||
GlobalMemoryStatusEx(&statex);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*Возвращает общее кол-во памяти в байтах*/
|
||||
unsigned long Memorator::getTotalRam_B()
|
||||
{
|
||||
#ifdef __linux__
|
||||
ask();
|
||||
return info.totalram;
|
||||
#ifdef __linux__
|
||||
return info.totalram;
|
||||
#elif _WIN32
|
||||
return statex.ullTotalPhys;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -39,9 +48,13 @@ unsigned long Memorator::getTotalRam_MB()
|
|||
/*Возвращает общее кол-во свободной памяти в байтах*/
|
||||
unsigned long Memorator::getFreeRam_B()
|
||||
{
|
||||
#ifdef __linux__
|
||||
ask();
|
||||
#ifdef __linux__
|
||||
return info.freeram;
|
||||
#elif _WIN32
|
||||
return statex.ullAvailPhys;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -60,9 +73,13 @@ unsigned long Memorator::getFreeRam_MB()
|
|||
/*Возвращает общее кол-во памяти подкачки в байтах*/
|
||||
unsigned long Memorator::getTotalSwap_B()
|
||||
{
|
||||
#ifdef __linux__
|
||||
ask();
|
||||
#ifdef __linux__
|
||||
return info.totalswap;
|
||||
#elif _WIN32
|
||||
return statex.ullTotalPageFile;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -84,6 +101,10 @@ unsigned long Memorator::getFreeSwap_B()
|
|||
#ifdef __linux__
|
||||
ask();
|
||||
return info.freeswap;
|
||||
#elif _WIN32
|
||||
return statex.ullAvailPageFile - getFreeRam_B();
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
#ifdef __linux__
|
||||
#include <sys/sysinfo.h>
|
||||
#elif _WIN32
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
/*Класс для работы с информацией об оперативной памяти*/
|
||||
|
@ -24,6 +26,8 @@ class Memorator
|
|||
private:
|
||||
static void ask();
|
||||
#ifdef __linux__
|
||||
static sysinfo info;
|
||||
static struct sysinfo info;
|
||||
#elif _WIN32
|
||||
static MEMORYSTATUSEX statex;
|
||||
#endif
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue