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