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 #ifndef REMOTING_HOST_WIN_SESSION_INPUT_INJECTOR_H_ | 5 #ifndef REMOTING_HOST_WIN_SESSION_INPUT_INJECTOR_H_ |
6 #define REMOTING_HOST_WIN_SESSION_INPUT_INJECTOR_H_ | 6 #define REMOTING_HOST_WIN_SESSION_INPUT_INJECTOR_H_ |
7 | 7 |
| 8 #include <memory> |
| 9 |
8 #include "base/callback_forward.h" | 10 #include "base/callback_forward.h" |
9 #include "base/macros.h" | 11 #include "base/macros.h" |
10 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
11 #include "base/memory/scoped_ptr.h" | |
12 #include "remoting/host/input_injector.h" | 13 #include "remoting/host/input_injector.h" |
13 | 14 |
14 namespace base { | 15 namespace base { |
15 class SingleThreadTaskRunner; | 16 class SingleThreadTaskRunner; |
16 } // namespace base | 17 } // namespace base |
17 | 18 |
18 namespace remoting { | 19 namespace remoting { |
19 | 20 |
20 // Monitors and passes key/mouse events to a nested event executor. Injects | 21 // Monitors and passes key/mouse events to a nested event executor. Injects |
21 // Secure Attention Sequence (SAS) when Ctrl+Alt+Del key combination has been | 22 // Secure Attention Sequence (SAS) when Ctrl+Alt+Del key combination has been |
22 // detected. | 23 // detected. |
23 class SessionInputInjectorWin : public InputInjector { | 24 class SessionInputInjectorWin : public InputInjector { |
24 public: | 25 public: |
25 // |inject_sas| is invoked on |inject_sas_task_runner| to generate SAS on | 26 // |inject_sas| is invoked on |inject_sas_task_runner| to generate SAS on |
26 // Vista+. | 27 // Vista+. |
27 SessionInputInjectorWin( | 28 SessionInputInjectorWin( |
28 scoped_refptr<base::SingleThreadTaskRunner> input_task_runner, | 29 scoped_refptr<base::SingleThreadTaskRunner> input_task_runner, |
29 scoped_ptr<InputInjector> nested_executor, | 30 std::unique_ptr<InputInjector> nested_executor, |
30 scoped_refptr<base::SingleThreadTaskRunner> inject_sas_task_runner, | 31 scoped_refptr<base::SingleThreadTaskRunner> inject_sas_task_runner, |
31 const base::Closure& inject_sas); | 32 const base::Closure& inject_sas); |
32 ~SessionInputInjectorWin() override; | 33 ~SessionInputInjectorWin() override; |
33 | 34 |
34 // InputInjector implementation. | 35 // InputInjector implementation. |
35 void Start( | 36 void Start( |
36 scoped_ptr<protocol::ClipboardStub> client_clipboard) override; | 37 std::unique_ptr<protocol::ClipboardStub> client_clipboard) override; |
37 | 38 |
38 // protocol::ClipboardStub implementation. | 39 // protocol::ClipboardStub implementation. |
39 void InjectClipboardEvent( | 40 void InjectClipboardEvent( |
40 const protocol::ClipboardEvent& event) override; | 41 const protocol::ClipboardEvent& event) override; |
41 | 42 |
42 // protocol::InputStub implementation. | 43 // protocol::InputStub implementation. |
43 void InjectKeyEvent(const protocol::KeyEvent& event) override; | 44 void InjectKeyEvent(const protocol::KeyEvent& event) override; |
44 void InjectTextEvent(const protocol::TextEvent& event) override; | 45 void InjectTextEvent(const protocol::TextEvent& event) override; |
45 void InjectMouseEvent(const protocol::MouseEvent& event) override; | 46 void InjectMouseEvent(const protocol::MouseEvent& event) override; |
46 void InjectTouchEvent(const protocol::TouchEvent& event) override; | 47 void InjectTouchEvent(const protocol::TouchEvent& event) override; |
47 | 48 |
48 private: | 49 private: |
49 // The actual implementation resides in SessionInputInjectorWin::Core class. | 50 // The actual implementation resides in SessionInputInjectorWin::Core class. |
50 class Core; | 51 class Core; |
51 scoped_refptr<Core> core_; | 52 scoped_refptr<Core> core_; |
52 | 53 |
53 DISALLOW_COPY_AND_ASSIGN(SessionInputInjectorWin); | 54 DISALLOW_COPY_AND_ASSIGN(SessionInputInjectorWin); |
54 }; | 55 }; |
55 | 56 |
56 } // namespace remoting | 57 } // namespace remoting |
57 | 58 |
58 #endif // REMOTING_HOST_WIN_SESSION_INPUT_INJECTOR_H_ | 59 #endif // REMOTING_HOST_WIN_SESSION_INPUT_INJECTOR_H_ |
OLD | NEW |