Example #1
0
        public BTree(IBuffer data)
        {
            this.data = data;

            byte[] headerInfo = StreamUtilities.ReadExact(this.data, 0, 114);

            this.header = new BTreeHeaderRecord();
            this.header.ReadFrom(headerInfo, 14);

            byte[] node0data = StreamUtilities.ReadExact(this.data, 0, this.header.NodeSize);

            BTreeHeaderNode node0 = BTreeNode.ReadNode(this, node0data, 0) as BTreeHeaderNode;

            node0.ReadFrom(node0data, 0);

            if (node0.HeaderRecord.RootNode != 0)
            {
                this.rootNode = this.GetKeyedNode(node0.HeaderRecord.RootNode);
            }
        }
Example #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);

            if (node0.HeaderRecord.RootNode != 0)
            {
                _rootNode = GetKeyedNode(node0.HeaderRecord.RootNode);
            }
        }