\hypertarget{group__Eldbus__Message__Iter}{}\section{Iterator}
\label{group__Eldbus__Message__Iter}\index{Iterator@{Iterator}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$ \hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, int type, const char $\ast$contained\+\_\+signature)
\begin{DoxyCompactList}\small\item\em Create and append a typed iterator to another iterator. \end{DoxyCompactList}\item 
\hypertarget{group__Eldbus__Message__Iter_gaf3be6a0eb61416b21f21b65c57109b97}{}\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Message__Iter_gaf3be6a0eb61416b21f21b65c57109b97}{eldbus\+\_\+message\+\_\+iter\+\_\+basic\+\_\+append} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, int type,...)\label{group__Eldbus__Message__Iter_gaf3be6a0eb61416b21f21b65c57109b97}

\begin{DoxyCompactList}\small\item\em Append a basic type into an Eldbus\+\_\+\+Iterator. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Message__Iter_gae00cddea6435838b7189bcf5ca816332}{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, const char $\ast$signature,...)
\begin{DoxyCompactList}\small\item\em Append an argument into an Eldbus\+\_\+\+Message\+\_\+\+Iter. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Message__Iter_ga76daae758549ce10689d24acb9d851b7}{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, const char $\ast$signature, va\+\_\+list ap)
\begin{DoxyCompactList}\small\item\em Set data to Eldbus\+\_\+\+Message\+\_\+\+Iter. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Message__Iter_ga5482d43616555df5c91e0004085fb97a}{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+append} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, int type, const void $\ast$array, unsigned int size)
\begin{DoxyCompactList}\small\item\em Append a array of basic type with fixed size to Eldbus\+\_\+\+Message\+\_\+\+Iter. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, \hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$sub)
\begin{DoxyCompactList}\small\item\em Closes a container-\/typed value appended to the message. \end{DoxyCompactList}\item 
\hypertarget{group__Eldbus__Message__Iter_ga7ca2412ef3cf3c8f77e3782413820814}{}\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$ \hyperlink{group__Eldbus__Message__Iter_ga7ca2412ef3cf3c8f77e3782413820814}{eldbus\+\_\+message\+\_\+iter\+\_\+get} (const \hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\+\_\+\+Message} $\ast$msg)\label{group__Eldbus__Message__Iter_ga7ca2412ef3cf3c8f77e3782413820814}

\begin{DoxyCompactList}\small\item\em Get the main Eldbus\+\_\+\+Message\+\_\+\+Iter from the Eldbus\+\_\+\+Message. \end{DoxyCompactList}\item 
\hypertarget{group__Eldbus__Message__Iter_gad4549921e09633aa56599204278ffade}{}void \hyperlink{group__Eldbus__Message__Iter_gad4549921e09633aa56599204278ffade}{eldbus\+\_\+message\+\_\+iter\+\_\+basic\+\_\+get} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, void $\ast$value)\label{group__Eldbus__Message__Iter_gad4549921e09633aa56599204278ffade}

\begin{DoxyCompactList}\small\item\em Get a basic type from Eldbus\+\_\+\+Iterator. \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{group__Eldbus__Message__Iter_gab0201e1d78d70477ba337d0aa2977802}{eldbus\+\_\+message\+\_\+iter\+\_\+signature\+\_\+get} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter)
\begin{DoxyCompactList}\small\item\em Returns the current signature of a message iterator. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Message__Iter_ga1c7d3e40bbb79e928881eca98c284162}{eldbus\+\_\+message\+\_\+iter\+\_\+next} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter)
\begin{DoxyCompactList}\small\item\em Moves the iterator to the next field, if any. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Message__Iter_ga45c7d707ee830ae5be39c17df05af615}{eldbus\+\_\+message\+\_\+iter\+\_\+get\+\_\+and\+\_\+next} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, char signature,...)
\begin{DoxyCompactList}\small\item\em Get a complete type from Eldbus\+\_\+\+Message\+\_\+\+Iter if is not at the end of iterator and move to next field. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Message__Iter_gaccd0410dc29928b34f90b3055600672a}{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+get} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, int signature, void $\ast$value, int $\ast$n\+\_\+elements)
\begin{DoxyCompactList}\small\item\em Reads a block of fixed-\/length values from the message iterator. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Message__Iter_gae44918ce0b571a30546219d1d5040da0}{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+get} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, const char $\ast$signature,...)
\begin{DoxyCompactList}\small\item\em Get data from Eldbus\+\_\+\+Message\+\_\+\+Iter, for each complete type must have a pointer to store his value, in case of complex type a Eldbus\+\_\+\+Message\+\_\+\+Iter will be need. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Message__Iter_ga717a7e00c9cb7f2a55241d866668b567}{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vget} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter, const char $\ast$signature, va\+\_\+list ap)
\begin{DoxyCompactList}\small\item\em Get data from Eldbus\+\_\+\+Message\+\_\+\+Iter, for each complete type must have a pointer to store his value, in case of complex type a Eldbus\+\_\+\+Message\+\_\+\+Iter will be need. \end{DoxyCompactList}\item 
void \hyperlink{group__Eldbus__Message__Iter_gaac4004e9189b7bb6baddf3e65c9ec830}{eldbus\+\_\+message\+\_\+iter\+\_\+del} (\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$iter)
\begin{DoxyCompactList}\small\item\em Manually delete the iterator. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}


