blob: bcc0c5b653a4ba4d76ea00a66886fb38279b40ff [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 Barth702c4a52018-02-28 16:23:11 -060062 ${event['timer']['interval']},
63 ${event['timer']['type']}
64},
65std::vector<Signal>{
66%for s in event['signals']:
67 Signal{
Matthew Barth18c91032019-01-29 15:36:00 -060068 %if ('match' in s) and \
69 (s['match'] is not None):
Matthew Barth702c4a52018-02-28 16:23:11 -060070 match::${s['match']}(
71 %for i, mp in enumerate(s['mparams']):
72 %if (i+1) != len(s['mparams']):
73 "${mp}",
74 %else:
75 "${mp}"
76 %endif
77 %endfor
78 ),
Matthew Barth18c91032019-01-29 15:36:00 -060079 %else:
80 "",
81 %endif
Matthew Barth702c4a52018-02-28 16:23:11 -060082 make_handler(\
83 ${indent(genHandler(sig=s), 3)}\
84 )
85 },
86%endfor
87}
88</%def>\