\hypertarget{classConfigNodeIdMap}{
\section{ConfigNodeIdMap$<$ V $>$ Class Template Reference}
\label{classConfigNodeIdMap}\index{ConfigNodeIdMap@{ConfigNodeIdMap}}
}


Class for storing \hyperlink{protocolthe-p}{the} mapping between a \hyperlink{classConfigNodeId}{ConfigNodeId} node and \hyperlink{protocolthe-p}{the} corresponding value.  




{\ttfamily \#include $<$config\_\-node\_\-id.hh$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classConfigNodeIdMap_ab94bb6fa36d958baa7651bafa222c3af}{
typedef list$<$ pair$<$ \hyperlink{classConfigNodeId}{ConfigNodeId}, V $>$ $>$ {\bfseries ValuesList}}
\label{classConfigNodeIdMap_ab94bb6fa36d958baa7651bafa222c3af}

\item 
\hypertarget{classConfigNodeIdMap_a095a0d1df02c1e44e147bc758d8f4682}{
typedef ValuesList::iterator {\bfseries iterator}}
\label{classConfigNodeIdMap_a095a0d1df02c1e44e147bc758d8f4682}

\item 
\hypertarget{classConfigNodeIdMap_a53a275483bed196c04831a55b93e6c62}{
typedef ValuesList::const\_\-iterator {\bfseries const\_\-iterator}}
\label{classConfigNodeIdMap_a53a275483bed196c04831a55b93e6c62}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classConfigNodeIdMap_ab3d71f9b35de6fd4cb0ed988f83dbfc4}{
\hyperlink{classConfigNodeIdMap_ab3d71f9b35de6fd4cb0ed988f83dbfc4}{ConfigNodeIdMap} ()}
\label{classConfigNodeIdMap_ab3d71f9b35de6fd4cb0ed988f83dbfc4}

\begin{DoxyCompactList}\small\item\em Default constructor. \item\end{DoxyCompactList}\item 
\hypertarget{classConfigNodeIdMap_ab575390d2a331eac40934f665ab77c89}{
virtual \hyperlink{classConfigNodeIdMap_ab575390d2a331eac40934f665ab77c89}{$\sim$ConfigNodeIdMap} ()}
\label{classConfigNodeIdMap_ab575390d2a331eac40934f665ab77c89}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
ConfigNodeIdMap::iterator \hyperlink{classConfigNodeIdMap_a7f3e2898ee77e21fc195654741f816ec}{begin} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} iterator to \hyperlink{protocolthe-p}{the} first element. \item\end{DoxyCompactList}\item 
ConfigNodeIdMap::const\_\-iterator \hyperlink{classConfigNodeIdMap_a1c7ea6d6519c7dadc68e4e1f87891006}{begin} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} const iterator to \hyperlink{protocolthe-p}{the} first element. \item\end{DoxyCompactList}\item 
ConfigNodeIdMap::iterator \hyperlink{classConfigNodeIdMap_ab6fd743a507a97e379ea8b2e53107d8b}{end} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} iterator to \hyperlink{protocolthe-p}{the} last element. \item\end{DoxyCompactList}\item 
ConfigNodeIdMap::const\_\-iterator \hyperlink{classConfigNodeIdMap_ade55894eb826b0b00d6c1c63412439f3}{end} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} const iterator to \hyperlink{protocolthe-p}{the} last element. \item\end{DoxyCompactList}\item 
ConfigNodeIdMap::iterator \hyperlink{classConfigNodeIdMap_a4f886f558dd1ca88e679e7b71ff6853a}{find} (const \hyperlink{classConfigNodeId}{ConfigNodeId} \&node\_\-id)
\begin{DoxyCompactList}\small\item\em Find an element for a given node ID. \item\end{DoxyCompactList}\item 
ConfigNodeIdMap::const\_\-iterator \hyperlink{classConfigNodeIdMap_acf61817f23870d903f7e1e44ed82418e}{find} (const \hyperlink{classConfigNodeId}{ConfigNodeId} \&node\_\-id) const 
\begin{DoxyCompactList}\small\item\em Find an element for a given node ID. \item\end{DoxyCompactList}\item 
pair$<$ iterator, bool $>$ \hyperlink{classConfigNodeIdMap_aec0815c69eeddd3811a6a4ca4afbbebf}{insert} (const \hyperlink{classConfigNodeId}{ConfigNodeId} \&node\_\-id, const V \&v)
\begin{DoxyCompactList}\small\item\em Insert a new element. \item\end{DoxyCompactList}\item 
pair$<$ iterator, bool $>$ \hyperlink{classConfigNodeIdMap_ac9be16f221625366344c055548a61448}{insert\_\-out\_\-of\_\-order} (const \hyperlink{classConfigNodeId}{ConfigNodeId} \&node\_\-id, const V \&v)
\begin{DoxyCompactList}\small\item\em Insert a new element that might be out-\/of-\/order. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classConfigNodeIdMap_a91b5f24645ff4bef1c60548dcec8f8da}{erase} (const \hyperlink{classConfigNodeId}{ConfigNodeId} \&node\_\-id)
\begin{DoxyCompactList}\small\item\em Remove an existing element. \item\end{DoxyCompactList}\item 
void \hyperlink{classConfigNodeIdMap_a1df9120ec84edb99924cde43aec3c549}{erase} (ConfigNodeIdMap::iterator iter)
\begin{DoxyCompactList}\small\item\em Remove an existing element. \item\end{DoxyCompactList}\item 
\hypertarget{classConfigNodeIdMap_a8af8af101864ce1a2da2aa9aa36c44ee}{
void \hyperlink{classConfigNodeIdMap_a8af8af101864ce1a2da2aa9aa36c44ee}{clear} ()}
\label{classConfigNodeIdMap_a8af8af101864ce1a2da2aa9aa36c44ee}

