| 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 // This file contains some protocol structures for use with SPDY 3 and HTTP 2 | 5 // This file contains some protocol structures for use with SPDY 3 and HTTP 2 |
| 6 // The SPDY 3 spec can be found at: | 6 // The SPDY 3 spec can be found at: |
| 7 // http://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3 | 7 // http://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3 |
| 8 | 8 |
| 9 #ifndef NET_SPDY_CORE_SPDY_PROTOCOL_H_ | 9 #ifndef NET_SPDY_CORE_SPDY_PROTOCOL_H_ |
| 10 #define NET_SPDY_CORE_SPDY_PROTOCOL_H_ | 10 #define NET_SPDY_CORE_SPDY_PROTOCOL_H_ |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 ERROR_CODE_ENHANCE_YOUR_CALM = 0xb, | 176 ERROR_CODE_ENHANCE_YOUR_CALM = 0xb, |
| 177 ERROR_CODE_INADEQUATE_SECURITY = 0xc, | 177 ERROR_CODE_INADEQUATE_SECURITY = 0xc, |
| 178 ERROR_CODE_HTTP_1_1_REQUIRED = 0xd, | 178 ERROR_CODE_HTTP_1_1_REQUIRED = 0xd, |
| 179 ERROR_CODE_MAX = ERROR_CODE_HTTP_1_1_REQUIRED | 179 ERROR_CODE_MAX = ERROR_CODE_HTTP_1_1_REQUIRED |
| 180 }; | 180 }; |
| 181 | 181 |
| 182 // A SPDY priority is a number between 0 and 7 (inclusive). | 182 // A SPDY priority is a number between 0 and 7 (inclusive). |
| 183 typedef uint8_t SpdyPriority; | 183 typedef uint8_t SpdyPriority; |
| 184 | 184 |
| 185 // Lowest and Highest here refer to SPDY priorities as described in | 185 // Lowest and Highest here refer to SPDY priorities as described in |
| 186 | |
| 187 // https://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3-1#TOC-2.3.3-
Stream-priority | 186 // https://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3-1#TOC-2.3.3-
Stream-priority |
| 188 const SpdyPriority kV3HighestPriority = 0; | 187 const SpdyPriority kV3HighestPriority = 0; |
| 189 const SpdyPriority kV3LowestPriority = 7; | 188 const SpdyPriority kV3LowestPriority = 7; |
| 190 | 189 |
| 191 // Returns SPDY 3.x priority value clamped to the valid range of [0, 7]. | 190 // Returns SPDY 3.x priority value clamped to the valid range of [0, 7]. |
| 192 SPDY_EXPORT_PRIVATE SpdyPriority ClampSpdy3Priority(SpdyPriority priority); | 191 SPDY_EXPORT_PRIVATE SpdyPriority ClampSpdy3Priority(SpdyPriority priority); |
| 193 | 192 |
| 194 // HTTP/2 stream weights are integers in range [1, 256], as specified in RFC | 193 // HTTP/2 stream weights are integers in range [1, 256], as specified in RFC |
| 195 // 7540 section 5.3.2. Default stream weight is defined in section 5.3.5. | 194 // 7540 section 5.3.2. Default stream weight is defined in section 5.3.5. |
| 196 const int kHttp2MinStreamWeight = 1; | 195 const int kHttp2MinStreamWeight = 1; |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 533 class SPDY_EXPORT_PRIVATE SpdySettingsIR : public SpdyFrameIR { | 532 class SPDY_EXPORT_PRIVATE SpdySettingsIR : public SpdyFrameIR { |
| 534 public: | 533 public: |
| 535 SpdySettingsIR(); | 534 SpdySettingsIR(); |
| 536 ~SpdySettingsIR() override; | 535 ~SpdySettingsIR() override; |
| 537 | 536 |
| 538 // Overwrites as appropriate. | 537 // Overwrites as appropriate. |
| 539 const SettingsMap& values() const { return values_; } | 538 const SettingsMap& values() const { return values_; } |
| 540 void AddSetting(SpdySettingsIds id, int32_t value) { values_[id] = value; } | 539 void AddSetting(SpdySettingsIds id, int32_t value) { values_[id] = value; } |
| 541 | 540 |
| 542 bool is_ack() const { return is_ack_; } | 541 bool is_ack() const { return is_ack_; } |
| 543 void set_is_ack(bool is_ack) { | 542 void set_is_ack(bool is_ack) { is_ack_ = is_ack; } |
| 544 is_ack_ = is_ack; | |
| 545 } | |
| 546 | 543 |
| 547 void Visit(SpdyFrameVisitor* visitor) const override; | 544 void Visit(SpdyFrameVisitor* visitor) const override; |
| 548 | 545 |
| 549 SpdyFrameType frame_type() const override; | 546 SpdyFrameType frame_type() const override; |
| 550 | 547 |
| 551 private: | 548 private: |
| 552 SettingsMap values_; | 549 SettingsMap values_; |
| 553 bool is_ack_; | 550 bool is_ack_; |
| 554 | 551 |
| 555 DISALLOW_COPY_AND_ASSIGN(SpdySettingsIR); | 552 DISALLOW_COPY_AND_ASSIGN(SpdySettingsIR); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 SpdyErrorCode error_code, | 585 SpdyErrorCode error_code, |
| 589 const char* description); | 586 const char* description); |
| 590 | 587 |
| 591 // Moves description into description_store_, so caller doesn't need to | 588 // Moves description into description_store_, so caller doesn't need to |
| 592 // keep description live after constructing this SpdyGoAwayIR. | 589 // keep description live after constructing this SpdyGoAwayIR. |
| 593 SpdyGoAwayIR(SpdyStreamId last_good_stream_id, | 590 SpdyGoAwayIR(SpdyStreamId last_good_stream_id, |
| 594 SpdyErrorCode error_code, | 591 SpdyErrorCode error_code, |
| 595 SpdyString description); | 592 SpdyString description); |
| 596 | 593 |
| 597 ~SpdyGoAwayIR() override; | 594 ~SpdyGoAwayIR() override; |
| 595 |
| 598 SpdyStreamId last_good_stream_id() const { return last_good_stream_id_; } | 596 SpdyStreamId last_good_stream_id() const { return last_good_stream_id_; } |
| 599 void set_last_good_stream_id(SpdyStreamId last_good_stream_id) { | 597 void set_last_good_stream_id(SpdyStreamId last_good_stream_id) { |
| 600 DCHECK_EQ(0u, last_good_stream_id & ~kStreamIdMask); | 598 DCHECK_EQ(0u, last_good_stream_id & ~kStreamIdMask); |
| 601 last_good_stream_id_ = last_good_stream_id; | 599 last_good_stream_id_ = last_good_stream_id; |
| 602 } | 600 } |
| 603 SpdyErrorCode error_code() const { return error_code_; } | 601 SpdyErrorCode error_code() const { return error_code_; } |
| 604 void set_error_code(SpdyErrorCode error_code) { | 602 void set_error_code(SpdyErrorCode error_code) { |
| 605 // TODO(hkhalil): Check valid ranges of error_code? | 603 // TODO(hkhalil): Check valid ranges of error_code? |
| 606 error_code_ = error_code; | 604 error_code_ = error_code; |
| 607 } | 605 } |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 724 class SPDY_EXPORT_PRIVATE SpdyContinuationIR : public SpdyFrameIR { | 722 class SPDY_EXPORT_PRIVATE SpdyContinuationIR : public SpdyFrameIR { |
| 725 public: | 723 public: |
| 726 explicit SpdyContinuationIR(SpdyStreamId stream_id); | 724 explicit SpdyContinuationIR(SpdyStreamId stream_id); |
| 727 ~SpdyContinuationIR() override; | 725 ~SpdyContinuationIR() override; |
| 728 | 726 |
| 729 void Visit(SpdyFrameVisitor* visitor) const override; | 727 void Visit(SpdyFrameVisitor* visitor) const override; |
| 730 | 728 |
| 731 SpdyFrameType frame_type() const override; | 729 SpdyFrameType frame_type() const override; |
| 732 | 730 |
| 733 bool end_headers() const { return end_headers_; } | 731 bool end_headers() const { return end_headers_; } |
| 734 void set_end_headers(bool end_headers) {end_headers_ = end_headers;} | 732 void set_end_headers(bool end_headers) { end_headers_ = end_headers; } |
| 735 const SpdyString& encoding() const { return *encoding_; } | 733 const SpdyString& encoding() const { return *encoding_; } |
| 736 void take_encoding(std::unique_ptr<SpdyString> encoding) { | 734 void take_encoding(std::unique_ptr<SpdyString> encoding) { |
| 737 encoding_ = std::move(encoding); | 735 encoding_ = std::move(encoding); |
| 738 } | 736 } |
| 739 | 737 |
| 740 private: | 738 private: |
| 741 std::unique_ptr<SpdyString> encoding_; | 739 std::unique_ptr<SpdyString> encoding_; |
| 742 bool end_headers_; | 740 bool end_headers_; |
| 743 DISALLOW_COPY_AND_ASSIGN(SpdyContinuationIR); | 741 DISALLOW_COPY_AND_ASSIGN(SpdyContinuationIR); |
| 744 }; | 742 }; |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 893 SpdyFrameVisitor() {} | 891 SpdyFrameVisitor() {} |
| 894 virtual ~SpdyFrameVisitor() {} | 892 virtual ~SpdyFrameVisitor() {} |
| 895 | 893 |
| 896 private: | 894 private: |
| 897 DISALLOW_COPY_AND_ASSIGN(SpdyFrameVisitor); | 895 DISALLOW_COPY_AND_ASSIGN(SpdyFrameVisitor); |
| 898 }; | 896 }; |
| 899 | 897 |
| 900 } // namespace net | 898 } // namespace net |
| 901 | 899 |
| 902 #endif // NET_SPDY_CORE_SPDY_PROTOCOL_H_ | 900 #endif // NET_SPDY_CORE_SPDY_PROTOCOL_H_ |
| OLD | NEW |