Elektra  0.8.15
Functions
mount.c File Reference

Interna of mount functionality. More...

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

Functions

int elektraMountOpen (KDB *kdb, KeySet *config, KeySet *modules, Key *errorKey)
 Creates a trie from a given configuration. More...
 
int elektraMountDefault (KDB *kdb, KeySet *modules, int inFallback, Key *errorKey)
 Reopens the default backend and mounts the default backend if needed. More...
 
int elektraMountModules (KDB *kdb, KeySet *modules, Key *errorKey)
 Mount all module configurations. More...
 
int elektraMountVersion (KDB *kdb, Key *errorKey)
 Mount the version backend. More...
 
int elektraMountBackend (KDB *kdb, Backend *backend, Key *errorKey)
 Mounts a backend into the trie. More...
 
Key * elektraMountGetMountpoint (KDB *handle, const Key *where)
 Lookup a mountpoint in a handle for a specific key. More...
 
Backend * elektraMountGetBackend (KDB *handle, const Key *key)
 Lookup a backend handle for a specific key. More...
 

Detailed Description

Interna of mount functionality.

Function Documentation

int elektraMountBackend ( 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 elektraMountBackend.
Parameters
kdbthe handle to work with
backendthe backend to mount
errorKeythe key used to report warnings
Return values
-1on failure
1on success
int elektraMountDefault ( KDB *  kdb,
KeySet *  modules,
int  inFallback,
Key *  errorKey 
)

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

Precondition
Default Backend is closed. elektraMountOpen 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* elektraMountGetBackend ( 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* elektraMountGetMountpoint ( 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 elektraMountModules ( 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 elektraMountOpen ( KDB *  kdb,
KeySet *  config,
KeySet *  modules,
Key *  errorKey 
)

Creates a trie from a given configuration.

The config will be deleted within this function.

Note
elektraMountDefault 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 elektraMountVersion ( KDB *  kdb,
Key *  errorKey 
)

Mount the version backend.

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