BTDB.StreamLayer.AbstractBufferedReader.ReadVInt64 C# (CSharp) Method

ReadVInt64() public method

public ReadVInt64 ( ) : long
return long
        public long ReadVInt64()
        {
            NeedOneByteInBuffer();
            var l = PackUnpack.LengthVInt(Buf, Pos);
            long res;
            if (Pos + l <= End)
            {
                res = PackUnpack.UnpackVInt(Buf, ref Pos);
            }
            else
            {
                res = (Buf[Pos] >= 0x80) ? 0 : -1;
                if (l < 8) res <<= 8 - l;
                res += Buf[Pos] & (0xff >> l);
                do
                {
                    Pos++;
                    res <<= 8;
                    NeedOneByteInBuffer();
                    res += Buf[Pos];
                    l--;
                } while (l > 1);
                Pos++;
            }
            return res;
        }

Usage Example

Esempio n. 1
0
 public HashKeyIndex(AbstractBufferedReader reader, Guid? guid)
 {
     _guid = guid;
     _subId = reader.ReadVInt64();
     _generation = reader.ReadVInt64();
     _keyLen = reader.ReadVUInt32();
 }
All Usage Examples Of BTDB.StreamLayer.AbstractBufferedReader::ReadVInt64