\begin{DoxyCompactList}\small\item\em Remove all elements. \item\end{DoxyCompactList}\item 
string \hyperlink{classConfigNodeIdMap_af383a396fd686701de2447b08e50b4a3}{str} () const 
\begin{DoxyCompactList}\small\item\em Convert this object from binary form to presentation format. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classConfigNodeIdMap_a725623f01a3a92ff15e2b89cd9e2a00d}{size} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} number of elements in \hyperlink{protocolthe-p}{the} storage. \item\end{DoxyCompactList}\item 
bool \hyperlink{classConfigNodeIdMap_aba7342ad28f455742e2574d0b40b0558}{empty} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} container is empty. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classConfigNodeIdMap_a8d78abf344122174940c9374cc4b6d19}{
typedef map$<$ ConfigNodeId::UniqueNodeId, iterator $>$ {\bfseries NodeId2IterMap}}
\label{classConfigNodeIdMap_a8d78abf344122174940c9374cc4b6d19}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
pair$<$ iterator, bool $>$ \hyperlink{classConfigNodeIdMap_a3815c448127fc0203d9d38b4a64caa4b}{insert\_\-impl} (const \hyperlink{classConfigNodeId}{ConfigNodeId} \&node\_\-id, const V \&v, bool ignore\_\-missing\_\-previous\_\-element)
\begin{DoxyCompactList}\small\item\em Insert a new element. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classConfigNodeIdMap_a7dd44017f493b606270051f08b7d1954}{
NodeId2IterMap {\bfseries \_\-node\_\-id2iter}}
\label{classConfigNodeIdMap_a7dd44017f493b606270051f08b7d1954}

\item 
\hypertarget{classConfigNodeIdMap_ad6559df1d509b27c0e1b4f15c622594a}{
ValuesList {\bfseries \_\-values\_\-list}}
\label{classConfigNodeIdMap_ad6559df1d509b27c0e1b4f15c622594a}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename V$>$ class ConfigNodeIdMap$<$ V $>$}

Class for storing \hyperlink{protocolthe-p}{the} mapping between a \hyperlink{classConfigNodeId}{ConfigNodeId} node and \hyperlink{protocolthe-p}{the} corresponding value. Internally \hyperlink{protocolthe-p}{the} class is implemented as a mapped linked list:
\begin{DoxyItemize}
\item A linked list of pairs $<$\hyperlink{classConfigNodeId}{ConfigNodeId}, typename V$>$ contains \hyperlink{protocolthe-p}{the} \hyperlink{classConfigNodeId}{ConfigNodeId} nodes and \hyperlink{protocolthe-p}{the} corresponding values.
\item An STL $<$map$>$ stores \hyperlink{protocolthe-p}{the} mapping between unique node IDs and \hyperlink{protocolthe-p}{the} corresponding iterators in \hyperlink{protocolthe-p}{the} above list.
\end{DoxyItemize}

