00001
00002
00003
00016 #ifndef OA_TIMER_H
00017 #define OA_TIMER_H
00018
00019 #ifdef _WIN32
00020
00021 #define __USE_W32_SOCKETS
00022 #include <windows.h>
00023 #endif
00024
00025 #define DIFF_TICK(a,b) \
00026 ((int)((a)-(b)))
00027
00031 #define TIMER_FUNC(func) \
00032 int func(int tid, unsigned int tick, intptr_t id, intptr_t data)
00033
00037 struct TimerData {
00038 unsigned int tick;
00040 int (*func)(int, unsigned int, intptr_t, intptr_t);
00041 intptr_t id;
00042 intptr_t data;
00046 char type;
00047 int interval;
00048 };
00049
00050
00051
00052 #ifdef _WIN32
00053 void gettimeofday(struct timeval *t, void *dummy);
00054 #endif
00055
00056
00057 void init_gettick(void);
00058
00059 unsigned int gettick_nocache(void);
00060
00064 extern unsigned int gettick_cache;
00065
00075 int add_timer(unsigned int tick,
00076 int (*func)(int,unsigned int,intptr_t,intptr_t),
00077 intptr_t id, intptr_t data);
00078
00088 int add_timer_interval(unsigned int tick,
00089 int (*func)(int,unsigned int,intptr_t,intptr_t),
00090 intptr_t id, intptr_t data, int interval);
00091
00098 int delete_timer(int id, int (*func)(int,unsigned int, intptr_t, intptr_t));
00099
00105 unsigned int addtick_timer(int tid, int added_tick);
00106
00113 struct TimerData *get_timer(int tid);
00114
00118 int do_timer(void);
00119
00120 int add_timer_func_list(int (*)(int,unsigned int,intptr_t,intptr_t), char*);
00121
00122 void timer_final();
00123
00126 #endif // OA_TIMER_H
00127