blob: c5623c4001d08e48ff8cd0dc72b5cbd50d8e25d4 [file] [log] [blame]
#pragma once
#include <string>
namespace vpd
{
/**
* @brief class to implement single fab feature.
*
* The class hosts functionalities required to support single FAB feature.
*
*/
class SingleFab
{
// ToDo: public API to be implemented, which can be called by the user to
// support single FAB.
private:
/**
* @brief API to get IM value from persisted location.
*
* @return IM value on success, empty string otherwise.
*/
std::string getImFromPersistedLocation() const noexcept;
/**
* @brief API to get IM value from system planar EEPROM path.
*
* @return IM value on success, empty string otherwise.
*/
std::string getImFromPlanar() const noexcept;
/**
* @brief API to update IM value on system planar EEPROM path.
*
* @param[in] i_imValue - IM value to be updated.
*
* @return true if value updated successfully, otherwise false.
*/
bool setImOnPlanar(const std::string& i_imValue) const noexcept;
/**
* @brief API to check is field mode enabled.
*
* @return true, if field mode is enabled. otherwise false.
*/
bool isFieldModeEnabled() const noexcept;
/**
* @brief API to update IM value on system planar EEPROM path to P11 series.
*
* @param[in] i_currentImValuePlanar - current IM value in planar EEPROM.
*
* @return true if IM value is updated successfully, otherwise false.
*/
bool updateSystemImValueInVpdToP11Series(
std::string i_currentImValuePlanar) const noexcept;
};
} // namespace vpd