Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


CDBW(3)                    Library Functions Manual                    CDBW(3)

NAME
     cdbw_open, cdbw_put, cdbw_put_data, cdbw_put_key, cdbw_stable_seeder,
     cdbw_output, cdbw_close - create constant databases

SYNOPSIS
     #include <cdbw.h>

     struct cdbw *
     cdbw_open(void);

     int
     cdbw_put(struct cdbw *cdbw, const void *key, size_t keylen,
         const void *data, size_t datalen);

     int
     cdbw_put_data(struct cdbw *cdbw, const void *data, size_t datalen,
         uint32_t *index);

     int
     cdbw_put_key(struct cdbw *cdbw, const void *key, size_t keylen,
         uint32_t index);

     uint32_t
     cdbw_stable_seeder(void);

     int
     cdbw_output(struct cdbw *cdbw, int output, const char *descr,
         uint32_t (*seedgen)(void));

     void
     cdbw_close(struct cdbw *cdbw);

DESCRIPTION
     The cdbw functions are used to create a constant databases for use with
     cdbr(3).  Details about the file format, including overhead and
     limitations, can be found in cdb(5).

     cdbw_open() prepares a new cdb writer.  The function returns a handle to
     pass to the other functions.

     cdbw_close() frees all resources associated with the handle.

     cdbw_put() adds the given (key,value) pair after checking for a duplicate
     key.  cdbw_put_data() adds the given value to the writer without adding a
     key reference.  The returned index can be used in subsequent calls to
     cdbw_put_key() to add one or more keys pointing to this value.
     cdbw_put_key() checks for duplicate keys and valid index arguments.  On
     success it adds the given key.

     cdbw_output() computes the database file and writes it to the given
     descriptor.  The function returns an error if the file cannot be written
     correctly.  The descr parameter, a string of up to 16 bytes, provides a
     human readable description of the database content.  The seedgen
     parameter can be used to override the default PRNG.  The bitwise layout
     of the output depends on the chosen seed.  The function should return a
     different value for each invocation.  The cdbw_stable_seeder() can be
     used to create reproducible output.  It may be slower than the default.

SEE ALSO
     cdbr(3), cdb(5)

HISTORY
     Support for the cdb format first appeared in NetBSD 6.0.

AUTHORS
     The cdbr and cdbw functions have been written by Joerg Sonnenberger
     <joerg@NetBSD.org>.

NetBSD 10.99                   February 6, 2014                   NetBSD 10.99