public IAsyncBinaryReader CreateReader() { stream.Position = 0L; var sequence = new ChunkSequence(stream.ToArray(), 3); return(IAsyncBinaryReader.Create(sequence.ToReadOnlySequence())); }
public IAsyncBinaryReader CreateReader() { stream.Position = 0L; var sequence = ToReadOnlySequence <byte>(stream.ToArray(), 3); return(IAsyncBinaryReader.Create(sequence)); }
public static void EncodeAsString(BufferWriter <byte> writer, Encoding encoding) { var encodingContext = new EncodingContext(encoding, true); using (writer) { var g = Guid.NewGuid(); var bi = new BigInteger(RandomBytes(64)); var dt = DateTime.Now; var dto = DateTimeOffset.Now; writer.WriteInt64(42L, LengthFormat.Plain, in encodingContext, provider: InvariantCulture); writer.WriteUInt64(12UL, LengthFormat.PlainLittleEndian, in encodingContext, provider: InvariantCulture); writer.WriteInt32(34, LengthFormat.PlainBigEndian, in encodingContext, provider: InvariantCulture); writer.WriteUInt32(78, LengthFormat.Plain, in encodingContext, provider: InvariantCulture); writer.WriteInt16(90, LengthFormat.Plain, in encodingContext, provider: InvariantCulture); writer.WriteUInt16(12, LengthFormat.Plain, in encodingContext, format: "X", provider: InvariantCulture); writer.WriteUInt16(12, LengthFormat.Plain, in encodingContext, provider: InvariantCulture); writer.WriteByte(10, LengthFormat.Plain, in encodingContext, format: "X", provider: InvariantCulture); writer.WriteSByte(11, LengthFormat.Plain, in encodingContext, format: "X", provider: InvariantCulture); writer.WriteByte(10, LengthFormat.Plain, in encodingContext, provider: InvariantCulture); writer.WriteSByte(11, LengthFormat.Plain, in encodingContext, provider: InvariantCulture); writer.WriteGuid(g, LengthFormat.Plain, in encodingContext); writer.WriteGuid(g, LengthFormat.Plain, in encodingContext, format: "X"); writer.WriteDateTime(dt, LengthFormat.Plain, in encodingContext, format: "O", provider: InvariantCulture); writer.WriteDateTimeOffset(dto, LengthFormat.Plain, in encodingContext, format: "O", provider: InvariantCulture); writer.WriteDateTime(dt, LengthFormat.Plain, in encodingContext, format: "O", provider: InvariantCulture); writer.WriteDateTimeOffset(dto, LengthFormat.Plain, in encodingContext, format: "O", provider: InvariantCulture); writer.WriteDecimal(42.5M, LengthFormat.Plain, in encodingContext, provider: InvariantCulture); writer.WriteSingle(32.2F, LengthFormat.Plain, in encodingContext, provider: InvariantCulture); writer.WriteDouble(56.6D, LengthFormat.Plain, in encodingContext, provider: InvariantCulture); writer.WriteBigInteger(bi, LengthFormat.Plain, in encodingContext, provider: InvariantCulture); var decodingContext = new DecodingContext(encoding, true); var reader = IAsyncBinaryReader.Create(writer.WrittenMemory); Equal(42L, reader.ReadInt64(LengthFormat.Plain, in decodingContext, provider: InvariantCulture)); Equal(12UL, reader.ReadUInt64(LengthFormat.PlainLittleEndian, in decodingContext, provider: InvariantCulture)); Equal(34, reader.ReadInt32(LengthFormat.PlainBigEndian, in decodingContext, provider: InvariantCulture)); Equal(78U, reader.ReadUInt32(LengthFormat.Plain, in decodingContext, provider: InvariantCulture)); Equal(90, reader.ReadInt16(LengthFormat.Plain, in decodingContext, provider: InvariantCulture)); Equal("C", reader.ReadString(LengthFormat.Plain, in decodingContext)); Equal(12, reader.ReadUInt16(LengthFormat.Plain, in decodingContext, provider: InvariantCulture)); Equal("A", reader.ReadString(LengthFormat.Plain, in decodingContext)); Equal("B", reader.ReadString(LengthFormat.Plain, in decodingContext)); Equal(10, reader.ReadByte(LengthFormat.Plain, in decodingContext, provider: InvariantCulture)); Equal(11, reader.ReadSByte(LengthFormat.Plain, in decodingContext, provider: InvariantCulture)); Equal(g, reader.ReadGuid(LengthFormat.Plain, in decodingContext)); Equal(g, reader.ReadGuid(LengthFormat.Plain, in decodingContext, "X")); Equal(dt, reader.ReadDateTime(LengthFormat.Plain, in decodingContext, style: DateTimeStyles.RoundtripKind, provider: InvariantCulture)); Equal(dto, reader.ReadDateTimeOffset(LengthFormat.Plain, in decodingContext, style: DateTimeStyles.RoundtripKind, provider: InvariantCulture)); Equal(dt, reader.ReadDateTime(LengthFormat.Plain, in decodingContext, formats: new[] { "O" }, style: DateTimeStyles.RoundtripKind, provider: InvariantCulture)); Equal(dto, reader.ReadDateTimeOffset(LengthFormat.Plain, in decodingContext, formats: new[] { "O" }, style: DateTimeStyles.RoundtripKind, provider: InvariantCulture)); Equal(42.5M, reader.ReadDecimal(LengthFormat.Plain, in decodingContext, provider: InvariantCulture)); Equal(32.2F, reader.ReadSingle(LengthFormat.Plain, in decodingContext, provider: InvariantCulture)); Equal(56.6D, reader.ReadDouble(LengthFormat.Plain, in decodingContext, provider: InvariantCulture)); Equal(bi, reader.ReadBigInteger(LengthFormat.Plain, in decodingContext, provider: InvariantCulture)); } }
public static async Task ReadWriteBlittableTypeUsingReader() { using var ms = new MemoryStream(); ms.Write(10M); ms.Position = 0; var reader = IAsyncBinaryReader.Create(ms, new byte[128]); Equal(10M, await reader.ReadAsync <decimal>()); }
public static async Task ReadBlittableType() { var ms = new MemoryStream(1024); ms.Write(10M); ms.Position = 0; IAsyncBinaryReader reader = IAsyncBinaryReader.Create(ms.ToArray()); Equal(10M, await reader.ReadAsync <decimal>()); }
private static async Task ReadWriteStringUsingEncodingAsync(string value, Encoding encoding, int bufferSize, StringLengthEncoding? lengthEnc) { var writer = new ArrayBufferWriter<byte>(); writer.WriteString(value.AsSpan(), encoding, bufferSize, lengthEnc); IAsyncBinaryReader reader = IAsyncBinaryReader.Create(writer.WrittenMemory); var result = await (lengthEnc is null ? reader.ReadStringAsync(encoding.GetByteCount(value), encoding) : reader.ReadStringAsync(lengthEnc.GetValueOrDefault(), encoding)); Equal(value, result); }
public static async Task CopyToStream() { var content = new byte[] { 1, 5, 8, 9 }; IAsyncBinaryReader reader = IAsyncBinaryReader.Create(new ChunkSequence <byte>(content, 2).ToReadOnlySequence()); using var ms = new MemoryStream(); await reader.CopyToAsync(ms); ms.Position = 0; Equal(content, ms.ToArray()); }
private static async Task ReadWriteStringUsingEncodingAsync(string value, Encoding encoding, StringLengthEncoding?lengthEnc) { using var ms = new MemoryStream(); await ms.WriteStringAsync(value.AsMemory(), encoding, lengthEnc); ms.Position = 0; IAsyncBinaryReader reader = IAsyncBinaryReader.Create(ms.ToArray()); var result = await(lengthEnc is null ? reader.ReadStringAsync(encoding.GetByteCount(value), encoding) : reader.ReadStringAsync(lengthEnc.Value, encoding)); Equal(value, result); }
public static async Task ReadBlittableTypes(bool littleEndian) { var writer = new ArrayBufferWriter<byte>(); writer.Write(10M); writer.WriteInt64(42L, littleEndian); writer.WriteInt32(44, littleEndian); writer.WriteInt16(46, littleEndian); IAsyncBinaryReader reader = IAsyncBinaryReader.Create(writer.WrittenMemory); Equal(10M, await reader.ReadAsync<decimal>()); Equal(42L, await reader.ReadInt64Async(littleEndian)); Equal(44, await reader.ReadInt32Async(littleEndian)); Equal(46, await reader.ReadInt16Async(littleEndian)); }
public static async Task ReadMemory() { var sequence = new ChunkSequence <byte>(new byte[] { 1, 5, 8, 9 }, 2).ToReadOnlySequence(); False(sequence.IsSingleSegment); var result = new byte[3]; IAsyncBinaryReader reader = IAsyncBinaryReader.Create(sequence); await reader.ReadAsync(result); Equal(1, result[0]); Equal(5, result[1]); Equal(8, result[2]); }
public static async Task CopyToPipe() { var expected = new byte[] { 1, 5, 8, 9 }; IAsyncBinaryReader reader = IAsyncBinaryReader.Create(new ChunkSequence <byte>(expected, 2).ToReadOnlySequence()); var pipe = new Pipe(); await reader.CopyToAsync(pipe.Writer); await pipe.Writer.CompleteAsync(); var actual = new byte[expected.Length]; await pipe.Reader.ReadBlockAsync(actual); Equal(expected, actual); }
private static async Task ReadWriteStringUsingEncodingAsync(string value, Encoding encoding, int bufferSize, LengthFormat?lengthEnc) { using var ms = new MemoryStream(); var buffer = new byte[bufferSize]; await ms.WriteStringAsync(value.AsMemory(), encoding, buffer, lengthEnc); ms.Position = 0; var reader = IAsyncBinaryReader.Create(ms, buffer); var result = await(lengthEnc is null ? reader.ReadStringAsync(encoding.GetByteCount(value), encoding) : reader.ReadStringAsync(lengthEnc.Value, encoding)); Equal(value, result); }
public static async Task ReadWriteMemoryUsingReader() { using var ms = new MemoryStream(); ms.Write(new byte[] { 1, 5, 7, 9 }); ms.Position = 0; var reader = IAsyncBinaryReader.Create(ms, new byte[128]); var memory = new byte[4]; await reader.ReadAsync(memory); Equal(1, memory[0]); Equal(5, memory[1]); Equal(7, memory[2]); Equal(9, memory[3]); }
public static async Task ReadBlittableTypes(bool littleEndian) { var bi = new BigInteger(RandomBytes(32)); var writer = new ArrayBufferWriter <byte>(); writer.Write(10M); writer.WriteInt64(42L, littleEndian); writer.WriteInt32(44, littleEndian); writer.WriteInt16(46, littleEndian); writer.WriteBigInteger(in bi, littleEndian, LengthFormat.Compressed); IAsyncBinaryReader reader = IAsyncBinaryReader.Create(writer.WrittenMemory); Equal(10M, await reader.ReadAsync <decimal>()); Equal(42L, await reader.ReadInt64Async(littleEndian)); Equal(44, await reader.ReadInt32Async(littleEndian)); Equal(46, await reader.ReadInt16Async(littleEndian)); Equal(bi, await reader.ReadBigIntegerAsync(LengthFormat.Compressed, littleEndian)); }
public static void ReadBlittableType(bool littleEndian) { var writer = new ArrayBufferWriter <byte>(); writer.Write(10M); writer.WriteInt64(42L, littleEndian); writer.WriteUInt64(43UL, littleEndian); writer.WriteInt32(44, littleEndian); writer.WriteUInt32(45U, littleEndian); writer.WriteInt16(46, littleEndian); writer.WriteUInt16(47, littleEndian); var reader = IAsyncBinaryReader.Create(writer.WrittenMemory); Equal(10M, reader.Read <decimal>()); Equal(42L, reader.ReadInt64(littleEndian)); Equal(43UL, reader.ReadUInt64(littleEndian)); Equal(44, reader.ReadInt32(littleEndian)); Equal(45U, reader.ReadUInt32(littleEndian)); Equal(46, reader.ReadInt16(littleEndian)); Equal(47, reader.ReadUInt16(littleEndian)); }
public IAsyncBinaryReader CreateReader() => IAsyncBinaryReader.Create(buffer.WrittenMemory);
ValueTask <TResult> IDataTransferObject.TransformAsync <TResult, TTransformation>(TTransformation transformation, CancellationToken token) => transformation.TransformAsync(IAsyncBinaryReader.Create(Content), token);
public IAsyncBinaryReader CreateReader() => IAsyncBinaryReader.Create(pipe.Reader);
public IAsyncBinaryReader CreateReader() { stream.Position = 0L; return(IAsyncBinaryReader.Create(stream, buffer)); }
public IAsyncBinaryReader CreateReader() => IAsyncBinaryReader.Create(stream.ToArray());