\hypertarget{classFeaIo}{
\section{FeaIo Class Reference}
\label{classFeaIo}\index{FeaIo@{FeaIo}}
}


FEA (Forwarding Engine Abstraction) I/O class.  




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

Inheritance diagram for FeaIo:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classFeaIo}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classFeaIo_ababa2931a4623cb2a00c258b63e9b177}{FeaIo} (\hyperlink{classEventLoop}{EventLoop} \&eventloop)
\begin{DoxyCompactList}\small\item\em Constructor. \item\end{DoxyCompactList}\item 
\hypertarget{classFeaIo_a49a5d31b675860fa9270fdd8c0239532}{
virtual \hyperlink{classFeaIo_a49a5d31b675860fa9270fdd8c0239532}{$\sim$FeaIo} ()}
\label{classFeaIo_a49a5d31b675860fa9270fdd8c0239532}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classFeaIo_ab393d8801e151e292e033ab0d917ac71}{startup} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classStartup}{Startup} \hyperlink{protocolthe-p}{the} service operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classFeaIo_ab0becd1d1baf39ff3b2170d20f3e0bee}{shutdown} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} \hyperlink{protocolthe-p}{the} service operation. \item\end{DoxyCompactList}\item 
bool \hyperlink{classFeaIo_a2977ef3c2c014c600e0c34400572e353}{is\_\-running} () const 
\begin{DoxyCompactList}\small\item\em Test whether \hyperlink{protocolthe-p}{the} service is running. \item\end{DoxyCompactList}\item 
\hyperlink{classEventLoop}{EventLoop} \& \hyperlink{classFeaIo_a6bee1b5ef8e37f72648887d71d19bd59}{eventloop} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} event loop this service is added to. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classFeaIo_a9ecf34d12970735cbf45e249c81e830b}{add\_\-instance\_\-watch} (const string \&instance\_\-name, \hyperlink{classInstanceWatcher}{InstanceWatcher} $\ast$instance\_\-watcher, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Add a watcher for \hyperlink{protocolthe-p}{the} status of a component instance. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classFeaIo_ae0492cdae88c997fa650b67c33122cf4}{delete\_\-instance\_\-watch} (const string \&instance\_\-name, \hyperlink{classInstanceWatcher}{InstanceWatcher} $\ast$instance\_\-watcher, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete a watcher for \hyperlink{protocolthe-p}{the} status of a component instance. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classFeaIo_aec1d6870f012dedbd95d0055e204663c}{instance\_\-birth} (const string \&instance\_\-name)
\begin{DoxyCompactList}\small\item\em A component instance has been born. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classFeaIo_a604b3ceae426a2e5f3d778dfc800e1b8}{instance\_\-death} (const string \&instance\_\-name)
\begin{DoxyCompactList}\small\item\em A component instance has died. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual int \hyperlink{classFeaIo_ab3bc996fd6020e5e19a087f77ae527ad}{register\_\-instance\_\-event\_\-interest} (const string \&instance\_\-name, string \&error\_\-msg)=0
\begin{DoxyCompactList}\small\item\em Register interest in events relating to a particular instance. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classFeaIo_a8dc226a78b06f098728a5fdb26c26af5}{deregister\_\-instance\_\-event\_\-interest} (const string \&instance\_\-name, string \&error\_\-msg)=0
\begin{DoxyCompactList}\small\item\em Deregister interest in events relating to a particular instance. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFeaIo_ad52279c37d5937a8d1b78c9d5200ddfe}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classFeaIo_ad52279c37d5937a8d1b78c9d5200ddfe}

\item 
\hypertarget{classFeaIo_af20b634d85787aebd630b2517c3ed622}{
bool {\bfseries \_\-is\_\-running}}
\label{classFeaIo_af20b634d85787aebd630b2517c3ed622}

\item 
\hypertarget{classFeaIo_a44565a1790684e5060b5e356c0295ad9}{
list$<$ pair$<$ string, \hyperlink{classInstanceWatcher}{InstanceWatcher} $\ast$ $>$ $>$ {\bfseries \_\-instance\_\-watchers}}
\label{classFeaIo_a44565a1790684e5060b5e356c0295ad9}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
FEA (Forwarding Engine Abstraction) I/O class. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classFeaIo_ababa2931a4623cb2a00c258b63e9b177}{
\index{FeaIo@{FeaIo}!FeaIo@{FeaIo}}
\index{FeaIo@{FeaIo}!FeaIo@{FeaIo}}
\subsubsection[{FeaIo}]{\setlength{\rightskip}{0pt plus 5cm}FeaIo::FeaIo (
\begin{DoxyParamCaption}
\item[{{\bf EventLoop} \&}]{eventloop}
\end{DoxyParamCaption}
)}}
\label{classFeaIo_ababa2931a4623cb2a00c258b63e9b177}


