\hypertarget{classModuleManager}{
\section{ModuleManager Class Reference}
\label{classModuleManager}\index{ModuleManager@{ModuleManager}}
}
Inheritance diagram for ModuleManager:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classModuleManager}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classModuleManager_1_1Process}{Process}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classModuleManager_a279a5a04c99c3ddafe893b7f413cbf24}{ModuleManager} (\hyperlink{classEventLoop}{EventLoop} \&eventloop, \hyperlink{classRtrmgr}{Rtrmgr} \&rtrmgr, bool do\_\-restart, bool verbose, const string \&xorp\_\-root\_\-dir, const string \&xorp\_\-module\_\-dir)
\begin{DoxyCompactList}\small\item\em Constructor. \item\end{DoxyCompactList}\item 
\hypertarget{classModuleManager_a4f7e83d51dcbc461d2514f44d21aacb4}{
virtual \hyperlink{classModuleManager_a4f7e83d51dcbc461d2514f44d21aacb4}{$\sim$ModuleManager} ()}
\label{classModuleManager_a4f7e83d51dcbc461d2514f44d21aacb4}

\begin{DoxyCompactList}\small\item\em The default destructor. \item\end{DoxyCompactList}\item 
bool \hyperlink{classModuleManager_a08f0ff21437b66a91609d01418f198c8}{new\_\-module} (const string \&module\_\-name, const string \&path, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Create a new module. \item\end{DoxyCompactList}\item 
int \hyperlink{classModuleManager_aa0ec75a25d4cc3a23b6825367494a0f0}{start\_\-module} (const string \&module\_\-name, bool do\_\-exec, bool is\_\-verification, XorpCallback1$<$ void, bool $>$::RefPtr cb)
\begin{DoxyCompactList}\small\item\em Start a module. \item\end{DoxyCompactList}\item 
int \hyperlink{classModuleManager_a7dabd1592904fb78d904ed0fc21b83b2}{kill\_\-module} (const string \&module\_\-name, XorpCallback0$<$ void $>$::RefPtr cb)
\begin{DoxyCompactList}\small\item\em Kill a module. \item\end{DoxyCompactList}\item 
bool \hyperlink{classModuleManager_adb8525a2636a1985a95cd99d2797a0bf}{module\_\-is\_\-running} (const string \&module\_\-name) const 
\begin{DoxyCompactList}\small\item\em Test whether a module is running. \item\end{DoxyCompactList}\item 
bool \hyperlink{classModuleManager_a52af00e29448da5cf657d3e8b2095419}{module\_\-has\_\-started} (const string \&module\_\-name) const 
\begin{DoxyCompactList}\small\item\em Test whether a module has been started. \item\end{DoxyCompactList}\item 
\hypertarget{classModuleManager_adb403e8ceb47ccd29feeefd7deaff313}{
void \hyperlink{classModuleManager_adb403e8ceb47ccd29feeefd7deaff313}{shutdown} ()}
\label{classModuleManager_adb403e8ceb47ccd29feeefd7deaff313}

\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} \hyperlink{protocolthe-p}{the} module manager. \item\end{DoxyCompactList}\item 
bool \hyperlink{classModuleManager_ade8097d9cd9afea980324c32b9da3d9d}{is\_\-shutdown\_\-completed} () const 
\begin{DoxyCompactList}\small\item\em Test whether \hyperlink{protocolthe-p}{the} shutdown has been completed. \item\end{DoxyCompactList}\item 
void \hyperlink{classModuleManager_a61458eb6c61523bdbbdf97523b7a5f27}{module\_\-status\_\-changed} (const string \&module\_\-name, Module::ModuleStatus old\_\-status, Module::ModuleStatus new\_\-status)
\begin{DoxyCompactList}\small\item\em Change \hyperlink{protocolthe-p}{the} status of a module. \item\end{DoxyCompactList}\item 
list$<$ string $>$ \hyperlink{classModuleManager_aad3bd4a565917ea64baf75615e440b39}{get\_\-module\_\-names} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} module names. \item\end{DoxyCompactList}\item 
list$<$ \hyperlink{classModule}{Module} $\ast$ $>$ \hyperlink{classModuleManager_a5cd449a28a8d377ea91d56e5d0eda4be}{find\_\-running\_\-modules\_\-by\_\-path} (const string \&expath)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} running modules that match an executional path. \item\end{DoxyCompactList}\item 
int \hyperlink{classModuleManager_a39277ca1096e242849278b06e3af4f45}{execute\_\-process} (const string \&expath, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Execute a process. \item\end{DoxyCompactList}\item 
void \hyperlink{classModuleManager_acadded90fcf7ec89a708700e1f96d50d}{process\_\-exited} (const string \&expath, bool success, bool is\_\-signal\_\-terminated, int term\_\-signal, bool is\_\-coredumped)
\begin{DoxyCompactList}\small\item\em A method called when a process has exited. \item\end{DoxyCompactList}\item 
void \hyperlink{classModuleManager_a14829b9da6ec714e8322a8aa7f166da1}{process\_\-stopped} (const string \&expath, int stop\_\-signal)
\begin{DoxyCompactList}\small\item\em A method called when a process has been stopped. \item\end{DoxyCompactList}\item 
\hyperlink{classModuleManager_1_1Process}{ModuleManager::Process} $\ast$ \hyperlink{classModuleManager_ad759676977cd53fe6a6468acd69f4d18}{find\_\-process\_\-by\_\-path} (const string \&expath)
\begin{DoxyCompactList}\small\item\em Find a process by its expanded path. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classModuleManager_a671d60f41d71e9aff1806b2e1a4e45cd}{xorp\_\-root\_\-dir} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} XORP root directory. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classModuleManager_a317e9ebdfc5337f2447d9c6119a47aa9}{xorp\_\-module\_\-dir} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} XORP module directory. \item\end{DoxyCompactList}\item 
\hyperlink{classMasterConfigTree}{MasterConfigTree} $\ast$ \hyperlink{classModuleManager_a90e490aa7c72801e46011724c9b71c10}{master\_\-config\_\-tree} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} master configuration tree. \item\end{DoxyCompactList}\item 
void \hyperlink{classModuleManager_a2afa1a6a20551857914fc489f6aab5f7}{set\_\-master\_\-config\_\-tree} (\hyperlink{classMasterConfigTree}{MasterConfigTree} $\ast$v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} master configuration tree. \item\end{DoxyCompactList}\item 
bool \hyperlink{classModuleManager_a5633283a6bfc9a2b85d1955cc2b5e837}{do\_\-restart} () const 
\begin{DoxyCompactList}\small\item\em Test if processes that have failed should be restarted. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classModuleManager_aeb992da610951153b412b48f5a7323c0}{
void {\bfseries module\_\-shutdown\_\-cb} (string module\_\-name)}
\label{classModuleManager_aeb992da610951153b412b48f5a7323c0}