The advantage of such implementation is that \hyperlink{protocolthe-p}{the} time to insert and remove entries to/from \hyperlink{protocolthe-p}{the} list is similar to \hyperlink{protocolthe-p}{the} time to perform those operations on an STL map container. 

\subsection{Member Function Documentation}
\hypertarget{classConfigNodeIdMap_a7f3e2898ee77e21fc195654741f816ec}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!begin@{begin}}
\index{begin@{begin}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{begin}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V$>$ ConfigNodeIdMap::iterator {\bf ConfigNodeIdMap}$<$ V $>$::begin (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_a7f3e2898ee77e21fc195654741f816ec}


Get \hyperlink{protocolthe-p}{the} iterator to \hyperlink{protocolthe-p}{the} first element. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} iterator to \hyperlink{protocolthe-p}{the} first element. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_a1c7ea6d6519c7dadc68e4e1f87891006}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!begin@{begin}}
\index{begin@{begin}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{begin}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V$>$ ConfigNodeIdMap::const\_\-iterator {\bf ConfigNodeIdMap}$<$ V $>$::begin (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_a1c7ea6d6519c7dadc68e4e1f87891006}


Get \hyperlink{protocolthe-p}{the} const iterator to \hyperlink{protocolthe-p}{the} first element. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} const iterator to \hyperlink{protocolthe-p}{the} first element. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_aba7342ad28f455742e2574d0b40b0558}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!empty@{empty}}
\index{empty@{empty}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{empty}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V$>$ bool {\bf ConfigNodeIdMap}$<$ V $>$::empty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_aba7342ad28f455742e2574d0b40b0558}


