\hypertarget{namespacekdb_1_1tools}{}\doxysection{kdb\+::tools Namespace Reference}
\label{namespacekdb_1_1tools}\index{kdb::tools@{kdb::tools}}


This namespace is for the libtool library.  


\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1BackendInterface}{Backend\+Interface}}
\begin{DoxyCompactList}\small\item\em Minimal interface to add plugins. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1SerializeInterface}{Serialize\+Interface}}
\begin{DoxyCompactList}\small\item\em Interface to serialize a backend. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1MountBackendInterface}{Mount\+Backend\+Interface}}
\begin{DoxyCompactList}\small\item\em Interface to work with mountpoints (backends) for factory. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1Backend}{Backend}}
\begin{DoxyCompactList}\small\item\em A low-\/level representation of the backend (= set of plugins) that can be mounted. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1BackendFactory}{Backend\+Factory}}
\begin{DoxyCompactList}\small\item\em Factory for \mbox{\hyperlink{classkdb_1_1tools_1_1MountBackendInterface}{Mount\+Backend\+Interface}}. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1PluginAdder}{Plugin\+Adder}}
\begin{DoxyCompactList}\small\item\em Adds plugins in a generic map. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1GlobalPlugins}{Global\+Plugins}}
\begin{DoxyCompactList}\small\item\em Low level representation of global plugins. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1ImportExportBackend}{Import\+Export\+Backend}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classkdb_1_1tools_1_1Backend}{Backend}} for import/export functionality. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1BackendBuilderInit}{Backend\+Builder\+Init}}
\begin{DoxyCompactList}\small\item\em Used as argument of constructor of $\ast$\+Backend\+Builder. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1BackendBuilder}{Backend\+Builder}}
\begin{DoxyCompactList}\small\item\em Highlevel interface to build a backend. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1GlobalPluginsBuilder}{Global\+Plugins\+Builder}}
\begin{DoxyCompactList}\small\item\em Build global plugins. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1MountBackendBuilder}{Mount\+Backend\+Builder}}
\begin{DoxyCompactList}\small\item\em High-\/level functionality to build a mountpoint. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkdb_1_1tools_1_1BackendInfo}{Backend\+Info}}
\begin{DoxyCompactList}\small\item\em Info about a backend. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1Backends}{Backends}}
\begin{DoxyCompactList}\small\item\em Allows one to list backends. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1Modules}{Modules}}
\begin{DoxyCompactList}\small\item\em Allows one to load plugins. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1Plugin}{Plugin}}
\begin{DoxyCompactList}\small\item\em This is a C++ representation of a plugin. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1PluginDatabase}{Plugin\+Database}}
\begin{DoxyCompactList}\small\item\em Loads all plugins and allows us to query them. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1ModulesPluginDatabase}{Modules\+Plugin\+Database}}
\begin{DoxyCompactList}\small\item\em A plugin database that works with installed modules. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1MockPluginDatabase}{Mock\+Plugin\+Database}}
\begin{DoxyCompactList}\small\item\em A plugin database that works with added fake data. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1Plugins}{Plugins}}
\begin{DoxyCompactList}\small\item\em A collection of plugins (either get, set or error) \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1GetPlugins}{Get\+Plugins}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classkdb_1_1tools_1_1Plugins}{Plugins}} to get configuration. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1SetPlugins}{Set\+Plugins}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classkdb_1_1tools_1_1Plugins}{Plugins}} to set configuration. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1ErrorPlugins}{Error\+Plugins}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classkdb_1_1tools_1_1Plugins}{Plugins}} to handle errors during configuration access. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}}
\begin{DoxyCompactList}\small\item\em Specifies a plugin by its name and configuration. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkdb_1_1tools_1_1PluginSpecHash}{Plugin\+Spec\+Hash}}
\begin{DoxyCompactList}\small\item\em Only to be used with Plugin\+Spec\+Name! \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1SpecBackendBuilder}{Spec\+Backend\+Builder}}
\begin{DoxyCompactList}\small\item\em Build individual backend while reading specification. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkdb_1_1tools_1_1SpecReader}{Spec\+Reader}}
\begin{DoxyCompactList}\small\item\em Highlevel interface to build a backend from specification. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkdb_1_1tools_1_1ToolException}{Tool\+Exception}}
\begin{DoxyCompactList}\small\item\em All exceptions from the elektratools library are derived from this exception. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
std\+::ostream \& \mbox{\hyperlink{namespacekdb_1_1tools_a10b59213ee542e33c7ecc481d4476a79}{operator$<$$<$}} (std\+::ostream \&os, \mbox{\hyperlink{classkdb_1_1tools_1_1Backend}{Backend}} const \&b)
\begin{DoxyCompactList}\small\item\em Prints the current status. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classkdb_1_1KeySet}{kdb\+::\+Key\+Set}} \mbox{\hyperlink{namespacekdb_1_1tools_ad4fdf9477ede38a219b02a7442965f6d}{parse\+Plugin\+Arguments}} (std\+::string const \&plugin\+Arguments, std\+::string const \&basepath)
\begin{DoxyCompactList}\small\item\em Parse a string containing information to create a \mbox{\hyperlink{classkdb_1_1KeySet}{Key\+Set}}. \end{DoxyCompactList}\item 
Plugin\+Spec\+Vector \mbox{\hyperlink{namespacekdb_1_1tools_a3c08f8fdabc7002ff497b247cba6bb21}{parse\+Arguments}} (std\+::string const \&cmdline)
\begin{DoxyCompactList}\small\item\em Parse a complete commandline. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Iterator $>$ }\\Plugin\+Spec\+Vector \mbox{\hyperlink{namespacekdb_1_1tools_ab7ffe14ed9cab32c07ddb55a8a65973a}{parse\+Arguments}} (Iterator first, Iterator last)
\begin{DoxyCompactList}\small\item\em Parse a complete commandline that is already tokenized in pluginname pluginconfig. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacekdb_1_1tools_a7a731fb15351e62222ae8763ca6aa876}\label{namespacekdb_1_1tools_a7a731fb15351e62222ae8763ca6aa876}} 
std\+::ostream \& \mbox{\hyperlink{namespacekdb_1_1tools_a7a731fb15351e62222ae8763ca6aa876}{operator$<$$<$}} (std\+::ostream \&os, \mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&spec)
\begin{DoxyCompactList}\small\item\em Output the name, refname and size of config. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{namespacekdb_1_1tools_a6f0740b75d32bfea4ef285e18b9a52f4}{operator==}} (\mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&self, \mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&other)
\begin{DoxyCompactList}\small\item\em Compare two pluginspec if their value is equal. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{namespacekdb_1_1tools_a3a09f4414aa2fe068879665d6285093e}{operator!=}} (\mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&self, \mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&other)
\begin{DoxyCompactList}\small\item\em Compare two pluginspec if their value is not equal. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
This namespace is for the libtool library. 

