summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/p2p/base/ice_transport_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/p2p/base/ice_transport_internal.h')
-rw-r--r--third_party/libwebrtc/p2p/base/ice_transport_internal.h51
1 files changed, 45 insertions, 6 deletions
diff --git a/third_party/libwebrtc/p2p/base/ice_transport_internal.h b/third_party/libwebrtc/p2p/base/ice_transport_internal.h
index eb21596612..38b6bfe303 100644
--- a/third_party/libwebrtc/p2p/base/ice_transport_internal.h
+++ b/third_party/libwebrtc/p2p/base/ice_transport_internal.h
@@ -304,17 +304,31 @@ class RTC_EXPORT IceTransportInternal : public rtc::PacketTransportInternal {
return absl::nullopt;
}
+ // Signal Exposed for backwards compatibility.
sigslot::signal1<IceTransportInternal*> SignalGatheringState;
+ void SetGatheringStateCallback(
+ absl::AnyInvocable<void(IceTransportInternal*)> callback) {
+ RTC_DCHECK(!gathering_state_callback_);
+ gathering_state_callback_ = std::move(callback);
+ }
// Handles sending and receiving of candidates.
sigslot::signal2<IceTransportInternal*, const Candidate&>
SignalCandidateGathered;
- sigslot::signal2<IceTransportInternal*, const IceCandidateErrorEvent&>
- SignalCandidateError;
+ void SetCandidateErrorCallback(
+ absl::AnyInvocable<void(IceTransportInternal*,
+ const IceCandidateErrorEvent&)> callback) {
+ RTC_DCHECK(!candidate_error_callback_);
+ 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
@@ -324,8 +338,12 @@ class RTC_EXPORT IceTransportInternal : public rtc::PacketTransportInternal {
// SignalNetworkRouteChanged.
sigslot::signal2<IceTransportInternal*, const Candidate&> SignalRouteChange;
- sigslot::signal1<const cricket::CandidatePairChangeEvent&>
- SignalCandidatePairChanged;
+ void SetCandidatePairChangeCallback(
+ 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
// agents.
@@ -366,12 +384,33 @@ class RTC_EXPORT IceTransportInternal : public rtc::PacketTransportInternal {
}
protected:
+ void SendGatheringStateEvent() { SignalGatheringState(this); }
+
webrtc::CallbackList<IceTransportInternal*,
const StunDictionaryView&,
rtc::ArrayView<uint16_t>>
dictionary_view_updated_callback_list_;
webrtc::CallbackList<IceTransportInternal*, const StunDictionaryWriter&>
dictionary_writer_synced_callback_list_;
+
+ absl::AnyInvocable<void(IceTransportInternal*)> gathering_state_callback_;
+
+ absl::AnyInvocable<void(IceTransportInternal*, const IceCandidateErrorEvent&)>
+ candidate_error_callback_;
+
+ absl::AnyInvocable<void(IceTransportInternal*, const Candidates&)>
+ candidates_removed_callback_;
+
+ absl::AnyInvocable<void(const cricket::CandidatePairChangeEvent&)>
+ candidate_pair_change_callback_;
+
+ private:
+ // TODO(bugs.webrtc.org/11943): remove when removing Signal
+ void SignalGatheringStateFired(IceTransportInternal* transport) {
+ if (gathering_state_callback_) {
+ gathering_state_callback_(transport);
+ }
+ }
};
} // namespace cricket