\subsection{Function Documentation}
\hypertarget{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new@{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new@{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter, int type, const char $\ast$contained\+\_\+signature)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter}$\ast$ eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter, }
\item[{int}]{type, }
\item[{const char $\ast$}]{contained\+\_\+signature}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}


Create and append a typed iterator to another iterator. 

After append data to returned iterator it must be closed calling \hyperlink{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close()}.

Container types are for example struct, variant, and array. For variants, the contained\+\_\+signature should be the type of the single value inside the variant. For structs and dict entries, contained\+\_\+signature should be N\+U\+L\+L; it will be set to whatever types you write into the struct. For arrays, contained\+\_\+signature should be the type of the array elements.


\begin{DoxyParams}{Parameters}
{\em iter} & parent of the new iterator \\
\hline
{\em type} & of iterator (e.\+g struct, dict, variant or array) \\
\hline
{\em contained\+\_\+signature} & signature of what iterator will store\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the new iterator 
\end{DoxyReturn}


References eina\+\_\+inlist\+\_\+append(), E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+E\+T, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by eldbus\+\_\+proxy\+\_\+property\+\_\+set(), elocation\+\_\+address\+\_\+to\+\_\+position(), and elocation\+\_\+position\+\_\+to\+\_\+address().

\hypertarget{group__Eldbus__Message__Iter_gae00cddea6435838b7189bcf5ca816332}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append@{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append@{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter, const char $\ast$signature,...)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter, }
\item[{const char $\ast$}]{signature, }
\item[{}]{...}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_gae00cddea6435838b7189bcf5ca816332}


Append an argument into an Eldbus\+\_\+\+Message\+\_\+\+Iter. 

For each complete type you need to provide the correspondent value. In case of complex types you need to provide an Eldbus\+\_\+\+Message\+\_\+\+Iter$\ast$$\ast$ to be allocated and then filled in.

It\textquotesingle{}s not possible to open two iterators at same iterator with this function. For example, to create a message with signature=\char`\"{}aiai\char`\"{} you need to create the first container with \hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new()}, fill the array, close it with \hyperlink{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close()} and then do the same for the second array.


\begin{DoxyParams}{Parameters}
{\em iter} & iterator in which data will be appended \\
\hline
{\em signature} & signature of the contained data \\
\hline
{\em ...} & values for each complete type \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+U\+E on success, else E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new()} 

\hyperlink{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close()}
\end{DoxySeeAlso}
\begin{DoxyNote}{Note}
This function doesn\textquotesingle{}t support variant, use \hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new()} instead to create the variant, fill with data and close it. 
\end{DoxyNote}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend().



Referenced by elocation\+\_\+address\+\_\+to\+\_\+position(), and ethumb\+\_\+client\+\_\+ethumb\+\_\+setup().

\hypertarget{group__Eldbus__Message__Iter_ga76daae758549ce10689d24acb9d851b7}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend@{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend@{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter, const char $\ast$signature, va\+\_\+list ap)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter, }
\item[{const char $\ast$}]{signature, }
\item[{va\+\_\+list}]{ap}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_ga76daae758549ce10689d24acb9d851b7}


Set data to Eldbus\+\_\+\+Message\+\_\+\+Iter. 

For each complete in signature you need pass the value, in case of complex type a pointer to be allocated a Eldbus\+\_\+\+Message\+\_\+\+Iter that you need fill and close.

It\textquotesingle{}s not possible open two iterators at same Iterator. Example\+: \char`\"{}aiai\char`\"{}, to set this you need create and put the first array with \hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new()} fill array with data and close then you could open the second array with \hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new()}.


\begin{DoxyParams}{Parameters}
{\em iter} & iterator \\
\hline
{\em signature} & of data \\
\hline
{\em ap} & va\+\_\+list with the values \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+U\+E on success, else E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function don\textquotesingle{}t support variant, use instead \hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new()} to create the variant fill data and close it. 
\end{DoxyNote}


