public ThreePhasePipelineInitializer( IEnumerable <IPipelineContributor> contributors, IGenerateCallGraphs callGrapher) { _contributors = contributors; _callGrapher = callGrapher; }
public TwoPhasedPipelineAdaptor(IDependencyResolver resolver) { _graphs = resolver.HasDependency <IGenerateCallGraphs>() ? resolver.Resolve <IGenerateCallGraphs>() : new WeightedCallGraphGenerator(); Contributors = resolver.ResolveAll <IPipelineContributor>() .ToList() .AsReadOnly(); }
public TwoPhasedPipelineAdaptor(IDependencyResolver resolver) { _graphs = resolver.HasDependency<IGenerateCallGraphs>() ? resolver.Resolve<IGenerateCallGraphs>() : new WeightedCallGraphGenerator(); Contributors = resolver.ResolveAll<IPipelineContributor>() .ToList() .AsReadOnly(); }
static IEnumerable <(IPipelineMiddlewareFactory, ContributorCall)> Build(IGenerateCallGraphs callGraphGenerator, IEnumerable <IPipelineMiddlewareFactory> defaults, IEnumerable <IPipelineContributor> contributors, StartupProperties startupProperties) { foreach (var factory in defaults) { yield return(factory, null); } foreach (var contributor in callGraphGenerator .GenerateCallGraph(contributors) .ToDetailedMiddleware(startupProperties)) { yield return(contributor); } }
IEnumerable <(IPipelineMiddlewareFactory middleware, ContributorCall contributor)> LogBuild(IGenerateCallGraphs callGraphGenerator, IEnumerable <IPipelineMiddlewareFactory> defaults, IEnumerable <IPipelineContributor> contributors, StartupProperties startupProperties) { var loggingFactory = new LoggingMiddlewareFactory(); using (Log.Operation(this, $"Initializing the pipeline. (using {callGraphGenerator.GetType()})")) { foreach (var result in Build(callGraphGenerator, defaults, contributors, startupProperties)) { yield return(loggingFactory, null); yield return(LogBuildEntry(result)); } } }