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 "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 NOTREACHED(); | 511 NOTREACHED(); |
512 return; | 512 return; |
513 } | 513 } |
514 if (IsClosed()) | 514 if (IsClosed()) |
515 return; | 515 return; |
516 just_completed_frame_type_ = frame_type; | 516 just_completed_frame_type_ = frame_type; |
517 just_completed_frame_size_ = frame_size; | 517 just_completed_frame_size_ = frame_size; |
518 DoLoop(OK); | 518 DoLoop(OK); |
519 } | 519 } |
520 | 520 |
521 int SpdyStream::GetProtocolVersion() const { | 521 SpdyMajorVersion SpdyStream::GetProtocolVersion() const { |
522 return session_->GetProtocolVersion(); | 522 return session_->GetProtocolVersion(); |
523 } | 523 } |
524 | 524 |
525 void SpdyStream::LogStreamError(int status, const std::string& description) { | 525 void SpdyStream::LogStreamError(int status, const std::string& description) { |
526 net_log_.AddEvent(NetLog::TYPE_SPDY_STREAM_ERROR, | 526 net_log_.AddEvent(NetLog::TYPE_SPDY_STREAM_ERROR, |
527 base::Bind(&NetLogSpdyStreamErrorCallback, | 527 base::Bind(&NetLogSpdyStreamErrorCallback, |
528 stream_id_, status, &description)); | 528 stream_id_, status, &description)); |
529 } | 529 } |
530 | 530 |
531 void SpdyStream::OnClose(int status) { | 531 void SpdyStream::OnClose(int status) { |
532 CHECK(!in_do_loop_); | 532 CHECK(!in_do_loop_); |
533 io_state_ = STATE_CLOSED; | 533 io_state_ = STATE_CLOSED; |
534 response_status_ = status; | 534 response_status_ = status; |
535 Delegate* delegate = delegate_; | 535 Delegate* delegate = delegate_; |
536 delegate_ = NULL; | 536 delegate_ = NULL; |
537 if (delegate) | 537 if (delegate) |
538 delegate->OnClose(status); | 538 delegate->OnClose(status); |
539 // Unset |stream_id_| last so that the delegate can look it up. | 539 // Unset |stream_id_| last so that the delegate can look it up. |
540 stream_id_ = 0; | 540 stream_id_ = 0; |
541 } | 541 } |
542 | 542 |
543 void SpdyStream::Cancel() { | 543 void SpdyStream::Cancel() { |
544 CHECK(!in_do_loop_); | 544 CHECK(!in_do_loop_); |
545 // We may be called again from a delegate's OnClose(). | 545 // We may be called again from a delegate's OnClose(). |
546 if (io_state_ == STATE_CLOSED) | 546 if (io_state_ == STATE_CLOSED) |
547 return; | 547 return; |
548 | 548 |
549 if (stream_id_ != 0) { | 549 if (stream_id_ != 0) { |
550 session_->ResetStream(stream_id_, RST_STREAM_CANCEL, std::string()); | 550 session_->ResetStream(stream_id_, RST_STREAM_CANCEL, "Cancelling stream"); |
551 } else { | 551 } else { |
552 session_->CloseCreatedStream(GetWeakPtr(), RST_STREAM_CANCEL); | 552 session_->CloseCreatedStream(GetWeakPtr(), RST_STREAM_CANCEL); |
553 } | 553 } |
554 // |this| is invalid at this point. | 554 // |this| is invalid at this point. |
555 } | 555 } |
556 | 556 |
557 void SpdyStream::Close() { | 557 void SpdyStream::Close() { |
558 CHECK(!in_do_loop_); | 558 CHECK(!in_do_loop_); |
559 // We may be called again from a delegate's OnClose(). | 559 // We may be called again from a delegate's OnClose(). |
560 if (io_state_ == STATE_CLOSED) | 560 if (io_state_ == STATE_CLOSED) |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1026 } | 1026 } |
1027 } else if (weak_this) { | 1027 } else if (weak_this) { |
1028 response_headers_status_ = RESPONSE_HEADERS_ARE_COMPLETE; | 1028 response_headers_status_ = RESPONSE_HEADERS_ARE_COMPLETE; |
1029 } | 1029 } |
1030 } | 1030 } |
1031 | 1031 |
1032 return OK; | 1032 return OK; |
1033 } | 1033 } |
1034 | 1034 |
1035 } // namespace net | 1035 } // namespace net |
OLD | NEW |