\item 
\hypertarget{classModuleManager_a81c7a1f7d9f4a4c799963046d2292c7d}{
int {\bfseries expand\_\-execution\_\-path} (const string \&path, string \&expath, string \&error\_\-msg)}
\label{classModuleManager_a81c7a1f7d9f4a4c799963046d2292c7d}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classModuleManager_a904c2638524da565299aede09c135e33}{
\hyperlink{classRtrmgr}{Rtrmgr} \& {\bfseries \_\-rtrmgr}}
\label{classModuleManager_a904c2638524da565299aede09c135e33}

\item 
\hypertarget{classModuleManager_a8c291297db8b8ac68db079fa11734d6b}{
\hyperlink{classMasterConfigTree}{MasterConfigTree} $\ast$ {\bfseries \_\-master\_\-config\_\-tree}}
\label{classModuleManager_a8c291297db8b8ac68db079fa11734d6b}

\item 
\hypertarget{classModuleManager_a7fcba92b6cc89ed18c3fb55d83c91a87}{
map$<$ string, \hyperlink{classModuleManager_1_1Process}{Process} $\ast$ $>$ {\bfseries \_\-expath2process}}
\label{classModuleManager_a7fcba92b6cc89ed18c3fb55d83c91a87}

\item 
\hypertarget{classModuleManager_adc0adca07de71f3a36667962349a9994}{
bool {\bfseries \_\-do\_\-restart}}
\label{classModuleManager_adc0adca07de71f3a36667962349a9994}

