Реализация под linux
This commit is contained in:
parent
1704c280aa
commit
74cdbd9401
|
@ -0,0 +1,101 @@
|
||||||
|
/*Ковалев Р.Е. 2021. rekovalev.site*/
|
||||||
|
|
||||||
|
#include "Memorator.h"
|
||||||
|
|
||||||
|
/*Статическое поле класса Memorator*/
|
||||||
|
#ifdef __linux__
|
||||||
|
sysinfo Memorator::info;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Заполняет поле с информацией класса Memorator данными от системы*/
|
||||||
|
void Memorator::ask()
|
||||||
|
{
|
||||||
|
#ifdef __linux__
|
||||||
|
sysinfo(&info);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во памяти в байтах*/
|
||||||
|
unsigned long Memorator::getTotalRam_B()
|
||||||
|
{
|
||||||
|
#ifdef __linux__
|
||||||
|
ask();
|
||||||
|
return info.totalram;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во памяти в килобайтах*/
|
||||||
|
unsigned long Memorator::getTotalRam_KB()
|
||||||
|
{
|
||||||
|
return getTotalRam_B()/1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во памяти в мегабайтах*/
|
||||||
|
unsigned long Memorator::getTotalRam_MB()
|
||||||
|
{
|
||||||
|
return getTotalRam_KB()/1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во свободной памяти в байтах*/
|
||||||
|
unsigned long Memorator::getFreeRam_B()
|
||||||
|
{
|
||||||
|
#ifdef __linux__
|
||||||
|
ask();
|
||||||
|
return info.freeram;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во свободной памяти в килобайтах*/
|
||||||
|
unsigned long Memorator::getFreeRam_KB()
|
||||||
|
{
|
||||||
|
return getFreeRam_B()/1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во свободной памяти в мегабайтах*/
|
||||||
|
unsigned long Memorator::getFreeRam_MB()
|
||||||
|
{
|
||||||
|
return getFreeRam_KB()/1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во памяти подкачки в байтах*/
|
||||||
|
unsigned long Memorator::getTotalSwap_B()
|
||||||
|
{
|
||||||
|
#ifdef __linux__
|
||||||
|
ask();
|
||||||
|
return info.totalswap;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во памяти подкачки в килобайтах*/
|
||||||
|
unsigned long Memorator::getTotalSwap_KB()
|
||||||
|
{
|
||||||
|
return getTotalSwap_B()/1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во памяти подкачки в мегабайтах*/
|
||||||
|
unsigned long Memorator::getTotalSwap_MB()
|
||||||
|
{
|
||||||
|
return getTotalSwap_KB()/1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во свободной памяти подкачки в байтах*/
|
||||||
|
unsigned long Memorator::getFreeSwap_B()
|
||||||
|
{
|
||||||
|
#ifdef __linux__
|
||||||
|
ask();
|
||||||
|
return info.freeswap;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во свободной памяти подкачки в килобайтах*/
|
||||||
|
unsigned long Memorator::getFreeSwap_KB()
|
||||||
|
{
|
||||||
|
return getFreeSwap_B()/1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Возвращает общее кол-во свободной памяти подкачки в мегабайтах*/
|
||||||
|
unsigned long Memorator::getFreeSwap_MB()
|
||||||
|
{
|
||||||
|
return getFreeSwap_KB()/1000;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
/*Ковалев Р.Е. 2021. rekovalev.site*/
|
||||||
|
|
||||||
|
#ifdef __linux__
|
||||||
|
#include <sys/sysinfo.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Класс для работы с информацией об оперативной памяти*/
|
||||||
|
class Memorator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static unsigned long getTotalRam_B();
|
||||||
|
static unsigned long getTotalRam_KB();
|
||||||
|
static unsigned long getTotalRam_MB();
|
||||||
|
static unsigned long getFreeRam_B();
|
||||||
|
static unsigned long getFreeRam_KB();
|
||||||
|
static unsigned long getFreeRam_MB();
|
||||||
|
static unsigned long getTotalSwap_B();
|
||||||
|
static unsigned long getTotalSwap_KB();
|
||||||
|
static unsigned long getTotalSwap_MB();
|
||||||
|
static unsigned long getFreeSwap_B();
|
||||||
|
static unsigned long getFreeSwap_KB();
|
||||||
|
static unsigned long getFreeSwap_MB();
|
||||||
|
|
||||||
|
private:
|
||||||
|
static void ask();
|
||||||
|
#ifdef __linux__
|
||||||
|
static sysinfo info;
|
||||||
|
#endif
|
||||||
|
};
|
Loading…
Reference in New Issue