\hypertarget{classAnyAttribute}{
\section{AnyAttribute Class Reference}
\label{classAnyAttribute}\index{AnyAttribute@{AnyAttribute}}
}
Inheritance diagram for AnyAttribute:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classAnyAttribute}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classAnyAttribute_ae0e1558b6c7fb5a374dc950014d5ec18}{
{\bfseries AnyAttribute} (const char $\ast$attr)  throw (InvalidString)}
\label{classAnyAttribute_ae0e1558b6c7fb5a374dc950014d5ec18}

\item 
\hyperlink{classPathAttribute}{PathAttribute} $\ast$ \hyperlink{classAnyAttribute_ac9302be32629830f171912d41012fb2d}{clone} () const 
\begin{DoxyCompactList}\small\item\em Make a copy of \hyperlink{protocolthe-p}{the} current attribute. \item\end{DoxyCompactList}\item 
bool \hyperlink{classAnyAttribute_af576e29e9a557e3069ec843953cd3684}{encode} (uint8\_\-t $\ast$buf, size\_\-t \&wire\_\-size, const \hyperlink{classBGPPeerData}{BGPPeerData} $\ast$peerdata) const 
\begin{DoxyCompactList}\small\item\em encode a path attribute. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classAnyAttribute_ac3c24323d2c7a2dd775f1ab1404ab2f3}{
uint8\_\-t $\ast$ {\bfseries \_\-data}}
\label{classAnyAttribute_ac3c24323d2c7a2dd775f1ab1404ab2f3}

\item 
\hypertarget{classAnyAttribute_ac7822e058db2ee77a90b23089eeb53b2}{
size\_\-t {\bfseries \_\-size}}
\label{classAnyAttribute_ac7822e058db2ee77a90b23089eeb53b2}

\item 
\hypertarget{classAnyAttribute_a0fa3f3559d465ce64aa34153c916ab5c}{
size\_\-t {\bfseries \_\-wire\_\-size}}
\label{classAnyAttribute_a0fa3f3559d465ce64aa34153c916ab5c}

\item 
\hypertarget{classAnyAttribute_a507ed558673235945b6228458dd7a14c}{
string {\bfseries \_\-init\_\-string}}
\label{classAnyAttribute_a507ed558673235945b6228458dd7a14c}

\end{DoxyCompactItemize}
\subsection*{Static Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classAnyAttribute_ad2e2cad58ca6d355eba172ad114fe20c}{
static const uint8\_\-t {\bfseries \_\-valid} \mbox{[}$\,$\mbox{]} = \{0x80$|$0x40, 255, 1, 1\}}
\label{classAnyAttribute_ad2e2cad58ca6d355eba172ad114fe20c}

\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\hypertarget{classAnyAttribute_ac9302be32629830f171912d41012fb2d}{
\index{AnyAttribute@{AnyAttribute}!clone@{clone}}
\index{clone@{clone}!AnyAttribute@{AnyAttribute}}
\subsubsection[{clone}]{\setlength{\rightskip}{0pt plus 5cm}{\bf PathAttribute}$\ast$ AnyAttribute::clone (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classAnyAttribute_ac9302be32629830f171912d41012fb2d}


Make a copy of \hyperlink{protocolthe-p}{the} current attribute. 

The derived class should use new to generate a copy of itself. The wire format representation will not be used by \hyperlink{protocolthe-p}{the} caller. 

Implements \hyperlink{classPathAttribute_a17f0c215d2873317797a899b7ac58ef6}{PathAttribute}.

\hypertarget{classAnyAttribute_af576e29e9a557e3069ec843953cd3684}{
\index{AnyAttribute@{AnyAttribute}!encode@{encode}}
\index{encode@{encode}!AnyAttribute@{AnyAttribute}}
\subsubsection[{encode}]{\setlength{\rightskip}{0pt plus 5cm}bool AnyAttribute::encode (
\begin{DoxyParamCaption}
\item[{uint8\_\-t $\ast$}]{buf, }
\item[{size\_\-t \&}]{wire\_\-size, }
\item[{const {\bf BGPPeerData} $\ast$}]{peerdata}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classAnyAttribute_af576e29e9a557e3069ec843953cd3684}


encode a path attribute. 

In a sane world, we'd use a virtual function for this. But we store so many path attributes that we can't afford \hyperlink{protocolthe-p}{the} overhead of a virtual function table for them, so we have to do this \hyperlink{protocolthe-p}{the} hard way

XXX THE ABOVE IS NO LONGER THE CASE. WE SHOULD REWRITE THIS TO USE VIRTUAL FUNCTIONS 

Implements \hyperlink{classPathAttribute_a5570039d9cd5e255bb187fd245861e09}{PathAttribute}.



The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/bgp/harness/peer.cc\end{DoxyCompactItemize}
