41
41
#include <iostream>
44
# include <mach/clock.h>
45
# include <mach/mach.h>
47
# include <sys/time.h>
51
44
namespace libtest {
76
void offset(int64_t minutes_arg, int64_t seconds_arg, int64_t nanoseconds)
80
_end.tv_sec+= (minutes_arg * 60) +seconds_arg;
81
_end.tv_nsec+= nanoseconds;
86
struct timespec result;
88
return int64_t(result.tv_sec / 60);
91
uint64_t elapsed_milliseconds() const
96
return temp.tv_sec*1000 +temp.tv_nsec/1000000;
99
void difference(struct timespec& arg) const
101
if ((_end.tv_nsec -_begin.tv_nsec) < 0)
103
arg.tv_sec= _end.tv_sec -_begin.tv_sec -1;
104
arg.tv_nsec= 1000000000 +_end.tv_nsec -_begin.tv_nsec;
109
arg.tv_sec= _end.tv_sec -_begin.tv_sec;
110
arg.tv_nsec= _end.tv_nsec -_begin.tv_nsec;
55
void offset(int64_t minutes_arg, int64_t seconds_arg, int64_t nanoseconds);
59
uint64_t elapsed_milliseconds() const;
61
void difference(struct timespec& arg) const;
115
void _time(struct timespec& ts)
117
#ifdef __MACH__ // OSX lacks clock_gettime()
118
clock_serv_t _clock_serv;
119
mach_timespec_t _mach_timespec;
120
host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &_clock_serv);
121
clock_get_time(_clock_serv, &_mach_timespec);
122
mach_port_deallocate(mach_task_self(), _clock_serv);
123
ts.tv_sec= _mach_timespec.tv_sec;
124
ts.tv_nsec= _mach_timespec.tv_nsec;
126
clock_gettime(CLOCK_REALTIME, &ts);
64
void _time(struct timespec& ts);
131
67
struct timespec _begin;