| File: Util\Processor.cs | Web Access |
| Project: src\sdk\src\TemplateEngine\Microsoft.TemplateEngine.Core\Microsoft.TemplateEngine.Core.csproj (Microsoft.TemplateEngine.Core) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.TemplateEngine.Core.Contracts; using Microsoft.TemplateEngine.Utils; namespace Microsoft.TemplateEngine.Core.Util { public class Processor : IProcessor { private const int DefaultBufferSize = 8 * 1024 * 1024; private const int DefaultFlushThreshold = 8 * 1024 * 1024; private readonly IReadOnlyList<IOperationProvider> _operations; private Processor(EngineConfig config, IReadOnlyList<IOperationProvider> operations) { Config = config; _operations = operations; } public EngineConfig Config { get; } public static IProcessor Create(EngineConfig config, params IOperationProvider[] operations) { return new Processor(config, operations); } public static IProcessor Create(EngineConfig config, IReadOnlyList<IOperationProvider> operations) { return new Processor(config, operations); } public IProcessor CloneAndAppendOperations(IReadOnlyList<IOperationProvider> tempOperations) { return new Processor(Config, new CombinedList<IOperationProvider>(_operations, tempOperations)); } public bool Run(Stream source, Stream target) => Run(source, target, DefaultBufferSize); public bool Run(Stream source, Stream target, int bufferSize) => Run(source, target, bufferSize, DefaultFlushThreshold); public bool Run(Stream source, Stream target, int bufferSize, int flushThreshold) { ProcessorState state = new ProcessorState(source, target, bufferSize, flushThreshold, Config, _operations); return state.Run(); } } }