00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00039 #ifndef _inputevt_h_
00040 #define _inputevt_h_
00041
00042 #include <glib.h>
00043
00047 typedef enum {
00048 INPUT_EVENT_R = 1 << 0,
00049 INPUT_EVENT_W = 1 << 1,
00050 INPUT_EVENT_EXCEPTION = 1 << 2,
00051
00052 INPUT_EVENT_RX = ((guint) INPUT_EVENT_R | (guint) INPUT_EVENT_EXCEPTION),
00053 INPUT_EVENT_WX = ((guint) INPUT_EVENT_W | (guint) INPUT_EVENT_EXCEPTION),
00054
00055 INPUT_EVENT_RW = ((guint) INPUT_EVENT_R | (guint) INPUT_EVENT_W),
00056 INPUT_EVENT_RWX = ((guint) INPUT_EVENT_RW | (guint) INPUT_EVENT_EXCEPTION),
00057 } inputevt_cond_t;
00058
00062 typedef void (*inputevt_handler_t) (
00063 gpointer data,
00064 gint source,
00065 inputevt_cond_t condition
00066 );
00067
00068
00069
00070
00071
00072 void inputevt_init(void);
00073 void inputevt_close(void);
00074
00078 guint inputevt_add(gint source, inputevt_cond_t condition,
00079 inputevt_handler_t handler, gpointer data);
00080
00081 const gchar *inputevt_cond_to_string(inputevt_cond_t cond);
00082
00083 #if defined(HAS_EPOLL) || defined(HAS_KQUEUE)
00084 void inputevt_remove(guint id);
00085 #else
00086 #define inputevt_remove(source) (g_source_remove(source))
00087 #define inputevt_timer()
00088 #endif
00089
00090 #endif
00091
00092