Allow QuicReceiveControlStreams to construct from pending streams. gfe-relnote: n/a --unused code. PiperOrigin-RevId: 245838514 Change-Id: I7f01b4236da10776aa559f371a86478d7adcd7a0
diff --git a/quic/core/http/quic_receive_control_stream.cc b/quic/core/http/quic_receive_control_stream.cc index 4c625c0..8e0c011 100644 --- a/quic/core/http/quic_receive_control_stream.cc +++ b/quic/core/http/quic_receive_control_stream.cc
@@ -111,6 +111,14 @@ sequencer()->set_level_triggered(true); } +QuicReceiveControlStream::QuicReceiveControlStream(PendingStream pending) + : QuicStream(std::move(pending), READ_UNIDIRECTIONAL), + received_settings_length_(0), + http_decoder_visitor_(new HttpDecoderVisitor(this)) { + decoder_.set_visitor(http_decoder_visitor_.get()); + sequencer()->set_level_triggered(true); +} + QuicReceiveControlStream::~QuicReceiveControlStream() {} void QuicReceiveControlStream::OnStreamReset(const QuicRstStreamFrame& frame) {
diff --git a/quic/core/http/quic_receive_control_stream.h b/quic/core/http/quic_receive_control_stream.h index 1805d6c..61e4299 100644 --- a/quic/core/http/quic_receive_control_stream.h +++ b/quic/core/http/quic_receive_control_stream.h
@@ -20,6 +20,9 @@ // |session| can't be nullptr, and the ownership is not passed. The stream can // only be accessed through the session. explicit QuicReceiveControlStream(QuicStreamId id, QuicSpdySession* session); + // Construct control stream from pending stream, the |pending| object will no + // longer exist after the construction. + explicit QuicReceiveControlStream(PendingStream pending); QuicReceiveControlStream(const QuicReceiveControlStream&) = delete; QuicReceiveControlStream& operator=(const QuicReceiveControlStream&) = delete; ~QuicReceiveControlStream() override;