OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef REMOTING_HOST_DAEMON_PROCESS_H_ | 5 #ifndef REMOTING_HOST_DAEMON_PROCESS_H_ |
6 #define REMOTING_HOST_DAEMON_PROCESS_H_ | 6 #define REMOTING_HOST_DAEMON_PROCESS_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 28 matching lines...) Expand all Loading... |
39 // This class implements core of the daemon process. It manages the networking | 39 // This class implements core of the daemon process. It manages the networking |
40 // process running at lower privileges and maintains the list of desktop | 40 // process running at lower privileges and maintains the list of desktop |
41 // sessions. | 41 // sessions. |
42 class DaemonProcess | 42 class DaemonProcess |
43 : public ConfigWatcher::Delegate, | 43 : public ConfigWatcher::Delegate, |
44 public HostStatusMonitor, | 44 public HostStatusMonitor, |
45 public WorkerProcessIpcDelegate { | 45 public WorkerProcessIpcDelegate { |
46 public: | 46 public: |
47 typedef std::list<DesktopSession*> DesktopSessionList; | 47 typedef std::list<DesktopSession*> DesktopSessionList; |
48 | 48 |
49 virtual ~DaemonProcess(); | 49 ~DaemonProcess() override; |
50 | 50 |
51 // Creates a platform-specific implementation of the daemon process object | 51 // Creates a platform-specific implementation of the daemon process object |
52 // passing relevant task runners. Public methods of this class must be called | 52 // passing relevant task runners. Public methods of this class must be called |
53 // on the |caller_task_runner| thread. |io_task_runner| is used to handle IPC | 53 // on the |caller_task_runner| thread. |io_task_runner| is used to handle IPC |
54 // and background I/O tasks. | 54 // and background I/O tasks. |
55 static scoped_ptr<DaemonProcess> Create( | 55 static scoped_ptr<DaemonProcess> Create( |
56 scoped_refptr<AutoThreadTaskRunner> caller_task_runner, | 56 scoped_refptr<AutoThreadTaskRunner> caller_task_runner, |
57 scoped_refptr<AutoThreadTaskRunner> io_task_runner, | 57 scoped_refptr<AutoThreadTaskRunner> io_task_runner, |
58 const base::Closure& stopped_callback); | 58 const base::Closure& stopped_callback); |
59 | 59 |
60 // ConfigWatcher::Delegate | 60 // ConfigWatcher::Delegate |
61 virtual void OnConfigUpdated(const std::string& serialized_config) override; | 61 void OnConfigUpdated(const std::string& serialized_config) override; |
62 virtual void OnConfigWatcherError() override; | 62 void OnConfigWatcherError() override; |
63 | 63 |
64 // HostStatusMonitor interface. | 64 // HostStatusMonitor interface. |
65 virtual void AddStatusObserver(HostStatusObserver* observer) override; | 65 void AddStatusObserver(HostStatusObserver* observer) override; |
66 virtual void RemoveStatusObserver(HostStatusObserver* observer) override; | 66 void RemoveStatusObserver(HostStatusObserver* observer) override; |
67 | 67 |
68 // WorkerProcessIpcDelegate implementation. | 68 // WorkerProcessIpcDelegate implementation. |
69 virtual void OnChannelConnected(int32 peer_pid) override; | 69 void OnChannelConnected(int32 peer_pid) override; |
70 virtual bool OnMessageReceived(const IPC::Message& message) override; | 70 bool OnMessageReceived(const IPC::Message& message) override; |
71 virtual void OnPermanentError(int exit_code) override; | 71 void OnPermanentError(int exit_code) override; |
72 | 72 |
73 // Sends an IPC message to the network process. The message will be dropped | 73 // Sends an IPC message to the network process. The message will be dropped |
74 // unless the network process is connected over the IPC channel. | 74 // unless the network process is connected over the IPC channel. |
75 virtual void SendToNetwork(IPC::Message* message) = 0; | 75 virtual void SendToNetwork(IPC::Message* message) = 0; |
76 | 76 |
77 // Called when a desktop integration process attaches to |terminal_id|. | 77 // Called when a desktop integration process attaches to |terminal_id|. |
78 // |desktop_process| is a handle of the desktop integration process. | 78 // |desktop_process| is a handle of the desktop integration process. |
79 // |desktop_pipe| specifies the client end of the desktop pipe. Returns true | 79 // |desktop_pipe| specifies the client end of the desktop pipe. Returns true |
80 // on success, false otherwise. | 80 // on success, false otherwise. |
81 virtual bool OnDesktopSessionAgentAttached( | 81 virtual bool OnDesktopSessionAgentAttached( |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 scoped_ptr<HostEventLogger> host_event_logger_; | 184 scoped_ptr<HostEventLogger> host_event_logger_; |
185 | 185 |
186 base::WeakPtrFactory<DaemonProcess> weak_factory_; | 186 base::WeakPtrFactory<DaemonProcess> weak_factory_; |
187 | 187 |
188 DISALLOW_COPY_AND_ASSIGN(DaemonProcess); | 188 DISALLOW_COPY_AND_ASSIGN(DaemonProcess); |
189 }; | 189 }; |
190 | 190 |
191 } // namespace remoting | 191 } // namespace remoting |
192 | 192 |
193 #endif // REMOTING_HOST_DAEMON_PROCESS_H_ | 193 #endif // REMOTING_HOST_DAEMON_PROCESS_H_ |
OLD | NEW |