about summary refs log tree commit homepage
path: root/ext/http11/tst.h
diff options
context:
space:
mode:
authorevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2007-10-26 02:59:15 +0000
committerevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2007-10-26 02:59:15 +0000
commitd4ff84b8d3afa45a69c23eb18899194bf7219140 (patch)
tree4a8e4b4e36ea36a8f543bfaaa2e6ec50fa1e94b6 /ext/http11/tst.h
parent4ff4a7d915f01dabcb87125aa89159fcc5d48534 (diff)
downloadunicorn-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.h40
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);
+
+