1*71230efdSCarol Wang #pragma once 2*71230efdSCarol Wang 3*71230efdSCarol Wang #include <sdbusplus/bus.hpp> 4*71230efdSCarol Wang #include <phosphor-logging/log.hpp> 5*71230efdSCarol Wang #include <xyz/openbmc_project/State/ScheduledHostTransition/server.hpp> 6*71230efdSCarol Wang 7*71230efdSCarol Wang namespace phosphor 8*71230efdSCarol Wang { 9*71230efdSCarol Wang namespace state 10*71230efdSCarol Wang { 11*71230efdSCarol Wang namespace manager 12*71230efdSCarol Wang { 13*71230efdSCarol Wang 14*71230efdSCarol Wang using ScheduledHostTransitionInherit = sdbusplus::server::object::object< 15*71230efdSCarol Wang sdbusplus::xyz::openbmc_project::State::server::ScheduledHostTransition>; 16*71230efdSCarol Wang 17*71230efdSCarol Wang /** @class ScheduledHostTransition 18*71230efdSCarol Wang * @brief Scheduled host transition implementation. 19*71230efdSCarol Wang * @details A concrete implementation for 20*71230efdSCarol Wang * xyz.openbmc_project.State.ScheduledHostTransition 21*71230efdSCarol Wang */ 22*71230efdSCarol Wang class ScheduledHostTransition : public ScheduledHostTransitionInherit 23*71230efdSCarol Wang { 24*71230efdSCarol Wang public: 25*71230efdSCarol Wang ScheduledHostTransition(sdbusplus::bus::bus& bus, const char* objPath) : 26*71230efdSCarol Wang ScheduledHostTransitionInherit(bus, objPath) 27*71230efdSCarol Wang { 28*71230efdSCarol Wang } 29*71230efdSCarol Wang 30*71230efdSCarol Wang ~ScheduledHostTransition() = default; 31*71230efdSCarol Wang 32*71230efdSCarol Wang /** 33*71230efdSCarol Wang * @brief Handle with scheduled time 34*71230efdSCarol Wang * 35*71230efdSCarol Wang * @param[in] value - The seconds since epoch 36*71230efdSCarol Wang * @return The time for the transition. It is the same as the input value if 37*71230efdSCarol Wang * it is set successfully. Otherwise, it won't return value, but throw an 38*71230efdSCarol Wang * error. 39*71230efdSCarol Wang **/ 40*71230efdSCarol Wang uint64_t scheduledTime(uint64_t value) override; 41*71230efdSCarol Wang }; 42*71230efdSCarol Wang } // namespace manager 43*71230efdSCarol Wang } // namespace state 44*71230efdSCarol Wang } // namespace phosphor