\hypertarget{classMribTable}{
\section{MribTable Class Reference}
\label{classMribTable}\index{MribTable@{MribTable}}
}


Base class for \hyperlink{protocolthe-p}{the} Multicast \hyperlink{classRouting}{Routing} Information Base Table.  




{\ttfamily \#include $<$mrib\_\-table.hh$>$}

Inheritance diagram for MribTable:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classMribTable}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classMribTable_1_1PendingTransaction}{PendingTransaction}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classMribTable_a8c339f2dd6edff354a62fae828420559}{
typedef \hyperlink{classMribTableIterator}{MribTableIterator} {\bfseries iterator}}
\label{classMribTable_a8c339f2dd6edff354a62fae828420559}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classMribTable_a54590e232606300e69850f3ffcc2065f}{MribTable} (int family)
\begin{DoxyCompactList}\small\item\em Constructor for table of a given address family. \item\end{DoxyCompactList}\item 
\hyperlink{classMribTable_ab0cf31e1a3218ded8b91e142f19d94b5}{$\sim$MribTable} ()
\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classMribTable_a1dc7dabd1fe10cc688d1f1e8656cf631}{family} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address family. \item\end{DoxyCompactList}\item 
\hypertarget{classMribTable_a9e00766deeab9e635498398eb7242aa5}{
void \hyperlink{classMribTable_a9e00766deeab9e635498398eb7242aa5}{clear} ()}
\label{classMribTable_a9e00766deeab9e635498398eb7242aa5}

\begin{DoxyCompactList}\small\item\em Remove all entries and pending transactions (make \hyperlink{protocolthe-p}{the} container empty). \item\end{DoxyCompactList}\item 
\hypertarget{classMribTable_ae61592a85df1b5d6dbf041aa276f4034}{
void \hyperlink{classMribTable_ae61592a85df1b5d6dbf041aa276f4034}{remove\_\-all\_\-entries} ()}
\label{classMribTable_ae61592a85df1b5d6dbf041aa276f4034}

