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

Side by Side Diff: services/device/device_service.h

Issue 2734943003: Device Service: Decouple Wake Lock from //content (Closed)
Patch Set: Rebase Created 3 years, 9 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 unified diff | Download patch
« no previous file with comments | « services/device/DEPS ('k') | services/device/device_service.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 SERVICES_DEVICE_DEVICE_SERVICE_H_ 5 #ifndef SERVICES_DEVICE_DEVICE_SERVICE_H_
6 #define SERVICES_DEVICE_DEVICE_SERVICE_H_ 6 #define SERVICES_DEVICE_DEVICE_SERVICE_H_
7 7
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "device/battery/battery_monitor.mojom.h" 9 #include "device/battery/battery_monitor.mojom.h"
10 #include "device/screen_orientation/public/interfaces/screen_orientation.mojom.h " 10 #include "device/screen_orientation/public/interfaces/screen_orientation.mojom.h "
11 #include "device/sensors/public/interfaces/light.mojom.h" 11 #include "device/sensors/public/interfaces/light.mojom.h"
12 #include "device/sensors/public/interfaces/motion.mojom.h" 12 #include "device/sensors/public/interfaces/motion.mojom.h"
13 #include "device/sensors/public/interfaces/orientation.mojom.h" 13 #include "device/sensors/public/interfaces/orientation.mojom.h"
14 #include "device/vibration/vibration_manager.mojom.h" 14 #include "device/vibration/vibration_manager.mojom.h"
15 #include "device/wake_lock/public/interfaces/wake_lock_context_provider.mojom.h"
16 #include "device/wake_lock/wake_lock_service_context.h"
15 #include "mojo/public/cpp/bindings/binding_set.h" 17 #include "mojo/public/cpp/bindings/binding_set.h"
16 #include "services/device/public/interfaces/fingerprint.mojom.h" 18 #include "services/device/public/interfaces/fingerprint.mojom.h"
17 #include "services/device/public/interfaces/power_monitor.mojom.h" 19 #include "services/device/public/interfaces/power_monitor.mojom.h"
18 #include "services/device/public/interfaces/time_zone_monitor.mojom.h" 20 #include "services/device/public/interfaces/time_zone_monitor.mojom.h"
19 #include "services/service_manager/public/cpp/interface_factory.h" 21 #include "services/service_manager/public/cpp/interface_factory.h"
20 #include "services/service_manager/public/cpp/interface_provider.h" 22 #include "services/service_manager/public/cpp/interface_provider.h"
21 #include "services/service_manager/public/cpp/service.h" 23 #include "services/service_manager/public/cpp/service.h"
22 24
23 namespace base { 25 namespace base {
24 class SingleThreadTaskRunner; 26 class SingleThreadTaskRunner;
25 } 27 }
26 28
27 namespace device { 29 namespace device {
28 30
29 class PowerMonitorMessageBroadcaster; 31 class PowerMonitorMessageBroadcaster;
30 class TimeZoneMonitor; 32 class TimeZoneMonitor;
31 33
34 #if defined(OS_ANDROID)
35 std::unique_ptr<service_manager::Service> CreateDeviceService(
36 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
37 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
38 const WakeLockContextCallback& wake_lock_context_callback);
39 #else
32 std::unique_ptr<service_manager::Service> CreateDeviceService( 40 std::unique_ptr<service_manager::Service> CreateDeviceService(
33 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, 41 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
34 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner); 42 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner);
43 #endif
35 44
36 class DeviceService 45 class DeviceService
37 : public service_manager::Service, 46 : public service_manager::Service,
38 public service_manager::InterfaceFactory<mojom::Fingerprint>, 47 public service_manager::InterfaceFactory<mojom::Fingerprint>,
39 public service_manager::InterfaceFactory<mojom::LightSensor>, 48 public service_manager::InterfaceFactory<mojom::LightSensor>,
40 public service_manager::InterfaceFactory<mojom::MotionSensor>, 49 public service_manager::InterfaceFactory<mojom::MotionSensor>,
41 public service_manager::InterfaceFactory<mojom::OrientationSensor>, 50 public service_manager::InterfaceFactory<mojom::OrientationSensor>,
42 public service_manager::InterfaceFactory< 51 public service_manager::InterfaceFactory<
43 mojom::OrientationAbsoluteSensor>, 52 mojom::OrientationAbsoluteSensor>,
44 #if !defined(OS_ANDROID) 53 #if !defined(OS_ANDROID)
45 // On Android the Device Service provides BatteryMonitor via Java. 54 // On Android the Device Service provides BatteryMonitor via Java.
46 public service_manager::InterfaceFactory<BatteryMonitor>, 55 public service_manager::InterfaceFactory<BatteryMonitor>,
47 // On Android the Device Service provides VibrationManager via Java. 56 // On Android the Device Service provides VibrationManager via Java.
48 public service_manager::InterfaceFactory<mojom::VibrationManager>, 57 public service_manager::InterfaceFactory<mojom::VibrationManager>,
49 #endif 58 #endif
50 public service_manager::InterfaceFactory<mojom::PowerMonitor>, 59 public service_manager::InterfaceFactory<mojom::PowerMonitor>,
51 public service_manager::InterfaceFactory< 60 public service_manager::InterfaceFactory<
52 mojom::ScreenOrientationListener>, 61 mojom::ScreenOrientationListener>,
53 public service_manager::InterfaceFactory<mojom::TimeZoneMonitor> { 62 public service_manager::InterfaceFactory<mojom::TimeZoneMonitor>,
63 public service_manager::InterfaceFactory<mojom::WakeLockContextProvider> {
54 public: 64 public:
65 #if defined(OS_ANDROID)
66 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
67 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
68 const WakeLockContextCallback& wake_lock_context_callback);
69 #else
55 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, 70 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
56 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner); 71 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner);
72 #endif
57 ~DeviceService() override; 73 ~DeviceService() override;
58 74
59 private: 75 private:
60 // service_manager::Service: 76 // service_manager::Service:
61 void OnStart() override; 77 void OnStart() override;
62 bool OnConnect(const service_manager::ServiceInfo& remote_info, 78 bool OnConnect(const service_manager::ServiceInfo& remote_info,
63 service_manager::InterfaceRegistry* registry) override; 79 service_manager::InterfaceRegistry* registry) override;
64 80
65 // InterfaceFactory<mojom::Fingerprint>: 81 // InterfaceFactory<mojom::Fingerprint>:
66 void Create(const service_manager::Identity& remote_identity, 82 void Create(const service_manager::Identity& remote_identity,
(...skipping 29 matching lines...) Expand all
96 mojom::PowerMonitorRequest request) override; 112 mojom::PowerMonitorRequest request) override;
97 113
98 // InterfaceFactory<mojom::ScreenOrientationListener>: 114 // InterfaceFactory<mojom::ScreenOrientationListener>:
99 void Create(const service_manager::Identity& remote_identity, 115 void Create(const service_manager::Identity& remote_identity,
100 mojom::ScreenOrientationListenerRequest request) override; 116 mojom::ScreenOrientationListenerRequest request) override;
101 117
102 // InterfaceFactory<mojom::TimeZoneMonitor>: 118 // InterfaceFactory<mojom::TimeZoneMonitor>:
103 void Create(const service_manager::Identity& remote_identity, 119 void Create(const service_manager::Identity& remote_identity,
104 mojom::TimeZoneMonitorRequest request) override; 120 mojom::TimeZoneMonitorRequest request) override;
105 121
122 // InterfaceFactory<mojom::WakeLockContextProvider>:
123 void Create(const service_manager::Identity& remote_identity,
124 mojom::WakeLockContextProviderRequest request) override;
125
106 std::unique_ptr<PowerMonitorMessageBroadcaster> 126 std::unique_ptr<PowerMonitorMessageBroadcaster>
107 power_monitor_message_broadcaster_; 127 power_monitor_message_broadcaster_;
108 std::unique_ptr<TimeZoneMonitor> time_zone_monitor_; 128 std::unique_ptr<TimeZoneMonitor> time_zone_monitor_;
109 #if defined(OS_ANDROID) 129 #if defined(OS_ANDROID)
110 // Binds |java_interface_provider_| to an interface registry that exposes 130 // Binds |java_interface_provider_| to an interface registry that exposes
111 // factories for the interfaces that are provided via Java on Android. 131 // factories for the interfaces that are provided via Java on Android.
112 service_manager::InterfaceProvider* GetJavaInterfaceProvider(); 132 service_manager::InterfaceProvider* GetJavaInterfaceProvider();
113 133
114 // InterfaceProvider that is bound to the Java-side interface registry. 134 // InterfaceProvider that is bound to the Java-side interface registry.
115 service_manager::InterfaceProvider java_interface_provider_; 135 service_manager::InterfaceProvider java_interface_provider_;
116 136
117 bool java_interface_provider_initialized_; 137 bool java_interface_provider_initialized_;
118 #endif 138 #endif
119 139
120 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_; 140 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_;
121 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; 141 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
122 142
143 WakeLockContextCallback wake_lock_context_callback_;
144
123 DISALLOW_COPY_AND_ASSIGN(DeviceService); 145 DISALLOW_COPY_AND_ASSIGN(DeviceService);
124 }; 146 };
125 147
126 } // namespace device 148 } // namespace device
127 149
128 #endif // SERVICES_DEVICE_DEVICE_SERVICE_H_ 150 #endif // SERVICES_DEVICE_DEVICE_SERVICE_H_
OLDNEW
« no previous file with comments | « services/device/DEPS ('k') | services/device/device_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698