\hypertarget{group__Eldbus__Message__Iter}{}\section{Iterator}
\label{group__Eldbus__Message__Iter}\index{Iterator@{Iterator}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$ \mbox{\hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new}} (\mbox{\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 
\mbox{\Hypertarget{group__Eldbus__Message__Iter_gaf3be6a0eb61416b21f21b65c57109b97}\label{group__Eldbus__Message__Iter_gaf3be6a0eb61416b21f21b65c57109b97}} 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eldbus__Message__Iter_gaf3be6a0eb61416b21f21b65c57109b97}{eldbus\+\_\+message\+\_\+iter\+\_\+basic\+\_\+append}} (\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$iter, int type,...)
\begin{DoxyCompactList}\small\item\em Append a basic type into an Eldbus\+\_\+\+Iterator. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eldbus__Message__Iter_gae00cddea6435838b7189bcf5ca816332}{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append}} (\mbox{\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 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eldbus__Message__Iter_ga76daae758549ce10689d24acb9d851b7}{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend}} (\mbox{\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 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eldbus__Message__Iter_ga5482d43616555df5c91e0004085fb97a}{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+append}} (\mbox{\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 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close}} (\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$iter, \mbox{\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 
\mbox{\Hypertarget{group__Eldbus__Message__Iter_ga7ca2412ef3cf3c8f77e3782413820814}\label{group__Eldbus__Message__Iter_ga7ca2412ef3cf3c8f77e3782413820814}} 
\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$ \mbox{\hyperlink{group__Eldbus__Message__Iter_ga7ca2412ef3cf3c8f77e3782413820814}{eldbus\+\_\+message\+\_\+iter\+\_\+get}} (const \mbox{\hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\+\_\+\+Message}} $\ast$msg)
\begin{DoxyCompactList}\small\item\em Get the main Eldbus\+\_\+\+Message\+\_\+\+Iter from the Eldbus\+\_\+\+Message. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eldbus__Message__Iter_gad4549921e09633aa56599204278ffade}\label{group__Eldbus__Message__Iter_gad4549921e09633aa56599204278ffade}} 
void \mbox{\hyperlink{group__Eldbus__Message__Iter_gad4549921e09633aa56599204278ffade}{eldbus\+\_\+message\+\_\+iter\+\_\+basic\+\_\+get}} (\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$iter, void $\ast$value)
\begin{DoxyCompactList}\small\item\em Get a basic type from Eldbus\+\_\+\+Iterator. \end{DoxyCompactList}\item 
char $\ast$ \mbox{\hyperlink{group__Eldbus__Message__Iter_gab0201e1d78d70477ba337d0aa2977802}{eldbus\+\_\+message\+\_\+iter\+\_\+signature\+\_\+get}} (\mbox{\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 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eldbus__Message__Iter_ga1c7d3e40bbb79e928881eca98c284162}{eldbus\+\_\+message\+\_\+iter\+\_\+next}} (\mbox{\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 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eldbus__Message__Iter_ga45c7d707ee830ae5be39c17df05af615}{eldbus\+\_\+message\+\_\+iter\+\_\+get\+\_\+and\+\_\+next}} (\mbox{\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 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eldbus__Message__Iter_gaccd0410dc29928b34f90b3055600672a}{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+get}} (\mbox{\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 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eldbus__Message__Iter_gae44918ce0b571a30546219d1d5040da0}{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+get}} (\mbox{\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 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eldbus__Message__Iter_ga717a7e00c9cb7f2a55241d866668b567}{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vget}} (\mbox{\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 \mbox{\hyperlink{group__Eldbus__Message__Iter_gaac4004e9189b7bb6baddf3e65c9ec830}{eldbus\+\_\+message\+\_\+iter\+\_\+del}} (\mbox{\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}
\mbox{\Hypertarget{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new()}{eldbus\_message\_iter\_container\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}}$\ast$ eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter,  }\item[{int}]{type,  }\item[{const char $\ast$}]{contained\+\_\+signature }\end{DoxyParamCaption})}



Create and append a typed iterator to another iterator. 

After append data to returned iterator it must be closed calling \mbox{\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\+LL; 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 E\+I\+N\+A\+\_\+\+T\+R\+UE.



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

\mbox{\Hypertarget{group__Eldbus__Message__Iter_gae00cddea6435838b7189bcf5ca816332}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append()}{eldbus\_message\_iter\_arguments\_append()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+append (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter,  }\item[{const char $\ast$}]{signature,  }\item[{}]{... }\end{DoxyParamCaption})}



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 \mbox{\hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new()}}, fill the array, close it with \mbox{\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\+UE on success, else E\+I\+N\+A\+\_\+\+F\+A\+L\+SE
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new()}} 

