Esempio n. 1
0
 public Kernel(MemstateSettings config, object model)
 {
     _logger = config.CreateLogger <Kernel>();
     _model  = model;
     _lock   = new ReaderWriterLockSlim(LockRecursionPolicy.NoRecursion);
     _logger.LogInformation("Created Kernel");
 }
Esempio n. 2
0
 public Batcher(MemstateSettings config, Action <IEnumerable <T> > batchHandler)
 {
     _logger       = config.CreateLogger <Batcher <T> >();
     _batchHandler = batchHandler;
     _maxBatchSize = config.MaxBatchSize;
     _items        = new BlockingCollection <T>(config.MaxBatchQueueLength);
     _batchTask    = new Task(ProcessItems, TaskCreationOptions.LongRunning);
     _batchTask.Start();
 }
Esempio n. 3
0
 public Engine(
     MemstateSettings config,
     TModel model,
     IJournalSubscriptionSource subscriptionSource,
     IJournalWriter journalWriter,
     long nextRecord)
 {
     _lastRecordNumber     = nextRecord - 1;
     _logger               = config.CreateLogger <Engine <TModel> >();
     _kernel               = new Kernel(config, model);
     _journalWriter        = journalWriter;
     _pendingLocalCommands = new ConcurrentDictionary <Guid, TaskCompletionSource <object> >();
     _commandSubscription  = subscriptionSource.Subscribe(nextRecord, ApplyRecord);
 }
Esempio n. 4
0
 public Engine(
     MemstateSettings settings,
     TModel model,
     IJournalSubscriptionSource subscriptionSource,
     IJournalWriter journalWriter,
     long nextRecord)
 {
     _lastRecordNumber     = nextRecord - 1;
     _logger               = settings.CreateLogger <Engine <TModel> >();
     _kernel               = new Kernel(settings, model);
     _settings             = settings;
     _journalWriter        = journalWriter;
     _pendingLocalCommands = new ConcurrentDictionary <Guid, TaskCompletionSource <object> >();
     _commandSubscription  = subscriptionSource.Subscribe(nextRecord, OnRecordReceived);
     _metrics              = new EngineMetrics(settings);
 }