\hypertarget{classFinderMessengerBase}{
\section{FinderMessengerBase Class Reference}
\label{classFinderMessengerBase}\index{FinderMessengerBase@{FinderMessengerBase}}
}


Base class for FinderMessenger classes.  




{\ttfamily \#include $<$finder\_\-messenger.hh$>$}

Inheritance diagram for FinderMessengerBase:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classFinderMessengerBase}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classFinderMessengerBase_1_1ResponseState}{ResponseState}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFinderMessengerBase_ac0f2683df3a1122ebf03015a02d8876f}{
typedef XrlSender::Callback {\bfseries SendCallback}}
\label{classFinderMessengerBase_ac0f2683df3a1122ebf03015a02d8876f}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFinderMessengerBase_addf003569069a7a00d7af3d32600964b}{
{\bfseries FinderMessengerBase} (\hyperlink{classEventLoop}{EventLoop} \&e, \hyperlink{classFinderMessengerManager}{FinderMessengerManager} $\ast$fmm, \hyperlink{classXrlCmdMap}{XrlCmdMap} \&cmds)}
\label{classFinderMessengerBase_addf003569069a7a00d7af3d32600964b}

\item 
virtual bool \hyperlink{classFinderMessengerBase_ad9115b56d587d89624edda9f315c4673}{send} (const \hyperlink{classXrl}{Xrl} \&xrl, const SendCallback \&scb)=0
\item 
\hypertarget{classFinderMessengerBase_a35f5bd9260fbef93fb3d8bbd385d6180}{
virtual bool \hyperlink{classFinderMessengerBase_a35f5bd9260fbef93fb3d8bbd385d6180}{pending} () const =0}
\label{classFinderMessengerBase_a35f5bd9260fbef93fb3d8bbd385d6180}

\begin{DoxyCompactList}\small\item\em Return true if sender has send requests pending. \item\end{DoxyCompactList}\item 
\hypertarget{classFinderMessengerBase_aff17c468de853c372c043f89b5421ebd}{
\hyperlink{classXrlCmdMap}{XrlCmdMap} \& {\bfseries command\_\-map} ()}
\label{classFinderMessengerBase_aff17c468de853c372c043f89b5421ebd}

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

\item 
\hypertarget{classFinderMessengerBase_ab1e4abe95b37e571b086143b6a3fd9de}{
void {\bfseries unhook\_\-manager} ()}
\label{classFinderMessengerBase_ab1e4abe95b37e571b086143b6a3fd9de}

\item 
\hypertarget{classFinderMessengerBase_abb76615031751e87610baac24ba71706}{
\hyperlink{classFinderMessengerManager}{FinderMessengerManager} $\ast$ {\bfseries manager} ()}
\label{classFinderMessengerBase_abb76615031751e87610baac24ba71706}

\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFinderMessengerBase_ac3cff19a696f252993d93324a97f9920}{
void \hyperlink{classFinderMessengerBase_ac3cff19a696f252993d93324a97f9920}{dispatch\_\-xrl} (uint32\_\-t seqno, const \hyperlink{classXrl}{Xrl} \&x)}
\label{classFinderMessengerBase_ac3cff19a696f252993d93324a97f9920}

\begin{DoxyCompactList}\small\item\em Find command associated with \hyperlink{classXrl}{Xrl} and dispatch it. \item\end{DoxyCompactList}\item 
\hypertarget{classFinderMessengerBase_a3cf8a3136a072d1e8a17664ea304aa77}{
bool {\bfseries dispatch\_\-xrl\_\-response} (uint32\_\-t seqno, const \hyperlink{classXrlError}{XrlError} \&e, \hyperlink{classXrlArgs}{XrlArgs} $\ast$)}
\label{classFinderMessengerBase_a3cf8a3136a072d1e8a17664ea304aa77}

\item 
\hypertarget{classFinderMessengerBase_a2b3c82df3900a463f370b987128f588b}{
bool {\bfseries store\_\-xrl\_\-response} (uint32\_\-t seqno, const SendCallback \&scb)}
\label{classFinderMessengerBase_a2b3c82df3900a463f370b987128f588b}

