\hypertarget{classkdb_1_1tools_1_1PluginSpec}{\section{kdb\+:\+:tools\+:\+:Plugin\+Spec Class Reference}
\label{classkdb_1_1tools_1_1PluginSpec}\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
}


Specifies a plugin by its name and configuration.  




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classkdb_1_1tools_1_1PluginSpec_a0c327303367f2dbad5ad380dc22bdbee}{Plugin\+Spec} (std\+::string plugin\+Name, \hyperlink{classkdb_1_1KeySet}{Key\+Set} plugin\+Config=\hyperlink{classkdb_1_1KeySet}{Key\+Set}())
\begin{DoxyCompactList}\small\item\em Construct a plugin spec with a given module name. \end{DoxyCompactList}\item 
\hyperlink{classkdb_1_1tools_1_1PluginSpec_aefe910e50632b72556de8172de1a10c3}{Plugin\+Spec} (std\+::string plugin\+Name, std\+::string ref\+Name, \hyperlink{classkdb_1_1KeySet}{Key\+Set} plugin\+Config=\hyperlink{classkdb_1_1KeySet}{Key\+Set}())
\begin{DoxyCompactList}\small\item\em Construct a plugin spec with a given module and ref name. \end{DoxyCompactList}\item 
\hyperlink{classkdb_1_1tools_1_1PluginSpec_af9d9c23e7f93b953080be691bdb40f8a}{Plugin\+Spec} (std\+::string plugin\+Name, size\+\_\+t ref\+Number, \hyperlink{classkdb_1_1KeySet}{Key\+Set} plugin\+Config=\hyperlink{classkdb_1_1KeySet}{Key\+Set}())
\begin{DoxyCompactList}\small\item\em Construct a plugin spec with a given module name and ref number. \end{DoxyCompactList}\item 
std\+::string \hyperlink{classkdb_1_1tools_1_1PluginSpec_a10099a678d0f3069635ece62b9098ca3}{get\+Full\+Name} () const 
\item 
std\+::string \hyperlink{classkdb_1_1tools_1_1PluginSpec_a5fa655fe40f69509ba914c8f338059ee}{get\+Ref\+Name} () const 
\item 
bool \hyperlink{classkdb_1_1tools_1_1PluginSpec_a32e1aa3c056a94e93fb71cdb6ff221d2}{is\+Ref\+Number} () const 
\begin{DoxyCompactList}\small\item\em Checks if reference name contains only numbers. \end{DoxyCompactList}\item 
std\+::string \hyperlink{classkdb_1_1tools_1_1PluginSpec_a1273894156fe2f41c4f8ac31a64324a6}{get\+Name} () const 
\item 
\hyperlink{classkdb_1_1KeySet}{Key\+Set} \hyperlink{classkdb_1_1tools_1_1PluginSpec_aad0bbef7dbdc246c5f29a9103350a29e}{get\+Config} () const 
\item 
void \hyperlink{classkdb_1_1tools_1_1PluginSpec_a633dfc64c008ac991f7983771310202e}{set\+Full\+Name} (std\+::string const \&name)
\begin{DoxyCompactList}\small\item\em Set the full name with \# or only the name. \end{DoxyCompactList}\item 
void \hyperlink{classkdb_1_1tools_1_1PluginSpec_a52b63e5cc6f15be122b6fdb83b3079ed}{set\+Ref\+Name} (std\+::string const \&name)
\begin{DoxyCompactList}\small\item\em Set the reference name of the plugin. \end{DoxyCompactList}\item 
void \hyperlink{classkdb_1_1tools_1_1PluginSpec_a927d2ce32f321136f626c6489e47089e}{set\+Ref\+Number} (size\+\_\+t number)
\begin{DoxyCompactList}\small\item\em Set a number for automatic references during parsing. \end{DoxyCompactList}\item 
void \hyperlink{classkdb_1_1tools_1_1PluginSpec_a9b3ade491bab63a6472f9885d2fee1e9}{set\+Name} (std\+::string const \&name)
\begin{DoxyCompactList}\small\item\em Set the module name of the plugin. \end{DoxyCompactList}\item 
void \hyperlink{classkdb_1_1tools_1_1PluginSpec_abd516f6012ddeb4d2b9aa8b3faf3bd06}{append\+Config} (\hyperlink{classkdb_1_1KeySet}{Key\+Set} config)
\begin{DoxyCompactList}\small\item\em Append to config. \end{DoxyCompactList}\item 
void \hyperlink{classkdb_1_1tools_1_1PluginSpec_a37e6cd12d1f059b64569b86f9a3464a1}{set\+Config} (\hyperlink{classkdb_1_1KeySet}{Key\+Set} config)
\begin{DoxyCompactList}\small\item\em Set plugin config. \end{DoxyCompactList}\item 
void \hyperlink{classkdb_1_1tools_1_1PluginSpec_a0d53b0e4ede4feae82ce74f3814b8165}{validate} (std\+::string const \&str) const 
\begin{DoxyCompactList}\small\item\em Check if str starts with a-\/z and then only has chars a-\/z, 0-\/9 or underscore (\+\_\+) \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Specifies a plugin by its name and configuration. 

