xref: /aosp_15_r20/external/webrtc/rtc_base/async_packet_socket.cc (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker /*
2*d9f75844SAndroid Build Coastguard Worker  *  Copyright 2015 The WebRTC Project Authors. All rights reserved.
3*d9f75844SAndroid Build Coastguard Worker  *
4*d9f75844SAndroid Build Coastguard Worker  *  Use of this source code is governed by a BSD-style license
5*d9f75844SAndroid Build Coastguard Worker  *  that can be found in the LICENSE file in the root of the source
6*d9f75844SAndroid Build Coastguard Worker  *  tree. An additional intellectual property rights grant can be found
7*d9f75844SAndroid Build Coastguard Worker  *  in the file PATENTS.  All contributing project authors may
8*d9f75844SAndroid Build Coastguard Worker  *  be found in the AUTHORS file in the root of the source tree.
9*d9f75844SAndroid Build Coastguard Worker  */
10*d9f75844SAndroid Build Coastguard Worker 
11*d9f75844SAndroid Build Coastguard Worker #include "rtc_base/async_packet_socket.h"
12*d9f75844SAndroid Build Coastguard Worker 
13*d9f75844SAndroid Build Coastguard Worker namespace rtc {
14*d9f75844SAndroid Build Coastguard Worker 
15*d9f75844SAndroid Build Coastguard Worker PacketTimeUpdateParams::PacketTimeUpdateParams() = default;
16*d9f75844SAndroid Build Coastguard Worker 
17*d9f75844SAndroid Build Coastguard Worker PacketTimeUpdateParams::PacketTimeUpdateParams(
18*d9f75844SAndroid Build Coastguard Worker     const PacketTimeUpdateParams& other) = default;
19*d9f75844SAndroid Build Coastguard Worker 
20*d9f75844SAndroid Build Coastguard Worker PacketTimeUpdateParams::~PacketTimeUpdateParams() = default;
21*d9f75844SAndroid Build Coastguard Worker 
22*d9f75844SAndroid Build Coastguard Worker PacketOptions::PacketOptions() = default;
PacketOptions(DiffServCodePoint dscp)23*d9f75844SAndroid Build Coastguard Worker PacketOptions::PacketOptions(DiffServCodePoint dscp) : dscp(dscp) {}
24*d9f75844SAndroid Build Coastguard Worker PacketOptions::PacketOptions(const PacketOptions& other) = default;
25*d9f75844SAndroid Build Coastguard Worker PacketOptions::~PacketOptions() = default;
26*d9f75844SAndroid Build Coastguard Worker 
AsyncPacketSocket()27*d9f75844SAndroid Build Coastguard Worker AsyncPacketSocket::AsyncPacketSocket() {
28*d9f75844SAndroid Build Coastguard Worker   network_checker_.Detach();
29*d9f75844SAndroid Build Coastguard Worker }
30*d9f75844SAndroid Build Coastguard Worker 
31*d9f75844SAndroid Build Coastguard Worker AsyncPacketSocket::~AsyncPacketSocket() = default;
32*d9f75844SAndroid Build Coastguard Worker 
SubscribeClose(const void * removal_tag,std::function<void (AsyncPacketSocket *,int)> callback)33*d9f75844SAndroid Build Coastguard Worker void AsyncPacketSocket::SubscribeClose(
34*d9f75844SAndroid Build Coastguard Worker     const void* removal_tag,
35*d9f75844SAndroid Build Coastguard Worker     std::function<void(AsyncPacketSocket*, int)> callback) {
36*d9f75844SAndroid Build Coastguard Worker   RTC_DCHECK_RUN_ON(&network_checker_);
37*d9f75844SAndroid Build Coastguard Worker   on_close_.AddReceiver(removal_tag, std::move(callback));
38*d9f75844SAndroid Build Coastguard Worker }
39*d9f75844SAndroid Build Coastguard Worker 
UnsubscribeClose(const void * removal_tag)40*d9f75844SAndroid Build Coastguard Worker void AsyncPacketSocket::UnsubscribeClose(const void* removal_tag) {
41*d9f75844SAndroid Build Coastguard Worker   RTC_DCHECK_RUN_ON(&network_checker_);
42*d9f75844SAndroid Build Coastguard Worker   on_close_.RemoveReceivers(removal_tag);
43*d9f75844SAndroid Build Coastguard Worker }
44*d9f75844SAndroid Build Coastguard Worker 
CopySocketInformationToPacketInfo(size_t packet_size_bytes,const AsyncPacketSocket & socket_from,bool is_connectionless,rtc::PacketInfo * info)45*d9f75844SAndroid Build Coastguard Worker void CopySocketInformationToPacketInfo(size_t packet_size_bytes,
46*d9f75844SAndroid Build Coastguard Worker                                        const AsyncPacketSocket& socket_from,
47*d9f75844SAndroid Build Coastguard Worker                                        bool is_connectionless,
48*d9f75844SAndroid Build Coastguard Worker                                        rtc::PacketInfo* info) {
49*d9f75844SAndroid Build Coastguard Worker   info->packet_size_bytes = packet_size_bytes;
50*d9f75844SAndroid Build Coastguard Worker   info->ip_overhead_bytes = socket_from.GetLocalAddress().ipaddr().overhead();
51*d9f75844SAndroid Build Coastguard Worker }
52*d9f75844SAndroid Build Coastguard Worker 
53*d9f75844SAndroid Build Coastguard Worker }  // namespace rtc
54