\item 
\hypertarget{classFinderMessengerBase_a19f3f7b3780465e62f869114817f8f9e}{
virtual void {\bfseries reply} (uint32\_\-t seqno, const \hyperlink{classXrlError}{XrlError} \&e, const \hyperlink{classXrlArgs}{XrlArgs} $\ast$reply\_\-args)=0}
\label{classFinderMessengerBase_a19f3f7b3780465e62f869114817f8f9e}

\item 
\hypertarget{classFinderMessengerBase_a93ac7542135ea002d174f7e8d7f7c2e8}{
void {\bfseries response\_\-timeout} (uint32\_\-t seqno)}
\label{classFinderMessengerBase_a93ac7542135ea002d174f7e8d7f7c2e8}

\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFinderMessengerBase_a687b46409fea1177e19df6fe0129d887}{
typedef map$<$ uint32\_\-t, \hyperlink{classFinderMessengerBase_1_1ResponseState}{ResponseState} $>$ {\bfseries SeqNoResponseMap}}
\label{classFinderMessengerBase_a687b46409fea1177e19df6fe0129d887}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFinderMessengerBase_a92ad260a51d98853d9f0e20abf086a0c}{
void {\bfseries dispatch\_\-xrl\_\-cb} (const \hyperlink{structXrlCmdError}{XrlCmdError} \&e, const \hyperlink{classXrlArgs}{XrlArgs} $\ast$reply\_\-args, uint32\_\-t seqno)}
\label{classFinderMessengerBase_a92ad260a51d98853d9f0e20abf086a0c}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFinderMessengerBase_a76043328f4e81e233975a8ee309cf1d1}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classFinderMessengerBase_a76043328f4e81e233975a8ee309cf1d1}

\item 
\hypertarget{classFinderMessengerBase_a68d1d02833934c01e2f9f6079c5269b9}{
\hyperlink{classFinderMessengerManager}{FinderMessengerManager} $\ast$ {\bfseries \_\-manager}}
\label{classFinderMessengerBase_a68d1d02833934c01e2f9f6079c5269b9}

\item 
\hypertarget{classFinderMessengerBase_a990609c060bbad29a37650bf0ef78219}{
SeqNoResponseMap {\bfseries \_\-expected\_\-responses}}
\label{classFinderMessengerBase_a990609c060bbad29a37650bf0ef78219}

\item 
\hypertarget{classFinderMessengerBase_a4c6b9b498472f340271e76616a98dcb0}{
\hyperlink{classXrlCmdMap}{XrlCmdMap} \& {\bfseries \_\-cmds}}
\label{classFinderMessengerBase_a4c6b9b498472f340271e76616a98dcb0}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFinderMessengerBase_aa47ab98d4b61a7a0a33ea3fa6a57e37f}{
class {\bfseries ResponseState}}
\label{classFinderMessengerBase_aa47ab98d4b61a7a0a33ea3fa6a57e37f}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Base class for FinderMessenger classes. FinderMessenger classes are expected to handle \hyperlink{protocolthe-p}{the} transport and dispatch of Xrl's and their responses. This base class provides a common code for actually doing \hyperlink{protocolthe-p}{the} \hyperlink{classXrl}{Xrl} dispatch and handling \hyperlink{protocolthe-p}{the} state associated with their responses. 

\subsection{Member Function Documentation}
\hypertarget{classFinderMessengerBase_ad9115b56d587d89624edda9f315c4673}{
\index{FinderMessengerBase@{FinderMessengerBase}!send@{send}}
\index{send@{send}!FinderMessengerBase@{FinderMessengerBase}}
\subsubsection[{send}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool FinderMessengerBase::send (
\begin{DoxyParamCaption}
\item[{const {\bf Xrl} \&}]{xrl, }
\item[{const SendCallback \&}]{scb}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classFinderMessengerBase_ad9115b56d587d89624edda9f315c4673}

\begin{DoxyParams}{Parameters}
{\em xrl} & \hyperlink{classXrl}{Xrl} to be sent. \\
\hline
{\em scb} & callback to be invoked with result from \hyperlink{classXrl}{Xrl}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{classXrl}{Xrl} is accepted for sending, false otherwise. 
\end{DoxyReturn}


Implements \hyperlink{classXrlSender_a17e2d25c7ecbd444dd1677decaf526cc}{XrlSender}.



Implemented in \hyperlink{classFinderTcpMessenger_a763d25e2260fb5948782d261e80faf7d}{FinderTcpMessenger}.



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