ucx/ucx.h

changeset 1
1bcaac272cdf
child 5
88625853ae74
equal deleted inserted replaced
0:0f94d369bb02 1:1bcaac272cdf
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

mercurial