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