protected Task SendEmptyContinuationFrameAsync(int streamId, Http2ContinuationFrameFlags flags) { var frame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize); frame.PrepareContinuation(flags, streamId); frame.PayloadLength = 0; return(SendAsync(frame.Raw)); }
protected Task SendEmptyContinuationFrameAsync(int streamId, Http2ContinuationFrameFlags flags) { var frame = new Http2Frame(); frame.PrepareContinuation(flags, streamId); frame.Length = 0; return(SendAsync(frame.Raw)); }
protected async Task SendContinuationAsync(int streamId, Http2ContinuationFrameFlags flags, byte[] payload) { var frame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize); frame.PrepareContinuation(flags, streamId); frame.PayloadLength = payload.Length; payload.CopyTo(frame.Payload); await SendAsync(frame.Raw); }
internal Task SendEmptyContinuationFrameAsync(int streamId, Http2ContinuationFrameFlags flags) { var outputWriter = _pair.Application.Output; var frame = new Http2Frame(); frame.PrepareContinuation(flags, streamId); frame.PayloadLength = 0; WriteHeader(frame, outputWriter); return(FlushAsync(outputWriter)); }
internal async Task SendContinuationAsync(int streamId, Http2ContinuationFrameFlags flags, byte[] payload) { var outputWriter = _pair.Application.Output; var frame = new Http2Frame(); frame.PrepareContinuation(flags, streamId); frame.PayloadLength = payload.Length; WriteHeader(frame, outputWriter); await SendAsync(payload); }
protected async Task <bool> SendContinuationAsync(int streamId, Http2ContinuationFrameFlags flags) { var frame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize); frame.PrepareContinuation(flags, streamId); var done = _hpackEncoder.Encode(frame.Payload, out var length); frame.PayloadLength = length; await SendAsync(frame.Raw); return(done); }
internal async Task <bool> SendContinuationAsync(int streamId, Http2ContinuationFrameFlags flags, IEnumerable <KeyValuePair <string, string> > headers) { var outputWriter = _pair.Application.Output; var frame = new Http2Frame(); frame.PrepareContinuation(flags, streamId); var buffer = _headerEncodingBuffer.AsMemory(); var done = _hpackEncoder.BeginEncode(headers, buffer.Span, out var length); frame.PayloadLength = length; WriteHeader(frame, outputWriter); await SendAsync(buffer.Span.Slice(0, length)); return(done); }
protected async Task <bool> SendContinuationAsync(int streamId, Http2ContinuationFrameFlags flags) { var outputWriter = _pair.Application.Output; var frame = new Http2Frame(); frame.PrepareContinuation(flags, streamId); var buffer = _headerEncodingBuffer.AsMemory(); var done = _hpackEncoder.Encode(buffer.Span, out var length); frame.PayloadLength = length; Http2FrameWriter.WriteHeader(frame, outputWriter); await SendAsync(buffer.Span.Slice(0, length)); return(done); }