blob: 89e01ca3ca8222ab633c7e7b8240002b0fe6f038 [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},
Matthew Barth1b4de262018-03-06 13:03:16 -060061std::vector<Trigger>{
Matthew Barthd0b90fc2018-03-05 09:38:45 -060062 %if ('timer' in event['triggers']) and \
63 (event['triggers']['timer'] is not None):
Matthew Barth1b4de262018-03-06 13:03:16 -060064 make_trigger(trigger::timer(TimerConf{
Matthew Barthd0b90fc2018-03-05 09:38:45 -060065 ${event['triggers']['timer']['interval']},
66 ${event['triggers']['timer']['type']}
Matthew Barth1b4de262018-03-06 13:03:16 -060067 }))
Matthew Barthd0b90fc2018-03-05 09:38:45 -060068 %endif
Matthew Barth702c4a52018-02-28 16:23:11 -060069},
70std::vector<Signal>{
Matthew Bartha69465a2018-03-02 13:50:59 -060071%for s in event['triggers']['signals']:
Matthew Barth702c4a52018-02-28 16:23:11 -060072 Signal{
Matthew Barth18c91032019-01-29 15:36:00 -060073 %if ('match' in s) and \
74 (s['match'] is not None):
Matthew Barth702c4a52018-02-28 16:23:11 -060075 match::${s['match']}(
76 %for i, mp in enumerate(s['mparams']):
77 %if (i+1) != len(s['mparams']):
78 "${mp}",
79 %else:
80 "${mp}"
81 %endif
82 %endfor
83 ),
Matthew Barth18c91032019-01-29 15:36:00 -060084 %else:
85 "",
86 %endif
Matthew Barth702c4a52018-02-28 16:23:11 -060087 make_handler(\
88 ${indent(genHandler(sig=s), 3)}\
89 )
90 },
91%endfor
92}
93</%def>\