\begin{DoxyNote}{Note}
You have to link against libelektratools if you want to use functionality from it. Contrary to classes in namespace kdb it is not header-\/only.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{classkdb_1_1tools_1_1Backend}{Backend}} for an entry point 
\end{DoxySeeAlso}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{namespacekdb_1_1tools_a3a09f4414aa2fe068879665d6285093e}\label{namespacekdb_1_1tools_a3a09f4414aa2fe068879665d6285093e}} 
\index{kdb::tools@{kdb::tools}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!kdb::tools@{kdb::tools}}
\doxysubsubsection{\texorpdfstring{operator"!=()}{operator!=()}}
{\footnotesize\ttfamily bool kdb\+::tools\+::operator!= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&}]{self,  }\item[{\mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&}]{other }\end{DoxyParamCaption})}



Compare two pluginspec if their value is not equal. 

\begin{DoxyNote}{Note}
the content of get\+Config() will be only compared with keynames, not content! 
\end{DoxyNote}
\mbox{\Hypertarget{namespacekdb_1_1tools_a10b59213ee542e33c7ecc481d4476a79}\label{namespacekdb_1_1tools_a10b59213ee542e33c7ecc481d4476a79}} 
\index{kdb::tools@{kdb::tools}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!kdb::tools@{kdb::tools}}
\doxysubsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}}
{\footnotesize\ttfamily std\+::ostream \& kdb\+::tools\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{os,  }\item[{\mbox{\hyperlink{classkdb_1_1tools_1_1Backend}{Backend}} const \&}]{b }\end{DoxyParamCaption})}



Prints the current status. 


