\hypertarget{classXrlRtrmgrInterface}{
\section{XrlRtrmgrInterface Class Reference}
\label{classXrlRtrmgrInterface}\index{XrlRtrmgrInterface@{XrlRtrmgrInterface}}
}
Inheritance diagram for XrlRtrmgrInterface:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classXrlRtrmgrInterface}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlRtrmgrInterface_a37c74354e75a98f14f0d7e3a558bd901}{
{\bfseries XrlRtrmgrInterface} (\hyperlink{classXrlRouter}{XrlRouter} \&r, \hyperlink{classUserDB}{UserDB} \&db, \hyperlink{classEventLoop}{EventLoop} \&eventloop, \hyperlink{classRandomGen}{RandomGen} \&randgen, \hyperlink{classRtrmgr}{Rtrmgr} \&rtrmgr)}
\label{classXrlRtrmgrInterface_a37c74354e75a98f14f0d7e3a558bd901}

\item 
\hypertarget{classXrlRtrmgrInterface_a12476136e72ac63ee44e56f93e3da8cf}{
void {\bfseries set\_\-master\_\-config\_\-tree} (\hyperlink{classMasterConfigTree}{MasterConfigTree} $\ast$v)}
\label{classXrlRtrmgrInterface_a12476136e72ac63ee44e56f93e3da8cf}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlRtrmgrInterface_af088e677c98708dbf2f5e6183d1e9e4d}{common\_\-0\_\-1\_\-get\_\-target\_\-name} (string \&name)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlRtrmgrInterface_ad1163c80255ad4eda3fd4dfef2a24709}{common\_\-0\_\-1\_\-get\_\-version} (string \&version)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hypertarget{classXrlRtrmgrInterface_aede2f6374c694d3ff688519a0d4a3e00}{
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlRtrmgrInterface_aede2f6374c694d3ff688519a0d4a3e00}{common\_\-0\_\-1\_\-get\_\-status} (uint32\_\-t \&status, string \&reason)}
\label{classXrlRtrmgrInterface_aede2f6374c694d3ff688519a0d4a3e00}

\begin{DoxyCompactList}\small\item\em Get status from \hyperlink{classXrl}{Xrl} Target. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlRtrmgrInterface_a055f3df9186c62965851acd6fac1f4f4}{
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlRtrmgrInterface_a055f3df9186c62965851acd6fac1f4f4}{common\_\-0\_\-1\_\-shutdown} ()}
\label{classXrlRtrmgrInterface_a055f3df9186c62965851acd6fac1f4f4}

\begin{DoxyCompactList}\small\item\em Request clean shutdown. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlRtrmgrInterface_a8fa240e28af6701758c80cfd9cd05822}{common\_\-0\_\-1\_\-startup} ()
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hypertarget{classXrlRtrmgrInterface_a2671c017829d73783f17d7047a3fc013}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-get\_\-pid} (uint32\_\-t \&pid)}
\label{classXrlRtrmgrInterface_a2671c017829d73783f17d7047a3fc013}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlRtrmgrInterface_a000a474fad56136782a2dde19296ed38}{rtrmgr\_\-0\_\-1\_\-register\_\-client} (const uint32\_\-t \&user\_\-id, const string \&clientname, string \&filename, uint32\_\-t \&pid, uint32\_\-t \&clientid)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hypertarget{classXrlRtrmgrInterface_a18d2a964c1e13b90511e6c94be15c1e1}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-unregister\_\-client} (const string \&token)}
\label{classXrlRtrmgrInterface_a18d2a964c1e13b90511e6c94be15c1e1}

\item 
\hypertarget{classXrlRtrmgrInterface_a4e0cefebc40ec336dddacee5123a768a}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-authenticate\_\-client} (const uint32\_\-t \&user\_\-id, const string \&clientname, const string \&token)}
\label{classXrlRtrmgrInterface_a4e0cefebc40ec336dddacee5123a768a}

\item 
\hypertarget{classXrlRtrmgrInterface_a7b8eebdc40b475fbc905041b975d6910}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-enter\_\-config\_\-mode} (const string \&token, const bool \&exclusive)}
\label{classXrlRtrmgrInterface_a7b8eebdc40b475fbc905041b975d6910}

\item 
\hypertarget{classXrlRtrmgrInterface_a5ecdce8175de1817e06e1c4a63980570}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-leave\_\-config\_\-mode} (const string \&token)}
\label{classXrlRtrmgrInterface_a5ecdce8175de1817e06e1c4a63980570}

