\hypertarget{a00895}{\section{Plugin\+Functions\+:\+:Object\+Iterator Class Reference}
\label{a00895}\index{Plugin\+Functions\+::\+Object\+Iterator@{Plugin\+Functions\+::\+Object\+Iterator}}
}


\hyperlink{a00467}{Core} Data Iterator.  




{\ttfamily \#include $<$Open\+Flipper/\+Base\+Plugin/\+Plugin\+Functions.\+hh$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00895_a53cb0ee7b60b82141c865eeccde1fd35}{typedef \hyperlink{a00330}{Base\+Object\+Data} \hyperlink{a00895_a53cb0ee7b60b82141c865eeccde1fd35}{value\+\_\+type}}\label{a00895_a53cb0ee7b60b82141c865eeccde1fd35}

\begin{DoxyCompactList}\small\item\em type of the Objects the iterator works on \end{DoxyCompactList}\item 
\hypertarget{a00895_a35380acf0e46b697358c85c4657bf1ab}{typedef \hyperlink{a00330}{Base\+Object\+Data} $\ast$ \hyperlink{a00895_a35380acf0e46b697358c85c4657bf1ab}{value\+\_\+handle}}\label{a00895_a35380acf0e46b697358c85c4657bf1ab}

\begin{DoxyCompactList}\small\item\em handle type (just an int) \end{DoxyCompactList}\item 
\hypertarget{a00895_a20b3789e0a2258c739cb2bdd7a4fc119}{typedef \hyperlink{a00895_a53cb0ee7b60b82141c865eeccde1fd35}{value\+\_\+type} \& \hyperlink{a00895_a20b3789e0a2258c739cb2bdd7a4fc119}{reference}}\label{a00895_a20b3789e0a2258c739cb2bdd7a4fc119}

\begin{DoxyCompactList}\small\item\em reference type \end{DoxyCompactList}\item 
\hypertarget{a00895_a7069b9ce3ae31f454f7e40c5c592c608}{typedef \hyperlink{a00895_a53cb0ee7b60b82141c865eeccde1fd35}{value\+\_\+type} $\ast$ \hyperlink{a00895_a7069b9ce3ae31f454f7e40c5c592c608}{pointer}}\label{a00895_a7069b9ce3ae31f454f7e40c5c592c608}

\begin{DoxyCompactList}\small\item\em basic pointer type \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a00895_a54d100ee050b2f18d53a64bcbdcd8a41}{Object\+Iterator} (\hyperlink{a03393_a9eae8faadd978364c97a06f639ec0ccc}{Iterator\+Restriction} \+\_\+restriction=\hyperlink{a03393_aff89407cfc7a2f18a059f6cff7d4edbb}{A\+L\+L\+\_\+\+O\+B\+J\+E\+C\+T\+S}, \hyperlink{a00477}{Data\+Type} \+\_\+data\+Type=\hyperlink{a02488_a87446416192751e622bd4693a4339419}{D\+A\+T\+A\+\_\+\+A\+L\+L})
\begin{DoxyCompactList}\small\item\em Use this constructor for iterating through your data. \end{DoxyCompactList}\item 
\hypertarget{a00895_a9f59ed2b053a6772993a1728740e2363}{\hyperlink{a00895_a9f59ed2b053a6772993a1728740e2363}{Object\+Iterator} (\hyperlink{a00330}{Base\+Object\+Data} $\ast$pos, \hyperlink{a03393_a9eae8faadd978364c97a06f639ec0ccc}{Iterator\+Restriction} \+\_\+restriction=\hyperlink{a03393_aff89407cfc7a2f18a059f6cff7d4edbb}{A\+L\+L\+\_\+\+O\+B\+J\+E\+C\+T\+S}, \hyperlink{a00477}{Data\+Type} \+\_\+data\+Type=\hyperlink{a02488_a87446416192751e622bd4693a4339419}{D\+A\+T\+A\+\_\+\+A\+L\+L})}\label{a00895_a9f59ed2b053a6772993a1728740e2363}

\begin{DoxyCompactList}\small\item\em additional constructor starting at a given position \end{DoxyCompactList}\item 
\hypertarget{a00895_a674ccdb66799d8c2daa73b64f541baad}{\hyperlink{a00895_a674ccdb66799d8c2daa73b64f541baad}{operator value\+\_\+handle} ()}\label{a00895_a674ccdb66799d8c2daa73b64f541baad}

\begin{DoxyCompactList}\small\item\em return the current position of the iterator \end{DoxyCompactList}\item 
\hypertarget{a00895_a27df3783667c358261e16cb48a9779c2}{bool \hyperlink{a00895_a27df3783667c358261e16cb48a9779c2}{operator==} (const \hyperlink{a00895}{Object\+Iterator} \&\+\_\+rhs) const }\label{a00895_a27df3783667c358261e16cb48a9779c2}

