Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore Modified Files: Tag: SPLIT Ecore.h ecore.c ecore_app.c ecore_events.c ecore_exe.c ecore_idle_enterer.c ecore_idler.c ecore_main.c ecore_private.h ecore_signal.c ecore_timer.c Log Message: doc doc doc... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/Ecore.h,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -3 -r1.1.2.4 -r1.1.2.5 --- Ecore.h 5 Feb 2003 00:10:19 -0000 1.1.2.4 +++ Ecore.h 20 Feb 2003 06:56:40 -0000 1.1.2.5 @@ -12,66 +12,66 @@ #endif #define ECORE_EVENT_NONE 0 -#define ECORE_EVENT_EXE_EXIT 1 -#define ECORE_EVENT_SIGNAL_USER 2 -#define ECORE_EVENT_SIGNAL_HUP 3 -#define ECORE_EVENT_SIGNAL_EXIT 4 -#define ECORE_EVENT_SIGNAL_POWER 5 +#define ECORE_EVENT_EXE_EXIT 1 /**< Spawned Exe has exit event */ +#define ECORE_EVENT_SIGNAL_USER 2 /**< User signal event */ +#define ECORE_EVENT_SIGNAL_HUP 3 /**< Hup signal event */ +#define ECORE_EVENT_SIGNAL_EXIT 4 /**< Exit signal event */ +#define ECORE_EVENT_SIGNAL_POWER 5 /**< Power signal event */ #define ECORE_EVENT_COUNT 6 #ifndef _ECORE_PRIVATE_H enum _Ecore_Fd_Handler_Flags { - ECORE_FD_READ = 1, - ECORE_FD_WRITE = 2 + ECORE_FD_READ = 1, /**< Fd Read mask */ + ECORE_FD_WRITE = 2 /**< Fd Write mask */ }; typedef enum _Ecore_Fd_Handler_Flags Ecore_Fd_Handler_Flags; - typedef void Ecore_Exe; - typedef void Ecore_Timer; - typedef void Ecore_Idler; - typedef void Ecore_Idle_Enterer; - typedef void Ecore_Fd_Handler; - typedef void Ecore_Event_Handler; - typedef void Ecore_Event_Filter; - typedef void Ecore_Event; + typedef void Ecore_Exe; /**< A handle for spawned processes */ + typedef void Ecore_Timer; /**< A handle for timers */ + typedef void Ecore_Idler; /**< A handle for idlers */ + typedef void Ecore_Idle_Enterer; /**< A handle for idle enterers */ + typedef void Ecore_Fd_Handler; /**< A handle for Fd hanlders */ + typedef void Ecore_Event_Handler; /**< A handle for an event handler */ + typedef void Ecore_Event_Filter; /**< A handle for an event filter */ + typedef void Ecore_Event; /**< A handle for an event */ #endif - typedef struct _Ecore_Event_Exe_Exit Ecore_Event_Exe_Exit; - typedef struct _Ecore_Event_Signal_User Ecore_Event_Signal_User; - typedef struct _Ecore_Event_Signal_Hup Ecore_Event_Signal_Hup; - typedef struct _Ecore_Event_Signal_Exit Ecore_Event_Signal_Exit; - typedef struct _Ecore_Event_Signal_Power Ecore_Event_Signal_Power; + typedef struct _Ecore_Event_Exe_Exit Ecore_Event_Exe_Exit; /**< Spawned Exe +exit event */ + typedef struct _Ecore_Event_Signal_User Ecore_Event_Signal_User; /**< User signal +event */ + typedef struct _Ecore_Event_Signal_Hup Ecore_Event_Signal_Hup; /**< Hup signal +event */ + typedef struct _Ecore_Event_Signal_Exit Ecore_Event_Signal_Exit; /**< Exit signal +event */ + typedef struct _Ecore_Event_Signal_Power Ecore_Event_Signal_Power; /**< Power +signal event */ - struct _Ecore_Event_Exe_Exit + struct _Ecore_Event_Exe_Exit /** Process exit event */ { - pid_t pid; - int exit_code; - Ecore_Exe *exe; - void *ext_data; + pid_t pid; /**< The process ID of the process that exited */ + int exit_code; /**< The exit code of the process */ + Ecore_Exe *exe; /**< The handle to the exited process, or NULL if not found */ + void *ext_data; /**< Extension data - not used */ }; - struct _Ecore_Event_Signal_User + struct _Ecore_Event_Signal_User /** User signal event */ { - int number; - void *ext_data; + int number; /**< The signal number. Either 1 or 2 */ + void *ext_data; /**< Extension data - not used */ }; - struct _Ecore_Event_Signal_Hup + struct _Ecore_Event_Signal_Hup /** Hup signal event */ { - void *ext_data; + void *ext_data; /**< Extension data - not used */ }; - struct _Ecore_Event_Signal_Exit + struct _Ecore_Event_Signal_Exit /** Exit request event */ { - int interrupt : 1; - int quit : 1; - int terminate : 1; - void *ext_data; + int interrupt : 1; /**< Set if the exit request was an interrupt signal*/ + int quit : 1; /**< set if the exit request was a quit signal */ + int terminate : 1; /**< Set if the exit request was a terminate singal */ + void *ext_data; /**< Extension data - not used */ }; - struct _Ecore_Event_Signal_Power + struct _Ecore_Event_Signal_Power /** Power event */ { - void *ext_data; + void *ext_data; /**< Extension data - not used */ }; int ecore_init(void); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/ecore.c,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -u -3 -r1.1.2.5 -r1.1.2.6 --- ecore.c 25 Jan 2003 02:25:54 -0000 1.1.2.5 +++ ecore.c 20 Feb 2003 06:56:40 -0000 1.1.2.6 @@ -5,7 +5,7 @@ /** * Set up connections, signal handlers, sockets etc. - * @return 1 on success, 0 otherwise + * @return 1 or greater on success, 0 otherwise * * This function sets up all singal handlers and the basic event loop. */ @@ -19,11 +19,20 @@ /** * Shut down connections, signal handlers sockets etc. * - * This function shuts all things set up in ecore_init() and cleans up + * This function shuts all things set up in ecore_init() and cleans up all + * event queues, handles, filters, timers, idlers, idle enterers etc. set up + * after ecore_init() was called. */ void ecore_shutdown(void) { + _ecore_exe_shutdown(); + _ecore_idle_enterer_shutdown(); + _ecore_idler_shutdown(); + _ecore_timer_shutdown(); + _ecore_event_shutdown(); + _ecore_main_shutdown(); + _ecore_signal_shutdown(); } void =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/ecore_app.c,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -3 -r1.1.2.1 -r1.1.2.2 --- ecore_app.c 16 Jan 2003 08:48:51 -0000 1.1.2.1 +++ ecore_app.c 20 Feb 2003 06:56:40 -0000 1.1.2.2 @@ -27,7 +27,9 @@ * @param argv A pointer to the return value to hold argv * * When called, this funciton returns the arguments for the program stored by - * ecore_app_args_set(). + * ecore_app_args_set(). The integer pointed to by @p argc will be filled, if + * the pointer is not NULL, and the string array pointer @p argv will be filled + * also if the pointer is not NULL. */ void ecore_app_args_get(int *argc, char ***argv) @@ -43,9 +45,11 @@ * using the command-line arguments stored by ecore_app_args_set(). This is * an easy way for a program to restart itself for cleanup purposes, * configuration reasons or in the event of a crash. + * + * FIXME: Currently not implimented. */ void ecore_app_restart(void) { - /* FIXME: exec selt using argv, argc etc. */ + /* FIXME: exec self using argv, argc etc. */ } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/ecore_events.c,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -u -3 -r1.1.2.6 -r1.1.2.7 --- ecore_events.c 5 Feb 2003 00:10:19 -0000 1.1.2.6 +++ ecore_events.c 20 Feb 2003 06:56:40 -0000 1.1.2.7 @@ -14,12 +14,19 @@ /** * Add an event handler - * @param type - * @param func - * @param data - * @return Handler handle - * - * Add an event handler + * @param type The type of the event this handler will get called for + * @param func The function to call when the event is found in the queue + * @param data A data pointer to pass to the called function @p func + * @return Handler handle, or NULL on failure + * + * Add an event handler to the list of handlers. This will, on success return + * a handle to the event handler that can be used later to remove the handler + * using ecore_event_handler_del(). The @p type parameter is the iteger of the + * event type that will trigger this callback to be called. The callback + * @p func is called when this event is processed and will be passed the + * event type, a pointer to the private event structure that is specific to + * that event type, and a data pointer that is provided in this call as the + * @p data parameter. */ Ecore_Event_Handler * ecore_event_handler_add(int type, int (*func) (int type, void *event, void *data), const void *data) @@ -40,10 +47,13 @@ /** * Delete an event handler - * @param event_handler + * @param event_handler Event handler handle to delete * @return Data passed to handler * - * Delete a specified event handler + * Delete a specified event handler from the handler list. On success this will + * delete the event handler and return the pointer passed as @p data when the + * handler was added by ecore_event_handler_add(). On failure NULL will be + * returned. */ void * ecore_event_handler_del(Ecore_Event_Handler *event_handler) @@ -61,13 +71,20 @@ /** * Add an event to the event queue - * @param type - * @param ev - * @param func_free - * @param data + * @param type The event type to add to the end of the event queue + * @param ev The private data structure for this event type + * @param func_free The function to be called to free this private structure + * @param data The data pointer to be passed to the free function * @return A Handle for that event * - * This adds an event to the event queue/ + * On success this function returns a handle to an event on the event queue, or + * NULL if it fails. If it succeeds, an event of type @p type will be added + * to the queue for processing by event handlers added by + * ecore_event_handler_add(). The @p ev parameter will be a pointer to the event + * private data that is specific to that event type. When the event is no + * longer needed, @p func_Free will be called and passed the private sructure + * pointer for cleaning up. If @p func_free is NULL, nothnig will be called. + * This function is passed @p data as its data parameter. */ Ecore_Event * ecore_event_add(int type, void *ev, void (*func_free) (void *ev, void *data), void *data) @@ -81,10 +98,14 @@ /** * Delete an event from the queue - * @param event - * @return The data pointer originally set for the event + * @param event The event handle to delete + * @return The data pointer originally set for the event free function * - * Delete the specified event from the event queue + * This deleted the event @p event from the event queue, and returns the + * @p data parameer originally set when adding it with ecore_event_add(). This + * does not immediately call the free function, and it may be called later on + * cleanup, and so if the free function depends on the data pointer to work, + * you should defer cleaning of this till the free function is called later. */ void * ecore_event_del(Ecore_Event *event) @@ -103,7 +124,11 @@ * Allocate a new event type id sensibly and return the new id * @return A new event type id. * - * This function allocates a new event type id and returns it. + * This function allocates a new event type id and returns it. Once an event + * type has been allocated it can never be de-allocated during the life of + * the program. There is no guarantee of the contents of this event ID, or how + * it is calculated, except that the ID will be unique to the current instance + * of the process. */ int ecore_event_type_new(void) @@ -112,16 +137,25 @@ return event_id_max - 1; } -#if 1 /** * Add a filter the current event queue - * @param func_start - * @param func_filter - * @param func_end - * @param data - * @return filter handle - * - * Add a filter to call callbacks to loop through the event queue and filter + * @param func_start Function to call just before filtering and return data + * @param func_filter Function to call on each event + * @param func_end Function to call after the queu has been filtered + * @param data Data to pass to the filter functions + * @return A filter handle + * + * This adds a filter to call callbacks to loop through the event queue and + * filter events out of the queue. On failure NULL is returned. On success a + * Filter handle is returned. Filters are called on the queue just before + * Event handler processing to try and remoe redundant events. Just as + * processing starts @p func_start is called and passed the @p data pointer. + * This function returned a pointer to loop_data that is now passed to + * @p func_filter as loop_data. @p func_filter is also passed @p data and the + * event type and private event structure. If this callback returns 0, the + * event is removed from the queue. If it returns 1, the event is kept. When + * processing is finished @p func_end is called and is passed the loop_data + * and @p data pointer to clean up. */ Ecore_Event_Filter * ecore_event_filter_add(void * (*func_start) (void *data), int (*func_filter) (int type, void *event, void *loop_data, void *data), void (*func_end) (void *loop_data, void *data), const void *data) @@ -142,10 +176,12 @@ /** * Delete an event filter - * @param ef + * @param ef The event filter handle * @return The data set for the filter * - * Delete a filter that has been added + * Delete a filter that has been added by its @p ef handle. On success this + * will return the data pointer set when this filter was added. On failure + * NULL is returned. */ void * ecore_event_filter_del(Ecore_Event_Filter *ef) @@ -161,8 +197,32 @@ return ef->data; } -#endif - +void +_ecore_event_shutdown(void) +{ + while (events) _ecore_event_del(events); + while (event_handlers) + { + Ecore_Event_Handler *eh; + + eh = event_handlers; + event_handlers = _ecore_list_remove(event_handlers, eh); + ECORE_MAGIC_SET(eh, ECORE_MAGIC_NONE); + free(eh); + } + event_handlers_delete_me = 0; + while (event_filters) + { + Ecore_Event_Filter *ef; + + ef = event_filters; + event_filters = _ecore_list_remove(event_filters, ef); + ECORE_MAGIC_SET(ef, ECORE_MAGIC_NONE); + free(ef); + } + event_filters_delete_me = 0; +} + int _ecore_event_exist(void) { =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/ecore_exe.c,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -u -3 -r1.1.2.5 -r1.1.2.6 --- ecore_exe.c 25 Jan 2003 02:17:02 -0000 1.1.2.5 +++ ecore_exe.c 20 Feb 2003 06:56:40 -0000 1.1.2.6 @@ -57,7 +57,8 @@ * * This frees an exe handle (but does not affect the process that was spawned * that this handle was a result of) and returns the data pointer set on - * executable start + * executable start. This does mean there is no handle for the spawned + * process anymore. */ void * ecore_exe_free(Ecore_Exe *exe) @@ -111,10 +112,10 @@ } /** - * Control an executed child - * @param exe The process handleto control + * Pause a spawned process + * @param exe The process handle to control * - * This function controls an executed process + * This function pauses a process that was spawned. */ void ecore_exe_pause(Ecore_Exe *exe) @@ -129,10 +130,11 @@ } /** - * Control an executed child - * @param exe The process handleto control + * Continue a paused process + * @param exe The process handle to control * - * This function controls an executed process + * This Continues a process. This is only useful if the process has already + * been paused by something like ecore_exe_pause(). */ void ecore_exe_continue(Ecore_Exe *exe) @@ -147,10 +149,10 @@ } /** - * Control an executed child - * @param exe The process handleto control + * Terminate a process. + * @param exe The process handle to control * - * This function controls an executed process + * This function asks a process to terminate. */ void ecore_exe_terminate(Ecore_Exe *exe) @@ -165,10 +167,12 @@ } /** - * Control an executed child - * @param exe The process handleto control + * Kill a process + * @param exe The process handle to control * - * This function controls an executed process + * This function ills off a process, and that process has no choice and will + * exit as a result of this function, without having a chance to clean up, + * save data, or safely shut down. */ void ecore_exe_kill(Ecore_Exe *exe) @@ -183,10 +187,12 @@ } /** - * Control an executed child - * @param exe The process handleto control + * Send a user signal to a process + * @param exe The process handle to control * - * This function controls an executed process + * This function sends a user signal (SIGUSR) to a process. @p num determines + * what numbered user signal to send. This may be either 1 or 2. Other values + * are illegal and will be ignored, with this function doing nothing. */ void ecore_exe_signal(Ecore_Exe *exe, int num) @@ -204,10 +210,10 @@ } /** - * Control an executed child - * @param exe The process handleto control + * Send a HUP signal to a process + * @param exe The process handle to control * - * This function controls an executed process + * This function sends a HUP signal to the specified process. */ void ecore_exe_hup(Ecore_Exe *exe) @@ -219,6 +225,12 @@ return; } kill(exe->pid, SIGHUP); +} + +void +_ecore_exe_shutdown(void) +{ + while (exes) _ecore_exe_free(exes); } Ecore_Exe * =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/ecore_idle_enterer.c,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -3 -r1.1.2.4 -r1.1.2.5 --- ecore_idle_enterer.c 25 Jan 2003 02:17:02 -0000 1.1.2.4 +++ ecore_idle_enterer.c 20 Feb 2003 06:56:40 -0000 1.1.2.5 @@ -6,11 +6,18 @@ /** * Add an idle enterer handler - * @param func - * @param data - * @return + * @param func The function to call when entering an idle state. + * @param data The data to be passed to the @p func call + * @return A handle to the idle enterer callback * - * This function adds an idle enterer handler and returns its handle + * This function adds an idle enterer handler and returns its handle on success + * or NULL on failure. Idle enterers are called just before he program goes + * int an idle state where it is waiting on timers to time out, data to come + * in on file descriptors, etc. The program will be in a "sleeping" state + * after all the idle enterer callbacks are called. This is a good callback to + * use to update your program's state if it has a state engine. Do all your + * heavy processing here to update state (like drawing etc.). When @p func + * is called, it will be passed the pointer @p data. */ Ecore_Idle_Enterer * ecore_idle_enterer_add(int (*func) (void *data), const void *data) @@ -29,10 +36,12 @@ /** * Delete an idle enter handler - * @param idle_enterer + * @param idle_enterer The idle enterer to delete * * Delete the specified @p idle_enterer from the set of idle_enterers that are - * executed during main loop execution. + * executed during main loop execution. On success the data pointer that was + * being passed to the idle handler function, set by ecore_idle_enterer_add() + * will be returned. */ void * ecore_idle_enterer_del(Ecore_Idle_Enterer *idle_enterer) @@ -46,6 +55,21 @@ idle_enterer->delete_me = 1; idle_enterers_delete_me = 1; return idle_enterer->data; +} + +void +_ecore_idle_enterer_shutdown(void) +{ + while (idle_enterers) + { + Ecore_Idle_Enterer *ie; + + ie = idle_enterers; + idle_enterers = _ecore_list_remove(idle_enterers, ie); + ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); + free(ie); + } + idle_enterers_delete_me = 0; } void =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/ecore_idler.c,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -3 -r1.1.2.4 -r1.1.2.5 --- ecore_idler.c 25 Jan 2003 02:17:02 -0000 1.1.2.4 +++ ecore_idler.c 20 Feb 2003 06:56:40 -0000 1.1.2.5 @@ -1,16 +1,24 @@ #include "ecore_private.h" #include "Ecore.h" -static Ecore_Idle_Enterer *idlers = NULL; -static int idlers_delete_me = 0; +static Ecore_Idler *idlers = NULL; +static int idlers_delete_me = 0; /** - * Add an idle handler - * @param func - * @param data - * @return + * Add an idler handler + * @param func The function to call when idling. + * @param data The data to be passed to this @p func call + * @return A idler handle * - * This function adds an idle handler and returns its handle + * This function adds an idler handler and returns its handle on success, or + * NULL on failure. Idlers will get called after idle enterer calls have all + * been called and the program is in an idle state waiting on data or timers. + * If no idler functions are set the process literally goes to sleep and uses + * no CPU. If You have idler functions set they will be called continuously + * during this "idle" time with your process consuming as much CPU as it can + * get to do so. This is useful for when there are interfaces that require + * polling and timers will mean too slow a response from the process if polling + * is done by timers. */ Ecore_Idler * ecore_idler_add(int (*func) (void *data), const void *data) @@ -28,11 +36,13 @@ } /** - * Delete an idle handler - * @param idler + * Delete an idler handler + * @param idler The idler to delete * * Delete the specified @p idler from the set of idlers that are executed - * during main loop execution. + * during main loop execution. On success the data pointer set by + * ecore_idler_add() and passed to the idler function is returned, or NULL + * on failure. */ void * ecore_idler_del(Ecore_Idler *idler) @@ -46,6 +56,21 @@ idler->delete_me = 1; idlers_delete_me = 1; return idler->data; +} + +void +_ecore_idler_shutdown(void) +{ + while (idlers) + { + Ecore_Idler *ie; + + ie = idlers; + idlers = _ecore_list_remove(idlers, ie); + ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); + free(ie); + } + idlers_delete_me = 0; } int =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/ecore_main.c,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -u -3 -r1.1.2.5 -r1.1.2.6 --- ecore_main.c 25 Jan 2003 06:46:38 -0000 1.1.2.5 +++ ecore_main.c 20 Feb 2003 06:56:40 -0000 1.1.2.6 @@ -20,7 +20,8 @@ * * This function does not return until ecore_main_loop_quit() is called. It * will keep looping internally and call all callbacks set up to handle timers, - * idle state and events Ecore recieves from X, IPC, signals etc. + * idle state and events Ecore recieves from X, fd's, IPC, signals etc. and + * anything else that has registered a handler with ecore itself. */ void ecore_main_loop_begin(void) @@ -133,15 +134,13 @@ /* process signals into events .... */ while (_ecore_signal_count_get()) _ecore_signal_call(); - /* filter events to remove useless ones etc. ... */ - /* FIXME: implement some other day... */ - /* handle events ... */ _ecore_event_call(); _ecore_main_fd_handlers_cleanup(); } while (_ecore_main_fd_handlers_buf_call()); } + quit = 0; } /** @@ -158,14 +157,28 @@ } /** - * Add a handler for read/write of a fd - * @param fd - * @param flags - * @param func - * @param data - * @return A handler handle + * Add a handler for read/write notification of a file descriptor + * @param fd The file descriptor to watch + * @param flags To watch it for read and/or write ability + * @param func The function to call when the file descriptor becomes active + * @param data The data to pass to the @p func call + * @return A fd handler handle + * + * This adds a fd handler, calling @p func whenever the fd is active for + * read or write (or both) depending what flags were set as @p flags. On + * failure NULL is returned. The @p func call will the triggered during + * execution of ecore_main_loop_begin() when a file descriptor (fd) is + * available for reading or writing (or both). + * + * Example: * - * This adds a fd handler, calling @p func whenever the fd is active + * @code + * int fd; + * Ecore_Fd_Handler *fdh; + * + * fd = open("/tmp/fifo", O_RDONLY); + * fdh = ecore_main_fd_handler_add(fd, ECORE_FD_READ, func_read_fifo, NULL); + * @endcode */ Ecore_Fd_Handler * ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, int (*func) (Ecore_Fd_Handler *fd_handler, void *data), const void *data, int (*buf_func) (Ecore_Fd_Handler *fd_handler, void *buf_data), const void *buf_data) @@ -192,12 +205,14 @@ } /** - * Delete a handler for fd's + * Delete a handler for file descriptors. * - * @param fd_handler + * @param fd_handler The handler to delete * @return The data pointer set for the fd_handler * - * This deletes a fd handler + * This deletes a file descriptore (fd) handler and on success returns the data + * pointer that was being passed to it, set by ecore_main_fd_handler_add(). + * NUll is returned on failure. */ void * ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler) @@ -214,11 +229,11 @@ } /** - * Return the fd the handler is handling - * @param fd_handler + * Return the file descriptor that the handler is handling + * @param fd_handler The fd handler to query * @return The fd the handler is watching * - * This returns the fd the handler is monitoring + * This returns the fd the @p fd_handler is monitoring. */ int ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd_handler) @@ -234,11 +249,15 @@ /** * Return if read or write is active on the fd - * @param fd_handler - * @param flags - * @return the active state of read or write on the fd, or both + * @param fd_handler The handler to query + * @param flags The flags to query + * @return The active state of read or write on the fd, or both * - * Return if the fd the handler is watching is active ro read, write or both + * Return if the fd the handler is watching is active for read, write or both. + * The @p flags parameter determines what youw ant to query, and 1 is returned + * if the hanldere reports an active state for any of the values in + * @p flags since this is the same bitmask the handler was set up with. 0 is + * returned if the fd is not active for the @p flags passed in. */ int ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags) @@ -256,7 +275,22 @@ if ((flags & ECORE_FD_WRITE) && (fd_handler->write_active)) ret = 1; return ret; } - + +void +_ecore_main_shutdown(void) +{ + while (fd_handlers) + { + Ecore_Fd_Handler *fdh; + + fdh = fd_handlers; + fd_handlers = _ecore_list_remove(fd_handlers, fdh); + ECORE_MAGIC_SET(fdh, ECORE_MAGIC_NONE); + free(fdh); + } + fd_handlers_delete_me = 0; +} + static int _ecore_main_select(double timeout) { =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/ecore_private.h,v retrieving revision 1.1.2.8 retrieving revision 1.1.2.9 diff -u -3 -r1.1.2.8 -r1.1.2.9 --- ecore_private.h 12 Feb 2003 11:27:32 -0000 1.1.2.8 +++ ecore_private.h 20 Feb 2003 06:56:40 -0000 1.1.2.9 @@ -137,16 +137,20 @@ #endif void _ecore_magic_fail(void *d, Ecore_Magic m, Ecore_Magic req_m, const char *fname); - + +void _ecore_timer_shutdown(void); double _ecore_timer_next_get(void); int _ecore_timer_call(double when); +void _ecore_idler_shutdown(void); int _ecore_idler_call(void); int _ecore_idler_exist(void); +void _ecore_idle_enterer_shutdown(void); void _ecore_idle_enterer_call(void); int _ecore_idle_enterer_exist(void); +void _ecore_event_shutdown(void); int _ecore_event_exist(void); Ecore_Event *_ecore_event_add(int type, void *ev, void (*func_free) (void *ev, void *data), void *data); void *_ecore_event_del(Ecore_Event *event); @@ -163,10 +167,14 @@ void *_ecore_event_signal_power_new(void); void _ecore_event_signal_power_free(void *ev, void *data); +void _ecore_main_shutdown(void); + +void _ecore_signal_shutdown(void); void _ecore_signal_init(void); int _ecore_signal_count_get(void); void _ecore_signal_call(void); +void _ecore_exe_shutdown(void); Ecore_Exe *_ecore_exe_find(pid_t pid); void *_ecore_exe_free(Ecore_Exe *exe); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/ecore_signal.c,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -3 -r1.1.2.1 -r1.1.2.2 --- ecore_signal.c 16 Jan 2003 08:48:51 -0000 1.1.2.1 +++ ecore_signal.c 20 Feb 2003 06:56:40 -0000 1.1.2.2 @@ -29,6 +29,32 @@ static int sig_count = 0; void +_ecore_signal_shutdown(void) +{ + _ecore_signal_callback_set(SIGPIPE, SIG_DFL); + _ecore_signal_callback_set(SIGALRM, SIG_DFL); + _ecore_signal_callback_set(SIGCHLD, SIG_DFL); + _ecore_signal_callback_set(SIGUSR1, SIG_DFL); + _ecore_signal_callback_set(SIGUSR2, SIG_DFL); + _ecore_signal_callback_set(SIGHUP, SIG_DFL); + _ecore_signal_callback_set(SIGQUIT, SIG_DFL); + _ecore_signal_callback_set(SIGINT, SIG_DFL); + _ecore_signal_callback_set(SIGTERM, SIG_DFL); + #ifdef SIGPWR + _ecore_signal_callback_set(SIGPWR, SIG_DFL); + #endif + sigchld_count = 0; + sigusr1_count = 0; + sigusr2_count = 0; + sighup_count = 0; + sigquit_count = 0; + sigint_count = 0; + sigterm_count = 0; + sigpwr_count = 0; + sig_count = 0; +} + +void _ecore_signal_init(void) { _ecore_signal_callback_set(SIGPIPE, _ecore_signal_callback_ignore); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Attic/ecore_timer.c,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -3 -r1.1.2.4 -r1.1.2.5 --- ecore_timer.c 25 Jan 2003 02:17:02 -0000 1.1.2.4 +++ ecore_timer.c 20 Feb 2003 06:56:40 -0000 1.1.2.5 @@ -14,7 +14,10 @@ * @param data The data to pass to the function * @return * - * This function adds a timer and returns its handle. + * This function adds a timer and returns its handle on success and NULL on + * failure. The function @p func will be called in @p in seconds from the + * time this function call was made. The function @p func is passed the + * @p data pointer as its parameter. */ Ecore_Timer * ecore_timer_add(double in, int (*func) (void *data), const void *data) @@ -56,6 +59,20 @@ ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE); free(timer); return data; +} + +void +_ecore_timer_shutdown(void) +{ + while (timers) + { + Ecore_Timer *timer; + + timer = timers; + timers = _ecore_list_remove(timers, timer); + ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE); + free(timer); + } } double ------------------------------------------------------- This SF.net email is sponsored by: SlickEdit Inc. Develop an edge. The most comprehensive and flexible code editor you can use. Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial. www.slickedit.com/sourceforge _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs