Index: chrome/browser/google_apis/gdata_wapi_requests.cc |
diff --git a/chrome/browser/google_apis/gdata_wapi_requests.cc b/chrome/browser/google_apis/gdata_wapi_requests.cc |
deleted file mode 100644 |
index e0b305fdea2cc6dacf2b635826861eb99726077a..0000000000000000000000000000000000000000 |
--- a/chrome/browser/google_apis/gdata_wapi_requests.cc |
+++ /dev/null |
@@ -1,725 +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/gdata_wapi_requests.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/gdata_wapi_parser.h" |
-#include "chrome/browser/google_apis/gdata_wapi_url_generator.h" |
-#include "chrome/browser/google_apis/request_sender.h" |
-#include "chrome/browser/google_apis/request_util.h" |
-#include "third_party/libxml/chromium/libxml_utils.h" |
- |
-using net::URLFetcher; |
- |
-namespace google_apis { |
- |
-namespace { |
- |
-// Parses the JSON value to ResourceList. |
-scoped_ptr<ResourceList> ParseResourceListOnBlockingPool( |
- scoped_ptr<base::Value> value) { |
- DCHECK(value); |
- |
- return ResourceList::ExtractAndParse(*value); |
-} |
- |
-// Runs |callback| with |error| and |resource_list|, but replace the error code |
-// with GDATA_PARSE_ERROR, if there was a parsing error. |
-void DidParseResourceListOnBlockingPool( |
- const GetResourceListCallback& callback, |
- GDataErrorCode error, |
- scoped_ptr<ResourceList> resource_list) { |
- DCHECK(!callback.is_null()); |
- |
- // resource_list being NULL indicates there was a parsing error. |
- if (!resource_list) |
- error = GDATA_PARSE_ERROR; |
- |
- callback.Run(error, resource_list.Pass()); |
-} |
- |
-// Parses the JSON value to ResourceList on the blocking pool and runs |
-// |callback| on the UI thread once parsing is done. |
-void ParseResourceListAndRun( |
- scoped_refptr<base::TaskRunner> blocking_task_runner, |
- const GetResourceListCallback& callback, |
- GDataErrorCode error, |
- scoped_ptr<base::Value> value) { |
- DCHECK(!callback.is_null()); |
- |
- if (!value) { |
- callback.Run(error, scoped_ptr<ResourceList>()); |
- return; |
- } |
- |
- base::PostTaskAndReplyWithResult( |
- blocking_task_runner, |
- FROM_HERE, |
- base::Bind(&ParseResourceListOnBlockingPool, base::Passed(&value)), |
- base::Bind(&DidParseResourceListOnBlockingPool, callback, error)); |
-} |
- |
-// Parses the JSON value to AccountMetadata and runs |callback| on the UI |
-// thread once parsing is done. |
-void ParseAccounetMetadataAndRun(const GetAccountMetadataCallback& callback, |
- GDataErrorCode error, |
- scoped_ptr<base::Value> value) { |
- DCHECK(!callback.is_null()); |
- |
- if (!value) { |
- callback.Run(error, scoped_ptr<AccountMetadata>()); |
- return; |
- } |
- |
- // Parsing AccountMetadata is cheap enough to do on UI thread. |
- scoped_ptr<AccountMetadata> entry = |
- google_apis::AccountMetadata::CreateFrom(*value); |
- if (!entry) { |
- callback.Run(GDATA_PARSE_ERROR, scoped_ptr<AccountMetadata>()); |
- return; |
- } |
- |
- callback.Run(error, entry.Pass()); |
-} |
- |
-// Parses the |value| to ResourceEntry with error handling. |
-// This is designed to be used for ResumeUploadRequest and |
-// GetUploadStatusRequest. |
-scoped_ptr<ResourceEntry> ParseResourceEntry(scoped_ptr<base::Value> value) { |
- scoped_ptr<ResourceEntry> entry; |
- if (value.get()) { |
- entry = ResourceEntry::ExtractAndParse(*value); |
- |
- // Note: |value| may be NULL, in particular if the callback is for a |
- // failure. |
- if (!entry.get()) |
- LOG(WARNING) << "Invalid entry received on upload."; |
- } |
- |
- return entry.Pass(); |
-} |
- |
-// Extracts the open link url from the JSON Feed. Used by AuthorizeApp(). |
-void ParseOpenLinkAndRun(const std::string& app_id, |
- const AuthorizeAppCallback& callback, |
- GDataErrorCode error, |
- scoped_ptr<base::Value> value) { |
- DCHECK(!callback.is_null()); |
- |
- if (!value) { |
- callback.Run(error, GURL()); |
- return; |
- } |
- |
- // Parsing ResourceEntry is cheap enough to do on UI thread. |
- scoped_ptr<ResourceEntry> resource_entry = ParseResourceEntry(value.Pass()); |
- if (!resource_entry) { |
- callback.Run(GDATA_PARSE_ERROR, GURL()); |
- return; |
- } |
- |
- // Look for the link to open the file with the app with |app_id|. |
- const ScopedVector<Link>& resource_links = resource_entry->links(); |
- GURL open_link; |
- for (size_t i = 0; i < resource_links.size(); ++i) { |
- const Link& link = *resource_links[i]; |
- if (link.type() == Link::LINK_OPEN_WITH && link.app_id() == app_id) { |
- open_link = link.href(); |
- break; |
- } |
- } |
- |
- if (open_link.is_empty()) |
- error = GDATA_OTHER_ERROR; |
- |
- callback.Run(error, open_link); |
-} |
- |
-} // namespace |
- |
-//============================ GetResourceListRequest ======================== |
- |
-GetResourceListRequest::GetResourceListRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const GURL& override_url, |
- int64 start_changestamp, |
- const std::string& search_string, |
- const std::string& directory_resource_id, |
- const GetResourceListCallback& callback) |
- : GetDataRequest( |
- sender, |
- base::Bind(&ParseResourceListAndRun, |
- make_scoped_refptr(sender->blocking_task_runner()), |
- callback)), |
- url_generator_(url_generator), |
- override_url_(override_url), |
- start_changestamp_(start_changestamp), |
- search_string_(search_string), |
- directory_resource_id_(directory_resource_id) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-GetResourceListRequest::~GetResourceListRequest() {} |
- |
-GURL GetResourceListRequest::GetURL() const { |
- return url_generator_.GenerateResourceListUrl(override_url_, |
- start_changestamp_, |
- search_string_, |
- directory_resource_id_); |
-} |
- |
-//============================ SearchByTitleRequest ========================== |
- |
-SearchByTitleRequest::SearchByTitleRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const std::string& title, |
- const std::string& directory_resource_id, |
- const GetResourceListCallback& callback) |
- : GetDataRequest( |
- sender, |
- base::Bind(&ParseResourceListAndRun, |
- make_scoped_refptr(sender->blocking_task_runner()), |
- callback)), |
- url_generator_(url_generator), |
- title_(title), |
- directory_resource_id_(directory_resource_id) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-SearchByTitleRequest::~SearchByTitleRequest() {} |
- |
-GURL SearchByTitleRequest::GetURL() const { |
- return url_generator_.GenerateSearchByTitleUrl( |
- title_, directory_resource_id_); |
-} |
- |
-//============================ GetResourceEntryRequest ======================= |
- |
-GetResourceEntryRequest::GetResourceEntryRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const std::string& resource_id, |
- const GURL& embed_origin, |
- const GetDataCallback& callback) |
- : GetDataRequest(sender, callback), |
- url_generator_(url_generator), |
- resource_id_(resource_id), |
- embed_origin_(embed_origin) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-GetResourceEntryRequest::~GetResourceEntryRequest() {} |
- |
-GURL GetResourceEntryRequest::GetURL() const { |
- return url_generator_.GenerateEditUrlWithEmbedOrigin( |
- resource_id_, embed_origin_); |
-} |
- |
-//========================= GetAccountMetadataRequest ======================== |
- |
-GetAccountMetadataRequest::GetAccountMetadataRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const GetAccountMetadataCallback& callback, |
- bool include_installed_apps) |
- : GetDataRequest(sender, |
- base::Bind(&ParseAccounetMetadataAndRun, callback)), |
- url_generator_(url_generator), |
- include_installed_apps_(include_installed_apps) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-GetAccountMetadataRequest::~GetAccountMetadataRequest() {} |
- |
-GURL GetAccountMetadataRequest::GetURL() const { |
- return url_generator_.GenerateAccountMetadataUrl(include_installed_apps_); |
-} |
- |
-//=========================== DeleteResourceRequest ========================== |
- |
-DeleteResourceRequest::DeleteResourceRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const EntryActionCallback& callback, |
- const std::string& resource_id, |
- const std::string& etag) |
- : EntryActionRequest(sender, callback), |
- url_generator_(url_generator), |
- resource_id_(resource_id), |
- etag_(etag) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-DeleteResourceRequest::~DeleteResourceRequest() {} |
- |
-GURL DeleteResourceRequest::GetURL() const { |
- return url_generator_.GenerateEditUrl(resource_id_); |
-} |
- |
-URLFetcher::RequestType DeleteResourceRequest::GetRequestType() const { |
- return URLFetcher::DELETE_REQUEST; |
-} |
- |
-std::vector<std::string> |
-DeleteResourceRequest::GetExtraRequestHeaders() const { |
- std::vector<std::string> headers; |
- headers.push_back(util::GenerateIfMatchHeader(etag_)); |
- return headers; |
-} |
- |
-//========================== CreateDirectoryRequest ========================== |
- |
-CreateDirectoryRequest::CreateDirectoryRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const GetDataCallback& callback, |
- const std::string& parent_resource_id, |
- const std::string& directory_title) |
- : GetDataRequest(sender, callback), |
- url_generator_(url_generator), |
- parent_resource_id_(parent_resource_id), |
- directory_title_(directory_title) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-CreateDirectoryRequest::~CreateDirectoryRequest() {} |
- |
-GURL CreateDirectoryRequest::GetURL() const { |
- return url_generator_.GenerateContentUrl(parent_resource_id_); |
-} |
- |
-URLFetcher::RequestType |
-CreateDirectoryRequest::GetRequestType() const { |
- return URLFetcher::POST; |
-} |
- |
-bool CreateDirectoryRequest::GetContentData(std::string* upload_content_type, |
- std::string* upload_content) { |
- upload_content_type->assign("application/atom+xml"); |
- XmlWriter xml_writer; |
- xml_writer.StartWriting(); |
- xml_writer.StartElement("entry"); |
- xml_writer.AddAttribute("xmlns", "http://www.w3.org/2005/Atom"); |
- |
- xml_writer.StartElement("category"); |
- xml_writer.AddAttribute("scheme", |
- "http://schemas.google.com/g/2005#kind"); |
- xml_writer.AddAttribute("term", |
- "http://schemas.google.com/docs/2007#folder"); |
- xml_writer.EndElement(); // Ends "category" element. |
- |
- xml_writer.WriteElement("title", directory_title_); |
- |
- xml_writer.EndElement(); // Ends "entry" element. |
- xml_writer.StopWriting(); |
- upload_content->assign(xml_writer.GetWrittenString()); |
- DVLOG(1) << "CreateDirectory data: " << *upload_content_type << ", [" |
- << *upload_content << "]"; |
- return true; |
-} |
- |
-//============================ CopyHostedDocumentRequest ===================== |
- |
-CopyHostedDocumentRequest::CopyHostedDocumentRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const GetDataCallback& callback, |
- const std::string& resource_id, |
- const std::string& new_title) |
- : GetDataRequest(sender, callback), |
- url_generator_(url_generator), |
- resource_id_(resource_id), |
- new_title_(new_title) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-CopyHostedDocumentRequest::~CopyHostedDocumentRequest() {} |
- |
-URLFetcher::RequestType CopyHostedDocumentRequest::GetRequestType() const { |
- return URLFetcher::POST; |
-} |
- |
-GURL CopyHostedDocumentRequest::GetURL() const { |
- return url_generator_.GenerateResourceListRootUrl(); |
-} |
- |
-bool CopyHostedDocumentRequest::GetContentData( |
- std::string* upload_content_type, |
- std::string* upload_content) { |
- upload_content_type->assign("application/atom+xml"); |
- XmlWriter xml_writer; |
- xml_writer.StartWriting(); |
- xml_writer.StartElement("entry"); |
- xml_writer.AddAttribute("xmlns", "http://www.w3.org/2005/Atom"); |
- |
- xml_writer.WriteElement("id", resource_id_); |
- xml_writer.WriteElement("title", new_title_); |
- |
- xml_writer.EndElement(); // Ends "entry" element. |
- xml_writer.StopWriting(); |
- upload_content->assign(xml_writer.GetWrittenString()); |
- DVLOG(1) << "CopyHostedDocumentRequest data: " << *upload_content_type |
- << ", [" << *upload_content << "]"; |
- return true; |
-} |
- |
-//=========================== RenameResourceRequest ========================== |
- |
-RenameResourceRequest::RenameResourceRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const EntryActionCallback& callback, |
- const std::string& resource_id, |
- const std::string& new_title) |
- : EntryActionRequest(sender, callback), |
- url_generator_(url_generator), |
- resource_id_(resource_id), |
- new_title_(new_title) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-RenameResourceRequest::~RenameResourceRequest() {} |
- |
-URLFetcher::RequestType RenameResourceRequest::GetRequestType() const { |
- return URLFetcher::PUT; |
-} |
- |
-std::vector<std::string> |
-RenameResourceRequest::GetExtraRequestHeaders() const { |
- std::vector<std::string> headers; |
- headers.push_back(util::kIfMatchAllHeader); |
- return headers; |
-} |
- |
-GURL RenameResourceRequest::GetURL() const { |
- return url_generator_.GenerateEditUrl(resource_id_); |
-} |
- |
-bool RenameResourceRequest::GetContentData(std::string* upload_content_type, |
- std::string* upload_content) { |
- upload_content_type->assign("application/atom+xml"); |
- XmlWriter xml_writer; |
- xml_writer.StartWriting(); |
- xml_writer.StartElement("entry"); |
- xml_writer.AddAttribute("xmlns", "http://www.w3.org/2005/Atom"); |
- |
- xml_writer.WriteElement("title", new_title_); |
- |
- xml_writer.EndElement(); // Ends "entry" element. |
- xml_writer.StopWriting(); |
- upload_content->assign(xml_writer.GetWrittenString()); |
- DVLOG(1) << "RenameResourceRequest data: " << *upload_content_type << ", [" |
- << *upload_content << "]"; |
- return true; |
-} |
- |
-//=========================== AuthorizeAppRequest ========================== |
- |
-AuthorizeAppRequest::AuthorizeAppRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const AuthorizeAppCallback& callback, |
- const std::string& resource_id, |
- const std::string& app_id) |
- : GetDataRequest(sender, |
- base::Bind(&ParseOpenLinkAndRun, app_id, callback)), |
- url_generator_(url_generator), |
- resource_id_(resource_id), |
- app_id_(app_id) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-AuthorizeAppRequest::~AuthorizeAppRequest() {} |
- |
-URLFetcher::RequestType AuthorizeAppRequest::GetRequestType() const { |
- return URLFetcher::PUT; |
-} |
- |
-std::vector<std::string> |
-AuthorizeAppRequest::GetExtraRequestHeaders() const { |
- std::vector<std::string> headers; |
- headers.push_back(util::kIfMatchAllHeader); |
- return headers; |
-} |
- |
-bool AuthorizeAppRequest::GetContentData(std::string* upload_content_type, |
- std::string* upload_content) { |
- upload_content_type->assign("application/atom+xml"); |
- XmlWriter xml_writer; |
- xml_writer.StartWriting(); |
- xml_writer.StartElement("entry"); |
- xml_writer.AddAttribute("xmlns", "http://www.w3.org/2005/Atom"); |
- xml_writer.AddAttribute("xmlns:docs", "http://schemas.google.com/docs/2007"); |
- xml_writer.WriteElement("docs:authorizedApp", app_id_); |
- |
- xml_writer.EndElement(); // Ends "entry" element. |
- xml_writer.StopWriting(); |
- upload_content->assign(xml_writer.GetWrittenString()); |
- DVLOG(1) << "AuthorizeAppRequest data: " << *upload_content_type << ", [" |
- << *upload_content << "]"; |
- return true; |
-} |
- |
-GURL AuthorizeAppRequest::GetURL() const { |
- return url_generator_.GenerateEditUrl(resource_id_); |
-} |
- |
-//======================= AddResourceToDirectoryRequest ====================== |
- |
-AddResourceToDirectoryRequest::AddResourceToDirectoryRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const EntryActionCallback& callback, |
- const std::string& parent_resource_id, |
- const std::string& resource_id) |
- : EntryActionRequest(sender, callback), |
- url_generator_(url_generator), |
- parent_resource_id_(parent_resource_id), |
- resource_id_(resource_id) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-AddResourceToDirectoryRequest::~AddResourceToDirectoryRequest() {} |
- |
-GURL AddResourceToDirectoryRequest::GetURL() const { |
- return url_generator_.GenerateContentUrl(parent_resource_id_); |
-} |
- |
-URLFetcher::RequestType |
-AddResourceToDirectoryRequest::GetRequestType() const { |
- return URLFetcher::POST; |
-} |
- |
-bool AddResourceToDirectoryRequest::GetContentData( |
- std::string* upload_content_type, std::string* upload_content) { |
- upload_content_type->assign("application/atom+xml"); |
- XmlWriter xml_writer; |
- xml_writer.StartWriting(); |
- xml_writer.StartElement("entry"); |
- xml_writer.AddAttribute("xmlns", "http://www.w3.org/2005/Atom"); |
- |
- xml_writer.WriteElement( |
- "id", url_generator_.GenerateEditUrlWithoutParams(resource_id_).spec()); |
- |
- xml_writer.EndElement(); // Ends "entry" element. |
- xml_writer.StopWriting(); |
- upload_content->assign(xml_writer.GetWrittenString()); |
- DVLOG(1) << "AddResourceToDirectoryRequest data: " << *upload_content_type |
- << ", [" << *upload_content << "]"; |
- return true; |
-} |
- |
-//==================== RemoveResourceFromDirectoryRequest ==================== |
- |
-RemoveResourceFromDirectoryRequest::RemoveResourceFromDirectoryRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const EntryActionCallback& callback, |
- const std::string& parent_resource_id, |
- const std::string& document_resource_id) |
- : EntryActionRequest(sender, callback), |
- url_generator_(url_generator), |
- resource_id_(document_resource_id), |
- parent_resource_id_(parent_resource_id) { |
- DCHECK(!callback.is_null()); |
-} |
- |
-RemoveResourceFromDirectoryRequest::~RemoveResourceFromDirectoryRequest() { |
-} |
- |
-GURL RemoveResourceFromDirectoryRequest::GetURL() const { |
- return url_generator_.GenerateResourceUrlForRemoval( |
- parent_resource_id_, resource_id_); |
-} |
- |
-URLFetcher::RequestType |
-RemoveResourceFromDirectoryRequest::GetRequestType() const { |
- return URLFetcher::DELETE_REQUEST; |
-} |
- |
-std::vector<std::string> |
-RemoveResourceFromDirectoryRequest::GetExtraRequestHeaders() const { |
- std::vector<std::string> headers; |
- headers.push_back(util::kIfMatchAllHeader); |
- return headers; |
-} |
- |
-//======================= InitiateUploadNewFileRequest ======================= |
- |
-InitiateUploadNewFileRequest::InitiateUploadNewFileRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const InitiateUploadCallback& callback, |
- const std::string& content_type, |
- int64 content_length, |
- const std::string& parent_resource_id, |
- const std::string& title) |
- : 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_.GenerateInitiateUploadNewFileUrl(parent_resource_id_); |
-} |
- |
-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->assign("application/atom+xml"); |
- XmlWriter xml_writer; |
- xml_writer.StartWriting(); |
- xml_writer.StartElement("entry"); |
- xml_writer.AddAttribute("xmlns", "http://www.w3.org/2005/Atom"); |
- xml_writer.AddAttribute("xmlns:docs", |
- "http://schemas.google.com/docs/2007"); |
- xml_writer.WriteElement("title", title_); |
- xml_writer.EndElement(); // Ends "entry" element. |
- xml_writer.StopWriting(); |
- upload_content->assign(xml_writer.GetWrittenString()); |
- DVLOG(1) << "InitiateUploadNewFile: " << *upload_content_type << ", [" |
- << *upload_content << "]"; |
- return true; |
-} |
- |
-//===================== InitiateUploadExistingFileRequest ==================== |
- |
-InitiateUploadExistingFileRequest::InitiateUploadExistingFileRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const InitiateUploadCallback& callback, |
- const std::string& content_type, |
- int64 content_length, |
- const std::string& resource_id, |
- const std::string& etag) |
- : 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_.GenerateInitiateUploadExistingFileUrl(resource_id_); |
-} |
- |
-net::URLFetcher::RequestType |
-InitiateUploadExistingFileRequest::GetRequestType() const { |
- return net::URLFetcher::PUT; |
-} |
- |
-bool InitiateUploadExistingFileRequest::GetContentData( |
- std::string* upload_content_type, |
- std::string* upload_content) { |
- // According to the document there is no need to send the content-type. |
- // However, the server would return 500 server error without the |
- // content-type. |
- // As its workaround, send "text/plain" content-type here. |
- *upload_content_type = "text/plain"; |
- *upload_content = ""; |
- return true; |
-} |
- |
-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 UploadRangeCallback& callback, |
- const ProgressCallback& progress_callback, |
- const GURL& upload_location, |
- int64 start_position, |
- int64 end_position, |
- int64 content_length, |
- const std::string& content_type, |
- const base::FilePath& local_file_path) |
- : 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) { |
- callback_.Run(response, ParseResourceEntry(value.Pass())); |
-} |
- |
-void ResumeUploadRequest::OnURLFetchUploadProgress( |
- const URLFetcher* source, int64 current, int64 total) { |
- if (!progress_callback_.is_null()) |
- progress_callback_.Run(current, total); |
-} |
- |
-//========================== GetUploadStatusRequest ========================== |
- |
-GetUploadStatusRequest::GetUploadStatusRequest( |
- RequestSender* sender, |
- const UploadRangeCallback& callback, |
- const GURL& upload_url, |
- int64 content_length) |
- : 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) { |
- callback_.Run(response, ParseResourceEntry(value.Pass())); |
-} |
- |
-//========================== DownloadFileRequest ========================== |
- |
-DownloadFileRequest::DownloadFileRequest( |
- RequestSender* sender, |
- const GDataWapiUrlGenerator& url_generator, |
- const DownloadActionCallback& download_action_callback, |
- const GetContentCallback& get_content_callback, |
- const ProgressCallback& progress_callback, |
- const std::string& resource_id, |
- const base::FilePath& output_file_path) |
- : DownloadFileRequestBase( |
- sender, |
- download_action_callback, |
- get_content_callback, |
- progress_callback, |
- url_generator.GenerateDownloadFileUrl(resource_id), |
- output_file_path) { |
-} |
- |
-DownloadFileRequest::~DownloadFileRequest() { |
-} |
- |
-} // namespace google_apis |