| // Copyright 2021 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "quic/core/http/web_transport_http3.h" |
| |
| #include <memory> |
| |
| #include "quic/core/http/quic_spdy_session.h" |
| #include "quic/core/http/quic_spdy_stream.h" |
| |
| namespace quic { |
| |
| namespace { |
| class QUIC_EXPORT_PRIVATE NoopWebTransportVisitor : public WebTransportVisitor { |
| void OnSessionReady() override {} |
| void OnIncomingBidirectionalStreamAvailable() override {} |
| void OnIncomingUnidirectionalStreamAvailable() override {} |
| void OnDatagramReceived(absl::string_view /*datagram*/) override {} |
| void OnCanCreateNewOutgoingBidirectionalStream() override {} |
| void OnCanCreateNewOutgoingUnidirectionalStream() override {} |
| }; |
| } // namespace |
| |
| WebTransportHttp3::WebTransportHttp3(QuicSpdySession* session, |
| QuicSpdyStream* connect_stream, |
| WebTransportSessionId id) |
| : session_(session), |
| connect_stream_(connect_stream), |
| id_(id), |
| visitor_(std::make_unique<NoopWebTransportVisitor>()) {} |
| |
| void WebTransportHttp3::HeadersReceived( |
| const spdy::SpdyHeaderBlock& /*headers*/) { |
| ready_ = true; |
| visitor_->OnSessionReady(); |
| } |
| |
| WebTransportStream* WebTransportHttp3::AcceptIncomingBidirectionalStream() { |
| // TODO(vasilvv): implement this. |
| return nullptr; |
| } |
| WebTransportStream* WebTransportHttp3::AcceptIncomingUnidirectionalStream() { |
| // TODO(vasilvv): implement this. |
| return nullptr; |
| } |
| |
| bool WebTransportHttp3::CanOpenNextOutgoingBidirectionalStream() { |
| // TODO(vasilvv): implement this. |
| return false; |
| } |
| bool WebTransportHttp3::CanOpenNextOutgoingUnidirectionalStream() { |
| // TODO(vasilvv): implement this. |
| return false; |
| } |
| WebTransportStream* WebTransportHttp3::OpenOutgoingBidirectionalStream() { |
| // TODO(vasilvv): implement this. |
| return nullptr; |
| } |
| WebTransportStream* WebTransportHttp3::OpenOutgoingUnidirectionalStream() { |
| // TODO(vasilvv): implement this. |
| return nullptr; |
| } |
| |
| MessageStatus WebTransportHttp3::SendOrQueueDatagram( |
| QuicMemSlice /*datagram*/) { |
| // TODO(vasilvv): implement this. |
| return MessageStatus::MESSAGE_STATUS_UNSUPPORTED; |
| } |
| void WebTransportHttp3::SetDatagramMaxTimeInQueue( |
| QuicTime::Delta /*max_time_in_queue*/) { |
| // TODO(vasilvv): implement this. |
| } |
| |
| } // namespace quic |