Esempio n. 1
0
        /// <inheritdoc/>
        public BitCode GetBitCodeByString(string token)
        {
            if (!this.uniqueCodes.TryGetValue(token, out BitCode code))
            {
                this.uniqueCodes.Add(token, code = new BitCode(this.index++));
            }

            return(code);
        }
Esempio n. 2
0
 public void Subtract(BitCode code)
 {
     if (this.indices.Remove(code.Index))
     {
         for (var i = 0; i <= code.offset && i < MAXOFFSET; ++i)
         {
             this.bits[i] &= ~code.bits[i];
         }
     }
 }
Esempio n. 3
0
 public void Add(BitCode code)
 {
     if (this.indices.Add(code.Index))
     {
         this.Offset = Math.Max(code.offset, this.Offset);
         for (var i = 0; i <= code.offset && i < MAXOFFSET; ++i)
         {
             this.bits[i] |= code.bits[i];
         }
     }
 }
Esempio n. 4
0
            public bool Contains(BitCode code)
            {
                for (var i = 0; i <= code.offset && i < MAXOFFSET; ++i)
                {
                    if ((this.bits[i] & code.bits[i]) != code.bits[i])
                    {
                        return(false);
                    }
                }

                return(true);
            }