/// <summary> /// Creates a new longindex. /// </summary> public LongIndex() { _rootPositive = new LongIndexNode(1); _rootNegative = new LongIndexNode(1); }
/// <summary> /// Clears this index. /// </summary> public void Clear() { _rootPositive = new LongIndexNode(1); _rootNegative = new LongIndexNode(1); }
/// <summary> /// Adds an id. /// </summary> /// <param name="number"></param> private void PositiveAdd(long number) { while (number >= LongIndexNode.CalculateBaseNumber((short)(_rootPositive.Base + 1))) { LongIndexNode oldRoot = _rootPositive; _rootPositive = new LongIndexNode((short)(_rootPositive.Base + 1)); _rootPositive.has_0 = oldRoot; } _rootPositive.Add(number); }