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); }
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); }