\begin{DoxyCompactList}\small\item\em Remove all entries. \item\end{DoxyCompactList}\item 
list$<$ \hyperlink{classMrib}{Mrib} $\ast$ $>$ \& \hyperlink{classMribTable_ac2ec10588ef745ea8d351f1e82f48d63}{removed\_\-mrib\_\-entries} ()
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} list with removed \hyperlink{classMrib}{Mrib} entries. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMribTable_a5e02b2c61108d395a10ca4deebd6f580}{is\_\-preserving\_\-removed\_\-mrib\_\-entries} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} removed \hyperlink{classMrib}{Mrib} entries are preserved or deleted. \item\end{DoxyCompactList}\item 
void \hyperlink{classMribTable_a760f0a2dd39d716b0f9607a2dcd24b72}{set\_\-is\_\-preserving\_\-removed\_\-mrib\_\-entries} (bool v)
\begin{DoxyCompactList}\small\item\em Enable or disable \hyperlink{protocolthe-p}{the} preserving of \hyperlink{protocolthe-p}{the} removed \hyperlink{classMrib}{Mrib} entries. \item\end{DoxyCompactList}\item 
\hyperlink{classMrib}{Mrib} $\ast$ \hyperlink{classMribTable_ad9306bd41da3bef63532649ad0fadcad}{insert} (const \hyperlink{classMrib}{Mrib} \&mrib)
\begin{DoxyCompactList}\small\item\em Insert a copy of a \hyperlink{classMrib}{Mrib} entry. \item\end{DoxyCompactList}\item 
void \hyperlink{classMribTable_ad624237dacbfdc63a936bc1567df2357}{remove} (const \hyperlink{classIPvXNet}{IPvXNet} \&dest\_\-prefix)
\begin{DoxyCompactList}\small\item\em Remove from \hyperlink{protocolthe-p}{the} table a \hyperlink{classMrib}{Mrib} entry for a given destination prefix. \item\end{DoxyCompactList}\item 
void \hyperlink{classMribTable_ab143b20d919498e3dc0e21b4c1eea534}{remove} (const \hyperlink{classMrib}{Mrib} \&mrib)
\begin{DoxyCompactList}\small\item\em Remove a \hyperlink{classMrib}{Mrib} entry from \hyperlink{protocolthe-p}{the} table. \item\end{DoxyCompactList}\item 
\hyperlink{classMrib}{Mrib} $\ast$ \hyperlink{classMribTable_a2a6617759a4ce228530f9a83b2bf6857}{find} (const \hyperlink{classIPvX}{IPvX} \&address) const 
\begin{DoxyCompactList}\small\item\em Find \hyperlink{protocolthe-p}{the} longest prefix match for an address. \item\end{DoxyCompactList}\item 
\hyperlink{classMrib}{Mrib} $\ast$ \hyperlink{classMribTable_ad68eab3054f88f7d51e68dfa6d9e49a5}{find\_\-exact} (const \hyperlink{classIPvXNet}{IPvXNet} \&dest\_\-prefix) const 
\begin{DoxyCompactList}\small\item\em Find an exact match for a network address prefix. \item\end{DoxyCompactList}\item 
\hyperlink{classMribTableIterator}{iterator} \hyperlink{classMribTable_ae4690575cba759612e90ef2753cabee1}{begin} () const 
\begin{DoxyCompactList}\small\item\em Get an iterator for \hyperlink{protocolthe-p}{the} first element. \item\end{DoxyCompactList}\item 
\hyperlink{classMribTableIterator}{iterator} \hyperlink{classMribTable_ac61f566a353b45c17379e3b753220eba}{end} () const 
\begin{DoxyCompactList}\small\item\em Get an iterator for \hyperlink{protocolthe-p}{the} last element. \item\end{DoxyCompactList}\item 
void \hyperlink{classMribTable_a7ef5ce38a7fbc12aa73d369b4bf6f66a}{update\_\-entry\_\-vif\_\-index} (const \hyperlink{classIPvXNet}{IPvXNet} \&dest\_\-prefix, uint32\_\-t vif\_\-index)
\begin{DoxyCompactList}\small\item\em Update \hyperlink{protocolthe-p}{the} vif index of a \hyperlink{classMrib}{Mrib} entry. \item\end{DoxyCompactList}\item 
void \hyperlink{classMribTable_aeea5d9990342b9e383839f62b5226037}{add\_\-pending\_\-insert} (uint32\_\-t tid, const \hyperlink{classMrib}{Mrib} \&mrib)
\begin{DoxyCompactList}\small\item\em Add a pending transaction to insert a \hyperlink{classMrib}{Mrib} entry from \hyperlink{protocolthe-p}{the} table. \item\end{DoxyCompactList}\item 
void \hyperlink{classMribTable_a37697de3da375bbc427ea2bbd655d4cf}{add\_\-pending\_\-remove} (uint32\_\-t tid, const \hyperlink{classMrib}{Mrib} \&mrib)
\begin{DoxyCompactList}\small\item\em Add a pending transaction to remove a \hyperlink{classMrib}{Mrib} entry from \hyperlink{protocolthe-p}{the} table. \item\end{DoxyCompactList}\item 
void \hyperlink{classMribTable_aae0da55cd4f433a8b987ca8ce6511860}{add\_\-pending\_\-remove\_\-all\_\-entries} (uint32\_\-t tid)
\begin{DoxyCompactList}\small\item\em Add a pending transaction to remove all \hyperlink{classMrib}{Mrib} entries from \hyperlink{protocolthe-p}{the} table. \item\end{DoxyCompactList}\item 
void \hyperlink{classMribTable_ac795b6ac356cf1a612ff36924451ff87}{commit\_\-pending\_\-transactions} (uint32\_\-t tid)
\begin{DoxyCompactList}\small\item\em Commit pending transactions for adding or removing \hyperlink{classMrib}{Mrib} entries for a given transaction ID. \item\end{DoxyCompactList}\item 
void \hyperlink{classMribTable_aaf50d02bcf8dabb04e51f34cc1cbb80a}{abort\_\-pending\_\-transactions} (uint32\_\-t tid)
\begin{DoxyCompactList}\small\item\em Abort pending transactions for adding or removing \hyperlink{classMrib}{Mrib} entries for a given transaction ID. \item\end{DoxyCompactList}\item 
\hypertarget{classMribTable_ab738fd4098070e890b3d57607427b5ea}{
void \hyperlink{classMribTable_ab738fd4098070e890b3d57607427b5ea}{abort\_\-all\_\-pending\_\-transactions} ()}
\label{classMribTable_ab738fd4098070e890b3d57607427b5ea}

