clock.hpp 925 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef REALM_IMPL_CLOCK_HPP
  2. #define REALM_IMPL_CLOCK_HPP
  3. #include <cstdint>
  4. #include <chrono>
  5. #include <realm/sync/protocol.hpp>
  6. namespace realm {
  7. namespace _impl {
  8. inline sync::milliseconds_type realtime_clock_now() noexcept
  9. {
  10. using clock = std::chrono::system_clock;
  11. auto time_since_epoch = clock::now().time_since_epoch();
  12. auto millis_since_epoch = std::chrono::duration_cast<std::chrono::milliseconds>(time_since_epoch).count();
  13. return sync::milliseconds_type(millis_since_epoch);
  14. }
  15. inline sync::milliseconds_type monotonic_clock_now() noexcept
  16. {
  17. using clock = std::chrono::steady_clock;
  18. auto time_since_epoch = clock::now().time_since_epoch();
  19. auto millis_since_epoch = std::chrono::duration_cast<std::chrono::milliseconds>(time_since_epoch).count();
  20. return sync::milliseconds_type(millis_since_epoch);
  21. }
  22. } // namespace _impl
  23. } // namespace realm
  24. #endif // REALM_IMPL_CLOCK_HPP