// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "remoting/host/local_input_monitor.h" #include "base/compiler_specific.h" #include "base/logging.h" #include "remoting/host/chromoting_host.h" #include "remoting/host/local_input_monitor_thread_win.h" namespace { class LocalInputMonitorWin : public remoting::LocalInputMonitor { public: LocalInputMonitorWin(); ~LocalInputMonitorWin(); virtual void Start(remoting::ChromotingHost* host) OVERRIDE; virtual void Stop() OVERRIDE; private: DISALLOW_COPY_AND_ASSIGN(LocalInputMonitorWin); remoting::ChromotingHost* chromoting_host_; }; } // namespace LocalInputMonitorWin::LocalInputMonitorWin() : chromoting_host_(NULL) { } LocalInputMonitorWin::~LocalInputMonitorWin() { DCHECK(chromoting_host_ == NULL); } void LocalInputMonitorWin::Start(remoting::ChromotingHost* host) { DCHECK(chromoting_host_ == NULL); chromoting_host_ = host; remoting::LocalInputMonitorThread::AddHostToInputMonitor(chromoting_host_); } void LocalInputMonitorWin::Stop() { DCHECK(chromoting_host_ != NULL); remoting::LocalInputMonitorThread::RemoveHostFromInputMonitor( chromoting_host_); chromoting_host_ = NULL; } remoting::LocalInputMonitor* remoting::LocalInputMonitor::Create() { return new LocalInputMonitorWin; }