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

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

Issue 2643713002: Port BatteryMonitor into Device Service (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
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/screen_orientation/public/interfaces/screen_orientation.mojom.h " 10 #include "device/screen_orientation/public/interfaces/screen_orientation.mojom.h "
10 #include "device/sensors/public/interfaces/light.mojom.h" 11 #include "device/sensors/public/interfaces/light.mojom.h"
11 #include "device/sensors/public/interfaces/motion.mojom.h" 12 #include "device/sensors/public/interfaces/motion.mojom.h"
12 #include "device/sensors/public/interfaces/orientation.mojom.h" 13 #include "device/sensors/public/interfaces/orientation.mojom.h"
14 #include "mojo/public/cpp/bindings/binding_set.h"
13 #include "services/device/public/interfaces/fingerprint.mojom.h" 15 #include "services/device/public/interfaces/fingerprint.mojom.h"
14 #include "services/device/public/interfaces/power_monitor.mojom.h" 16 #include "services/device/public/interfaces/power_monitor.mojom.h"
15 #include "services/device/public/interfaces/time_zone_monitor.mojom.h" 17 #include "services/device/public/interfaces/time_zone_monitor.mojom.h"
16 #include "services/service_manager/public/cpp/interface_factory.h" 18 #include "services/service_manager/public/cpp/interface_factory.h"
19 #include "services/service_manager/public/cpp/interface_provider.h"
17 #include "services/service_manager/public/cpp/service.h" 20 #include "services/service_manager/public/cpp/service.h"
18 21
19 namespace base { 22 namespace base {
20 class SingleThreadTaskRunner; 23 class SingleThreadTaskRunner;
21 } 24 }
22 25
23 namespace device { 26 namespace device {
24 27
25 class PowerMonitorMessageBroadcaster; 28 class PowerMonitorMessageBroadcaster;
26 class TimeZoneMonitor; 29 class TimeZoneMonitor;
27 30
28 std::unique_ptr<service_manager::Service> CreateDeviceService( 31 std::unique_ptr<service_manager::Service> CreateDeviceService(
29 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, 32 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
30 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner); 33 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner);
31 34
32 class DeviceService 35 class DeviceService
33 : public service_manager::Service, 36 : public service_manager::Service,
34 public service_manager::InterfaceFactory<mojom::Fingerprint>, 37 public service_manager::InterfaceFactory<mojom::Fingerprint>,
35 public service_manager::InterfaceFactory<mojom::LightSensor>, 38 public service_manager::InterfaceFactory<mojom::LightSensor>,
36 public service_manager::InterfaceFactory<mojom::MotionSensor>, 39 public service_manager::InterfaceFactory<mojom::MotionSensor>,
37 public service_manager::InterfaceFactory<mojom::OrientationSensor>, 40 public service_manager::InterfaceFactory<mojom::OrientationSensor>,
38 public service_manager::InterfaceFactory< 41 public service_manager::InterfaceFactory<
39 mojom::OrientationAbsoluteSensor>, 42 mojom::OrientationAbsoluteSensor>,
43 #if !defined(OS_ANDROID)
44 // On Android the Device Service provides BatteryMonitor via Java.
45 public service_manager::InterfaceFactory<BatteryMonitor>,
46 #endif
40 public service_manager::InterfaceFactory<mojom::PowerMonitor>, 47 public service_manager::InterfaceFactory<mojom::PowerMonitor>,
41 public service_manager::InterfaceFactory< 48 public service_manager::InterfaceFactory<
42 mojom::ScreenOrientationListener>, 49 mojom::ScreenOrientationListener>,
43 public service_manager::InterfaceFactory<mojom::TimeZoneMonitor> { 50 public service_manager::InterfaceFactory<mojom::TimeZoneMonitor> {
44 public: 51 public:
45 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, 52 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
46 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner); 53 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner);
47 ~DeviceService() override; 54 ~DeviceService() override;
48 55
49 private: 56 private:
(...skipping 15 matching lines...) Expand all
65 mojom::MotionSensorRequest request) override; 72 mojom::MotionSensorRequest request) override;
66 73
67 // InterfaceFactory<mojom::OrientationSensor>: 74 // InterfaceFactory<mojom::OrientationSensor>:
68 void Create(const service_manager::Identity& remote_identity, 75 void Create(const service_manager::Identity& remote_identity,
69 mojom::OrientationSensorRequest request) override; 76 mojom::OrientationSensorRequest request) override;
70 77
71 // InterfaceFactory<mojom::OrientationAbsolueSensor>: 78 // InterfaceFactory<mojom::OrientationAbsolueSensor>:
72 void Create(const service_manager::Identity& remote_identity, 79 void Create(const service_manager::Identity& remote_identity,
73 mojom::OrientationAbsoluteSensorRequest request) override; 80 mojom::OrientationAbsoluteSensorRequest request) override;
74 81
82 #if !defined(OS_ANDROID)
83 // InterfaceFactory<BatteryMonitor>:
84 void Create(const service_manager::Identity& remote_identity,
85 BatteryMonitorRequest request) override;
86 #endif
87
75 // InterfaceFactory<mojom::PowerMonitor>: 88 // InterfaceFactory<mojom::PowerMonitor>:
76 void Create(const service_manager::Identity& remote_identity, 89 void Create(const service_manager::Identity& remote_identity,
77 mojom::PowerMonitorRequest request) override; 90 mojom::PowerMonitorRequest request) override;
78 91
79 // InterfaceFactory<mojom::ScreenOrientationListener>: 92 // InterfaceFactory<mojom::ScreenOrientationListener>:
80 void Create(const service_manager::Identity& remote_identity, 93 void Create(const service_manager::Identity& remote_identity,
81 mojom::ScreenOrientationListenerRequest request) override; 94 mojom::ScreenOrientationListenerRequest request) override;
82 95
83 // InterfaceFactory<mojom::TimeZoneMonitor>: 96 // InterfaceFactory<mojom::TimeZoneMonitor>:
84 void Create(const service_manager::Identity& remote_identity, 97 void Create(const service_manager::Identity& remote_identity,
85 mojom::TimeZoneMonitorRequest request) override; 98 mojom::TimeZoneMonitorRequest request) override;
86 99
87 std::unique_ptr<PowerMonitorMessageBroadcaster> 100 std::unique_ptr<PowerMonitorMessageBroadcaster>
88 power_monitor_message_broadcaster_; 101 power_monitor_message_broadcaster_;
89 std::unique_ptr<TimeZoneMonitor> time_zone_monitor_; 102 std::unique_ptr<TimeZoneMonitor> time_zone_monitor_;
103 #if defined(OS_ANDROID)
104 // Binds |java_interface_provider_| to an interface registry that exposes
105 // factories for the interfaces that are provided via Java on Android.
106 service_manager::InterfaceProvider* GetJavaInterfaceProvider();
107
108 // InterfaceProvider that is bound to the Java-side interface registry.
109 service_manager::InterfaceProvider java_interface_provider_;
110
111 bool java_interface_provider_initialized_;
112 #endif
90 113
91 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_; 114 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_;
92 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; 115 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
93 116
94 DISALLOW_COPY_AND_ASSIGN(DeviceService); 117 DISALLOW_COPY_AND_ASSIGN(DeviceService);
95 }; 118 };
96 119
97 } // namespace device 120 } // namespace device
98 121
99 #endif // SERVICES_DEVICE_DEVICE_SERVICE_H_ 122 #endif // SERVICES_DEVICE_DEVICE_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698