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

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

Issue 2643713002: Port BatteryMonitor into Device Service (Closed)
Patch Set: Rebase Created 3 years, 11 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/power_monitor/public/interfaces/power_monitor.mojom.h" 10 #include "device/power_monitor/public/interfaces/power_monitor.mojom.h"
10 #include "device/time_zone_monitor/public/interfaces/time_zone_monitor.mojom.h" 11 #include "device/time_zone_monitor/public/interfaces/time_zone_monitor.mojom.h"
11 #include "mojo/public/cpp/bindings/binding_set.h" 12 #include "mojo/public/cpp/bindings/binding_set.h"
12 #include "services/service_manager/public/cpp/interface_factory.h" 13 #include "services/service_manager/public/cpp/interface_factory.h"
14 #include "services/service_manager/public/cpp/interface_provider.h"
13 #include "services/service_manager/public/cpp/service.h" 15 #include "services/service_manager/public/cpp/service.h"
14 16
15 namespace device { 17 namespace device {
16 18
17 class TimeZoneMonitor; 19 class TimeZoneMonitor;
18 20
19 std::unique_ptr<service_manager::Service> CreateDeviceService( 21 std::unique_ptr<service_manager::Service> CreateDeviceService(
20 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner); 22 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner);
21 23
22 class DeviceService 24 class DeviceService
23 : public service_manager::Service, 25 : public service_manager::Service,
26 #if !defined(OS_ANDROID)
27 // On Android the Device Service provides BatteryMonitor via Java.
28 public service_manager::InterfaceFactory<BatteryMonitor>,
29 #endif
24 public service_manager::InterfaceFactory<mojom::PowerMonitor>, 30 public service_manager::InterfaceFactory<mojom::PowerMonitor>,
25 public service_manager::InterfaceFactory<mojom::TimeZoneMonitor> { 31 public service_manager::InterfaceFactory<mojom::TimeZoneMonitor> {
26 public: 32 public:
27 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner); 33 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner);
28 ~DeviceService() override; 34 ~DeviceService() override;
29 35
30 private: 36 private:
31 // service_manager::Service: 37 // service_manager::Service:
32 void OnStart() override; 38 void OnStart() override;
33 bool OnConnect(const service_manager::ServiceInfo& remote_info, 39 bool OnConnect(const service_manager::ServiceInfo& remote_info,
34 service_manager::InterfaceRegistry* registry) override; 40 service_manager::InterfaceRegistry* registry) override;
35 41
42 #if !defined(OS_ANDROID)
43 // InterfaceFactory<BatteryMonitor>:
44 void Create(const service_manager::Identity& remote_identity,
45 BatteryMonitorRequest request) override;
46 #endif
47
36 // InterfaceFactory<mojom::PowerMonitor>: 48 // InterfaceFactory<mojom::PowerMonitor>:
37 void Create(const service_manager::Identity& remote_identity, 49 void Create(const service_manager::Identity& remote_identity,
38 mojom::PowerMonitorRequest request) override; 50 mojom::PowerMonitorRequest request) override;
39 51
40 // InterfaceFactory<mojom::TimeZoneMonitor>: 52 // InterfaceFactory<mojom::TimeZoneMonitor>:
41 void Create(const service_manager::Identity& remote_identity, 53 void Create(const service_manager::Identity& remote_identity,
42 mojom::TimeZoneMonitorRequest request) override; 54 mojom::TimeZoneMonitorRequest request) override;
43 55
56 #if defined(OS_ANDROID)
57 // Binds |java_interface_provider_| to an interface registry that exposes
58 // factories for the interfaces that are provided via Java on Android.
59 service_manager::InterfaceProvider* GetJavaInterfaceProvider();
60
61 // InterfaceProvider that is bound to the Java-side interface registry.
62 service_manager::InterfaceProvider java_interface_provider_;
63
64 bool java_interface_provider_initialized_;
65 #endif
66
44 std::unique_ptr<device::TimeZoneMonitor> time_zone_monitor_; 67 std::unique_ptr<device::TimeZoneMonitor> time_zone_monitor_;
45 68
46 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_; 69 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_;
47 70
48 DISALLOW_COPY_AND_ASSIGN(DeviceService); 71 DISALLOW_COPY_AND_ASSIGN(DeviceService);
49 }; 72 };
50 73
51 } // namespace device 74 } // namespace device
52 75
53 #endif // SERVICES_DEVICE_DEVICE_SERVICE_H_ 76 #endif // SERVICES_DEVICE_DEVICE_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698