internal BTreeKeyedNode <TKey> GetKeyedNode(uint nodeId) { byte[] nodeData = Utilities.ReadFully(_data, (int)nodeId * _header.NodeSize, _header.NodeSize); BTreeKeyedNode <TKey> node = BTreeNode.ReadNode <TKey>(this, nodeData, 0) as BTreeKeyedNode <TKey>; node.ReadFrom(nodeData, 0); return(node); }
public BTree(IBuffer data) { _data = data; byte[] headerInfo = Utilities.ReadFully(_data, 0, 114); _header = new BTreeHeaderRecord(); _header.ReadFrom(headerInfo, 14); byte[] node0data = Utilities.ReadFully(_data, 0, _header.NodeSize); BTreeHeaderNode node0 = BTreeNode.ReadNode(this, node0data, 0) as BTreeHeaderNode; node0.ReadFrom(node0data, 0); _rootNode = GetKeyedNode(node0.HeaderRecord.RootNode); }