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
106 ATTRIBUTE_DEPRECATED(
"use operator<(const MonoDelta&, const MonoDelta&) instead");
117 ATTRIBUTE_DEPRECATED(
"use operator>(const MonoDelta&, const MonoDelta&) instead");
129 "use operator==(const MonoDelta&, const MonoDelta&) instead");
185 static const int64_t kUninitialized;
198 FRIEND_TEST(TestMonoTime, TestDeltaConversions);
217 static const int64_t kNanosecondsPerSecond = 1000000000L;
220 static const int64_t kNanosecondsPerMillisecond = 1000000L;
223 static const int64_t kNanosecondsPerMicrosecond = 1000L;
226 static const int64_t kMicrosecondsPerSecond = 1000000L;
250 ATTRIBUTE_DEPRECATED(
"use std::min() instead");
257 bool Initialized() const;
278 void AddDelta(const
MonoDelta& delta) ATTRIBUTE_DEPRECATED(
279 "use operator+=(const
MonoDelta&) instead");
290 bool ComesBefore(const
MonoTime& rhs) const ATTRIBUTE_DEPRECATED(
294 std::
string ToString() const;
301 void ToTimeSpec(struct timespec* ts) const;
311 bool Equals(const
MonoTime& other) const ATTRIBUTE_DEPRECATED(
336 FRIEND_TEST(TestMonoTime, TestTimeSpec);
337 FRIEND_TEST(TestMonoTime, TestDeltaConversions);
339 explicit
MonoTime(const struct timespec& ts) KUDU_MONOTIME_NOEXCEPT;
340 explicit
MonoTime(int64_t nanos) KUDU_MONOTIME_NOEXCEPT;
341 double ToSeconds() const;
355 void KUDU_EXPORT SleepFor(const
MonoDelta& delta);
530 std::ostream& operator<<(std::ostream& os, const kudu::
MonoTime& time);
A representation of a time interval.
Definition: monotime.h:58
friend MonoDelta operator+(const MonoDelta &, const MonoDelta &)
int64_t ToNanoseconds() const
void ToTimeVal(struct timeval *tv) const
friend bool operator==(const MonoDelta &, const MonoDelta &)
int64_t ToMicroseconds() const
static void NanosToTimeSpec(int64_t nanos, struct timespec *ts)
bool LessThan(const MonoDelta &rhs) const
static MonoDelta FromSeconds(double seconds)
std::string ToString() const
MonoDelta & operator+=(const MonoDelta &delta)
friend MonoDelta operator-(const MonoDelta &, const MonoDelta &)
MonoDelta & operator-=(const MonoDelta &delta)
friend bool operator>(const MonoDelta &, const MonoDelta &)
int64_t ToMilliseconds() const
static MonoDelta FromMilliseconds(int64_t ms)
static MonoDelta FromMicroseconds(int64_t us)
friend bool operator<(const MonoDelta &, const MonoDelta &)
void ToTimeSpec(struct timespec *ts) const
bool MoreThan(const MonoDelta &rhs) const
static MonoDelta FromNanoseconds(int64_t ns)
bool Equals(const MonoDelta &rhs) const
Representation of a particular point in time.
Definition: monotime.h:211
MonoTime() KUDU_MONOTIME_NOEXCEPT
static const MonoTime & Earliest(const MonoTime &a, const MonoTime &b)