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

Unified Diff: chrome/browser/chromeos/drive/job_scheduler.cc

Issue 77553006: google_apis: Random fix in task_util.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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/task_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/drive/job_scheduler.cc
diff --git a/chrome/browser/chromeos/drive/job_scheduler.cc b/chrome/browser/chromeos/drive/job_scheduler.cc
index 12813bb20ed7c2461e283c9ffccf8045d02f3055..7e6d3cb1971ddd37f82eccc3c84511037d5d01e5 100644
--- a/chrome/browser/chromeos/drive/job_scheduler.cc
+++ b/chrome/browser/chromeos/drive/job_scheduler.cc
@@ -12,7 +12,6 @@
#include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/chromeos/drive/logging.h"
#include "chrome/browser/google_apis/drive_api_parser.h"
-#include "chrome/browser/google_apis/task_util.h"
#include "chrome/common/pref_names.h"
#include "content/public/browser/browser_thread.h"
@@ -33,6 +32,41 @@ namespace {
const int kMaxThrottleCount = 4;
const int kMaxRetryCount = 2 * kMaxThrottleCount;
+// GetDefaultValue returns a value constructed by the default constructor.
+template<typename T> struct DefaultValueCreator {
+ static T GetDefaultValue() { return T(); }
+};
+template<typename T> struct DefaultValueCreator<const T&> {
+ static T GetDefaultValue() { return T(); }
+};
+
+// Helper of CreateErrorRunCallback implementation.
+// Provides:
+// - ResultType; the type of the Callback which should be returned by
+// CreateErrorRunCallback.
+// - Run(): a static function which takes the original |callback| and |error|,
+// and runs the |callback|.Run() with the error code and default values
+// for remaining arguments.
+template<typename CallbackType> struct CreateErrorRunCallbackHelper;
+
+// CreateErrorRunCallback with two arguments.
+template<typename P1>
+struct CreateErrorRunCallbackHelper<void(google_apis::GDataErrorCode, P1)> {
+ static void Run(
+ const base::Callback<void(google_apis::GDataErrorCode, P1)>& callback,
+ google_apis::GDataErrorCode error) {
+ callback.Run(error, DefaultValueCreator<P1>::GetDefaultValue());
+ }
+};
+
+// Returns a callback with the tail parameter bound to its default value.
+// In other words, returned_callback.Run(error) runs callback.Run(error, T()).
+template<typename CallbackType>
+base::Callback<void(google_apis::GDataErrorCode)>
+CreateErrorRunCallback(const base::Callback<CallbackType>& callback) {
+ return base::Bind(&CreateErrorRunCallbackHelper<CallbackType>::Run, callback);
+}
+
// Parameter struct for RunUploadNewFile.
struct UploadNewFileParams {
std::string parent_resource_id;
@@ -208,7 +242,7 @@ void JobScheduler::GetAboutResource(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -224,7 +258,7 @@ void JobScheduler::GetAppList(const google_apis::AppListCallback& callback) {
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -241,7 +275,7 @@ void JobScheduler::GetAllResourceList(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -261,7 +295,7 @@ void JobScheduler::GetResourceListInDirectory(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -280,7 +314,7 @@ void JobScheduler::Search(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -299,7 +333,7 @@ void JobScheduler::GetChangeList(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -318,7 +352,7 @@ void JobScheduler::GetRemainingChangeList(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -337,7 +371,7 @@ void JobScheduler::GetRemainingFileList(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -358,7 +392,7 @@ void JobScheduler::GetResourceEntry(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -381,7 +415,7 @@ void JobScheduler::GetShareUrl(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -428,7 +462,7 @@ void JobScheduler::CopyResource(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -449,7 +483,7 @@ void JobScheduler::CopyHostedDocument(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -474,7 +508,7 @@ void JobScheduler::MoveResource(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -518,7 +552,7 @@ void JobScheduler::TouchResource(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -581,7 +615,7 @@ void JobScheduler::AddNewDirectory(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -612,8 +646,7 @@ JobID JobScheduler::DownloadFile(
base::Bind(&JobScheduler::UpdateProgress,
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id));
- new_job->abort_callback =
- google_apis::CreateErrorRunCallback(download_action_callback);
+ new_job->abort_callback = CreateErrorRunCallback(download_action_callback);
StartJob(new_job);
return new_job->job_info.job_id;
}
@@ -651,7 +684,7 @@ void JobScheduler::UploadNewFile(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id);
new_job->task = base::Bind(&RunUploadNewFile, uploader_.get(), params);
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -688,7 +721,7 @@ void JobScheduler::UploadExistingFile(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id);
new_job->task = base::Bind(&RunUploadExistingFile, uploader_.get(), params);
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -725,7 +758,7 @@ void JobScheduler::CreateFile(
params.progress_callback = google_apis::ProgressCallback();
new_job->task = base::Bind(&RunUploadNewFile, uploader_.get(), params);
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -745,7 +778,7 @@ void JobScheduler::GetResourceListInDirectoryByWapi(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
@@ -764,7 +797,7 @@ void JobScheduler::GetRemainingResourceList(
weak_ptr_factory_.GetWeakPtr(),
new_job->job_info.job_id,
callback));
- new_job->abort_callback = google_apis::CreateErrorRunCallback(callback);
+ new_job->abort_callback = CreateErrorRunCallback(callback);
StartJob(new_job);
}
« no previous file with comments | « no previous file | chrome/browser/google_apis/task_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698