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 |
deleted file mode 100644 |
index cdd8efcefc0811612c28f7eb6776170495439bfd..0000000000000000000000000000000000000000 |
--- a/net/tools/quic/test_tools/packet_dropping_test_writer.h |
+++ /dev/null |
@@ -1,158 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef NET_TOOLS_QUIC_TEST_TOOLS_PACKET_DROPPING_TEST_WRITER_H_ |
-#define NET_TOOLS_QUIC_TEST_TOOLS_PACKET_DROPPING_TEST_WRITER_H_ |
- |
-#include <list> |
-#include <string> |
- |
-#include "base/basictypes.h" |
-#include "base/logging.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/synchronization/lock.h" |
-#include "net/quic/quic_alarm.h" |
-#include "net/quic/test_tools/quic_test_utils.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" |
-#include "net/tools/quic/test_tools/quic_test_utils.h" |
- |
-namespace net { |
-namespace tools { |
-namespace test { |
- |
-// Simulates a connection that drops packets a configured percentage of the time |
-// and has a blocked socket a configured percentage of the time. Also provides |
-// the options to delay packets and reorder packets if delay is enabled. |
-class PacketDroppingTestWriter : public QuicPacketWriterWrapper { |
- public: |
- class Delegate { |
- public: |
- virtual ~Delegate() {} |
- virtual void OnPacketSent(WriteResult result) = 0; |
- virtual void OnCanWrite() = 0; |
- }; |
- |
- PacketDroppingTestWriter(); |
- |
- ~PacketDroppingTestWriter() override; |
- |
- // 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: |
- WriteResult WritePacket(const char* buffer, |
- size_t buf_len, |
- const IPAddressNumber& self_address, |
- const IPEndPoint& peer_address) override; |
- |
- bool IsWriteBlocked() const override; |
- |
- void SetWritable() override; |
- |
- // Writes out any packet which should have been sent by now |
- // to the contained writer and returns the time |
- // for the next delayed packet to be written. |
- QuicTime ReleaseOldPackets(); |
- |
- void OnCanWrite(); |
- |
- // The percent of time a packet is simulated as being lost. |
- void set_fake_packet_loss_percentage(int32 fake_packet_loss_percentage) { |
- base::AutoLock locked(config_mutex_); |
- fake_packet_loss_percentage_ = fake_packet_loss_percentage; |
- } |
- |
- // The percent of time WritePacket will block and set WriteResult's status |
- // to WRITE_STATUS_BLOCKED. |
- void set_fake_blocked_socket_percentage( |
- int32 fake_blocked_socket_percentage) { |
- DCHECK(clock_); |
- base::AutoLock locked(config_mutex_); |
- fake_blocked_socket_percentage_ = fake_blocked_socket_percentage; |
- } |
- |
- // The percent of time a packet is simulated as being reordered. |
- void set_fake_reorder_percentage(int32 fake_packet_reorder_percentage) { |
- DCHECK(clock_); |
- base::AutoLock locked(config_mutex_); |
- DCHECK(!fake_packet_delay_.IsZero()); |
- fake_packet_reorder_percentage_ = fake_packet_reorder_percentage; |
- } |
- |
- // The delay before writing this packet. |
- void set_fake_packet_delay(QuicTime::Delta fake_packet_delay) { |
- DCHECK(clock_); |
- base::AutoLock locked(config_mutex_); |
- fake_packet_delay_ = fake_packet_delay; |
- } |
- |
- // The maximum bandwidth and buffer size of the connection. When these are |
- // set, packets will be delayed until a connection with that bandwidth would |
- // transmit it. Once the |buffer_size| is reached, all new packets are |
- // dropped. |
- void set_max_bandwidth_and_buffer_size(QuicBandwidth fake_bandwidth, |
- QuicByteCount buffer_size) { |
- DCHECK(clock_); |
- base::AutoLock locked(config_mutex_); |
- fake_bandwidth_ = fake_bandwidth; |
- buffer_size_ = buffer_size; |
- } |
- |
- void set_seed(uint64 seed) { |
- simple_random_.set_seed(seed); |
- } |
- |
- private: |
- // Writes out the next packet to the contained writer and returns the time |
- // for the next delayed packet to be written. |
- QuicTime ReleaseNextPacket(); |
- |
- // A single packet which will be sent at the supplied send_time. |
- struct DelayedWrite { |
- public: |
- DelayedWrite(const char* buffer, |
- size_t buf_len, |
- const IPAddressNumber& self_address, |
- const IPEndPoint& peer_address, |
- QuicTime send_time); |
- ~DelayedWrite(); |
- |
- std::string buffer; |
- const IPAddressNumber self_address; |
- const IPEndPoint peer_address; |
- QuicTime send_time; |
- }; |
- |
- typedef std::list<DelayedWrite> DelayedPacketList; |
- |
- const QuicClock* clock_; |
- scoped_ptr<QuicAlarm> write_unblocked_alarm_; |
- scoped_ptr<QuicAlarm> delay_alarm_; |
- scoped_ptr<Delegate> on_can_write_; |
- net::test::SimpleRandom simple_random_; |
- // Stored packets delayed by fake packet delay or bandwidth restrictions. |
- DelayedPacketList delayed_packets_; |
- QuicByteCount cur_buffer_size_; |
- |
- base::Lock config_mutex_; |
- int32 fake_packet_loss_percentage_; |
- int32 fake_blocked_socket_percentage_; |
- int32 fake_packet_reorder_percentage_; |
- QuicTime::Delta fake_packet_delay_; |
- QuicBandwidth fake_bandwidth_; |
- QuicByteCount buffer_size_; |
- |
- DISALLOW_COPY_AND_ASSIGN(PacketDroppingTestWriter); |
-}; |
- |
-} // namespace test |
-} // namespace tools |
-} // namespace net |
- |
-#endif // NET_TOOLS_QUIC_TEST_TOOLS_PACKET_DROPPING_TEST_WRITER_H_ |