15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Interface of a client that receives commands from a Chromoting host.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This interface is responsible for a subset of control messages sent to
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the Chromoting client.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef REMOTING_PROTOCOL_CLIENT_STUB_H_
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define REMOTING_PROTOCOL_CLIENT_STUB_H_
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/clipboard_stub.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/cursor_shape_stub.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace remoting {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace protocol {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class Capabilities;
21c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdochclass ExtensionMessage;
22b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)class PairingResponse;
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ClientStub : public ClipboardStub,
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   public CursorShapeStub {
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ClientStub() {}
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~ClientStub() {}
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  // Passes the set of capabilities supported by the host to the client.
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void SetCapabilities(const Capabilities& capabilities) = 0;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  // Passes a pairing response message to the client.
34868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  virtual void SetPairingResponse(const PairingResponse& pairing_response) = 0;
35b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
36c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch  // Deliver an extension message from the host to the client.
37c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch  virtual void DeliverHostMessage(const ExtensionMessage& message) = 0;
38c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ClientStub);
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace protocol
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace remoting
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // REMOTING_PROTOCOL_CLIENT_STUB_H_
47