\begin{DoxyCompactList}\small\item\em Abort all pending transactions for adding or remove \hyperlink{classMrib}{Mrib} entries. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classMribTable_a428c051c3e6fa94992ad16f85241f5d2}{size} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} number of \hyperlink{classMrib}{Mrib} entries in \hyperlink{protocolthe-p}{the} table. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classMribTable_a747f761a5e1034da7620014d63a24a9f}{remove\_\-mrib\_\-entry} (\hyperlink{classMrib}{Mrib} $\ast$mrib)
\begin{DoxyCompactList}\small\item\em Remove a \hyperlink{classMrib}{Mrib} entry from \hyperlink{protocolthe-p}{the} table. \item\end{DoxyCompactList}\item 
\hyperlink{classMribLookup}{MribLookup} $\ast$ \hyperlink{classMribTable_a38f9223db5ca45d93ee51308e73fd461}{find\_\-prefix\_\-mrib\_\-lookup} (const \hyperlink{classIPvXNet}{IPvXNet} \&addr\_\-prefix) const 
\begin{DoxyCompactList}\small\item\em Find an exact MribLookip match. \item\end{DoxyCompactList}\item 
void \hyperlink{classMribTable_ad089a1c2725d6b00054bd662b773f4ff}{remove\_\-mrib\_\-lookup} (\hyperlink{classMribLookup}{MribLookup} $\ast$mrib\_\-lookup)
\begin{DoxyCompactList}\small\item\em Remove a subtree of entries in \hyperlink{protocolthe-p}{the} table. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classMribTable_a2c2faeaa4f13de662d30ad95c606d530}{
int {\bfseries \_\-family}}
\label{classMribTable_a2c2faeaa4f13de662d30ad95c606d530}

\item 
\hypertarget{classMribTable_a6e9fd7257fc597fd4d8c87f91dbe9140}{
\hyperlink{classMribLookup}{MribLookup} $\ast$ {\bfseries \_\-mrib\_\-lookup\_\-root}}
\label{classMribTable_a6e9fd7257fc597fd4d8c87f91dbe9140}

\item 
\hypertarget{classMribTable_ae2ed0f1f350c055151162489f947b3f9}{
size\_\-t {\bfseries \_\-mrib\_\-lookup\_\-size}}
\label{classMribTable_ae2ed0f1f350c055151162489f947b3f9}

\item 
\hypertarget{classMribTable_a7a3e56c14db786ce8e14c333f4e92708}{
size\_\-t {\bfseries \_\-mrib\_\-size}}
\label{classMribTable_a7a3e56c14db786ce8e14c333f4e92708}

\item 
\hypertarget{classMribTable_a2635d0a960d611401f34c225c07e2f2e}{
list$<$ \hyperlink{classMribTable_1_1PendingTransaction}{PendingTransaction} $>$ {\bfseries \_\-mrib\_\-pending\_\-transactions}}
\label{classMribTable_a2635d0a960d611401f34c225c07e2f2e}

\item 
\hypertarget{classMribTable_a2f2d517eccf302327d5b8ff68f442f88}{
bool {\bfseries \_\-is\_\-preserving\_\-removed\_\-mrib\_\-entries}}
\label{classMribTable_a2f2d517eccf302327d5b8ff68f442f88}

\item 
\hypertarget{classMribTable_a525d25fa108136387dbd4a36c1686228}{
list$<$ \hyperlink{classMrib}{Mrib} $\ast$ $>$ {\bfseries \_\-removed\_\-mrib\_\-entries}}
\label{classMribTable_a525d25fa108136387dbd4a36c1686228}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Base class for \hyperlink{protocolthe-p}{the} Multicast \hyperlink{classRouting}{Routing} Information Base Table. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classMribTable_a54590e232606300e69850f3ffcc2065f}{
\index{MribTable@{MribTable}!MribTable@{MribTable}}
\index{MribTable@{MribTable}!MribTable@{MribTable}}
\subsubsection[{MribTable}]{\setlength{\rightskip}{0pt plus 5cm}MribTable::MribTable (
\begin{DoxyParamCaption}
\item[{int}]{family}
\end{DoxyParamCaption}
)}}
\label{classMribTable_a54590e232606300e69850f3ffcc2065f}


Constructor for table of a given address family. 

