blob: 0bc76847ede70c409fb07420653386812b459f10 [file] [log] [blame]
#pragma once
#include <string>
#include <vector>
#include <experimental/filesystem>
#include "host_state_manager.hpp"
#include "config.h"
namespace phosphor
{
namespace state
{
namespace manager
{
namespace fs = std::experimental::filesystem;
/** @brief Serialize and persist requested host state
* @param[in] host - const reference to host state.
* @param[in] dir - pathname of file where the serialized host state will
* be placed.
* @return fs::path - pathname of persisted requested host state.
*/
fs::path serialize(const Host& host,
const fs::path& dir = fs::path(HOST_STATE_PERSIST_PATH));
/** @brief Deserialze a persisted requested host state.
* @param[in] path - pathname of persisted host state file
* @param[in] host - reference to host state object which is the target of
* deserialization.
* @return bool - true if the deserialization was successful, false otherwise.
*/
bool deserialize(const fs::path& path, Host& host);
} // namespace manager
} // namespace state
} // namespace phosphor