| 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 #include "net/spdy/spdy_stream.h" | 5 #include "net/spdy/spdy_stream.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 | 201 |
| 202 std::unique_ptr<SpdySerializedFrame> SpdyStream::ProduceSynStreamFrame() { | 202 std::unique_ptr<SpdySerializedFrame> SpdyStream::ProduceSynStreamFrame() { |
| 203 CHECK_EQ(io_state_, STATE_IDLE); | 203 CHECK_EQ(io_state_, STATE_IDLE); |
| 204 CHECK(request_headers_); | 204 CHECK(request_headers_); |
| 205 CHECK_GT(stream_id_, 0u); | 205 CHECK_GT(stream_id_, 0u); |
| 206 | 206 |
| 207 SpdyControlFlags flags = | 207 SpdyControlFlags flags = |
| 208 (pending_send_status_ == NO_MORE_DATA_TO_SEND) ? | 208 (pending_send_status_ == NO_MORE_DATA_TO_SEND) ? |
| 209 CONTROL_FLAG_FIN : CONTROL_FLAG_NONE; | 209 CONTROL_FLAG_FIN : CONTROL_FLAG_NONE; |
| 210 std::unique_ptr<SpdySerializedFrame> frame(session_->CreateSynStream( | 210 std::unique_ptr<SpdySerializedFrame> frame(session_->CreateSynStream( |
| 211 stream_id_, priority_, flags, *request_headers_)); | 211 stream_id_, priority_, flags, request_headers_->Clone())); |
| 212 send_time_ = base::TimeTicks::Now(); | 212 send_time_ = base::TimeTicks::Now(); |
| 213 return frame; | 213 return frame; |
| 214 } | 214 } |
| 215 | 215 |
| 216 void SpdyStream::DetachDelegate() { | 216 void SpdyStream::DetachDelegate() { |
| 217 DCHECK(!IsClosed()); | 217 DCHECK(!IsClosed()); |
| 218 delegate_ = NULL; | 218 delegate_ = NULL; |
| 219 Cancel(); | 219 Cancel(); |
| 220 } | 220 } |
| 221 | 221 |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 return MergeWithResponseHeaders(additional_response_headers); | 463 return MergeWithResponseHeaders(additional_response_headers); |
| 464 } | 464 } |
| 465 | 465 |
| 466 void SpdyStream::OnPushPromiseHeadersReceived(const SpdyHeaderBlock& headers) { | 466 void SpdyStream::OnPushPromiseHeadersReceived(const SpdyHeaderBlock& headers) { |
| 467 CHECK(!request_headers_.get()); | 467 CHECK(!request_headers_.get()); |
| 468 CHECK_EQ(io_state_, STATE_IDLE); | 468 CHECK_EQ(io_state_, STATE_IDLE); |
| 469 CHECK_EQ(type_, SPDY_PUSH_STREAM); | 469 CHECK_EQ(type_, SPDY_PUSH_STREAM); |
| 470 DCHECK(!delegate_); | 470 DCHECK(!delegate_); |
| 471 | 471 |
| 472 io_state_ = STATE_RESERVED_REMOTE; | 472 io_state_ = STATE_RESERVED_REMOTE; |
| 473 request_headers_.reset(new SpdyHeaderBlock(headers)); | 473 request_headers_.reset(new SpdyHeaderBlock(headers.Clone())); |
| 474 } | 474 } |
| 475 | 475 |
| 476 void SpdyStream::OnDataReceived(std::unique_ptr<SpdyBuffer> buffer) { | 476 void SpdyStream::OnDataReceived(std::unique_ptr<SpdyBuffer> buffer) { |
| 477 DCHECK(session_->IsStreamActive(stream_id_)); | 477 DCHECK(session_->IsStreamActive(stream_id_)); |
| 478 | 478 |
| 479 // Track our bandwidth. | 479 // Track our bandwidth. |
| 480 recv_bytes_ += buffer ? buffer->GetRemainingSize() : 0; | 480 recv_bytes_ += buffer ? buffer->GetRemainingSize() : 0; |
| 481 recv_last_byte_time_ = base::TimeTicks::Now(); | 481 recv_last_byte_time_ = base::TimeTicks::Now(); |
| 482 | 482 |
| 483 // If we're still buffering data for a push stream, we will do the | 483 // If we're still buffering data for a push stream, we will do the |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 945 description = base::StringPrintf("Unknown state 0x%08X (%u)", state, | 945 description = base::StringPrintf("Unknown state 0x%08X (%u)", state, |
| 946 state); | 946 state); |
| 947 break; | 947 break; |
| 948 } | 948 } |
| 949 return description; | 949 return description; |
| 950 } | 950 } |
| 951 | 951 |
| 952 #undef STATE_CASE | 952 #undef STATE_CASE |
| 953 | 953 |
| 954 } // namespace net | 954 } // namespace net |
| OLD | NEW |