Index: net/tools/quic/test_tools/packet_dropping_test_writer.cc |
diff --git a/net/tools/quic/test_tools/packet_dropping_test_writer.cc b/net/tools/quic/test_tools/packet_dropping_test_writer.cc |
index b3b7ca22e70eafbf34e67b027bc1227be529f912..148591d0c0e502eb78b8b2a4c2115258b770b10e 100644 |
--- a/net/tools/quic/test_tools/packet_dropping_test_writer.cc |
+++ b/net/tools/quic/test_tools/packet_dropping_test_writer.cc |
@@ -22,9 +22,8 @@ class WriteUnblockedAlarm : public QuicAlarm::Delegate { |
: writer_(writer) { } |
virtual QuicTime OnAlarm() OVERRIDE { |
- DCHECK(writer_->blocked_writer()); |
DVLOG(1) << "Unblocking socket."; |
- writer_->blocked_writer()->OnCanWrite(); |
+ writer_->OnCanWrite(); |
return QuicTime::Zero(); |
} |
@@ -49,7 +48,6 @@ class DelayAlarm : public QuicAlarm::Delegate { |
PacketDroppingTestWriter::PacketDroppingTestWriter() |
: clock_(NULL), |
- blocked_writer_(NULL), |
cur_buffer_size_(0), |
config_mutex_(), |
fake_packet_loss_percentage_(0), |
@@ -65,21 +63,22 @@ PacketDroppingTestWriter::PacketDroppingTestWriter() |
PacketDroppingTestWriter::~PacketDroppingTestWriter() {} |
-void PacketDroppingTestWriter::SetConnectionHelper( |
- QuicEpollConnectionHelper* helper) { |
+void PacketDroppingTestWriter::Initialize( |
+ QuicEpollConnectionHelper* helper, |
+ Delegate* on_can_write) { |
clock_ = helper->GetClock(); |
write_unblocked_alarm_.reset( |
helper->CreateAlarm(new WriteUnblockedAlarm(this))); |
delay_alarm_.reset( |
helper->CreateAlarm(new DelayAlarm(this))); |
+ on_can_write_.reset(on_can_write); |
} |
WriteResult PacketDroppingTestWriter::WritePacket( |
const char* buffer, |
size_t buf_len, |
const net::IPAddressNumber& self_address, |
- const net::IPEndPoint& peer_address, |
- QuicBlockedWriterInterface* blocked_writer) { |
+ const net::IPEndPoint& peer_address) { |
ReleaseOldPackets(); |
base::AutoLock locked(config_mutex_); |
@@ -92,9 +91,9 @@ WriteResult PacketDroppingTestWriter::WritePacket( |
if (fake_blocked_socket_percentage_ > 0 && |
simple_random_.RandUint64() % 100 < |
static_cast<uint64>(fake_blocked_socket_percentage_)) { |
+ CHECK(on_can_write_.get() != NULL); |
DVLOG(1) << "Blocking socket."; |
if (!write_unblocked_alarm_->IsSet()) { |
- blocked_writer_ = blocked_writer; |
// Set the alarm to fire immediately. |
write_unblocked_alarm_->Set(clock_->ApproximateNow()); |
} |
@@ -132,7 +131,7 @@ WriteResult PacketDroppingTestWriter::WritePacket( |
} |
return QuicPacketWriterWrapper::WritePacket( |
- buffer, buf_len, self_address, peer_address, blocked_writer); |
+ buffer, buf_len, self_address, peer_address); |
} |
bool PacketDroppingTestWriter::IsWriteBlocked() const { |
@@ -170,7 +169,7 @@ QuicTime PacketDroppingTestWriter::ReleaseNextPacket() { |
// Grab the next one off the queue and send it. |
QuicPacketWriterWrapper::WritePacket( |
iter->buffer.data(), iter->buffer.length(), |
- iter->self_address, iter->peer_address, NULL); |
+ iter->self_address, iter->peer_address); |
DCHECK_GE(cur_buffer_size_, iter->buffer.length()); |
cur_buffer_size_ -= iter->buffer.length(); |
delayed_packets_.erase(iter); |
@@ -193,6 +192,10 @@ QuicTime PacketDroppingTestWriter::ReleaseOldPackets() { |
return QuicTime::Zero(); |
} |
+void PacketDroppingTestWriter::OnCanWrite() { |
+ on_can_write_->OnCanWrite(); |
+} |
+ |
PacketDroppingTestWriter::DelayedWrite::DelayedWrite( |
const char* buffer, |
size_t buf_len, |