Implementation of create interface.
Both the external and internal Dump managers define "Create"
interfaces. This commit implements these.
Change-Id: If857ec6ea7267fd72e9b420e6b44fa68b6abab66
Signed-off-by: Jayanth Othayoth <ojayanth@in.ibm.com>
diff --git a/dump_internal.hpp b/dump_internal.hpp
new file mode 100644
index 0000000..0688b78
--- /dev/null
+++ b/dump_internal.hpp
@@ -0,0 +1,54 @@
+#pragma once
+
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server/object.hpp>
+
+#include "xyz/openbmc_project/Dump/Internal/Create/server.hpp"
+
+namespace phosphor
+{
+namespace dump
+{
+namespace internal
+{
+
+using CreateIface = sdbusplus::server::object::object<
+ sdbusplus::xyz::openbmc_project::Dump::Internal::server::Create>;
+
+/** @class Manager
+ * @brief Implementation for the
+ * xyz.openbmc_project.Dump.Internal.Create DBus API.
+ */
+class Manager : public CreateIface
+{
+ public:
+ Manager() = delete;
+ Manager(const Manager&) = delete;
+ Manager& operator=(const Manager&) = delete;
+ Manager(Manager&&) = delete;
+ Manager& operator=(Manager&&) = delete;
+ 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(sdbusplus::bus::bus& bus, const char* path) :
+ CreateIface(bus, path) {};
+
+ /** @brief Implementation for Create
+ * Create BMC Dump based on the Dump type.
+ *
+ * @param[in] type - Type of the Dump.
+ * @param[in] fullPaths - List of absolute paths to the files
+ * to be included as part of Dump package.
+ */
+ void create(
+ Type type,
+ std::vector<std::string> fullPaths) override;
+
+};
+
+} // namespace internal
+} // namespace dump
+} // namespace phosphor