Beispiel #1
0
 public ApplicationProcessRecompensationOrchestrator(
     IFileNameProvider fileNameProvider,
     ICorrelationInitializer correlationInitializer)
 {
     _fileNameProvider       = fileNameProvider;
     _correlationInitializer = correlationInitializer;
 }
Beispiel #2
0
 public CvUploader(
     IFileWriter fileWriter,
     IFileNameProvider fileNameProvider)
 {
     _fileWriter       = fileWriter;
     _fileNameProvider = fileNameProvider;
 }
Beispiel #3
0
        public ChunkGenerationJob(
            IFileNameProvider fileNameProvider,
            IConfigurationProvider configurationProvider,
            Func <string, IFileWriter> fileWriterFactory,
            Func <IChunkGenerator> chunkGeneratorFactory)
        {
            _fileNameProvider      = fileNameProvider;
            _fileWriterFactory     = fileWriterFactory;
            _chunkGeneratorFactory = chunkGeneratorFactory;

            var threadsCount = configurationProvider.ThreadsCount - 2;

            _generateQueue = new BlockingCollection <long>(new ConcurrentBag <long>(), threadsCount);
            _writeQueue    = new BlockingCollection <string>(new ConcurrentBag <string>(), threadsCount);

            _generateCancellationTokenSource = new CancellationTokenSource();
            _writeCancellationTokenSource    = new CancellationTokenSource();

            _generateTasks = new Task[threadsCount];
            for (var i = 0; i < threadsCount; i++)
            {
                _generateTasks[i] = new Task(() => GenerateChunk(_generateCancellationTokenSource.Token));
            }

            _writeTask = new Task(() => WriteToFile(_writeCancellationTokenSource.Token));
        }
Beispiel #4
0
        private void Compress(ICompressStrategy strategy, IFileNameProvider sourceFileNameProvider, IFileNameProvider targetFileNameProvider)
        {
            _wasException = null;
            var sourceFileName = sourceFileNameProvider.GetFileName();

            if (!File.Exists(sourceFileName))
            {
                throw new FileNotFoundException($"Не найден файл {sourceFileName}");
            }

            // создание очередей
            var loggerForQueue = new LoggerDummy();
            var queueForRead   = new PartQueue("ForRead", loggerForQueue);

            _queues.Add(queueForRead);
            var queueForCompress = new PartQueue("ForCompress", loggerForQueue);

            _queues.Add(queueForCompress);
            var queueForWrite = new IndexedParts("ForWrite", loggerForQueue);

            _queues.Add(queueForWrite);

            _stopEvent = new ManualResetEventSlim(false);
            // создание обработчиков очередей
            var writer = new Writer(_logger, _systemInfoProvider, ApplExceptionHandler, targetFileNameProvider, _stopEvent, queueForWrite, queueForRead);

            _queueHandlers.Add(writer);

            var archiversRuner = new CompressRuner(_logger, _systemInfoProvider, ApplExceptionHandler, queueForCompress, queueForWrite);

            _queueHandlers.Add(archiversRuner);

            var partReader = new FilePartReader(_logger, strategy);
            var reader     = new Reader(_logger, _systemInfoProvider, ApplExceptionHandler, sourceFileNameProvider, partReader, queueForRead, queueForCompress);

            _queueHandlers.Add(reader);

            // вывод отладочной информации
            var sourceFileInfo = new FileInfo(sourceFileName);

            _logger.Add($"Размер файла {sourceFileInfo.Length} byte");
            AddSystemInfo();
            var maxActivePartCount = strategy.MaxActivePartCount;

            _logger.Add($"Максимальное кол-во одновременно обрабатываемых частей {maxActivePartCount} шт.");
            _logger.Add($"Размер одной части {strategy.PartSize} byte");
            _logger.Add("Работа начата...");

            _stopWatch.Reset();
            _stopWatch.Start();

            for (var i = 0; i < maxActivePartCount; i++)
            {
                var part = new FilePart($"FilePart{i + 1}");
                queueForRead.Add(part);
            }

            StopEventWait();
        }
