\hypertarget{struct__Eet__Data__Descriptor__Class}{}\doxysection{\+\_\+\+Eet\+\_\+\+Data\+\_\+\+Descriptor\+\_\+\+Class Struct Reference}
\label{struct__Eet__Data__Descriptor__Class}\index{\_Eet\_Data\_Descriptor\_Class@{\_Eet\_Data\_Descriptor\_Class}}
\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a4e3696014d6907dadd55840bf6008317}{version}}
\begin{DoxyCompactList}\small\item\em A\+BI version. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Eet__Data__Descriptor__Class_a4cfe16ee62c58ab68bb6feb47829749f}\label{struct__Eet__Data__Descriptor__Class_a4cfe16ee62c58ab68bb6feb47829749f}} 
const char $\ast$ \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a4cfe16ee62c58ab68bb6feb47829749f}{name}}
\begin{DoxyCompactList}\small\item\em Name of the user data type to be serialized. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Eet__Data__Descriptor__Class_a5e55b214032157b06162b57eaac9fe66}\label{struct__Eet__Data__Descriptor__Class_a5e55b214032157b06162b57eaac9fe66}} 
int \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a5e55b214032157b06162b57eaac9fe66}{size}}
\begin{DoxyCompactList}\small\item\em Size in bytes of the user data type to be serialized. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Eet__Data__Descriptor__Class_a86b33671ba58fd7ba39ca8863907723f}\label{struct__Eet__Data__Descriptor__Class_a86b33671ba58fd7ba39ca8863907723f}} 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
struct \{\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga894af1ef8c006fc48235d8b48755e3d8}{Eet\_Descriptor\_Mem\_Alloc\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a847242dfd9340fe19216c24a4e5ba36e}{mem\_alloc}}\\
\>\>{\em how to allocate memory (usually malloc()) }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_gadc11123034dfc44c5bc31c6f5bdb55fb}{Eet\_Descriptor\_Mem\_Free\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a3e2d04921950cc8bdd5c44517b4a9b96}{mem\_free}}\\
\>\>{\em how to free memory (usually free()) }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga014b92bba17d33ea41e31ebfd9a23a8b}{Eet\_Descriptor\_Str\_Alloc\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a5642e3cffba4782bba5f381e18a53356}{str\_alloc}}\\
\>\>{\em how to allocate a string }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga6e1c79f2b15a0315dd33c05d99cb065a}{Eet\_Descriptor\_Str\_Free\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a988fde5bbb9dc98a748538931b22a566}{str\_free}}\\
\>\>{\em how to free a string }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga4aef6ac18690983e6d608d0844b43e5d}{Eet\_Descriptor\_List\_Next\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a4be84e8957fc140f2a8597a34660b6c8}{list\_next}}\\
\>\>{\em how to iterate to the next element of a list. }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga7e6b656ac984d44d0e736655c45982de}{Eet\_Descriptor\_List\_Append\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a8045ac68cd6007be0cfc7ad698aa5723}{list\_append}}\\
\>\>{\em how to append data {\ttfamily d} to list which head node is {\ttfamily l} }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga1a75ebbc7a4d8bab9971974335599b04}{Eet\_Descriptor\_List\_Data\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_ab7019a85d63f3edfa40ae94a549150e2}{list\_data}}\\
\>\>{\em retrieves the data from node {\ttfamily l} }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga97f9bf8be3bcd13699c4890487bba66c}{Eet\_Descriptor\_List\_Free\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a55fd4e50a2897767ab3228f9736820df}{list\_free}}\\
\>\>{\em free all the nodes from the list which head node is {\ttfamily l} }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga530125fcbeb48fb675d020f51b839151}{Eet\_Descriptor\_Hash\_Foreach\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_abf243b76b96a607d529a8859801f8381}{hash\_foreach}}\\
\>\>{\em iterates over all elements in the hash {\ttfamily h} in no specific order }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga94d8c39d01f0c9064713eeb0a18dc6d2}{Eet\_Descriptor\_Hash\_Add\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a4aa53189a11403c6960be06c64db38cd}{hash\_add}}\\
\>\>{\em add a new data {\ttfamily d} with key {\ttfamily k} in hash {\ttfamily h} }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga09d99991df39953b4b28de202f3109ab}{Eet\_Descriptor\_Hash\_Free\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a03fb64410b495a523cf65f3f08f76444}{hash\_free}}\\
\>\>{\em free all entries from the hash {\ttfamily h} }\\
\>Eet\_Descriptor\_Str\_Direct\_Alloc\_Callback \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_acb219dc91711c063f511f65de5a07d96}{str\_direct\_alloc}}\\
\>\>{\em how to allocate a string directly from file backed/mmaped region pointed by {\ttfamily str} }\\
\>Eet\_Descriptor\_Str\_Direct\_Free\_Callback \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_ac011ee536fc332da54a5ba243b9af692}{str\_direct\_free}}\\
\>\>{\em how to free a string returned by str\_direct\_alloc }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_gafd67014abf81fb9ff949f32db811253b}{Eet\_Descriptor\_Type\_Get\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_af71fcc4124973c0da6aa0e84dce426cb}{type\_get}}\\
\>\>{\em get the type, as used in the union or variant mapping, that should be used to store the given data into the eet file. }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_gad98f354bc1af39c65c306a2d6905879c}{Eet\_Descriptor\_Type\_Set\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a1b6477a2a52b797a662c3fff9793f97e}{type\_set}}\\
\>\>{\em called when loading a mapped type with the given {\ttfamily type} used to describe the type in the descriptor }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga1782d84edeff89252c1fbaece4244c26}{Eet\_Descriptor\_Array\_Alloc\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a4e2b47d408bc6adb6ec071c477b577a1}{array\_alloc}}\\
\>\>{\em how to allocate memory for array (usually malloc()) }\\
\>\mbox{\hyperlink{group__Eet__Data__Group_ga466313985fc95944629db2a1d2edf08b}{Eet\_Descriptor\_Array\_Free\_Callback}} \mbox{\hyperlink{struct__Eet__Data__Descriptor__Class_a85f61e0051e53158e9fb0f7646a91c3b}{array\_free}}\\
\>\>{\em how to free memory for array (usually free()) }\\
\} {\bfseries func}\\

