2 //gcc -g -Wall `pkg-config --cflags --libs ecore` -o ecore_pipe_simple_example ecore_pipe_simple_example.c
8 do_lengthy_task(Ecore_Pipe *pipe)
12 for (i = 0; i < 20; i++)
15 buffer = malloc(sizeof(char) * i);
16 for (j = 0; j < i; j++)
18 ecore_pipe_write(pipe, buffer, i);
21 ecore_pipe_write(pipe, "close", 5);
25 handler(void *data, void *buf, unsigned int len)
27 char *str = malloc(sizeof(char) * len + 1);
28 memcpy(str, buf, len);
30 printf("received %d bytes\n", len);
31 printf("content: %s\n", (const char *)str);
33 if (len && !strncmp(buf, "close", len < 5 ? len : 5))
35 printf("close requested\n");
36 ecore_main_loop_quit();
41 main(int argc, char *argv[])
48 pipe = ecore_pipe_add(handler, NULL);
53 ecore_pipe_read_close(pipe);
54 do_lengthy_task(pipe);
58 ecore_pipe_write_close(pipe);
59 ecore_main_loop_begin();