Remove AsyncPacketSocket::SignalReadPacket

Bug: webrtc:11943
Change-Id: I064a5252ed08e7d06695d03364326fa7f4c562a7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331301
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41385}
This commit is contained in:
Per K 2023-12-14 13:09:02 +01:00 committed by WebRTC LUCI CQ
parent d9e2cc2bbd
commit c202f9635e
6 changed files with 23 additions and 86 deletions

View file

@ -1982,6 +1982,7 @@ if (rtc_include_tests) {
"containers:flat_map",
"containers:unittests",
"memory:unittests",
"network:received_packet",
"synchronization:mutex",
"task_utils:repeating_task",
"third_party/base64",
@ -2143,6 +2144,7 @@ if (rtc_include_tests) {
"../test:test_main",
"../test:test_support",
"memory:fifo_buffer",
"network:received_packet",
"synchronization:mutex",
"third_party/sigslot",
]

View file

@ -45,13 +45,11 @@ void AsyncPacketSocket::RegisterReceivedPacketCallback(
received_packet_callback) {
RTC_DCHECK_RUN_ON(&network_checker_);
RTC_CHECK(!received_packet_callback_);
SignalReadPacket.connect(this, &AsyncPacketSocket::NotifyPacketReceived);
received_packet_callback_ = std::move(received_packet_callback);
}
void AsyncPacketSocket::DeregisterReceivedPacketCallback() {
RTC_DCHECK_RUN_ON(&network_checker_);
SignalReadPacket.disconnect(this);
received_packet_callback_ = nullptr;
}
@ -62,17 +60,6 @@ void AsyncPacketSocket::NotifyPacketReceived(
received_packet_callback_(this, packet);
return;
}
if (SignalReadPacket.is_empty()) {
RTC_DCHECK_NOTREACHED() << " No listener registered";
return;
}
// TODO(bugs.webrtc.org:15368): Remove. This code path is only used if
// SignalReadyPacket is used by clients to get notification of received
// packets but actual socket implementation use NotifyPacketReceived to
// trigger the notification.
SignalReadPacket(this, reinterpret_cast<const char*>(packet.payload().data()),
packet.payload().size(), packet.source_address(),
packet.arrival_time() ? packet.arrival_time()->us() : -1);
}
void CopySocketInformationToPacketInfo(size_t packet_size_bytes,

View file

@ -122,18 +122,6 @@ class RTC_EXPORT AsyncPacketSocket : public sigslot::has_slots<> {
received_packet_callback);
void DeregisterReceivedPacketCallback();
// Emitted each time a packet is read. Used only for UDP and
// connected TCP sockets.
// TODO(bugs.webrtc.org:15368): Deprecate and remove.
sigslot::signal5<AsyncPacketSocket*,
const char*,
size_t,
const SocketAddress&,
// TODO(bugs.webrtc.org/9584): Change to passing the int64_t
// timestamp by value.
const int64_t&>
SignalReadPacket;
// Emitted each time a packet is sent.
sigslot::signal2<AsyncPacketSocket*, const SentPacket&> SignalSentPacket;

View file

@ -63,48 +63,5 @@ TEST(AsyncPacketSocket, RegisteredCallbackReceivePacketsFromNotify) {
mock_socket.NotifyPacketReceived();
}
TEST(AsyncPacketSocket, RegisteredCallbackReceivePacketsFromSignalReadPacket) {
MockAsyncPacketSocket mock_socket;
MockFunction<void(AsyncPacketSocket*, const rtc::ReceivedPacket&)>
received_packet;
EXPECT_CALL(received_packet, Call);
mock_socket.RegisterReceivedPacketCallback(received_packet.AsStdFunction());
char data[1] = {'a'};
mock_socket.SignalReadPacket(&mock_socket, data, 1, SocketAddress(), -1);
}
TEST(AsyncPacketSocket, SignalReadPacketTriggeredByNotifyPacketReceived) {
class SigslotPacketReceiver : public sigslot::has_slots<> {
public:
explicit SigslotPacketReceiver(rtc::AsyncPacketSocket& socket) {
socket.SignalReadPacket.connect(this,
&SigslotPacketReceiver::OnPacketReceived);
}
bool packet_received() const { return packet_received_; }
private:
void OnPacketReceived(AsyncPacketSocket*,
const char*,
size_t,
const SocketAddress&,
// TODO(bugs.webrtc.org/9584): Change to passing the
// int64_t timestamp by value.
const int64_t&) {
packet_received_ = true;
}
bool packet_received_ = false;
};
MockAsyncPacketSocket mock_socket;
SigslotPacketReceiver receiver(mock_socket);
ASSERT_FALSE(receiver.packet_received());
mock_socket.NotifyPacketReceived();
EXPECT_TRUE(receiver.packet_received());
}
} // namespace
} // namespace rtc

