\hypertarget{classXrlIoTcpUdpManager}{
\section{XrlIoTcpUdpManager Class Reference}
\label{classXrlIoTcpUdpManager}\index{XrlIoTcpUdpManager@{XrlIoTcpUdpManager}}
}


A class that is \hyperlink{protocolthe-p}{the} bridge between \hyperlink{protocolthe-p}{the} I/O TCP/UDP communications and \hyperlink{protocolthe-p}{the} XORP XRL interface.  




{\ttfamily \#include $<$xrl\_\-io\_\-tcpudp\_\-manager.hh$>$}

Inheritance diagram for XrlIoTcpUdpManager:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classXrlIoTcpUdpManager}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlIoTcpUdpManager_aa3dee0ff7bcdb6fc3f5e011ffe05cd88}{
\hyperlink{classXrlIoTcpUdpManager_aa3dee0ff7bcdb6fc3f5e011ffe05cd88}{XrlIoTcpUdpManager} (\hyperlink{classIoTcpUdpManager}{IoTcpUdpManager} \&io\_\-tcpudp\_\-manager, \hyperlink{classXrlRouter}{XrlRouter} \&xrl\_\-router)}
\label{classXrlIoTcpUdpManager_aa3dee0ff7bcdb6fc3f5e011ffe05cd88}

\begin{DoxyCompactList}\small\item\em Constructor. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIoTcpUdpManager_aaf4e6da6685d23fbf20d86af1631b386}{
virtual \hyperlink{classXrlIoTcpUdpManager_aaf4e6da6685d23fbf20d86af1631b386}{$\sim$XrlIoTcpUdpManager} ()}
\label{classXrlIoTcpUdpManager_aaf4e6da6685d23fbf20d86af1631b386}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIoTcpUdpManager_aa5cb74782abb5f9705d014ba34e0d26c}{recv\_\-event} (const string \&receiver\_\-name, const string \&sockid, const string \&if\_\-name, const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&src\_\-host, uint16\_\-t src\_\-port, const vector$<$ uint8\_\-t $>$ \&data)
\begin{DoxyCompactList}\small\item\em Data received event. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIoTcpUdpManager_a2a27d249afe78d6415a6c5e98dd9dbf3}{inbound\_\-connect\_\-event} (const string \&receiver\_\-name, const string \&sockid, const \hyperlink{classIPvX}{IPvX} \&src\_\-host, uint16\_\-t src\_\-port, const string \&new\_\-sockid)
\begin{DoxyCompactList}\small\item\em Inbound connection request received event. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIoTcpUdpManager_a3de8205fb371c837d50c8f3c29c67ab0}{outgoing\_\-connect\_\-event} (int family, const string \&receiver\_\-name, const string \&sockid)
\begin{DoxyCompactList}\small\item\em Outgoing connection request completed event. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIoTcpUdpManager_a59f9e6755acdd9d1b657ece7576f8791}{error\_\-event} (int family, const string \&receiver\_\-name, const string \&sockid, const string \&error, bool fatal)
\begin{DoxyCompactList}\small\item\em Error occured event. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIoTcpUdpManager_af40d60127e18199a1411a87ad92acb2f}{disconnect\_\-event} (int family, const string \&receiver\_\-name, const string \&sockid)
\begin{DoxyCompactList}\small\item\em Connection closed by peer event. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlIoTcpUdpManager_a8e6fb434dedbe14274559c97de2913df}{
\hyperlink{classXrlRouter}{XrlRouter} \& {\bfseries xrl\_\-router} ()}
\label{classXrlIoTcpUdpManager_a8e6fb434dedbe14274559c97de2913df}

\item 
\hypertarget{classXrlIoTcpUdpManager_a46de59f7435affa6108b43b6de62b814}{
void \hyperlink{classXrlIoTcpUdpManager_a46de59f7435affa6108b43b6de62b814}{xrl\_\-send\_\-recv\_\-event\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error, int family, string receiver\_\-name)}
\label{classXrlIoTcpUdpManager_a46de59f7435affa6108b43b6de62b814}

\begin{DoxyCompactList}\small\item\em XRL callbacks. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIoTcpUdpManager_af80226250bf633d140c361df230848c8}{
void {\bfseries xrl\_\-send\_\-inbound\_\-connect\_\-event\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error, const bool $\ast$accept, int family, string sockid, string receiver\_\-name)}
\label{classXrlIoTcpUdpManager_af80226250bf633d140c361df230848c8}

\item 
\hypertarget{classXrlIoTcpUdpManager_aa33702ebd6d6287cc7e0db9b9498fc23}{
void {\bfseries xrl\_\-send\_\-outgoing\_\-connect\_\-event\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error, int family, string receiver\_\-name)}
\label{classXrlIoTcpUdpManager_aa33702ebd6d6287cc7e0db9b9498fc23}

