\hypertarget{classShowDistancesProcessor}{
\section{ShowDistancesProcessor Class Reference}
\label{classShowDistancesProcessor}\index{ShowDistancesProcessor@{ShowDistancesProcessor}}
}
Inheritance diagram for ShowDistancesProcessor:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classShowDistancesProcessor}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classShowDistancesProcessor_a144814c984acd87192165336e136e1a1}{
{\bfseries ShowDistancesProcessor} (\hyperlink{classEventLoop}{EventLoop} \&e, \hyperlink{structShowDistancesOptions}{ShowDistancesOptions} \&opts)}
\label{classShowDistancesProcessor_a144814c984acd87192165336e136e1a1}

\item 
int \hyperlink{classShowDistancesProcessor_ab59bde30a8aecb27dbbcdc214e4dc396}{startup} ()
\begin{DoxyCompactList}\small\item\em Start service. \item\end{DoxyCompactList}\item 
int \hyperlink{classShowDistancesProcessor_a284f7a865865e379ea424917e03ab4fd}{shutdown} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} service. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classShowDistancesProcessor_a582175083c6e49d44afb5bbf9757d14c}{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{classShowDistancesProcessor_a2958441cad5abe848bbc2ce0da96051a}{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 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classShowDistancesProcessor_a0faf5048e6987ddfa479bcafc0a296a1}{common\_\-0\_\-1\_\-get\_\-status} (uint32\_\-t \&status, string \&reason)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classShowDistancesProcessor_a27695bc6f867fedf5cbfd1beb4a1c60c}{common\_\-0\_\-1\_\-shutdown} ()
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classShowDistancesProcessor_a8a83f1c5c0e92643d50f0f7659d2b66c}{common\_\-0\_\-1\_\-startup} ()
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classShowDistancesProcessor_a53b06731a53236431e24fdaaaafa01aa}{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth} (const string \&cls, const string \&ins)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classShowDistancesProcessor_a0f70f2438c5ed828d33e6a2a8d0bb6c6}{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death} (const string \&cls, const string \&ins)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hypertarget{classShowDistancesProcessor_abaa6c7d886f5fb549c6a0a5df055d9b1}{
bool {\bfseries poll\_\-ready\_\-failed} ()}
\label{classShowDistancesProcessor_abaa6c7d886f5fb549c6a0a5df055d9b1}

\item 
void \hyperlink{classShowDistancesProcessor_ac6c5227f6b6d5c4b9613c150d8e1fd26}{step\_\-100\_\-watch\_\-rib} ()
\begin{DoxyCompactList}\small\item\em Register with \hyperlink{classFinder}{Finder} to watch \hyperlink{classRIB}{RIB} birth and death events. \item\end{DoxyCompactList}\item 
\hypertarget{classShowDistancesProcessor_a588a9577aee6f4291a6b226319ca576a}{
void {\bfseries watch\_\-rib\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xe)}
\label{classShowDistancesProcessor_a588a9577aee6f4291a6b226319ca576a}

\item 
\hypertarget{classShowDistancesProcessor_ace1d36730fdfab2958c4e13647429a0d}{
void \hyperlink{classShowDistancesProcessor_ace1d36730fdfab2958c4e13647429a0d}{step\_\-200\_\-get\_\-admin\_\-distances} ()}
\label{classShowDistancesProcessor_ace1d36730fdfab2958c4e13647429a0d}

\begin{DoxyCompactList}\small\item\em Get all registered admin distances for \hyperlink{protocolthe-p}{the} selected \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
\hypertarget{classShowDistancesProcessor_ab3c97ad2d59cdb74322e5f6bdf4cf2c3}{
void {\bfseries get\_\-distances\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xe, const \hyperlink{classXrlAtomList}{XrlAtomList} $\ast$protocols, const \hyperlink{classXrlAtomList}{XrlAtomList} $\ast$distances)}
\label{classShowDistancesProcessor_ab3c97ad2d59cdb74322e5f6bdf4cf2c3}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classShowDistancesProcessor_a9af3cb8c40e50d3edd23935a7ff038fe}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-e}}
\label{classShowDistancesProcessor_a9af3cb8c40e50d3edd23935a7ff038fe}

