internal static void HandleRootSplit <K, T>(this IAListTreeObserver <K, T> self, AListNode <K, T> oldRoot, AListNode <K, T> newLeft, AListNode <K, T> newRight, AListInnerBase <K, T> newRoot)
 {
     self.HandleNodeReplaced(oldRoot, newLeft, newRight);
     self.NodeAdded(newLeft, newRoot);
     self.NodeAdded(newRight, newRoot);
     self.RootChanged(newRoot, false);
 }
Exemple #2
0
        internal static void DoAttach <K, T>(this IAListTreeObserver <K, T> observer, AListBase <K, T> list, AListNode <K, T> root)
        {
            var childrenFirst = observer.Attach(list);

            observer.RootChanged(list, root, false);
            if (childrenFirst != null && root != null)
            {
                AddAllRecursively(observer, childrenFirst.Value, root);
            }
        }
 internal static void HandleRootUnsplit <K, T>(this IAListTreeObserver <K, T> self, AListInnerBase <K, T> oldRoot, AListNode <K, T> newRoot)
 {
     Debug.Assert(oldRoot.LocalCount == 0 || (oldRoot.LocalCount == 1 && oldRoot.Child(0) == newRoot));
     self.NodeRemoved(newRoot, oldRoot);
     self.RootChanged(newRoot, false);
 }
 internal static void Clear <K, T>(this IAListTreeObserver <K, T> self)
 {
     self.RootChanged(null, true);
 }
Exemple #5
0
 internal static void Clear <K, T>(this IAListTreeObserver <K, T> self, AListBase <K, T> list)
 {
     self.RootChanged(list, null, true);
 }