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

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

Issue 2552213002: Remove explicit singletonness of ArcBridgeService part 1. (Closed)
Patch Set: git cl format Created 4 years 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 | « components/arc/arc_bridge_host_impl.h ('k') | components/arc/arc_bridge_service_impl.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 #include "components/arc/arc_bridge_host_impl.h" 5 #include "components/arc/arc_bridge_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 60
61 // Put as a last member to ensure that any callback tied to the |ptr_| 61 // Put as a last member to ensure that any callback tied to the |ptr_|
62 // is not invoked. 62 // is not invoked.
63 mojo::InterfacePtr<T> ptr_; 63 mojo::InterfacePtr<T> ptr_;
64 64
65 DISALLOW_COPY_AND_ASSIGN(MojoChannelImpl); 65 DISALLOW_COPY_AND_ASSIGN(MojoChannelImpl);
66 }; 66 };
67 67
68 } // namespace 68 } // namespace
69 69
70 ArcBridgeHostImpl::ArcBridgeHostImpl(mojom::ArcBridgeInstancePtr instance) 70 ArcBridgeHostImpl::ArcBridgeHostImpl(ArcBridgeService* arc_bridge_service,
71 : binding_(this), instance_(std::move(instance)) { 71 mojom::ArcBridgeInstancePtr instance)
72 : arc_bridge_service_(arc_bridge_service),
73 binding_(this),
74 instance_(std::move(instance)) {
75 DCHECK(arc_bridge_service_);
72 DCHECK(instance_.is_bound()); 76 DCHECK(instance_.is_bound());
73 instance_.set_connection_error_handler( 77 instance_.set_connection_error_handler(
74 base::Bind(&ArcBridgeHostImpl::OnClosed, base::Unretained(this))); 78 base::Bind(&ArcBridgeHostImpl::OnClosed, base::Unretained(this)));
75 instance_->Init(binding_.CreateInterfacePtrAndBind()); 79 instance_->Init(binding_.CreateInterfacePtrAndBind());
76 } 80 }
77 81
78 ArcBridgeHostImpl::~ArcBridgeHostImpl() { 82 ArcBridgeHostImpl::~ArcBridgeHostImpl() {
79 OnClosed(); 83 OnClosed();
80 } 84 }
81 85
82 void ArcBridgeHostImpl::OnAppInstanceReady(mojom::AppInstancePtr app_ptr) { 86 void ArcBridgeHostImpl::OnAppInstanceReady(mojom::AppInstancePtr app_ptr) {
83 OnInstanceReady(ArcBridgeService::Get()->app(), std::move(app_ptr)); 87 OnInstanceReady(arc_bridge_service_->app(), std::move(app_ptr));
84 } 88 }
85 89
86 void ArcBridgeHostImpl::OnAudioInstanceReady( 90 void ArcBridgeHostImpl::OnAudioInstanceReady(
87 mojom::AudioInstancePtr audio_ptr) { 91 mojom::AudioInstancePtr audio_ptr) {
88 OnInstanceReady(ArcBridgeService::Get()->audio(), std::move(audio_ptr)); 92 OnInstanceReady(arc_bridge_service_->audio(), std::move(audio_ptr));
89 } 93 }
90 94
91 void ArcBridgeHostImpl::OnAuthInstanceReady(mojom::AuthInstancePtr auth_ptr) { 95 void ArcBridgeHostImpl::OnAuthInstanceReady(mojom::AuthInstancePtr auth_ptr) {
92 OnInstanceReady(ArcBridgeService::Get()->auth(), std::move(auth_ptr)); 96 OnInstanceReady(arc_bridge_service_->auth(), std::move(auth_ptr));
93 } 97 }
94 98
95 void ArcBridgeHostImpl::OnBluetoothInstanceReady( 99 void ArcBridgeHostImpl::OnBluetoothInstanceReady(
96 mojom::BluetoothInstancePtr bluetooth_ptr) { 100 mojom::BluetoothInstancePtr bluetooth_ptr) {
97 OnInstanceReady(ArcBridgeService::Get()->bluetooth(), 101 OnInstanceReady(arc_bridge_service_->bluetooth(), std::move(bluetooth_ptr));
98 std::move(bluetooth_ptr));
99 } 102 }
100 103
101 void ArcBridgeHostImpl::OnBootPhaseMonitorInstanceReady( 104 void ArcBridgeHostImpl::OnBootPhaseMonitorInstanceReady(
102 mojom::BootPhaseMonitorInstancePtr boot_phase_monitor_ptr) { 105 mojom::BootPhaseMonitorInstancePtr boot_phase_monitor_ptr) {
103 OnInstanceReady(ArcBridgeService::Get()->boot_phase_monitor(), 106 OnInstanceReady(arc_bridge_service_->boot_phase_monitor(),
104 std::move(boot_phase_monitor_ptr)); 107 std::move(boot_phase_monitor_ptr));
105 } 108 }
106 109
107 void ArcBridgeHostImpl::OnClipboardInstanceReady( 110 void ArcBridgeHostImpl::OnClipboardInstanceReady(
108 mojom::ClipboardInstancePtr clipboard_ptr) { 111 mojom::ClipboardInstancePtr clipboard_ptr) {
109 OnInstanceReady(ArcBridgeService::Get()->clipboard(), 112 OnInstanceReady(arc_bridge_service_->clipboard(), std::move(clipboard_ptr));
110 std::move(clipboard_ptr));
111 } 113 }
112 114
113 void ArcBridgeHostImpl::OnCrashCollectorInstanceReady( 115 void ArcBridgeHostImpl::OnCrashCollectorInstanceReady(
114 mojom::CrashCollectorInstancePtr crash_collector_ptr) { 116 mojom::CrashCollectorInstancePtr crash_collector_ptr) {
115 OnInstanceReady(ArcBridgeService::Get()->crash_collector(), 117 OnInstanceReady(arc_bridge_service_->crash_collector(),
116 std::move(crash_collector_ptr)); 118 std::move(crash_collector_ptr));
117 } 119 }
118 120
119 void ArcBridgeHostImpl::OnEnterpriseReportingInstanceReady( 121 void ArcBridgeHostImpl::OnEnterpriseReportingInstanceReady(
120 mojom::EnterpriseReportingInstancePtr enterprise_reporting_ptr) { 122 mojom::EnterpriseReportingInstancePtr enterprise_reporting_ptr) {
121 OnInstanceReady(ArcBridgeService::Get()->enterprise_reporting(), 123 OnInstanceReady(arc_bridge_service_->enterprise_reporting(),
122 std::move(enterprise_reporting_ptr)); 124 std::move(enterprise_reporting_ptr));
123 } 125 }
124 126
125 void ArcBridgeHostImpl::OnFileSystemInstanceReady( 127 void ArcBridgeHostImpl::OnFileSystemInstanceReady(
126 mojom::FileSystemInstancePtr file_system_ptr) { 128 mojom::FileSystemInstancePtr file_system_ptr) {
127 OnInstanceReady(ArcBridgeService::Get()->file_system(), 129 OnInstanceReady(arc_bridge_service_->file_system(),
128 std::move(file_system_ptr)); 130 std::move(file_system_ptr));
129 } 131 }
130 132
131 void ArcBridgeHostImpl::OnImeInstanceReady(mojom::ImeInstancePtr ime_ptr) { 133 void ArcBridgeHostImpl::OnImeInstanceReady(mojom::ImeInstancePtr ime_ptr) {
132 OnInstanceReady(ArcBridgeService::Get()->ime(), std::move(ime_ptr)); 134 OnInstanceReady(arc_bridge_service_->ime(), std::move(ime_ptr));
133 } 135 }
134 136
135 void ArcBridgeHostImpl::OnIntentHelperInstanceReady( 137 void ArcBridgeHostImpl::OnIntentHelperInstanceReady(
136 mojom::IntentHelperInstancePtr intent_helper_ptr) { 138 mojom::IntentHelperInstancePtr intent_helper_ptr) {
137 OnInstanceReady(ArcBridgeService::Get()->intent_helper(), 139 OnInstanceReady(arc_bridge_service_->intent_helper(),
138 std::move(intent_helper_ptr)); 140 std::move(intent_helper_ptr));
139 } 141 }
140 142
141 void ArcBridgeHostImpl::OnKioskInstanceReady( 143 void ArcBridgeHostImpl::OnKioskInstanceReady(
142 mojom::KioskInstancePtr kiosk_ptr) { 144 mojom::KioskInstancePtr kiosk_ptr) {
143 OnInstanceReady(ArcBridgeService::Get()->kiosk(), std::move(kiosk_ptr)); 145 OnInstanceReady(arc_bridge_service_->kiosk(), std::move(kiosk_ptr));
144 } 146 }
145 147
146 void ArcBridgeHostImpl::OnMetricsInstanceReady( 148 void ArcBridgeHostImpl::OnMetricsInstanceReady(
147 mojom::MetricsInstancePtr metrics_ptr) { 149 mojom::MetricsInstancePtr metrics_ptr) {
148 OnInstanceReady(ArcBridgeService::Get()->metrics(), std::move(metrics_ptr)); 150 OnInstanceReady(arc_bridge_service_->metrics(), std::move(metrics_ptr));
149 } 151 }
150 152
151 void ArcBridgeHostImpl::OnNetInstanceReady(mojom::NetInstancePtr net_ptr) { 153 void ArcBridgeHostImpl::OnNetInstanceReady(mojom::NetInstancePtr net_ptr) {
152 OnInstanceReady(ArcBridgeService::Get()->net(), std::move(net_ptr)); 154 OnInstanceReady(arc_bridge_service_->net(), std::move(net_ptr));
153 } 155 }
154 156
155 void ArcBridgeHostImpl::OnNotificationsInstanceReady( 157 void ArcBridgeHostImpl::OnNotificationsInstanceReady(
156 mojom::NotificationsInstancePtr notifications_ptr) { 158 mojom::NotificationsInstancePtr notifications_ptr) {
157 OnInstanceReady(ArcBridgeService::Get()->notifications(), 159 OnInstanceReady(arc_bridge_service_->notifications(),
158 std::move(notifications_ptr)); 160 std::move(notifications_ptr));
159 } 161 }
160 162
161 void ArcBridgeHostImpl::OnObbMounterInstanceReady( 163 void ArcBridgeHostImpl::OnObbMounterInstanceReady(
162 mojom::ObbMounterInstancePtr obb_mounter_ptr) { 164 mojom::ObbMounterInstancePtr obb_mounter_ptr) {
163 OnInstanceReady(ArcBridgeService::Get()->obb_mounter(), 165 OnInstanceReady(arc_bridge_service_->obb_mounter(),
164 std::move(obb_mounter_ptr)); 166 std::move(obb_mounter_ptr));
165 } 167 }
166 168
167 void ArcBridgeHostImpl::OnPolicyInstanceReady( 169 void ArcBridgeHostImpl::OnPolicyInstanceReady(
168 mojom::PolicyInstancePtr policy_ptr) { 170 mojom::PolicyInstancePtr policy_ptr) {
169 OnInstanceReady(ArcBridgeService::Get()->policy(), std::move(policy_ptr)); 171 OnInstanceReady(arc_bridge_service_->policy(), std::move(policy_ptr));
170 } 172 }
171 173
172 void ArcBridgeHostImpl::OnPowerInstanceReady( 174 void ArcBridgeHostImpl::OnPowerInstanceReady(
173 mojom::PowerInstancePtr power_ptr) { 175 mojom::PowerInstancePtr power_ptr) {
174 OnInstanceReady(ArcBridgeService::Get()->power(), std::move(power_ptr)); 176 OnInstanceReady(arc_bridge_service_->power(), std::move(power_ptr));
175 } 177 }
176 178
177 void ArcBridgeHostImpl::OnPrintInstanceReady( 179 void ArcBridgeHostImpl::OnPrintInstanceReady(
178 mojom::PrintInstancePtr print_ptr) { 180 mojom::PrintInstancePtr print_ptr) {
179 OnInstanceReady(ArcBridgeService::Get()->print(), std::move(print_ptr)); 181 OnInstanceReady(arc_bridge_service_->print(), std::move(print_ptr));
180 } 182 }
181 183
182 void ArcBridgeHostImpl::OnProcessInstanceReady( 184 void ArcBridgeHostImpl::OnProcessInstanceReady(
183 mojom::ProcessInstancePtr process_ptr) { 185 mojom::ProcessInstancePtr process_ptr) {
184 OnInstanceReady(ArcBridgeService::Get()->process(), std::move(process_ptr)); 186 OnInstanceReady(arc_bridge_service_->process(), std::move(process_ptr));
185 } 187 }
186 188
187 void ArcBridgeHostImpl::OnStorageManagerInstanceReady( 189 void ArcBridgeHostImpl::OnStorageManagerInstanceReady(
188 mojom::StorageManagerInstancePtr storage_manager_ptr) { 190 mojom::StorageManagerInstancePtr storage_manager_ptr) {
189 OnInstanceReady(ArcBridgeService::Get()->storage_manager(), 191 OnInstanceReady(arc_bridge_service_->storage_manager(),
190 std::move(storage_manager_ptr)); 192 std::move(storage_manager_ptr));
191 } 193 }
192 194
193 void ArcBridgeHostImpl::OnTtsInstanceReady(mojom::TtsInstancePtr tts_ptr) { 195 void ArcBridgeHostImpl::OnTtsInstanceReady(mojom::TtsInstancePtr tts_ptr) {
194 OnInstanceReady(ArcBridgeService::Get()->tts(), std::move(tts_ptr)); 196 OnInstanceReady(arc_bridge_service_->tts(), std::move(tts_ptr));
195 } 197 }
196 198
197 void ArcBridgeHostImpl::OnVideoInstanceReady( 199 void ArcBridgeHostImpl::OnVideoInstanceReady(
198 mojom::VideoInstancePtr video_ptr) { 200 mojom::VideoInstancePtr video_ptr) {
199 OnInstanceReady(ArcBridgeService::Get()->video(), std::move(video_ptr)); 201 OnInstanceReady(arc_bridge_service_->video(), std::move(video_ptr));
200 } 202 }
201 203
202 void ArcBridgeHostImpl::OnWallpaperInstanceReady( 204 void ArcBridgeHostImpl::OnWallpaperInstanceReady(
203 mojom::WallpaperInstancePtr wallpaper_ptr) { 205 mojom::WallpaperInstancePtr wallpaper_ptr) {
204 OnInstanceReady(ArcBridgeService::Get()->wallpaper(), 206 OnInstanceReady(arc_bridge_service_->wallpaper(), std::move(wallpaper_ptr));
205 std::move(wallpaper_ptr));
206 } 207 }
207 208
208 void ArcBridgeHostImpl::OnClosed() { 209 void ArcBridgeHostImpl::OnClosed() {
209 DCHECK(thread_checker_.CalledOnValidThread()); 210 DCHECK(thread_checker_.CalledOnValidThread());
210 VLOG(1) << "Mojo connection lost"; 211 VLOG(1) << "Mojo connection lost";
211 212
212 // Close all mojo channels. 213 // Close all mojo channels.
213 mojo_channels_.clear(); 214 mojo_channels_.clear();
214 instance_.reset(); 215 instance_.reset();
215 if (binding_.is_bound()) 216 if (binding_.is_bound())
(...skipping 27 matching lines...) Expand all
243 void ArcBridgeHostImpl::OnChannelClosed(MojoChannel* channel) { 244 void ArcBridgeHostImpl::OnChannelClosed(MojoChannel* channel) {
244 DCHECK(thread_checker_.CalledOnValidThread()); 245 DCHECK(thread_checker_.CalledOnValidThread());
245 mojo_channels_.erase( 246 mojo_channels_.erase(
246 std::find_if(mojo_channels_.begin(), mojo_channels_.end(), 247 std::find_if(mojo_channels_.begin(), mojo_channels_.end(),
247 [channel](std::unique_ptr<MojoChannel>& ptr) { 248 [channel](std::unique_ptr<MojoChannel>& ptr) {
248 return ptr.get() == channel; 249 return ptr.get() == channel;
249 })); 250 }));
250 } 251 }
251 252
252 } // namespace arc 253 } // namespace arc
OLDNEW
« no previous file with comments | « components/arc/arc_bridge_host_impl.h ('k') | components/arc/arc_bridge_service_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698