\hyperlink{classMribTable_a54590e232606300e69850f3ffcc2065f}{MribTable::MribTable}: : The address family (e.g., AF\_\-INET or AF\_\-INET6).


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family.\\
\hline
\end{DoxyParams}
\hyperlink{classMribTable}{MribTable} constructor. \hypertarget{classMribTable_ab0cf31e1a3218ded8b91e142f19d94b5}{
\index{MribTable@{MribTable}!$\sim$MribTable@{$\sim$MribTable}}
\index{$\sim$MribTable@{$\sim$MribTable}!MribTable@{MribTable}}
\subsubsection[{$\sim$MribTable}]{\setlength{\rightskip}{0pt plus 5cm}MribTable::$\sim$MribTable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMribTable_ab0cf31e1a3218ded8b91e142f19d94b5}


Destructor. 

\hyperlink{classMribTable_ab0cf31e1a3218ded8b91e142f19d94b5}{MribTable::$\sim$MribTable}: @:

\hyperlink{classMribTable}{MribTable} destructor. Remove and delete all MRIB entries and cleanup. 

\subsection{Member Function Documentation}
\hypertarget{classMribTable_aaf50d02bcf8dabb04e51f34cc1cbb80a}{
\index{MribTable@{MribTable}!abort\_\-pending\_\-transactions@{abort\_\-pending\_\-transactions}}
\index{abort\_\-pending\_\-transactions@{abort\_\-pending\_\-transactions}!MribTable@{MribTable}}
\subsubsection[{abort\_\-pending\_\-transactions}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::abort\_\-pending\_\-transactions (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{tid}
\end{DoxyParamCaption}
)}}
\label{classMribTable_aaf50d02bcf8dabb04e51f34cc1cbb80a}


Abort pending transactions for adding or removing \hyperlink{classMrib}{Mrib} entries for a given transaction ID. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID of \hyperlink{protocolthe-p}{the} entries to abort. \\
\hline
\end{DoxyParams}
\hypertarget{classMribTable_aeea5d9990342b9e383839f62b5226037}{
\index{MribTable@{MribTable}!add\_\-pending\_\-insert@{add\_\-pending\_\-insert}}
\index{add\_\-pending\_\-insert@{add\_\-pending\_\-insert}!MribTable@{MribTable}}
\subsubsection[{add\_\-pending\_\-insert}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::add\_\-pending\_\-insert (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{tid, }
\item[{const {\bf Mrib} \&}]{mrib}
\end{DoxyParamCaption}
)}}
\label{classMribTable_aeea5d9990342b9e383839f62b5226037}


Add a pending transaction to insert a \hyperlink{classMrib}{Mrib} entry from \hyperlink{protocolthe-p}{the} table. 

The operation is added to \hyperlink{protocolthe-p}{the} list of pending transactions, but \hyperlink{protocolthe-p}{the} entry itself is not added to \hyperlink{protocolthe-p}{the} table (until \hyperlink{classMribTable_ac795b6ac356cf1a612ff36924451ff87}{MribTable::commit\_\-pending\_\-transactions()} is called).


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID. \\
\hline
{\em mrib} & \hyperlink{protocolthe-p}{the} \hyperlink{classMrib}{Mrib} entry that contains \hyperlink{protocolthe-p}{the} information about \hyperlink{protocolthe-p}{the} entry to add. \\
\hline
\end{DoxyParams}
\hypertarget{classMribTable_a37697de3da375bbc427ea2bbd655d4cf}{
\index{MribTable@{MribTable}!add\_\-pending\_\-remove@{add\_\-pending\_\-remove}}
\index{add\_\-pending\_\-remove@{add\_\-pending\_\-remove}!MribTable@{MribTable}}
\subsubsection[{add\_\-pending\_\-remove}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::add\_\-pending\_\-remove (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{tid, }
\item[{const {\bf Mrib} \&}]{mrib}
\end{DoxyParamCaption}
)}}
\label{classMribTable_a37697de3da375bbc427ea2bbd655d4cf}


Add a pending transaction to remove a \hyperlink{classMrib}{Mrib} entry from \hyperlink{protocolthe-p}{the} table. 

\hyperlink{protocolthe-p}{the} operation is added to \hyperlink{protocolthe-p}{the} list of pending transaction, but \hyperlink{protocolthe-p}{the} entry itself is not removed from \hyperlink{protocolthe-p}{the} table (until \hyperlink{classMribTable_ac795b6ac356cf1a612ff36924451ff87}{MribTable::commit\_\-pending\_\-transactions()} is called).


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID. \\
\hline
{\em mrib} & \hyperlink{protocolthe-p}{the} \hyperlink{classMrib}{Mrib} entry that contains \hyperlink{protocolthe-p}{the} information about \hyperlink{protocolthe-p}{the} entry to remove. \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classPimMribTable_afa836c62eecae69f947ea2de09e00365}{PimMribTable}.

