BitSharp.Esent.EsentBlockTxesStorage.PruneElements C# (CSharp) Method

PruneElements() public method

public PruneElements ( IEnumerable blockTxIndices ) : void
blockTxIndices IEnumerable
return void
        public void PruneElements(IEnumerable<KeyValuePair<UInt256, IEnumerable<int>>> blockTxIndices)
        {
            using (var handle = this.cursorCache.TakeItem())
            {
                var cursor = handle.Item;

                foreach (var keyPair in blockTxIndices)
                {
                    var blockHash = keyPair.Key;
                    var txIndices = keyPair.Value;

                    using (var jetTx = cursor.jetSession.BeginTransaction())
                    {
                        int blockIndex;
                        if (!TryGetBlockIndex(cursor, blockHash, out blockIndex))
                            continue;

                        var pruningCursor = new MerkleTreePruningCursor(blockIndex, cursor);

                        // prune the transactions
                        foreach (var index in txIndices)
                        {
                            var cachedCursor = new CachedMerkleTreePruningCursor<BlockTxNode>(pruningCursor);
                            MerkleTree.PruneNode(cachedCursor, index);
                        }

                        jetTx.CommitLazy();
                    }
                }
            }
        }