mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-04-20 15:07:17 -04:00
[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:
committed by
Adam Dobrowolski
parent
ad3aa54b66
commit
dd12853503
33
module-sys/SystemManager/cpu/AlgorithmFactory.cpp
Normal file
33
module-sys/SystemManager/cpu/AlgorithmFactory.cpp
Normal 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
|
||||
Reference in New Issue
Block a user