00001 00012 #ifndef FISH_EVENT_H 00013 #define FISH_EVENT_H 00014 00015 00019 #define EVENT_ANY_SIGNAL -1 00020 00024 #define EVENT_ANY_PID 0 00025 00029 enum 00030 { 00031 EVENT_ANY, 00032 EVENT_SIGNAL, 00033 EVENT_VARIABLE, 00034 EVENT_EXIT, 00035 EVENT_JOB_ID, 00036 EVENT_GENERIC, 00037 } 00038 ; 00039 00047 typedef struct 00048 { 00052 int type; 00053 00057 union 00058 { 00063 int signal; 00067 const wchar_t *variable; 00072 pid_t pid; 00076 int job_id; 00080 const wchar_t *param; 00081 00082 } param1; 00083 00087 const wchar_t *function_name; 00088 00094 array_list_t arguments; 00095 } 00096 event_t; 00097 00103 void event_add_handler( event_t *event ); 00104 00110 void event_remove( event_t *event ); 00111 00123 int event_get( event_t *criterion, array_list_t *out ); 00124 00141 void event_fire( event_t *event ); 00142 00146 void event_init(); 00147 00151 void event_destroy(); 00152 00156 void event_free( event_t *e ); 00157 00162 const wchar_t *event_get_desc( event_t *e ); 00163 00167 void event_fire_generic(const wchar_t *name); 00168 00169 00170 #endif
1.4.4