Replace RTCTransportInternal::SignalCandidatePairChange sigslot

and add a callback instead.

Bug: webrtc:12598
Change-Id: I41ee044fc45f15bbf9fc31ba9067cef2a5071faf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329060
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41263}
This commit is contained in:
Harald Alvestrand 2023-11-28 13:57:49 +00:00 committed by WebRTC LUCI CQ
parent 2798c2bfe6
commit 09b2fb65da
4 changed files with 21 additions and 8 deletions

View file

@ -332,8 +332,12 @@ class RTC_EXPORT IceTransportInternal : public rtc::PacketTransportInternal {
// SignalNetworkRouteChanged. // SignalNetworkRouteChanged.
sigslot::signal2<IceTransportInternal*, const Candidate&> SignalRouteChange; sigslot::signal2<IceTransportInternal*, const Candidate&> SignalRouteChange;
sigslot::signal1<const cricket::CandidatePairChangeEvent&> void SetCandidatePairChangeCallback(
SignalCandidatePairChanged; absl::AnyInvocable<void(const cricket::CandidatePairChangeEvent&)>
callback) {
RTC_DCHECK(!candidate_pair_change_callback_);
candidate_pair_change_callback_ = std::move(callback);
}
// Invoked when there is conflict in the ICE role between local and remote // Invoked when there is conflict in the ICE role between local and remote
// agents. // agents.
@ -386,6 +390,9 @@ class RTC_EXPORT IceTransportInternal : public rtc::PacketTransportInternal {
absl::AnyInvocable<void(IceTransportInternal*, const Candidates&)> absl::AnyInvocable<void(IceTransportInternal*, const Candidates&)>
candidates_removed_callback_; candidates_removed_callback_;
absl::AnyInvocable<void(const cricket::CandidatePairChangeEvent&)>
candidate_pair_change_callback_;
}; };
} // namespace cricket } // namespace cricket

View file

@ -1871,8 +1871,9 @@ void P2PTransportChannel::SwitchSelectedConnectionInternal(
} else { } else {
pair_change.estimated_disconnected_time_ms = 0; pair_change.estimated_disconnected_time_ms = 0;
} }
if (candidate_pair_change_callback_) {
SignalCandidatePairChanged(pair_change); candidate_pair_change_callback_(pair_change);
}
} }
++selected_candidate_pair_changes_; ++selected_candidate_pair_changes_;

View file

@ -3483,8 +3483,10 @@ class P2PTransportChannelPingTest : public ::testing::Test,
&P2PTransportChannelPingTest::OnReadyToSend); &P2PTransportChannelPingTest::OnReadyToSend);
ch->SignalStateChanged.connect( ch->SignalStateChanged.connect(
this, &P2PTransportChannelPingTest::OnChannelStateChanged); this, &P2PTransportChannelPingTest::OnChannelStateChanged);
ch->SignalCandidatePairChanged.connect( ch->SetCandidatePairChangeCallback(
this, &P2PTransportChannelPingTest::OnCandidatePairChanged); [this](const cricket::CandidatePairChangeEvent& event) {
OnCandidatePairChanged(event);
});
} }
Connection* WaitForConnectionTo( Connection* WaitForConnectionTo(

View file

@ -455,8 +455,11 @@ JsepTransportController::CreateDtlsTransport(
this, &JsepTransportController::OnTransportStateChanged_n); this, &JsepTransportController::OnTransportStateChanged_n);
dtls->ice_transport()->SignalIceTransportStateChanged.connect( dtls->ice_transport()->SignalIceTransportStateChanged.connect(
this, &JsepTransportController::OnTransportStateChanged_n); this, &JsepTransportController::OnTransportStateChanged_n);
dtls->ice_transport()->SignalCandidatePairChanged.connect( dtls->ice_transport()->SetCandidatePairChangeCallback(
this, &JsepTransportController::OnTransportCandidatePairChanged_n); [this](const cricket::CandidatePairChangeEvent& event) {
RTC_DCHECK_RUN_ON(network_thread_);
OnTransportCandidatePairChanged_n(event);
});
dtls->SubscribeDtlsHandshakeError( dtls->SubscribeDtlsHandshakeError(
[this](rtc::SSLHandshakeError error) { OnDtlsHandshakeError(error); }); [this](rtc::SSLHandshakeError error) { OnDtlsHandshakeError(error); });