1 ## This file is a template.  The comment below is emitted
2 ## into the rendered file; feel free to edit this file.
3 // This file was auto generated.  Do not edit.
4 <%
5     def interface_type(interface):
6         lst = interface.split('.')
7         lst.insert(-1, 'server')
8         return '::'.join(lst)
9 %>
10 #include "manager.hpp"
11 % for i in interfaces:
12 #include <${'/'.join(i.split('.') + ['server.hpp'])}>
13 % endfor
14 
15 namespace phosphor
16 {
17 namespace inventory
18 {
19 namespace manager
20 {
21 
22 const Manager::Makers Manager::_makers{
23 % for i in interfaces:
24     {
25         "${i}",
26         details::interface::holder::Holder<
27             details::ServerObject<
28                 sdbusplus::${interface_type(i)}>>::make,
29     },
30 % endfor
31 };
32 
33 const Manager::Events Manager::_events{
34 % for e in events:
35     {
36     % if e.get('description'):
37         // ${e['description']}
38     % endif
39         "${e['name']}",
40         std::make_tuple(
41         % for i, s in enumerate(e['signature'].items()):
42             % if i + 1 == len(e['signature']):
43             ${'"{0}=\'{1}\'"'.format(*s)},
44             % else:
45             ${'"{0}=\'{1}\',"'.format(*s)}
46             % endif
47         % endfor
48             % if e['filter'].get('args'):
49             filters::${e['filter']['type']}(
50                 % for i, a in enumerate(e['filter']['args']):
51                     % if i + 1 == len(e['filter']['args']):
52                 "${a['value']}"),
53                     % else:
54                 "${a['value']}",
55                     % endif
56                 % endfor
57             % else:
58             filters::${e['filter']['type']},
59             % endif
60             % if e['action'].get('args'):
61             actions::${e['action']['type']}(
62                 % for i, a in enumerate(e['action']['args']):
63                     % if i + 1 == len(e['action']['args']):
64                 "${a['value']}")
65                     % else:
66                 "${a['value']}",
67                     % endif
68                 % endfor
69             % else:
70             actions::${e['action']['type']}
71             % endif
72         ),
73     },
74 % endfor
75 };
76 
77 } // namespace manager
78 } // namespace inventory
79 } // namespace phosphor
80