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

Side by Side Diff: components/arc/arc_bridge_service.cc

Issue 1551763002: arc-bridge: Expose the Mojo version number of the interfaces (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@master
Patch Set: Created 4 years, 12 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #include "components/arc/arc_bridge_service.h" 5 #include "components/arc/arc_bridge_service.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/sequenced_task_runner.h" 10 #include "base/sequenced_task_runner.h"
11 #include "base/thread_task_runner_handle.h" 11 #include "base/thread_task_runner_handle.h"
12 #include "chromeos/chromeos_switches.h" 12 #include "chromeos/chromeos_switches.h"
13 #include "components/arc/arc_bridge_service_impl.h" 13 #include "components/arc/arc_bridge_service_impl.h"
14 14
15 namespace arc { 15 namespace arc {
16 16
17 namespace { 17 namespace {
18 18
19 // Weak pointer. This class is owned by ArcServiceManager. 19 // Weak pointer. This class is owned by ArcServiceManager.
20 ArcBridgeService* g_arc_bridge_service = nullptr; 20 ArcBridgeService* g_arc_bridge_service = nullptr;
21 21
22 } // namespace 22 } // namespace
23 23
24 ArcBridgeService::ArcBridgeService() 24 ArcBridgeService::ArcBridgeService()
25 : available_(false), state_(State::STOPPED) { 25 : available_(false), state_(State::STOPPED), weak_factory_(this) {
26 DCHECK(!g_arc_bridge_service); 26 DCHECK(!g_arc_bridge_service);
27 g_arc_bridge_service = this; 27 g_arc_bridge_service = this;
28 } 28 }
29 29
30 ArcBridgeService::~ArcBridgeService() { 30 ArcBridgeService::~ArcBridgeService() {
31 DCHECK(CalledOnValidThread()); 31 DCHECK(CalledOnValidThread());
32 DCHECK(state() == State::STOPPING || state() == State::STOPPED); 32 DCHECK(state() == State::STOPPING || state() == State::STOPPED);
33 DCHECK(g_arc_bridge_service == this); 33 DCHECK(g_arc_bridge_service == this);
34 g_arc_bridge_service = nullptr; 34 g_arc_bridge_service = nullptr;
35 } 35 }
(...skipping 15 matching lines...) Expand all
51 observer_list_.AddObserver(observer); 51 observer_list_.AddObserver(observer);
52 } 52 }
53 53
54 void ArcBridgeService::RemoveObserver(Observer* observer) { 54 void ArcBridgeService::RemoveObserver(Observer* observer) {
55 DCHECK(CalledOnValidThread()); 55 DCHECK(CalledOnValidThread());
56 observer_list_.RemoveObserver(observer); 56 observer_list_.RemoveObserver(observer);
57 } 57 }
58 58
59 void ArcBridgeService::OnAppInstanceReady(AppInstancePtr app_ptr) { 59 void ArcBridgeService::OnAppInstanceReady(AppInstancePtr app_ptr) {
60 DCHECK(CalledOnValidThread()); 60 DCHECK(CalledOnValidThread());
61 app_ptr_ = std::move(app_ptr); 61 temporary_app_ptr_ = std::move(app_ptr);
62 temporary_app_ptr_.QueryVersion(base::Bind(
63 &ArcBridgeService::OnAppVersionReady, weak_factory_.GetWeakPtr()));
64 }
65
66 void ArcBridgeService::OnAppVersionReady(int32_t version) {
67 DCHECK(CalledOnValidThread());
68 app_ptr_ = std::move(temporary_app_ptr_);
62 FOR_EACH_OBSERVER(Observer, observer_list(), OnAppInstanceReady()); 69 FOR_EACH_OBSERVER(Observer, observer_list(), OnAppInstanceReady());
63 } 70 }
64 71
65 void ArcBridgeService::OnInputInstanceReady(InputInstancePtr input_ptr) { 72 void ArcBridgeService::OnInputInstanceReady(InputInstancePtr input_ptr) {
66 DCHECK(CalledOnValidThread()); 73 DCHECK(CalledOnValidThread());
67 input_ptr_ = std::move(input_ptr); 74 temporary_input_ptr_ = std::move(input_ptr);
75 temporary_input_ptr_.QueryVersion(base::Bind(
76 &ArcBridgeService::OnInputVersionReady, weak_factory_.GetWeakPtr()));
77 }
78
79 void ArcBridgeService::OnInputVersionReady(int32_t version) {
80 DCHECK(CalledOnValidThread());
81 input_ptr_ = std::move(temporary_input_ptr_);
68 FOR_EACH_OBSERVER(Observer, observer_list(), OnInputInstanceReady()); 82 FOR_EACH_OBSERVER(Observer, observer_list(), OnInputInstanceReady());
69 } 83 }
70 84
71 void ArcBridgeService::OnNotificationsInstanceReady( 85 void ArcBridgeService::OnNotificationsInstanceReady(
72 NotificationsInstancePtr notifications_ptr) { 86 NotificationsInstancePtr notifications_ptr) {
73 DCHECK(CalledOnValidThread()); 87 DCHECK(CalledOnValidThread());
74 notifications_ptr_ = std::move(notifications_ptr); 88 temporary_notifications_ptr_ = std::move(notifications_ptr);
89 temporary_notifications_ptr_.QueryVersion(
90 base::Bind(&ArcBridgeService::OnNotificationsVersionReady,
91 weak_factory_.GetWeakPtr()));
92 }
93
94 void ArcBridgeService::OnNotificationsVersionReady(int32_t version) {
95 DCHECK(CalledOnValidThread());
96 notifications_ptr_ = std::move(temporary_notifications_ptr_);
75 FOR_EACH_OBSERVER(Observer, observer_list(), OnNotificationsInstanceReady()); 97 FOR_EACH_OBSERVER(Observer, observer_list(), OnNotificationsInstanceReady());
76 } 98 }
77 99
78 void ArcBridgeService::OnPowerInstanceReady(PowerInstancePtr power_ptr) { 100 void ArcBridgeService::OnPowerInstanceReady(PowerInstancePtr power_ptr) {
79 DCHECK(CalledOnValidThread()); 101 DCHECK(CalledOnValidThread());
80 power_ptr_ = std::move(power_ptr); 102 temporary_power_ptr_ = std::move(power_ptr);
103 temporary_power_ptr_.QueryVersion(base::Bind(
104 &ArcBridgeService::OnPowerVersionReady, weak_factory_.GetWeakPtr()));
105 }
106
107 void ArcBridgeService::OnPowerVersionReady(int32_t version) {
108 DCHECK(CalledOnValidThread());
109 power_ptr_ = std::move(temporary_power_ptr_);
81 FOR_EACH_OBSERVER(Observer, observer_list(), OnPowerInstanceReady()); 110 FOR_EACH_OBSERVER(Observer, observer_list(), OnPowerInstanceReady());
82 } 111 }
83 112
84 void ArcBridgeService::OnProcessInstanceReady(ProcessInstancePtr process_ptr) { 113 void ArcBridgeService::OnProcessInstanceReady(ProcessInstancePtr process_ptr) {
85 DCHECK(CalledOnValidThread()); 114 DCHECK(CalledOnValidThread());
86 process_ptr_ = std::move(process_ptr); 115 temporary_process_ptr_ = std::move(process_ptr);
116 temporary_process_ptr_.QueryVersion(base::Bind(
117 &ArcBridgeService::OnProcessVersionReady, weak_factory_.GetWeakPtr()));
118 }
119
120 void ArcBridgeService::OnProcessVersionReady(int32_t version) {
121 DCHECK(CalledOnValidThread());
122 process_ptr_ = std::move(temporary_process_ptr_);
87 FOR_EACH_OBSERVER(Observer, observer_list(), OnProcessInstanceReady()); 123 FOR_EACH_OBSERVER(Observer, observer_list(), OnProcessInstanceReady());
88 } 124 }
89 125
90 void ArcBridgeService::OnSettingsInstanceReady( 126 void ArcBridgeService::OnSettingsInstanceReady(
91 SettingsInstancePtr settings_ptr) { 127 SettingsInstancePtr settings_ptr) {
92 DCHECK(CalledOnValidThread()); 128 DCHECK(CalledOnValidThread());
93 settings_ptr_ = std::move(settings_ptr); 129 temporary_settings_ptr_ = std::move(settings_ptr);
130 temporary_settings_ptr_.QueryVersion(base::Bind(
131 &ArcBridgeService::OnSettingsVersionReady, weak_factory_.GetWeakPtr()));
132 }
133
134 void ArcBridgeService::OnSettingsVersionReady(int32_t version) {
135 settings_ptr_ = std::move(temporary_settings_ptr_);
94 FOR_EACH_OBSERVER(Observer, observer_list(), OnSettingsInstanceReady()); 136 FOR_EACH_OBSERVER(Observer, observer_list(), OnSettingsInstanceReady());
95 } 137 }
96 138
97 void ArcBridgeService::SetState(State state) { 139 void ArcBridgeService::SetState(State state) {
98 DCHECK(CalledOnValidThread()); 140 DCHECK(CalledOnValidThread());
99 // DCHECK on enum classes not supported. 141 // DCHECK on enum classes not supported.
100 DCHECK(state_ != state); 142 DCHECK(state_ != state);
101 state_ = state; 143 state_ = state;
102 FOR_EACH_OBSERVER(Observer, observer_list(), OnStateChanged(state_)); 144 FOR_EACH_OBSERVER(Observer, observer_list(), OnStateChanged(state_));
103 } 145 }
104 146
105 void ArcBridgeService::SetAvailable(bool available) { 147 void ArcBridgeService::SetAvailable(bool available) {
106 DCHECK(CalledOnValidThread()); 148 DCHECK(CalledOnValidThread());
107 DCHECK(available_ != available); 149 DCHECK(available_ != available);
108 available_ = available; 150 available_ = available;
109 FOR_EACH_OBSERVER(Observer, observer_list(), OnAvailableChanged(available_)); 151 FOR_EACH_OBSERVER(Observer, observer_list(), OnAvailableChanged(available_));
110 } 152 }
111 153
112 bool ArcBridgeService::CalledOnValidThread() { 154 bool ArcBridgeService::CalledOnValidThread() {
113 return thread_checker_.CalledOnValidThread(); 155 return thread_checker_.CalledOnValidThread();
114 } 156 }
115 157
116 } // namespace arc 158 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698