| OLD | NEW |
| 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 #ifndef COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_ | 5 #ifndef COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_ |
| 6 #define COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_ | 6 #define COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 virtual void OnMetricsInstanceClosed() {} | 109 virtual void OnMetricsInstanceClosed() {} |
| 110 | 110 |
| 111 // Called whenever the ARC notification interface state changes. | 111 // Called whenever the ARC notification interface state changes. |
| 112 virtual void OnNotificationsInstanceReady() {} | 112 virtual void OnNotificationsInstanceReady() {} |
| 113 virtual void OnNotificationsInstanceClosed() {} | 113 virtual void OnNotificationsInstanceClosed() {} |
| 114 | 114 |
| 115 // Called whenever the ARC net interface state changes. | 115 // Called whenever the ARC net interface state changes. |
| 116 virtual void OnNetInstanceReady() {} | 116 virtual void OnNetInstanceReady() {} |
| 117 virtual void OnNetInstanceClosed() {} | 117 virtual void OnNetInstanceClosed() {} |
| 118 | 118 |
| 119 // Called whenever the ARC OBB mounter interface state changes. | |
| 120 virtual void OnObbMounterInstanceReady() {} | |
| 121 virtual void OnObbMounterInstanceClosed() {} | |
| 122 | |
| 123 // Called whenever the ARC policy interface state changes. | 119 // Called whenever the ARC policy interface state changes. |
| 124 virtual void OnPolicyInstanceReady() {} | 120 virtual void OnPolicyInstanceReady() {} |
| 125 virtual void OnPolicyInstanceClosed() {} | 121 virtual void OnPolicyInstanceClosed() {} |
| 126 | 122 |
| 127 // Called whenever the ARC power interface state changes. | 123 // Called whenever the ARC power interface state changes. |
| 128 virtual void OnPowerInstanceReady() {} | 124 virtual void OnPowerInstanceReady() {} |
| 129 virtual void OnPowerInstanceClosed() {} | 125 virtual void OnPowerInstanceClosed() {} |
| 130 | 126 |
| 131 // Called whenever the ARC process interface state changes. | 127 // Called whenever the ARC process interface state changes. |
| 132 virtual void OnProcessInstanceReady() {} | 128 virtual void OnProcessInstanceReady() {} |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 } | 191 } |
| 196 mojom::ImeInstance* ime_instance() { return ime_ptr_.get(); } | 192 mojom::ImeInstance* ime_instance() { return ime_ptr_.get(); } |
| 197 mojom::IntentHelperInstance* intent_helper_instance() { | 193 mojom::IntentHelperInstance* intent_helper_instance() { |
| 198 return intent_helper_ptr_.get(); | 194 return intent_helper_ptr_.get(); |
| 199 } | 195 } |
| 200 mojom::MetricsInstance* metrics_instance() { return metrics_ptr_.get(); } | 196 mojom::MetricsInstance* metrics_instance() { return metrics_ptr_.get(); } |
| 201 mojom::NetInstance* net_instance() { return net_ptr_.get(); } | 197 mojom::NetInstance* net_instance() { return net_ptr_.get(); } |
| 202 mojom::NotificationsInstance* notifications_instance() { | 198 mojom::NotificationsInstance* notifications_instance() { |
| 203 return notifications_ptr_.get(); | 199 return notifications_ptr_.get(); |
| 204 } | 200 } |
| 205 mojom::ObbMounterInstance* obb_mounter_instance() { | |
| 206 return obb_mounter_ptr_.get(); | |
| 207 } | |
| 208 mojom::PolicyInstance* policy_instance() { return policy_ptr_.get(); } | 201 mojom::PolicyInstance* policy_instance() { return policy_ptr_.get(); } |
| 209 mojom::PowerInstance* power_instance() { return power_ptr_.get(); } | 202 mojom::PowerInstance* power_instance() { return power_ptr_.get(); } |
| 210 mojom::ProcessInstance* process_instance() { return process_ptr_.get(); } | 203 mojom::ProcessInstance* process_instance() { return process_ptr_.get(); } |
| 211 mojom::StorageManagerInstance* storage_manager_instance() { | 204 mojom::StorageManagerInstance* storage_manager_instance() { |
| 212 return storage_manager_ptr_.get(); | 205 return storage_manager_ptr_.get(); |
| 213 } | 206 } |
| 214 mojom::VideoInstance* video_instance() { return video_ptr_.get(); } | 207 mojom::VideoInstance* video_instance() { return video_ptr_.get(); } |
| 215 mojom::WindowManagerInstance* window_manager_instance() { | 208 mojom::WindowManagerInstance* window_manager_instance() { |
| 216 return window_manager_ptr_.get(); | 209 return window_manager_ptr_.get(); |
| 217 } | 210 } |
| 218 | 211 |
| 219 int32_t app_version() const { return app_ptr_.version(); } | 212 int32_t app_version() const { return app_ptr_.version(); } |
| 220 int32_t audio_version() const { return audio_ptr_.version(); } | 213 int32_t audio_version() const { return audio_ptr_.version(); } |
| 221 int32_t bluetooth_version() const { return bluetooth_ptr_.version(); } | 214 int32_t bluetooth_version() const { return bluetooth_ptr_.version(); } |
| 222 int32_t auth_version() const { return auth_ptr_.version(); } | 215 int32_t auth_version() const { return auth_ptr_.version(); } |
| 223 int32_t clipboard_version() const { return clipboard_ptr_.version(); } | 216 int32_t clipboard_version() const { return clipboard_ptr_.version(); } |
| 224 int32_t crash_collector_version() const { | 217 int32_t crash_collector_version() const { |
| 225 return crash_collector_ptr_.version(); | 218 return crash_collector_ptr_.version(); |
| 226 } | 219 } |
| 227 int32_t ime_version() const { return ime_ptr_.version(); } | 220 int32_t ime_version() const { return ime_ptr_.version(); } |
| 228 int32_t intent_helper_version() const { return intent_helper_ptr_.version(); } | 221 int32_t intent_helper_version() const { return intent_helper_ptr_.version(); } |
| 229 int32_t metrics_version() const { return metrics_ptr_.version(); } | 222 int32_t metrics_version() const { return metrics_ptr_.version(); } |
| 230 int32_t net_version() const { return net_ptr_.version(); } | 223 int32_t net_version() const { return net_ptr_.version(); } |
| 231 int32_t notifications_version() const { return notifications_ptr_.version(); } | 224 int32_t notifications_version() const { return notifications_ptr_.version(); } |
| 232 int32_t obb_mounter_version() const { return obb_mounter_ptr_.version(); } | |
| 233 int32_t policy_version() const { return policy_ptr_.version(); } | 225 int32_t policy_version() const { return policy_ptr_.version(); } |
| 234 int32_t power_version() const { return power_ptr_.version(); } | 226 int32_t power_version() const { return power_ptr_.version(); } |
| 235 int32_t process_version() const { return process_ptr_.version(); } | 227 int32_t process_version() const { return process_ptr_.version(); } |
| 236 int32_t storage_manager_version() const { | 228 int32_t storage_manager_version() const { |
| 237 return storage_manager_ptr_.version(); | 229 return storage_manager_ptr_.version(); |
| 238 } | 230 } |
| 239 int32_t video_version() const { return video_ptr_.version(); } | 231 int32_t video_version() const { return video_ptr_.version(); } |
| 240 int32_t window_manager_version() const { | 232 int32_t window_manager_version() const { |
| 241 return window_manager_ptr_.version(); | 233 return window_manager_ptr_.version(); |
| 242 } | 234 } |
| 243 | 235 |
| 244 // ArcHost: | 236 // ArcHost: |
| 245 void OnAppInstanceReady(mojom::AppInstancePtr app_ptr) override; | 237 void OnAppInstanceReady(mojom::AppInstancePtr app_ptr) override; |
| 246 void OnAudioInstanceReady(mojom::AudioInstancePtr audio_ptr) override; | 238 void OnAudioInstanceReady(mojom::AudioInstancePtr audio_ptr) override; |
| 247 void OnAuthInstanceReady(mojom::AuthInstancePtr auth_ptr) override; | 239 void OnAuthInstanceReady(mojom::AuthInstancePtr auth_ptr) override; |
| 248 void OnBluetoothInstanceReady( | 240 void OnBluetoothInstanceReady( |
| 249 mojom::BluetoothInstancePtr bluetooth_ptr) override; | 241 mojom::BluetoothInstancePtr bluetooth_ptr) override; |
| 250 void OnClipboardInstanceReady( | 242 void OnClipboardInstanceReady( |
| 251 mojom::ClipboardInstancePtr clipboard_ptr) override; | 243 mojom::ClipboardInstancePtr clipboard_ptr) override; |
| 252 void OnCrashCollectorInstanceReady( | 244 void OnCrashCollectorInstanceReady( |
| 253 mojom::CrashCollectorInstancePtr crash_collector_ptr) override; | 245 mojom::CrashCollectorInstancePtr crash_collector_ptr) override; |
| 254 void OnImeInstanceReady(mojom::ImeInstancePtr ime_ptr) override; | 246 void OnImeInstanceReady(mojom::ImeInstancePtr ime_ptr) override; |
| 255 void OnIntentHelperInstanceReady( | 247 void OnIntentHelperInstanceReady( |
| 256 mojom::IntentHelperInstancePtr intent_helper_ptr) override; | 248 mojom::IntentHelperInstancePtr intent_helper_ptr) override; |
| 257 void OnMetricsInstanceReady(mojom::MetricsInstancePtr metrics_ptr) override; | 249 void OnMetricsInstanceReady(mojom::MetricsInstancePtr metrics_ptr) override; |
| 258 void OnNetInstanceReady(mojom::NetInstancePtr net_ptr) override; | 250 void OnNetInstanceReady(mojom::NetInstancePtr net_ptr) override; |
| 259 void OnNotificationsInstanceReady( | 251 void OnNotificationsInstanceReady( |
| 260 mojom::NotificationsInstancePtr notifications_ptr) override; | 252 mojom::NotificationsInstancePtr notifications_ptr) override; |
| 261 void OnObbMounterInstanceReady( | |
| 262 mojom::ObbMounterInstancePtr obb_mounter_ptr) override; | |
| 263 void OnPolicyInstanceReady(mojom::PolicyInstancePtr policy_ptr) override; | 253 void OnPolicyInstanceReady(mojom::PolicyInstancePtr policy_ptr) override; |
| 264 void OnPowerInstanceReady(mojom::PowerInstancePtr power_ptr) override; | 254 void OnPowerInstanceReady(mojom::PowerInstancePtr power_ptr) override; |
| 265 void OnProcessInstanceReady(mojom::ProcessInstancePtr process_ptr) override; | 255 void OnProcessInstanceReady(mojom::ProcessInstancePtr process_ptr) override; |
| 266 void OnStorageManagerInstanceReady( | 256 void OnStorageManagerInstanceReady( |
| 267 mojom::StorageManagerInstancePtr storage_manager_ptr) override; | 257 mojom::StorageManagerInstancePtr storage_manager_ptr) override; |
| 268 void OnVideoInstanceReady(mojom::VideoInstancePtr video_ptr) override; | 258 void OnVideoInstanceReady(mojom::VideoInstancePtr video_ptr) override; |
| 269 void OnWindowManagerInstanceReady( | 259 void OnWindowManagerInstanceReady( |
| 270 mojom::WindowManagerInstancePtr window_manager_ptr) override; | 260 mojom::WindowManagerInstancePtr window_manager_ptr) override; |
| 271 | 261 |
| 272 // Gets the current state of the bridge service. | 262 // Gets the current state of the bridge service. |
| (...skipping 30 matching lines...) Expand all Loading... |
| 303 void CloseAudioChannel(); | 293 void CloseAudioChannel(); |
| 304 void CloseAuthChannel(); | 294 void CloseAuthChannel(); |
| 305 void CloseBluetoothChannel(); | 295 void CloseBluetoothChannel(); |
| 306 void CloseClipboardChannel(); | 296 void CloseClipboardChannel(); |
| 307 void CloseCrashCollectorChannel(); | 297 void CloseCrashCollectorChannel(); |
| 308 void CloseImeChannel(); | 298 void CloseImeChannel(); |
| 309 void CloseIntentHelperChannel(); | 299 void CloseIntentHelperChannel(); |
| 310 void CloseMetricsChannel(); | 300 void CloseMetricsChannel(); |
| 311 void CloseNetChannel(); | 301 void CloseNetChannel(); |
| 312 void CloseNotificationsChannel(); | 302 void CloseNotificationsChannel(); |
| 313 void CloseObbMounterChannel(); | |
| 314 void ClosePolicyChannel(); | 303 void ClosePolicyChannel(); |
| 315 void ClosePowerChannel(); | 304 void ClosePowerChannel(); |
| 316 void CloseProcessChannel(); | 305 void CloseProcessChannel(); |
| 317 void CloseStorageManagerChannel(); | 306 void CloseStorageManagerChannel(); |
| 318 void CloseVideoChannel(); | 307 void CloseVideoChannel(); |
| 319 void CloseWindowManagerChannel(); | 308 void CloseWindowManagerChannel(); |
| 320 | 309 |
| 321 // Callbacks for QueryVersion. | 310 // Callbacks for QueryVersion. |
| 322 void OnAppVersionReady(int32_t version); | 311 void OnAppVersionReady(int32_t version); |
| 323 void OnAudioVersionReady(int32_t version); | 312 void OnAudioVersionReady(int32_t version); |
| 324 void OnAuthVersionReady(int32_t version); | 313 void OnAuthVersionReady(int32_t version); |
| 325 void OnBluetoothVersionReady(int32_t version); | 314 void OnBluetoothVersionReady(int32_t version); |
| 326 void OnClipboardVersionReady(int32_t version); | 315 void OnClipboardVersionReady(int32_t version); |
| 327 void OnCrashCollectorVersionReady(int32_t version); | 316 void OnCrashCollectorVersionReady(int32_t version); |
| 328 void OnImeVersionReady(int32_t version); | 317 void OnImeVersionReady(int32_t version); |
| 329 void OnIntentHelperVersionReady(int32_t version); | 318 void OnIntentHelperVersionReady(int32_t version); |
| 330 void OnMetricsVersionReady(int32_t version); | 319 void OnMetricsVersionReady(int32_t version); |
| 331 void OnNetVersionReady(int32_t version); | 320 void OnNetVersionReady(int32_t version); |
| 332 void OnNotificationsVersionReady(int32_t version); | 321 void OnNotificationsVersionReady(int32_t version); |
| 333 void OnObbMounterVersionReady(int32_t version); | |
| 334 void OnPolicyVersionReady(int32_t version); | 322 void OnPolicyVersionReady(int32_t version); |
| 335 void OnPowerVersionReady(int32_t version); | 323 void OnPowerVersionReady(int32_t version); |
| 336 void OnProcessVersionReady(int32_t version); | 324 void OnProcessVersionReady(int32_t version); |
| 337 void OnStorageManagerVersionReady(int32_t version); | 325 void OnStorageManagerVersionReady(int32_t version); |
| 338 void OnVideoVersionReady(int32_t version); | 326 void OnVideoVersionReady(int32_t version); |
| 339 void OnWindowManagerVersionReady(int32_t version); | 327 void OnWindowManagerVersionReady(int32_t version); |
| 340 | 328 |
| 341 // Mojo interfaces. | 329 // Mojo interfaces. |
| 342 mojom::AppInstancePtr app_ptr_; | 330 mojom::AppInstancePtr app_ptr_; |
| 343 mojom::AudioInstancePtr audio_ptr_; | 331 mojom::AudioInstancePtr audio_ptr_; |
| 344 mojom::AuthInstancePtr auth_ptr_; | 332 mojom::AuthInstancePtr auth_ptr_; |
| 345 mojom::BluetoothInstancePtr bluetooth_ptr_; | 333 mojom::BluetoothInstancePtr bluetooth_ptr_; |
| 346 mojom::ClipboardInstancePtr clipboard_ptr_; | 334 mojom::ClipboardInstancePtr clipboard_ptr_; |
| 347 mojom::CrashCollectorInstancePtr crash_collector_ptr_; | 335 mojom::CrashCollectorInstancePtr crash_collector_ptr_; |
| 348 mojom::ImeInstancePtr ime_ptr_; | 336 mojom::ImeInstancePtr ime_ptr_; |
| 349 mojom::IntentHelperInstancePtr intent_helper_ptr_; | 337 mojom::IntentHelperInstancePtr intent_helper_ptr_; |
| 350 mojom::MetricsInstancePtr metrics_ptr_; | 338 mojom::MetricsInstancePtr metrics_ptr_; |
| 351 mojom::NetInstancePtr net_ptr_; | 339 mojom::NetInstancePtr net_ptr_; |
| 352 mojom::NotificationsInstancePtr notifications_ptr_; | 340 mojom::NotificationsInstancePtr notifications_ptr_; |
| 353 mojom::ObbMounterInstancePtr obb_mounter_ptr_; | |
| 354 mojom::PolicyInstancePtr policy_ptr_; | 341 mojom::PolicyInstancePtr policy_ptr_; |
| 355 mojom::PowerInstancePtr power_ptr_; | 342 mojom::PowerInstancePtr power_ptr_; |
| 356 mojom::ProcessInstancePtr process_ptr_; | 343 mojom::ProcessInstancePtr process_ptr_; |
| 357 mojom::StorageManagerInstancePtr storage_manager_ptr_; | 344 mojom::StorageManagerInstancePtr storage_manager_ptr_; |
| 358 mojom::VideoInstancePtr video_ptr_; | 345 mojom::VideoInstancePtr video_ptr_; |
| 359 mojom::WindowManagerInstancePtr window_manager_ptr_; | 346 mojom::WindowManagerInstancePtr window_manager_ptr_; |
| 360 | 347 |
| 361 // Temporary Mojo interfaces. After a Mojo interface pointer has been | 348 // Temporary Mojo interfaces. After a Mojo interface pointer has been |
| 362 // received from the other endpoint, we still need to asynchronously query | 349 // received from the other endpoint, we still need to asynchronously query |
| 363 // its version. While that is going on, we should still return nullptr on | 350 // its version. While that is going on, we should still return nullptr on |
| 364 // the xxx_instance() functions. | 351 // the xxx_instance() functions. |
| 365 // To keep the xxx_instance() functions being trivial, store the instance | 352 // To keep the xxx_instance() functions being trivial, store the instance |
| 366 // pointer in a temporary variable to avoid losing its reference. | 353 // pointer in a temporary variable to avoid losing its reference. |
| 367 mojom::AppInstancePtr temporary_app_ptr_; | 354 mojom::AppInstancePtr temporary_app_ptr_; |
| 368 mojom::AudioInstancePtr temporary_audio_ptr_; | 355 mojom::AudioInstancePtr temporary_audio_ptr_; |
| 369 mojom::AuthInstancePtr temporary_auth_ptr_; | 356 mojom::AuthInstancePtr temporary_auth_ptr_; |
| 370 mojom::BluetoothInstancePtr temporary_bluetooth_ptr_; | 357 mojom::BluetoothInstancePtr temporary_bluetooth_ptr_; |
| 371 mojom::ClipboardInstancePtr temporary_clipboard_ptr_; | 358 mojom::ClipboardInstancePtr temporary_clipboard_ptr_; |
| 372 mojom::CrashCollectorInstancePtr temporary_crash_collector_ptr_; | 359 mojom::CrashCollectorInstancePtr temporary_crash_collector_ptr_; |
| 373 mojom::ImeInstancePtr temporary_ime_ptr_; | 360 mojom::ImeInstancePtr temporary_ime_ptr_; |
| 374 mojom::IntentHelperInstancePtr temporary_intent_helper_ptr_; | 361 mojom::IntentHelperInstancePtr temporary_intent_helper_ptr_; |
| 375 mojom::MetricsInstancePtr temporary_metrics_ptr_; | 362 mojom::MetricsInstancePtr temporary_metrics_ptr_; |
| 376 mojom::NetInstancePtr temporary_net_ptr_; | 363 mojom::NetInstancePtr temporary_net_ptr_; |
| 377 mojom::NotificationsInstancePtr temporary_notifications_ptr_; | 364 mojom::NotificationsInstancePtr temporary_notifications_ptr_; |
| 378 mojom::ObbMounterInstancePtr temporary_obb_mounter_ptr_; | |
| 379 mojom::PolicyInstancePtr temporary_policy_ptr_; | 365 mojom::PolicyInstancePtr temporary_policy_ptr_; |
| 380 mojom::PowerInstancePtr temporary_power_ptr_; | 366 mojom::PowerInstancePtr temporary_power_ptr_; |
| 381 mojom::ProcessInstancePtr temporary_process_ptr_; | 367 mojom::ProcessInstancePtr temporary_process_ptr_; |
| 382 mojom::StorageManagerInstancePtr temporary_storage_manager_ptr_; | 368 mojom::StorageManagerInstancePtr temporary_storage_manager_ptr_; |
| 383 mojom::VideoInstancePtr temporary_video_ptr_; | 369 mojom::VideoInstancePtr temporary_video_ptr_; |
| 384 mojom::WindowManagerInstancePtr temporary_window_manager_ptr_; | 370 mojom::WindowManagerInstancePtr temporary_window_manager_ptr_; |
| 385 | 371 |
| 386 base::ObserverList<Observer> observer_list_; | 372 base::ObserverList<Observer> observer_list_; |
| 387 | 373 |
| 388 base::ThreadChecker thread_checker_; | 374 base::ThreadChecker thread_checker_; |
| 389 | 375 |
| 390 // If the ARC instance service is available. | 376 // If the ARC instance service is available. |
| 391 bool available_; | 377 bool available_; |
| 392 | 378 |
| 393 // The current state of the bridge. | 379 // The current state of the bridge. |
| 394 ArcBridgeService::State state_; | 380 ArcBridgeService::State state_; |
| 395 | 381 |
| 396 // WeakPtrFactory to use callbacks. | 382 // WeakPtrFactory to use callbacks. |
| 397 base::WeakPtrFactory<ArcBridgeService> weak_factory_; | 383 base::WeakPtrFactory<ArcBridgeService> weak_factory_; |
| 398 | 384 |
| 399 DISALLOW_COPY_AND_ASSIGN(ArcBridgeService); | 385 DISALLOW_COPY_AND_ASSIGN(ArcBridgeService); |
| 400 }; | 386 }; |
| 401 | 387 |
| 402 } // namespace arc | 388 } // namespace arc |
| 403 | 389 |
| 404 #endif // COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_ | 390 #endif // COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_ |
| OLD | NEW |