Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(465)

Side by Side Diff: chrome/browser/chromeos/drive/drive_file_stream_reader.cc

Issue 16998003: Update CrOS to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/chromeos/drive/drive_file_stream_reader.h" 5 #include "chrome/browser/chromeos/drive/drive_file_stream_reader.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstring> 8 #include <cstring>
9 9
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 NetworkReaderProxy::~NetworkReaderProxy() { 136 NetworkReaderProxy::~NetworkReaderProxy() {
137 if (!job_canceller_.is_null()) { 137 if (!job_canceller_.is_null()) {
138 job_canceller_.Run(); 138 job_canceller_.Run();
139 } 139 }
140 } 140 }
141 141
142 int NetworkReaderProxy::Read(net::IOBuffer* buffer, int buffer_length, 142 int NetworkReaderProxy::Read(net::IOBuffer* buffer, int buffer_length,
143 const net::CompletionCallback& callback) { 143 const net::CompletionCallback& callback) {
144 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 144 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
145 // Check if there is no pending Read operation. 145 // Check if there is no pending Read operation.
146 DCHECK(!buffer_); 146 DCHECK(!buffer_.get());
147 DCHECK_EQ(buffer_length_, 0); 147 DCHECK_EQ(buffer_length_, 0);
148 DCHECK(callback_.is_null()); 148 DCHECK(callback_.is_null());
149 // Validate the arguments. 149 // Validate the arguments.
150 DCHECK(buffer); 150 DCHECK(buffer);
151 DCHECK_GT(buffer_length, 0); 151 DCHECK_GT(buffer_length, 0);
152 DCHECK(!callback.is_null()); 152 DCHECK(!callback.is_null());
153 153
154 if (error_code_ != net::OK) { 154 if (error_code_ != net::OK) {
155 // An error is already found. Return it immediately. 155 // An error is already found. Return it immediately.
156 return error_code_; 156 return error_code_;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 return; 190 return;
191 } 191 }
192 192
193 if (remaining_offset_ > 0) { 193 if (remaining_offset_ > 0) {
194 // Erase unnecessary leading bytes. 194 // Erase unnecessary leading bytes.
195 data->erase(0, static_cast<size_t>(remaining_offset_)); 195 data->erase(0, static_cast<size_t>(remaining_offset_));
196 remaining_offset_ = 0; 196 remaining_offset_ = 0;
197 } 197 }
198 198
199 pending_data_.push_back(data.release()); 199 pending_data_.push_back(data.release());
200 if (!buffer_) { 200 if (!buffer_.get()) {
201 // No pending Read operation. 201 // No pending Read operation.
202 return; 202 return;
203 } 203 }
204 204
205 int result = ReadInternal(&pending_data_, buffer_.get(), buffer_length_); 205 int result = ReadInternal(&pending_data_, buffer_.get(), buffer_length_);
206 remaining_content_length_ -= result; 206 remaining_content_length_ -= result;
207 DCHECK_GE(remaining_content_length_, 0); 207 DCHECK_GE(remaining_content_length_, 0);
208 208
209 buffer_ = NULL; 209 buffer_ = NULL;
210 buffer_length_ = 0; 210 buffer_length_ = 0;
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 new internal::NetworkReaderProxy( 373 new internal::NetworkReaderProxy(
374 byte_range.first_byte_position(), range_length, 374 byte_range.first_byte_position(), range_length,
375 base::Bind(&google_apis::RunTaskOnUIThread, 375 base::Bind(&google_apis::RunTaskOnUIThread,
376 ui_cancel_download_closure))); 376 ui_cancel_download_closure)));
377 callback.Run(net::OK, entry.Pass()); 377 callback.Run(net::OK, entry.Pass());
378 return; 378 return;
379 } 379 }
380 380
381 // Otherwise, open the stream for file. 381 // Otherwise, open the stream for file.
382 scoped_ptr<util::LocalFileReader> file_reader( 382 scoped_ptr<util::LocalFileReader> file_reader(
383 new util::LocalFileReader(file_task_runner_)); 383 new util::LocalFileReader(file_task_runner_.get()));
384 util::LocalFileReader* file_reader_ptr = file_reader.get(); 384 util::LocalFileReader* file_reader_ptr = file_reader.get();
385 file_reader_ptr->Open( 385 file_reader_ptr->Open(
386 local_cache_file_path, 386 local_cache_file_path,
387 byte_range.first_byte_position(), 387 byte_range.first_byte_position(),
388 base::Bind( 388 base::Bind(
389 &DriveFileStreamReader::InitializeAfterLocalFileOpen, 389 &DriveFileStreamReader::InitializeAfterLocalFileOpen,
390 weak_ptr_factory_.GetWeakPtr(), 390 weak_ptr_factory_.GetWeakPtr(),
391 range_length, 391 range_length,
392 callback, 392 callback,
393 base::Passed(&entry), 393 base::Passed(&entry),
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 // Note: due to the same reason, LocalReaderProxy::OnCompleted may 437 // Note: due to the same reason, LocalReaderProxy::OnCompleted may
438 // or may not be called. This is timing issue, and it is difficult to avoid 438 // or may not be called. This is timing issue, and it is difficult to avoid
439 // unfortunately. 439 // unfortunately.
440 if (error != FILE_ERROR_OK) { 440 if (error != FILE_ERROR_OK) {
441 callback.Run(FileErrorToNetError(error), scoped_ptr<ResourceEntry>()); 441 callback.Run(FileErrorToNetError(error), scoped_ptr<ResourceEntry>());
442 } 442 }
443 } 443 }
444 } 444 }
445 445
446 } // namespace drive 446 } // namespace drive
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698