View file

@ -22,6 +22,7 @@
#include "rtc_base/fake_clock.h"
#include "rtc_base/gunit.h"
#include "rtc_base/internal/default_socket_server.h"
#include "rtc_base/network/received_packet.h"
#include "rtc_base/null_socket_server.h"
#include "rtc_base/physical_socket_server.h"
#include "rtc_base/ref_counted_object.h"
@ -84,20 +85,20 @@ class SocketClient : public TestGenerator, public sigslot::has_slots<> {
: socket_(AsyncUDPSocket::Create(socket, addr)),
post_thread_(post_thread),
post_handler_(phandler) {
socket_->SignalReadPacket.connect(this, &SocketClient::OnPacket);
socket_->RegisterReceivedPacketCallback(
[&](rtc::AsyncPacketSocket* socket, const rtc::ReceivedPacket& packet) {
OnPacket(socket, packet);
});
}
~SocketClient() override { delete socket_; }
SocketAddress address() const { return socket_->GetLocalAddress(); }
void OnPacket(AsyncPacketSocket* socket,
const char* buf,
size_t size,
const SocketAddress& remote_addr,
const int64_t& packet_time_us) {
EXPECT_EQ(size, sizeof(uint32_t));
uint32_t prev = reinterpret_cast<const uint32_t*>(buf)[0];
void OnPacket(AsyncPacketSocket* socket, const rtc::ReceivedPacket& packet) {
EXPECT_EQ(packet.payload().size(), sizeof(uint32_t));
uint32_t prev =
reinterpret_cast<const uint32_t*>(packet.payload().data())[0];
uint32_t result = Next(prev);
post_thread_->PostDelayedTask([post_handler_ = post_handler_,

View file

@ -13,6 +13,8 @@
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "rtc_base/network/received_packet.h"
#if defined(WEBRTC_POSIX)
#include <netinet/in.h>
#endif
@ -101,7 +103,10 @@ struct Receiver : public sigslot::has_slots<> {
sum(0),
sum_sq(0),
samples(0) {
socket->SignalReadPacket.connect(this, &Receiver::OnReadPacket);
socket->RegisterReceivedPacketCallback(
[&](rtc::AsyncPacketSocket* socket, const rtc::ReceivedPacket& packet) {
OnReadPacket(socket, packet);
});
periodic = RepeatingTaskHandle::DelayedStart(
thread, TimeDelta::Seconds(1), [this] {
// It is always possible for us to receive more than expected because
@ -116,18 +121,15 @@ struct Receiver : public sigslot::has_slots<> {
~Receiver() override { periodic.Stop(); }
void OnReadPacket(AsyncPacketSocket* s,
const char* data,
size_t size,
const SocketAddress& remote_addr,
const int64_t& /* packet_time_us */) {
void OnReadPacket(AsyncPacketSocket* s, const rtc::ReceivedPacket& packet) {
ASSERT_EQ(socket.get(), s);
ASSERT_GE(size, 4U);
ASSERT_GE(packet.payload().size(), 4U);
count += size;
sec_count += size;
count += packet.payload().size();
sec_count += packet.payload().size();
uint32_t send_time = *reinterpret_cast<const uint32_t*>(data);
uint32_t send_time =
*reinterpret_cast<const uint32_t*>(packet.payload().data());
uint32_t recv_time = rtc::TimeMillis();
uint32_t delay = recv_time - send_time;
sum += delay;