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 |