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);
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 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);
 }