Implement OCC status interface
Change-Id: I43822cb28bc2d23398fb09352c9876e169c666f7
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/occ_status.hpp b/occ_status.hpp
new file mode 100644
index 0000000..068f83b
--- /dev/null
+++ b/occ_status.hpp
@@ -0,0 +1,48 @@
+#pragma once
+
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server/object.hpp>
+#include <org/open_power/OCC/Status/server.hpp>
+namespace open_power
+{
+namespace occ
+{
+
+namespace Base = sdbusplus::org::open_power::OCC::server;
+using Interface = sdbusplus::server::object::object<Base::Status>;
+
+/** @class Status
+ * @brief Implementation of OCC Active Status
+ */
+class Status : public Interface
+{
+ public:
+ Status() = delete;
+ ~Status() = default;
+ Status(const Status&) = delete;
+ Status& operator=(const Status&) = delete;
+ Status(Status&&) = default;
+ Status& operator=(Status&&) = default;
+
+ /** @brief Constructs the Status object
+ *
+ * @param[in] bus - DBus bus to attach to
+ * @param[in] path - DBus object path
+ */
+ Status(sdbusplus::bus::bus& bus, const char* path)
+ : Interface(bus, path)
+ {
+ // Nothing to do here
+ }
+
+ /** @brief SET OccActive to True or False
+ *
+ * @param[in] value - Intended value
+ *
+ * @return - Updated value of the property
+ */
+ bool occActive(bool value) override;
+};
+
+} // namespace occ
+} // namespace open_power