Replace IcetransportInternal::SignalCandidatesRemoved sigslot
with an one-user callback.
Bug: webrtc:11943
Change-Id: Ia61c7811f0058fa7238d47ef13fadfd547f052ce
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328900
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41250}
diff --git a/p2p/base/ice_transport_internal.h b/p2p/base/ice_transport_internal.h
index d80dc99..73e1089 100644
--- a/p2p/base/ice_transport_internal.h
+++ b/p2p/base/ice_transport_internal.h
@@ -317,8 +317,12 @@
candidate_error_callback_ = std::move(callback);
}
- sigslot::signal2<IceTransportInternal*, const Candidates&>
- SignalCandidatesRemoved;
+ void SetCandidatesRemovedCallback(
+ absl::AnyInvocable<void(IceTransportInternal*, const Candidates&)>
+ callback) {
+ RTC_DCHECK(!candidates_removed_callback_);
+ candidates_removed_callback_ = std::move(callback);
+ }
// Deprecated by PacketTransportInternal::SignalNetworkRouteChanged.
// This signal occurs when there is a change in the way that packets are
@@ -379,6 +383,9 @@
absl::AnyInvocable<void(IceTransportInternal*, const IceCandidateErrorEvent&)>
candidate_error_callback_;
+
+ absl::AnyInvocable<void(IceTransportInternal*, const Candidates&)>
+ candidates_removed_callback_;
};
} // namespace cricket
diff --git a/p2p/base/p2p_transport_channel.cc b/p2p/base/p2p_transport_channel.cc
index cb097c3..a46f38e 100644
--- a/p2p/base/p2p_transport_channel.cc
+++ b/p2p/base/p2p_transport_channel.cc
@@ -2202,7 +2202,9 @@
candidate.set_transport_name(transport_name());
candidates_to_remove.push_back(candidate);
}
- SignalCandidatesRemoved(this, candidates_to_remove);
+ if (candidates_removed_callback_) {
+ candidates_removed_callback_(this, candidates_to_remove);
+ }
}
void P2PTransportChannel::PruneAllPorts() {
diff --git a/p2p/base/p2p_transport_channel_unittest.cc b/p2p/base/p2p_transport_channel_unittest.cc
index 61c0064..100804f 100644
--- a/p2p/base/p2p_transport_channel_unittest.cc
+++ b/p2p/base/p2p_transport_channel_unittest.cc
@@ -488,8 +488,10 @@
this, &P2PTransportChannelTestBase::OnReadyToSend);
channel->SignalCandidateGathered.connect(
this, &P2PTransportChannelTestBase::OnCandidateGathered);
- channel->SignalCandidatesRemoved.connect(
- this, &P2PTransportChannelTestBase::OnCandidatesRemoved);
+ channel->SetCandidatesRemovedCallback(
+ [this](IceTransportInternal* transport, const Candidates& candidates) {
+ OnCandidatesRemoved(transport, candidates);
+ });
channel->SignalReadPacket.connect(
this, &P2PTransportChannelTestBase::OnReadPacket);
channel->SignalRoleConflict.connect(
diff --git a/pc/jsep_transport_controller.cc b/pc/jsep_transport_controller.cc
index a710cff..a6396a5 100644
--- a/pc/jsep_transport_controller.cc
+++ b/pc/jsep_transport_controller.cc
@@ -443,8 +443,12 @@
RTC_DCHECK_RUN_ON(network_thread_);
OnTransportCandidateError_n(transport, error);
});
- dtls->ice_transport()->SignalCandidatesRemoved.connect(
- this, &JsepTransportController::OnTransportCandidatesRemoved_n);
+ dtls->ice_transport()->SetCandidatesRemovedCallback(
+ [this](cricket::IceTransportInternal* transport,
+ const cricket::Candidates& candidates) {
+ RTC_DCHECK_RUN_ON(network_thread_);
+ OnTransportCandidatesRemoved_n(transport, candidates);
+ });
dtls->ice_transport()->SignalRoleConflict.connect(
this, &JsepTransportController::OnTransportRoleConflict_n);
dtls->ice_transport()->SignalStateChanged.connect(