\item 
\hypertarget{classXrlIoTcpUdpManager_a13a860381f6bb783edc43a1ed03dd355}{
void {\bfseries xrl\_\-send\_\-error\_\-event\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error, int family, string receiver\_\-name)}
\label{classXrlIoTcpUdpManager_a13a860381f6bb783edc43a1ed03dd355}

\item 
\hypertarget{classXrlIoTcpUdpManager_a59755124ca135cefcc3f525825016cb6}{
void {\bfseries xrl\_\-send\_\-disconnect\_\-event\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error, int family, string receiver\_\-name)}
\label{classXrlIoTcpUdpManager_a59755124ca135cefcc3f525825016cb6}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlIoTcpUdpManager_a355dfd89100cab99acaf4e115870d784}{
\hyperlink{classIoTcpUdpManager}{IoTcpUdpManager} \& {\bfseries \_\-io\_\-tcpudp\_\-manager}}
\label{classXrlIoTcpUdpManager_a355dfd89100cab99acaf4e115870d784}

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

\end{DoxyCompactItemize}


\subsection{Detailed Description}
A class that is \hyperlink{protocolthe-p}{the} bridge between \hyperlink{protocolthe-p}{the} I/O TCP/UDP communications and \hyperlink{protocolthe-p}{the} XORP XRL interface. 

