Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4325)

Unified Diff: remoting/host/win/wts_session_process_launcher.h

Issue 10796099: Introducing remoting::Stoppable helper base class implementing asynchronous shutdown on a specific t (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing case of the include file name. Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 d52d98f54bd704cba3963ce70797d7357ba45505..c4dce87d03eaefb741db2238665685f17de49011 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_;

Powered by Google App Engine
This is Rietveld 408576698