1 #pragma once 2 3 #include "config.h" 4 5 #include "elog_entry.hpp" 6 7 #include <filesystem> 8 #include <string> 9 #include <vector> 10 11 namespace phosphor 12 { 13 namespace logging 14 { 15 16 namespace fs = std::filesystem; 17 18 /** @brief Serialize and persist error d-bus object 19 * @param[in] a - const reference to error entry. 20 * @param[in] dir - pathname of directory where the serialized error will 21 * be placed. 22 * @return fs::path - pathname of persisted error file 23 */ 24 fs::path serialize(const Entry& e, 25 const fs::path& dir = fs::path(ERRLOG_PERSIST_PATH)); 26 27 /** @brief Deserialze a persisted error into a d-bus object 28 * @param[in] path - pathname of persisted error file 29 * @param[in] e - reference to error object which is the target of 30 * deserialization. 31 * @return bool - true if the deserialization was successful, false otherwise. 32 */ 33 bool deserialize(const fs::path& path, Entry& e); 34 35 /** @brief Return the path to serialize a log entry to 36 * @param[in] id - log entry ID 37 * @param[in] dir - pathname of directory where the serialized error will 38 * be placed. 39 * @return fs::path - pathname of persisted error file 40 */ 41 fs::path 42 getEntrySerializePath(uint32_t id, 43 const fs::path& dir = fs::path(ERRLOG_PERSIST_PATH)); 44 45 } // namespace logging 46 } // namespace phosphor 47