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);
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
        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));
 }