\hypertarget{classIoLinkComm_1_1InputFilter}{
\section{IoLinkComm::InputFilter Class Reference}
\label{classIoLinkComm_1_1InputFilter}\index{IoLinkComm::InputFilter@{IoLinkComm::InputFilter}}
}


Filter class.  




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

Inheritance diagram for IoLinkComm::InputFilter:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classIoLinkComm_1_1InputFilter}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIoLinkComm_1_1InputFilter_ad1e4d79c7695b6143965a5cd4cb43255}{
{\bfseries InputFilter} (\hyperlink{classIoLinkManager}{IoLinkManager} \&io\_\-link\_\-manager, const string \&receiver\_\-name, const string \&if\_\-name, const string \&vif\_\-name, uint16\_\-t ether\_\-type, const string \&filter\_\-program)}
\label{classIoLinkComm_1_1InputFilter_ad1e4d79c7695b6143965a5cd4cb43255}

\item 
\hyperlink{classIoLinkManager}{IoLinkManager} \& \hyperlink{classIoLinkComm_1_1InputFilter_aefadb46543e5414bab7d085a5b2fdb83}{io\_\-link\_\-manager} ()
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} I/O Link manager. \item\end{DoxyCompactList}\item 
const \hyperlink{classIoLinkManager}{IoLinkManager} \& \hyperlink{classIoLinkComm_1_1InputFilter_a98b96553cde285c3a4341d46a703682e}{io\_\-link\_\-manager} () const 
\begin{DoxyCompactList}\small\item\em Get a const reference to \hyperlink{protocolthe-p}{the} I/O Link manager. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classIoLinkComm_1_1InputFilter_aed749b8cbcd1d1bc5fdce82329b598f9}{receiver\_\-name} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} receiver name. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classIoLinkComm_1_1InputFilter_a447fd171c518711aae09d1e00d39d734}{if\_\-name} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} interface name. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classIoLinkComm_1_1InputFilter_a65fb1b7d4a8038db1f80e62ebe80612c}{vif\_\-name} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} vif name. \item\end{DoxyCompactList}\item 
uint16\_\-t \hyperlink{classIoLinkComm_1_1InputFilter_aa897ffbbb0427658a88875b9ea1f80b3}{ether\_\-type} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} EtherType protocol number. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classIoLinkComm_1_1InputFilter_a083a2a5e4da644160dada3c5696b1cc9}{filter\_\-program} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} filter program. \item\end{DoxyCompactList}\item 
\hypertarget{classIoLinkComm_1_1InputFilter_a612c246b04c0897f9c7c45065138cf6f}{
virtual void \hyperlink{classIoLinkComm_1_1InputFilter_a612c246b04c0897f9c7c45065138cf6f}{recv} (const struct \hyperlink{structMacHeaderInfo}{MacHeaderInfo} \&header, const vector$<$ uint8\_\-t $>$ \&payload)=0}
\label{classIoLinkComm_1_1InputFilter_a612c246b04c0897f9c7c45065138cf6f}

\begin{DoxyCompactList}\small\item\em Method invoked when data arrives on associated \hyperlink{classIoLinkComm}{IoLinkComm} instance. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classIoLinkComm_1_1InputFilter_adfab7785bdbefcfb249c733e17cce6ca}{bye} ()=0
\begin{DoxyCompactList}\small\item\em Method invoked by \hyperlink{protocolthe-p}{the} destructor of \hyperlink{protocolthe-p}{the} associated \hyperlink{classIoLinkComm}{IoLinkComm} instance. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIoLinkComm_1_1InputFilter_a6d356565ea766c625826d45fae0c7ec0}{
\hyperlink{classIoLinkManager}{IoLinkManager} \& {\bfseries \_\-io\_\-link\_\-manager}}
\label{classIoLinkComm_1_1InputFilter_a6d356565ea766c625826d45fae0c7ec0}

\item 
\hypertarget{classIoLinkComm_1_1InputFilter_a62c7fc97d9e33652d7e8c78b25ec1f5f}{
string {\bfseries \_\-receiver\_\-name}}
\label{classIoLinkComm_1_1InputFilter_a62c7fc97d9e33652d7e8c78b25ec1f5f}

