From 9b473e33333fb3a7a33dbcd6166e6f8529415831 Mon Sep 17 00:00:00 2001 From: Eduardo Almeida Date: Fri, 28 Apr 2023 09:53:39 +0100 Subject: [PATCH] core: Use unodered_map for LogComponent::ComponentList --- src/core/model/log.cc | 42 ++++++++++++++++++++++++------------------ src/core/model/log.h | 4 ++-- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/core/model/log.cc b/src/core/model/log.cc index 935c26911..e2f0507b3 100644 --- a/src/core/model/log.cc +++ b/src/core/model/log.cc @@ -355,67 +355,73 @@ LogComponentDisableAll(LogLevel level) void LogComponentPrintList() { - LogComponent::ComponentList* components = LogComponent::GetComponentList(); - for (LogComponent::ComponentList::const_iterator i = components->begin(); - i != components->end(); - i++) + // Create sorted map of components by inserting them into a map + std::map componentsSorted; + + for (const auto& component : *LogComponent::GetComponentList()) { - std::cout << i->first << "="; - if (i->second->IsNoneEnabled()) + componentsSorted.insert(component); + } + + // Iterate through sorted components + for (const auto& [name, component] : componentsSorted) + { + std::cout << name << "="; + if (component->IsNoneEnabled()) { std::cout << "0" << std::endl; continue; } - if (i->second->IsEnabled(LOG_LEVEL_ALL)) + if (component->IsEnabled(LOG_LEVEL_ALL)) { std::cout << "all"; } else { - if (i->second->IsEnabled(LOG_ERROR)) + if (component->IsEnabled(LOG_ERROR)) { std::cout << "error"; } - if (i->second->IsEnabled(LOG_WARN)) + if (component->IsEnabled(LOG_WARN)) { std::cout << "|warn"; } - if (i->second->IsEnabled(LOG_DEBUG)) + if (component->IsEnabled(LOG_DEBUG)) { std::cout << "|debug"; } - if (i->second->IsEnabled(LOG_INFO)) + if (component->IsEnabled(LOG_INFO)) { std::cout << "|info"; } - if (i->second->IsEnabled(LOG_FUNCTION)) + if (component->IsEnabled(LOG_FUNCTION)) { std::cout << "|function"; } - if (i->second->IsEnabled(LOG_LOGIC)) + if (component->IsEnabled(LOG_LOGIC)) { std::cout << "|logic"; } } - if (i->second->IsEnabled(LOG_PREFIX_ALL)) + if (component->IsEnabled(LOG_PREFIX_ALL)) { std::cout << "|prefix_all"; } else { - if (i->second->IsEnabled(LOG_PREFIX_FUNC)) + if (component->IsEnabled(LOG_PREFIX_FUNC)) { std::cout << "|func"; } - if (i->second->IsEnabled(LOG_PREFIX_TIME)) + if (component->IsEnabled(LOG_PREFIX_TIME)) { std::cout << "|time"; } - if (i->second->IsEnabled(LOG_PREFIX_NODE)) + if (component->IsEnabled(LOG_PREFIX_NODE)) { std::cout << "|node"; } - if (i->second->IsEnabled(LOG_PREFIX_LEVEL)) + if (component->IsEnabled(LOG_PREFIX_LEVEL)) { std::cout << "|level"; } diff --git a/src/core/model/log.h b/src/core/model/log.h index b4512f235..5dc99c9b7 100644 --- a/src/core/model/log.h +++ b/src/core/model/log.h @@ -26,10 +26,10 @@ #include "time-printer.h" #include -#include #include #include #include +#include #include /** @@ -395,7 +395,7 @@ class LogComponent * It is exposed here to allow print-introspected-doxygen.cc * to generate a list of all LogComponents. */ - typedef std::map ComponentList; + using ComponentList = std::unordered_map; /** * Get the list of LogComponents.