Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Implementation draft for a configuration system (2008).
Implementation of the lookup of configuration keys
Definition in file config-lookup.c.
#include "include/logging.h"
#include "lib/safeclib.h"
#include "lib/tmpbuf.h"
#include "common/config-lookup.h"
#include "common/config.h"
Functions | |
static int | cmp_fn (const void *a, const void *b) |
static void | delete_fn (PSplaynode node) |
static const void * | key_fn (const PSplaynode node) |
LumieraConfigLookup | lumiera_config_lookup_destroy (LumieraConfigLookup self) |
Destroy a lookup structure. More... | |
LumieraConfigLookupentry | lumiera_config_lookup_find (LumieraConfigLookup self, const char *key) |
Find a hashtable entry in the lookup structure. More... | |
LumieraConfigLookup | lumiera_config_lookup_init (LumieraConfigLookup self) |
Initialise a lookup structure. More... | |
LumieraConfigLookupentry | lumiera_config_lookup_insert (LumieraConfigLookup self, LumieraConfigitem item) |
Add a config item to a lookup structure. More... | |
LumieraConfigLookupentry | lumiera_config_lookup_insert_default (LumieraConfigLookup self, LumieraConfigitem item) |
LumieraConfigitem | lumiera_config_lookup_item_find (LumieraConfigLookup self, const char *key) |
Find a the topmost config item stored to a given key. More... | |
LumieraConfigitem | lumiera_config_lookup_item_tail_find (LumieraConfigLookup self, const char *key) |
Find a the bottom most config item stored to a given key. More... | |
LumieraConfigitem | lumiera_config_lookup_remove (LumieraConfigLookup self, LumieraConfigitem item) |
Remove a config item from a lookup structure. More... | |
void | lumiera_config_lookupentry_delete (LumieraConfigLookupentry self) |
LumieraConfigLookupentry | lumiera_config_lookupentry_destroy (LumieraConfigLookupentry self) |
LumieraConfigLookupentry | lumiera_config_lookupentry_init (LumieraConfigLookupentry self, const char *key) |
LumieraConfigLookupentry | lumiera_config_lookupentry_new (const char *key) |
LUMIERA_ERROR_DEFINE (CONFIG_LOOKUP, "config lookup failure") | |
LumieraConfigLookup lumiera_config_lookup_init | ( | LumieraConfigLookup | self | ) |
Initialise a lookup structure.
self | lookup structure to be initialised |
Definition at line 59 of file config-lookup.c.
References psplay_init().
LumieraConfigLookup lumiera_config_lookup_destroy | ( | LumieraConfigLookup | self | ) |
Destroy a lookup structure.
self | lookup structure to be destroyed |
Definition at line 68 of file config-lookup.c.
References psplay_destroy().
LumieraConfigLookupentry lumiera_config_lookup_insert | ( | LumieraConfigLookup | self, |
LumieraConfigitem | item | ||
) |
Add a config item to a lookup structure.
Config items are stored under their key and stacked in insertion order.
self | lookup structure where the item shall be added |
item | config item to add to the lookup structure |
Definition at line 78 of file config-lookup.c.
References lumiera_tmpbuf_strcat3().
LumieraConfigLookupentry lumiera_config_lookup_insert_default | ( | LumieraConfigLookup | self, |
LumieraConfigitem | item | ||
) |
Add a default config item to a lookup structure. The item must contain a full key and not part of any 'section' and is inserted as tail of the lookup list.
self | lookup structure where the item shall be added |
item | config item to add to the lookup structure |
Definition at line 100 of file config-lookup.c.
References steam::mobject::session::query::anonymous_namespace{fake-configrules.cpp}::entry(), and lumiera_tmpbuf_snprintf().
LumieraConfigitem lumiera_config_lookup_remove | ( | LumieraConfigLookup | self, |
LumieraConfigitem | item | ||
) |
Remove a config item from a lookup structure.
Config must be removed from the lookup when they are not used anymore. Removing a config item unlinks it from the stack of all config items with the same key. When this was the last config item under that key, the lookup entry is cleaned up.
self | lookup structure where the item shall be removed |
item | config item to be removed from the lookup |
Definition at line 122 of file config-lookup.c.
References steam::mobject::session::query::anonymous_namespace{fake-configrules.cpp}::entry(), LLIST_TO_STRUCTP, and psplay_delete_node().
LumieraConfigLookupentry lumiera_config_lookup_find | ( | LumieraConfigLookup | self, |
const char * | key | ||
) |
Find a hashtable entry in the lookup structure.
Internal function, can be used to check if at least one item is available for a given key.
self | lookup structure where the key shall be searched |
key | string to be looked up |
Definition at line 145 of file config-lookup.c.
References psplay_find().
Referenced by lumiera_config_lookup_item_find(), and lumiera_config_lookup_item_tail_find().
LumieraConfigitem lumiera_config_lookup_item_find | ( | LumieraConfigLookup | self, |
const char * | key | ||
) |
Find a the topmost config item stored to a given key.
self | lookup structure where the key shall be searched |
key | string to be looked up |
Definition at line 153 of file config-lookup.c.
References steam::mobject::session::query::anonymous_namespace{fake-configrules.cpp}::entry(), LLIST_TO_STRUCTP, and lumiera_config_lookup_find().
Referenced by lumiera_config_set().
LumieraConfigitem lumiera_config_lookup_item_tail_find | ( | LumieraConfigLookup | self, |
const char * | key | ||
) |
Find a the bottom most config item stored to a given key.
defaults sits at the bottom if exists
self | lookup structure where the key shall be searched |
key | string to be looked up |
Definition at line 168 of file config-lookup.c.
References steam::mobject::session::query::anonymous_namespace{fake-configrules.cpp}::entry(), LLIST_TO_STRUCTP, and lumiera_config_lookup_find().