20 struct _ds3_uint64_string_map {
25 struct _ds3_uint64_string_map_iter {
26 GHashTableIter* g_iter;
30 g_free((uint64_t*) data);
39 struct _ds3_uint64_string_map* map = g_new0(
struct _ds3_uint64_string_map, 1);
46 if (map == NULL || map->hash == NULL) {
50 uint64_t* key_cpy = g_new0(uint64_t, 1);
52 gboolean result = g_hash_table_insert(map->hash, key_cpy, value_cpy);
53 if (result == FALSE) {
60 if (map == NULL || map->hash == NULL) {
63 gboolean result = g_hash_table_contains(map->hash, key);
64 if (result == FALSE) {
72 if (map == NULL || map->hash == NULL) {
75 GPtrArray* value = g_hash_table_lookup(map->hash, key);
83 return (uint64_t) g_hash_table_size(map->hash);
90 if (map->hash != NULL) {
92 g_hash_table_remove_all(map->hash);
95 g_hash_table_unref(map->hash);
104 struct _ds3_uint64_string_map_iter* iter = g_new0(
struct _ds3_uint64_string_map_iter, 1);
105 iter->g_iter = g_new0(GHashTableIter, 1);
106 g_hash_table_iter_init(iter->g_iter, map->hash);
114 if (iter->g_iter != NULL) {
115 g_free(iter->g_iter);
128 gboolean has_next = g_hash_table_iter_next(iter->g_iter, &g_key, &g_value);
129 if (has_next == FALSE) {
136 uint64_t* key_ptr = (uint64_t*) g_key;
137 pair->
key = *key_ptr;
147 if (pair->
value != NULL) {
struct _ds3_uint64_string_map_iter ds3_uint64_string_map_iter
ds3_bool ds3_uint64_string_map_insert(ds3_uint64_string_map *map, const uint64_t *key, const ds3_str *value)
void ds3_uint64_string_map_free(ds3_uint64_string_map *map)
uint64_t ds3_uint64_string_map_size(ds3_uint64_string_map *map)
ds3_uint64_string_pair * ds3_uint64_string_map_iter_next(ds3_uint64_string_map_iter *iter)
ds3_uint64_string_map_iter * ds3_uint64_string_map_iter_init(ds3_uint64_string_map *map)
void ds3_uint64_string_pair_free(ds3_uint64_string_pair *pair)
void ds3_uint64_string_map_iter_free(ds3_uint64_string_map_iter *iter)
void ds3_str_free(ds3_str *string)
ds3_str * ds3_str_dup(const ds3_str *string)
static void _internal_uint64_free(gpointer data)
ds3_uint64_string_map * ds3_uint64_string_map_init(void)
ds3_bool ds3_uint64_string_map_contains(ds3_uint64_string_map *map, uint64_t *key)
struct _ds3_uint64_string_map ds3_uint64_string_map
ds3_str * ds3_uint64_string_map_lookup(ds3_uint64_string_map *map, uint64_t *key)
static void _internal_str_free(gpointer data)