private BinaryData EncodeBlock( ExternalDataBlockForHeapOnNode block) { var hnPageHeader = new HNPAGEHDR(block.RawByteCountWithoutPageMapWithPadding); return(EncodeBlock(block, pageHeaderEncoder.Encode(hnPageHeader))); }
private BinaryData EncodeBlockWithNewFillLevel( ExternalDataBlockForHeapOnNode block, BinaryData fillLevelsForTheNext128Blocks) { var hnBitmapHeader = new HNBITMAPHDR( block.RawByteCountWithoutPageMapWithPadding, fillLevelsForTheNext128Blocks); return(EncodeBlock(block, bitmapHeaderEncoder.Encode(hnBitmapHeader))); }
private BinaryData EncodeFirstBlock( ExternalDataBlockForHeapOnNode block, HID userRoot, BinaryData fillLevelsForTheFirst8Blocks, int clientSignature) { var hnHDR = new HNHDR( block.RawByteCountWithoutPageMapWithPadding, 0xEC, clientSignature, userRoot, fillLevelsForTheFirst8Blocks); return(EncodeBlock(block, headerEncoder.Encode(hnHDR))); }
private BinaryData EncodeBlock( ExternalDataBlockForHeapOnNode block, BinaryData encodedHeader) { var pageMap = new HNPAGEMAP( block.NumberOfItems + 1, 0, CreateAllocationTable(block.Items, block.HeaderSize)); return (BinaryDataGenerator .New() .Append(encodedHeader) .Append(block.Items) .FillTo(block.RawByteCountWithoutPageMapWithPadding) .Append(pageMap, pageMapEncoder) .GetData()); }