Index: net/tools/quic/test_tools/packet_dropping_test_writer.h |
diff --git a/net/tools/quic/test_tools/packet_dropping_test_writer.h b/net/tools/quic/test_tools/packet_dropping_test_writer.h |
index cde5c13649b7f1f8dd846560ce2733f17f1f8733..78f0a402f2867b761d5a54bb275a1d2f5becd444 100644 |
--- a/net/tools/quic/test_tools/packet_dropping_test_writer.h |
+++ b/net/tools/quic/test_tools/packet_dropping_test_writer.h |
@@ -12,7 +12,6 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/synchronization/lock.h" |
#include "net/quic/quic_alarm.h" |
-#include "net/quic/quic_blocked_writer_interface.h" |
#include "net/tools/quic/quic_epoll_clock.h" |
#include "net/tools/quic/quic_packet_writer_wrapper.h" |
#include "net/tools/quic/test_tools/quic_test_client.h" |
@@ -27,19 +26,28 @@ namespace test { |
// the options to delay packets and reorder packets if delay is enabled. |
class PacketDroppingTestWriter : public QuicPacketWriterWrapper { |
public: |
+ class Delegate { |
+ public: |
+ virtual ~Delegate() {} |
+ virtual void OnCanWrite() = 0; |
+ }; |
+ |
PacketDroppingTestWriter(); |
virtual ~PacketDroppingTestWriter(); |
- void SetConnectionHelper(QuicEpollConnectionHelper* helper); |
+ // Must be called before blocking, reordering or delaying (loss is OK). May be |
+ // called after connecting if the helper is not available before. |
+ // |on_can_write| will be triggered when fake-unblocking; ownership will be |
+ // assumed. |
+ void Initialize(QuicEpollConnectionHelper* helper, Delegate* on_can_write); |
// QuicPacketWriter methods: |
virtual WriteResult WritePacket( |
const char* buffer, |
size_t buf_len, |
const IPAddressNumber& self_address, |
- const IPEndPoint& peer_address, |
- QuicBlockedWriterInterface* blocked_writer) OVERRIDE; |
+ const IPEndPoint& peer_address) OVERRIDE; |
virtual bool IsWriteBlocked() const OVERRIDE; |
@@ -50,7 +58,7 @@ class PacketDroppingTestWriter : public QuicPacketWriterWrapper { |
// for the next delayed packet to be written. |
QuicTime ReleaseOldPackets(); |
- QuicBlockedWriterInterface* blocked_writer() { return blocked_writer_; } |
+ void OnCanWrite(); |
// The percent of time a packet is simulated as being lost. |
void set_fake_packet_loss_percentage(int32 fake_packet_loss_percentage) { |
@@ -125,7 +133,7 @@ class PacketDroppingTestWriter : public QuicPacketWriterWrapper { |
const QuicClock* clock_; |
scoped_ptr<QuicAlarm> write_unblocked_alarm_; |
scoped_ptr<QuicAlarm> delay_alarm_; |
- QuicBlockedWriterInterface* blocked_writer_; |
+ scoped_ptr<Delegate> on_can_write_; |
SimpleRandom simple_random_; |
// Stored packets delayed by fake packet delay or bandwidth restrictions. |
DelayedPacketList delayed_packets_; |