diff options
Diffstat (limited to '')
-rw-r--r-- | libraries/eina/src/tests/Evas_Data.h | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/libraries/eina/src/tests/Evas_Data.h b/libraries/eina/src/tests/Evas_Data.h new file mode 100644 index 0000000..9784892 --- /dev/null +++ b/libraries/eina/src/tests/Evas_Data.h | |||
@@ -0,0 +1,195 @@ | |||
1 | #ifndef _EVAS_DATA_H | ||
2 | #define _EVAS_DATA_H | ||
3 | |||
4 | #ifdef EAPI | ||
5 | # undef EAPI | ||
6 | #endif | ||
7 | |||
8 | #ifdef _WIN32 | ||
9 | # ifdef EFL_EVAS_BUILD | ||
10 | # ifdef DLL_EXPORT | ||
11 | # define EAPI __declspec(dllexport) | ||
12 | # else | ||
13 | # define EAPI | ||
14 | # endif /* ! DLL_EXPORT */ | ||
15 | # else | ||
16 | # define EAPI __declspec(dllimport) | ||
17 | # endif /* ! EFL_EVAS_BUILD */ | ||
18 | #else | ||
19 | # ifdef __GNUC__ | ||
20 | # if __GNUC__ >= 4 | ||
21 | # define EAPI __attribute__ ((visibility("default"))) | ||
22 | # else | ||
23 | # define EAPI | ||
24 | # endif | ||
25 | # else | ||
26 | # define EAPI | ||
27 | # endif | ||
28 | #endif /* ! _WIN32 */ | ||
29 | |||
30 | /** | ||
31 | * @file | ||
32 | * @brief These routines are used for Evas data types. | ||
33 | */ | ||
34 | |||
35 | typedef unsigned char Evas_Bool; | ||
36 | |||
37 | typedef struct _Evas_Array_Hash Evas_Array_Hash; | ||
38 | typedef struct _Evas_Hash Evas_Hash; /**< A Hash table handle */ | ||
39 | typedef struct _Evas_List Evas_List; /**< A generic linked list node handle */ | ||
40 | typedef struct _Evas_Object_List Evas_Object_List; | ||
41 | |||
42 | struct _Evas_Hash | ||
43 | { | ||
44 | int population; | ||
45 | Evas_Object_List *buckets[256]; | ||
46 | }; | ||
47 | |||
48 | struct _Evas_List /** A linked list node */ | ||
49 | { | ||
50 | void *data; /**< Pointer to list element payload */ | ||
51 | Evas_List *next; /**< Next member in the list */ | ||
52 | Evas_List *prev; /**< Previous member in the list */ | ||
53 | struct _Evas_List_Accounting *accounting; /**< Private list accounting info - don't touch */ | ||
54 | }; | ||
55 | |||
56 | struct _Evas_Object_List | ||
57 | { | ||
58 | Evas_Object_List *next, *prev; | ||
59 | Evas_Object_List *last; | ||
60 | }; | ||
61 | |||
62 | |||
63 | #ifdef __cplusplus | ||
64 | extern "C" { | ||
65 | #endif | ||
66 | |||
67 | /* | ||
68 | * Evas Array Hash functions | ||
69 | */ | ||
70 | |||
71 | EAPI Evas_Array_Hash *evas_array_hash_new (void); | ||
72 | EAPI void evas_array_hash_free (Evas_Array_Hash *hash); | ||
73 | EAPI void evas_array_hash_add (Evas_Array_Hash *hash, | ||
74 | int key, | ||
75 | int data); | ||
76 | EAPI int evas_array_hash_search (Evas_Array_Hash *hash, | ||
77 | int key); | ||
78 | |||
79 | |||
80 | /* | ||
81 | * Evas Hash functions | ||
82 | */ | ||
83 | |||
84 | /* FIXME: add: | ||
85 | * api to add find, del members by data, size not just string and also | ||
86 | * provide hash generation functions settable by the app | ||
87 | * | ||
88 | * do we really need this? hmmm - let me think... there may be a better way | ||
89 | */ | ||
90 | EAPI Evas_Hash *evas_hash_add (Evas_Hash *hash, | ||
91 | const char *key, | ||
92 | const void *data); | ||
93 | EAPI Evas_Hash *evas_hash_direct_add (Evas_Hash *hash, | ||
94 | const char *key, | ||
95 | const void *data); | ||
96 | EAPI Evas_Hash *evas_hash_del (Evas_Hash *hash, | ||
97 | const char *key, | ||
98 | const void *data); | ||
99 | EAPI void * evas_hash_find (const Evas_Hash *hash, | ||
100 | const char *key); | ||
101 | EAPI void * evas_hash_modify (Evas_Hash *hash, | ||
102 | const char *key, | ||
103 | const void *data); | ||
104 | EAPI int evas_hash_size (const Evas_Hash *hash); | ||
105 | EAPI void evas_hash_free (Evas_Hash *hash); | ||
106 | EAPI void evas_hash_foreach (const Evas_Hash *hash, | ||
107 | Evas_Bool (*func)( | ||
108 | const Evas_Hash *hash, | ||
109 | const char * | ||
110 | key, | ||
111 | void *data, | ||
112 | void *fdata), | ||
113 | const void *fdata); | ||
114 | EAPI int evas_hash_alloc_error (void); | ||
115 | |||
116 | |||
117 | /* | ||
118 | * Evas List functions | ||
119 | */ | ||
120 | |||
121 | EAPI Evas_List *evas_list_append (Evas_List *list, | ||
122 | const void *data); | ||
123 | EAPI Evas_List *evas_list_prepend (Evas_List *list, | ||
124 | const void *data); | ||
125 | EAPI Evas_List *evas_list_append_relative (Evas_List *list, | ||
126 | const void *data, | ||
127 | const void *relative); | ||
128 | EAPI Evas_List *evas_list_append_relative_list (Evas_List *list, | ||
129 | const void *data, | ||
130 | Evas_List *relative); | ||
131 | EAPI Evas_List *evas_list_prepend_relative (Evas_List *list, | ||
132 | const void *data, | ||
133 | const void *relative); | ||
134 | EAPI Evas_List *evas_list_prepend_relative_list (Evas_List *list, | ||
135 | const void *data, | ||
136 | Evas_List *relative); | ||
137 | EAPI Evas_List *evas_list_remove (Evas_List *list, | ||
138 | const void *data); | ||
139 | EAPI Evas_List *evas_list_remove_list (Evas_List *list, | ||
140 | Evas_List *remove_list); | ||
141 | EAPI Evas_List *evas_list_promote_list (Evas_List *list, | ||
142 | Evas_List *move_list); | ||
143 | EAPI void * evas_list_find (const Evas_List *list, | ||
144 | const void *data); | ||
145 | EAPI Evas_List *evas_list_find_list (const Evas_List *list, | ||
146 | const void *data); | ||
147 | EAPI Evas_List *evas_list_free (Evas_List *list); | ||
148 | EAPI Evas_List *evas_list_last (const Evas_List *list); | ||
149 | EAPI Evas_List *evas_list_next (const Evas_List *list); | ||
150 | EAPI Evas_List *evas_list_prev (const Evas_List *list); | ||
151 | EAPI void * evas_list_data (const Evas_List *list); | ||
152 | EAPI int evas_list_count (const Evas_List *list); | ||
153 | EAPI void * evas_list_nth (const Evas_List *list, int n); | ||
154 | EAPI Evas_List *evas_list_nth_list (const Evas_List *list, int n); | ||
155 | EAPI Evas_List *evas_list_reverse (Evas_List *list); | ||
156 | EAPI Evas_List *evas_list_sort (Evas_List *list, | ||
157 | int size, | ||
158 | int (*func)(void *,void *)); | ||
159 | EAPI int evas_list_alloc_error (void); | ||
160 | |||
161 | |||
162 | /* | ||
163 | * Evas Object List functions | ||
164 | */ | ||
165 | |||
166 | EAPI void * evas_object_list_append (void *in_list, | ||
167 | void *in_item); | ||
168 | EAPI void * evas_object_list_prepend (void *in_list, | ||
169 | void *in_item); | ||
170 | EAPI void * evas_object_list_append_relative (void *in_list, | ||
171 | void *in_item, | ||
172 | void *in_relative); | ||
173 | EAPI void * evas_object_list_prepend_relative (void *in_list, | ||
174 | void *in_item, | ||
175 | void *in_relative); | ||
176 | EAPI void * evas_object_list_remove (void *in_list, | ||
177 | void *in_item); | ||
178 | EAPI void * evas_object_list_find (void *in_list, | ||
179 | void *in_item); | ||
180 | |||
181 | |||
182 | /* | ||
183 | * Evas Stringshare functions | ||
184 | */ | ||
185 | |||
186 | EAPI void evas_stringshare_init (void); /* not implemented */ | ||
187 | EAPI void evas_stringshare_shutdown (void); /* not implemented */ | ||
188 | EAPI const char *evas_stringshare_add (const char *str); | ||
189 | EAPI void evas_stringshare_del (const char *str); | ||
190 | |||
191 | #ifdef __cplusplus | ||
192 | } | ||
193 | #endif | ||
194 | |||
195 | #endif /* _EVAS_DATA_H */ | ||