NAME
cdb_traverse_init, cdb_traverse_next - iterate over a cdb
SYNOPSIS
#include <limb/cdb.h>
void cdb_traverse_init(cdb_traverse *trav) int cdb_traverse_next(const cdb *c, cdb_data *key, cdb_data *data, cdb_traverse *trav)
DESCRIPTION
The cdb_traverse_init
() macro initialize the state pointed by trav
so that
the next invocation of cdb_traverse_next
() using that state will find the
first element in the database.
The cdb_traverse_next
() function find the next element in the cdb pointed by
c
, as per the state pointed by trav
.
When found, information about the key is placed into the cdb_data pointed by
key
while information about the data associated with the element is placed
into the cdb_data pointed by data
.
The state pointed by trav
is also updated so that the next call using the same
arguments for c
and trav
return the next element in the database, if any,
until all elements have been found.
RETURN VALUE
The cdb_traverse_next
() function returns -1 when either the cdb pointed by
c
or the state pointed by trav
is invalid; It returns 1 on success, i.e. an
element was found and information about its key and associated data were set
inside the cdb_data pointed by key
and data
, respectively.
Otherwise, i.e. no more element were found (i.e. the entire database has been iterated over), it returns 0.