| Alexander Hansen | 1e833b4 | 2025-03-04 10:20:33 +0100 | [diff] [blame] | 1 | #pragma once | 
|  | 2 |  | 
|  | 3 | #include <sdbusplus/async/context.hpp> | 
|  | 4 | #include <sdbusplus/async/match.hpp> | 
|  | 5 | #include <xyz/openbmc_project/State/Host/client.hpp> | 
|  | 6 |  | 
|  | 7 | namespace phosphor::software::host_power | 
|  | 8 | { | 
|  | 9 |  | 
|  | 10 | const auto stateOn = | 
|  | 11 | sdbusplus::client::xyz::openbmc_project::state::Host<>::HostState::Running; | 
|  | 12 | const auto stateOff = | 
|  | 13 | sdbusplus::client::xyz::openbmc_project::state::Host<>::HostState::Off; | 
|  | 14 |  | 
|  | 15 | using HostState = | 
|  | 16 | sdbusplus::client::xyz::openbmc_project::state::Host<>::HostState; | 
|  | 17 |  | 
|  | 18 | class HostPower | 
|  | 19 | { | 
|  | 20 | public: | 
|  | 21 | HostPower(sdbusplus::async::context& ctx); | 
|  | 22 |  | 
|  | 23 | // @param state   desired powerstate | 
|  | 24 | // @returns       true on success | 
|  | 25 | static sdbusplus::async::task<bool> setState(sdbusplus::async::context& ctx, | 
|  | 26 | HostState state); | 
|  | 27 |  | 
|  | 28 | // @returns       host powerstate | 
|  | 29 | static sdbusplus::async::task<HostState> getState( | 
|  | 30 | sdbusplus::async::context& ctx); | 
|  | 31 |  | 
|  | 32 | sdbusplus::async::match stateChangedMatch; | 
|  | 33 | }; | 
|  | 34 |  | 
|  | 35 | }; // namespace phosphor::software::host_power |