Реализация под 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