| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // 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 |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/observer_list.h" | 5 #include "base/observer_list.h" |
| 6 #include "base/observer_list_threadsafe.h" | 6 #include "base/observer_list_threadsafe.h" |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 private: | 341 private: |
| 342 const scoped_refptr<ObserverListThreadSafe<Foo> > list_; | 342 const scoped_refptr<ObserverListThreadSafe<Foo> > list_; |
| 343 std::vector<Foo*> foos_; | 343 std::vector<Foo*> foos_; |
| 344 }; | 344 }; |
| 345 | 345 |
| 346 TEST(ObserverListThreadSafeTest, RemoveMultipleObservers) { | 346 TEST(ObserverListThreadSafeTest, RemoveMultipleObservers) { |
| 347 MessageLoop loop; | 347 MessageLoop loop; |
| 348 scoped_refptr<ObserverListThreadSafe<Foo> > observer_list( | 348 scoped_refptr<ObserverListThreadSafe<Foo> > observer_list( |
| 349 new ObserverListThreadSafe<Foo>); | 349 new ObserverListThreadSafe<Foo>); |
| 350 | 350 |
| 351 FooRemover a(observer_list); | 351 FooRemover a(observer_list.get()); |
| 352 Adder b(1); | 352 Adder b(1); |
| 353 | 353 |
| 354 observer_list->AddObserver(&a); | 354 observer_list->AddObserver(&a); |
| 355 observer_list->AddObserver(&b); | 355 observer_list->AddObserver(&b); |
| 356 | 356 |
| 357 a.AddFooToRemove(&a); | 357 a.AddFooToRemove(&a); |
| 358 a.AddFooToRemove(&b); | 358 a.AddFooToRemove(&b); |
| 359 | 359 |
| 360 observer_list->Notify(&Foo::Observe, 1); | 360 observer_list->Notify(&Foo::Observe, 1); |
| 361 RunLoop().RunUntilIdle(); | 361 RunLoop().RunUntilIdle(); |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 540 ListDestructor a(observer_list); | 540 ListDestructor a(observer_list); |
| 541 observer_list->AddObserver(&a); | 541 observer_list->AddObserver(&a); |
| 542 | 542 |
| 543 FOR_EACH_OBSERVER(Foo, *observer_list, Observe(0)); | 543 FOR_EACH_OBSERVER(Foo, *observer_list, Observe(0)); |
| 544 // If this test fails, there'll be Valgrind errors when this function goes out | 544 // If this test fails, there'll be Valgrind errors when this function goes out |
| 545 // of scope. | 545 // of scope. |
| 546 } | 546 } |
| 547 | 547 |
| 548 } // namespace | 548 } // namespace |
| 549 } // namespace base | 549 } // namespace base |
| OLD | NEW |