1 #pragma once
2 
3 #include <memory>
4 #include <vector>
5 #include <sdbusplus/bus.hpp>
6 #include "types.hpp"
7 
8 namespace phosphor
9 {
10 namespace fan
11 {
12 namespace control
13 {
14 
15 /**
16  * @class Fan control manager
17  */
18 class Manager
19 {
20     public:
21 
22         Manager() = delete;
23         Manager(const Manager&) = delete;
24         Manager(Manager&&) = default;
25         Manager& operator=(const Manager&) = delete;
26         Manager& operator=(Manager&&) = delete;
27         ~Manager() = default;
28 
29         /**
30          * Constructor
31          * Creates the Zone objects based on the
32          * _zoneLayouts data.
33          *
34          * @param[in] bus - The dbus object
35          */
36         Manager(sdbusplus::bus::bus& bus);
37 
38     private:
39 
40         /**
41          * The dbus object
42          */
43         sdbusplus::bus::bus& _bus;
44 
45         /**
46          * The fan zone layout for the system.
47          * This is generated data.
48          */
49         static const std::vector<ZoneGroup> _zoneLayouts;
50 };
51 
52 
53 }
54 }
55 }
56