\hypertarget{classkdb_1_1tools_1_1ModulesPluginDatabase}{\section{kdb\+:\+:tools\+:\+:Modules\+Plugin\+Database Class Reference}
\label{classkdb_1_1tools_1_1ModulesPluginDatabase}\index{kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}}
}


A plugin database that works with installed modules.  




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



Inheritance diagram for kdb\+:\+:tools\+:\+:Modules\+Plugin\+Database\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=244pt]{classkdb_1_1tools_1_1ModulesPluginDatabase__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for kdb\+:\+:tools\+:\+:Modules\+Plugin\+Database\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=218pt]{classkdb_1_1tools_1_1ModulesPluginDatabase__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
std\+::vector$<$ std\+::string $>$ \hyperlink{classkdb_1_1tools_1_1ModulesPluginDatabase_a0aa3ca734a18da8f3818e0278697eaef}{list\+All\+Plugins} () const 
\begin{DoxyCompactList}\small\item\em list all plugins \end{DoxyCompactList}\item 
std\+::string \hyperlink{classkdb_1_1tools_1_1ModulesPluginDatabase_a3d06a4b33e4bcc879dd6f562a8876390}{lookup\+Info} (\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec} const \&spec, std\+::string const \&which) const 
\begin{DoxyCompactList}\small\item\em lookup contract clauses or dynamic information \end{DoxyCompactList}\item 
func\+\_\+t \hyperlink{classkdb_1_1tools_1_1ModulesPluginDatabase_aa126810a0a5522cc410af6b5f77edf7a}{get\+Symbol} (\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec} const \&whichplugin, std\+::string const \&which) const 
\begin{DoxyCompactList}\small\item\em get exported plugin symbol \end{DoxyCompactList}\item 
\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec} \hyperlink{classkdb_1_1tools_1_1ModulesPluginDatabase_a7a7ccedd922ce214c61495e7a3ec26b9}{lookup\+Metadata} (std\+::string const \&which) const 
\begin{DoxyCompactList}\small\item\em lookup which plugin handles meta data \end{DoxyCompactList}\item 
\hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec} \hyperlink{classkdb_1_1tools_1_1ModulesPluginDatabase_a24007d69527e5139c2dbb2004bf7a8d0}{lookup\+Provides} (std\+::string const \&\hyperlink{classkdb_1_1tools_1_1PluginDatabase_afc91ff760616ee83c6afb70e5a2f0601a73ff10d6a07213c277db4326b3df6c4b}{provides}) const 
\begin{DoxyCompactList}\small\item\em lookup which plugin is a provider for that plugin \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
A plugin database that works with installed modules. 

