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 of a client that receives commands from a Chromoting host.
6 //
7 // This interface is responsible for a subset of control messages sent to
8 // the Chromoting client.
9 
10 #ifndef REMOTING_PROTOCOL_CLIENT_STUB_H_
11 #define REMOTING_PROTOCOL_CLIENT_STUB_H_
12 
13 #include "base/macros.h"
14 #include "remoting/protocol/clipboard_stub.h"
15 #include "remoting/protocol/cursor_shape_stub.h"
16 #include "remoting/protocol/keyboard_layout_stub.h"
17 
18 namespace remoting {
19 namespace protocol {
20 
21 class Capabilities;
22 class ExtensionMessage;
23 class PairingResponse;
24 class TransportInfo;
25 class VideoLayout;
26 
27 class ClientStub : public ClipboardStub,
28                    public CursorShapeStub,
29                    public KeyboardLayoutStub {
30  public:
ClientStub()31   ClientStub() {}
~ClientStub()32   ~ClientStub() override {}
33 
34   // Passes the set of capabilities supported by the host to the client.
35   virtual void SetCapabilities(const Capabilities& capabilities) = 0;
36 
37   // Passes a pairing response message to the client.
38   virtual void SetPairingResponse(const PairingResponse& pairing_response) = 0;
39 
40   // Deliver an extension message from the host to the client.
41   virtual void DeliverHostMessage(const ExtensionMessage& message) = 0;
42 
43   // Sets video layout.
44   virtual void SetVideoLayout(const VideoLayout& video_layout) = 0;
45 
46   // Passes the host's transport info to the client.
47   virtual void SetTransportInfo(const TransportInfo& transport_info) = 0;
48 
49  private:
50   DISALLOW_COPY_AND_ASSIGN(ClientStub);
51 };
52 
53 }  // namespace protocol
54 }  // namespace remoting
55 
56 #endif  // REMOTING_PROTOCOL_CLIENT_STUB_H_
57