public static unsafe ulong Update(ulong l, ulong crc) { if (Crc64.crc64Table == null) { Crc64.FillCrcTable(); } return(Crc64.Add((byte *)(&l), 8, crc)); }
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); }
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); }
public static unsafe ulong Update(int i, ulong crc) { if (Crc64.crc64Table == null) Crc64.FillCrcTable(); }