Provided by: libqb-dev_2.0.8-1ubuntu2_amd64 bug

NAME

       qbmap.h - This provides a map interface to a Patricia trie, hashtable or skiplist.

SYNOPSIS

       #include <qb/qbmap.h>

DESCRIPTION

       Ordering

       The hashtable is NOT ordered, but ptrie and skiplist are.

       Iterating

       Below is a simple example of how to iterate over a map.

       const char *p;
       void *data;
       qb_map_iter_t *it = qb_map_iter_create(m);
       for (p = qb_map_iter_next(it, &data); p; p = qb_map_iter_next(it, &data)) {
           printf("%s > %s0, p, (char*) data);
       }
       qb_map_iter_free(it);

       Deletion  of  items within the iterator is supported. But note do not free the item memory
       in the iterator. If you need to free the data items then register for a notifier and  free
       the memory there. This is required as the items are reference counted.

       qb_map_notify_add(m, NULL, my_map_free_handler,
                    QB_MAP_NOTIFY_FREE, NULL);

       Notifications

       These allow you to get callbacks when values are inserted/removed or replaced.

       Prefix matching

       The ptrie supports prefixes in the iterator:

       it = qb_map_pref_iter_create(m, "aa");
       while ((p = qb_map_iter_next(it, &data)) != NULL) {
           printf("%s > %s0, p, (char*)data);
       }
       qb_map_iter_free(it);

       The    ptrie    also    supports    prefixes   in   notifications:   (remember   to   pass
       QB_MAP_NOTIFY_RECURSIVE into the notify_add.

       qb_map_notify_add(m, "root", my_map_notification,
                   (QB_MAP_NOTIFY_INSERTED|
                    QB_MAP_NOTIFY_DELETED|
                    QB_MAP_NOTIFY_REPLACED|
                    QB_MAP_NOTIFY_RECURSIVE),
                   NULL);

NOTE

       hashtable only supports deletion and replacement notificatins. There  is  also  a  special
       global callback for freeing deleted and replaced values (QB_MAP_NOTIFY_FREE).

SEE ALSO

       qb_trie_dump(3), qb_map_iter_create(3), qb_skiplist_create(3), qb_map_notify_del(3),
       qb_map_put(3), qb_map_count_get(3), qb_map_foreach(3), qb_map_pref_iter_create(3),
       qb_map_iter_next(3), qb_map_get(3), qb_map_destroy(3), qb_hashtable_create(3),
       qb_map_iter_free(3), qb_map_notify_add(3), qb_trie_create(3), qb_map_notify_del_2(3),
       qb_map_rm(3)

COPYRIGHT

       Copyright (C) 2010-2020 Red Hat, Inc.