xref: /openbmc/phosphor-time-manager/bmc_epoch.hpp (revision af5abc5785535f4e059a35be60dbbd012c61facf)
196232827SLei YU #pragma once
296232827SLei YU 
396232827SLei YU #include "epoch_base.hpp"
496232827SLei YU 
596232827SLei YU namespace phosphor
696232827SLei YU {
796232827SLei YU namespace time
896232827SLei YU {
996232827SLei YU 
1096232827SLei YU /** @class BmcEpoch
1196232827SLei YU  *  @brief OpenBMC BMC EpochTime implementation.
1296232827SLei YU  *  @details A concrete implementation for xyz.openbmc_project.Time.EpochTime
1396232827SLei YU  *  DBus API for BMC's epoch time.
1496232827SLei YU  */
1596232827SLei YU class BmcEpoch : public EpochBase
1696232827SLei YU {
1796232827SLei YU     public:
1896232827SLei YU         friend class TestBmcEpoch;
1996232827SLei YU         BmcEpoch(sdbusplus::bus::bus& bus,
2096232827SLei YU                  const char* objPath);
2196232827SLei YU 
2296232827SLei YU         /**
2396232827SLei YU          * @brief Get value of Elapsed property
2496232827SLei YU          *
2596232827SLei YU          * @return The elapsed microseconds since UTC
2696232827SLei YU          **/
2796232827SLei YU         uint64_t elapsed() const override;
2896232827SLei YU 
2996232827SLei YU         /**
3096232827SLei YU          * @brief Set value of Elapsed property
3196232827SLei YU          *
3296232827SLei YU          * @param[in] value - The microseconds since UTC to set
3396232827SLei YU          * @return The updated elapsed microseconds since UTC
3496232827SLei YU          **/
3596232827SLei YU         uint64_t elapsed(uint64_t value) override;
3696232827SLei YU };
3796232827SLei YU 
38*af5abc57SLei YU } // namespace time
39*af5abc57SLei YU } // namespace phosphor
40