blob: 0688b7814632785609791a64d607b04ab5de5096 [file] [log] [blame]
Jayanth Othayotha320c7c2017-06-14 07:17:21 -05001#pragma once
2
3#include <sdbusplus/bus.hpp>
4#include <sdbusplus/server/object.hpp>
5
6#include "xyz/openbmc_project/Dump/Internal/Create/server.hpp"
7
8namespace phosphor
9{
10namespace dump
11{
12namespace internal
13{
14
15using CreateIface = sdbusplus::server::object::object<
16 sdbusplus::xyz::openbmc_project::Dump::Internal::server::Create>;
17
18/** @class Manager
19 * @brief Implementation for the
20 * xyz.openbmc_project.Dump.Internal.Create DBus API.
21 */
22class Manager : public CreateIface
23{
24 public:
25 Manager() = delete;
26 Manager(const Manager&) = delete;
27 Manager& operator=(const Manager&) = delete;
28 Manager(Manager&&) = delete;
29 Manager& operator=(Manager&&) = delete;
30 virtual ~Manager() = default;
31
32 /** @brief Constructor to put object onto bus at a dbus path.
33 * @param[in] bus - Bus to attach to.
34 * @param[in] path - Path to attach at.
35 */
36 Manager(sdbusplus::bus::bus& bus, const char* path) :
37 CreateIface(bus, path) {};
38
39 /** @brief Implementation for Create
40 * Create BMC Dump based on the Dump type.
41 *
42 * @param[in] type - Type of the Dump.
43 * @param[in] fullPaths - List of absolute paths to the files
44 * to be included as part of Dump package.
45 */
46 void create(
47 Type type,
48 std::vector<std::string> fullPaths) override;
49
50};
51
52} // namespace internal
53} // namespace dump
54} // namespace phosphor