\hypertarget{classXrlQueue}{
\section{XrlQueue$<$ A $>$ Class Template Reference}
\label{classXrlQueue}\index{XrlQueue@{XrlQueue}}
}


Helper class to queue route adds and deletes to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}.  




{\ttfamily \#include $<$xrl\_\-queue.hh$>$}

\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structXrlQueue_1_1Queued}{Queued}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlQueue_a16875530b89b9dcbc6a8f66687cd66bd}{
{\bfseries XrlQueue} (\hyperlink{classRibIpcHandler}{RibIpcHandler} \&rib\_\-ipc\_\-handler, \hyperlink{classXrlStdRouter}{XrlStdRouter} \&xrl\_\-router, \hyperlink{classBGPMain}{BGPMain} \&\_\-bgp)}
\label{classXrlQueue_a16875530b89b9dcbc6a8f66687cd66bd}

\item 
\hypertarget{classXrlQueue_a8299ab4c0a0e99c51a8ed0bb6aa048c0}{
void {\bfseries queue\_\-add\_\-route} (string ribname, bool ibgp, Safi, const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net, const A \&nexthop, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)}
\label{classXrlQueue_a8299ab4c0a0e99c51a8ed0bb6aa048c0}

\item 
\hypertarget{classXrlQueue_a5e7c07c412a91c0b3b7a5e30d336db21}{
void {\bfseries queue\_\-delete\_\-route} (string ribname, bool ibgp, Safi, const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net)}
\label{classXrlQueue_a5e7c07c412a91c0b3b7a5e30d336db21}

\item 
\hypertarget{classXrlQueue_aeeb61d31821a4bf73b2e9f11f32b6d95}{
bool {\bfseries busy} ()}
\label{classXrlQueue_aeeb61d31821a4bf73b2e9f11f32b6d95}

\item 
\hypertarget{classXrlQueue_a31e7a24996866f5d2ca6c26e93fbdbf1}{
{\bfseries XrlQueue} (\hyperlink{classEventLoop}{EventLoop} \&eventloop, \hyperlink{classXrlRouter}{XrlRouter} \&xrl\_\-router)}
\label{classXrlQueue_a31e7a24996866f5d2ca6c26e93fbdbf1}

\item 
\hypertarget{classXrlQueue_ad71345c2445d50d2e888289eb42a84be}{
void {\bfseries set\_\-io} (\hyperlink{classXrlIO}{XrlIO} $\ast$io)}
\label{classXrlQueue_ad71345c2445d50d2e888289eb42a84be}

\item 
void \hyperlink{classXrlQueue_aefb518bf980e7d93604f17953e73abe4}{queue\_\-add\_\-route} (string ribname, const \hyperlink{classIPNet}{IPv4Net} \&net, const \hyperlink{classIPv4}{IPv4} \&nexthop, uint32\_\-t nexthop\_\-id, uint32\_\-t metric, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)
\begin{DoxyCompactList}\small\item\em Queue a route add to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlQueue_a6bd184fac7514444113d47684fc4b9b2}{queue\_\-delete\_\-route} (string ribname, const \hyperlink{classIPNet}{IPv4Net} \&net)
\begin{DoxyCompactList}\small\item\em Queue a route delete to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlQueue_aeeb61d31821a4bf73b2e9f11f32b6d95}{busy} ()
\item 
\hypertarget{classXrlQueue_a31e7a24996866f5d2ca6c26e93fbdbf1}{
{\bfseries XrlQueue} (\hyperlink{classEventLoop}{EventLoop} \&eventloop, \hyperlink{classXrlRouter}{XrlRouter} \&xrl\_\-router)}
\label{classXrlQueue_a31e7a24996866f5d2ca6c26e93fbdbf1}

\item 
\hypertarget{classXrlQueue_adeb911ff40d17cb1705190a7dbf45b65}{
void {\bfseries set\_\-io} (\hyperlink{classXrlIO}{XrlIO}$<$ A $>$ $\ast$io)}
\label{classXrlQueue_adeb911ff40d17cb1705190a7dbf45b65}

\item 
\hypertarget{classXrlQueue_a2b75f611fcf2789134d35f41f048bb57}{
void {\bfseries queue\_\-add\_\-route} (string ribname, const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net, const A \&nexthop, uint32\_\-t nexthop\_\-id, uint32\_\-t metric, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)}
\label{classXrlQueue_a2b75f611fcf2789134d35f41f048bb57}

