17 #ifndef KUDU_UTIL_MONOTIME_H
18 #define KUDU_UTIL_MONOTIME_H
26 #ifdef KUDU_HEADERS_NO_STUBS
27 #include <gtest/gtest_prod.h>
29 #include "kudu/gutil/port.h"
33 #include "kudu/client/stubs.h"
36 #include "kudu/util/kudu_export.h"
46 #define KUDU_MONOTIME_NOEXCEPT noexcept
48 #define KUDU_MONOTIME_NOEXCEPT
49 #endif // #ifdef LANG_CXX11 ... #else ...
175 static const int64_t kUninitialized;
183 FRIEND_TEST(TestMonoTime, TestDeltaConversions);
202 static const int64_t kNanosecondsPerSecond = 1000000000L;
205 static const int64_t kNanosecondsPerMillisecond = 1000000L;
208 static const int64_t kNanosecondsPerMicrosecond = 1000L;
211 static const int64_t kMicrosecondsPerSecond = 1000000L;
235 ATTRIBUTE_DEPRECATED(
"use std::min() instead");
242 bool Initialized() const;
270 bool ComesBefore(const
MonoTime &rhs) const;
273 std::
string ToString() const;
280 void ToTimeSpec(struct timespec* ts) const;
288 bool Equals(const
MonoTime& other) const;
311 FRIEND_TEST(TestMonoTime, TestTimeSpec);
312 FRIEND_TEST(TestMonoTime, TestDeltaConversions);
314 explicit
MonoTime(const struct timespec& ts) KUDU_MONOTIME_NOEXCEPT;
315 explicit
MonoTime(int64_t nanos) KUDU_MONOTIME_NOEXCEPT;
316 double ToSeconds() const;
330 void KUDU_EXPORT SleepFor(const
MonoDelta& delta);