[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
This commit is contained in:
Adam Dobrowolski
2022-02-23 16:34:52 +01:00
committed by Adam Dobrowolski
parent ad3aa54b66
commit dd12853503
43 changed files with 673 additions and 390 deletions

View File

@@ -0,0 +1,33 @@
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "AlgorithmFactory.hpp"
#include "SystemManager/cpu/algorithm/FrequencyHold.hpp"
#include <memory>
namespace sys::cpu {
AlgorithmFactory::PutResult AlgorithmFactory::emplace(sys::cpu::AlgoID id, std::unique_ptr<Algorithm>&&algorithm)
{
if ( algorithms.find(id) != std::end(algorithms)) {
algorithms[id] = std::move(algorithm);
return PutResult::Replaced;
}
algorithms.emplace(id, std::move(algorithm));
return PutResult::Added;
}
Algorithm* AlgorithmFactory::get(sys::cpu::AlgoID id)
{
if ( auto el = algorithms.find(id); el != std::end(algorithms)) {
return el->second.get();
}
return nullptr;
}
void AlgorithmFactory::remove(sys::cpu::AlgoID id)
{
algorithms.erase(id);
}
} // namespace sys::cpu