\hypertarget{classFilterManager}{
\section{FilterManager Class Reference}
\label{classFilterManager}\index{FilterManager@{FilterManager}}
}


Deals with sending code to policy filters.  




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

Inheritance diagram for FilterManager:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classFilterManager}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classFilterManager_1_1FMException}{FMException}
\begin{DoxyCompactList}\small\item\em Exception thrown on error. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFilterManager_a2e19f66c17f6e675e7484a645701a1af}{
typedef map$<$ string, \hyperlink{classCode}{Code} $\ast$ $>$ {\bfseries CodeMap}}
\label{classFilterManager_a2e19f66c17f6e675e7484a645701a1af}

\item 
\hypertarget{classFilterManager_aad7235ab819bfc95f934fae63d0cc126}{
typedef map$<$ string, string $>$ {\bfseries ConfQueue}}
\label{classFilterManager_aad7235ab819bfc95f934fae63d0cc126}

\item 
\hypertarget{classFilterManager_a42a0fe46fd51ba22f0d5e6c4330f51b2}{
typedef set$<$ uint32\_\-t $>$ {\bfseries TagSet}}
\label{classFilterManager_a42a0fe46fd51ba22f0d5e6c4330f51b2}

\item 
\hypertarget{classFilterManager_a2bd0e1cf2f1a8f77428a10cc194df97f}{
typedef map$<$ string, TagSet $\ast$ $>$ {\bfseries TagMap}}
\label{classFilterManager_a2bd0e1cf2f1a8f77428a10cc194df97f}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classFilterManager_adb633a5bc78a800894c1031ceb1d19fb}{FilterManager} (const CodeMap \&imp, const CodeMap \&sm, const CodeMap \&exp, const \hyperlink{classSetMap}{SetMap} \&sets, const TagMap \&tagmap, \hyperlink{classXrlStdRouter}{XrlStdRouter} \&rtr, \hyperlink{classProcessWatch}{ProcessWatch} \&pw, \hyperlink{classProtocolMap}{ProtocolMap} \&pmap)
\begin{DoxyCompactList}\small\item\em The \hyperlink{classFilterManager}{FilterManager} closely works with \hyperlink{protocolthe-p}{the} \hyperlink{classConfiguration}{Configuration} class. \item\end{DoxyCompactList}\item 
void \hyperlink{classFilterManager_a7ec09f47afaf3f6cc474b47d7d27aa2a}{update\_\-filter} (const \hyperlink{classCode_1_1Target}{Code::Target} \&t)
\begin{DoxyCompactList}\small\item\em Update \hyperlink{protocolthe-p}{the} filter for a specific target. \item\end{DoxyCompactList}\item 
void \hyperlink{classFilterManager_a505f3c7f756a064496c9870eb00b7773}{policy\_\-backend\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&e)
\begin{DoxyCompactList}\small\item\em \hyperlink{classXrl}{Xrl} callback for all XRL requests. \item\end{DoxyCompactList}\item 
\hypertarget{classFilterManager_a1e93fe1285ff69dc2e511608e4859018}{
void \hyperlink{classFilterManager_a1e93fe1285ff69dc2e511608e4859018}{push\_\-routes\_\-now} ()}
\label{classFilterManager_a1e93fe1285ff69dc2e511608e4859018}

\begin{DoxyCompactList}\small\item\em Flushes \hyperlink{protocolthe-p}{the} route pushing queue. \item\end{DoxyCompactList}\item 
\hypertarget{classFilterManager_ae4e1628bc6b47e922ce8a35c907634a2}{
void \hyperlink{classFilterManager_ae4e1628bc6b47e922ce8a35c907634a2}{flush\_\-updates\_\-now} ()}
\label{classFilterManager_ae4e1628bc6b47e922ce8a35c907634a2}

