public BTreePage(byte[] pageData)
{
_byteIterator = 0;
Records = new List <NodeRecord> {
Capacity = (int)Static.MemMax
};
Childrens = new List <long> {
Capacity = (int)Static.ChilMax
};
ParentIndex = BC.ToInt64(pageData, _byteIterator);
_byteIterator += sizeof(long);
SelfIndex = BC.ToInt64(pageData, _byteIterator);
_byteIterator += sizeof(long);
_presentRecords = BC.ToInt64(pageData, _byteIterator);
_byteIterator += sizeof(long);
IsLeaf = BC.ToBoolean(pageData, _byteIterator);
_byteIterator += sizeof(bool);
for (var i = 0; i < _presentRecords; i++)
{
var key = BC.ToInt64(pageData, _byteIterator);
_byteIterator += sizeof(long);
var pageIndex = BC.ToInt64(pageData, _byteIterator);
_byteIterator += sizeof(long);
Records.Add(new NodeRecord(key, pageIndex));
}
if (!IsLeaf)
{
for (var i = 0; i < _presentRecords + 1; i++)
{
Childrens.Add(BC.ToInt64(pageData, _byteIterator));
_byteIterator += sizeof(long);
}
}
}