internal Int64 ReadInt64() { var integerIndex = 0; var crfound = false; while (CanRead()) { for (; _left < _right; _left++) { var b = _buffer[_left]; if (b == LFByte && crfound) { _left++; // moving to next line return(Utf8ByteHelper.ParseInt64(_integerBuffer, integerIndex - 1)); } crfound = b == CRByte; _integerBuffer[integerIndex++] = b; } } throw new RedisClientSocketException("Cannot read an integer, not available data."); }
internal async Task <Char?> ReadRESPHeaderAsync(CancellationToken cancel) { if (await CanReadAsync(cancel).ConfigureAwait(false)) { return(Utf8ByteHelper.ParseRESPHeader(_buffer[_left++])); } return(null); }
internal Char?ReadRESPHeader() { if (CanRead()) { return(Utf8ByteHelper.ParseRESPHeader(_buffer[_left++])); } return(null); }