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 16namespace sync_file_system { 17namespace drive_backend { 18 19DriveUploaderOnWorker::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 29DriveUploaderOnWorker::~DriveUploaderOnWorker() {} 30 31google_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 56google_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 79google_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