private static long CalcSize(SparseStream content, ServerSparseExtentHeader header) { long numDataGrains = StreamExtent.BlockCount(content.Extents, header.GrainSize * Sizes.Sector); long grainTableSectors = Utilities.Ceil(header.NumGTEsPerGT * 4, Sizes.Sector); return((grainTableSectors + (numDataGrains * header.GrainSize)) * Sizes.Sector); }
public void TestBlockCount() { StreamExtent[] s = new StreamExtent[] { new StreamExtent(0, 8), new StreamExtent(11, 4) }; Assert.Equal(2, StreamExtent.BlockCount(s, 10)); s = new StreamExtent[] { new StreamExtent(0, 8), new StreamExtent(9, 8) }; Assert.Equal(2, StreamExtent.BlockCount(s, 10)); s = new StreamExtent[] { new StreamExtent(3, 4), new StreamExtent(19, 4), new StreamExtent(44, 4) }; Assert.Equal(4, StreamExtent.BlockCount(s, 10)); }