Пример #1
0
        public void Seek(long postion, BssomSeekOrgin orgin, long limit)
        {
            if (orgin == BssomSeekOrgin.Current)
            {
                Position += postion;
            }
            else
            {
                Position = postion;
            }

            if (limit != -1 && Position > limit)
            {
                BssomSerializationOperationException.ReaderEndOfBufferException();
            }

            if (Spans.Length == 1)
            {
                CurrentSpanPosition = (int)Position;
            }
            else
            {
                CurrentSpanIndex = Array.BinarySearch(SpansCumulativeBoundary, Position);
                if (CurrentSpanIndex <= -1)
                {
                    CurrentSpanIndex = ~CurrentSpanIndex - 1;
                }

                CurrentSpanPosition = (int)(Position - SpansCumulativeBoundary[CurrentSpanIndex]);
            }
        }
Пример #2
0
 public void Seek(long postion, BssomSeekOrgin orgin = BssomSeekOrgin.Begin)
 {
     SeekWithOutVerify(postion, orgin);
     if (position > Length)
     {
         BssomSerializationOperationException.ReaderEndOfBufferException();
     }
 }
Пример #3
0
 public void Seek(long postion, BssomSeekOrgin orgin)
 {
     SeekWithOutVerify(postion, orgin);
     if (_offset > _buffer.Length)
     {
         BssomSerializationOperationException.ReaderEndOfBufferException();
     }
 }
Пример #4
0
 public void SeekWithOutVerify(long postion, BssomSeekOrgin orgin)
 {
     if (orgin == BssomSeekOrgin.Current)
     {
         position += (int)postion;
     }
     else
     {
         position = (int)postion;
     }
 }
Пример #5
0
 //Call: reader.Buffer.Seek(pos)
 public static Expression Call_Reader_BufferSeek(Expression pos, BssomSeekOrgin orgin = BssomSeekOrgin.Begin)
 {
     return(Expression.Call(Field_ReaderBuffer, Type_Buffer_Seek, pos, Expression.Constant(orgin, typeof(BssomSeekOrgin))));
 }
Пример #6
0
 public void Seek(long position, BssomSeekOrgin orgin = BssomSeekOrgin.Begin)
 {
     complexBuffer.Seek(position, orgin, Buffered);
 }
Пример #7
0
 public void SeekWithOutVerify(long postion, BssomSeekOrgin orgin)
 {
     complexBuffer.SeekWithOutVerify(postion, orgin);
 }
Пример #8
0
 public void Seek(long postion, BssomSeekOrgin orgin)
 {
     Seek(postion, orgin, Boundary);
 }
Пример #9
0
 public void SeekWithOutVerify(long postion, BssomSeekOrgin orgin)
 {
     Seek(postion, orgin, -1);
 }