diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:13:27 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:13:27 +0000 |
commit | 40a355a42d4a9444dc753c04c6608dade2f06a23 (patch) | |
tree | 871fc667d2de662f171103ce5ec067014ef85e61 /third_party/libwebrtc/p2p/base/ice_transport_internal.h | |
parent | Adding upstream version 124.0.1. (diff) | |
download | firefox-40a355a42d4a9444dc753c04c6608dade2f06a23.tar.xz firefox-40a355a42d4a9444dc753c04c6608dade2f06a23.zip |
Adding upstream version 125.0.1.upstream/125.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/p2p/base/ice_transport_internal.h')
-rw-r--r-- | third_party/libwebrtc/p2p/base/ice_transport_internal.h | 51 |
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 |