Index: net/tools/quic/quic_dispatcher.cc |
diff --git a/net/tools/quic/quic_dispatcher.cc b/net/tools/quic/quic_dispatcher.cc |
index e5fecc962b4ab03436a7ab564b6e850ed2a89732..4604209c4cffff77c145af4a7ba86575e1044a34 100644 |
--- a/net/tools/quic/quic_dispatcher.cc |
+++ b/net/tools/quic/quic_dispatcher.cc |
@@ -150,38 +150,6 @@ void QuicDispatcher::Initialize(int fd) { |
epoll_server(), supported_versions())); |
} |
-// TODO(fnk): remove the Writer interface implementation in favor of |
-// direct requests for blocked list placement from Connection/Session. |
-WriteResult QuicDispatcher::WritePacket(const char* buffer, size_t buf_len, |
- const IPAddressNumber& self_address, |
- const IPEndPoint& peer_address, |
- QuicBlockedWriterInterface* writer) { |
- if (IsWriteBlocked()) { |
- write_blocked_list_.insert(make_pair(writer, true)); |
- return WriteResult(WRITE_STATUS_BLOCKED, EAGAIN); |
- } |
- |
- WriteResult result = |
- writer_->WritePacket(buffer, buf_len, self_address, peer_address, writer); |
- if (result.status == WRITE_STATUS_BLOCKED) { |
- DCHECK(IsWriteBlocked()); |
- write_blocked_list_.insert(make_pair(writer, true)); |
- } |
- return result; |
-} |
- |
-bool QuicDispatcher::IsWriteBlockedDataBuffered() const { |
- return writer_->IsWriteBlockedDataBuffered(); |
-} |
- |
-bool QuicDispatcher::IsWriteBlocked() const { |
- return writer_->IsWriteBlocked(); |
-} |
- |
-void QuicDispatcher::SetWritable() { |
- writer_->SetWritable(); |
-} |
- |
void QuicDispatcher::ProcessPacket(const IPEndPoint& server_address, |
const IPEndPoint& client_address, |
const QuicEncryptedPacket& packet) { |
@@ -273,7 +241,7 @@ void QuicDispatcher::DeleteSessions() { |
bool QuicDispatcher::OnCanWrite() { |
// We got an EPOLLOUT: the socket should not be blocked. |
- SetWritable(); |
+ writer_->SetWritable(); |
// Give each writer one attempt to write. |
int num_writers = write_blocked_list_.size(); |
@@ -284,7 +252,7 @@ bool QuicDispatcher::OnCanWrite() { |
QuicBlockedWriterInterface* writer = write_blocked_list_.begin()->first; |
write_blocked_list_.erase(write_blocked_list_.begin()); |
bool can_write_more = writer->OnCanWrite(); |
- if (IsWriteBlocked()) { |
+ if (writer_->IsWriteBlocked()) { |
// We were unable to write. Wait for the next EPOLLOUT. |
// In this case, the session would have been added to the blocked list |
// up in WritePacket. |
@@ -336,24 +304,33 @@ void QuicDispatcher::OnWriteBlocked(QuicBlockedWriterInterface* writer) { |
write_blocked_list_.insert(make_pair(writer, true)); |
} |
+QuicPacketWriter* QuicDispatcher::CreateWriter(int fd) { |
+ return new QuicDefaultPacketWriter(fd); |
+} |
+ |
+QuicPacketWriterWrapper* QuicDispatcher::CreateWriterWrapper( |
+ QuicPacketWriter* writer) { |
+ return new QuicPacketWriterWrapper(writer); |
+} |
+ |
QuicSession* QuicDispatcher::CreateQuicSession( |
QuicGuid guid, |
const IPEndPoint& server_address, |
const IPEndPoint& client_address) { |
QuicServerSession* session = new QuicServerSession( |
- config_, new QuicConnection(guid, client_address, helper_.get(), this, |
- true, supported_versions_), this); |
+ config_, |
+ CreateQuicConnection(guid, server_address, client_address), |
+ this); |
session->InitializeSession(crypto_config_); |
return session; |
} |
-QuicPacketWriter* QuicDispatcher::CreateWriter(int fd) { |
- return new QuicDefaultPacketWriter(fd); |
-} |
- |
-QuicPacketWriterWrapper* QuicDispatcher::CreateWriterWrapper( |
- QuicPacketWriter* writer) { |
- return new QuicPacketWriterWrapper(writer); |
+QuicConnection* QuicDispatcher::CreateQuicConnection( |
+ QuicGuid guid, |
+ const IPEndPoint& server_address, |
+ const IPEndPoint& client_address) { |
+ return new QuicConnection(guid, client_address, helper_.get(), writer_.get(), |
+ true, supported_versions_); |
} |
void QuicDispatcher::set_writer(QuicPacketWriter* writer) { |