\begin{DoxyCompactList}\small\item\em compare iterators \end{DoxyCompactList}\item 
\hypertarget{a00895_aca81c561adc294231f28a028b95dabbe}{bool \hyperlink{a00895_aca81c561adc294231f28a028b95dabbe}{operator!=} (const \hyperlink{a00895}{Object\+Iterator} \&\+\_\+rhs) const }\label{a00895_aca81c561adc294231f28a028b95dabbe}

\begin{DoxyCompactList}\small\item\em compare iterators \end{DoxyCompactList}\item 
\hypertarget{a00895_a9994d19c795e070791c1b2f151e43e20}{\hyperlink{a00895}{Object\+Iterator} \& \hyperlink{a00895_a9994d19c795e070791c1b2f151e43e20}{operator=} (const \hyperlink{a00895}{Object\+Iterator} \&\+\_\+rhs)}\label{a00895_a9994d19c795e070791c1b2f151e43e20}

\begin{DoxyCompactList}\small\item\em assign iterators \end{DoxyCompactList}\item 
\hypertarget{a00895_a751dc91bfaec0bbbaa25a8d7a40a9beb}{\hyperlink{a00895_a7069b9ce3ae31f454f7e40c5c592c608}{pointer} \hyperlink{a00895_a751dc91bfaec0bbbaa25a8d7a40a9beb}{operator-\/$>$} ()}\label{a00895_a751dc91bfaec0bbbaa25a8d7a40a9beb}

\begin{DoxyCompactList}\small\item\em dereference \end{DoxyCompactList}\item 
\hypertarget{a00895_a5bb5bee9217a64dea909fa217feb1c11}{\hyperlink{a00895}{Object\+Iterator} \& \hyperlink{a00895_a5bb5bee9217a64dea909fa217feb1c11}{operator++} ()}\label{a00895_a5bb5bee9217a64dea909fa217feb1c11}

\begin{DoxyCompactList}\small\item\em next element \end{DoxyCompactList}\item 
\hypertarget{a00895_a7bdd5294938f3ee7b953477dbc7e09b4}{\hyperlink{a00895}{Object\+Iterator} \& \hyperlink{a00895_a7bdd5294938f3ee7b953477dbc7e09b4}{operator-\/-\/} ()}\label{a00895_a7bdd5294938f3ee7b953477dbc7e09b4}

\begin{DoxyCompactList}\small\item\em last element \end{DoxyCompactList}\item 
\hyperlink{a00330}{Base\+Object\+Data} $\ast$ \hyperlink{a00895_acc46efe403f3746b09058510aebefdd8}{operator$\ast$} ()
\begin{DoxyCompactList}\small\item\em dereference the iterator \end{DoxyCompactList}\item 
\hypertarget{a00895_ac08bdae296f4b09334dab82649987a86}{\hyperlink{a00330}{Base\+Object\+Data} $\ast$ \hyperlink{a00895_ac08bdae296f4b09334dab82649987a86}{index} ()}\label{a00895_ac08bdae296f4b09334dab82649987a86}

\begin{DoxyCompactList}\small\item\em return current position of the iterator \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00895_a007e520bda6bacfd4adeec1eb53ba261}{proceed\+To\+Next\+Base\+Object\+Data} (\hyperlink{a00329}{Base\+Object} $\ast$\&\+\_\+object)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00895_a5916b78491ac48c7a312d881f6fce735}{\hyperlink{a00330}{Base\+Object\+Data} $\ast$ \hyperlink{a00895_a5916b78491ac48c7a312d881f6fce735}{pos\+\_\+}}\label{a00895_a5916b78491ac48c7a312d881f6fce735}

\begin{DoxyCompactList}\small\item\em current position of the iterator \end{DoxyCompactList}\item 
\hypertarget{a00895_ab42108268d3aa2198242950eeec446fd}{\hyperlink{a00477}{Data\+Type} \hyperlink{a00895_ab42108268d3aa2198242950eeec446fd}{data\+Type\+\_\+}}\label{a00895_ab42108268d3aa2198242950eeec446fd}

\begin{DoxyCompactList}\small\item\em returned data types of the iterator \end{DoxyCompactList}\item 
\hypertarget{a00895_ac9865213be6b7fa872c4a5d118e19286}{\hyperlink{a03393_a9eae8faadd978364c97a06f639ec0ccc}{Iterator\+Restriction} \hyperlink{a00895_ac9865213be6b7fa872c4a5d118e19286}{restriction\+\_\+}}\label{a00895_ac9865213be6b7fa872c4a5d118e19286}

\begin{DoxyCompactList}\small\item\em Restriction of the iterator. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{a00467}{Core} Data Iterator. 

