xref: /openbmc/entity-manager/src/entity_manager/power_status_monitor.hpp (revision e1646276a815471e4b3510825c21293095fc322f)
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