Example #1
0
        public Pipeline(IServiceProvider builder, PipelineModifications pipelineModifications)
        {
            var coordinator = new StepRegistrationsCoordinator(pipelineModifications.Replacements, pipelineModifications.AdditionsOrReplacements);

            foreach (var rego in pipelineModifications.Additions)
            {
                coordinator.Register(rego);
            }

            // Important to keep a reference
            behaviors = coordinator.BuildPipelineModelFor <TContext>()
                        .Select(r => r.CreateBehavior(builder)).ToArray();

            List <Expression> expressions = null;

            if (Logger.IsDebugEnabled)
            {
                expressions = new List <Expression>();
            }

            pipeline = behaviors.CreatePipelineExecutionFuncFor <TContext>(expressions);

            if (Logger.IsDebugEnabled)
            {
                Logger.Debug(expressions.PrettyPrint());
            }
        }
Example #2
0
        public PipelineCache(IServiceProvider rootBuilder, PipelineModifications pipelineModifications)
        {
            this.pipelineModifications = pipelineModifications;

            FromMainPipeline <IAuditContext>(rootBuilder);
            FromMainPipeline <IDispatchContext>(rootBuilder);
            FromMainPipeline <IRoutingContext>(rootBuilder);
            FromMainPipeline <IBatchDispatchContext>(rootBuilder);
            FromMainPipeline <IForwardingContext>(rootBuilder);
        }
Example #3
0
        TransportReceiver BuildPipelineInstance(PipelineModifications modifications, string name, PushSettings pushSettings, PushRuntimeSettings runtimeSettings)
        {
            var pipelineInstance = new PipelineBase <ITransportReceiveContext>(builder, settings, modifications);
            var receiver         = new TransportReceiver(
                name,
                builder,
                builder.Build <IPushMessages>(),
                pushSettings,
                pipelineInstance,
                runtimeSettings);

            return(receiver);
        }
Example #4
0
        public Pipeline(IBuilder builder, ReadOnlySettings settings, PipelineModifications pipelineModifications)
        {
            var coordinator = new StepRegistrationsCoordinator(pipelineModifications.Removals, pipelineModifications.Replacements);

            foreach (var rego in pipelineModifications.Additions.Where(x => x.IsEnabled(settings)))
            {
                coordinator.Register(rego);
            }

            // Important to keep a reference
            behaviors = coordinator.BuildPipelineModelFor <TContext>()
                        .Select(r => r.CreateBehavior(builder)).ToArray();

            pipeline = behaviors.CreatePipelineExecutionFuncFor <TContext>();
        }
Example #5
0
        public Pipeline(IServiceProvider builder, PipelineModifications pipelineModifications)
        {
            var coordinator = new StepRegistrationsCoordinator(pipelineModifications.Replacements, pipelineModifications.AdditionsOrReplacements);

            foreach (var rego in pipelineModifications.Additions)
            {
                coordinator.Register(rego);
            }

            // Important to keep a reference
            behaviors = coordinator.BuildPipelineModelFor <TContext>()
                        .Select(r => r.CreateBehavior(builder)).ToArray();

            pipeline = behaviors.CreatePipelineExecutionFuncFor <TContext>();
        }
Example #6
0
        public PipelineCache(IBuilder rootBuilder, PipelineModifications pipelineModifications)
        {
            this.pipelineModifications = pipelineModifications;

            FromMainPipeline <IAuditContext>(rootBuilder);
            FromMainPipeline <IDispatchContext>(rootBuilder);
            FromMainPipeline <IOutgoingPublishContext>(rootBuilder);
            FromMainPipeline <ISubscribeContext>(rootBuilder);
            FromMainPipeline <IUnsubscribeContext>(rootBuilder);
            FromMainPipeline <IOutgoingSendContext>(rootBuilder);
            FromMainPipeline <IOutgoingReplyContext>(rootBuilder);
            FromMainPipeline <IRoutingContext>(rootBuilder);
            FromMainPipeline <IBatchDispatchContext>(rootBuilder);
            FromMainPipeline <IForwardingContext>(rootBuilder);
            FromMainPipeline <ITransportReceiveContext>(rootBuilder);
        }
 public PipelineComponent(SettingsHolder settings)
 {
     modifications    = new PipelineModifications();
     PipelineSettings = new PipelineSettings(modifications, settings);
 }
Example #8
0
 PipelineComponent(PipelineModifications modifications)
 {
     this.modifications = modifications;
 }