/// <summary> /// Инициализирует потоки. /// </summary> private void InitializeThreads() { var processorCount = Environment.ProcessorCount; var queueSizeArgument = new ConstructorArgument(BindingsParameters.MAX_QUEUE_SIZE_NAME, processorCount); _readBlocksQueue = _kernel.Get <IBlocksQueue>(queueSizeArgument); _writeBlocksQueue = _kernel.Get <IBlocksQueue>(queueSizeArgument); var readBlockQueueArgument = new ConstructorArgument( BindingsParameters.READ_BLOCKS_QUEUE_NAME, _readBlocksQueue); var blocksFileReader = _kernel.Get <IReader>(readBlockQueueArgument); var writeBlockQueueArgument = new ConstructorArgument( BindingsParameters.WRITE_BLOCKS_QUEUE_NAME, _writeBlocksQueue); var blocksFileWriter = _kernel.Get <IWriter>(writeBlockQueueArgument); _threads[0] = new Thread(blocksFileReader.Read); _threads[1] = new Thread(blocksFileWriter.Write); for (var i = 2; i < _threadsCount; i++) { var blocksCompressor = _kernel.Get <ICompressor>(readBlockQueueArgument, writeBlockQueueArgument); _threads[i] = new Thread(blocksCompressor.Start); } }
public InitializeBlocksQueueService( IBlocksQueue blocksQueue, BlocksQueuePresenter blocksQueuePresenter ) { BlocksQueue = blocksQueue; BlocksQueuePresenter = blocksQueuePresenter; }
public GetNextControlBlocksService( IBoard board, IBlocksQueue blocksQueue, IControlBlocksPresenter controlBlocksPresenter, BlocksQueuePresenter blocksQueuePresenter ) { Board = board; BlocksQueue = blocksQueue; ControlBlocksPresenter = controlBlocksPresenter; BlocksQueuePresenter = blocksQueuePresenter; }
/// <summary> /// Конструктор. /// </summary> /// <param name="readBlocksQueue">Интерфейс очереди блоков на считывание.</param> /// <param name="writeBlocksQueue">Интерфейс очереди блоков на запись.</param> public BlocksDecompressor(IBlocksQueue readBlocksQueue, IBlocksQueue writeBlocksQueue) { _readBlocksQueue = readBlocksQueue; _writeBlocksQueue = writeBlocksQueue; }
/// <summary> /// Конструктор. /// </summary> /// <param name="filePath">Путь до файла.</param> /// <param name="writeBlocksQueue">Интерфейс очереди блоков на запись.</param> public BlocksFileWriter(string filePath, IBlocksQueue writeBlocksQueue) { _filePath = filePath; _writeBlocksQueue = writeBlocksQueue; }
/// <summary> /// Конструктор. /// </summary> /// <param name="filePath">Путь до файла.</param> /// <param name="readBlocksQueue">Интерфейс очереди блоков на считывание.</param> public GZipBlocksFileReader(string filePath, IBlocksQueue readBlocksQueue) { _filePath = filePath; _readBlocksQueue = readBlocksQueue; }