summaryrefslogtreecommitdiffstats
path: root/remoting/host/win/wts_session_process_launcher.h
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/host/win/wts_session_process_launcher.h')
-rw-r--r--remoting/host/win/wts_session_process_launcher.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/remoting/host/win/wts_session_process_launcher.h b/remoting/host/win/wts_session_process_launcher.h
index d52d98f..c4dce87 100644
--- a/remoting/host/win/wts_session_process_launcher.h
+++ b/remoting/host/win/wts_session_process_launcher.h
@@ -18,11 +18,11 @@
#include "base/win/scoped_handle.h"
#include "base/win/object_watcher.h"
#include "ipc/ipc_channel.h"
-
+#include "remoting/base/stoppable.h"
#include "remoting/host/win/wts_console_observer.h"
namespace base {
-class MessageLoopProxy;
+class SingleThreadTaskRunner;
} // namespace base
namespace IPC {
@@ -39,7 +39,8 @@ class SasInjector;
class WtsConsoleMonitor;
class WtsSessionProcessLauncher
- : public base::win::ObjectWatcher::Delegate,
+ : public Stoppable,
+ public base::win::ObjectWatcher::Delegate,
public IPC::Listener,
public WtsConsoleObserver {
public:
@@ -48,10 +49,11 @@ class WtsSessionProcessLauncher
// |monitor| should happen on |main_message_loop|. |ipc_message_loop| has
// to be an I/O message loop.
WtsSessionProcessLauncher(
+ const base::Closure& stopped_callback,
WtsConsoleMonitor* monitor,
const FilePath& host_binary,
- scoped_refptr<base::MessageLoopProxy> main_message_loop,
- scoped_refptr<base::MessageLoopProxy> ipc_message_loop);
+ scoped_refptr<base::SingleThreadTaskRunner> main_message_loop,
+ scoped_refptr<base::SingleThreadTaskRunner> ipc_message_loop);
virtual ~WtsSessionProcessLauncher();
@@ -65,6 +67,10 @@ class WtsSessionProcessLauncher
virtual void OnSessionAttached(uint32 session_id) OVERRIDE;
virtual void OnSessionDetached() OVERRIDE;
+ protected:
+ // Stoppable implementation.
+ virtual void DoStop() OVERRIDE;
+
private:
// Attempts to launch the host process in the current console session.
// Schedules next launch attempt if creation of the process fails for any
@@ -88,10 +94,10 @@ class WtsSessionProcessLauncher
base::OneShotTimer<WtsSessionProcessLauncher> timer_;
// The main service message loop.
- scoped_refptr<base::MessageLoopProxy> main_message_loop_;
+ scoped_refptr<base::SingleThreadTaskRunner> main_message_loop_;
// Message loop used by the IPC channel.
- scoped_refptr<base::MessageLoopProxy> ipc_message_loop_;
+ scoped_refptr<base::SingleThreadTaskRunner> ipc_message_loop_;
// This pointer is used to unsubscribe from session attach and detach events.
WtsConsoleMonitor* monitor_;