internal UIDGeneratorIPImpl(IPUIDOptions options) { EpochDateTime = options.EpochDateTime; MaxTimestamp = BitUtils.MaxVaue(TimestampBit); MaxSequence = BitUtils.MaxVaue(SequenceBit); MaxTimeCheck = BitUtils.MaxVaue(TimeCheckBit); MaxIp = BitUtils.MaxVaue(IpBit); IP = IPUtils.IPToInt() & 0x0000ffff; //取后2位 IpShift = 0; TimeCheckShift = IpBit; SequenceShift = TimeCheckBit + IpBit; TimestampShift = SequenceBit + TimeCheckBit + IpBit; }
/// <summary> /// 创建UID生成器 1+29+15+2+16 1: 第一位符号位 2:29位秒(十几年吧) 3:15位序号 4:2位回拨位 5: 16位ip(后2位数字) 可以变为 10位ip+6位 /// </summary> /// <param name="options"></param> /// <returns></returns> public IUIDGenerator CreateUIDGenerator(IPUIDOptions options) { return(new UIDGeneratorIPImpl(options)); }