\item 
\hypertarget{classXrlRtrmgrInterface_abeab41b8f32ea3bb57e4973b2612cef3}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-get\_\-config\_\-users} (const string \&token, \hyperlink{classXrlAtomList}{XrlAtomList} \&users)}
\label{classXrlRtrmgrInterface_abeab41b8f32ea3bb57e4973b2612cef3}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlRtrmgrInterface_a15f15c86a4b2f9c6d0865ea36dba1bb9}{rtrmgr\_\-0\_\-1\_\-get\_\-running\_\-config} (const string \&token, bool \&ready, string \&config)
\begin{DoxyCompactList}\small\item\em This interface is deprecated as \hyperlink{protocolthe-p}{the} main way for xorpsh to get \hyperlink{protocolthe-p}{the} running config from \hyperlink{protocolthe-p}{the} router manager. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlRtrmgrInterface_abb22df03944bc597628cd83fac3675d6}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-apply\_\-config\_\-change} (const string \&token, const string \&target, const string \&deltas, const string \&deletions)}
\label{classXrlRtrmgrInterface_abb22df03944bc597628cd83fac3675d6}

\item 
\hypertarget{classXrlRtrmgrInterface_a62df4c24517fa2d28b005641db65537a}{
void {\bfseries apply\_\-config\_\-change\_\-done} (bool success, string error\_\-msg, string deltas, string deletions, uid\_\-t user\_\-id, string target)}
\label{classXrlRtrmgrInterface_a62df4c24517fa2d28b005641db65537a}

\item 
\hypertarget{classXrlRtrmgrInterface_a06e893181d4da84781ebb0e2c7afa83d}{
void {\bfseries config\_\-saved\_\-done\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&)}
\label{classXrlRtrmgrInterface_a06e893181d4da84781ebb0e2c7afa83d}

\item 
\hypertarget{classXrlRtrmgrInterface_a362e734938f9678d14c1fa6bea936a12}{
void {\bfseries apply\_\-config\_\-change\_\-done\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&)}
\label{classXrlRtrmgrInterface_a362e734938f9678d14c1fa6bea936a12}

\item 
\hypertarget{classXrlRtrmgrInterface_aa39ba9e74ccf0661d436d3e670d973de}{
void {\bfseries client\_\-updated} (const \hyperlink{classXrlError}{XrlError} \&e, uid\_\-t user\_\-id, \hyperlink{classUserInstance}{UserInstance} $\ast$user)}
\label{classXrlRtrmgrInterface_aa39ba9e74ccf0661d436d3e670d973de}

\item 
\hypertarget{classXrlRtrmgrInterface_ab2b2c0f04266c4eec0147c6a53d28bcb}{
void {\bfseries module\_\-status\_\-changed} (const string \&modname, GenericModule::ModuleStatus status)}
\label{classXrlRtrmgrInterface_ab2b2c0f04266c4eec0147c6a53d28bcb}

\item 
\hypertarget{classXrlRtrmgrInterface_afed8a3acae83a92c6e33a30ca2dd5a9a}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-lock\_\-config} (const string \&token, const uint32\_\-t \&timeout, bool \&success, uint32\_\-t \&holder)}
\label{classXrlRtrmgrInterface_afed8a3acae83a92c6e33a30ca2dd5a9a}

\item 
\hypertarget{classXrlRtrmgrInterface_ac444dd3c9b93ae490332166e35f715f9}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-unlock\_\-config} (const string \&token)}
\label{classXrlRtrmgrInterface_ac444dd3c9b93ae490332166e35f715f9}

\item 
\hypertarget{classXrlRtrmgrInterface_a2569cab17d6ccae18d499606c5b3e59f}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-lock\_\-node} (const string \&token, const string \&node, const uint32\_\-t \&timeout, bool \&success, uint32\_\-t \&holder)}
\label{classXrlRtrmgrInterface_a2569cab17d6ccae18d499606c5b3e59f}

\item 
\hypertarget{classXrlRtrmgrInterface_ad93fe723badcedcf366556a60f01aa2c}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-unlock\_\-node} (const string \&token, const string \&node)}
\label{classXrlRtrmgrInterface_ad93fe723badcedcf366556a60f01aa2c}

