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_PROTOCOL_H_ | 5 #ifndef NET_QUIC_QUIC_PROTOCOL_H_ |
6 #define NET_QUIC_QUIC_PROTOCOL_H_ | 6 #define NET_QUIC_QUIC_PROTOCOL_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <limits> | 9 #include <limits> |
10 #include <map> | 10 #include <map> |
(...skipping 24 matching lines...) Expand all Loading... | |
35 typedef uint8 QuicFecGroupNumber; | 35 typedef uint8 QuicFecGroupNumber; |
36 | 36 |
37 // A struct for functions which consume data payloads and fins. | 37 // A struct for functions which consume data payloads and fins. |
38 // The first member of the pair indicates bytes consumed. | 38 // The first member of the pair indicates bytes consumed. |
39 // The second member of the pair indicates if an incoming fin was consumed. | 39 // The second member of the pair indicates if an incoming fin was consumed. |
40 struct QuicConsumedData { | 40 struct QuicConsumedData { |
41 QuicConsumedData(size_t bytes_consumed, bool fin_consumed) | 41 QuicConsumedData(size_t bytes_consumed, bool fin_consumed) |
42 : bytes_consumed(bytes_consumed), | 42 : bytes_consumed(bytes_consumed), |
43 fin_consumed(fin_consumed) { | 43 fin_consumed(fin_consumed) { |
44 } | 44 } |
45 friend std::ostream& operator<<( | |
46 std::ostream& os, const QuicConsumedData& s); | |
47 | |
45 size_t bytes_consumed; | 48 size_t bytes_consumed; |
46 bool fin_consumed; | 49 bool fin_consumed; |
wtc
2013/01/17 02:34:58
There are padding bytes after this bool member.
Alexander Potapenko
2013/01/17 08:20:06
It's better to have this in the code comment rathe
wtc
2013/01/17 18:59:35
Done.
I verified the bool member was the problem
| |
47 }; | 50 }; |
48 | 51 |
49 | 52 |
50 // TODO(rch): Consider Quic specific names for these constants. | 53 // TODO(rch): Consider Quic specific names for these constants. |
51 const size_t kMaxPacketSize = 1200; // Maximum size in bytes of a QUIC packet. | 54 const size_t kMaxPacketSize = 1200; // Maximum size in bytes of a QUIC packet. |
52 | 55 |
53 // Maximum number of open streams per connection. | 56 // Maximum number of open streams per connection. |
54 const size_t kDefaultMaxStreamsPerConnection = 100; | 57 const size_t kDefaultMaxStreamsPerConnection = 100; |
55 | 58 |
56 // Size in bytes of the packet header common across all packets. | 59 // Size in bytes of the packet header common across all packets. |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
374 base::StringPiece AsStringPiece() const { | 377 base::StringPiece AsStringPiece() const { |
375 return base::StringPiece(data(), length()); | 378 return base::StringPiece(data(), length()); |
376 } | 379 } |
377 | 380 |
378 const char* data() const { return buffer_; } | 381 const char* data() const { return buffer_; } |
379 size_t length() const { return length_; } | 382 size_t length() const { return length_; } |
380 | 383 |
381 private: | 384 private: |
382 const char* buffer_; | 385 const char* buffer_; |
383 size_t length_; | 386 size_t length_; |
384 bool owns_buffer_; | 387 bool owns_buffer_; |
wtc
2013/01/17 02:34:58
This class (QuicData) is the base class of QuicEnc
| |
385 | 388 |
386 DISALLOW_COPY_AND_ASSIGN(QuicData); | 389 DISALLOW_COPY_AND_ASSIGN(QuicData); |
387 }; | 390 }; |
388 | 391 |
389 class NET_EXPORT_PRIVATE QuicPacket : public QuicData { | 392 class NET_EXPORT_PRIVATE QuicPacket : public QuicData { |
390 public: | 393 public: |
391 QuicPacket( | 394 QuicPacket( |
392 char* buffer, size_t length, bool owns_buffer, QuicPacketFlags flags) | 395 char* buffer, size_t length, bool owns_buffer, QuicPacketFlags flags) |
393 : QuicData(buffer, length, owns_buffer), | 396 : QuicData(buffer, length, owns_buffer), |
394 buffer_(buffer), | 397 buffer_(buffer), |
(...skipping 27 matching lines...) Expand all Loading... | |
422 }; | 425 }; |
423 | 426 |
424 class NET_EXPORT_PRIVATE QuicEncryptedPacket : public QuicData { | 427 class NET_EXPORT_PRIVATE QuicEncryptedPacket : public QuicData { |
425 public: | 428 public: |
426 QuicEncryptedPacket(const char* buffer, size_t length) | 429 QuicEncryptedPacket(const char* buffer, size_t length) |
427 : QuicData(buffer, length) { } | 430 : QuicData(buffer, length) { } |
428 | 431 |
429 QuicEncryptedPacket(char* buffer, size_t length, bool owns_buffer) | 432 QuicEncryptedPacket(char* buffer, size_t length, bool owns_buffer) |
430 : QuicData(buffer, length, owns_buffer) { } | 433 : QuicData(buffer, length, owns_buffer) { } |
431 | 434 |
435 friend std::ostream& operator<<( | |
436 std::ostream& os, const QuicEncryptedPacket& s); | |
437 | |
432 base::StringPiece AssociatedData() const { | 438 base::StringPiece AssociatedData() const { |
433 return base::StringPiece(data() + kStartOfHashData, kStartOfEncryptedData); | 439 return base::StringPiece(data() + kStartOfHashData, kStartOfEncryptedData); |
434 } | 440 } |
435 | 441 |
436 private: | 442 private: |
437 DISALLOW_COPY_AND_ASSIGN(QuicEncryptedPacket); | 443 DISALLOW_COPY_AND_ASSIGN(QuicEncryptedPacket); |
438 }; | 444 }; |
439 | 445 |
440 } // namespace net | 446 } // namespace net |
441 | 447 |
442 #endif // NET_QUIC_QUIC_PROTOCOL_H_ | 448 #endif // NET_QUIC_QUIC_PROTOCOL_H_ |
OLD | NEW |