\subsection{Member Function Documentation}
\hypertarget{classXrlIoTcpUdpManager_af40d60127e18199a1411a87ad92acb2f}{
\index{XrlIoTcpUdpManager@{XrlIoTcpUdpManager}!disconnect\_\-event@{disconnect\_\-event}}
\index{disconnect\_\-event@{disconnect\_\-event}!XrlIoTcpUdpManager@{XrlIoTcpUdpManager}}
\subsubsection[{disconnect\_\-event}]{\setlength{\rightskip}{0pt plus 5cm}void XrlIoTcpUdpManager::disconnect\_\-event (
\begin{DoxyParamCaption}
\item[{int}]{family, }
\item[{const string \&}]{receiver\_\-name, }
\item[{const string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIoTcpUdpManager_af40d60127e18199a1411a87ad92acb2f}


Connection closed by peer event. 

It applies only to TCP sockets. This method is not called if \hyperlink{protocolthe-p}{the} socket is gracefully closed through close().


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family (AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively). \\
\hline
{\em receiver\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} receiver to send \hyperlink{protocolthe-p}{the} event to. \\
\hline
{\em sockid} & unique socket ID. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classIoTcpUdpManagerReceiver_aaa32baa0a1bd522108809d9697943c83}{IoTcpUdpManagerReceiver}.

\hypertarget{classXrlIoTcpUdpManager_a59f9e6755acdd9d1b657ece7576f8791}{
\index{XrlIoTcpUdpManager@{XrlIoTcpUdpManager}!error\_\-event@{error\_\-event}}
\index{error\_\-event@{error\_\-event}!XrlIoTcpUdpManager@{XrlIoTcpUdpManager}}
\subsubsection[{error\_\-event}]{\setlength{\rightskip}{0pt plus 5cm}void XrlIoTcpUdpManager::error\_\-event (
\begin{DoxyParamCaption}
\item[{int}]{family, }
\item[{const string \&}]{receiver\_\-name, }
\item[{const string \&}]{sockid, }
\item[{const string \&}]{error, }
\item[{bool}]{fatal}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIoTcpUdpManager_a59f9e6755acdd9d1b657ece7576f8791}


Error occured event. 


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family (AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively). \\
\hline
{\em receiver\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} receiver to send \hyperlink{protocolthe-p}{the} event to. \\
\hline
{\em sockid} & unique socket ID. \\
\hline
{\em error} & a textual description of \hyperlink{protocolthe-p}{the} error. \\
\hline
{\em fatal} & indication of whether socket is shutdown because of error. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classIoTcpUdpManagerReceiver_a3a628bd3ff67c99150a09c31c7d41b5b}{IoTcpUdpManagerReceiver}.

\hypertarget{classXrlIoTcpUdpManager_a2a27d249afe78d6415a6c5e98dd9dbf3}{
\index{XrlIoTcpUdpManager@{XrlIoTcpUdpManager}!inbound\_\-connect\_\-event@{inbound\_\-connect\_\-event}}
\index{inbound\_\-connect\_\-event@{inbound\_\-connect\_\-event}!XrlIoTcpUdpManager@{XrlIoTcpUdpManager}}
\subsubsection[{inbound\_\-connect\_\-event}]{\setlength{\rightskip}{0pt plus 5cm}void XrlIoTcpUdpManager::inbound\_\-connect\_\-event (
\begin{DoxyParamCaption}
\item[{const string \&}]{receiver\_\-name, }
\item[{const string \&}]{sockid, }
\item[{const {\bf IPvX} \&}]{src\_\-host, }
\item[{uint16\_\-t}]{src\_\-port, }
\item[{const string \&}]{new\_\-sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIoTcpUdpManager_a2a27d249afe78d6415a6c5e98dd9dbf3}


Inbound connection request received event. 

It applies only to TCP sockets.


\begin{DoxyParams}{Parameters}
{\em receiver\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} receiver to send \hyperlink{protocolthe-p}{the} event to. \\
\hline
{\em sockid} & unique socket ID. \\
\hline
{\em src\_\-host} & \hyperlink{protocolthe-p}{the} originating host IP address. \\
\hline
{\em src\_\-port} & \hyperlink{protocolthe-p}{the} originating host port number. \\
\hline
{\em new\_\-sockid} & \hyperlink{protocolthe-p}{the} new socket ID. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classIoTcpUdpManagerReceiver_a3b863b02da2736c0fb274b96316d459b}{IoTcpUdpManagerReceiver}.

\hypertarget{classXrlIoTcpUdpManager_a3de8205fb371c837d50c8f3c29c67ab0}{
\index{XrlIoTcpUdpManager@{XrlIoTcpUdpManager}!outgoing\_\-connect\_\-event@{outgoing\_\-connect\_\-event}}
\index{outgoing\_\-connect\_\-event@{outgoing\_\-connect\_\-event}!XrlIoTcpUdpManager@{XrlIoTcpUdpManager}}
\subsubsection[{outgoing\_\-connect\_\-event}]{\setlength{\rightskip}{0pt plus 5cm}void XrlIoTcpUdpManager::outgoing\_\-connect\_\-event (
\begin{DoxyParamCaption}
\item[{int}]{family, }
\item[{const string \&}]{receiver\_\-name, }
\item[{const string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIoTcpUdpManager_a3de8205fb371c837d50c8f3c29c67ab0}


Outgoing connection request completed event. 

It applies only to TCP sockets.


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family (AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively). \\
\hline
{\em receiver\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} receiver to send \hyperlink{protocolthe-p}{the} event to. \\
\hline
{\em sockid} & unique socket ID. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classIoTcpUdpManagerReceiver_a886bd76cc1f50d9e110edc74d7dbabb4}{IoTcpUdpManagerReceiver}.

\hypertarget{classXrlIoTcpUdpManager_aa5cb74782abb5f9705d014ba34e0d26c}{
\index{XrlIoTcpUdpManager@{XrlIoTcpUdpManager}!recv\_\-event@{recv\_\-event}}
\index{recv\_\-event@{recv\_\-event}!XrlIoTcpUdpManager@{XrlIoTcpUdpManager}}
\subsubsection[{recv\_\-event}]{\setlength{\rightskip}{0pt plus 5cm}void XrlIoTcpUdpManager::recv\_\-event (
\begin{DoxyParamCaption}
\item[{const string \&}]{receiver\_\-name, }
\item[{const string \&}]{sockid, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{src\_\-host, }
\item[{uint16\_\-t}]{src\_\-port, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{data}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIoTcpUdpManager_aa5cb74782abb5f9705d014ba34e0d26c}


Data received event. 


\begin{DoxyParams}{Parameters}
{\em receiver\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} receiver to send \hyperlink{protocolthe-p}{the} data to. \\
\hline
{\em sockid} & unique socket ID. \\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface name \hyperlink{protocolthe-p}{the} packet arrived on, if known. If unknown, then it is an empty string. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif name \hyperlink{protocolthe-p}{the} packet arrived on, if known. If unknown, then it is an empty string. \\
\hline
{\em src\_\-host} & \hyperlink{protocolthe-p}{the} originating host IP address. \\
\hline
{\em src\_\-port} & \hyperlink{protocolthe-p}{the} originating host port number. \\
\hline
{\em data} & \hyperlink{protocolthe-p}{the} data received. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classIoTcpUdpManagerReceiver_abc480fa3e24d6b7aa7a94fdbf65506a8}{IoTcpUdpManagerReceiver}.



The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/fea/xrl\_\-io\_\-tcpudp\_\-manager.hh\item 
/home/greearb/git/xorp.ct.github/xorp/fea/xrl\_\-io\_\-tcpudp\_\-manager.cc\end{DoxyCompactItemize}