\item 
\hypertarget{classXrlRtrmgrInterface_a0b3662b38200dd5ec79dfe270f3d5f30}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-save\_\-config} (const string \&token, const string \&target, const string \&filename)}
\label{classXrlRtrmgrInterface_a0b3662b38200dd5ec79dfe270f3d5f30}

\item 
\hypertarget{classXrlRtrmgrInterface_a793abbf0b3e7f162825626ea79eb3e2b}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries rtrmgr\_\-0\_\-1\_\-load\_\-config} (const string \&token, const string \&target, const string \&filename)}
\label{classXrlRtrmgrInterface_a793abbf0b3e7f162825626ea79eb3e2b}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlRtrmgrInterface_a6bf11f26801909a567c5481e029e321f}{rtrmgr\_\-0\_\-1\_\-set\_\-config\_\-directory} (const string \&config\_\-directory)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} directory with \hyperlink{protocolthe-p}{the} configuration files. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlRtrmgrInterface_aa9cad30c3ec7b497f2033393aca673ec}{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth} (const string \&target\_\-class, const string \&target\_\-instance)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlRtrmgrInterface_a05200df5de5bbed57dd86245b9b348a1}{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death} (const string \&target\_\-class, const string \&target\_\-instance)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hypertarget{classXrlRtrmgrInterface_abf1633c9cdb8d1ae99e3227de22a33df}{
void {\bfseries finder\_\-register\_\-done} (const \hyperlink{classXrlError}{XrlError} \&e, string clientname)}
\label{classXrlRtrmgrInterface_abf1633c9cdb8d1ae99e3227de22a33df}

\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlRtrmgrInterface_a02a33f839f1308760c561564d296dd6e}{
typedef XorpCallback2$<$ void, bool, string $>$::RefPtr {\bfseries CallBack}}
\label{classXrlRtrmgrInterface_a02a33f839f1308760c561564d296dd6e}

\item 
\hypertarget{classXrlRtrmgrInterface_a25361533f3b2a393b3f4a5a2377bd324}{
typedef XorpCallback4$<$ void, bool, string, string, string $>$::RefPtr {\bfseries ConfigChangeCallBack}}
\label{classXrlRtrmgrInterface_a25361533f3b2a393b3f4a5a2377bd324}

\item 
\hypertarget{classXrlRtrmgrInterface_a1c834c9fb62ab9e6972d75de758c5f0f}{
typedef XorpCallback2$<$ void, bool, string $>$::RefPtr {\bfseries ConfigSaveCallBack}}
\label{classXrlRtrmgrInterface_a1c834c9fb62ab9e6972d75de758c5f0f}

\item 
\hypertarget{classXrlRtrmgrInterface_adda9ab50832f181d01c91ae6ace59b07}{
typedef XorpCallback4$<$ void, bool, string, string, string $>$::RefPtr {\bfseries ConfigLoadCallBack}}
\label{classXrlRtrmgrInterface_adda9ab50832f181d01c91ae6ace59b07}

\item 
\hypertarget{classXrlRtrmgrInterface_a5a137671367f7e992128018f50031a9e}{
typedef XorpCallback1$<$ void, const \hyperlink{classXrlError}{XrlError} \& $>$::RefPtr {\bfseries GENERIC\_\-CALLBACK}}
\label{classXrlRtrmgrInterface_a5a137671367f7e992128018f50031a9e}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlRtrmgrInterface_a5c57683d938e505c8e41982699299fea}{
void {\bfseries save\_\-config\_\-done} (bool success, string error\_\-msg, string filename, uid\_\-t user\_\-id, string target)}
\label{classXrlRtrmgrInterface_a5c57683d938e505c8e41982699299fea}

\item 
\hypertarget{classXrlRtrmgrInterface_ab43ed551ce784ec8dd50fa1a6029c19c}{
void {\bfseries load\_\-config\_\-done} (bool success, string error\_\-msg, string deltas, string deletions, string filename, uid\_\-t user\_\-id, string target)}
\label{classXrlRtrmgrInterface_ab43ed551ce784ec8dd50fa1a6029c19c}

\item 
\hypertarget{classXrlRtrmgrInterface_a1f9c8d8544a850287f7ac6366993a1cf}{
\hyperlink{classUserInstance}{UserInstance} $\ast$ {\bfseries find\_\-user\_\-instance} (uid\_\-t user\_\-id, const string \&clientname)}
\label{classXrlRtrmgrInterface_a1f9c8d8544a850287f7ac6366993a1cf}

