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 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 // and 0 if the frame doesn't fit. Includes the header size for the first | 241 // and 0 if the frame doesn't fit. Includes the header size for the first |
242 // frame. | 242 // frame. |
243 size_t GetSerializedFrameLength( | 243 size_t GetSerializedFrameLength( |
244 const QuicFrame& frame, size_t free_bytes, bool first_frame); | 244 const QuicFrame& frame, size_t free_bytes, bool first_frame); |
245 | 245 |
246 // Returns the associated data from the encrypted packet |encrypted| as a | 246 // Returns the associated data from the encrypted packet |encrypted| as a |
247 // stringpiece. | 247 // stringpiece. |
248 static base::StringPiece GetAssociatedDataFromEncryptedPacket( | 248 static base::StringPiece GetAssociatedDataFromEncryptedPacket( |
249 const QuicEncryptedPacket& encrypted, | 249 const QuicEncryptedPacket& encrypted, |
250 QuicGuidLength guid_length, | 250 QuicGuidLength guid_length, |
251 bool includes_version, | 251 bool includes_version); |
252 QuicSequenceNumberLength sequence_number_length); | |
253 | 252 |
254 // Returns a SerializedPacket whose |packet| member is owned by the caller, | 253 // Returns a SerializedPacket whose |packet| member is owned by the caller, |
255 // and is populated with the fields in |header| and |frames|, or is NULL if | 254 // and is populated with the fields in |header| and |frames|, or is NULL if |
256 // the packet could not be created. | 255 // the packet could not be created. |
257 // TODO(ianswett): Used for testing only. | 256 // TODO(ianswett): Used for testing only. |
258 SerializedPacket ConstructFrameDataPacket(const QuicPacketHeader& header, | 257 SerializedPacket ConstructFrameDataPacket(const QuicPacketHeader& header, |
259 const QuicFrames& frames); | 258 const QuicFrames& frames); |
260 | 259 |
261 // Returns a SerializedPacket whose |packet| member is owned by the caller, | 260 // Returns a SerializedPacket whose |packet| member is owned by the caller, |
262 // is created from the first |num_frames| frames, or is NULL if the packet | 261 // is created from the first |num_frames| frames, or is NULL if the packet |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 bool ProcessVersionNegotiationPacket(QuicPacketPublicHeader* public_header); | 335 bool ProcessVersionNegotiationPacket(QuicPacketPublicHeader* public_header); |
337 | 336 |
338 bool WritePacketHeader(const QuicPacketHeader& header, | 337 bool WritePacketHeader(const QuicPacketHeader& header, |
339 QuicDataWriter* writer); | 338 QuicDataWriter* writer); |
340 | 339 |
341 bool ProcessPublicHeader(QuicPacketPublicHeader* header); | 340 bool ProcessPublicHeader(QuicPacketPublicHeader* header); |
342 | 341 |
343 bool ProcessPacketHeader(QuicPacketHeader* header, | 342 bool ProcessPacketHeader(QuicPacketHeader* header, |
344 const QuicEncryptedPacket& packet); | 343 const QuicEncryptedPacket& packet); |
345 | 344 |
346 bool ProcessPacketSequenceNumber( | 345 bool ProcessPacketSequenceNumber(QuicPacketSequenceNumber* sequence_number); |
347 QuicSequenceNumberLength sequence_number_length, | |
348 QuicPacketSequenceNumber* sequence_number); | |
349 bool ProcessFrameData(); | 346 bool ProcessFrameData(); |
350 bool ProcessStreamFrame(QuicStreamFrame* frame); | 347 bool ProcessStreamFrame(QuicStreamFrame* frame); |
351 bool ProcessAckFrame(QuicAckFrame* frame); | 348 bool ProcessAckFrame(QuicAckFrame* frame); |
352 bool ProcessReceivedInfo(ReceivedPacketInfo* received_info); | 349 bool ProcessReceivedInfo(ReceivedPacketInfo* received_info); |
353 bool ProcessSentInfo(SentPacketInfo* sent_info); | 350 bool ProcessSentInfo(SentPacketInfo* sent_info); |
354 bool ProcessQuicCongestionFeedbackFrame( | 351 bool ProcessQuicCongestionFeedbackFrame( |
355 QuicCongestionFeedbackFrame* congestion_feedback); | 352 QuicCongestionFeedbackFrame* congestion_feedback); |
356 bool ProcessRstStreamFrame(QuicRstStreamFrame* frame); | 353 bool ProcessRstStreamFrame(QuicRstStreamFrame* frame); |
357 bool ProcessConnectionCloseFrame(QuicConnectionCloseFrame* frame); | 354 bool ProcessConnectionCloseFrame(QuicConnectionCloseFrame* frame); |
358 bool ProcessGoAwayFrame(QuicGoAwayFrame* frame); | 355 bool ProcessGoAwayFrame(QuicGoAwayFrame* frame); |
359 | 356 |
360 bool DecryptPayload(const QuicPacketHeader& header, | 357 bool DecryptPayload(QuicPacketSequenceNumber packet_sequence_number, |
| 358 QuicGuidLength guid_length, |
| 359 bool version_flag, |
361 const QuicEncryptedPacket& packet); | 360 const QuicEncryptedPacket& packet); |
362 | 361 |
363 // Returns the full packet sequence number from the truncated | 362 // Returns the full packet sequence number from the truncated |
364 // wire format version and the last seen packet sequence number. | 363 // wire format version and the last seen packet sequence number. |
365 QuicPacketSequenceNumber CalculatePacketSequenceNumberFromWire( | 364 QuicPacketSequenceNumber CalculatePacketSequenceNumberFromWire( |
366 QuicSequenceNumberLength sequence_number_length, | |
367 QuicPacketSequenceNumber packet_sequence_number) const; | 365 QuicPacketSequenceNumber packet_sequence_number) const; |
368 | 366 |
369 // Computes the wire size in bytes of the payload of |frame|. | 367 // Computes the wire size in bytes of the payload of |frame|. |
370 size_t ComputeFrameLength(const QuicFrame& frame); | 368 size_t ComputeFrameLength(const QuicFrame& frame); |
371 | 369 |
372 static bool AppendPacketSequenceNumber( | 370 static bool AppendPacketSequenceNumber( |
373 QuicSequenceNumberLength sequence_number_length, | |
374 QuicPacketSequenceNumber packet_sequence_number, | 371 QuicPacketSequenceNumber packet_sequence_number, |
375 QuicDataWriter* writer); | 372 QuicDataWriter* writer); |
376 | 373 |
377 bool AppendStreamFramePayload(const QuicStreamFrame& frame, | 374 bool AppendStreamFramePayload(const QuicStreamFrame& frame, |
378 QuicDataWriter* builder); | 375 QuicDataWriter* builder); |
379 bool AppendAckFramePayload(const QuicAckFrame& frame, | 376 bool AppendAckFramePayload(const QuicAckFrame& frame, |
380 QuicDataWriter* builder); | 377 QuicDataWriter* builder); |
381 bool AppendQuicCongestionFeedbackFramePayload( | 378 bool AppendQuicCongestionFeedbackFramePayload( |
382 const QuicCongestionFeedbackFrame& frame, | 379 const QuicCongestionFeedbackFrame& frame, |
383 QuicDataWriter* builder); | 380 QuicDataWriter* builder); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 // The time this frames was created. Time written to the wire will be | 425 // The time this frames was created. Time written to the wire will be |
429 // written as a delta from this value. | 426 // written as a delta from this value. |
430 QuicTime creation_time_; | 427 QuicTime creation_time_; |
431 | 428 |
432 DISALLOW_COPY_AND_ASSIGN(QuicFramer); | 429 DISALLOW_COPY_AND_ASSIGN(QuicFramer); |
433 }; | 430 }; |
434 | 431 |
435 } // namespace net | 432 } // namespace net |
436 | 433 |
437 #endif // NET_QUIC_QUIC_FRAMER_H_ | 434 #endif // NET_QUIC_QUIC_FRAMER_H_ |
OLD | NEW |