\hypertarget{classInterfaceMonitor}{
\section{InterfaceMonitor Class Reference}
\label{classInterfaceMonitor}\index{InterfaceMonitor@{InterfaceMonitor}}
}
Inheritance diagram for InterfaceMonitor:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.947368cm]{classInterfaceMonitor}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classInterfaceMonitor_a1b38d98642bdca3d306263f16ab8d79c}{InterfaceMonitor} (\hyperlink{classEventLoop}{EventLoop} \&eventloop, const string \&class\_\-name, const string \&finder\_\-hostname, uint16\_\-t finder\_\-port, const string \&fea\_\-target)
\begin{DoxyCompactList}\small\item\em \hyperlink{classInterfaceMonitor}{InterfaceMonitor} constructor. \item\end{DoxyCompactList}\item 
\hypertarget{classInterfaceMonitor_aa389fcaadee63a7b42b1b4754cc9f005}{
\hyperlink{classInterfaceMonitor_aa389fcaadee63a7b42b1b4754cc9f005}{$\sim$InterfaceMonitor} ()}
\label{classInterfaceMonitor_aa389fcaadee63a7b42b1b4754cc9f005}

\begin{DoxyCompactList}\small\item\em \hyperlink{classInterfaceMonitor}{InterfaceMonitor} destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classInterfaceMonitor_a69f4636decacbb13d6f4a92432cdceda}{startup} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classStartup}{Startup} operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classInterfaceMonitor_a147631a33362be5154883491f1d096f0}{shutdown} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} operation. \item\end{DoxyCompactList}\item 
void \hyperlink{classInterfaceMonitor_a836cc52e581e9ddc288c0f1e8ddc4c63}{print\_\-interfaces} (const string \&print\_\-iface\_\-name) const 
\begin{DoxyCompactList}\small\item\em Print information about network interfaces that was received from \hyperlink{protocolthe-p}{the} FEA. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classInterfaceMonitor_a0471b2869af582c950a416a5a3fe63f1}{
void {\bfseries tree\_\-complete} ()}
\label{classInterfaceMonitor_a0471b2869af582c950a416a5a3fe63f1}

\item 
\hypertarget{classInterfaceMonitor_af91b610046182685caee97eb2219536f}{
void {\bfseries updates\_\-made} ()}
\label{classInterfaceMonitor_af91b610046182685caee97eb2219536f}

\item 
\hypertarget{classInterfaceMonitor_a869f997120ddd7a88ab817691bb0b311}{
void {\bfseries incr\_\-startup\_\-requests\_\-n} ()}
\label{classInterfaceMonitor_a869f997120ddd7a88ab817691bb0b311}

\item 
\hypertarget{classInterfaceMonitor_ab5fc3ba5d68e33c192a1400f2fb917e7}{
void {\bfseries decr\_\-startup\_\-requests\_\-n} ()}
\label{classInterfaceMonitor_ab5fc3ba5d68e33c192a1400f2fb917e7}

\item 
\hypertarget{classInterfaceMonitor_a65aec60fb9c5dfd0ed3a5725498fd0e6}{
void {\bfseries incr\_\-shutdown\_\-requests\_\-n} ()}
\label{classInterfaceMonitor_a65aec60fb9c5dfd0ed3a5725498fd0e6}

\item 
\hypertarget{classInterfaceMonitor_ad22c9b0603a88d9c0e92aca05004c548}{
void {\bfseries decr\_\-shutdown\_\-requests\_\-n} ()}
\label{classInterfaceMonitor_ad22c9b0603a88d9c0e92aca05004c548}

\item 
\hypertarget{classInterfaceMonitor_a8e1f61d2ec1a5b12706365fbb4136fd3}{
void {\bfseries update\_\-status} ()}
\label{classInterfaceMonitor_a8e1f61d2ec1a5b12706365fbb4136fd3}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classInterfaceMonitor_a46f1c7e02218da90a927c9aa7c8b3544}{status\_\-change} (\hyperlink{classServiceBase}{ServiceBase} $\ast$service, ServiceStatus old\_\-status, ServiceStatus new\_\-status)
\begin{DoxyCompactList}\small\item\em A method invoked when \hyperlink{protocolthe-p}{the} status of a service changes. \item\end{DoxyCompactList}\item 
const \hyperlink{classServiceBase}{ServiceBase} $\ast$ \hyperlink{classInterfaceMonitor_abe2ab134959e60df6b88afe77c4a5c80}{ifmgr\_\-mirror\_\-service\_\-base} () const 
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. \item\end{DoxyCompactList}\item 
const \hyperlink{classIfMgrIfTree}{IfMgrIfTree} \& \hyperlink{classInterfaceMonitor_a84193b5419eea40d6c03ab1010e992a9}{ifmgr\_\-iftree} () const 
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} interface manager tree. \item\end{DoxyCompactList}\item 
int \hyperlink{classInterfaceMonitor_aed4499612b305b89e351c1e27fdfdf82}{ifmgr\_\-startup} ()
\begin{DoxyCompactList}\small\item\em Initiate startup of \hyperlink{protocolthe-p}{the} interface manager. \item\end{DoxyCompactList}\item 
int \hyperlink{classInterfaceMonitor_a519d5e75f33a151fad265d63c4c1f223}{ifmgr\_\-shutdown} ()
\begin{DoxyCompactList}\small\item\em Initiate shutdown of \hyperlink{protocolthe-p}{the} interface manager. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classInterfaceMonitor_a8e880201f9858a416a8f9ce343c053e0}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classInterfaceMonitor_a8e880201f9858a416a8f9ce343c053e0}