\begin{DoxyCompactList}\small\item\em Flush all queues now. \item\end{DoxyCompactList}\item 
void \hyperlink{classFilterManager_abfe958ab84a60215bb139010e67def47}{flush\_\-updates} (uint32\_\-t msec)
\begin{DoxyCompactList}\small\item\em Flush all updates after msec milliseconds. \item\end{DoxyCompactList}\item 
void \hyperlink{classFilterManager_a89bde7ac0e135afd651ede050de079e3}{birth} (const string \&protocol)
\begin{DoxyCompactList}\small\item\em A protocol just came back to life. \item\end{DoxyCompactList}\item 
void \hyperlink{classFilterManager_a8abee08f9f5f646e6f85cfbd2d5f21dd}{death} (const string \&protocol)
\begin{DoxyCompactList}\small\item\em A protocol just died. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classFilterManager_a56ce4a2df7ddd090ac7cfc42140c1cff}{update\_\-import\_\-filter} (const string \&protocol)
\begin{DoxyCompactList}\small\item\em Update \hyperlink{protocolthe-p}{the} import filter for a specific protocol. \item\end{DoxyCompactList}\item 
void \hyperlink{classFilterManager_ac4f6117251c478d5e9da1c93f5bc7697}{update\_\-sourcematch\_\-filter} (const string \&protocol)
\begin{DoxyCompactList}\small\item\em Update \hyperlink{protocolthe-p}{the} source-\/match filter for a specific protocol. \item\end{DoxyCompactList}\item 
void \hyperlink{classFilterManager_aaa36c4162a14241b1a3bcff8bc9a9d1c}{update\_\-export\_\-filter} (const string \&protocol)
\begin{DoxyCompactList}\small\item\em Update \hyperlink{protocolthe-p}{the} export filter for a specific protocol. \item\end{DoxyCompactList}\item 
void \hyperlink{classFilterManager_a5592aa3be3df3b23d29edee924831543}{update\_\-tagmap} (const string \&protocol)
\begin{DoxyCompactList}\small\item\em Update \hyperlink{protocolthe-p}{the} policy-\/tag map in \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} for a specific protocol. \item\end{DoxyCompactList}\item 
void \hyperlink{classFilterManager_ab72e85e98d5fd94304ea93a011b7fb1e}{flush\_\-export\_\-queue} ()
\begin{DoxyCompactList}\small\item\em Flush all updates for export filters. \item\end{DoxyCompactList}\item 
void \hyperlink{classFilterManager_a20cdebd512d69d26d7d082f01c3d9d2e}{flush\_\-queue} (ConfQueue \&queue, filter::Filter f)
\begin{DoxyCompactList}\small\item\em Flush all updates for a specific filter-\/type queue. \item\end{DoxyCompactList}\item 
\hypertarget{classFilterManager_a9118b51d0e316690a2c0faf563182d24}{
void {\bfseries delete\_\-queue\_\-protocol} (ConfQueue \&queue, const string \&protocol)}
\label{classFilterManager_a9118b51d0e316690a2c0faf563182d24}

\item 
\hypertarget{classFilterManager_accf5f88ac3d57658001f9dd631cb0d03}{
void {\bfseries update\_\-queue} (const string \&protocol, const CodeMap \&cm, ConfQueue \&queue)}
\label{classFilterManager_accf5f88ac3d57658001f9dd631cb0d03}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFilterManager_a46b844848dd35c930bdaf26cffd7d9b3}{
const CodeMap \& {\bfseries \_\-import}}
\label{classFilterManager_a46b844848dd35c930bdaf26cffd7d9b3}

\item 
\hypertarget{classFilterManager_afd5f2a7f05efd6c581e9e064df143fb3}{
const CodeMap \& {\bfseries \_\-sourcematch}}
\label{classFilterManager_afd5f2a7f05efd6c581e9e064df143fb3}

\item 
\hypertarget{classFilterManager_a729a85269748148049af38beb78fe042}{
const CodeMap \& {\bfseries \_\-export}}
\label{classFilterManager_a729a85269748148049af38beb78fe042}

\item 
\hypertarget{classFilterManager_a834874b44b048b13bfc53921f4a45e29}{
const \hyperlink{classSetMap}{SetMap} \& {\bfseries \_\-sets}}
\label{classFilterManager_a834874b44b048b13bfc53921f4a45e29}

\item 
\hypertarget{classFilterManager_a40a4497b5acc6576cb14f294b9516155}{
const TagMap \& {\bfseries \_\-tagmap}}
\label{classFilterManager_a40a4497b5acc6576cb14f294b9516155}

\item 
\hypertarget{classFilterManager_aed9a96721c0ff1dd3a6fea6c62bd1180}{
ConfQueue {\bfseries \_\-import\_\-queue}}
\label{classFilterManager_aed9a96721c0ff1dd3a6fea6c62bd1180}

\item 
\hypertarget{classFilterManager_abcfd5c4c15112f9db43fd90700a2513c}{
ConfQueue {\bfseries \_\-sourcematch\_\-queue}}
\label{classFilterManager_abcfd5c4c15112f9db43fd90700a2513c}

\item 
\hypertarget{classFilterManager_ab176a45c1f87041485bc1c467073d376}{
ConfQueue {\bfseries \_\-export\_\-queue}}
\label{classFilterManager_ab176a45c1f87041485bc1c467073d376}

