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