blob: 3bec2a9ba3a5e0477073d9dc5d4987510d17874a [file] [log] [blame]
#pragma once
#include <tuple>
#include <systemd/sd-bus.h>
#include <sdbusplus/server.hpp>
namespace sdbusplus
{
namespace xyz
{
namespace openbmc_project
{
namespace Logging
{
namespace Internal
{
namespace server
{
class Manager
{
public:
/* Define all of the basic class operations:
* Not allowed:
* - Default constructor to avoid nullptrs.
* - Copy operations due to internal unique_ptr.
* Allowed:
* - Move operations.
* - Destructor.
*/
Manager() = delete;
Manager(const Manager&) = delete;
Manager& operator=(const Manager&) = delete;
Manager(Manager&&) = default;
Manager& operator=(Manager&&) = default;
virtual ~Manager() = default;
/** @brief Constructor to put object onto bus at a dbus path.
* @param[in] bus - Bus to attach to.
* @param[in] path - Path to attach at.
*/
Manager(bus::bus& bus, const char* path);
/** @brief Implementation for Commit
* Write the requested error/event entry with its associated metadata fields to flash.
*
* @param[in] transactionId - The unique identifier of the journal entry(ies) to be committed.
* @param[in] errMsg - The error exception message associated with the error event log to be committed.
*/
virtual void commit(
uint64_t transactionId,
std::string errMsg) = 0;
private:
/** @brief sd-bus callback for Commit
*/
static int _callback_Commit(
sd_bus_message*, void*, sd_bus_error*);
static constexpr auto _interface = "xyz.openbmc_project.Logging.Internal.Manager";
static const vtable::vtable_t _vtable[];
sdbusplus::server::interface::interface
_xyz_openbmc_project_Logging_Internal_Manager_interface;
};
} // namespace server
} // namespace Internal
} // namespace Logging
} // namespace openbmc_project
} // namespace xyz
} // namespace sdbusplus