\subsection{Member Function Documentation}
\hypertarget{classkdb_1_1tools_1_1ModulesPluginDatabase_aa126810a0a5522cc410af6b5f77edf7a}{\index{kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}!get\+Symbol@{get\+Symbol}}
\index{get\+Symbol@{get\+Symbol}!kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}}
\subsubsection[{get\+Symbol}]{\setlength{\rightskip}{0pt plus 5cm}Plugin\+Database\+::func\+\_\+t kdb\+::tools\+::\+Modules\+Plugin\+Database\+::get\+Symbol (
\begin{DoxyParamCaption}
\item[{{\bf Plugin\+Spec} const \&}]{whichplugin, }
\item[{std\+::string const \&}]{which}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classkdb_1_1tools_1_1ModulesPluginDatabase_aa126810a0a5522cc410af6b5f77edf7a}


get exported plugin symbol 


\begin{DoxyParams}{Parameters}
{\em whichplugin} & from which plugin? \\
\hline
{\em which} & which symbol would you like to look up?\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the function pointer to the exported symbol or N\+U\+L\+L if the symbol was not found 
\end{DoxyReturn}


Implements \hyperlink{classkdb_1_1tools_1_1PluginDatabase_a87b5ef6ee66ce1ad46cc590a2b60b9fa}{kdb\+::tools\+::\+Plugin\+Database}.



Reimplemented in \hyperlink{classkdb_1_1tools_1_1MockPluginDatabase_acd897bc945b2b57620c2bf1860be515d}{kdb\+::tools\+::\+Mock\+Plugin\+Database}.

\hypertarget{classkdb_1_1tools_1_1ModulesPluginDatabase_a0aa3ca734a18da8f3818e0278697eaef}{\index{kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}!list\+All\+Plugins@{list\+All\+Plugins}}
\index{list\+All\+Plugins@{list\+All\+Plugins}!kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}}
\subsubsection[{list\+All\+Plugins}]{\setlength{\rightskip}{0pt plus 5cm}std\+::vector$<$ std\+::string $>$ kdb\+::tools\+::\+Modules\+Plugin\+Database\+::list\+All\+Plugins (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classkdb_1_1tools_1_1ModulesPluginDatabase_a0aa3ca734a18da8f3818e0278697eaef}


list all plugins 

If Elektra is compiled with plugins, it will search for shared libraries. In any case, if no shared libraries were found it will fallback to an internal list (plugins that were compiled together with Elektra).

\begin{DoxyReturn}{Returns}
a list of all available plugins 
\end{DoxyReturn}


Implements \hyperlink{classkdb_1_1tools_1_1PluginDatabase_adc1f43ccefdd7fc15a57db7571420642}{kdb\+::tools\+::\+Plugin\+Database}.



Reimplemented in \hyperlink{classkdb_1_1tools_1_1MockPluginDatabase_afb3aef79c6e8447f2555dae303ce1893}{kdb\+::tools\+::\+Mock\+Plugin\+Database}.

\hypertarget{classkdb_1_1tools_1_1ModulesPluginDatabase_a3d06a4b33e4bcc879dd6f562a8876390}{\index{kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}!lookup\+Info@{lookup\+Info}}
\index{lookup\+Info@{lookup\+Info}!kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}}
\subsubsection[{lookup\+Info}]{\setlength{\rightskip}{0pt plus 5cm}std\+::string kdb\+::tools\+::\+Modules\+Plugin\+Database\+::lookup\+Info (
\begin{DoxyParamCaption}
\item[{{\bf Plugin\+Spec} const \&}]{whichplugin, }
\item[{std\+::string const \&}]{which}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classkdb_1_1tools_1_1ModulesPluginDatabase_a3d06a4b33e4bcc879dd6f562a8876390}


lookup contract clauses or dynamic information 


\begin{DoxyParams}{Parameters}
{\em whichplugin} & about which plugin? \\
\hline
{\em which} & about which clause in the contract?\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the clause of the contract 
\end{DoxyReturn}


Implements \hyperlink{classkdb_1_1tools_1_1PluginDatabase_ac0af2ec31a98f4176c19eaf34977abbe}{kdb\+::tools\+::\+Plugin\+Database}.



Reimplemented in \hyperlink{classkdb_1_1tools_1_1MockPluginDatabase_af1e8fa2f1ff8a1c5ac7005dd65101e93}{kdb\+::tools\+::\+Mock\+Plugin\+Database}.

\hypertarget{classkdb_1_1tools_1_1ModulesPluginDatabase_a7a7ccedd922ce214c61495e7a3ec26b9}{\index{kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}!lookup\+Metadata@{lookup\+Metadata}}
\index{lookup\+Metadata@{lookup\+Metadata}!kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}}
\subsubsection[{lookup\+Metadata}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Plugin\+Spec} kdb\+::tools\+::\+Modules\+Plugin\+Database\+::lookup\+Metadata (
\begin{DoxyParamCaption}
\item[{std\+::string const \&}]{which}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classkdb_1_1tools_1_1ModulesPluginDatabase_a7a7ccedd922ce214c61495e7a3ec26b9}


lookup which plugin handles meta data 


\begin{DoxyParams}{Parameters}
{\em which} & the meta data of interest\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the best suited plugin specification which provides it 
\end{DoxyReturn}


Implements \hyperlink{classkdb_1_1tools_1_1PluginDatabase_a03a416f66d6525f46929e5a68d9db3f7}{kdb\+::tools\+::\+Plugin\+Database}.

\hypertarget{classkdb_1_1tools_1_1ModulesPluginDatabase_a24007d69527e5139c2dbb2004bf7a8d0}{\index{kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}!lookup\+Provides@{lookup\+Provides}}
\index{lookup\+Provides@{lookup\+Provides}!kdb\+::tools\+::\+Modules\+Plugin\+Database@{kdb\+::tools\+::\+Modules\+Plugin\+Database}}
\subsubsection[{lookup\+Provides}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Plugin\+Spec} kdb\+::tools\+::\+Modules\+Plugin\+Database\+::lookup\+Provides (
\begin{DoxyParamCaption}
\item[{std\+::string const \&}]{provides}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classkdb_1_1tools_1_1ModulesPluginDatabase_a24007d69527e5139c2dbb2004bf7a8d0}


lookup which plugin is a provider for that plugin 

\begin{DoxyNote}{Note}
will return a \hyperlink{classkdb_1_1tools_1_1PluginSpec}{Plugin\+Spec} with get\+Name() == provides if the string provides actually is a plugin name.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em provides} & is the provider to find\\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em No\+Plugin} & if no plugin that provides the functionality could be found\\
\hline
\end{DoxyExceptions}
\begin{DoxyReturn}{Returns}
the plugin itself or the best suited plugin specification which provides it 
\end{DoxyReturn}


Implements \hyperlink{classkdb_1_1tools_1_1PluginDatabase_a43abe56a024218ecee48526ced699f05}{kdb\+::tools\+::\+Plugin\+Database}.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{plugindatabase_8hpp}{plugindatabase.\+hpp}\item 
\hyperlink{plugindatabase_8cpp}{plugindatabase.\+cpp}\end{DoxyCompactItemize}
