| #pragma once |
| |
| #include <cstdint> |
| #include <string> |
| |
| namespace pid_control |
| { |
| namespace ipmi |
| { |
| |
| // Implement this interface to control a zone's mode or read back its status. |
| class ZoneControlInterface |
| { |
| public: |
| virtual ~ZoneControlInterface() = default; |
| |
| // Reads the fan control property (either manual or failsafe) and returns an |
| // IPMI code based on success or failure of this. |
| virtual uint8_t getFanCtrlProperty(uint8_t zoneId, bool* value, |
| const std::string& property) = 0; |
| |
| // Sets the fan control property (only manual mode is settable presently) |
| // and returns an IPMI code based on success or failure of this. |
| virtual uint8_t setFanCtrlProperty(uint8_t zoneId, bool value, |
| const std::string& property) = 0; |
| }; |
| |
| } // namespace ipmi |
| } // namespace pid_control |