ucx/ucx.h

Fri, 30 Nov 2012 13:10:58 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Fri, 30 Nov 2012 13:10:58 +0100
changeset 76
655020a30e77
parent 69
fb59270b1de3
child 93
a6a99e721660
permissions
-rw-r--r--

fixed buffer

     1 /* 
     2  * File:   ucx.h
     3  * Author: olaf
     4  *
     5  * Created on 31. Dezember 2011, 17:17
     6  */
     8 #ifndef UCX_H
     9 #define	UCX_H
    11 #include <stdlib.h>
    13 #ifdef	__cplusplus
    14 #ifndef _Bool
    15 #define _Bool bool
    16 #define restrict
    17 #endif
    18 extern "C" {
    19 #endif
    21 #define UCX_FOREACH(type,list,elem) \
    22         for (type elem = list ; elem != NULL ; elem = elem->next)
    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
    34 /* element1,element2,custom data -> {-1,0,1} */
    35 typedef int(*cmp_func)(void*,void*,void*);
    37 /* element,custom data -> copy of element */
    38 typedef void*(*copy_func)(void*,void*);
    40 /* buffer, element size, element count, stream */
    41 typedef size_t(*write_func)(const void*, size_t, size_t, void*);
    43 /* buffer, element size, element count, stream */
    44 typedef size_t(*read_func)(void*, size_t, size_t, void*);
    46 #ifdef	__cplusplus
    47 }
    48 #endif
    50 #endif	/* UCX_H */

mercurial