NaviServer urlspace Data Structure - NaviServer urlspace Data Structure
TABLE OF CONTENTS
DESCRIPTION
The urlspace Trie
There are four basic data structures used in maintaining the urlspace trie. They are:
ns_UrlSpecificSet("server1", "GET", "/foo/bar/*.html", myID, myData, 0, MyDeleteProc);
------------------------------------------------------------------------------
urlspace: JUNCTION
byname: INDEX [*][ ][ ][ ][ ]
|
+--------------+
|
V
CHANNEL
filter: CHAR* "*.html"
trie: TRIE
indexnode: INDEX* (NULL)
branches: INDEX [*][ ][ ][ ][ ]
|
+-----------------------------+
|
V
BRANCH
word: CHAR* "server1"
node: TRIE
indexnode: INDEX* (NULL)
branches: INDEX [*][ ][ ][ ][ ]
|
+--------------------------+
|
V
BRANCH
word: CHAR* "GET"
node: TRIE
indexnode: INDEX* (NULL)
branches: INDEX [*][ ][ ][ ][ ]
|
+--------------------------+
|
V
BRANCH
word: CHAR* "foo"
node: TRIE
indexnode: INDEX* (NULL)
branches: INDEX [*][ ][ ][ ][ ]
|
+--------------------------+
|
V
BRANCH
word: CHAR* "*.html"
node: TRIE
indexnode: INDEX* -----------------> [*][ ][ ][ ][ ]
branches: INDEX [ ][ ][ ][ ][ ] |
|
+---------------------------------------------+
|
V
NODE
id: INT myID
dataInherit: VOID* myData
dataNoInherit: VOID* 0
deleteFuncInherit: VOID(*)(VOID*) MyDeleteProc
deleteFuncNoInherit: VOID(*)(VOID*) 0
|