SYNOPSIS

       #include <inn/tst.h>

       struct tst;

       struct tst *tst_init(int node_line_width);

       void tst_cleanup(struct tst *tst);

       int tst_insert(struct tst *tst, const unsigned char *key, void *data,
       int option, void **exist_ptr);

       void *tst_search(struct tst *tst, const unsigned char *key);

       void *tst_delete(struct tst *tst, const unsigned char *key);


DESCRIPTION

       tst_init allocates memory for members of struct tst, and allocates the
       first node_line_width nodes. A NULL pointer is returned by tst_init if
       any part of the memory allocation fails. On success, a pointer to a
       struct tst is returned.

       The value for node_line_width must be chosen very carefully. One node
       is required for every character in the tree. If you choose a value that
       is too small, your application will spend too much time calling mal-
       loc(3) and your node space will be too spread out. Too large a value is
       just a waste of space.

       tst_cleanup frees all memory allocated to nodes, internal structures,
       as well as tst itself.

       tst_insert inserts the string key into the tree. Behavior when a dupli-
       cate key is inserted is controlled by option. If key is already in the
       tree then TST_DUPLICATE_KEY is returned, and the data pointer for the
       existing key is placed in exist_ptr.  If option is set to TST_REPLACE
       then the existing data pointer for the existing key is replaced by
       data.  Note that the old data pointer will still be placed in
       exist_ptr.

       If a duplicate key is encountered and option is not set to TST_REPLACE
       then TST_DUPLICATE_KEY is returned. If key is zero length then
       TST_NULL_KEY is returned. A successful insert or replace returns
       TST_OK. A return value of TST_ERROR indicates that a memory allocation
       error occurred while trying to grow the node free.

       Note that the data argument must never be NULL. If it is, then calls to
       tst_search will fail for a key that exists because the data value was
       set to NULL, which is what tst_search returns. If you just want a sim-
       ple existence tree, use the tst pointer as the data pointer.

       tst_search finds the string key in the tree if it exists and returns
       the data pointer associated with that key.
       $Id: tst.3 6106 2003-01-02 12:22:14Z vinocur $



INN 2.4.0                         2003-01-02                            tst(3)

Man(1) output converted with man2html