From 16e8754504906eaea0c8b4aba23e96fef3e5285c Mon Sep 17 00:00:00 2001 From: Deepak Kodihalli Date: Mon, 27 Feb 2017 07:07:33 -0600 Subject: metadata: add interface to build associations A metadata field found in the journal corresponding to an error could be special in the sense that it may require building specific error association objects. Add an interface to build such associations. Take advantage of the fact that every metadata has a corresponding type defined. Change-Id: I09e446879667044c009141443fc0dc6fed8a8b18 Signed-off-by: Deepak Kodihalli --- elog_meta.hpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 elog_meta.hpp (limited to 'elog_meta.hpp') diff --git a/elog_meta.hpp b/elog_meta.hpp new file mode 100644 index 0000000..9fc591d --- /dev/null +++ b/elog_meta.hpp @@ -0,0 +1,39 @@ +#pragma once + +#include +#include +#include +#include "elog_entry.hpp" + +namespace phosphor +{ +namespace logging +{ +namespace metadata +{ + +using Metadata = std::string; + +namespace associations +{ + +using Type = void(const std::string&, + const std::vector&, + AssociationList& list); + +/** @brief Build error associations specific to metadata. Specialize this + * template for handling a specific type of metadata. + * @tparam M - type of metadata + * @param [in] data - metadata to be handled + * @param [in] data - metadata key=value entries + * @param [out] list - list of error association objects + */ +template +void build(const std::string& match, + const std::vector& data, + AssociationList& list) = delete; + +} // namespace associations +} // namespace metadata +} // namespace logging +} // namespace phosphor -- cgit v1.2.1