Add initial code for IPMI SoftPowerOff functionality

This commit puts a skeleton layout for the IPMI Soft Power Off
functionality.

Change-Id: I7c3ededc9d4038e172d7f6230270ecfe397330e9
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/softoff/softoff.hpp b/softoff/softoff.hpp
new file mode 100644
index 0000000..93dfb26
--- /dev/null
+++ b/softoff/softoff.hpp
@@ -0,0 +1,33 @@
+#pragma once
+
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server/object.hpp>
+#include <xyz/openbmc_project/Ipmi/Internal/SoftPowerOff/server.hpp>
+namespace phosphor
+{
+namespace ipmi
+{
+
+namespace Base = sdbusplus::xyz::openbmc_project::Ipmi::Internal::server;
+
+/** @class SoftPowerOff
+ *  @brief Responsible for coordinating Host SoftPowerOff operation
+ */
+class SoftPowerOff : public sdbusplus::server::object::object<
+                     Base::SoftPowerOff>
+{
+    public:
+        /** @brief Constructs SoftPowerOff object.
+         *
+         *  @param[in] bus       - system dbus handler
+         *  @param[in] objPath   - The Dbus path that hosts SoftPowerOff function
+         */
+        SoftPowerOff(sdbusplus::bus::bus& bus,
+                     const char* objPath) :
+            sdbusplus::server::object::object<Base::SoftPowerOff>(bus, objPath)
+        {
+            // Nothing to do here
+        }
+};
+} // namespace ipmi
+} // namespace phosphor