Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.04 KB | None | 0 0
  1. /* event.c - Event Register Functions - Felix Yan */
  2. #include "event.h"
  3. #include "common.h"
  4.  
  5. void RegEvent(Event *e, void (*func)(void *))
  6. /* Register a new func as event */
  7. {
  8.     Event *n, *newe;
  9.     n = e;
  10.     while(n -> next != NULL)
  11.         n = n -> next;
  12.     if(n -> func == NULL)
  13.     {
  14.         n -> func = func;
  15.         n -> next = NULL;
  16.     }
  17.     else
  18.     {
  19.         newe = ALLOC(sizeof(Event));
  20.         CheckAlloc((void *)newe);
  21.         newe -> func = func;
  22.         newe -> next = NULL;
  23.         n -> next = newe;
  24.     }
  25. }
  26.  
  27. void DoEvent(Event *e, void *data)
  28. /* Do a event */
  29. {
  30.     Event *temp;
  31.     temp = e;
  32.     while(temp != NULL && temp -> func != NULL)
  33.     {
  34.         temp -> func(data);
  35.         temp = temp -> next;
  36.     }
  37. }
  38.  
  39. void InitEvent(Event *e)
  40. /* Initialize a event */
  41. {
  42.     e -> func = NULL;
  43.     e -> next = NULL;
  44. }
  45.  
  46. void FreeEvent(Event *e)
  47. /* Free memory of an event chain */
  48. {
  49.     Event *bak;
  50.     while(e != NULL)
  51.     {
  52.         bak = e -> next;
  53.         FREEMEM(e);
  54.         e = bak;
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement