summaryrefslogtreecommitdiffstats
path: root/eo_definitions.h
blob: 844717e821f070f368c2da5252061aa24ff66ca7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#ifndef __EO_DEFINITIONS_H__
#define __EO_DEFINITIONS_H__

#include <Eina.h>

/* RET */

typedef struct _eo_ret_def
{
   const char *type;
   const char *comment;
} Eo_Ret_Def;

/* PARAM */

typedef enum _param_way
{
   IN,
   OUT,
   INOUT,
   PARAM_WAY_LAST
} Param_Way;

typedef struct _eo_param_def
{
   Param_Way way;
   const char *type;
   const char *name;
   const char *comment;
} Eo_Param_Def;

/* ACCESSOR */

typedef enum _eo_accessor_type
{
   SETTER,
   GETTER,
   ACCESSOR_TYPE_LAST
} Eo_Accessor_Type;

typedef struct _eo_accessor_def
{
   Eo_Accessor_Type type;
   Eo_Ret_Def ret;
   const char *comment;
   Eina_List *legacies;
} Eo_Accessor_Def;

/* PROPERTY */

typedef struct _eo_property_def
{
   const char *name;
   Eina_List *params;
   Eina_List *accessors;
} Eo_Property_Def;

/* METHOD */

typedef struct _eo_method_def
{
   Eo_Ret_Def ret;
   const char *name;
   const char *comment;
   Eina_List *params;
} Eo_Method_Def;

/* CLASS */

typedef struct _eo_class_def
{
   const char *name;
   const char *comment;
   Eina_List *inherits;
   Eina_List *properties;
   Eina_List *methods;
} Eo_Class_Def;

void eo_definitions_ret_free(Eo_Ret_Def *ret);

void eo_definitions_param_free(Eo_Param_Def *param);

void eo_definitions_accessor_free(Eo_Accessor_Def *accessor);

void eo_definitions_property_def_free(Eo_Property_Def *prop);

void eo_definitions_method_def_free(Eo_Method_Def *prop);

void eo_definitions_class_def_free(Eo_Class_Def *kls);

#endif /* __EO_DEFINITIONS_H__ */