\hypertarget{classNode}{
\section{Node$<$ A $>$ Class Template Reference}
\label{classNode}\index{Node@{Node}}
}


The base class of a node for building a hierarchy.  




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

Inheritance diagram for Node$<$ A $>$:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=12.000000cm]{classNode}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structNode_1_1path}{path}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classNode_a7f4df150c967d4a5ce4bd7bb103829be}{
typedef map$<$ A, \hyperlink{classEdge}{Edge}$<$ A $>$ $>$ {\bfseries adjacency}}
\label{classNode_a7f4df150c967d4a5ce4bd7bb103829be}

\item 
\hypertarget{classNode_adedd6f17cf8e25da3426a3ca57c6fced}{
typedef \hyperlink{classref__ptr}{ref\_\-ptr}$<$ \hyperlink{classNode}{Node}$<$ A $>$ $>$ {\bfseries NodeRef}}
\label{classNode_adedd6f17cf8e25da3426a3ca57c6fced}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classNode_ad4b897d79c39323997e920636a9a949a}{
{\bfseries Node} (A a, bool trace=false)}
\label{classNode_ad4b897d79c39323997e920636a9a949a}

\item 
A \hyperlink{classNode_a98f946b454a69b0d87727ee033ee78ff}{nodename} ()
\item 
bool \hyperlink{classNode_a2539e8cef55b7b3b7bf6454a97a8aa91}{set\_\-nodename} (A nodename)
\begin{DoxyCompactList}\small\item\em Set nodename DONT' USE THIS METHOD. \item\end{DoxyCompactList}\item 
bool \hyperlink{classNode_a4cbad4e53d10ae46161fb2d8bdb8bfce}{add\_\-edge} (\hyperlink{classref__ptr}{NodeRef} dst, int weight)
\begin{DoxyCompactList}\small\item\em Add a new edge. \item\end{DoxyCompactList}\item 
bool \hyperlink{classNode_a3c2f9c8ecb8b841f4427cbf694f36d9d}{update\_\-edge\_\-weight} (\hyperlink{classref__ptr}{NodeRef} dst, int weight)
\begin{DoxyCompactList}\small\item\em Update edge weight. \item\end{DoxyCompactList}\item 
bool \hyperlink{classNode_a9f14d265279818701157091d66862120}{get\_\-edge\_\-weight} (\hyperlink{classref__ptr}{NodeRef} dst, int \&weight)
\begin{DoxyCompactList}\small\item\em Get edge weight. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_aecaf3930ab61d064890993ac0031e8cc}{
bool \hyperlink{classNode_aecaf3930ab61d064890993ac0031e8cc}{remove\_\-edge} (\hyperlink{classref__ptr}{NodeRef} dst)}
\label{classNode_aecaf3930ab61d064890993ac0031e8cc}

\begin{DoxyCompactList}\small\item\em Remove an edge. \item\end{DoxyCompactList}\item 
void \hyperlink{classNode_aff434804253d9f359f25cd7e80ed0543}{drop\_\-adjacencies} ()
\begin{DoxyCompactList}\small\item\em Drop all adjacencies. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a77aebbc237bc1c70d670e76c823ebd19}{
void \hyperlink{classNode_a77aebbc237bc1c70d670e76c823ebd19}{garbage\_\-collect} ()}
\label{classNode_a77aebbc237bc1c70d670e76c823ebd19}

\begin{DoxyCompactList}\small\item\em Remove all edges that point at invalid nodes. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a3883c717c8c81a1b6f100965d3b1ec45}{
void \hyperlink{classNode_a3883c717c8c81a1b6f100965d3b1ec45}{set\_\-valid} (bool p)}
\label{classNode_a3883c717c8c81a1b6f100965d3b1ec45}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} valid state. \item\end{DoxyCompactList}\item 
bool \hyperlink{classNode_a08ab8ab56f889379dd00e2b462da4981}{valid} ()
\item 
\hypertarget{classNode_a0fbf271ec4932a797be38800124b0577}{
void \hyperlink{classNode_a0fbf271ec4932a797be38800124b0577}{set\_\-tentative} (bool p)}
\label{classNode_a0fbf271ec4932a797be38800124b0577}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} tentative state. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_adad26952138d8c2f9246623e833feb3b}{
bool \hyperlink{classNode_adad26952138d8c2f9246623e833feb3b}{tentative} ()}
\label{classNode_adad26952138d8c2f9246623e833feb3b}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} tentative state. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a402632e79fe9fafe6080d625a5621e8d}{
void \hyperlink{classNode_a402632e79fe9fafe6080d625a5621e8d}{invalidate\_\-weights} ()}
\label{classNode_a402632e79fe9fafe6080d625a5621e8d}

