10ab32b3fSAlexander Hansen #pragma once 20ab32b3fSAlexander Hansen 30ab32b3fSAlexander Hansen #include <sdbusplus/asio/connection.hpp> 40ab32b3fSAlexander Hansen #include <sdbusplus/bus/match.hpp> 50ab32b3fSAlexander Hansen 60ab32b3fSAlexander Hansen namespace power 70ab32b3fSAlexander Hansen { 80ab32b3fSAlexander Hansen 90ab32b3fSAlexander Hansen class PowerStatusMonitor 100ab32b3fSAlexander Hansen { 110ab32b3fSAlexander Hansen public: 12*e1646276SAlexander Hansen explicit PowerStatusMonitor(sdbusplus::asio::connection& conn); 13*e1646276SAlexander Hansen 14*e1646276SAlexander Hansen bool isPowerOn() const; 150ab32b3fSAlexander Hansen 160ab32b3fSAlexander Hansen private: 170a4bb2a9SAlexander Hansen void handlePowerMatch(sdbusplus::message_t& message); 18*e1646276SAlexander Hansen void getInitialPowerStatus(sdbusplus::asio::connection& conn); 190a4bb2a9SAlexander Hansen 200ab32b3fSAlexander Hansen bool powerStatusOn = false; 21*e1646276SAlexander Hansen sdbusplus::bus::match_t powerMatch; 220ab32b3fSAlexander Hansen }; 230ab32b3fSAlexander Hansen 240ab32b3fSAlexander Hansen } // namespace power 25