diff options
author | Brian Aker <brian@tangent.org> | 2012-07-14 12:23:35 -0700 |
---|---|---|
committer | Brian Aker <brian@tangent.org> | 2012-07-14 12:23:35 -0700 |
commit | bf755bec1cd09fad086a47650c1a725c9fbc7eb1 (patch) | |
tree | 1f7072c471074be5354db5e060e1ce4c128b24cb /libtest/timer.hpp | |
parent | 9e4ae978d7d40c4f1c7d221c61a07a31a5e270d5 (diff) | |
download | libmemcached-bf755bec1cd09fad086a47650c1a725c9fbc7eb1.tar.gz |
Merge up to gearmand.
Diffstat (limited to 'libtest/timer.hpp')
-rw-r--r-- | libtest/timer.hpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/libtest/timer.hpp b/libtest/timer.hpp index 37da32f1..28ec4741 100644 --- a/libtest/timer.hpp +++ b/libtest/timer.hpp @@ -36,8 +36,9 @@ #pragma once +#include <cstdlib> #include <ctime> -#include <ostream> +#include <iostream> #ifdef __MACH__ # include <mach/clock.h> @@ -72,11 +73,34 @@ public: _time(_end); } + void offset(int64_t minutes_arg, int64_t seconds_arg, int64_t nanoseconds) + { + reset(); + _end= _begin; + _end.tv_sec+= (minutes_arg * 60) +seconds_arg; + _end.tv_nsec+= nanoseconds; + } + + int64_t minutes() + { + struct timespec result; + difference(result); + return int64_t(result.tv_sec / 60); + } + + uint64_t elapsed_milliseconds() const + { + struct timespec temp; + difference(temp); + + return temp.tv_sec*1000 +temp.tv_nsec/1000000; + } + void difference(struct timespec& arg) const { if ((_end.tv_nsec -_begin.tv_nsec) < 0) { - arg.tv_sec= _end.tv_sec -_begin.tv_sec-1; + arg.tv_sec= _end.tv_sec -_begin.tv_sec -1; arg.tv_nsec= 1000000000 +_end.tv_nsec -_begin.tv_nsec; } |