From db46d4c1a35c596acbc490399f02f7a01bf86119 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Tue, 23 Aug 2016 11:58:19 -0300 Subject: [PATCH] examples: add efl_io_copier_simple_example.c a simpler example to be listed in wiki. --- src/examples/ecore/.gitignore | 1 + src/examples/ecore/Makefile.am | 5 ++ .../ecore/efl_io_copier_simple_example.c | 51 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 src/examples/ecore/efl_io_copier_simple_example.c diff --git a/src/examples/ecore/.gitignore b/src/examples/ecore/.gitignore index 6339345b44..bd92dcd3a8 100644 --- a/src/examples/ecore/.gitignore +++ b/src/examples/ecore/.gitignore @@ -47,5 +47,6 @@ /ecore_buffer_consumer_example /ecore_buffer_provider_example /efl_io_copier_example +/efl_io_copier_simple_example /efl_net_server_example /efl_net_dialer_http_example diff --git a/src/examples/ecore/Makefile.am b/src/examples/ecore/Makefile.am index 2e0f470fe5..de4292c297 100644 --- a/src/examples/ecore/Makefile.am +++ b/src/examples/ecore/Makefile.am @@ -78,6 +78,7 @@ ecore_getopt_example \ ecore_con_eet_client_example \ ecore_con_eet_server_example \ efl_io_copier_example \ +efl_io_copier_simple_example \ efl_net_server_example \ efl_net_dialer_http_example @@ -283,6 +284,9 @@ $(top_builddir)/src/lib/eet/libeet.la efl_io_copier_example_SOURCES = efl_io_copier_example.c efl_io_copier_example_LDADD = $(ECORE_CON_COMMON_LDADD) +efl_io_copier_simple_example_SOURCES = efl_io_copier_simple_example.c +efl_io_copier_simple_example_LDADD = $(ECORE_COMMON_LDADD) + efl_net_server_example_SOURCES = efl_net_server_example.c efl_net_server_example_LDADD = $(ECORE_CON_COMMON_LDADD) @@ -336,6 +340,7 @@ ecore_con_eet_client_example.c \ ecore_con_eet_server_example.c \ ecore_con_eet_descriptor_example.c \ efl_io_copier_example.c \ +efl_io_copier_simple_example.c \ efl_net_server_example.c \ efl_net_dialer_http_example.c diff --git a/src/examples/ecore/efl_io_copier_simple_example.c b/src/examples/ecore/efl_io_copier_simple_example.c new file mode 100644 index 0000000000..9b7687c22e --- /dev/null +++ b/src/examples/ecore/efl_io_copier_simple_example.c @@ -0,0 +1,51 @@ +#define EFL_BETA_API_SUPPORT 1 +#define EFL_EO_API_SUPPORT 1 +#include + +static int retval = EXIT_SUCCESS; + +static void +_copier_done(void *data, const Eo_Event *event) +{ + fprintf(stderr, "INFO: done\n"); + ecore_main_loop_quit(); +} + +static void +_copier_error(void *data, const Eo_Event *event) +{ + const Eina_Error *perr = event->info; + fprintf(stderr, "INFO: error: #%d '%s'\n", *perr, eina_error_msg_get(*perr)); + ecore_main_loop_quit(); + retval = EXIT_FAILURE; +} + +EFL_CALLBACKS_ARRAY_DEFINE(copier_cbs, + { EFL_IO_COPIER_EVENT_DONE, _copier_done }, + { EFL_IO_COPIER_EVENT_ERROR, _copier_error }); + +int main(int argc, char *argv[]) +{ + Eo *input, *output, *copier, *loop; + + ecore_init(); + + loop = ecore_main_loop_get(); + input = efl_add(EFL_IO_STDIN_CLASS, loop); + output = efl_add(EFL_IO_STDOUT_CLASS, loop); + copier = efl_add(EFL_IO_COPIER_CLASS, loop, + efl_io_copier_source_set(efl_self, input), /* mandatory */ + efl_io_copier_destination_set(efl_self, output), /* optional */ + efl_event_callback_array_add(efl_self, copier_cbs(), NULL) /* recommended, at least EFL_IO_COPIER_EVENT_DONE. */ + ); + + ecore_main_loop_begin(); + + efl_io_closer_close(copier); + efl_del(copier); + efl_del(output); + efl_del(input); + + ecore_shutdown(); + return retval; +}