public TreeLeaf CreateLeaf(TreeSystemTransaction tran, Key key, int maxLeafSize) { NodeId p = NextNodePointer(); HeapTreeLeaf node = new HeapTreeLeaf(tran, p, maxLeafSize); PutInHash(node); return(node); }
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); }
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; }
public TreeLeaf CreateLeaf(ITransaction tran, Key key, int maxLeafSize) { long p = NextNodeId(); HeapTreeLeaf node = new HeapTreeLeaf(tran, p, maxLeafSize); HashNode(node); return node; }