ucx/ucx.h

changeset 1
1bcaac272cdf
child 5
88625853ae74
--- /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 <stdlib.h>
+
+#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 */
+

mercurial