replace sigslot signal candidate error with callbacklist
Bug: webrtc:42222066
Change-Id: I55961074151750c4510db353ed5b81204f0730e4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/405300
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45390}
diff --git a/p2p/base/port.cc b/p2p/base/port.cc
index 033e3f6..720479c 100644
--- a/p2p/base/port.cc
+++ b/p2p/base/port.cc
@@ -309,6 +309,15 @@
}
}
+void Port::SubscribeCandidateError(
+ std::function<void(Port*, const IceCandidateErrorEvent&)> callback) {
+ candidate_error_callback_list_.AddReceiver(std::move(callback));
+}
+
+void Port::SendCandidateError(const IceCandidateErrorEvent& event) {
+ candidate_error_callback_list_.Send(this, event);
+}
+
void Port::AddOrReplaceConnection(Connection* conn) {
auto ret = connections_.insert(
std::make_pair(conn->remote_candidate().address(), conn));
@@ -838,7 +847,7 @@
void Port::SubscribePortDestroyed(
std::function<void(PortInterface*)> callback) {
- port_destroyed_callback_list_.AddReceiver(callback);
+ port_destroyed_callback_list_.AddReceiver(std::move(callback));
}
void Port::SendPortDestroyed(Port* port) {
diff --git a/p2p/base/port.h b/p2p/base/port.h
index 0d774db..01348f3 100644
--- a/p2p/base/port.h
+++ b/p2p/base/port.h
@@ -257,7 +257,9 @@
// Provides all of the above information in one handy object.
const std::vector<Candidate>& Candidates() const override;
// Fired when candidate discovery failed using certain server.
- sigslot::signal2<Port*, const IceCandidateErrorEvent&> SignalCandidateError;
+ void SubscribeCandidateError(
+ std::function<void(Port*, const IceCandidateErrorEvent&)> callback);
+ void SendCandidateError(const IceCandidateErrorEvent& candidate_error_event);
// SignalPortComplete is sent when port completes the task of candidates
// allocation.
@@ -517,6 +519,8 @@
permission_queries_;
CallbackList<PortInterface*> port_destroyed_callback_list_;
+ CallbackList<Port*, const IceCandidateErrorEvent&>
+ candidate_error_callback_list_;
// Keep as the last member variable.
WeakPtrFactory<Port> weak_factory_;
diff --git a/p2p/base/stun_port.cc b/p2p/base/stun_port.cc
index 7623ccc..ea7ad8a 100644
--- a/p2p/base/stun_port.cc
+++ b/p2p/base/stun_port.cc
@@ -574,10 +574,9 @@
if (error_code != STUN_ERROR_NOT_AN_ERROR) {
StringBuilder url;
url << "stun:" << stun_server_addr.ToString();
- SignalCandidateError(
- this, IceCandidateErrorEvent(
- GetLocalAddress().HostAsSensitiveURIString(),
- GetLocalAddress().port(), url.str(), error_code, reason));
+ SendCandidateError(IceCandidateErrorEvent(
+ GetLocalAddress().HostAsSensitiveURIString(), GetLocalAddress().port(),
+ url.str(), error_code, reason));
}
if (bind_request_failed_servers_.find(stun_server_addr) !=
bind_request_failed_servers_.end()) {
diff --git a/p2p/base/stun_port_unittest.cc b/p2p/base/stun_port_unittest.cc
index 1fd40d4..963335b 100644
--- a/p2p/base/stun_port_unittest.cc
+++ b/p2p/base/stun_port_unittest.cc
@@ -218,8 +218,10 @@
stun_port_->SignalPortComplete.connect(this,
&StunPortTestBase::OnPortComplete);
stun_port_->SignalPortError.connect(this, &StunPortTestBase::OnPortError);
- stun_port_->SignalCandidateError.connect(
- this, &StunPortTestBase::OnCandidateError);
+ stun_port_->SubscribeCandidateError(
+ [this](Port* port, const IceCandidateErrorEvent& event) {
+ OnCandidateError(port, event);
+ });
}
void CreateSharedUdpPort(
diff --git a/p2p/base/turn_port.cc b/p2p/base/turn_port.cc
index 72f449d..3027ba2 100644
--- a/p2p/base/turn_port.cc
+++ b/p2p/base/turn_port.cc
@@ -940,8 +940,7 @@
port = 0;
}
if (error_code != STUN_ERROR_NOT_AN_ERROR) {
- SignalCandidateError(
- this,
+ SendCandidateError(
IceCandidateErrorEvent(address, port, server_url_, error_code, reason));
}
}
diff --git a/p2p/base/turn_port_unittest.cc b/p2p/base/turn_port_unittest.cc
index c56c04b..e296ed7 100644
--- a/p2p/base/turn_port_unittest.cc
+++ b/p2p/base/turn_port_unittest.cc
@@ -367,8 +367,11 @@
turn_port_->SignalPortComplete.connect(this,
&TurnPortTest::OnTurnPortComplete);
turn_port_->SignalPortError.connect(this, &TurnPortTest::OnTurnPortError);
- turn_port_->SignalCandidateError.connect(this,
- &TurnPortTest::OnCandidateError);
+ turn_port_->SubscribeCandidateError(
+ [this](Port* port, const IceCandidateErrorEvent& event) {
+ OnCandidateError(port, event);
+ });
+
turn_port_->SignalUnknownAddress.connect(
this, &TurnPortTest::OnTurnUnknownAddress);
turn_port_->SubscribePortDestroyed(
diff --git a/p2p/client/basic_port_allocator.cc b/p2p/client/basic_port_allocator.cc
index 7ea5dd7..498d33a 100644
--- a/p2p/client/basic_port_allocator.cc
+++ b/p2p/client/basic_port_allocator.cc
@@ -922,8 +922,10 @@
port->SignalCandidateReady.connect(
this, &BasicPortAllocatorSession::OnCandidateReady);
- port->SignalCandidateError.connect(
- this, &BasicPortAllocatorSession::OnCandidateError);
+ port->SubscribeCandidateError(
+ [this](Port* port, const IceCandidateErrorEvent& event) {
+ OnCandidateError(port, event);
+ });
port->SignalPortComplete.connect(this,
&BasicPortAllocatorSession::OnPortComplete);
port->SubscribePortDestroyed(