eloop.h
Go to the documentation of this file.00001
00024 #ifndef ELOOP_H
00025 #define ELOOP_H
00026
00031 #define ELOOP_ALL_CTX (void *) -1
00032
00040 typedef enum {
00041 EVENT_TYPE_READ = 0,
00042 EVENT_TYPE_WRITE,
00043 EVENT_TYPE_EXCEPTION
00044 } eloop_event_type;
00045
00053 typedef void (*eloop_sock_handler)(int sock, void *eloop_ctx, void *sock_ctx);
00054
00061 typedef void (*eloop_event_handler)(void *eloop_data, void *user_ctx);
00062
00069 typedef void (*eloop_timeout_handler)(void *eloop_data, void *user_ctx);
00070
00081 typedef void (*eloop_signal_handler)(int sig, void *eloop_ctx,
00082 void *signal_ctx);
00083
00094 int eloop_init(void *user_data);
00095
00111 int eloop_register_read_sock(int sock, eloop_sock_handler handler,
00112 void *eloop_data, void *user_data);
00113
00122 void eloop_unregister_read_sock(int sock);
00123
00140 int eloop_register_sock(int sock, eloop_event_type type,
00141 eloop_sock_handler handler,
00142 void *eloop_data, void *user_data);
00143
00153 void eloop_unregister_sock(int sock, eloop_event_type type);
00154
00178 int eloop_register_event(void *event, size_t event_size,
00179 eloop_event_handler handler,
00180 void *eloop_data, void *user_data);
00181
00191 void eloop_unregister_event(void *event, size_t event_size);
00192
00206 int eloop_register_timeout(unsigned int secs, unsigned int usecs,
00207 eloop_timeout_handler handler,
00208 void *eloop_data, void *user_data);
00209
00222 int eloop_cancel_timeout(eloop_timeout_handler handler,
00223 void *eloop_data, void *user_data);
00224
00236 int eloop_is_timeout_registered(eloop_timeout_handler handler,
00237 void *eloop_data, void *user_data);
00238
00257 int eloop_register_signal(int sig, eloop_signal_handler handler,
00258 void *user_data);
00259
00282 int eloop_register_signal_terminate(eloop_signal_handler handler,
00283 void *user_data);
00284
00307 int eloop_register_signal_reconfig(eloop_signal_handler handler,
00308 void *user_data);
00309
00318 void eloop_run(void);
00319
00327 void eloop_terminate(void);
00328
00336 void eloop_destroy(void);
00337
00348 int eloop_terminated(void);
00349
00357 void eloop_wait_for_read_sock(int sock);
00358
00364 void * eloop_get_user_data(void);
00365
00366 #endif
00367