Constructor. 


\begin{DoxyParams}{Parameters}
{\em eventloop} & \hyperlink{protocolthe-p}{the} event loop to use. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classFeaIo_a9ecf34d12970735cbf45e249c81e830b}{
\index{FeaIo@{FeaIo}!add\_\-instance\_\-watch@{add\_\-instance\_\-watch}}
\index{add\_\-instance\_\-watch@{add\_\-instance\_\-watch}!FeaIo@{FeaIo}}
\subsubsection[{add\_\-instance\_\-watch}]{\setlength{\rightskip}{0pt plus 5cm}int FeaIo::add\_\-instance\_\-watch (
\begin{DoxyParamCaption}
\item[{const string \&}]{instance\_\-name, }
\item[{{\bf InstanceWatcher} $\ast$}]{instance\_\-watcher, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classFeaIo_a9ecf34d12970735cbf45e249c81e830b}


Add a watcher for \hyperlink{protocolthe-p}{the} status of a component instance. 


\begin{DoxyParams}{Parameters}
{\em instance\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} instance to watch. \\
\hline
{\em instance\_\-watcher} & \hyperlink{protocolthe-p}{the} watcher that tracks \hyperlink{protocolthe-p}{the} status of \hyperlink{protocolthe-p}{the} instance. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFeaIo_ae0492cdae88c997fa650b67c33122cf4}{
\index{FeaIo@{FeaIo}!delete\_\-instance\_\-watch@{delete\_\-instance\_\-watch}}
\index{delete\_\-instance\_\-watch@{delete\_\-instance\_\-watch}!FeaIo@{FeaIo}}
\subsubsection[{delete\_\-instance\_\-watch}]{\setlength{\rightskip}{0pt plus 5cm}int FeaIo::delete\_\-instance\_\-watch (
\begin{DoxyParamCaption}
\item[{const string \&}]{instance\_\-name, }
\item[{{\bf InstanceWatcher} $\ast$}]{instance\_\-watcher, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classFeaIo_ae0492cdae88c997fa650b67c33122cf4}


Delete a watcher for \hyperlink{protocolthe-p}{the} status of a component instance. 


\begin{DoxyParams}{Parameters}
{\em instance\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} instance to stop watching. \\
\hline
{\em instance\_\-watcher} & \hyperlink{protocolthe-p}{the} watcher that tracks \hyperlink{protocolthe-p}{the} status of \hyperlink{protocolthe-p}{the} instance. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFeaIo_a8dc226a78b06f098728a5fdb26c26af5}{
\index{FeaIo@{FeaIo}!deregister\_\-instance\_\-event\_\-interest@{deregister\_\-instance\_\-event\_\-interest}}
\index{deregister\_\-instance\_\-event\_\-interest@{deregister\_\-instance\_\-event\_\-interest}!FeaIo@{FeaIo}}
\subsubsection[{deregister\_\-instance\_\-event\_\-interest}]{\setlength{\rightskip}{0pt plus 5cm}virtual int FeaIo::deregister\_\-instance\_\-event\_\-interest (
\begin{DoxyParamCaption}
\item[{const string \&}]{instance\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, pure virtual\mbox{]}}}}
\label{classFeaIo_a8dc226a78b06f098728a5fdb26c26af5}


Deregister interest in events relating to a particular instance. 


\begin{DoxyParams}{Parameters}
{\em instance\_\-name} & name of target instance to stop event notifications for. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlFeaIo_aab91c9198d9c628abc302df1565b3f4d}{XrlFeaIo}.

\hypertarget{classFeaIo_a6bee1b5ef8e37f72648887d71d19bd59}{
\index{FeaIo@{FeaIo}!eventloop@{eventloop}}
\index{eventloop@{eventloop}!FeaIo@{FeaIo}}
\subsubsection[{eventloop}]{\setlength{\rightskip}{0pt plus 5cm}{\bf EventLoop}\& FeaIo::eventloop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFeaIo_a6bee1b5ef8e37f72648887d71d19bd59}


Get \hyperlink{protocolthe-p}{the} event loop this service is added to. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} event loop this service is added to. 
\end{DoxyReturn}
\hypertarget{classFeaIo_aec1d6870f012dedbd95d0055e204663c}{
\index{FeaIo@{FeaIo}!instance\_\-birth@{instance\_\-birth}}
\index{instance\_\-birth@{instance\_\-birth}!FeaIo@{FeaIo}}
\subsubsection[{instance\_\-birth}]{\setlength{\rightskip}{0pt plus 5cm}void FeaIo::instance\_\-birth (
\begin{DoxyParamCaption}
\item[{const string \&}]{instance\_\-name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classFeaIo_aec1d6870f012dedbd95d0055e204663c}


A component instance has been born. 


\begin{DoxyParams}{Parameters}
{\em instance\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} instance that is born. \\
\hline
\end{DoxyParams}
\hypertarget{classFeaIo_a604b3ceae426a2e5f3d778dfc800e1b8}{
\index{FeaIo@{FeaIo}!instance\_\-death@{instance\_\-death}}
\index{instance\_\-death@{instance\_\-death}!FeaIo@{FeaIo}}
\subsubsection[{instance\_\-death}]{\setlength{\rightskip}{0pt plus 5cm}void FeaIo::instance\_\-death (
\begin{DoxyParamCaption}
\item[{const string \&}]{instance\_\-name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classFeaIo_a604b3ceae426a2e5f3d778dfc800e1b8}


A component instance has died. 


\begin{DoxyParams}{Parameters}
{\em instance\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} instance that has died. \\
\hline
\end{DoxyParams}
\hypertarget{classFeaIo_a2977ef3c2c014c600e0c34400572e353}{
\index{FeaIo@{FeaIo}!is\_\-running@{is\_\-running}}
\index{is\_\-running@{is\_\-running}!FeaIo@{FeaIo}}
\subsubsection[{is\_\-running}]{\setlength{\rightskip}{0pt plus 5cm}bool FeaIo::is\_\-running (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classFeaIo_a2977ef3c2c014c600e0c34400572e353}


Test whether \hyperlink{protocolthe-p}{the} service is running. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} service is still running, otherwise false. 
\end{DoxyReturn}


Reimplemented in \hyperlink{classXrlFeaIo_abb43c85aa0dd8452103ef8feb14cc342}{XrlFeaIo}.

\hypertarget{classFeaIo_ab3bc996fd6020e5e19a087f77ae527ad}{
\index{FeaIo@{FeaIo}!register\_\-instance\_\-event\_\-interest@{register\_\-instance\_\-event\_\-interest}}
\index{register\_\-instance\_\-event\_\-interest@{register\_\-instance\_\-event\_\-interest}!FeaIo@{FeaIo}}
\subsubsection[{register\_\-instance\_\-event\_\-interest}]{\setlength{\rightskip}{0pt plus 5cm}virtual int FeaIo::register\_\-instance\_\-event\_\-interest (
\begin{DoxyParamCaption}
\item[{const string \&}]{instance\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, pure virtual\mbox{]}}}}
\label{classFeaIo_ab3bc996fd6020e5e19a087f77ae527ad}


Register interest in events relating to a particular instance. 


\begin{DoxyParams}{Parameters}
{\em instance\_\-name} & name of target instance to receive event notifications for. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlFeaIo_ac978e55438fea6b38c6902d32731fe7b}{XrlFeaIo}.

\hypertarget{classFeaIo_ab0becd1d1baf39ff3b2170d20f3e0bee}{
\index{FeaIo@{FeaIo}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!FeaIo@{FeaIo}}
\subsubsection[{shutdown}]{\setlength{\rightskip}{0pt plus 5cm}int FeaIo::shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classFeaIo_ab0becd1d1baf39ff3b2170d20f3e0bee}


\hyperlink{classShutdown}{Shutdown} \hyperlink{protocolthe-p}{the} service operation. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Reimplemented in \hyperlink{classXrlFeaIo_a7fd550079ddb5670fa9e04826babd912}{XrlFeaIo}.

\hypertarget{classFeaIo_ab393d8801e151e292e033ab0d917ac71}{
\index{FeaIo@{FeaIo}!startup@{startup}}
\index{startup@{startup}!FeaIo@{FeaIo}}
\subsubsection[{startup}]{\setlength{\rightskip}{0pt plus 5cm}int FeaIo::startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classFeaIo_ab393d8801e151e292e033ab0d917ac71}


\hyperlink{classStartup}{Startup} \hyperlink{protocolthe-p}{the} service operation. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Reimplemented in \hyperlink{classXrlFeaIo_a283d65928a67faaa75dffedbc97b30f5}{XrlFeaIo}.



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