\section{Basic\-Plugin\-Manager$<$ T $>$ Class Template Reference}
\label{class_basic_plugin_manager}\index{BasicPluginManager@{BasicPluginManager}}
{\tt \#include $<$Basic\-Plugin\-Manager.h$>$}

Collaboration diagram for Basic\-Plugin\-Manager$<$ T $>$:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=99pt]{class_basic_plugin_manager__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item 
typedef std::list$<$ {\bf Basic\-Plugin\-Info} $\ast$ $>$ {\bf infos\_\-t}
\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf Basic\-Plugin\-Manager} (bool {\bf preload\-Deps}=false)
\item 
virtual {\bf $\sim$Basic\-Plugin\-Manager} ()
\begin{CompactList}\small\item\em Destruct the plugin manager. \item\end{CompactList}\item 
virtual void {\bf init} (T $\ast$plugin)
\begin{CompactList}\small\item\em Initialization function called when a plugin is first loaded. \item\end{CompactList}\item 
void {\bf destroy\-Plugin} (std::string plugin\-Name)
\begin{CompactList}\small\item\em Deallocate a specific plugin. \item\end{CompactList}\item 
void {\bf unload} ()
\begin{CompactList}\small\item\em Deallocate all plugins in the correct order. \item\end{CompactList}\item 
void {\bf close\-Libraries} ()
\begin{CompactList}\small\item\em Close all shared library handles. \item\end{CompactList}\item 
bool {\bf depends\-On} (std::string plugin1, std::string plugin2)
\begin{CompactList}\small\item\em If plugin1 has not yet been registered this function will return false;. \item\end{CompactList}\item 
T $\ast$ {\bf get} (const std::string plugin\-Name)
\begin{CompactList}\small\item\em Get a pointer to a named plugin. \item\end{CompactList}\item 
bool {\bf is\-Loaded} (std::string plugin\-Name)
\begin{CompactList}\small\item\em True if plugin with name plugin\-Name is loaded. \item\end{CompactList}\item 
const {\bf Basic\-Plugin\-Info} $\ast$ {\bf get\-Plugin\-Info} (const std::string plugin\-Name)
\begin{CompactList}\small\item\em A reference to the named plugins info structure. \item\end{CompactList}\item 
{\bf infos\_\-t} \& {\bf get\-Plugin\-Infos} ()
\item 
void {\bf load\-Libraries} (const std::string path)
\begin{CompactList}\small\item\em Loads all plugin libraries on a ':' separated path list. \item\end{CompactList}\item 
void {\bf load\-Library} (const std::string filename)
\begin{CompactList}\small\item\em Load a plugin library. \item\end{CompactList}\item 
void {\bf register\-Plugin} ({\bf Basic\-Plugin\-Info} $\ast$info, {\bf Basic\-Class\-Factory\-Base}$<$ T $>$ $\ast$factory)
\begin{CompactList}\small\item\em Called by {\bf Basic\-Plugin\-Proxy}{\rm (p.\,\pageref{class_basic_plugin_proxy})} to register itself with the manager. \item\end{CompactList}\item 
void {\bf set\-Plugin\-Exception} ({\bf Basic\-Exception} e)
\begin{CompactList}\small\item\em Used by statically allocated plugins to pass any exceptions back to the library loader. \item\end{CompactList}\end{CompactItemize}
\subsection*{Static Public Attributes}
\begin{CompactItemize}
\item 
const char {\bf lib\-Extension} [$\,$] = \char`\"{}.so\char`\"{}
\begin{CompactList}\small\item\em May need to ifdef this for windows dlls. \item\end{CompactList}\end{CompactItemize}
\subsection*{Protected Member Functions}
\begin{CompactItemize}
\item 
{\bf Basic\-Class\-Factory\-Base}$<$ T $>$ $\ast$ {\bf get\-Plugin\-Factory} (const std::string plugin\-Name)
\begin{CompactList}\small\item\em A reference to the named plugin's factory. \item\end{CompactList}\item 
void {\bf load\-Single\-Library\-Path} (const std::string path)
\begin{CompactList}\small\item\em Loads all libraries on a single path. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Types}
\begin{CompactItemize}
\item 
typedef std::map$<$ std::string, {\bf Basic\-Class\-Factory\-Base}$<$ T $>$ $\ast$ $>$ {\bf factories\_\-t}
\item 
typedef std::map$<$ std::string, {\bf Basic\-Plugin\-Info} $\ast$ $>$ {\bf info\-Map\_\-t}
\item 
typedef std::map$<$ std::string, T $\ast$ $>$ {\bf plugins\_\-t}
\item 
typedef std::map$<$ std::string, lt\_\-dlhandle $>$ {\bf library\-Handles\_\-t}
\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item 
{\bf factories\_\-t} {\bf factories}
\begin{CompactList}\small\item\em A map from plugin name to registered factory. \item\end{CompactList}\item 
{\bf info\-Map\_\-t} {\bf info\-Map}
\begin{CompactList}\small\item\em A map from plugin name to registered info. \item\end{CompactList}\item 
{\bf plugins\_\-t} {\bf plugins}
\begin{CompactList}\small\item\em A map from plugin name to plugin instance. \item\end{CompactList}\item 
{\bf library\-Handles\_\-t} {\bf library\-Handles}
\begin{CompactList}\small\item\em A map of loaded library handles. \item\end{CompactList}\item 
{\bf infos\_\-t} {\bf infos}
\begin{CompactList}\small\item\em A list of plugin info structures. \item\end{CompactList}\item 
{\bf Basic\-Exception} $\ast$ {\bf plugin\-Exception}
\begin{CompactList}\small\item\em Holds exceptions thrown by plugins on dlopen. \item\end{CompactList}\item 
bool {\bf preload\-Deps}
\begin{CompactList}\small\item\em If true dependencies will be loaded first. \item\end{CompactList}\end{CompactItemize}
\subsubsection*{template$<$class T$>$ class Basic\-Plugin\-Manager$<$ T $>$}



