Add Support to do device bind and unbind based on OCC status
Fixes openbmc/openbmc#1698
Change-Id: Iaa33c3065b0358b62e3ec7e39d4b57c6b9d181e1
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/occ_status.hpp b/occ_status.hpp
index 068f83b..5d092b7 100644
--- a/occ_status.hpp
+++ b/occ_status.hpp
@@ -3,6 +3,7 @@
#include <sdbusplus/bus.hpp>
#include <sdbusplus/server/object.hpp>
#include <org/open_power/OCC/Status/server.hpp>
+#include "occ_device.hpp"
namespace open_power
{
namespace occ
@@ -30,11 +31,19 @@
* @param[in] path - DBus object path
*/
Status(sdbusplus::bus::bus& bus, const char* path)
- : Interface(bus, path)
+ : Interface(bus, path),
+ path(path),
+ device(name + std::to_string((this->path.back() - '0') + 1))
{
// Nothing to do here
}
+ /** @brief Since we are overriding the setter-occActive but not the
+ * getter-occActive, we need to have this using in order to
+ * allow passthrough usage of the getter-occActive
+ */
+ using Base::Status::occActive;
+
/** @brief SET OccActive to True or False
*
* @param[in] value - Intended value
@@ -42,6 +51,16 @@
* @return - Updated value of the property
*/
bool occActive(bool value) override;
+
+ private:
+ /** @brief OCC dbus object path */
+ std::string path;
+
+ /** @brief occ name prefix */
+ std::string name = OCC_NAME;
+
+ /** @brief OCC device object to do bind and unbind */
+ Device device;
};
} // namespace occ