\item 
\hypertarget{classXrlQueue_a9fc67f5e56704a9c7b78e16dc062ce6e}{
void {\bfseries queue\_\-delete\_\-route} (string ribname, const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net)}
\label{classXrlQueue_a9fc67f5e56704a9c7b78e16dc062ce6e}

\item 
\hypertarget{classXrlQueue_aeeb61d31821a4bf73b2e9f11f32b6d95}{
bool {\bfseries busy} ()}
\label{classXrlQueue_aeeb61d31821a4bf73b2e9f11f32b6d95}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlQueue_a39d5e56a530392a34fe3fc887e2b7d23}{
bool \hyperlink{classXrlQueue_a39d5e56a530392a34fe3fc887e2b7d23}{flow\_\-controlled} ()}
\label{classXrlQueue_a39d5e56a530392a34fe3fc887e2b7d23}

\begin{DoxyCompactList}\small\item\em Flow control hysteresis. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlQueue_a9186eadeb88256180d6e770e6e3b6b24}{
void \hyperlink{classXrlQueue_a9186eadeb88256180d6e770e6e3b6b24}{start} ()}
\label{classXrlQueue_a9186eadeb88256180d6e770e6e3b6b24}

\begin{DoxyCompactList}\small\item\em Start \hyperlink{protocolthe-p}{the} transmission of XRLs to tbe \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlQueue_a253453cb8dbf587fdaef00b04d30cccf}{sendit\_\-spec} (\hyperlink{structXrlQueue_1_1Queued}{Queued} \&q, const char $\ast$bgp)
\begin{DoxyCompactList}\small\item\em The specialised method called by sendit to deal with IPv4/IPv6. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlQueue_a3f5932b515bbe297c91877efd2c5dfe8}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries eventloop} () const }
\label{classXrlQueue_a3f5932b515bbe297c91877efd2c5dfe8}

\item 
\hypertarget{classXrlQueue_ab2203bc0c1075e26031325df1c6d1c71}{
void {\bfseries route\_\-command\_\-done} (const \hyperlink{classXrlError}{XrlError} \&error, const string comment)}
\label{classXrlQueue_ab2203bc0c1075e26031325df1c6d1c71}

\item 
\hypertarget{classXrlQueue_a6cb02f665a0a1938fb1566e550f15b2c}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries eventloop} () const }
\label{classXrlQueue_a6cb02f665a0a1938fb1566e550f15b2c}

\item 
bool \hyperlink{classXrlQueue_af40ef6776fc7ac8c0acec3c81a0cd342}{maximum\_\-number\_\-inflight} () const 
\item 
\hypertarget{classXrlQueue_a9186eadeb88256180d6e770e6e3b6b24}{
void \hyperlink{classXrlQueue_a9186eadeb88256180d6e770e6e3b6b24}{start} ()}
\label{classXrlQueue_a9186eadeb88256180d6e770e6e3b6b24}

\begin{DoxyCompactList}\small\item\em Start \hyperlink{protocolthe-p}{the} transmission of XRLs to tbe \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlQueue_af6b051bdeac1c39d644fd322b6168bad}{sendit\_\-spec} (\hyperlink{structXrlQueue_1_1Queued}{Queued} \&q, const char $\ast$protocol)
\begin{DoxyCompactList}\small\item\em The specialised method called by sendit to deal with IPv4/IPv6. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlQueue_ab2203bc0c1075e26031325df1c6d1c71}{route\_\-command\_\-done} (const \hyperlink{classXrlError}{XrlError} \&error, const string comment)
\begin{DoxyCompactList}\small\item\em Callback method to: signal completion of a \hyperlink{classRIB}{RIB} command. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlQueue_af40ef6776fc7ac8c0acec3c81a0cd342}{
bool \hyperlink{classXrlQueue_af40ef6776fc7ac8c0acec3c81a0cd342}{maximum\_\-number\_\-inflight} () const }
\label{classXrlQueue_af40ef6776fc7ac8c0acec3c81a0cd342}

\begin{DoxyCompactList}\small\item\em Maximum number in flight. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlQueue_a9186eadeb88256180d6e770e6e3b6b24}{
void \hyperlink{classXrlQueue_a9186eadeb88256180d6e770e6e3b6b24}{start} ()}
\label{classXrlQueue_a9186eadeb88256180d6e770e6e3b6b24}

