blob: f1f25d871bfe5989c9ea8cf1c8c86bf653648443 [file] [log] [blame]
QUICHE teama6ef0a62019-03-07 20:34:33 -05001// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "net/third_party/quiche/src/quic/core/quic_packet_writer_wrapper.h"
6
7#include "net/third_party/quiche/src/quic/core/quic_types.h"
8
9namespace quic {
10
11QuicPacketWriterWrapper::QuicPacketWriterWrapper() = default;
12
13QuicPacketWriterWrapper::~QuicPacketWriterWrapper() {
14 unset_writer();
15}
16
17WriteResult QuicPacketWriterWrapper::WritePacket(
18 const char* buffer,
19 size_t buf_len,
20 const QuicIpAddress& self_address,
21 const QuicSocketAddress& peer_address,
22 PerPacketOptions* options) {
23 return writer_->WritePacket(buffer, buf_len, self_address, peer_address,
24 options);
25}
26
27bool QuicPacketWriterWrapper::IsWriteBlocked() const {
28 return writer_->IsWriteBlocked();
29}
30
31void QuicPacketWriterWrapper::SetWritable() {
32 writer_->SetWritable();
33}
34
35QuicByteCount QuicPacketWriterWrapper::GetMaxPacketSize(
36 const QuicSocketAddress& peer_address) const {
37 return writer_->GetMaxPacketSize(peer_address);
38}
39
40bool QuicPacketWriterWrapper::SupportsReleaseTime() const {
41 return writer_->SupportsReleaseTime();
42}
43
44bool QuicPacketWriterWrapper::IsBatchMode() const {
45 return writer_->IsBatchMode();
46}
47
48char* QuicPacketWriterWrapper::GetNextWriteLocation(
49 const QuicIpAddress& self_address,
50 const QuicSocketAddress& peer_address) {
51 return writer_->GetNextWriteLocation(self_address, peer_address);
52}
53
54WriteResult QuicPacketWriterWrapper::Flush() {
55 return writer_->Flush();
56}
57
58void QuicPacketWriterWrapper::set_writer(QuicPacketWriter* writer) {
59 unset_writer();
60 writer_ = writer;
61 owns_writer_ = true;
62}
63
64void QuicPacketWriterWrapper::set_non_owning_writer(QuicPacketWriter* writer) {
65 unset_writer();
66 writer_ = writer;
67 owns_writer_ = false;
68}
69
70void QuicPacketWriterWrapper::unset_writer() {
71 if (owns_writer_) {
72 delete writer_;
73 }
74
75 owns_writer_ = false;
76 writer_ = nullptr;
77}
78
79} // namespace quic