diff -r 0f94d369bb02 -r 1bcaac272cdf ucx/ucx.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ucx/ucx.h Fri Nov 30 21:18:13 2012 +0100 @@ -0,0 +1,51 @@ +/* + * File: ucx.h + * Author: olaf + * + * Created on 31. Dezember 2011, 17:17 + */ + +#ifndef UCX_H +#define UCX_H + +#include + +#ifdef __cplusplus +#ifndef _Bool +#define _Bool bool +#define restrict +#endif +extern "C" { +#endif + +#define UCX_FOREACH(type,list,elem) \ + for (type elem = list ; elem != NULL ; elem = elem->next) + +#ifdef __cplusplus +#define ucx_dynarray_new(type,identifier,length)\ + type* identifier; identifier = new type[length] +#define ucx_dynarray_free(identifier) delete [] identifier +#else +#define ucx_dynarray_new(type,identifier,length)\ + type identifier[length] +#define ucx_dynarray_free(identifier) +#endif + +/* element1,element2,custom data -> {-1,0,1} */ +typedef int(*cmp_func)(void*,void*,void*); + +/* element,custom data -> copy of element */ +typedef void*(*copy_func)(void*,void*); + +/* buffer, element size, element count, stream */ +typedef size_t(*write_func)(const void*, size_t, size_t, void*); + +/* buffer, element size, element count, stream */ +typedef size_t(*read_func)(void*, size_t, size_t, void*); + +#ifdef __cplusplus +} +#endif + +#endif /* UCX_H */ +