Files
MuditaOS/module-sys/SystemManager/cpu/algorithm/Algorithm.hpp
Adam Dobrowolski dd12853503 [MOS-226] Moved algorithms and their data to separate classes
This way we have controll over what does what, and can test
them separatelly
Logging statistics update more and better data presented
2022-03-04 07:05:02 +01:00

33 lines
875 B
C++

// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
#include "AlgorithmID.hpp"
#include "SystemManager/SentinelView.hpp"
#include "common.hpp"
namespace sys::cpu
{
struct AlgorithmData
{
unsigned int CPUload = 0;
bsp::CpuFrequencyMHz curentFrequency = bsp::CpuFrequencyMHz::Level_6;
sentinel::View sentinel;
};
class Algorithm
{
private:
[[nodiscard]] virtual bsp::CpuFrequencyMHz calculateImplementation(const AlgorithmData &) = 0;
virtual void resetImplementation()
{}
public:
[[nodiscard]] virtual bsp::CpuFrequencyMHz calculate(const AlgorithmData &) final;
virtual void reset() final;
virtual ~Algorithm() = default;
};
} // namespace sys::cpu