4 typedef struct map map_t;
6 typedef const struct map_impl *map_type_t;
8 extern map_type_t MAP_TYPE_HASHTABLE;
9 extern map_type_t MAP_TYPE_SKIPLIST;
10 extern map_type_t MAP_TYPE_LIST;
12 map_t * map_alloc (map_type_t map_type);
13 uint64_t map_get (map_t *map, const void *key_data, uint32_t key_len);
14 uint64_t map_set (map_t *map, const void *key_data, uint32_t key_len, uint64_t new_val);
15 uint64_t map_add (map_t *map, const void *key_data, uint32_t key_len, uint64_t new_val);
16 uint64_t map_cas (map_t *map, const void *key_data, uint32_t key_len, uint64_t expected_val, uint64_t new_val);
17 uint64_t map_replace(map_t *map, const void *key_data, uint32_t key_len, uint64_t new_val);
18 uint64_t map_remove (map_t *map, const void *key_data, uint32_t key_len);
19 uint64_t map_count (map_t *map);
20 void map_print (map_t *map);
21 void map_free (map_t *map);