]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2750] Remove excess wrapper methods
authorMukund Sivaraman <muks@isc.org>
Fri, 6 Sep 2013 05:37:42 +0000 (11:07 +0530)
committerMukund Sivaraman <muks@isc.org>
Fri, 6 Sep 2013 05:37:42 +0000 (11:07 +0530)
src/lib/datasrc/memory/domaintree.h

index 4f7f71a4305106f37b0073d2fcae3934ea524471..7d5bc0e5424ca19dd68a9be1551cb819d46f439c 100644 (file)
@@ -497,16 +497,6 @@ public:
     }
 
 private:
-    /// \brief Static helper function used by const and non-const
-    /// variants of abstractSuccessor()
-    template <typename TT>
-    static TT*
-    abstractSuccessorImpl(TT* node,
-                          typename DomainTreeNode<T>::DomainTreeNodePtr
-                              DomainTreeNode<T>::*left,
-                          typename DomainTreeNode<T>::DomainTreeNodePtr
-                              DomainTreeNode<T>::*right);
-
     /// \brief private shared implementation of successor and predecessor
     ///
     /// As the two mentioned functions are merely mirror images of each other,
@@ -518,20 +508,13 @@ private:
     /// The overhead of the member pointers should be optimised out, as this
     /// will probably get completely inlined into predecessor and successor
     /// methods.
-    DomainTreeNode<T>*
-    abstractSuccessor(typename DomainTreeNode<T>::DomainTreeNodePtr
-                          DomainTreeNode<T>::*left,
+    template <typename TT>
+    static TT*
+    abstractSuccessor(TT* node,
                       typename DomainTreeNode<T>::DomainTreeNodePtr
-                          DomainTreeNode<T>::*right);
-
-    /// \brief private shared implementation of successor and
-    /// predecessor (const variant)
-    const DomainTreeNode<T>*
-    abstractSuccessor(typename DomainTreeNode<T>::DomainTreeNodePtr
                           DomainTreeNode<T>::*left,
                       typename DomainTreeNode<T>::DomainTreeNodePtr
-                          DomainTreeNode<T>::*right)
-        const;
+                          DomainTreeNode<T>::*right);
 
     /// \name Data to maintain the rbtree structure.
     ///
@@ -838,7 +821,7 @@ DomainTreeNode<T>::getAbsoluteLabels(
 template <typename T>
 template <typename TT>
 TT*
-DomainTreeNode<T>::abstractSuccessorImpl(TT* node,
+DomainTreeNode<T>::abstractSuccessor(TT* node,
     typename DomainTreeNode<T>::DomainTreeNodePtr DomainTreeNode<T>::*left,
     typename DomainTreeNode<T>::DomainTreeNodePtr DomainTreeNode<T>::*right)
 {
@@ -875,54 +858,34 @@ DomainTreeNode<T>::abstractSuccessorImpl(TT* node,
     }
 }
 
-template <typename T>
-DomainTreeNode<T>*
-DomainTreeNode<T>::abstractSuccessor(
-    typename DomainTreeNode<T>::DomainTreeNodePtr DomainTreeNode<T>::*left,
-    typename DomainTreeNode<T>::DomainTreeNodePtr DomainTreeNode<T>::*right)
-{
-    return (abstractSuccessorImpl<DomainTreeNode<T> >(this, left, right));
-}
-
-template <typename T>
-const DomainTreeNode<T>*
-DomainTreeNode<T>::abstractSuccessor(
-    typename DomainTreeNode<T>::DomainTreeNodePtr DomainTreeNode<T>::*left,
-    typename DomainTreeNode<T>::DomainTreeNodePtr DomainTreeNode<T>::*right)
-    const
-{
-    return (abstractSuccessorImpl<const DomainTreeNode<T> >
-            (this, left, right));
-}
-
 template <typename T>
 DomainTreeNode<T>*
 DomainTreeNode<T>::successor() {
-    return (abstractSuccessor(&DomainTreeNode<T>::left_,
-                              &DomainTreeNode<T>::right_));
+    return (abstractSuccessor<DomainTreeNode<T> >
+            (this, &DomainTreeNode<T>::left_, &DomainTreeNode<T>::right_));
 }
 
 template <typename T>
 const DomainTreeNode<T>*
 DomainTreeNode<T>::successor() const {
-    return (abstractSuccessor(&DomainTreeNode<T>::left_,
-                              &DomainTreeNode<T>::right_));
+    return (abstractSuccessor<const DomainTreeNode<T> >
+            (this, &DomainTreeNode<T>::left_, &DomainTreeNode<T>::right_));
 }
 
 template <typename T>
 DomainTreeNode<T>*
 DomainTreeNode<T>::predecessor() {
     // Swap the left and right pointers for the abstractSuccessor
-    return (abstractSuccessor(&DomainTreeNode<T>::right_,
-                              &DomainTreeNode<T>::left_));
+    return (abstractSuccessor<DomainTreeNode<T> >
+            (this, &DomainTreeNode<T>::right_, &DomainTreeNode<T>::left_));
 }
 
 template <typename T>
 const DomainTreeNode<T>*
 DomainTreeNode<T>::predecessor() const {
     // Swap the left and right pointers for the abstractSuccessor
-    return (abstractSuccessor(&DomainTreeNode<T>::right_,
-                              &DomainTreeNode<T>::left_));
+    return (abstractSuccessor<const DomainTreeNode<T> >
+            (this, &DomainTreeNode<T>::right_, &DomainTreeNode<T>::left_));
 }
 
 /// \brief DomainTreeNodeChain stores detailed information of \c