Implement QuicTransportStream, a stream that can be only accessed after client indication is received.

gfe-relnote: n/a (not used in production)
PiperOrigin-RevId: 275553939
Change-Id: I19a2bf2f8335e6408204c7b5eac6dcfe2dc0a210
diff --git a/quic/quic_transport/quic_transport_client_session.cc b/quic/quic_transport/quic_transport_client_session.cc
index 032f61d..105472f 100644
--- a/quic/quic_transport/quic_transport_client_session.cc
+++ b/quic/quic_transport/quic_transport_client_session.cc
@@ -19,6 +19,7 @@
 #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_text_utils.h"
+#include "net/third_party/quiche/src/quic/quic_transport/quic_transport_stream.h"
 
 namespace quic {
 
@@ -60,6 +61,13 @@
       crypto_config, proof_handler);
 }
 
+QuicStream* QuicTransportClientSession::CreateIncomingStream(QuicStreamId id) {
+  auto stream = std::make_unique<QuicTransportStream>(id, this, this);
+  QuicTransportStream* stream_ptr = stream.get();
+  ActivateStream(std::move(stream));
+  return stream_ptr;
+}
+
 void QuicTransportClientSession::OnCryptoHandshakeEvent(
     CryptoHandshakeEvent event) {
   QuicSession::OnCryptoHandshakeEvent(event);