| 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 | 7 |
| 8 #include <deque> | 8 #include <deque> |
| 9 #include <map> | 9 #include <map> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 // must indicate whether |connection| uses an SSL socket or not; it | 249 // must indicate whether |connection| uses an SSL socket or not; it |
| 250 // is usually true, but it can be false for testing or when SPDY is | 250 // is usually true, but it can be false for testing or when SPDY is |
| 251 // configured to work with non-secure sockets. | 251 // configured to work with non-secure sockets. |
| 252 // | 252 // |
| 253 // |pool| is the SpdySessionPool that owns us. Its lifetime must | 253 // |pool| is the SpdySessionPool that owns us. Its lifetime must |
| 254 // strictly be greater than |this|. | 254 // strictly be greater than |this|. |
| 255 // | 255 // |
| 256 // |certificate_error_code| must either be OK or less than | 256 // |certificate_error_code| must either be OK or less than |
| 257 // ERR_IO_PENDING. | 257 // ERR_IO_PENDING. |
| 258 // | 258 // |
| 259 // The session begins reading from |connection| on a subsequent event loop | 259 // Returns OK on success, or an error on failure. Never returns |
| 260 // iteration, so the SpdySession may close immediately afterwards if the first | 260 // ERR_IO_PENDING. If an error is returned, the session must be |
| 261 // read of |connection| fails. | 261 // destroyed immediately. |
| 262 void InitializeWithSocket(scoped_ptr<ClientSocketHandle> connection, | 262 Error InitializeWithSocket(scoped_ptr<ClientSocketHandle> connection, |
| 263 SpdySessionPool* pool, | 263 SpdySessionPool* pool, |
| 264 bool is_secure, | 264 bool is_secure, |
| 265 int certificate_error_code); | 265 int certificate_error_code); |
| 266 | 266 |
| 267 // Returns the protocol used by this session. Always between | 267 // Returns the protocol used by this session. Always between |
| 268 // kProtoSPDYMinimumVersion and kProtoSPDYMaximumVersion. | 268 // kProtoSPDYMinimumVersion and kProtoSPDYMaximumVersion. |
| 269 NextProto protocol() const { return protocol_; } | 269 NextProto protocol() const { return protocol_; } |
| 270 | 270 |
| 271 // Check to see if this SPDY session can support an additional domain. | 271 // Check to see if this SPDY session can support an additional domain. |
| 272 // If the session is un-authenticated, then this call always returns true. | 272 // If the session is un-authenticated, then this call always returns true. |
| 273 // For SSL-based sessions, verifies that the server certificate in use by | 273 // For SSL-based sessions, verifies that the server certificate in use by |
| 274 // this session provides authentication for the domain and no client | 274 // this session provides authentication for the domain and no client |
| 275 // certificate or channel ID was sent to the original server during the SSL | 275 // certificate or channel ID was sent to the original server during the SSL |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 // Mark this session as unavailable, meaning that it will not be used to | 360 // Mark this session as unavailable, meaning that it will not be used to |
| 361 // service new streams. Unlike when a GOAWAY frame is received, this function | 361 // service new streams. Unlike when a GOAWAY frame is received, this function |
| 362 // will not close any streams. | 362 // will not close any streams. |
| 363 void MakeUnavailable(); | 363 void MakeUnavailable(); |
| 364 | 364 |
| 365 // Retrieves information on the current state of the SPDY session as a | 365 // Retrieves information on the current state of the SPDY session as a |
| 366 // Value. Caller takes possession of the returned value. | 366 // Value. Caller takes possession of the returned value. |
| 367 base::Value* GetInfoAsValue() const; | 367 base::Value* GetInfoAsValue() const; |
| 368 | 368 |
| 369 // Indicates whether the session is being reused after having successfully | 369 // Indicates whether the session is being reused after having successfully |
| 370 // used to send/receive data in the past or if the underlying socket was idle | 370 // used to send/receive data in the past. |
| 371 // before being used for a SPDY session. | |
| 372 bool IsReused() const; | 371 bool IsReused() const; |
| 373 | 372 |
| 374 // Returns true if the underlying transport socket ever had any reads or | 373 // Returns true if the underlying transport socket ever had any reads or |
| 375 // writes. | 374 // writes. |
| 376 bool WasEverUsed() const { | 375 bool WasEverUsed() const { |
| 377 return connection_->socket()->WasEverUsed(); | 376 return connection_->socket()->WasEverUsed(); |
| 378 } | 377 } |
| 379 | 378 |
| 380 // Returns the load timing information from the perspective of the given | 379 // Returns the load timing information from the perspective of the given |
| 381 // stream. If it's not the first stream, the connection is considered reused | 380 // stream. If it's not the first stream, the connection is considered reused |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 611 // Calls DoReadLoop and then if |availability_state_| is | 610 // Calls DoReadLoop and then if |availability_state_| is |
| 612 // STATE_CLOSED, calls RemoveFromPool(). | 611 // STATE_CLOSED, calls RemoveFromPool(). |
| 613 // | 612 // |
| 614 // Use this function instead of DoReadLoop when posting a task to | 613 // Use this function instead of DoReadLoop when posting a task to |
| 615 // pump the read loop. | 614 // pump the read loop. |
| 616 void PumpReadLoop(ReadState expected_read_state, int result); | 615 void PumpReadLoop(ReadState expected_read_state, int result); |
| 617 | 616 |
| 618 // Advance the ReadState state machine. |expected_read_state| is the | 617 // Advance the ReadState state machine. |expected_read_state| is the |
| 619 // expected starting read state. | 618 // expected starting read state. |
| 620 // | 619 // |
| 621 // This function must always be called via PumpReadLoop(). | 620 // This function must always be called via PumpReadLoop() except for |
| 621 // from InitializeWithSocket(). |
| 622 int DoReadLoop(ReadState expected_read_state, int result); | 622 int DoReadLoop(ReadState expected_read_state, int result); |
| 623 // The implementations of the states of the ReadState state machine. | 623 // The implementations of the states of the ReadState state machine. |
| 624 int DoRead(); | 624 int DoRead(); |
| 625 int DoReadComplete(int result); | 625 int DoReadComplete(int result); |
| 626 | 626 |
| 627 // Calls DoWriteLoop and then if |availability_state_| is | 627 // Calls DoWriteLoop and then if |availability_state_| is |
| 628 // STATE_CLOSED, calls RemoveFromPool(). | 628 // STATE_CLOSED, calls RemoveFromPool(). |
| 629 // | 629 // |
| 630 // Use this function instead of DoWriteLoop when posting a task to | 630 // Use this function instead of DoWriteLoop when posting a task to |
| 631 // pump the write loop. | 631 // pump the write loop. |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1120 // This SPDY proxy is allowed to push resources from origins that are | 1120 // This SPDY proxy is allowed to push resources from origins that are |
| 1121 // different from those of their associated streams. | 1121 // different from those of their associated streams. |
| 1122 HostPortPair trusted_spdy_proxy_; | 1122 HostPortPair trusted_spdy_proxy_; |
| 1123 | 1123 |
| 1124 TimeFunc time_func_; | 1124 TimeFunc time_func_; |
| 1125 }; | 1125 }; |
| 1126 | 1126 |
| 1127 } // namespace net | 1127 } // namespace net |
| 1128 | 1128 |
| 1129 #endif // NET_SPDY_SPDY_SESSION_H_ | 1129 #endif // NET_SPDY_SPDY_SESSION_H_ |
| OLD | NEW |