\hypertarget{classIfMgrXrlReplicationManager}{
\section{IfMgrXrlReplicationManager Class Reference}
\label{classIfMgrXrlReplicationManager}\index{IfMgrXrlReplicationManager@{IfMgrXrlReplicationManager}}
}


Class that builds and maintains replicator state for multiple remote targets.  




{\ttfamily \#include $<$ifmgr\_\-xrl\_\-replicator.hh$>$}

Inheritance diagram for IfMgrXrlReplicationManager:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classIfMgrXrlReplicationManager}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIfMgrXrlReplicationManager_a056b4605922618826441593fd4d633ab}{
typedef \hyperlink{classref__ptr}{IfMgrCommandSinkBase::Cmd} {\bfseries Cmd}}
\label{classIfMgrXrlReplicationManager_a056b4605922618826441593fd4d633ab}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIfMgrXrlReplicationManager_a47d0b589fded34e42bf1b777529d7080}{
{\bfseries IfMgrXrlReplicationManager} (\hyperlink{classXrlRouter}{XrlRouter} \&rtr)}
\label{classIfMgrXrlReplicationManager_a47d0b589fded34e42bf1b777529d7080}

\item 
bool \hyperlink{classIfMgrXrlReplicationManager_a0e3fd98e0001db4ae8fd34389ab23cba}{add\_\-mirror} (const string \&xrl\_\-target\_\-name)
\begin{DoxyCompactList}\small\item\em Add a remote mirror. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIfMgrXrlReplicationManager_a4663f8fb85f13eda716920e35b80b26b}{remove\_\-mirror} (const string \&xrl\_\-target\_\-name)
\begin{DoxyCompactList}\small\item\em Remove remote mirror. \item\end{DoxyCompactList}\item 
\hypertarget{classIfMgrXrlReplicationManager_aa89290f59b8edea2de6d327a71bca100}{
void \hyperlink{classIfMgrXrlReplicationManager_aa89290f59b8edea2de6d327a71bca100}{push} (const \hyperlink{classref__ptr}{Cmd} \&c)}
\label{classIfMgrXrlReplicationManager_aa89290f59b8edea2de6d327a71bca100}

\begin{DoxyCompactList}\small\item\em Apply command to local configuration tree and forward Xrls to targets to replicate state remotely if application to local tree succeeds. \item\end{DoxyCompactList}\item 
\hypertarget{classIfMgrXrlReplicationManager_a8f799dfdf775e2ee14cd86808ac1e63a}{
void \hyperlink{classIfMgrXrlReplicationManager_a8f799dfdf775e2ee14cd86808ac1e63a}{crank\_\-replicators\_\-queue} ()}
\label{classIfMgrXrlReplicationManager_a8f799dfdf775e2ee14cd86808ac1e63a}

\begin{DoxyCompactList}\small\item\em Method invoked when it is time to schedule \hyperlink{protocolthe-p}{the} next \hyperlink{classXrl}{Xrl} dispatch. \item\end{DoxyCompactList}\item 
\hypertarget{classIfMgrXrlReplicationManager_ae6985ff768162517b2816df6fae4363e}{
void \hyperlink{classIfMgrXrlReplicationManager_ae6985ff768162517b2816df6fae4363e}{crank\_\-replicators\_\-queue\_\-cb} ()}
\label{classIfMgrXrlReplicationManager_ae6985ff768162517b2816df6fae4363e}

\begin{DoxyCompactList}\small\item\em Method invoked when \hyperlink{protocolthe-p}{the} previous \hyperlink{classXrl}{Xrl} dispatch has completed. \item\end{DoxyCompactList}\item 
\hypertarget{classIfMgrXrlReplicationManager_a1a0624220299318c97467f0c741b5ef2}{
void \hyperlink{classIfMgrXrlReplicationManager_a1a0624220299318c97467f0c741b5ef2}{push\_\-manager\_\-queue} (\hyperlink{classIfMgrManagedXrlReplicator}{IfMgrManagedXrlReplicator} $\ast$r)}
\label{classIfMgrXrlReplicationManager_a1a0624220299318c97467f0c741b5ef2}

