OLD | NEW |
1 // This file was GENERATED by command: | |
2 // pump.py callback_helper.h.pump | |
3 // DO NOT EDIT BY HAND!!! | |
4 | |
5 | |
6 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
7 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
8 // found in the LICENSE file. | 3 // found in the LICENSE file. |
9 | 4 |
10 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_HELPER_H_ | 5 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_HELPER_H_ |
11 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_HELPER_H_ | 6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_HELPER_H_ |
12 | 7 |
13 #include "base/bind.h" | 8 #include "base/bind.h" |
14 #include "base/location.h" | 9 #include "base/location.h" |
15 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 scoped_refptr<base::SequencedTaskRunner> task_runner_; | 60 scoped_refptr<base::SequencedTaskRunner> task_runner_; |
66 const tracked_objects::Location from_here_; | 61 const tracked_objects::Location from_here_; |
67 scoped_ptr<base::Callback<T> > callback_; | 62 scoped_ptr<base::Callback<T> > callback_; |
68 | 63 |
69 DISALLOW_COPY_AND_ASSIGN(CallbackHolder); | 64 DISALLOW_COPY_AND_ASSIGN(CallbackHolder); |
70 }; | 65 }; |
71 | 66 |
72 template <typename> | 67 template <typename> |
73 struct RelayToTaskRunnerHelper; | 68 struct RelayToTaskRunnerHelper; |
74 | 69 |
75 template <> | 70 template <typename... Args> |
76 struct RelayToTaskRunnerHelper<void()> { | 71 struct RelayToTaskRunnerHelper<void(Args...)> { |
77 static void Run(CallbackHolder<void()>* holder) { | 72 static void Run(CallbackHolder<void(Args...)>* holder, Args... args) { |
78 holder->task_runner()->PostTask( | 73 holder->task_runner()->PostTask( |
79 holder->from_here(), base::Bind(holder->callback())); | 74 holder->from_here(), |
| 75 base::Bind(holder->callback(), |
| 76 RebindForward(args)...)); |
80 } | 77 } |
81 }; | 78 }; |
82 | 79 |
83 template <typename A1> | |
84 struct RelayToTaskRunnerHelper<void(A1)> { | |
85 static void Run(CallbackHolder<void(A1)>* holder, A1 a1) { | |
86 holder->task_runner()->PostTask( | |
87 holder->from_here(), base::Bind(holder->callback(), RebindForward(a1))); | |
88 } | |
89 }; | |
90 | |
91 template <typename A1, typename A2> | |
92 struct RelayToTaskRunnerHelper<void(A1, A2)> { | |
93 static void Run(CallbackHolder<void(A1, A2)>* holder, A1 a1, A2 a2) { | |
94 holder->task_runner()->PostTask( | |
95 holder->from_here(), base::Bind(holder->callback(), RebindForward(a1), | |
96 RebindForward(a2))); | |
97 } | |
98 }; | |
99 | |
100 template <typename A1, typename A2, typename A3> | |
101 struct RelayToTaskRunnerHelper<void(A1, A2, A3)> { | |
102 static void Run(CallbackHolder<void(A1, A2, A3)>* holder, A1 a1, A2 a2, | |
103 A3 a3) { | |
104 holder->task_runner()->PostTask( | |
105 holder->from_here(), base::Bind(holder->callback(), RebindForward(a1), | |
106 RebindForward(a2), RebindForward(a3))); | |
107 } | |
108 }; | |
109 | |
110 template <typename A1, typename A2, typename A3, typename A4> | |
111 struct RelayToTaskRunnerHelper<void(A1, A2, A3, A4)> { | |
112 static void Run(CallbackHolder<void(A1, A2, A3, A4)>* holder, A1 a1, A2 a2, | |
113 A3 a3, A4 a4) { | |
114 holder->task_runner()->PostTask( | |
115 holder->from_here(), base::Bind(holder->callback(), RebindForward(a1), | |
116 RebindForward(a2), RebindForward(a3), RebindForward(a4))); | |
117 } | |
118 }; | |
119 | |
120 template <typename A1, typename A2, typename A3, typename A4, typename A5> | |
121 struct RelayToTaskRunnerHelper<void(A1, A2, A3, A4, A5)> { | |
122 static void Run(CallbackHolder<void(A1, A2, A3, A4, A5)>* holder, A1 a1, | |
123 A2 a2, A3 a3, A4 a4, A5 a5) { | |
124 holder->task_runner()->PostTask( | |
125 holder->from_here(), base::Bind(holder->callback(), RebindForward(a1), | |
126 RebindForward(a2), RebindForward(a3), RebindForward(a4), | |
127 RebindForward(a5))); | |
128 } | |
129 }; | |
130 | |
131 template <typename A1, typename A2, typename A3, typename A4, typename A5, | |
132 typename A6> | |
133 struct RelayToTaskRunnerHelper<void(A1, A2, A3, A4, A5, A6)> { | |
134 static void Run(CallbackHolder<void(A1, A2, A3, A4, A5, A6)>* holder, A1 a1, | |
135 A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { | |
136 holder->task_runner()->PostTask( | |
137 holder->from_here(), base::Bind(holder->callback(), RebindForward(a1), | |
138 RebindForward(a2), RebindForward(a3), RebindForward(a4), | |
139 RebindForward(a5), RebindForward(a6))); | |
140 } | |
141 }; | |
142 | |
143 template <typename A1, typename A2, typename A3, typename A4, typename A5, | |
144 typename A6, typename A7> | |
145 struct RelayToTaskRunnerHelper<void(A1, A2, A3, A4, A5, A6, A7)> { | |
146 static void Run(CallbackHolder<void(A1, A2, A3, A4, A5, A6, A7)>* holder, | |
147 A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { | |
148 holder->task_runner()->PostTask( | |
149 holder->from_here(), base::Bind(holder->callback(), RebindForward(a1), | |
150 RebindForward(a2), RebindForward(a3), RebindForward(a4), | |
151 RebindForward(a5), RebindForward(a6), RebindForward(a7))); | |
152 } | |
153 }; | |
154 | |
155 } // namespace internal | 80 } // namespace internal |
156 | 81 |
157 template <typename T> | 82 template <typename T> |
158 base::Callback<T> RelayCallbackToTaskRunner( | 83 base::Callback<T> RelayCallbackToTaskRunner( |
159 const scoped_refptr<base::SequencedTaskRunner>& task_runner, | 84 const scoped_refptr<base::SequencedTaskRunner>& task_runner, |
160 const tracked_objects::Location& from_here, | 85 const tracked_objects::Location& from_here, |
161 const base::Callback<T>& callback) { | 86 const base::Callback<T>& callback) { |
162 DCHECK(task_runner->RunsTasksOnCurrentThread()); | 87 DCHECK(task_runner->RunsTasksOnCurrentThread()); |
163 | 88 |
164 if (callback.is_null()) | 89 if (callback.is_null()) |
(...skipping 10 matching lines...) Expand all Loading... |
175 const base::Callback<T>& callback) { | 100 const base::Callback<T>& callback) { |
176 return RelayCallbackToTaskRunner( | 101 return RelayCallbackToTaskRunner( |
177 base::ThreadTaskRunnerHandle::Get(), | 102 base::ThreadTaskRunnerHandle::Get(), |
178 from_here, callback); | 103 from_here, callback); |
179 } | 104 } |
180 | 105 |
181 } // namespace drive_backend | 106 } // namespace drive_backend |
182 } // namespace sync_file_system | 107 } // namespace sync_file_system |
183 | 108 |
184 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_HELPER_H_ | 109 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_HELPER_H_ |
OLD | NEW |