This is the core iterator for the whole framework. You should use this iterator to access your data.~\newline
You can choose if the iterator returns only Target, Source or all objects.~\newline
Additionally you can set the type of objects returned by the iterator. The \hyperlink{a00895}{Object\+Iterator} will only return real Objects. Groups are not considered to be objects 

Definition at line 452 of file Plugin\+Functions.\+hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00895_a54d100ee050b2f18d53a64bcbdcd8a41}{\index{Plugin\+Functions\+::\+Object\+Iterator@{Plugin\+Functions\+::\+Object\+Iterator}!Object\+Iterator@{Object\+Iterator}}
\index{Object\+Iterator@{Object\+Iterator}!Plugin\+Functions\+::\+Object\+Iterator@{Plugin\+Functions\+::\+Object\+Iterator}}
\subsubsection[{Object\+Iterator}]{\setlength{\rightskip}{0pt plus 5cm}Plugin\+Functions\+::\+Object\+Iterator\+::\+Object\+Iterator (
\begin{DoxyParamCaption}
\item[{{\bf Iterator\+Restriction}}]{\+\_\+restriction = {\ttfamily {\bf A\+L\+L\+\_\+\+O\+B\+J\+E\+C\+T\+S}}, }
\item[{{\bf Data\+Type}}]{\+\_\+data\+Type = {\ttfamily {\bf D\+A\+T\+A\+\_\+\+A\+L\+L}}}
\end{DoxyParamCaption}
)}}\label{a00895_a54d100ee050b2f18d53a64bcbdcd8a41}


Use this constructor for iterating through your data. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+restriction} & Use this parameter to define which objects will be returned.~\newline
 You can select between A\+L\+L\+\_\+\+O\+B\+J\+E\+C\+T\+S , T\+A\+R\+G\+E\+T\+\_\+\+O\+B\+J\+E\+C\+T\+S , S\+O\+U\+R\+C\+E\+\_\+\+O\+B\+J\+E\+C\+T\+S. \\
\hline
{\em \+\_\+data\+Type} & Use this parameter to select the returned object types. You can use D\+A\+T\+A\+\_\+\+A\+L\+L D\+A\+T\+A\+\_\+\+P\+O\+L\+Y\+\_\+\+M\+E\+S\+H D\+A\+T\+A\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+\_\+\+M\+E\+S\+H D\+A\+T\+A\+\_\+\+V\+O\+L\+U\+M\+E \\
\hline
\end{DoxyParams}


Definition at line 66 of file Plugin\+Functions\+Iterator.\+cc.



\subsection{Member Function Documentation}
\hypertarget{a00895_acc46efe403f3746b09058510aebefdd8}{\index{Plugin\+Functions\+::\+Object\+Iterator@{Plugin\+Functions\+::\+Object\+Iterator}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!Plugin\+Functions\+::\+Object\+Iterator@{Plugin\+Functions\+::\+Object\+Iterator}}
\subsubsection[{operator$\ast$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Base\+Object\+Data} $\ast$ Plugin\+Functions\+::\+Object\+Iterator\+::operator$\ast$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a00895_acc46efe403f3746b09058510aebefdd8}


dereference the iterator 

This operator returns a pointer to the current object the iterator points to.

\begin{DoxyReturn}{Returns}
Pointer to the current Object\+Data 
\end{DoxyReturn}


Definition at line 182 of file Plugin\+Functions\+Iterator.\+cc.

\hypertarget{a00895_a007e520bda6bacfd4adeec1eb53ba261}{\index{Plugin\+Functions\+::\+Object\+Iterator@{Plugin\+Functions\+::\+Object\+Iterator}!proceed\+To\+Next\+Base\+Object\+Data@{proceed\+To\+Next\+Base\+Object\+Data}}
\index{proceed\+To\+Next\+Base\+Object\+Data@{proceed\+To\+Next\+Base\+Object\+Data}!Plugin\+Functions\+::\+Object\+Iterator@{Plugin\+Functions\+::\+Object\+Iterator}}
\subsubsection[{proceed\+To\+Next\+Base\+Object\+Data}]{\setlength{\rightskip}{0pt plus 5cm}void Plugin\+Functions\+::\+Object\+Iterator\+::proceed\+To\+Next\+Base\+Object\+Data (
\begin{DoxyParamCaption}
\item[{{\bf Base\+Object} $\ast$\&}]{\+\_\+object}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}}\label{a00895_a007e520bda6bacfd4adeec1eb53ba261}
Takes an object and goes through the object tree to the next \hyperlink{a00330}{Base\+Object\+Data} It stops at the root node. 

Definition at line 191 of file Plugin\+Functions\+Iterator.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/\+Base\+Plugin/\hyperlink{a02452}{Plugin\+Functions.\+hh}\item 
Open\+Flipper/\+Base\+Plugin/Plugin\+Functions\+Iterator.\+cc\end{DoxyCompactItemize}
