\doxysection{Class List}
Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1Backend}{kdb\+::tools\+::\+Backend}} \\*A low-\/level representation of the backend (= set of plugins) that can be mounted }{\pageref{classkdb_1_1tools_1_1Backend}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1BackendBuilder}{kdb\+::tools\+::\+Backend\+Builder}} \\*Highlevel interface to build a backend }{\pageref{classkdb_1_1tools_1_1BackendBuilder}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1BackendBuilderInit}{kdb\+::tools\+::\+Backend\+Builder\+Init}} \\*Used as argument of constructor of $\ast$\+Backend\+Builder }{\pageref{classkdb_1_1tools_1_1BackendBuilderInit}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1BackendFactory}{kdb\+::tools\+::\+Backend\+Factory}} \\*Factory for \mbox{\hyperlink{classkdb_1_1tools_1_1MountBackendInterface}{Mount\+Backend\+Interface}} }{\pageref{classkdb_1_1tools_1_1BackendFactory}}{}
\item\contentsline{section}{\mbox{\hyperlink{structkdb_1_1tools_1_1BackendInfo}{kdb\+::tools\+::\+Backend\+Info}} \\*Info about a backend }{\pageref{structkdb_1_1tools_1_1BackendInfo}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1BackendInterface}{kdb\+::tools\+::\+Backend\+Interface}} \\*Minimal interface to add plugins }{\pageref{classkdb_1_1tools_1_1BackendInterface}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1Backends}{kdb\+::tools\+::\+Backends}} \\*Allows one to list backends }{\pageref{classkdb_1_1tools_1_1Backends}}{}
\item\contentsline{section}{\mbox{\hyperlink{structkdb_1_1Command}{kdb\+::\+Command}} \\*Used by contexts for callbacks (to run code using a mutex) }{\pageref{structkdb_1_1Command}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1Context}{kdb\+::\+Context}} \\*Provides a context for configuration }{\pageref{classkdb_1_1Context}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1ContextPolicyIs}{kdb\+::\+Context\+Policy\+Is$<$ Policy $>$}} \\*Needed by the user to set one of the policies }{\pageref{classkdb_1_1ContextPolicyIs}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1Coordinator}{kdb\+::\+Coordinator}} \\*Thread safe coordination of Thread\+Context per Threads }{\pageref{classkdb_1_1Coordinator}}{}
\item\contentsline{section}{\mbox{\hyperlink{enumorg_1_1libelektra_1_1Key_1_1CreateArgumentTag}{org.\+libelektra.\+Key.\+Create\+Argument\+Tag}} \\*Argument tags for use with \mbox{\hyperlink{classorg_1_1libelektra_1_1Key_a37da67080fa1a17af39f8a1e42192b66}{create(\+String, Object...)}} }{\pageref{enumorg_1_1libelektra_1_1Key_1_1CreateArgumentTag}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1DefaultGetPolicy}{kdb\+::\+Default\+Get\+Policy}} \\*Implements lookup with spec }{\pageref{classkdb_1_1DefaultGetPolicy}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1DefaultSetPolicy}{kdb\+::\+Default\+Set\+Policy}} \\*Implements creating user\+:/ key when key is not found }{\pageref{classkdb_1_1DefaultSetPolicy}}{}
\item\contentsline{section}{\mbox{\hyperlink{structDocBindingData}{Doc\+Binding\+Data}} \\*\mbox{[}kdbio operation data\mbox{]} }{\pageref{structDocBindingData}}{}
\item\contentsline{section}{\mbox{\hyperlink{structDocOperationData}{Doc\+Operation\+Data}} \\*\mbox{[}kdbio operation data\mbox{]} }{\pageref{structDocOperationData}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1ErrorPlugins}{kdb\+::tools\+::\+Error\+Plugins}} \\*\mbox{\hyperlink{classkdb_1_1tools_1_1Plugins}{Plugins}} to handle errors during configuration access }{\pageref{classkdb_1_1tools_1_1ErrorPlugins}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1GetPlugins}{kdb\+::tools\+::\+Get\+Plugins}} \\*\mbox{\hyperlink{classkdb_1_1tools_1_1Plugins}{Plugins}} to get configuration }{\pageref{classkdb_1_1tools_1_1GetPlugins}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1GetPolicyIs}{kdb\+::\+Get\+Policy\+Is$<$ Policy $>$}} \\*Needed by the user to set one of the policies }{\pageref{classkdb_1_1GetPolicyIs}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1GlobalPlugins}{kdb\+::tools\+::\+Global\+Plugins}} \\*Low level representation of global plugins }{\pageref{classkdb_1_1tools_1_1GlobalPlugins}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1GlobalPluginsBuilder}{kdb\+::tools\+::\+Global\+Plugins\+Builder}} \\*Build global plugins }{\pageref{classkdb_1_1tools_1_1GlobalPluginsBuilder}}{}
\item\contentsline{section}{\mbox{\hyperlink{structstd_1_1hash_3_01kdb_1_1Key_01_4}{std\+::hash$<$ kdb\+::\+Key $>$}} \\*Support for putting Key in a hash }{\pageref{structstd_1_1hash_3_01kdb_1_1Key_01_4}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1ImportExportBackend}{kdb\+::tools\+::\+Import\+Export\+Backend}} \\*\mbox{\hyperlink{classkdb_1_1tools_1_1Backend}{Backend}} for import/export functionality }{\pageref{classkdb_1_1tools_1_1ImportExportBackend}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1KDB}{kdb\+::\+KDB}} \\*Constructs a class \mbox{\hyperlink{classkdb_1_1KDB}{KDB}}. }{\pageref{classkdb_1_1KDB}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1KDB}{org.\+libelektra.\+KDB}} \\*Represents a session with the Elektra key database }{\pageref{classorg_1_1libelektra_1_1KDB}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1exception_1_1KDBClosedException}{org.\+libelektra.\+exception.\+KDBClosed\+Exception}} \\*Indicates that an already closed \mbox{\hyperlink{classorg_1_1libelektra_1_1KDB}{KDB}} session has been accessed }{\pageref{classorg_1_1libelektra_1_1exception_1_1KDBClosedException}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1KDBException}{org.\+libelektra.\+KDBException}} \\*Wraps Elektra errors into the corresponding Java exceptions }{\pageref{classorg_1_1libelektra_1_1KDBException}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1Key}{kdb\+::\+Key}} \\*\mbox{\hyperlink{classkdb_1_1Key}{Key}} is an essential class that encapsulates key \mbox{\hyperlink{group__keyname}{name }}, \mbox{\hyperlink{group__keyvalue}{value }} and \mbox{\hyperlink{group__keymeta}{metainfo }}. }{\pageref{classkdb_1_1Key}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1Key}{org.\+libelektra.\+Key}} \\*\mbox{\hyperlink{classorg_1_1libelektra_1_1Key}{Key}} represents a native Elektra key providing access to its name, value and meta information }{\pageref{classorg_1_1libelektra_1_1Key}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1exception_1_1KeyBinaryValueException}{org.\+libelektra.\+exception.\+Key\+Binary\+Value\+Exception}} \\*Indicates a \mbox{\hyperlink{classorg_1_1libelektra_1_1Key}{key\textquotesingle{}s}} underlying native key value is not of type binary, and therefore is not compatible with the invoked functionality raising this exception }{\pageref{classorg_1_1libelektra_1_1exception_1_1KeyBinaryValueException}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1exception_1_1KeyException}{org.\+libelektra.\+exception.\+Key\+Exception}} \\*Indicates a generic exception while calling one of \mbox{\hyperlink{classorg_1_1libelektra_1_1Key}{Key}}\textquotesingle{}s methods~\newline
 ~\newline
 This exception is related to unrecoverable C API specific errors (primarily allocation problems) }{\pageref{classorg_1_1libelektra_1_1exception_1_1KeyException}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1exception_1_1KeyMetaException}{org.\+libelektra.\+exception.\+Key\+Meta\+Exception}} \\*Indicates \mbox{\hyperlink{classorg_1_1libelektra_1_1Key_a5a5f568f1e5e6bcf5dcd791daeada1e3}{Key\#copy\+Meta(\+Key, String)}}, \mbox{\hyperlink{classorg_1_1libelektra_1_1Key_ad88025a33da3657edcc801cd2e0a94a5}{Key\#copy\+All\+Meta(\+Key)}}, \{\mbox{\hyperlink{classorg_1_1libelektra_1_1Key_ae247f420344b10e1c4e9eabbf51c4b25}{\} or  Key\#remove\+Meta(\+String)\} failed because the key name is invalid, the meta information is read-\/only or there where allocation problems in the native library }}}{\pageref{classorg_1_1libelektra_1_1exception_1_1KeyMetaException}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1exception_1_1KeyNameException}{org.\+libelektra.\+exception.\+Key\+Name\+Exception}} \\*Indicates \mbox{\hyperlink{classorg_1_1libelektra_1_1Key_a82f99a4db50fb4e251e34c9114339276}{Key\#set\+Name(\+String)}}, \mbox{\hyperlink{classorg_1_1libelektra_1_1Key_a9c85aafc8f3d4099f6a95a9b4725e95b}{Key\#set\+Base\+Name(\+String)}} or \{\mbox{\hyperlink{classorg_1_1libelektra_1_1Key_aa3c08bf75e55637281c38ce710fb6ff8}{\} failed because the key name is invalid, the key was inserted in a key set before, the key name is read-\/only For there where allocation problems in the native library }}}{\pageref{classorg_1_1libelektra_1_1exception_1_1KeyNameException}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1KeySet}{kdb\+::\+Key\+Set}} \\*A keyset holds together a set of keys }{\pageref{classkdb_1_1KeySet}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1KeySet}{org.\+libelektra.\+Key\+Set}} \\*Java representation of a native Elektra key set, a container for keys }{\pageref{classorg_1_1libelektra_1_1KeySet}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1exception_1_1KeySetException}{org.\+libelektra.\+exception.\+Key\+Set\+Exception}} \\*Indicates a generic exception while calling one of \mbox{\hyperlink{classorg_1_1libelektra_1_1KeySet}{Key\+Set}}\textquotesingle{}s methods~\newline
 ~\newline
 This exception is related to unrecoverable C API specific errors (primarily allocation problems) }{\pageref{classorg_1_1libelektra_1_1exception_1_1KeySetException}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1KeySetIterator}{kdb\+::\+Key\+Set\+Iterator}} \\*For C++ forward Iteration over Key\+Sets }{\pageref{classkdb_1_1KeySetIterator}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1KeySetReverseIterator}{kdb\+::\+Key\+Set\+Reverse\+Iterator}} \\*For C++ reverse Iteration over Key\+Sets }{\pageref{classkdb_1_1KeySetReverseIterator}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1exception_1_1KeyStringValueException}{org.\+libelektra.\+exception.\+Key\+String\+Value\+Exception}} \\*Indicates a \mbox{\hyperlink{classorg_1_1libelektra_1_1Key}{key\textquotesingle{}s}} underlying native key value is not of type string, and therefore is not compatible with the invoked functionality raising this exception }{\pageref{classorg_1_1libelektra_1_1exception_1_1KeyStringValueException}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1Layer}{kdb\+::\+Layer}} \\*Base class for all layers }{\pageref{classkdb_1_1Layer}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1LockPolicyIs}{kdb\+::\+Lock\+Policy\+Is$<$ Policy $>$}} \\*Needed by the user to set one of the policies }{\pageref{classkdb_1_1LockPolicyIs}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1merging_1_1MergingKDB}{kdb\+::tools\+::merging\+::\+Merging\+KDB}} \\*Provides a merging wrapper around a \mbox{\hyperlink{classkdb_1_1KDB}{KDB}} instance }{\pageref{classkdb_1_1tools_1_1merging_1_1MergingKDB}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1MockPluginDatabase}{kdb\+::tools\+::\+Mock\+Plugin\+Database}} \\*A plugin database that works with added fake data }{\pageref{classkdb_1_1tools_1_1MockPluginDatabase}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1Modules}{kdb\+::tools\+::\+Modules}} \\*Allows one to load plugins }{\pageref{classkdb_1_1tools_1_1Modules}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1ModulesPluginDatabase}{kdb\+::tools\+::\+Modules\+Plugin\+Database}} \\*A plugin database that works with installed modules }{\pageref{classkdb_1_1tools_1_1ModulesPluginDatabase}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1MountBackendBuilder}{kdb\+::tools\+::\+Mount\+Backend\+Builder}} \\*High-\/level functionality to build a mountpoint }{\pageref{classkdb_1_1tools_1_1MountBackendBuilder}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1MountBackendInterface}{kdb\+::tools\+::\+Mount\+Backend\+Interface}} \\*Interface to work with mountpoints (backends) for factory }{\pageref{classkdb_1_1tools_1_1MountBackendInterface}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1NameIterator}{kdb\+::\+Name\+Iterator}} \\*For C++ forward Iteration over Names }{\pageref{classkdb_1_1NameIterator}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1NameReverseIterator}{kdb\+::\+Name\+Reverse\+Iterator}} \\*For C++ reverse Iteration over Names }{\pageref{classkdb_1_1NameReverseIterator}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1NativePlugin}{org.\+libelektra.\+Native\+Plugin}} \\*This class can be used to load native Elektra plugins to be used by Java directly }{\pageref{classorg_1_1libelektra_1_1NativePlugin}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1none__t}{kdb\+::none\+\_\+t}} \\*This type is being used as bottom type that always fails }{\pageref{classkdb_1_1none__t}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1ObserverPolicyIs}{kdb\+::\+Observer\+Policy\+Is$<$ Policy $>$}} \\*Needed by the user to set one of the policies }{\pageref{classkdb_1_1ObserverPolicyIs}}{}
