\hypertarget{classHelloMessage}{
\section{HelloMessage Class Reference}
\label{classHelloMessage}\index{HelloMessage@{HelloMessage}}
}


Representation of a HELLO protocol message.  




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

Inheritance diagram for HelloMessage:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classHelloMessage}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classHelloMessage_adb10125dd3afe8cf7ce17e1e55e52d94}{
typedef multimap$<$ \hyperlink{classLinkCode}{LinkCode}, \hyperlink{classLinkAddrInfo}{LinkAddrInfo} $>$ {\bfseries LinkBag}}
\label{classHelloMessage_adb10125dd3afe8cf7ce17e1e55e52d94}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classHelloMessage_ab30a3e0a41e62033581fd6f06dc7e4c8}{
\hyperlink{classMessage}{Message} $\ast$ {\bfseries decode} (uint8\_\-t $\ast$buf, size\_\-t \&len)  throw (InvalidMessage)}
\label{classHelloMessage_ab30a3e0a41e62033581fd6f06dc7e4c8}

\item 
\hypertarget{classHelloMessage_a07ac3a3bd8d0b48e69d3baf3115902f9}{
bool {\bfseries encode} (uint8\_\-t $\ast$buf, size\_\-t \&len)}
\label{classHelloMessage_a07ac3a3bd8d0b48e69d3baf3115902f9}

\item 
\hypertarget{classHelloMessage_a1512c0b553b7bb686c5b4db0ec88f456}{
size\_\-t {\bfseries min\_\-length} () const }
\label{classHelloMessage_a1512c0b553b7bb686c5b4db0ec88f456}

\item 
\hypertarget{classHelloMessage_add8abe2fccecd8956531eee49fff8519}{
size\_\-t {\bfseries length} () const }
\label{classHelloMessage_add8abe2fccecd8956531eee49fff8519}

\item 
\hypertarget{classHelloMessage_a62354c141a485ac09f54df2d4283b8de}{
const \hyperlink{classTimeVal}{TimeVal} {\bfseries get\_\-htime} () const }
\label{classHelloMessage_a62354c141a485ac09f54df2d4283b8de}

\item 
\hypertarget{classHelloMessage_a5f746dfe9e02e1c3ec97ae992a0fea0f}{
void {\bfseries set\_\-htime} (const \hyperlink{classTimeVal}{TimeVal} \&htime)}
\label{classHelloMessage_a5f746dfe9e02e1c3ec97ae992a0fea0f}

\item 
\hypertarget{classHelloMessage_a979ddd5a04d38e19879b46229aacb58d}{
\hyperlink{structOlsrTypes_a0dc070ed0b3ef1b8e99e93c333c8ed2e}{OlsrTypes::WillType} {\bfseries willingness} () const }
\label{classHelloMessage_a979ddd5a04d38e19879b46229aacb58d}

\item 
\hypertarget{classHelloMessage_a397a4f5a245a74138100b8f4f34e717e}{
void {\bfseries set\_\-willingness} (\hyperlink{structOlsrTypes_a0dc070ed0b3ef1b8e99e93c333c8ed2e}{OlsrTypes::WillType} willingness)}
\label{classHelloMessage_a397a4f5a245a74138100b8f4f34e717e}

\item 
\hypertarget{classHelloMessage_a8f73a02e7d00ae7cc4a59cfd11775ae1}{
void {\bfseries add\_\-link} (const \hyperlink{classLinkCode}{LinkCode} code, const \hyperlink{classIPv4}{IPv4} \&remote\_\-addr)}
\label{classHelloMessage_a8f73a02e7d00ae7cc4a59cfd11775ae1}

\item 
\hypertarget{classHelloMessage_aaabbd51d289c986f62ac310340108855}{
size\_\-t \hyperlink{classHelloMessage_aaabbd51d289c986f62ac310340108855}{remove\_\-link} (const \hyperlink{classIPv4}{IPv4} \&remote\_\-addr)}
\label{classHelloMessage_aaabbd51d289c986f62ac310340108855}

\begin{DoxyCompactList}\small\item\em Remove a given neighbor interface address from ALL link tuples. \item\end{DoxyCompactList}\item 
\hypertarget{classHelloMessage_aefa38da844609d727fa4d4991cb1c354}{
void {\bfseries clear} ()}
\label{classHelloMessage_aefa38da844609d727fa4d4991cb1c354}

\item 
\hypertarget{classHelloMessage_a6e5b6fd0ad2717b02c5731c7bb173be9}{
const LinkBag \& {\bfseries links} () const }
\label{classHelloMessage_a6e5b6fd0ad2717b02c5731c7bb173be9}

\item 
\hypertarget{classHelloMessage_a8b54df0936492555b2a52c4ca7ac9bd9}{
virtual string \hyperlink{classHelloMessage_a8b54df0936492555b2a52c4ca7ac9bd9}{str} () const }
\label{classHelloMessage_a8b54df0936492555b2a52c4ca7ac9bd9}

