summaryrefslogtreecommitdiffstats
path: root/generated.mako.cpp
blob: 984f00b795340f30f1b985cee94c50ab59c8a5ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
## This file is a template.  The comment below is emitted
## into the rendered file; feel free to edit this file.
// This file was auto generated.  Do not edit.
<%
    def interface_type(interface):
        lst = interface.split('.')
        lst.insert(-1, 'server')
        return '::'.join(lst)
%>
#include "manager.hpp"
#include "utils.hpp"
% for i in interfaces:
#include <${'/'.join(i.split('.') + ['server.hpp'])}>
% endfor

namespace phosphor
{
namespace inventory
{
namespace manager
{

const Manager::Makers Manager::_makers{
% for i in interfaces:
    {
        "${i}",
        details::MakeInterface<
            details::ServerObject<
                sdbusplus::${interface_type(i)}>>::make,
    },
% endfor
};

const Manager::Events Manager::_events{
% for e in events:
    {
    % if e.get('description'):
        // ${e['description']}
    % endif
        "${e['name']}",
        std::make_tuple(
        % for i, s in enumerate(e['signature'].items()):
            % if i + 1 == len(e['signature']):
            ${'"{0}=\'{1}\'"'.format(*s)},
            % else:
            ${'"{0}=\'{1}\',"'.format(*s)}
            % endif
        % endfor
            % if e['filter'].get('args'):
            details::make_filter(filters::${e['filter']['type']}(
                % for i, a in enumerate(e['filter']['args']):
                    % if i + 1 == len(e['filter']['args']):
                "${a['value']}")),
                    % else:
                "${a['value']}",
                    % endif
                % endfor
            % else:
            details::make_filter(filters::${e['filter']['type']}),
            % endif
            % if e['action'].get('args'):
            details::make_action(actions::${e['action']['type']}(
                % for i, a in enumerate(e['action']['args']):
                    % if i + 1 == len(e['action']['args']):
                "${a['value']}"))
                    % else:
                "${a['value']}",
                    % endif
                % endfor
            % else:
            details::make_action(actions::${e['action']['type']})
            % endif
        ),
    },
% endfor
};

} // namespace manager
} // namespace inventory
} // namespace phosphor
OpenPOWER on IntegriCloud