Beispiel #5
0
        private void Decompress(IDecompressStrategy strategy, IFileNameProvider sourceFileNameProvider, IFileNameProvider targetFileNameProvider)
        {
            // нужно читать из файла части заархивированные
            // они начинаются с 10 байт (31,139,8,0,0,0,0,0,4,0)
            // эти части по отдельности отдавать на декомпрессию

            _wasException = null;
            var sourceFileName = sourceFileNameProvider.GetFileName();

            if (!File.Exists(sourceFileName))
            {
                throw new FileNotFoundException($"Не найден файл {sourceFileName}");
            }

            // создание очередей
            var loggerForQueue = new LoggerDummy();
            var queueForRead   = new PartQueue("ForRead", loggerForQueue);

            _queues.Add(queueForRead);
            var queueForDecompress = new PartQueue("ForDecompress", loggerForQueue);

            _queues.Add(queueForDecompress);
            var queueForWrite = new IndexedParts("ForWrite", loggerForQueue);

            _queues.Add(queueForWrite);

            _stopEvent = new ManualResetEventSlim(false);
            // создание обработчиков очередей
            var writer = new Writer(_logger, _systemInfoProvider, ApplExceptionHandler, targetFileNameProvider, _stopEvent, queueForWrite, queueForRead);

            _queueHandlers.Add(writer);

            var decompressRuner = new DecompressRuner(_logger, _systemInfoProvider, ApplExceptionHandler, queueForDecompress, queueForWrite);

            _queueHandlers.Add(decompressRuner);

            var partReader = new ArсhivePartReader(_logger);
            var reader     = new Reader(_logger, _systemInfoProvider, ApplExceptionHandler, sourceFileNameProvider, partReader, queueForRead, queueForDecompress);

            _queueHandlers.Add(reader);

            var sourceFileInfo = new FileInfo(sourceFileName);

            _logger.Add($"Размер файла {sourceFileInfo.Length} byte");
            AddSystemInfo();
            _logger.Add("Работа начата...");

            _stopWatch.Reset();
            _stopWatch.Start();

            for (var i = 0; i < strategy.MaxActivePartCount; i++)
            {
                var part = new FilePart($"FilePart{i + 1}");
                queueForRead.Add(part);
            }

            StopEventWait();
        }
Beispiel #6
0
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="subdirectoriesPathProvider"><see cref="ISubdirectoriesPathProvider"/></param>
 /// <param name="imageContentProvider"><see cref="IImageContentProvider{ImageContentType}"/></param>
 /// <param name="fileNameProvider"><see cref="IFileNameProvider"/></param>
 /// <exception cref="ArgumentNullException">Thrown when one of input parameters is null</exception>
 public ImagesService(ISubdirectoriesPathProvider subdirectoriesPathProvider, IImageContentProvider <ImageContentType> imageContentProvider, IFileNameProvider fileNameProvider)
 {
     _subdirectoriesPathProvider = subdirectoriesPathProvider
                                   ?? throw new ArgumentNullException(nameof(subdirectoriesPathProvider));
     _imageContentProvider = imageContentProvider
                             ?? throw new ArgumentNullException(nameof(imageContentProvider));
     _fileNameProvider = fileNameProvider
                         ?? throw new ArgumentNullException(nameof(fileNameProvider));
 }
Beispiel #7
0
 public PhotoUploader(
     IFileWriter fileWriter,
     IFileNameProvider fileNameProvider,
     ICorrelationInitializer correlationInitializer)
 {
     _fileWriter             = fileWriter;
     _fileNameProvider       = fileNameProvider;
     _correlationInitializer = correlationInitializer;
 }
Beispiel #8
0
 public void ExecuteDecompress(IDecompressStrategy strategy, IFileNameProvider sourceFileNameProvider,
                               IFileNameProvider targetFileNameProvider)
 {
     if (Thread.CurrentThread.Name == null)
     {
         Thread.CurrentThread.Name = "Main";
     }
     Decompress(strategy, sourceFileNameProvider, targetFileNameProvider);
 }
