ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/tools/examples.git/commit/?id=ad5287a9e3e044b94df5b46353be0762822619c7
commit ad5287a9e3e044b94df5b46353be0762822619c7 Author: Andy Williams <a...@andywilliams.me> Date: Thu Nov 9 18:46:02 2017 +0000 eina-iterator: Add first reference example --- reference/c/eina-iterator/meson.build | 13 ++++ reference/c/eina-iterator/src/eina_iterator_main.c | 87 ++++++++++++++++++++++ reference/c/eina-iterator/src/meson.build | 12 +++ 3 files changed, 112 insertions(+) diff --git a/reference/c/eina-iterator/meson.build b/reference/c/eina-iterator/meson.build new file mode 100644 index 0000000..b3c1309 --- /dev/null +++ b/reference/c/eina-iterator/meson.build @@ -0,0 +1,13 @@ +project( + 'efl-reference-eina-iterator', 'c', + version : '0.0.1', + default_options: [ 'c_std=gnu99', 'warning_level=2' ], + meson_version : '>= 0.38.0') + +eina = dependency('eina', version : '>=1.20.99') +efl = dependency('efl', version : '>=1.20.99') +elm = dependency('elementary', version : '>=1.20.99') + +inc = include_directories('.') +subdir('src') + diff --git a/reference/c/eina-iterator/src/eina_iterator_main.c b/reference/c/eina-iterator/src/eina_iterator_main.c new file mode 100644 index 0000000..c0895d0 --- /dev/null +++ b/reference/c/eina-iterator/src/eina_iterator_main.c @@ -0,0 +1,87 @@ +#define EFL_EO_API_SUPPORT 1 +#define EFL_BETA_API_SUPPORT 1 + +#include <stdio.h> +#include <Eina.h> + +#include <Efl.h> +#include <Elementary.h> + +static Eina_Bool +_print_item(const void *container EINA_UNUSED, void *data, void *fdata EINA_UNUSED) +{ + printf("%s\n", (char*)data); + return EINA_TRUE; +} + +static void +_print_container(Eina_Iterator *it) +{ + printf("--start--\n"); + eina_iterator_foreach(it, _print_item, NULL); + printf("-- end --\n"); +} + +static Eina_Array * +_create_array() +{ + const char *strings[] = + { + "name strings", + "husker", + "starbuck", + "boomer" + }; + + Eina_Array *array; + int i; + + array = eina_array_new(4); + for (i = 0; i < 4; i++) + eina_array_push(array, strings[i]); + + return array; +} + +static Eina_List * +_create_list() +{ + const char *more_strings[] = { + "sentence strings", + "what do your hear?", + "nothing but the rain", + "then grab your gun and bring the cat in" + }; + + Eina_List *list = NULL; + int i; + + for (i = 0; i < 4; i++) + list = eina_list_append(list, more_strings[i]); + + return list; +} + +EAPI_MAIN void +efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) +{ + Eina_Array *array; + Eina_List *list; + Eina_Iterator *it; + + array = _create_array(); + it = eina_array_iterator_new(array); + _print_container(it); + eina_iterator_free(it); + eina_array_free(array); + + list = _create_list(); + it = eina_list_iterator_new(list); + _print_container(it); + eina_iterator_free(it); + eina_list_free(list); + + efl_exit(0); +} +EFL_MAIN() + diff --git a/reference/c/eina-iterator/src/meson.build b/reference/c/eina-iterator/src/meson.build new file mode 100644 index 0000000..96c3239 --- /dev/null +++ b/reference/c/eina-iterator/src/meson.build @@ -0,0 +1,12 @@ +src = files([ + 'eina_iterator_main.c', +]) + +deps = [eina, efl, elm] + +executable('efl_reference_eina_iterator', src, + dependencies : deps, + include_directories : inc, + install : true +) + --