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

Unified Diff: chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.h

Issue 310383002: [SyncFS] Introduce CallbackTracker to handle callback abortion (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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
Index: chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.h
diff --git a/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.h b/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.h
new file mode 100644
index 0000000000000000000000000000000000000000..1110023056d8cfc6c88fff55e15d1fe955334fef
--- /dev/null
+++ b/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.h
@@ -0,0 +1,148 @@
+// This file was GENERATED by command:
+// pump.py callback_tracker_internal.h.pump
+// DO NOT EDIT BY HAND!!!
+
+
+// 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.
+
+#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_TRACKER_INTERNAL_H_
+#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_TRACKER_INTERNAL_H_
+
+#include "base/callback_internal.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/weak_ptr.h"
+#include "chrome/browser/sync_file_system/drive_backend/callback_tracker.h"
+
+namespace sync_file_system {
+namespace drive_backend {
+namespace internal {
+
+class AbortHelper;
+
+template <typename>
+struct InvokeAndInvalidateHelper;
+
+template <>
+struct InvokeAndInvalidateHelper<void()> {
+ static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
+ const base::Callback<void()>& callback) {
+ scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
+ if (deleter) {
+ callback.Run();
+ }
+ }
+};
+
+template <typename A1>
+struct InvokeAndInvalidateHelper<void(A1)> {
+ static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
+ const base::Callback<void(A1)>& callback, A1 a1) {
+ scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
+ if (deleter) {
+ callback.Run(base::internal::CallbackForward(a1));
+ }
+ }
+};
+
+template <typename A1, typename A2>
+struct InvokeAndInvalidateHelper<void(A1, A2)> {
+ static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
+ const base::Callback<void(A1, A2)>& callback, A1 a1, A2 a2) {
+ scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
+ if (deleter) {
+ callback.Run(base::internal::CallbackForward(a1),
+ base::internal::CallbackForward(a2));
+ }
+ }
+};
+
+template <typename A1, typename A2, typename A3>
+struct InvokeAndInvalidateHelper<void(A1, A2, A3)> {
+ static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
+ const base::Callback<void(A1, A2, A3)>& callback, A1 a1,
+ A2 a2, A3 a3) {
+ scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
+ if (deleter) {
+ callback.Run(base::internal::CallbackForward(a1),
+ base::internal::CallbackForward(a2),
+ base::internal::CallbackForward(a3));
+ }
+ }
+};
+
+template <typename A1, typename A2, typename A3, typename A4>
+struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4)> {
+ static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
+ const base::Callback<void(A1, A2, A3, A4)>& callback, A1 a1,
+ A2 a2, A3 a3, A4 a4) {
+ scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
+ if (deleter) {
+ callback.Run(base::internal::CallbackForward(a1),
+ base::internal::CallbackForward(a2),
+ base::internal::CallbackForward(a3),
+ base::internal::CallbackForward(a4));
+ }
+ }
+};
+
+template <typename A1, typename A2, typename A3, typename A4, typename A5>
+struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4, A5)> {
+ static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
+ const base::Callback<void(A1, A2, A3, A4, A5)>& callback,
+ A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
+ scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
+ if (deleter) {
+ callback.Run(base::internal::CallbackForward(a1),
+ base::internal::CallbackForward(a2),
+ base::internal::CallbackForward(a3),
+ base::internal::CallbackForward(a4),
+ base::internal::CallbackForward(a5));
+ }
+ }
+};
+
+template <typename A1, typename A2, typename A3, typename A4, typename A5,
+ typename A6>
+struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4, A5, A6)> {
+ static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
+ const base::Callback<void(A1, A2, A3, A4, A5, A6)>& callback,
+ A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
+ scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
+ if (deleter) {
+ callback.Run(base::internal::CallbackForward(a1),
+ base::internal::CallbackForward(a2),
+ base::internal::CallbackForward(a3),
+ base::internal::CallbackForward(a4),
+ base::internal::CallbackForward(a5),
+ base::internal::CallbackForward(a6));
+ }
+ }
+};
+
+template <typename A1, typename A2, typename A3, typename A4, typename A5,
+ typename A6, typename A7>
+struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4, A5, A6, A7)> {
+ static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
+ const base::Callback<void(A1, A2, A3, A4, A5, A6,
+ A7)>& callback, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
+ A7 a7) {
+ scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
+ if (deleter) {
+ callback.Run(base::internal::CallbackForward(a1),
+ base::internal::CallbackForward(a2),
+ base::internal::CallbackForward(a3),
+ base::internal::CallbackForward(a4),
+ base::internal::CallbackForward(a5),
+ base::internal::CallbackForward(a6),
+ base::internal::CallbackForward(a7));
+ }
+ }
+};
+
+} // namespace internal
+} // namespace drive_backend
+} // namespace sync_file_system
+
+#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_TRACKER_INTERNAL_H_

Powered by Google App Engine
This is Rietveld 408576698