Beispiel #9
0
 public DataCollectionFiles(
     IDataCollectionNameProvider dataCollectionNameProvider,
     IStoragesProvider storageProvider,
     IFileNameProvider fileNameProvider)
 {
     _dataCollectionName = dataCollectionNameProvider.GetDataCollectionName();
     _storageProvider    = storageProvider;
     _fileNameProvider   = fileNameProvider;
 }
Beispiel #10
0
        /// <summary>
        /// Default costructor
        /// </summary>
        /// <param name="imageContentProvider"><see cref="IImageContentProvider{ContentType}"/></param>
        /// <param name="fileNameProvider"><see cref="IFileNameProvider"/></param>
        /// <param name="path">Path to current directory</param>
        /// <exception cref="ArgumentNullException"> If one of input parameters is null</exception>
        public Directory(IImageContentProvider <ImageContentType> imageContentProvider, IFileNameProvider fileNameProvider, string path)
        {
            _imageContentProvider = imageContentProvider
                                    ?? throw new ArgumentNullException(nameof(imageContentProvider));

            _fileNameProvider = fileNameProvider
                                ?? throw new ArgumentNullException(nameof(fileNameProvider));

            Path = path
                   ?? throw new ArgumentNullException(nameof(path));
        }
Beispiel #11
0
 public CsharpCompilationProvider(ISyntaxTreeProvider syntaxTreeProvider,
                                  ICodeProvider codeProvider,
                                  IFileNameProvider fileNameProvider,
                                  IReferenceProvider referenceProvider,
                                  ICompilationOptionProvider compilationOptionProvider)
 {
     _syntaxTreeProvider        = syntaxTreeProvider;
     _codeProvider              = codeProvider;
     _fileNameProvider          = fileNameProvider;
     _referenceProvider         = referenceProvider;
     _compilationOptionProvider = compilationOptionProvider;
 }
Beispiel #12
0
        public Writer(ILogger logger, ISystemInfoProvider systemInfoProvider, Action <Exception> applExceptionHandler,
                      IFileNameProvider targetFileNameProvider, ManualResetEventSlim stopEvent, IQueue sourceQueue, IQueue nextQueue) :
            base(logger, systemInfoProvider, applExceptionHandler, sourceQueue, nextQueue)
        {
            _targetFileNameProvider = targetFileNameProvider;
            _stopEvent = stopEvent;

            InnerThread = new Thread(Run)
            {
                Name = "Writer"
            };
            InnerThread.Start();
        }
Beispiel #13
0
        public Reader(ILogger logger, ISystemInfoProvider systemInfoProvider, Action <Exception> applExceptionHandler,
                      IFileNameProvider sourceFileNameProvider, IPartReader partReader, IQueue sourceQueue, IQueue nextQueue) :
            base(logger, systemInfoProvider, applExceptionHandler, sourceQueue, nextQueue)
        {
            _sourceFileNameProvider = sourceFileNameProvider;
            _partReader             = partReader;

            InnerThread = new Thread(Run)
            {
                Name = "Reader"
            };
            InnerThread.Start();
        }
Beispiel #14
0
        static int Main(string[] args)
        {
            var logger  = new CompositeLogger();
            var fileLog = new FileLogger("GZipTest.log");

            logger.AddChild(fileLog);
            logger.AddChild(new ConsoleLogger());

            try
            {
                var argsParser = new ArgsParser(logger);
                var param      = argsParser.ParsParams(args);
                if (param == null)
                {
                    return(1);
                }

                _sourceFileNameProvider = new FileNameProviderStub(param.SourceFileName);
                _targetFileNameProvider = new FileNameProviderStub(param.TargetFileName);

                var systemInfoProvider = new SystemInfoProvider();
                var appl = new Appl(logger, systemInfoProvider);
                switch (param.ApplMode)
                {
                case ApplMode.Compress:
                    var compressStrategy = new SmartCompressStrategy(systemInfoProvider);
                    appl.ExecuteCompress(compressStrategy, _sourceFileNameProvider, _targetFileNameProvider);
                    break;

                case  ApplMode.Decompress:
                    var decompressStrategy = new SmartDecompressStrategy(systemInfoProvider);
                    appl.ExecuteDecompress(decompressStrategy, _sourceFileNameProvider, _targetFileNameProvider);
                    break;
                }
                return(0);
            }
            catch (Exception ex)
            {
                logger.Add("Произошла ошибка. Выполнение программы будет завершено\r\n" +
                           ex.Message + "\r\n" + ex.StackTrace);

                AddInnerExceptionToLog(ex, logger);

                return(1);
            }
            finally
            {
                logger.Close();
            }
        }
