Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1210)

Unified Diff: net/quic/quic_connection_packet_writer_wrapper.cc

Issue 340433002: Port QuicServer to Chrome network stack (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address further comments Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/quic/quic_connection_packet_writer_wrapper.cc
diff --git a/net/quic/quic_server_packet_writer.cc b/net/quic/quic_connection_packet_writer_wrapper.cc
similarity index 22%
copy from net/quic/quic_server_packet_writer.cc
copy to net/quic/quic_connection_packet_writer_wrapper.cc
index c2635b699eb3efd06713015d8ba6fcd1a2d93a4e..9391f52f7fc8b6c57b3ad3888ed70448fb20f960 100644
--- a/net/quic/quic_server_packet_writer.cc
+++ b/net/quic/quic_connection_packet_writer_wrapper.cc
@@ -2,72 +2,58 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "net/quic/quic_server_packet_writer.h"
+#include "net/quic/quic_connection_packet_writer_wrapper.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 {
-QuicServerPacketWriter::QuicServerPacketWriter() : weak_factory_(this) {
-}
-
-QuicServerPacketWriter::QuicServerPacketWriter(UDPServerSocket* socket)
+QuicConnectionPacketWriterWrapper::QuicConnectionPacketWriterWrapper(
+ QuicServerPacketWriter* writer,
+ QuicConnection* connection)
: weak_factory_(this),
- socket_(socket),
- write_blocked_(false) {
+ writer_(writer),
+ connection_(connection) {
}
-QuicServerPacketWriter::~QuicServerPacketWriter() {
+QuicConnectionPacketWriterWrapper::~QuicConnectionPacketWriterWrapper() {
}
-WriteResult QuicServerPacketWriter::WritePacket(
- const char* buffer, size_t buf_len,
- const net::IPAddressNumber& self_address,
- const net::IPEndPoint& peer_address) {
- scoped_refptr<StringIOBuffer> buf(
- new StringIOBuffer(std::string(buffer, buf_len)));
- DCHECK(!IsWriteBlocked());
- int rv = socket_->SendTo(buf.get(),
- buf_len,
- peer_address,
- base::Bind(&QuicServerPacketWriter::OnWriteComplete,
- weak_factory_.GetWeakPtr()));
- WriteStatus status = WRITE_STATUS_OK;
- if (rv < 0) {
- if (rv != ERR_IO_PENDING) {
- UMA_HISTOGRAM_SPARSE_SLOWLY("Net.QuicSession.WriteError", -rv);
- status = WRITE_STATUS_ERROR;
- } else {
- status = WRITE_STATUS_BLOCKED;
- write_blocked_ = true;
- }
- }
-
- return WriteResult(status, rv);
+WriteResult QuicConnectionPacketWriterWrapper::WritePacket(
+ const char* buffer,
+ size_t buf_len,
+ const IPAddressNumber& self_address,
+ const IPEndPoint& peer_address) {
+ return writer_->WritePacketWithCallback(
+ buffer,
+ buf_len,
+ self_address,
+ peer_address,
+ base::Bind(&QuicConnectionPacketWriterWrapper::OnWriteComplete,
+ weak_factory_.GetWeakPtr()));
}
-bool QuicServerPacketWriter::IsWriteBlockedDataBuffered() const {
- // UDPServerSocket::SendTo buffers the data until the Write is permitted.
- return true;
+bool QuicConnectionPacketWriterWrapper::IsWriteBlockedDataBuffered() const {
+ return writer_->IsWriteBlockedDataBuffered();
}
-bool QuicServerPacketWriter::IsWriteBlocked() const {
- return write_blocked_;
+bool QuicConnectionPacketWriterWrapper::IsWriteBlocked() const {
+ return writer_->IsWriteBlocked();
}
-void QuicServerPacketWriter::SetWritable() {
- write_blocked_ = false;
+void QuicConnectionPacketWriterWrapper::SetWritable() {
+ writer_->SetWritable();
}
-void QuicServerPacketWriter::OnWriteComplete(int rv) {
- DCHECK_NE(rv, ERR_IO_PENDING);
- write_blocked_ = false;
- WriteResult result(rv < 0 ? WRITE_STATUS_ERROR : WRITE_STATUS_OK, rv);
- connection_->OnPacketSent(result);
+void QuicConnectionPacketWriterWrapper::OnWriteComplete(WriteResult wr) {
+ connection_->OnPacketSent(wr);
connection_->OnCanWrite();
}

Powered by Google App Engine
This is Rietveld 408576698