diff options
author | Deepak Kodihalli <dkodihal@in.ibm.com> | 2017-01-19 03:40:12 -0600 |
---|---|---|
committer | Deepak Kodihalli <dkodihal@in.ibm.com> | 2017-01-27 10:43:25 -0600 |
commit | f2462f0f7404400b888f47ea21c16a67dd429eb8 (patch) | |
tree | ce57fc23215e4e3fe0837597b00a2804dddda850 /tools | |
parent | 5d1aace69bea0c76229335dcdc09ec63eda63931 (diff) | |
download | phosphor-logging-f2462f0f7404400b888f47ea21c16a67dd429eb8.tar.gz phosphor-logging-f2462f0f7404400b888f47ea21c16a67dd429eb8.zip |
elog-gen.py : implement error inheritance
If an error inherits another error (via the error YAML interface), have
the child error inherit parent's metadata. Only single inheritance is
supported as of now.
Change-Id: I9ff295f4db04a9c5389f66e04f5d28287f9628a9
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/elog-gen.py | 3 | ||||
-rw-r--r-- | tools/phosphor-logging/templates/elog-gen-template.mako.hpp | 11 |
2 files changed, 12 insertions, 2 deletions
diff --git a/tools/elog-gen.py b/tools/elog-gen.py index a6fdb1f..e9f4fc0 100755 --- a/tools/elog-gen.py +++ b/tools/elog-gen.py @@ -151,7 +151,8 @@ def gen_elog_hpp(i_yaml_dir, i_output_hpp, f.write(template.render( errors=errors, error_msg=error_msg, error_lvl=error_lvl, meta=meta, - meta_data=meta_data, error_namespace=i_error_namespace)) + meta_data=meta_data, error_namespace=i_error_namespace, + parents=parents)) f.close() diff --git a/tools/phosphor-logging/templates/elog-gen-template.mako.hpp b/tools/phosphor-logging/templates/elog-gen-template.mako.hpp index 4222f08..e39deea 100644 --- a/tools/phosphor-logging/templates/elog-gen-template.mako.hpp +++ b/tools/phosphor-logging/templates/elog-gen-template.mako.hpp @@ -42,7 +42,16 @@ struct ${b} % endfor } // namespace _${classname} -<% meta_string = ', '.join(meta[name]) %> +<% + meta_string = ', '.join(meta[name]) + + parent = parents[name] + while parent: + parent_meta = [parent + "::" + p for p in meta[parent]] + parent_meta = ', '.join(parent_meta) + meta_string = meta_string + ", " + parent_meta + parent = parents[parent] +%> struct ${classname} { static constexpr auto err_code = "${name}"; |