Elektra  0.8.19
Functions
mount.c File Reference

Interna of mount functionality. More...

#include "kdbinternal.h"
Include dependency graph for mount.c:

Functions

int mountOpen (KDB *kdb, KeySet *config, KeySet *modules, Key *errorKey)
 Creates a trie from a given configuration. More...
 
int mountDefault (KDB *kdb, KeySet *modules, int inFallback, Key *errorKey)
 Reopens the default backend and mounts the default backend if needed. More...
 
int mountModules (KDB *kdb, KeySet *modules, Key *errorKey)
 Mount all module configurations. More...
 
int mountVersion (KDB *kdb, Key *errorKey)
 Mount the version backend. More...
 
int mountBackend (KDB *kdb, Backend *backend, Key *errorKey)
 Mounts a backend into the trie. More...
 
Key * mountGetMountpoint (KDB *handle, const Key *where)
 Lookup a mountpoint in a handle for a specific key. More...
 
Backend * mountGetBackend (KDB *handle, const Key *key)
 Lookup a backend handle for a specific key. More...
 

Detailed Description

Interna of mount functionality.

Function Documentation

int mountBackend ( KDB *  kdb,
Backend *  backend,
Key *  errorKey 
)

Mounts a backend into the trie.

Precondition
user must pass correctly allocated backend
Postcondition
sets reference counter of backend
Warning
in case of init and default backends, the reference counter needs to be modified after calling mountBackend.
Parameters
kdbthe handle to work with
backendthe backend to mount
errorKeythe key used to report warnings
Return values
-1on failure
1on success
int mountDefault ( KDB *  kdb,
KeySet *  modules,
int  inFallback,
Key *  errorKey 
)

Reopens the default backend and mounts the default backend if needed.

Precondition
Default Backend is closed. mountOpen was executed before.
Parameters
kdbthe handle to work with
modulesthe current list of loaded modules
errorKeythe key used to report warnings
Return values
-1on error
0on success
Backend* mountGetBackend ( KDB *  handle,
const Key *  key 
)

Lookup a backend handle for a specific key.

The required canonical name is ensured by using a key as parameter, which will transform the key to canonical representation.

Will return handle when no more specific KDB could be found.

If key is 0 or invalid the default backend will be returned.

Parameters
handleis the data structure, where the mounted directories are saved.
keythe key, that should be looked up.
Returns
the backend handle associated with the key
Key* mountGetMountpoint ( KDB *  handle,
const Key *  where 
)

Lookup a mountpoint in a handle for a specific key.

Will return a key representing the mountpoint or null if there is no appropriate mountpoint e.g. its the root mountpoint.

Example:
1 Key * key = keyNew ("system/template");
2 KDB * handle = kdbOpen();
3 Key *mountpoint=0;
4 mountpoint=kdbGetMountpoint(handle, key);
5 
6 printf("The backend I am using is %s mounted in %s\n",
7  keyValue(mountpoint),
8  keyName(mountpoint));
9 kdbClose (handle);
10 keyDel (key);
Parameters
handleis the data structure, where the mounted directories are saved.
wherethe key, that should be looked up.
Returns
the mountpoint associated with the key
int mountModules ( KDB *  kdb,
KeySet *  modules,
Key *  errorKey 
)

Mount all module configurations.

Parameters
kdbthe handle to work with
modulesthe current list of loaded modules
errorKeythe key used to report warnings
Return values
-1if not rootkey was found
0otherwise
int mountOpen ( KDB *  kdb,
KeySet *  config,
KeySet *  modules,
Key *  errorKey 
)

Creates a trie from a given configuration.

The config will be deleted within this function.

is not allowed to be executed before

Parameters
kdbthe handle to work with
modulesthe current list of loaded modules
configthe configuration which should be used to build up the trie.
errorKeythe key used to report warnings
Return values
-1on failure
0on success
int mountVersion ( KDB *  kdb,
Key *  errorKey 
)

Mount the version backend.

Parameters
kdbthe handle to work with
errorKeythe key used to report warnings
Return values
0on success