\begin{DoxyInvariant}{Invariant}
name is valid (nonempty, starts with a-\/z, then a-\/z\+\_\+0-\/9) 

refname is valid (same as above or a size\+\_\+t number) 
\end{DoxyInvariant}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a0c327303367f2dbad5ad380dc22bdbee}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!Plugin\+Spec@{Plugin\+Spec}}
\index{Plugin\+Spec@{Plugin\+Spec}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{Plugin\+Spec}]{\setlength{\rightskip}{0pt plus 5cm}kdb\+::tools\+::\+Plugin\+Spec\+::\+Plugin\+Spec (
\begin{DoxyParamCaption}
\item[{std\+::string}]{plugin\+Name, }
\item[{{\bf Key\+Set}}]{plugin\+Config = {\ttfamily {\bf Key\+Set}~()}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [explicit]}}}\label{classkdb_1_1tools_1_1PluginSpec_a0c327303367f2dbad5ad380dc22bdbee}


Construct a plugin spec with a given module name. 


\begin{DoxyParams}{Parameters}
{\em plugin\+Name} & the fullname (modulename \# refname) \\
\hline
{\em plugin\+Config} & the plugins config\\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em Bad\+Plugin\+Name} & if name not a-\/z\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\hyperlink{classkdb_1_1tools_1_1PluginSpec_a633dfc64c008ac991f7983771310202e}{set\+Full\+Name()} 
\end{DoxySeeAlso}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_aefe910e50632b72556de8172de1a10c3}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!Plugin\+Spec@{Plugin\+Spec}}
\index{Plugin\+Spec@{Plugin\+Spec}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{Plugin\+Spec}]{\setlength{\rightskip}{0pt plus 5cm}kdb\+::tools\+::\+Plugin\+Spec\+::\+Plugin\+Spec (
\begin{DoxyParamCaption}
\item[{std\+::string}]{plugin\+Name, }
\item[{std\+::string}]{ref\+Name, }
\item[{{\bf Key\+Set}}]{plugin\+Config = {\ttfamily {\bf Key\+Set}~()}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [explicit]}}}\label{classkdb_1_1tools_1_1PluginSpec_aefe910e50632b72556de8172de1a10c3}


Construct a plugin spec with a given module and ref name. 


\begin{DoxyParams}{Parameters}
{\em plugin\+Name} & the module this plugin is instantiated from \\
\hline
{\em ref\+Name} & for uniqueness for more plugins from one module \\
\hline
{\em plugin\+Config} & the plugins config\\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em Bad\+Plugin\+Name} & if name not a-\/z\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\hyperlink{classkdb_1_1tools_1_1PluginSpec_a9b3ade491bab63a6472f9885d2fee1e9}{set\+Name()} 

\hyperlink{classkdb_1_1tools_1_1PluginSpec_a52b63e5cc6f15be122b6fdb83b3079ed}{set\+Ref\+Name()} 
\end{DoxySeeAlso}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_af9d9c23e7f93b953080be691bdb40f8a}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!Plugin\+Spec@{Plugin\+Spec}}
\index{Plugin\+Spec@{Plugin\+Spec}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{Plugin\+Spec}]{\setlength{\rightskip}{0pt plus 5cm}kdb\+::tools\+::\+Plugin\+Spec\+::\+Plugin\+Spec (
\begin{DoxyParamCaption}
\item[{std\+::string}]{plugin\+Name, }
\item[{size\+\_\+t}]{ref\+Number, }
\item[{{\bf Key\+Set}}]{plugin\+Config = {\ttfamily {\bf Key\+Set}~()}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [explicit]}}}\label{classkdb_1_1tools_1_1PluginSpec_af9d9c23e7f93b953080be691bdb40f8a}


Construct a plugin spec with a given module name and ref number. 


