sysrepo 3.6.11
YANG-based system repository for all-around configuration management.
Loading...
Searching...
No Matches
plugins_datastore.h
Go to the documentation of this file.
1
16
17#ifndef _SYSREPO_PLUGINS_DATASTORE_H
18#define _SYSREPO_PLUGINS_DATASTORE_H
19
20#include <stdint.h>
21#include <sys/types.h>
22
23#include <libyang/libyang.h>
24
25#include "sysrepo_types.h"
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
32// Datastore Plugin API
34
39
43#define SRPLG_DS_API_VERSION 13
44
60typedef sr_error_info_t *(*srds_install)(const struct lys_module *mod, sr_datastore_t ds, const char *owner,
61 const char *group, mode_t perm, void *plg_data);
62
72typedef sr_error_info_t *(*srds_uninstall)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data);
73
87typedef sr_error_info_t *(*srds_init)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data);
88
101typedef sr_error_info_t *(*srds_conn_init)(sr_conn_ctx_t *conn, void **plg_data);
102
111typedef void (*srds_conn_destroy)(sr_conn_ctx_t *conn, void *plg_data);
112
138typedef sr_error_info_t *(*srds_store_prepare)(const struct lys_module *mod, sr_datastore_t ds, sr_cid_t cid, uint32_t sid,
139 const struct lyd_node *mod_diff, const struct lyd_node *mod_data, void *plg_data);
140
164typedef sr_error_info_t *(*srds_store_commit)(const struct lys_module *mod, sr_datastore_t ds, sr_cid_t cid, uint32_t sid,
165 const struct lyd_node *mod_diff, const struct lyd_node *mod_data, void *plg_data);
166
186typedef sr_error_info_t *(*srds_load)(const struct lys_module *mod, sr_datastore_t ds, sr_cid_t cid, uint32_t sid,
187 const char **xpaths, uint32_t xpath_count, void *plg_data, struct lyd_node **mod_data);
188
203typedef sr_error_info_t *(*srds_copy)(const struct lys_module *mod, sr_datastore_t trg_ds, sr_datastore_t src_ds,
204 void *plg_data);
205
215typedef sr_error_info_t *(*srds_candidate_modified)(const struct lys_module *mod, void *plg_data, int *modified);
216
225typedef sr_error_info_t *(*srds_candidate_reset)(const struct lys_module *mod, void *plg_data);
226
239typedef sr_error_info_t *(*srds_access_set)(const struct lys_module *mod, sr_datastore_t ds, const char *owner,
240 const char *group, mode_t perm, void *plg_data);
241
255typedef sr_error_info_t *(*srds_access_get)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data, char **owner,
256 char **group, mode_t *perm);
257
269typedef sr_error_info_t *(*srds_access_check)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data, int *read,
270 int *write);
271
284typedef sr_error_info_t *(*srds_last_modif)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data,
285 struct timespec *mtime);
286
306typedef sr_error_info_t *(*srds_data_version)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data,
307 uint32_t *version);
308
332
339#define SRPLG_DATASTORE \
340 uint32_t srpds_apiver__ = SRPLG_DS_API_VERSION; \
341 const struct srplg_ds_s srpds__
342
344
345#ifdef __cplusplus
346}
347#endif
348
349#endif /* _SYSREPO_PLUGINS_DATASTORE_H */
struct sr_conn_ctx_s sr_conn_ctx_t
Sysrepo connection.
srds_access_check access_check_cb
srds_store_prepare store_prepare_cb
const char * name
srds_conn_init conn_init_cb
srds_init init_cb
srds_last_modif last_modif_cb
srds_candidate_reset candidate_reset_cb
srds_candidate_modified candidate_modified_cb
srds_access_get access_get_cb
srds_access_set access_set_cb
srds_copy copy_cb
const int oper_store_require_diff
srds_data_version data_version_cb
srds_install install_cb
srds_conn_destroy conn_destroy_cb
srds_uninstall uninstall_cb
srds_load load_cb
srds_store_commit store_commit_cb
sr_error_info_t *(* srds_last_modif)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data, struct timespec *mtime)
Get the time when the datastore data of the module were last modified or 0 if the datastore data are ...
sr_error_info_t *(* srds_access_get)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data, char **owner, char **group, mode_t *perm)
Get access permissions for datastore data of a module. This function is also used for sysrepo access ...
sr_error_info_t *(* srds_conn_init)(sr_conn_ctx_t *conn, void **plg_data)
Initialize per-connection plugin data.
sr_error_info_t *(* srds_uninstall)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data)
Destroy data of an uninstalled module.
sr_error_info_t *(* srds_init)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data)
Initialize data of a newly installed module.
sr_error_info_t *(* srds_access_set)(const struct lys_module *mod, sr_datastore_t ds, const char *owner, const char *group, mode_t perm, void *plg_data)
Set access permissions for datastore data of a module.
sr_error_info_t *(* srds_access_check)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data, int *read, int *write)
Check whether the current user has the required access to datastore data.
sr_error_info_t *(* srds_data_version)(const struct lys_module *mod, sr_datastore_t ds, void *plg_data, uint32_t *version)
Get the current datastore data version, optional callback.
sr_error_info_t *(* srds_store_prepare)(const struct lys_module *mod, sr_datastore_t ds, sr_cid_t cid, uint32_t sid, const struct lyd_node *mod_diff, const struct lyd_node *mod_data, void *plg_data)
Prepare to store data for a module. Either a diff can be applied manually (if available) or full new ...
sr_error_info_t *(* srds_store_commit)(const struct lys_module *mod, sr_datastore_t ds, sr_cid_t cid, uint32_t sid, const struct lyd_node *mod_diff, const struct lyd_node *mod_data, void *plg_data)
Store data for a module. Either a diff can be applied manually (if available) or full new data tree s...
void(* srds_conn_destroy)(sr_conn_ctx_t *conn, void *plg_data)
Destroy (free) per-connection plugin data.
sr_error_info_t *(* srds_candidate_reset)(const struct lys_module *mod, void *plg_data)
Reset candidate datastore to "no changes" - mirroring running.
sr_error_info_t *(* srds_copy)(const struct lys_module *mod, sr_datastore_t trg_ds, sr_datastore_t src_ds, void *plg_data)
Copy data of a module from source datastore to the target datastore.
sr_error_info_t *(* srds_candidate_modified)(const struct lys_module *mod, void *plg_data, int *modified)
Learn whether the candidate datastore was modified and is different from running.
sr_error_info_t *(* srds_install)(const struct lys_module *mod, sr_datastore_t ds, const char *owner, const char *group, mode_t perm, void *plg_data)
Setup datastore of a newly installed module.
sr_error_info_t *(* srds_load)(const struct lys_module *mod, sr_datastore_t ds, sr_cid_t cid, uint32_t sid, const char **xpaths, uint32_t xpath_count, void *plg_data, struct lyd_node **mod_data)
Load data of a module.
Datastore plugin structure.
public sysrepo types header
uint32_t sr_cid_t
Connection ID.
sr_datastore_t
Datastores that sysrepo supports. To change which datastore a session operates on,...
Detailed sysrepo session error information.