\begin{DoxyParams}{Parameters}
{\em os} & stream to print to \\
\hline
{\em b} & backend to get status from\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
ref to stream 
\end{DoxyReturn}
\mbox{\Hypertarget{namespacekdb_1_1tools_a6f0740b75d32bfea4ef285e18b9a52f4}\label{namespacekdb_1_1tools_a6f0740b75d32bfea4ef285e18b9a52f4}} 
\index{kdb::tools@{kdb::tools}!operator==@{operator==}}
\index{operator==@{operator==}!kdb::tools@{kdb::tools}}
\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}}
{\footnotesize\ttfamily bool kdb\+::tools\+::operator== (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&}]{self,  }\item[{\mbox{\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec}} const \&}]{other }\end{DoxyParamCaption})}



Compare two pluginspec if their value is equal. 

\begin{DoxyNote}{Note}
the content of get\+Config() will be only compared with keynames, not content! 
\end{DoxyNote}
\mbox{\Hypertarget{namespacekdb_1_1tools_ab7ffe14ed9cab32c07ddb55a8a65973a}\label{namespacekdb_1_1tools_ab7ffe14ed9cab32c07ddb55a8a65973a}} 
\index{kdb::tools@{kdb::tools}!parseArguments@{parseArguments}}
\index{parseArguments@{parseArguments}!kdb::tools@{kdb::tools}}
\doxysubsubsection{\texorpdfstring{parseArguments()}{parseArguments()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Iterator $>$ \\
Plugin\+Spec\+Vector kdb\+::tools\+::parse\+Arguments (\begin{DoxyParamCaption}\item[{Iterator}]{first,  }\item[{Iterator}]{last }\end{DoxyParamCaption})}



Parse a complete commandline that is already tokenized in pluginname pluginconfig. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Iterator} & forward iterator type\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em cmdline} & contains space separated plugins with optional plugin configurations\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a parsed Plugin\+Spec\+Vector 
\end{DoxyReturn}
\mbox{\Hypertarget{namespacekdb_1_1tools_a3c08f8fdabc7002ff497b247cba6bb21}\label{namespacekdb_1_1tools_a3c08f8fdabc7002ff497b247cba6bb21}} 
\index{kdb::tools@{kdb::tools}!parseArguments@{parseArguments}}
\index{parseArguments@{parseArguments}!kdb::tools@{kdb::tools}}
\doxysubsubsection{\texorpdfstring{parseArguments()}{parseArguments()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Plugin\+Spec\+Vector kdb\+::tools\+::parse\+Arguments (\begin{DoxyParamCaption}\item[{std\+::string const \&}]{cmdline }\end{DoxyParamCaption})}



Parse a complete commandline. 


\begin{DoxyParams}{Parameters}
{\em cmdline} & contains space separated plugins with optional plugin configurations\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
currently whitespaces are not allowed within pluginname or config, use iterator interface \mbox{\hyperlink{namespacekdb_1_1tools_a3c08f8fdabc7002ff497b247cba6bb21}{parse\+Arguments()}} if you need it.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{namespacekdb_1_1tools_a3c08f8fdabc7002ff497b247cba6bb21}{parse\+Arguments()}} 
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
a parsed Plugin\+Spec\+Vector 
\end{DoxyReturn}
\mbox{\Hypertarget{namespacekdb_1_1tools_ad4fdf9477ede38a219b02a7442965f6d}\label{namespacekdb_1_1tools_ad4fdf9477ede38a219b02a7442965f6d}} 
\index{kdb::tools@{kdb::tools}!parsePluginArguments@{parsePluginArguments}}
\index{parsePluginArguments@{parsePluginArguments}!kdb::tools@{kdb::tools}}
\doxysubsubsection{\texorpdfstring{parsePluginArguments()}{parsePluginArguments()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classkdb_1_1KeySet}{Key\+Set}} kdb\+::tools\+::parse\+Plugin\+Arguments (\begin{DoxyParamCaption}\item[{std\+::string const \&}]{plugin\+Arguments,  }\item[{std\+::string const \&}]{basepath }\end{DoxyParamCaption})}



Parse a string containing information to create a \mbox{\hyperlink{classkdb_1_1KeySet}{Key\+Set}}. 


\begin{DoxyParams}{Parameters}
{\em plugin\+Arguments} & comma (,) to separate key=value, contains no whitespaces\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
newly created keyset with the information found in the string 
\end{DoxyReturn}
