AuroraRuntime/Source/HWInfo/AuCpuLoadSampler.hpp

34 lines
769 B
C++
Raw Normal View History

2023-10-28 15:00:57 +00:00
/***
Copyright (C) 2023 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: CpuLoadSampler.hpp
Date: 2023-10-28
Author: Reece
***/
#pragma once
namespace Aurora::HWInfo
{
struct CpuLoadSamplerState
{
double GetLoad(AuUInt32 uMinSamplePeriod, bool bThread);
AuUInt64 uPrevTimes[2] {};
double dPrevLoad {};
};
struct CpuLoadSamplerImpl : ICpuLoadSampler
{
CpuLoadSamplerImpl(AuUInt32 uMinSamplePeriodMS,
bool bThreadMode);
~CpuLoadSamplerImpl();
double GetLoad() override;
AuUInt32 uMinSamplePeriod {};
bool bThreadMode {};
CpuLoadSamplerState processState;
AuTLSVariable<CpuLoadSamplerState> threadState;
};
}