Introduce QuicUtils::InvertPerspective and refactor code to use it gfe-relnote: quic perspective refactor, no behavior change PiperOrigin-RevId: 255318447 Change-Id: I10a7cb3478382f851d3f5a1293a248918ec95844
diff --git a/quic/core/http/quic_receive_control_stream_test.cc b/quic/core/http/quic_receive_control_stream_test.cc index 94456a9..9af2678 100644 --- a/quic/core/http/quic_receive_control_stream_test.cc +++ b/quic/core/http/quic_receive_control_stream_test.cc
@@ -58,8 +58,7 @@ auto pending = QuicMakeUnique<PendingStream>( QuicUtils::GetFirstUnidirectionalStreamId( GetParam().version.transport_version, - perspective() == Perspective::IS_CLIENT ? Perspective::IS_SERVER - : Perspective::IS_CLIENT), + QuicUtils::InvertPerspective(perspective())), &session_); receive_control_stream_ = QuicMakeUnique<QuicReceiveControlStream>(pending.get());
diff --git a/quic/core/qpack/qpack_receive_stream_test.cc b/quic/core/qpack/qpack_receive_stream_test.cc index d324a0f..121043f 100644 --- a/quic/core/qpack/qpack_receive_stream_test.cc +++ b/quic/core/qpack/qpack_receive_stream_test.cc
@@ -55,12 +55,11 @@ SupportedVersions(GetParam().version))), session_(connection_) { session_.Initialize(); - PendingStream* pending = new PendingStream( - QuicUtils::GetFirstUnidirectionalStreamId( - GetParam().version.transport_version, - perspective() == Perspective::IS_CLIENT ? Perspective::IS_SERVER - : Perspective::IS_CLIENT), - &session_); + PendingStream* pending = + new PendingStream(QuicUtils::GetFirstUnidirectionalStreamId( + GetParam().version.transport_version, + QuicUtils::InvertPerspective(perspective())), + &session_); qpack_receive_stream_ = QuicMakeUnique<QpackReceiveStream>(pending); delete pending; }
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc index b51ca45..749b3b6 100644 --- a/quic/core/quic_connection_test.cc +++ b/quic/core/quic_connection_test.cc
@@ -85,11 +85,6 @@ QuicSocketAddress(QuicIpAddress::Loopback6(), /*port=*/443); -Perspective InvertPerspective(Perspective perspective) { - return perspective == Perspective::IS_CLIENT ? Perspective::IS_SERVER - : Perspective::IS_CLIENT; -} - QuicStreamId GetNthClientInitiatedStreamId(int n, QuicTransportVersion version) { return QuicUtils::GetFirstBidirectionalStreamId(version, @@ -533,7 +528,7 @@ // We invert perspective here, because the framer needs to parse packets // we send. QuicFramerPeer::SetPerspective(framer_.framer(), - InvertPerspective(perspective)); + QuicUtils::InvertPerspective(perspective)); } // final_bytes_of_last_packet_ returns the last four bytes of the previous @@ -1539,7 +1534,7 @@ connection_.set_can_truncate_connection_ids(true); } QuicFramerPeer::SetPerspective(&peer_framer_, - InvertPerspective(perspective)); + QuicUtils::InvertPerspective(perspective)); } void set_packets_between_probes_base(
diff --git a/quic/core/quic_stream_id_manager.cc b/quic/core/quic_stream_id_manager.cc index 793ee6c..8b8ff90 100644 --- a/quic/core/quic_stream_id_manager.cc +++ b/quic/core/quic_stream_id_manager.cc
@@ -402,8 +402,7 @@ } Perspective QuicStreamIdManager::peer_perspective() const { - return (perspective() == Perspective::IS_SERVER) ? Perspective::IS_CLIENT - : Perspective::IS_SERVER; + return QuicUtils::InvertPerspective(perspective()); } QuicTransportVersion QuicStreamIdManager::transport_version() const {
diff --git a/quic/core/quic_utils.h b/quic/core/quic_utils.h index bac025e..294f52f 100644 --- a/quic/core/quic_utils.h +++ b/quic/core/quic_utils.h
@@ -85,6 +85,12 @@ // Creates an iovec pointing to the same data as |data|. static struct iovec MakeIovec(QuicStringPiece data); + // Returns the opposite Perspective of the |perspective| passed in. + static constexpr Perspective InvertPerspective(Perspective perspective) { + return perspective == Perspective::IS_CLIENT ? Perspective::IS_SERVER + : Perspective::IS_CLIENT; + } + // Returns true if a packet is ackable. A packet is unackable if it can never // be acked. Occurs when a packet is never sent, after it is acknowledged // once, or if it's a crypto packet we never expect to receive an ack for.
diff --git a/quic/core/uber_quic_stream_id_manager_test.cc b/quic/core/uber_quic_stream_id_manager_test.cc index 291f63b..203dbb8 100644 --- a/quic/core/uber_quic_stream_id_manager_test.cc +++ b/quic/core/uber_quic_stream_id_manager_test.cc
@@ -275,16 +275,10 @@ EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0); EXPECT_TRUE(manager_->MaybeIncreaseLargestPeerStreamId(StreamCountToId( manager_->actual_max_allowed_incoming_bidirectional_streams(), - /* Perspective=*/GetParam() == Perspective::IS_SERVER - ? Perspective::IS_CLIENT - : Perspective::IS_SERVER, - /* bidirectional=*/true))); + QuicUtils::InvertPerspective(GetParam()), /* bidirectional=*/true))); EXPECT_TRUE(manager_->MaybeIncreaseLargestPeerStreamId(StreamCountToId( manager_->actual_max_allowed_incoming_bidirectional_streams(), - /* Perspective=*/GetParam() == Perspective::IS_SERVER - ? Perspective::IS_CLIENT - : Perspective::IS_SERVER, - /* bidirectional=*/false))); + QuicUtils::InvertPerspective(GetParam()), /* bidirectional=*/false))); std::string error_details = GetParam() == Perspective::IS_SERVER @@ -295,10 +289,7 @@ CloseConnection(QUIC_INVALID_STREAM_ID, error_details, _)); EXPECT_FALSE(manager_->MaybeIncreaseLargestPeerStreamId(StreamCountToId( manager_->actual_max_allowed_incoming_bidirectional_streams() + 1, - /* Perspective=*/GetParam() == Perspective::IS_SERVER - ? Perspective::IS_CLIENT - : Perspective::IS_SERVER, - /* bidirectional=*/true))); + QuicUtils::InvertPerspective(GetParam()), /* bidirectional=*/true))); error_details = GetParam() == Perspective::IS_SERVER ? "Stream id 402 would exceed stream count limit 100" : "Stream id 403 would exceed stream count limit 100"; @@ -306,10 +297,7 @@ CloseConnection(QUIC_INVALID_STREAM_ID, error_details, _)); EXPECT_FALSE(manager_->MaybeIncreaseLargestPeerStreamId(StreamCountToId( manager_->actual_max_allowed_incoming_bidirectional_streams() + 1, - /* Perspective=*/GetParam() == Perspective::IS_SERVER - ? Perspective::IS_CLIENT - : Perspective::IS_SERVER, - /* bidirectional=*/false))); + QuicUtils::InvertPerspective(GetParam()), /* bidirectional=*/false))); } TEST_P(UberQuicStreamIdManagerTest, OnMaxStreamsFrame) {