Exemplo n.º 1
0
        /// <summary>
        /// Adds a middleware to the front of the pipeline.
        /// </summary>
        /// <param name="middleware">The middleware to add.</param>
        public void InsertFirst(ITiffImageDecoderMiddleware middleware)
        {
            if (middleware is null)
            {
                throw new ArgumentNullException(nameof(middleware));
            }

            _middlewares.Insert(0, middleware);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Adds a middleware to the end of the pipeline.
        /// </summary>
        /// <param name="middleware">The middleware to add.</param>
        public void Add(ITiffImageDecoderMiddleware middleware)
        {
            if (middleware is null)
            {
                throw new ArgumentNullException(nameof(middleware));
            }

            _middlewares.Add(middleware);
        }
        public ValueTask RunAsync(TiffImageDecoderContext context)
        {
            ITiffImageDecoderMiddleware   middleware = Middleware;
            ITiffImageDecoderPipelineNode?next       = Next;

            context.CancellationToken.ThrowIfCancellationRequested();

            if (next is null)
            {
                return(middleware.InvokeAsync(context, EmptyImplementation.Instance));
            }
            else
            {
                return(middleware.InvokeAsync(context, next));
            }
        }
 public TiffImageDecoderPipelineNode(ITiffImageDecoderMiddleware middleware)
 {
     Middleware = middleware;
 }