Lines Matching defs:key

46     pa_datum key;
88 static entry* new_entry(const pa_datum *key, const pa_datum *data) {
91 pa_assert(key);
95 e->key.data = key->size > 0 ? pa_xmemdup(key->data, key->size) : NULL;
96 e->key.size = key->size;
104 if (e->key.data)
105 pa_xfree(e->key.data);
172 pa_datum key;
184 key.size = 0;
185 key.data = NULL;
191 key.data = d;
192 key.size = l;
204 e->key.data = key.data;
205 e->key.size = key.size;
208 pa_hashmap_put(db->map, &e->key, e);
270 pa_datum* pa_database_get(pa_database *database, const pa_datum *key, pa_datum* data) {
275 pa_assert(key);
278 e = pa_hashmap_get(db->map, key);
289 int pa_database_set(pa_database *database, const pa_datum *key, const pa_datum* data, bool overwrite) {
295 pa_assert(key);
301 e = new_entry(key, data);
303 if (pa_hashmap_put(db->map, &e->key, e) < 0) {
304 /* entry with same key exists in hashmap */
307 r = pa_hashmap_remove(db->map, key);
308 pa_hashmap_put(db->map, &e->key, e);
321 int pa_database_unset(pa_database *database, const pa_datum *key) {
325 pa_assert(key);
327 return pa_hashmap_remove_and_free(db->map, key);
347 pa_datum* pa_database_first(pa_database *database, pa_datum *key, pa_datum *data) {
352 pa_assert(key);
359 key->data = e->key.size > 0 ? pa_xmemdup(e->key.data, e->key.size) : NULL;
360 key->size = e->key.size;
367 return key;
370 pa_datum* pa_database_next(pa_database *database, const pa_datum *key, pa_datum *next, pa_datum *data) {
380 if (!key)
383 search = pa_hashmap_get(db->map, key);
399 next->data = e->key.size > 0 ? pa_xmemdup(e->key.data, e->key.size) : NULL;
400 next->size = e->key.size;
447 if (write_data(f, e->key.data, e->key.size) < 0)