00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _EGG_TIMER_H_
00023 #define _EGG_TIMER_H_
00024
00025 typedef struct egg_timeval {
00026 long sec;
00027 long usec;
00028 } egg_timeval_t;
00029
00030 typedef struct egg_timer {
00031 struct egg_timer *next;
00032 int id;
00033 char *name;
00034 Function callback;
00035 void *client_data;
00036 egg_timeval_t howlong;
00037 egg_timeval_t trigger_time;
00038 int flags;
00039 event_owner_t *owner;
00040 } egg_timer_t;
00041
00042 #define TIMER_REPEAT 1
00043
00044
00045 #define timer_create(howlong,name,callback) timer_create_complex(howlong, name, callback, NULL, 0, NULL)
00046
00047
00048 #define timer_create_repeater(howlong,name,callback) timer_create_complex(howlong, name, callback, NULL, TIMER_REPEAT, NULL)
00049
00050 extern int timer_init();
00051 extern int timer_shutdown();
00052 extern int timer_get_time(egg_timeval_t *curtime);
00053 extern void timer_get_now(egg_timeval_t *_now);
00054 extern long timer_get_now_sec(long *sec);
00055 extern long timer_update_now(egg_timeval_t *_now);
00056 extern int timer_diff(egg_timeval_t *from_time, egg_timeval_t *to_time, egg_timeval_t *diff);
00057 extern int timer_create_secs(long secs, const char *name, Function callback);
00058 extern int timer_create_complex(egg_timeval_t *howlong, const char *name, Function callback, void *client_data, int flags, event_owner_t *owner);
00059 extern int timer_destroy(int timer_id);
00060 extern int timer_destroy_all();
00061 extern int timer_destroy_by_owner(egg_module_t *module, void *script);
00062 extern int timer_get_shortest(egg_timeval_t *howlong);
00063 extern int timer_run();
00064 extern egg_timer_t *timer_list();
00065 extern egg_timer_t *timer_find(int id);
00066 extern char *timer_get_timestamp(void);
00067
00068 #endif