\hypertarget{classkdb_1_1tools_1_1Backend}{\section{kdb\-:\-:tools\-:\-:Backend Class Reference}
\label{classkdb_1_1tools_1_1Backend}\index{kdb\-::tools\-::\-Backend@{kdb\-::tools\-::\-Backend}}
}


A representation of the backend (= set of plugins) that can be mounted.  




{\ttfamily \#include $<$backend.\-hpp$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classkdb_1_1tools_1_1Backend_ae1e876a38d1e9ab456830edc0a31350e}{Backend} (std\-::string name=\char`\"{}\char`\"{}, std\-::string mountpoint=\char`\"{}\char`\"{})
\item 
void \hyperlink{classkdb_1_1tools_1_1Backend_ac8570864ee3fcff56316f435a2f928ee}{add\-Plugin} (std\-::string name)
\item 
void \hyperlink{classkdb_1_1tools_1_1Backend_ab714909e0ca3f871ab06f4db00d77e2f}{check\-File} (std\-::string file)
\item 
bool \hyperlink{classkdb_1_1tools_1_1Backend_a61182a9bd27aaefe0347ad5ea2db9b33}{validated} ()
\item 
void \hyperlink{classkdb_1_1tools_1_1Backend_acb6f43d0d7eaf40570c37564aa0f3c53}{serialise} (\hyperlink{classkdb_1_1Key}{kdb\-::\-Key} \&root\-Key, \hyperlink{classkdb_1_1KeySet}{kdb\-::\-Key\-Set} \&ret)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
A representation of the backend (= set of plugins) that can be mounted. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classkdb_1_1tools_1_1Backend_ae1e876a38d1e9ab456830edc0a31350e}{\index{kdb\-::tools\-::\-Backend@{kdb\-::tools\-::\-Backend}!Backend@{Backend}}
\index{Backend@{Backend}!kdb::tools::Backend@{kdb\-::tools\-::\-Backend}}
\subsubsection[{Backend}]{\setlength{\rightskip}{0pt plus 5cm}kdb\-::tools\-::\-Backend\-::\-Backend (
\begin{DoxyParamCaption}
\item[{std\-::string}]{name = {\ttfamily \char`\"{}\char`\"{}}, }
\item[{std\-::string}]{mountpoint = {\ttfamily \char`\"{}\char`\"{}}}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1Backend_ae1e876a38d1e9ab456830edc0a31350e}
Creates a new backend with a given name and mountpoint. Parameters are needed for serialisation only, so you can keep them empty if you do not want to serialise. 

\subsection{Member Function Documentation}
\hypertarget{classkdb_1_1tools_1_1Backend_ac8570864ee3fcff56316f435a2f928ee}{\index{kdb\-::tools\-::\-Backend@{kdb\-::tools\-::\-Backend}!add\-Plugin@{add\-Plugin}}
\index{add\-Plugin@{add\-Plugin}!kdb::tools::Backend@{kdb\-::tools\-::\-Backend}}
\subsubsection[{add\-Plugin}]{\setlength{\rightskip}{0pt plus 5cm}void kdb\-::tools\-::\-Backend\-::add\-Plugin (
\begin{DoxyParamCaption}
\item[{std\-::string}]{plugin\-Name}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1Backend_ac8570864ee3fcff56316f435a2f928ee}
Add a plugin that can be loaded, meets all constraints.

\begin{DoxyNote}{Note}
that this does not mean that the backend validates after it is added. It only means that the situation is not getting worse.
\end{DoxyNote}

\begin{DoxyExceptions}{Exceptions}
{\em Plugin\-Check\-Exception} & or its subclasses if it was not possible to load the plugin\\
\hline
\end{DoxyExceptions}
For validation \begin{DoxySeeAlso}{See Also}
\hyperlink{classkdb_1_1tools_1_1Backend_a61182a9bd27aaefe0347ad5ea2db9b33}{validated()}. 
\end{DoxySeeAlso}
\hypertarget{classkdb_1_1tools_1_1Backend_ab714909e0ca3f871ab06f4db00d77e2f}{\index{kdb\-::tools\-::\-Backend@{kdb\-::tools\-::\-Backend}!check\-File@{check\-File}}
\index{check\-File@{check\-File}!kdb::tools::Backend@{kdb\-::tools\-::\-Backend}}
\subsubsection[{check\-File}]{\setlength{\rightskip}{0pt plus 5cm}void kdb\-::tools\-::\-Backend\-::check\-File (
\begin{DoxyParamCaption}
\item[{std\-::string}]{file}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1Backend_ab714909e0ca3f871ab06f4db00d77e2f}
\begin{DoxyPrecond}{Precondition}
\-: resolver needs to be loaded first Will check the filename. 
\end{DoxyPrecond}

\begin{DoxyExceptions}{Exceptions}
{\em File\-Not\-Valid\-Exception} & if filename is not valid \\
\hline
\end{DoxyExceptions}
\hypertarget{classkdb_1_1tools_1_1Backend_acb6f43d0d7eaf40570c37564aa0f3c53}{\index{kdb\-::tools\-::\-Backend@{kdb\-::tools\-::\-Backend}!serialise@{serialise}}
\index{serialise@{serialise}!kdb::tools::Backend@{kdb\-::tools\-::\-Backend}}
\subsubsection[{serialise}]{\setlength{\rightskip}{0pt plus 5cm}void kdb\-::tools\-::\-Backend\-::serialise (
\begin{DoxyParamCaption}
\item[{{\bf kdb\-::\-Key} \&}]{root\-Key, }
\item[{{\bf kdb\-::\-Key\-Set} \&}]{ret}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1Backend_acb6f43d0d7eaf40570c37564aa0f3c53}
\begin{DoxyPrecond}{Precondition}
name and mountpoint set Write plugin into keyset ret below root\-Key. 
\end{DoxyPrecond}
\hypertarget{classkdb_1_1tools_1_1Backend_a61182a9bd27aaefe0347ad5ea2db9b33}{\index{kdb\-::tools\-::\-Backend@{kdb\-::tools\-::\-Backend}!validated@{validated}}
\index{validated@{validated}!kdb::tools::Backend@{kdb\-::tools\-::\-Backend}}
\subsubsection[{validated}]{\setlength{\rightskip}{0pt plus 5cm}bool kdb\-::tools\-::\-Backend\-::validated (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1Backend_a61182a9bd27aaefe0347ad5ea2db9b33}
\begin{DoxyReturn}{Returns}
true if backend is validated 

false if more plugins are needed to be valided 
\end{DoxyReturn}


The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{backend_8hpp}{backend.\-hpp}\item 
\hyperlink{src_2backend_8cpp}{src/backend.\-cpp}\end{DoxyCompactItemize}
