public override void SaveChanges(ChainedBlock newTip, IEnumerable <UnspentOutputs> unspentOutputs) { if (WriteThrough) { foreach (var output in unspentOutputs) { AddToCache(output.TransactionId, output); } } if (CacheEntryCount > MaxItems) { Evict(); } _Inner.SaveChanges(newTip, unspentOutputs); }
public override void SaveChanges(ChainedBlock newTip, IEnumerable <uint256> txIds, IEnumerable <Coins> coins) { if (WriteThrough) { var idEnum = txIds.GetEnumerator(); var coinsEnum = coins.GetEnumerator(); while (idEnum.MoveNext()) { coinsEnum.MoveNext(); AddToCache(idEnum.Current, coinsEnum.Current); } } if (CacheEntryCount > MaxItems) { _Cache.Clear(); _NotFound.Clear(); } _Inner.SaveChanges(newTip, txIds, coins); }
public override void SaveChanges(ChainedBlock newTip, IEnumerable <uint256> txIds, IEnumerable <Coins> coins) { _CurrentPrefetch = _PrefetchesByPrev.TryGet(newTip.HashBlock); _PrefetchesByPrev.Remove(newTip.HashBlock); _Inner.SaveChanges(newTip, txIds, coins); }
public override void SaveChanges(ChainedBlock newTip, IEnumerable <UnspentOutputs> unspentOutputs) { _Inner.SaveChanges(newTip, unspentOutputs); }
public void Commit(CoinView coinview) { var changedCoins = GetChangedCoins(); coinview.SaveChanges(_Uncommited.Tip, changedCoins); }
public void SaveChanges(CoinView coinview) { coinview.SaveChanges(_Uncommited.Tip, _Uncommited.coins.Keys, _Uncommited.coins.Values); }