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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // This file was GENERATED by command:
2 // pump.py callback_tracker_internal.h.pump
3 // DO NOT EDIT BY HAND!!!
4
5
6 // Copyright 2014 The Chromium Authors. All rights reserved.
7 // Use of this source code is governed by a BSD-style license that can be
8 // found in the LICENSE file.
9
10 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_TRACKER_INTERNAL_ H_
11 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_TRACKER_INTERNAL_ H_
12
13 #include "base/callback_internal.h"
14 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/weak_ptr.h"
16 #include "chrome/browser/sync_file_system/drive_backend/callback_tracker.h"
17
18 namespace sync_file_system {
19 namespace drive_backend {
20
21 class CallbackTracker;
22
23 namespace internal {
24
25 class AbortHelper {
26 public:
27 explicit AbortHelper(CallbackTracker* tracker);
28 ~AbortHelper();
29 base::WeakPtr<AbortHelper> AsWeakPtr();
30
31 static scoped_ptr<AbortHelper> TakeOwnership(
32 const base::WeakPtr<AbortHelper>& abort_helper);
33
34 private:
35 CallbackTracker* tracker_; // Not owned.
36 base::WeakPtrFactory<AbortHelper> weak_ptr_factory_;
37
38 DISALLOW_COPY_AND_ASSIGN(AbortHelper);
39 };
40
41 template <typename>
42 struct InvokeAndInvalidateHelper;
43
44 template <typename>
peria 2014/06/04 08:24:41 Duplicate with just above lines. Remove either one
tzik 2014/06/04 08:48:34 Done.
45 struct InvokeAndInvalidateHelper;
46
47 template <>
48 struct InvokeAndInvalidateHelper<void()> {
49 static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
50 const base::Callback<void()>& callback) {
51 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
52 if (deleter) {
53 callback.Run();
54 }
55 }
56 };
57
58 template <typename A1>
59 struct InvokeAndInvalidateHelper<void(A1)> {
60 static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
61 const base::Callback<void(A1)>& callback, A1 a1) {
62 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
63 if (deleter) {
64 callback.Run(base::internal::CallbackForward(a1));
65 }
66 }
67 };
68
69 template <typename A1, typename A2>
70 struct InvokeAndInvalidateHelper<void(A1, A2)> {
71 static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
72 const base::Callback<void(A1, A2)>& callback, A1 a1, A2 a2) {
73 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
74 if (deleter) {
75 callback.Run(base::internal::CallbackForward(a1),
76 base::internal::CallbackForward(a2));
77 }
78 }
79 };
80
81 template <typename A1, typename A2, typename A3>
82 struct InvokeAndInvalidateHelper<void(A1, A2, A3)> {
83 static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
84 const base::Callback<void(A1, A2, A3)>& callback, A1 a1,
85 A2 a2, A3 a3) {
86 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
87 if (deleter) {
88 callback.Run(base::internal::CallbackForward(a1),
89 base::internal::CallbackForward(a2),
90 base::internal::CallbackForward(a3));
91 }
92 }
93 };
94
95 template <typename A1, typename A2, typename A3, typename A4>
96 struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4)> {
97 static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
98 const base::Callback<void(A1, A2, A3, A4)>& callback, A1 a1,
99 A2 a2, A3 a3, A4 a4) {
100 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
101 if (deleter) {
102 callback.Run(base::internal::CallbackForward(a1),
103 base::internal::CallbackForward(a2),
104 base::internal::CallbackForward(a3),
105 base::internal::CallbackForward(a4));
106 }
107 }
108 };
109
110 template <typename A1, typename A2, typename A3, typename A4, typename A5>
111 struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4, A5)> {
112 static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
113 const base::Callback<void(A1, A2, A3, A4, A5)>& callback,
114 A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
115 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
116 if (deleter) {
117 callback.Run(base::internal::CallbackForward(a1),
118 base::internal::CallbackForward(a2),
119 base::internal::CallbackForward(a3),
120 base::internal::CallbackForward(a4),
121 base::internal::CallbackForward(a5));
122 }
123 }
124 };
125
126 template <typename A1, typename A2, typename A3, typename A4, typename A5,
127 typename A6>
128 struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4, A5, A6)> {
129 static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
130 const base::Callback<void(A1, A2, A3, A4, A5, A6)>& callback,
131 A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
132 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
133 if (deleter) {
134 callback.Run(base::internal::CallbackForward(a1),
135 base::internal::CallbackForward(a2),
136 base::internal::CallbackForward(a3),
137 base::internal::CallbackForward(a4),
138 base::internal::CallbackForward(a5),
139 base::internal::CallbackForward(a6));
140 }
141 }
142 };
143
144 template <typename A1, typename A2, typename A3, typename A4, typename A5,
145 typename A6, typename A7>
146 struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4, A5, A6, A7)> {
147 static void Run(const base::WeakPtr<AbortHelper>& abort_helper,
148 const base::Callback<void(A1, A2, A3, A4, A5, A6,
149 A7)>& callback, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
150 A7 a7) {
151 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper);
152 if (deleter) {
153 callback.Run(base::internal::CallbackForward(a1),
154 base::internal::CallbackForward(a2),
155 base::internal::CallbackForward(a3),
156 base::internal::CallbackForward(a4),
157 base::internal::CallbackForward(a5),
158 base::internal::CallbackForward(a6),
159 base::internal::CallbackForward(a7));
160 }
161 }
162 };
163
164 } // namespace internal
165 } // namespace drive_backend
166 } // namespace sync_file_system
167
168 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_TRACKER_INTERN AL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698