mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
73 lines
1.9 KiB
C++
73 lines
1.9 KiB
C++
|
// Copyright (c) 2017 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/quic/quartc/quartc_packet_writer.h"
|
||
|
|
||
|
namespace quic {
|
||
|
|
||
|
QuartcPacketWriter::QuartcPacketWriter(QuartcPacketTransport* packet_transport,
|
||
|
QuicByteCount max_packet_size)
|
||
|
: packet_transport_(packet_transport), max_packet_size_(max_packet_size) {}
|
||
|
|
||
|
WriteResult QuartcPacketWriter::WritePacket(
|
||
|
const char* buffer,
|
||
|
size_t buf_len,
|
||
|
const QuicIpAddress& self_address,
|
||
|
const QuicSocketAddress& peer_address,
|
||
|
PerPacketOptions* options) {
|
||
|
DCHECK(packet_transport_);
|
||
|
|
||
|
QuartcPacketTransport::PacketInfo info;
|
||
|
if (connection_) {
|
||
|
info.packet_number = connection_->packet_generator().packet_number();
|
||
|
}
|
||
|
|
||
|
int bytes_written = packet_transport_->Write(buffer, buf_len, info);
|
||
|
if (bytes_written <= 0) {
|
||
|
writable_ = false;
|
||
|
return WriteResult(WRITE_STATUS_BLOCKED, EWOULDBLOCK);
|
||
|
}
|
||
|
return WriteResult(WRITE_STATUS_OK, bytes_written);
|
||
|
}
|
||
|
|
||
|
bool QuartcPacketWriter::IsWriteBlockedDataBuffered() const {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
bool QuartcPacketWriter::IsWriteBlocked() const {
|
||
|
return !writable_;
|
||
|
}
|
||
|
|
||
|
QuicByteCount QuartcPacketWriter::GetMaxPacketSize(
|
||
|
const QuicSocketAddress& peer_address) const {
|
||
|
return max_packet_size_;
|
||
|
}
|
||
|
|
||
|
void QuartcPacketWriter::SetWritable() {
|
||
|
writable_ = true;
|
||
|
}
|
||
|
|
||
|
bool QuartcPacketWriter::SupportsReleaseTime() const {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
bool QuartcPacketWriter::IsBatchMode() const {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
char* QuartcPacketWriter::GetNextWriteLocation() const {
|
||
|
return nullptr;
|
||
|
}
|
||
|
|
||
|
WriteResult QuartcPacketWriter::Flush() {
|
||
|
return WriteResult(WRITE_STATUS_OK, 0);
|
||
|
}
|
||
|
|
||
|
void QuartcPacketWriter::SetPacketTransportDelegate(
|
||
|
QuartcPacketTransport::Delegate* delegate) {
|
||
|
packet_transport_->SetDelegate(delegate);
|
||
|
}
|
||
|
|
||
|
} // namespace quic
|