Ejemplo n.º 1
0
 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();
 }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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));
                }
            }
        }