blob: 4f1f0adda33e010f0b78a56a5d217d8e23b1e55c [file] [log] [blame]
#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