public void Apply(IRuntimeBuilder builder) { foreach (var condition in _conditions) { condition.Apply(builder); } }
public AlphaBuilderContext <TFact> Build(IRuntimeBuilder builder, AlphaBuilderContext <TFact> context) { foreach (var condition in _conditions) { context = builder.BuildSelectionNode(context, condition.ConditionExpression); } return(context); }
public void ConfigureProcessors(IRuntimeBuilder runtimeBuilder, IHostingEnvironment environment) { if (runtimeBuilder == null) { throw new ArgumentNullException(nameof(runtimeBuilder)); } using var scope = runtimeBuilder.ApplicationServices.CreateScope(); ConfigureProcessors(runtimeBuilder, scope.ServiceProvider); }
public BuilderContextCollection Build(IRuntimeBuilder builder) { var builderContexts = new BuilderContextCollection(); foreach (var declaration in _declarations.Values) { declaration.Build(builder, builderContexts); } return(builderContexts); }
public void Apply(IRuntimeBuilder builder) { var contextCollection = _declarations.Build(builder); var context = builder.CreateContext(); // foreach (var condition in _conditions) // condition.Apply(builder, context); // foreach (var action in _actions) // action.Apply(builder, context); }
public BetaBuilderContext <TFact> Build(IRuntimeBuilder builder, BetaBuilderContext <TFact> context) { // var terminalContext = builder.BuildTerminalNode(context); // // // terminalContext = builder.BuildRuleNode(terminalContext, _actions); // // foreach (var action in _actions) // { // // context = builder.BuildSelectionNode(context, action.ConditionExpression); // } return(context); }
public void Apply(IRuntimeBuilder builder) { var context = builder.CreateContext(); context.AddParameter(_ruleFact.Parameter); builder.BuildTypeNode <T>(context); builder.BuildSelectionNode(context, _conditionExpression); // protected override void VisitPattern(ReteBuilderContext context, PatternElement element) // { // if (element.Source == null) // { // context.CurrentAlphaNode = _root; // context.RegisterDeclaration(element.Declaration); // // BuildTypeNode(context, element.ValueType); // List<ConditionElement> alphaConditions = element.Conditions.Where(x => x.References.Count() == 1).ToList(); // foreach (var alphaCondition in alphaConditions) // BuildSelectionNode(context, alphaCondition); // BuildAlphaMemoryNode(context); // // List<ConditionElement> betaConditions = element.Conditions.Where(x => x.References.Count() > 1).ToList(); // if (betaConditions.Count > 0) // BuildJoinNode(context, betaConditions); // } // else // { // if (element.Conditions.Any()) // { // BuildSubnet(context, element.Source); // context.RegisterDeclaration(element.Declaration); // // BuildJoinNode(context, element.Conditions); // } // else // { // Visit(context, element.Source); // context.RegisterDeclaration(element.Declaration); // } // } // } }
private IProducerEngine <int> BuildProducerEngine(IRuntimeBuilder runtimeBuilder, ISynchronizationPolicy synchronizationPolicy) { return(new ScheduledProducerEngine <int>( new DefaultProducerExecutionStrategy <int>( runtimeBuilder.ApplicationServices.GetRequiredService <IServiceScopeFactory>(), new CallbackProducerResolver <int>( (context) => new RandomIntProducer()), synchronizationPolicy, false), new CancellationSourceFactory(), new StrategyErrorHandler( new LogToConsoleErrorStrategy(new ConsoleWriter(), LoggingLevel.All)), new PollingScheduler(TimeSpan.FromSeconds(5)), new ScheduledEngineOptions { ContinueUntilEmpty = true })); }
public Processor Build(IRuntimeBuilder runtimeBuilder, AppProcessor config) { if (runtimeBuilder == null) { throw new ArgumentNullException(nameof(runtimeBuilder)); } else if (config == null) { throw new ArgumentNullException(nameof(config)); } var producerEngine1 = BuildProducerEngine(runtimeBuilder, null); var producerEngine2 = BuildProducerEngine(runtimeBuilder, null); var consumerEngine = BuildConsumerEngine(); return(new ProducerConsumerProcessor <int>( config.Name, new CancellationSourceFactory(), new[] { producerEngine1, producerEngine2 }, consumerEngine)); }
private static void ConfigureProcessors(IRuntimeBuilder runtimeBuilder, IServiceProvider serviceProvider) { var unitOfWork = serviceProvider.GetRequiredService <IUnitOfWork>(); var configs = unitOfWork.AppProcessors.GetProcessorsForMachine(Environment.MachineName); foreach (var config in configs) { var builder = GetBuilder(config.ProcessorType); if (builder == null) { throw new InvalidOperationException("The processor builder was not created."); } var processor = builder.Build(runtimeBuilder, config); if (processor == null) { throw new InvalidOperationException("The processor was not built."); } runtimeBuilder.RegisterProcessor(processor); } }
public void ConfigureProcessors(IRuntimeBuilder runtimeBuilder, IHostingEnvironment environment) { onConfigureProcessorsCallback?.Invoke(runtimeBuilder); }
public void Apply(IRuntimeBuilder builder, BuilderContext context) { var terminalNode = builder.BuildTerminalNode(context, _declaration); }