System.ServiceModel.Http2Protocol.Http2Stream.OnProtocolData C# (CSharp) Method

OnProtocolData() private method

Event handler for protocol data.
private OnProtocolData ( object sender, System.ServiceModel.Http2Protocol.StreamEventArgs e ) : void
sender object the sender object.
e System.ServiceModel.Http2Protocol.StreamEventArgs Event arguments.
return void
        private void OnProtocolData(object sender, StreamEventArgs e)
        {
            if (e.Stream == this)
            {
                if (Http2StreamState.Closed == e.Stream.State)
                {
                    this.Close(StatusCode.ProtocolError);
                    return;
                }

                if (e is HeadersEventArgs)
                {
                    var args = (HeadersEventArgs)e;
                    this.Headers.Merge(args.Headers);

                    if (this.OnHeadersReceived != null)
                    {
                        this.OnHeadersReceived(this, args);
                    }
                }
                else if (e is StreamDataEventArgs)
                {
                    StreamDataEventArgs arg = e as StreamDataEventArgs;
                    if (arg.IsFin && this.State == Http2StreamState.HalfClosed)
                    {
                        this.Close();
                    }

                    if (this.OnDataReceived != null)
                    {
                        StreamDataEventArgs args = (StreamDataEventArgs)e;
                        this.OnDataReceived(this, e as StreamDataEventArgs);

                        //TODO incomment when server will be able to handle windowUpdate
                        /*if (Session.IsFlowControlEnabled)
                        {
                            CurrentWindowBalanceFromServer -= args.Data.Data.Length;
                            if (CurrentWindowBalanceFromServer <= 0)
                                this.protocol.SendWindowUpdate(this, Session.CurrentWindowBalanceToServer);
                        }*/
                    }
                }
                else if (e is RSTEventArgs)
                {
                    if (this.OnRSTReceived != null)
                    {
                        this.OnRSTReceived(this, e as RSTEventArgs);
                    }
                }
            }
        }