\hypertarget{classMribTable_aae0da55cd4f433a8b987ca8ce6511860}{
\index{MribTable@{MribTable}!add\_\-pending\_\-remove\_\-all\_\-entries@{add\_\-pending\_\-remove\_\-all\_\-entries}}
\index{add\_\-pending\_\-remove\_\-all\_\-entries@{add\_\-pending\_\-remove\_\-all\_\-entries}!MribTable@{MribTable}}
\subsubsection[{add\_\-pending\_\-remove\_\-all\_\-entries}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::add\_\-pending\_\-remove\_\-all\_\-entries (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{tid}
\end{DoxyParamCaption}
)}}
\label{classMribTable_aae0da55cd4f433a8b987ca8ce6511860}


Add a pending transaction to remove all \hyperlink{classMrib}{Mrib} entries from \hyperlink{protocolthe-p}{the} table. 

\hyperlink{protocolthe-p}{the} operation is added to \hyperlink{protocolthe-p}{the} list of pending transaction, but \hyperlink{protocolthe-p}{the} entries themselves is not removed from \hyperlink{protocolthe-p}{the} table (until \hyperlink{classMribTable_ac795b6ac356cf1a612ff36924451ff87}{MribTable::commit\_\-pending\_\-transactions()} is called).


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID. \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classPimMribTable_afa681bc61e762641e8fa1e9753071514}{PimMribTable}.

\hypertarget{classMribTable_ae4690575cba759612e90ef2753cabee1}{
\index{MribTable@{MribTable}!begin@{begin}}
\index{begin@{begin}!MribTable@{MribTable}}
\subsubsection[{begin}]{\setlength{\rightskip}{0pt plus 5cm}{\bf iterator} MribTable::begin (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMribTable_ae4690575cba759612e90ef2753cabee1}


Get an iterator for \hyperlink{protocolthe-p}{the} first element. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} iterator for \hyperlink{protocolthe-p}{the} first element. 
\end{DoxyReturn}
\hypertarget{classMribTable_ac795b6ac356cf1a612ff36924451ff87}{
\index{MribTable@{MribTable}!commit\_\-pending\_\-transactions@{commit\_\-pending\_\-transactions}}
\index{commit\_\-pending\_\-transactions@{commit\_\-pending\_\-transactions}!MribTable@{MribTable}}
\subsubsection[{commit\_\-pending\_\-transactions}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::commit\_\-pending\_\-transactions (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{tid}
\end{DoxyParamCaption}
)}}
\label{classMribTable_ac795b6ac356cf1a612ff36924451ff87}


Commit pending transactions for adding or removing \hyperlink{classMrib}{Mrib} entries for a given transaction ID. 

All pending transactions to add/remove \hyperlink{classMrib}{Mrib} entries for a given transaction ID are processes (see \hyperlink{classMribTable_aeea5d9990342b9e383839f62b5226037}{MribTable::add\_\-pending\_\-insert()} and \hyperlink{classMribTable_a37697de3da375bbc427ea2bbd655d4cf}{MribTable::add\_\-pending\_\-remove()} and \hyperlink{classMribTable_aae0da55cd4f433a8b987ca8ce6511860}{MribTable::add\_\-pending\_\-remove\_\-all\_\-entries()}).


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID of \hyperlink{protocolthe-p}{the} entries to commit. \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classPimMribTable_a86d0007ac38604cee1ba9bf80229e04e}{PimMribTable}.

