summaryrefslogtreecommitdiff
path: root/include/GameSpy/hashtable.h
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-09-29 10:39:51 -0400
committerMax <mparisi@stevens.edu>2020-09-29 10:39:51 -0400
commita8a179cf67d8ea50160c7cb97208f5bf223f3037 (patch)
tree923c0a7736d844bbfd25ed00faca81ee80f0fe43 /include/GameSpy/hashtable.h
parent69d5442a81cfb31123d29d33f369a9d58f7bc26c (diff)
organize include/, split Gecko_ExceptionPPC.s
Diffstat (limited to 'include/GameSpy/hashtable.h')
-rw-r--r--include/GameSpy/hashtable.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/GameSpy/hashtable.h b/include/GameSpy/hashtable.h
new file mode 100644
index 0000000..784ab35
--- /dev/null
+++ b/include/GameSpy/hashtable.h
@@ -0,0 +1,34 @@
+#ifndef POKEREVO_HASHTABLE_H
+#define POKEREVO_HASHTABLE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "darray.h"
+
+typedef s32 (*HashFunction)(void *, s32);
+
+typedef struct HashTable {
+ DArray **chains;
+ s32 size;
+ DtorFunction dtor;
+ HashFunction hashFunc;
+ CompareFunction compar;
+} HashTable;
+
+HashTable *TableNew(u32 p1, s32 p2, HashFunction hf, CompareFunction cmp, DtorFunction dtor);
+HashTable *TableNew2(u32 p1, s32 size, s32 p3, HashFunction hf, CompareFunction cmp, DtorFunction dtor);
+void TableFree(HashTable *table);
+s32 TableCount(HashTable *table);
+void TableEnter(HashTable *table, void *elem);
+BOOL TableRemove(HashTable *table, void *elem);
+void *TableLookup(HashTable *table, void *elem);
+void TableMapSafe(HashTable *table, MapFunction p2, s32 p3);
+void *TableMapSafe2(HashTable *table, MapFunction p2, s32 p3);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //POKEREVO_HASHTABLE_H