\subsection{Member Typedef Documentation}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!factories_t@{factories\_\-t}}
\index{factories_t@{factories\_\-t}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ typedef std::map$<$std::string, {\bf Basic\-Class\-Factory\-Base}$<$T$>$ $\ast$$>$ {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf factories\_\-t}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_y0}


\index{BasicPluginManager@{Basic\-Plugin\-Manager}!infoMap_t@{infoMap\_\-t}}
\index{infoMap_t@{infoMap\_\-t}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ typedef std::map$<$std::string, {\bf Basic\-Plugin\-Info} $\ast$$>$ {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf info\-Map\_\-t}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_y1}


\index{BasicPluginManager@{Basic\-Plugin\-Manager}!infos_t@{infos\_\-t}}
\index{infos_t@{infos\_\-t}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ typedef std::list$<${\bf Basic\-Plugin\-Info} $\ast$$>$ {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf infos\_\-t}}\label{class_basic_plugin_manager_w0}


\index{BasicPluginManager@{Basic\-Plugin\-Manager}!libraryHandles_t@{libraryHandles\_\-t}}
\index{libraryHandles_t@{libraryHandles\_\-t}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ typedef std::map$<$std::string, lt\_\-dlhandle$>$ {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf library\-Handles\_\-t}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_y3}


\index{BasicPluginManager@{Basic\-Plugin\-Manager}!plugins_t@{plugins\_\-t}}
\index{plugins_t@{plugins\_\-t}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ typedef std::map$<$std::string, T $\ast$$>$ {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf plugins\_\-t}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_y2}




\subsection{Constructor \& Destructor Documentation}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!BasicPluginManager@{BasicPluginManager}}
\index{BasicPluginManager@{BasicPluginManager}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf Basic\-Plugin\-Manager} (bool {\em preload\-Deps} = {\tt false})\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a0}


\index{BasicPluginManager@{Basic\-Plugin\-Manager}!~BasicPluginManager@{$\sim$BasicPluginManager}}
\index{~BasicPluginManager@{$\sim$BasicPluginManager}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ virtual {\bf Basic\-Plugin\-Manager}$<$ T $>$::$\sim${\bf Basic\-Plugin\-Manager} ()\hspace{0.3cm}{\tt  [inline, virtual]}}\label{class_basic_plugin_manager_a1}


