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
+)
+

-- 


Reply via email to