1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/sync_file_system/drive_backend/drive_uploader_on_worker.h" 6 7 #include <string> 8 9 #include "base/bind.h" 10 #include "base/location.h" 11 #include "base/single_thread_task_runner.h" 12 #include "chrome/browser/sync_file_system/drive_backend/callback_helper.h" 13 #include "chrome/browser/sync_file_system/drive_backend/drive_uploader_wrapper.h" 14 #include "google_apis/drive/drive_api_parser.h" 15 16 namespace sync_file_system { 17 namespace drive_backend { 18 19 DriveUploaderOnWorker::DriveUploaderOnWorker( 20 const base::WeakPtr<DriveUploaderWrapper>& wrapper, 21 base::SingleThreadTaskRunner* ui_task_runner, 22 base::SequencedTaskRunner* worker_task_runner) 23 : wrapper_(wrapper), 24 ui_task_runner_(ui_task_runner), 25 worker_task_runner_(worker_task_runner) { 26 sequece_checker_.DetachFromSequence(); 27 } 28 29 DriveUploaderOnWorker::~DriveUploaderOnWorker() {} 30 31 google_apis::CancelCallback DriveUploaderOnWorker::UploadNewFile( 32 const std::string& parent_resource_id, 33 const base::FilePath& local_file_path, 34 const std::string& title, 35 const std::string& content_type, 36 const UploadNewFileOptions& options, 37 const drive::UploadCompletionCallback& callback, 38 const google_apis::ProgressCallback& progress_callback) { 39 DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 40 41 ui_task_runner_->PostTask( 42 FROM_HERE, 43 base::Bind(&DriveUploaderWrapper::UploadNewFile, 44 wrapper_, 45 parent_resource_id, 46 local_file_path, 47 title, 48 content_type, 49 options, 50 RelayCallbackToTaskRunner( 51 worker_task_runner_.get(), FROM_HERE, callback))); 52 53 return google_apis::CancelCallback(); 54 } 55 56 google_apis::CancelCallback DriveUploaderOnWorker::UploadExistingFile( 57 const std::string& resource_id, 58 const base::FilePath& local_file_path, 59 const std::string& content_type, 60 const UploadExistingFileOptions& options, 61 const drive::UploadCompletionCallback& callback, 62 const google_apis::ProgressCallback& progress_callback) { 63 DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 64 65 ui_task_runner_->PostTask( 66 FROM_HERE, 67 base::Bind(&DriveUploaderWrapper::UploadExistingFile, 68 wrapper_, 69 resource_id, 70 local_file_path, 71 content_type, 72 options, 73 RelayCallbackToTaskRunner( 74 worker_task_runner_.get(), FROM_HERE, callback))); 75 76 return google_apis::CancelCallback(); 77 } 78 79 google_apis::CancelCallback DriveUploaderOnWorker::ResumeUploadFile( 80 const GURL& upload_location, 81 const base::FilePath& local_file_path, 82 const std::string& content_type, 83 const drive::UploadCompletionCallback& callback, 84 const google_apis::ProgressCallback& progress_callback) { 85 NOTREACHED(); 86 return google_apis::CancelCallback(); 87 } 88 89 } // namespace drive_backend 90 } // namespace sync_file_system 91