blob: 38ff424e1bd52ff61574ffc9dafb8e3e37108923 [file] [log] [blame]
Deepak Kodihalli72654f12017-06-12 04:33:29 -05001#pragma once
2
Patrick Venturef18bf832018-10-26 18:14:00 -07003#include "config.h"
4
5#include "elog_entry.hpp"
6
Patrick Williams331c4852021-04-16 15:38:59 -05007#include <filesystem>
Deepak Kodihalli72654f12017-06-12 04:33:29 -05008#include <string>
9#include <vector>
Deepak Kodihalli72654f12017-06-12 04:33:29 -050010
11namespace phosphor
12{
13namespace logging
14{
15
Patrick Williams331c4852021-04-16 15:38:59 -050016namespace fs = std::filesystem;
Deepak Kodihalli72654f12017-06-12 04:33:29 -050017
Deepak Kodihalli72654f12017-06-12 04:33:29 -050018/** @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 */
24fs::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 */
33bool deserialize(const fs::path& path, Entry& e);
34
Matt Spinlerfb978da2022-01-21 08:42:24 -060035/** @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 */
Patrick Williams075c7922024-08-16 15:19:49 -040041fs::path getEntrySerializePath(
42 uint32_t id, const fs::path& dir = fs::path(ERRLOG_PERSIST_PATH));
Matt Spinlerfb978da2022-01-21 08:42:24 -060043
Deepak Kodihalli72654f12017-06-12 04:33:29 -050044} // namespace logging
45} // namespace phosphor