Exemplo n.º 1
0
			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);
				}
			}
Exemplo n.º 2
0
 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));
     }
 }