xref: /openbmc/phosphor-bmc-code-mgmt/bmc/serialize.hpp (revision cab87e9cdeeb3e166d6d577511f6be4dc7721aca)
1*cab87e9cSJagpal Singh Gill #pragma once
2*cab87e9cSJagpal Singh Gill 
3*cab87e9cSJagpal Singh Gill #include "config.h"
4*cab87e9cSJagpal Singh Gill 
5*cab87e9cSJagpal Singh Gill #include "version.hpp"
6*cab87e9cSJagpal Singh Gill 
7*cab87e9cSJagpal Singh Gill #include <string>
8*cab87e9cSJagpal Singh Gill 
9*cab87e9cSJagpal Singh Gill namespace phosphor
10*cab87e9cSJagpal Singh Gill {
11*cab87e9cSJagpal Singh Gill namespace software
12*cab87e9cSJagpal Singh Gill {
13*cab87e9cSJagpal Singh Gill namespace updater
14*cab87e9cSJagpal Singh Gill {
15*cab87e9cSJagpal Singh Gill 
16*cab87e9cSJagpal Singh Gill using VersionPurpose =
17*cab87e9cSJagpal Singh Gill     sdbusplus::server::xyz::openbmc_project::software::Version::VersionPurpose;
18*cab87e9cSJagpal Singh Gill 
19*cab87e9cSJagpal Singh Gill /** @brief Serialization function - stores priority information to file
20*cab87e9cSJagpal Singh Gill  *  @param[in] flashId - The flash id of the version for which to store
21*cab87e9cSJagpal Singh Gill  *                       information.
22*cab87e9cSJagpal Singh Gill  *  @param[in] priority - RedundancyPriority value for that version.
23*cab87e9cSJagpal Singh Gill  **/
24*cab87e9cSJagpal Singh Gill void storePriority(const std::string& flashId, uint8_t priority);
25*cab87e9cSJagpal Singh Gill 
26*cab87e9cSJagpal Singh Gill /** @brief Serialization function - stores purpose information to file
27*cab87e9cSJagpal Singh Gill  *  @param[in] flashId - The flash id of the version for which to store
28*cab87e9cSJagpal Singh Gill  *                       information.
29*cab87e9cSJagpal Singh Gill  *  @param[in] purpose - VersionPurpose value for that version.
30*cab87e9cSJagpal Singh Gill  **/
31*cab87e9cSJagpal Singh Gill void storePurpose(const std::string& flashId, VersionPurpose purpose);
32*cab87e9cSJagpal Singh Gill 
33*cab87e9cSJagpal Singh Gill /** @brief Serialization function - restores priority information from file
34*cab87e9cSJagpal Singh Gill  *  @param[in] flashId - The flash id of the version for which to retrieve
35*cab87e9cSJagpal Singh Gill  *                       information.
36*cab87e9cSJagpal Singh Gill  *  @param[in] priority - RedundancyPriority reference for that version.
37*cab87e9cSJagpal Singh Gill  *  @return true if restore was successful, false if not
38*cab87e9cSJagpal Singh Gill  **/
39*cab87e9cSJagpal Singh Gill bool restorePriority(const std::string& flashId, uint8_t& priority);
40*cab87e9cSJagpal Singh Gill 
41*cab87e9cSJagpal Singh Gill /** @brief Serialization function - restores purpose information from file
42*cab87e9cSJagpal Singh Gill  *  @param[in] flashId - The flash id of the version for which to retrieve
43*cab87e9cSJagpal Singh Gill  *                       information.
44*cab87e9cSJagpal Singh Gill  *  @param[in] purpose - VersionPurpose reference for that version.
45*cab87e9cSJagpal Singh Gill  *  @return true if restore was successful, false if not
46*cab87e9cSJagpal Singh Gill  **/
47*cab87e9cSJagpal Singh Gill bool restorePurpose(const std::string& flashId, VersionPurpose& purpose);
48*cab87e9cSJagpal Singh Gill 
49*cab87e9cSJagpal Singh Gill /** @brief Removes the serial directory for a given version.
50*cab87e9cSJagpal Singh Gill  *  @param[in] flash Id - The flash id of the version for which to remove a
51*cab87e9cSJagpal Singh Gill  *                        file, if it exists.
52*cab87e9cSJagpal Singh Gill  **/
53*cab87e9cSJagpal Singh Gill void removePersistDataDirectory(const std::string& flashId);
54*cab87e9cSJagpal Singh Gill 
55*cab87e9cSJagpal Singh Gill } // namespace updater
56*cab87e9cSJagpal Singh Gill } // namespace software
57*cab87e9cSJagpal Singh Gill } // namespace phosphor
58