summaryrefslogtreecommitdiffstats
path: root/control/templates/defs.mako
diff options
context:
space:
mode:
authorMatthew Barth <msbarth@us.ibm.com>2018-02-28 16:23:11 -0600
committerMatthew Barth <msbarth@linux.ibm.com>2018-05-11 16:30:36 +0000
commit702c4a55a69915c3ab3506ee552acc5c21e06e2a (patch)
tree45bf5facb710cc3ee303c0bff5f64f329db1a753 /control/templates/defs.mako
parent9af27f65bffea7a90d29f4c558a1c4c20616a069 (diff)
downloadphosphor-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.mako83
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>\
OpenPOWER on IntegriCloud