Chromium Code Reviews| 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 |