blob: fd8d97d8914a456c0c36fec9ce1a7d7f4ac49a3e [file] [log] [blame]
Matthew Barth702c4a52018-02-28 16:23:11 -06001<%!
2def indent(str, depth):
3 return ''.join(4*' '*depth+line for line in str.splitlines(True))
4%>\
5
6<%def name="genHandler(sig)" buffered="True">
7%if ('type' in sig['sparams']) and \
8 (sig['sparams']['type'] is not None):
9${sig['signal']}<${sig['sparams']['type']}>(
10%else:
11${sig['signal']}(
12%endif
13%for spk in sig['sparams']['params']:
14${sig['sparams'][spk]},
15%endfor
16%if ('type' in sig['hparams']) and \
17 (sig['hparams']['type'] is not None):
18handler::${sig['handler']}<${sig['hparams']['type']}>(
19%else:
20handler::${sig['handler']}(
21%endif
22%for i, hpk in enumerate(sig['hparams']['params']):
23 %if (i+1) != len(sig['hparams']['params']):
24 ${sig['hparams'][hpk]},
25 %else:
26 ${sig['hparams'][hpk]}
27 %endif
28%endfor
29))
30</%def>\
31
32<%def name="genSSE(event)" buffered="True">
33Group{
34%for group in event['groups']:
35%for member in group['members']:
36{
37 "${member['object']}",
38 {"${member['interface']}",
39 "${member['property']}"}
40},
41%endfor
42%endfor
43},
44std::vector<Action>{
45%for a in event['action']:
46%if len(a['parameters']) != 0:
47make_action(action::${a['name']}(
48%else:
49make_action(action::${a['name']}
50%endif
51%for i, p in enumerate(a['parameters']):
52%if (i+1) != len(a['parameters']):
53 ${p},
54%else:
55 ${p})
56%endif
57%endfor
58),
59%endfor
60},
William A. Kennington III122b8432018-10-30 18:39:21 -070061TimerConf{
Matthew Barthd0b90fc2018-03-05 09:38:45 -060062 %if ('timer' in event['triggers']) and \
63 (event['triggers']['timer'] is not None):
64 ${event['triggers']['timer']['interval']},
65 ${event['triggers']['timer']['type']}
66 %endif
Matthew Barth702c4a52018-02-28 16:23:11 -060067},
68std::vector<Signal>{
Matthew Bartha69465a2018-03-02 13:50:59 -060069%for s in event['triggers']['signals']:
Matthew Barth702c4a52018-02-28 16:23:11 -060070 Signal{
Matthew Barth18c91032019-01-29 15:36:00 -060071 %if ('match' in s) and \
72 (s['match'] is not None):
Matthew Barth702c4a52018-02-28 16:23:11 -060073 match::${s['match']}(
74 %for i, mp in enumerate(s['mparams']):
75 %if (i+1) != len(s['mparams']):
76 "${mp}",
77 %else:
78 "${mp}"
79 %endif
80 %endfor
81 ),
Matthew Barth18c91032019-01-29 15:36:00 -060082 %else:
83 "",
84 %endif
Matthew Barth702c4a52018-02-28 16:23:11 -060085 make_handler(\
86 ${indent(genHandler(sig=s), 3)}\
87 )
88 },
89%endfor
90}
91</%def>\