From: <no-...@en...> - 2008-08-28 06:34:21
|
Author: caro Date: 2008-08-27 23:34:20 -0700 (Wed, 27 Aug 2008) New Revision: 35703 Modified: trunk/PROTO/eina/src/lib/eina_list.c Log: forget to open groups in doc... Modified: trunk/PROTO/eina/src/lib/eina_list.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_list.c 2008-08-28 06:31:18 UTC (rev 35702) +++ trunk/PROTO/eina/src/lib/eina_list.c 2008-08-28 06:34:20 UTC (rev 35703) @@ -338,6 +338,8 @@ * @addtogroup Eina_List_Data_Group Linked List Add Functions * * Functions that add data to an Eina_List. + * + * @{ */ /** @@ -603,6 +605,8 @@ * @addtogroup Eina_List_Remove_Group Linked List Remove Functions * * Functions that remove data from linked lists. + * + * @{ */ /** @@ -781,6 +785,8 @@ * @addtogroup Eina_List_Find_Group Linked List Find Functions * * Functions that find specified data in a linked list. + * + * @{ */ /** @@ -939,6 +945,8 @@ * @addtogroup Eina_List_Traverse_Group Linked List Traverse Functions * * Functions that you can use to traverse a linked list. + * + * @{ */ /** @@ -1020,6 +1028,8 @@ * @addtogroup Eina_List_General_Group Linked List General Functions * * Miscellaneous functions that work on linked lists. + * + * @{ */ /** @@ -1072,6 +1082,8 @@ * @addtogroup Eina_List_Ordering_Group Linked List Ordering Functions * * Functions that change the ordering of data in a linked list. + * + * @{ */ /** |
From: <no-...@en...> - 2008-08-28 06:49:06
|
Author: caro Date: 2008-08-27 23:49:04 -0700 (Wed, 27 Aug 2008) New Revision: 35704 Modified: trunk/PROTO/eina/src/lib/eina_module.c Log: use 'dll' extension on Windows. Modified: trunk/PROTO/eina/src/lib/eina_module.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_module.c 2008-08-28 06:34:20 UTC (rev 35703) +++ trunk/PROTO/eina/src/lib/eina_module.c 2008-08-28 06:49:04 UTC (rev 35704) @@ -20,19 +20,29 @@ # include "config.h" #endif +#include <sys/types.h> +#include <dirent.h> +#include <string.h> +#include <dlfcn.h> + #include "eina_module.h" #include "eina_file.h" #include "eina_private.h" #include "eina_inlist.h" -#include <sys/types.h> -#include <dirent.h> -#include <string.h> -#include <dlfcn.h> /*============================================================================* * Local * *============================================================================*/ -#define MODULE_EXTENSION ".so" + +/** + * @cond LOCAL + */ + +#ifdef _WIN32 +# define MODULE_EXTENSION ".so" +#else +# define MODULE_EXTENSION ".dll" +#endif /* ! _WIN32 */ #define MODULE_SUBDIR "/modules/" #define MODULE_BASE_EXTENTION "module" @@ -208,6 +218,10 @@ free(module); } +/** + * @endcond + */ + /*============================================================================* * Global * *============================================================================*/ @@ -278,11 +292,12 @@ } } #else - self_name = malloc(strlen(PACKAGE_LIB_DIR) + strlen("/libeina.so") + 1); + self_name = malloc(strlen(PACKAGE_LIB_DIR) + strlen("/libeina") + strlen(MODULE_EXTENSION) + 1); if (self_name) { strcpy(self_name, PACKAGE_LIB_DIR); - strcat(self_name, "/libeina.so"); + strcat(self_name, "/libeina"); + strcat(self_name, MODULE_EXTENSION); } #endif |
From: <no-...@en...> - 2008-08-28 23:38:46
|
Author: caro Date: 2008-08-28 16:38:43 -0700 (Thu, 28 Aug 2008) New Revision: 35723 Modified: trunk/PROTO/eina/src/lib/eina_module.c Log: wrong shared lib extension... Modified: trunk/PROTO/eina/src/lib/eina_module.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_module.c 2008-08-28 20:13:39 UTC (rev 35722) +++ trunk/PROTO/eina/src/lib/eina_module.c 2008-08-28 23:38:43 UTC (rev 35723) @@ -40,9 +40,9 @@ */ #ifdef _WIN32 -# define MODULE_EXTENSION ".so" +# define MODULE_EXTENSION ".dll" #else -# define MODULE_EXTENSION ".dll" +# define MODULE_EXTENSION ".do" #endif /* ! _WIN32 */ #define MODULE_SUBDIR "/modules/" #define MODULE_BASE_EXTENTION "module" |
From: <no-...@en...> - 2008-08-28 23:51:50
|
Author: caro Date: 2008-08-28 16:51:48 -0700 (Thu, 28 Aug 2008) New Revision: 35724 Modified: trunk/PROTO/eina/src/lib/eina_module.c Log: now it should be correct Modified: trunk/PROTO/eina/src/lib/eina_module.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_module.c 2008-08-28 23:38:43 UTC (rev 35723) +++ trunk/PROTO/eina/src/lib/eina_module.c 2008-08-28 23:51:48 UTC (rev 35724) @@ -42,7 +42,7 @@ #ifdef _WIN32 # define MODULE_EXTENSION ".dll" #else -# define MODULE_EXTENSION ".do" +# define MODULE_EXTENSION ".so" #endif /* ! _WIN32 */ #define MODULE_SUBDIR "/modules/" #define MODULE_BASE_EXTENTION "module" |
From: <no-...@en...> - 2008-08-29 13:34:33
|
Author: caro Date: 2008-08-29 06:34:30 -0700 (Fri, 29 Aug 2008) New Revision: 35730 Modified: trunk/PROTO/eina/src/lib/eina_counter.c Log: port eina_counter code to Windows. Modified: trunk/PROTO/eina/src/lib/eina_counter.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_counter.c 2008-08-29 09:34:39 UTC (rev 35729) +++ trunk/PROTO/eina/src/lib/eina_counter.c 2008-08-29 13:34:30 UTC (rev 35730) @@ -22,7 +22,17 @@ #include <stdlib.h> #include <string.h> -#include <time.h> +#ifndef _WIN32 +# include <time.h> +#else +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +# undef WIN32_LEAN_AND_MEAN +struct timespec +{ + LARGE_INTEGER pc; +}; +#endif /* ! _WIN2 */ #include "eina_counter.h" #include "eina_inlist.h" @@ -57,6 +67,23 @@ static int _eina_counter_init_count = 0; static int EINA_COUNTER_ERROR_OUT_OF_MEMORY = 0; +#ifndef _WIN32 +static inline int +_eina_counter_time_get(struct timespec *tp) +{ + return clock_gettime(CLOCK_PROCESS_CPUTIME_ID, tp); +} +#else +static int EINA_COUNTER_ERROR_WINDOWS = 0; +static LARGE_INTEGER _eina_counter_frequency; + +static inline int +_eina_counter_time_get(struct timespec *tp) +{ + return QueryPerformanceCounter(&tp->pc); +} +#endif /* _WIN2 */ + /*============================================================================* * Global * *============================================================================*/ @@ -74,6 +101,14 @@ { eina_error_init(); EINA_COUNTER_ERROR_OUT_OF_MEMORY = eina_error_register("Eina_Counter out of memory"); +#ifdef _WIN32 + if (!QueryPerformanceFrequency(&_eina_counter_frequency)) + { + EINA_COUNTER_ERROR_WINDOWS = eina_error_register("Change your OS, you moron !"); + _eina_counter_init_count--; + return 0; + } +#endif /* _WIN2 */ } return _eina_counter_init_count; @@ -135,7 +170,7 @@ struct timespec tp; if (!counter) return ; - if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &tp) != 0) return ; + if (!_eina_counter_time_get(&tp)) return; clk = calloc(1, sizeof (Eina_Clock)); if (!clk) @@ -157,7 +192,7 @@ struct timespec tp; if (!counter) return ; - if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &tp) != 0) return ; + if (!_eina_counter_time_get(&tp)) return; clk = (Eina_Clock *) counter->clocks; @@ -177,12 +212,26 @@ EINA_INLIST_ITER_LAST(counter->clocks, clk) { + long int start; + long int end; + long int diff; + +#ifndef _WIN32 + start = clk->start.tv_sec * 1000000000 + clk->start.tv_nsec; + end = clk->end.tv_sec * 1000000000 + clk->end.tv_nsec; + diff = (clk->end.tv_sec - clk->start.tv_sec) * 1000000000 + clk->end.tv_nsec - clk->start.tv_nsec; +#else + start = (long int)(((long long int)clk->start.pc.QuadPart * 1000000000ll) / (long long int)_eina_counter_frequency.QuadPart); + end = (long int)(((long long int)clk->end.pc.QuadPart * 1000000000LL) / (long long int)_eina_counter_frequency.QuadPart); + diff = (long int)(((long long int)(clk->end.pc.QuadPart - clk->start.pc.QuadPart) * 1000000000LL) / (long long int)_eina_counter_frequency.QuadPart); +#endif /* _WIN2 */ + if (clk->valid == EINA_TRUE) fprintf(out, "%i\t%li\t%li\t%li\n", clk->specimen, - (clk->end.tv_sec * 1000000000 + clk->end.tv_nsec) - (clk->start.tv_sec * 1000000000 + clk->start.tv_nsec), - clk->start.tv_sec * 1000000000 + clk->start.tv_nsec, - clk->end.tv_sec * 1000000000 + clk->end.tv_nsec); + diff, + start, + end); } } |
From: <no-...@en...> - 2008-08-29 14:45:57
|
Author: caro Date: 2008-08-29 07:45:55 -0700 (Fri, 29 Aug 2008) New Revision: 35736 Modified: trunk/PROTO/eina/src/lib/eina_counter.c Log: fix compilation on Windows Modified: trunk/PROTO/eina/src/lib/eina_counter.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_counter.c 2008-08-29 14:23:38 UTC (rev 35735) +++ trunk/PROTO/eina/src/lib/eina_counter.c 2008-08-29 14:45:55 UTC (rev 35736) @@ -225,9 +225,9 @@ end = clk->end.tv_sec * 1000000000 + clk->end.tv_nsec; diff = (clk->end.tv_sec - clk->start.tv_sec) * 1000000000 + clk->end.tv_nsec - clk->start.tv_nsec; #else - start = (long int)(((long long int)clk->start.pc.QuadPart * 1000000000ll) / (long long int)_eina_counter_frequency.QuadPart); - end = (long int)(((long long int)clk->end.pc.QuadPart * 1000000000LL) / (long long int)_eina_counter_frequency.QuadPart); - diff = (long int)(((long long int)(clk->end.pc.QuadPart - clk->start.pc.QuadPart) * 1000000000LL) / (long long int)_eina_counter_frequency.QuadPart); + start = (long int)(((long long int)clk->start.QuadPart * 1000000000ll) / (long long int)_eina_counter_frequency.QuadPart); + end = (long int)(((long long int)clk->end.QuadPart * 1000000000LL) / (long long int)_eina_counter_frequency.QuadPart); + diff = (long int)(((long long int)(clk->end.QuadPart - clk->start.QuadPart) * 1000000000LL) / (long long int)_eina_counter_frequency.QuadPart); #endif /* _WIN2 */ fprintf(out, "%i\t%li\t%li\t%li\n", |
From: <no-...@en...> - 2008-09-06 08:48:37
|
Author: caro Date: 2008-09-06 01:48:36 -0700 (Sat, 06 Sep 2008) New Revision: 35849 Modified: trunk/PROTO/eina/src/lib/eina_error.c Log: * finish tutorial of eina_error * spelling Modified: trunk/PROTO/eina/src/lib/eina_error.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_error.c 2008-09-06 08:30:07 UTC (rev 35848) +++ trunk/PROTO/eina/src/lib/eina_error.c 2008-09-06 08:48:36 UTC (rev 35849) @@ -144,10 +144,185 @@ * * before the calls of the tests in the above example. * + * @section tutorial_error_advanced_display Advanced usage of print + * callbacks + * + * The error module allows the user to change the way + * eina_error_print() displays the messages. It suffices to pass to + * eina_error_print_cb_set() the function used to display the + * message. That function must be of type #Eina_Error_Print_Cb. As a + * custom data can be passed to that callback, powerful display + * messages can be displayed. + * + * It is suggested to not use __FILE__, __FUNCTION__ or __LINE__ when + * writing that callback, but when defining macros (like + * EINA_ERROR_PERR() and other macros). + * + * Here is an example of custom callback, whose behavior can be + * changed at runtime: + * + * @code + * #include <stdlib.h> + * #include <stdio.h> + * + * #include <eina_error.h> + * + * #define ERROR(fmt, ...) \ + * eina_error_print(EINA_ERROR_LEVEL_ERR, __FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__) + * + * typedef struct _Data Data; + * + * struct _Data + * { + * int to_stderr; + * }; + * + * void print_cb(Eina_Error_Level level, + * const char *file, + * const char *fnc, + * int line, + * const char *fmt, + * void *data, + * va_list args) + * { + * Data *d; + * FILE *output; + * char *str; + * + * d = (Data *)data; + * if (d->to_stderr) + * { + * output = stderr; + * str = "stderr"; + * } + * else + * { + * output = stdout; + * str = "stdout"; + * } + * + * fprintf(output, "%s:%s (%d) %s: ", file, fnc, line, str); + * vfprintf(output, fmt, args); + * } + * + * void test(Data *data, int i) + * { + * if (i < 0) + * data->to_stderr = 0; + * else + * data->to_stderr = 1; + * + * ERROR("error message...\n"); + * } + * + * int main(void) + * { + * Data *data; + * + * if (!eina_error_init()) + * { + * printf ("Error during the initialization of eina_error module\n"); + * return EXIT_FAILURE; + * } + * + * data = (Data *)malloc(sizeof(Data)); + * if (!data) + * { + * printf ("Error during memory allocation\n"); + * eina_error_shutdown(); + * return EXIT_FAILURE; + * } + * + * eina_error_print_cb_set(print_cb, data); + * + * test(data, -1); + * test(data, 0); + * + * eina_error_shutdown(); + * + * return EXIT_SUCCESS; + * } + * @endcode + * * @section tutorial_error_registering_msg Registering messages * - * @section tutorial_error_advanced_display Advanced usage of print callbacks + * The error module can provide a system that mimic the errno system + * of the C standard library. It consists in 2 parts: * + * @li a way of registering new messages with + * eina_error_msg_register() and eina_error_msg_get(), + * @li a way of setting / getting last error message with + * eina_error_set() / eina_error_get(). + * + * So one has to fisrt register all the error messages that a program + * or a lib should manage. Then, when an error can occur, use + * eina_error_set(), and when errors are managed, use eina_error_get(). + * + * @code + * #include <stdlib.h> + * #include <stdio.h> + * + * #include <eina_error.h> + * + * Eina_Error MY_ERROR_NEGATIVE; + * Eina_Error MY_ERROR_NULL; + * + * voi *data_new() + * { + * eina_error_set(MY_ERROR_NULL); + * return NULL; + * } + * + * int test(int n) + * { + * if (n < 0) + * { + * eina_error_set(MY_ERROR_NEGATIVE); + * return 0; + * } + * + * return 1; + * } + * + * int main(void) + * { + * void *data; + * + * if (!eina_error_init()) + * { + * printf ("Error during the initialization of eina_error module\n"); + * return EXIT_FAILURE; + * } + * + * MY_ERROR_NEGATIVE = eina_error_msg_register("Negative number"); + * MY_ERROR_NULL = eina_error_msg_register("NULL pointer"); + + * data = data_new(); + * if (!data) + * { + * Eina_Error err; + * + * err = eina_error_get(); + * if (err) + * printf("Error during memory allocation: %s\n", + * eina_error_msg_get(err)); + * } + * + * if (!test(-1)) + * { + * Eina_Error err; + * + * err = eina_error_get(); + * if (err) + * printf("Error during test function: %s\n", + * eina_error_msg_get(err)); + * } + * + * eina_error_shutdown(); + * + * return EXIT_SUCCESS; + * } + * @endcode */ #ifdef HAVE_CONFIG_H @@ -164,9 +339,9 @@ /* TODO * + printing errors to stdout or stderr can be implemented * using a queue, useful for multiple threads printing - * + add a wapper for assert? + * + add a wrapper for assert? * + add common error numbers, messages - * + add a calltrace of erros, not only store the last error but a list of them + * + add a calltrace of errors, not only store the last error but a list of them * and also store the function that set it */ @@ -311,8 +486,8 @@ * #EINA_ERROR_LEVEL_INFO and #EINA_ERROR_LEVEL_DBG. That value can * also be set later with eina_error_log_level_set(). * - * If you call explicitely this function and once you don't need - * anymore the error subsystem, then call eina_error_shutdown() to + * If you call explicitely this function and once the error subsystem + * is not used anymore, then eina_error_shutdown() must be called to * shut down the error system. */ EAPI int eina_error_init(void) @@ -341,7 +516,7 @@ * This function shut down the error system set up by * eina_error_init(). It is called by eina_shutdown() and by all * subsystems shutdown functions. It returns 0 when it is called the - * same number of times that eina_error_init() and it clears the error + * same number of times than eina_error_init() and it clears the error * list. */ EAPI int eina_error_shutdown(void) @@ -463,7 +638,7 @@ } /** - * @brief Print callback that send the error message to stdout. + * @brief Print callback that sends the error message to stdout. * * @param level The error level. * @param file The name of the file where the error occurred. @@ -474,8 +649,8 @@ * @param args The arguments that will be converted. * * This function is used to send a formatted error message to standard - * output and as a print callback, with eina_error_print(). This is - * the default print callback. + * output and is used as a print callback, with + * eina_error_print(). This is the default print callback. */ EAPI void eina_error_print_cb_stdout(Eina_Error_Level level, const char *file, const char *fnc, int line, const char *fmt, __UNUSED__ void *data, @@ -488,7 +663,7 @@ } /** - * @brief Print callback that send the error message to a specified stream. + * @brief Print callback that sends the error message to a specified stream. * * @param level Unused. * @param file The name of the file where the error occurred. @@ -520,8 +695,8 @@ * @param cb The print callback. * @param data The data to pass to the callback * - * This function set the default print callback @p cb used by - * eina_error_print(). A data an be passed to that callback with + * This function sets the default print callback @p cb used by + * eina_error_print(). A data can be passed to that callback with * @p data. */ EAPI void eina_error_print_cb_set(Eina_Error_Print_Cb cb, void *data) @@ -535,7 +710,7 @@ * * @param level The error level. * - * This function sets the error log level @p level. I it used in + * This function sets the error log level @p level. It is used in * eina_error_print(). */ EAPI void eina_error_log_level_set(Eina_Error_Level level) |
From: <no-...@en...> - 2008-09-06 08:54:23
|
Author: caro Date: 2008-09-06 01:54:22 -0700 (Sat, 06 Sep 2008) New Revision: 35850 Modified: trunk/PROTO/eina/src/lib/eina_error.c Log: * fix section title * forget a remark Modified: trunk/PROTO/eina/src/lib/eina_error.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_error.c 2008-09-06 08:48:36 UTC (rev 35849) +++ trunk/PROTO/eina/src/lib/eina_error.c 2008-09-06 08:54:22 UTC (rev 35850) @@ -144,8 +144,7 @@ * * before the calls of the tests in the above example. * - * @section tutorial_error_advanced_display Advanced usage of print - * callbacks + * @section tutorial_error_advanced_display Advanced usage of print callbacks * * The error module allows the user to change the way * eina_error_print() displays the messages. It suffices to pass to @@ -258,6 +257,8 @@ * or a lib should manage. Then, when an error can occur, use * eina_error_set(), and when errors are managed, use eina_error_get(). * + * Here is an example of use: + * * @code * #include <stdlib.h> * #include <stdio.h> @@ -323,6 +324,9 @@ * return EXIT_SUCCESS; * } * @endcode + * + * Of course, instead of printf(), eina_error_print() can be used to + * have beautiful error messages. */ #ifdef HAVE_CONFIG_H |
From: <no-...@en...> - 2008-09-06 09:14:57
|
Author: caro Date: 2008-09-06 02:14:54 -0700 (Sat, 06 Sep 2008) New Revision: 35851 Modified: trunk/PROTO/eina/src/lib/eina_error.c Log: fix examples in tutorial Modified: trunk/PROTO/eina/src/lib/eina_error.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_error.c 2008-09-06 08:54:22 UTC (rev 35850) +++ trunk/PROTO/eina/src/lib/eina_error.c 2008-09-06 09:14:54 UTC (rev 35851) @@ -255,7 +255,10 @@ * * So one has to fisrt register all the error messages that a program * or a lib should manage. Then, when an error can occur, use - * eina_error_set(), and when errors are managed, use eina_error_get(). + * eina_error_set(), and when errors are managed, use + * eina_error_get(). If eina_error_set() is used to set an error, do + * not forget to call before eina_error_set0), to remove previous set + * errors. * * Here is an example of use: * @@ -270,12 +273,16 @@ * * voi *data_new() * { + * eina_error_set(0); + * * eina_error_set(MY_ERROR_NULL); * return NULL; * } * * int test(int n) * { + * eina_error_set(0); + * * if (n < 0) * { * eina_error_set(MY_ERROR_NEGATIVE); @@ -309,6 +316,16 @@ * eina_error_msg_get(err)); * } * + * if (!test(0)) + * { + * Eina_Error err; + * + * err = eina_error_get(); + * if (err) + * printf("Error during test function: %s\n", + * eina_error_msg_get(err)); + * } + * * if (!test(-1)) * { * Eina_Error err; |
From: Enlightenment S. <no-...@en...> - 2008-09-20 08:42:55
|
Log: finish doc of the file module. Add a warning if eina_file_split() is used Author: caro Date: 2008-09-20 01:42:35 -0700 (Sat, 20 Sep 2008) New Revision: 36122 Modified: trunk/PROTO/eina/src/lib/eina_file.c Modified: trunk/PROTO/eina/src/lib/eina_file.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_file.c 2008-09-20 07:37:58 UTC (rev 36121) +++ trunk/PROTO/eina/src/lib/eina_file.c 2008-09-20 08:42:35 UTC (rev 36122) @@ -78,10 +78,18 @@ /** * @addtogroup Eina_File_Group Memory File * - * @brief Functions to traverse directories and split paths + * @brief Functions to traverse directories and split paths. * - * To be documented... + * @li eina_file_dir_list() list the content of a directory, + * recusrsively or not, and can call a callback function for eachfound + * file. + * @li eina_file_split() split a path into all the subdirectories that + * compose it, according to the separator of the file system. * + * @warning eina_file_split() uses the @ref Eina_Array_Group module + * but does not initialize it. eina_array_init() and + * eina_array_shutdown() must be called if this function is used. + * * @{ */ @@ -225,6 +233,10 @@ * filesystem. If @p path is @c NULL or if the array can not be * created, @c NULL is returned, otherwise, an array with the * different parts of @p path is returned. + * + * @warning This function uses the @ref Eina_Array_Group module but + * does not initialize it. eina_array_init() and eina_array_shutdown() + * must be called if this function is used. */ EAPI Eina_Array * eina_file_split(char *path) |
From: Enlightenment S. <no-...@en...> - 2008-09-20 09:47:14
|
Log: add doc to the counter module. remove the link to the tutorial (the module is too short for a tutorial to be useful) Author: caro Date: 2008-09-20 02:46:54 -0700 (Sat, 20 Sep 2008) New Revision: 36126 Modified: trunk/PROTO/eina/src/lib/eina_counter.c Modified: trunk/PROTO/eina/src/lib/eina_counter.c =================================================================== --- trunk/PROTO/eina/src/lib/eina_counter.c 2008-09-20 09:11:30 UTC (rev 36125) +++ trunk/PROTO/eina/src/lib/eina_counter.c 2008-09-20 09:46:54 UTC (rev 36126) @@ -16,14 +16,6 @@ * if not, see <http://www.gnu.org/licenses/>. */ - -/** - * @page tutorial_counter_page Counter Tutorial - * - * to be written... - * - */ - #ifdef HAVE_CONFIG_H # include "config.h" #endif @@ -118,10 +110,80 @@ /** * @addtogroup Eina_Counter_Group Counter * - * These functions allow you to get the time spent in a part of a code. + * @brief These functions allow you to get the time spent in a part of a code. * - * For more information, you can look at the @ref tutorial_counter_page. + * The counter system must be initialized with eina_counter_init() and + * shut down with eina_counter_shutdown(). The create a counter, use + * eina_counter_add(). To free it, use eina_counter_delete(). * + * To time a part of a code, call eina_counter_start() just before it, + * and eina_counter_stop() just after it. Each time you start to time + * a code, a clock is added to a list. You can give a number of that + * clock with the second argument of eina_counter_stop(). To send all + * the registered clocks to a stream (like stdout, ofr a file), use + * eina_counter_dump(). + * + * Here is a straightforward example: + * + * @code + * #include <stdlib.h> + * #include <stdio.h> + * + * #include <eina_counter.h> + * + * void test_malloc(void) + * { + * int i; + * + * for (i = 0; i < 100000; ++i) + * { + * void *buf; + * + * buf = malloc(100); + * free(buf); + * } + * } + * + * int main(void) + * { + * Eina_Counter *counter; + * + * if (!eina_counter_init()) + * { + * printf("Error during the initialization of eina_counter module\n"); + * return EXIT_FAILURE; + * } + * + * counter = eina_counter_add("malloc"); + * + * eina_counter_start(counter); + * test_malloc(); + * eina_counter_stop(counter, 1); + * + * eina_counter_dump(counter, stdout); + * + * eina_counter_delete(counter); + * eina_counter_shutdown(); + * + * return EXIT_SUCCESS; + * } + * @endcode + * + * Compile this code with the following commant: + * + * @code + * gcc -Wall -o test_eina_counter test_eina.c `pkg-config --cflags --libs eina` + * @endcode + * + * The result should be something like that: + * + * @code + * # specimen experiment time starting time ending time + * 1 9794125 783816 10577941 + * @endcode + * + * Note that the displayed time is in nanosecond. + * * @{ */ @@ -282,13 +344,13 @@ * @brief Stop the time count. * * @param counter The counter. - * @param specimen The specimen. + * @param specimen The number of the test. * * This function stop the timing that has been started with * eina_counter_start(). @p counter must be the same than the one used - * with eina_counter_start(). @p specimen is the number of times the - * test should be done. If @p counter or its associated clock are - * @c NULL, or if the time can't be retrieved the function exits. + * with eina_counter_start(). @p specimen is the number of the + * test. If @p counter or its associated clock are @c NULL, or if the + * time can't be retrieved the function exits. */ EAPI void eina_counter_stop(Eina_Counter *counter, int specimen) @@ -322,6 +384,8 @@ * \# specimen experiment time starting time ending time * 1 208 120000 120208 * @endcode + * + * The unit of time is the nanosecond. */ EAPI void eina_counter_dump(Eina_Counter *counter, FILE *out) |
From: Enlightenment S. <no-...@en...> - 2008-09-23 05:24:28
|
Log: formatting Author: caro Date: 2008-09-22 22:24:26 -0700 (Mon, 22 Sep 2008) New Revision: 36179 Modified: trunk/PROTO/eina/src/lib/Makefile.am Modified: trunk/PROTO/eina/src/lib/Makefile.am =================================================================== --- trunk/PROTO/eina/src/lib/Makefile.am 2008-09-23 05:17:49 UTC (rev 36178) +++ trunk/PROTO/eina/src/lib/Makefile.am 2008-09-23 05:24:26 UTC (rev 36179) @@ -30,8 +30,6 @@ eina_benchmark.c \ eina_stringshare.c -libeina_la_LIBADD = @EINA_LIBS@ - if EINA_STATIC_BUILD_CHAINED_POOL libeina_la_SOURCES += $(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c @@ -56,6 +54,7 @@ endif +libeina_la_LIBADD = @EINA_LIBS@ libeina_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ clean-local: |