FLImaging 6.5.13.1
SystemInformation.h
1#pragma once
2
11#include "FLBase.h"
12
14namespace FLImaging
15{
17 namespace Base
18 {
26 class FL_EXPORT CSystemInformation : public CFLBase
27 {
28 public:
29 enum EMemoryType
30 {
31 EMemoryType_Unknown = -1,
32 EMemoryType_DDR,
33 EMemoryType_DDR2,
34 EMemoryType_DDR2_FB_DIMM,
35 EMemoryType_DDR3,
36 EMemoryType_DDR4,
37 EMemoryType_DDR5,
38 EMemoryType_DDR6_Or_Higher,
39 };
40
41 protected:
50
51 public:
64
65
75 static uint64_t GetTotalPhysicalMemory();
76
86 static uint64_t GetAvailablePhysicalMemory();
87
97 static uint64_t GetTotalVirtualMemory();
98
108 static uint64_t GetAvailableVirtualMemory();
109
110
120 static double GetProcessorUsage();
121
122
132 static int32_t GetProcessorPackageCount();
133
143 static int32_t GetNumaNodeCount();
144
155
166
176 static int32_t GetProcessorL1CacheCount();
177
187 static int32_t GetProcessorL2CacheCount();
188
198 static int32_t GetProcessorL3CacheCount();
199
200
210 static int32_t GetProcessorL1CacheSize();
211
221 static int32_t GetProcessorL2CacheSize();
222
232 static int32_t GetProcessorL3CacheSize();
233
234
244 static int32_t GetProcessorL1LineSize();
245
255 static int32_t GetProcessorL2LineSize();
256
266 static int32_t GetProcessorL3LineSize();
267
268
278 static const wchar_t* GetProcessorName();
279
289 static int32_t GetMemoryChannelCount();
290
300 static int32_t GetMemoryClockSpeed();
301
311 static EMemoryType GetMemoryType();
312
313
323 static int32_t GetProcessorClockSpeed();
324
334 static int32_t GetDMAChannelCount();
335
345 static bool IsX64OperatingSystem();
346
357
368
369
370 DeclareGetClassType();
371 };
372 }
373}
374
Top-level base class of FLImaging.
Definition FLBase.h:36
System information class.
Definition SystemInformation.h:27
static int32_t GetProcessorL3LineSize()
Get processor L3 line size.
static int32_t GetDMAChannelCount()
Get DMA channel count.
static double GetProcessorUsage()
Get processor usage in percent.
static const wchar_t * GetProcessorName()
Get processor name.
static int32_t GetProcessorL1CacheSize()
Get processor L1 cache size.
static ECPUInstructionType GetCPUInstruction()
Get the CPU instruction type.
static int32_t GetLogicalProcessorCoreCount()
Get number of logical processor cores.
static uint64_t GetTotalPhysicalMemory()
Get total amount of physical memory.
static bool IsX64OperatingSystem()
Check if the program is running on an x64 operating system.
static int32_t GetMemoryClockSpeed()
Get memory clock (MHz)
static uint64_t GetAllocatablePhysicalMemory()
Returns the actual allocatable memory size in bytes. Depending on the degree of memory fragmentation,...
static EOperatingSystemType GetOperatingSystemType()
Gets the operating system type.
static int32_t GetProcessorL1CacheCount()
Get processor L1 cache count.
static int32_t GetProcessorClockSpeed()
Get processor clock (MHz)
static uint64_t GetAvailableVirtualMemory()
Get a valid amount of virtual memory.
static int32_t GetMemoryChannelCount()
Get memory channel.
static int32_t GetProcessorL1LineSize()
Get processor L1 line size.
static int32_t GetPhysicalProcessorCoreCount()
Get number of physical processor cores.
static int32_t GetNumaNodeCount()
Get the number of Numa Nodes.
static int32_t GetProcessorL3CacheSize()
Get processor L3 cache size.
static uint64_t GetTotalVirtualMemory()
Get the total amount of virtual memory.
static int32_t GetProcessorL2CacheCount()
Get processor L2 cache count.
static int32_t GetProcessorPackageCount()
Get processor package count.
static int32_t GetProcessorL2CacheSize()
Get processor L2 cache size.
static int32_t GetProcessorL2LineSize()
Get processor L2 line size.
static int32_t GetProcessorL3CacheCount()
Get processor L3 cache count.
static uint64_t GetAvailablePhysicalMemory()
Get valid amount of physical memory.
static EMemoryType GetMemoryType()
Get memory type.
EOperatingSystemType
Operating system type.
Definition DefinitionsBase.h:2700
ECPUInstructionType
CPU instruction type.
Definition DefinitionsBase.h:1924