LcConfigC - various functions to set config-data … More...
Functions | |
enum MkErrorE | liblcconfig::LcConfigIncludeCall (LcConfigIncludeCallF_ARGS) |
config-file include __parser__(callback-name) → call … | |
void | liblcconfig::LcConfigIncludeFree (LcConfigIncludeFreeF_ARGS) |
config-file include __parser__(callback-name) → free … | |
enum MkErrorE | liblcconfig::LcConfigSetIncludeFunc_RT (MK_RT const mkrt, LC_CFG const cfg, LcConfigIncludeCallF fConfigIncludeCall, LC_CBP fConfigIncludeData, LcConfigIncludeFreeF fConfigIncludeFree) |
set the __parser__(callback-name) for the include-config-file … | |
enum MkErrorE | liblcconfig::LcConfigSetSettingDeleteFunc_RT (MK_RT const mkrt, LC_CFG const cfg, LcSettingDeleteCallF fSettingDeleteCall, LC_CBP fSettingDeleteData, LcSettingDeleteFreeF fSettingDeleteFree) |
set the __parser__(callback-name) for the setting-delete … | |
void | liblcconfig::LcConfigSetDefaultFormat (LC_CFG config, enum LcConfigFormatE format) |
These functions, which are implemented as macros, get and set the default external format for settings in the configuration config … | |
void | liblcconfig::LcConfigSetFloatPrecision (LC_CFG config, MK_I16 digits) |
Since v1.6 These functions get and set the number of decimal digits to output after the radix character when writing the configuration to a file or stream … | |
void | liblcconfig::LcConfigSetIncludeDir (LC_CFG config, MK_STRN include_dir) |
ConfigSetIncludeDir specifies the include directory, include_dir, relative to which the files specified in '@include' directives will be located for the configuration config … | |
void | liblcconfig::LcConfigSetIncludeFuncHide (LC_CFG config, config_include_fn_t func) |
Since v1.7 Specifies the include function func to use when processing include directives … | |
void | liblcconfig::LcConfigSetOption (LC_CFG config, enum LcConfigOptionsEF option, MK_BOOL flag) |
Since v1.7 These functions get and set the given option of the configuration config … | |
void | liblcconfig::LcConfigSetOptions (LC_CFG config, enum LcConfigOptionsEF options) |
These functions get and set the options for the configuration config … | |
void | liblcconfig::LcConfigSetTabWidth (LC_CFG config, MK_I16 width) |
These functions, which are implemented as macros, get and set the tab width for the configuration config … | |
LcConfigC - LcConfigC_Set_C_API - overload | |
#define | LcConfigSetIncludeFunc_NULL(...) |
#define | LcConfigSetIncludeFunc(...) |
#define | LcConfigSetIncludeFunc_E(...) |
#define | LcConfigSetIncludeFunc_C(...) |
#define | LcConfigSetSettingDeleteFunc_NULL(...) |
#define | LcConfigSetSettingDeleteFunc(...) |
#define | LcConfigSetSettingDeleteFunc_E(...) |
#define | LcConfigSetSettingDeleteFunc_C(...) |
LcConfigC - various functions to set config-data …
#define LcConfigSetIncludeFunc | ( | ... | ) |
Definition at line 130 of file config_overload_lc.h.
#define LcConfigSetIncludeFunc_C | ( | ... | ) |
Definition at line 132 of file config_overload_lc.h.
#define LcConfigSetIncludeFunc_E | ( | ... | ) |
Definition at line 131 of file config_overload_lc.h.
#define LcConfigSetIncludeFunc_NULL | ( | ... | ) |
Definition at line 129 of file config_overload_lc.h.
#define LcConfigSetSettingDeleteFunc | ( | ... | ) |
Definition at line 134 of file config_overload_lc.h.
#define LcConfigSetSettingDeleteFunc_C | ( | ... | ) |
Definition at line 136 of file config_overload_lc.h.
#define LcConfigSetSettingDeleteFunc_E | ( | ... | ) |
Definition at line 135 of file config_overload_lc.h.
#define LcConfigSetSettingDeleteFunc_NULL | ( | ... | ) |
Definition at line 133 of file config_overload_lc.h.
|
extern |
config-file include __parser__(callback-name) → call …
|
extern |
config-file include __parser__(callback-name) → free …
|
inline |
These functions, which are implemented as macros, get and set the default external format for settings in the configuration config …
If a non-default format has not been set for a setting with SettingSetFormat, this configuration-wide default format will be used instead when that setting is written to a file or stream.
Definition at line 361 of file LcConfigC_lc.h.
Since v1.6 These functions get and set the number of decimal digits to output after the radix character when writing the configuration to a file or stream …
Valid values for digits range from 0 (no decimals) to about 15 (implementation defined). This parameter has no effect on parsing.
The default float precision is 6.
Definition at line 366 of file LcConfigC_lc.h.
ConfigSetIncludeDir specifies the include directory, include_dir, relative to which the files specified in '@include' directives will be located for the configuration config …
By default, there is no include directory, and all include files are expected to be relative to the current working directory. If include_dir is NULL
, the default behavior is reinstated.
For example, if the include directory is set to /usr/local/etc
, the include directive '@include "configs/extra.cfg"' would include the file /usr/local/etc/configs/extra.cfg
.
ConfigGetIncludeDir returns the current include directory for the configuration config, or NULL
if none is set.
Definition at line 371 of file LcConfigC_lc.h.
|
extern |
set the __parser__(callback-name) for the include-config-file …
This is the Programming-Language-Micro-Kernel (PLMK) wrapper for LcConfigSetIncludeFuncHide to provide additional capabilities.
LcConfigSetIncludeFunc
: overloadLcConfigSetIncludeFunc
: callback signatureRead more about how to define a service-callback in theLink .
LcConfigSetIncludeFuncHide
: documentationSince v1.7 Specifies the include function func to use when processing include directives …
If func is NULL
, the default include function, config_default_include_func, will be reinstated.
The type LcConfigIncludeCallF is a type alias for a function whose signature is:
NULL
-terminated array of paths. Any relative paths must be relative to the program's current working directory. The contents of these files will be inlined at the point of inclusion, in the order that the paths appear in the array. Both the array and its elements should be heap allocated; the library will take ownership of and eventually free the strings in the array and the array itself.NULL
and set *error to a static error string which should be used as the parse error for the configuration; the library does not take ownership of or free this string.NULL
-terminated array containing either a copy of path if it's an absolute path, or a concatenation of include_dir and path if it's a relative path.Application-supplied include functions can perform custom tasks like wildcard expansion or variable substitution. For example, consider the include directive:
The include function would be invoked with the path 'configs/*.cfg' and could do wildcard expansion on that path, returning a list of paths to files with the file extension '.cfg' in the subdirectory 'configs'. Each of these files would then be inlined at the location of the include directive.
Tasks like wildcard expansion and variable substitution are non-trivial to implement and typically require platform-specific code. In the interests of keeping the library as compact and platform-independent as possible, implementations of such include functions are not included.
|
inline |
Since v1.7 Specifies the include function func to use when processing include directives …
If func is NULL
, the default include function, config_default_include_func, will be reinstated.
The type LcConfigIncludeCallF is a type alias for a function whose signature is:
NULL
-terminated array of paths. Any relative paths must be relative to the program's current working directory. The contents of these files will be inlined at the point of inclusion, in the order that the paths appear in the array. Both the array and its elements should be heap allocated; the library will take ownership of and eventually free the strings in the array and the array itself.NULL
and set *error to a static error string which should be used as the parse error for the configuration; the library does not take ownership of or free this string.NULL
-terminated array containing either a copy of path if it's an absolute path, or a concatenation of include_dir and path if it's a relative path.Application-supplied include functions can perform custom tasks like wildcard expansion or variable substitution. For example, consider the include directive:
The include function would be invoked with the path 'configs/*.cfg' and could do wildcard expansion on that path, returning a list of paths to files with the file extension '.cfg' in the subdirectory 'configs'. Each of these files would then be inlined at the location of the include directive.
Tasks like wildcard expansion and variable substitution are non-trivial to implement and typically require platform-specific code. In the interests of keeping the library as compact and platform-independent as possible, implementations of such include functions are not included.
Definition at line 376 of file LcConfigC_lc.h.
|
inline |
Since v1.7 These functions get and set the given option of the configuration config …
The option is enabled if flag is CONFIG_TRUE and disabled if it is CONFIG_FALSE.
See ConfigSetOptions above for the list of available options.
Definition at line 381 of file LcConfigC_lc.h.
|
inline |
These functions get and set the options for the configuration config …
The options affect how configurations are read and written. The following options are defined:
CONFIG_OPTION_AUTOCONVERT | Turning this option on enables number auto-conversion for the configuration. When this feature is enabled, an attempt to retrieve a floating point setting's value into an integer (or vice versa), or store an integer to a floating point setting's value (or vice versa) will cause the library to silently perform the necessary conversion (possibly leading to loss of data), rather than reporting failure. By default this option is turned off. |
CONFIG_OPTION_SEMICOLON_SEPARATORS | This option controls whether a semicolon (';') is output after each setting when the configuration is written to a file or stream. (The semicolon separators are optional in the configuration syntax.) By default this option is turned on. |
CONFIG_OPTION_COLON_ASSIGNMENT_FOR_GROUPS | This option controls whether a colon (':') is output between each group setting's name and its value when the configuration is written to a file or stream. If the option is turned off, an equals sign ('=') is output instead. (These tokens are interchangeable in the configuration syntax.) By default this option is turned on. |
CONFIG_OPTION_COLON_ASSIGNMENT_FOR_NON_GROUPS | This option controls whether a colon (':') is output between each non-group setting's name and its value when the configuration is written to a file or stream. If the option is turned off, an equals sign ('=') is output instead. (These tokens are interchangeable in the configuration syntax.) By default this option is turned off. |
CONFIG_OPTION_OPEN_BRACE_ON_SEPARATE_LINE | This option controls whether an open brace ('{') will be written on its own line when the configuration is written to a file or stream. If the option is turned off, the brace will be written at the end of the previous line. By default this option is turned on. |
CONFIG_OPTION_ALLOW_SCIENTIFIC_NOTATION | (Since v1.7) This option controls whether scientific notation may be used as appropriate when writing floating point values (corresponding to |
CONFIG_OPTION_FSYNC | (Since v1.7.1) This option controls whether the ConfigWriteFile function performs an fsync operation after writing the configuration and before closing the file. By default this option is turned off. |
CONFIG_OPTION_ALLOW_OVERRIDES | (Since v1.7.3) This option controls whether duplicate settings override previous settings with the same name. If this option is turned off, duplicate settings are rejected. By default this option is turned off. |
Definition at line 386 of file LcConfigC_lc.h.
|
extern |
set the __parser__(callback-name) for the setting-delete …
This is the Programming-Language-Micro-Kernel (PLMK) wrapper for LcSettingSetHookHide to provide additional capabilities.
LcConfigSetSettingDeleteFunc
: overloadLcConfigSetSettingDeleteFunc
: callback signatureRead more about how to define a service-callback in theLink .
LcSettingSetHookHide
: documentationThese functions make it possible to attach arbitrary data to each setting structure, for instance a ''wrapper'' or ''peer'' object written in another programming language …
The destructor function, if one has been supplied via a call to config_set_destructor, will be called by the library to dispose of this data when the setting itself is destroyed. There is no default destructor.
These functions, which are implemented as macros, get and set the tab width for the configuration config …
The tab width affects the formatting of the configuration when it is written to a file or stream: each level of nesting is indented by width spaces, or by a single tab character if width is 0. The tab width has no effect on parsing.
Valid tab widths range from 0 to 15. The default tab width is 2.
Definition at line 391 of file LcConfigC_lc.h.