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

Unified Diff: remoting/host/daemon_process.h

Issue 11231060: [Chromoting] The desktop process now creates a pre-connected pipe and passes (with some help of the… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 8 years, 2 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
« no previous file with comments | « remoting/host/chromoting_messages.h ('k') | remoting/host/daemon_process.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/daemon_process.h
diff --git a/remoting/host/daemon_process.h b/remoting/host/daemon_process.h
index 897d880ce0a94a3b767a685f5850905b61ac732f..801e271c779996505794c3cb0dec8b8c8c337260 100644
--- a/remoting/host/daemon_process.h
+++ b/remoting/host/daemon_process.h
@@ -12,20 +12,19 @@
#include "base/location.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
+#include "base/process.h"
#include "ipc/ipc_channel.h"
#include "ipc/ipc_channel_proxy.h"
+#include "ipc/ipc_platform_file.h"
#include "remoting/base/stoppable.h"
#include "remoting/host/config_file_watcher.h"
#include "remoting/host/worker_process_ipc_delegate.h"
class FilePath;
-namespace base {
-class SingleThreadTaskRunner;
-} // namespace base
-
namespace remoting {
+class AutoThreadTaskRunner;
class DesktopSession;
// This class implements core of the daemon process. It manages the networking
@@ -45,8 +44,8 @@ class DaemonProcess
// on the |caller_task_runner| thread. |io_task_runner| is used to handle IPC
// and background I/O tasks.
static scoped_ptr<DaemonProcess> Create(
- scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
+ scoped_refptr<AutoThreadTaskRunner> caller_task_runner,
+ scoped_refptr<AutoThreadTaskRunner> io_task_runner,
const base::Closure& stopped_callback);
// ConfigFileWatcher::Delegate
@@ -62,12 +61,21 @@ class DaemonProcess
// unless the network process is connected over the IPC channel.
virtual void SendToNetwork(IPC::Message* message) = 0;
+ // Called when a desktop integration process attaches to |terminal_id|.
+ // |desktop_process| is a handle of the desktop integration process.
+ // |desktop_pipe| specifies the client end of the desktop pipe. Returns true
+ // on success, false otherwise.
+ virtual bool OnDesktopSessionAgentAttached(
+ int terminal_id,
+ base::ProcessHandle desktop_process,
+ IPC::PlatformFileForTransit desktop_pipe) = 0;
+
// Closes the desktop session identified by |terminal_id|.
void CloseDesktopSession(int terminal_id);
protected:
- DaemonProcess(scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
+ DaemonProcess(scoped_refptr<AutoThreadTaskRunner> caller_task_runner,
+ scoped_refptr<AutoThreadTaskRunner> io_task_runner,
const base::Closure& stopped_callback);
// Creates a desktop session and assigns a unique ID to it.
@@ -93,11 +101,11 @@ class DaemonProcess
// Launches the network process and establishes an IPC channel with it.
virtual void LaunchNetworkProcess() = 0;
- scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner() {
+ scoped_refptr<AutoThreadTaskRunner> caller_task_runner() {
return caller_task_runner_;
}
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner() {
+ scoped_refptr<AutoThreadTaskRunner> io_task_runner() {
return io_task_runner_;
}
@@ -112,10 +120,10 @@ class DaemonProcess
void DeleteAllDesktopSessions();
// Task runner on which public methods of this class must be called.
- scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner_;
+ scoped_refptr<AutoThreadTaskRunner> caller_task_runner_;
// Handles IPC and background I/O tasks.
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
+ scoped_refptr<AutoThreadTaskRunner> io_task_runner_;
scoped_ptr<ConfigFileWatcher> config_watcher_;
« no previous file with comments | « remoting/host/chromoting_messages.h ('k') | remoting/host/daemon_process.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698