diff options
author | Christian Pointner <equinox@anytun.org> | 2008-12-22 18:51:03 +0000 |
---|---|---|
committer | Christian Pointner <equinox@anytun.org> | 2008-12-22 18:51:03 +0000 |
commit | 1c16c9dd9fca28260793f8b89b5fe484e541715d (patch) | |
tree | 8d95f7780fb0436264695bd6f7034d8df1514224 /src/routingTreeWalker.hpp | |
parent | compiler waring fix (diff) |
cleaned up routingTree structure
Diffstat (limited to 'src/routingTreeWalker.hpp')
-rw-r--r-- | src/routingTreeWalker.hpp | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/src/routingTreeWalker.hpp b/src/routingTreeWalker.hpp deleted file mode 100644 index 33e4ae6..0000000 --- a/src/routingTreeWalker.hpp +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef __ROUTING_TREE_WALKER_ -#define __ROUTING_TREE_WALKER_ -template <class BinaryType> -void routingTreeWalker(BinaryType bytes ,RoutingTreeNode * node,u_int8_t length,u_int16_t mux) -{ - for (int i=0; i<(length/8); i++) - { - if (!node->nodes_[bytes[i]]) - node->nodes_[bytes[i]] = new RoutingTreeNode; - node=node->nodes_[bytes[i]]; - } - if (length%8) - { - unsigned char idx=0xff; - idx <<=8-(length%8); - idx &= bytes[length/8]; - unsigned char maxidx=0xff; - maxidx>>=(length%8); - maxidx|=idx; - for (unsigned char i=idx; i<=maxidx; i++) - { - if (!node->nodes_[i]) - node->nodes_[i] = new RoutingTreeNode; - node->nodes_[i]->valid_=true; - node->nodes_[i]->mux_=mux; - } - } else { - node->valid_=true; - node->mux_=mux; - } -} - -template <class BinaryType> -u_int16_t routingTreeFinder(BinaryType bytes ,RoutingTreeNode & root ) -{ - bool valid=0; - u_int16_t mux=0; - RoutingTreeNode * node = &root; - if (root.valid_) - { - mux=root.mux_; - valid=1; - } - for (size_t level=0;level<bytes.size();level++) - { - if (node->nodes_[bytes[level]]) - { - node=node->nodes_[bytes[level]]; - if(node->valid_) - { - mux=node->mux_; - valid=1; - } - } else { - break; - } - } - if(!valid) - throw std::runtime_error("no route"); - return mux; -} -#endif - |