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_STREAM_H_ | 5 #ifndef NET_SPDY_SPDY_STREAM_H_ |
6 #define NET_SPDY_SPDY_STREAM_H_ | 6 #define NET_SPDY_SPDY_STREAM_H_ |
7 | 7 |
8 #include <list> | 8 #include <deque> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
13 #include "base/memory/ref_counted.h" | 13 #include "base/memory/ref_counted.h" |
14 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
15 #include "base/memory/weak_ptr.h" | 15 #include "base/memory/weak_ptr.h" |
16 #include "googleurl/src/gurl.h" | 16 #include "googleurl/src/gurl.h" |
17 #include "net/base/bandwidth_metrics.h" | 17 #include "net/base/bandwidth_metrics.h" |
18 #include "net/base/io_buffer.h" | 18 #include "net/base/io_buffer.h" |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 // Returns true if the URL for this stream is known. | 292 // Returns true if the URL for this stream is known. |
293 bool HasUrl() const; | 293 bool HasUrl() const; |
294 | 294 |
295 // Get the URL associated with this stream. Only valid when has_url() is | 295 // Get the URL associated with this stream. Only valid when has_url() is |
296 // true. | 296 // true. |
297 GURL GetUrl() const; | 297 GURL GetUrl() const; |
298 | 298 |
299 int GetProtocolVersion() const; | 299 int GetProtocolVersion() const; |
300 | 300 |
301 private: | 301 private: |
302 class SpdyStreamIOBufferProducer; | 302 class SpdyStreamFrameProducer; |
303 | 303 |
304 enum State { | 304 enum State { |
305 STATE_NONE, | 305 STATE_NONE, |
306 STATE_GET_DOMAIN_BOUND_CERT, | 306 STATE_GET_DOMAIN_BOUND_CERT, |
307 STATE_GET_DOMAIN_BOUND_CERT_COMPLETE, | 307 STATE_GET_DOMAIN_BOUND_CERT_COMPLETE, |
308 STATE_SEND_DOMAIN_BOUND_CERT, | 308 STATE_SEND_DOMAIN_BOUND_CERT, |
309 STATE_SEND_DOMAIN_BOUND_CERT_COMPLETE, | 309 STATE_SEND_DOMAIN_BOUND_CERT_COMPLETE, |
310 STATE_SEND_HEADERS, | 310 STATE_SEND_HEADERS, |
311 STATE_SEND_HEADERS_COMPLETE, | 311 STATE_SEND_HEADERS_COMPLETE, |
312 STATE_SEND_BODY, | 312 STATE_SEND_BODY, |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 // The time at which the request was made that resulted in this response. | 394 // The time at which the request was made that resulted in this response. |
395 // For cached responses, this time could be "far" in the past. | 395 // For cached responses, this time could be "far" in the past. |
396 base::Time request_time_; | 396 base::Time request_time_; |
397 | 397 |
398 scoped_ptr<SpdyHeaderBlock> response_; | 398 scoped_ptr<SpdyHeaderBlock> response_; |
399 base::Time response_time_; | 399 base::Time response_time_; |
400 | 400 |
401 // An in order list of pending frame data that are going to be sent. HEADERS | 401 // An in order list of pending frame data that are going to be sent. HEADERS |
402 // frames are queued as SpdyHeaderBlock structures because these must be | 402 // frames are queued as SpdyHeaderBlock structures because these must be |
403 // compressed just before sending. Data frames are queued as SpdyDataFrame. | 403 // compressed just before sending. Data frames are queued as SpdyDataFrame. |
404 std::list<PendingFrame> pending_frames_; | 404 std::deque<PendingFrame> pending_frames_; |
405 | 405 |
406 // An in order list of sending frame types. It will be used to know which type | 406 // An in order list of sending frame types. It will be used to know which type |
407 // of frame is sent and which callback should be invoked in OnOpen(). | 407 // of frame is sent and which callback should be invoked in OnOpen(). |
408 std::list<FrameType> waiting_completions_; | 408 std::deque<FrameType> waiting_completions_; |
409 | 409 |
410 State io_state_; | 410 State io_state_; |
411 | 411 |
412 // Since we buffer the response, we also buffer the response status. | 412 // Since we buffer the response, we also buffer the response status. |
413 // Not valid until the stream is closed. | 413 // Not valid until the stream is closed. |
414 int response_status_; | 414 int response_status_; |
415 | 415 |
416 bool cancelled_; | 416 bool cancelled_; |
417 bool has_upload_data_; | 417 bool has_upload_data_; |
418 | 418 |
(...skipping 11 matching lines...) Expand all Loading... |
430 std::string domain_bound_private_key_; | 430 std::string domain_bound_private_key_; |
431 std::string domain_bound_cert_; | 431 std::string domain_bound_cert_; |
432 ServerBoundCertService::RequestHandle domain_bound_cert_request_handle_; | 432 ServerBoundCertService::RequestHandle domain_bound_cert_request_handle_; |
433 | 433 |
434 DISALLOW_COPY_AND_ASSIGN(SpdyStream); | 434 DISALLOW_COPY_AND_ASSIGN(SpdyStream); |
435 }; | 435 }; |
436 | 436 |
437 } // namespace net | 437 } // namespace net |
438 | 438 |
439 #endif // NET_SPDY_SPDY_STREAM_H_ | 439 #endif // NET_SPDY_SPDY_STREAM_H_ |
OLD | NEW |