\mbox{\hyperlink{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close()}}
\end{DoxySeeAlso}
\begin{DoxyNote}{Note}
This function doesn\textquotesingle{}t support variant, use \mbox{\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\+SE.



Referenced by elocation\+\_\+address\+\_\+to\+\_\+position().

\mbox{\Hypertarget{group__Eldbus__Message__Iter_ga76daae758549ce10689d24acb9d851b7}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend()}{eldbus\_message\_iter\_arguments\_vappend()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vappend (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter,  }\item[{const char $\ast$}]{signature,  }\item[{va\+\_\+list}]{ap }\end{DoxyParamCaption})}



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 \mbox{\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 \mbox{\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\+UE on success, else E\+I\+N\+A\+\_\+\+F\+A\+L\+SE
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function don\textquotesingle{}t support variant, use instead \mbox{\hyperlink{group__Eldbus__Message__Iter_gac053452551e924020d2105d87e73521e}{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+new()}} to create the variant fill data and close it. 
\end{DoxyNote}
\mbox{\Hypertarget{group__Eldbus__Message__Iter_ga5482d43616555df5c91e0004085fb97a}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+append()}{eldbus\_message\_iter\_fixed\_array\_append()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+append (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter,  }\item[{int}]{type,  }\item[{const void $\ast$}]{array,  }\item[{unsigned int}]{size }\end{DoxyParamCaption})}



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\+UE on success, else E\+I\+N\+A\+\_\+\+F\+A\+L\+SE 
\end{DoxyReturn}


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

\mbox{\Hypertarget{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close()}{eldbus\_message\_iter\_container\_close()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eldbus\+\_\+message\+\_\+iter\+\_\+container\+\_\+close (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter,  }\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{sub }\end{DoxyParamCaption})}



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\+SE if iterator was already close or if not enough memory 
\end{DoxyReturn}


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



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

\mbox{\Hypertarget{group__Eldbus__Message__Iter_gab0201e1d78d70477ba337d0aa2977802}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+signature\+\_\+get()}{eldbus\_message\_iter\_signature\_get()}}
{\footnotesize\ttfamily char$\ast$ eldbus\+\_\+message\+\_\+iter\+\_\+signature\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter }\end{DoxyParamCaption})}



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}
\mbox{\Hypertarget{group__Eldbus__Message__Iter_ga1c7d3e40bbb79e928881eca98c284162}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+next()}{eldbus\_message\_iter\_next()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eldbus\+\_\+message\+\_\+iter\+\_\+next (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter }\end{DoxyParamCaption})}



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\+SE 
\end{DoxyReturn}


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

\mbox{\Hypertarget{group__Eldbus__Message__Iter_ga45c7d707ee830ae5be39c17df05af615}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+get\+\_\+and\+\_\+next()}{eldbus\_message\_iter\_get\_and\_next()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eldbus\+\_\+message\+\_\+iter\+\_\+get\+\_\+and\+\_\+next (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter,  }\item[{char}]{signature,  }\item[{}]{... }\end{DoxyParamCaption})}



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\+SE
\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\+SE.

\mbox{\Hypertarget{group__Eldbus__Message__Iter_gaccd0410dc29928b34f90b3055600672a}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+get()}{eldbus\_message\_iter\_fixed\_array\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eldbus\+\_\+message\+\_\+iter\+\_\+fixed\+\_\+array\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter,  }\item[{int}]{signature,  }\item[{void $\ast$}]{value,  }\item[{int $\ast$}]{n\+\_\+elements }\end{DoxyParamCaption})}



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\+\_\+\+FD 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\+UE on success, else E\+I\+N\+A\+\_\+\+F\+A\+L\+SE. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{group__Eldbus__Message__Iter_gae44918ce0b571a30546219d1d5040da0}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+get()}{eldbus\_message\_iter\_arguments\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter,  }\item[{const char $\ast$}]{signature,  }\item[{}]{... }\end{DoxyParamCaption})}



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\+SE if signature different from signature in iterator 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eldbus__Message__Iter_ga717a7e00c9cb7f2a55241d866668b567}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vget()}{eldbus\_message\_iter\_arguments\_vget()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eldbus\+\_\+message\+\_\+iter\+\_\+arguments\+\_\+vget (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter,  }\item[{const char $\ast$}]{signature,  }\item[{va\+\_\+list}]{ap }\end{DoxyParamCaption})}



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\+SE if signature different from signature in iterator 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eldbus__Message__Iter_gaac4004e9189b7bb6baddf3e65c9ec830}\label{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{\texorpdfstring{eldbus\+\_\+message\+\_\+iter\+\_\+del()}{eldbus\_message\_iter\_del()}}
{\footnotesize\ttfamily void eldbus\+\_\+message\+\_\+iter\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\+\_\+\+Message\+\_\+\+Iter}} $\ast$}]{iter }\end{DoxyParamCaption})}



Manually delete the iterator. 

Iterators are usually bound to the life of \mbox{\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}