\hypertarget{classMribTable_ac61f566a353b45c17379e3b753220eba}{
\index{MribTable@{MribTable}!end@{end}}
\index{end@{end}!MribTable@{MribTable}}
\subsubsection[{end}]{\setlength{\rightskip}{0pt plus 5cm}{\bf iterator} MribTable::end (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMribTable_ac61f566a353b45c17379e3b753220eba}


Get an iterator for \hyperlink{protocolthe-p}{the} last element. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} iterator for \hyperlink{protocolthe-p}{the} last element. 
\end{DoxyReturn}
\hypertarget{classMribTable_a1dc7dabd1fe10cc688d1f1e8656cf631}{
\index{MribTable@{MribTable}!family@{family}}
\index{family@{family}!MribTable@{MribTable}}
\subsubsection[{family}]{\setlength{\rightskip}{0pt plus 5cm}int MribTable::family (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMribTable_a1dc7dabd1fe10cc688d1f1e8656cf631}


Get \hyperlink{protocolthe-p}{the} address family. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} address family ((e.g., AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively). 
\end{DoxyReturn}
\hypertarget{classMribTable_a2a6617759a4ce228530f9a83b2bf6857}{
\index{MribTable@{MribTable}!find@{find}}
\index{find@{find}!MribTable@{MribTable}}
\subsubsection[{find}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Mrib} $\ast$ MribTable::find (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{address}
\end{DoxyParamCaption}
) const}}
\label{classMribTable_a2a6617759a4ce228530f9a83b2bf6857}


Find \hyperlink{protocolthe-p}{the} longest prefix match for an address. 


\begin{DoxyParams}{Parameters}
{\em address} & \hyperlink{protocolthe-p}{the} lookup address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} longest prefix \hyperlink{classMrib}{Mrib} match for address if exists, otherwise NULL. 
\end{DoxyReturn}


Reimplemented in \hyperlink{classPimMribTable_a7ef7598730d8f726f45b2c6a073c2840}{PimMribTable}.

\hypertarget{classMribTable_ad68eab3054f88f7d51e68dfa6d9e49a5}{
\index{MribTable@{MribTable}!find\_\-exact@{find\_\-exact}}
\index{find\_\-exact@{find\_\-exact}!MribTable@{MribTable}}
\subsubsection[{find\_\-exact}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Mrib} $\ast$ MribTable::find\_\-exact (
\begin{DoxyParamCaption}
\item[{const {\bf IPvXNet} \&}]{dest\_\-prefix}
\end{DoxyParamCaption}
) const}}
\label{classMribTable_ad68eab3054f88f7d51e68dfa6d9e49a5}


Find an exact match for a network address prefix. 


\begin{DoxyParams}{Parameters}
{\em dest\_\-prefix} & \hyperlink{protocolthe-p}{the} lookup network address prefix. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} exact \hyperlink{classMrib}{Mrib} match for dest\_\-prefix if exists, otherwise NULL. 
\end{DoxyReturn}
\hypertarget{classMribTable_a38f9223db5ca45d93ee51308e73fd461}{
\index{MribTable@{MribTable}!find\_\-prefix\_\-mrib\_\-lookup@{find\_\-prefix\_\-mrib\_\-lookup}}
\index{find\_\-prefix\_\-mrib\_\-lookup@{find\_\-prefix\_\-mrib\_\-lookup}!MribTable@{MribTable}}
\subsubsection[{find\_\-prefix\_\-mrib\_\-lookup}]{\setlength{\rightskip}{0pt plus 5cm}{\bf MribLookup} $\ast$ MribTable::find\_\-prefix\_\-mrib\_\-lookup (
\begin{DoxyParamCaption}
\item[{const {\bf IPvXNet} \&}]{addr\_\-prefix}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMribTable_a38f9223db5ca45d93ee51308e73fd461}


Find an exact MribLookip match. 


\begin{DoxyParams}{Parameters}
{\em addr\_\-prefix} & \hyperlink{protocolthe-p}{the} lookup network address prefix. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} exact \hyperlink{classMribLookup}{MribLookup} match for addr\_\-prefix if exists, otherwise NULL. 
\end{DoxyReturn}
\hypertarget{classMribTable_ad9306bd41da3bef63532649ad0fadcad}{
\index{MribTable@{MribTable}!insert@{insert}}
\index{insert@{insert}!MribTable@{MribTable}}
\subsubsection[{insert}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Mrib} $\ast$ MribTable::insert (
\begin{DoxyParamCaption}
\item[{const {\bf Mrib} \&}]{mrib}
\end{DoxyParamCaption}
)}}
\label{classMribTable_ad9306bd41da3bef63532649ad0fadcad}


Insert a copy of a \hyperlink{classMrib}{Mrib} entry. 

Note: if there is an existing \hyperlink{classMrib}{Mrib} entry for \hyperlink{protocolthe-p}{the} same prefix, \hyperlink{protocolthe-p}{the} old entry is deleted.