\begin{DoxyCompactList}\small\item\em Method invoked when a command should be added to \hyperlink{protocolthe-p}{the} manager's queue. \item\end{DoxyCompactList}\item 
\hypertarget{classIfMgrXrlReplicationManager_aef85d3d5962260d6655e086cfdb6daa7}{
const \hyperlink{classIfMgrIfTree}{IfMgrIfTree} \& {\bfseries iftree} () const }
\label{classIfMgrXrlReplicationManager_aef85d3d5962260d6655e086cfdb6daa7}

\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIfMgrXrlReplicationManager_a9f6ba3791721367e0d69185f200a0303}{
typedef list$<$ \hyperlink{classIfMgrManagedXrlReplicator}{IfMgrManagedXrlReplicator} $\ast$ $>$ {\bfseries Outputs}}
\label{classIfMgrXrlReplicationManager_a9f6ba3791721367e0d69185f200a0303}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIfMgrXrlReplicationManager_acd8a5d8e6b566eceb2fa078781a94a20}{
\hyperlink{classIfMgrIfTree}{IfMgrIfTree} {\bfseries \_\-iftree}}
\label{classIfMgrXrlReplicationManager_acd8a5d8e6b566eceb2fa078781a94a20}

\item 
\hypertarget{classIfMgrXrlReplicationManager_a94bdf5c888359decba47024da4944372}{
\hyperlink{classXrlRouter}{XrlRouter} \& {\bfseries \_\-rtr}}
\label{classIfMgrXrlReplicationManager_a94bdf5c888359decba47024da4944372}

\item 
\hypertarget{classIfMgrXrlReplicationManager_a1a93eb04048833c470f0668f647781a4}{
Outputs {\bfseries \_\-outputs}}
\label{classIfMgrXrlReplicationManager_a1a93eb04048833c470f0668f647781a4}

\item 
\hypertarget{classIfMgrXrlReplicationManager_aaea186eb6751bb5f69248078dad9cc37}{
Outputs {\bfseries \_\-replicators\_\-queue}}
\label{classIfMgrXrlReplicationManager_aaea186eb6751bb5f69248078dad9cc37}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Class that builds and maintains replicator state for multiple remote targets. 

\subsection{Member Function Documentation}
\hypertarget{classIfMgrXrlReplicationManager_a0e3fd98e0001db4ae8fd34389ab23cba}{
\index{IfMgrXrlReplicationManager@{IfMgrXrlReplicationManager}!add\_\-mirror@{add\_\-mirror}}
\index{add\_\-mirror@{add\_\-mirror}!IfMgrXrlReplicationManager@{IfMgrXrlReplicationManager}}
\subsubsection[{add\_\-mirror}]{\setlength{\rightskip}{0pt plus 5cm}bool IfMgrXrlReplicationManager::add\_\-mirror (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-target\_\-name}
\end{DoxyParamCaption}
)}}
\label{classIfMgrXrlReplicationManager_a0e3fd98e0001db4ae8fd34389ab23cba}


Add a remote mirror. 

The name of \hyperlink{protocolthe-p}{the} mirror is added to list of known targets and immediately sent a copy of \hyperlink{protocolthe-p}{the} configuration tree.


\begin{DoxyParams}{Parameters}
{\em xrl\_\-target\_\-name} & target to be added. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, false if target already exists. 
\end{DoxyReturn}
\hypertarget{classIfMgrXrlReplicationManager_a4663f8fb85f13eda716920e35b80b26b}{
\index{IfMgrXrlReplicationManager@{IfMgrXrlReplicationManager}!remove\_\-mirror@{remove\_\-mirror}}
\index{remove\_\-mirror@{remove\_\-mirror}!IfMgrXrlReplicationManager@{IfMgrXrlReplicationManager}}
\subsubsection[{remove\_\-mirror}]{\setlength{\rightskip}{0pt plus 5cm}bool IfMgrXrlReplicationManager::remove\_\-mirror (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-target\_\-name}
\end{DoxyParamCaption}
)}}
\label{classIfMgrXrlReplicationManager_a4663f8fb85f13eda716920e35b80b26b}


Remove remote mirror. 


\begin{DoxyParams}{Parameters}
{\em xrl\_\-target\_\-name} & target to be removed. \\
\hline
\end{DoxyParams}


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