\item 
\hypertarget{classInterfaceMonitor_a202a5dd3828417c3bdb0178b3f93c506}{
\hyperlink{classIfMgrXrlMirror}{IfMgrXrlMirror} {\bfseries \_\-ifmgr}}
\label{classInterfaceMonitor_a202a5dd3828417c3bdb0178b3f93c506}

\item 
\hypertarget{classInterfaceMonitor_af1503b1f6e6e625329e5374f14b9f68a}{
size\_\-t {\bfseries \_\-startup\_\-requests\_\-n}}
\label{classInterfaceMonitor_af1503b1f6e6e625329e5374f14b9f68a}

\item 
\hypertarget{classInterfaceMonitor_ac62cc40d3f3ce238815701cc8320a63a}{
size\_\-t {\bfseries \_\-shutdown\_\-requests\_\-n}}
\label{classInterfaceMonitor_ac62cc40d3f3ce238815701cc8320a63a}

\end{DoxyCompactItemize}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{classInterfaceMonitor_a1b38d98642bdca3d306263f16ab8d79c}{
\index{InterfaceMonitor@{InterfaceMonitor}!InterfaceMonitor@{InterfaceMonitor}}
\index{InterfaceMonitor@{InterfaceMonitor}!InterfaceMonitor@{InterfaceMonitor}}
\subsubsection[{InterfaceMonitor}]{\setlength{\rightskip}{0pt plus 5cm}InterfaceMonitor::InterfaceMonitor (
\begin{DoxyParamCaption}
\item[{{\bf EventLoop} \&}]{eventloop, }
\item[{const string \&}]{class\_\-name, }
\item[{const string \&}]{finder\_\-hostname, }
\item[{uint16\_\-t}]{finder\_\-port, }
\item[{const string \&}]{fea\_\-target}
\end{DoxyParamCaption}
)}}
\label{classInterfaceMonitor_a1b38d98642bdca3d306263f16ab8d79c}


\hyperlink{classInterfaceMonitor}{InterfaceMonitor} constructor. 


\begin{DoxyParams}{Parameters}
{\em eventloop} & this process's \hyperlink{classEventLoop}{EventLoop}. \\
\hline
{\em class\_\-name} & \hyperlink{protocolthe-p}{the} XRL class name of this target. \\
\hline
{\em finder\_\-hostname} & \hyperlink{protocolthe-p}{the} finder's host name. \\
\hline
{\em finder\_\-port} & \hyperlink{protocolthe-p}{the} finder's port. \\
\hline
{\em fea\_\-target} & \hyperlink{protocolthe-p}{the} FEA target name. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classInterfaceMonitor_a84193b5419eea40d6c03ab1010e992a9}{
\index{InterfaceMonitor@{InterfaceMonitor}!ifmgr\_\-iftree@{ifmgr\_\-iftree}}
\index{ifmgr\_\-iftree@{ifmgr\_\-iftree}!InterfaceMonitor@{InterfaceMonitor}}
\subsubsection[{ifmgr\_\-iftree}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IfMgrIfTree}\& InterfaceMonitor::ifmgr\_\-iftree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classInterfaceMonitor_a84193b5419eea40d6c03ab1010e992a9}


Get a reference to \hyperlink{protocolthe-p}{the} interface manager tree. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} interface manager tree. 
\end{DoxyReturn}
\hypertarget{classInterfaceMonitor_abe2ab134959e60df6b88afe77c4a5c80}{
\index{InterfaceMonitor@{InterfaceMonitor}!ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}}
\index{ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}!InterfaceMonitor@{InterfaceMonitor}}
\subsubsection[{ifmgr\_\-mirror\_\-service\_\-base}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf ServiceBase}$\ast$ InterfaceMonitor::ifmgr\_\-mirror\_\-service\_\-base (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classInterfaceMonitor_abe2ab134959e60df6b88afe77c4a5c80}


