- add sources.
[platform/framework/web/crosswalk.git] / src / remoting / host / win / wts_session_process_delegate.h
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_WTS_SESSION_PROCESS_DELEGATE_H_
6 #define REMOTING_HOST_WIN_WTS_SESSION_PROCESS_DELEGATE_H_
7
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "base/memory/ref_counted.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "base/threading/non_thread_safe.h"
13 #include "remoting/host/win/worker_process_launcher.h"
14
15 class CommandLine;
16
17 namespace base {
18 class SingleThreadTaskRunner;
19 } // namespace base
20
21 namespace IPC {
22 class Message;
23 } // namespace base
24
25 namespace remoting {
26
27 // Implements logic for launching and monitoring a worker process in a different
28 // session.
29 class WtsSessionProcessDelegate
30     : public base::NonThreadSafe,
31       public WorkerProcessLauncher::Delegate {
32  public:
33   WtsSessionProcessDelegate(
34       scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
35       scoped_ptr<CommandLine> target,
36       bool launch_elevated,
37       const std::string& channel_security);
38   ~WtsSessionProcessDelegate();
39
40   // Initializes the object returning true on success.
41   bool Initialize(uint32 session_id);
42
43   // WorkerProcessLauncher::Delegate implementation.
44   virtual void LaunchProcess(WorkerProcessLauncher* event_handler) OVERRIDE;
45   virtual void Send(IPC::Message* message) OVERRIDE;
46   virtual void CloseChannel() OVERRIDE;
47   virtual void KillProcess() OVERRIDE;
48
49  private:
50   // The actual implementation resides in WtsSessionProcessDelegate::Core class.
51   class Core;
52   scoped_refptr<Core> core_;
53
54   DISALLOW_COPY_AND_ASSIGN(WtsSessionProcessDelegate);
55 };
56
57 }  // namespace remoting
58
59 #endif  // REMOTING_HOST_WIN_WTS_SESSION_PROCESS_DELEGATE_H_