\begin{DoxyCompactList}\small\item\em Print a \hyperlink{classHelloMessage}{HelloMessage} as a string. \item\end{DoxyCompactList}\item 
\hypertarget{classHelloMessage_a3b170fbdd5d775f3f31ed00fa493e66a}{
virtual size\_\-t \hyperlink{classHelloMessage_a3b170fbdd5d775f3f31ed00fa493e66a}{get\_\-links\_\-length} () const }
\label{classHelloMessage_a3b170fbdd5d775f3f31ed00fa493e66a}

\begin{DoxyCompactList}\small\item\em Calculate \hyperlink{protocolthe-p}{the} on-\/wire size of all link state tuples. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classHelloMessage_a4c6d97cefb3ecc274e32613548e3a10f}{
void {\bfseries add\_\-link} (const \hyperlink{classLinkCode}{LinkCode} code, const \hyperlink{classLinkAddrInfo}{LinkAddrInfo} \&lai)}
\label{classHelloMessage_a4c6d97cefb3ecc274e32613548e3a10f}

\item 
virtual size\_\-t \hyperlink{classHelloMessage_abafdc63f1b24868494f8d1c0ec12bdc5}{decode\_\-link\_\-tuple} (uint8\_\-t $\ast$buf, size\_\-t \&len, size\_\-t \&skiplen, bool has\_\-lq=false)  throw (InvalidLinkTuple)
\begin{DoxyCompactList}\small\item\em Decode a single link tuple from \hyperlink{protocolthe-p}{the} buffer into \hyperlink{protocolthe-p}{the} \hyperlink{classHelloMessage}{HelloMessage}. \item\end{DoxyCompactList}\item 
\hypertarget{classHelloMessage_ad44f93a6b96564d2ba6ba019ccf4ce25}{
size\_\-t {\bfseries link\_\-tuple\_\-header\_\-length} () const }
\label{classHelloMessage_ad44f93a6b96564d2ba6ba019ccf4ce25}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classHelloMessage_a593e21479386c2a50a9f4dbbd0825235}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-htime}}
\label{classHelloMessage_a593e21479386c2a50a9f4dbbd0825235}

\item 
\hypertarget{classHelloMessage_a7865d1e40185fdd2558d23d66fdae8c2}{
\hyperlink{structOlsrTypes_a0dc070ed0b3ef1b8e99e93c333c8ed2e}{OlsrTypes::WillType} {\bfseries \_\-willingness}}
\label{classHelloMessage_a7865d1e40185fdd2558d23d66fdae8c2}

\item 
\hypertarget{classHelloMessage_a3ff1435c37786876c12ba15263940f41}{
LinkBag {\bfseries \_\-links}}
\label{classHelloMessage_a3ff1435c37786876c12ba15263940f41}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Representation of a HELLO protocol message. 

\subsection{Member Function Documentation}
\hypertarget{classHelloMessage_abafdc63f1b24868494f8d1c0ec12bdc5}{
\index{HelloMessage@{HelloMessage}!decode\_\-link\_\-tuple@{decode\_\-link\_\-tuple}}
\index{decode\_\-link\_\-tuple@{decode\_\-link\_\-tuple}!HelloMessage@{HelloMessage}}
\subsubsection[{decode\_\-link\_\-tuple}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t HelloMessage::decode\_\-link\_\-tuple (
\begin{DoxyParamCaption}
\item[{uint8\_\-t $\ast$}]{buf, }
\item[{size\_\-t \&}]{len, }
\item[{size\_\-t \&}]{skiplen, }
\item[{bool}]{has\_\-lq = {\ttfamily false}}
\end{DoxyParamCaption}
)  throw ({\bf InvalidLinkTuple})\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classHelloMessage_abafdc63f1b24868494f8d1c0ec12bdc5}


Decode a single link tuple from \hyperlink{protocolthe-p}{the} buffer into \hyperlink{protocolthe-p}{the} \hyperlink{classHelloMessage}{HelloMessage}. 


\begin{DoxyParams}{Parameters}
{\em buf} & pointer to \hyperlink{protocolthe-p}{the} buffer to decode. \\
\hline
{\em len} & \hyperlink{protocolthe-p}{the} number of bytes in \hyperlink{protocolthe-p}{the} buffer. \\
\hline
{\em skiplen} & \hyperlink{protocolthe-p}{the} number of bytes consumed by this function. \\
\hline
{\em has\_\-lq} & true if this function is being called from derived class \hyperlink{classEtxHelloMessage}{EtxHelloMessage} to process ETX information, otherwise false. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of bytes consumed in \hyperlink{protocolthe-p}{the} input stream to produce a decoded link tuple. 
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em \hyperlink{classInvalidLinkTuple}{InvalidLinkTuple}} & if an invalid link tuple was found during message decoding. \\
\hline
\end{DoxyExceptions}


Reimplemented in \hyperlink{classEtxHelloMessage_ae1011f555d58b094870e764c915d358e}{EtxHelloMessage}.



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