diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2015-07-28 18:16:39 -0400 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2015-07-28 18:27:27 -0400 |
commit | b66e993f1c742518d9b5e93b0d8a5f8255a4127c (patch) | |
tree | 55e6fed05333d2d37f34586726a342ed7f7dbc29 /src/mongo/util/timer.h | |
parent | 314a22e93f283ab80e650618cbd3ed8babb8510f (diff) | |
download | mongo-b66e993f1c742518d9b5e93b0d8a5f8255a4127c.tar.gz |
SERVER-18579: Clang-Format - reformat code, no comment reflow
Diffstat (limited to 'src/mongo/util/timer.h')
-rw-r--r-- | src/mongo/util/timer.h | 137 |
1 files changed, 73 insertions, 64 deletions
diff --git a/src/mongo/util/timer.h b/src/mongo/util/timer.h index 8ee85928f73..98009e972b0 100644 --- a/src/mongo/util/timer.h +++ b/src/mongo/util/timer.h @@ -33,70 +33,79 @@ namespace mongo { +/** + * Time tracking object. + * + * Should be of reasonably high performance, though the implementations are platform-specific. + * Each platform provides a distinct implementation of the now() method, and sets the + * _countsPerSecond static field to the constant number of ticks per second that now() counts + * in. The maximum span measurable by the counter and convertible to microseconds is about 10 + * trillion ticks. As long as there are fewer than 100 ticks per nanosecond, timer durations of + * 2.5 years will be supported. Since a typical tick duration will be under 10 per nanosecond, + * if not below 1 per nanosecond, this should not be an issue. + */ +class MONGO_CLIENT_API Timer /*copyable*/ { +public: + static const long long millisPerSecond = 1000; + static const long long microsPerSecond = 1000 * millisPerSecond; + static const long long nanosPerSecond = 1000 * microsPerSecond; + + Timer() { + reset(); + } + int seconds() const { + return (int)(micros() / 1000000); + } + int millis() const { + return (int)(micros() / 1000); + } + int minutes() const { + return seconds() / 60; + } + + + /** Get the time interval and reset at the same time. + * @return time in milliseconds. + */ + inline int millisReset() { + const long long nextNow = now(); + const long long deltaMicros = static_cast<long long>((nextNow - _old) * _microsPerCount); + + _old = nextNow; + return static_cast<int>(deltaMicros / 1000); + } + + inline long long micros() const { + return static_cast<long long>((now() - _old) * _microsPerCount); + } + + inline void reset() { + _old = now(); + } + + inline static void setCountsPerSecond(long long countsPerSecond) { + _countsPerSecond = countsPerSecond; + _microsPerCount = static_cast<double>(microsPerSecond) / _countsPerSecond; + } + + inline static long long getCountsPerSecond() { + return _countsPerSecond; + } + +private: /** - * Time tracking object. - * - * Should be of reasonably high performance, though the implementations are platform-specific. - * Each platform provides a distinct implementation of the now() method, and sets the - * _countsPerSecond static field to the constant number of ticks per second that now() counts - * in. The maximum span measurable by the counter and convertible to microseconds is about 10 - * trillion ticks. As long as there are fewer than 100 ticks per nanosecond, timer durations of - * 2.5 years will be supported. Since a typical tick duration will be under 10 per nanosecond, - * if not below 1 per nanosecond, this should not be an issue. + * Internally, the timer counts platform-dependent ticks of some sort, and + * must then convert those ticks to microseconds and their ilk. This field + * stores the frequency of the platform-dependent counter. */ - class MONGO_CLIENT_API Timer /*copyable*/ { - public: - static const long long millisPerSecond = 1000; - static const long long microsPerSecond = 1000 * millisPerSecond; - static const long long nanosPerSecond = 1000 * microsPerSecond; - - Timer() { reset(); } - int seconds() const { return (int)(micros() / 1000000); } - int millis() const { return (int)(micros() / 1000); } - int minutes() const { return seconds() / 60; } - - - /** Get the time interval and reset at the same time. - * @return time in milliseconds. - */ - inline int millisReset() { - const long long nextNow = now(); - const long long deltaMicros = - static_cast<long long>((nextNow - _old) * _microsPerCount); - - _old = nextNow; - return static_cast<int>(deltaMicros / 1000); - } - - inline long long micros() const { - return static_cast<long long>((now() - _old) * _microsPerCount); - } - - inline void reset() { _old = now(); } - - inline static void setCountsPerSecond(long long countsPerSecond) { - _countsPerSecond = countsPerSecond; - _microsPerCount = static_cast<double>(microsPerSecond) / _countsPerSecond; - } - - inline static long long getCountsPerSecond() { - return _countsPerSecond; - } - - private: - /** - * Internally, the timer counts platform-dependent ticks of some sort, and - * must then convert those ticks to microseconds and their ilk. This field - * stores the frequency of the platform-dependent counter. - */ - static long long _countsPerSecond; - - // Derived value from _countsPerSecond. This represents the conversion ratio - // from clock ticks to microseconds. - static double _microsPerCount; - - long long now() const; - - long long _old; - }; + static long long _countsPerSecond; + + // Derived value from _countsPerSecond. This represents the conversion ratio + // from clock ticks to microseconds. + static double _microsPerCount; + + long long now() const; + + long long _old; +}; } // namespace mongo |