示例#1
0
        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);
        }
示例#2
0
        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);
        }