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);
        }
Example #2
0
        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}.");
        }