\item 
\hypertarget{classFilterManager_a8eff54290eef94caf678c28b45fc049b}{
set$<$ string $>$ {\bfseries \_\-push\_\-queue}}
\label{classFilterManager_a8eff54290eef94caf678c28b45fc049b}

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

\item 
\hypertarget{classFilterManager_afe2ecb5990dd3b96a4eefc302410adf7}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-flush\_\-timer}}
\label{classFilterManager_afe2ecb5990dd3b96a4eefc302410adf7}

\item 
\hypertarget{classFilterManager_ac96744342089ce76d38c2be90231a29a}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-push\_\-timer}}
\label{classFilterManager_ac96744342089ce76d38c2be90231a29a}

\item 
\hypertarget{classFilterManager_a5b8336b929ce863681e2617d3ddb045e}{
unsigned {\bfseries \_\-push\_\-timeout}}
\label{classFilterManager_a5b8336b929ce863681e2617d3ddb045e}

\item 
\hypertarget{classFilterManager_a597731a5e5fcd890aecf08199185c5d6}{
\hyperlink{classProcessWatch}{ProcessWatch} \& {\bfseries \_\-process\_\-watch}}
\label{classFilterManager_a597731a5e5fcd890aecf08199185c5d6}

\item 
\hypertarget{classFilterManager_aeeefca0cf0302caa945098f551cf468a}{
\hyperlink{classXrlPolicyBackendV0p1Client}{XrlPolicyBackendV0p1Client} {\bfseries \_\-policy\_\-backend}}
\label{classFilterManager_aeeefca0cf0302caa945098f551cf468a}

\item 
\hypertarget{classFilterManager_aec0acf33bd20fc197a4f899dc1cf578f}{
\hyperlink{classXrlRibV0p1Client}{XrlRibV0p1Client} {\bfseries \_\-rib}}
\label{classFilterManager_aec0acf33bd20fc197a4f899dc1cf578f}

\item 
\hypertarget{classFilterManager_a6b9059344e99b74e9e11f263fcafa56f}{
string {\bfseries \_\-rib\_\-name}}
\label{classFilterManager_a6b9059344e99b74e9e11f263fcafa56f}

\item 
\hypertarget{classFilterManager_a9aa8010a481f3926a775d9fc08010250}{
\hyperlink{classProtocolMap}{ProtocolMap} \& {\bfseries \_\-pmap}}
\label{classFilterManager_a9aa8010a481f3926a775d9fc08010250}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Deals with sending code to policy filters. It manages sending \hyperlink{protocolthe-p}{the} code and sets to \hyperlink{protocolthe-p}{the} filters in \hyperlink{protocolthe-p}{the} protocols. It also updates \hyperlink{protocolthe-p}{the} policy-\/tag-\/map in \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}.

It also keeps track if protocols die / come back to life, throw \hyperlink{protocolthe-p}{the} process watch in order to re-\/send code to filters which were dead and are now back. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classFilterManager_adb633a5bc78a800894c1031ceb1d19fb}{
\index{FilterManager@{FilterManager}!FilterManager@{FilterManager}}
\index{FilterManager@{FilterManager}!FilterManager@{FilterManager}}
\subsubsection[{FilterManager}]{\setlength{\rightskip}{0pt plus 5cm}FilterManager::FilterManager (
\begin{DoxyParamCaption}
\item[{const CodeMap \&}]{imp, }
\item[{const CodeMap \&}]{sm, }
\item[{const CodeMap \&}]{exp, }
\item[{const {\bf SetMap} \&}]{sets, }
\item[{const TagMap \&}]{tagmap, }
\item[{{\bf XrlStdRouter} \&}]{rtr, }
\item[{{\bf ProcessWatch} \&}]{pw, }
\item[{{\bf ProtocolMap} \&}]{pmap}
\end{DoxyParamCaption}
)}}
\label{classFilterManager_adb633a5bc78a800894c1031ceb1d19fb}


The \hyperlink{classFilterManager}{FilterManager} closely works with \hyperlink{protocolthe-p}{the} \hyperlink{classConfiguration}{Configuration} class. 

Maybe in \hyperlink{protocolthe-p}{the} future holding a reference \hyperlink{protocolthe-p}{the} \hyperlink{classConfiguration}{Configuration} class, instead of \hyperlink{protocolthe-p}{the} internal components may be a better solution.


