diff src/ploki/variable.h @ 4223:ac0403686959

<oerjan> rm -rf src/ploki; mv ploki src
author HackBot
date Fri, 20 Dec 2013 22:18:50 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ploki/variable.h	Fri Dec 20 22:18:50 2013 +0000
@@ -0,0 +1,34 @@
+#ifndef VARIABLE_H_
+#define VARIABLE_H_
+
+#include "config.h"
+#include "strhash.h"
+
+#include <stddef.h>
+
+typedef size_t t_vr_cookie;
+#define VR_NO_COOKIE ((size_t)-1)
+
+typedef struct {
+	void **data;
+	size_t size, length;
+	t_strhash *hash;
+	void (*del)(void *);
+} t_vr_container;
+
+t_vr_container *vr_new(void (*)(void *));
+void vr_delete(t_vr_container *);
+
+t_vr_cookie vr_exists(const t_vr_container *, const char *, size_t);
+t_vr_cookie vr_register(t_vr_container *, const char *, size_t, void *);
+
+void vr_freeze(t_vr_container *);
+
+ATTR_PURE
+void *vr_data(const t_vr_container *, t_vr_cookie);
+
+#if !DEBUG_P
+#define vr_data(vc, c) ((vc)->data[c])
+#endif
+
+#endif /* VARIABLE_H_ */