\item 
\hypertarget{classShowDistancesProcessor_ab57de9697d12cc59150564182590413f}{
const \hyperlink{structShowDistancesOptions}{ShowDistancesOptions} \& {\bfseries \_\-opts}}
\label{classShowDistancesProcessor_ab57de9697d12cc59150564182590413f}

\item 
\hypertarget{classShowDistancesProcessor_a7f09dabcc22cf5ce84f7507c6ee23d13}{
\hyperlink{classXrlRouter}{XrlRouter} $\ast$ {\bfseries \_\-rtr}}
\label{classShowDistancesProcessor_a7f09dabcc22cf5ce84f7507c6ee23d13}

\item 
\hypertarget{classShowDistancesProcessor_a9cecf7e2532a937b789d37c66ceec33a}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-t}}
\label{classShowDistancesProcessor_a9cecf7e2532a937b789d37c66ceec33a}

\item 
\hypertarget{classShowDistancesProcessor_a5a97567862163c88e4311d43ed10b2b4}{
\hyperlink{classXorpTask}{XorpTask} {\bfseries \_\-task}}
\label{classShowDistancesProcessor_a5a97567862163c88e4311d43ed10b2b4}

\item 
\hypertarget{classShowDistancesProcessor_ab1c5adaf5e35858f3667142bb6cebbb3}{
multimap$<$ uint32\_\-t, string $>$ {\bfseries \_\-admin\_\-distances}}
\label{classShowDistancesProcessor_ab1c5adaf5e35858f3667142bb6cebbb3}