Test if \hyperlink{protocolthe-p}{the} container is empty. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} container is empty, otherwise false. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_ade55894eb826b0b00d6c1c63412439f3}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!end@{end}}
\index{end@{end}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{end}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V$>$ ConfigNodeIdMap::const\_\-iterator {\bf ConfigNodeIdMap}$<$ V $>$::end (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_ade55894eb826b0b00d6c1c63412439f3}


Get \hyperlink{protocolthe-p}{the} const iterator to \hyperlink{protocolthe-p}{the} last element. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} const iterator to \hyperlink{protocolthe-p}{the} last element. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_ab6fd743a507a97e379ea8b2e53107d8b}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!end@{end}}
\index{end@{end}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{end}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V$>$ ConfigNodeIdMap::iterator {\bf ConfigNodeIdMap}$<$ V $>$::end (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_ab6fd743a507a97e379ea8b2e53107d8b}


Get \hyperlink{protocolthe-p}{the} iterator to \hyperlink{protocolthe-p}{the} last element. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} iterator to \hyperlink{protocolthe-p}{the} last element. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_a91b5f24645ff4bef1c60548dcec8f8da}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!erase@{erase}}
\index{erase@{erase}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{erase}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V $>$ size\_\-t {\bf ConfigNodeIdMap}$<$ V $>$::erase (
\begin{DoxyParamCaption}
\item[{const {\bf ConfigNodeId} \&}]{node\_\-id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_a91b5f24645ff4bef1c60548dcec8f8da}


Remove an existing element. 


\begin{DoxyParams}{Parameters}
{\em node\_\-id} & \hyperlink{protocolthe-p}{the} node ID of \hyperlink{protocolthe-p}{the} element to remove. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of removed elements. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_a1df9120ec84edb99924cde43aec3c549}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!erase@{erase}}
\index{erase@{erase}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{erase}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V $>$ void {\bf ConfigNodeIdMap}$<$ V $>$::erase (
\begin{DoxyParamCaption}
\item[{{\bf ConfigNodeIdMap}$<$ V $>$::iterator}]{iter}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_a1df9120ec84edb99924cde43aec3c549}


Remove an existing element. 


\begin{DoxyParams}{Parameters}
{\em iter} & \hyperlink{protocolthe-p}{the} iterator to \hyperlink{protocolthe-p}{the} element to remove. \\
\hline
\end{DoxyParams}
\hypertarget{classConfigNodeIdMap_a4f886f558dd1ca88e679e7b71ff6853a}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!find@{find}}
\index{find@{find}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{find}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V $>$ {\bf ConfigNodeIdMap}$<$ V $>$::iterator {\bf ConfigNodeIdMap}$<$ V $>$::find (
\begin{DoxyParamCaption}
\item[{const {\bf ConfigNodeId} \&}]{node\_\-id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_a4f886f558dd1ca88e679e7b71ff6853a}


Find an element for a given node ID. 


\begin{DoxyParams}{Parameters}
{\em node\_\-id} & \hyperlink{protocolthe-p}{the} node ID to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} iterator to \hyperlink{protocolthe-p}{the} element. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_acf61817f23870d903f7e1e44ed82418e}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!find@{find}}
\index{find@{find}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{find}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V $>$ {\bf ConfigNodeIdMap}$<$ V $>$::const\_\-iterator {\bf ConfigNodeIdMap}$<$ V $>$::find (
\begin{DoxyParamCaption}
\item[{const {\bf ConfigNodeId} \&}]{node\_\-id}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_acf61817f23870d903f7e1e44ed82418e}


Find an element for a given node ID. 


\begin{DoxyParams}{Parameters}
{\em node\_\-id} & \hyperlink{protocolthe-p}{the} node ID to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} const iterator to \hyperlink{protocolthe-p}{the} element. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_aec0815c69eeddd3811a6a4ca4afbbebf}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!insert@{insert}}
\index{insert@{insert}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{insert}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V$>$ pair$<$iterator, bool$>$ {\bf ConfigNodeIdMap}$<$ V $>$::insert (
\begin{DoxyParamCaption}
\item[{const {\bf ConfigNodeId} \&}]{node\_\-id, }
\item[{const V \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_aec0815c69eeddd3811a6a4ca4afbbebf}


Insert a new element. 


\begin{DoxyParams}{Parameters}
{\em node\_\-id} & \hyperlink{protocolthe-p}{the} node ID of \hyperlink{protocolthe-p}{the} element to insert. \\
\hline
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} element to insert. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true a pair of two values: iterator and a boolean flag. If \hyperlink{protocolthe-p}{the} boolean flag is true, \hyperlink{protocolthe-p}{the} element was inserted successfully, and \hyperlink{protocolthe-p}{the} iterator points to \hyperlink{protocolthe-p}{the} new element. If \hyperlink{protocolthe-p}{the} boolean flag is false, then either there is an element with \hyperlink{protocolthe-p}{the} same node ID, and \hyperlink{protocolthe-p}{the} iterator points to that element, or \hyperlink{protocolthe-p}{the} element could not be inserted because of invalid node ID and \hyperlink{protocolthe-p}{the} iterator points to \hyperlink{classConfigNodeIdMap_ab6fd743a507a97e379ea8b2e53107d8b}{end()} of \hyperlink{protocolthe-p}{the} container. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_a3815c448127fc0203d9d38b4a64caa4b}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!insert\_\-impl@{insert\_\-impl}}
\index{insert\_\-impl@{insert\_\-impl}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{insert\_\-impl}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V$>$ pair$<$ typename {\bf ConfigNodeIdMap}$<$ V $>$::iterator, bool $>$ {\bf ConfigNodeIdMap}$<$ V $>$::insert\_\-impl (
\begin{DoxyParamCaption}
\item[{const {\bf ConfigNodeId} \&}]{node\_\-id, }
\item[{const V \&}]{v, }
\item[{bool}]{ignore\_\-missing\_\-previous\_\-element}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classConfigNodeIdMap_a3815c448127fc0203d9d38b4a64caa4b}


Insert a new element. 


\begin{DoxyParams}{Parameters}
{\em node\_\-id} & \hyperlink{protocolthe-p}{the} node ID of \hyperlink{protocolthe-p}{the} element to insert. \\
\hline
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} element to insert. \\
\hline
{\em ignore\_\-missing\_\-previous\_\-element} & if true, and \hyperlink{protocolthe-p}{the} previous element is not found, then insert \hyperlink{protocolthe-p}{the} element at \hyperlink{protocolthe-p}{the} end of \hyperlink{protocolthe-p}{the} container. If this flag is false and \hyperlink{protocolthe-p}{the} previous element is not found, then don't insert \hyperlink{protocolthe-p}{the} element, but return an error. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true a pair of two values: iterator and a boolean flag. If \hyperlink{protocolthe-p}{the} boolean flag is true, \hyperlink{protocolthe-p}{the} element was inserted successfully, and \hyperlink{protocolthe-p}{the} iterator points to \hyperlink{protocolthe-p}{the} new element. If \hyperlink{protocolthe-p}{the} boolean flag is false, then either there is an element with \hyperlink{protocolthe-p}{the} same node ID, and \hyperlink{protocolthe-p}{the} iterator points to that element, or \hyperlink{protocolthe-p}{the} element could not be inserted because of invalid node ID and \hyperlink{protocolthe-p}{the} iterator points to \hyperlink{classConfigNodeIdMap_ab6fd743a507a97e379ea8b2e53107d8b}{end()} of \hyperlink{protocolthe-p}{the} container. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_ac9be16f221625366344c055548a61448}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!insert\_\-out\_\-of\_\-order@{insert\_\-out\_\-of\_\-order}}
\index{insert\_\-out\_\-of\_\-order@{insert\_\-out\_\-of\_\-order}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{insert\_\-out\_\-of\_\-order}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V$>$ pair$<$iterator, bool$>$ {\bf ConfigNodeIdMap}$<$ V $>$::insert\_\-out\_\-of\_\-order (
\begin{DoxyParamCaption}
\item[{const {\bf ConfigNodeId} \&}]{node\_\-id, }
\item[{const V \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_ac9be16f221625366344c055548a61448}


Insert a new element that might be out-\/of-\/order. 


\begin{DoxyParams}{Parameters}
{\em node\_\-id} & \hyperlink{protocolthe-p}{the} node ID of \hyperlink{protocolthe-p}{the} element to insert. \\
\hline
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} element to insert. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true a pair of two values: iterator and a boolean flag. If \hyperlink{protocolthe-p}{the} boolean flag is true, \hyperlink{protocolthe-p}{the} element was inserted successfully, and \hyperlink{protocolthe-p}{the} iterator points to \hyperlink{protocolthe-p}{the} new element. If \hyperlink{protocolthe-p}{the} boolean flag is false, then there is an element with \hyperlink{protocolthe-p}{the} same node ID, and \hyperlink{protocolthe-p}{the} iterator points to that element. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_a725623f01a3a92ff15e2b89cd9e2a00d}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!size@{size}}
\index{size@{size}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{size}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V$>$ size\_\-t {\bf ConfigNodeIdMap}$<$ V $>$::size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_a725623f01a3a92ff15e2b89cd9e2a00d}


Get \hyperlink{protocolthe-p}{the} number of elements in \hyperlink{protocolthe-p}{the} storage. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of elements in \hyperlink{protocolthe-p}{the} storage. 
\end{DoxyReturn}
\hypertarget{classConfigNodeIdMap_af383a396fd686701de2447b08e50b4a3}{
\index{ConfigNodeIdMap@{ConfigNodeIdMap}!str@{str}}
\index{str@{str}!ConfigNodeIdMap@{ConfigNodeIdMap}}
\subsubsection[{str}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename V $>$ string {\bf ConfigNodeIdMap}$<$ V $>$::str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classConfigNodeIdMap_af383a396fd686701de2447b08e50b4a3}


Convert this object from binary form to presentation format. 

\begin{DoxyReturn}{Returns}
C++ string with \hyperlink{protocolthe-p}{the} human-\/readable ASCII representation of \hyperlink{protocolthe-p}{the} object. 
\end{DoxyReturn}


The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/libproto/config\_\-node\_\-id.hh\end{DoxyCompactItemize}
