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
3// found in the LICENSE file.
4
5// Interface for a device that receives input events.
6// This interface handles input event messages defined in event.proto.
7
8#ifndef REMOTING_PROTOCOL_INPUT_STUB_H_
9#define REMOTING_PROTOCOL_INPUT_STUB_H_
10
11#include "base/basictypes.h"
12
13namespace remoting {
14namespace protocol {
15
16class KeyEvent;
17class TextEvent;
18class MouseEvent;
19
20class InputStub {
21 public:
22  InputStub() {}
23  virtual ~InputStub() {}
24
25  // Implementations must never assume the presence of any |event| fields,
26  // nor assume that their contents are valid.
27  virtual void InjectKeyEvent(const KeyEvent& event) = 0;
28  virtual void InjectTextEvent(const TextEvent& event) = 0;
29  virtual void InjectMouseEvent(const MouseEvent& event) = 0;
30
31 private:
32  DISALLOW_COPY_AND_ASSIGN(InputStub);
33};
34
35}  // namespace protocol
36}  // namespace remoting
37
38#endif  // REMOTING_PROTOCOL_INPUT_STUB_H_
39