diff --git a/lib/Hoymiles/src/queue/CommandQueue.cpp b/lib/Hoymiles/src/queue/CommandQueue.cpp index e4b6069a..d87486d8 100644 --- a/lib/Hoymiles/src/queue/CommandQueue.cpp +++ b/lib/Hoymiles/src/queue/CommandQueue.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* - * Copyright (C) 2024 Thomas Basler and others + * Copyright (C) 2024-2025 Thomas Basler and others */ #include "CommandQueue.h" #include "../inverters/InverterAbstract.h" @@ -11,7 +11,7 @@ void CommandQueue::removeAllEntriesForInverter(InverterAbstract* inv) std::lock_guard lock(_mutex); auto it = std::remove_if(_queue.begin(), _queue.end(), - [&inv](std::shared_ptr v) -> bool { return v.get()->getTargetAddress() == inv->serial(); }); + [&](const auto& v) { return v->getTargetAddress() == inv->serial(); }); _queue.erase(it, _queue.end()); } @@ -20,7 +20,7 @@ void CommandQueue::removeDuplicatedEntries(std::shared_ptr cmd) std::lock_guard lock(_mutex); auto it = std::remove_if(_queue.begin() + 1, _queue.end(), - [&cmd](std::shared_ptr v) -> bool { + [&](const auto& v) { return cmd->areSameParameter(v.get()) && cmd.get()->getQueueInsertType() == QueueInsertType::RemoveOldest; }); @@ -32,7 +32,7 @@ void CommandQueue::replaceEntries(std::shared_ptr cmd) std::lock_guard lock(_mutex); std::replace_if(_queue.begin() + 1, _queue.end(), - [&cmd](std::shared_ptr v)-> bool { + [&](const auto& v) { return cmd.get()->getQueueInsertType() == QueueInsertType::ReplaceExistent && cmd->areSameParameter(v.get()); }, @@ -45,7 +45,7 @@ uint8_t CommandQueue::countSimilarCommands(std::shared_ptr cmd) std::lock_guard lock(_mutex); return std::count_if(_queue.begin(), _queue.end(), - [&cmd](std::shared_ptr v) -> bool { + [&](const auto& v) { return cmd->areSameParameter(v.get()); }); }