Destruct the plugin manager. 

Deallocates all plugins and closes all plugin libraries. 

\subsection{Member Function Documentation}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!closeLibraries@{closeLibraries}}
\index{closeLibraries@{closeLibraries}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ void {\bf Basic\-Plugin\-Manager}$<$ T $>$::close\-Libraries ()\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a5}


Close all shared library handles. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!dependsOn@{dependsOn}}
\index{dependsOn@{dependsOn}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ bool {\bf Basic\-Plugin\-Manager}$<$ T $>$::depends\-On (std::string {\em plugin1}, std::string {\em plugin2})\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a6}


If plugin1 has not yet been registered this function will return false;. 

\begin{Desc}
\item[Returns:]True if plugin1 has plugin2 in its dependency list, false otherwise. \end{Desc}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!destroyPlugin@{destroyPlugin}}
\index{destroyPlugin@{destroyPlugin}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ void {\bf Basic\-Plugin\-Manager}$<$ T $>$::destroy\-Plugin (std::string {\em plugin\-Name})\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a3}


Deallocate a specific plugin. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!get@{get}}
\index{get@{get}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ T$\ast$ {\bf Basic\-Plugin\-Manager}$<$ T $>$::get (const std::string {\em plugin\-Name})\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a7}


Get a pointer to a named plugin. 

If an instance has not yet been allocated it will be created. If the plugin name is unknown a {\bf Basic\-Exception}{\rm (p.\,\pageref{class_basic_exception})} will be thrown.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em plugin\-Name}]The name of the plugin.\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]A pointer to the named plugin. \end{Desc}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!getPluginFactory@{getPluginFactory}}
\index{getPluginFactory@{getPluginFactory}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ {\bf Basic\-Class\-Factory\-Base}$<$T$>$$\ast$ {\bf Basic\-Plugin\-Manager}$<$ T $>$::get\-Plugin\-Factory (const std::string {\em plugin\-Name})\hspace{0.3cm}{\tt  [inline, protected]}}\label{class_basic_plugin_manager_b0}


A reference to the named plugin's factory. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!getPluginInfo@{getPluginInfo}}
\index{getPluginInfo@{getPluginInfo}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ const {\bf Basic\-Plugin\-Info}$\ast$ {\bf Basic\-Plugin\-Manager}$<$ T $>$::get\-Plugin\-Info (const std::string {\em plugin\-Name})\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a9}


A reference to the named plugins info structure. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!getPluginInfos@{getPluginInfos}}
\index{getPluginInfos@{getPluginInfos}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ {\bf infos\_\-t}\& {\bf Basic\-Plugin\-Manager}$<$ T $>$::get\-Plugin\-Infos ()\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a10}


\begin{Desc}
\item[Returns:]A list of registered plugin information structures. \end{Desc}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!init@{init}}
\index{init@{init}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ virtual void {\bf Basic\-Plugin\-Manager}$<$ T $>$::init (T $\ast$ {\em plugin})\hspace{0.3cm}{\tt  [inline, virtual]}}\label{class_basic_plugin_manager_a2}


Initialization function called when a plugin is first loaded. 

Child classes should over load this function for type specific plugin initialization.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em plugin}]The plugin to initialize. \end{description}
\end{Desc}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!isLoaded@{isLoaded}}
\index{isLoaded@{isLoaded}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ bool {\bf Basic\-Plugin\-Manager}$<$ T $>$::is\-Loaded (std::string {\em plugin\-Name})\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a8}


True if plugin with name plugin\-Name is loaded. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!loadLibraries@{loadLibraries}}
\index{loadLibraries@{loadLibraries}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ void {\bf Basic\-Plugin\-Manager}$<$ T $>$::load\-Libraries (const std::string {\em path})\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a11}


Loads all plugin libraries on a ':' separated path list. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em path}]The plugin library path list. \end{description}
\end{Desc}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!loadLibrary@{loadLibrary}}
\index{loadLibrary@{loadLibrary}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ void {\bf Basic\-Plugin\-Manager}$<$ T $>$::load\-Library (const std::string {\em filename})\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a12}


