public override TransactionApplier StartTx(CommandsToApply transaction)
        {
            Optional <CountsAccessor_Updater> result = _countsTracker.apply(transaction.TransactionId());

            result.ifPresent(updater => this._countsUpdater = updater);
            Debug.Assert(this._countsUpdater != null || _mode == TransactionApplicationMode.RECOVERY);

            return(new CountsStoreTransactionApplier(_mode, _countsUpdater));
        }
 public CountsStoreTransactionApplier(TransactionApplicationMode mode, CountsAccessor_Updater countsUpdater)
 {
     this._mode          = mode;
     this._countsUpdater = countsUpdater;
 }