| #ifndef __CLAR_LIBGIT2_TIMER__ |
| #define __CLAR_LIBGIT2_TIMER__ |
| |
| struct cl_perf_timer |
| { |
| /* cummulative running time across all start..stop intervals */ |
| double sum; |
| |
| /* value of last start..stop interval */ |
| double last; |
| |
| /* clock value at start */ |
| double time_started; |
| }; |
| |
| #define CL_PERF_TIMER_INIT {0} |
| |
| typedef struct cl_perf_timer cl_perf_timer; |
| |
| void cl_perf_timer__init(cl_perf_timer *t); |
| void cl_perf_timer__start(cl_perf_timer *t); |
| void cl_perf_timer__stop(cl_perf_timer *t); |
| |
| /** |
| * return value of last start..stop interval in seconds. |
| */ |
| double cl_perf_timer__last(const cl_perf_timer *t); |
| |
| /** |
| * return cummulative running time across all start..stop |
| * intervals in seconds. |
| */ |
| double cl_perf_timer__sum(const cl_perf_timer *t); |
| |
| #endif /* __CLAR_LIBGIT2_TIMER__ */ |