blob: 44f445e9bf61cb49c3b0d34a39181133e736dbfe [file] [log] [blame]
Matt Spinlere10416e2017-04-10 14:15:53 -05001#pragma once
2
3#include <memory>
4#include <vector>
5#include <sdbusplus/bus.hpp>
6#include "types.hpp"
7
8namespace phosphor
9{
10namespace fan
11{
12namespace control
13{
14
15/**
16 * @class Fan control manager
17 */
18class 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}