\item\contentsline{section}{\mbox{\hyperlink{structOpmphm}{Opmphm}} \\*The opmphm }{\pageref{structOpmphm}}{}
\item\contentsline{section}{\mbox{\hyperlink{structOpmphmEdge}{Opmphm\+Edge}} \\*Order Preserving Minimal Perfect Hash Map }{\pageref{structOpmphmEdge}}{}
\item\contentsline{section}{\mbox{\hyperlink{structkdb_1_1PerContext}{kdb\+::\+Per\+Context}} \\*A data structure that is stored by context inside the \mbox{\hyperlink{classkdb_1_1Coordinator}{Coordinator}} }{\pageref{structkdb_1_1PerContext}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1Plugin}{kdb\+::tools\+::\+Plugin}} \\*This is a C++ representation of a plugin }{\pageref{classkdb_1_1tools_1_1Plugin}}{}
\item\contentsline{section}{\mbox{\hyperlink{interfaceorg_1_1libelektra_1_1Plugin}{org.\+libelektra.\+Plugin}} \\*Java representation of an Elektra plugin }{\pageref{interfaceorg_1_1libelektra_1_1Plugin}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1PluginAdder}{kdb\+::tools\+::\+Plugin\+Adder}} \\*Adds plugins in a generic map }{\pageref{classkdb_1_1tools_1_1PluginAdder}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1PluginDatabase}{kdb\+::tools\+::\+Plugin\+Database}} \\*Loads all plugins and allows us to query them }{\pageref{classkdb_1_1tools_1_1PluginDatabase}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1PluginLoader}{org.\+libelektra.\+Plugin\+Loader}} \\*This class can be used to load plugins from Elektra }{\pageref{classorg_1_1libelektra_1_1PluginLoader}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1Plugins}{kdb\+::tools\+::\+Plugins}} \\*A collection of plugins (either get, set or error) }{\pageref{classkdb_1_1tools_1_1Plugins}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{kdb\+::tools\+::\+Plugin\+Spec}} \\*Specifies a plugin by its name and configuration }{\pageref{classkdb_1_1tools_1_1PluginSpec}}{}
\item\contentsline{section}{\mbox{\hyperlink{structkdb_1_1tools_1_1PluginSpecHash}{kdb\+::tools\+::\+Plugin\+Spec\+Hash}} \\*Only to be used with Plugin\+Spec\+Name! }{\pageref{structkdb_1_1tools_1_1PluginSpecHash}}{}
\item\contentsline{section}{\mbox{\hyperlink{classorg_1_1libelektra_1_1ReadableKey}{org.\+libelektra.\+Readable\+Key}} \\*Read only key representing a native Elektra key providing read access to its name and value }{\pageref{classorg_1_1libelektra_1_1ReadableKey}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1SerializeInterface}{kdb\+::tools\+::\+Serialize\+Interface}} \\*Interface to serialize a backend }{\pageref{classkdb_1_1tools_1_1SerializeInterface}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1SetPlugins}{kdb\+::tools\+::\+Set\+Plugins}} \\*\mbox{\hyperlink{classkdb_1_1tools_1_1Plugins}{Plugins}} to set configuration }{\pageref{classkdb_1_1tools_1_1SetPlugins}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1SetPolicyIs}{kdb\+::\+Set\+Policy\+Is$<$ Policy $>$}} \\*Needed by the user to set one of the policies }{\pageref{classkdb_1_1SetPolicyIs}}{}
\item\contentsline{section}{\mbox{\hyperlink{structSomeIoLibHandle}{Some\+Io\+Lib\+Handle}} \\*Example I/O management library data structure }{\pageref{structSomeIoLibHandle}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1SpecBackendBuilder}{kdb\+::tools\+::\+Spec\+Backend\+Builder}} \\*Build individual backend while reading specification }{\pageref{classkdb_1_1tools_1_1SpecBackendBuilder}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1tools_1_1SpecReader}{kdb\+::tools\+::\+Spec\+Reader}} \\*Highlevel interface to build a backend from specification }{\pageref{classkdb_1_1tools_1_1SpecReader}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1ThreadSubject}{kdb\+::\+Thread\+Subject}} \\*Subject from Observer pattern for Thread\+Context }{\pageref{classkdb_1_1ThreadSubject}}{}
\item\contentsline{section}{\mbox{\hyperlink{structkdb_1_1tools_1_1ToolException}{kdb\+::tools\+::\+Tool\+Exception}} \\*All exceptions from the elektratools library are derived from this exception }{\pageref{structkdb_1_1tools_1_1ToolException}}{}
\item\contentsline{section}{\mbox{\hyperlink{structkdb_1_1VaAlloc}{kdb\+::\+Va\+Alloc}} \\*Needed to avoid constructor ambiguity }{\pageref{structkdb_1_1VaAlloc}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1ValueObserver}{kdb\+::\+Value\+Observer}} \\*Base class for values to be observed }{\pageref{classkdb_1_1ValueObserver}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1Wrapped}{kdb\+::\+Wrapped}} \\*Everything implementing this interface can be used as layer }{\pageref{classkdb_1_1Wrapped}}{}
\item\contentsline{section}{\mbox{\hyperlink{classkdb_1_1WritePolicyIs}{kdb\+::\+Write\+Policy\+Is$<$ Policy $>$}} \\*Needed by the user to set one of the policies }{\pageref{classkdb_1_1WritePolicyIs}}{}
\end{DoxyCompactList}
