public override ValueTask <bool> ProcessInboundMessageAsync(PacketHeaders headers, ReadOnlyMemory <byte> payload, EndPoint endpoint, CancellationToken token) { if (headers.Type == MessageType.Continue) { return(new ValueTask <bool>(true)); } TrySetResult(IExchange.ReadResult(payload.Span)); return(default);
public static void HeadersSerializationDeserialization() { Memory <byte> buffer = new byte[PacketHeaders.NaturalSize]; foreach (var type in Enum <MessageType> .Members) { foreach (var control in Enum <FlowControl> .Members) { var headers = new PacketHeaders(type.Value, control.Value); headers.WriteTo(buffer); ReadOnlyMemory <byte> readOnlyView = buffer; headers = new PacketHeaders(readOnlyView, out _); Equal(type.Value, headers.Type); Equal(control.Value, headers.Control); } } }
public static void HeadersSerializationDeserialization() { Memory <byte> buffer = new byte[PacketHeaders.NaturalSize]; foreach (MessageType type in Enum.GetValues(typeof(MessageType))) { foreach (FlowControl control in Enum.GetValues(typeof(FlowControl))) { var headers = new PacketHeaders(type, control); headers.WriteTo(buffer); ReadOnlyMemory <byte> readOnlyView = buffer; headers = new PacketHeaders(readOnlyView, out _); Equal(type, headers.Type); Equal(control, headers.Control); } } }
public override ValueTask <bool> ProcessInboundMessageAsync(PacketHeaders headers, ReadOnlyMemory <byte> payload, EndPoint endpoint, CancellationToken token) { Debug.Assert(headers.Control == FlowControl.Ack); TrySetResult(ValueTypeExtensions.ToBoolean(payload.Span[0])); return(new ValueTask <bool>(false)); }