\hypertarget{classElement}{
\section{Element Class Reference}
\label{classElement}\index{Element@{Element}}
}


Basic object type used by policy engine.  




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

Inheritance diagram for Element:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=12.000000cm]{classElement}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classElement_a6146afc7c6b2e32fd4286cee9bf1e488}{
typedef unsigned char {\bfseries Hash}}
\label{classElement_a6146afc7c6b2e32fd4286cee9bf1e488}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classElement_a2c08d93eea76a5a4437e8ed11a9b8325}{
{\bfseries Element} (Hash hash)}
\label{classElement_a2c08d93eea76a5a4437e8ed11a9b8325}

\item 
virtual string \hyperlink{classElement_a1acf1c63bbe1374c574bf19e3a000552}{str} () const =0
\begin{DoxyCompactList}\small\item\em Every element must be representable by a string. \item\end{DoxyCompactList}\item 
virtual const char $\ast$ \hyperlink{classElement_a17396c7d64fd4fc15713d3d803b57a56}{type} () const =0
\item 
\hypertarget{classElement_a606a801b849292b18955481fe8de1b7b}{
Hash {\bfseries hash} () const }
\label{classElement_a606a801b849292b18955481fe8de1b7b}

\item 
\hypertarget{classElement_a41ab285bbc4c6891bdc41c1a070b32e3}{
void {\bfseries ref} () const }
\label{classElement_a41ab285bbc4c6891bdc41c1a070b32e3}

\item 
\hypertarget{classElement_a9f34d5a4f032d33966096b1669f2e06a}{
void {\bfseries unref} ()}
\label{classElement_a9f34d5a4f032d33966096b1669f2e06a}

\item 
\hypertarget{classElement_a05c793a30329144bb50b24d213bcc080}{
uint32\_\-t {\bfseries refcount} () const }
\label{classElement_a05c793a30329144bb50b24d213bcc080}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classElement_aece8acf32a88dc75c410e5357b259ddd}{
uint32\_\-t {\bfseries \_\-refcount}}
\label{classElement_aece8acf32a88dc75c410e5357b259ddd}

\item 
\hypertarget{classElement_acad21a0cd8541f946fa80d265dfdabfc}{
Hash {\bfseries \_\-hash}}
\label{classElement_acad21a0cd8541f946fa80d265dfdabfc}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Basic object type used by policy engine. This element hierarchy is similar to XrlAtom's but exclusive to policy components. 

\subsection{Member Function Documentation}
\hypertarget{classElement_a1acf1c63bbe1374c574bf19e3a000552}{
\index{Element@{Element}!str@{str}}
\index{str@{str}!Element@{Element}}
\subsubsection[{str}]{\setlength{\rightskip}{0pt plus 5cm}virtual string Element::str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classElement_a1acf1c63bbe1374c574bf19e3a000552}


Every element must be representable by a string. 

This is a requirement to enable \hyperlink{protocolthe-p}{the} policy manager to send elements to \hyperlink{protocolthe-p}{the} backend filters via XRL calls for example.

\begin{DoxyReturn}{Returns}
string representation of \hyperlink{protocolthe-p}{the} element. 
\end{DoxyReturn}


Implemented in \hyperlink{classElemFilter_a5ce4039c69f956aa5a73e42188f492f5}{ElemFilter}, \hyperlink{classElemNull_aa14ed02d17a69168f141732532c08615}{ElemNull}, \hyperlink{classElemSetAny_ae485cbd43788c13b6c1dfc9ed67cfc71}{ElemSetAny$<$ T $>$}, \hyperlink{classElemInt32_a7292da05b634f2a4d514f3ae6542bfe9}{ElemInt32}, \hyperlink{classElemU32_acc8881a092331b83b40f5f24470dc000}{ElemU32}, \hyperlink{classElemCom32_abf4c8ec84d1b236f64c09e4d9175348b}{ElemCom32}, \hyperlink{classElemStr_aa56e739cc2b21b2445eae57710cc33d5}{ElemStr}, \hyperlink{classElemBool_abc28cb7c00b00f3f5f6f0d925358006c}{ElemBool}, \hyperlink{classElemAny_ad0a12a266430f2366d1a26b96c5046d9}{ElemAny$<$ T $>$}, \hyperlink{classElemRefAny_a34da94d225b1cbc264382cf080273356}{ElemRefAny$<$ T $>$}, \hyperlink{classElemNet_afc9bb5d9e0e0f11611b11cccefb0420f}{ElemNet$<$ A $>$}, and \hyperlink{classElemNextHop_aa3536354827e200115ed08090d63cda2}{ElemNextHop$<$ A $>$}.

\hypertarget{classElement_a17396c7d64fd4fc15713d3d803b57a56}{
\index{Element@{Element}!type@{type}}
\index{type@{type}!Element@{Element}}
\subsubsection[{type}]{\setlength{\rightskip}{0pt plus 5cm}virtual const char$\ast$ Element::type (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classElement_a17396c7d64fd4fc15713d3d803b57a56}
\begin{DoxyReturn}{Returns}
string representation of element type. 
\end{DoxyReturn}


Implemented in \hyperlink{classElemFilter_a5f79176e2510b8a3cfe122932acc2a4d}{ElemFilter}, \hyperlink{classElemNull_a534d6f5a0f4af7f72751423ea539c26e}{ElemNull}, \hyperlink{classElemSetAny_af7decce3d6bdda0d989f94abb567d746}{ElemSetAny$<$ T $>$}, \hyperlink{classElemInt32_ad28e3ad0fbcb27ff9de13c6a9ce9330d}{ElemInt32}, \hyperlink{classElemU32_a759facf4f7d61a3c1ce46d8dda5e51c7}{ElemU32}, \hyperlink{classElemCom32_a4798525e4ca37b6790c2471b5162df5f}{ElemCom32}, \hyperlink{classElemStr_a67aa928077fb6260beca992b38325407}{ElemStr}, \hyperlink{classElemBool_a3413f82944fb4e346b650a92100afe8b}{ElemBool}, \hyperlink{classElemAny_abb18fcf463916fbabfc09e4720ce6306}{ElemAny$<$ T $>$}, \hyperlink{classElemRefAny_a8d8a6cc4080ccbfab1734c20762a5195}{ElemRefAny$<$ T $>$}, \hyperlink{classElemNet_a2541e27108e01ffeafb08122e24a0e62}{ElemNet$<$ A $>$}, and \hyperlink{classElemNextHop_a00fda60010b66590a2ccdeb02bb5e5c0}{ElemNextHop$<$ A $>$}.



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