Exemple #1
0
        /// <summary>
        /// Encodes a token
        /// </summary>
        /// <param name="token">The token</param>
        /// <param name="codedToken">Coded token</param>
        /// <returns><c>true</c> if successful</returns>
        public bool Encode(uint token, out uint codedToken)
        {
            int index = TableTypes.IndexOf(MDToken.ToTable(token));

            if (index < 0)
            {
                codedToken = uint.MaxValue;
                return(false);
            }
            // This shift can never overflow a uint since bits < 8 (it's at most 5), and
            // ToRid() returns an integer <= 0x00FFFFFF.
            codedToken = (MDToken.ToRID(token) << Bits) | (uint)index;
            return(true);
        }