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

Side by Side Diff: net/quic/quic_protocol.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/quic/quic_protocol.h" 5 #include "net/quic/quic_protocol.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "net/quic/quic_utils.h" 8 #include "net/quic/quic_utils.h"
9 9
10 using base::StringPiece; 10 using base::StringPiece;
11 using std::map; 11 using std::map;
12 using std::numeric_limits; 12 using std::numeric_limits;
13 using std::ostream; 13 using std::ostream;
14 using std::string; 14 using std::string;
15 15
16 namespace net { 16 namespace net {
17 17
18 size_t GetPacketHeaderSize(const QuicPacketHeader& header) { 18 size_t GetPacketHeaderSize(const QuicPacketHeader& header) {
19 return GetPacketHeaderSize(header.public_header.connection_id_length, 19 return GetPacketHeaderSize(header.public_header.connection_id_length,
20 header.public_header.version_flag, 20 header.public_header.version_flag,
21 header.public_header.sequence_number_length, 21 header.public_header.sequence_number_length,
22 header.is_in_fec_group); 22 header.is_in_fec_group);
23 } 23 }
24 24
25 size_t GetPacketHeaderSize(QuicConnectionIdLength connection_id_length, 25 size_t GetPacketHeaderSize(QuicConnectionIdLength connection_id_length,
26 bool include_version, 26 bool include_version,
27 QuicSequenceNumberLength sequence_number_length, 27 QuicSequenceNumberLength sequence_number_length,
28 InFecGroup is_in_fec_group) { 28 InFecGroup is_in_fec_group) {
29 return kPublicFlagsSize + connection_id_length + 29 return kPublicFlagsSize + connection_id_length +
30 (include_version ? kQuicVersionSize : 0) + sequence_number_length + 30 (include_version ? kQuicVersionSize : 0) + sequence_number_length +
31 kPrivateFlagsSize + (is_in_fec_group == IN_FEC_GROUP ? kFecGroupSize : 0); 31 kPrivateFlagsSize +
32 (is_in_fec_group == IN_FEC_GROUP ? kFecGroupSize : 0);
32 } 33 }
33 34
34 size_t GetStartOfFecProtectedData( 35 size_t GetStartOfFecProtectedData(
35 QuicConnectionIdLength connection_id_length, 36 QuicConnectionIdLength connection_id_length,
36 bool include_version, 37 bool include_version,
37 QuicSequenceNumberLength sequence_number_length) { 38 QuicSequenceNumberLength sequence_number_length) {
38 return GetPacketHeaderSize(connection_id_length, 39 return GetPacketHeaderSize(connection_id_length,
39 include_version, 40 include_version,
40 sequence_number_length, 41 sequence_number_length,
41 IN_FEC_GROUP); 42 IN_FEC_GROUP);
42 } 43 }
43 44
44 size_t GetStartOfEncryptedData( 45 size_t GetStartOfEncryptedData(
45 QuicConnectionIdLength connection_id_length, 46 QuicConnectionIdLength connection_id_length,
46 bool include_version, 47 bool include_version,
47 QuicSequenceNumberLength sequence_number_length) { 48 QuicSequenceNumberLength sequence_number_length) {
48 // Don't include the fec size, since encryption starts before private flags. 49 // Don't include the fec size, since encryption starts before private flags.
49 return GetPacketHeaderSize(connection_id_length, 50 return GetPacketHeaderSize(connection_id_length,
50 include_version, 51 include_version,
51 sequence_number_length, 52 sequence_number_length,
52 NOT_IN_FEC_GROUP) - kPrivateFlagsSize; 53 NOT_IN_FEC_GROUP) -
54 kPrivateFlagsSize;
53 } 55 }
54 56
55 QuicPacketPublicHeader::QuicPacketPublicHeader() 57 QuicPacketPublicHeader::QuicPacketPublicHeader()
56 : connection_id(0), 58 : connection_id(0),
57 connection_id_length(PACKET_8BYTE_CONNECTION_ID), 59 connection_id_length(PACKET_8BYTE_CONNECTION_ID),
58 reset_flag(false), 60 reset_flag(false),
59 version_flag(false), 61 version_flag(false),
60 sequence_number_length(PACKET_6BYTE_SEQUENCE_NUMBER) { 62 sequence_number_length(PACKET_6BYTE_SEQUENCE_NUMBER) {
61 } 63 }
62 64
63 QuicPacketPublicHeader::QuicPacketPublicHeader( 65 QuicPacketPublicHeader::QuicPacketPublicHeader(
64 const QuicPacketPublicHeader& other) 66 const QuicPacketPublicHeader& other)
65 : connection_id(other.connection_id), 67 : connection_id(other.connection_id),
66 connection_id_length(other.connection_id_length), 68 connection_id_length(other.connection_id_length),
67 reset_flag(other.reset_flag), 69 reset_flag(other.reset_flag),
68 version_flag(other.version_flag), 70 version_flag(other.version_flag),
69 sequence_number_length(other.sequence_number_length), 71 sequence_number_length(other.sequence_number_length),
70 versions(other.versions) { 72 versions(other.versions) {
71 } 73 }
72 74
73 QuicPacketPublicHeader::~QuicPacketPublicHeader() {} 75 QuicPacketPublicHeader::~QuicPacketPublicHeader() {
76 }
74 77
75 QuicPacketHeader::QuicPacketHeader() 78 QuicPacketHeader::QuicPacketHeader()
76 : fec_flag(false), 79 : fec_flag(false),
77 entropy_flag(false), 80 entropy_flag(false),
78 entropy_hash(0), 81 entropy_hash(0),
79 packet_sequence_number(0), 82 packet_sequence_number(0),
80 is_in_fec_group(NOT_IN_FEC_GROUP), 83 is_in_fec_group(NOT_IN_FEC_GROUP),
81 fec_group(0) { 84 fec_group(0) {
82 } 85 }
83 86
84 QuicPacketHeader::QuicPacketHeader(const QuicPacketPublicHeader& header) 87 QuicPacketHeader::QuicPacketHeader(const QuicPacketPublicHeader& header)
85 : public_header(header), 88 : public_header(header),
86 fec_flag(false), 89 fec_flag(false),
87 entropy_flag(false), 90 entropy_flag(false),
88 entropy_hash(0), 91 entropy_hash(0),
89 packet_sequence_number(0), 92 packet_sequence_number(0),
90 is_in_fec_group(NOT_IN_FEC_GROUP), 93 is_in_fec_group(NOT_IN_FEC_GROUP),
91 fec_group(0) { 94 fec_group(0) {
92 } 95 }
93 96
94 QuicPublicResetPacket::QuicPublicResetPacket() 97 QuicPublicResetPacket::QuicPublicResetPacket()
95 : nonce_proof(0), 98 : nonce_proof(0), rejected_sequence_number(0) {
96 rejected_sequence_number(0) {} 99 }
97 100
98 QuicPublicResetPacket::QuicPublicResetPacket( 101 QuicPublicResetPacket::QuicPublicResetPacket(
99 const QuicPacketPublicHeader& header) 102 const QuicPacketPublicHeader& header)
100 : public_header(header), 103 : public_header(header), nonce_proof(0), rejected_sequence_number(0) {
101 nonce_proof(0), 104 }
102 rejected_sequence_number(0) {}
103 105
104 QuicStreamFrame::QuicStreamFrame() 106 QuicStreamFrame::QuicStreamFrame()
105 : stream_id(0), 107 : stream_id(0), fin(false), offset(0), notifier(NULL) {
106 fin(false), 108 }
107 offset(0),
108 notifier(NULL) {}
109 109
110 QuicStreamFrame::QuicStreamFrame(const QuicStreamFrame& frame) 110 QuicStreamFrame::QuicStreamFrame(const QuicStreamFrame& frame)
111 : stream_id(frame.stream_id), 111 : stream_id(frame.stream_id),
112 fin(frame.fin), 112 fin(frame.fin),
113 offset(frame.offset), 113 offset(frame.offset),
114 data(frame.data), 114 data(frame.data),
115 notifier(frame.notifier) { 115 notifier(frame.notifier) {
116 } 116 }
117 117
118 QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id, 118 QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id,
(...skipping 12 matching lines...) Expand all
131 data_string->reserve(data.TotalBufferSize()); 131 data_string->reserve(data.TotalBufferSize());
132 for (size_t i = 0; i < data.Size(); ++i) { 132 for (size_t i = 0; i < data.Size(); ++i) {
133 data_string->append(static_cast<char*>(data.iovec()[i].iov_base), 133 data_string->append(static_cast<char*>(data.iovec()[i].iov_base),
134 data.iovec()[i].iov_len); 134 data.iovec()[i].iov_len);
135 } 135 }
136 DCHECK_EQ(data_string->size(), data.TotalBufferSize()); 136 DCHECK_EQ(data_string->size(), data.TotalBufferSize());
137 return data_string; 137 return data_string;
138 } 138 }
139 139
140 uint32 MakeQuicTag(char a, char b, char c, char d) { 140 uint32 MakeQuicTag(char a, char b, char c, char d) {
141 return static_cast<uint32>(a) | 141 return static_cast<uint32>(a) | static_cast<uint32>(b) << 8 |
142 static_cast<uint32>(b) << 8 | 142 static_cast<uint32>(c) << 16 | static_cast<uint32>(d) << 24;
143 static_cast<uint32>(c) << 16 |
144 static_cast<uint32>(d) << 24;
145 } 143 }
146 144
147 QuicVersionVector QuicSupportedVersions() { 145 QuicVersionVector QuicSupportedVersions() {
148 QuicVersionVector supported_versions; 146 QuicVersionVector supported_versions;
149 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { 147 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) {
150 supported_versions.push_back(kSupportedQuicVersions[i]); 148 supported_versions.push_back(kSupportedQuicVersions[i]);
151 } 149 }
152 return supported_versions; 150 return supported_versions;
153 } 151 }
154 152
(...skipping 21 matching lines...) Expand all
176 return kSupportedQuicVersions[i]; 174 return kSupportedQuicVersions[i];
177 } 175 }
178 } 176 }
179 // Reading from the client so this should not be considered an ERROR. 177 // Reading from the client so this should not be considered an ERROR.
180 DVLOG(1) << "Unsupported QuicTag version: " 178 DVLOG(1) << "Unsupported QuicTag version: "
181 << QuicUtils::TagToString(version_tag); 179 << QuicUtils::TagToString(version_tag);
182 return QUIC_VERSION_UNSUPPORTED; 180 return QUIC_VERSION_UNSUPPORTED;
183 } 181 }
184 182
185 #define RETURN_STRING_LITERAL(x) \ 183 #define RETURN_STRING_LITERAL(x) \
186 case x: \ 184 case x: \
187 return #x 185 return #x
188 186
189 string QuicVersionToString(const QuicVersion version) { 187 string QuicVersionToString(const QuicVersion version) {
190 switch (version) { 188 switch (version) {
191 RETURN_STRING_LITERAL(QUIC_VERSION_15); 189 RETURN_STRING_LITERAL(QUIC_VERSION_15);
192 RETURN_STRING_LITERAL(QUIC_VERSION_16); 190 RETURN_STRING_LITERAL(QUIC_VERSION_16);
193 RETURN_STRING_LITERAL(QUIC_VERSION_17); 191 RETURN_STRING_LITERAL(QUIC_VERSION_17);
194 RETURN_STRING_LITERAL(QUIC_VERSION_18); 192 RETURN_STRING_LITERAL(QUIC_VERSION_18);
195 default: 193 default:
196 return "QUIC_VERSION_UNSUPPORTED"; 194 return "QUIC_VERSION_UNSUPPORTED";
197 } 195 }
(...skipping 21 matching lines...) Expand all
219 os << " version: "; 217 os << " version: ";
220 for (size_t i = 0; i < header.public_header.versions.size(); ++i) { 218 for (size_t i = 0; i < header.public_header.versions.size(); ++i) {
221 os << header.public_header.versions[0] << " "; 219 os << header.public_header.versions[0] << " ";
222 } 220 }
223 } 221 }
224 os << ", fec_flag: " << header.fec_flag 222 os << ", fec_flag: " << header.fec_flag
225 << ", entropy_flag: " << header.entropy_flag 223 << ", entropy_flag: " << header.entropy_flag
226 << ", entropy hash: " << static_cast<int>(header.entropy_hash) 224 << ", entropy hash: " << static_cast<int>(header.entropy_hash)
227 << ", sequence_number: " << header.packet_sequence_number 225 << ", sequence_number: " << header.packet_sequence_number
228 << ", is_in_fec_group:" << header.is_in_fec_group 226 << ", is_in_fec_group:" << header.is_in_fec_group
229 << ", fec_group: " << header.fec_group<< "}\n"; 227 << ", fec_group: " << header.fec_group << "}\n";
230 return os; 228 return os;
231 } 229 }
232 230
233 ReceivedPacketInfo::ReceivedPacketInfo() 231 ReceivedPacketInfo::ReceivedPacketInfo()
234 : entropy_hash(0), 232 : entropy_hash(0),
235 largest_observed(0), 233 largest_observed(0),
236 delta_time_largest_observed(QuicTime::Delta::Infinite()), 234 delta_time_largest_observed(QuicTime::Delta::Infinite()),
237 is_truncated(false) {} 235 is_truncated(false) {
236 }
238 237
239 ReceivedPacketInfo::~ReceivedPacketInfo() {} 238 ReceivedPacketInfo::~ReceivedPacketInfo() {
239 }
240 240
241 bool IsAwaitingPacket(const ReceivedPacketInfo& received_info, 241 bool IsAwaitingPacket(const ReceivedPacketInfo& received_info,
242 QuicPacketSequenceNumber sequence_number) { 242 QuicPacketSequenceNumber sequence_number) {
243 return sequence_number > received_info.largest_observed || 243 return sequence_number > received_info.largest_observed ||
244 ContainsKey(received_info.missing_packets, sequence_number); 244 ContainsKey(received_info.missing_packets, sequence_number);
245 } 245 }
246 246
247 void InsertMissingPacketsBetween(ReceivedPacketInfo* received_info, 247 void InsertMissingPacketsBetween(ReceivedPacketInfo* received_info,
248 QuicPacketSequenceNumber lower, 248 QuicPacketSequenceNumber lower,
249 QuicPacketSequenceNumber higher) { 249 QuicPacketSequenceNumber higher) {
250 for (QuicPacketSequenceNumber i = lower; i < higher; ++i) { 250 for (QuicPacketSequenceNumber i = lower; i < higher; ++i) {
251 received_info->missing_packets.insert(i); 251 received_info->missing_packets.insert(i);
252 } 252 }
253 } 253 }
254 254
255 QuicStopWaitingFrame::QuicStopWaitingFrame() 255 QuicStopWaitingFrame::QuicStopWaitingFrame()
256 : entropy_hash(0), 256 : entropy_hash(0), least_unacked(0) {
257 least_unacked(0) {
258 } 257 }
259 258
260 QuicStopWaitingFrame::~QuicStopWaitingFrame() {} 259 QuicStopWaitingFrame::~QuicStopWaitingFrame() {
260 }
261 261
262 QuicAckFrame::QuicAckFrame() {} 262 QuicAckFrame::QuicAckFrame() {
263 }
263 264
264 CongestionFeedbackMessageTCP::CongestionFeedbackMessageTCP() 265 CongestionFeedbackMessageTCP::CongestionFeedbackMessageTCP()
265 : receive_window(0) { 266 : receive_window(0) {
266 } 267 }
267 268
268 CongestionFeedbackMessageInterArrival::CongestionFeedbackMessageInterArrival() { 269 CongestionFeedbackMessageInterArrival::CongestionFeedbackMessageInterArrival() {
269 } 270 }
270 271
271 CongestionFeedbackMessageInterArrival:: 272 CongestionFeedbackMessageInterArrival::
272 ~CongestionFeedbackMessageInterArrival() {} 273 ~CongestionFeedbackMessageInterArrival() {
274 }
273 275
274 QuicCongestionFeedbackFrame::QuicCongestionFeedbackFrame() : type(kTCP) {} 276 QuicCongestionFeedbackFrame::QuicCongestionFeedbackFrame() : type(kTCP) {
277 }
275 278
276 QuicCongestionFeedbackFrame::~QuicCongestionFeedbackFrame() {} 279 QuicCongestionFeedbackFrame::~QuicCongestionFeedbackFrame() {
280 }
277 281
278 QuicRstStreamErrorCode AdjustErrorForVersion( 282 QuicRstStreamErrorCode AdjustErrorForVersion(QuicRstStreamErrorCode error_code,
279 QuicRstStreamErrorCode error_code, 283 QuicVersion version) {
280 QuicVersion version) {
281 switch (error_code) { 284 switch (error_code) {
282 case QUIC_RST_FLOW_CONTROL_ACCOUNTING: 285 case QUIC_RST_FLOW_CONTROL_ACCOUNTING:
283 if (version <= QUIC_VERSION_17) { 286 if (version <= QUIC_VERSION_17) {
284 return QUIC_STREAM_NO_ERROR; 287 return QUIC_STREAM_NO_ERROR;
285 } 288 }
286 break; 289 break;
287 default: 290 default:
288 return error_code; 291 return error_code;
289 } 292 }
290 return error_code; 293 return error_code;
291 } 294 }
292 295
293 QuicRstStreamFrame::QuicRstStreamFrame() 296 QuicRstStreamFrame::QuicRstStreamFrame()
294 : stream_id(0), 297 : stream_id(0), error_code(QUIC_STREAM_NO_ERROR) {
295 error_code(QUIC_STREAM_NO_ERROR) {
296 } 298 }
297 299
298 QuicRstStreamFrame::QuicRstStreamFrame(QuicStreamId stream_id, 300 QuicRstStreamFrame::QuicRstStreamFrame(QuicStreamId stream_id,
299 QuicRstStreamErrorCode error_code, 301 QuicRstStreamErrorCode error_code,
300 QuicStreamOffset bytes_written) 302 QuicStreamOffset bytes_written)
301 : stream_id(stream_id), 303 : stream_id(stream_id), error_code(error_code), byte_offset(bytes_written) {
302 error_code(error_code),
303 byte_offset(bytes_written) {
304 DCHECK_LE(error_code, numeric_limits<uint8>::max()); 304 DCHECK_LE(error_code, numeric_limits<uint8>::max());
305 } 305 }
306 306
307 QuicConnectionCloseFrame::QuicConnectionCloseFrame() 307 QuicConnectionCloseFrame::QuicConnectionCloseFrame()
308 : error_code(QUIC_NO_ERROR) { 308 : error_code(QUIC_NO_ERROR) {
309 } 309 }
310 310
311 QuicFrame::QuicFrame() {} 311 QuicFrame::QuicFrame() {
312 }
312 313
313 QuicFrame::QuicFrame(QuicPaddingFrame* padding_frame) 314 QuicFrame::QuicFrame(QuicPaddingFrame* padding_frame)
314 : type(PADDING_FRAME), 315 : type(PADDING_FRAME), padding_frame(padding_frame) {
315 padding_frame(padding_frame) {
316 } 316 }
317 317
318 QuicFrame::QuicFrame(QuicStreamFrame* stream_frame) 318 QuicFrame::QuicFrame(QuicStreamFrame* stream_frame)
319 : type(STREAM_FRAME), 319 : type(STREAM_FRAME), stream_frame(stream_frame) {
320 stream_frame(stream_frame) {
321 } 320 }
322 321
323 QuicFrame::QuicFrame(QuicAckFrame* frame) 322 QuicFrame::QuicFrame(QuicAckFrame* frame) : type(ACK_FRAME), ack_frame(frame) {
324 : type(ACK_FRAME),
325 ack_frame(frame) {
326 } 323 }
327 324
328 QuicFrame::QuicFrame(QuicCongestionFeedbackFrame* frame) 325 QuicFrame::QuicFrame(QuicCongestionFeedbackFrame* frame)
329 : type(CONGESTION_FEEDBACK_FRAME), 326 : type(CONGESTION_FEEDBACK_FRAME), congestion_feedback_frame(frame) {
330 congestion_feedback_frame(frame) {
331 } 327 }
332 328
333 QuicFrame::QuicFrame(QuicStopWaitingFrame* frame) 329 QuicFrame::QuicFrame(QuicStopWaitingFrame* frame)
334 : type(STOP_WAITING_FRAME), 330 : type(STOP_WAITING_FRAME), stop_waiting_frame(frame) {
335 stop_waiting_frame(frame) {
336 } 331 }
337 332
338 QuicFrame::QuicFrame(QuicPingFrame* frame) 333 QuicFrame::QuicFrame(QuicPingFrame* frame)
339 : type(PING_FRAME), 334 : type(PING_FRAME), ping_frame(frame) {
340 ping_frame(frame) {
341 } 335 }
342 336
343 QuicFrame::QuicFrame(QuicRstStreamFrame* frame) 337 QuicFrame::QuicFrame(QuicRstStreamFrame* frame)
344 : type(RST_STREAM_FRAME), 338 : type(RST_STREAM_FRAME), rst_stream_frame(frame) {
345 rst_stream_frame(frame) {
346 } 339 }
347 340
348 QuicFrame::QuicFrame(QuicConnectionCloseFrame* frame) 341 QuicFrame::QuicFrame(QuicConnectionCloseFrame* frame)
349 : type(CONNECTION_CLOSE_FRAME), 342 : type(CONNECTION_CLOSE_FRAME), connection_close_frame(frame) {
350 connection_close_frame(frame) {
351 } 343 }
352 344
353 QuicFrame::QuicFrame(QuicGoAwayFrame* frame) 345 QuicFrame::QuicFrame(QuicGoAwayFrame* frame)
354 : type(GOAWAY_FRAME), 346 : type(GOAWAY_FRAME), goaway_frame(frame) {
355 goaway_frame(frame) {
356 } 347 }
357 348
358 QuicFrame::QuicFrame(QuicWindowUpdateFrame* frame) 349 QuicFrame::QuicFrame(QuicWindowUpdateFrame* frame)
359 : type(WINDOW_UPDATE_FRAME), 350 : type(WINDOW_UPDATE_FRAME), window_update_frame(frame) {
360 window_update_frame(frame) {
361 } 351 }
362 352
363 QuicFrame::QuicFrame(QuicBlockedFrame* frame) 353 QuicFrame::QuicFrame(QuicBlockedFrame* frame)
364 : type(BLOCKED_FRAME), 354 : type(BLOCKED_FRAME), blocked_frame(frame) {
365 blocked_frame(frame) {
366 } 355 }
367 356
368 QuicFecData::QuicFecData() : fec_group(0) {} 357 QuicFecData::QuicFecData() : fec_group(0) {
358 }
369 359
370 ostream& operator<<(ostream& os, const QuicStopWaitingFrame& sent_info) { 360 ostream& operator<<(ostream& os, const QuicStopWaitingFrame& sent_info) {
371 os << "entropy_hash: " << static_cast<int>(sent_info.entropy_hash) 361 os << "entropy_hash: " << static_cast<int>(sent_info.entropy_hash)
372 << " least_unacked: " << sent_info.least_unacked; 362 << " least_unacked: " << sent_info.least_unacked;
373 return os; 363 return os;
374 } 364 }
375 365
376 ostream& operator<<(ostream& os, const ReceivedPacketInfo& received_info) { 366 ostream& operator<<(ostream& os, const ReceivedPacketInfo& received_info) {
377 os << "entropy_hash: " << static_cast<int>(received_info.entropy_hash) 367 os << "entropy_hash: " << static_cast<int>(received_info.entropy_hash)
378 << " is_truncated: " << received_info.is_truncated 368 << " is_truncated: " << received_info.is_truncated
379 << " largest_observed: " << received_info.largest_observed 369 << " largest_observed: " << received_info.largest_observed
380 << " delta_time_largest_observed: " 370 << " delta_time_largest_observed: "
381 << received_info.delta_time_largest_observed.ToMicroseconds() 371 << received_info.delta_time_largest_observed.ToMicroseconds()
382 << " missing_packets: [ "; 372 << " missing_packets: [ ";
383 for (SequenceNumberSet::const_iterator it = 373 for (SequenceNumberSet::const_iterator it =
384 received_info.missing_packets.begin(); 374 received_info.missing_packets.begin();
385 it != received_info.missing_packets.end(); ++it) { 375 it != received_info.missing_packets.end();
376 ++it) {
386 os << *it << " "; 377 os << *it << " ";
387 } 378 }
388 os << " ] revived_packets: [ "; 379 os << " ] revived_packets: [ ";
389 for (SequenceNumberSet::const_iterator it = 380 for (SequenceNumberSet::const_iterator it =
390 received_info.revived_packets.begin(); 381 received_info.revived_packets.begin();
391 it != received_info.revived_packets.end(); ++it) { 382 it != received_info.revived_packets.end();
383 ++it) {
392 os << *it << " "; 384 os << *it << " ";
393 } 385 }
394 os << " ]"; 386 os << " ]";
395 return os; 387 return os;
396 } 388 }
397 389
398 ostream& operator<<(ostream& os, const QuicFrame& frame) { 390 ostream& operator<<(ostream& os, const QuicFrame& frame) {
399 switch (frame.type) { 391 switch (frame.type) {
400 case PADDING_FRAME: { 392 case PADDING_FRAME: {
401 os << "type { PADDING_FRAME } "; 393 os << "type { PADDING_FRAME } ";
402 break; 394 break;
403 } 395 }
404 case RST_STREAM_FRAME: { 396 case RST_STREAM_FRAME: {
405 os << "type { " << RST_STREAM_FRAME << " } " << *(frame.rst_stream_frame); 397 os << "type { " << RST_STREAM_FRAME << " } " << *(frame.rst_stream_frame);
406 break; 398 break;
407 } 399 }
408 case CONNECTION_CLOSE_FRAME: { 400 case CONNECTION_CLOSE_FRAME: {
409 os << "type { CONNECTION_CLOSE_FRAME } " 401 os << "type { CONNECTION_CLOSE_FRAME } "
410 << *(frame.connection_close_frame); 402 << *(frame.connection_close_frame);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 ostream& operator<<(ostream& os, 491 ostream& operator<<(ostream& os,
500 const QuicCongestionFeedbackFrame& congestion_frame) { 492 const QuicCongestionFeedbackFrame& congestion_frame) {
501 os << "type: " << congestion_frame.type; 493 os << "type: " << congestion_frame.type;
502 switch (congestion_frame.type) { 494 switch (congestion_frame.type) {
503 case kInterArrival: { 495 case kInterArrival: {
504 const CongestionFeedbackMessageInterArrival& inter_arrival = 496 const CongestionFeedbackMessageInterArrival& inter_arrival =
505 congestion_frame.inter_arrival; 497 congestion_frame.inter_arrival;
506 os << " received packets: [ "; 498 os << " received packets: [ ";
507 for (TimeMap::const_iterator it = 499 for (TimeMap::const_iterator it =
508 inter_arrival.received_packet_times.begin(); 500 inter_arrival.received_packet_times.begin();
509 it != inter_arrival.received_packet_times.end(); ++it) { 501 it != inter_arrival.received_packet_times.end();
502 ++it) {
510 os << it->first << "@" << it->second.ToDebuggingValue() << " "; 503 os << it->first << "@" << it->second.ToDebuggingValue() << " ";
511 } 504 }
512 os << "]"; 505 os << "]";
513 break; 506 break;
514 } 507 }
515 case kFixRate: { 508 case kFixRate: {
516 os << " bitrate_in_bytes_per_second: " 509 os << " bitrate_in_bytes_per_second: "
517 << congestion_frame.fix_rate.bitrate.ToBytesPerSecond(); 510 << congestion_frame.fix_rate.bitrate.ToBytesPerSecond();
518 break; 511 break;
519 } 512 }
520 case kTCP: { 513 case kTCP: {
521 const CongestionFeedbackMessageTCP& tcp = congestion_frame.tcp; 514 const CongestionFeedbackMessageTCP& tcp = congestion_frame.tcp;
522 os << " receive_window: " << tcp.receive_window; 515 os << " receive_window: " << tcp.receive_window;
523 break; 516 break;
524 } 517 }
525 } 518 }
526 return os; 519 return os;
527 } 520 }
528 521
529 CongestionFeedbackMessageFixRate::CongestionFeedbackMessageFixRate() 522 CongestionFeedbackMessageFixRate::CongestionFeedbackMessageFixRate()
530 : bitrate(QuicBandwidth::Zero()) { 523 : bitrate(QuicBandwidth::Zero()) {
531 } 524 }
532 525
533 QuicGoAwayFrame::QuicGoAwayFrame() 526 QuicGoAwayFrame::QuicGoAwayFrame()
534 : error_code(QUIC_NO_ERROR), 527 : error_code(QUIC_NO_ERROR), last_good_stream_id(0) {
535 last_good_stream_id(0) {
536 } 528 }
537 529
538 QuicGoAwayFrame::QuicGoAwayFrame(QuicErrorCode error_code, 530 QuicGoAwayFrame::QuicGoAwayFrame(QuicErrorCode error_code,
539 QuicStreamId last_good_stream_id, 531 QuicStreamId last_good_stream_id,
540 const string& reason) 532 const string& reason)
541 : error_code(error_code), 533 : error_code(error_code),
542 last_good_stream_id(last_good_stream_id), 534 last_good_stream_id(last_good_stream_id),
543 reason_phrase(reason) { 535 reason_phrase(reason) {
544 DCHECK_LE(error_code, numeric_limits<uint8>::max()); 536 DCHECK_LE(error_code, numeric_limits<uint8>::max());
545 } 537 }
546 538
547 QuicData::QuicData(const char* buffer, 539 QuicData::QuicData(const char* buffer, size_t length)
548 size_t length) 540 : buffer_(buffer), length_(length), owns_buffer_(false) {
549 : buffer_(buffer),
550 length_(length),
551 owns_buffer_(false) {
552 } 541 }
553 542
554 QuicData::QuicData(char* buffer, 543 QuicData::QuicData(char* buffer, size_t length, bool owns_buffer)
555 size_t length, 544 : buffer_(buffer), length_(length), owns_buffer_(owns_buffer) {
556 bool owns_buffer)
557 : buffer_(buffer),
558 length_(length),
559 owns_buffer_(owns_buffer) {
560 } 545 }
561 546
562 QuicData::~QuicData() { 547 QuicData::~QuicData() {
563 if (owns_buffer_) { 548 if (owns_buffer_) {
564 delete [] const_cast<char*>(buffer_); 549 delete[] const_cast<char*>(buffer_);
565 } 550 }
566 } 551 }
567 552
568 QuicWindowUpdateFrame::QuicWindowUpdateFrame(QuicStreamId stream_id, 553 QuicWindowUpdateFrame::QuicWindowUpdateFrame(QuicStreamId stream_id,
569 QuicStreamOffset byte_offset) 554 QuicStreamOffset byte_offset)
570 : stream_id(stream_id), 555 : stream_id(stream_id), byte_offset(byte_offset) {
571 byte_offset(byte_offset) {} 556 }
572 557
573 QuicBlockedFrame::QuicBlockedFrame(QuicStreamId stream_id) 558 QuicBlockedFrame::QuicBlockedFrame(QuicStreamId stream_id)
574 : stream_id(stream_id) {} 559 : stream_id(stream_id) {
560 }
575 561
576 QuicPacket::QuicPacket(char* buffer, 562 QuicPacket::QuicPacket(char* buffer,
577 size_t length, 563 size_t length,
578 bool owns_buffer, 564 bool owns_buffer,
579 QuicConnectionIdLength connection_id_length, 565 QuicConnectionIdLength connection_id_length,
580 bool includes_version, 566 bool includes_version,
581 QuicSequenceNumberLength sequence_number_length, 567 QuicSequenceNumberLength sequence_number_length,
582 bool is_fec_packet) 568 bool is_fec_packet)
583 : QuicData(buffer, length, owns_buffer), 569 : QuicData(buffer, length, owns_buffer),
584 buffer_(buffer), 570 buffer_(buffer),
585 is_fec_packet_(is_fec_packet), 571 is_fec_packet_(is_fec_packet),
586 connection_id_length_(connection_id_length), 572 connection_id_length_(connection_id_length),
587 includes_version_(includes_version), 573 includes_version_(includes_version),
588 sequence_number_length_(sequence_number_length) { 574 sequence_number_length_(sequence_number_length) {
589 } 575 }
590 576
591 QuicEncryptedPacket::QuicEncryptedPacket(const char* buffer, 577 QuicEncryptedPacket::QuicEncryptedPacket(const char* buffer, size_t length)
592 size_t length)
593 : QuicData(buffer, length) { 578 : QuicData(buffer, length) {
594 } 579 }
595 580
596 QuicEncryptedPacket::QuicEncryptedPacket(char* buffer, 581 QuicEncryptedPacket::QuicEncryptedPacket(char* buffer,
597 size_t length, 582 size_t length,
598 bool owns_buffer) 583 bool owns_buffer)
599 : QuicData(buffer, length, owns_buffer) { 584 : QuicData(buffer, length, owns_buffer) {
600 } 585 }
601 586
602 StringPiece QuicPacket::FecProtectedData() const { 587 StringPiece QuicPacket::FecProtectedData() const {
603 const size_t start_of_fec = GetStartOfFecProtectedData( 588 const size_t start_of_fec = GetStartOfFecProtectedData(
604 connection_id_length_, includes_version_, sequence_number_length_); 589 connection_id_length_, includes_version_, sequence_number_length_);
605 return StringPiece(data() + start_of_fec, length() - start_of_fec); 590 return StringPiece(data() + start_of_fec, length() - start_of_fec);
606 } 591 }
607 592
608 StringPiece QuicPacket::AssociatedData() const { 593 StringPiece QuicPacket::AssociatedData() const {
609 return StringPiece( 594 return StringPiece(
610 data() + kStartOfHashData, 595 data() + kStartOfHashData,
611 GetStartOfEncryptedData( 596 GetStartOfEncryptedData(
612 connection_id_length_, includes_version_, sequence_number_length_) - 597 connection_id_length_, includes_version_, sequence_number_length_) -
613 kStartOfHashData); 598 kStartOfHashData);
614 } 599 }
615 600
616 StringPiece QuicPacket::BeforePlaintext() const { 601 StringPiece QuicPacket::BeforePlaintext() const {
617 return StringPiece(data(), GetStartOfEncryptedData(connection_id_length_, 602 return StringPiece(
618 includes_version_, 603 data(),
619 sequence_number_length_)); 604 GetStartOfEncryptedData(
605 connection_id_length_, includes_version_, sequence_number_length_));
620 } 606 }
621 607
622 StringPiece QuicPacket::Plaintext() const { 608 StringPiece QuicPacket::Plaintext() const {
623 const size_t start_of_encrypted_data = 609 const size_t start_of_encrypted_data = GetStartOfEncryptedData(
624 GetStartOfEncryptedData( 610 connection_id_length_, includes_version_, sequence_number_length_);
625 connection_id_length_, includes_version_, sequence_number_length_);
626 return StringPiece(data() + start_of_encrypted_data, 611 return StringPiece(data() + start_of_encrypted_data,
627 length() - start_of_encrypted_data); 612 length() - start_of_encrypted_data);
628 } 613 }
629 614
630 RetransmittableFrames::RetransmittableFrames() 615 RetransmittableFrames::RetransmittableFrames()
631 : encryption_level_(NUM_ENCRYPTION_LEVELS) { 616 : encryption_level_(NUM_ENCRYPTION_LEVELS) {
632 } 617 }
633 618
634 RetransmittableFrames::~RetransmittableFrames() { 619 RetransmittableFrames::~RetransmittableFrames() {
635 for (QuicFrames::iterator it = frames_.begin(); it != frames_.end(); ++it) { 620 for (QuicFrames::iterator it = frames_.begin(); it != frames_.end(); ++it) {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 QuicPacket* packet, 698 QuicPacket* packet,
714 QuicPacketEntropyHash entropy_hash, 699 QuicPacketEntropyHash entropy_hash,
715 RetransmittableFrames* retransmittable_frames) 700 RetransmittableFrames* retransmittable_frames)
716 : sequence_number(sequence_number), 701 : sequence_number(sequence_number),
717 sequence_number_length(sequence_number_length), 702 sequence_number_length(sequence_number_length),
718 packet(packet), 703 packet(packet),
719 entropy_hash(entropy_hash), 704 entropy_hash(entropy_hash),
720 retransmittable_frames(retransmittable_frames) { 705 retransmittable_frames(retransmittable_frames) {
721 } 706 }
722 707
723 SerializedPacket::~SerializedPacket() {} 708 SerializedPacket::~SerializedPacket() {
709 }
724 710
725 QuicEncryptedPacket* QuicEncryptedPacket::Clone() const { 711 QuicEncryptedPacket* QuicEncryptedPacket::Clone() const {
726 char* buffer = new char[this->length()]; 712 char* buffer = new char[this->length()];
727 memcpy(buffer, this->data(), this->length()); 713 memcpy(buffer, this->data(), this->length());
728 return new QuicEncryptedPacket(buffer, this->length(), true); 714 return new QuicEncryptedPacket(buffer, this->length(), true);
729 } 715 }
730 716
731 ostream& operator<<(ostream& os, const QuicEncryptedPacket& s) { 717 ostream& operator<<(ostream& os, const QuicEncryptedPacket& s) {
732 os << s.length() << "-byte data"; 718 os << s.length() << "-byte data";
733 return os; 719 return os;
734 } 720 }
735 721
736 QuicConsumedData::QuicConsumedData(size_t bytes_consumed, 722 QuicConsumedData::QuicConsumedData(size_t bytes_consumed, bool fin_consumed)
737 bool fin_consumed) 723 : bytes_consumed(bytes_consumed), fin_consumed(fin_consumed) {
738 : bytes_consumed(bytes_consumed),
739 fin_consumed(fin_consumed) {
740 } 724 }
741 725
742 ostream& operator<<(ostream& os, const QuicConsumedData& s) { 726 ostream& operator<<(ostream& os, const QuicConsumedData& s) {
743 os << "bytes_consumed: " << s.bytes_consumed 727 os << "bytes_consumed: " << s.bytes_consumed
744 << " fin_consumed: " << s.fin_consumed; 728 << " fin_consumed: " << s.fin_consumed;
745 return os; 729 return os;
746 } 730 }
747 731
748 WriteResult::WriteResult() 732 WriteResult::WriteResult() : status(WRITE_STATUS_ERROR), bytes_written(0) {
749 : status(WRITE_STATUS_ERROR),
750 bytes_written(0) {
751 } 733 }
752 734
753 WriteResult::WriteResult(WriteStatus status, 735 WriteResult::WriteResult(WriteStatus status, int bytes_written_or_error_code)
754 int bytes_written_or_error_code) 736 : status(status), bytes_written(bytes_written_or_error_code) {
755 : status(status),
756 bytes_written(bytes_written_or_error_code) {
757 } 737 }
758 738
759 } // namespace net 739 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698