X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Ftimer.hpp;h=28ec47416766c3eb917447d527a57ef1e0e47e97;hb=8c008a3516e571c1efa9ba9c50bdbaddf6e94217;hp=37da32f1af1e9ad99086da3faae060b54d4673ae;hpb=8da5675f446c52fa0410edeb8d94ad18201b004b;p=awesomized%2Flibmemcached 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 #include -#include +#include #ifdef __MACH__ # include @@ -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; }