summaryrefslogtreecommitdiff
path: root/lib/util/set.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/util/set.h')
-rw-r--r--lib/util/set.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/util/set.h b/lib/util/set.h
new file mode 100644
index 0000000..bd05351
--- /dev/null
+++ b/lib/util/set.h
@@ -0,0 +1,39 @@
+#ifndef __SET_H__
+#define __SET_H__
+#include <stdlib.h>
+#include "hashtable.h"
+
+/**
+ * implementation of a set based on a hashtable implementation
+ *
+ **/
+
+typedef struct hashtable set_t;
+
+void set_init(set_t *set)
+{
+ ht_init_sha1(set);
+}
+
+
+void set_insert(set_t *set, void *data, unsigned int data_length)
+{
+ ht_add(set, data, data_length, data, data_length);
+}
+
+unsigned int set_is_in_set(set_t *set, void *data, unsigned int data_length)
+{
+ if(ht_get(set, data, data_length) == NULL)
+ return 0;
+ else
+ return 1;
+}
+
+void set_delete(set_t *set, void *data, unsigned int data_length)
+{
+ ht_delete(set, data, data_length);
+}
+
+#define SET_FOR_EACH
+
+#endif