Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(275)

Side by Side Diff: net/tools/quic/test_tools/packet_dropping_test_writer.cc

Issue 135363006: Cleanup: remove BlockedWriterInterface from QuicPacketWriter. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 helper->CreateAlarm(new WriteUnblockedAlarm(this))); 71 helper->CreateAlarm(new WriteUnblockedAlarm(this)));
72 delay_alarm_.reset( 72 delay_alarm_.reset(
73 helper->CreateAlarm(new DelayAlarm(this))); 73 helper->CreateAlarm(new DelayAlarm(this)));
74 on_can_write_.reset(on_can_write); 74 on_can_write_.reset(on_can_write);
75 } 75 }
76 76
77 WriteResult PacketDroppingTestWriter::WritePacket( 77 WriteResult PacketDroppingTestWriter::WritePacket(
78 const char* buffer, 78 const char* buffer,
79 size_t buf_len, 79 size_t buf_len,
80 const net::IPAddressNumber& self_address, 80 const net::IPAddressNumber& self_address,
81 const net::IPEndPoint& peer_address, 81 const net::IPEndPoint& peer_address) {
82 QuicBlockedWriterInterface* blocked_writer) {
83 ReleaseOldPackets(); 82 ReleaseOldPackets();
84 83
85 base::AutoLock locked(config_mutex_); 84 base::AutoLock locked(config_mutex_);
86 if (fake_packet_loss_percentage_ > 0 && 85 if (fake_packet_loss_percentage_ > 0 &&
87 simple_random_.RandUint64() % 100 < 86 simple_random_.RandUint64() % 100 <
88 static_cast<uint64>(fake_packet_loss_percentage_)) { 87 static_cast<uint64>(fake_packet_loss_percentage_)) {
89 DVLOG(1) << "Dropping packet."; 88 DVLOG(1) << "Dropping packet.";
90 return WriteResult(WRITE_STATUS_OK, buf_len); 89 return WriteResult(WRITE_STATUS_OK, buf_len);
91 } 90 }
92 if (fake_blocked_socket_percentage_ > 0 && 91 if (fake_blocked_socket_percentage_ > 0 &&
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 124
126 // Set the alarm if it's not yet set. 125 // Set the alarm if it's not yet set.
127 if (!delay_alarm_->IsSet()) { 126 if (!delay_alarm_->IsSet()) {
128 delay_alarm_->Set(send_time); 127 delay_alarm_->Set(send_time);
129 } 128 }
130 129
131 return WriteResult(WRITE_STATUS_OK, buf_len); 130 return WriteResult(WRITE_STATUS_OK, buf_len);
132 } 131 }
133 132
134 return QuicPacketWriterWrapper::WritePacket( 133 return QuicPacketWriterWrapper::WritePacket(
135 buffer, buf_len, self_address, peer_address, blocked_writer); 134 buffer, buf_len, self_address, peer_address);
136 } 135 }
137 136
138 bool PacketDroppingTestWriter::IsWriteBlocked() const { 137 bool PacketDroppingTestWriter::IsWriteBlocked() const {
139 if (write_unblocked_alarm_.get() != NULL && write_unblocked_alarm_->IsSet()) { 138 if (write_unblocked_alarm_.get() != NULL && write_unblocked_alarm_->IsSet()) {
140 return true; 139 return true;
141 } 140 }
142 return QuicPacketWriterWrapper::IsWriteBlocked(); 141 return QuicPacketWriterWrapper::IsWriteBlocked();
143 } 142 }
144 143
145 void PacketDroppingTestWriter::SetWritable() { 144 void PacketDroppingTestWriter::SetWritable() {
(...skipping 17 matching lines...) Expand all
163 ++iter; 162 ++iter;
164 // Swap the send times when re-ordering packets. 163 // Swap the send times when re-ordering packets.
165 delayed_packets_.begin()->send_time = iter->send_time; 164 delayed_packets_.begin()->send_time = iter->send_time;
166 } 165 }
167 166
168 DVLOG(1) << "Releasing packet. " << (delayed_packets_.size() - 1) 167 DVLOG(1) << "Releasing packet. " << (delayed_packets_.size() - 1)
169 << " remaining."; 168 << " remaining.";
170 // Grab the next one off the queue and send it. 169 // Grab the next one off the queue and send it.
171 QuicPacketWriterWrapper::WritePacket( 170 QuicPacketWriterWrapper::WritePacket(
172 iter->buffer.data(), iter->buffer.length(), 171 iter->buffer.data(), iter->buffer.length(),
173 iter->self_address, iter->peer_address, NULL); 172 iter->self_address, iter->peer_address);
174 DCHECK_GE(cur_buffer_size_, iter->buffer.length()); 173 DCHECK_GE(cur_buffer_size_, iter->buffer.length());
175 cur_buffer_size_ -= iter->buffer.length(); 174 cur_buffer_size_ -= iter->buffer.length();
176 delayed_packets_.erase(iter); 175 delayed_packets_.erase(iter);
177 176
178 // If there are others, find the time for the next to be sent. 177 // If there are others, find the time for the next to be sent.
179 if (delayed_packets_.empty()) { 178 if (delayed_packets_.empty()) {
180 return QuicTime::Zero(); 179 return QuicTime::Zero();
181 } 180 }
182 return delayed_packets_.begin()->send_time; 181 return delayed_packets_.begin()->send_time;
183 } 182 }
(...skipping 22 matching lines...) Expand all
206 : buffer(buffer, buf_len), 205 : buffer(buffer, buf_len),
207 self_address(self_address), 206 self_address(self_address),
208 peer_address(peer_address), 207 peer_address(peer_address),
209 send_time(send_time) {} 208 send_time(send_time) {}
210 209
211 PacketDroppingTestWriter::DelayedWrite::~DelayedWrite() {} 210 PacketDroppingTestWriter::DelayedWrite::~DelayedWrite() {}
212 211
213 } // namespace test 212 } // namespace test
214 } // namespace tools 213 } // namespace tools
215 } // namespace net 214 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/test_tools/packet_dropping_test_writer.h ('k') | net/tools/quic/test_tools/quic_test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698