xref: /openbmc/entity-manager/src/entity_manager/power_status_monitor.hpp (revision 0a4bb2a943bf277a0f2a0559abbed244da2aec88)
1 #pragma once
2 
3 #include <sdbusplus/asio/connection.hpp>
4 #include <sdbusplus/bus/match.hpp>
5 
6 namespace power
7 {
8 
9 class PowerStatusMonitor
10 {
11   public:
12     bool isPowerOn();
13     void setupPowerMatch(
14         const std::shared_ptr<sdbusplus::asio::connection>& conn);
15 
16   private:
17     void handlePowerMatch(sdbusplus::message_t& message);
18 
19     bool powerStatusOn = false;
20     std::unique_ptr<sdbusplus::bus::match_t> powerMatch = nullptr;
21 };
22 
23 } // namespace power
24