Exemplo n.º 1
0
 public static unsafe ulong Update(ulong l, ulong crc)
 {
     if (Crc64.crc64Table == null)
     {
         Crc64.FillCrcTable();
     }
     return(Crc64.Add((byte *)(&l), 8, crc));
 }
Exemplo n.º 2
0
        public static unsafe ulong Update(string s, ulong crc)
        {
            if (s == null)
            {
                return(crc);
            }
            int l = s.Length;

            if (l == 0)
            {
                return(crc);
            }
            if (Crc64.crc64Table == null)
            {
                Crc64.FillCrcTable();
                fixed(char *p = s)
                {
                    crc = Crc64.Add((byte *)p, l << 1, crc);
                }

                return(crc);
        }
Exemplo n.º 3
0
        public static ulong NextHash()
        {
            long  ticks = DateTime.Now.Ticks;
            ulong crc   = Crc64.InitialCrc;

            for (int i = 0; i < 16; i++)
            {
                switch (Uid.random.Next(2))
                {
                case 0:
                    crc = Crc64.Update(Uid.machineName, crc);
                    break;

                case 1:
                    crc = Crc64.Update((ulong)ticks, crc);
                    break;

                default:
                    crc = Crc64.Update(Uid.random.Next(), crc);
                    break;
                }
            }
            return(crc);
        }
Exemplo n.º 4
0
 public static unsafe ulong Update(int i, ulong crc)
 {
     if (Crc64.crc64Table == null)
         Crc64.FillCrcTable(); }