public StorageBatch(StorageBatch <TState> previous) { this.serializerSettings = previous.serializerSettings; this.errorInjector = previous.errorInjector; MetaData = previous.MetaData; confirmUpTo = previous.confirmUpTo; cancelAbove = previous.cancelAbove; cancelAboveStart = cancelAbove; }
public StorageBatch(TransactionalStorageLoadResponse <TState> loadresponse, JsonSerializerSettings serializerSettings, ITransactionalFaultInjector errorInjector) { this.serializerSettings = serializerSettings ?? throw new ArgumentNullException(nameof(serializerSettings)); this.errorInjector = errorInjector; MetaData = ReadMetaData(loadresponse, this.serializerSettings); ETag = loadresponse.ETag; confirmUpTo = loadresponse.CommittedSequenceId; cancelAbove = loadresponse.PendingStates.LastOrDefault()?.SequenceId ?? loadresponse.CommittedSequenceId; cancelAboveStart = cancelAbove; }
public TocTransactionQueue( TService service, IOptions <TransactionalStateOptions> options, ParticipantId resource, Action deactivate, ITransactionalStateStorage <TransactionCommitter <TService> .OperationState> storage, JsonSerializerSettings serializerSettings, IClock clock, ITransactionalFaultInjector errorInjector, ILogger logger) : base(options, resource, deactivate, storage, serializerSettings, clock, errorInjector, logger) { this.service = service; }
public TransactionQueue( IOptions <TransactionalStateOptions> options, ParticipantId resource, Action deactivate, ITransactionalStateStorage <TState> storage, JsonSerializerSettings serializerSettings, IClock clock, ITransactionalFaultInjector errorInjector, ILogger logger) { this.options = options.Value; this.resource = resource; this.deactivate = deactivate; this.storage = storage; this.serializerSettings = serializerSettings; this.Clock = new CausalClock(clock); this.errorInjector = errorInjector; this.logger = logger; this.confirmationTasks = new Dictionary <Guid, TransactionRecord <TState> >(); this.storageWorker = new BatchWorkerFromDelegate(StorageWork); this.confirmationWorker = new BatchWorkerFromDelegate(ConfirmationWork); this.RWLock = new ReadWriteLock <TState>(options, this, this.storageWorker, logger); }