\begin{DoxyParams}{Parameters}
{\em plugin\+Name} & the module this plugin is instantiated from \\
\hline
{\em ref\+Number} & for uniqueness for more plugins from one module \\
\hline
{\em plugin\+Config} & the plugins config\\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em Bad\+Plugin\+Name} & if name not a-\/z\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\hyperlink{classkdb_1_1tools_1_1PluginSpec_a9b3ade491bab63a6472f9885d2fee1e9}{set\+Name()} 

\hyperlink{classkdb_1_1tools_1_1PluginSpec_a52b63e5cc6f15be122b6fdb83b3079ed}{set\+Ref\+Name()} 
\end{DoxySeeAlso}


\subsection{Member Function Documentation}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_abd516f6012ddeb4d2b9aa8b3faf3bd06}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!append\+Config@{append\+Config}}
\index{append\+Config@{append\+Config}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{append\+Config}]{\setlength{\rightskip}{0pt plus 5cm}void kdb\+::tools\+::\+Plugin\+Spec\+::append\+Config (
\begin{DoxyParamCaption}
\item[{{\bf Key\+Set}}]{c}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1PluginSpec_abd516f6012ddeb4d2b9aa8b3faf3bd06}


Append to config. 


\begin{DoxyParams}{Parameters}
{\em c} & config to append \\
\hline
\end{DoxyParams}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_aad0bbef7dbdc246c5f29a9103350a29e}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!get\+Config@{get\+Config}}
\index{get\+Config@{get\+Config}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{get\+Config}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Key\+Set} kdb\+::tools\+::\+Plugin\+Spec\+::get\+Config (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{classkdb_1_1tools_1_1PluginSpec_aad0bbef7dbdc246c5f29a9103350a29e}
\begin{DoxyReturn}{Returns}
the config 
\end{DoxyReturn}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a10099a678d0f3069635ece62b9098ca3}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!get\+Full\+Name@{get\+Full\+Name}}
\index{get\+Full\+Name@{get\+Full\+Name}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{get\+Full\+Name}]{\setlength{\rightskip}{0pt plus 5cm}std\+::string kdb\+::tools\+::\+Plugin\+Spec\+::get\+Full\+Name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{classkdb_1_1tools_1_1PluginSpec_a10099a678d0f3069635ece62b9098ca3}
\begin{DoxyNote}{Note}
if no reference name is given its equal to the module name
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
the module name, then \#, and then the reference name 
\end{DoxyReturn}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a1273894156fe2f41c4f8ac31a64324a6}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!get\+Name@{get\+Name}}
\index{get\+Name@{get\+Name}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{get\+Name}]{\setlength{\rightskip}{0pt plus 5cm}std\+::string kdb\+::tools\+::\+Plugin\+Spec\+::get\+Name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{classkdb_1_1tools_1_1PluginSpec_a1273894156fe2f41c4f8ac31a64324a6}
\begin{DoxyReturn}{Returns}
the module name 
\end{DoxyReturn}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a5fa655fe40f69509ba914c8f338059ee}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!get\+Ref\+Name@{get\+Ref\+Name}}
\index{get\+Ref\+Name@{get\+Ref\+Name}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{get\+Ref\+Name}]{\setlength{\rightskip}{0pt plus 5cm}std\+::string kdb\+::tools\+::\+Plugin\+Spec\+::get\+Ref\+Name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{classkdb_1_1tools_1_1PluginSpec_a5fa655fe40f69509ba914c8f338059ee}
\begin{DoxyReturn}{Returns}
the reference name 
\end{DoxyReturn}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a32e1aa3c056a94e93fb71cdb6ff221d2}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!is\+Ref\+Number@{is\+Ref\+Number}}
\index{is\+Ref\+Number@{is\+Ref\+Number}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{is\+Ref\+Number}]{\setlength{\rightskip}{0pt plus 5cm}bool kdb\+::tools\+::\+Plugin\+Spec\+::is\+Ref\+Number (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{classkdb_1_1tools_1_1PluginSpec_a32e1aa3c056a94e93fb71cdb6ff221d2}


Checks if reference name contains only numbers. 


\begin{DoxyRetVals}{Return values}
{\em true} & if only numbers \\
\hline
{\em true} & if a refname was given \\
\hline
\end{DoxyRetVals}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a37e6cd12d1f059b64569b86f9a3464a1}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!set\+Config@{set\+Config}}
\index{set\+Config@{set\+Config}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{set\+Config}]{\setlength{\rightskip}{0pt plus 5cm}void kdb\+::tools\+::\+Plugin\+Spec\+::set\+Config (
\begin{DoxyParamCaption}
\item[{{\bf Key\+Set}}]{c}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1PluginSpec_a37e6cd12d1f059b64569b86f9a3464a1}


Set plugin config. 


\begin{DoxyParams}{Parameters}
{\em c} & new config to be used as plugin config \\
\hline
\end{DoxyParams}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a633dfc64c008ac991f7983771310202e}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!set\+Full\+Name@{set\+Full\+Name}}
\index{set\+Full\+Name@{set\+Full\+Name}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{set\+Full\+Name}]{\setlength{\rightskip}{0pt plus 5cm}void kdb\+::tools\+::\+Plugin\+Spec\+::set\+Full\+Name (
\begin{DoxyParamCaption}
\item[{std\+::string const \&}]{n}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1PluginSpec_a633dfc64c008ac991f7983771310202e}


Set the full name with \# or only the name. 


\begin{DoxyExceptions}{Exceptions}
{\em Bad\+Plugin\+Name} & if name not a-\/z (no change then)\\
\hline
\end{DoxyExceptions}

\begin{DoxyParams}{Parameters}
{\em n} & the string to set \\
\hline
\end{DoxyParams}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a9b3ade491bab63a6472f9885d2fee1e9}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!set\+Name@{set\+Name}}
\index{set\+Name@{set\+Name}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{set\+Name}]{\setlength{\rightskip}{0pt plus 5cm}void kdb\+::tools\+::\+Plugin\+Spec\+::set\+Name (
\begin{DoxyParamCaption}
\item[{std\+::string const \&}]{n}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1PluginSpec_a9b3ade491bab63a6472f9885d2fee1e9}


Set the module name of the plugin. 


\begin{DoxyExceptions}{Exceptions}
{\em Bad\+Plugin\+Name} & if name not a-\/z (no change then)\\
\hline
\end{DoxyExceptions}

\begin{DoxyParams}{Parameters}
{\em n} & the string to set \\
\hline
\end{DoxyParams}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a52b63e5cc6f15be122b6fdb83b3079ed}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!set\+Ref\+Name@{set\+Ref\+Name}}
\index{set\+Ref\+Name@{set\+Ref\+Name}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{set\+Ref\+Name}]{\setlength{\rightskip}{0pt plus 5cm}void kdb\+::tools\+::\+Plugin\+Spec\+::set\+Ref\+Name (
\begin{DoxyParamCaption}
\item[{std\+::string const \&}]{n}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1PluginSpec_a52b63e5cc6f15be122b6fdb83b3079ed}


Set the reference name of the plugin. 


\begin{DoxyExceptions}{Exceptions}
{\em Bad\+Plugin\+Name} & if name not a-\/z (no change then)\\
\hline
\end{DoxyExceptions}
Makes different plugins based from the same module unique.


\begin{DoxyParams}{Parameters}
{\em n} & the string to set \\
\hline
\end{DoxyParams}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a927d2ce32f321136f626c6489e47089e}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!set\+Ref\+Number@{set\+Ref\+Number}}
\index{set\+Ref\+Number@{set\+Ref\+Number}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{set\+Ref\+Number}]{\setlength{\rightskip}{0pt plus 5cm}void kdb\+::tools\+::\+Plugin\+Spec\+::set\+Ref\+Number (
\begin{DoxyParamCaption}
\item[{size\+\_\+t}]{refnumber}
\end{DoxyParamCaption}
)}}\label{classkdb_1_1tools_1_1PluginSpec_a927d2ce32f321136f626c6489e47089e}


Set a number for automatic references during parsing. 


\begin{DoxyParams}{Parameters}
{\em refnumber} & the number to set \\
\hline
\end{DoxyParams}
\hypertarget{classkdb_1_1tools_1_1PluginSpec_a0d53b0e4ede4feae82ce74f3814b8165}{\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!validate@{validate}}
\index{validate@{validate}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection[{validate}]{\setlength{\rightskip}{0pt plus 5cm}void kdb\+::tools\+::\+Plugin\+Spec\+::validate (
\begin{DoxyParamCaption}
\item[{std\+::string const \&}]{n}
\end{DoxyParamCaption}
) const}}\label{classkdb_1_1tools_1_1PluginSpec_a0d53b0e4ede4feae82ce74f3814b8165}


Check if str starts with a-\/z and then only has chars a-\/z, 0-\/9 or underscore (\+\_\+) 


\begin{DoxyParams}{Parameters}
{\em n} & the string to check \\
\hline
\end{DoxyParams}


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