diff options
author | Adriana Kobylak <anoo@us.ibm.com> | 2017-02-28 12:10:44 -0600 |
---|---|---|
committer | Adriana Kobylak <anoo@us.ibm.com> | 2017-03-15 11:37:06 -0500 |
commit | d722b3aa03c55f9a9737fb47a68e66ad803f53cc (patch) | |
tree | a2b88ab4e540baf101a6b0a22dba12f31a167896 | |
parent | a3db07742c870b5e974c8f8c8ae724ca2298b015 (diff) | |
download | phosphor-logging-d722b3aa03c55f9a9737fb47a68e66ad803f53cc.tar.gz phosphor-logging-d722b3aa03c55f9a9737fb47a68e66ad803f53cc.zip |
Make generated code to be const and extern
Set generated maps to be const so that they don't get
accidentally overwritten.
Use .find() to access these generated data sets as the [] operator
is not const.
Declare the generated maps as extern so that there's
no need to include the generated .cpp file.
Change-Id: I4efdcace099bec738e1fa9b67decbedd515d3dfa
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | log_manager.cpp | 17 | ||||
-rw-r--r-- | log_manager.hpp | 5 | ||||
-rw-r--r-- | tools/phosphor-logging/templates/elog-lookup-template.mako.cpp | 5 |
4 files changed, 22 insertions, 6 deletions
diff --git a/Makefile.am b/Makefile.am index f2c44d9..40f780d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -31,6 +31,7 @@ phosphor_log_manager_SOURCES = \ xyz/openbmc_project/Logging/Internal/Manager/server.cpp \ log_manager.cpp \ log_manager_main.cpp \ + elog-lookup.cpp \ elog_entry.cpp \ org.openbmc.Associations.cpp \ elog-process-metadata.cpp diff --git a/log_manager.cpp b/log_manager.cpp index 21111a0..e497ae0 100644 --- a/log_manager.cpp +++ b/log_manager.cpp @@ -8,7 +8,6 @@ #include <sdbusplus/vtable.hpp> #include <systemd/sd-bus.h> #include <systemd/sd-journal.h> -#include "elog-lookup.cpp" #include <phosphor-logging/elog-errors-HostEvent.hpp> #include "config.h" #include "elog_entry.hpp" @@ -43,8 +42,12 @@ void Manager::commit(uint64_t transactionId, std::string errMsg) } std::string transactionIdStr = std::to_string(transactionId); - std::set<std::string> metalist(g_errMetaMap[errMsg].begin(), - g_errMetaMap[errMsg].end()); + std::set<std::string> metalist; + auto metamap = g_errMetaMap.find(errMsg); + if (metamap != g_errMetaMap.end()) + { + metalist.insert(metamap->second.begin(), metamap->second.end()); + } const auto& metalistHostEvent = g_errMetaMapHostEvent[errMsg]; std::vector<std::string> additionalData; @@ -136,12 +139,18 @@ void Manager::commit(uint64_t transactionId, std::string errMsg) AssociationList objects {}; processMetadata(errMsg, additionalData, objects); + level reqLevel = level::INFO; // Default to INFO + auto levelmap = g_errLevelMap.find(errMsg); + if (levelmap != g_errLevelMap.end()) + { + reqLevel = levelmap->second; + } entries.insert(std::make_pair(entryId, std::make_unique<Entry>( busLog, objPath, entryId, ms, // Milliseconds since 1970 - (Entry::Level)g_errLevelMap[errMsg], + static_cast<Entry::Level>(reqLevel), std::move(errMsg), std::move(additionalData), std::move(objects)))); diff --git a/log_manager.hpp b/log_manager.hpp index 285b337..e2a3359 100644 --- a/log_manager.hpp +++ b/log_manager.hpp @@ -1,6 +1,7 @@ #pragma once #include <sdbusplus/bus.hpp> +#include <phosphor-logging/log.hpp> #include "elog_entry.hpp" #include "xyz/openbmc_project/Logging/Internal/Manager/server.hpp" @@ -8,6 +9,10 @@ namespace phosphor { namespace logging { + +extern const std::map<std::string,std::vector<std::string>> g_errMetaMap; +extern const std::map<std::string,level> g_errLevelMap; + namespace details { diff --git a/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp b/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp index 5e9e1ba..efa5278 100644 --- a/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp +++ b/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp @@ -4,6 +4,7 @@ // See elog-gen.py for more details #include <map> #include <vector> +#include <log_manager.hpp> #include <phosphor-logging/log.hpp> namespace phosphor @@ -12,7 +13,7 @@ namespace phosphor namespace logging { -std::map<std::string,std::vector<std::string>> g_errMetaMap = { +const std::map<std::string,std::vector<std::string>> g_errMetaMap = { % for name in errors: <% meta_list = [] @@ -33,7 +34,7 @@ std::map<std::string,std::vector<std::string>> g_errMetaMap = { % endfor }; -std::map<std::string,level> g_errLevelMap = { +const std::map<std::string,level> g_errLevelMap = { % for a in errors: {"${a}",level::${error_lvl[a]}}, % endfor |