public async Task <int> BuildCompressedChunkHeader(ByteArrayReader reader, uint flags)
{
Signature = Signatures.Signature;
BlockSize = 0x00020000;
CompressedSize = 0;
UncompressedSize = reader.Remaining;
int blockCount = (reader.Remaining + BlockSize - 1) / BlockSize;
int builderSize = 0;
Blocks.Clear();
for (int i = 0; i < blockCount; ++i)
{
DomainCompressedChunkBlock block = new DomainCompressedChunkBlock();
ByteArrayReader uncompressed = await reader.ReadByteArray(Math.Min(BlockSize, reader.Remaining));
builderSize += await block.BuildCompressedChunkBlockData(uncompressed);
CompressedSize += block.CompressedSize;
Blocks.Add(block);
}
builderSize += sizeof(uint)
+ sizeof(int) * 3;
return(builderSize);
}