Example #1
0
            /// <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);
            }
Example #2
0
            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();
            }
Example #3
0
            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();
            }
Example #4
0
            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();
            }
Example #5
0
 public override void Reset()
 {
     returnedNumber = 0;
     levelOne = 0;
     levelTwo = 0;
     Current = new MutableEntry();
 }
Example #6
0
            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();
            }