1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-06-27 01:25:34 +00:00
elinks/src/main/timer.h

42 lines
958 B
C
Raw Normal View History

#ifndef EL__MAIN_TIMER_H
#define EL__MAIN_TIMER_H
#include "util/lists.h"
#include "util/time.h"
#ifdef __cplusplus
extern "C" {
#endif
struct timer {
LIST_HEAD_EL(struct timer);
timeval_T interval;
void (*func)(void *);
void *data;
};
/* Little hack, timer_id_T is in fact a pointer to the timer, so
* it has to be of a pointer type.
* The fact each timer is allocated ensure us that timer id will
* be unique.
* That way there is no need of id field in struct timer. --Zas */
typedef struct timer * timer_id_T;
/* Should always be NULL or you'll have to modify install_timer()
* and kill_timer(). --Zas */
#define TIMER_ID_UNDEF ((timer_id_T) NULL)
int get_timers_count();
void check_timers(timeval_T *last_time);
void install_timer(timer_id_T *id, milliseconds_T delay, void (*)(void *), void *);
void kill_timer(timer_id_T *id);
int get_next_timer_time(timeval_T *t);
void set_events_for_timer(void);
#ifdef __cplusplus
}
#endif
#endif