예제 #1
0
        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();
            }
        }
예제 #2
0
        public void FactoryWillCreateGZipDecompressObj()
        {
            IGZipCompressor gzipCompressor = _compressorFactory.Create(Constants.Decompress);

            Assert.IsAssignableFrom <GZipDecompress>(gzipCompressor);
        }
예제 #3
0
 /// <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));
 }