17 #ifndef KUDU_UTIL_MONOTIME_H
18 #define KUDU_UTIL_MONOTIME_H
27 #ifdef KUDU_HEADERS_NO_STUBS
28 #include <gtest/gtest_prod.h>
30 #include "kudu/gutil/port.h"
34 #include "kudu/client/stubs.h"
37 #include "kudu/util/kudu_export.h"
47 #define KUDU_MONOTIME_NOEXCEPT noexcept
49 #define KUDU_MONOTIME_NOEXCEPT
50 #endif // #ifdef LANG_CXX11 ... #else ...
176 static const int64_t kUninitialized;
184 FRIEND_TEST(TestMonoTime, TestDeltaConversions);
203 static const int64_t kNanosecondsPerSecond = 1000000000L;
206 static const int64_t kNanosecondsPerMillisecond = 1000000L;
209 static const int64_t kNanosecondsPerMicrosecond = 1000L;
212 static const int64_t kMicrosecondsPerSecond = 1000000L;
236 ATTRIBUTE_DEPRECATED(
"use std::min() instead");
243 bool Initialized() const;
271 bool ComesBefore(const
MonoTime &rhs) const;
274 std::
string ToString() const;
281 void ToTimeSpec(struct timespec* ts) const;
289 bool Equals(const
MonoTime& other) const;
312 FRIEND_TEST(TestMonoTime, TestTimeSpec);
313 FRIEND_TEST(TestMonoTime, TestDeltaConversions);
315 explicit
MonoTime(const struct timespec& ts) KUDU_MONOTIME_NOEXCEPT;
316 explicit
MonoTime(int64_t nanos) KUDU_MONOTIME_NOEXCEPT;
317 double ToSeconds() const;
331 void KUDU_EXPORT SleepFor(const
MonoDelta& delta);
506 std::ostream& operator<<(std::ostream& os, const kudu::
MonoTime& time);