\item 
\hypertarget{classXrlRtrmgrInterface_ac4722f069cd1cbae07c752a98681d661}{
string {\bfseries generate\_\-auth\_\-token} (uid\_\-t user\_\-id, const string \&clientname)}
\label{classXrlRtrmgrInterface_ac4722f069cd1cbae07c752a98681d661}

\item 
\hypertarget{classXrlRtrmgrInterface_a425459613b3eb779ffe821932e1a68fc}{
bool {\bfseries verify\_\-token} (const string \&token) const }
\label{classXrlRtrmgrInterface_a425459613b3eb779ffe821932e1a68fc}

\item 
\hypertarget{classXrlRtrmgrInterface_aa775235b1e7826a0c7365236d23a0c53}{
uid\_\-t {\bfseries get\_\-user\_\-id\_\-from\_\-token} (const string \&token) const }
\label{classXrlRtrmgrInterface_aa775235b1e7826a0c7365236d23a0c53}

\item 
\hypertarget{classXrlRtrmgrInterface_ab9819544cd1d38451d5786006322fbce}{
void {\bfseries lock\_\-timeout} ()}
\label{classXrlRtrmgrInterface_ab9819544cd1d38451d5786006322fbce}

\item 
\hypertarget{classXrlRtrmgrInterface_ae515b8be0bd7a8e96366b9a2e0071db8}{
void {\bfseries initialize\_\-client\_\-state} (uid\_\-t user\_\-id, \hyperlink{classUserInstance}{UserInstance} $\ast$user)}
\label{classXrlRtrmgrInterface_ae515b8be0bd7a8e96366b9a2e0071db8}

\item 
\hypertarget{classXrlRtrmgrInterface_a0aa1c34702acb7217fb3e9aa33d104c5}{
void {\bfseries send\_\-client\_\-state} (uid\_\-t user\_\-id, string clientname)}
\label{classXrlRtrmgrInterface_a0aa1c34702acb7217fb3e9aa33d104c5}

\item 
\hypertarget{classXrlRtrmgrInterface_a7e7e69617a8b11d2da7fdd014789c63e}{
uint32\_\-t {\bfseries allocate\_\-clientid} ()}
\label{classXrlRtrmgrInterface_a7e7e69617a8b11d2da7fdd014789c63e}

\item 
\hypertarget{classXrlRtrmgrInterface_af1c75caeb2a65b2ae079f24ef0e20179}{
void {\bfseries deallocate\_\-clientid} (uint32\_\-t clientid)}
\label{classXrlRtrmgrInterface_af1c75caeb2a65b2ae079f24ef0e20179}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlRtrmgrInterface_af73ad01a32dca39938164ca0d26a8605}{
\hyperlink{classXrlRouter}{XrlRouter} \& {\bfseries \_\-xrl\_\-router}}
\label{classXrlRtrmgrInterface_af73ad01a32dca39938164ca0d26a8605}

\item 
\hypertarget{classXrlRtrmgrInterface_ab362e5a66c210854c698cbc4b516689f}{
\hyperlink{classXrlRtrmgrClientV0p2Client}{XrlRtrmgrClientV0p2Client} {\bfseries \_\-client\_\-interface}}
\label{classXrlRtrmgrInterface_ab362e5a66c210854c698cbc4b516689f}

\item 
\hypertarget{classXrlRtrmgrInterface_a47a90225e518cb9f92d977973bd65aec}{
\hyperlink{classXrlFinderEventNotifierV0p1Client}{XrlFinderEventNotifierV0p1Client} {\bfseries \_\-finder\_\-notifier\_\-interface}}
\label{classXrlRtrmgrInterface_a47a90225e518cb9f92d977973bd65aec}

\item 
\hypertarget{classXrlRtrmgrInterface_ade750edbbe3f4ab395a4adc66f6b0f47}{
multimap$<$ uid\_\-t, \hyperlink{classUserInstance}{UserInstance} $\ast$ $>$ {\bfseries \_\-users}}
\label{classXrlRtrmgrInterface_ade750edbbe3f4ab395a4adc66f6b0f47}

\item 
\hypertarget{classXrlRtrmgrInterface_a4373304ba1f762e22e835d102f0253d4}{
multimap$<$ uid\_\-t, \hyperlink{classUserInstance}{UserInstance} $\ast$ $>$ {\bfseries \_\-config\_\-users}}
\label{classXrlRtrmgrInterface_a4373304ba1f762e22e835d102f0253d4}

