Eobj: Added mixin data support.
[profile/ivi/eobj.git] / examples / mixin / main.c
1 #include "Eobj.h"
2 #include "simple.h"
3 #include "mixin.h"
4 #include "mixin2.h"
5 #include "mixin3.h"
6
7 #include "../eunit_tests.h"
8
9 int
10 main(int argc, char *argv[])
11 {
12    (void) argc;
13    (void) argv;
14    eobj_init();
15
16    Eobj *obj = eobj_add(SIMPLE_CLASS, NULL);
17
18    eobj_do(obj, SIMPLE_A_SET(1), SIMPLE_B_SET(2));
19
20    int a, b, sum = 0;
21    eobj_do(obj, SIMPLE_A_GET(&a), SIMPLE_B_GET(&b),  MIXIN_AB_SUM_GET(&sum));
22    fail_if(sum != a + b + 2); /* 2 for the two mixins... */
23
24    eobj_do(obj, MIXIN_AB_SUM_GET(&sum), MIXIN_AB_SUM_GET(&sum));
25
26    Mixin2_Public_Data *pd2 = eobj_data_get(obj, MIXIN2_CLASS);
27    fail_if(pd2->count != 6);
28
29    Mixin3_Public_Data *pd3 = eobj_data_get(obj, MIXIN3_CLASS);
30    fail_if(pd3->count != 9);
31
32    eobj_unref(obj);
33    eobj_shutdown();
34    return 0;
35 }
36