Home | History | Annotate | Download | only in drive_backend
      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