added fast(er) list to be included (just in header) + small bug fix
[my-code/api.git] / event / event.h
1 /* event.h -- event headers */
2
3 #ifndef EVENT_H
4 #define EVENT_H
5
6 /* includes */
7 #define _GNU_SOURCE
8 #include <stdio.h>
9 #include <sys/select.h>
10 #include <unistd.h>
11
12 /* defines */
13
14 /* return values */
15 #define CALLBACK_ERROR -1
16 #define E_ERROR -1
17 #define E_SUCCESS 1
18 #define E_FD_YES 2
19 #define E_FD_NO 3
20
21 /* event status */
22 #define DISABLED 0
23 #define ENABLED 1
24
25 /* read write mode */
26 #define READ 'r'
27 #define WRITE 'w'
28 /* add remove mode */
29 #define ADD 'a'
30 #define REMOVE 'r'
31
32 /* immediatley values */
33 #define IMM_FALSE 0
34 #define IMM_TRUE 1
35
36 /* event specific variables */
37 typedef struct s_event {
38   int outfd;
39   int maxfd;
40   fd_set rfds,rfds_o;
41   fd_set wfds,wfds_o;
42   struct timeval timeout;
43   unsigned char immediately;
44   unsigned char status;
45 } t_event;
46
47 /* function prototypes */
48 int event_init(t_event *event,int outfd);
49 int event_set_timeout(t_event *event,int sec,int usec);
50 int event_set_immediately(t_event *event,unsigned char value);
51 int event_math(int fd,t_event *event,char rw,char ar);
52 int event_start(t_event *event,void *ptr,
53                 int (*callback0)(t_event *event,void *ptr),
54                 int (*callback1)(t_event *event,void *ptr));
55 int event_check(t_event *event,int fd);
56 int event_stop(t_event *event);
57
58 #endif