Get a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. 
\end{DoxyReturn}
\hypertarget{classInterfaceMonitor_a519d5e75f33a151fad265d63c4c1f223}{
\index{InterfaceMonitor@{InterfaceMonitor}!ifmgr\_\-shutdown@{ifmgr\_\-shutdown}}
\index{ifmgr\_\-shutdown@{ifmgr\_\-shutdown}!InterfaceMonitor@{InterfaceMonitor}}
\subsubsection[{ifmgr\_\-shutdown}]{\setlength{\rightskip}{0pt plus 5cm}int InterfaceMonitor::ifmgr\_\-shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classInterfaceMonitor_a519d5e75f33a151fad265d63c4c1f223}


Initiate shutdown of \hyperlink{protocolthe-p}{the} interface manager. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classInterfaceMonitor_aed4499612b305b89e351c1e27fdfdf82}{
\index{InterfaceMonitor@{InterfaceMonitor}!ifmgr\_\-startup@{ifmgr\_\-startup}}
\index{ifmgr\_\-startup@{ifmgr\_\-startup}!InterfaceMonitor@{InterfaceMonitor}}
\subsubsection[{ifmgr\_\-startup}]{\setlength{\rightskip}{0pt plus 5cm}int InterfaceMonitor::ifmgr\_\-startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classInterfaceMonitor_aed4499612b305b89e351c1e27fdfdf82}


Initiate startup of \hyperlink{protocolthe-p}{the} interface manager. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classInterfaceMonitor_a836cc52e581e9ddc288c0f1e8ddc4c63}{
\index{InterfaceMonitor@{InterfaceMonitor}!print\_\-interfaces@{print\_\-interfaces}}
\index{print\_\-interfaces@{print\_\-interfaces}!InterfaceMonitor@{InterfaceMonitor}}
\subsubsection[{print\_\-interfaces}]{\setlength{\rightskip}{0pt plus 5cm}void InterfaceMonitor::print\_\-interfaces (
\begin{DoxyParamCaption}
\item[{const string \&}]{print\_\-iface\_\-name}
\end{DoxyParamCaption}
) const}}
\label{classInterfaceMonitor_a836cc52e581e9ddc288c0f1e8ddc4c63}


Print information about network interfaces that was received from \hyperlink{protocolthe-p}{the} FEA. 


\begin{DoxyParams}{Parameters}
{\em print\_\-iface\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to print. If it is \hyperlink{protocolthe-p}{the} empty string, then print information about all configured interfaces. \\
\hline
\end{DoxyParams}
\hypertarget{classInterfaceMonitor_a147631a33362be5154883491f1d096f0}{
\index{InterfaceMonitor@{InterfaceMonitor}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!InterfaceMonitor@{InterfaceMonitor}}
\subsubsection[{shutdown}]{\setlength{\rightskip}{0pt plus 5cm}int InterfaceMonitor::shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classInterfaceMonitor_a147631a33362be5154883491f1d096f0}


\hyperlink{classShutdown}{Shutdown} operation. 

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


Implements \hyperlink{classServiceBase_a6ad34506fd5a446d5667abcb2e1b593b}{ServiceBase}.

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


\hyperlink{classStartup}{Startup} operation. 

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


Implements \hyperlink{classServiceBase_a791755872b2056ddd82a2f00904c7d2b}{ServiceBase}.

\hypertarget{classInterfaceMonitor_a46f1c7e02218da90a927c9aa7c8b3544}{
\index{InterfaceMonitor@{InterfaceMonitor}!status\_\-change@{status\_\-change}}
\index{status\_\-change@{status\_\-change}!InterfaceMonitor@{InterfaceMonitor}}
\subsubsection[{status\_\-change}]{\setlength{\rightskip}{0pt plus 5cm}void InterfaceMonitor::status\_\-change (
\begin{DoxyParamCaption}
\item[{{\bf ServiceBase} $\ast$}]{service, }
\item[{ServiceStatus}]{old\_\-status, }
\item[{ServiceStatus}]{new\_\-status}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classInterfaceMonitor_a46f1c7e02218da90a927c9aa7c8b3544}


A method invoked when \hyperlink{protocolthe-p}{the} status of a service changes. 


\begin{DoxyParams}{Parameters}
{\em service} & \hyperlink{protocolthe-p}{the} service whose status has changed. \\
\hline
{\em old\_\-status} & \hyperlink{protocolthe-p}{the} old status. \\
\hline
{\em new\_\-status} & \hyperlink{protocolthe-p}{the} new status. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classServiceChangeObserverBase}{ServiceChangeObserverBase}.



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