\hypertarget{classProfile}{
\section{Profile Class Reference}
\label{classProfile}\index{Profile@{Profile}}
}


Support for profiling XORP.  




{\ttfamily \#include $<$profile.hh$>$}

\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classProfile_1_1ProfileState}{ProfileState}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classProfile_a2773f1c3d5eaf10d9303bfd53bb9e78f}{
typedef list$<$ \hyperlink{classProfileLogEntry}{ProfileLogEntry} $>$ {\bfseries logentries}}
\label{classProfile_a2773f1c3d5eaf10d9303bfd53bb9e78f}

\item 
\hypertarget{classProfile_a3d78f7803a7f5a724358f055cc647c92}{
typedef map$<$ string, \hyperlink{classref__ptr}{ref\_\-ptr}$<$ \hyperlink{classProfile_1_1ProfileState}{ProfileState} $>$ $>$ {\bfseries profiles}}
\label{classProfile_a3d78f7803a7f5a724358f055cc647c92}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classProfile_abeb2305fb02f5ffac272feb2bac581f5}{
void \hyperlink{classProfile_abeb2305fb02f5ffac272feb2bac581f5}{create} (const string \&pname, const string \&comment=\char`\"{}\char`\"{})  throw (PVariableExists)}
\label{classProfile_abeb2305fb02f5ffac272feb2bac581f5}

\begin{DoxyCompactList}\small\item\em Create a new profile variable. \item\end{DoxyCompactList}\item 
bool \hyperlink{classProfile_ad50446655571d0e17b66d17d863106e1}{enabled} (const string \&pname)  throw (PVariableUnknown)
\begin{DoxyCompactList}\small\item\em Test for this profile variable being enabled. \item\end{DoxyCompactList}\item 
\hypertarget{classProfile_a95a9d684737174844173084f53d2d442}{
void \hyperlink{classProfile_a95a9d684737174844173084f53d2d442}{log} (const string \&pname, string comment)  throw (PVariableUnknown,PVariableNotEnabled)}
\label{classProfile_a95a9d684737174844173084f53d2d442}

\begin{DoxyCompactList}\small\item\em Add an entry to \hyperlink{protocolthe-p}{the} profile log. \item\end{DoxyCompactList}\item 
void \hyperlink{classProfile_a3d1b60a746c5234436adbcaee6b43187}{enable} (const string \&pname)  throw (PVariableUnknown,PVariableLocked)
\begin{DoxyCompactList}\small\item\em Enable tracing. \item\end{DoxyCompactList}\item 
void \hyperlink{classProfile_a246aac2c63364cf3e73cdb69c1261d3d}{disable} (const string \&pname)  throw (PVariableUnknown)
\begin{DoxyCompactList}\small\item\em Disable tracing. \item\end{DoxyCompactList}\item 
\hypertarget{classProfile_a49bba14cc2b6d8a141a8bc9254469c92}{
void \hyperlink{classProfile_a49bba14cc2b6d8a141a8bc9254469c92}{lock\_\-log} (const string \&pname)  throw (PVariableUnknown,PVariableLocked)}
\label{classProfile_a49bba14cc2b6d8a141a8bc9254469c92}

\begin{DoxyCompactList}\small\item\em Lock \hyperlink{protocolthe-p}{the} log in preparation for reading log entries. \item\end{DoxyCompactList}\item 
bool \hyperlink{classProfile_ada57c6a8937736a348660e2e151a5256}{read\_\-log} (const string \&pname, \hyperlink{classProfileLogEntry}{ProfileLogEntry} \&entry)  throw (PVariableUnknown,PVariableNotLocked)
\begin{DoxyCompactList}\small\item\em Read \hyperlink{protocolthe-p}{the} next log entry;. \item\end{DoxyCompactList}\item 
\hypertarget{classProfile_a300b3ec7169c35ab2d2cf91e7ec8ae4b}{
void \hyperlink{classProfile_a300b3ec7169c35ab2d2cf91e7ec8ae4b}{release\_\-log} (const string \&pname)  throw (PVariableUnknown,PVariableNotLocked)}
\label{classProfile_a300b3ec7169c35ab2d2cf91e7ec8ae4b}

\begin{DoxyCompactList}\small\item\em Release \hyperlink{protocolthe-p}{the} log. \item\end{DoxyCompactList}\item 
\hypertarget{classProfile_ab44f2aa66fed2e783683f18681ace094}{
void \hyperlink{classProfile_ab44f2aa66fed2e783683f18681ace094}{clear} (const string \&pname)  throw (PVariableUnknown,PVariableLocked)}
\label{classProfile_ab44f2aa66fed2e783683f18681ace094}

\begin{DoxyCompactList}\small\item\em Clear \hyperlink{protocolthe-p}{the} profiledata. \item\end{DoxyCompactList}\item 
string \hyperlink{classProfile_a09a1b0e20840e457cbfd5e2a19882077}{get\_\-list} () const 
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classProfile_a3d221a730da7e7679745a3a92b2e21ec}{
int {\bfseries \_\-profile\_\-cnt}}
\label{classProfile_a3d221a730da7e7679745a3a92b2e21ec}

\item 
\hypertarget{classProfile_a019864ae45b55b2b1be161525b8e4122}{
profiles {\bfseries \_\-profiles}}
\label{classProfile_a019864ae45b55b2b1be161525b8e4122}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Support for profiling XORP. \hyperlink{classSave}{Save} \hyperlink{protocolthe-p}{the} time that an event occured for later retrieval. 

\subsection{Member Function Documentation}
\hypertarget{classProfile_a246aac2c63364cf3e73cdb69c1261d3d}{
\index{Profile@{Profile}!disable@{disable}}
\index{disable@{disable}!Profile@{Profile}}
\subsubsection[{disable}]{\setlength{\rightskip}{0pt plus 5cm}void Profile::disable (
\begin{DoxyParamCaption}
\item[{const string \&}]{pname}
\end{DoxyParamCaption}
)  throw ({\bf PVariableUnknown})}}
\label{classProfile_a246aac2c63364cf3e73cdb69c1261d3d}


Disable tracing. 


\begin{DoxyParams}{Parameters}
{\em profile} & variable. \\
\hline
\end{DoxyParams}
\hypertarget{classProfile_a3d1b60a746c5234436adbcaee6b43187}{
\index{Profile@{Profile}!enable@{enable}}
\index{enable@{enable}!Profile@{Profile}}
\subsubsection[{enable}]{\setlength{\rightskip}{0pt plus 5cm}void Profile::enable (
\begin{DoxyParamCaption}
\item[{const string \&}]{pname}
\end{DoxyParamCaption}
)  throw ({\bf PVariableUnknown},{\bf PVariableLocked})}}
\label{classProfile_a3d1b60a746c5234436adbcaee6b43187}


Enable tracing. 


\begin{DoxyParams}{Parameters}
{\em profile} & variable. \\
\hline
\end{DoxyParams}
\hypertarget{classProfile_ad50446655571d0e17b66d17d863106e1}{
\index{Profile@{Profile}!enabled@{enabled}}
\index{enabled@{enabled}!Profile@{Profile}}
\subsubsection[{enabled}]{\setlength{\rightskip}{0pt plus 5cm}bool Profile::enabled (
\begin{DoxyParamCaption}
\item[{const string \&}]{pname}
\end{DoxyParamCaption}
)  throw ({\bf PVariableUnknown})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classProfile_ad50446655571d0e17b66d17d863106e1}


Test for this profile variable being enabled. 

\begin{DoxyReturn}{Returns}
true if this profile is enabled. 
\end{DoxyReturn}
\hypertarget{classProfile_a09a1b0e20840e457cbfd5e2a19882077}{
\index{Profile@{Profile}!get\_\-list@{get\_\-list}}
\index{get\_\-list@{get\_\-list}!Profile@{Profile}}
\subsubsection[{get\_\-list}]{\setlength{\rightskip}{0pt plus 5cm}string Profile::get\_\-list (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classProfile_a09a1b0e20840e457cbfd5e2a19882077}
\begin{DoxyReturn}{Returns}
A newline separated list of profiling variables along with \hyperlink{protocolthe-p}{the} associated comments. 
\end{DoxyReturn}
\hypertarget{classProfile_ada57c6a8937736a348660e2e151a5256}{
\index{Profile@{Profile}!read\_\-log@{read\_\-log}}
\index{read\_\-log@{read\_\-log}!Profile@{Profile}}
\subsubsection[{read\_\-log}]{\setlength{\rightskip}{0pt plus 5cm}bool Profile::read\_\-log (
\begin{DoxyParamCaption}
\item[{const string \&}]{pname, }
\item[{{\bf ProfileLogEntry} \&}]{entry}
\end{DoxyParamCaption}
)  throw ({\bf PVariableUnknown},{\bf PVariableNotLocked})}}
\label{classProfile_ada57c6a8937736a348660e2e151a5256}


Read \hyperlink{protocolthe-p}{the} next log entry;. 


\begin{DoxyParams}{Parameters}
{\em pname} & \\
\hline
{\em entry} & log entry \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True a entry has been returned. 
\end{DoxyReturn}


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