diff options
author | alexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-25 06:01:12 +0000 |
---|---|---|
committer | alexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-25 06:01:12 +0000 |
commit | 231316ac73519128e33c4cf0dcf3777cc362755a (patch) | |
tree | 52aac28e7dc43325efc860a8f8cdf64503b79c50 /remoting/host/client_session_control.h | |
parent | cf32b6c125778c8c116a51bc4035e39a85627aa0 (diff) | |
download | chromium_src-231316ac73519128e33c4cf0dcf3777cc362755a.zip chromium_src-231316ac73519128e33c4cf0dcf3777cc362755a.tar.gz chromium_src-231316ac73519128e33c4cf0dcf3777cc362755a.tar.bz2 |
Removed task runners from the DesktopEnviroment interface and introduced ScreenControls/ClientSessionControl interfaces.
This CL removes all task runners that used to be passed to methods of DesktopEnviroment and DesktopEnviromentFactory interfaces. Instead each object implementing these interfaces receives the set of task runners it needs in the constructor. This change makes DesktopEnviroment and DesktopEnviromentFactory interfaces cleaner and easier to implement.
Added the ScreenControls interface used by the client session to change the screen resolution. Objects implementing ScreenControls are created by DesktopEnvironment::CreateScreenControls() method.
DesktopEnviromentFactory::Create() now receives a pointer to the ClientSessionControl interface providing a way to pause, resume, and disconnect the client session. It also receives notifications about the local mouse movements to temporarily block the remote input. The ClientSessionControl interface will be hooked up to the local impit monitor and the host UI once they will be moved to DesktopEnvironment.
BUG=104544
Review URL: https://chromiumcodereview.appspot.com/12879006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190345 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/host/client_session_control.h')
-rw-r--r-- | remoting/host/client_session_control.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/remoting/host/client_session_control.h b/remoting/host/client_session_control.h new file mode 100644 index 0000000..7d46586 --- /dev/null +++ b/remoting/host/client_session_control.h @@ -0,0 +1,40 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef REMOTING_HOST_CLIENT_SESSION_CONTROL_H_ +#define REMOTING_HOST_CLIENT_SESSION_CONTROL_H_ + +#include "base/basictypes.h" +#include "remoting/host/mouse_move_observer.h" +#include "third_party/skia/include/core/SkPoint.h" + +namespace remoting { + +// Allows the desktop environment to disconnect the client session and +// to control the remote input handling (i.e. disable, enable, and pause +// temporarily if the local mouse movements are detected). +// +// TODO(alexeypa): remove the MouseMoveObserver interface entirely. +// See http://crbug.com/104544. +class ClientSessionControl : public MouseMoveObserver { + public: + virtual ~ClientSessionControl() {} + + // Returns the authenticated JID of the client session. + virtual const std::string& client_jid() const = 0; + + // Disconnects the client session, tears down transport resources and stops + // scheduler components. + virtual void DisconnectSession() = 0; + + // Called when local mouse movement is detected. + virtual void OnLocalMouseMoved(const SkIPoint& position) = 0; + + // Disables or enables the remote input in the client session. + virtual void SetDisableInputs(bool disable_inputs) = 0; +}; + +} // namespace remoting + +#endif // REMOTING_HOST_CLIENT_SESSION_CONTROL_H_ |