ipc/chromium/src/base/waitable_event_watcher_win.cc

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
     2 // Use of this source code is governed by a BSD-style license that can be
     3 // found in the LICENSE file.
     5 #include "base/waitable_event_watcher.h"
     7 #include "base/compiler_specific.h"
     8 #include "base/object_watcher.h"
     9 #include "base/waitable_event.h"
    11 namespace base {
    13 WaitableEventWatcher::ObjectWatcherHelper::ObjectWatcherHelper(
    14     WaitableEventWatcher* watcher)
    15     : watcher_(watcher) {
    16 };
    18 void WaitableEventWatcher::ObjectWatcherHelper::OnObjectSignaled(HANDLE h) {
    19   watcher_->OnObjectSignaled();
    20 }
    23 WaitableEventWatcher::WaitableEventWatcher()
    24     : event_(NULL),
    25       ALLOW_THIS_IN_INITIALIZER_LIST(helper_(this)),
    26       delegate_(NULL) {
    27 }
    29 WaitableEventWatcher::~WaitableEventWatcher() {
    30 }
    32 bool WaitableEventWatcher::StartWatching(WaitableEvent* event,
    33                                          Delegate* delegate) {
    34   delegate_ = delegate;
    35   event_ = event;
    37   return watcher_.StartWatching(event->handle(), &helper_);
    38 }
    40 void WaitableEventWatcher::StopWatching() {
    41   delegate_ = NULL;
    42   event_ = NULL;
    43   watcher_.StopWatching();
    44 }
    46 WaitableEvent* WaitableEventWatcher::GetWatchedEvent() {
    47   return event_;
    48 }
    50 void WaitableEventWatcher::OnObjectSignaled() {
    51   WaitableEvent* event = event_;
    52   Delegate* delegate = delegate_;
    53   event_ = NULL;
    54   delegate_ = NULL;
    55   DCHECK(event);
    57   delegate->OnWaitableEventSignaled(event);
    58 }
    60 }  // namespace base

mercurial