blob: cb7137d22e1acc95fb19e487f18c4cbc14deb3ad [file] [log] [blame]
## Note that this file is not auto generated, it is what generates the
## elog-gen.hpp file
// This file was autogenerated. Do not edit!
// See elog-gen.py for more details
#pragma once
#include <tuple>
#include <type_traits>
#include "log.hpp"
namespace phosphor
{
namespace logging
{
% for a in errors:
<%
namespaces = errors[a].split('.')
classname = namespaces.pop()
%>\
% for s in namespaces:
namespace ${s}
{
% endfor
namespace _${classname}
{
% for b in meta[a]:
struct ${b}
{
static constexpr auto str = "${meta_data[b]['str']}";
static constexpr auto str_short = "${meta_data[b]['str_short']}";
using type = std::tuple<std::decay_t<decltype(str)>,${meta_data[b]['type']}>;
explicit constexpr ${b}(${meta_data[b]['type']} a) : _entry(entry(str, a)) {};
type _entry;
};
% endfor
} // namespace _${classname}
<% meta_string = ', '.join(meta[a]) %>
struct ${classname}
{
static constexpr auto err_code = "${errors[a]}";
static constexpr auto err_msg = "${error_msg[errors[a]]}";
static constexpr auto L = level::${error_lvl[errors[a]]};
% for b in meta[a]:
using ${b} = _${classname}::${b};
% endfor
using metadata_types = std::tuple<${meta_string}>;
};
% for s in reversed(namespaces):
} // namespace ${s}
% endfor
% endfor
} // namespace logging
} // namespace phosphor