| #pragma once |
| |
| #include <sdbusplus/async/context.hpp> |
| #include <sdbusplus/async/match.hpp> |
| #include <xyz/openbmc_project/State/Host/client.hpp> |
| |
| namespace phosphor::software::host_power |
| { |
| |
| const auto stateOn = |
| sdbusplus::client::xyz::openbmc_project::state::Host<>::HostState::Running; |
| const auto stateOff = |
| sdbusplus::client::xyz::openbmc_project::state::Host<>::HostState::Off; |
| |
| using HostState = |
| sdbusplus::client::xyz::openbmc_project::state::Host<>::HostState; |
| |
| class HostPower |
| { |
| public: |
| HostPower(sdbusplus::async::context& ctx); |
| |
| // @param state desired powerstate |
| // @returns true on success |
| static sdbusplus::async::task<bool> setState(sdbusplus::async::context& ctx, |
| HostState state); |
| |
| // @returns host powerstate |
| static sdbusplus::async::task<HostState> getState( |
| sdbusplus::async::context& ctx); |
| |
| sdbusplus::async::match stateChangedMatch; |
| }; |
| |
| }; // namespace phosphor::software::host_power |