#pragma once #include #include 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& allowedApplyTimes); auto method_call(start_update_t su, auto image, auto applyTime) -> sdbusplus::async::task; auto get_property(allowed_apply_times_t aat) const; private: Software& software; const std::set allowedApplyTimes; }; }; // namespace phosphor::software::update