\item 
\hypertarget{classModuleManager_a79c3dc11d532607959f8e495b68f106d}{
bool {\bfseries \_\-verbose}}
\label{classModuleManager_a79c3dc11d532607959f8e495b68f106d}

\item 
\hypertarget{classModuleManager_aaf418759292c32147802e11cc0bb56e8}{
string {\bfseries \_\-xorp\_\-root\_\-dir}}
\label{classModuleManager_aaf418759292c32147802e11cc0bb56e8}

\item 
\hypertarget{classModuleManager_a36229f095d0c3b8bc11ccae16efe7b87}{
string {\bfseries \_\-xorp\_\-module\_\-dir}}
\label{classModuleManager_a36229f095d0c3b8bc11ccae16efe7b87}

\end{DoxyCompactItemize}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{classModuleManager_a279a5a04c99c3ddafe893b7f413cbf24}{
\index{ModuleManager@{ModuleManager}!ModuleManager@{ModuleManager}}
\index{ModuleManager@{ModuleManager}!ModuleManager@{ModuleManager}}
\subsubsection[{ModuleManager}]{\setlength{\rightskip}{0pt plus 5cm}ModuleManager::ModuleManager (
\begin{DoxyParamCaption}
\item[{{\bf EventLoop} \&}]{eventloop, }
\item[{{\bf Rtrmgr} \&}]{rtrmgr, }
\item[{bool}]{do\_\-restart, }
\item[{bool}]{verbose, }
\item[{const string \&}]{xorp\_\-root\_\-dir, }
\item[{const string \&}]{xorp\_\-module\_\-dir}
\end{DoxyParamCaption}
)}}
\label{classModuleManager_a279a5a04c99c3ddafe893b7f413cbf24}


Constructor. 