\item 
\hypertarget{classXrlRtrmgrInterface_af286b2082ea41a3258a3b1ac592bef58}{
set$<$ uint32\_\-t $>$ {\bfseries \_\-clientids}}
\label{classXrlRtrmgrInterface_af286b2082ea41a3258a3b1ac592bef58}

\item 
\hypertarget{classXrlRtrmgrInterface_abfcd86fe4ad3eb60343937841c8b9dae}{
\hyperlink{classUserDB}{UserDB} \& {\bfseries \_\-userdb}}
\label{classXrlRtrmgrInterface_abfcd86fe4ad3eb60343937841c8b9dae}

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

\item 
\hypertarget{classXrlRtrmgrInterface_adffbf302e4934072d98d54dc1ac17d83}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classXrlRtrmgrInterface_adffbf302e4934072d98d54dc1ac17d83}

\item 
\hypertarget{classXrlRtrmgrInterface_a45bc0e00b188da3c7cb8cf7d6dad3057}{
\hyperlink{classRandomGen}{RandomGen} \& {\bfseries \_\-randgen}}
\label{classXrlRtrmgrInterface_a45bc0e00b188da3c7cb8cf7d6dad3057}

\item 
\hypertarget{classXrlRtrmgrInterface_a1230f75bca91d5075a47e3fe7f49daff}{
\hyperlink{classRtrmgr}{Rtrmgr} \& {\bfseries \_\-rtrmgr}}
\label{classXrlRtrmgrInterface_a1230f75bca91d5075a47e3fe7f49daff}

\item 
\hypertarget{classXrlRtrmgrInterface_a98334d6a135f14c215c01bb747b3f8ad}{
bool {\bfseries \_\-exclusive}}
\label{classXrlRtrmgrInterface_a98334d6a135f14c215c01bb747b3f8ad}

\item 
\hypertarget{classXrlRtrmgrInterface_a4e4004a2e5be3021e9df70f46aaf823e}{
string {\bfseries \_\-exclusive\_\-username}}
\label{classXrlRtrmgrInterface_a4e4004a2e5be3021e9df70f46aaf823e}

\item 
\hypertarget{classXrlRtrmgrInterface_a3311fadaa524f87f21b2c0a99fd85f4d}{
bool {\bfseries \_\-config\_\-locked}}
\label{classXrlRtrmgrInterface_a3311fadaa524f87f21b2c0a99fd85f4d}

\item 
\hypertarget{classXrlRtrmgrInterface_a6ef49204e4e5ad17bb65f64cbfdf2d3c}{
string {\bfseries \_\-lock\_\-holder\_\-token}}
\label{classXrlRtrmgrInterface_a6ef49204e4e5ad17bb65f64cbfdf2d3c}

\item 
\hypertarget{classXrlRtrmgrInterface_a1284299dd76edb99faf3005ff6117c20}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-lock\_\-timer}}
\label{classXrlRtrmgrInterface_a1284299dd76edb99faf3005ff6117c20}

\item 
\hypertarget{classXrlRtrmgrInterface_a5af4d64199c1882bd67c52ef1b1eb2ce}{
list$<$ \hyperlink{classXorpTimer}{XorpTimer} $>$ {\bfseries \_\-background\_\-tasks}}
\label{classXrlRtrmgrInterface_a5af4d64199c1882bd67c52ef1b1eb2ce}

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

