public AsyncProcessingEngine(IImageProvider imageProvider, IImageProcessingChain imageProcessingChain, IReceiveProcessedImageCommand receiveProcessedImageCommand) { _imageProvider = imageProvider; _imageProcessingChain = imageProcessingChain; _setOutputImageCommand = receiveProcessedImageCommand; _mediator = new AsyncProcessingMediator(); }
private static void SetAcquiredImage(AsyncProcessingMediator mediator, Image image) { var processingStatus = mediator.GetImageProcessingStatus(); if (processingStatus == ImageProcessingStatus.NoImageProcessed) { mediator.SetAquiredImageAndImageAddedStatus(image); } }
private void GetAcquiredImageAndProcessIt(AsyncProcessingMediator mediator) { var image = mediator.GetAcquiredImageAndSetImageProcessedStatus(); try { var processedImage = _imageProcessingChain.ProcessImage(image); _setOutputImageCommand.Execute(processedImage); } finally { mediator.SetImageProcessingStatus(ImageProcessingStatus.NoImageProcessed); } }