\hypertarget{classIoTcpUdpManagerReceiver}{
\section{IoTcpUdpManagerReceiver Class Reference}
\label{classIoTcpUdpManagerReceiver}\index{IoTcpUdpManagerReceiver@{IoTcpUdpManagerReceiver}}
}


Class that implements \hyperlink{protocolthe-p}{the} API for sending TCP/UDP packets and related events to a receiver.  




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

Inheritance diagram for IoTcpUdpManagerReceiver:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classIoTcpUdpManagerReceiver}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIoTcpUdpManagerReceiver_a5d8be22c337392c0fd8e774e72c559d0}{
virtual \hyperlink{classIoTcpUdpManagerReceiver_a5d8be22c337392c0fd8e774e72c559d0}{$\sim$IoTcpUdpManagerReceiver} ()}
\label{classIoTcpUdpManagerReceiver_a5d8be22c337392c0fd8e774e72c559d0}

\begin{DoxyCompactList}\small\item\em Virtual destructor. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classIoTcpUdpManagerReceiver_abc480fa3e24d6b7aa7a94fdbf65506a8}{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)=0
\begin{DoxyCompactList}\small\item\em Data received event. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classIoTcpUdpManagerReceiver_a3b863b02da2736c0fb274b96316d459b}{inbound\_\-connect\_\-event} (const string \&receiver\_\-name, const string \&sockid, const \hyperlink{classIPvX}{IPvX} \&src\_\-host, uint16\_\-t src\_\-port, const string \&new\_\-sockid)=0
\begin{DoxyCompactList}\small\item\em Inbound connection request received event. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classIoTcpUdpManagerReceiver_a886bd76cc1f50d9e110edc74d7dbabb4}{outgoing\_\-connect\_\-event} (int family, const string \&receiver\_\-name, const string \&sockid)=0
\begin{DoxyCompactList}\small\item\em Outgoing connection request completed event. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classIoTcpUdpManagerReceiver_a3a628bd3ff67c99150a09c31c7d41b5b}{error\_\-event} (int family, const string \&receiver\_\-name, const string \&sockid, const string \&error, bool fatal)=0
\begin{DoxyCompactList}\small\item\em Error occured event. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classIoTcpUdpManagerReceiver_aaa32baa0a1bd522108809d9697943c83}{disconnect\_\-event} (int family, const string \&receiver\_\-name, const string \&sockid)=0
\begin{DoxyCompactList}\small\item\em Connection closed by peer event. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Class that implements \hyperlink{protocolthe-p}{the} API for sending TCP/UDP packets and related events to a receiver. 

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


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}


Implemented in \hyperlink{classIoTcpUdpManager_a20ea33ecf2f35f86b46a8e7a9287ab28}{IoTcpUdpManager}, and \hyperlink{classXrlIoTcpUdpManager_af40d60127e18199a1411a87ad92acb2f}{XrlIoTcpUdpManager}.

\hypertarget{classIoTcpUdpManagerReceiver_a3a628bd3ff67c99150a09c31c7d41b5b}{
\index{IoTcpUdpManagerReceiver@{IoTcpUdpManagerReceiver}!error\_\-event@{error\_\-event}}
\index{error\_\-event@{error\_\-event}!IoTcpUdpManagerReceiver@{IoTcpUdpManagerReceiver}}
\subsubsection[{error\_\-event}]{\setlength{\rightskip}{0pt plus 5cm}virtual void IoTcpUdpManagerReceiver::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{[}pure virtual\mbox{]}}}}
\label{classIoTcpUdpManagerReceiver_a3a628bd3ff67c99150a09c31c7d41b5b}


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}


Implemented in \hyperlink{classIoTcpUdpManager_a286433719e14a6485c53bc732b8ee99d}{IoTcpUdpManager}, and \hyperlink{classXrlIoTcpUdpManager_a59f9e6755acdd9d1b657ece7576f8791}{XrlIoTcpUdpManager}.

\hypertarget{classIoTcpUdpManagerReceiver_a3b863b02da2736c0fb274b96316d459b}{
\index{IoTcpUdpManagerReceiver@{IoTcpUdpManagerReceiver}!inbound\_\-connect\_\-event@{inbound\_\-connect\_\-event}}
\index{inbound\_\-connect\_\-event@{inbound\_\-connect\_\-event}!IoTcpUdpManagerReceiver@{IoTcpUdpManagerReceiver}}
\subsubsection[{inbound\_\-connect\_\-event}]{\setlength{\rightskip}{0pt plus 5cm}virtual void IoTcpUdpManagerReceiver::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{[}pure virtual\mbox{]}}}}
\label{classIoTcpUdpManagerReceiver_a3b863b02da2736c0fb274b96316d459b}


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}


Implemented in \hyperlink{classIoTcpUdpManager_a3e21b03a34c336982942a3f7e9fe1e55}{IoTcpUdpManager}, and \hyperlink{classXrlIoTcpUdpManager_a2a27d249afe78d6415a6c5e98dd9dbf3}{XrlIoTcpUdpManager}.

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


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}


Implemented in \hyperlink{classIoTcpUdpManager_a22709890ce442137753860eb8a3b7d74}{IoTcpUdpManager}, and \hyperlink{classXrlIoTcpUdpManager_a3de8205fb371c837d50c8f3c29c67ab0}{XrlIoTcpUdpManager}.

\hypertarget{classIoTcpUdpManagerReceiver_abc480fa3e24d6b7aa7a94fdbf65506a8}{
\index{IoTcpUdpManagerReceiver@{IoTcpUdpManagerReceiver}!recv\_\-event@{recv\_\-event}}
\index{recv\_\-event@{recv\_\-event}!IoTcpUdpManagerReceiver@{IoTcpUdpManagerReceiver}}
\subsubsection[{recv\_\-event}]{\setlength{\rightskip}{0pt plus 5cm}virtual void IoTcpUdpManagerReceiver::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{[}pure virtual\mbox{]}}}}
\label{classIoTcpUdpManagerReceiver_abc480fa3e24d6b7aa7a94fdbf65506a8}


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}


Implemented in \hyperlink{classIoTcpUdpManager_a1a6a94b19313f14bf21987ea323d1150}{IoTcpUdpManager}, and \hyperlink{classXrlIoTcpUdpManager_aa5cb74782abb5f9705d014ba34e0d26c}{XrlIoTcpUdpManager}.



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