2#ifndef ENIGMA_RAM_INFO_H
3#define ENIGMA_RAM_INFO_H
8#if defined(ENIGMA_PLATFORM_WINDOWS)
12typedef MEMORYSTATUSEX memory_status_t;
13#elif defined(ENIGMA_PLATFORM_LINUX)
16#include <sys/syscall.h>
17#include <sys/sysinfo.h>
19typedef struct sysinfo memory_status_t;
20#elif defined(ENIGMA_PLATFORM_MACOS)
23#include <mach/mach_host.h>
24#include <mach/vm_statistics.h>
25typedef struct vm_statistics_data_t memory_status_t;
27#error "Unsupported Platform"
80 memory_status_t m_memory_status{};
#define NS_ENIGMA_BEGIN
Enable/Disable Assertions.
#define ENIGMA_NON_MOVEABLE(Class)
#define ENIGMA_NON_COPYABLE(Class)
Prevent class copying or moving.
std::size_t GetAvailableRAM() const noexcept
float GetRAMUsage() noexcept
float GetProcessRAMUsage() noexcept
std::size_t GetFreeRAM() const noexcept
std::size_t GetProcessUsedRAM() const noexcept
std::size_t GetUsedRAM() const noexcept