\hypertarget{classOutputUpdates}{
\section{OutputUpdates$<$ A $>$ Class Template Reference}
\label{classOutputUpdates}\index{OutputUpdates@{OutputUpdates}}
}


Triggered Updates \hyperlink{classOutput}{Output} class.  




{\ttfamily \#include $<$output\_\-updates.hh$>$}

Inheritance diagram for OutputUpdates$<$ A $>$:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classOutputUpdates}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classOutputUpdates_a032106e1009cbb058935d98a3cd88c44}{
{\bfseries OutputUpdates} (\hyperlink{classEventLoop}{EventLoop} \&e, \hyperlink{classPort}{Port}$<$ A $>$ \&port, \hyperlink{classPacketQueue}{PacketQueue}$<$ A $>$ \&pkt\_\-queue, \hyperlink{classRouteDB}{RouteDB}$<$ A $>$ \&rdb, const A \&ip\_\-addr=RIP\_\-AF\_\-CONSTANTS$<$ A $>$::IP\_\-GROUP(), uint16\_\-t ip\_\-port=RIP\_\-AF\_\-CONSTANTS$<$ A $>$::IP\_\-PORT)}
\label{classOutputUpdates_a032106e1009cbb058935d98a3cd88c44}

\item 
void \hyperlink{classOutputUpdates_af3f2493619973d8c8505d43061cd125e}{ffwd} ()
\begin{DoxyCompactList}\small\item\em Fast forward iterator doing triggered up reading. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classOutputUpdates_a75fa9c3490d2ea65d45a22eea96fb385}{output\_\-packet} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classOutput}{Output} packet if suitable data is available, and place it in \hyperlink{protocolthe-p}{the} \hyperlink{classPacketQueue}{PacketQueue} associated with this instance. \item\end{DoxyCompactList}\item 
void \hyperlink{classOutputUpdates_a623b0ca2d6241a842154e2df9c75be65}{start\_\-output\_\-processing} ()
\begin{DoxyCompactList}\small\item\em Derived classes should implement this to start output processing. \item\end{DoxyCompactList}\item 
void \hyperlink{classOutputUpdates_afeb41b84b88c6f7744d8ac9252f6b2b2}{stop\_\-output\_\-processing} ()
\begin{DoxyCompactList}\small\item\em Derived classes should implement this to stop output processing. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classOutputUpdates_ac4ae8e6f73466a147a5cb2376417fb65}{
\hyperlink{classUpdateQueue}{UpdateQueue}$<$ A $>$ \& {\bfseries \_\-uq}}
\label{classOutputUpdates_ac4ae8e6f73466a147a5cb2376417fb65}

\item 
\hypertarget{classOutputUpdates_a662cc89fee036eed8e0ec31413d2bddd}{
\hyperlink{classUpdateQueue}{UpdateQueue}$<$ A $>$::ReadIterator {\bfseries \_\-uq\_\-iter}}
\label{classOutputUpdates_a662cc89fee036eed8e0ec31413d2bddd}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename A$>$ class OutputUpdates$<$ A $>$}

Triggered Updates \hyperlink{classOutput}{Output} class. The OutputUpdate class produces an asynchronous sequence of triggered update packets.

Specialized implementations exist for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6}. Non-\/copyable due to inheritance from \hyperlink{classOutputBase}{OutputBase}. 

\subsection{Member Function Documentation}
\hypertarget{classOutputUpdates_af3f2493619973d8c8505d43061cd125e}{
\index{OutputUpdates@{OutputUpdates}!ffwd@{ffwd}}
\index{ffwd@{ffwd}!OutputUpdates@{OutputUpdates}}
\subsubsection[{ffwd}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf OutputUpdates}$<$ A $>$::ffwd (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classOutputUpdates_af3f2493619973d8c8505d43061cd125e}


Fast forward iterator doing triggered up reading. 

Triggered updates do not run during periodic route table dumps. This method should be called immediately before halting for periodic update as it will effectively stop \hyperlink{protocolthe-p}{the} output of updates that are already covered in table dump. \hypertarget{classOutputUpdates_a75fa9c3490d2ea65d45a22eea96fb385}{
\index{OutputUpdates@{OutputUpdates}!output\_\-packet@{output\_\-packet}}
\index{output\_\-packet@{output\_\-packet}!OutputUpdates@{OutputUpdates}}
\subsubsection[{output\_\-packet}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf OutputUpdates}$<$ A $>$::output\_\-packet (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classOutputUpdates_a75fa9c3490d2ea65d45a22eea96fb385}


\hyperlink{classOutput}{Output} packet if suitable data is available, and place it in \hyperlink{protocolthe-p}{the} \hyperlink{classPacketQueue}{PacketQueue} associated with this instance. 

Should data still be available after packet is generated then implementations of this method should reschedule a call to output\_\-packet after interpacket\_\-gap\_\-ms milliseconds. 

Implements \hyperlink{classOutputBase_ab8644e085645299beb8e2a10bd53fdb3}{OutputBase$<$ A $>$}.

\hypertarget{classOutputUpdates_a623b0ca2d6241a842154e2df9c75be65}{
\index{OutputUpdates@{OutputUpdates}!start\_\-output\_\-processing@{start\_\-output\_\-processing}}
\index{start\_\-output\_\-processing@{start\_\-output\_\-processing}!OutputUpdates@{OutputUpdates}}
\subsubsection[{start\_\-output\_\-processing}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf OutputUpdates}$<$ A $>$::start\_\-output\_\-processing (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classOutputUpdates_a623b0ca2d6241a842154e2df9c75be65}


Derived classes should implement this to start output processing. 

It is invoked when \hyperlink{classOutputBase_a82a1e61a8a6fd56726954baa45be2aab}{start()} is called. 

Implements \hyperlink{classOutputBase_addfbd70ce8920758e9bb010146aed06c}{OutputBase$<$ A $>$}.

\hypertarget{classOutputUpdates_afeb41b84b88c6f7744d8ac9252f6b2b2}{
\index{OutputUpdates@{OutputUpdates}!stop\_\-output\_\-processing@{stop\_\-output\_\-processing}}
\index{stop\_\-output\_\-processing@{stop\_\-output\_\-processing}!OutputUpdates@{OutputUpdates}}
\subsubsection[{stop\_\-output\_\-processing}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf OutputUpdates}$<$ A $>$::stop\_\-output\_\-processing (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classOutputUpdates_afeb41b84b88c6f7744d8ac9252f6b2b2}


Derived classes should implement this to stop output processing. 

It is invoked when \hyperlink{classOutputBase_a61b49d0fb2eabc5da657d7bbe45e2a62}{stop()} is called. 

Implements \hyperlink{classOutputBase_a43611a561daa1f99cab1e0f4e3d74055}{OutputBase$<$ A $>$}.



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