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 |