blob: c5623c4001d08e48ff8cd0dc72b5cbd50d8e25d4 [file] [log] [blame]
Anupama B R08fa59e2025-03-06 22:55:11 -06001#pragma once
2
3#include <string>
4
5namespace vpd
6{
7/**
8 * @brief class to implement single fab feature.
9 *
10 * The class hosts functionalities required to support single FAB feature.
11 *
12 */
13class SingleFab
14{
15 // ToDo: public API to be implemented, which can be called by the user to
16 // support single FAB.
17
18 private:
19 /**
20 * @brief API to get IM value from persisted location.
21 *
22 * @return IM value on success, empty string otherwise.
23 */
24 std::string getImFromPersistedLocation() const noexcept;
Anupama B Rb5bfcbc2025-03-03 03:00:04 -060025
26 /**
27 * @brief API to get IM value from system planar EEPROM path.
28 *
29 * @return IM value on success, empty string otherwise.
30 */
31 std::string getImFromPlanar() const noexcept;
RekhaAparna01d3e693e2025-03-04 05:08:30 -060032
33 /**
34 * @brief API to update IM value on system planar EEPROM path.
35 *
36 * @param[in] i_imValue - IM value to be updated.
37 *
38 * @return true if value updated successfully, otherwise false.
39 */
40 bool setImOnPlanar(const std::string& i_imValue) const noexcept;
RekhaAparna01f05f3542025-03-02 22:25:23 -060041
42 /**
43 * @brief API to check is field mode enabled.
44 *
45 * @return true, if field mode is enabled. otherwise false.
46 */
47 bool isFieldModeEnabled() const noexcept;
Souvik Roycd828d42025-03-24 02:29:45 -050048
49 /**
50 * @brief API to update IM value on system planar EEPROM path to P11 series.
51 *
52 * @param[in] i_currentImValuePlanar - current IM value in planar EEPROM.
53 *
54 * @return true if IM value is updated successfully, otherwise false.
55 */
56 bool updateSystemImValueInVpdToP11Series(
57 std::string i_currentImValuePlanar) const noexcept;
Anupama B R08fa59e2025-03-06 22:55:11 -060058};
59} // namespace vpd