Move implementation of PacketTransportInternal::RegisterReceivedPacketCallback

Moved to cc file to fix link issue when linking with dynamic library
(crd).

Bug: webrtc:15368
Change-Id: I51cefcd439fda93d1135fcffa75198ab680e8583
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340302
Reviewed-by: Jonas Oreland <jonaso@google.com>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41801}
This commit is contained in:
Per K 2024-02-25 17:49:22 +01:00 committed by WebRTC LUCI CQ
parent d0491a3431
commit a021d99d2a
3 changed files with 25 additions and 10 deletions

View file

@ -637,7 +637,10 @@ rtc_library("packet_transport_internal") {
"../rtc_base/system:rtc_export",
"../rtc_base/third_party/sigslot",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
absl_deps = [
"//third_party/abseil-cpp/absl/functional:any_invocable",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_library("port") {

View file

@ -27,6 +27,19 @@ absl::optional<NetworkRoute> PacketTransportInternal::network_route() const {
return absl::optional<NetworkRoute>();
}
void PacketTransportInternal::RegisterReceivedPacketCallback(
void* id,
absl::AnyInvocable<void(PacketTransportInternal*,
const rtc::ReceivedPacket&)> callback) {
RTC_DCHECK_RUN_ON(&network_checker_);
received_packet_callback_list_.AddReceiver(id, std::move(callback));
}
void PacketTransportInternal::DeregisterReceivedPacketCallback(void* id) {
RTC_DCHECK_RUN_ON(&network_checker_);
received_packet_callback_list_.RemoveReceivers(id);
}
void PacketTransportInternal::NotifyPacketReceived(
const rtc::ReceivedPacket& packet) {
RTC_DCHECK_RUN_ON(&network_checker_);

View file

@ -15,6 +15,7 @@
#include <utility>
#include <vector>
#include "absl/functional/any_invocable.h"
#include "absl/types/optional.h"
#include "p2p/base/port.h"
#include "rtc_base/async_packet_socket.h"
@ -81,15 +82,13 @@ class RTC_EXPORT PacketTransportInternal : public sigslot::has_slots<> {
// Emitted when receiving state changes to true.
sigslot::signal1<PacketTransportInternal*> SignalReceivingState;
template <typename F>
void RegisterReceivedPacketCallback(void* id, F&& callback) {
RTC_DCHECK_RUN_ON(&network_checker_);
received_packet_callback_list_.AddReceiver(id, std::forward<F>(callback));
}
void DeregisterReceivedPacketCallback(void* id) {
RTC_DCHECK_RUN_ON(&network_checker_);
received_packet_callback_list_.RemoveReceivers(id);
}
// Callback is invoked each time a packet is received on this channel.
void RegisterReceivedPacketCallback(
void* id,
absl::AnyInvocable<void(PacketTransportInternal*,
const rtc::ReceivedPacket&)> callback);
void DeregisterReceivedPacketCallback(void* id);
// Signalled each time a packet is received on this channel.
// TODO(bugs.webrtc.org:15368): Deprecate and remove. Replace with