\begin{DoxyCompactList}\small\item\em Invalidate \hyperlink{protocolthe-p}{the} weights. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a2421566a0a52d4287838efdcfa379823}{
bool \hyperlink{classNode_a2421566a0a52d4287838efdcfa379823}{valid\_\-weight} ()}
\label{classNode_a2421566a0a52d4287838efdcfa379823}

\begin{DoxyCompactList}\small\item\em Is \hyperlink{protocolthe-p}{the} current entry valid. \item\end{DoxyCompactList}\item 
void \hyperlink{classNode_a95ff40e767be4ecbe3a66a69f43fda62}{set\_\-adjacent\_\-weights} (\hyperlink{classref__ptr}{NodeRef} me, int delta\_\-weight, \hyperlink{classPriorityQueue}{PriorityQueue}$<$ A $>$ \&tentative)
\begin{DoxyCompactList}\small\item\em Set weights. \item\end{DoxyCompactList}\item 
bool \hyperlink{classNode_aa71b82101fb85e41671472ea3a21c3de}{set\_\-local\_\-weight} (int weight)
\begin{DoxyCompactList}\small\item\em Set local weight. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a021eb910ef2ab02690f6da487071c4bb}{
int \hyperlink{classNode_a021eb910ef2ab02690f6da487071c4bb}{get\_\-local\_\-weight} ()}
\label{classNode_a021eb910ef2ab02690f6da487071c4bb}

\begin{DoxyCompactList}\small\item\em get local weight. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a7a97c0a6f1a7ee1fb269824fbd1551ca}{
void \hyperlink{classNode_a7a97c0a6f1a7ee1fb269824fbd1551ca}{set\_\-first\_\-hop} (\hyperlink{classref__ptr}{NodeRef} n)}
\label{classNode_a7a97c0a6f1a7ee1fb269824fbd1551ca}

\begin{DoxyCompactList}\small\item\em The first hop to this node. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a56b0ed1a483c6af1d568744fa6c6798e}{
\hyperlink{classref__ptr}{NodeRef} \hyperlink{classNode_a56b0ed1a483c6af1d568744fa6c6798e}{get\_\-first\_\-hop} ()}
\label{classNode_a56b0ed1a483c6af1d568744fa6c6798e}

\begin{DoxyCompactList}\small\item\em The first hop to this node. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a255cfc7549d19373ef357646612ada9c}{
void \hyperlink{classNode_a255cfc7549d19373ef357646612ada9c}{set\_\-last\_\-hop} (\hyperlink{classref__ptr}{NodeRef} n)}
\label{classNode_a255cfc7549d19373ef357646612ada9c}

\begin{DoxyCompactList}\small\item\em The node before this. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a3f6a357cc9ba14eef6c89df940b0b9d2}{
\hyperlink{classref__ptr}{NodeRef} \hyperlink{classNode_a3f6a357cc9ba14eef6c89df940b0b9d2}{get\_\-last\_\-hop} ()}
\label{classNode_a3f6a357cc9ba14eef6c89df940b0b9d2}

\begin{DoxyCompactList}\small\item\em The node before this. \item\end{DoxyCompactList}\item 
bool \hyperlink{classNode_acd8844bb12b92f3b23ce81a97ed83014}{delta} (\hyperlink{classRouteCmd}{RouteCmd}$<$ A $>$ \&rcmd)
\begin{DoxyCompactList}\small\item\em Return \hyperlink{protocolthe-p}{the} difference between this computation and \hyperlink{protocolthe-p}{the} last. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_adf975a1571731e384cc266431a66b464}{
void \hyperlink{classNode_adf975a1571731e384cc266431a66b464}{clear} ()}
\label{classNode_adf975a1571731e384cc266431a66b464}

