\hypertarget{classTrieData}{
\section{TrieData Class Reference}
\label{classTrieData}\index{TrieData@{TrieData}}
}


A BGP update packet can have many NLRIs.  




{\ttfamily \#include $<$trie\_\-payload.hh$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classTrieData_a23e4e7322777c1693e0ff85e0484dab5}{
{\bfseries TrieData} (const \hyperlink{classTimeVal}{TimeVal} \&tv, const uint8\_\-t $\ast$buf, size\_\-t len, const \hyperlink{classBGPPeerData}{BGPPeerData} $\ast$peerdata, \hyperlink{classTrieData}{TrieData} $\ast$\&first, \hyperlink{classTrieData}{TrieData} $\ast$\&last)}
\label{classTrieData_a23e4e7322777c1693e0ff85e0484dab5}

\item 
\hypertarget{classTrieData_af142994cc50636df74c990e5ad6ef0a3}{
void {\bfseries incr\_\-refcnt} ()}
\label{classTrieData_af142994cc50636df74c990e5ad6ef0a3}

\item 
\hypertarget{classTrieData_a88b20e13514bc779bf616a4ed7502b31}{
bool {\bfseries decr\_\-refcnt} ()}
\label{classTrieData_a88b20e13514bc779bf616a4ed7502b31}

\item 
\hypertarget{classTrieData_aea06bf115e57cae9b183709d12d61299}{
const \hyperlink{classUpdatePacket}{UpdatePacket} $\ast$ {\bfseries data} () const }
\label{classTrieData_aea06bf115e57cae9b183709d12d61299}

\item 
\hypertarget{classTrieData_a783b2b6e0702e9c9d21ea567b3739863}{
const \hyperlink{classTimeVal}{TimeVal} \& {\bfseries tv} () const }
\label{classTrieData_a783b2b6e0702e9c9d21ea567b3739863}

\item 
\hypertarget{classTrieData_a702ac621d9995d313c467f6545a6e6c7}{
const \hyperlink{classTrieData}{TrieData} $\ast$ {\bfseries next} () const }
\label{classTrieData_a702ac621d9995d313c467f6545a6e6c7}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classTrieData_adeb162854ef3e2fee64b3823fe1c35a1}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-tv}}
\label{classTrieData_adeb162854ef3e2fee64b3823fe1c35a1}

\item 
\hypertarget{classTrieData_ac5863afe819ae9008f784dc9a41c0d40}{
\hyperlink{classTrieData}{TrieData} $\ast$\& {\bfseries \_\-first}}
\label{classTrieData_ac5863afe819ae9008f784dc9a41c0d40}

\item 
\hypertarget{classTrieData_aae7486e36d7d96ff38832323e5a28e7b}{
\hyperlink{classTrieData}{TrieData} $\ast$\& {\bfseries \_\-last}}
\label{classTrieData_aae7486e36d7d96ff38832323e5a28e7b}

\item 
\hypertarget{classTrieData_a5d6cc660bb638613a4944ad67ebb9311}{
int {\bfseries \_\-refcnt}}
\label{classTrieData_a5d6cc660bb638613a4944ad67ebb9311}

\item 
\hypertarget{classTrieData_aac07c48861084cfac9ed61e8215779b4}{
\hyperlink{classUpdatePacket}{UpdatePacket} $\ast$ {\bfseries \_\-packet}}
\label{classTrieData_aac07c48861084cfac9ed61e8215779b4}

\item 
\hypertarget{classTrieData_aeb9c2225486d11c28c7878bb141d8d10}{
\hyperlink{classTrieData}{TrieData} $\ast$ {\bfseries \_\-next}}
\label{classTrieData_aeb9c2225486d11c28c7878bb141d8d10}

\item 
\hypertarget{classTrieData_a5e56691d63c5877ce160a4799b69929b}{
\hyperlink{classTrieData}{TrieData} $\ast$ {\bfseries \_\-prev}}
\label{classTrieData_a5e56691d63c5877ce160a4799b69929b}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
A BGP update packet can have many NLRIs. Each NLRI is stored in a trie node. Rather than keep multiple copies of a BGP update packet. A single reference counted copy is kept in \hyperlink{classTrieData}{TrieData}. A \hyperlink{classTriePayload}{TriePayload} is stored in \hyperlink{protocolthe-p}{the} trie and holds a pointer to \hyperlink{protocolthe-p}{the} \hyperlink{classTrieData}{TrieData}. 

The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/bgp/harness/trie\_\-payload.hh\end{DoxyCompactItemize}
