egg_timer.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef _EGG_TIMER_H_
  2. #define _EGG_TIMER_H_
  3. #include "types.h"
  4. typedef struct egg_timeval_b {
  5. long sec;
  6. long usec;
  7. } egg_timeval_t;
  8. #define TIMER_REPEAT 1
  9. /* Create a simple timer with no client data and no flags. */
  10. #define timer_create(howlong,name,callback) timer_create_complex(howlong, name, callback, NULL, 0)
  11. /* Create a simple timer with no client data, but it repeats. */
  12. #define timer_create_repeater(howlong,name,callback) timer_create_complex(howlong, name, callback, NULL, TIMER_REPEAT)
  13. void timer_get_now(egg_timeval_t *_now);
  14. int timer_get_now_sec(int *sec);
  15. void timer_update_now(egg_timeval_t *_now);
  16. int timer_diff(egg_timeval_t *from_time, egg_timeval_t *to_time, egg_timeval_t *diff);
  17. long timeval_diff(const egg_timeval_t *tv1, const egg_timeval_t *tv2);
  18. int timer_create_secs(int, const char *, Function);
  19. int timer_create_complex(egg_timeval_t *howlong, const char *name, Function callback, void *client_data, int flags);
  20. int timer_destroy(int timer_id);
  21. #ifdef not_used
  22. int timer_destroy_all();
  23. #endif
  24. int timer_get_shortest(egg_timeval_t *howlong);
  25. void timer_run();
  26. int timer_list(int **ids);
  27. int timer_info(int id, char **name, egg_timeval_t *initial_len, egg_timeval_t *trigger_time, int *called);
  28. #endif /* _EGG_TIMER_H_ */