internal void AddHeaders(IHeadersFrame newFrame) { if (newFrame == null) { return; } if (!_wasFirstFrameReceived && !(newFrame is HeadersFrame) && !(newFrame is PushPromiseFrame)) { throw new ProtocolError(ResetStatusCode.ProtocolError, "Continuation was not precessed by the headers"); } _wasFirstFrameReceived = true; if (newFrame is IEndStreamFrame && !WasEndStreamReceived) { WasEndStreamReceived = (newFrame as IEndStreamFrame).IsEndStream; } headers.AddRange(newFrame.Headers); if ((newFrame is HeadersFrame && newFrame.IsEndHeaders) || (newFrame is ContinuationFrame && newFrame.IsEndHeaders) || newFrame is PushPromiseFrame && (newFrame as PushPromiseFrame).IsEndHeaders) { IsComplete = true; } }
internal HeadersSequence(int streamId, IHeadersFrame initialFrame = null) { Priority = Constants.DefaultStreamPriority; StreamId = streamId; IsComplete = false; _wasFirstFrameReceived = false; AddHeaders(initialFrame); }
internal HeadersSequence(int streamId, IHeadersFrame initialFrame = null) { Priority = Constants.DefaultStreamPriority; StreamId = streamId; IsComplete = false; _wasFirstFrameReceived = false; WasEndStreamReceived = false; AddHeaders(initialFrame); }
internal void AddHeaders(IHeadersFrame newFrame) { if (newFrame == null) return; if (!_wasFirstFrameReceived && !(newFrame is HeadersFrame)) throw new ProtocolError(ResetStatusCode.ProtocolError, "Continuation was not precessed by the headers"); _wasFirstFrameReceived = true; headers.AddRange(newFrame.Headers); if (newFrame.IsEndHeaders) IsComplete = true; }
internal void AddHeaders(IHeadersFrame newFrame) { if (newFrame == null) return; if (!_wasFirstFrameReceived && !(newFrame is HeadersFrame) && !(newFrame is PushPromiseFrame)) throw new ProtocolError(ResetStatusCode.ProtocolError, "Continuation was not precessed by the headers"); _wasFirstFrameReceived = true; if (newFrame is IEndStreamFrame && !WasEndStreamReceived) WasEndStreamReceived = (newFrame as IEndStreamFrame).IsEndStream; headers.AddRange(newFrame.Headers); if ((newFrame is HeadersFrame && newFrame.IsEndHeaders) || (newFrame is ContinuationFrame && newFrame.IsEndHeaders) || newFrame is PushPromiseFrame && (newFrame as PushPromiseFrame).IsEndPushPromise) { IsComplete = true; } }