Explicit comparisons on NetworkRoute.

Since not all fields are compared on NetworkRoute structs, the ==
operator overload doesn't really make the code easier to read. In fact
the feature that it only compares a subset of the fields is only used
once, at the other places, all fields are compared.

Removing the overload makes it more clear what is compared at each call
site.

Bug: webrtc:9883
Change-Id: I74f7eb32b602aa33fd282a815b71a172ae3f6a8b
Reviewed-on: https://webrtc-review.googlesource.com/c/113001
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25891}
This commit is contained in:
Sebastian Jansson 2018-12-04 11:16:19 +01:00 committed by Commit Bot
parent c4f120130f
commit af2adda252
4 changed files with 14 additions and 19 deletions

View File

@ -236,7 +236,9 @@ void RtpTransportControllerSend::OnNetworkRouteChanged(
// No need to reset BWE if this is the first time the network connects.
return;
}
if (kv->second != network_route) {
if (kv->second.connected != network_route.connected ||
kv->second.local_network_id != network_route.local_network_id ||
kv->second.remote_network_id != network_route.remote_network_id) {
kv->second = network_route;
BitrateConstraints bitrate_config = bitrate_configurator_.GetConfig();
RTC_LOG(LS_INFO) << "Network route changed on transport " << transport_name

View File

@ -925,12 +925,11 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
});
WaitForThreads();
EXPECT_EQ(1, media_channel1->num_network_route_changes());
rtc::NetworkRoute expected_network_route;
expected_network_route.connected = true;
expected_network_route.local_network_id = kLocalNetId;
expected_network_route.remote_network_id = kRemoteNetId;
expected_network_route.last_sent_packet_id = kLastPacketId;
EXPECT_EQ(expected_network_route, media_channel1->last_network_route());
EXPECT_TRUE(media_channel1->last_network_route().connected);
EXPECT_EQ(kLocalNetId,
media_channel1->last_network_route().local_network_id);
EXPECT_EQ(kRemoteNetId,
media_channel1->last_network_route().remote_network_id);
EXPECT_EQ(kLastPacketId,
media_channel1->last_network_route().last_sent_packet_id);
EXPECT_EQ(kTransportOverheadPerPacket + kSrtpOverheadPerPacket,

View File

@ -193,7 +193,9 @@ TEST(RtpTransportTest, SetRtpTransportWithNetworkRouteChanged) {
fake_rtp.SetNetworkRoute(absl::optional<rtc::NetworkRoute>(network_route));
transport.SetRtpPacketTransport(&fake_rtp);
ASSERT_TRUE(observer.network_route());
EXPECT_EQ(network_route, *(observer.network_route()));
EXPECT_TRUE(observer.network_route()->connected);
EXPECT_EQ(kLocalNetId, observer.network_route()->local_network_id);
EXPECT_EQ(kRemoteNetId, observer.network_route()->remote_network_id);
EXPECT_EQ(kTransportOverheadPerPacket,
observer.network_route()->packet_overhead);
EXPECT_EQ(kLastPacketId, observer.network_route()->last_sent_packet_id);
@ -220,7 +222,9 @@ TEST(RtpTransportTest, SetRtcpTransportWithNetworkRouteChanged) {
fake_rtcp.SetNetworkRoute(absl::optional<rtc::NetworkRoute>(network_route));
transport.SetRtcpPacketTransport(&fake_rtcp);
ASSERT_TRUE(observer.network_route());
EXPECT_EQ(network_route, *(observer.network_route()));
EXPECT_TRUE(observer.network_route()->connected);
EXPECT_EQ(kLocalNetId, observer.network_route()->local_network_id);
EXPECT_EQ(kRemoteNetId, observer.network_route()->remote_network_id);
EXPECT_EQ(kTransportOverheadPerPacket,
observer.network_route()->packet_overhead);
EXPECT_EQ(kLastPacketId, observer.network_route()->last_sent_packet_id);

View File

@ -27,16 +27,6 @@ struct NetworkRoute {
int last_sent_packet_id = -1;
// The overhead in bytes from IP layer and above.
int packet_overhead = 0;
// |last_sent_packet_id| and |packet_overhead| do not affect the NetworkRoute
// comparison.
bool operator==(const NetworkRoute& nr) const {
return connected == nr.connected &&
local_network_id == nr.local_network_id &&
remote_network_id == nr.remote_network_id;
}
bool operator!=(const NetworkRoute& nr) const { return !(*this == nr); }
};
} // namespace rtc