Exemple #1
0
        public TreeLeaf CreateLeaf(TreeSystemTransaction tran, Key key, int maxLeafSize)
        {
            NodeId       p    = NextNodePointer();
            HeapTreeLeaf node = new HeapTreeLeaf(tran, p, maxLeafSize);

            PutInHash(node);
            return(node);
        }
Exemple #2
0
        public ITreeNode Copy(ITreeNode nodeToCopy, int maxBranchSize, int maxLeafSize, TreeSystemTransaction tran)
        {
            // Create a new pointer for the copy
            NodeId    p = NextNodePointer();
            IHashNode node;

            if (nodeToCopy is TreeLeaf)
            {
                node = new HeapTreeLeaf(tran, p, (TreeLeaf)nodeToCopy, maxLeafSize);
            }
            else
            {
                node = new HeapTreeBranch(tran, p, (TreeBranch)nodeToCopy, maxBranchSize);
            }
            PutInHash(node);
            // Return pointer to node
            return(node);
        }
Exemple #3
0
        public ITreeNode Copy(ITreeNode nodeToCopy, int maxBranchSize, int maxLeafSize, ITransaction tran, bool locked)
        {
            // Create a new pointer for the copy
            long p = NextNodeId();
            if (locked) {
                p = (long)((ulong)p & 0x0DFFFFFFFFFFFFFFFL);
            }
            IHashNode node;
            if (nodeToCopy is TreeLeaf) {
                node = new HeapTreeLeaf(tran, p, (TreeLeaf)nodeToCopy, maxLeafSize);
            } else {
                node = new HeapTreeBranch(tran, p, (TreeBranch)nodeToCopy, maxBranchSize);
            }

            HashNode(node);
            // Return pointer to node
            return node;
        }
Exemple #4
0
 public TreeLeaf CreateLeaf(ITransaction tran, Key key, int maxLeafSize)
 {
     long p = NextNodeId();
     HeapTreeLeaf node = new HeapTreeLeaf(tran, p, maxLeafSize);
     HashNode(node);
     return node;
 }