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