332b66f1f52a9046da169c41399daf22f7413107
[framework/uifw/ecore.git] / src / examples / ecore_exe_example_child.c
1 /**
2   Compile with gcc -o ecore_exe_example_child ecore_exe_example_child.c `pkg-config --cflags --libs ecore`
3 */
4
5 #include <stdio.h>
6 #include <unistd.h>
7 #include <Ecore.h>
8
9
10 #define BUFFER_SIZE 1024
11
12 static Eina_Bool
13 _fd_handler_cb(void *data, Ecore_Fd_Handler
14                *fd_handler)
15 {
16    static int numberOfMessages = 0;
17    char message[BUFFER_SIZE];
18
19    fgets(message, BUFFER_SIZE, stdin);
20
21    numberOfMessages++;
22
23    if (numberOfMessages < 3)
24      {
25         fprintf(stdout, "My father sent this message to me:%s\n", message);
26         fflush(stdout);
27         return ECORE_CALLBACK_RENEW;
28      }
29    else
30      {
31         fprintf(stdout, "quit\n");
32         fflush(stdout);
33         ecore_main_loop_quit();
34         return ECORE_CALLBACK_DONE;
35      }
36 }
37
38 int
39 main(int argc, char **argv)
40 {
41
42    if (!ecore_init())
43      goto error;
44
45    ecore_main_fd_handler_add(STDIN_FILENO,
46                                 ECORE_FD_READ,
47                                 _fd_handler_cb,
48                                 NULL, NULL, NULL);
49    ecore_main_loop_begin();
50
51    ecore_shutdown();
52
53    return EXIT_SUCCESS;
54
55 error:
56    return EXIT_FAILURE;
57 }