Exemplo n.º 1
0
        public static long ParseInt64(IByteBuffer sin)
        {
            long result = 0;

            while (sin.CanRead)
            {
                result += (long)(sin.PeekByte() & 0x7F);
                if ((sin.PeekByte() & 0x80) == 0)
                {
                    sin.Next();
                    return(result);
                }
                if (result > (int64MaxValue >> 7))
                {
                    return((long)VCDiffResult.Error);
                }
                result = result << 7;
                sin.Next();
            }
            return((int)VCDiffResult.EOD);
        }
Exemplo n.º 2
0
        public static int ParseInt32(IByteBuffer sin)
        {
            int result = 0;

            while (sin.CanRead)
            {
                result += sin.PeekByte() & 0x7f;
                if ((sin.PeekByte() & 0x80) == 0)
                {
                    sin.Next();
                    return(result);
                }
                if (result > (int32MaxValue >> 7))
                {
                    return((int)VCDiffResult.Error);
                }
                result = result << 7;
                sin.Next();
            }
            return((int)VCDiffResult.EOD);
        }