/// <summary> /// Returns mutable copy of this mutable entry. /// </summary> /// <returns> /// Copy of this mutable entry /// </returns> public MutableEntry CloneEntry() { var r = new MutableEntry(new MutableObjectId(idBuffer.ToObjectId())); r.Offset = Offset; return(r); }
protected override MutableEntry InnerNext(MutableEntry entry) { for (; _levelOne < _index._idxdata.Length; _levelOne++) { if (_index._idxdata[_levelOne] == null) { continue; } if (_levelTwo < _index._idxdata[_levelOne].Length) { entry.Offset = NB.DecodeUInt32(_index._idxdata[_levelOne], _levelTwo); _levelTwo += AnyObjectId.ObjectIdLength + 4; ReturnedNumber++; return(entry); } _levelTwo = 0; } throw new IndexOutOfRangeException(); }
protected override MutableEntry InnerNext(MutableEntry entry) { for (; _levelOne < _index._names.Length; _levelOne++) { if (_levelTwo < _index._names[_levelOne].Length) { int idx = _levelTwo / (Constants.OBJECT_ID_LENGTH / 4) * 4; long offset = NB.DecodeUInt32(_index._offset32[_levelOne], idx); if ((offset & IS_O64) != 0) { idx = (8 * (int)(offset & ~IS_O64)); offset = NB.DecodeUInt64(_index._offset64, idx); } entry.Offset = offset; _levelTwo += Constants.OBJECT_ID_LENGTH / 4; ReturnedNumber++; return(entry); } _levelTwo = 0; } throw new IndexOutOfRangeException(); }
protected override MutableEntry InnerNext(MutableEntry entry) { for (; _levelOne < _index._names.Length; _levelOne++) { if (_levelTwo < _index._names[_levelOne].Length) { int idx = _levelTwo / (AnyObjectId.ObjectIdLength / 4) * 4; long offset = NB.DecodeUInt32(_index._offset32[_levelOne], idx); if ((offset & IS_O64) != 0) { idx = (8 * (int)(offset & ~IS_O64)); offset = NB.DecodeUInt64(_index._offset64, idx); } entry.Offset = offset; _levelTwo += AnyObjectId.ObjectIdLength / 4; ReturnedNumber++; return entry; } _levelTwo = 0; } throw new IndexOutOfRangeException(); }
public override void Reset() { returnedNumber = 0; levelOne = 0; levelTwo = 0; Current = new MutableEntry(); }
protected override MutableEntry InnerNext(MutableEntry entry) { for (; _levelOne < _index._idxdata.Length; _levelOne++) { if (_index._idxdata[_levelOne] == null) { continue; } if (_levelTwo < _index._idxdata[_levelOne].Length) { entry.Offset = NB.DecodeUInt32(_index._idxdata[_levelOne], _levelTwo); _levelTwo += Constants.OBJECT_ID_LENGTH + 4; ReturnedNumber++; return entry; } _levelTwo = 0; } throw new IndexOutOfRangeException(); }