\chapter{eina\+\_\+inlist\+\_\+03.\+c Eina\+\_\+\+Inlist advanced usage -\/ multi-\/inlists source}
\hypertarget{eina_inlist_03_c}{}\label{eina_inlist_03_c}\index{eina\_inlist\_03.c Eina\_Inlist advanced usage -\/ multi-\/inlists source@{eina\_inlist\_03.c Eina\_Inlist advanced usage -\/ multi-\/inlists source}}

\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{\textcolor{comment}{//\ Compile\ with:}}
\DoxyCodeLine{\textcolor{comment}{//\ gcc\ -\/g\ eina\_inlist\_03.c\ -\/o\ eina\_inlist\_03\ \`{}pkg-\/config\ -\/-\/cflags\ -\/-\/libs\ eina`}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <\mbox{\hyperlink{Eina_8h}{Eina.h}}>}}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <stdio.h>}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{struct\ }my\_struct\ \{}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Eina__Inline__List__Group_gab30a76fcfa50307c797491705d60136a}{EINA\_INLIST}};}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{struct__Eina__Inlist}{Eina\_Inlist}}\ even;}
\DoxyCodeLine{\ \ \ \ \ \textcolor{keywordtype}{int}\ a,\ b;}
\DoxyCodeLine{\};}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EVEN\_INLIST\_GET(Inlist)\ (\&\ ((Inlist)-\/>even))}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EVEN\_INLIST\_CONTAINER\_GET(ptr,\ type)\ \(\backslash\)}}
\DoxyCodeLine{\textcolor{preprocessor}{\ \ \ ((type\ *)((char\ *)ptr\ -\/\ offsetof(type,\ even)))}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordtype}{int}}
\DoxyCodeLine{main(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }my\_struct\ *d,\ *cur;}
\DoxyCodeLine{\ \ \ \textcolor{keywordtype}{int}\ i;}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{struct__Eina__Inlist}{Eina\_Inlist}}\ *list\ =\ NULL,\ *list\_even\ =\ NULL,\ *itr;}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eina__Main__Group_ga81b8137665b8a4d2cb38ca50017d4c74}{eina\_init}}();}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{for}\ (i\ =\ 0;\ i\ <\ 100;\ i++)}
\DoxyCodeLine{\ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ d\ =\ malloc(\textcolor{keyword}{sizeof}(*d));}
\DoxyCodeLine{\ \ \ \ \ \ \ \ d-\/>a\ =\ i;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ d-\/>b\ =\ i\ *\ 10;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ list\ =\ \mbox{\hyperlink{group__Eina__Inline__List__Group_gaef650e653f43178ecfee2c661bea7a85}{eina\_inlist\_append}}(list,\ \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\_INLIST\_GET}}(d));}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((i\ \%\ 2)\ ==\ 0)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ list\_even\ =\ \mbox{\hyperlink{group__Eina__Inline__List__Group_ga2cbaa546cd6224dde756d43a603ef463}{eina\_inlist\_prepend}}(list\_even,\ EVEN\_INLIST\_GET(d));}
\DoxyCodeLine{\ \ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}list=\%p\(\backslash\)n"{}},\ list);}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eina__Inline__List__Group_ga65e496b9b16d527d23c1d735652b4e62}{EINA\_INLIST\_FOREACH}}(list,\ cur)}
\DoxyCodeLine{\ \ \ \ \ printf(\textcolor{stringliteral}{"{}\(\backslash\)ta=\%d,\ b=\%d\(\backslash\)n"{}},\ cur-\/>a,\ cur-\/>b);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}list\_even=\%p\(\backslash\)n"{}},\ list\_even);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{for}\ (itr\ =\ list\_even;\ itr\ !=\ NULL;\ itr\ =\ itr-\/>next)}
\DoxyCodeLine{\ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ cur\ =\ EVEN\_INLIST\_CONTAINER\_GET(itr,\ \textcolor{keyword}{struct}\ my\_struct);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ printf(\textcolor{stringliteral}{"{}\(\backslash\)ta=\%d,\ b=\%d\(\backslash\)n"{}},\ cur-\/>a,\ cur-\/>b);}
\DoxyCodeLine{\ \ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}list\ count=\%d\(\backslash\)n"{}},\ \mbox{\hyperlink{group__Eina__Inline__List__Group_ga3039bdea008dcb10d52f648d154690f8}{eina\_inlist\_count}}(list));}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}list\_even\ count=\%d\(\backslash\)n\(\backslash\)n"{}},\ \mbox{\hyperlink{group__Eina__Inline__List__Group_ga3039bdea008dcb10d52f648d154690f8}{eina\_inlist\_count}}(list\_even));}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ itr\ =\ list\_even;}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{while}\ (itr)}
\DoxyCodeLine{\ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{struct__Eina__Inlist}{Eina\_Inlist}}\ *next\ =\ itr-\/>\mbox{\hyperlink{struct__Eina__Inlist_ae95deba8e271f94f8ad8aecf7fdb5dde}{next}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ cur\ =\ EVEN\_INLIST\_CONTAINER\_GET(itr,\ \textcolor{keyword}{struct}\ my\_struct);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((cur-\/>a\ \%\ 3)\ ==\ 0)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ list\_even\ =\ \mbox{\hyperlink{group__Eina__Inline__List__Group_gaf885b08d5b5a750a901f3780d3c65338}{eina\_inlist\_remove}}(list\_even,\ itr);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ itr\ =\ next;}
\DoxyCodeLine{\ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}list\ count=\%d\(\backslash\)n"{}},\ \mbox{\hyperlink{group__Eina__Inline__List__Group_ga3039bdea008dcb10d52f648d154690f8}{eina\_inlist\_count}}(list));}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}list\_even\ count=\%d\(\backslash\)n\(\backslash\)n"{}},\ \mbox{\hyperlink{group__Eina__Inline__List__Group_ga3039bdea008dcb10d52f648d154690f8}{eina\_inlist\_count}}(list\_even));}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{while}\ (list)}
\DoxyCodeLine{\ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }my\_struct\ *aux\ =\ \mbox{\hyperlink{group__Eina__Inline__List__Group_ga8c4e6011e7caa9ec5c22b003c4950338}{EINA\_INLIST\_CONTAINER\_GET}}(list,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct}\ my\_struct);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ list\ =\ \mbox{\hyperlink{group__Eina__Inline__List__Group_gaf885b08d5b5a750a901f3780d3c65338}{eina\_inlist\_remove}}(list,\ list);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ free(aux);}
\DoxyCodeLine{\ \ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eina__Main__Group_ga5bf35513199d5220341437c05696285d}{eina\_shutdown}}();}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\}}

\end{DoxyCodeInclude}
 