Beispiel #15
0
 public FsRPCBase(
     ServiceProfile profile,
     IServiceDeployment serviceDeployment,
     IFileNameProvider provider,
     IContextPool <FsBaseExecSvc.Interface.IServiceContext> contextPool,
     ILogger <FsRPCBase> logger,
     IOSHelper oSHelper)
 {
     this.contextPool       = contextPool;
     this.profile           = profile;
     this.logger            = logger;
     this.serviceDeployment = serviceDeployment;
     this.provider          = provider;
     this.oshelper          = oSHelper;
 }
Beispiel #16
0
 public DataCollector(
     IDestinationProvider destinationProvider,
     IDataPreparer DataPreparer,
     ICollectItemsProvider collectItemsProvider,
     IFileNameProvider fileNameProvider,
     IDelay delay,
     ICollectItemsCollector collectItemsCollector)
 {
     _destinationProvider  = destinationProvider;
     _dataPreparer         = DataPreparer;
     _collectItemsProvider = collectItemsProvider;
     _fileNameProvider     = fileNameProvider;
     _delay = delay;
     _collectItemsCollector = collectItemsCollector;
 }
Beispiel #17
0
 public CollectItemsCollector(
     IFileNameProvider fileNameProvider)
 {
     _fileNameProvider = fileNameProvider;
 }
Beispiel #18
0
 public FileWriter(IFileNameProvider fileNameProvider)
 {
     _fileNameProvider = fileNameProvider;
 }
Beispiel #19
0
 /// <summary>
 /// Creates instance of compositive directory
 /// </summary>
 /// <param name="imageContentProvider"><see cref="IImageContentProvider{ContentType}"/></param>
 /// <exception cref="ArgumentNullException">Thrown when one of input parameters is null</exception>
 public SimpleDirectory(IImageContentProvider <ImageContentType> imageContentProvider, IFileNameProvider fileNameProvider, string path)
     : base(imageContentProvider, fileNameProvider, path)
 {
 }
Beispiel #20
0
 /// <summary>
 /// Returns new instance of <see cref="CompositiveDirectory{ImageContentType}"/>
 /// </summary>
 /// <param name="imageContentProvider"><see cref="IImageContentProvider{ContentType}"/></param>
 /// <param name="fileNameProvider"><see cref="IFileNameProvider"/></param>
 /// <param name="path">Path to current directory</param>
 /// <returns><see cref="CompositiveDirectory{ImageContentType}"/></returns>
 public static CompositiveDirectory <ImageContentType> New(IImageContentProvider <ImageContentType> imageContentProvider, IFileNameProvider fileNameProvider, string path) =>
 new CompositiveDirectory <ImageContentType>(imageContentProvider, fileNameProvider, path);
 public UploadFileCommandHandler(IBlobStorage blobStorage,
                                 IFileNameProvider fileNameProvider)
 {
     _blobStorage      = blobStorage ?? throw new ArgumentNullException(nameof(blobStorage));
     _fileNameProvider = fileNameProvider ?? throw new ArgumentNullException(nameof(fileNameProvider));
 }
Beispiel #22
0
 /// <summary>
 /// Creates instance of compositive directory
 /// </summary>
 /// <exception cref="ArgumentNullException">Thrown when one of input parameters is null</exception>
 public CompositiveDirectory(IImageContentProvider <ImageContentType> imageContentProvider, IFileNameProvider fileNameProvider, string path)
     : base(imageContentProvider, fileNameProvider, path)
 {
     _subDirectories = new List <Directory <ImageContentType> >();
 }
 public ApplicationProcessRecompensationOrchiestrator(IFileNameProvider fileNameProvider)
 {
     _fileNameProvider = fileNameProvider;
 }