]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2750] Reduce the number of find() wrappers
authorMukund Sivaraman <muks@isc.org>
Wed, 18 Sep 2013 10:22:55 +0000 (15:52 +0530)
committerMukund Sivaraman <muks@isc.org>
Wed, 18 Sep 2013 10:41:09 +0000 (16:11 +0530)
src/lib/datasrc/memory/domaintree.h

index 727f54a06b1a0f81bffee2819ce0d6c1207c745b..51127cb2b3a80b5d6d18d422f3f3519ce97d8dc0 100644 (file)
@@ -1338,17 +1338,6 @@ private:
                            bool (*callback)(const DomainTreeNode<T>&, CBARG),
                            CBARG callback_arg);
 
-    /// \brief Static helper function used by const and non-const
-    /// variants of find() below
-    template <typename TT, typename TTN>
-    static Result findImpl(TT* tree, const isc::dns::Name& name, TTN** node);
-
-    /// \brief Static helper function used by const and non-const
-    /// variants of find() below
-    template <typename TT, typename TTN>
-    static Result findImpl(TT* tree, const isc::dns::Name& name,
-                           TTN** node, DomainTreeNodeChain<T>& node_path);
-
     /// \brief Static helper function used by const and non-const
     /// variants of find() below
     template <typename TT, typename TTN, typename CBARG>
@@ -1452,15 +1441,17 @@ public:
     /// Acts as described in the \ref find section.
     Result find(const isc::dns::Name& name,
                 DomainTreeNode<T>** node) {
-        return (findImpl<DomainTree<T>, DomainTreeNode<T> >
-                (this, name, node));
+        DomainTreeNodeChain<T> node_path;
+        return (findImpl<DomainTree<T>, DomainTreeNode<T>, void* >
+                (this, name, node, node_path, NULL, NULL));
     }
 
     /// \brief Simple find (const variant)
     Result find(const isc::dns::Name& name,
                 const DomainTreeNode<T>** node) const {
-        return (findImpl<const DomainTree<T>, const DomainTreeNode<T> >
-                (this, name, node));
+        DomainTreeNodeChain<T> node_path;
+        return (findImpl<const DomainTree<T>, const DomainTreeNode<T>, void* >
+                (this, name, node, node_path, NULL, NULL));
     }
 
     /// \brief Simple find, with node_path tracking
@@ -1469,16 +1460,16 @@ public:
     Result find(const isc::dns::Name& name, DomainTreeNode<T>** node,
                 DomainTreeNodeChain<T>& node_path)
     {
-        return (findImpl<DomainTree<T>, DomainTreeNode<T> >
-                (this, name, node, node_path));
+        return (findImpl<DomainTree<T>, DomainTreeNode<T>, void* >
+                (this, name, node, node_path, NULL, NULL));
     }
 
     /// \brief Simple find, with node_path tracking (const variant)
     Result find(const isc::dns::Name& name, const DomainTreeNode<T>** node,
                 DomainTreeNodeChain<T>& node_path) const
     {
-        return (findImpl<const DomainTree<T>, const DomainTreeNode<T> >
-                (this, name, node, node_path));
+        return (findImpl<const DomainTree<T>, const DomainTreeNode<T>, void* >
+                (this, name, node, node_path, NULL, NULL));
     }
 
     /// \brief Simple find with callback
@@ -1838,25 +1829,6 @@ DomainTree<T>::deleteHelper(util::MemorySegment& mem_sgmt,
     }
 }
 
-template <typename T>
-template <typename TT, typename TTN>
-typename DomainTree<T>::Result
-DomainTree<T>::findImpl(TT* tree, const isc::dns::Name& name, TTN** node)
-{
-    DomainTreeNodeChain<T> node_path;
-    return (tree->find<void*>(name, node, node_path, NULL, NULL));
-}
-
-template <typename T>
-template <typename TT, typename TTN>
-typename DomainTree<T>::Result
-DomainTree<T>::findImpl(TT* tree, const isc::dns::Name& name,
-                        TTN** node, DomainTreeNodeChain<T>& node_path)
-{
-    const isc::dns::LabelSequence ls(name);
-    return (tree->find<void*>(ls, node, node_path, NULL, NULL));
-}
-
 template <typename T>
 template <typename TT, typename TTN, typename CBARG>
 typename DomainTree<T>::Result