Referenced by eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append().

\hypertarget{group__Eldbus__Message__Iter_ga5482d43616555df5c91e0004085fb97a}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+append@{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+append}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+append@{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+append}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+append(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter, int type, const void $\ast$array, unsigned int size)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+append (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter, }
\item[{int}]{type, }
\item[{const void $\ast$}]{array, }
\item[{unsigned int}]{size}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_ga5482d43616555df5c91e0004085fb97a}


Append a array of basic type with fixed size to Eldbus\+\_\+\+Message\+\_\+\+Iter. 


\begin{DoxyParams}{Parameters}
{\em iter} & iterator \\
\hline
{\em type} & basic type that will be appended \\
\hline
{\em array} & data to append \\
\hline
{\em size} & of array \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+U\+E on success, else E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E.

\hypertarget{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close@{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close@{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter, Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$sub)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter, }
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{sub}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}


Closes a container-\/typed value appended to the message. 


\begin{DoxyParams}{Parameters}
{\em iter} & parent of the sub-\/iterator \\
\hline
{\em sub} & the iterator that will be closed\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E if iterator was already close or if not enough memory 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E.



Referenced by eldbus\+\_\+proxy\+\_\+property\+\_\+set(), elocation\+\_\+address\+\_\+to\+\_\+position(), elocation\+\_\+position\+\_\+to\+\_\+address(), and ethumb\+\_\+client\+\_\+ethumb\+\_\+setup().

\hypertarget{group__Eldbus__Message__Iter_gab0201e1d78d70477ba337d0aa2977802}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+signature\+\_\+get@{eldbus\+\_\+message\+\_\+iter\+\_\+signature\+\_\+get}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+signature\+\_\+get@{eldbus\+\_\+message\+\_\+iter\+\_\+signature\+\_\+get}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+signature\+\_\+get(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter)}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ eldbus\+\_\+message\+\_\+iter\+\_\+signature\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_gab0201e1d78d70477ba337d0aa2977802}


Returns the current signature of a message iterator. 


\begin{DoxyParams}{Parameters}
{\em iter} & The iterator on which to query the signature. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A string containing the message iterator signature.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
The returned string must be freed. 
\end{DoxyNote}


Referenced by eldbus\+\_\+message\+\_\+iter\+\_\+dict\+\_\+iterate().

\hypertarget{group__Eldbus__Message__Iter_ga1c7d3e40bbb79e928881eca98c284162}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+next@{eldbus\+\_\+message\+\_\+iter\+\_\+next}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+next@{eldbus\+\_\+message\+\_\+iter\+\_\+next}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+next(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+message\+\_\+iter\+\_\+next (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_ga1c7d3e40bbb79e928881eca98c284162}


Moves the iterator to the next field, if any. 


\begin{DoxyParams}{Parameters}
{\em iter} & iterator\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
if iterator was reach to end return E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E.

\hypertarget{group__Eldbus__Message__Iter_ga45c7d707ee830ae5be39c17df05af615}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+get\+\_\+and\+\_\+next@{eldbus\+\_\+message\+\_\+iter\+\_\+get\+\_\+and\+\_\+next}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+get\+\_\+and\+\_\+next@{eldbus\+\_\+message\+\_\+iter\+\_\+get\+\_\+and\+\_\+next}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+get\+\_\+and\+\_\+next(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter, char signature,...)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+message\+\_\+iter\+\_\+get\+\_\+and\+\_\+next (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter, }
\item[{char}]{signature, }
\item[{}]{...}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_ga45c7d707ee830ae5be39c17df05af615}


Get a complete type from Eldbus\+\_\+\+Message\+\_\+\+Iter if is not at the end of iterator and move to next field. 

Useful to iterate over arrays.


\begin{DoxyParams}{Parameters}
{\em iter} & iterator \\
\hline
{\em signature} & of the next completed type in Iterator \\
\hline
{\em ...} & pointer of where data will be stored\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
if iterator was reach to end or if type different of the type that iterator points return E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E
\end{DoxyReturn}
Get a complete type from Eldbus\+\_\+\+Message\+\_\+\+Iter if is not at the end of iterator and move to next field. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, eina\+\_\+inlist\+\_\+append(), E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+E\+T, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by eldbus\+\_\+message\+\_\+iter\+\_\+dict\+\_\+iterate().

