Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/quic_server_packet_writer.h" | 5 #include "net/quic/quic_server_packet_writer.h" |
| 6 | 6 |
| 7 #include "base/location.h" | 7 #include "base/location.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/metrics/sparse_histogram.h" | 9 #include "base/metrics/sparse_histogram.h" |
| 10 #include "net/base/io_buffer.h" | 10 #include "net/base/io_buffer.h" |
| 11 #include "net/base/net_errors.h" | 11 #include "net/base/net_errors.h" |
| 12 #include "net/quic/quic_dispatcher.h" | |
|
wtc
2014/06/18 02:04:47
Remove this header?
dmziegler
2014/06/18 20:13:41
Done.
| |
| 12 | 13 |
| 13 namespace net { | 14 namespace net { |
| 14 | 15 |
| 15 QuicServerPacketWriter::QuicServerPacketWriter() : weak_factory_(this) { | 16 QuicServerPacketWriter::QuicServerPacketWriter() : weak_factory_(this) { |
| 16 } | 17 } |
| 17 | 18 |
| 18 QuicServerPacketWriter::QuicServerPacketWriter(UDPServerSocket* socket) | 19 QuicServerPacketWriter::QuicServerPacketWriter( |
| 20 QuicServerPacketWriterVisitor* visitor, | |
| 21 UDPServerSocket* socket) | |
| 19 : weak_factory_(this), | 22 : weak_factory_(this), |
| 20 socket_(socket), | 23 socket_(socket), |
| 24 visitor_(visitor), | |
| 21 write_blocked_(false) { | 25 write_blocked_(false) { |
| 22 } | 26 } |
| 23 | 27 |
| 24 QuicServerPacketWriter::~QuicServerPacketWriter() { | 28 QuicServerPacketWriter::~QuicServerPacketWriter() { |
| 25 } | 29 } |
| 26 | 30 |
| 27 WriteResult QuicServerPacketWriter::WritePacket( | 31 WriteResult QuicServerPacketWriter::WritePacket( |
| 28 const char* buffer, size_t buf_len, | 32 const char* buffer, size_t buf_len, |
| 29 const net::IPAddressNumber& self_address, | 33 const net::IPAddressNumber& self_address, |
| 30 const net::IPEndPoint& peer_address) { | 34 const net::IPEndPoint& peer_address) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 62 void QuicServerPacketWriter::SetWritable() { | 66 void QuicServerPacketWriter::SetWritable() { |
| 63 write_blocked_ = false; | 67 write_blocked_ = false; |
| 64 } | 68 } |
| 65 | 69 |
| 66 void QuicServerPacketWriter::OnWriteComplete(int rv) { | 70 void QuicServerPacketWriter::OnWriteComplete(int rv) { |
| 67 DCHECK_NE(rv, ERR_IO_PENDING); | 71 DCHECK_NE(rv, ERR_IO_PENDING); |
| 68 write_blocked_ = false; | 72 write_blocked_ = false; |
| 69 WriteResult result(rv < 0 ? WRITE_STATUS_ERROR : WRITE_STATUS_OK, rv); | 73 WriteResult result(rv < 0 ? WRITE_STATUS_ERROR : WRITE_STATUS_OK, rv); |
| 70 connection_->OnPacketSent(result); | 74 connection_->OnPacketSent(result); |
| 71 connection_->OnCanWrite(); | 75 connection_->OnCanWrite(); |
| 76 visitor_->OnCanWrite(); | |
|
wtc
2014/06/18 02:04:47
It is strange that we are invoking the OnCanWrite(
dmziegler
2014/06/18 20:13:41
Now there's one Callback and one QuicBlockedWriter
| |
| 72 } | 77 } |
| 73 | 78 |
| 74 } // namespace net | 79 } // namespace net |
| OLD | NEW |