Chromium Code Reviews| Index: remoting/host/win/wts_session_process_launcher.h |
| diff --git a/remoting/host/win/wts_session_process_launcher.h b/remoting/host/win/wts_session_process_launcher.h |
| index 097e5884106e718c20844c28fb2c7765bc79677a..6868329273ece125ef3c5389eebb613bca93fbf5 100644 |
| --- a/remoting/host/win/wts_session_process_launcher.h |
| +++ b/remoting/host/win/wts_session_process_launcher.h |
| @@ -31,12 +31,11 @@ class SingleThreadTaskRunner; |
| namespace remoting { |
| class WtsConsoleMonitor; |
| +class WtsProcessLauncherImpl; |
|
Wez
2012/09/14 23:36:18
nit: WtsSessionProcessLauncherImpl
alexeypa (please no reviews)
2012/09/18 16:58:06
Done.
|
| class WtsSessionProcessLauncher |
| - : public base::MessagePumpForIO::IOHandler, |
| - public Stoppable, |
| + : public Stoppable, |
| public WorkerProcessIpcDelegate, |
| - public WorkerProcessLauncher::Delegate, |
| public WtsConsoleObserver { |
| public: |
| // Constructs a WtsSessionProcessLauncher object. |stopped_callback| and |
| @@ -51,21 +50,10 @@ class WtsSessionProcessLauncher |
| virtual ~WtsSessionProcessLauncher(); |
| - // base::MessagePumpForIO::IOHandler implementation. |
| - virtual void OnIOCompleted(base::MessagePumpForIO::IOContext* context, |
| - DWORD bytes_transferred, |
| - DWORD error) OVERRIDE; |
| - |
| // WorkerProcessIpcDelegate implementation. |
| virtual void OnChannelConnected() OVERRIDE; |
| virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
| - // WorkerProcessLauncher::Delegate implementation. |
| - virtual bool DoLaunchProcess( |
| - const std::string& channel_name, |
| - base::win::ScopedHandle* process_exit_event_out) OVERRIDE; |
| - virtual void DoKillProcess(DWORD exit_code) OVERRIDE; |
| - |
| // WtsConsoleObserver implementation. |
| virtual void OnSessionAttached(uint32 session_id) OVERRIDE; |
| virtual void OnSessionDetached() OVERRIDE; |
| @@ -75,22 +63,6 @@ class WtsSessionProcessLauncher |
| virtual void DoStop() OVERRIDE; |
| private: |
| - // Drains the completion port queue to make sure that all job object |
| - // notifications has been received. |
| - void DrainJobNotifications(); |
| - |
| - // Notifies that the completion port queue has been drained. |
| - void DrainJobNotificationsCompleted(); |
| - |
| - // Creates and initializes the job object that will sandbox the launched child |
| - // processes. |
| - void InitializeJob(); |
| - |
| - // Notifies that the job object initialization is complete. |
| - void InitializeJobCompleted(scoped_ptr<base::win::ScopedHandle> job); |
| - |
| - void OnJobNotification(DWORD message, DWORD pid); |
| - |
| // Attempts to launch the host process in the current console session. |
| // Schedules next launch attempt if creation of the process fails for any |
| // reason. |
| @@ -102,6 +74,10 @@ class WtsSessionProcessLauncher |
| // |true| if this object is currently attached to the console session. |
| bool attached_; |
| + // The specific code knowing how to launch and control a child process |
| + // implemented by |WtsProcessLauncherImpl|. |
| + scoped_refptr<WtsProcessLauncherImpl> impl_; |
| + |
| // Time of the last launch attempt. |
| base::Time launch_time_; |
| @@ -122,27 +98,6 @@ class WtsSessionProcessLauncher |
| scoped_ptr<WorkerProcessLauncher> launcher_; |
| - // The job object used to control the lifetime of child processes. |
| - base::win::ScopedHandle job_; |
| - |
| - // A waiting handle that becomes signalled once all process associated with |
| - // the job have been terminated. |
| - base::win::ScopedHandle process_exit_event_; |
| - |
| - enum JobState { |
| - kJobUninitialized, |
| - kJobRunning, |
| - kJobStopping, |
| - kJobStopped |
| - }; |
| - |
| - JobState job_state_; |
| - |
| - base::win::ScopedHandle worker_process_; |
| - |
| - // The token to be used to launch a process in a different session. |
| - base::win::ScopedHandle session_token_; |
| - |
| DISALLOW_COPY_AND_ASSIGN(WtsSessionProcessLauncher); |
| }; |