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