#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(const SoftwareUpdate&) = delete; SoftwareUpdate(SoftwareUpdate&&) = delete; SoftwareUpdate& operator=(const SoftwareUpdate&) = delete; SoftwareUpdate& operator=(SoftwareUpdate&&) = delete; SoftwareUpdate(sdbusplus::async::context& ctx, const char* path, Software& software, const std::set& allowedApplyTimes); ~SoftwareUpdate(); 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