コード例 #1
0
 public bool Equals(SimpleBloomFilter <T> other)
 {
     return(_k == other._k &&
            _bitArraySize == other._bitArraySize &&
            ExpectedElements == other.ExpectedElements &&
            BitArray.Equals2(other.BitArray));
 }
コード例 #2
0
ファイル: DigestResult.cs プロジェクト: lanicon/TomP2P.NET
 public DigestResult(SimpleBloomFilter <Number160> contentBloomFilter,
                     SimpleBloomFilter <Number160> versionBloomFilter)
 {
     ContentBloomFilter = contentBloomFilter;
     VersionBloomFilter = versionBloomFilter;
     KeyDigest          = null;
     DataMap            = null;
 }
コード例 #3
0
 /// <summary>
 /// Searches for multiple content keys. There may be false positives.
 /// </summary>
 /// <param name="locationKey">The location key.</param>
 /// <param name="domainKey">The domain key.</param>
 /// <param name="keyBloomFilter">For Get() and Remove() one can provide a bloom filter of
 /// content keys and the remote peer indicates if those keys are on that peer.</param>
 public SearchValues(Number160 locationKey, Number160 domainKey, SimpleBloomFilter <Number160> keyBloomFilter)
 {
     LocationKey        = locationKey;
     DomainKey          = domainKey;
     ContentKey         = null;
     KeyBloomFilter     = keyBloomFilter;
     ContentBloomFilter = null;
     From = null;
     To   = null;
 }
コード例 #4
0
        /// <summary>
        /// Merges this bloom filter with the provided one using OR.
        /// </summary>
        /// <param name="toMerge"></param>
        /// <returns>A new bloom filter that contains both sets.</returns>
        public SimpleBloomFilter <T> Merge(SimpleBloomFilter <T> toMerge)
        {
            if (toMerge._bitArraySize != _bitArraySize)
            {
                throw new SystemException("The two bloomfilters must have the same size.");
            }
            var mergedBitArray = (BitArray)BitArray.Clone();

            mergedBitArray.Or(toMerge.BitArray);
            return(new SimpleBloomFilter <T>(_bitArraySize, ExpectedElements, mergedBitArray));
        }