OLD | NEW |
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 #ifndef NET_QUIC_QUIC_FRAMER_H_ | 5 #ifndef NET_QUIC_QUIC_FRAMER_H_ |
6 #define NET_QUIC_QUIC_FRAMER_H_ | 6 #define NET_QUIC_QUIC_FRAMER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 virtual bool OnStreamFrame(const QuicStreamFrame& frame) = 0; | 106 virtual bool OnStreamFrame(const QuicStreamFrame& frame) = 0; |
107 | 107 |
108 // Called when a AckFrame has been parsed. If OnAckFrame returns false, | 108 // Called when a AckFrame has been parsed. If OnAckFrame returns false, |
109 // the framer will stop parsing the current packet. | 109 // the framer will stop parsing the current packet. |
110 virtual bool OnAckFrame(const QuicAckFrame& frame) = 0; | 110 virtual bool OnAckFrame(const QuicAckFrame& frame) = 0; |
111 | 111 |
112 // Called when a CongestionFeedbackFrame has been parsed. | 112 // Called when a CongestionFeedbackFrame has been parsed. |
113 virtual bool OnCongestionFeedbackFrame( | 113 virtual bool OnCongestionFeedbackFrame( |
114 const QuicCongestionFeedbackFrame& frame) = 0; | 114 const QuicCongestionFeedbackFrame& frame) = 0; |
115 | 115 |
| 116 // Called when a StopWaitingFrame has been parsed. |
| 117 virtual bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) = 0; |
| 118 |
116 // Called when a RstStreamFrame has been parsed. | 119 // Called when a RstStreamFrame has been parsed. |
117 virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) = 0; | 120 virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) = 0; |
118 | 121 |
119 // Called when a ConnectionCloseFrame has been parsed. | 122 // Called when a ConnectionCloseFrame has been parsed. |
120 virtual bool OnConnectionCloseFrame( | 123 virtual bool OnConnectionCloseFrame( |
121 const QuicConnectionCloseFrame& frame) = 0; | 124 const QuicConnectionCloseFrame& frame) = 0; |
122 | 125 |
123 // Called when a GoAwayFrame has been parsed. | 126 // Called when a GoAwayFrame has been parsed. |
124 virtual bool OnGoAwayFrame(const QuicGoAwayFrame& frame) = 0; | 127 virtual bool OnGoAwayFrame(const QuicGoAwayFrame& frame) = 0; |
125 | 128 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 // Largest size in bytes of all stream frame fields without the payload. | 244 // Largest size in bytes of all stream frame fields without the payload. |
242 static size_t GetMinStreamFrameSize(QuicVersion version, | 245 static size_t GetMinStreamFrameSize(QuicVersion version, |
243 QuicStreamId stream_id, | 246 QuicStreamId stream_id, |
244 QuicStreamOffset offset, | 247 QuicStreamOffset offset, |
245 bool last_frame_in_packet); | 248 bool last_frame_in_packet); |
246 // Size in bytes of all ack frame fields without the missing packets. | 249 // Size in bytes of all ack frame fields without the missing packets. |
247 static size_t GetMinAckFrameSize( | 250 static size_t GetMinAckFrameSize( |
248 QuicVersion version, | 251 QuicVersion version, |
249 QuicSequenceNumberLength sequence_number_length, | 252 QuicSequenceNumberLength sequence_number_length, |
250 QuicSequenceNumberLength largest_observed_length); | 253 QuicSequenceNumberLength largest_observed_length); |
| 254 // Size in bytes of a stop waiting frame. |
| 255 static size_t GetStopWaitingFrameSize( |
| 256 QuicSequenceNumberLength sequence_number_length); |
251 // Size in bytes of all reset stream frame without the error details. | 257 // Size in bytes of all reset stream frame without the error details. |
252 static size_t GetMinRstStreamFrameSize(QuicVersion quic_version); | 258 static size_t GetMinRstStreamFrameSize(QuicVersion quic_version); |
253 // Size in bytes of all connection close frame fields without the error | 259 // Size in bytes of all connection close frame fields without the error |
254 // details and the missing packets from the enclosed ack frame. | 260 // details and the missing packets from the enclosed ack frame. |
255 static size_t GetMinConnectionCloseFrameSize(); | 261 static size_t GetMinConnectionCloseFrameSize(); |
256 // Size in bytes of all GoAway frame fields without the reason phrase. | 262 // Size in bytes of all GoAway frame fields without the reason phrase. |
257 static size_t GetMinGoAwayFrameSize(); | 263 static size_t GetMinGoAwayFrameSize(); |
258 // Size in bytes of all WindowUpdate frame fields. | 264 // Size in bytes of all WindowUpdate frame fields. |
259 static size_t GetWindowUpdateFrameSize(); | 265 static size_t GetWindowUpdateFrameSize(); |
260 // Size in bytes of all Blocked frame fields. | 266 // Size in bytes of all Blocked frame fields. |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 | 400 |
395 bool ProcessPacketSequenceNumber( | 401 bool ProcessPacketSequenceNumber( |
396 QuicSequenceNumberLength sequence_number_length, | 402 QuicSequenceNumberLength sequence_number_length, |
397 QuicPacketSequenceNumber* sequence_number); | 403 QuicPacketSequenceNumber* sequence_number); |
398 bool ProcessFrameData(const QuicPacketHeader& header); | 404 bool ProcessFrameData(const QuicPacketHeader& header); |
399 bool ProcessStreamFrame(uint8 frame_type, QuicStreamFrame* frame); | 405 bool ProcessStreamFrame(uint8 frame_type, QuicStreamFrame* frame); |
400 bool ProcessAckFrame(const QuicPacketHeader& header, | 406 bool ProcessAckFrame(const QuicPacketHeader& header, |
401 uint8 frame_type, | 407 uint8 frame_type, |
402 QuicAckFrame* frame); | 408 QuicAckFrame* frame); |
403 bool ProcessReceivedInfo(uint8 frame_type, ReceivedPacketInfo* received_info); | 409 bool ProcessReceivedInfo(uint8 frame_type, ReceivedPacketInfo* received_info); |
404 bool ProcessSentInfo(const QuicPacketHeader& public_header, | 410 bool ProcessStopWaitingFrame(const QuicPacketHeader& public_header, |
405 SentPacketInfo* sent_info); | 411 QuicStopWaitingFrame* stop_waiting); |
406 bool ProcessQuicCongestionFeedbackFrame( | 412 bool ProcessQuicCongestionFeedbackFrame( |
407 QuicCongestionFeedbackFrame* congestion_feedback); | 413 QuicCongestionFeedbackFrame* congestion_feedback); |
408 bool ProcessRstStreamFrame(QuicRstStreamFrame* frame); | 414 bool ProcessRstStreamFrame(QuicRstStreamFrame* frame); |
409 bool ProcessConnectionCloseFrame(QuicConnectionCloseFrame* frame); | 415 bool ProcessConnectionCloseFrame(QuicConnectionCloseFrame* frame); |
410 bool ProcessGoAwayFrame(QuicGoAwayFrame* frame); | 416 bool ProcessGoAwayFrame(QuicGoAwayFrame* frame); |
411 bool ProcessWindowUpdateFrame(QuicWindowUpdateFrame* frame); | 417 bool ProcessWindowUpdateFrame(QuicWindowUpdateFrame* frame); |
412 bool ProcessBlockedFrame(QuicBlockedFrame* frame); | 418 bool ProcessBlockedFrame(QuicBlockedFrame* frame); |
413 | 419 |
414 bool DecryptPayload(const QuicPacketHeader& header, | 420 bool DecryptPayload(const QuicPacketHeader& header, |
415 const QuicEncryptedPacket& packet); | 421 const QuicEncryptedPacket& packet); |
(...skipping 29 matching lines...) Expand all Loading... |
445 QuicDataWriter* writer); | 451 QuicDataWriter* writer); |
446 bool AppendTypeByte(const QuicFrame& frame, | 452 bool AppendTypeByte(const QuicFrame& frame, |
447 bool last_frame_in_packet, | 453 bool last_frame_in_packet, |
448 QuicDataWriter* writer); | 454 QuicDataWriter* writer); |
449 bool AppendStreamFrame(const QuicStreamFrame& frame, | 455 bool AppendStreamFrame(const QuicStreamFrame& frame, |
450 bool last_frame_in_packet, | 456 bool last_frame_in_packet, |
451 QuicDataWriter* builder); | 457 QuicDataWriter* builder); |
452 bool AppendAckFrameAndTypeByte(const QuicPacketHeader& header, | 458 bool AppendAckFrameAndTypeByte(const QuicPacketHeader& header, |
453 const QuicAckFrame& frame, | 459 const QuicAckFrame& frame, |
454 QuicDataWriter* builder); | 460 QuicDataWriter* builder); |
455 bool AppendQuicCongestionFeedbackFrame( | 461 bool AppendCongestionFeedbackFrame(const QuicCongestionFeedbackFrame& frame, |
456 const QuicCongestionFeedbackFrame& frame, | 462 QuicDataWriter* builder); |
457 QuicDataWriter* builder); | 463 bool AppendStopWaitingFrame(const QuicPacketHeader& header, |
| 464 const QuicStopWaitingFrame& frame, |
| 465 QuicDataWriter* builder); |
458 bool AppendRstStreamFrame(const QuicRstStreamFrame& frame, | 466 bool AppendRstStreamFrame(const QuicRstStreamFrame& frame, |
459 QuicDataWriter* builder); | 467 QuicDataWriter* builder); |
460 bool AppendConnectionCloseFrame(const QuicConnectionCloseFrame& frame, | 468 bool AppendConnectionCloseFrame(const QuicConnectionCloseFrame& frame, |
461 QuicDataWriter* builder); | 469 QuicDataWriter* builder); |
462 bool AppendGoAwayFrame(const QuicGoAwayFrame& frame, QuicDataWriter* writer); | 470 bool AppendGoAwayFrame(const QuicGoAwayFrame& frame, QuicDataWriter* writer); |
463 bool AppendWindowUpdateFrame(const QuicWindowUpdateFrame& frame, | 471 bool AppendWindowUpdateFrame(const QuicWindowUpdateFrame& frame, |
464 QuicDataWriter* writer); | 472 QuicDataWriter* writer); |
465 bool AppendBlockedFrame(const QuicBlockedFrame& frame, | 473 bool AppendBlockedFrame(const QuicBlockedFrame& frame, |
466 QuicDataWriter* writer); | 474 QuicDataWriter* writer); |
467 | 475 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
510 // The time this frames was created. Time written to the wire will be | 518 // The time this frames was created. Time written to the wire will be |
511 // written as a delta from this value. | 519 // written as a delta from this value. |
512 QuicTime creation_time_; | 520 QuicTime creation_time_; |
513 | 521 |
514 DISALLOW_COPY_AND_ASSIGN(QuicFramer); | 522 DISALLOW_COPY_AND_ASSIGN(QuicFramer); |
515 }; | 523 }; |
516 | 524 |
517 } // namespace net | 525 } // namespace net |
518 | 526 |
519 #endif // NET_QUIC_QUIC_FRAMER_H_ | 527 #endif // NET_QUIC_QUIC_FRAMER_H_ |
OLD | NEW |