EFL 1.7 svn doobies
[profile/ivi/eina.git] / src / examples / eina_model_04_whistler.h
1 /*
2  * whistler.h
3  */
4
5 #ifndef WHISTLER_H_
6 #define WHISTLER_H_
7
8 #include <Eina.h>
9 #include <eina_safety_checks.h>
10
11 #define WHISTLER_INTERFACE_NAME "Whistler_Interface"
12 #define SWIMMER_INTERFACE_NAME "Swimmer_Interface"
13 #define DIVER_INTERFACE_NAME "Diver_Interface"
14
15 #define WHISTLER_INTERFACE(x) ((Whistler_Interface *) x)
16 #define SWIMMER_INTERFACE(x) ((Swimmer_Interface *) x)
17 #define DIVER_INTERFACE(x) ((Diver_Interface *) x)
18
19 typedef struct _Whistler_Interface
20 {
21    Eina_Model_Interface base_interface;
22    void (*whistle)(Eina_Model *);
23
24 } Whistler_Interface;
25
26 typedef struct _Swimmer_Interface
27 {
28    Eina_Model_Interface base_interface;
29    void (*swim)(Eina_Model *);
30
31 } Swimmer_Interface;
32
33 //Diver Interface will use Swimmer Interface as a parent
34 typedef struct _Diver_Interface
35 {
36    Eina_Model_Interface base_interface;
37    void (*dive)(Eina_Model *);
38
39 } Diver_Interface;
40
41 void whistler_whistle(Eina_Model *m);
42 void swimmer_swim(Eina_Model *m);
43 void diver_dive(Eina_Model *m);
44
45 #endif /* WHISTLER_H_ */