103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// found in the LICENSE file. 403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "net/tools/quic/quic_per_connection_packet_writer.h" 603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace net { 803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace tools { 1003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)QuicPerConnectionPacketWriter::QuicPerConnectionPacketWriter( 1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) QuicPacketWriter* shared_writer, 1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) QuicConnection* connection) 1403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) : shared_writer_(shared_writer), 1503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) connection_(connection) { 1603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 1703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)QuicPerConnectionPacketWriter::~QuicPerConnectionPacketWriter() { 1903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 2103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)WriteResult QuicPerConnectionPacketWriter::WritePacket( 2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const char* buffer, 2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) size_t buf_len, 2403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const IPAddressNumber& self_address, 2503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const IPEndPoint& peer_address) { 2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) return shared_writer_->WritePacket(buffer, 2703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) buf_len, 2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) self_address, 2903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) peer_address); 3003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 3203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)bool QuicPerConnectionPacketWriter::IsWriteBlockedDataBuffered() const { 3303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) return shared_writer_->IsWriteBlockedDataBuffered(); 3403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)bool QuicPerConnectionPacketWriter::IsWriteBlocked() const { 3703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) return shared_writer_->IsWriteBlocked(); 3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 3903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 4003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)void QuicPerConnectionPacketWriter::SetWritable() { 4103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) shared_writer_->SetWritable(); 4203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 4303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 4403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} // namespace tools 4503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 4603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} // namespace net 47