Load a plugin library. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em filename}]Path to plugin library. \end{description}
\end{Desc}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!loadSingleLibraryPath@{loadSingleLibraryPath}}
\index{loadSingleLibraryPath@{loadSingleLibraryPath}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ void {\bf Basic\-Plugin\-Manager}$<$ T $>$::load\-Single\-Library\-Path (const std::string {\em path})\hspace{0.3cm}{\tt  [inline, protected]}}\label{class_basic_plugin_manager_b1}


Loads all libraries on a single path. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em path}]A single path. \end{description}
\end{Desc}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!registerPlugin@{registerPlugin}}
\index{registerPlugin@{registerPlugin}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ void {\bf Basic\-Plugin\-Manager}$<$ T $>$::register\-Plugin ({\bf Basic\-Plugin\-Info} $\ast$ {\em info}, {\bf Basic\-Class\-Factory\-Base}$<$ T $>$ $\ast$ {\em factory})\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a13}


Called by {\bf Basic\-Plugin\-Proxy}{\rm (p.\,\pageref{class_basic_plugin_proxy})} to register itself with the manager. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em info}]A pointer to a new plugin info structure. \item[{\em factory}]A pointer to a new plugin class factory. \end{description}
\end{Desc}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!setPluginException@{setPluginException}}
\index{setPluginException@{setPluginException}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ void {\bf Basic\-Plugin\-Manager}$<$ T $>$::set\-Plugin\-Exception ({\bf Basic\-Exception} {\em e})\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a14}


Used by statically allocated plugins to pass any exceptions back to the library loader. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!unload@{unload}}
\index{unload@{unload}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ void {\bf Basic\-Plugin\-Manager}$<$ T $>$::unload ()\hspace{0.3cm}{\tt  [inline]}}\label{class_basic_plugin_manager_a4}


Deallocate all plugins in the correct order. 



\subsection{Member Data Documentation}
\index{BasicPluginManager@{Basic\-Plugin\-Manager}!factories@{factories}}
\index{factories@{factories}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ {\bf factories\_\-t} {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf factories}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_r0}


A map from plugin name to registered factory. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!infoMap@{infoMap}}
\index{infoMap@{infoMap}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ {\bf info\-Map\_\-t} {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf info\-Map}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_r1}


A map from plugin name to registered info. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!infos@{infos}}
\index{infos@{infos}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ {\bf infos\_\-t} {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf infos}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_r4}


A list of plugin info structures. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!libExtension@{libExtension}}
\index{libExtension@{libExtension}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ const char {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf lib\-Extension} = \char`\"{}.so\char`\"{}\hspace{0.3cm}{\tt  [static]}}\label{class_basic_plugin_manager_s0}


May need to ifdef this for windows dlls. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!libraryHandles@{libraryHandles}}
\index{libraryHandles@{libraryHandles}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ {\bf library\-Handles\_\-t} {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf library\-Handles}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_r3}


A map of loaded library handles. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!pluginException@{pluginException}}
\index{pluginException@{pluginException}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ {\bf Basic\-Exception}$\ast$ {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf plugin\-Exception}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_r5}


Holds exceptions thrown by plugins on dlopen. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!plugins@{plugins}}
\index{plugins@{plugins}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ {\bf plugins\_\-t} {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf plugins}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_r2}


A map from plugin name to plugin instance. 

\index{BasicPluginManager@{Basic\-Plugin\-Manager}!preloadDeps@{preloadDeps}}
\index{preloadDeps@{preloadDeps}!BasicPluginManager@{Basic\-Plugin\-Manager}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ bool {\bf Basic\-Plugin\-Manager}$<$ T $>$::{\bf preload\-Deps}\hspace{0.3cm}{\tt  [private]}}\label{class_basic_plugin_manager_r6}


If true dependencies will be loaded first. 



The documentation for this class was generated from the following file:\begin{CompactItemize}
\item 
{\bf Basic\-Plugin\-Manager.h}\end{CompactItemize}
