\hypertarget{classNhLookupTable}{
\section{NhLookupTable$<$ A $>$ Class Template Reference}
\label{classNhLookupTable}\index{NhLookupTable@{NhLookupTable}}
}
Inheritance diagram for NhLookupTable$<$ A $>$:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classNhLookupTable}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classNhLookupTable_a0dcf51dd3fb8edac8b0d73d3f5f18344}{
{\bfseries NhLookupTable} (string tablename, Safi safi, \hyperlink{classNextHopResolver}{NextHopResolver}$<$ A $>$ $\ast$nexthop\_\-resolver, \hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$parent)}
\label{classNhLookupTable_a0dcf51dd3fb8edac8b0d73d3f5f18344}

\item 
\hypertarget{classNhLookupTable_a097303a61de0cbc651317fc5f9635048}{
int {\bfseries add\_\-route} (\hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&rtmsg, \hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$caller)}
\label{classNhLookupTable_a097303a61de0cbc651317fc5f9635048}

\item 
\hypertarget{classNhLookupTable_aa706bfe089d0230940dd09cd5566d9ad}{
int {\bfseries replace\_\-route} (\hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&old\_\-rtmsg, \hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&new\_\-rtmsg, \hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$caller)}
\label{classNhLookupTable_aa706bfe089d0230940dd09cd5566d9ad}

\item 
\hypertarget{classNhLookupTable_a32d116817be7b73144ec6a2cc4476eed}{
int {\bfseries delete\_\-route} (\hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&rtmsg, \hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$caller)}
\label{classNhLookupTable_a32d116817be7b73144ec6a2cc4476eed}

\item 
\hypertarget{classNhLookupTable_a09aa8dd7686c837b6982067f87b4397b}{
int {\bfseries push} (\hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$caller)}
\label{classNhLookupTable_a09aa8dd7686c837b6982067f87b4397b}

\item 
\hypertarget{classNhLookupTable_a01349812151faff99601eaf017749706}{
const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ A $>$ $\ast$ {\bfseries lookup\_\-route} (const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net, uint32\_\-t \&genid, FPAListRef \&pa\_\-list) const }
\label{classNhLookupTable_a01349812151faff99601eaf017749706}

\item 
\hypertarget{classNhLookupTable_af7e90bc46403648f7002a06540514314}{
void {\bfseries route\_\-used} (const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ A $>$ $\ast$route, bool in\_\-use)}
\label{classNhLookupTable_af7e90bc46403648f7002a06540514314}

\item 
\hypertarget{classNhLookupTable_afcae91b4839f5a30b24e916153bedab3}{
virtual void {\bfseries RIB\_\-lookup\_\-done} (const A \&nexthop, const set$<$ \hyperlink{classIPNet}{IPNet}$<$ A $>$ $>$ \&nets, bool lookup\_\-succeeded)}
\label{classNhLookupTable_afcae91b4839f5a30b24e916153bedab3}

\item 
\hypertarget{classNhLookupTable_a553aaa0a49a8226a018336772d930821}{
RouteTableType {\bfseries type} () const }
\label{classNhLookupTable_a553aaa0a49a8226a018336772d930821}

\item 
\hypertarget{classNhLookupTable_af44f00aa52ae552a7800d9016fb14041}{
string {\bfseries str} () const }
\label{classNhLookupTable_af44f00aa52ae552a7800d9016fb14041}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classNhLookupTable_a5f58bceba3231704bf3cefa3cd6e6dc5}{
void \hyperlink{classNhLookupTable_a5f58bceba3231704bf3cefa3cd6e6dc5}{add\_\-to\_\-queue} (const A \&nexthop, const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net, \hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ $\ast$new\_\-msg, \hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ $\ast$old\_\-msg)}
\label{classNhLookupTable_a5f58bceba3231704bf3cefa3cd6e6dc5}

\begin{DoxyCompactList}\small\item\em Add \hyperlink{protocolthe-p}{the} message queue entry to both queues. \item\end{DoxyCompactList}\item 
\hyperlink{classMessageQueueEntry}{MessageQueueEntry}$<$ A $>$ $\ast$ \hyperlink{classNhLookupTable_aae9b25e5c4af8d489553db41b99dcdfc}{lookup\_\-in\_\-queue} (const A \&nexthop, const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net) const 
\begin{DoxyCompactList}\small\item\em Lookup subnet in \hyperlink{protocolthe-p}{the} \_\-queue\_\-by\_\-net. \item\end{DoxyCompactList}\item 
\hypertarget{classNhLookupTable_a037c11f463009ddcc93c2eea92a3371d}{
void \hyperlink{classNhLookupTable_a037c11f463009ddcc93c2eea92a3371d}{remove\_\-from\_\-queue} (const A \&nexthop, const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net)}
\label{classNhLookupTable_a037c11f463009ddcc93c2eea92a3371d}

\begin{DoxyCompactList}\small\item\em Find \hyperlink{protocolthe-p}{the} message queue entry and remove from both queues. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classNhLookupTable_a05f86aa3022c8c5184d0a7c2389c7e0d}{
\hyperlink{classRefTrie}{RefTrie}$<$ A, \hyperlink{classMessageQueueEntry}{MessageQueueEntry}$<$ A $>$ $>$ {\bfseries \_\-queue\_\-by\_\-net}}
\label{classNhLookupTable_a05f86aa3022c8c5184d0a7c2389c7e0d}

\item 
\hypertarget{classNhLookupTable_afbefdb948888dc58cf212017ebbe2715}{
multimap$<$ A, \hyperlink{classMessageQueueEntry}{MessageQueueEntry}$<$ A $>$ $\ast$ $>$ {\bfseries \_\-queue\_\-by\_\-nexthop}}
\label{classNhLookupTable_afbefdb948888dc58cf212017ebbe2715}

\item 
\hypertarget{classNhLookupTable_a5713acd7aabeb1957d077a62becb940f}{
\hyperlink{classNextHopResolver}{NextHopResolver}$<$ A $>$ $\ast$ {\bfseries \_\-next\_\-hop\_\-resolver}}
\label{classNhLookupTable_a5713acd7aabeb1957d077a62becb940f}

\end{DoxyCompactItemize}
\subsubsection*{template$<$class A$>$ class NhLookupTable$<$ A $>$}



\subsection{Member Function Documentation}
\hypertarget{classNhLookupTable_aae9b25e5c4af8d489553db41b99dcdfc}{
\index{NhLookupTable@{NhLookupTable}!lookup\_\-in\_\-queue@{lookup\_\-in\_\-queue}}
\index{lookup\_\-in\_\-queue@{lookup\_\-in\_\-queue}!NhLookupTable@{NhLookupTable}}
\subsubsection[{lookup\_\-in\_\-queue}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A $>$ {\bf MessageQueueEntry}$<$ A $>$ $\ast$ {\bf NhLookupTable}$<$ A $>$::lookup\_\-in\_\-queue (
\begin{DoxyParamCaption}
\item[{const A \&}]{nexthop, }
\item[{const {\bf IPNet}$<$ A $>$ \&}]{net}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classNhLookupTable_aae9b25e5c4af8d489553db41b99dcdfc}


Lookup subnet in \hyperlink{protocolthe-p}{the} \_\-queue\_\-by\_\-net. 


\begin{DoxyParams}{Parameters}
{\em nexthop} & if non zero compare against \hyperlink{protocolthe-p}{the} net that is found. \\
\hline
{\em net} & to lookup. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a message queue entry if found else zero. 
\end{DoxyReturn}


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