\hypertarget{complex-types-client-eina-value_8c-example}{}\section{complex-\/types-\/client-\/eina-\/value.\+c}
Client to test complex types (arrays, structs, dicts) against a provided server (\mbox{\hyperlink{complex-types-server_8c-example}{complex-\/types-\/server.\+c}}) returning them as \mbox{\hyperlink{group__Eina__Value}{Eina\+\_\+\+Value to/from Message}}.


\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{\textcolor{comment}{//Compile with:}}
\DoxyCodeLine{\textcolor{comment}{// gcc -o complex-types-client-eina-value complex-types-client-eina-value.c `pkg-config --cflags --libs eldbus ecore eina`}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{preprocessor}{\#include "Eldbus.h"}}
\DoxyCodeLine{\textcolor{preprocessor}{\#include <Ecore.h>}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{preprocessor}{\#define BUS "com.profusion"}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define PATH "/com/profusion/Test"}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define IFACE "com.profusion.Test"}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{preprocessor}{\#define size\_of\_array 5}}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{char} *array\_string[] = \{}
\DoxyCodeLine{   \textcolor{stringliteral}{"aaaa"}, \textcolor{stringliteral}{"bbbb"}, \textcolor{stringliteral}{"cccc"}, \textcolor{stringliteral}{"dddd"}, \textcolor{stringliteral}{"eeee"}}
\DoxyCodeLine{\};}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{typedef} \textcolor{keyword}{struct }\_sub\_struct}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \textcolor{keywordtype}{char} *txt;}
\DoxyCodeLine{   \textcolor{keywordtype}{int} num;}
\DoxyCodeLine{\} sub\_struct;}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{typedef} \textcolor{keyword}{struct }\_main\_struct}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \textcolor{keywordtype}{int} size;}
\DoxyCodeLine{   sub\_struct array[];}
\DoxyCodeLine{\} main\_struct;}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\_type\_offset(\textcolor{keywordtype}{unsigned} base, \textcolor{keywordtype}{unsigned} size)}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \textcolor{keywordtype}{unsigned} padding;}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (!(base \% size))}
\DoxyCodeLine{     \textcolor{keywordflow}{return} base;}
\DoxyCodeLine{   padding = base - size;}
\DoxyCodeLine{   \textcolor{keywordflow}{return} base + padding;}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\_fill\_receive\_array\_of\_string\_int\_with\_size(\mbox{\hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\_Message}} *msg, \textcolor{keywordtype}{int} size, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *array[])}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value\_struct, *value\_array;}
\DoxyCodeLine{   \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{   \textcolor{keywordtype}{unsigned} offset;}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} main\_members[2];}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} sub\_members[] = \{}
\DoxyCodeLine{      \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga139206ef35b0b76e87eef56a202c0ae9}{EINA\_VALUE\_STRUCT\_MEMBER}}(\mbox{\hyperlink{group__Eina__Value__Group_ga916f76c8d5ffd4c3ee3c322a54efd0b7}{EINA\_VALUE\_TYPE\_STRING}}, sub\_struct, txt),}
\DoxyCodeLine{      \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga139206ef35b0b76e87eef56a202c0ae9}{EINA\_VALUE\_STRUCT\_MEMBER}}(\mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}, sub\_struct, num)}
\DoxyCodeLine{   \};}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} desc\_sub\_struct = \{}
\DoxyCodeLine{      \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},}
\DoxyCodeLine{      NULL, \textcolor{comment}{// no special operations}}
\DoxyCodeLine{      sub\_members,}
\DoxyCodeLine{      2,}
\DoxyCodeLine{      \textcolor{keyword}{sizeof}(sub\_struct)}
\DoxyCodeLine{   \};}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} desc\_struct = \{}
\DoxyCodeLine{      \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},}
\DoxyCodeLine{      NULL, \textcolor{comment}{// no special operations}}
\DoxyCodeLine{      main\_members,}
\DoxyCodeLine{      2,}
\DoxyCodeLine{      0\textcolor{comment}{//will be set below}}
\DoxyCodeLine{   \};}
\DoxyCodeLine{}
\DoxyCodeLine{   offset = \_type\_offset(\textcolor{keyword}{sizeof}(\textcolor{keywordtype}{int}), \textcolor{keyword}{sizeof}(\mbox{\hyperlink{struct__Eina__Value__Array}{Eina\_Value\_Array}}));}
\DoxyCodeLine{   main\_members[0].\mbox{\hyperlink{struct__Eina__Value__Struct__Member_a96da971e28b1eef6a37f4c8b9d080b53}{name}} = \textcolor{stringliteral}{"size"};}
\DoxyCodeLine{   main\_members[0].\mbox{\hyperlink{struct__Eina__Value__Struct__Member_a615cdf08597bd18623c8c7daec7b4641}{type}} = \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}};}
\DoxyCodeLine{   main\_members[0].\mbox{\hyperlink{struct__Eina__Value__Struct__Member_a5fe4db5cf87d3a7eeb865524fd615182}{offset}} = 0;}
\DoxyCodeLine{   main\_members[1].\mbox{\hyperlink{struct__Eina__Value__Struct__Member_a96da971e28b1eef6a37f4c8b9d080b53}{name}} = \textcolor{stringliteral}{"array"};}
\DoxyCodeLine{   main\_members[1].\mbox{\hyperlink{struct__Eina__Value__Struct__Member_a615cdf08597bd18623c8c7daec7b4641}{type}} = \mbox{\hyperlink{group__Eina__Value__Group_ga8ec6d5bfa2fed9250e2dabc6d82d12c4}{EINA\_VALUE\_TYPE\_ARRAY}};}
\DoxyCodeLine{   main\_members[1].\mbox{\hyperlink{struct__Eina__Value__Struct__Member_a5fe4db5cf87d3a7eeb865524fd615182}{offset}} = offset;}
\DoxyCodeLine{   desc\_struct.\mbox{\hyperlink{struct__Eina__Value__Struct__Desc_a76afd6890747f7d2da944878060efec0}{size}} = offset + \textcolor{keyword}{sizeof}(\mbox{\hyperlink{group__Eina__Value__Array__Group_gaf031f54b3d2530ec31b5cd73a5b08fc2}{Eina\_Value\_Array}});}
\DoxyCodeLine{}
\DoxyCodeLine{   value\_struct = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaa4f22ce61a055b572fc2a0ec9051479f}{eina\_value\_struct\_new}}(\&desc\_struct);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value\_struct, \textcolor{stringliteral}{"size"}, size);}
\DoxyCodeLine{}
\DoxyCodeLine{   value\_array = \mbox{\hyperlink{group__Eina__Value__Array__Group_ga1a76e18560e8cd6f8df7b91747282811}{eina\_value\_array\_new}}(\mbox{\hyperlink{group__Eina__Value__Group_ga8147143699c5f5a686415090080d3f9e}{EINA\_VALUE\_TYPE\_STRUCT}}, size);}
\DoxyCodeLine{   \textcolor{keywordflow}{for} (i = 0; i < size; i++)}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value\_sub\_struct = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaa4f22ce61a055b572fc2a0ec9051479f}{eina\_value\_struct\_new}}(\&desc\_sub\_struct);}
\DoxyCodeLine{        \mbox{\hyperlink{struct__Eina__Value__Struct}{Eina\_Value\_Struct}} st;}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value\_sub\_struct, \textcolor{stringliteral}{"txt"}, array[i]);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value\_sub\_struct, \textcolor{stringliteral}{"num"}, i);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Value__Group_ga6f088fe6c6127d808cdf214b355cbdeb}{eina\_value\_get}}(value\_sub\_struct, \&st);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Array__Group_ga82efa324a5f4b1d4d99002e1c9c78868}{eina\_value\_array\_append}}(value\_array, st);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Value__Group_ga86a0a82f9154937f9d0050958c72abe8}{eina\_value\_free}}(value\_sub\_struct);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Struct__Group_gac22dc4bbaef8213a2ee79e2f03e9528b}{eina\_value\_struct\_value\_set}}(value\_struct, \textcolor{stringliteral}{"array"}, value\_array);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value_ga525bec3d976a9489b27eb6ffa78cc4a6}{eldbus\_message\_from\_eina\_value}}(\textcolor{stringliteral}{"ia(si)"}, msg, value\_struct);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Value__Group_ga86a0a82f9154937f9d0050958c72abe8}{eina\_value\_free}}(value\_struct);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Value__Group_ga86a0a82f9154937f9d0050958c72abe8}{eina\_value\_free}}(value\_array);}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{on\_send\_array(\textcolor{keywordtype}{void} *data \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \textcolor{keyword}{const} \mbox{\hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\_Message}} *msg, \mbox{\hyperlink{group__Eldbus__Core_ga7a5d4dc070bd925034de6e52c4260be7}{Eldbus\_Pending}} *pending \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}})}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *v, array;}
\DoxyCodeLine{   \textcolor{keyword}{const} \textcolor{keywordtype}{char} *txt;}
\DoxyCodeLine{   \textcolor{keywordtype}{unsigned} i;}
\DoxyCodeLine{   printf(\textcolor{stringliteral}{"2 - on\_send\_array()\(\backslash\)n"});}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (\mbox{\hyperlink{group__Eldbus__Message_ga3aeec7d275bef2bb244ed9a045540921}{eldbus\_message\_error\_get}}(msg, NULL, NULL))}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"Message error\(\backslash\)n\(\backslash\)n"});}
\DoxyCodeLine{        \textcolor{keywordflow}{return};}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   v = \mbox{\hyperlink{group__Eina__Value_gaca1d745634fc1077b23d64ea0e4e7bca}{eldbus\_message\_to\_eina\_value}}(msg);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadbe2da54625edad4a63dbce2cbbdf6ec}{eina\_value\_struct\_value\_get}}(v, \textcolor{stringliteral}{"arg0"}, \&array);}
\DoxyCodeLine{   \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{group__Eina__Value__Array__Group_ga758e2a63aa537f872bdbd07b87ea6115}{eina\_value\_array\_count}}(\&array); i++)}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Array__Group_ga9358dce2404ed0926db502539f8a1318}{eina\_value\_array\_get}}(\&array, i, \&txt);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"\(\backslash\)t\%s\(\backslash\)n"}, txt);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Value__Group_ga86a0a82f9154937f9d0050958c72abe8}{eina\_value\_free}}(v);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Value__Group_ga940660709a2862bafac92f47bb721a68}{eina\_value\_flush}}(\&array);}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{on\_receive\_array\_with\_size(\textcolor{keywordtype}{void} *data \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \textcolor{keyword}{const} \mbox{\hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\_Message}} *msg, \mbox{\hyperlink{group__Eldbus__Core_ga7a5d4dc070bd925034de6e52c4260be7}{Eldbus\_Pending}} *pending \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}})}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \textcolor{keyword}{const} \textcolor{keywordtype}{char} *errname;}
\DoxyCodeLine{   \textcolor{keyword}{const} \textcolor{keywordtype}{char} *errmsg;}
\DoxyCodeLine{}
\DoxyCodeLine{   printf(\textcolor{stringliteral}{"1 - on\_receive\_array\_with\_size()\(\backslash\)n"});}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (\mbox{\hyperlink{group__Eldbus__Message_ga3aeec7d275bef2bb244ed9a045540921}{eldbus\_message\_error\_get}}(msg, \&errname, \&errmsg))}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        fprintf(stderr, \textcolor{stringliteral}{"Error: \%s \%s\(\backslash\)n"}, errname, errmsg);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{on\_plus\_one(\textcolor{keywordtype}{void} *data \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \textcolor{keyword}{const} \mbox{\hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\_Message}} *msg, \mbox{\hyperlink{group__Eldbus__Core_ga7a5d4dc070bd925034de6e52c4260be7}{Eldbus\_Pending}} *pending \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}})}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *v;}
\DoxyCodeLine{   \textcolor{keywordtype}{int} num2;}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (\mbox{\hyperlink{group__Eldbus__Message_ga3aeec7d275bef2bb244ed9a045540921}{eldbus\_message\_error\_get}}(msg, NULL, NULL))}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"Message error\(\backslash\)n\(\backslash\)n"});}
\DoxyCodeLine{        \textcolor{keywordflow}{return};}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   v = \mbox{\hyperlink{group__Eina__Value_gaca1d745634fc1077b23d64ea0e4e7bca}{eldbus\_message\_to\_eina\_value}}(msg);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(v, \textcolor{stringliteral}{"arg0"}, \&num2);}
\DoxyCodeLine{}
\DoxyCodeLine{   printf(\textcolor{stringliteral}{"3 - on\_plus\_one() \%d\(\backslash\)n"}, num2);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Value__Group_ga86a0a82f9154937f9d0050958c72abe8}{eina\_value\_free}}(v);}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{receive\_variant\_cb(\textcolor{keywordtype}{void} *data \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \textcolor{keyword}{const} \mbox{\hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\_Message}} *msg, \mbox{\hyperlink{group__Eldbus__Core_ga7a5d4dc070bd925034de6e52c4260be7}{Eldbus\_Pending}} *pending \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}})}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *v, variant, array;}
\DoxyCodeLine{   \textcolor{keywordtype}{unsigned} i;}
\DoxyCodeLine{}
\DoxyCodeLine{   printf(\textcolor{stringliteral}{"4 - receive a variant with an array of strings\(\backslash\)n"});}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (\mbox{\hyperlink{group__Eldbus__Message_ga3aeec7d275bef2bb244ed9a045540921}{eldbus\_message\_error\_get}}(msg, NULL, NULL))}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"Message error\(\backslash\)n\(\backslash\)n"});}
\DoxyCodeLine{        \textcolor{keywordflow}{return};}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   v = \mbox{\hyperlink{group__Eina__Value_gaca1d745634fc1077b23d64ea0e4e7bca}{eldbus\_message\_to\_eina\_value}}(msg);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadbe2da54625edad4a63dbce2cbbdf6ec}{eina\_value\_struct\_value\_get}}(v, \textcolor{stringliteral}{"arg0"}, \&variant);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadbe2da54625edad4a63dbce2cbbdf6ec}{eina\_value\_struct\_value\_get}}(\&variant, \textcolor{stringliteral}{"arg0"}, \&array);}
\DoxyCodeLine{   \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{group__Eina__Value__Array__Group_ga758e2a63aa537f872bdbd07b87ea6115}{eina\_value\_array\_count}}(\&array); i++)}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \textcolor{keyword}{const} \textcolor{keywordtype}{char} *txt;}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Array__Group_ga9358dce2404ed0926db502539f8a1318}{eina\_value\_array\_get}}(\&array, i, \&txt);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"\(\backslash\)t\%s\(\backslash\)n"}, txt);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Value__Group_ga940660709a2862bafac92f47bb721a68}{eina\_value\_flush}}(\&array);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Value__Group_ga940660709a2862bafac92f47bb721a68}{eina\_value\_flush}}(\&variant);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Value__Group_ga86a0a82f9154937f9d0050958c72abe8}{eina\_value\_free}}(v);}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\_property\_removed(\textcolor{keywordtype}{void} *data \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \mbox{\hyperlink{group__Eldbus_ga82047f6a5efc1980ae445a898c2ed9c0}{Eldbus\_Proxy}} *proxy \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \textcolor{keywordtype}{void} *event\_info)}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eldbus__Proxy__Event__Property__Removed}{Eldbus\_Proxy\_Event\_Property\_Removed}} *\textcolor{keyword}{event} = event\_info;}
\DoxyCodeLine{}
\DoxyCodeLine{   printf(\textcolor{stringliteral}{"\(\backslash\)nproperty removed: \%s"}, event->name);}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\_property\_changed(\textcolor{keywordtype}{void} *data \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \mbox{\hyperlink{group__Eldbus_ga82047f6a5efc1980ae445a898c2ed9c0}{Eldbus\_Proxy}} *proxy \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \textcolor{keywordtype}{void} *event\_info)}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eldbus__Proxy__Event__Property__Changed}{Eldbus\_Proxy\_Event\_Property\_Changed}} *\textcolor{keyword}{event} = event\_info;}
\DoxyCodeLine{   \textcolor{keyword}{const} \textcolor{keywordtype}{char} *name;}
\DoxyCodeLine{   \textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value;}
\DoxyCodeLine{   printf(\textcolor{stringliteral}{"\(\backslash\)nproperty changed\(\backslash\)n"});}
\DoxyCodeLine{}
\DoxyCodeLine{   name = \textcolor{keyword}{event}->name;}
\DoxyCodeLine{   value = \textcolor{keyword}{event}->value;}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (!strcmp(name, \textcolor{stringliteral}{"text"}) || !strcmp(name, \textcolor{stringliteral}{"Resp2"}))}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \textcolor{keyword}{const} \textcolor{keywordtype}{char} *txt;}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Value__Group_ga6f088fe6c6127d808cdf214b355cbdeb}{eina\_value\_get}}(value, \&txt);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"[\%s] = \%s\(\backslash\)n"}, name, txt);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{   \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(name, \textcolor{stringliteral}{"int32"}))}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \textcolor{keywordtype}{int} num;}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Value__Group_ga6f088fe6c6127d808cdf214b355cbdeb}{eina\_value\_get}}(value, \&num);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"[\%s] = \%d\(\backslash\)n"}, name, num);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{   \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(name, \textcolor{stringliteral}{"st"}))}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \textcolor{keyword}{const} \textcolor{keywordtype}{char} *txt;}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(value, \textcolor{stringliteral}{"arg0"}, \&txt);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"[\%s] \%s | "}, name, txt);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(value, \textcolor{stringliteral}{"arg1"}, \&txt);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"\%s\(\backslash\)n"}, txt);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_read\_cache(\textcolor{keywordtype}{void} *data)}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus_ga82047f6a5efc1980ae445a898c2ed9c0}{Eldbus\_Proxy}} *proxy = data;}
\DoxyCodeLine{   \textcolor{keyword}{const} \textcolor{keywordtype}{char} *txt;}
\DoxyCodeLine{   \textcolor{keywordtype}{int} num;}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *v;}
\DoxyCodeLine{}
\DoxyCodeLine{   v = \mbox{\hyperlink{group__Eldbus__FDO__Properties_ga07e236d5f577453308c1f80e48f1d2a3}{eldbus\_proxy\_property\_local\_get}}(proxy, \textcolor{stringliteral}{"text"});}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (v)}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Value__Group_ga6f088fe6c6127d808cdf214b355cbdeb}{eina\_value\_get}}(v, \&txt);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"Read cache: [txt] = \%s\(\backslash\)n"}, txt);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   v = \mbox{\hyperlink{group__Eldbus__FDO__Properties_ga07e236d5f577453308c1f80e48f1d2a3}{eldbus\_proxy\_property\_local\_get}}(proxy, \textcolor{stringliteral}{"int32"});}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (v)}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Value__Group_ga6f088fe6c6127d808cdf214b355cbdeb}{eina\_value\_get}}(v, \&num);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"Read cache: [int32] = \%d\(\backslash\)n"}, num);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   v = \mbox{\hyperlink{group__Eldbus__FDO__Properties_ga07e236d5f577453308c1f80e48f1d2a3}{eldbus\_proxy\_property\_local\_get}}(proxy, \textcolor{stringliteral}{"st"});}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (v)}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(v, \textcolor{stringliteral}{"arg0"}, \&txt);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"Read cache: [st] \%s | "}, txt);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(v, \textcolor{stringliteral}{"arg1"}, \&txt);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"\%s\(\backslash\)n"}, txt);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{keywordflow}{return} \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\_FALSE}};}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\_fill\_plus\_one(\mbox{\hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\_Message}} *msg, \textcolor{keywordtype}{int} num)}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *v;}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} main\_members[] = \{}
\DoxyCodeLine{      \{\textcolor{stringliteral}{"num"}, \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}, 0\}}
\DoxyCodeLine{   \};}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} desc\_struct = \{}
\DoxyCodeLine{         \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},}
\DoxyCodeLine{         NULL, \textcolor{comment}{// no special operations}}
\DoxyCodeLine{         main\_members,}
\DoxyCodeLine{         1,}
\DoxyCodeLine{         \textcolor{keyword}{sizeof}(int)}
\DoxyCodeLine{   \};}
\DoxyCodeLine{   v = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaa4f22ce61a055b572fc2a0ec9051479f}{eina\_value\_struct\_new}}(\&desc\_struct);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(v, \textcolor{stringliteral}{"num"}, num);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value_ga525bec3d976a9489b27eb6ffa78cc4a6}{eldbus\_message\_from\_eina\_value}}(\textcolor{stringliteral}{"i"}, msg, v);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Value__Value__Group_ga86a0a82f9154937f9d0050958c72abe8}{eina\_value\_free}}(v);}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordtype}{int}}
\DoxyCodeLine{main(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus_ga1de8233c3e9240291bb952776810c831}{Eldbus\_Connection}} *conn;}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus_gab374430ed25089e7c5213767cc637191}{Eldbus\_Object}} *obj;}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus_ga82047f6a5efc1980ae445a898c2ed9c0}{Eldbus\_Proxy}} *proxy;}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\_Message}} *msg;}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\_init}}();}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Core_gadd7c8b8a43b5dd590f7fd06166288754}{eldbus\_init}}();}
\DoxyCodeLine{}
\DoxyCodeLine{   conn = \mbox{\hyperlink{group__Eldbus__Conneciton_ga203ec794fc0c7e1bddce4eb18b628c04}{eldbus\_connection\_get}}(ELDBUS\_CONNECTION\_TYPE\_SESSION);}
\DoxyCodeLine{   obj = \mbox{\hyperlink{group__Eldbus__Object__Mapper_ga067d5c8eba2590fb58e7dc39de87d203}{eldbus\_object\_get}}(conn, BUS, PATH);}
\DoxyCodeLine{   proxy = \mbox{\hyperlink{group__Eldbus__Proxy_ga58b8d61188435800e1e866ab3fdc7090}{eldbus\_proxy\_get}}(obj, IFACE);}
\DoxyCodeLine{}
\DoxyCodeLine{   msg = \mbox{\hyperlink{group__Eldbus__Proxy_ga443bd02f44bf6c61c7b6c5ca4fde87de}{eldbus\_proxy\_method\_call\_new}}(proxy, \textcolor{stringliteral}{"ReceiveArrayOfStringIntWithSize"});}
\DoxyCodeLine{   \_fill\_receive\_array\_of\_string\_int\_with\_size(msg, size\_of\_array, array\_string);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Proxy_ga8e4268bf0000bd0ab9596bb2c4d86489}{eldbus\_proxy\_send}}(proxy, msg, on\_receive\_array\_with\_size, NULL, -1);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Proxy_ga0eaac8e928bd7605855bf61d97eea37c}{eldbus\_proxy\_call}}(proxy, \textcolor{stringliteral}{"SendArray"}, on\_send\_array, NULL, -1 , \textcolor{stringliteral}{""});}
\DoxyCodeLine{}
\DoxyCodeLine{   msg = \mbox{\hyperlink{group__Eldbus__Proxy_ga443bd02f44bf6c61c7b6c5ca4fde87de}{eldbus\_proxy\_method\_call\_new}}(proxy, \textcolor{stringliteral}{"PlusOne"});}
\DoxyCodeLine{   \_fill\_plus\_one(msg, 14);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Proxy_ga8e4268bf0000bd0ab9596bb2c4d86489}{eldbus\_proxy\_send}}(proxy, msg, on\_plus\_one, NULL, -1);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Proxy_ga4b7ab0db8ac6ab9ea3e7f0912b2432e9}{eldbus\_proxy\_event\_callback\_add}}(proxy,}
\DoxyCodeLine{                                  \mbox{\hyperlink{group__Eldbus__Proxy_ggae2651588bfdfc934519b1167ae42a14dac2f80df568c56bdfa293214c8de95add}{ELDBUS\_PROXY\_EVENT\_PROPERTY\_CHANGED}},}
\DoxyCodeLine{                                  \_property\_changed, NULL);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Proxy_ga4b7ab0db8ac6ab9ea3e7f0912b2432e9}{eldbus\_proxy\_event\_callback\_add}}(proxy, \mbox{\hyperlink{group__Eldbus__Proxy_ggae2651588bfdfc934519b1167ae42a14daa2f041c65a6d134c2ae14043f4b24295}{ELDBUS\_PROXY\_EVENT\_PROPERTY\_REMOVED}},}
\DoxyCodeLine{                                  \_property\_removed, NULL);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__FDO__Properties_gaa2a20ccdb8dfe3fae539c9366eac9fb5}{eldbus\_proxy\_properties\_monitor}}(proxy, \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\_TRUE}});}
\DoxyCodeLine{   \mbox{\hyperlink{group__Ecore__Timer__Group_ga7b9cb9d24ecebfdbb957436e2e669402}{ecore\_timer\_add}}(10, \_read\_cache, proxy);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Proxy_ga0eaac8e928bd7605855bf61d97eea37c}{eldbus\_proxy\_call}}(proxy, \textcolor{stringliteral}{"ReceiveVariantData"}, receive\_variant\_cb, NULL, -1, \textcolor{stringliteral}{""});}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gaf103b9f668bb3e4fed12e52c6180132d}{ecore\_main\_loop\_begin}}();}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Proxy_gaa0c972c94ccaf39b0ca3586c5d549af4}{eldbus\_proxy\_event\_callback\_del}}(proxy, \mbox{\hyperlink{group__Eldbus__Proxy_ggae2651588bfdfc934519b1167ae42a14dac2f80df568c56bdfa293214c8de95add}{ELDBUS\_PROXY\_EVENT\_PROPERTY\_CHANGED}},}
\DoxyCodeLine{                                  \_property\_changed, NULL);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Conneciton_ga1c035aac8b601b416bba11d0d68f80ae}{eldbus\_connection\_unref}}(conn);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eldbus__Core_ga255ee3e090da6704d009ee74ba9d8a79}{eldbus\_shutdown}}();}
\DoxyCodeLine{   \mbox{\hyperlink{group__Ecore__Init__Group_ga768298b932f18d7e7593a447493e5cde}{ecore\_shutdown}}();}
\DoxyCodeLine{   \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\}}
\end{DoxyCodeInclude}
 