X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Fconf.h;h=0ff991309f146bfb1505c77ed7fa9a2d23219239;hb=97d134124cb7f43e34a976e0d6a79622c67cb455;hp=fc228eb86826cb1bb15c0d38e0739306b13681cc;hpb=61dec66f0e14df50777adab21cd7d03488452a1e;p=libucw.git diff --git a/ucw/conf.h b/ucw/conf.h index fc228eb8..0ff99130 100644 --- a/ucw/conf.h +++ b/ucw/conf.h @@ -41,7 +41,7 @@ struct cf_context *cf_new_context(void); * of the context is freed, which includes memory obtained by calls to * cf_malloc(). **/ -void cf_free_context(struct cf_context *cc); +void cf_delete_context(struct cf_context *cc); /** * Make the given configuration context current and return the previously @@ -63,6 +63,7 @@ struct cf_context *cf_switch_context(struct cf_context *cc); * configuration specified in the file are undone. **/ int cf_load(const char *file); + /** * Reload configuration from @file, replace the old one. * If @file is NULL, reload all loaded configuration files and re-apply @@ -71,6 +72,7 @@ int cf_load(const char *file); * settings are rolled back to the state before calling this function. **/ int cf_reload(const char *file); + /** * Parse some part of configuration passed in @string. * The syntax is the same as in the <>. @@ -97,6 +99,12 @@ void cf_open_group(void); **/ int cf_close_group(void); +/** + * Return all configuration items to their initial state before loading the + * configuration file. If journalling is disabled, it does nothing. + **/ +void cf_revert(void); + /*** === Data types [[conf_types]] ***/ enum cf_class { /** Class of the configuration item. **/ @@ -480,8 +488,17 @@ void cf_journal_rollback_transaction(uns new_pool, struct cf_journal_item *oldj) * If @allow_unknown is set to 0 and a variable not described in @sec * is found in the configuration file, it produces an error. * If you set it to 1, all such variables are ignored. + * + * Please note that a single section definition cannot be used in multiple + * configuration contexts simultaneously. **/ void cf_declare_section(const char *name, struct cf_section *sec, uns allow_unknown); +/** + * Like @cf_declare_section(), but instead of item pointers, the section + * contains offsets relative to @ptr. In other words, it does the same + * as `CF_SECTION`, but for top-level sections. + **/ +void cf_declare_rel_section(const char *name, struct cf_section *sec, void *ptr, uns allow_unknown); /** * If you have a section in a structure and you want to initialize it * (eg. if you want a copy of default values outside the configuration),