Chromium Code Reviews| Index: net/quic/quic_connection_packet_writer_wrapper.cc |
| diff --git a/net/tools/quic/quic_packet_writer_wrapper.cc b/net/quic/quic_connection_packet_writer_wrapper.cc |
| similarity index 26% |
| copy from net/tools/quic/quic_packet_writer_wrapper.cc |
| copy to net/quic/quic_connection_packet_writer_wrapper.cc |
| index 3d1b03d48e9cd8db0bbe4786f3c16680bce24fa8..bd57c08096b3fe5f0822d31d0a7c662d60ccee49 100644 |
| --- a/net/tools/quic/quic_packet_writer_wrapper.cc |
| +++ b/net/quic/quic_connection_packet_writer_wrapper.cc |
| @@ -2,47 +2,56 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "net/tools/quic/quic_packet_writer_wrapper.h" |
| +#include "net/quic/quic_connection_packet_writer_wrapper.h" |
| -#include "net/quic/quic_types.h" |
| +#include "base/location.h" |
| +#include "base/logging.h" |
| +#include "base/message_loop/message_loop.h" |
| +#include "base/metrics/sparse_histogram.h" |
| +#include "net/base/io_buffer.h" |
| +#include "net/base/net_errors.h" |
| +#include "net/quic/crypto/quic_random.h" |
| +#include "net/quic/quic_server_packet_writer.h" |
| namespace net { |
| -namespace tools { |
| -QuicPacketWriterWrapper::QuicPacketWriterWrapper() {} |
| - |
| -QuicPacketWriterWrapper::QuicPacketWriterWrapper(QuicPacketWriter* writer) |
| - : writer_(writer) {} |
| +QuicConnectionPacketWriterWrapper::QuicConnectionPacketWriterWrapper( |
| + QuicServerPacketWriter* writer, |
| + QuicConnection* connection) |
| + : weak_factory_(this), |
| + writer_(writer), |
| + connection_(connection) { |
| +} |
| -QuicPacketWriterWrapper::~QuicPacketWriterWrapper() {} |
| +QuicConnectionPacketWriterWrapper::~QuicConnectionPacketWriterWrapper() { |
| +} |
| -WriteResult QuicPacketWriterWrapper::WritePacket( |
| +WriteResult QuicConnectionPacketWriterWrapper::WritePacket( |
| const char* buffer, |
| size_t buf_len, |
| - const net::IPAddressNumber& self_address, |
| - const net::IPEndPoint& peer_address) { |
| + const IPAddressNumber& self_address, |
| + const IPEndPoint& peer_address) { |
| + writer_->SetWriteCallback( |
| + base::Bind(&QuicConnectionPacketWriterWrapper::OnWriteComplete, |
| + weak_factory_.GetWeakPtr())); |
| return writer_->WritePacket(buffer, buf_len, self_address, peer_address); |
|
Ryan Hamilton
2014/06/19 19:21:29
Instead of making this 2 distinct call, you could
dmz
2014/06/19 20:06:28
Done.
|
| } |
| -bool QuicPacketWriterWrapper::IsWriteBlockedDataBuffered() const { |
| +bool QuicConnectionPacketWriterWrapper::IsWriteBlockedDataBuffered() const { |
| return writer_->IsWriteBlockedDataBuffered(); |
| } |
| -bool QuicPacketWriterWrapper::IsWriteBlocked() const { |
| +bool QuicConnectionPacketWriterWrapper::IsWriteBlocked() const { |
| return writer_->IsWriteBlocked(); |
| } |
| -void QuicPacketWriterWrapper::SetWritable() { |
| +void QuicConnectionPacketWriterWrapper::SetWritable() { |
| writer_->SetWritable(); |
| } |
| -void QuicPacketWriterWrapper::set_writer(QuicPacketWriter* writer) { |
| - writer_.reset(writer); |
| -} |
| - |
| -QuicPacketWriter* QuicPacketWriterWrapper::release_writer() { |
| - return writer_.release(); |
| +void QuicConnectionPacketWriterWrapper::OnWriteComplete(WriteResult wr) { |
| + connection_->OnPacketSent(wr); |
| + connection_->OnCanWrite(); |
| } |
| -} // namespace tools |
| } // namespace net |