Configuration files parsing. More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <libgen.h>
#include <libconfig.h>
#include "config.h"
#include "debug.h"
#include "utils.h"
Macros | |
#define | JANUS_CONFIG_INDENT 4 |
Functions | |
janus_config * | janus_config_parse (const char *config_file) |
Method to parse an INI configuration file. | |
janus_config * | janus_config_create (const char *name) |
Method to create a new, empty, configuration. | |
janus_config_item * | janus_config_item_create (const char *name, const char *value) |
Method to create a new janus_config_item instance from name and value. | |
janus_config_category * | janus_config_category_create (const char *name) |
Method to create a new janus_config_category instance. | |
janus_config_array * | janus_config_array_create (const char *name) |
Method to create a new janus_config_array instance. | |
void | janus_config_container_destroy (janus_config_container *container) |
Helper method to quickly destroy an item, category or array. | |
janus_config_container * | janus_config_get (janus_config *config, janus_config_container *parent, janus_config_type type, const char *name) |
Helper method to quickly get an item, category, or array. | |
janus_config_container * | janus_config_get_create (janus_config *config, janus_config_container *parent, janus_config_type type, const char *name) |
Same as janus_config_get, but creates the element if it doesn't exist. | |
janus_config_container * | janus_config_search (janus_config *config,...) |
Helper method to quickly lookup an item, category, or array. | |
int | janus_config_add (janus_config *config, janus_config_container *container, janus_config_container *item) |
Add an item/category/array instance to a category or array. | |
int | janus_config_remove (janus_config *config, janus_config_container *container, const char *name) |
Remove an existing item with the specific name from a category/array. | |
GList * | janus_config_get_items (janus_config *config, janus_config_container *parent) |
Helper method to return the list of plain items, either in root or from a parent. | |
GList * | janus_config_get_categories (janus_config *config, janus_config_container *parent) |
Helper method to return the list of categories, either in root or from a parent. | |
GList * | janus_config_get_arrays (janus_config *config, janus_config_container *parent) |
Helper method to return the list of arrays, either in root or from a parent. | |
void | janus_config_print (janus_config *config) |
Helper method to print a configuration on the standard output. | |
void | janus_config_print_as (janus_config *config, int level) |
Helper method to print a configuration on the standard output using a different logging level than LOG_VERB. | |
gboolean | janus_config_save (janus_config *config, const char *folder, const char *filename) |
Helper method to save a configuration to a file. | |
void | janus_config_destroy (janus_config *config) |
Destroy a configuration container instance. | |
Configuration files parsing.
Implementation of a parser of INI and libconfig configuration files.
#define JANUS_CONFIG_INDENT 4 |
int janus_config_add | ( | janus_config * | config, |
janus_config_container * | parent, | ||
janus_config_container * | item ) |
Add an item/category/array instance to a category or array.
[in] | config | The configuration instance |
[in] | parent | The category or array to add the item to, if any |
[in] | item | The item/category/array to add |
janus_config_array * janus_config_array_create | ( | const char * | name | ) |
Method to create a new janus_config_array instance.
[in] | name | Name to give to the array |
janus_config_category * janus_config_category_create | ( | const char * | name | ) |
Method to create a new janus_config_category instance.
[in] | name | Name to give to the category |
void janus_config_container_destroy | ( | janus_config_container * | container | ) |
Helper method to quickly destroy an item, category or array.
[in] | container | The item/category/array to destroy |
janus_config * janus_config_create | ( | const char * | name | ) |
Method to create a new, empty, configuration.
[in] | name | Name to give to the configuration |
void janus_config_destroy | ( | janus_config * | config | ) |
Destroy a configuration container instance.
[in] | config | The configuration to destroy |
janus_config_container * janus_config_get | ( | janus_config * | config, |
janus_config_container * | parent, | ||
janus_config_type | type, | ||
const char * | name ) |
Helper method to quickly get an item, category, or array.
[in] | config | The configuration instance |
[in] | parent | The parent container (category or array), if any |
[in] | type | The type of container to look for |
[in] | name | The name of the item/category/array to look for |
GList * janus_config_get_arrays | ( | janus_config * | config, |
janus_config_container * | parent ) |
Helper method to return the list of arrays, either in root or from a parent.
[in] | config | The configuration instance |
[in] | parent | The parent container (category or array), if any |
GList * janus_config_get_categories | ( | janus_config * | config, |
janus_config_container * | parent ) |
Helper method to return the list of categories, either in root or from a parent.
[in] | config | The configuration instance |
[in] | parent | The parent container (category or array), if any |
janus_config_container * janus_config_get_create | ( | janus_config * | config, |
janus_config_container * | parent, | ||
janus_config_type | type, | ||
const char * | name ) |
Same as janus_config_get, but creates the element if it doesn't exist.
[in] | config | The configuration instance |
[in] | parent | The parent container (category or array), if any |
[in] | type | The type of container to look for |
[in] | name | The name of the item/category/array to look for |
GList * janus_config_get_items | ( | janus_config * | config, |
janus_config_container * | parent ) |
Helper method to return the list of plain items, either in root or from a parent.
[in] | config | The configuration instance |
[in] | parent | The parent container (category or array), if any |
janus_config_item * janus_config_item_create | ( | const char * | name, |
const char * | value ) |
Method to create a new janus_config_item instance from name and value.
[in] | name | Name to give to the item |
[in] | value | Value of the item (optional) |
janus_config * janus_config_parse | ( | const char * | config_file | ) |
Method to parse an INI configuration file.
[in] | config_file | Path to the configuration file |
void janus_config_print | ( | janus_config * | config | ) |
Helper method to print a configuration on the standard output.
[in] | config | The configuration to print |
void janus_config_print_as | ( | janus_config * | config, |
int | level ) |
Helper method to print a configuration on the standard output using a different logging level than LOG_VERB.
[in] | config | The configuration to print |
[in] | level | The debugging level to use |
int janus_config_remove | ( | janus_config * | config, |
janus_config_container * | parent, | ||
const char * | name ) |
Remove an existing item with the specific name from a category/array.
[in] | config | The configuration instance |
[in] | parent | The category/array to remove the item from, if any |
[in] | name | The name of the item/category/array to remove |
gboolean janus_config_save | ( | janus_config * | config, |
const char * | folder, | ||
const char * | filename ) |
Helper method to save a configuration to a file.
[in] | config | The configuration to save |
[in] | folder | The folder the file should be saved to |
[in] | filename | The file name, extension included (should be .jcfg, or .cfg for legacy INI files) |
janus_config_container * janus_config_search | ( | janus_config * | config, |
... ) |
Helper method to quickly lookup an item, category, or array.
[in] | config | The configuration instance |