Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2181)

Unified Diff: base/synchronization/waitable_event_watcher_win.cc

Issue 12094106: Refactor: Simplify WaitableEventWatcher. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/synchronization/waitable_event_watcher_win.cc
diff --git a/base/synchronization/waitable_event_watcher_win.cc b/base/synchronization/waitable_event_watcher_win.cc
index 43e3c4700e3c5f65a39c6a28638ab39cc211d898..46d47ac581a8e3ff58f6d17a692fe3d5117196ae 100644
--- a/base/synchronization/waitable_event_watcher_win.cc
+++ b/base/synchronization/waitable_event_watcher_win.cc
@@ -10,35 +10,23 @@
namespace base {
-WaitableEventWatcher::ObjectWatcherHelper::ObjectWatcherHelper(
- WaitableEventWatcher* watcher)
- : watcher_(watcher) {
-};
-
-void WaitableEventWatcher::ObjectWatcherHelper::OnObjectSignaled(HANDLE h) {
- watcher_->OnObjectSignaled();
-}
-
-
WaitableEventWatcher::WaitableEventWatcher()
- : ALLOW_THIS_IN_INITIALIZER_LIST(helper_(this)),
- event_(NULL),
- delegate_(NULL) {
+ : event_(NULL) {
}
WaitableEventWatcher::~WaitableEventWatcher() {
}
-bool WaitableEventWatcher::StartWatching(WaitableEvent* event,
- Delegate* delegate) {
- delegate_ = delegate;
+bool WaitableEventWatcher::StartWatching(
+ WaitableEvent* event,
+ const EventCallback& callback) {
+ callback_ = callback;
event_ = event;
-
- return watcher_.StartWatching(event->handle(), &helper_);
+ return watcher_.StartWatching(event->handle(), this);
}
void WaitableEventWatcher::StopWatching() {
- delegate_ = NULL;
+ callback_.Reset();
event_ = NULL;
watcher_.StopWatching();
}
@@ -47,14 +35,14 @@ WaitableEvent* WaitableEventWatcher::GetWatchedEvent() {
return event_;
}
-void WaitableEventWatcher::OnObjectSignaled() {
+void WaitableEventWatcher::OnObjectSignaled(HANDLE h) {
WaitableEvent* event = event_;
- Delegate* delegate = delegate_;
+ EventCallback callback = callback_;
event_ = NULL;
- delegate_ = NULL;
+ callback_.Reset();
DCHECK(event);
- delegate->OnWaitableEventSignaled(event);
+ callback.Run(event);
}
} // namespace base
« no previous file with comments | « base/synchronization/waitable_event_watcher_unittest.cc ('k') | chrome/browser/browsing_data/browsing_data_remover.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698