Esempio n. 1
0
        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);
 }
Esempio n. 3
0
 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;
        }
Esempio n. 5
0
        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;
            }
        }