private IEnumerable<PosMap> ReadPosMap(ReaderWorkItem workItem, long index, int count) { if (Chunk.ChunkFooter.IsMap12Bytes) { var pos = ChunkHeader.Size + Chunk.ChunkFooter.PhysicalDataSize + index * PosMap.FullSize; workItem.Stream.Seek(pos, SeekOrigin.Begin); for (int i = 0; i < count; i++) yield return PosMap.FromNewFormat(workItem.Reader); } else { var pos = ChunkHeader.Size + Chunk.ChunkFooter.PhysicalDataSize + index * PosMap.DeprecatedSize; workItem.Stream.Seek(pos, SeekOrigin.Begin); for (int i = 0; i < count; i++) yield return PosMap.FromOldFormat(workItem.Reader); } }
private PosMap ReadPosMap(ReaderWorkItem workItem, long index) { if (Chunk.ChunkFooter.IsMap12Bytes) { var pos = ChunkHeader.Size + Chunk.ChunkFooter.PhysicalDataSize + index * PosMap.FullSize; workItem.Stream.Seek(pos, SeekOrigin.Begin); return(PosMap.FromNewFormat(workItem.Reader)); } else { var pos = ChunkHeader.Size + Chunk.ChunkFooter.PhysicalDataSize + index * PosMap.DeprecatedSize; workItem.Stream.Seek(pos, SeekOrigin.Begin); return(PosMap.FromOldFormat(workItem.Reader)); } }