| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/tools/quic/test_tools/packet_dropping_test_writer.h" | 5 #include "net/tools/quic/test_tools/packet_dropping_test_writer.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/rand_util.h" | 9 #include "base/rand_util.h" |
| 10 #include "net/tools/quic/quic_epoll_connection_helper.h" | 10 #include "net/tools/quic/quic_epoll_connection_helper.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 } | 43 } |
| 44 | 44 |
| 45 private: | 45 private: |
| 46 PacketDroppingTestWriter* writer_; | 46 PacketDroppingTestWriter* writer_; |
| 47 }; | 47 }; |
| 48 | 48 |
| 49 PacketDroppingTestWriter::PacketDroppingTestWriter() | 49 PacketDroppingTestWriter::PacketDroppingTestWriter() |
| 50 : clock_(nullptr), | 50 : clock_(nullptr), |
| 51 cur_buffer_size_(0), | 51 cur_buffer_size_(0), |
| 52 num_calls_to_write_(0), | 52 num_calls_to_write_(0), |
| 53 max_allowed_packet_size_(std::numeric_limits<QuicByteCount>::max()), | |
| 54 config_mutex_(), | 53 config_mutex_(), |
| 55 fake_packet_loss_percentage_(0), | 54 fake_packet_loss_percentage_(0), |
| 56 fake_drop_first_n_packets_(0), | 55 fake_drop_first_n_packets_(0), |
| 57 fake_blocked_socket_percentage_(0), | 56 fake_blocked_socket_percentage_(0), |
| 58 fake_packet_reorder_percentage_(0), | 57 fake_packet_reorder_percentage_(0), |
| 59 fake_packet_delay_(QuicTime::Delta::Zero()), | 58 fake_packet_delay_(QuicTime::Delta::Zero()), |
| 60 fake_bandwidth_(QuicBandwidth::Zero()), | 59 fake_bandwidth_(QuicBandwidth::Zero()), |
| 61 buffer_size_(0) { | 60 buffer_size_(0) { |
| 62 uint32_t seed = base::RandInt(0, std::numeric_limits<int32_t>::max()); | 61 uint32_t seed = base::RandInt(0, std::numeric_limits<int32_t>::max()); |
| 63 VLOG(1) << "Seeding packet loss with " << seed; | 62 VLOG(1) << "Seeding packet loss with " << seed; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 75 delay_alarm_.reset(alarm_factory->CreateAlarm(new DelayAlarm(this))); | 74 delay_alarm_.reset(alarm_factory->CreateAlarm(new DelayAlarm(this))); |
| 76 on_can_write_.reset(on_can_write); | 75 on_can_write_.reset(on_can_write); |
| 77 } | 76 } |
| 78 | 77 |
| 79 WriteResult PacketDroppingTestWriter::WritePacket( | 78 WriteResult PacketDroppingTestWriter::WritePacket( |
| 80 const char* buffer, | 79 const char* buffer, |
| 81 size_t buf_len, | 80 size_t buf_len, |
| 82 const IPAddress& self_address, | 81 const IPAddress& self_address, |
| 83 const IPEndPoint& peer_address, | 82 const IPEndPoint& peer_address, |
| 84 PerPacketOptions* options) { | 83 PerPacketOptions* options) { |
| 85 CHECK_LE(buf_len, max_allowed_packet_size_); | |
| 86 ++num_calls_to_write_; | 84 ++num_calls_to_write_; |
| 87 ReleaseOldPackets(); | 85 ReleaseOldPackets(); |
| 88 | 86 |
| 89 base::AutoLock locked(config_mutex_); | 87 base::AutoLock locked(config_mutex_); |
| 90 if (fake_drop_first_n_packets_ > 0 && | 88 if (fake_drop_first_n_packets_ > 0 && |
| 91 num_calls_to_write_ <= | 89 num_calls_to_write_ <= |
| 92 static_cast<uint64_t>(fake_drop_first_n_packets_)) { | 90 static_cast<uint64_t>(fake_drop_first_n_packets_)) { |
| 93 DVLOG(1) << "Dropping first " << fake_drop_first_n_packets_ | 91 DVLOG(1) << "Dropping first " << fake_drop_first_n_packets_ |
| 94 << " packets (packet number " << num_calls_to_write_ << ")"; | 92 << " packets (packet number " << num_calls_to_write_ << ")"; |
| 95 return WriteResult(WRITE_STATUS_OK, buf_len); | 93 return WriteResult(WRITE_STATUS_OK, buf_len); |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 // IPAddress has no move assignment operator. | 237 // IPAddress has no move assignment operator. |
| 240 // | 238 // |
| 241 // PacketDroppingTestWriter::DelayedWrite& | 239 // PacketDroppingTestWriter::DelayedWrite& |
| 242 // PacketDroppingTestWriter::DelayedWrite::operator=( | 240 // PacketDroppingTestWriter::DelayedWrite::operator=( |
| 243 // PacketDroppingTestWriter::DelayedWrite&& other) = default; | 241 // PacketDroppingTestWriter::DelayedWrite&& other) = default; |
| 244 | 242 |
| 245 PacketDroppingTestWriter::DelayedWrite::~DelayedWrite() {} | 243 PacketDroppingTestWriter::DelayedWrite::~DelayedWrite() {} |
| 246 | 244 |
| 247 } // namespace test | 245 } // namespace test |
| 248 } // namespace net | 246 } // namespace net |
| OLD | NEW |