\end{tabbing}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Instructs Eet about memory management for different needs under serialization and parse process.

The list and hash methods match the Eina A\+PI, so for a more detailed reference on them, look at the Eina\+\_\+\+List and Eina\+\_\+\+Hash documentation, respectively. For the most part these will be used with the standard Eina functions, so using \mbox{\hyperlink{group__Eet__Data__Group_ga941b1fcd6c6c72221d9390f9a0ed751c}{E\+E\+T\+\_\+\+E\+I\+N\+A\+\_\+\+S\+T\+R\+E\+A\+M\+\_\+\+D\+A\+T\+A\+\_\+\+D\+E\+S\+C\+R\+I\+P\+T\+O\+R\+\_\+\+C\+L\+A\+S\+S\+\_\+\+S\+E\+T()}} and \mbox{\hyperlink{group__Eet__Data__Group_ga0bf94c07d8e69cfaac8dd2d615d7542c}{E\+E\+T\+\_\+\+E\+I\+N\+A\+\_\+\+F\+I\+L\+E\+\_\+\+D\+A\+T\+A\+\_\+\+D\+E\+S\+C\+R\+I\+P\+T\+O\+R\+\_\+\+C\+L\+A\+S\+S\+\_\+\+S\+E\+T()}} will set up everything accordingly. \begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{eet-data-file_descriptor_01_8c-example}{eet-\/data-\/file\+\_\+descriptor\+\_\+01.\+c}}, \mbox{\hyperlink{eet-data-file_descriptor_02_8c-example}{eet-\/data-\/file\+\_\+descriptor\+\_\+02.\+c}}, \mbox{\hyperlink{eet-data-nested_8c-example}{eet-\/data-\/nested.\+c}}, and \mbox{\hyperlink{eet-data-simple_8c-example}{eet-\/data-\/simple.\+c}}.\end{Desc}


\doxysubsection{Field Documentation}
\mbox{\Hypertarget{struct__Eet__Data__Descriptor__Class_a4e3696014d6907dadd55840bf6008317}\label{struct__Eet__Data__Descriptor__Class_a4e3696014d6907dadd55840bf6008317}} 
\index{\_Eet\_Data\_Descriptor\_Class@{\_Eet\_Data\_Descriptor\_Class}!version@{version}}
\index{version@{version}!\_Eet\_Data\_Descriptor\_Class@{\_Eet\_Data\_Descriptor\_Class}}
\doxysubsubsection{\texorpdfstring{version}{version}}
{\footnotesize\ttfamily int \+\_\+\+Eet\+\_\+\+Data\+\_\+\+Descriptor\+\_\+\+Class\+::version}



A\+BI version. 

Should always be set to \mbox{\hyperlink{group__Eet__Data__Group_ga61a090586eff90415b429f1017acf8a7}{E\+E\+T\+\_\+\+D\+A\+T\+A\+\_\+\+D\+E\+S\+C\+R\+I\+P\+T\+O\+R\+\_\+\+C\+L\+A\+S\+S\+\_\+\+V\+E\+R\+S\+I\+ON}} \begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{eet-data-file_descriptor_02_8c-example}{eet-\/data-\/file\+\_\+descriptor\+\_\+02.\+c}}.\end{Desc}


Referenced by eet\+\_\+data\+\_\+descriptor\+\_\+new(), eet\+\_\+eina\+\_\+file\+\_\+data\+\_\+descriptor\+\_\+class\+\_\+set(), and eet\+\_\+eina\+\_\+stream\+\_\+data\+\_\+descriptor\+\_\+class\+\_\+set().

\mbox{\Hypertarget{struct__Eet__Data__Descriptor__Class_a4be84e8957fc140f2a8597a34660b6c8}\label{struct__Eet__Data__Descriptor__Class_a4be84e8957fc140f2a8597a34660b6c8}} 
\index{\_Eet\_Data\_Descriptor\_Class@{\_Eet\_Data\_Descriptor\_Class}!list\_next@{list\_next}}
\index{list\_next@{list\_next}!\_Eet\_Data\_Descriptor\_Class@{\_Eet\_Data\_Descriptor\_Class}}
\doxysubsubsection{\texorpdfstring{list\_next}{list\_next}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eet__Data__Group_ga4aef6ac18690983e6d608d0844b43e5d}{Eet\+\_\+\+Descriptor\+\_\+\+List\+\_\+\+Next\+\_\+\+Callback}} \+\_\+\+Eet\+\_\+\+Data\+\_\+\+Descriptor\+\_\+\+Class\+::list\+\_\+next}



how to iterate to the next element of a list. 

Receives and should return the list node. 

Referenced by eet\+\_\+data\+\_\+descriptor\+\_\+new(), and eet\+\_\+eina\+\_\+stream\+\_\+data\+\_\+descriptor\+\_\+class\+\_\+set().

