8
static void _read_change(void *data EINA_UNUSED, const Efl_Event *ev);
9
static void _task_exit(void *data EINA_UNUSED, const Efl_Event *ev);
12
_read_change(void *data EINA_UNUSED, const Efl_Event *ev)
17
Eina_Rw_Slice rw_slice = EINA_SLICE_ARRAY(buf);
19
while (efl_io_reader_can_read_get(obj))
21
Eina_Error err = efl_io_reader_read(obj, &rw_slice);
24
buf[rw_slice.len - 1] = 0;
25
printf("--- READ [%p] [%s] ok %i bytes '%s'\n", obj, efl_core_command_line_command_get(obj), (int)rw_slice.len, buf);
31
_task_exit(void *data EINA_UNUSED, const Efl_Event *ev)
36
printf("--- [%p] EXITED exit_code=%i\n", obj, efl_task_exit_code_get(obj));
37
efl_loop_quit(efl_provider_find(obj, EFL_LOOP_CLASS), eina_value_int_init(99));
46
efl_main(void *data EINA_UNUSED, const Efl_Event *ev)
50
const Efl_Version *v = efl_app_build_efl_version_get(app);
51
printf("--- EFL %i.%i.%i\n", v->major, v->minor, v->micro);
52
Eina_Array *args = eina_array_new(1);
53
eina_array_push(args, eina_stringshare_add("./efl_exe_test.sh"));
54
Eo *env = efl_duplicate(efl_env_self());
55
efl_core_env_set(env, "BLAH", "blahvalue");
56
Eo *obj = efl_add(EFL_EXE_CLASS, app,
57
efl_core_command_line_command_array_set(efl_added, args),
58
efl_exe_env_set(efl_added, env),
59
efl_task_flags_set(efl_added, EFL_TASK_FLAGS_USE_STDOUT | EFL_TASK_FLAGS_USE_STDIN),
60
efl_event_callback_add(efl_added, EFL_IO_READER_EVENT_CAN_READ_CHANGED, _read_change, NULL),
61
efl_event_callback_add(efl_added, EFL_TASK_EVENT_EXIT, _task_exit, NULL),
62
efl_task_run(efl_added)
66
char *buf2 = "sample-input\n";
67
Eina_Slice slice = { strlen(buf2), .mem = buf2 };
68
Eina_Error err = efl_io_writer_write(obj, &slice, NULL);
69
if (!err) printf("--- WRITE [%p] [%s] ok %i bytes\n", obj, efl_core_command_line_command_get(obj), (int)slice.len);