blob: 406c28234cebf49b96fcc2b5e4afb2179069a13f [file] [log] [blame]
#pragma once
#include <sdbusplus/async/context.hpp>
#include <xyz/openbmc_project/Software/Update/aserver.hpp>
namespace phosphor::software
{
class Software;
};
using RequestedApplyTimes = sdbusplus::common::xyz::openbmc_project::software::
ApplyTime::RequestedApplyTimes;
namespace phosphor::software::update
{
class SoftwareUpdate :
public sdbusplus::aserver::xyz::openbmc_project::software::Update<
SoftwareUpdate>
{
public:
SoftwareUpdate(sdbusplus::async::context& ctx, const char* path,
Software& software,
const std::set<RequestedApplyTimes>& allowedApplyTimes);
auto method_call(start_update_t su, auto image, auto applyTime)
-> sdbusplus::async::task<start_update_t::return_type>;
auto get_property(allowed_apply_times_t aat) const;
private:
Software& software;
const std::set<RequestedApplyTimes> allowedApplyTimes;
};
}; // namespace phosphor::software::update