Chromium Code Reviews| 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_SPDY_SPDY_SESSION_H_ | 5 #ifndef NET_SPDY_SPDY_SESSION_H_ |
| 6 #define NET_SPDY_SPDY_SESSION_H_ | 6 #define NET_SPDY_SPDY_SESSION_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <deque> | 9 #include <deque> |
| 10 #include <list> | 10 #include <list> |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 41 const int kMaxSpdyFrameChunkSize = (2 * kMss) - spdy::SpdyFrame::kHeaderSize; | 41 const int kMaxSpdyFrameChunkSize = (2 * kMss) - spdy::SpdyFrame::kHeaderSize; |
| 42 | 42 |
| 43 class BoundNetLog; | 43 class BoundNetLog; |
| 44 class SpdySettingsStorage; | 44 class SpdySettingsStorage; |
| 45 class SpdyStream; | 45 class SpdyStream; |
| 46 class SSLInfo; | 46 class SSLInfo; |
| 47 | 47 |
| 48 class NET_EXPORT SpdySession : public base::RefCounted<SpdySession>, | 48 class NET_EXPORT SpdySession : public base::RefCounted<SpdySession>, |
| 49 public spdy::BufferedSpdyFramerVisitorInterface { | 49 public spdy::BufferedSpdyFramerVisitorInterface { |
| 50 public: | 50 public: |
| 51 // FlowControl provides the ability for unittests to change |flow_control_|. | |
|
wtc
2012/01/26 00:13:26
It would be nice to document the three enumeration
ramant (doing other things)
2012/01/26 18:58:48
Done.
| |
| 52 enum FlowControl { | |
| 53 kFlowControlBasedOnNPN = 0, | |
| 54 kDisableFlowControl = 1, | |
| 55 kEnableFlowControl = 2, | |
| 56 }; | |
| 57 | |
| 51 // Create a new SpdySession. | 58 // Create a new SpdySession. |
| 52 // |host_port_proxy_pair| is the host/port that this session connects to, and | 59 // |host_port_proxy_pair| is the host/port that this session connects to, and |
| 53 // the proxy configuration settings that it's using. | 60 // the proxy configuration settings that it's using. |
| 54 // |spdy_session_pool| is the SpdySessionPool that owns us. Its lifetime must | 61 // |spdy_session_pool| is the SpdySessionPool that owns us. Its lifetime must |
| 55 // strictly be greater than |this|. | 62 // strictly be greater than |this|. |
| 56 // |session| is the HttpNetworkSession. |net_log| is the NetLog that we log | 63 // |session| is the HttpNetworkSession. |net_log| is the NetLog that we log |
| 57 // network events to. | 64 // network events to. |
| 58 SpdySession(const HostPortProxyPair& host_port_proxy_pair, | 65 SpdySession(const HostPortProxyPair& host_port_proxy_pair, |
| 59 SpdySessionPool* spdy_session_pool, | 66 SpdySessionPool* spdy_session_pool, |
| 60 HttpServerProperties* http_server_properties, | 67 HttpServerProperties* http_server_properties, |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 146 // Fills SSL Certificate Request info |cert_request_info| and returns | 153 // Fills SSL Certificate Request info |cert_request_info| and returns |
| 147 // true when SSL is in use. | 154 // true when SSL is in use. |
| 148 bool GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info); | 155 bool GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info); |
| 149 | 156 |
| 150 // Enable or disable SSL. | 157 // Enable or disable SSL. |
| 151 static void SetSSLMode(bool enable) { use_ssl_ = enable; } | 158 static void SetSSLMode(bool enable) { use_ssl_ = enable; } |
| 152 static bool SSLMode() { return use_ssl_; } | 159 static bool SSLMode() { return use_ssl_; } |
| 153 | 160 |
| 154 // Enable or disable flow control used by unit tests. This only applies for | 161 // Enable or disable flow control used by unit tests. This only applies for |
| 155 // new SpdySessions. | 162 // new SpdySessions. |
| 156 static void set_use_flow_control(bool enable) { use_flow_control_ = enable; } | 163 static void set_use_flow_control(FlowControl flow_control) { |
| 164 use_flow_control_ = flow_control; | |
| 165 } | |
| 157 | 166 |
| 158 // Sets the max concurrent streams per session, as a ceiling on any server | 167 // Sets the max concurrent streams per session, as a ceiling on any server |
| 159 // specific SETTINGS value. | 168 // specific SETTINGS value. |
| 160 static void set_max_concurrent_streams(size_t value) { | 169 static void set_max_concurrent_streams(size_t value) { |
| 161 max_concurrent_stream_limit_ = value; | 170 max_concurrent_stream_limit_ = value; |
| 162 } | 171 } |
| 163 static size_t max_concurrent_streams() { | 172 static size_t max_concurrent_streams() { |
| 164 return max_concurrent_stream_limit_; | 173 return max_concurrent_stream_limit_; |
| 165 } | 174 } |
| 166 | 175 |
| (...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 572 // announcement to be sent on startup; newly created streams will use | 581 // announcement to be sent on startup; newly created streams will use |
| 573 // this value for the initial receive window size. | 582 // this value for the initial receive window size. |
| 574 int initial_recv_window_size_; | 583 int initial_recv_window_size_; |
| 575 | 584 |
| 576 BoundNetLog net_log_; | 585 BoundNetLog net_log_; |
| 577 | 586 |
| 578 // Outside of tests, this should always be true. | 587 // Outside of tests, this should always be true. |
| 579 bool verify_domain_authentication_; | 588 bool verify_domain_authentication_; |
| 580 | 589 |
| 581 static bool use_ssl_; | 590 static bool use_ssl_; |
| 582 static bool use_flow_control_; | 591 static FlowControl use_flow_control_; |
| 583 static size_t init_max_concurrent_streams_; | 592 static size_t init_max_concurrent_streams_; |
| 584 static size_t max_concurrent_stream_limit_; | 593 static size_t max_concurrent_stream_limit_; |
| 585 | 594 |
| 586 // This enables or disables connection health checking system. | 595 // This enables or disables connection health checking system. |
| 587 static bool enable_ping_based_connection_checking_; | 596 static bool enable_ping_based_connection_checking_; |
| 588 | 597 |
| 589 // |connection_at_risk_of_loss_seconds_| is an optimization to avoid sending | 598 // |connection_at_risk_of_loss_seconds_| is an optimization to avoid sending |
| 590 // wasteful preface pings (when we just got some data). | 599 // wasteful preface pings (when we just got some data). |
| 591 // | 600 // |
| 592 // If it is zero (the most conservative figure), then we always send the | 601 // If it is zero (the most conservative figure), then we always send the |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 634 const spdy::SpdyControlFlags flags_; | 643 const spdy::SpdyControlFlags flags_; |
| 635 const spdy::SpdyStreamId id_; | 644 const spdy::SpdyStreamId id_; |
| 636 const spdy::SpdyStreamId associated_stream_; | 645 const spdy::SpdyStreamId associated_stream_; |
| 637 | 646 |
| 638 DISALLOW_COPY_AND_ASSIGN(NetLogSpdySynParameter); | 647 DISALLOW_COPY_AND_ASSIGN(NetLogSpdySynParameter); |
| 639 }; | 648 }; |
| 640 | 649 |
| 641 } // namespace net | 650 } // namespace net |
| 642 | 651 |
| 643 #endif // NET_SPDY_SPDY_SESSION_H_ | 652 #endif // NET_SPDY_SPDY_SESSION_H_ |
| OLD | NEW |