\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\hypertarget{classShowDistancesProcessor_a0faf5048e6987ddfa479bcafc0a296a1}{
\index{ShowDistancesProcessor@{ShowDistancesProcessor}!common\_\-0\_\-1\_\-get\_\-status@{common\_\-0\_\-1\_\-get\_\-status}}
\index{common\_\-0\_\-1\_\-get\_\-status@{common\_\-0\_\-1\_\-get\_\-status}!ShowDistancesProcessor@{ShowDistancesProcessor}}
\subsubsection[{common\_\-0\_\-1\_\-get\_\-status}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} ShowDistancesProcessor::common\_\-0\_\-1\_\-get\_\-status (
\begin{DoxyParamCaption}
\item[{uint32\_\-t \&}]{status, }
\item[{string \&}]{reason}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classShowDistancesProcessor_a0faf5048e6987ddfa479bcafc0a296a1}


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

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

Implements \hyperlink{structXrlShowDistancesTargetBase_a5ea726469de64975a04b75c544a94d23}{XrlShowDistancesTargetBase}.

\hypertarget{classShowDistancesProcessor_a582175083c6e49d44afb5bbf9757d14c}{
\index{ShowDistancesProcessor@{ShowDistancesProcessor}!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}!ShowDistancesProcessor@{ShowDistancesProcessor}}
\subsubsection[{common\_\-0\_\-1\_\-get\_\-target\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} ShowDistancesProcessor::common\_\-0\_\-1\_\-get\_\-target\_\-name (
\begin{DoxyParamCaption}
\item[{string \&}]{name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classShowDistancesProcessor_a582175083c6e49d44afb5bbf9757d14c}


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

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

Implements \hyperlink{structXrlShowDistancesTargetBase_a4242ab8999cf8e18a8e9e3b842f2d85e}{XrlShowDistancesTargetBase}.

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


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

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

Implements \hyperlink{structXrlShowDistancesTargetBase_a50dfc76df370393dddb5984d093665b0}{XrlShowDistancesTargetBase}.

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


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

Request clean shutdown of \hyperlink{classXrl}{Xrl} Target 

Implements \hyperlink{structXrlShowDistancesTargetBase_a3514550a699c5facfa044992e6ddff2f}{XrlShowDistancesTargetBase}.

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


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

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

Implements \hyperlink{structXrlShowDistancesTargetBase_abe285d80ffacb79e190831f8c1343f9b}{XrlShowDistancesTargetBase}.

\hypertarget{classShowDistancesProcessor_a53b06731a53236431e24fdaaaafa01aa}{
\index{ShowDistancesProcessor@{ShowDistancesProcessor}!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}!ShowDistancesProcessor@{ShowDistancesProcessor}}
\subsubsection[{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} ShowDistancesProcessor::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{classShowDistancesProcessor_a53b06731a53236431e24fdaaaafa01aa}


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{structXrlShowDistancesTargetBase_a0c9e44c4ad65e84abca32cde83e6085d}{XrlShowDistancesTargetBase}.

\hypertarget{classShowDistancesProcessor_a0f70f2438c5ed828d33e6a2a8d0bb6c6}{
\index{ShowDistancesProcessor@{ShowDistancesProcessor}!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}!ShowDistancesProcessor@{ShowDistancesProcessor}}
\subsubsection[{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} ShowDistancesProcessor::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{classShowDistancesProcessor_a0f70f2438c5ed828d33e6a2a8d0bb6c6}


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{structXrlShowDistancesTargetBase_acd046b575de1fc0898f3822f015aa796}{XrlShowDistancesTargetBase}.

\hypertarget{classShowDistancesProcessor_a284f7a865865e379ea424917e03ab4fd}{
\index{ShowDistancesProcessor@{ShowDistancesProcessor}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!ShowDistancesProcessor@{ShowDistancesProcessor}}
\subsubsection[{shutdown}]{\setlength{\rightskip}{0pt plus 5cm}int ShowDistancesProcessor::shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classShowDistancesProcessor_a284f7a865865e379ea424917e03ab4fd}


\hyperlink{classShutdown}{Shutdown} service. 

Service should transition from SERVICE\_\-RUNNING to SERVICE\_\-SHUTTING\_\-DOWN immediately and onto SERVICE\_\-SHUTDOWN or SERVICE\_\-FAILED in \hyperlink{protocolthe-p}{the} near future.

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implements \hyperlink{classServiceBase_a6ad34506fd5a446d5667abcb2e1b593b}{ServiceBase}.

\hypertarget{classShowDistancesProcessor_ab59bde30a8aecb27dbbcdc214e4dc396}{
\index{ShowDistancesProcessor@{ShowDistancesProcessor}!startup@{startup}}
\index{startup@{startup}!ShowDistancesProcessor@{ShowDistancesProcessor}}
\subsubsection[{startup}]{\setlength{\rightskip}{0pt plus 5cm}int ShowDistancesProcessor::startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classShowDistancesProcessor_ab59bde30a8aecb27dbbcdc214e4dc396}


Start service. 

Service should transition from SERVICE\_\-READY to SERVICE\_\-STARTING immediately and onto SERVICE\_\-RUNNING or SERVICE\_\-FAILED in \hyperlink{protocolthe-p}{the} near future.

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implements \hyperlink{classServiceBase_a791755872b2056ddd82a2f00904c7d2b}{ServiceBase}.

\hypertarget{classShowDistancesProcessor_ac6c5227f6b6d5c4b9613c150d8e1fd26}{
\index{ShowDistancesProcessor@{ShowDistancesProcessor}!step\_\-100\_\-watch\_\-rib@{step\_\-100\_\-watch\_\-rib}}
\index{step\_\-100\_\-watch\_\-rib@{step\_\-100\_\-watch\_\-rib}!ShowDistancesProcessor@{ShowDistancesProcessor}}
\subsubsection[{step\_\-100\_\-watch\_\-rib}]{\setlength{\rightskip}{0pt plus 5cm}void ShowDistancesProcessor::step\_\-100\_\-watch\_\-rib (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classShowDistancesProcessor_ac6c5227f6b6d5c4b9613c150d8e1fd26}


Register with \hyperlink{classFinder}{Finder} to watch \hyperlink{classRIB}{RIB} birth and death events. 

If \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} crashes we don't want to hang waiting for messages from \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} that will never arrive. 

The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/rib/tools/show\_\-distances.cc\end{DoxyCompactItemize}
