Index: base/synchronization/waitable_event_watcher_unittest.cc |
diff --git a/base/synchronization/waitable_event_watcher_unittest.cc b/base/synchronization/waitable_event_watcher_unittest.cc |
index 03ab800899c1e8abe088647fd1d88a2a6cfccd1d..a35c7c9ecdee0976f367f3cbe90f557b2dc48e59 100644 |
--- a/base/synchronization/waitable_event_watcher_unittest.cc |
+++ b/base/synchronization/waitable_event_watcher_unittest.cc |
@@ -2,6 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/bind.h" |
+#include "base/callback.h" |
#include "base/message_loop.h" |
#include "base/synchronization/waitable_event.h" |
#include "base/synchronization/waitable_event_watcher.h" |
@@ -23,18 +25,15 @@ const MessageLoop::Type testing_message_loops[] = { |
const int kNumTestingMessageLoops = arraysize(testing_message_loops); |
-class QuitDelegate : public WaitableEventWatcher::Delegate { |
- public: |
- virtual void OnWaitableEventSignaled(WaitableEvent* event) OVERRIDE { |
- MessageLoop::current()->QuitWhenIdle(); |
- } |
-}; |
+void QuitWhenSignaled(WaitableEvent* event) { |
+ MessageLoop::current()->QuitWhenIdle(); |
+} |
-class DecrementCountDelegate : public WaitableEventWatcher::Delegate { |
+class DecrementCountContainer { |
public: |
- explicit DecrementCountDelegate(int* counter) : counter_(counter) { |
+ explicit DecrementCountContainer(int* counter) : counter_(counter) { |
} |
- virtual void OnWaitableEventSignaled(WaitableEvent* object) OVERRIDE { |
+ void OnWaitableEventSignaled(WaitableEvent* object) { |
--(*counter_); |
} |
private: |
@@ -50,8 +49,7 @@ void RunTest_BasicSignal(MessageLoop::Type message_loop_type) { |
WaitableEventWatcher watcher; |
EXPECT_TRUE(watcher.GetWatchedEvent() == NULL); |
- QuitDelegate delegate; |
- watcher.StartWatching(&event, &delegate); |
+ watcher.StartWatching(&event, Bind(&QuitWhenSignaled)); |
EXPECT_EQ(&event, watcher.GetWatchedEvent()); |
event.Signal(); |
@@ -69,8 +67,7 @@ void RunTest_BasicCancel(MessageLoop::Type message_loop_type) { |
WaitableEventWatcher watcher; |
- QuitDelegate delegate; |
- watcher.StartWatching(&event, &delegate); |
+ watcher.StartWatching(&event, Bind(&QuitWhenSignaled)); |
watcher.StopWatching(); |
} |
@@ -84,9 +81,11 @@ void RunTest_CancelAfterSet(MessageLoop::Type message_loop_type) { |
WaitableEventWatcher watcher; |
int counter = 1; |
- DecrementCountDelegate delegate(&counter); |
- |
- watcher.StartWatching(&event, &delegate); |
+ DecrementCountContainer delegate(&counter); |
+ WaitableEventWatcher::EventCallback callback = |
+ Bind(&DecrementCountContainer::OnWaitableEventSignaled, |
+ Unretained(&delegate)); |
+ watcher.StartWatching(&event, callback); |
event.Signal(); |
@@ -111,8 +110,7 @@ void RunTest_OutlivesMessageLoop(MessageLoop::Type message_loop_type) { |
{ |
MessageLoop message_loop(message_loop_type); |
- QuitDelegate delegate; |
- watcher.StartWatching(&event, &delegate); |
+ watcher.StartWatching(&event, Bind(&QuitWhenSignaled)); |
} |
} |
} |
@@ -127,8 +125,8 @@ void RunTest_DeleteUnder(MessageLoop::Type message_loop_type) { |
WaitableEventWatcher watcher; |
WaitableEvent* event = new WaitableEvent(false, false); |
- QuitDelegate delegate; |
- watcher.StartWatching(event, &delegate); |
+ |
+ watcher.StartWatching(event, Bind(&QuitWhenSignaled)); |
delete event; |
} |
} |