\section{Data Structures}
Here are the data structures with brief descriptions\+:\begin{DoxyCompactList}
\item\contentsline{section}{\hyperlink{classkdb_1_1tools_1_1Backend}{kdb\+::tools\+::\+Backend} \\*A representation of the backend (= set of plugins) that can be mounted }{\pageref{classkdb_1_1tools_1_1Backend}}{}
\item\contentsline{section}{\hyperlink{structkdb_1_1tools_1_1BackendInfo}{kdb\+::tools\+::\+Backend\+Info} \\*Info about a backend }{\pageref{structkdb_1_1tools_1_1BackendInfo}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1tools_1_1Backends}{kdb\+::tools\+::\+Backends} \\*Allows one to list backends }{\pageref{classkdb_1_1tools_1_1Backends}}{}
\item\contentsline{section}{\hyperlink{structkdb_1_1Command}{kdb\+::\+Command} \\*Used by contexts for callbacks (to run code using a mutex) }{\pageref{structkdb_1_1Command}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1Context}{kdb\+::\+Context} \\*Provides a context for configuration }{\pageref{classkdb_1_1Context}}{}
\item\contentsline{section}{\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}{\hyperlink{classkdb_1_1Coordinator}{kdb\+::\+Coordinator} \\*Thread safe coordination of Thread\+Context per Threads }{\pageref{classkdb_1_1Coordinator}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1DefaultGetPolicy}{kdb\+::\+Default\+Get\+Policy} \\*Implements lookup with spec }{\pageref{classkdb_1_1DefaultGetPolicy}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1DefaultSetPolicy}{kdb\+::\+Default\+Set\+Policy} \\*Implements creating user/ key when key is not found }{\pageref{classkdb_1_1DefaultSetPolicy}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1Discriminator}{kdb\+::\+Discriminator$<$ Base, D $>$} \\*This technique with the Policy\+Selector and \hyperlink{classkdb_1_1Discriminator}{Discriminator} is taken from the book \char`\"{}\+C++ Templates -\/ The Complete Guide\char`\"{} by David Vandevoorde and Nicolai M }{\pageref{classkdb_1_1Discriminator}}{}
\item\contentsline{section}{\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}{\hyperlink{classkdb_1_1KDB}{kdb\+::\+K\+D\+B} \\*Constructs a class \hyperlink{classkdb_1_1KDB}{K\+D\+B}. }{\pageref{classkdb_1_1KDB}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1Key}{kdb\+::\+Key} \\*\hyperlink{classkdb_1_1Key}{Key} is an essential class that encapsulates key \hyperlink{group__keyname}{name }, \hyperlink{group__keyvalue}{value } and \hyperlink{group__keymeta}{metainfo }. }{\pageref{classkdb_1_1Key}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1KeySet}{kdb\+::\+Key\+Set} \\*A keyset holds together a set of keys }{\pageref{classkdb_1_1KeySet}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1KeySetIterator}{kdb\+::\+Key\+Set\+Iterator} \\*For C++ forward Iteration over Key\+Sets }{\pageref{classkdb_1_1KeySetIterator}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1KeySetReverseIterator}{kdb\+::\+Key\+Set\+Reverse\+Iterator} \\*For C++ reverse Iteration over Key\+Sets }{\pageref{classkdb_1_1KeySetReverseIterator}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1Layer}{kdb\+::\+Layer} \\*Base class for all layers }{\pageref{classkdb_1_1Layer}}{}
\item\contentsline{section}{\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}{\hyperlink{classkdb_1_1tools_1_1Modules}{kdb\+::tools\+::\+Modules} \\*Allows one to load plugins }{\pageref{classkdb_1_1tools_1_1Modules}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1NameIterator}{kdb\+::\+Name\+Iterator} \\*For C++ forward Iteration over Names }{\pageref{classkdb_1_1NameIterator}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1NameReverseIterator}{kdb\+::\+Name\+Reverse\+Iterator} \\*For C++ reverse Iteration over Names }{\pageref{classkdb_1_1NameReverseIterator}}{}
\item\contentsline{section}{\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}{\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}{\hyperlink{structkdb_1_1PerContext}{kdb\+::\+Per\+Context} \\*A data structure that is stored by context inside the \hyperlink{classkdb_1_1Coordinator}{Coordinator} }{\pageref{structkdb_1_1PerContext}}{}
\item\contentsline{section}{\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}{\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}{\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}{\hyperlink{classkdb_1_1ThreadSubject}{kdb\+::\+Thread\+Subject} \\*Subject from Observer pattern for Thread\+Context }{\pageref{classkdb_1_1ThreadSubject}}{}
\item\contentsline{section}{\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}{\hyperlink{structkdb_1_1Va}{kdb\+::\+Va} \\*Needed to avoid constructor ambiguity }{\pageref{structkdb_1_1Va}}{}
\item\contentsline{section}{\hyperlink{classkdb_1_1ValueObserver}{kdb\+::\+Value\+Observer} \\*Base class for values to be observed }{\pageref{classkdb_1_1ValueObserver}}{}
\item\contentsline{section}{\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}
