public ChunksReader(int workersCount, ISourceReader reader, IGZipCompressor compressor, IWriterTask writerTask, IErrorLogs errorLogs) { _compressor = compressor; _fileReader = reader; _writerTask = writerTask; _errorLogs = errorLogs; _threads = new List <Thread>(); for (int i = 0; i < workersCount; ++i) { Thread thread = new Thread(Consume) { IsBackground = true, Name = $"Background worker (chunks queue): {i}" }; _threads.Add(thread); thread.Start(); } }
public void FactoryWillCreateGZipDecompressObj() { IGZipCompressor gzipCompressor = _compressorFactory.Create(Constants.Decompress); Assert.IsAssignableFrom <GZipDecompress>(gzipCompressor); }
/// <summary> /// Create queue for processing chunks from the source /// </summary> /// <param name="workersCount">Thread count in queue</param> /// <param name="reader">Reader from source</param> /// <param name="compressor">Interface for compression, decompression</param> /// <param name="writerTask">Task for write data</param> /// <param name="errorLogs">Execution error logs</param> /// <returns>Chunks queue</returns> public IChunksReader CreateChunksReader(int workersCount, ISourceReader reader, IGZipCompressor compressor, IWriterTask writerTask, IErrorLogs errorLogs) { return(new ChunksReader(workersCount, reader, compressor, writerTask, errorLogs)); }