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