Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1452)

Unified Diff: chrome/browser/drive/drive_api_service.cc

Issue 23549003: Refactor GetChangelistRequest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/google_apis/drive_api_requests.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/drive/drive_api_service.cc
diff --git a/chrome/browser/drive/drive_api_service.cc b/chrome/browser/drive/drive_api_service.cc
index 66be6451285a620b272af1b2c06366fed01a8036..d60cb6791f292c9735368f7213eee03742c3c3fe 100644
--- a/chrome/browser/drive/drive_api_service.cc
+++ b/chrome/browser/drive/drive_api_service.cc
@@ -36,7 +36,6 @@ using google_apis::GDATA_OTHER_ERROR;
using google_apis::GDATA_PARSE_ERROR;
using google_apis::GDataErrorCode;
using google_apis::AboutResourceCallback;
-using google_apis::GetChangelistRequest;
using google_apis::GetContentCallback;
using google_apis::GetResourceEntryCallback;
using google_apis::GetResourceEntryRequest;
@@ -54,6 +53,7 @@ using google_apis::UploadRangeCallback;
using google_apis::UploadRangeResponse;
using google_apis::drive::AboutGetRequest;
using google_apis::drive::AppsListRequest;
+using google_apis::drive::ChangesListRequest;
using google_apis::drive::ContinueGetFileListRequest;
using google_apis::drive::CopyResourceRequest;
using google_apis::drive::CreateDirectoryRequest;
@@ -210,6 +210,35 @@ void ConvertFileListToResourceListOnBlockingPoolAndRun(
base::Bind(&DidParseResourceListOnBlockingPool, callback));
}
+// Thin adapter of CreateFromChangeList.
+scoped_ptr<ResourceList> ConvertChangeListToResourceList(
+ scoped_ptr<ChangeList> change_list) {
+ return ResourceList::CreateFromChangeList(*change_list);
+}
+
+// Converts the FileList value to ResourceList on blocking pool and runs
+// |callback| on the UI thread.
+void ConvertChangeListToResourceListOnBlockingPoolAndRun(
+ scoped_refptr<base::TaskRunner> blocking_task_runner,
+ const GetResourceListCallback& callback,
+ GDataErrorCode error,
+ scoped_ptr<ChangeList> value) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ DCHECK(!callback.is_null());
+
+ if (!value) {
+ callback.Run(error, scoped_ptr<ResourceList>());
+ return;
+ }
+
+ // Convert the value on blocking pool.
+ base::PostTaskAndReplyWithResult(
+ blocking_task_runner.get(),
+ FROM_HERE,
+ base::Bind(&ConvertChangeListToResourceList, base::Passed(&value)),
+ base::Bind(&DidParseResourceListOnBlockingPool, callback));
+}
+
// Parses the FileResource value to ResourceEntry for upload range request,
// and runs |callback| on the UI thread.
void ParseResourceEntryForUploadRangeAndRun(
@@ -351,16 +380,12 @@ CancelCallback DriveAPIService::GetAllResourceList(
// but it seems impossible to know the returned list's changestamp.
// Thus, instead, we use changes.list method with includeDeleted=false here.
// The returned list should contain only resources currently existing.
- return sender_->StartRequestWithRetry(
- new GetChangelistRequest(
- sender_.get(),
- url_generator_,
- false, // include deleted
- 0,
- kMaxNumFilesResourcePerRequest,
- base::Bind(&ParseResourceListOnBlockingPoolAndRun,
- blocking_task_runner_,
- callback)));
+ ChangesListRequest* request = new ChangesListRequest(
+ sender_.get(), url_generator_,
+ base::Bind(&ConvertChangeListToResourceListOnBlockingPoolAndRun,
+ blocking_task_runner_, callback));
+ request->set_include_deleted(false);
+ return sender_->StartRequestWithRetry(request);
}
CancelCallback DriveAPIService::GetResourceListInDirectory(
@@ -440,16 +465,13 @@ CancelCallback DriveAPIService::GetChangeList(
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null());
- return sender_->StartRequestWithRetry(
- new GetChangelistRequest(
- sender_.get(),
- url_generator_,
- true, // include deleted
- start_changestamp,
- kMaxNumFilesResourcePerRequest,
- base::Bind(&ParseResourceListOnBlockingPoolAndRun,
- blocking_task_runner_,
- callback)));
+ ChangesListRequest* request = new ChangesListRequest(
+ sender_.get(), url_generator_,
+ base::Bind(&ConvertChangeListToResourceListOnBlockingPoolAndRun,
+ blocking_task_runner_, callback));
+ request->set_max_results(kMaxNumFilesResourcePerRequest);
+ request->set_start_change_id(start_changestamp);
+ return sender_->StartRequestWithRetry(request);
}
CancelCallback DriveAPIService::ContinueGetResourceList(
« no previous file with comments | « no previous file | chrome/browser/google_apis/drive_api_requests.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698