diff options
Diffstat (limited to 'src/base/myTimer.c')
| -rw-r--r-- | src/base/myTimer.c | 196 |
1 files changed, 94 insertions, 102 deletions
diff --git a/src/base/myTimer.c b/src/base/myTimer.c index fa2ba12..08abb99 100644 --- a/src/base/myTimer.c +++ b/src/base/myTimer.c @@ -6,149 +6,141 @@ #include <sys/time.h> #include <signal.h> #ifdef __WIN32__ -#include <time.h> +# include <time.h> #endif #include "main.h" #include "list.h" #include "myTimer.h" #ifndef PUBLIC_SERVER -#include "interface.h" +# include "interface.h" #endif static struct timeval start = {.tv_sec = 0,.tv_usec = 0 }; -list_t * -newTimer() +list_t *newTimer() { - return newList(); + return newList(); } -void -restartTimer() +void restartTimer() { - gettimeofday(&start, NULL); + gettimeofday(&start, NULL); } -my_time_t -getMyTime() +my_time_t getMyTime() { - struct timeval now; - my_time_t ticks; - - if (start.tv_sec == 0 && start.tv_usec == 0) - restartTimer(); - gettimeofday(&now, NULL); - ticks = - (now.tv_sec - start.tv_sec) * 1000 + (now.tv_usec - - start.tv_usec) / 1000; - //printf("-> %d\n", ticks); - return ticks; + struct timeval now; + my_time_t ticks; + + if (start.tv_sec == 0 && start.tv_usec == 0) + restartTimer(); + gettimeofday(&now, NULL); + ticks = + (now.tv_sec - start.tv_sec) * 1000 + (now.tv_usec - + start.tv_usec) / 1000; + //printf("-> %d\n", ticks); + return ticks; } -my_time_t -getMyTimeMicro() +my_time_t getMyTimeMicro() { - static struct timeval start = {.tv_sec = 0,.tv_usec = 0 }; - struct timeval now; - my_time_t ticks; - if (start.tv_sec == 0 && start.tv_usec == 0) - gettimeofday(&start, NULL); - gettimeofday(&now, NULL); - ticks = - (now.tv_sec - start.tv_sec) * 1000 * 1000 + (now.tv_usec - - start.tv_usec); - //printf("-> %d\n", ticks); - return ticks; + static struct timeval start = {.tv_sec = 0,.tv_usec = 0 }; + struct timeval now; + my_time_t ticks; + if (start.tv_sec == 0 && start.tv_usec == 0) + gettimeofday(&start, NULL); + gettimeofday(&now, NULL); + ticks = + (now.tv_sec - start.tv_sec) * 1000 * 1000 + (now.tv_usec - + start.tv_usec); + //printf("-> %d\n", ticks); + return ticks; } -my_timer_t * -newTimerItem(int type, void (*fce) (void *p), void *arg, my_time_t my_time) +my_timer_t *newTimerItem(int type, void (*fce) (void *p), void *arg, + my_time_t my_time) { - static int new_id = 0; - my_timer_t *new; - assert(fce != NULL); - new = malloc(sizeof(my_timer_t)); - memset(new, 0, sizeof(my_timer_t)); - new->id = new_id++; - new->type = type; - new->fce = fce; - new->arg = arg; - new->createTime = getMyTime(); - new->time = my_time; - return new; + static int new_id = 0; + my_timer_t *new; + assert(fce != NULL); + new = malloc(sizeof(my_timer_t)); + memset(new, 0, sizeof(my_timer_t)); + new->id = new_id++; + new->type = type; + new->fce = fce; + new->arg = arg; + new->createTime = getMyTime(); + new->time = my_time; + return new; } -static void -destroyTimerItem(my_timer_t * p) +static void destroyTimerItem(my_timer_t * p) { - assert(p != NULL); - free(p); + assert(p != NULL); + free(p); } int addTaskToTimer(list_t * listTimer, int type, void (*fce) (void *p), void *arg, - my_time_t my_time) + my_time_t my_time) { - my_timer_t *new; + my_timer_t *new; - new = newTimerItem(type, fce, arg, my_time); - addList(listTimer, new); - return new->id; + new = newTimerItem(type, fce, arg, my_time); + addList(listTimer, new); + return new->id; } -void -eventTimer(list_t * listTimer) +void eventTimer(list_t * listTimer) { - int i; - my_timer_t *thisTimer; - my_time_t currentTime; - currentTime = getMyTime(); - for (i = 0; i < listTimer->count; i++) { - thisTimer = (my_timer_t *) listTimer->list[i]; - assert(thisTimer != NULL); - switch (thisTimer->type) { - case TIMER_ONE: - if (currentTime >= thisTimer->createTime + thisTimer->time) { - thisTimer->fce(thisTimer->arg); - delListItem(listTimer, i, free); - i--; - } - break; - case TIMER_PERIODIC: - if (currentTime >= thisTimer->createTime + thisTimer->time) { - thisTimer->fce(thisTimer->arg); - thisTimer->createTime = getMyTime(); - } - break; - default: - assert(!_("Timer is really weirdly set!")); - break; - } - } + int i; + my_timer_t *thisTimer; + my_time_t currentTime; + currentTime = getMyTime(); + for (i = 0; i < listTimer->count; i++) { + thisTimer = (my_timer_t *) listTimer->list[i]; + assert(thisTimer != NULL); + switch (thisTimer->type) { + case TIMER_ONE: + if (currentTime >= thisTimer->createTime + thisTimer->time) { + thisTimer->fce(thisTimer->arg); + delListItem(listTimer, i, free); + i--; + } + break; + case TIMER_PERIODIC: + if (currentTime >= thisTimer->createTime + thisTimer->time) { + thisTimer->fce(thisTimer->arg); + thisTimer->createTime = getMyTime(); + } + break; + default: + assert(!_("Timer is really weirdly set!")); + break; + } + } } -void -delTimer(list_t * listTimer, int id) +void delTimer(list_t * listTimer, int id) { - int i; - my_timer_t *thisTimer; - - for (i = 0; i < listTimer->count; i++) { - thisTimer = (my_timer_t *) listTimer->list[i]; - assert(thisTimer != NULL); - if (thisTimer->id == id) { - delListItem(listTimer, i, free); - return; - } - } - assert(!_("There is no such ID!")); + int i; + my_timer_t *thisTimer; + + for (i = 0; i < listTimer->count; i++) { + thisTimer = (my_timer_t *) listTimer->list[i]; + assert(thisTimer != NULL); + if (thisTimer->id == id) { + delListItem(listTimer, i, free); + return; + } + } + assert(!_("There is no such ID!")); } -void -destroyTimer(list_t * listTimer) +void destroyTimer(list_t * listTimer) { - destroyListItem(listTimer, destroyTimerItem); + destroyListItem(listTimer, destroyTimerItem); } |