\hypertarget{structUpdateBlock}{
\section{UpdateBlock$<$ A $>$ Struct Template Reference}
\label{structUpdateBlock}\index{UpdateBlock@{UpdateBlock}}
}


\hyperlink{classStore}{Store} for a fixed block of update.  


\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{structUpdateBlock_add8f21334dd0a7f7589b757c4fd373f5}{
typedef \hyperlink{classUpdateQueue}{UpdateQueue}$<$ A $>$::\hyperlink{classRouteEntryRef}{RouteUpdate} {\bfseries RouteUpdate}}
\label{structUpdateBlock_add8f21334dd0a7f7589b757c4fd373f5}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{structUpdateBlock_acb8d946612b154e770394eb48f93b8c6}{
bool {\bfseries full} () const }
\label{structUpdateBlock_acb8d946612b154e770394eb48f93b8c6}

\item 
\hypertarget{structUpdateBlock_a6f71e2a11d1712288700c376a5f0c438}{
bool {\bfseries empty} () const }
\label{structUpdateBlock_a6f71e2a11d1712288700c376a5f0c438}

\item 
\hypertarget{structUpdateBlock_a12fce6217e04f3315eb3ad01ff4f0b59}{
size\_\-t {\bfseries count} () const }
\label{structUpdateBlock_a12fce6217e04f3315eb3ad01ff4f0b59}

\item 
\hypertarget{structUpdateBlock_a56c96f96120ab61165d611ad2dadc346}{
bool {\bfseries add\_\-update} (const \hyperlink{classRouteEntryRef}{RouteUpdate} \&u)}
\label{structUpdateBlock_a56c96f96120ab61165d611ad2dadc346}

\item 
\hypertarget{structUpdateBlock_a3378955bf813e02929ddc3feedc18fba}{
const \hyperlink{classRouteEntryRef}{RouteUpdate} \& {\bfseries get} (uint32\_\-t pos) const }
\label{structUpdateBlock_a3378955bf813e02929ddc3feedc18fba}

\item 
\hypertarget{structUpdateBlock_a23317154a6c140e62e32c3a60dcecd78}{
void {\bfseries ref} ()}
\label{structUpdateBlock_a23317154a6c140e62e32c3a60dcecd78}

\item 
\hypertarget{structUpdateBlock_aac319fd13d7c949ceb302dcd9603c992}{
void {\bfseries unref} ()}
\label{structUpdateBlock_aac319fd13d7c949ceb302dcd9603c992}

\item 
\hypertarget{structUpdateBlock_a8f054e0c374d4a57947947c5316ca848}{
uint32\_\-t {\bfseries ref\_\-cnt} () const }
\label{structUpdateBlock_a8f054e0c374d4a57947947c5316ca848}

\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{structUpdateBlock_a11466de45c010762a5d120b190b2e027}{
static const size\_\-t {\bfseries MAX\_\-UPDATES} = 100}
\label{structUpdateBlock_a11466de45c010762a5d120b190b2e027}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{structUpdateBlock_a97718f918d0649b366ce834b23d7c77c}{
vector$<$ \hyperlink{classRouteEntryRef}{RouteUpdate} $>$ {\bfseries \_\-updates}}
\label{structUpdateBlock_a97718f918d0649b366ce834b23d7c77c}

\item 
\hypertarget{structUpdateBlock_a39f16910cc383a73d2ea8e3ee6f4f65f}{
size\_\-t {\bfseries \_\-update\_\-cnt}}
\label{structUpdateBlock_a39f16910cc383a73d2ea8e3ee6f4f65f}

\item 
\hypertarget{structUpdateBlock_a489c3670300faf6c408f1cf735602a34}{
uint32\_\-t {\bfseries \_\-refs}}
\label{structUpdateBlock_a489c3670300faf6c408f1cf735602a34}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename A$>$ struct UpdateBlock$<$ A $>$}

\hyperlink{classStore}{Store} for a fixed block of update. Stores a group of updates in a block. They are stored like this for two reasons. Firstly, we can track readers entering and leaving blocks which makes garbage collection decisions easy. Secondly, it involves minimal copying of ref\_\-ptrs (compared to say a scrolling vector of ref\_\-ptrs). 

The documentation for this struct was generated from the following file:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/rip/update\_\-queue.cc\end{DoxyCompactItemize}
