\hypertarget{classkdb_1_1tools_1_1BackendBuilder}{}\section{kdb\+::tools\+::Backend\+Builder Class Reference}
\label{classkdb_1_1tools_1_1BackendBuilder}\index{kdb::tools::BackendBuilder@{kdb::tools::BackendBuilder}}


Highlevel interface to build a backend.  




{\ttfamily \#include $<$backendbuilder.\+hpp$>$}



Inheritance diagram for kdb\+::tools\+::Backend\+Builder\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classkdb_1_1tools_1_1BackendBuilder__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for kdb\+::tools\+::Backend\+Builder\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=328pt]{classkdb_1_1tools_1_1BackendBuilder__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{classkdb_1_1tools_1_1BackendBuilder_a987d2c3711399e24b42c38e652c0e1c4}{add\+Plugin}} (\mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&plugin)
\begin{DoxyCompactList}\small\item\em Add a plugin. \end{DoxyCompactList}\item 
std\+::vector$<$ std\+::string $>$ \mbox{\hyperlink{classkdb_1_1tools_1_1BackendBuilder_a6e6c23716dc72ef68f8acfd71fc802a9}{resolve\+Needs}} (bool add\+Recommends=true)
\begin{DoxyCompactList}\small\item\em resolve all needs that were not resolved by adding plugins. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Highlevel interface to build a backend. 

Automatically reorders plugins and has different modes which \mbox{\hyperlink{classkdb_1_1tools_1_1Backend}{Backend}} should be built. 

\subsection{Member Function Documentation}
\mbox{\Hypertarget{classkdb_1_1tools_1_1BackendBuilder_a987d2c3711399e24b42c38e652c0e1c4}\label{classkdb_1_1tools_1_1BackendBuilder_a987d2c3711399e24b42c38e652c0e1c4}} 
\index{kdb::tools::BackendBuilder@{kdb::tools::BackendBuilder}!addPlugin@{addPlugin}}
\index{addPlugin@{addPlugin}!kdb::tools::BackendBuilder@{kdb::tools::BackendBuilder}}
\subsubsection{\texorpdfstring{addPlugin()}{addPlugin()}}
{\footnotesize\ttfamily void kdb\+::tools\+::\+Backend\+Builder\+::add\+Plugin (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&}]{plugin }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Add a plugin. 

\begin{DoxyPrecond}{Precondition}
Needs to be a unique new name (use refname if you want to add the same module multiple times)
\end{DoxyPrecond}
Will automatically resolve virtual plugins to actual plugins.

Also calls the checkconf function if provided by the plugin. The checkconf function has the following signature\+: int checkconf (\mbox{\hyperlink{classkdb_1_1Key}{Key}} $\ast$ error\+Key, \mbox{\hyperlink{classkdb_1_1KeySet}{Key\+Set}} $\ast$ config) and allows a plugin to verify its configuration at mount time.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{classkdb_1_1tools_1_1BackendBuilder_a6e6c23716dc72ef68f8acfd71fc802a9}{resolve\+Needs()}} 
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em plugin} & \\
\hline
\end{DoxyParams}


Implements \mbox{\hyperlink{classkdb_1_1tools_1_1BackendInterface}{kdb\+::tools\+::\+Backend\+Interface}}.



Reimplemented in \mbox{\hyperlink{classkdb_1_1tools_1_1MountBackendBuilder_a2603e75436a49fc66696c1b41b27efb9}{kdb\+::tools\+::\+Mount\+Backend\+Builder}}.

\mbox{\Hypertarget{classkdb_1_1tools_1_1BackendBuilder_a6e6c23716dc72ef68f8acfd71fc802a9}\label{classkdb_1_1tools_1_1BackendBuilder_a6e6c23716dc72ef68f8acfd71fc802a9}} 
\index{kdb::tools::BackendBuilder@{kdb::tools::BackendBuilder}!resolveNeeds@{resolveNeeds}}
\index{resolveNeeds@{resolveNeeds}!kdb::tools::BackendBuilder@{kdb::tools::BackendBuilder}}
\subsubsection{\texorpdfstring{resolveNeeds()}{resolveNeeds()}}
{\footnotesize\ttfamily std\+::vector$<$ std\+::string $>$ kdb\+::tools\+::\+Backend\+Builder\+::resolve\+Needs (\begin{DoxyParamCaption}\item[{bool}]{add\+Recommends = {\ttfamily true} }\end{DoxyParamCaption})}



resolve all needs that were not resolved by adding plugins. 

\begin{DoxyWarning}{Warning}
Must only be used once after all plugins/recommends are added.
\end{DoxyWarning}
\begin{DoxyReturn}{Returns}
the missing recommended plugins 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
{\em empty} & if add\+Recommends was false\\
\hline
\end{DoxyRetVals}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{classkdb_1_1tools_1_1BackendBuilder_a987d2c3711399e24b42c38e652c0e1c4}{add\+Plugin()}} 
\end{DoxySeeAlso}


The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{backendbuilder_8hpp}{backendbuilder.\+hpp}}\item 
\mbox{\hyperlink{backendbuilder_8cpp}{backendbuilder.\+cpp}}\end{DoxyCompactItemize}