\hypertarget{group__Eldbus__Message__Iter_gaccd0410dc29928b34f90b3055600672a}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+get@{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+get}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+get@{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+get}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+get(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter, int signature, void $\ast$value, int $\ast$n\+\_\+elements)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter, }
\item[{int}]{signature, }
\item[{void $\ast$}]{value, }
\item[{int $\ast$}]{n\+\_\+elements}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_gaccd0410dc29928b34f90b3055600672a}


Reads a block of fixed-\/length values from the message iterator. 

Fixed-\/length values are those basic types that are not string-\/like, such as integers, bool, double. The returned block will be from the current position in the array until the end of the array.

There is one exception here\+: although E\+L\+D\+B\+U\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+N\+I\+X\+\_\+\+F\+D is considered a \textquotesingle{}fixed\textquotesingle{} type arrays of this type may not be read with this function.

The value argument should be the address of a location to store the returned array. So for int32 it should be a \char`\"{}const dbus\+\_\+int32\+\_\+t$\ast$$\ast$\char`\"{} The returned value is by reference and should not be freed.

Because the array is not copied, this function runs in constant time and is fast; it\textquotesingle{}s much preferred over walking the entire array with an iterator.


\begin{DoxyParams}{Parameters}
{\em iter} & The message iterator \\
\hline
{\em signature} & \\
\hline
{\em value} & \\
\hline
{\em n\+\_\+elements} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+U\+E on success, else E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E. 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Eldbus__Message__Iter_gae44918ce0b571a30546219d1d5040da0}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+get@{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+get}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+get@{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+get}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+get(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter, const char $\ast$signature,...)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter, }
\item[{const char $\ast$}]{signature, }
\item[{}]{...}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_gae44918ce0b571a30546219d1d5040da0}


Get data from Eldbus\+\_\+\+Message\+\_\+\+Iter, for each complete type must have a pointer to store his value, in case of complex type a Eldbus\+\_\+\+Message\+\_\+\+Iter will be need. 


\begin{DoxyParams}{Parameters}
{\em iter} & iterator \\
\hline
{\em signature} & of the complete data types on interator \\
\hline
{\em ...} & pointers of where data will be stored\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E if signature different from signature in iterator 
\end{DoxyReturn}


Referenced by eldbus\+\_\+message\+\_\+iter\+\_\+dict\+\_\+iterate().

\hypertarget{group__Eldbus__Message__Iter_ga717a7e00c9cb7f2a55241d866668b567}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vget@{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vget}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vget@{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vget}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vget(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter, const char $\ast$signature, va\+\_\+list ap)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vget (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter, }
\item[{const char $\ast$}]{signature, }
\item[{va\+\_\+list}]{ap}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_ga717a7e00c9cb7f2a55241d866668b567}


Get data from Eldbus\+\_\+\+Message\+\_\+\+Iter, for each complete type must have a pointer to store his value, in case of complex type a Eldbus\+\_\+\+Message\+\_\+\+Iter will be need. 


\begin{DoxyParams}{Parameters}
{\em iter} & iterator \\
\hline
{\em signature} & of the complete data types on interator \\
\hline
{\em ap} & va\+\_\+list of the pointers of where data will be stored\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E if signature different from signature in iterator 
\end{DoxyReturn}
\hypertarget{group__Eldbus__Message__Iter_gaac4004e9189b7bb6baddf3e65c9ec830}{}\index{Iterator@{Iterator}!eldbus\+\_\+message\+\_\+iter\+\_\+del@{eldbus\+\_\+message\+\_\+iter\+\_\+del}}
\index{eldbus\+\_\+message\+\_\+iter\+\_\+del@{eldbus\+\_\+message\+\_\+iter\+\_\+del}!Iterator@{Iterator}}
\subsubsection[{eldbus\+\_\+message\+\_\+iter\+\_\+del(\+Eldbus\+\_\+\+Message\+\_\+\+Iter $\ast$iter)}]{\setlength{\rightskip}{0pt plus 5cm}void eldbus\+\_\+message\+\_\+iter\+\_\+del (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Message\+\_\+\+Iter} $\ast$}]{iter}
\end{DoxyParamCaption}
)}\label{group__Eldbus__Message__Iter_gaac4004e9189b7bb6baddf3e65c9ec830}


Manually delete the iterator. 

Iterators are usually bound to the life of \hyperlink{group__Eldbus__Message}{Message} they were created from, being deleted automatically once the message is deleted.

However when dealing with huge arrays or dicts it may become a major memory impact to leave the unused iterators alive. By calling this function one states the iterator is not used anymore and can be deleted.


\begin{DoxyParams}{Parameters}
{\em iter} & the iterator to be deleted. \\
\hline
\end{DoxyParams}
