OLD | NEW |
---|---|
1 // This file was GENERATED by command: | |
2 // pump.py callback_registry.h.pump | |
3 // DO NOT EDIT BY HAND!!! | |
4 | |
5 | |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 6 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 7 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 8 // found in the LICENSE file. |
4 | 9 |
5 #ifndef BASE_CALLBACK_REGISTRY_H_ | 10 #ifndef BASE_CALLBACK_REGISTRY_H_ |
6 #define BASE_CALLBACK_REGISTRY_H_ | 11 #define BASE_CALLBACK_REGISTRY_H_ |
7 | 12 |
8 #include <list> | 13 #include <list> |
9 | 14 |
10 #include "base/basictypes.h" | 15 #include "base/basictypes.h" |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
166 | 171 |
167 private: | 172 private: |
168 std::list<CallbackType> callbacks_; | 173 std::list<CallbackType> callbacks_; |
169 int active_iterator_count_; | 174 int active_iterator_count_; |
170 | 175 |
171 DISALLOW_COPY_AND_ASSIGN(CallbackRegistryBase); | 176 DISALLOW_COPY_AND_ASSIGN(CallbackRegistryBase); |
172 }; | 177 }; |
173 | 178 |
174 } // namespace internal | 179 } // namespace internal |
175 | 180 |
176 template <typename Details> | 181 template <typename Sig> class CallbackRegistry; |
177 class CallbackRegistry | 182 template <> |
178 : public internal::CallbackRegistryBase<Callback<void(const Details&)> > { | 183 class CallbackRegistry<void(void)> |
179 public: | 184 : public internal::CallbackRegistryBase<Callback<void(void)> > { |
180 CallbackRegistry() {} | 185 public: |
181 | 186 typedef Callback<void(void)> CallbackType; |
182 // Execute all active callbacks with |details| parameter. | 187 |
183 void Notify(const Details& details) { | 188 CallbackRegistry() {} |
184 typename internal::CallbackRegistryBase< | 189 |
185 Callback<void(const Details&)> >::Iterator it = this->GetIterator(); | |
186 Callback<void(const Details&)>* cb; | |
187 while((cb = it.GetNext()) != NULL) { | |
188 cb->Run(details); | |
189 } | |
190 } | |
191 | |
192 private: | |
193 DISALLOW_COPY_AND_ASSIGN(CallbackRegistry); | |
194 }; | |
195 | |
196 template <> class CallbackRegistry<void> | |
197 : public internal::CallbackRegistryBase<Closure> { | |
198 public: | |
199 CallbackRegistry() {} | |
200 | |
201 // Execute all active callbacks. | |
202 void Notify() { | 190 void Notify() { |
203 Iterator it = this->GetIterator(); | 191 typename internal::CallbackRegistryBase<CallbackType>::Iterator it = |
204 Closure* cb; | 192 this->GetIterator(); |
193 CallbackType* cb; | |
205 while((cb = it.GetNext()) != NULL) { | 194 while((cb = it.GetNext()) != NULL) { |
206 cb->Run(); | 195 cb->Run(); |
207 } | 196 } |
208 } | 197 } |
209 | 198 |
210 private: | 199 private: |
211 DISALLOW_COPY_AND_ASSIGN(CallbackRegistry); | 200 DISALLOW_COPY_AND_ASSIGN(CallbackRegistry); |
201 | |
erikwright (departed)
2013/09/13 15:05:56
remove blanks
Cait (Slow)
2013/09/13 19:07:58
Done.
| |
202 | |
203 }; | |
204 | |
205 template <typename A1> | |
206 class CallbackRegistry<void(const A1&)> | |
207 : public internal::CallbackRegistryBase< | |
208 Callback<void(const A1&)> > { | |
209 public: | |
210 typedef Callback<void(const A1&)> CallbackType; | |
211 | |
212 CallbackRegistry() {} | |
213 | |
214 void Notify(const A1& a1) { | |
awong
2013/09/12 21:17:47
BTW, forgot to mention...we should explicitly spec
erikwright (departed)
2013/09/13 15:05:56
What's the danger here? It will fail to compile, a
Cait (Slow)
2013/09/13 19:07:58
So will I need to create something similar to Call
| |
215 typename internal::CallbackRegistryBase<CallbackType>::Iterator it = | |
216 this->GetIterator(); | |
217 CallbackType* cb; | |
218 while((cb = it.GetNext()) != NULL) { | |
219 cb->Run(a1); | |
220 } | |
221 } | |
222 | |
223 private: | |
224 DISALLOW_COPY_AND_ASSIGN(CallbackRegistry); | |
225 | |
226 | |
227 }; | |
228 | |
229 template <typename A1, typename A2> | |
230 class CallbackRegistry<void(const A1&, const A2&)> | |
231 : public internal::CallbackRegistryBase< | |
232 Callback<void(const A1&, const A2&)> > { | |
233 public: | |
234 typedef Callback<void(const A1&, const A2&)> CallbackType; | |
235 | |
236 CallbackRegistry() {} | |
237 | |
238 void Notify(const A1& a1, const A2& a2) { | |
239 typename internal::CallbackRegistryBase<CallbackType>::Iterator it = | |
240 this->GetIterator(); | |
241 CallbackType* cb; | |
242 while((cb = it.GetNext()) != NULL) { | |
243 cb->Run(a1, a2); | |
244 } | |
245 } | |
246 | |
247 private: | |
248 DISALLOW_COPY_AND_ASSIGN(CallbackRegistry); | |
249 | |
250 | |
251 }; | |
252 | |
253 template <typename A1, typename A2, typename A3> | |
254 class CallbackRegistry<void(const A1&, const A2&, const A3&)> | |
255 : public internal::CallbackRegistryBase< | |
256 Callback<void(const A1&, const A2&, const A3&)> > { | |
257 public: | |
258 typedef Callback<void(const A1&, const A2&, const A3&)> CallbackType; | |
259 | |
260 CallbackRegistry() {} | |
261 | |
262 void Notify(const A1& a1, const A2& a2, const A3& a3) { | |
263 typename internal::CallbackRegistryBase<CallbackType>::Iterator it = | |
264 this->GetIterator(); | |
265 CallbackType* cb; | |
266 while((cb = it.GetNext()) != NULL) { | |
267 cb->Run(a1, a2, a3); | |
268 } | |
269 } | |
270 | |
271 private: | |
272 DISALLOW_COPY_AND_ASSIGN(CallbackRegistry); | |
273 | |
274 | |
275 }; | |
276 | |
277 template <typename A1, typename A2, typename A3, typename A4> | |
278 class CallbackRegistry<void(const A1&, const A2&, const A3&, const A4&)> | |
279 : public internal::CallbackRegistryBase< | |
280 Callback<void(const A1&, const A2&, const A3&, const A4&)> > { | |
281 public: | |
282 typedef Callback<void(const A1&, const A2&, const A3&, | |
283 const A4&)> CallbackType; | |
284 | |
285 CallbackRegistry() {} | |
286 | |
287 void Notify(const A1& a1, const A2& a2, const A3& a3, const A4& a4) { | |
288 typename internal::CallbackRegistryBase<CallbackType>::Iterator it = | |
289 this->GetIterator(); | |
290 CallbackType* cb; | |
291 while((cb = it.GetNext()) != NULL) { | |
292 cb->Run(a1, a2, a3, a4); | |
293 } | |
294 } | |
295 | |
296 private: | |
297 DISALLOW_COPY_AND_ASSIGN(CallbackRegistry); | |
298 | |
299 | |
300 }; | |
301 | |
302 template <typename A1, typename A2, typename A3, typename A4, typename A5> | |
303 class CallbackRegistry<void(const A1&, const A2&, const A3&, const A4&, | |
304 const A5&)> | |
305 : public internal::CallbackRegistryBase< | |
306 Callback<void(const A1&, const A2&, const A3&, const A4&, | |
307 const A5&)> > { | |
308 public: | |
309 typedef Callback<void(const A1&, const A2&, const A3&, const A4&, | |
310 const A5&)> CallbackType; | |
311 | |
312 CallbackRegistry() {} | |
313 | |
314 void Notify(const A1& a1, const A2& a2, const A3& a3, const A4& a4, | |
315 const A5& a5) { | |
316 typename internal::CallbackRegistryBase<CallbackType>::Iterator it = | |
317 this->GetIterator(); | |
318 CallbackType* cb; | |
319 while((cb = it.GetNext()) != NULL) { | |
320 cb->Run(a1, a2, a3, a4, a5); | |
321 } | |
322 } | |
323 | |
324 private: | |
325 DISALLOW_COPY_AND_ASSIGN(CallbackRegistry); | |
326 | |
327 | |
328 }; | |
329 | |
330 template <typename A1, typename A2, typename A3, typename A4, typename A5, | |
331 typename A6> | |
332 class CallbackRegistry<void(const A1&, const A2&, const A3&, const A4&, | |
333 const A5&, const A6&)> | |
334 : public internal::CallbackRegistryBase< | |
335 Callback<void(const A1&, const A2&, const A3&, const A4&, const A5&, | |
336 const A6&)> > { | |
337 public: | |
338 typedef Callback<void(const A1&, const A2&, const A3&, const A4&, const A5&, | |
339 const A6&)> CallbackType; | |
340 | |
341 CallbackRegistry() {} | |
342 | |
343 void Notify(const A1& a1, const A2& a2, const A3& a3, const A4& a4, | |
344 const A5& a5, const A6& a6) { | |
345 typename internal::CallbackRegistryBase<CallbackType>::Iterator it = | |
346 this->GetIterator(); | |
347 CallbackType* cb; | |
348 while((cb = it.GetNext()) != NULL) { | |
349 cb->Run(a1, a2, a3, a4, a5, a6); | |
350 } | |
351 } | |
352 | |
353 private: | |
354 DISALLOW_COPY_AND_ASSIGN(CallbackRegistry); | |
355 | |
356 | |
357 }; | |
358 | |
359 template <typename A1, typename A2, typename A3, typename A4, typename A5, | |
360 typename A6, typename A7> | |
361 class CallbackRegistry<void(const A1&, const A2&, const A3&, const A4&, | |
362 const A5&, const A6&, const A7&)> | |
363 : public internal::CallbackRegistryBase< | |
364 Callback<void(const A1&, const A2&, const A3&, const A4&, const A5&, | |
365 const A6&, const A7&)> > { | |
366 public: | |
367 typedef Callback<void(const A1&, const A2&, const A3&, const A4&, const A5&, | |
368 const A6&, const A7&)> CallbackType; | |
369 | |
370 CallbackRegistry() {} | |
371 | |
372 void Notify(const A1& a1, const A2& a2, const A3& a3, const A4& a4, | |
373 const A5& a5, const A6& a6, const A7& a7) { | |
374 typename internal::CallbackRegistryBase<CallbackType>::Iterator it = | |
375 this->GetIterator(); | |
376 CallbackType* cb; | |
377 while((cb = it.GetNext()) != NULL) { | |
378 cb->Run(a1, a2, a3, a4, a5, a6, a7); | |
379 } | |
380 } | |
381 | |
382 private: | |
383 DISALLOW_COPY_AND_ASSIGN(CallbackRegistry); | |
384 | |
385 | |
212 }; | 386 }; |
213 | 387 |
214 } // namespace base | 388 } // namespace base |
215 | 389 |
216 #endif // BASE_CALLBACK_REGISTRY_H_ | 390 #endif // BASE_CALLBACK_REGISTRY_H |
OLD | NEW |