\begin{DoxyCompactList}\small\item\em Clear all \hyperlink{protocolthe-p}{the} references to other nodes as well as possible references to ourselves. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a6cf5bba28c4fdcac72f173aceb4c3f8a}{
string \hyperlink{classNode_a6cf5bba28c4fdcac72f173aceb4c3f8a}{pp} () const }
\label{classNode_a6cf5bba28c4fdcac72f173aceb4c3f8a}

\begin{DoxyCompactList}\small\item\em Pretty print this node with its adjacencies. \item\end{DoxyCompactList}\item 
string \hyperlink{classNode_a62d963e8ed402795267dec57565f53ca}{str} () const 
\item 
\hyperlink{classNode_a05c8beb9a43aca5c5c919ea59cd4fd07}{Node} (unsigned line)
\item 
unsigned \hyperlink{classNode_afdb447184f3695fa0db3f0cf8b99e241}{line} () const 
\item 
virtual const \hyperlink{classElement}{Element} $\ast$ \hyperlink{classNode_a5596844876b7f889f68090f65e4d83aa}{accept} (\hyperlink{classVisitor}{Visitor} \&v)=0
\begin{DoxyCompactList}\small\item\em Implementation of visitor. \item\end{DoxyCompactList}\item 
virtual bool \hyperlink{classNode_acdf4fbdff0ae22277710debd789a384b}{is\_\-protocol\_\-statement} () const 
\begin{DoxyCompactList}\small\item\em Test whether this is a \char`\"{}protocol\char`\"{} statement. \item\end{DoxyCompactList}\item 
virtual bool \hyperlink{classNode_ac30747be40979fe5438aa242078b2f2c}{is\_\-accept\_\-or\_\-reject} () const 
\begin{DoxyCompactList}\small\item\em Test whether this is \char`\"{}accept\char`\"{} or \char`\"{}reject\char`\"{} statement. \item\end{DoxyCompactList}\item 
\hypertarget{classNode_a3ab3fa0004f00fcff55844b1485e1c4e}{
{\footnotesize template$<$$>$ }\\string {\bfseries str} () const}
\label{classNode_a3ab3fa0004f00fcff55844b1485e1c4e}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classNode_a4e716c3b087ba935ac330922c81e6c52}{
bool {\bfseries \_\-valid}}
\label{classNode_a4e716c3b087ba935ac330922c81e6c52}

\item 
\hypertarget{classNode_a3807fe23855eeb73dbf317e158ad9814}{
A {\bfseries \_\-nodename}}
\label{classNode_a3807fe23855eeb73dbf317e158ad9814}

\item 
\hypertarget{classNode_a8b4b9a912cb31b0bb3d52c968c2b351e}{
adjacency {\bfseries \_\-adjacencies}}
\label{classNode_a8b4b9a912cb31b0bb3d52c968c2b351e}

\item 
\hypertarget{classNode_acb62929a6e6d8afd7ef594e7f52d9349}{
bool {\bfseries \_\-trace}}
\label{classNode_acb62929a6e6d8afd7ef594e7f52d9349}

\item 
\hypertarget{classNode_aee02a9118376a69dfd1497a95f1489a6}{
bool {\bfseries \_\-tentative}}
\label{classNode_aee02a9118376a69dfd1497a95f1489a6}

\item 
\hypertarget{classNode_af51274a9041902928def0b17fb796a23}{
\hyperlink{structNode_1_1path}{path} {\bfseries \_\-current}}
\label{classNode_af51274a9041902928def0b17fb796a23}

\item 
\hypertarget{classNode_aadd9a8663d8962fe4040365c83b42b74}{
\hyperlink{structNode_1_1path}{path} {\bfseries \_\-previous}}
\label{classNode_aadd9a8663d8962fe4040365c83b42b74}

\item 
\hypertarget{classNode_a9b85f5286369ce91f951653405dac54f}{
unsigned {\bfseries \_\-line}}
\label{classNode_a9b85f5286369ce91f951653405dac54f}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename A$>$ class Node$<$ A $>$}

