\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_a01fb5850c0fb6e20634b1ea63c6dc3e0}{get\+Full\+Name} () const
\item 
std\+::string \hyperlink{classkdb_1_1tools_1_1PluginSpec_a8792bc54b8e73490b1bad607de756d35}{get\+Ref\+Name} () const
\item 
bool \hyperlink{classkdb_1_1tools_1_1PluginSpec_ab54d0cca8bd39630f16bad71666d5865}{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_a0cfae078fe25b383590bd0a9f679068d}{get\+Name} () const
\item 
\hyperlink{classkdb_1_1KeySet}{Key\+Set} \hyperlink{classkdb_1_1tools_1_1PluginSpec_aa03318284c07843a97eb0fc0ef65ca2f}{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_a26c3e9943430571562ad466ac70ce4d6}{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}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_a0c327303367f2dbad5ad380dc22bdbee}\label{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{\texorpdfstring{Plugin\+Spec()}{PluginSpec()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily kdb\+::tools\+::\+Plugin\+Spec\+::\+Plugin\+Spec (\begin{DoxyParamCaption}\item[{std\+::string}]{plugin\+Name,  }\item[{\hyperlink{classkdb_1_1KeySet}{Key\+Set}}]{plugin\+Config = {\ttfamily \hyperlink{classkdb_1_1KeySet}{Key\+Set}~()} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



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}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_aefe910e50632b72556de8172de1a10c3}\label{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{\texorpdfstring{Plugin\+Spec()}{PluginSpec()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily kdb\+::tools\+::\+Plugin\+Spec\+::\+Plugin\+Spec (\begin{DoxyParamCaption}\item[{std\+::string}]{plugin\+Name,  }\item[{std\+::string}]{ref\+Name,  }\item[{\hyperlink{classkdb_1_1KeySet}{Key\+Set}}]{plugin\+Config = {\ttfamily \hyperlink{classkdb_1_1KeySet}{Key\+Set}~()} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



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}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_af9d9c23e7f93b953080be691bdb40f8a}\label{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{\texorpdfstring{Plugin\+Spec()}{PluginSpec()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily kdb\+::tools\+::\+Plugin\+Spec\+::\+Plugin\+Spec (\begin{DoxyParamCaption}\item[{std\+::string}]{plugin\+Name,  }\item[{size\+\_\+t}]{ref\+Number,  }\item[{\hyperlink{classkdb_1_1KeySet}{Key\+Set}}]{plugin\+Config = {\ttfamily \hyperlink{classkdb_1_1KeySet}{Key\+Set}~()} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



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}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_abd516f6012ddeb4d2b9aa8b3faf3bd06}\label{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{\texorpdfstring{append\+Config()}{appendConfig()}}
{\footnotesize\ttfamily void kdb\+::tools\+::\+Plugin\+Spec\+::append\+Config (\begin{DoxyParamCaption}\item[{\hyperlink{classkdb_1_1KeySet}{Key\+Set}}]{c }\end{DoxyParamCaption})}



Append to config. 


\begin{DoxyParams}{Parameters}
{\em c} & config to append \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_aa03318284c07843a97eb0fc0ef65ca2f}\label{classkdb_1_1tools_1_1PluginSpec_aa03318284c07843a97eb0fc0ef65ca2f}} 
\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{\texorpdfstring{get\+Config()}{getConfig()}}
{\footnotesize\ttfamily \hyperlink{classkdb_1_1KeySet}{Key\+Set} kdb\+::tools\+::\+Plugin\+Spec\+::get\+Config (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

\begin{DoxyReturn}{Returns}
the config 
\end{DoxyReturn}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_a01fb5850c0fb6e20634b1ea63c6dc3e0}\label{classkdb_1_1tools_1_1PluginSpec_a01fb5850c0fb6e20634b1ea63c6dc3e0}} 
\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{\texorpdfstring{get\+Full\+Name()}{getFullName()}}
{\footnotesize\ttfamily std\+::string kdb\+::tools\+::\+Plugin\+Spec\+::get\+Full\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

\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}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_a0cfae078fe25b383590bd0a9f679068d}\label{classkdb_1_1tools_1_1PluginSpec_a0cfae078fe25b383590bd0a9f679068d}} 
\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{\texorpdfstring{get\+Name()}{getName()}}
{\footnotesize\ttfamily std\+::string kdb\+::tools\+::\+Plugin\+Spec\+::get\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

\begin{DoxyReturn}{Returns}
the module name 
\end{DoxyReturn}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_a8792bc54b8e73490b1bad607de756d35}\label{classkdb_1_1tools_1_1PluginSpec_a8792bc54b8e73490b1bad607de756d35}} 
\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{\texorpdfstring{get\+Ref\+Name()}{getRefName()}}
{\footnotesize\ttfamily std\+::string kdb\+::tools\+::\+Plugin\+Spec\+::get\+Ref\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

\begin{DoxyReturn}{Returns}
the reference name 
\end{DoxyReturn}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_ab54d0cca8bd39630f16bad71666d5865}\label{classkdb_1_1tools_1_1PluginSpec_ab54d0cca8bd39630f16bad71666d5865}} 
\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{\texorpdfstring{is\+Ref\+Number()}{isRefNumber()}}
{\footnotesize\ttfamily bool kdb\+::tools\+::\+Plugin\+Spec\+::is\+Ref\+Number (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



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}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_a37e6cd12d1f059b64569b86f9a3464a1}\label{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{\texorpdfstring{set\+Config()}{setConfig()}}
{\footnotesize\ttfamily void kdb\+::tools\+::\+Plugin\+Spec\+::set\+Config (\begin{DoxyParamCaption}\item[{\hyperlink{classkdb_1_1KeySet}{Key\+Set}}]{c }\end{DoxyParamCaption})}



Set plugin config. 


\begin{DoxyParams}{Parameters}
{\em c} & new config to be used as plugin config \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_a633dfc64c008ac991f7983771310202e}\label{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{\texorpdfstring{set\+Full\+Name()}{setFullName()}}
{\footnotesize\ttfamily void kdb\+::tools\+::\+Plugin\+Spec\+::set\+Full\+Name (\begin{DoxyParamCaption}\item[{std\+::string const \&}]{n }\end{DoxyParamCaption})}



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}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_a9b3ade491bab63a6472f9885d2fee1e9}\label{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{\texorpdfstring{set\+Name()}{setName()}}
{\footnotesize\ttfamily void kdb\+::tools\+::\+Plugin\+Spec\+::set\+Name (\begin{DoxyParamCaption}\item[{std\+::string const \&}]{n }\end{DoxyParamCaption})}



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}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_a52b63e5cc6f15be122b6fdb83b3079ed}\label{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{\texorpdfstring{set\+Ref\+Name()}{setRefName()}}
{\footnotesize\ttfamily void kdb\+::tools\+::\+Plugin\+Spec\+::set\+Ref\+Name (\begin{DoxyParamCaption}\item[{std\+::string const \&}]{n }\end{DoxyParamCaption})}



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}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_a927d2ce32f321136f626c6489e47089e}\label{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{\texorpdfstring{set\+Ref\+Number()}{setRefNumber()}}
{\footnotesize\ttfamily void kdb\+::tools\+::\+Plugin\+Spec\+::set\+Ref\+Number (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{refnumber }\end{DoxyParamCaption})}



Set a number for automatic references during parsing. 


\begin{DoxyParams}{Parameters}
{\em refnumber} & the number to set \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classkdb_1_1tools_1_1PluginSpec_a26c3e9943430571562ad466ac70ce4d6}\label{classkdb_1_1tools_1_1PluginSpec_a26c3e9943430571562ad466ac70ce4d6}} 
\index{kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}!validate@{validate}}
\index{validate@{validate}!kdb\+::tools\+::\+Plugin\+Spec@{kdb\+::tools\+::\+Plugin\+Spec}}
\subsubsection{\texorpdfstring{validate()}{validate()}}
{\footnotesize\ttfamily void kdb\+::tools\+::\+Plugin\+Spec\+::validate (\begin{DoxyParamCaption}\item[{std\+::string const \&}]{n }\end{DoxyParamCaption}) const}



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}
