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 CHROME_SERVICE_SERVICE_PROCESS_H_ | 5 #ifndef CHROME_SERVICE_SERVICE_PROCESS_H_ |
6 #define CHROME_SERVICE_SERVICE_PROCESS_H_ | 6 #define CHROME_SERVICE_SERVICE_PROCESS_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
11 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 #include "base/threading/sequenced_worker_pool.h" | 13 #include "base/threading/sequenced_worker_pool.h" |
14 #include "base/threading/thread.h" | 14 #include "base/threading/thread.h" |
15 #include "base/synchronization/waitable_event.h" | 15 #include "base/synchronization/waitable_event.h" |
16 #include "chrome/service/cloud_print/cloud_print_proxy.h" | 16 #include "chrome/service/cloud_print/cloud_print_proxy.h" |
17 | 17 |
18 class ServiceProcessPrefs; | 18 class ServiceProcessPrefs; |
19 class ServiceIPCServer; | 19 class ServiceIPCServer; |
20 class CommandLine; | |
21 class ServiceURLRequestContextGetter; | 20 class ServiceURLRequestContextGetter; |
22 class ServiceProcessState; | 21 class ServiceProcessState; |
23 | 22 |
| 23 namespace base { |
| 24 class CommandLine; |
| 25 } |
| 26 |
24 namespace net { | 27 namespace net { |
25 class NetworkChangeNotifier; | 28 class NetworkChangeNotifier; |
26 } | 29 } |
27 | 30 |
28 class CommandLine; | |
29 | |
30 // The ServiceProcess does not inherit from ChildProcess because this | 31 // The ServiceProcess does not inherit from ChildProcess because this |
31 // process can live independently of the browser process. | 32 // process can live independently of the browser process. |
32 // ServiceProcess Design Notes | 33 // ServiceProcess Design Notes |
33 // https://sites.google.com/a/chromium.org/dev/developers/design-documents/servi
ce-processes | 34 // https://sites.google.com/a/chromium.org/dev/developers/design-documents/servi
ce-processes |
34 class ServiceProcess : public cloud_print::CloudPrintProxy::Client { | 35 class ServiceProcess : public cloud_print::CloudPrintProxy::Client { |
35 public: | 36 public: |
36 ServiceProcess(); | 37 ServiceProcess(); |
37 virtual ~ServiceProcess(); | 38 virtual ~ServiceProcess(); |
38 | 39 |
39 // Initialize the ServiceProcess with the message loop that it should run on. | 40 // Initialize the ServiceProcess with the message loop that it should run on. |
40 // ServiceProcess takes ownership of |state|. | 41 // ServiceProcess takes ownership of |state|. |
41 bool Initialize(base::MessageLoopForUI* message_loop, | 42 bool Initialize(base::MessageLoopForUI* message_loop, |
42 const CommandLine& command_line, | 43 const base::CommandLine& command_line, |
43 ServiceProcessState* state); | 44 ServiceProcessState* state); |
44 | 45 |
45 bool Teardown(); | 46 bool Teardown(); |
46 // TODO(sanjeevr): Change various parts of the code such as | 47 // TODO(sanjeevr): Change various parts of the code such as |
47 // net::ProxyService::CreateSystemProxyConfigService to take in | 48 // net::ProxyService::CreateSystemProxyConfigService to take in |
48 // MessageLoopProxy* instead of MessageLoop*. When we have done that, we can | 49 // MessageLoopProxy* instead of MessageLoop*. When we have done that, we can |
49 // remove the io_thread() and file_thread() accessors and replace them with | 50 // remove the io_thread() and file_thread() accessors and replace them with |
50 // io_message_loop_proxy() and file_message_loop_proxy() respectively. | 51 // io_message_loop_proxy() and file_message_loop_proxy() respectively. |
51 | 52 |
52 // Returns the thread that we perform I/O coordination on (network requests, | 53 // Returns the thread that we perform I/O coordination on (network requests, |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 bool update_available_; | 144 bool update_available_; |
144 | 145 |
145 scoped_refptr<ServiceURLRequestContextGetter> request_context_getter_; | 146 scoped_refptr<ServiceURLRequestContextGetter> request_context_getter_; |
146 | 147 |
147 DISALLOW_COPY_AND_ASSIGN(ServiceProcess); | 148 DISALLOW_COPY_AND_ASSIGN(ServiceProcess); |
148 }; | 149 }; |
149 | 150 |
150 extern ServiceProcess* g_service_process; | 151 extern ServiceProcess* g_service_process; |
151 | 152 |
152 #endif // CHROME_SERVICE_SERVICE_PROCESS_H_ | 153 #endif // CHROME_SERVICE_SERVICE_PROCESS_H_ |
OLD | NEW |