\begin{DoxyCompactList}\small\item\em Start \hyperlink{protocolthe-p}{the} transmission of XRLs to tbe \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlQueue_af6b051bdeac1c39d644fd322b6168bad}{sendit\_\-spec} (\hyperlink{structXrlQueue_1_1Queued}{Queued} \&q, const char $\ast$protocol)
\begin{DoxyCompactList}\small\item\em The specialised method called by sendit to deal with IPv4/IPv6. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlQueue_a6cb02f665a0a1938fb1566e550f15b2c}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries eventloop} () const }
\label{classXrlQueue_a6cb02f665a0a1938fb1566e550f15b2c}

\item 
\hypertarget{classXrlQueue_ab2203bc0c1075e26031325df1c6d1c71}{
void {\bfseries route\_\-command\_\-done} (const \hyperlink{classXrlError}{XrlError} \&error, const string comment)}
\label{classXrlQueue_ab2203bc0c1075e26031325df1c6d1c71}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlQueue_a35a289b8e351739e3b83ad7cfec7f4be}{
\hyperlink{classRibIpcHandler}{RibIpcHandler} \& {\bfseries \_\-rib\_\-ipc\_\-handler}}
\label{classXrlQueue_a35a289b8e351739e3b83ad7cfec7f4be}

\item 
\hypertarget{classXrlQueue_a00c2238fee4341bd45b592b240890638}{
\hyperlink{classXrlStdRouter}{XrlStdRouter} \& {\bfseries \_\-xrl\_\-router}}
\label{classXrlQueue_a00c2238fee4341bd45b592b240890638}

\item 
\hypertarget{classXrlQueue_a4861f4cf09358d491eba0aabf35af40c}{
\hyperlink{classBGPMain}{BGPMain} \& {\bfseries \_\-bgp}}
\label{classXrlQueue_a4861f4cf09358d491eba0aabf35af40c}

\item 
\hypertarget{classXrlQueue_a8c50ebe82ab9a300aa1b775c49098706}{
deque$<$ \hyperlink{structXrlQueue_1_1Queued}{Queued} $>$ {\bfseries \_\-xrl\_\-queue}}
\label{classXrlQueue_a8c50ebe82ab9a300aa1b775c49098706}

\item 
\hypertarget{classXrlQueue_a28894c9fe3c86b346d6916643c445fc6}{
size\_\-t \hyperlink{classXrlQueue_a28894c9fe3c86b346d6916643c445fc6}{\_\-flying}}
\label{classXrlQueue_a28894c9fe3c86b346d6916643c445fc6}

\begin{DoxyCompactList}\small\item\em Number of XRLs currently in flight. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlQueue_a503cfa7ad57c6a99f4b219633d6c1f60}{
bool {\bfseries \_\-flow\_\-controlled}}
\label{classXrlQueue_a503cfa7ad57c6a99f4b219633d6c1f60}

\item 
\hypertarget{classXrlQueue_adbf2144ba174e4de54d7d6d754a19714}{
\hyperlink{classXrlIO}{XrlIO} $\ast$ {\bfseries \_\-io}}
\label{classXrlQueue_adbf2144ba174e4de54d7d6d754a19714}

\item 
\hypertarget{classXrlQueue_a5230206a089f204f9562ccd000d50318}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classXrlQueue_a5230206a089f204f9562ccd000d50318}

\item 
\hypertarget{classXrlQueue_a0d5affd4bb5bd425ee19d1bcebd9c0e3}{
\hyperlink{classXrlRouter}{XrlRouter} \& {\bfseries \_\-xrl\_\-router}}
\label{classXrlQueue_a0d5affd4bb5bd425ee19d1bcebd9c0e3}

\item 
\hypertarget{classXrlQueue_a6cc38c491084a6ec7d1f0e12f84968ba}{
\hyperlink{classXrlIO}{XrlIO}$<$ A $>$ $\ast$ {\bfseries \_\-io}}
\label{classXrlQueue_a6cc38c491084a6ec7d1f0e12f84968ba}

\end{DoxyCompactItemize}
\subsection*{Static Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlQueue_a9d05a6599dbe00059c24772937f000d3}{
static const size\_\-t {\bfseries XRL\_\-HIWAT} = 100}
\label{classXrlQueue_a9d05a6599dbe00059c24772937f000d3}

\item 
\hypertarget{classXrlQueue_a4ee0d9ead5fa2b3cbec99da1f0149c67}{
static const size\_\-t {\bfseries XRL\_\-LOWAT} = 10}
\label{classXrlQueue_a4ee0d9ead5fa2b3cbec99da1f0149c67}

\item 
\hypertarget{classXrlQueue_a01871b52013f1d2c2913c8f149c99b55}{
static const size\_\-t {\bfseries WINDOW} = 100}
\label{classXrlQueue_a01871b52013f1d2c2913c8f149c99b55}