\begin{DoxyParams}{Parameters}
{\em mrib} & \hyperlink{protocolthe-p}{the} entry to insert. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} inserted entry on success, otherwise NULL. 
\end{DoxyReturn}
\hypertarget{classMribTable_a5e02b2c61108d395a10ca4deebd6f580}{
\index{MribTable@{MribTable}!is\_\-preserving\_\-removed\_\-mrib\_\-entries@{is\_\-preserving\_\-removed\_\-mrib\_\-entries}}
\index{is\_\-preserving\_\-removed\_\-mrib\_\-entries@{is\_\-preserving\_\-removed\_\-mrib\_\-entries}!MribTable@{MribTable}}
\subsubsection[{is\_\-preserving\_\-removed\_\-mrib\_\-entries}]{\setlength{\rightskip}{0pt plus 5cm}bool MribTable::is\_\-preserving\_\-removed\_\-mrib\_\-entries (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMribTable_a5e02b2c61108d395a10ca4deebd6f580}


Test if \hyperlink{protocolthe-p}{the} removed \hyperlink{classMrib}{Mrib} entries are preserved or deleted. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} removed \hyperlink{classMrib}{Mrib} entries are preserved, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMribTable_ad624237dacbfdc63a936bc1567df2357}{
\index{MribTable@{MribTable}!remove@{remove}}
\index{remove@{remove}!MribTable@{MribTable}}
\subsubsection[{remove}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::remove (
\begin{DoxyParamCaption}
\item[{const {\bf IPvXNet} \&}]{dest\_\-prefix}
\end{DoxyParamCaption}
)}}
\label{classMribTable_ad624237dacbfdc63a936bc1567df2357}


Remove from \hyperlink{protocolthe-p}{the} table a \hyperlink{classMrib}{Mrib} entry for a given destination prefix. 


\begin{DoxyParams}{Parameters}
{\em dest\_\-prefix} & \hyperlink{protocolthe-p}{the} destination prefix of \hyperlink{protocolthe-p}{the} entry to remove. \\
\hline
\end{DoxyParams}
\hypertarget{classMribTable_ab143b20d919498e3dc0e21b4c1eea534}{
\index{MribTable@{MribTable}!remove@{remove}}
\index{remove@{remove}!MribTable@{MribTable}}
\subsubsection[{remove}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::remove (
\begin{DoxyParamCaption}
\item[{const {\bf Mrib} \&}]{mrib}
\end{DoxyParamCaption}
)}}
\label{classMribTable_ab143b20d919498e3dc0e21b4c1eea534}


Remove a \hyperlink{classMrib}{Mrib} entry from \hyperlink{protocolthe-p}{the} table. 


