diff options
author | evanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9> | 2007-10-26 02:59:15 +0000 |
---|---|---|
committer | evanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9> | 2007-10-26 02:59:15 +0000 |
commit | d4ff84b8d3afa45a69c23eb18899194bf7219140 (patch) | |
tree | 4a8e4b4e36ea36a8f543bfaaa2e6ec50fa1e94b6 /ext/http11/tst.h | |
parent | 4ff4a7d915f01dabcb87125aa89159fcc5d48534 (diff) | |
download | unicorn-d4ff84b8d3afa45a69c23eb18899194bf7219140.tar.gz |
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@741 19e92222-5c0b-0410-8929-a290d50e31e9
Diffstat (limited to 'ext/http11/tst.h')
-rw-r--r-- | ext/http11/tst.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/ext/http11/tst.h b/ext/http11/tst.h new file mode 100644 index 0000000..3a58a65 --- /dev/null +++ b/ext/http11/tst.h @@ -0,0 +1,40 @@ + + +struct node +{ + unsigned char value; + struct node *left; + struct node *middle; + struct node *right; +}; + +struct tst +{ + int node_line_width; + struct node_lines *node_lines; + struct node *free_list; + struct node *head[127]; +}; + +struct node_lines +{ + struct node *node_line; + struct node_lines *next; +}; + +enum tst_constants +{ + TST_OK, TST_ERROR, TST_NULL_KEY, TST_DUPLICATE_KEY, TST_REPLACE, TST_LONGEST_MATCH +}; + +struct tst *tst_init(int node_line_width); + +int tst_insert(unsigned char *key, void *data, struct tst *tst, int option, void **exist_ptr); + +void *tst_search(const unsigned char *key, struct tst *tst, int option, unsigned int *match_len); + +void *tst_delete(unsigned char *key, struct tst *tst); + +void tst_cleanup(struct tst *tst); + + |