Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
config.c File Reference

Go to the source code of this file.

Description

Implementation of a draft for application configuration from 2008.

Warning
since 2012 it is unclear if we retain this approach
Todo:
as of 2016 this code is not used and never was

Definition in file config.c.

#include "include/logging.h"
#include "lib/safeclib.h"
#include "lib/tmpbuf.h"
#include "common/config.h"
#include <stdint.h>
#include <stdlib.h>
#include <ctype.h>

Functions

void lumiera_config_destroy ()
 Destroys the configuration subsystem. More...
 
void lumiera_config_dump (FILE *out)
 Does a diagnostic dump of the whole config database. More...
 
const char * lumiera_config_get (const char *key, const char **value)
 
const char * lumiera_config_get_default (const char *key, const char **value)
 
int lumiera_config_info (const char *key, const char **filename, unsigned *line)
 
int lumiera_config_init (const char *path)
 Initialise the configuration subsystem. More...
 
int lumiera_config_load (const char *file)
 
int lumiera_config_purge (const char *filename)
 
int lumiera_config_reset (const char *key)
 
int lumiera_config_save ()
 
LumieraConfigitem lumiera_config_set (const char *key, const char *delim_value)
 
LumieraConfigitem lumiera_config_setdefault (const char *line)
 Installs a default value for a config key. More...
 
 LUMIERA_ERROR_DEFINE (CONFIG_SYNTAX,"syntax error in configfile")
 
 LUMIERA_ERROR_DEFINE (CONFIG_SYNTAX_KEY,"syntax error in key")
 
 LUMIERA_ERROR_DEFINE (CONFIG_SYNTAX_VALUE,"syntax error in value")
 
 LUMIERA_ERROR_DEFINE (CONFIG_NO_ENTRY,"no configuration entry")
 

Variables

const char * lumiera_config_defaults []
 defaults for the configuration system itself More...
 
LumieraConfig lumiera_global_config
 

Function Documentation

LUMIERA_ERROR_DEFINE ( CONFIG_SYNTAX  ,
"syntax error in configfile"   
)
LUMIERA_ERROR_DEFINE ( CONFIG_SYNTAX_KEY  ,
"syntax error in key"   
)
LUMIERA_ERROR_DEFINE ( CONFIG_SYNTAX_VALUE  ,
"syntax error in value"   
)
LUMIERA_ERROR_DEFINE ( CONFIG_NO_ENTRY  ,
"no configuration entry"   
)
int lumiera_config_init ( const char *  path)

Initialise the configuration subsystem.

Parameters
pathsearch path for config files. Must be called only once

Definition at line 86 of file config.c.

References lumiera_config_defaults, lumiera_config_lookup_init(), lumiera_config_setdefault(), lumiera_configitem_init(), lumiera_global_config, lumiera_malloc(), lumiera_mutex_init(), lumiera_tmpbuf_snprintf(), and TRACE().

Referenced by Config::Config().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void lumiera_config_destroy ( )

Destroys the configuration subsystem.

Subsequent calls are no-ops.

Definition at line 114 of file config.c.

References lumiera_config_lookup_destroy(), lumiera_configitem_destroy(), lumiera_free(), lumiera_global_config, lumiera_mutex_destroy(), NULL, and TRACE().

Referenced by TEST(), and Config::~Config().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int lumiera_config_load ( const char *  file)

Definition at line 133 of file config.c.

References TRACE().

+ Here is the call graph for this function:

int lumiera_config_save ( )

Definition at line 143 of file config.c.

References TRACE().

+ Here is the call graph for this function:

int lumiera_config_purge ( const char *  filename)

Definition at line 152 of file config.c.

References TRACE().

+ Here is the call graph for this function:

const char* lumiera_config_get ( const char *  key,
const char **  value 
)

Definition at line 163 of file config.c.

References LUMIERA_CONFIG_ENV_CHARS, LUMIERA_CONFIG_KEY_CHARS, lumiera_config_lookup_item_find(), LUMIERA_ERROR_SET, LUMIERA_ERROR_SET_WARNING, lumiera_global_config, lumiera_tmpbuf_snprintf(), lumiera_tmpbuf_tr(), NULL, and TRACE().

Referenced by lumiera_config_number_get(), lumiera_config_string_get(), lumiera_config_word_get(), lumiera_config_wordlist_add(), lumiera_config_wordlist_get(), lumiera_config_wordlist_replace(), and TEST().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const char* lumiera_config_get_default ( const char *  key,
const char **  value 
)

Definition at line 210 of file config.c.

References lumiera_config_lookup_item_tail_find(), lumiera_global_config, NULL, and TRACE().

+ Here is the call graph for this function:

LumieraConfigitem lumiera_config_set ( const char *  key,
const char *  delim_value 
)
Parameters
key
delim_valuedelimiter (= or <) followed by the value to be set

Definition at line 232 of file config.c.

References ENSURE(), llist_insert_tail, lumiera_config_lookup_insert(), lumiera_config_lookup_item_find(), lumiera_configitem_new(), lumiera_configitem_set_value(), lumiera_global_config, lumiera_tmpbuf_snprintf(), and TRACE().

Referenced by lumiera_config_number_set(), lumiera_config_string_set(), lumiera_config_word_set(), lumiera_config_wordlist_add(), lumiera_config_wordlist_replace(), lumiera_config_wordlist_set(), and TEST().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

LumieraConfigitem lumiera_config_setdefault ( const char *  line)

Installs a default value for a config key.

Any key might have an associated default value which is used when no other configuration is available, this can be set once. Any subsequent call will be a no-op. This function locks the config system.

Parameters
lineline with key, delimiter and value to store as default value
Returns
NULL in case of an error, else a pointer to the default configitem

Definition at line 274 of file config.c.

References ENSURE(), llist_insert_head, LUMIERA_CONFIG_KEY_CHARS, lumiera_config_lookup_insert(), lumiera_config_lookup_item_find(), lumiera_configitem_new(), lumiera_global_config, LUMIERA_MUTEX_SECTION, lumiera_tmpbuf_strndup(), NULL, and TRACE().

Referenced by lumiera_backend_init(), lumiera_config_init(), lumiera_mmap_init(), lumiera_plugin_discover(), and TEST().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void lumiera_config_dump ( FILE *  out)

Does a diagnostic dump of the whole config database.

Definition at line 312 of file config.c.

References LLIST_FOREACH(), and lumiera_global_config.

+ Here is the call graph for this function:

int lumiera_config_reset ( const char *  key)

Definition at line 331 of file config.c.

References TRACE().

+ Here is the call graph for this function:

int lumiera_config_info ( const char *  key,
const char **  filename,
unsigned *  line 
)

Definition at line 341 of file config.c.

References TRACE().

+ Here is the call graph for this function:

Variable Documentation

const char* lumiera_config_defaults[]

defaults for the configuration system itself

Definition at line 50 of file config.c.

Referenced by lumiera_config_init().