![]() |
Lumiera 0.pre.04
»edit your freedom«
|
Implementation of temporary buffers with round-robin usage pattern. More...
Go to the source code of this file.
Implementation of temporary buffers with round-robin usage pattern.
Definition in file tmpbuf.c.
#include "lib/safeclib.h"#include "lib/tmpbuf.h"#include <string.h>#include <pthread.h>#include <stdint.h>#include <stdarg.h>#include <nobug.h>Classes | |
| struct | lumiera_tmpbuf_struct |
Functions | |
| void | lumiera_tmpbuf_freeall (void) |
| free all buffers associated with this thread. | |
| static void | lumiera_tmpbuf_destroy (void *buf) |
| static void | lumiera_tmpbuf_init (void) |
| void * | lumiera_tmpbuf_provide (size_t size) |
| Query a thread local tmpbuf. | |
| char * | lumiera_tmpbuf_strndup (const char *src, size_t size) |
| Duplicate string to a tmpbuf. | |
| char * | lumiera_tmpbuf_snprintf (size_t size, const char *fmt,...) |
| Construct a string in a tmpbuf. | |
| char * | lumiera_tmpbuf_strcat3 (const char *str1, size_t str1_len, const char *str2, size_t str2_len, const char *str3, size_t str3_len) |
| Concat up to 3 strings in a tmpbuf. | |
| char * | lumiera_tmpbuf_tr (const char *in, const char *from, const char *to, const char *def) |
| Translates characters in a string, similar to the shell 'tr' utility. | |
Variables | |
| static pthread_once_t | lumiera_tmpbuf_tls_once = PTHREAD_ONCE_INIT |
| static pthread_key_t | lumiera_tmpbuf_tls_key |
| struct lumiera_tmpbuf_struct |
| void lumiera_tmpbuf_freeall | ( | void | ) |
free all buffers associated with this thread.
This function is called automatically, usually one doesnt need to call it.
Definition at line 64 of file tmpbuf.c.
References lumiera_tmpbuf_struct::buffers, lumiera_tmpbuf_struct::idx, lumiera_free(), lumiera_tmpbuf_init(), LUMIERA_TMPBUF_NUM, lumiera_tmpbuf_tls_key, lumiera_tmpbuf_tls_once, and NULL.
Referenced by lumiera_tmpbuf_destroy(), lumiera_tmpbuf_init(), and main().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 49 of file tmpbuf.c.
References lumiera_tmpbuf_freeall().
Referenced by lumiera_tmpbuf_init().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 56 of file tmpbuf.c.
References lumiera_tmpbuf_destroy(), lumiera_tmpbuf_freeall(), and lumiera_tmpbuf_tls_key.
Referenced by lumiera_tmpbuf_freeall(), and lumiera_tmpbuf_provide().
Here is the call graph for this function:
Here is the caller graph for this function:| void * lumiera_tmpbuf_provide | ( | size_t | size | ) |
Query a thread local tmpbuf.
| size | minimal needed size for the tmpbuf |
Definition at line 80 of file tmpbuf.c.
References lumiera_tmpbuf_struct::buffers, lumiera_tmpbuf_struct::idx, lumiera_calloc(), lumiera_free(), lumiera_malloc(), lumiera_tmpbuf_init(), lumiera_tmpbuf_tls_key, lumiera_tmpbuf_tls_once, and lumiera_tmpbuf_struct::sizes.
Referenced by lumiera_tmpbuf_snprintf(), lumiera_tmpbuf_strndup(), main(), and TEST().
Here is the call graph for this function:
Here is the caller graph for this function:| char * lumiera_tmpbuf_strndup | ( | const char * | src, |
| size_t | size | ||
| ) |
Duplicate string to a tmpbuf.
| src | string to be duplicated |
| size | maximal length to be copied |
Definition at line 102 of file tmpbuf.c.
References lumiera_tmpbuf_provide().
Referenced by lumiera_config_setdefault(), lumiera_config_wordlist_get_nth(), lumiera_tmpbuf_tr(), scan_string(), and scan_word().
Here is the call graph for this function:
Here is the caller graph for this function:| char * lumiera_tmpbuf_snprintf | ( | size_t | size, |
| const char * | fmt, | ||
| ... | |||
| ) |
Construct a string in a tmpbuf.
| size | maximal length for the string |
| fmt | printf like formatstring |
| ... | parameters |
Definition at line 116 of file tmpbuf.c.
References lumiera_tmpbuf_provide(), and NULL.
Referenced by lumiera_config_get(), lumiera_config_init(), lumiera_config_lookup_insert_default(), lumiera_config_number_get(), lumiera_config_number_set(), lumiera_config_set(), lumiera_config_string_set(), lumiera_config_word_set(), lumiera_config_wordlist_add(), lumiera_config_wordlist_replace(), lumiera_config_wordlist_set(), lumiera_configitem_set_value(), lumiera_plugin_discover(), lumiera_plugin_load_DYNLIB(), lumiera_tmpbuf_strcat3(), main(), main(), TEST(), TEST(), and TEST().
Here is the call graph for this function:
Here is the caller graph for this function:| char * lumiera_tmpbuf_strcat3 | ( | const char * | str1, |
| size_t | str1_len, | ||
| const char * | str2, | ||
| size_t | str2_len, | ||
| const char * | str3, | ||
| size_t | str3_len | ||
| ) |
Concat up to 3 strings in a tmpbuf.
| str1 | first string to concat or NULL |
| str1_len | how much of the first string shall be used |
| str2 | second string to concat or NULL |
| str2_len | how much of the second string shall be used |
| str3 | third string to concat or NULL |
| str3_len | how much of the third string shall be used |
Definition at line 135 of file tmpbuf.c.
References lumiera_tmpbuf_snprintf().
Referenced by lumiera_config_lookup_insert().
Here is the call graph for this function:
Here is the caller graph for this function:| char * lumiera_tmpbuf_tr | ( | const char * | in, |
| const char * | from, | ||
| const char * | to, | ||
| const char * | def | ||
| ) |
Translates characters in a string, similar to the shell 'tr' utility.
| in | input string to be translated |
| from | source character set |
| to | destination character set |
| def | default destination character when a character is not in the source set, when NULL then translation will abort on unknown characters and return NULL, when "" then unknown characters will be removed when set to a single character string, unknown characters will be replaced with this character |
Definition at line 147 of file tmpbuf.c.
References lumiera_tmpbuf_strndup(), and NULL.
Referenced by lumiera_config_get(), TEST(), TEST(), and TEST().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 42 of file tmpbuf.c.
Referenced by lumiera_tmpbuf_freeall(), and lumiera_tmpbuf_provide().
|
static |
Definition at line 43 of file tmpbuf.c.
Referenced by lumiera_tmpbuf_freeall(), lumiera_tmpbuf_init(), and lumiera_tmpbuf_provide().