\begin{DoxyParams}{Parameters}
{\em mrib} & a \hyperlink{classMrib}{Mrib} with information about \hyperlink{protocolthe-p}{the} entry to remove. \\
\hline
\end{DoxyParams}
\hypertarget{classMribTable_a747f761a5e1034da7620014d63a24a9f}{
\index{MribTable@{MribTable}!remove\_\-mrib\_\-entry@{remove\_\-mrib\_\-entry}}
\index{remove\_\-mrib\_\-entry@{remove\_\-mrib\_\-entry}!MribTable@{MribTable}}
\subsubsection[{remove\_\-mrib\_\-entry}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::remove\_\-mrib\_\-entry (
\begin{DoxyParamCaption}
\item[{{\bf Mrib} $\ast$}]{mrib}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMribTable_a747f761a5e1034da7620014d63a24a9f}


Remove a \hyperlink{classMrib}{Mrib} entry from \hyperlink{protocolthe-p}{the} table. 

The \hyperlink{classMrib}{Mrib} entry itself is either deleted or added to \hyperlink{protocolthe-p}{the} list with removed entries.


\begin{DoxyParams}{Parameters}
{\em mrib} & \hyperlink{protocolthe-p}{the} \hyperlink{classMrib}{Mrib} entry to remove. \\
\hline
\end{DoxyParams}
\hypertarget{classMribTable_ad089a1c2725d6b00054bd662b773f4ff}{
\index{MribTable@{MribTable}!remove\_\-mrib\_\-lookup@{remove\_\-mrib\_\-lookup}}
\index{remove\_\-mrib\_\-lookup@{remove\_\-mrib\_\-lookup}!MribTable@{MribTable}}
\subsubsection[{remove\_\-mrib\_\-lookup}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::remove\_\-mrib\_\-lookup (
\begin{DoxyParamCaption}
\item[{{\bf MribLookup} $\ast$}]{mrib\_\-lookup}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMribTable_ad089a1c2725d6b00054bd662b773f4ff}


Remove a subtree of entries in \hyperlink{protocolthe-p}{the} table. 

Remove recursively all \hyperlink{classMribLookup}{MribLookup} below and including \hyperlink{protocolthe-p}{the} given mrib\_\-lookup entry.


\begin{DoxyParams}{Parameters}
{\em mrib\_\-lookup} & \hyperlink{protocolthe-p}{the} \hyperlink{classMribLookup}{MribLookup} entry that is \hyperlink{protocolthe-p}{the} root of \hyperlink{protocolthe-p}{the} subtree to remove. \\
\hline
\end{DoxyParams}
\hypertarget{classMribTable_ac2ec10588ef745ea8d351f1e82f48d63}{
\index{MribTable@{MribTable}!removed\_\-mrib\_\-entries@{removed\_\-mrib\_\-entries}}
\index{removed\_\-mrib\_\-entries@{removed\_\-mrib\_\-entries}!MribTable@{MribTable}}
\subsubsection[{removed\_\-mrib\_\-entries}]{\setlength{\rightskip}{0pt plus 5cm}list$<${\bf Mrib} $\ast$$>$\& MribTable::removed\_\-mrib\_\-entries (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMribTable_ac2ec10588ef745ea8d351f1e82f48d63}


Get a reference to \hyperlink{protocolthe-p}{the} list with removed \hyperlink{classMrib}{Mrib} entries. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} list with removed \hyperlink{classMrib}{Mrib} entries. 
\end{DoxyReturn}
\hypertarget{classMribTable_a760f0a2dd39d716b0f9607a2dcd24b72}{
\index{MribTable@{MribTable}!set\_\-is\_\-preserving\_\-removed\_\-mrib\_\-entries@{set\_\-is\_\-preserving\_\-removed\_\-mrib\_\-entries}}
\index{set\_\-is\_\-preserving\_\-removed\_\-mrib\_\-entries@{set\_\-is\_\-preserving\_\-removed\_\-mrib\_\-entries}!MribTable@{MribTable}}
\subsubsection[{set\_\-is\_\-preserving\_\-removed\_\-mrib\_\-entries}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::set\_\-is\_\-preserving\_\-removed\_\-mrib\_\-entries (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMribTable_a760f0a2dd39d716b0f9607a2dcd24b72}


Enable or disable \hyperlink{protocolthe-p}{the} preserving of \hyperlink{protocolthe-p}{the} removed \hyperlink{classMrib}{Mrib} entries. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then \hyperlink{protocolthe-p}{the} removed \hyperlink{classMrib}{Mrib} entries are preserved otherwise they are deleted. \\
\hline
\end{DoxyParams}
\hypertarget{classMribTable_a428c051c3e6fa94992ad16f85241f5d2}{
\index{MribTable@{MribTable}!size@{size}}
\index{size@{size}!MribTable@{MribTable}}
\subsubsection[{size}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t MribTable::size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMribTable_a428c051c3e6fa94992ad16f85241f5d2}


Get \hyperlink{protocolthe-p}{the} number of \hyperlink{classMrib}{Mrib} entries in \hyperlink{protocolthe-p}{the} table. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of \hyperlink{classMrib}{Mrib} entries in \hyperlink{protocolthe-p}{the} table. 
\end{DoxyReturn}
\hypertarget{classMribTable_a7ef5ce38a7fbc12aa73d369b4bf6f66a}{
\index{MribTable@{MribTable}!update\_\-entry\_\-vif\_\-index@{update\_\-entry\_\-vif\_\-index}}
\index{update\_\-entry\_\-vif\_\-index@{update\_\-entry\_\-vif\_\-index}!MribTable@{MribTable}}
\subsubsection[{update\_\-entry\_\-vif\_\-index}]{\setlength{\rightskip}{0pt plus 5cm}void MribTable::update\_\-entry\_\-vif\_\-index (
\begin{DoxyParamCaption}
\item[{const {\bf IPvXNet} \&}]{dest\_\-prefix, }
\item[{uint32\_\-t}]{vif\_\-index}
\end{DoxyParamCaption}
)}}
\label{classMribTable_a7ef5ce38a7fbc12aa73d369b4bf6f66a}


Update \hyperlink{protocolthe-p}{the} vif index of a \hyperlink{classMrib}{Mrib} entry. 


\begin{DoxyParams}{Parameters}
{\em dest\_\-prefix} & \hyperlink{protocolthe-p}{the} destination prefix of \hyperlink{protocolthe-p}{the} \hyperlink{classMrib}{Mrib} entry to update. \\
\hline
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} new vif index of \hyperlink{protocolthe-p}{the} \hyperlink{classMrib}{Mrib} entry. \\
\hline
\end{DoxyParams}


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