public static CompressedChunk FromSourceFile(string sourcePath, ChunkDescriptor descriptor) { var compressedChunk = new CompressedChunk { SourceChunkDescriptor = descriptor }; using (var reader = new CompressedChunkStreamReader(File.OpenRead(sourcePath))) { compressedChunk.data = reader.Read(descriptor); } return(compressedChunk); }
private void ProcessAndEnqueueChunk() { ChunkDescriptor chunkDescriptor; try { chunkDescriptor = sourceChunks.Dequeue(); } catch (InvalidOperationException) { // queue is empty return; } compressedChunks.Enqueue(CompressedChunk.FromSourceFile(sourcePath, chunkDescriptor)); Interlocked.Decrement(ref uncompressedChunksCount); Debug.WriteLine($"Approximate uncompressed chunks count = {uncompressedChunksCount}."); }