| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/flip/flip_session.h" | 5 #include "net/flip/flip_session.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/rand_util.h" | 10 #include "base/rand_util.h" |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 connect_callback_(this, &FlipSession::OnSocketConnect)), | 89 connect_callback_(this, &FlipSession::OnSocketConnect)), |
| 90 ALLOW_THIS_IN_INITIALIZER_LIST( | 90 ALLOW_THIS_IN_INITIALIZER_LIST( |
| 91 read_callback_(this, &FlipSession::OnReadComplete)), | 91 read_callback_(this, &FlipSession::OnReadComplete)), |
| 92 ALLOW_THIS_IN_INITIALIZER_LIST( | 92 ALLOW_THIS_IN_INITIALIZER_LIST( |
| 93 write_callback_(this, &FlipSession::OnWriteComplete)), | 93 write_callback_(this, &FlipSession::OnWriteComplete)), |
| 94 domain_(host), | 94 domain_(host), |
| 95 session_(session), | 95 session_(session), |
| 96 connection_started_(false), | 96 connection_started_(false), |
| 97 delayed_write_pending_(false), | 97 delayed_write_pending_(false), |
| 98 write_pending_(false), | 98 write_pending_(false), |
| 99 read_buffer_(new net::MovableIOBuffer(kReadBufferSize)), | 99 read_buffer_(new IOBuffer(kReadBufferSize)), |
| 100 read_buffer_bytes_read_(0), | |
| 101 read_pending_(false), | 100 read_pending_(false), |
| 102 stream_hi_water_mark_(0) { | 101 stream_hi_water_mark_(0) { |
| 103 // Always start at 1 for the first stream id. | 102 // Always start at 1 for the first stream id. |
| 104 // TODO(mbelshe): consider randomization. | 103 // TODO(mbelshe): consider randomization. |
| 105 stream_hi_water_mark_ = 1; | 104 stream_hi_water_mark_ = 1; |
| 106 | 105 |
| 107 flip_framer_.set_visitor(this); | 106 flip_framer_.set_visitor(this); |
| 108 } | 107 } |
| 109 | 108 |
| 110 FlipSession::~FlipSession() { | 109 FlipSession::~FlipSession() { |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 // Write more data. We're already in a continuation, so we can | 357 // Write more data. We're already in a continuation, so we can |
| 359 // go ahead and write it immediately (without going back to the | 358 // go ahead and write it immediately (without going back to the |
| 360 // message loop). | 359 // message loop). |
| 361 WriteSocketLater(); | 360 WriteSocketLater(); |
| 362 } | 361 } |
| 363 | 362 |
| 364 void FlipSession::ReadSocket() { | 363 void FlipSession::ReadSocket() { |
| 365 if (read_pending_) | 364 if (read_pending_) |
| 366 return; | 365 return; |
| 367 | 366 |
| 368 size_t max_bytes = kReadBufferSize; | 367 int bytes_read = connection_.socket()->Read(read_buffer_.get(), |
| 369 read_buffer_->set_data(read_buffer_bytes_read_); | 368 kReadBufferSize, |
| 370 max_bytes -= read_buffer_bytes_read_; | |
| 371 int bytes_read = connection_.socket()->Read(read_buffer_.get(), max_bytes, | |
| 372 &read_callback_); | 369 &read_callback_); |
| 373 switch (bytes_read) { | 370 switch (bytes_read) { |
| 374 case 0: | 371 case 0: |
| 375 // Socket is closed! | 372 // Socket is closed! |
| 376 // TODO(mbelshe): Need to abort any active streams here. | 373 // TODO(mbelshe): Need to abort any active streams here. |
| 377 DCHECK(!active_streams_.size()); | 374 DCHECK(!active_streams_.size()); |
| 378 return; | 375 return; |
| 379 case net::ERR_IO_PENDING: | 376 case net::ERR_IO_PENDING: |
| 380 // Waiting for data. Nothing to do now. | 377 // Waiting for data. Nothing to do now. |
| 381 read_pending_ = true; | 378 read_pending_ = true; |
| (...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 return false; | 750 return false; |
| 754 } | 751 } |
| 755 | 752 |
| 756 void FlipStreamImpl::OnAbort() { | 753 void FlipStreamImpl::OnAbort() { |
| 757 if (delegate_) | 754 if (delegate_) |
| 758 delegate_->OnClose(net::ERR_ABORTED); | 755 delegate_->OnClose(net::ERR_ABORTED); |
| 759 } | 756 } |
| 760 | 757 |
| 761 } // namespace net | 758 } // namespace net |
| 762 | 759 |
| OLD | NEW |