blob: 9d664610d7fbd38426f80f3e87a9d9715b0b520c [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
Matthew Barthcd3bfbc2018-03-07 16:26:03 -06006<%def name="genParams(par)" buffered="True">
7%if ('type' in par['hparams']) and \
8 (par['hparams']['type'] is not None):
9handler::${par['handler']}<${par['hparams']['type']}>(
10%else:
11handler::${par['handler']}(
12%endif
13%for i, hpk in enumerate(par['hparams']['params']):
14 %if (i+1) != len(par['hparams']['params']):
15 ${par['hparams'][hpk]},
16 %else:
17 ${par['hparams'][hpk]}
18 %endif
19%endfor
20)
21</%def>\
22
Matthew Barth702c4a52018-02-28 16:23:11 -060023<%def name="genHandler(sig)" buffered="True">
24%if ('type' in sig['sparams']) and \
25 (sig['sparams']['type'] is not None):
26${sig['signal']}<${sig['sparams']['type']}>(
27%else:
28${sig['signal']}(
29%endif
30%for spk in sig['sparams']['params']:
31${sig['sparams'][spk]},
32%endfor
Matthew Barthcd3bfbc2018-03-07 16:26:03 -060033${genParams(par=sig)}\
34)
Matthew Barth702c4a52018-02-28 16:23:11 -060035</%def>\
36
37<%def name="genSSE(event)" buffered="True">
38Group{
39%for group in event['groups']:
40%for member in group['members']:
41{
42 "${member['object']}",
Matthew Barth146b7392018-03-08 16:17:58 -060043 "${member['interface']}",
44 "${member['property']}"
Matthew Barth702c4a52018-02-28 16:23:11 -060045},
46%endfor
47%endfor
48},
49std::vector<Action>{
50%for a in event['action']:
51%if len(a['parameters']) != 0:
52make_action(action::${a['name']}(
53%else:
54make_action(action::${a['name']}
55%endif
56%for i, p in enumerate(a['parameters']):
57%if (i+1) != len(a['parameters']):
58 ${p},
59%else:
60 ${p})
61%endif
62%endfor
63),
64%endfor
65},
Matthew Barth1b4de262018-03-06 13:03:16 -060066std::vector<Trigger>{
Matthew Barthd0b90fc2018-03-05 09:38:45 -060067 %if ('timer' in event['triggers']) and \
68 (event['triggers']['timer'] is not None):
Matthew Barth1b4de262018-03-06 13:03:16 -060069 make_trigger(trigger::timer(TimerConf{
Matthew Barthd0b90fc2018-03-05 09:38:45 -060070 ${event['triggers']['timer']['interval']},
71 ${event['triggers']['timer']['type']}
Matthew Barth016bd242018-03-07 16:06:06 -060072 })),
Matthew Barthd0b90fc2018-03-05 09:38:45 -060073 %endif
Matthew Barth016bd242018-03-07 16:06:06 -060074 %if ('signals' in event['triggers']) and \
75 (event['triggers']['signals'] is not None):
76 %for s in event['triggers']['signals']:
77 make_trigger(trigger::signal(
Matthew Barth18c91032019-01-29 15:36:00 -060078 %if ('match' in s) and \
79 (s['match'] is not None):
Matthew Barth702c4a52018-02-28 16:23:11 -060080 match::${s['match']}(
81 %for i, mp in enumerate(s['mparams']):
82 %if (i+1) != len(s['mparams']):
83 "${mp}",
84 %else:
85 "${mp}"
86 %endif
87 %endfor
88 ),
Matthew Barth18c91032019-01-29 15:36:00 -060089 %else:
90 "",
91 %endif
Matthew Barth702c4a52018-02-28 16:23:11 -060092 make_handler(\
93 ${indent(genHandler(sig=s), 3)}\
94 )
Matthew Barth016bd242018-03-07 16:06:06 -060095 )),
96 %endfor
97 %endif
Matthew Barthcd3bfbc2018-03-07 16:26:03 -060098 %if ('init' in event['triggers']):
99 %for i in event['triggers']['init']:
100 make_trigger(trigger::init(
101 %if ('handler' in i):
102 make_handler(\
103 ${indent(genParams(par=i), 3)}\
104 )
105 %endif
106 )),
107 %endfor
108 %endif
Matthew Barth016bd242018-03-07 16:06:06 -0600109},
Matthew Barth702c4a52018-02-28 16:23:11 -0600110</%def>\