\end{DoxyCompactItemize}


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

Helper class to queue route adds and deletes to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. XXX -\/ This should be moved to its own file.

Queue route adds and deletes to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. 

\subsection{Member Function Documentation}
\hypertarget{classXrlQueue_aeeb61d31821a4bf73b2e9f11f32b6d95}{
\index{XrlQueue@{XrlQueue}!busy@{busy}}
\index{busy@{busy}!XrlQueue@{XrlQueue}}
\subsubsection[{busy}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A$>$ bool {\bf XrlQueue}$<$ A $>$::busy (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classXrlQueue_aeeb61d31821a4bf73b2e9f11f32b6d95}
\begin{DoxyReturn}{Returns}
true if \hyperlink{classRIB}{RIB} commands are currently in flight. 
\end{DoxyReturn}
\hypertarget{classXrlQueue_af40ef6776fc7ac8c0acec3c81a0cd342}{
\index{XrlQueue@{XrlQueue}!maximum\_\-number\_\-inflight@{maximum\_\-number\_\-inflight}}
\index{maximum\_\-number\_\-inflight@{maximum\_\-number\_\-inflight}!XrlQueue@{XrlQueue}}
\subsubsection[{maximum\_\-number\_\-inflight}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A$>$ bool {\bf XrlQueue}$<$ A $>$::maximum\_\-number\_\-inflight (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classXrlQueue_af40ef6776fc7ac8c0acec3c81a0cd342}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} maximum number of XRLs flight has been exceeded. 
\end{DoxyReturn}
\hypertarget{classXrlQueue_aefb518bf980e7d93604f17953e73abe4}{
\index{XrlQueue@{XrlQueue}!queue\_\-add\_\-route@{queue\_\-add\_\-route}}
\index{queue\_\-add\_\-route@{queue\_\-add\_\-route}!XrlQueue@{XrlQueue}}
\subsubsection[{queue\_\-add\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A$>$ void {\bf XrlQueue}$<$ A $>$::queue\_\-add\_\-route (
\begin{DoxyParamCaption}
\item[{string}]{ribname, }
\item[{const {\bf IPv4Net} \&}]{net, }
\item[{const {\bf IPv4} \&}]{nexthop, }
\item[{uint32\_\-t}]{nexthop\_\-id, }
\item[{uint32\_\-t}]{metric, }
\item[{const {\bf PolicyTags} \&}]{policytags}
\end{DoxyParamCaption}
)}}
\label{classXrlQueue_aefb518bf980e7d93604f17953e73abe4}


Queue a route add to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. 


\begin{DoxyParams}{Parameters}
{\em ribname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} XRL target to send to. \\
\hline
{\em net} & \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em nexthop} & \hyperlink{protocolthe-p}{the} next hop. \\
\hline
{\em nexthop\_\-id} & \hyperlink{protocolthe-p}{the} libfeaclient ID of \hyperlink{protocolthe-p}{the} outward interface. \\
\hline
{\em metric} & \hyperlink{protocolthe-p}{the} route metric. \\
\hline
{\em policytags} & The policy tags for \hyperlink{protocolthe-p}{the} route. \\
\hline
\end{DoxyParams}
\hypertarget{classXrlQueue_a6bd184fac7514444113d47684fc4b9b2}{
\index{XrlQueue@{XrlQueue}!queue\_\-delete\_\-route@{queue\_\-delete\_\-route}}
\index{queue\_\-delete\_\-route@{queue\_\-delete\_\-route}!XrlQueue@{XrlQueue}}
\subsubsection[{queue\_\-delete\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A$>$ void {\bf XrlQueue}$<$ A $>$::queue\_\-delete\_\-route (
\begin{DoxyParamCaption}
\item[{string}]{ribname, }
\item[{const {\bf IPv4Net} \&}]{net}
\end{DoxyParamCaption}
)}}
\label{classXrlQueue_a6bd184fac7514444113d47684fc4b9b2}


Queue a route delete to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. 


\begin{DoxyParams}{Parameters}
{\em ribname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} XRL target to send to. \\
\hline
{\em net} & \hyperlink{protocolthe-p}{the} destination. \\
\hline
\end{DoxyParams}
\hypertarget{classXrlQueue_ab2203bc0c1075e26031325df1c6d1c71}{
\index{XrlQueue@{XrlQueue}!route\_\-command\_\-done@{route\_\-command\_\-done}}
\index{route\_\-command\_\-done@{route\_\-command\_\-done}!XrlQueue@{XrlQueue}}
\subsubsection[{route\_\-command\_\-done}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A$>$ void {\bf XrlQueue}$<$ A $>$::route\_\-command\_\-done (
\begin{DoxyParamCaption}
\item[{const {\bf XrlError} \&}]{error, }
\item[{const string}]{comment}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classXrlQueue_ab2203bc0c1075e26031325df1c6d1c71}


Callback method to: signal completion of a \hyperlink{classRIB}{RIB} command. 


\begin{DoxyParams}{Parameters}
{\em error} & reference to an \hyperlink{classXrlError}{XrlError} containing command status. \\
\hline
{\em comment} & a textual description of \hyperlink{protocolthe-p}{the} error. \\
\hline
\end{DoxyParams}
\hypertarget{classXrlQueue_af6b051bdeac1c39d644fd322b6168bad}{
\index{XrlQueue@{XrlQueue}!sendit\_\-spec@{sendit\_\-spec}}
\index{sendit\_\-spec@{sendit\_\-spec}!XrlQueue@{XrlQueue}}
\subsubsection[{sendit\_\-spec}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A$>$ bool {\bf XrlQueue}$<$ A $>$::sendit\_\-spec (
\begin{DoxyParamCaption}
\item[{{\bf Queued} \&}]{q, }
\item[{const char $\ast$}]{protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classXrlQueue_af6b051bdeac1c39d644fd322b6168bad}


The specialised method called by sendit to deal with IPv4/IPv6. 


\begin{DoxyParams}{Parameters}
{\em q} & \hyperlink{protocolthe-p}{the} queued command. \\
\hline
{\em protocol} & \char`\"{}ospf\char`\"{} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if \hyperlink{protocolthe-p}{the} add/delete was queued. 
\end{DoxyReturn}
\hypertarget{classXrlQueue_a253453cb8dbf587fdaef00b04d30cccf}{
\index{XrlQueue@{XrlQueue}!sendit\_\-spec@{sendit\_\-spec}}
\index{sendit\_\-spec@{sendit\_\-spec}!XrlQueue@{XrlQueue}}
\subsubsection[{sendit\_\-spec}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A$>$ bool {\bf XrlQueue}$<$ A $>$::sendit\_\-spec (
\begin{DoxyParamCaption}
\item[{{\bf Queued} \&}]{q, }
\item[{const char $\ast$}]{bgp}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classXrlQueue_a253453cb8dbf587fdaef00b04d30cccf}


The specialised method called by sendit to deal with IPv4/IPv6. 


\begin{DoxyParams}{Parameters}
{\em q} & \hyperlink{protocolthe-p}{the} queued command. \\
\hline
{\em bgp} & \char`\"{}ibg\char`\"{}p or \char`\"{}ebgp\char`\"{}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if \hyperlink{protocolthe-p}{the} add/delete was queued. 
\end{DoxyReturn}
\hypertarget{classXrlQueue_af6b051bdeac1c39d644fd322b6168bad}{
\index{XrlQueue@{XrlQueue}!sendit\_\-spec@{sendit\_\-spec}}
\index{sendit\_\-spec@{sendit\_\-spec}!XrlQueue@{XrlQueue}}
\subsubsection[{sendit\_\-spec}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A$>$ bool {\bf XrlQueue}$<$ A $>$::sendit\_\-spec (
\begin{DoxyParamCaption}
\item[{{\bf Queued} \&}]{q, }
\item[{const char $\ast$}]{protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classXrlQueue_af6b051bdeac1c39d644fd322b6168bad}


The specialised method called by sendit to deal with IPv4/IPv6. 


\begin{DoxyParams}{Parameters}
{\em q} & \hyperlink{protocolthe-p}{the} queued command. \\
\hline
{\em protocol} & \char`\"{}olsr\char`\"{} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if \hyperlink{protocolthe-p}{the} add/delete was queued. 
\end{DoxyReturn}


The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/bgp/rib\_\-ipc\_\-handler.hh\item 
/home/greearb/git/xorp.ct.github/xorp/contrib/olsr/xrl\_\-queue.hh\item 
/home/greearb/git/xorp.ct.github/xorp/ospf/xrl\_\-io.hh\item 
/home/greearb/git/xorp.ct.github/xorp/bgp/rib\_\-ipc\_\-handler.cc\item 
/home/greearb/git/xorp.ct.github/xorp/contrib/olsr/xrl\_\-queue.cc\item 
/home/greearb/git/xorp.ct.github/xorp/ospf/xrl\_\-io.cc\end{DoxyCompactItemize}