\begin{DoxyParams}{Parameters}
{\em eventloop} & \hyperlink{protocolthe-p}{the} event loop to use. \\
\hline
{\em rtrmgr} & \hyperlink{protocolthe-p}{the} router manager to use. \\
\hline
{\em do\_\-restart} & if true, then restart a module if it failed. \\
\hline
{\em verbose} & if true, then output trace messages. \\
\hline
{\em xorp\_\-root\_\-dir} & \hyperlink{protocolthe-p}{the} XORP root directory. \\
\hline
{\em xorp\_\-module\_\-dir} & \hyperlink{protocolthe-p}{the} XORP module directory. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classModuleManager_a5633283a6bfc9a2b85d1955cc2b5e837}{
\index{ModuleManager@{ModuleManager}!do\_\-restart@{do\_\-restart}}
\index{do\_\-restart@{do\_\-restart}!ModuleManager@{ModuleManager}}
\subsubsection[{do\_\-restart}]{\setlength{\rightskip}{0pt plus 5cm}bool ModuleManager::do\_\-restart (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classModuleManager_a5633283a6bfc9a2b85d1955cc2b5e837}


Test if processes that have failed should be restarted. 

\begin{DoxyReturn}{Returns}
true if failed processes should be restarted, otherwise false. 
\end{DoxyReturn}
\hypertarget{classModuleManager_a39277ca1096e242849278b06e3af4f45}{
\index{ModuleManager@{ModuleManager}!execute\_\-process@{execute\_\-process}}
\index{execute\_\-process@{execute\_\-process}!ModuleManager@{ModuleManager}}
\subsubsection[{execute\_\-process}]{\setlength{\rightskip}{0pt plus 5cm}int ModuleManager::execute\_\-process (
\begin{DoxyParamCaption}
\item[{const string \&}]{expath, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classModuleManager_a39277ca1096e242849278b06e3af4f45}


Execute a process. 


\begin{DoxyParams}{Parameters}
{\em expath} & \hyperlink{protocolthe-p}{the} expanded path for \hyperlink{protocolthe-p}{the} process to execute. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classModuleManager_ad759676977cd53fe6a6468acd69f4d18}{
\index{ModuleManager@{ModuleManager}!find\_\-process\_\-by\_\-path@{find\_\-process\_\-by\_\-path}}
\index{find\_\-process\_\-by\_\-path@{find\_\-process\_\-by\_\-path}!ModuleManager@{ModuleManager}}
\subsubsection[{find\_\-process\_\-by\_\-path}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ModuleManager::Process} $\ast$ ModuleManager::find\_\-process\_\-by\_\-path (
\begin{DoxyParamCaption}
\item[{const string \&}]{expath}
\end{DoxyParamCaption}
)}}
\label{classModuleManager_ad759676977cd53fe6a6468acd69f4d18}


Find a process by its expanded path. 


\begin{DoxyParams}{Parameters}
{\em expath} & \hyperlink{protocolthe-p}{the} expanded path for \hyperlink{protocolthe-p}{the} process to find. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} corresponding process if found, otherwise NULL. 
\end{DoxyReturn}
\hypertarget{classModuleManager_a5cd449a28a8d377ea91d56e5d0eda4be}{
\index{ModuleManager@{ModuleManager}!find\_\-running\_\-modules\_\-by\_\-path@{find\_\-running\_\-modules\_\-by\_\-path}}
\index{find\_\-running\_\-modules\_\-by\_\-path@{find\_\-running\_\-modules\_\-by\_\-path}!ModuleManager@{ModuleManager}}
\subsubsection[{find\_\-running\_\-modules\_\-by\_\-path}]{\setlength{\rightskip}{0pt plus 5cm}list$<$ {\bf Module} $\ast$ $>$ ModuleManager::find\_\-running\_\-modules\_\-by\_\-path (
\begin{DoxyParamCaption}
\item[{const string \&}]{expath}
\end{DoxyParamCaption}
)}}
\label{classModuleManager_a5cd449a28a8d377ea91d56e5d0eda4be}


Get \hyperlink{protocolthe-p}{the} running modules that match an executional path. 


\begin{DoxyParams}{Parameters}
{\em expath} & \hyperlink{protocolthe-p}{the} path to match. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a list of modules that are running and match expath. 
\end{DoxyReturn}
\hypertarget{classModuleManager_aad3bd4a565917ea64baf75615e440b39}{
\index{ModuleManager@{ModuleManager}!get\_\-module\_\-names@{get\_\-module\_\-names}}
\index{get\_\-module\_\-names@{get\_\-module\_\-names}!ModuleManager@{ModuleManager}}
\subsubsection[{get\_\-module\_\-names}]{\setlength{\rightskip}{0pt plus 5cm}list$<$ string $>$ ModuleManager::get\_\-module\_\-names (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classModuleManager_aad3bd4a565917ea64baf75615e440b39}


Get \hyperlink{protocolthe-p}{the} module names. 

\begin{DoxyReturn}{Returns}
a list with \hyperlink{protocolthe-p}{the} module names. 
\end{DoxyReturn}
\hypertarget{classModuleManager_ade8097d9cd9afea980324c32b9da3d9d}{
\index{ModuleManager@{ModuleManager}!is\_\-shutdown\_\-completed@{is\_\-shutdown\_\-completed}}
\index{is\_\-shutdown\_\-completed@{is\_\-shutdown\_\-completed}!ModuleManager@{ModuleManager}}
\subsubsection[{is\_\-shutdown\_\-completed}]{\setlength{\rightskip}{0pt plus 5cm}bool ModuleManager::is\_\-shutdown\_\-completed (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classModuleManager_ade8097d9cd9afea980324c32b9da3d9d}


Test whether \hyperlink{protocolthe-p}{the} shutdown has been completed. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} shutdown has been completed, otherwise false. 
\end{DoxyReturn}
\hypertarget{classModuleManager_a7dabd1592904fb78d904ed0fc21b83b2}{
\index{ModuleManager@{ModuleManager}!kill\_\-module@{kill\_\-module}}
\index{kill\_\-module@{kill\_\-module}!ModuleManager@{ModuleManager}}
\subsubsection[{kill\_\-module}]{\setlength{\rightskip}{0pt plus 5cm}int ModuleManager::kill\_\-module (
\begin{DoxyParamCaption}
\item[{const string \&}]{module\_\-name, }
\item[{XorpCallback0$<$ void $>$::RefPtr}]{cb}
\end{DoxyParamCaption}
)}}
\label{classModuleManager_a7dabd1592904fb78d904ed0fc21b83b2}


Kill a module. 


\begin{DoxyParams}{Parameters}
{\em module\_\-name} & \hyperlink{protocolthe-p}{the} module name. \\
\hline
{\em cb} & \hyperlink{protocolthe-p}{the} callback to dispatch when \hyperlink{protocolthe-p}{the} module is terminated. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classModuleManager_a90e490aa7c72801e46011724c9b71c10}{
\index{ModuleManager@{ModuleManager}!master\_\-config\_\-tree@{master\_\-config\_\-tree}}
\index{master\_\-config\_\-tree@{master\_\-config\_\-tree}!ModuleManager@{ModuleManager}}
\subsubsection[{master\_\-config\_\-tree}]{\setlength{\rightskip}{0pt plus 5cm}{\bf MasterConfigTree}$\ast$ ModuleManager::master\_\-config\_\-tree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classModuleManager_a90e490aa7c72801e46011724c9b71c10}


Get \hyperlink{protocolthe-p}{the} master configuration tree. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} master configuration tree. 
\end{DoxyReturn}
\hypertarget{classModuleManager_a52af00e29448da5cf657d3e8b2095419}{
\index{ModuleManager@{ModuleManager}!module\_\-has\_\-started@{module\_\-has\_\-started}}
\index{module\_\-has\_\-started@{module\_\-has\_\-started}!ModuleManager@{ModuleManager}}
\subsubsection[{module\_\-has\_\-started}]{\setlength{\rightskip}{0pt plus 5cm}bool ModuleManager::module\_\-has\_\-started (
\begin{DoxyParamCaption}
\item[{const string \&}]{module\_\-name}
\end{DoxyParamCaption}
) const}}
\label{classModuleManager_a52af00e29448da5cf657d3e8b2095419}


Test whether a module has been started. 


\begin{DoxyParams}{Parameters}
{\em module\_\-name} & \hyperlink{protocolthe-p}{the} module name. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} module has been started, otherwise false. 
\end{DoxyReturn}
\hypertarget{classModuleManager_adb8525a2636a1985a95cd99d2797a0bf}{
\index{ModuleManager@{ModuleManager}!module\_\-is\_\-running@{module\_\-is\_\-running}}
\index{module\_\-is\_\-running@{module\_\-is\_\-running}!ModuleManager@{ModuleManager}}
\subsubsection[{module\_\-is\_\-running}]{\setlength{\rightskip}{0pt plus 5cm}bool ModuleManager::module\_\-is\_\-running (
\begin{DoxyParamCaption}
\item[{const string \&}]{module\_\-name}
\end{DoxyParamCaption}
) const}}
\label{classModuleManager_adb8525a2636a1985a95cd99d2797a0bf}


Test whether a module is running. 


\begin{DoxyParams}{Parameters}
{\em module\_\-name} & \hyperlink{protocolthe-p}{the} module name. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} module is running, otherwise false. 
\end{DoxyReturn}
\hypertarget{classModuleManager_a61458eb6c61523bdbbdf97523b7a5f27}{
\index{ModuleManager@{ModuleManager}!module\_\-status\_\-changed@{module\_\-status\_\-changed}}
\index{module\_\-status\_\-changed@{module\_\-status\_\-changed}!ModuleManager@{ModuleManager}}
\subsubsection[{module\_\-status\_\-changed}]{\setlength{\rightskip}{0pt plus 5cm}void ModuleManager::module\_\-status\_\-changed (
\begin{DoxyParamCaption}
\item[{const string \&}]{module\_\-name, }
\item[{Module::ModuleStatus}]{old\_\-status, }
\item[{Module::ModuleStatus}]{new\_\-status}
\end{DoxyParamCaption}
)}}
\label{classModuleManager_a61458eb6c61523bdbbdf97523b7a5f27}


Change \hyperlink{protocolthe-p}{the} status of a module. 


\begin{DoxyParams}{Parameters}
{\em module\_\-name} & \hyperlink{protocolthe-p}{the} module name. \\
\hline
{\em old\_\-status} & \hyperlink{protocolthe-p}{the} old status. \\
\hline
{\em new\_\-status} & \hyperlink{protocolthe-p}{the} new status. \\
\hline
\end{DoxyParams}
\hypertarget{classModuleManager_a08f0ff21437b66a91609d01418f198c8}{
\index{ModuleManager@{ModuleManager}!new\_\-module@{new\_\-module}}
\index{new\_\-module@{new\_\-module}!ModuleManager@{ModuleManager}}
\subsubsection[{new\_\-module}]{\setlength{\rightskip}{0pt plus 5cm}bool ModuleManager::new\_\-module (
\begin{DoxyParamCaption}
\item[{const string \&}]{module\_\-name, }
\item[{const string \&}]{path, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classModuleManager_a08f0ff21437b66a91609d01418f198c8}


Create a new module. 


\begin{DoxyParams}{Parameters}
{\em module\_\-name} & \hyperlink{protocolthe-p}{the} module name. \\
\hline
{\em path} & \hyperlink{protocolthe-p}{the} path to \hyperlink{protocolthe-p}{the} executable program for this module. It could be either \hyperlink{protocolthe-p}{the} relative or expanded absolute path. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, otherwise false. 
\end{DoxyReturn}
\hypertarget{classModuleManager_acadded90fcf7ec89a708700e1f96d50d}{
\index{ModuleManager@{ModuleManager}!process\_\-exited@{process\_\-exited}}
\index{process\_\-exited@{process\_\-exited}!ModuleManager@{ModuleManager}}
\subsubsection[{process\_\-exited}]{\setlength{\rightskip}{0pt plus 5cm}void ModuleManager::process\_\-exited (
\begin{DoxyParamCaption}
\item[{const string \&}]{expath, }
\item[{bool}]{success, }
\item[{bool}]{is\_\-signal\_\-terminated, }
\item[{int}]{term\_\-signal, }
\item[{bool}]{is\_\-coredumped}
\end{DoxyParamCaption}
)}}
\label{classModuleManager_acadded90fcf7ec89a708700e1f96d50d}


A method called when a process has exited. 


\begin{DoxyParams}{Parameters}
{\em expath} & \hyperlink{protocolthe-p}{the} expanded path for \hyperlink{protocolthe-p}{the} process that has exited. \\
\hline
{\em success} & if true, \hyperlink{protocolthe-p}{the} exit status of \hyperlink{protocolthe-p}{the} process indicates success, otherwise failure. \\
\hline
{\em is\_\-signal\_\-terminated} & if true \hyperlink{protocolthe-p}{the} process has been terminated by a signal. \\
\hline
{\em term\_\-signal} & if is\_\-signal\_\-terminated is true, this contains \hyperlink{protocolthe-p}{the} terminating signal. \\
\hline
{\em is\_\-coredumped} & if true \hyperlink{protocolthe-p}{the} process has generated a coredump. \\
\hline
\end{DoxyParams}
\hypertarget{classModuleManager_a14829b9da6ec714e8322a8aa7f166da1}{
\index{ModuleManager@{ModuleManager}!process\_\-stopped@{process\_\-stopped}}
\index{process\_\-stopped@{process\_\-stopped}!ModuleManager@{ModuleManager}}
\subsubsection[{process\_\-stopped}]{\setlength{\rightskip}{0pt plus 5cm}void ModuleManager::process\_\-stopped (
\begin{DoxyParamCaption}
\item[{const string \&}]{expath, }
\item[{int}]{stop\_\-signal}
\end{DoxyParamCaption}
)}}
\label{classModuleManager_a14829b9da6ec714e8322a8aa7f166da1}


A method called when a process has been stopped. 


\begin{DoxyParams}{Parameters}
{\em expath} & \hyperlink{protocolthe-p}{the} expanded path for \hyperlink{protocolthe-p}{the} process that has been stopped. \\
\hline
{\em stop\_\-signal} & \hyperlink{protocolthe-p}{the} signal that has stopped \hyperlink{protocolthe-p}{the} process. \\
\hline
\end{DoxyParams}
\hypertarget{classModuleManager_a2afa1a6a20551857914fc489f6aab5f7}{
\index{ModuleManager@{ModuleManager}!set\_\-master\_\-config\_\-tree@{set\_\-master\_\-config\_\-tree}}
\index{set\_\-master\_\-config\_\-tree@{set\_\-master\_\-config\_\-tree}!ModuleManager@{ModuleManager}}
\subsubsection[{set\_\-master\_\-config\_\-tree}]{\setlength{\rightskip}{0pt plus 5cm}void ModuleManager::set\_\-master\_\-config\_\-tree (
\begin{DoxyParamCaption}
\item[{{\bf MasterConfigTree} $\ast$}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classModuleManager_a2afa1a6a20551857914fc489f6aab5f7}


Set \hyperlink{protocolthe-p}{the} master configuration tree. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} master configuration tree to set. \\
\hline
\end{DoxyParams}
\hypertarget{classModuleManager_aa0ec75a25d4cc3a23b6825367494a0f0}{
\index{ModuleManager@{ModuleManager}!start\_\-module@{start\_\-module}}
\index{start\_\-module@{start\_\-module}!ModuleManager@{ModuleManager}}
\subsubsection[{start\_\-module}]{\setlength{\rightskip}{0pt plus 5cm}int ModuleManager::start\_\-module (
\begin{DoxyParamCaption}
\item[{const string \&}]{module\_\-name, }
\item[{bool}]{do\_\-exec, }
\item[{bool}]{is\_\-verification, }
\item[{XorpCallback1$<$ void, bool $>$::RefPtr}]{cb}
\end{DoxyParamCaption}
)}}
\label{classModuleManager_aa0ec75a25d4cc3a23b6825367494a0f0}


Start a module. 


\begin{DoxyParams}{Parameters}
{\em module\_\-name} & \hyperlink{protocolthe-p}{the} module name. \\
\hline
{\em do\_\-exec} & if true then indeed execute \hyperlink{protocolthe-p}{the} executable program, otherwise just process \hyperlink{protocolthe-p}{the} execution machinery. \\
\hline
{\em is\_\-verification} & if true then this is verification of \hyperlink{protocolthe-p}{the} execution machinery. \\
\hline
{\em cb} & \hyperlink{protocolthe-p}{the} callback to dispatch at \hyperlink{protocolthe-p}{the} end of \hyperlink{protocolthe-p}{the} startup process. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classModuleManager_a317e9ebdfc5337f2447d9c6119a47aa9}{
\index{ModuleManager@{ModuleManager}!xorp\_\-module\_\-dir@{xorp\_\-module\_\-dir}}
\index{xorp\_\-module\_\-dir@{xorp\_\-module\_\-dir}!ModuleManager@{ModuleManager}}
\subsubsection[{xorp\_\-module\_\-dir}]{\setlength{\rightskip}{0pt plus 5cm}const string\& ModuleManager::xorp\_\-module\_\-dir (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classModuleManager_a317e9ebdfc5337f2447d9c6119a47aa9}


Get \hyperlink{protocolthe-p}{the} XORP module directory. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} XORP module directory. 
\end{DoxyReturn}
\hypertarget{classModuleManager_a671d60f41d71e9aff1806b2e1a4e45cd}{
\index{ModuleManager@{ModuleManager}!xorp\_\-root\_\-dir@{xorp\_\-root\_\-dir}}
\index{xorp\_\-root\_\-dir@{xorp\_\-root\_\-dir}!ModuleManager@{ModuleManager}}
\subsubsection[{xorp\_\-root\_\-dir}]{\setlength{\rightskip}{0pt plus 5cm}const string\& ModuleManager::xorp\_\-root\_\-dir (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classModuleManager_a671d60f41d71e9aff1806b2e1a4e45cd}


Get \hyperlink{protocolthe-p}{the} XORP root directory. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} XORP root directory. 
\end{DoxyReturn}


The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/rtrmgr/module\_\-manager.hh\item 
/home/greearb/git/xorp.ct.github/xorp/rtrmgr/module\_\-manager.cc\end{DoxyCompactItemize}
