diff options
author | Matthew Barth <msbarth@us.ibm.com> | 2018-02-28 16:23:11 -0600 |
---|---|---|
committer | Matthew Barth <msbarth@linux.ibm.com> | 2018-05-11 16:30:36 +0000 |
commit | 702c4a55a69915c3ab3506ee552acc5c21e06e2a (patch) | |
tree | 45bf5facb710cc3ee303c0bff5f64f329db1a753 /control/templates/defs.mako | |
parent | 9af27f65bffea7a90d29f4c558a1c4c20616a069 (diff) | |
download | phosphor-fan-presence-702c4a55a69915c3ab3506ee552acc5c21e06e2a.tar.gz phosphor-fan-presence-702c4a55a69915c3ab3506ee552acc5c21e06e2a.zip |
Move generated code template to file
In preparation of enhancing the generated code format, the template used
has been externalized and will continue to be modified in future commits
to parse & generate more efficiently.
Tested:
Generated code remains unchanged
Resolves openbmc/phosphor-fan-presence#8
Change-Id: Ifbf718e8a22acb2f2f939bbdcc2e7fe041e9ed58
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
Diffstat (limited to 'control/templates/defs.mako')
-rw-r--r-- | control/templates/defs.mako | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/control/templates/defs.mako b/control/templates/defs.mako new file mode 100644 index 0000000..0980f81 --- /dev/null +++ b/control/templates/defs.mako @@ -0,0 +1,83 @@ +<%! +def indent(str, depth): + return ''.join(4*' '*depth+line for line in str.splitlines(True)) +%>\ + +<%def name="genHandler(sig)" buffered="True"> +%if ('type' in sig['sparams']) and \ + (sig['sparams']['type'] is not None): +${sig['signal']}<${sig['sparams']['type']}>( +%else: +${sig['signal']}( +%endif +%for spk in sig['sparams']['params']: +${sig['sparams'][spk]}, +%endfor +%if ('type' in sig['hparams']) and \ + (sig['hparams']['type'] is not None): +handler::${sig['handler']}<${sig['hparams']['type']}>( +%else: +handler::${sig['handler']}( +%endif +%for i, hpk in enumerate(sig['hparams']['params']): + %if (i+1) != len(sig['hparams']['params']): + ${sig['hparams'][hpk]}, + %else: + ${sig['hparams'][hpk]} + %endif +%endfor +)) +</%def>\ + +<%def name="genSSE(event)" buffered="True"> +Group{ +%for group in event['groups']: +%for member in group['members']: +{ + "${member['object']}", + {"${member['interface']}", + "${member['property']}"} +}, +%endfor +%endfor +}, +std::vector<Action>{ +%for a in event['action']: +%if len(a['parameters']) != 0: +make_action(action::${a['name']}( +%else: +make_action(action::${a['name']} +%endif +%for i, p in enumerate(a['parameters']): +%if (i+1) != len(a['parameters']): + ${p}, +%else: + ${p}) +%endif +%endfor +), +%endfor +}, +Timer{ + ${event['timer']['interval']}, + ${event['timer']['type']} +}, +std::vector<Signal>{ +%for s in event['signals']: + Signal{ + match::${s['match']}( + %for i, mp in enumerate(s['mparams']): + %if (i+1) != len(s['mparams']): + "${mp}", + %else: + "${mp}" + %endif + %endfor + ), + make_handler(\ + ${indent(genHandler(sig=s), 3)}\ + ) + }, +%endfor +} +</%def>\ |