public Builder KeyEncoding(Encoding encoding) { SAssert.ArgumentNotNull(() => encoding); _settings.KeyEncoding = encoding; return(this); }
public void WriteSerializedBulk <T>(ISerializer <T> serializer, T obj, int count) { SAssert.ArgumentNotNull(() => serializer); SAssert.ArgumentNonNegative(() => count); serializer.Write(obj, _stream, count); writeCrLf(); }
public RedisReader(Stream stream, RedisSettings settings) { SAssert.ArgumentNotNull(() => stream); SAssert.ArgumentSatisfy(() => stream, s => s.CanRead, "Stream must be readable."); SAssert.ArgumentNotNull(() => settings); _settings = settings; _stream = new BufferedStream(stream, _settings.ReadBufferSize); }
public LimitingStream(Stream inner, int bytesLimit) { SAssert.ArgumentNotNull(() => inner); SAssert.ArgumentNonNegative(() => bytesLimit); SAssert.ArgumentSatisfy(() => inner, s => s.CanRead, "Stream must be readable."); _inner = inner; _bytesLeft = bytesLimit; }
public T ReadSerializedBulk <T>(ISerializer <T> serializer, int bulkLength) { SAssert.ArgumentNotNull(() => serializer); SAssert.ArgumentNonNegative(() => bulkLength); var result = serializer.Read(_stream, bulkLength); readCrLf(); return(result); }
public void ReadBulkTo(Stream target, int bulkLength, int bufferSize) { SAssert.ArgumentNotNull(() => target); SAssert.ArgumentNonNegative(() => bulkLength); SAssert.ArgumentPositive(() => bufferSize); using (var limiter = new LimitingStream(_stream, bulkLength)) limiter.CopyTo(target); readCrLf(); }
public RedisWriter(Stream stream, RedisSettings settings) { SAssert.ArgumentNotNull(() => stream); SAssert.ArgumentSatisfy(() => stream, s => s.CanWrite, "Stream must be writable."); SAssert.ArgumentNotNull(() => settings); _settings = settings; _stream = new BufferedStream(stream, _settings.WriteBufferSize); _strBuffer = new byte[_settings.EncodingBufferSize]; AutoFlush = false; }
public void WriteBulkFrom(Stream source, int count) { SAssert.ArgumentNotNull(() => source); SAssert.ArgumentNonNegative(() => count); using (var limiter = new LimitingStream(source, count)) { limiter.CopyTo(_stream); writeCrLf(); SAssert.IsTrue(limiter.BytesLeft == 0, () => new InvalidOperationException("Stream does not contains enough data.")); } }
public void WriteBulk(byte[] buffer, int offset, int count) { SAssert.ArgumentNotNull(() => buffer); if (!(offset == 0 && count == 0)) { SAssert.ArgumentBetween(() => offset, 0, buffer.Length); SAssert.ArgumentBetween(() => count, 0, buffer.Length + 1); } SAssert.ArgumentSatisfy(() => offset, o => o + count <= buffer.Length, "Offset plus count is larger than the buffer."); _stream.Write(buffer, offset, count); writeCrLf(); }
public void WriteLine(string str) { SAssert.ArgumentNotNull(() => str); var bytesNeeded = Encoding.Default.GetByteCount(str); if (bytesNeeded < _strBuffer.Length) { Encoding.Default.GetBytes(str, 0, str.Length, _strBuffer, 0); _stream.Write(_strBuffer, 0, bytesNeeded); } else { var buffer = Encoding.Default.GetBytes(str); _stream.Write(buffer, 0, buffer.Length); } writeCrLf(); }
public void ReadBulk(byte[] buffer, int offset, int bulkLength) { SAssert.ArgumentNotNull(() => buffer); SAssert.ArgumentNonNegative(() => bulkLength); // special case for empty reads if (offset == 0 && bulkLength == 0) { return; } SAssert.ArgumentBetween(() => offset, 0, buffer.Length); SAssert.ArgumentSatisfy(() => offset, o => o + bulkLength <= buffer.Length, "Offset plus bulkLength is larger than the supplied buffer."); // read data from the stream, expect as much data as there's bulkLength var bytesRead = _stream.Read(buffer, 0, bulkLength); SAssert.IsTrue(bytesRead == bulkLength, () => new ResponseException("Expected " + bulkLength.ToString() + " bytes of bulk data, but only " + bytesRead.ToString() + " bytes are read.")); readCrLf(); }
public void WriteBulk(byte[] buffer) { SAssert.ArgumentNotNull(() => buffer); WriteBulk(buffer, 0, buffer.Length); }