xref: /openbmc/phosphor-fan-presence/presence/templates/generated.mako.hpp (revision 5593560b1e1a7785a491d4650c4f3f61ffdaba90)
1 ## This file is a template, the comment below is emitted into the generated file
2 /* This is an auto generated file. Do not edit. */
3 #pragma once
4 
5 #include <array>
6 #include <memory>
7 #include <string>
8 #include "fallback.hpp"
9 #include "fan.hpp"
10 #include "gpio.hpp"
11 #include "tach.hpp"
12 
13 using namespace std::string_literals;
14 
15 namespace phosphor
16 {
17 namespace fan
18 {
19 namespace presence
20 {
21 
22 struct ConfigPolicy;
23 
24 struct ConfigSensors
25 {
26     using Sensors = std::array<std::unique_ptr<PresenceSensor>, ${len(sensors)}>;
27 
28     static auto& get()
29     {
30         static const Sensors sensors =
31         {
32 % for s in sensors:
33             ${s.construct(loader, indent=indent +3)},
34 % endfor
35         };
36         return sensors;
37     }
38 };
39 
40 struct ConfigFans
41 {
42     using Fans = std::array<Fan, ${len(fans)}>;
43 
44     static auto& get()
45     {
46         static const Fans fans =
47         {
48             {
49 % for f in fans:
50                 Fans::value_type{
51                     "${f.name}"s,
52                     "${f.path}"s,
53                 },
54 % endfor
55             }
56         };
57         return fans;
58     }
59 };
60 
61 struct ConfigPolicy
62 {
63     using Policies = std::array<std::unique_ptr<RedundancyPolicy>, ${len(policies)}>;
64 
65     static auto& get()
66     {
67         static const Policies policies =
68         {
69 % for p in policies:
70             ${p.construct(loader, indent=indent +3)},
71 % endfor
72         };
73         return policies;
74     }
75 };
76 } // namespace presence
77 } // namespace fan
78 } // namespace phosphor
79