EFL 1.7 svn doobies
[profile/ivi/eina.git] / src / examples / eina_error_01.c
1 //Compile with:
2 //gcc -g eina_error_01.c -o eina_error_01 `pkg-config --cflags --libs eina`
3
4 #include <stdlib.h>
5 #include <stdio.h>
6
7 #include <eina_main.h>
8 #include <eina_error.h>
9
10 Eina_Error MY_ERROR_NEGATIVE;
11 Eina_Error MY_ERROR_NULL;
12
13 void *data_new()
14 {
15    eina_error_set(0);
16
17    eina_error_set(MY_ERROR_NULL);
18    return NULL;
19 }
20
21 int test(int n)
22 {
23    eina_error_set(0);
24
25    if (n < 0)
26      {
27         eina_error_set(MY_ERROR_NEGATIVE);
28         return 0;
29      }
30
31    return 1;
32 }
33
34 int main(void)
35 {
36    void *data;
37
38    if (!eina_init())
39      {
40         printf ("Error during the initialization of eina_error module\n");
41         return EXIT_FAILURE;
42      }
43
44    MY_ERROR_NEGATIVE = eina_error_msg_static_register("Negative number");
45    MY_ERROR_NULL = eina_error_msg_static_register("NULL pointer");
46
47    data = data_new();
48    if (!data)
49      {
50         Eina_Error err;
51
52         err = eina_error_get();
53         if (err)
54            printf("Error during memory allocation: %s\n",
55                   eina_error_msg_get(err));
56      }
57
58    if (!test(0))
59      {
60         Eina_Error err;
61
62         err = eina_error_get();
63         if (err)
64            printf("Error during test function: %s\n",
65                   eina_error_msg_get(err));
66      }
67
68    if (!test(-1))
69      {
70         Eina_Error err;
71
72         err = eina_error_get();
73         if (err)
74            printf("Error during test function: %s\n",
75                   eina_error_msg_get(err));
76      }
77
78    eina_shutdown();
79
80    return EXIT_SUCCESS;
81 }