public TreeBranch CreateBranch(TreeSystemTransaction tran, int maxBranchChildren) { NodeId p = NextNodePointer(); HeapTreeBranch node = new HeapTreeBranch(tran, p, maxBranchChildren); 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 TreeBranch CreateBranch(ITransaction tran, int maxBranchChildren) { long p = NextNodeId(); HeapTreeBranch node = new HeapTreeBranch(tran, p, maxBranchChildren); HashNode(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; }