| Index: chrome/browser/google_apis/drive_api_requests.cc
|
| diff --git a/chrome/browser/google_apis/drive_api_requests.cc b/chrome/browser/google_apis/drive_api_requests.cc
|
| deleted file mode 100644
|
| index 8747adb12e4e61a4b84e0dd931751993ae8b40ef..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/google_apis/drive_api_requests.cc
|
| +++ /dev/null
|
| @@ -1,715 +0,0 @@
|
| -// Copyright (c) 2012 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/google_apis/drive_api_requests.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/callback.h"
|
| -#include "base/json/json_writer.h"
|
| -#include "base/location.h"
|
| -#include "base/sequenced_task_runner.h"
|
| -#include "base/task_runner_util.h"
|
| -#include "base/values.h"
|
| -#include "chrome/browser/google_apis/drive_api_parser.h"
|
| -#include "chrome/browser/google_apis/request_sender.h"
|
| -#include "chrome/browser/google_apis/request_util.h"
|
| -#include "chrome/browser/google_apis/time_util.h"
|
| -#include "net/base/url_util.h"
|
| -
|
| -namespace google_apis {
|
| -namespace {
|
| -
|
| -const char kContentTypeApplicationJson[] = "application/json";
|
| -const char kParentLinkKind[] = "drive#fileLink";
|
| -
|
| -// Parses the JSON value to a resource typed |T| and runs |callback| on the UI
|
| -// thread once parsing is done.
|
| -template<typename T>
|
| -void ParseJsonAndRun(
|
| - const base::Callback<void(GDataErrorCode, scoped_ptr<T>)>& callback,
|
| - GDataErrorCode error,
|
| - scoped_ptr<base::Value> value) {
|
| - DCHECK(!callback.is_null());
|
| -
|
| - scoped_ptr<T> resource;
|
| - if (value) {
|
| - resource = T::CreateFrom(*value);
|
| - if (!resource) {
|
| - // Failed to parse the JSON value, although the JSON value is available,
|
| - // so let the callback know the parsing error.
|
| - error = GDATA_PARSE_ERROR;
|
| - }
|
| - }
|
| -
|
| - callback.Run(error, resource.Pass());
|
| -}
|
| -
|
| -// Thin adapter of T::CreateFrom.
|
| -template<typename T>
|
| -scoped_ptr<T> ParseJsonOnBlockingPool(scoped_ptr<base::Value> value) {
|
| - return T::CreateFrom(*value);
|
| -}
|
| -
|
| -// Runs |callback| with given |error| and |value|. If |value| is null,
|
| -// overwrites |error| to GDATA_PARSE_ERROR.
|
| -template<typename T>
|
| -void ParseJsonOnBlockingPoolAndRunAfterBlockingPoolTask(
|
| - const base::Callback<void(GDataErrorCode, scoped_ptr<T>)>& callback,
|
| - GDataErrorCode error, scoped_ptr<T> value) {
|
| - if (!value)
|
| - error = GDATA_PARSE_ERROR;
|
| - callback.Run(error, value.Pass());
|
| -}
|
| -
|
| -// Parses the JSON value to a resource typed |T| and runs |callback| on
|
| -// blocking pool, and then run on the current thread.
|
| -// TODO(hidehiko): Move this and ParseJsonAndRun defined above into base with
|
| -// merging the tasks running on blocking pool into one.
|
| -template<typename T>
|
| -void ParseJsonOnBlockingPoolAndRun(
|
| - scoped_refptr<base::TaskRunner> blocking_task_runner,
|
| - const base::Callback<void(GDataErrorCode, scoped_ptr<T>)>& callback,
|
| - GDataErrorCode error,
|
| - scoped_ptr<base::Value> value) {
|
| - DCHECK(!callback.is_null());
|
| -
|
| - if (!value) {
|
| - callback.Run(error, scoped_ptr<T>());
|
| - return;
|
| - }
|
| -
|
| - base::PostTaskAndReplyWithResult(
|
| - blocking_task_runner,
|
| - FROM_HERE,
|
| - base::Bind(&ParseJsonOnBlockingPool<T>, base::Passed(&value)),
|
| - base::Bind(&ParseJsonOnBlockingPoolAndRunAfterBlockingPoolTask<T>,
|
| - callback, error));
|
| -}
|
| -
|
| -// Parses the JSON value to FileResource instance and runs |callback| on the
|
| -// UI thread once parsing is done.
|
| -// This is customized version of ParseJsonAndRun defined above to adapt the
|
| -// remaining response type.
|
| -void ParseFileResourceWithUploadRangeAndRun(
|
| - const drive::UploadRangeCallback& callback,
|
| - const UploadRangeResponse& response,
|
| - scoped_ptr<base::Value> value) {
|
| - DCHECK(!callback.is_null());
|
| -
|
| - scoped_ptr<FileResource> file_resource;
|
| - if (value) {
|
| - file_resource = FileResource::CreateFrom(*value);
|
| - if (!file_resource) {
|
| - callback.Run(
|
| - UploadRangeResponse(GDATA_PARSE_ERROR,
|
| - response.start_position_received,
|
| - response.end_position_received),
|
| - scoped_ptr<FileResource>());
|
| - return;
|
| - }
|
| - }
|
| -
|
| - callback.Run(response, file_resource.Pass());
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace drive {
|
| -
|
| -//============================ DriveApiDataRequest ===========================
|
| -
|
| -DriveApiDataRequest::DriveApiDataRequest(RequestSender* sender,
|
| - const GetDataCallback& callback)
|
| - : GetDataRequest(sender, callback) {
|
| -}
|
| -
|
| -DriveApiDataRequest::~DriveApiDataRequest() {
|
| -}
|
| -
|
| -GURL DriveApiDataRequest::GetURL() const {
|
| - GURL url = GetURLInternal();
|
| - if (!fields_.empty())
|
| - url = net::AppendOrReplaceQueryParameter(url, "fields", fields_);
|
| - return url;
|
| -}
|
| -
|
| -//=============================== FilesGetRequest =============================
|
| -
|
| -FilesGetRequest::FilesGetRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const FileResourceCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonAndRun<FileResource>, callback)),
|
| - url_generator_(url_generator) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -FilesGetRequest::~FilesGetRequest() {}
|
| -
|
| -GURL FilesGetRequest::GetURLInternal() const {
|
| - return url_generator_.GetFilesGetUrl(file_id_);
|
| -}
|
| -
|
| -//============================ FilesInsertRequest ============================
|
| -
|
| -FilesInsertRequest::FilesInsertRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const FileResourceCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonAndRun<FileResource>, callback)),
|
| - url_generator_(url_generator) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -FilesInsertRequest::~FilesInsertRequest() {}
|
| -
|
| -net::URLFetcher::RequestType FilesInsertRequest::GetRequestType() const {
|
| - return net::URLFetcher::POST;
|
| -}
|
| -
|
| -bool FilesInsertRequest::GetContentData(std::string* upload_content_type,
|
| - std::string* upload_content) {
|
| - *upload_content_type = kContentTypeApplicationJson;
|
| -
|
| - base::DictionaryValue root;
|
| -
|
| - if (!mime_type_.empty())
|
| - root.SetString("mimeType", mime_type_);
|
| -
|
| - if (!parents_.empty()) {
|
| - base::ListValue* parents_value = new base::ListValue;
|
| - for (size_t i = 0; i < parents_.size(); ++i) {
|
| - base::DictionaryValue* parent = new base::DictionaryValue;
|
| - parent->SetString("id", parents_[i]);
|
| - parents_value->Append(parent);
|
| - }
|
| - root.Set("parents", parents_value);
|
| - }
|
| -
|
| - if (!title_.empty())
|
| - root.SetString("title", title_);
|
| -
|
| - base::JSONWriter::Write(&root, upload_content);
|
| - DVLOG(1) << "FilesInsert data: " << *upload_content_type << ", ["
|
| - << *upload_content << "]";
|
| - return true;
|
| -}
|
| -
|
| -GURL FilesInsertRequest::GetURLInternal() const {
|
| - return url_generator_.GetFilesInsertUrl();
|
| -}
|
| -
|
| -//============================== FilesPatchRequest ============================
|
| -
|
| -FilesPatchRequest::FilesPatchRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const FileResourceCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonAndRun<FileResource>, callback)),
|
| - url_generator_(url_generator),
|
| - set_modified_date_(false),
|
| - update_viewed_date_(true) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -FilesPatchRequest::~FilesPatchRequest() {}
|
| -
|
| -net::URLFetcher::RequestType FilesPatchRequest::GetRequestType() const {
|
| - return net::URLFetcher::PATCH;
|
| -}
|
| -
|
| -std::vector<std::string> FilesPatchRequest::GetExtraRequestHeaders() const {
|
| - std::vector<std::string> headers;
|
| - headers.push_back(util::kIfMatchAllHeader);
|
| - return headers;
|
| -}
|
| -
|
| -GURL FilesPatchRequest::GetURLInternal() const {
|
| - return url_generator_.GetFilesPatchUrl(
|
| - file_id_, set_modified_date_, update_viewed_date_);
|
| -}
|
| -
|
| -bool FilesPatchRequest::GetContentData(std::string* upload_content_type,
|
| - std::string* upload_content) {
|
| - if (title_.empty() &&
|
| - modified_date_.is_null() &&
|
| - last_viewed_by_me_date_.is_null() &&
|
| - parents_.empty())
|
| - return false;
|
| -
|
| - *upload_content_type = kContentTypeApplicationJson;
|
| -
|
| - base::DictionaryValue root;
|
| - if (!title_.empty())
|
| - root.SetString("title", title_);
|
| -
|
| - if (!modified_date_.is_null())
|
| - root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_));
|
| -
|
| - if (!last_viewed_by_me_date_.is_null()) {
|
| - root.SetString("lastViewedByMeDate",
|
| - util::FormatTimeAsString(last_viewed_by_me_date_));
|
| - }
|
| -
|
| - if (!parents_.empty()) {
|
| - base::ListValue* parents_value = new base::ListValue;
|
| - for (size_t i = 0; i < parents_.size(); ++i) {
|
| - base::DictionaryValue* parent = new base::DictionaryValue;
|
| - parent->SetString("id", parents_[i]);
|
| - parents_value->Append(parent);
|
| - }
|
| - root.Set("parents", parents_value);
|
| - }
|
| -
|
| - base::JSONWriter::Write(&root, upload_content);
|
| - DVLOG(1) << "FilesPatch data: " << *upload_content_type << ", ["
|
| - << *upload_content << "]";
|
| - return true;
|
| -}
|
| -
|
| -//============================= FilesCopyRequest ==============================
|
| -
|
| -FilesCopyRequest::FilesCopyRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const FileResourceCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonAndRun<FileResource>, callback)),
|
| - url_generator_(url_generator) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -FilesCopyRequest::~FilesCopyRequest() {
|
| -}
|
| -
|
| -net::URLFetcher::RequestType FilesCopyRequest::GetRequestType() const {
|
| - return net::URLFetcher::POST;
|
| -}
|
| -
|
| -GURL FilesCopyRequest::GetURLInternal() const {
|
| - return url_generator_.GetFilesCopyUrl(file_id_);
|
| -}
|
| -
|
| -bool FilesCopyRequest::GetContentData(std::string* upload_content_type,
|
| - std::string* upload_content) {
|
| - if (parents_.empty() && title_.empty())
|
| - return false;
|
| -
|
| - *upload_content_type = kContentTypeApplicationJson;
|
| -
|
| - base::DictionaryValue root;
|
| -
|
| - if (!modified_date_.is_null())
|
| - root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_));
|
| -
|
| - if (!parents_.empty()) {
|
| - base::ListValue* parents_value = new base::ListValue;
|
| - for (size_t i = 0; i < parents_.size(); ++i) {
|
| - base::DictionaryValue* parent = new base::DictionaryValue;
|
| - parent->SetString("id", parents_[i]);
|
| - parents_value->Append(parent);
|
| - }
|
| - root.Set("parents", parents_value);
|
| - }
|
| -
|
| - if (!title_.empty())
|
| - root.SetString("title", title_);
|
| -
|
| - base::JSONWriter::Write(&root, upload_content);
|
| - DVLOG(1) << "FilesCopy data: " << *upload_content_type << ", ["
|
| - << *upload_content << "]";
|
| - return true;
|
| -}
|
| -
|
| -//============================= FilesListRequest =============================
|
| -
|
| -FilesListRequest::FilesListRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const FileListCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonOnBlockingPoolAndRun<FileList>,
|
| - make_scoped_refptr(sender->blocking_task_runner()),
|
| - callback)),
|
| - url_generator_(url_generator),
|
| - max_results_(100) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -FilesListRequest::~FilesListRequest() {}
|
| -
|
| -GURL FilesListRequest::GetURLInternal() const {
|
| - return url_generator_.GetFilesListUrl(max_results_, page_token_, q_);
|
| -}
|
| -
|
| -//======================== FilesListNextPageRequest =========================
|
| -
|
| -FilesListNextPageRequest::FilesListNextPageRequest(
|
| - RequestSender* sender,
|
| - const FileListCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonOnBlockingPoolAndRun<FileList>,
|
| - make_scoped_refptr(sender->blocking_task_runner()),
|
| - callback)) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -FilesListNextPageRequest::~FilesListNextPageRequest() {
|
| -}
|
| -
|
| -GURL FilesListNextPageRequest::GetURLInternal() const {
|
| - return next_link_;
|
| -}
|
| -
|
| -//============================ FilesTrashRequest =============================
|
| -
|
| -FilesTrashRequest::FilesTrashRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const FileResourceCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonAndRun<FileResource>, callback)),
|
| - url_generator_(url_generator) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -FilesTrashRequest::~FilesTrashRequest() {}
|
| -
|
| -net::URLFetcher::RequestType FilesTrashRequest::GetRequestType() const {
|
| - return net::URLFetcher::POST;
|
| -}
|
| -
|
| -GURL FilesTrashRequest::GetURLInternal() const {
|
| - return url_generator_.GetFilesTrashUrl(file_id_);
|
| -}
|
| -
|
| -//============================== AboutGetRequest =============================
|
| -
|
| -AboutGetRequest::AboutGetRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const AboutResourceCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonAndRun<AboutResource>, callback)),
|
| - url_generator_(url_generator) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -AboutGetRequest::~AboutGetRequest() {}
|
| -
|
| -GURL AboutGetRequest::GetURLInternal() const {
|
| - return url_generator_.GetAboutGetUrl();
|
| -}
|
| -
|
| -//============================ ChangesListRequest ===========================
|
| -
|
| -ChangesListRequest::ChangesListRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const ChangeListCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonOnBlockingPoolAndRun<ChangeList>,
|
| - make_scoped_refptr(sender->blocking_task_runner()),
|
| - callback)),
|
| - url_generator_(url_generator),
|
| - include_deleted_(true),
|
| - max_results_(100),
|
| - start_change_id_(0) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -ChangesListRequest::~ChangesListRequest() {}
|
| -
|
| -GURL ChangesListRequest::GetURLInternal() const {
|
| - return url_generator_.GetChangesListUrl(
|
| - include_deleted_, max_results_, page_token_, start_change_id_);
|
| -}
|
| -
|
| -//======================== ChangesListNextPageRequest =========================
|
| -
|
| -ChangesListNextPageRequest::ChangesListNextPageRequest(
|
| - RequestSender* sender,
|
| - const ChangeListCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonOnBlockingPoolAndRun<ChangeList>,
|
| - make_scoped_refptr(sender->blocking_task_runner()),
|
| - callback)) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -ChangesListNextPageRequest::~ChangesListNextPageRequest() {
|
| -}
|
| -
|
| -GURL ChangesListNextPageRequest::GetURLInternal() const {
|
| - return next_link_;
|
| -}
|
| -
|
| -//============================== AppsListRequest ===========================
|
| -
|
| -AppsListRequest::AppsListRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const AppListCallback& callback)
|
| - : DriveApiDataRequest(
|
| - sender,
|
| - base::Bind(&ParseJsonAndRun<AppList>, callback)),
|
| - url_generator_(url_generator) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -AppsListRequest::~AppsListRequest() {}
|
| -
|
| -GURL AppsListRequest::GetURLInternal() const {
|
| - return url_generator_.GetAppsListUrl();
|
| -}
|
| -
|
| -//========================== ChildrenInsertRequest ============================
|
| -
|
| -ChildrenInsertRequest::ChildrenInsertRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const EntryActionCallback& callback)
|
| - : EntryActionRequest(sender, callback),
|
| - url_generator_(url_generator) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -ChildrenInsertRequest::~ChildrenInsertRequest() {}
|
| -
|
| -net::URLFetcher::RequestType ChildrenInsertRequest::GetRequestType() const {
|
| - return net::URLFetcher::POST;
|
| -}
|
| -
|
| -GURL ChildrenInsertRequest::GetURL() const {
|
| - return url_generator_.GetChildrenInsertUrl(folder_id_);
|
| -}
|
| -
|
| -bool ChildrenInsertRequest::GetContentData(std::string* upload_content_type,
|
| - std::string* upload_content) {
|
| - *upload_content_type = kContentTypeApplicationJson;
|
| -
|
| - base::DictionaryValue root;
|
| - root.SetString("id", id_);
|
| -
|
| - base::JSONWriter::Write(&root, upload_content);
|
| - DVLOG(1) << "InsertResource data: " << *upload_content_type << ", ["
|
| - << *upload_content << "]";
|
| - return true;
|
| -}
|
| -
|
| -//========================== ChildrenDeleteRequest ============================
|
| -
|
| -ChildrenDeleteRequest::ChildrenDeleteRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const EntryActionCallback& callback)
|
| - : EntryActionRequest(sender, callback),
|
| - url_generator_(url_generator) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -ChildrenDeleteRequest::~ChildrenDeleteRequest() {}
|
| -
|
| -net::URLFetcher::RequestType ChildrenDeleteRequest::GetRequestType() const {
|
| - return net::URLFetcher::DELETE_REQUEST;
|
| -}
|
| -
|
| -GURL ChildrenDeleteRequest::GetURL() const {
|
| - return url_generator_.GetChildrenDeleteUrl(child_id_, folder_id_);
|
| -}
|
| -
|
| -//======================= InitiateUploadNewFileRequest =======================
|
| -
|
| -InitiateUploadNewFileRequest::InitiateUploadNewFileRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const std::string& content_type,
|
| - int64 content_length,
|
| - const std::string& parent_resource_id,
|
| - const std::string& title,
|
| - const InitiateUploadCallback& callback)
|
| - : InitiateUploadRequestBase(sender,
|
| - callback,
|
| - content_type,
|
| - content_length),
|
| - url_generator_(url_generator),
|
| - parent_resource_id_(parent_resource_id),
|
| - title_(title) {
|
| -}
|
| -
|
| -InitiateUploadNewFileRequest::~InitiateUploadNewFileRequest() {}
|
| -
|
| -GURL InitiateUploadNewFileRequest::GetURL() const {
|
| - return url_generator_.GetInitiateUploadNewFileUrl();
|
| -}
|
| -
|
| -net::URLFetcher::RequestType
|
| -InitiateUploadNewFileRequest::GetRequestType() const {
|
| - return net::URLFetcher::POST;
|
| -}
|
| -
|
| -bool InitiateUploadNewFileRequest::GetContentData(
|
| - std::string* upload_content_type,
|
| - std::string* upload_content) {
|
| - *upload_content_type = kContentTypeApplicationJson;
|
| -
|
| - base::DictionaryValue root;
|
| - root.SetString("title", title_);
|
| -
|
| - // Fill parent link.
|
| - {
|
| - scoped_ptr<base::DictionaryValue> parent(new base::DictionaryValue);
|
| - parent->SetString("kind", kParentLinkKind);
|
| - parent->SetString("id", parent_resource_id_);
|
| -
|
| - scoped_ptr<base::ListValue> parents(new base::ListValue);
|
| - parents->Append(parent.release());
|
| -
|
| - root.Set("parents", parents.release());
|
| - }
|
| -
|
| - base::JSONWriter::Write(&root, upload_content);
|
| -
|
| - DVLOG(1) << "InitiateUploadNewFile data: " << *upload_content_type << ", ["
|
| - << *upload_content << "]";
|
| - return true;
|
| -}
|
| -
|
| -//===================== InitiateUploadExistingFileRequest ====================
|
| -
|
| -InitiateUploadExistingFileRequest::InitiateUploadExistingFileRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const std::string& content_type,
|
| - int64 content_length,
|
| - const std::string& resource_id,
|
| - const std::string& etag,
|
| - const InitiateUploadCallback& callback)
|
| - : InitiateUploadRequestBase(sender,
|
| - callback,
|
| - content_type,
|
| - content_length),
|
| - url_generator_(url_generator),
|
| - resource_id_(resource_id),
|
| - etag_(etag) {
|
| -}
|
| -
|
| -InitiateUploadExistingFileRequest::~InitiateUploadExistingFileRequest() {}
|
| -
|
| -GURL InitiateUploadExistingFileRequest::GetURL() const {
|
| - return url_generator_.GetInitiateUploadExistingFileUrl(resource_id_);
|
| -}
|
| -
|
| -net::URLFetcher::RequestType
|
| -InitiateUploadExistingFileRequest::GetRequestType() const {
|
| - return net::URLFetcher::PUT;
|
| -}
|
| -
|
| -std::vector<std::string>
|
| -InitiateUploadExistingFileRequest::GetExtraRequestHeaders() const {
|
| - std::vector<std::string> headers(
|
| - InitiateUploadRequestBase::GetExtraRequestHeaders());
|
| - headers.push_back(util::GenerateIfMatchHeader(etag_));
|
| - return headers;
|
| -}
|
| -
|
| -//============================ ResumeUploadRequest ===========================
|
| -
|
| -ResumeUploadRequest::ResumeUploadRequest(
|
| - RequestSender* sender,
|
| - const GURL& upload_location,
|
| - int64 start_position,
|
| - int64 end_position,
|
| - int64 content_length,
|
| - const std::string& content_type,
|
| - const base::FilePath& local_file_path,
|
| - const UploadRangeCallback& callback,
|
| - const ProgressCallback& progress_callback)
|
| - : ResumeUploadRequestBase(sender,
|
| - upload_location,
|
| - start_position,
|
| - end_position,
|
| - content_length,
|
| - content_type,
|
| - local_file_path),
|
| - callback_(callback),
|
| - progress_callback_(progress_callback) {
|
| - DCHECK(!callback_.is_null());
|
| -}
|
| -
|
| -ResumeUploadRequest::~ResumeUploadRequest() {}
|
| -
|
| -void ResumeUploadRequest::OnRangeRequestComplete(
|
| - const UploadRangeResponse& response,
|
| - scoped_ptr<base::Value> value) {
|
| - DCHECK(CalledOnValidThread());
|
| - ParseFileResourceWithUploadRangeAndRun(callback_, response, value.Pass());
|
| -}
|
| -
|
| -void ResumeUploadRequest::OnURLFetchUploadProgress(
|
| - const net::URLFetcher* source, int64 current, int64 total) {
|
| - if (!progress_callback_.is_null())
|
| - progress_callback_.Run(current, total);
|
| -}
|
| -
|
| -//========================== GetUploadStatusRequest ==========================
|
| -
|
| -GetUploadStatusRequest::GetUploadStatusRequest(
|
| - RequestSender* sender,
|
| - const GURL& upload_url,
|
| - int64 content_length,
|
| - const UploadRangeCallback& callback)
|
| - : GetUploadStatusRequestBase(sender,
|
| - upload_url,
|
| - content_length),
|
| - callback_(callback) {
|
| - DCHECK(!callback.is_null());
|
| -}
|
| -
|
| -GetUploadStatusRequest::~GetUploadStatusRequest() {}
|
| -
|
| -void GetUploadStatusRequest::OnRangeRequestComplete(
|
| - const UploadRangeResponse& response,
|
| - scoped_ptr<base::Value> value) {
|
| - DCHECK(CalledOnValidThread());
|
| - ParseFileResourceWithUploadRangeAndRun(callback_, response, value.Pass());
|
| -}
|
| -
|
| -//========================== DownloadFileRequest ==========================
|
| -
|
| -DownloadFileRequest::DownloadFileRequest(
|
| - RequestSender* sender,
|
| - const DriveApiUrlGenerator& url_generator,
|
| - const std::string& resource_id,
|
| - const base::FilePath& output_file_path,
|
| - const DownloadActionCallback& download_action_callback,
|
| - const GetContentCallback& get_content_callback,
|
| - const ProgressCallback& progress_callback)
|
| - : DownloadFileRequestBase(
|
| - sender,
|
| - download_action_callback,
|
| - get_content_callback,
|
| - progress_callback,
|
| - url_generator.GenerateDownloadFileUrl(resource_id),
|
| - output_file_path) {
|
| -}
|
| -
|
| -DownloadFileRequest::~DownloadFileRequest() {
|
| -}
|
| -
|
| -} // namespace drive
|
| -} // namespace google_apis
|
|
|