Chromium Code Reviews| Index: remoting/host/daemon_process.h |
| diff --git a/remoting/host/daemon_process.h b/remoting/host/daemon_process.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6182adf269380c53347b1e074330ad4be5bb65ec |
| --- /dev/null |
| +++ b/remoting/host/daemon_process.h |
| @@ -0,0 +1,70 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef REMOTING_HOST_DAEMON_PROCESS_H_ |
| +#define REMOTING_HOST_DAEMON_PROCESS_H_ |
| + |
| +#include "base/basictypes.h" |
| +#include "base/compiler_specific.h" |
| +#include "base/memory/ref_counted.h" |
| +#include "base/memory/scoped_ptr.h" |
| +#include "ipc/ipc_channel.h" |
| +#include "ipc/ipc_channel_proxy.h" |
| +#include "remoting/base/shutdownable.h" |
| + |
| +namespace base { |
| +class SingleThreadTaskRunner; |
| +class Thread; |
| +} // namespace base |
| + |
| +namespace IPC { |
| +class Message; |
| +} // namespace IPC |
| + |
| +namespace remoting { |
| + |
| +// This class implements core of the daemon process. It manages the networking |
| +// process running at lower privileges and maintains the list of virtual |
| +// terminals. |
| +class DaemonProcess : public Shutdownable, public IPC::Listener { |
| + public: |
| + virtual ~DaemonProcess(); |
| + |
| + // Creates a platform-specific implementation of the daemon process object. |
| + static scoped_ptr<DaemonProcess> Create( |
| + scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| + const Shutdownable::Callback& callback); |
| + |
| + // IPC::Listener implementation. |
| + virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
| + |
| + protected: |
| + DaemonProcess(scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| + const Shutdownable::Callback& callback); |
| + |
| + // Reads the host configuration and launches the networking process. |
| + void Init(); |
| + |
| + // Shutdownable implementation. |
| + virtual void DoShutdown(); |
|
Sergey Ulanov
2012/07/30 19:50:04
OVERRIDE
alexeypa (please no reviews)
2012/07/30 21:50:03
Done.
|
| + |
| + // Launches the network process and establishes an IPC channel with it. |
| + virtual bool LaunchNetworkProcess() = 0; |
| + |
| + private: |
| + // The main task runner. Typically it is the UI message loop. |
| + scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; |
| + |
| + // A dedicated thread for handling IPC requests. |
| + scoped_ptr<base::Thread> ipc_thread_; |
| + |
| + // The IPC channel connecting the daemon process to the networking process. |
| + scoped_ptr<IPC::ChannelProxy> network_process_channel_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(DaemonProcess); |
| +}; |
| + |
| +} // namespace remoting |
| + |
| +#endif // REMOTING_HOST_DAEMON_PROCESS_H_ |