1*0ab32b3fSAlexander Hansen #pragma once 2*0ab32b3fSAlexander Hansen 3*0ab32b3fSAlexander Hansen #include <sdbusplus/asio/connection.hpp> 4*0ab32b3fSAlexander Hansen #include <sdbusplus/bus/match.hpp> 5*0ab32b3fSAlexander Hansen 6*0ab32b3fSAlexander Hansen namespace power 7*0ab32b3fSAlexander Hansen { 8*0ab32b3fSAlexander Hansen 9*0ab32b3fSAlexander Hansen const static constexpr char* busname = "xyz.openbmc_project.State.Host"; 10*0ab32b3fSAlexander Hansen const static constexpr char* interface = "xyz.openbmc_project.State.Host"; 11*0ab32b3fSAlexander Hansen const static constexpr char* path = "/xyz/openbmc_project/state/host0"; 12*0ab32b3fSAlexander Hansen const static constexpr char* property = "CurrentHostState"; 13*0ab32b3fSAlexander Hansen 14*0ab32b3fSAlexander Hansen class PowerStatusMonitor 15*0ab32b3fSAlexander Hansen { 16*0ab32b3fSAlexander Hansen public: 17*0ab32b3fSAlexander Hansen bool isPowerOn(); 18*0ab32b3fSAlexander Hansen void setupPowerMatch( 19*0ab32b3fSAlexander Hansen const std::shared_ptr<sdbusplus::asio::connection>& conn); 20*0ab32b3fSAlexander Hansen 21*0ab32b3fSAlexander Hansen private: 22*0ab32b3fSAlexander Hansen bool powerStatusOn = false; 23*0ab32b3fSAlexander Hansen std::unique_ptr<sdbusplus::bus::match_t> powerMatch = nullptr; 24*0ab32b3fSAlexander Hansen }; 25*0ab32b3fSAlexander Hansen 26*0ab32b3fSAlexander Hansen } // namespace power 27