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


\hyperlink{a07112}{Core} Data Iterator.  




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

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a06928_a53cb0ee7b60b82141c865eeccde1fd35}\label{a06928_a53cb0ee7b60b82141c865eeccde1fd35}} 
typedef \hyperlink{a07044}{Base\+Object\+Data} \hyperlink{a06928_a53cb0ee7b60b82141c865eeccde1fd35}{value\+\_\+type}
\begin{DoxyCompactList}\small\item\em type of the Objects the iterator works on \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a35380acf0e46b697358c85c4657bf1ab}\label{a06928_a35380acf0e46b697358c85c4657bf1ab}} 
typedef \hyperlink{a07044}{Base\+Object\+Data} $\ast$ \hyperlink{a06928_a35380acf0e46b697358c85c4657bf1ab}{value\+\_\+handle}
\begin{DoxyCompactList}\small\item\em handle type (just an int) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a20b3789e0a2258c739cb2bdd7a4fc119}\label{a06928_a20b3789e0a2258c739cb2bdd7a4fc119}} 
typedef \hyperlink{a06928_a53cb0ee7b60b82141c865eeccde1fd35}{value\+\_\+type} \& \hyperlink{a06928_a20b3789e0a2258c739cb2bdd7a4fc119}{reference}
\begin{DoxyCompactList}\small\item\em reference type \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a7069b9ce3ae31f454f7e40c5c592c608}\label{a06928_a7069b9ce3ae31f454f7e40c5c592c608}} 
typedef \hyperlink{a06928_a53cb0ee7b60b82141c865eeccde1fd35}{value\+\_\+type} $\ast$ \hyperlink{a06928_a7069b9ce3ae31f454f7e40c5c592c608}{pointer}
\begin{DoxyCompactList}\small\item\em basic pointer type \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a06928_a54d100ee050b2f18d53a64bcbdcd8a41}{Object\+Iterator} (\hyperlink{a06173_a9eae8faadd978364c97a06f639ec0ccc}{Iterator\+Restriction} \+\_\+restriction=\hyperlink{a06173_aff89407cfc7a2f18a059f6cff7d4edbb}{A\+L\+L\+\_\+\+O\+B\+J\+E\+C\+TS}, \hyperlink{a07048}{Data\+Type} \+\_\+data\+Type=\hyperlink{a00188_a87446416192751e622bd4693a4339419}{D\+A\+T\+A\+\_\+\+A\+LL})
\begin{DoxyCompactList}\small\item\em Use this constructor for iterating through your data. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a9f59ed2b053a6772993a1728740e2363}\label{a06928_a9f59ed2b053a6772993a1728740e2363}} 
\hyperlink{a06928_a9f59ed2b053a6772993a1728740e2363}{Object\+Iterator} (\hyperlink{a07044}{Base\+Object\+Data} $\ast$pos, \hyperlink{a06173_a9eae8faadd978364c97a06f639ec0ccc}{Iterator\+Restriction} \+\_\+restriction=\hyperlink{a06173_aff89407cfc7a2f18a059f6cff7d4edbb}{A\+L\+L\+\_\+\+O\+B\+J\+E\+C\+TS}, \hyperlink{a07048}{Data\+Type} \+\_\+data\+Type=\hyperlink{a00188_a87446416192751e622bd4693a4339419}{D\+A\+T\+A\+\_\+\+A\+LL})
\begin{DoxyCompactList}\small\item\em additional constructor starting at a given position \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a674ccdb66799d8c2daa73b64f541baad}\label{a06928_a674ccdb66799d8c2daa73b64f541baad}} 
\hyperlink{a06928_a674ccdb66799d8c2daa73b64f541baad}{operator value\+\_\+handle} ()
\begin{DoxyCompactList}\small\item\em return the current position of the iterator \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a1a4d1c23886adbcc5c4df75e307b3b36}\label{a06928_a1a4d1c23886adbcc5c4df75e307b3b36}} 
bool \hyperlink{a06928_a1a4d1c23886adbcc5c4df75e307b3b36}{operator==} (const \hyperlink{a06928}{Object\+Iterator} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em compare iterators \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a1cd8639a63ef05f1e79ce8c99f95ae15}\label{a06928_a1cd8639a63ef05f1e79ce8c99f95ae15}} 
bool \hyperlink{a06928_a1cd8639a63ef05f1e79ce8c99f95ae15}{operator!=} (const \hyperlink{a06928}{Object\+Iterator} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em compare iterators \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a9994d19c795e070791c1b2f151e43e20}\label{a06928_a9994d19c795e070791c1b2f151e43e20}} 
\hyperlink{a06928}{Object\+Iterator} \& \hyperlink{a06928_a9994d19c795e070791c1b2f151e43e20}{operator=} (const \hyperlink{a06928}{Object\+Iterator} \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em assign iterators \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a751dc91bfaec0bbbaa25a8d7a40a9beb}\label{a06928_a751dc91bfaec0bbbaa25a8d7a40a9beb}} 
\hyperlink{a06928_a7069b9ce3ae31f454f7e40c5c592c608}{pointer} \hyperlink{a06928_a751dc91bfaec0bbbaa25a8d7a40a9beb}{operator-\/$>$} ()
\begin{DoxyCompactList}\small\item\em dereference \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a5bb5bee9217a64dea909fa217feb1c11}\label{a06928_a5bb5bee9217a64dea909fa217feb1c11}} 
\hyperlink{a06928}{Object\+Iterator} \& \hyperlink{a06928_a5bb5bee9217a64dea909fa217feb1c11}{operator++} ()
\begin{DoxyCompactList}\small\item\em next element \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_a7bdd5294938f3ee7b953477dbc7e09b4}\label{a06928_a7bdd5294938f3ee7b953477dbc7e09b4}} 
\hyperlink{a06928}{Object\+Iterator} \& \hyperlink{a06928_a7bdd5294938f3ee7b953477dbc7e09b4}{operator-\/-\/} ()
\begin{DoxyCompactList}\small\item\em last element \end{DoxyCompactList}\item 
\hyperlink{a07044}{Base\+Object\+Data} $\ast$ \hyperlink{a06928_acc46efe403f3746b09058510aebefdd8}{operator$\ast$} ()
\begin{DoxyCompactList}\small\item\em dereference the iterator \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_ac08bdae296f4b09334dab82649987a86}\label{a06928_ac08bdae296f4b09334dab82649987a86}} 
\hyperlink{a07044}{Base\+Object\+Data} $\ast$ \hyperlink{a06928_ac08bdae296f4b09334dab82649987a86}{index} ()
\begin{DoxyCompactList}\small\item\em return current position of the iterator \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a06928_a007e520bda6bacfd4adeec1eb53ba261}{proceed\+To\+Next\+Base\+Object\+Data} (\hyperlink{a07036}{Base\+Object} $\ast$\&\+\_\+object)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a06928_a5916b78491ac48c7a312d881f6fce735}\label{a06928_a5916b78491ac48c7a312d881f6fce735}} 
\hyperlink{a07044}{Base\+Object\+Data} $\ast$ \hyperlink{a06928_a5916b78491ac48c7a312d881f6fce735}{pos\+\_\+}
\begin{DoxyCompactList}\small\item\em current position of the iterator \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_ab42108268d3aa2198242950eeec446fd}\label{a06928_ab42108268d3aa2198242950eeec446fd}} 
\hyperlink{a07048}{Data\+Type} \hyperlink{a06928_ab42108268d3aa2198242950eeec446fd}{data\+Type\+\_\+}
\begin{DoxyCompactList}\small\item\em returned data types of the iterator \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06928_ac9865213be6b7fa872c4a5d118e19286}\label{a06928_ac9865213be6b7fa872c4a5d118e19286}} 
\hyperlink{a06173_a9eae8faadd978364c97a06f639ec0ccc}{Iterator\+Restriction} \hyperlink{a06928_ac9865213be6b7fa872c4a5d118e19286}{restriction\+\_\+}
\begin{DoxyCompactList}\small\item\em Restriction of the iterator. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{a07112}{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{a06928}{Object\+Iterator} will only return real Objects. Groups are not considered to be objects 

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



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{a06928_a54d100ee050b2f18d53a64bcbdcd8a41}\label{a06928_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{\texorpdfstring{Object\+Iterator()}{ObjectIterator()}}
{\footnotesize\ttfamily Plugin\+Functions\+::\+Object\+Iterator\+::\+Object\+Iterator (\begin{DoxyParamCaption}\item[{\hyperlink{a06173_a9eae8faadd978364c97a06f639ec0ccc}{Iterator\+Restriction}}]{\+\_\+restriction = {\ttfamily \hyperlink{a06173_aff89407cfc7a2f18a059f6cff7d4edbb}{A\+L\+L\+\_\+\+O\+B\+J\+E\+C\+TS}},  }\item[{\hyperlink{a07048}{Data\+Type}}]{\+\_\+data\+Type = {\ttfamily \hyperlink{a00188_a87446416192751e622bd4693a4339419}{D\+A\+T\+A\+\_\+\+A\+LL}} }\end{DoxyParamCaption})}



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\+TS , T\+A\+R\+G\+E\+T\+\_\+\+O\+B\+J\+E\+C\+TS , S\+O\+U\+R\+C\+E\+\_\+\+O\+B\+J\+E\+C\+TS. \\
\hline
{\em \+\_\+data\+Type} & Use this parameter to select the returned object types. You can use D\+A\+T\+A\+\_\+\+A\+LL D\+A\+T\+A\+\_\+\+P\+O\+L\+Y\+\_\+\+M\+E\+SH D\+A\+T\+A\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+\_\+\+M\+E\+SH D\+A\+T\+A\+\_\+\+V\+O\+L\+U\+ME \\
\hline
\end{DoxyParams}


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



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a06928_acc46efe403f3746b09058510aebefdd8}\label{a06928_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{\texorpdfstring{operator$\ast$()}{operator*()}}
{\footnotesize\ttfamily \hyperlink{a07044}{Base\+Object\+Data} $\ast$ Plugin\+Functions\+::\+Object\+Iterator\+::operator$\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



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 172 of file Plugin\+Functions\+Iterator.\+cc.

\mbox{\Hypertarget{a06928_a007e520bda6bacfd4adeec1eb53ba261}\label{a06928_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{\texorpdfstring{proceed\+To\+Next\+Base\+Object\+Data()}{proceedToNextBaseObjectData()}}
{\footnotesize\ttfamily void Plugin\+Functions\+::\+Object\+Iterator\+::proceed\+To\+Next\+Base\+Object\+Data (\begin{DoxyParamCaption}\item[{\hyperlink{a07036}{Base\+Object} $\ast$\&}]{\+\_\+object }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}

Takes an object and goes through the object tree to the next \hyperlink{a07044}{Base\+Object\+Data} It stops at the root node. 

Definition at line 181 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{a00062}{Plugin\+Functions.\+hh}\item 
Open\+Flipper/\+Base\+Plugin/Plugin\+Functions\+Iterator.\+cc\end{DoxyCompactItemize}
