diff options
Diffstat (limited to 'chromium/net/third_party/quiche/src/quic/core/quic_default_packet_writer.cc')
-rw-r--r-- | chromium/net/third_party/quiche/src/quic/core/quic_default_packet_writer.cc | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/chromium/net/third_party/quiche/src/quic/core/quic_default_packet_writer.cc b/chromium/net/third_party/quiche/src/quic/core/quic_default_packet_writer.cc new file mode 100644 index 00000000000..a9147c07442 --- /dev/null +++ b/chromium/net/third_party/quiche/src/quic/core/quic_default_packet_writer.cc @@ -0,0 +1,68 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "net/third_party/quiche/src/quic/core/quic_default_packet_writer.h" + +#include "net/quic/platform/impl/quic_socket_utils.h" + +namespace quic { + +QuicDefaultPacketWriter::QuicDefaultPacketWriter(int fd) + : fd_(fd), write_blocked_(false) {} + +QuicDefaultPacketWriter::~QuicDefaultPacketWriter() = default; + +WriteResult QuicDefaultPacketWriter::WritePacket( + const char* buffer, + size_t buf_len, + const QuicIpAddress& self_address, + const QuicSocketAddress& peer_address, + PerPacketOptions* options) { + DCHECK(!write_blocked_); + DCHECK(nullptr == options) + << "QuicDefaultPacketWriter does not accept any options."; + WriteResult result = QuicSocketUtils::WritePacket(fd_, buffer, buf_len, + self_address, peer_address); + if (IsWriteBlockedStatus(result.status)) { + write_blocked_ = true; + } + return result; +} + +bool QuicDefaultPacketWriter::IsWriteBlocked() const { + return write_blocked_; +} + +void QuicDefaultPacketWriter::SetWritable() { + write_blocked_ = false; +} + +QuicByteCount QuicDefaultPacketWriter::GetMaxPacketSize( + const QuicSocketAddress& peer_address) const { + return kMaxOutgoingPacketSize; +} + +bool QuicDefaultPacketWriter::SupportsReleaseTime() const { + return false; +} + +bool QuicDefaultPacketWriter::IsBatchMode() const { + return false; +} + +char* QuicDefaultPacketWriter::GetNextWriteLocation( + const QuicIpAddress& self_address, + const QuicSocketAddress& peer_address) { + return nullptr; +} + +WriteResult QuicDefaultPacketWriter::Flush() { + return WriteResult(WRITE_STATUS_OK, 0); +} + +void QuicDefaultPacketWriter::set_write_blocked(bool is_blocked) { + write_blocked_ = is_blocked; +} + +} // namespace quic |