Elektra  0.8.18
Functions
backend.c File Reference

Everything related to a backend. More...

#include <kdbinternal.h>
Include dependency graph for backend.c:

Functions

int elektraBackendSetMountpoint (Backend *backend, KeySet *elektraConfig, Key *errorKey)
 sets mountpoint More...
 
Backend * elektraBackendOpen (KeySet *elektraConfig, KeySet *modules, Key *errorKey)
 Builds a backend out of the configuration supplied from: More...
 
Backend * elektraBackendOpenMissing (Key *mp)
 Opens the internal backend that indicates that a backend is missing at that place. More...
 
Backend * elektraBackendOpenDefault (KeySet *modules, const char *file, Key *errorKey)
 Opens a default backend using the plugin named KDB_RESOLVER and KDB_STORAGE. More...
 
Backend * elektraBackendOpenModules (KeySet *modules, Key *errorKey)
 
Backend * elektraBackendOpenVersion (Key *errorKey)
 Opens the internal version backend. More...
 
int elektraBackendUpdateSize (Backend *backend, Key *parent, int size)
 Update internal size in backend. More...
 

Detailed Description

Everything related to a backend.

Function Documentation

Backend* elektraBackendOpen ( KeySet *  elektraConfig,
KeySet *  modules,
Key *  errorKey 
)

Builds a backend out of the configuration supplied from:

system/elektra/mountpoints/<name>

The root key must be like the above example. You do not need to rewind the keyset. But every key must be below the root key.

The internal consistency will be checked in this function. If necessary parts are missing, like no plugins, they cant be loaded or similar 0 will be returned.

ksCut() is perfectly suitable for cutting out the configuration like needed.

Note
The given KeySet will be deleted within the function, don't use it afterwards.
Parameters
elektraConfigthe configuration to work with. It is used to build up this backend.
modulesused to load new modules or get references to existing one
errorKeythe key where an error and warnings are added
Returns
a pointer to a freshly allocated backend this could be the requested backend or a so called "missing backend".
Return values
0if out of memory
Backend* elektraBackendOpenDefault ( KeySet *  modules,
const char *  file,
Key *  errorKey 
)

Opens a default backend using the plugin named KDB_RESOLVER and KDB_STORAGE.

Parameters
modulesthe modules to work with
errorKeythe key to issue warnings and errors to
Returns
the fresh allocated default backend or 0 if it failed
Backend* elektraBackendOpenMissing ( Key *  mp)

Opens the internal backend that indicates that a backend is missing at that place.

Returns
the fresh allocated backend or 0 if no memory
Backend* elektraBackendOpenModules ( KeySet *  modules,
Key *  errorKey 
)
Returns
a backend which gives plugin configuration of the module which is currently point to.
Parameters
modulesthe modules to work with
errorKeythe key to issue warnings and errors to
Backend* elektraBackendOpenVersion ( Key *  errorKey)

Opens the internal version backend.

Parameters
errorKeythe key to issue warnings and errors to
Returns
the fresh allocated default backend or 0 if it failed
int elektraBackendSetMountpoint ( Backend *  backend,
KeySet *  elektraConfig,
Key *  errorKey 
)

sets mountpoint

Parameters
backendwhere the mountpoint should be set
elektraConfigthe config where the mountpoint can be found
[out]errorKeythe name also has the mountpoint set
Precondition
ksCurrent() is root key
Postcondition
ksCurrent() is root key
Return values
-1if no mountpoint is found or memory allocation problem
0on success
int elektraBackendUpdateSize ( Backend *  backend,
Key *  parent,
int  size 
)

Update internal size in backend.

Parameters
backendthe backend to update
parentfor parent
sizeto update (-1 default, 0 empty, >0 otherwise)
Precondition
parent must be serializable namespace
Return values
-1if invalid parent (assert)
0on success