XenevaOS
Loading...
Searching...
No Matches
hashmap.h
Go to the documentation of this file.
1
30#ifndef __HASHMAP_H__
31#define __HASHMAP_H__
32
33#include <aurora.h>
34
35typedef unsigned int(*hashmap_hash_t)(const void* key);
36typedef int(*hashmap_comp_t)(const void *a, const void* b);
37typedef void(*hashmap_free_t)(void*);
38typedef void*(*hashmap_dupe_t)(const void*);
39
40typedef struct hashmap_entry {
41 char* key;
42 void* value;
45
46
56
57/*
58*AuHashmapCreate -- create a new hashmap
59* @param size -- size of the hashmap
60*/
63AU_EXTERN AU_EXPORT void* AuHashmapSet(hashmap_t* map, const void* key, void* value);
64AU_EXTERN AU_EXPORT void* AuHashmapGet(hashmap_t* map, const void* key);
65AU_EXTERN AU_EXPORT void* AuHashmapRemove(hashmap_t* map, const void* key);
66AU_EXTERN AU_EXPORT int AuHashmapHas(hashmap_t* map, const void* key);
69
70#endif
#define AU_EXTERN
Definition aurora.h:50
#define AU_EXPORT
Definition aurora.h:38
AU_EXTERN AU_EXPORT int AuHashmapHas(hashmap_t *map, const void *key)
Definition hashmap.cpp:182
int(* hashmap_comp_t)(const void *a, const void *b)
Definition hashmap.h:36
void *(* hashmap_dupe_t)(const void *)
Definition hashmap.h:38
AU_EXTERN AU_EXPORT hashmap_t * AuHashmapCreate(int size)
Definition hashmap.cpp:73
AU_EXTERN AU_EXPORT void AuHashmapFree(hashmap_t *map)
Definition hashmap.cpp:197
unsigned int(* hashmap_hash_t)(const void *key)
Definition hashmap.h:35
AU_EXTERN AU_EXPORT void * AuHashmapSet(hashmap_t *map, const void *key, void *value)
Definition hashmap.cpp:100
struct hashmap_entry hashmap_entry_t
void(* hashmap_free_t)(void *)
Definition hashmap.h:37
AU_EXTERN AU_EXPORT void * AuHashmapRemove(hashmap_t *map, const void *key)
Definition hashmap.cpp:149
AU_EXTERN AU_EXPORT hashmap_t * AuHashmapCreateInt(int size)
Definition hashmap.cpp:87
AU_EXTERN AU_EXPORT int AuHashmapIsEmpty(hashmap_t *map)
Definition hashmap.cpp:211
AU_EXTERN AU_EXPORT void * AuHashmapGet(hashmap_t *map, const void *key)
Definition hashmap.cpp:133
struct hashmap hashmap_t
Definition hashmap.h:40
char * key
Definition hashmap.h:41
void * value
Definition hashmap.h:42
struct hashmap_entry * next
Definition hashmap.h:43
Definition hashmap.h:47
hashmap_free_t hash_key_free
Definition hashmap.h:51
hashmap_comp_t hash_comp
Definition hashmap.h:49
hashmap_dupe_t hash_key_dup
Definition hashmap.h:50
hashmap_entry_t ** entries
Definition hashmap.h:54
hashmap_hash_t hash_func
Definition hashmap.h:48
hashmap_free_t hash_val_free
Definition hashmap.h:52
size_t size
Definition hashmap.h:53