The base class of a node for building a hierarchy. Each node has a line number to associate it with a line in \hyperlink{protocolthe-p}{the} configuration file. This is useful for reporting error location in semantic checks.

\hyperlink{classNodes}{Nodes} implement \hyperlink{protocolthe-p}{the} visitor pattern \mbox{[}Inspired by Alexandrescu\mbox{]}. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classNode_a05c8beb9a43aca5c5c919ea59cd4fd07}{
\index{Node@{Node}!Node@{Node}}
\index{Node@{Node}!Node@{Node}}
\subsubsection[{Node}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ {\bf Node}$<$ A $>$::{\bf Node} (
\begin{DoxyParamCaption}
\item[{unsigned}]{line}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classNode_a05c8beb9a43aca5c5c919ea59cd4fd07}

\begin{DoxyParams}{Parameters}
{\em line} & \hyperlink{protocolthe-p}{the} configuration line number where this node was created. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classNode_a5596844876b7f889f68090f65e4d83aa}{
\index{Node@{Node}!accept@{accept}}
\index{accept@{accept}!Node@{Node}}
\subsubsection[{accept}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ virtual const {\bf Element}$\ast$ {\bf Node}$<$ A $>$::accept (
\begin{DoxyParamCaption}
\item[{{\bf Visitor} \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classNode_a5596844876b7f889f68090f65e4d83aa}


Implementation of visitor. 


\begin{DoxyParams}{Parameters}
{\em v} & visit node with this pattern. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
element at \hyperlink{protocolthe-p}{the} end of node evaluation. 
\end{DoxyReturn}
\hypertarget{classNode_a4cbad4e53d10ae46161fb2d8bdb8bfce}{
\index{Node@{Node}!add\_\-edge@{add\_\-edge}}
\index{add\_\-edge@{add\_\-edge}!Node@{Node}}
\subsubsection[{add\_\-edge}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf Node}$<$ A $>$::add\_\-edge (
\begin{DoxyParamCaption}
\item[{{\bf NodeRef}}]{dst, }
\item[{int}]{weight}
\end{DoxyParamCaption}
)}}
\label{classNode_a4cbad4e53d10ae46161fb2d8bdb8bfce}


Add a new edge. 

\begin{DoxyReturn}{Returns}
true on success. false if edge already exists. 
\end{DoxyReturn}
\hypertarget{classNode_acd8844bb12b92f3b23ce81a97ed83014}{
\index{Node@{Node}!delta@{delta}}
\index{delta@{delta}!Node@{Node}}
\subsubsection[{delta}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf Node}$<$ A $>$::delta (
\begin{DoxyParamCaption}
\item[{{\bf RouteCmd}$<$ A $>$ \&}]{rcmd}
\end{DoxyParamCaption}
)}}
\label{classNode_acd8844bb12b92f3b23ce81a97ed83014}


Return \hyperlink{protocolthe-p}{the} difference between this computation and \hyperlink{protocolthe-p}{the} last. 


\begin{DoxyParams}{Parameters}
{\em rcmd} & \hyperlink{protocolthe-p}{the} new route to this node if it has changed. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} node has changed. 
\end{DoxyReturn}
\hypertarget{classNode_aff434804253d9f359f25cd7e80ed0543}{
\index{Node@{Node}!drop\_\-adjacencies@{drop\_\-adjacencies}}
\index{drop\_\-adjacencies@{drop\_\-adjacencies}!Node@{Node}}
\subsubsection[{drop\_\-adjacencies}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf Node}$<$ A $>$::drop\_\-adjacencies (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classNode_aff434804253d9f359f25cd7e80ed0543}


Drop all adjacencies. 

Used to revive invalid nodes. \hypertarget{classNode_a9f14d265279818701157091d66862120}{
\index{Node@{Node}!get\_\-edge\_\-weight@{get\_\-edge\_\-weight}}
\index{get\_\-edge\_\-weight@{get\_\-edge\_\-weight}!Node@{Node}}
\subsubsection[{get\_\-edge\_\-weight}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf Node}$<$ A $>$::get\_\-edge\_\-weight (
\begin{DoxyParamCaption}
\item[{{\bf NodeRef}}]{dst, }
\item[{int \&}]{weight}
\end{DoxyParamCaption}
)}}
\label{classNode_a9f14d265279818701157091d66862120}


Get edge weight. 

\begin{DoxyReturn}{Returns}
true on success, false if \hyperlink{protocolthe-p}{the} edge doesn't exist. 
\end{DoxyReturn}
\hypertarget{classNode_ac30747be40979fe5438aa242078b2f2c}{
\index{Node@{Node}!is\_\-accept\_\-or\_\-reject@{is\_\-accept\_\-or\_\-reject}}
\index{is\_\-accept\_\-or\_\-reject@{is\_\-accept\_\-or\_\-reject}!Node@{Node}}
\subsubsection[{is\_\-accept\_\-or\_\-reject}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ virtual bool {\bf Node}$<$ A $>$::is\_\-accept\_\-or\_\-reject (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classNode_ac30747be40979fe5438aa242078b2f2c}


Test whether this is \char`\"{}accept\char`\"{} or \char`\"{}reject\char`\"{} statement. 

\begin{DoxyReturn}{Returns}
true if this is \char`\"{}accept\char`\"{} or \char`\"{}reject\char`\"{} statement. 
\end{DoxyReturn}


Reimplemented in \hyperlink{classNodeAccept_afd96ff0b587dd407a618eded24f88adb}{NodeAccept}, and \hyperlink{classNodeReject_a516bb2dff3d37311b67fb15640d5ec9a}{NodeReject}.

\hypertarget{classNode_acdf4fbdff0ae22277710debd789a384b}{
\index{Node@{Node}!is\_\-protocol\_\-statement@{is\_\-protocol\_\-statement}}
\index{is\_\-protocol\_\-statement@{is\_\-protocol\_\-statement}!Node@{Node}}
\subsubsection[{is\_\-protocol\_\-statement}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ virtual bool {\bf Node}$<$ A $>$::is\_\-protocol\_\-statement (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classNode_acdf4fbdff0ae22277710debd789a384b}


Test whether this is a \char`\"{}protocol\char`\"{} statement. 

\begin{DoxyReturn}{Returns}
true if this is a \char`\"{}protocol\char`\"{} statement. 
\end{DoxyReturn}


Reimplemented in \hyperlink{classNodeProto_af04e42a14073ba7f01baedf0a40a1eb2}{NodeProto}.

\hypertarget{classNode_afdb447184f3695fa0db3f0cf8b99e241}{
\index{Node@{Node}!line@{line}}
\index{line@{line}!Node@{Node}}
\subsubsection[{line}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ unsigned {\bf Node}$<$ A $>$::line (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classNode_afdb447184f3695fa0db3f0cf8b99e241}
\begin{DoxyReturn}{Returns}
line number of configuration where node was created. 
\end{DoxyReturn}
\hypertarget{classNode_a98f946b454a69b0d87727ee033ee78ff}{
\index{Node@{Node}!nodename@{nodename}}
\index{nodename@{nodename}!Node@{Node}}
\subsubsection[{nodename}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ A {\bf Node}$<$ A $>$::nodename (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classNode_a98f946b454a69b0d87727ee033ee78ff}
\begin{DoxyReturn}{Returns}
nodename 
\end{DoxyReturn}
\hypertarget{classNode_a95ff40e767be4ecbe3a66a69f43fda62}{
\index{Node@{Node}!set\_\-adjacent\_\-weights@{set\_\-adjacent\_\-weights}}
\index{set\_\-adjacent\_\-weights@{set\_\-adjacent\_\-weights}!Node@{Node}}
\subsubsection[{set\_\-adjacent\_\-weights}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ void {\bf Node}$<$ A $>$::set\_\-adjacent\_\-weights (
\begin{DoxyParamCaption}
\item[{{\bf NodeRef}}]{me, }
\item[{int}]{delta\_\-weight, }
\item[{{\bf PriorityQueue}$<$ A $>$ \&}]{tentative}
\end{DoxyParamCaption}
)}}
\label{classNode_a95ff40e767be4ecbe3a66a69f43fda62}


Set weights. 

Visit all neighbours that are tentative and add this weight.


\begin{DoxyParams}{Parameters}
{\em delta\_\-weight} & to add to this node. \\
\hline
{\em tentative} & add all updated adjacent nodes to \hyperlink{protocolthe-p}{the} tentative set. \\
\hline
\end{DoxyParams}
\hypertarget{classNode_aa71b82101fb85e41671472ea3a21c3de}{
\index{Node@{Node}!set\_\-local\_\-weight@{set\_\-local\_\-weight}}
\index{set\_\-local\_\-weight@{set\_\-local\_\-weight}!Node@{Node}}
\subsubsection[{set\_\-local\_\-weight}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf Node}$<$ A $>$::set\_\-local\_\-weight (
\begin{DoxyParamCaption}
\item[{int}]{weight}
\end{DoxyParamCaption}
)}}
\label{classNode_aa71b82101fb85e41671472ea3a21c3de}


Set local weight. 

Set \hyperlink{protocolthe-p}{the} weight on this node if its tentative and less than \hyperlink{protocolthe-p}{the} previous value.

\begin{DoxyReturn}{Returns}
true if its accepted. 
\end{DoxyReturn}
\hypertarget{classNode_a2539e8cef55b7b3b7bf6454a97a8aa91}{
\index{Node@{Node}!set\_\-nodename@{set\_\-nodename}}
\index{set\_\-nodename@{set\_\-nodename}!Node@{Node}}
\subsubsection[{set\_\-nodename}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf Node}$<$ A $>$::set\_\-nodename (
\begin{DoxyParamCaption}
\item[{A}]{nodename}
\end{DoxyParamCaption}
)}}
\label{classNode_a2539e8cef55b7b3b7bf6454a97a8aa91}


Set nodename DONT' USE THIS METHOD. 

Changing \hyperlink{protocolthe-p}{the} nodename could alter \hyperlink{protocolthe-p}{the} result of \hyperlink{protocolthe-p}{the} comparison function, causing confusion in \hyperlink{protocolthe-p}{the} spt map.

\begin{DoxyReturn}{Returns}
true on success. 
\end{DoxyReturn}
\hypertarget{classNode_a62d963e8ed402795267dec57565f53ca}{
\index{Node@{Node}!str@{str}}
\index{str@{str}!Node@{Node}}
\subsubsection[{str}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ string {\bf Node}$<$ A $>$::str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classNode_a62d963e8ed402795267dec57565f53ca}
\begin{DoxyReturn}{Returns}
C++ string with \hyperlink{protocolthe-p}{the} human-\/readable ASCII representation of \hyperlink{protocolthe-p}{the} node. 
\end{DoxyReturn}
\hypertarget{classNode_a3c2f9c8ecb8b841f4427cbf694f36d9d}{
\index{Node@{Node}!update\_\-edge\_\-weight@{update\_\-edge\_\-weight}}
\index{update\_\-edge\_\-weight@{update\_\-edge\_\-weight}!Node@{Node}}
\subsubsection[{update\_\-edge\_\-weight}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf Node}$<$ A $>$::update\_\-edge\_\-weight (
\begin{DoxyParamCaption}
\item[{{\bf NodeRef}}]{dst, }
\item[{int}]{weight}
\end{DoxyParamCaption}
)}}
\label{classNode_a3c2f9c8ecb8b841f4427cbf694f36d9d}


Update edge weight. 

\begin{DoxyReturn}{Returns}
true on success, false if \hyperlink{protocolthe-p}{the} edge doesn't exist. 
\end{DoxyReturn}
\hypertarget{classNode_a08ab8ab56f889379dd00e2b462da4981}{
\index{Node@{Node}!valid@{valid}}
\index{valid@{valid}!Node@{Node}}
\subsubsection[{valid}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf Node}$<$ A $>$::valid (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classNode_a08ab8ab56f889379dd00e2b462da4981}
\begin{DoxyReturn}{Returns}
true if this node is not marked for deletion. 
\end{DoxyReturn}


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