|
PLE
Parallel Location and Exchange
|
Configurable error and memory handling with default functions. More...
#include "ple_config_defs.h"#include <assert.h>#include <errno.h>#include <stdarg.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <stdbool.h>#include <sys/time.h>#include "ple_defs.h"Macros | |
| #define | _(String) |
| #define | N_(String) |
| #define | textdomain(String) |
| #define | gettext(String) |
| #define | dgettext(Domain, String) |
| #define | dcgettext(Domain, String, Type) |
| #define | bindtextdomain(Domain, Directory) |
Functions | |
| int | ple_printf (const char *const format,...) |
| Replacement for printf() with modifiable behavior. | |
| ple_printf_t * | ple_printf_function_get (void) |
| Returns function associated with the ple_printf() function. | |
| void | ple_printf_function_set (ple_printf_t *const fct) |
| Associates a vprintf() type function with the ple_printf() function. | |
| void | ple_error (const char *const file_name, const int line_num, const int sys_error_code, const char *const format,...) |
| Calls the error handler (set by ple_error_handler_set() or default). | |
| ple_error_handler_t * | ple_error_handler_get (void) |
| Returns the error handler associated with the ple_error() function. | |
| void | ple_error_handler_set (ple_error_handler_t *handler) |
| Associates an error handler with the ple_error() function. | |
| void * | ple_mem_malloc (size_t ni, size_t size, const char *var_name, const char *file_name, int line_num) |
| Allocate memory for ni elements of size bytes. | |
| void * | ple_mem_realloc (void *ptr, size_t ni, size_t size, const char *var_name, const char *file_name, int line_num) |
| Reallocate memory for ni elements of size bytes. | |
| void * | ple_mem_free (void *ptr, const char *var_name, const char *file_name, int line_num) |
| Free allocated memory. | |
| void | ple_mem_functions_get (ple_mem_malloc_t **malloc_func, ple_mem_realloc_t **realloc_func, ple_mem_free_t **free_func) |
| Return the function pointers associated with PLE's memory management. | |
| void | ple_mem_functions_set (ple_mem_malloc_t *malloc_func, ple_mem_realloc_t *realloc_func, ple_mem_free_t *free_func) |
| Associate functions to modifiy PLE's memory management. | |
| double | ple_timer_wtime (void) |
| Return Wall clock time. | |
| double | ple_timer_cpu_time (void) |
| Return CPU time. | |
Configurable error and memory handling with default functions.
| #define _ | ( | String | ) |
| #define bindtextdomain | ( | Domain, | |
| Directory ) |
| #define dcgettext | ( | Domain, | |
| String, | |||
| Type ) |
| #define dgettext | ( | Domain, | |
| String ) |
| #define gettext | ( | String | ) |
| #define N_ | ( | String | ) |
| #define textdomain | ( | String | ) |
| void ple_error | ( | const char *const | file_name, |
| const int | line_num, | ||
| const int | sys_error_code, | ||
| const char *const | format, | ||
| ... ) |
Calls the error handler (set by ple_error_handler_set() or default).
With the default error handler, an error message is output to stderr, and the current process exits with an EXIT_FAILURE code.
| [in] | file_name | name of source file from which error handler called. |
| [in] | line_num | line of source file from which error handler called. |
| [in] | sys_error_code | error code if error in system or libc call, 0 otherwise. |
| [in] | format | format string, as printf() and family. |
| [in] | ... | variable arguments based on format string. |
| ple_error_handler_t * ple_error_handler_get | ( | void | ) |
Returns the error handler associated with the ple_error() function.
| void ple_error_handler_set | ( | ple_error_handler_t * | handler | ) |
Associates an error handler with the ple_error() function.
| [in] | handler | pointer to the error handler function. |
| void * ple_mem_free | ( | void * | ptr, |
| const char * | var_name, | ||
| const char * | file_name, | ||
| int | line_num ) |
Free allocated memory.
This function calls free(), but adds tracing capabilities, and automatically calls the ple_error() errorhandler if it fails to free the corresponding memory. In case of a NULL pointer argument, the function simply returns.
| [in] | ptr | pointer to previous memory location (if NULL, ple_alloc() called). |
| [in] | var_name | allocated variable name string |
| [in] | file_name | name of calling source file |
| [in] | line_num | line number in calling source file |
| void ple_mem_functions_get | ( | ple_mem_malloc_t ** | malloc_func, |
| ple_mem_realloc_t ** | realloc_func, | ||
| ple_mem_free_t ** | free_func ) |
Return the function pointers associated with PLE's memory management.
All arguments are optional.
| [out] | malloc_func | pointer to ple_mem_malloc function pointer (or NULL). |
| [out] | realloc_func | pointer to ple_mem_realloc function pointer (or NULL). |
| [out] | free_func | pointer to ple_mem_free function pointer (or NULL). |
| void ple_mem_functions_set | ( | ple_mem_malloc_t * | malloc_func, |
| ple_mem_realloc_t * | realloc_func, | ||
| ple_mem_free_t * | free_func ) |
Associate functions to modifiy PLE's memory management.
All arguments are optional, so the previously set functions pointers will not be modified if an argument value is NULL.
| [in] | malloc_func | ple_mem_malloc function pointer (or NULL). |
| [in] | realloc_func | ple_mem_realloc function pointer (or NULL). |
| [in] | free_func | ple_mem_free function pointer (or NULL). |
| void * ple_mem_malloc | ( | size_t | ni, |
| size_t | size, | ||
| const char * | var_name, | ||
| const char * | file_name, | ||
| int | line_num ) |
Allocate memory for ni elements of size bytes.
This function calls malloc(), but adds tracing capabilities, and automatically calls the ple_error() errorhandler if it fails to allocate the required memory.
| [in] | ni | number of elements. |
| [in] | size | element size. |
| [in] | var_name | allocated variable name string. |
| [in] | file_name | name of calling source file. |
| [in] | line_num | line number in calling source file. |
| void * ple_mem_realloc | ( | void * | ptr, |
| size_t | ni, | ||
| size_t | size, | ||
| const char * | var_name, | ||
| const char * | file_name, | ||
| int | line_num ) |
Reallocate memory for ni elements of size bytes.
This function calls realloc(), but adds tracing capabilities, and automatically calls the ple_error() errorhandler if it fails to allocate the required memory.
| [in] | ptr | pointer to previous memory location (if NULL, ple_alloc() called). |
| [in] | ni | number of elements. |
| [in] | size | element size. |
| [in] | var_name | allocated variable name string. |
| [in] | file_name | name of calling source file. |
| [in] | line_num | line number in calling source file. |
| int ple_printf | ( | const char *const | format, |
| ... ) |
Replacement for printf() with modifiable behavior.
This function calls vprintf() by default, or a function with similar arguments indicated by ple_printf_function_set().
| [in] | format | format string, as printf() and family. |
| [in] | ... | variable arguments based on format string. |
| ple_printf_t * ple_printf_function_get | ( | void | ) |
Returns function associated with the ple_printf() function.
| void ple_printf_function_set | ( | ple_printf_t *const | fct | ) |
Associates a vprintf() type function with the ple_printf() function.
| [in] | fct | pointer to a vprintf() type function. |
| double ple_timer_cpu_time | ( | void | ) |
Return CPU time.
Note that in the rare case that only the minimal C library clock() method is available (see ple_timer_cpu_time_method()), at least one of the ple_timer_...() functions (possibly this one) must be called upon program start for this function to be used. In addition, in this case, time may "loop" back to 0 every multiple of 2^size_t / CLOCKS_PER_SEC seconds.
| double ple_timer_wtime | ( | void | ) |
Return Wall clock time.