46 lines
1.0 KiB
C
46 lines
1.0 KiB
C
|
#ifndef FRAMEWORK_OSAL_LINUX_TIMER_H_
|
||
|
#define FRAMEWORK_OSAL_LINUX_TIMER_H_
|
||
|
|
||
|
#include <signal.h>
|
||
|
#include <time.h>
|
||
|
#include <stdint.h>
|
||
|
|
||
|
/**
|
||
|
* This class is a helper for the creation of a Clock Monotonic timer which does not trigger a signal
|
||
|
*/
|
||
|
class Timer {
|
||
|
public:
|
||
|
/**
|
||
|
* Creates the Timer sets the timerId Member
|
||
|
*/
|
||
|
Timer();
|
||
|
/**
|
||
|
* Deletes the timer
|
||
|
*
|
||
|
* Careful! According to POSIX documentation:
|
||
|
* The treatment of any pending signal generated by the deleted timer is unspecified.
|
||
|
*/
|
||
|
virtual ~Timer();
|
||
|
|
||
|
/**
|
||
|
* Set the timer given in timerId to the given interval
|
||
|
*
|
||
|
* @param intervalMs Interval in ms to be set
|
||
|
* @return 0 on Success 1 else
|
||
|
*/
|
||
|
int setTimer(uint32_t intervalMs);
|
||
|
|
||
|
/**
|
||
|
* Get the remaining time of the timer
|
||
|
*
|
||
|
* @param remainingTimeMs Pointer to integer value which is used to return the remaining time
|
||
|
* @return 0 on Success 1 else (see timer_getime documentation of posix function)
|
||
|
*/
|
||
|
int getTimer(uint32_t* remainingTimeMs);
|
||
|
|
||
|
private:
|
||
|
timer_t timerId;
|
||
|
};
|
||
|
|
||
|
#endif /* FRAMEWORK_OSAL_LINUX_TIMER_H_ */
|