Home | History | Annotate | Download | only in win
      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 #ifndef REMOTING_HOST_WIN_SESSION_DESKTOP_ENVIRONMENT_H_
      6 #define REMOTING_HOST_WIN_SESSION_DESKTOP_ENVIRONMENT_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/callback.h"
     10 #include "base/compiler_specific.h"
     11 #include "base/memory/ref_counted.h"
     12 #include "remoting/host/me2me_desktop_environment.h"
     13 
     14 namespace remoting {
     15 
     16 // Used to create audio/video capturers and event executor that are compatible
     17 // with Windows sessions.
     18 class SessionDesktopEnvironment : public Me2MeDesktopEnvironment {
     19  public:
     20   virtual ~SessionDesktopEnvironment();
     21 
     22   // DesktopEnvironment implementation.
     23   virtual scoped_ptr<InputInjector> CreateInputInjector() OVERRIDE;
     24 
     25  private:
     26   friend class SessionDesktopEnvironmentFactory;
     27   SessionDesktopEnvironment(
     28       scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
     29       scoped_refptr<base::SingleThreadTaskRunner> input_task_runner,
     30       scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
     31       const base::Closure& inject_sas);
     32 
     33   // Used to ask the daemon to inject Secure Attention Sequence.
     34   base::Closure inject_sas_;
     35 
     36   DISALLOW_COPY_AND_ASSIGN(SessionDesktopEnvironment);
     37 };
     38 
     39 // Used to create |SessionDesktopEnvironment| instances.
     40 class SessionDesktopEnvironmentFactory : public Me2MeDesktopEnvironmentFactory {
     41  public:
     42   SessionDesktopEnvironmentFactory(
     43       scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
     44       scoped_refptr<base::SingleThreadTaskRunner> input_task_runner,
     45       scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
     46       const base::Closure& inject_sas);
     47   virtual ~SessionDesktopEnvironmentFactory();
     48 
     49   // DesktopEnvironmentFactory implementation.
     50   virtual scoped_ptr<DesktopEnvironment> Create(
     51       base::WeakPtr<ClientSessionControl> client_session_control) OVERRIDE;
     52 
     53  private:
     54   // Used to ask the daemon to inject Secure Attention Sequence.
     55   base::Closure inject_sas_;
     56 
     57   DISALLOW_COPY_AND_ASSIGN(SessionDesktopEnvironmentFactory);
     58 };
     59 
     60 }  // namespace remoting
     61 
     62 #endif  // REMOTING_HOST_WIN_SESSION_DESKTOP_ENVIRONMENT_H_
     63