Пример #1
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);
 }
Пример #2
0
        public void Setup()
        {
            _fakeSubscriptionSource = A.Fake <IJournalSubscriptionSource>();
            _fakeSubscription       = A.Fake <IJournalSubscription>();
            _fakeJournalWriter      = A.Fake <IJournalWriter>();

            _nextRecordNumber = DateTime.Now.Millisecond;

            A.CallTo(() => _fakeSubscriptionSource.Subscribe(_nextRecordNumber, A <Action <JournalRecord> > ._))
            .Returns(_fakeSubscription);

            var config = new MemstateSettings();

            _engine = new Engine <Object>(config, new Object(), _fakeSubscriptionSource, _fakeJournalWriter, _nextRecordNumber);
        }
Пример #3
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);
 }
Пример #4
0
 public Engine(
     EngineSettings settings,
     TModel model,
     IJournalSubscriptionSource subscriptionSource,
     IJournalWriter journalWriter,
     long nextRecord)
 {
     _lastRecordNumber        = nextRecord - 1;
     _logger                  = LogProvider.GetCurrentClassLogger();
     _kernel                  = new Kernel(settings, model);
     _settings                = settings;
     _journalWriter           = journalWriter;
     _pendingLocalCommands    = new ConcurrentDictionary <Guid, TaskCompletionSource <object> >();
     _commandSubscription     = subscriptionSource.Subscribe(nextRecord, OnRecordReceived);
     _metrics                 = Metrics.Provider.GetEngineMetrics();
     ExecutionContext.Current = new ExecutionContext(nextRecord);
 }