1.1 --- a/core/sm_trie.cpp Sat Apr 05 00:06:27 2008 +0000
1.2 +++ b/core/sm_trie.cpp Sun Apr 06 06:56:45 2008 +0000
1.3 @@ -90,3 +90,32 @@
1.4 {
1.5 return trie->k.mem_usage();
1.6 }
1.7 +
1.8 +struct trie_iter_data
1.9 +{
1.10 + SM_TRIE_BAD_ITERATOR iter;
1.11 + void *ptr;
1.12 + Trie *pTrie;
1.13 +};
1.14 +
1.15 +void our_trie_iterator(KTrie<void *> *pTrie, const char *name, void *& obj, void *data)
1.16 +{
1.17 + trie_iter_data *our_iter;
1.18 +
1.19 + our_iter = (trie_iter_data *)data;
1.20 + our_iter->iter(our_iter->pTrie, name, &obj, our_iter->ptr);
1.21 +}
1.22 +
1.23 +void sm_trie_bad_iterator(Trie *trie,
1.24 + char *buffer,
1.25 + size_t maxlength,
1.26 + SM_TRIE_BAD_ITERATOR iter,
1.27 + void *data)
1.28 +{
1.29 + trie_iter_data our_iter;
1.30 +
1.31 + our_iter.iter = iter;
1.32 + our_iter.ptr = data;
1.33 + our_iter.pTrie = trie;
1.34 + trie->k.bad_iterator(buffer, maxlength, &our_iter, our_trie_iterator);
1.35 +}