blob: b8b1ddc3f7c7b34aa458e515dbec01fc84b665b2 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/sync_file_system/drive_backend/drive_uploader_on_worker.h"
#include <string>
#include "base/bind.h"
#include "base/location.h"
#include "base/single_thread_task_runner.h"
#include "chrome/browser/sync_file_system/drive_backend/callback_helper.h"
#include "chrome/browser/sync_file_system/drive_backend/drive_uploader_wrapper.h"
#include "google_apis/drive/drive_api_parser.h"
namespace sync_file_system {
namespace drive_backend {
DriveUploaderOnWorker::DriveUploaderOnWorker(
const base::WeakPtr<DriveUploaderWrapper>& wrapper,
base::SingleThreadTaskRunner* ui_task_runner,
base::SequencedTaskRunner* worker_task_runner)
: wrapper_(wrapper),
ui_task_runner_(ui_task_runner),
worker_task_runner_(worker_task_runner) {
sequece_checker_.DetachFromSequence();
}
DriveUploaderOnWorker::~DriveUploaderOnWorker() {}
google_apis::CancelCallback DriveUploaderOnWorker::UploadNewFile(
const std::string& parent_resource_id,
const base::FilePath& local_file_path,
const std::string& title,
const std::string& content_type,
const UploadNewFileOptions& options,
const drive::UploadCompletionCallback& callback,
const google_apis::ProgressCallback& progress_callback) {
DCHECK(sequece_checker_.CalledOnValidSequencedThread());
ui_task_runner_->PostTask(
FROM_HERE,
base::Bind(&DriveUploaderWrapper::UploadNewFile,
wrapper_,
parent_resource_id,
local_file_path,
title,
content_type,
options,
RelayCallbackToTaskRunner(
worker_task_runner_,
FROM_HERE,
callback)));
return google_apis::CancelCallback();
}
google_apis::CancelCallback DriveUploaderOnWorker::UploadExistingFile(
const std::string& resource_id,
const base::FilePath& local_file_path,
const std::string& content_type,
const UploadExistingFileOptions& options,
const drive::UploadCompletionCallback& callback,
const google_apis::ProgressCallback& progress_callback) {
DCHECK(sequece_checker_.CalledOnValidSequencedThread());
ui_task_runner_->PostTask(
FROM_HERE,
base::Bind(&DriveUploaderWrapper::UploadExistingFile,
wrapper_,
resource_id,
local_file_path,
content_type,
options,
RelayCallbackToTaskRunner(
worker_task_runner_,
FROM_HERE,
callback)));
return google_apis::CancelCallback();
}
google_apis::CancelCallback DriveUploaderOnWorker::ResumeUploadFile(
const GURL& upload_location,
const base::FilePath& local_file_path,
const std::string& content_type,
const drive::UploadCompletionCallback& callback,
const google_apis::ProgressCallback& progress_callback) {
NOTREACHED();
return google_apis::CancelCallback();
}
} // namespace drive_backend
} // namespace sync_file_system