\item 
\hypertarget{classIoLinkComm_1_1InputFilter_a7a379d0d67d42a9ced0aae886c1dcc44}{
string {\bfseries \_\-if\_\-name}}
\label{classIoLinkComm_1_1InputFilter_a7a379d0d67d42a9ced0aae886c1dcc44}

\item 
\hypertarget{classIoLinkComm_1_1InputFilter_aca05ecb235f1217b80f427851adcdfbb}{
string {\bfseries \_\-vif\_\-name}}
\label{classIoLinkComm_1_1InputFilter_aca05ecb235f1217b80f427851adcdfbb}

\item 
\hypertarget{classIoLinkComm_1_1InputFilter_ab9c1f141751de05b7d883bd5daceedee}{
uint16\_\-t {\bfseries \_\-ether\_\-type}}
\label{classIoLinkComm_1_1InputFilter_ab9c1f141751de05b7d883bd5daceedee}

\item 
\hypertarget{classIoLinkComm_1_1InputFilter_ab7ffd673e27f637e0f4904c60ea37c43}{
string {\bfseries \_\-filter\_\-program}}
\label{classIoLinkComm_1_1InputFilter_ab7ffd673e27f637e0f4904c60ea37c43}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Filter class. 

\subsection{Member Function Documentation}
\hypertarget{classIoLinkComm_1_1InputFilter_adfab7785bdbefcfb249c733e17cce6ca}{
\index{IoLinkComm::InputFilter@{IoLinkComm::InputFilter}!bye@{bye}}
\index{bye@{bye}!IoLinkComm::InputFilter@{IoLinkComm::InputFilter}}
\subsubsection[{bye}]{\setlength{\rightskip}{0pt plus 5cm}virtual void IoLinkComm::InputFilter::bye (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIoLinkComm_1_1InputFilter_adfab7785bdbefcfb249c733e17cce6ca}


Method invoked by \hyperlink{protocolthe-p}{the} destructor of \hyperlink{protocolthe-p}{the} associated \hyperlink{classIoLinkComm}{IoLinkComm} instance. 

This method provides \hyperlink{protocolthe-p}{the} \hyperlink{classIoLinkComm_1_1InputFilter}{InputFilter} with \hyperlink{protocolthe-p}{the} opportunity to delete itself or update its state. The input filter does not need to call \hyperlink{classIoLinkComm_a4590856ea6d9711bb9a4433c5b366185}{IoLinkComm::remove\_\-filter()} since filter removal is automatically conducted. 

Implemented in \hyperlink{classTxOnlyFilter_a9bf9e3cd33a735e1e500386cc4728547}{TxOnlyFilter}, and \hyperlink{classLinkVifInputFilter_a82f3bf74787fce0652d1d71ce24bb102}{LinkVifInputFilter}.

\hypertarget{classIoLinkComm_1_1InputFilter_aa897ffbbb0427658a88875b9ea1f80b3}{
\index{IoLinkComm::InputFilter@{IoLinkComm::InputFilter}!ether\_\-type@{ether\_\-type}}
\index{ether\_\-type@{ether\_\-type}!IoLinkComm::InputFilter@{IoLinkComm::InputFilter}}
\subsubsection[{ether\_\-type}]{\setlength{\rightskip}{0pt plus 5cm}uint16\_\-t IoLinkComm::InputFilter::ether\_\-type (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIoLinkComm_1_1InputFilter_aa897ffbbb0427658a88875b9ea1f80b3}


Get \hyperlink{protocolthe-p}{the} EtherType protocol number. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} EtherType protocol number. 
\end{DoxyReturn}
\hypertarget{classIoLinkComm_1_1InputFilter_a083a2a5e4da644160dada3c5696b1cc9}{
\index{IoLinkComm::InputFilter@{IoLinkComm::InputFilter}!filter\_\-program@{filter\_\-program}}
\index{filter\_\-program@{filter\_\-program}!IoLinkComm::InputFilter@{IoLinkComm::InputFilter}}
\subsubsection[{filter\_\-program}]{\setlength{\rightskip}{0pt plus 5cm}const string\& IoLinkComm::InputFilter::filter\_\-program (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIoLinkComm_1_1InputFilter_a083a2a5e4da644160dada3c5696b1cc9}


Get \hyperlink{protocolthe-p}{the} filter program. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} filter program. 
\end{DoxyReturn}
\hypertarget{classIoLinkComm_1_1InputFilter_a447fd171c518711aae09d1e00d39d734}{
\index{IoLinkComm::InputFilter@{IoLinkComm::InputFilter}!if\_\-name@{if\_\-name}}
\index{if\_\-name@{if\_\-name}!IoLinkComm::InputFilter@{IoLinkComm::InputFilter}}
\subsubsection[{if\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}const string\& IoLinkComm::InputFilter::if\_\-name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIoLinkComm_1_1InputFilter_a447fd171c518711aae09d1e00d39d734}


Get \hyperlink{protocolthe-p}{the} interface name. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} interface name. 
\end{DoxyReturn}
\hypertarget{classIoLinkComm_1_1InputFilter_a98b96553cde285c3a4341d46a703682e}{
\index{IoLinkComm::InputFilter@{IoLinkComm::InputFilter}!io\_\-link\_\-manager@{io\_\-link\_\-manager}}
\index{io\_\-link\_\-manager@{io\_\-link\_\-manager}!IoLinkComm::InputFilter@{IoLinkComm::InputFilter}}
\subsubsection[{io\_\-link\_\-manager}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IoLinkManager}\& IoLinkComm::InputFilter::io\_\-link\_\-manager (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIoLinkComm_1_1InputFilter_a98b96553cde285c3a4341d46a703682e}


Get a const reference to \hyperlink{protocolthe-p}{the} I/O Link manager. 

\begin{DoxyReturn}{Returns}
a const reference to \hyperlink{protocolthe-p}{the} I/O Link manager. 
\end{DoxyReturn}
\hypertarget{classIoLinkComm_1_1InputFilter_aefadb46543e5414bab7d085a5b2fdb83}{
\index{IoLinkComm::InputFilter@{IoLinkComm::InputFilter}!io\_\-link\_\-manager@{io\_\-link\_\-manager}}
\index{io\_\-link\_\-manager@{io\_\-link\_\-manager}!IoLinkComm::InputFilter@{IoLinkComm::InputFilter}}
\subsubsection[{io\_\-link\_\-manager}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IoLinkManager}\& IoLinkComm::InputFilter::io\_\-link\_\-manager (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIoLinkComm_1_1InputFilter_aefadb46543e5414bab7d085a5b2fdb83}


Get a reference to \hyperlink{protocolthe-p}{the} I/O Link manager. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} I/O Link manager. 
\end{DoxyReturn}
\hypertarget{classIoLinkComm_1_1InputFilter_aed749b8cbcd1d1bc5fdce82329b598f9}{
\index{IoLinkComm::InputFilter@{IoLinkComm::InputFilter}!receiver\_\-name@{receiver\_\-name}}
\index{receiver\_\-name@{receiver\_\-name}!IoLinkComm::InputFilter@{IoLinkComm::InputFilter}}
\subsubsection[{receiver\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}const string\& IoLinkComm::InputFilter::receiver\_\-name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIoLinkComm_1_1InputFilter_aed749b8cbcd1d1bc5fdce82329b598f9}


Get \hyperlink{protocolthe-p}{the} receiver name. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} receiver name. 
\end{DoxyReturn}
\hypertarget{classIoLinkComm_1_1InputFilter_a65fb1b7d4a8038db1f80e62ebe80612c}{
\index{IoLinkComm::InputFilter@{IoLinkComm::InputFilter}!vif\_\-name@{vif\_\-name}}
\index{vif\_\-name@{vif\_\-name}!IoLinkComm::InputFilter@{IoLinkComm::InputFilter}}
\subsubsection[{vif\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}const string\& IoLinkComm::InputFilter::vif\_\-name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIoLinkComm_1_1InputFilter_a65fb1b7d4a8038db1f80e62ebe80612c}


Get \hyperlink{protocolthe-p}{the} vif name. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} vif name. 
\end{DoxyReturn}


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