blob: 1cd161219b7968ee6c0b3b77d2604a5505062d16 [file] [log] [blame]
Patrick Venture09334bb2020-08-16 12:22:54 -07001#pragma once
2
3#include <cstdint>
4#include <string>
5
6namespace pid_control
7{
8namespace ipmi
9{
10
11// Implement this interface to control a zone's mode or read back its status.
12class ZoneControlInterface
13{
14 public:
15 // Reads the fan control property (either manual or failsafe) and returns an
16 // IPMI code based on success or failure of this.
17 virtual uint8_t getFanCtrlProperty(uint8_t zoneId, bool* value,
18 const std::string& property) = 0;
19
20 // Sets the fan control property (only manual mode is settable presently)
21 // and returns an IPMI code based on success or failure of this.
22 virtual uint8_t setFanCtrlProperty(uint8_t zoneId, bool value,
23 const std::string& property) = 0;
24};
25
26} // namespace ipmi
27} // namespace pid_control