31 lines
597 B
C++
31 lines
597 B
C++
|
#ifndef _timer_H_
|
||
|
#define _timer_H_
|
||
|
|
||
|
#include <cstdint>
|
||
|
#include <mutex>
|
||
|
|
||
|
namespace sc {
|
||
|
|
||
|
class timer {
|
||
|
static uint64_t next_id;
|
||
|
static std::mutex mutex;
|
||
|
|
||
|
timer_t _tid;
|
||
|
uint64_t _id;
|
||
|
double _time;
|
||
|
bool _repeat;
|
||
|
|
||
|
public:
|
||
|
timer(void(*callback)(union sigval), double time, bool repeat = false);
|
||
|
~timer();
|
||
|
|
||
|
void time(struct itimerspec& cur_value) const;
|
||
|
double time() const;
|
||
|
bool is_armed() const;
|
||
|
bool repeat() const { return _repeat; }
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif // _timer_H_
|