]> git.meshlink.io Git - meshlink-tiny/blobdiff - src/conf.h
Use a key/value store with configurable storage callbacks.
[meshlink-tiny] / src / conf.h
index 4560f2a2012f387f3443b3af2c511a973cb328c6..23ad90080daeb56ef1159f2dba8a70a21a78db3a 100644 (file)
 */
 
 struct meshlink_handle;
+struct meshlink_open_params;
 
 typedef struct config_t {
        const uint8_t *buf;
        size_t len;
 } config_t;
 
-typedef bool (*config_scan_action_t)(struct meshlink_handle *mesh, const char *name, void *arg);
+typedef bool (*config_scan_action_t)(struct meshlink_handle *mesh, const char *name, size_t len);
 
-bool config_read_file(struct meshlink_handle *mesh, FILE *f, struct config_t *, const void *key) __attribute__((__warn_unused_result__));
-bool config_write_file(struct meshlink_handle *mesh, FILE *f, const struct config_t *, const void *key) __attribute__((__warn_unused_result__));
 void config_free(struct config_t *config);
 
-bool meshlink_confbase_exists(struct meshlink_handle *mesh) __attribute__((__warn_unused_result__));
-
-bool config_init(struct meshlink_handle *mesh, const char *conf_subdir) __attribute__((__warn_unused_result__));
-bool config_destroy(const char *confbase, const char *conf_subdir) __attribute__((__warn_unused_result__));
-bool config_copy(struct meshlink_handle *mesh, const char *src_dir_name, const void *src_key, const char *dst_dir_name, const void *dst_key) __attribute__((__warn_unused_result__));
-bool config_rename(struct meshlink_handle *mesh, const char *old_conf_subdir, const char *new_conf_subdir) __attribute__((__warn_unused_result__));
-bool config_sync(struct meshlink_handle *mesh, const char *conf_subdir) __attribute__((__warn_unused_result__));
-bool sync_path(const char *path) __attribute__((__warn_unused_result__));
-
-bool main_config_exists(struct meshlink_handle *mesh, const char *conf_subdir) __attribute__((__warn_unused_result__));
-bool main_config_lock(struct meshlink_handle *mesh, const char *lock_filename) __attribute__((__warn_unused_result__));
-void main_config_unlock(struct meshlink_handle *mesh);
-bool main_config_read(struct meshlink_handle *mesh, const char *conf_subdir, struct config_t *, void *key) __attribute__((__warn_unused_result__));
-bool main_config_write(struct meshlink_handle *mesh, const char *conf_subdir, const struct config_t *, void *key) __attribute__((__warn_unused_result__));
-
-bool config_exists(struct meshlink_handle *mesh, const char *conf_subdir, const char *name) __attribute__((__warn_unused_result__));
-bool config_read(struct meshlink_handle *mesh, const char *conf_subdir, const char *name, struct config_t *, void *key) __attribute__((__warn_unused_result__));
-bool config_write(struct meshlink_handle *mesh, const char *conf_subdir, const char *name, const struct config_t *, void *key) __attribute__((__warn_unused_result__));
-bool config_delete(struct meshlink_handle *mesh, const char *conf_subdir, const char *name) __attribute__((__warn_unused_result__));
-bool config_scan_all(struct meshlink_handle *mesh, const char *conf_subdir, const char *conf_type, config_scan_action_t action, void *arg) __attribute__((__warn_unused_result__));
+bool config_init(struct meshlink_handle *mesh, const struct meshlink_open_params *params) __attribute__((__warn_unused_result__));
+void config_exit(struct meshlink_handle *mesh);
+bool config_destroy(const struct meshlink_open_params *params) __attribute__((__warn_unused_result__));
+
+bool config_load(struct meshlink_handle *mesh, const char *name, struct config_t *) __attribute__((__warn_unused_result__));
+bool config_store(struct meshlink_handle *mesh, const char *name, const struct config_t *) __attribute__((__warn_unused_result__));
+bool config_ls(struct meshlink_handle *mesh, config_scan_action_t action) __attribute__((__warn_unused_result__));
+
+bool config_exists(struct meshlink_handle *mesh, const char *name) __attribute__((__warn_unused_result__));
+
+bool config_change_key(struct meshlink_handle *mesh, void *new_key) __attribute__((__warn_unused_result__));
+bool config_cleanup_old_files(struct meshlink_handle *mesh);
 
 #endif