예제 #1
0
        private ChunkedFileReader GetFileReader(ChunkedHandlers.ChunkedGZip.ChunkedGZipDecompressor decompressor)
        {
            var reader = new ChunkedFileReader(_compressedFile, new System.Threading.CancellationToken());

            reader.ChunkRead += (chunk, isLastChunk) => decompressor.AddChunkToQueue(chunk, isLastChunk);
            reader.OnError   += error => Assert.Fail(error.GetException().ToString());
            return(reader);
        }
예제 #2
0
        private ChunkedFileReader GetFileReader(ChunkedHandlers.ChunkedGZip.ChunkedGZipCompressor compressor)
        {
            var reader = new ChunkedFileReader(_sourceFile, _maxChunkSize, new CancellationToken());

            reader.ChunkRead += (chunk, isLastChunk) => compressor.AddChunkToQueue(chunk, isLastChunk);
            reader.OnError   += error => Assert.Fail(error.GetException().ToString());
            return(reader);
        }
예제 #3
0
 public GzipCompress(ArchiverOptions archiverOptions)
 {
     _archiverOptions   = archiverOptions ?? throw new ArgumentNullException(nameof(archiverOptions));
     _chunkedFileReader = new ChunkedFileReader();
     _chunkedFileReader.OpenResources(_archiverOptions.InputFile);
     _chunkSize = Size / _archiverOptions.Chunks;
     _gzipJobs  = new Queue <GzipCompressJob>((int)_archiverOptions.JobsCount);
     Operated   = 0;
 }
예제 #4
0
 public void FileRead()
 {
     _readFileInfo = GenerateFile();
     using (var reader = new ChunkedFileReader(_readFileInfo, _maxChunkSize, new System.Threading.CancellationToken()))
     {
         reader.ChunkRead += (chunk, isLastChunk) => _proccessedReadBytes += chunk.Bytes.Length;
         reader.OnError   += error => Assert.Fail(error.GetException().StackTrace);
         reader.ReadAllBytes();
     }
     Assert.AreEqual(_proccessedReadBytes, _readFileInfo.Length);
 }
예제 #5
0
        public ChunkedFileDescriptor StoreFileChunks(FileInfo file, string description = null)
        {
            ChunkedFileReader     chunked = new ChunkedFileReader(file, ChunkLength);
            ChunkedFileDescriptor chunkedFileDescriptor = chunked.ToChunkedFileDescriptor(description);

            SaveFileDescriptor(chunkedFileDescriptor);

            foreach (ChunkedFileDataDescriptor chunkFileDataDescriptor in chunked.ToChunkedFileDataDescriptor())
            {
                ChunkData chunk = chunkFileDataDescriptor.ChunkData;
                SaveChunkData(chunk);
                ChunkDataDescriptor xref = chunkFileDataDescriptor.ChunkDataDescriptor;
                SaveChunkDataDescriptor(xref);
            }
            return(chunkedFileDescriptor);
        }
예제 #6
0
 public ThreadManager(FileInfo source, int maxBytesChunk, ChunkedGZipCompressor chunkedHandler, FileInfo destination)
 {
     _reader = new ChunkedFileReader(source, maxBytesChunk, _token.Token);
     InitializeModules(chunkedHandler, destination);
 }