|
1 /* |
|
2 * File: ucx.h |
|
3 * Author: olaf |
|
4 * |
|
5 * Created on 31. Dezember 2011, 17:17 |
|
6 */ |
|
7 |
|
8 #ifndef UCX_H |
|
9 #define UCX_H |
|
10 |
|
11 #include <stdlib.h> |
|
12 |
|
13 #ifdef __cplusplus |
|
14 #ifndef _Bool |
|
15 #define _Bool bool |
|
16 #define restrict |
|
17 #endif |
|
18 extern "C" { |
|
19 #endif |
|
20 |
|
21 #define UCX_FOREACH(type,list,elem) \ |
|
22 for (type elem = list ; elem != NULL ; elem = elem->next) |
|
23 |
|
24 #ifdef __cplusplus |
|
25 #define ucx_dynarray_new(type,identifier,length)\ |
|
26 type* identifier; identifier = new type[length] |
|
27 #define ucx_dynarray_free(identifier) delete [] identifier |
|
28 #else |
|
29 #define ucx_dynarray_new(type,identifier,length)\ |
|
30 type identifier[length] |
|
31 #define ucx_dynarray_free(identifier) |
|
32 #endif |
|
33 |
|
34 /* element1,element2,custom data -> {-1,0,1} */ |
|
35 typedef int(*cmp_func)(void*,void*,void*); |
|
36 |
|
37 /* element,custom data -> copy of element */ |
|
38 typedef void*(*copy_func)(void*,void*); |
|
39 |
|
40 /* buffer, element size, element count, stream */ |
|
41 typedef size_t(*write_func)(const void*, size_t, size_t, void*); |
|
42 |
|
43 /* buffer, element size, element count, stream */ |
|
44 typedef size_t(*read_func)(void*, size_t, size_t, void*); |
|
45 |
|
46 #ifdef __cplusplus |
|
47 } |
|
48 #endif |
|
49 |
|
50 #endif /* UCX_H */ |
|
51 |