diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-05-17 17:24:03 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-06-22 07:51:41 +0000 |
commit | 774f54339e5db91f785733232d3950366db65d07 (patch) | |
tree | 068e1b47bd1af94d77094ed12b604a6b83d9c22a /chromium/net/third_party/quiche/src/quiche/quic/core/uber_quic_stream_id_manager.cc | |
parent | f7eaed5286974984ba5f9e3189d8f49d03e99f81 (diff) | |
download | qtwebengine-chromium-774f54339e5db91f785733232d3950366db65d07.tar.gz |
BASELINE: Update Chromium to 102.0.5005.57
Change-Id: I885f714bb40ee724c28f94ca6bd8dbdb39915158
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/net/third_party/quiche/src/quiche/quic/core/uber_quic_stream_id_manager.cc')
-rw-r--r-- | chromium/net/third_party/quiche/src/quiche/quic/core/uber_quic_stream_id_manager.cc | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/chromium/net/third_party/quiche/src/quiche/quic/core/uber_quic_stream_id_manager.cc b/chromium/net/third_party/quiche/src/quiche/quic/core/uber_quic_stream_id_manager.cc new file mode 100644 index 00000000000..2c8b1a5a650 --- /dev/null +++ b/chromium/net/third_party/quiche/src/quiche/quic/core/uber_quic_stream_id_manager.cc @@ -0,0 +1,170 @@ +// Copyright (c) 2018 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 "quiche/quic/core/uber_quic_stream_id_manager.h" + +#include "quiche/quic/core/quic_session.h" +#include "quiche/quic/core/quic_utils.h" + +namespace quic { + +UberQuicStreamIdManager::UberQuicStreamIdManager( + Perspective perspective, ParsedQuicVersion version, + QuicStreamIdManager::DelegateInterface* delegate, + QuicStreamCount max_open_outgoing_bidirectional_streams, + QuicStreamCount max_open_outgoing_unidirectional_streams, + QuicStreamCount max_open_incoming_bidirectional_streams, + QuicStreamCount max_open_incoming_unidirectional_streams) + : version_(version), + bidirectional_stream_id_manager_(delegate, + /*unidirectional=*/false, perspective, + version, + max_open_outgoing_bidirectional_streams, + max_open_incoming_bidirectional_streams), + unidirectional_stream_id_manager_( + delegate, + /*unidirectional=*/true, perspective, version, + max_open_outgoing_unidirectional_streams, + max_open_incoming_unidirectional_streams) {} + +bool UberQuicStreamIdManager::MaybeAllowNewOutgoingBidirectionalStreams( + QuicStreamCount max_open_streams) { + return bidirectional_stream_id_manager_.MaybeAllowNewOutgoingStreams( + max_open_streams); +} +bool UberQuicStreamIdManager::MaybeAllowNewOutgoingUnidirectionalStreams( + QuicStreamCount max_open_streams) { + return unidirectional_stream_id_manager_.MaybeAllowNewOutgoingStreams( + max_open_streams); +} +void UberQuicStreamIdManager::SetMaxOpenIncomingBidirectionalStreams( + QuicStreamCount max_open_streams) { + bidirectional_stream_id_manager_.SetMaxOpenIncomingStreams(max_open_streams); +} +void UberQuicStreamIdManager::SetMaxOpenIncomingUnidirectionalStreams( + QuicStreamCount max_open_streams) { + unidirectional_stream_id_manager_.SetMaxOpenIncomingStreams(max_open_streams); +} + +bool UberQuicStreamIdManager::CanOpenNextOutgoingBidirectionalStream() const { + return bidirectional_stream_id_manager_.CanOpenNextOutgoingStream(); +} + +bool UberQuicStreamIdManager::CanOpenNextOutgoingUnidirectionalStream() const { + return unidirectional_stream_id_manager_.CanOpenNextOutgoingStream(); +} + +QuicStreamId UberQuicStreamIdManager::GetNextOutgoingBidirectionalStreamId() { + return bidirectional_stream_id_manager_.GetNextOutgoingStreamId(); +} + +QuicStreamId UberQuicStreamIdManager::GetNextOutgoingUnidirectionalStreamId() { + return unidirectional_stream_id_manager_.GetNextOutgoingStreamId(); +} + +bool UberQuicStreamIdManager::MaybeIncreaseLargestPeerStreamId( + QuicStreamId id, std::string* error_details) { + if (QuicUtils::IsBidirectionalStreamId(id, version_)) { + return bidirectional_stream_id_manager_.MaybeIncreaseLargestPeerStreamId( + id, error_details); + } + return unidirectional_stream_id_manager_.MaybeIncreaseLargestPeerStreamId( + id, error_details); +} + +void UberQuicStreamIdManager::OnStreamClosed(QuicStreamId id) { + if (QuicUtils::IsBidirectionalStreamId(id, version_)) { + bidirectional_stream_id_manager_.OnStreamClosed(id); + return; + } + unidirectional_stream_id_manager_.OnStreamClosed(id); +} + +bool UberQuicStreamIdManager::OnStreamsBlockedFrame( + const QuicStreamsBlockedFrame& frame, std::string* error_details) { + if (frame.unidirectional) { + return unidirectional_stream_id_manager_.OnStreamsBlockedFrame( + frame, error_details); + } + return bidirectional_stream_id_manager_.OnStreamsBlockedFrame(frame, + error_details); +} + +bool UberQuicStreamIdManager::IsAvailableStream(QuicStreamId id) const { + if (QuicUtils::IsBidirectionalStreamId(id, version_)) { + return bidirectional_stream_id_manager_.IsAvailableStream(id); + } + return unidirectional_stream_id_manager_.IsAvailableStream(id); +} + +QuicStreamCount +UberQuicStreamIdManager::GetMaxAllowdIncomingBidirectionalStreams() const { + return bidirectional_stream_id_manager_.incoming_initial_max_open_streams(); +} + +QuicStreamCount +UberQuicStreamIdManager::GetMaxAllowdIncomingUnidirectionalStreams() const { + return unidirectional_stream_id_manager_.incoming_initial_max_open_streams(); +} + +QuicStreamId UberQuicStreamIdManager::GetLargestPeerCreatedStreamId( + bool unidirectional) const { + if (unidirectional) { + return unidirectional_stream_id_manager_.largest_peer_created_stream_id(); + } + return bidirectional_stream_id_manager_.largest_peer_created_stream_id(); +} + +QuicStreamId UberQuicStreamIdManager::next_outgoing_bidirectional_stream_id() + const { + return bidirectional_stream_id_manager_.next_outgoing_stream_id(); +} + +QuicStreamId UberQuicStreamIdManager::next_outgoing_unidirectional_stream_id() + const { + return unidirectional_stream_id_manager_.next_outgoing_stream_id(); +} + +QuicStreamCount UberQuicStreamIdManager::max_outgoing_bidirectional_streams() + const { + return bidirectional_stream_id_manager_.outgoing_max_streams(); +} + +QuicStreamCount UberQuicStreamIdManager::max_outgoing_unidirectional_streams() + const { + return unidirectional_stream_id_manager_.outgoing_max_streams(); +} + +QuicStreamCount UberQuicStreamIdManager::max_incoming_bidirectional_streams() + const { + return bidirectional_stream_id_manager_.incoming_actual_max_streams(); +} + +QuicStreamCount UberQuicStreamIdManager::max_incoming_unidirectional_streams() + const { + return unidirectional_stream_id_manager_.incoming_actual_max_streams(); +} + +QuicStreamCount +UberQuicStreamIdManager::advertised_max_incoming_bidirectional_streams() const { + return bidirectional_stream_id_manager_.incoming_advertised_max_streams(); +} + +QuicStreamCount +UberQuicStreamIdManager::advertised_max_incoming_unidirectional_streams() + const { + return unidirectional_stream_id_manager_.incoming_advertised_max_streams(); +} + +QuicStreamCount UberQuicStreamIdManager::outgoing_bidirectional_stream_count() + const { + return bidirectional_stream_id_manager_.outgoing_stream_count(); +} + +QuicStreamCount UberQuicStreamIdManager::outgoing_unidirectional_stream_count() + const { + return unidirectional_stream_id_manager_.outgoing_stream_count(); +} + +} // namespace quic |