\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\hypertarget{classXrlRtrmgrInterface_af088e677c98708dbf2f5e6183d1e9e4d}{
\index{XrlRtrmgrInterface@{XrlRtrmgrInterface}!common\_\-0\_\-1\_\-get\_\-target\_\-name@{common\_\-0\_\-1\_\-get\_\-target\_\-name}}
\index{common\_\-0\_\-1\_\-get\_\-target\_\-name@{common\_\-0\_\-1\_\-get\_\-target\_\-name}!XrlRtrmgrInterface@{XrlRtrmgrInterface}}
\subsubsection[{common\_\-0\_\-1\_\-get\_\-target\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlRtrmgrInterface::common\_\-0\_\-1\_\-get\_\-target\_\-name (
\begin{DoxyParamCaption}
\item[{string \&}]{name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlRtrmgrInterface_af088e677c98708dbf2f5e6183d1e9e4d}


Pure-\/virtual function that needs to be implemented to: 

Get name of \hyperlink{classXrl}{Xrl} Target 

Implements \hyperlink{structXrlRtrmgrTargetBase_a1dce7c237a672a6c3ed7613cf1eadebb}{XrlRtrmgrTargetBase}.

\hypertarget{classXrlRtrmgrInterface_ad1163c80255ad4eda3fd4dfef2a24709}{
\index{XrlRtrmgrInterface@{XrlRtrmgrInterface}!common\_\-0\_\-1\_\-get\_\-version@{common\_\-0\_\-1\_\-get\_\-version}}
\index{common\_\-0\_\-1\_\-get\_\-version@{common\_\-0\_\-1\_\-get\_\-version}!XrlRtrmgrInterface@{XrlRtrmgrInterface}}
\subsubsection[{common\_\-0\_\-1\_\-get\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlRtrmgrInterface::common\_\-0\_\-1\_\-get\_\-version (
\begin{DoxyParamCaption}
\item[{string \&}]{version}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlRtrmgrInterface_ad1163c80255ad4eda3fd4dfef2a24709}


Pure-\/virtual function that needs to be implemented to: 

Get version string from \hyperlink{classXrl}{Xrl} Target 

Implements \hyperlink{structXrlRtrmgrTargetBase_a8531f05a43ab03ec5a8f778f963ba42f}{XrlRtrmgrTargetBase}.

\hypertarget{classXrlRtrmgrInterface_a8fa240e28af6701758c80cfd9cd05822}{
\index{XrlRtrmgrInterface@{XrlRtrmgrInterface}!common\_\-0\_\-1\_\-startup@{common\_\-0\_\-1\_\-startup}}
\index{common\_\-0\_\-1\_\-startup@{common\_\-0\_\-1\_\-startup}!XrlRtrmgrInterface@{XrlRtrmgrInterface}}
\subsubsection[{common\_\-0\_\-1\_\-startup}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlRtrmgrInterface::common\_\-0\_\-1\_\-startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classXrlRtrmgrInterface_a8fa240e28af6701758c80cfd9cd05822}


Pure-\/virtual function that needs to be implemented to: 

Request a startup of \hyperlink{classXrl}{Xrl} Target 

Implements \hyperlink{structXrlRtrmgrTargetBase_a94fcbce1bfeaaa495c7a8f3ca320e5df}{XrlRtrmgrTargetBase}.

\hypertarget{classXrlRtrmgrInterface_aa9cad30c3ec7b497f2033393aca673ec}{
\index{XrlRtrmgrInterface@{XrlRtrmgrInterface}!finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth@{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth}}
\index{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth@{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth}!XrlRtrmgrInterface@{XrlRtrmgrInterface}}
\subsubsection[{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlRtrmgrInterface::finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-class, }
\item[{const string \&}]{target\_\-instance}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlRtrmgrInterface_aa9cad30c3ec7b497f2033393aca673ec}


Pure-\/virtual function that needs to be implemented to: 

Announce target birth to observer.


\begin{DoxyParams}{Parameters}
{\em target\_\-class} & \hyperlink{protocolthe-p}{the} target class name.\\
\hline
{\em target\_\-instance} & \hyperlink{protocolthe-p}{the} target instance name. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlRtrmgrTargetBase_ada5da6850b40da39c2fb869ff782622e}{XrlRtrmgrTargetBase}.

\hypertarget{classXrlRtrmgrInterface_a05200df5de5bbed57dd86245b9b348a1}{
\index{XrlRtrmgrInterface@{XrlRtrmgrInterface}!finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death@{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death}}
\index{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death@{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death}!XrlRtrmgrInterface@{XrlRtrmgrInterface}}
\subsubsection[{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlRtrmgrInterface::finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-class, }
\item[{const string \&}]{target\_\-instance}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlRtrmgrInterface_a05200df5de5bbed57dd86245b9b348a1}


Pure-\/virtual function that needs to be implemented to: 

Announce target death to observer.


\begin{DoxyParams}{Parameters}
{\em target\_\-class} & \hyperlink{protocolthe-p}{the} target class name.\\
\hline
{\em target\_\-instance} & \hyperlink{protocolthe-p}{the} target instance name. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlRtrmgrTargetBase_ab00754bc7449d7fbc2c0f466e44d19ab}{XrlRtrmgrTargetBase}.

\hypertarget{classXrlRtrmgrInterface_a15f15c86a4b2f9c6d0865ea36dba1bb9}{
\index{XrlRtrmgrInterface@{XrlRtrmgrInterface}!rtrmgr\_\-0\_\-1\_\-get\_\-running\_\-config@{rtrmgr\_\-0\_\-1\_\-get\_\-running\_\-config}}
\index{rtrmgr\_\-0\_\-1\_\-get\_\-running\_\-config@{rtrmgr\_\-0\_\-1\_\-get\_\-running\_\-config}!XrlRtrmgrInterface@{XrlRtrmgrInterface}}
\subsubsection[{rtrmgr\_\-0\_\-1\_\-get\_\-running\_\-config}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlRtrmgrInterface::rtrmgr\_\-0\_\-1\_\-get\_\-running\_\-config (
\begin{DoxyParamCaption}
\item[{const string \&}]{token, }
\item[{bool \&}]{ready, }
\item[{string \&}]{config}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlRtrmgrInterface_a15f15c86a4b2f9c6d0865ea36dba1bb9}


This interface is deprecated as \hyperlink{protocolthe-p}{the} main way for xorpsh to get \hyperlink{protocolthe-p}{the} running config from \hyperlink{protocolthe-p}{the} router manager. 

It is retained for debugging purposes. xorpsh now gets its config automatically immediatedly after registering which removes a potential timing hole where \hyperlink{protocolthe-p}{the} client could be told about a change to \hyperlink{protocolthe-p}{the} config before it has asked what \hyperlink{protocolthe-p}{the} current config is. 

Implements \hyperlink{structXrlRtrmgrTargetBase}{XrlRtrmgrTargetBase}.

\hypertarget{classXrlRtrmgrInterface_a000a474fad56136782a2dde19296ed38}{
\index{XrlRtrmgrInterface@{XrlRtrmgrInterface}!rtrmgr\_\-0\_\-1\_\-register\_\-client@{rtrmgr\_\-0\_\-1\_\-register\_\-client}}
\index{rtrmgr\_\-0\_\-1\_\-register\_\-client@{rtrmgr\_\-0\_\-1\_\-register\_\-client}!XrlRtrmgrInterface@{XrlRtrmgrInterface}}
\subsubsection[{rtrmgr\_\-0\_\-1\_\-register\_\-client}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlRtrmgrInterface::rtrmgr\_\-0\_\-1\_\-register\_\-client (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{userid, }
\item[{const string \&}]{clientname, }
\item[{string \&}]{filename, }
\item[{uint32\_\-t \&}]{pid, }
\item[{uint32\_\-t \&}]{clientid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlRtrmgrInterface_a000a474fad56136782a2dde19296ed38}


Pure-\/virtual function that needs to be implemented to: 

Register a user and client process with \hyperlink{protocolthe-p}{the} rtrmgr.


\begin{DoxyParams}{Parameters}
{\em clientname} & name of xrl entity supporting rtrmgr\_\-client.xif methods. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlRtrmgrTargetBase_aad03a67aa62f1c206dcbc1b74bed6ba8}{XrlRtrmgrTargetBase}.

\hypertarget{classXrlRtrmgrInterface_a6bf11f26801909a567c5481e029e321f}{
\index{XrlRtrmgrInterface@{XrlRtrmgrInterface}!rtrmgr\_\-0\_\-1\_\-set\_\-config\_\-directory@{rtrmgr\_\-0\_\-1\_\-set\_\-config\_\-directory}}
\index{rtrmgr\_\-0\_\-1\_\-set\_\-config\_\-directory@{rtrmgr\_\-0\_\-1\_\-set\_\-config\_\-directory}!XrlRtrmgrInterface@{XrlRtrmgrInterface}}
\subsubsection[{rtrmgr\_\-0\_\-1\_\-set\_\-config\_\-directory}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlRtrmgrInterface::rtrmgr\_\-0\_\-1\_\-set\_\-config\_\-directory (
\begin{DoxyParamCaption}
\item[{const string \&}]{config\_\-directory}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlRtrmgrInterface_a6bf11f26801909a567c5481e029e321f}


Set \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} directory with \hyperlink{protocolthe-p}{the} configuration files. 


\begin{DoxyParams}{Parameters}
{\em config\_\-directory} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} directory with \hyperlink{protocolthe-p}{the} configuration files. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlRtrmgrTargetBase_aef77cc376b52017945cd405e5095aff7}{XrlRtrmgrTargetBase}.



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