\begin{DoxyParams}{Parameters}
{\em imp} & import filter CodeMap to use. \\
\hline
{\em sm} & source match filter CodeMap to use. \\
\hline
{\em exp} & export filter CodeMap to use. \\
\hline
{\em sets} & \hyperlink{classSetMap}{SetMap} to use. \\
\hline
{\em tagmap} & TagMap to use. \\
\hline
{\em rtr} & \hyperlink{protocolthe-p}{the} XRL router used by \hyperlink{protocolthe-p}{the} policy process. \\
\hline
{\em pw} & \hyperlink{protocolthe-p}{the} process watcher. \\
\hline
{\em pmap} & \hyperlink{protocolthe-p}{the} protocol map. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classFilterManager_a89bde7ac0e135afd651ede050de079e3}{
\index{FilterManager@{FilterManager}!birth@{birth}}
\index{birth@{birth}!FilterManager@{FilterManager}}
\subsubsection[{birth}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::birth (
\begin{DoxyParamCaption}
\item[{const string \&}]{protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classFilterManager_a89bde7ac0e135afd651ede050de079e3}


A protocol just came back to life. 


\begin{DoxyParams}{Parameters}
{\em protocol} & name of protocol which is alive. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classPWNotifier_ac98f95473f69edf63c65a50344ad5986}{PWNotifier}.

\hypertarget{classFilterManager_a8abee08f9f5f646e6f85cfbd2d5f21dd}{
\index{FilterManager@{FilterManager}!death@{death}}
\index{death@{death}!FilterManager@{FilterManager}}
\subsubsection[{death}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::death (
\begin{DoxyParamCaption}
\item[{const string \&}]{protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classFilterManager_a8abee08f9f5f646e6f85cfbd2d5f21dd}


A protocol just died. 


\begin{DoxyParams}{Parameters}
{\em protocol} & name of protocol which died. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classPWNotifier_a0daca802e90ab918ff2b3473d29ccc5f}{PWNotifier}.

\hypertarget{classFilterManager_ab72e85e98d5fd94304ea93a011b7fb1e}{
\index{FilterManager@{FilterManager}!flush\_\-export\_\-queue@{flush\_\-export\_\-queue}}
\index{flush\_\-export\_\-queue@{flush\_\-export\_\-queue}!FilterManager@{FilterManager}}
\subsubsection[{flush\_\-export\_\-queue}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::flush\_\-export\_\-queue (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFilterManager_ab72e85e98d5fd94304ea93a011b7fb1e}


Flush all updates for export filters. 

Also keep track which protocols must have their routes pushed. \hypertarget{classFilterManager_a20cdebd512d69d26d7d082f01c3d9d2e}{
\index{FilterManager@{FilterManager}!flush\_\-queue@{flush\_\-queue}}
\index{flush\_\-queue@{flush\_\-queue}!FilterManager@{FilterManager}}
\subsubsection[{flush\_\-queue}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::flush\_\-queue (
\begin{DoxyParamCaption}
\item[{ConfQueue \&}]{queue, }
\item[{filter::Filter}]{f}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFilterManager_a20cdebd512d69d26d7d082f01c3d9d2e}


Flush all updates for a specific filter-\/type queue. 

Record which protocols need to be pushed.


\begin{DoxyParams}{Parameters}
{\em queue} & queue for which updates need to be flushed. \\
\hline
{\em f} & filter for which updates should be flushed. \\
\hline
\end{DoxyParams}
\hypertarget{classFilterManager_abfe958ab84a60215bb139010e67def47}{
\index{FilterManager@{FilterManager}!flush\_\-updates@{flush\_\-updates}}
\index{flush\_\-updates@{flush\_\-updates}!FilterManager@{FilterManager}}
\subsubsection[{flush\_\-updates}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::flush\_\-updates (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{msec}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classFilterManager_abfe958ab84a60215bb139010e67def47}


Flush all updates after msec milliseconds. 

If a new update comes in before msec expires, only \hyperlink{protocolthe-p}{the} new update will be performed.


\begin{DoxyParams}{Parameters}
{\em msec} & milliseconds after which all queues should be flushed. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classFilterManagerBase_aa1197979f4c84028d93c4a8df1732f54}{FilterManagerBase}.

\hypertarget{classFilterManager_a505f3c7f756a064496c9870eb00b7773}{
\index{FilterManager@{FilterManager}!policy\_\-backend\_\-cb@{policy\_\-backend\_\-cb}}
\index{policy\_\-backend\_\-cb@{policy\_\-backend\_\-cb}!FilterManager@{FilterManager}}
\subsubsection[{policy\_\-backend\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::policy\_\-backend\_\-cb (
\begin{DoxyParamCaption}
\item[{const {\bf XrlError} \&}]{e}
\end{DoxyParamCaption}
)}}
\label{classFilterManager_a505f3c7f756a064496c9870eb00b7773}


\hyperlink{classXrl}{Xrl} callback for all XRL requests. 


\begin{DoxyParams}{Parameters}
{\em e} & possible XRL error. \\
\hline
\end{DoxyParams}
\hypertarget{classFilterManager_aaa36c4162a14241b1a3bcff8bc9a9d1c}{
\index{FilterManager@{FilterManager}!update\_\-export\_\-filter@{update\_\-export\_\-filter}}
\index{update\_\-export\_\-filter@{update\_\-export\_\-filter}!FilterManager@{FilterManager}}
\subsubsection[{update\_\-export\_\-filter}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::update\_\-export\_\-filter (
\begin{DoxyParamCaption}
\item[{const string \&}]{protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFilterManager_aaa36c4162a14241b1a3bcff8bc9a9d1c}


Update \hyperlink{protocolthe-p}{the} export filter for a specific protocol. 


\begin{DoxyParams}{Parameters}
{\em protocol} & protocol of which \hyperlink{protocolthe-p}{the} export filter must be updated. \\
\hline
\end{DoxyParams}
\hypertarget{classFilterManager_a7ec09f47afaf3f6cc474b47d7d27aa2a}{
\index{FilterManager@{FilterManager}!update\_\-filter@{update\_\-filter}}
\index{update\_\-filter@{update\_\-filter}!FilterManager@{FilterManager}}
\subsubsection[{update\_\-filter}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::update\_\-filter (
\begin{DoxyParamCaption}
\item[{const {\bf Code::Target} \&}]{t}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classFilterManager_a7ec09f47afaf3f6cc474b47d7d27aa2a}


Update \hyperlink{protocolthe-p}{the} filter for a specific target. 

This will normally queue a filter configuration request.


\begin{DoxyParams}{Parameters}
{\em t} & target which should be updated. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classFilterManagerBase_ad21a35b2b4e01a454d4c6e23841ebb0e}{FilterManagerBase}.

\hypertarget{classFilterManager_a56ce4a2df7ddd090ac7cfc42140c1cff}{
\index{FilterManager@{FilterManager}!update\_\-import\_\-filter@{update\_\-import\_\-filter}}
\index{update\_\-import\_\-filter@{update\_\-import\_\-filter}!FilterManager@{FilterManager}}
\subsubsection[{update\_\-import\_\-filter}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::update\_\-import\_\-filter (
\begin{DoxyParamCaption}
\item[{const string \&}]{protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFilterManager_a56ce4a2df7ddd090ac7cfc42140c1cff}


Update \hyperlink{protocolthe-p}{the} import filter for a specific protocol. 


\begin{DoxyParams}{Parameters}
{\em protocol} & protocol of which \hyperlink{protocolthe-p}{the} import filter must be updated. \\
\hline
\end{DoxyParams}
\hypertarget{classFilterManager_ac4f6117251c478d5e9da1c93f5bc7697}{
\index{FilterManager@{FilterManager}!update\_\-sourcematch\_\-filter@{update\_\-sourcematch\_\-filter}}
\index{update\_\-sourcematch\_\-filter@{update\_\-sourcematch\_\-filter}!FilterManager@{FilterManager}}
\subsubsection[{update\_\-sourcematch\_\-filter}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::update\_\-sourcematch\_\-filter (
\begin{DoxyParamCaption}
\item[{const string \&}]{protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFilterManager_ac4f6117251c478d5e9da1c93f5bc7697}


Update \hyperlink{protocolthe-p}{the} source-\/match filter for a specific protocol. 


\begin{DoxyParams}{Parameters}
{\em protocol} & protocol of which \hyperlink{protocolthe-p}{the} sourcematch filter must be updated. \\
\hline
\end{DoxyParams}
\hypertarget{classFilterManager_a5592aa3be3df3b23d29edee924831543}{
\index{FilterManager@{FilterManager}!update\_\-tagmap@{update\_\-tagmap}}
\index{update\_\-tagmap@{update\_\-tagmap}!FilterManager@{FilterManager}}
\subsubsection[{update\_\-tagmap}]{\setlength{\rightskip}{0pt plus 5cm}void FilterManager::update\_\-tagmap (
\begin{DoxyParamCaption}
\item[{const string \&}]{protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFilterManager_a5592aa3be3df3b23d29edee924831543}


Update \hyperlink{protocolthe-p}{the} policy-\/tag map in \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} for a specific protocol. 


\begin{DoxyParams}{Parameters}
{\em protocol} & protocol for which tags should be updated. \\
\hline
\end{DoxyParams}


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