| 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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 virtual void OnProcessInstanceClosed() {} | 129 virtual void OnProcessInstanceClosed() {} |
| 130 | 130 |
| 131 // Called whenever the ARC video interface state changes. | 131 // Called whenever the ARC video interface state changes. |
| 132 virtual void OnVideoInstanceReady() {} | 132 virtual void OnVideoInstanceReady() {} |
| 133 virtual void OnVideoInstanceClosed() {} | 133 virtual void OnVideoInstanceClosed() {} |
| 134 | 134 |
| 135 // Called whenever the ARC window manager interface state changes. | 135 // Called whenever the ARC window manager interface state changes. |
| 136 virtual void OnWindowManagerInstanceReady() {} | 136 virtual void OnWindowManagerInstanceReady() {} |
| 137 virtual void OnWindowManagerInstanceClosed() {} | 137 virtual void OnWindowManagerInstanceClosed() {} |
| 138 | 138 |
| 139 // Called whenever the ARC OBB mounter interface state changes. |
| 140 virtual void OnObbMounterInstanceReady() {} |
| 141 virtual void OnObbMounterInstanceClosed() {} |
| 142 |
| 139 protected: | 143 protected: |
| 140 virtual ~Observer() {} | 144 virtual ~Observer() {} |
| 141 }; | 145 }; |
| 142 | 146 |
| 143 ~ArcBridgeService() override; | 147 ~ArcBridgeService() override; |
| 144 | 148 |
| 145 // Gets the global instance of the ARC Bridge Service. This can only be | 149 // Gets the global instance of the ARC Bridge Service. This can only be |
| 146 // called on the thread that this class was created on. | 150 // called on the thread that this class was created on. |
| 147 static ArcBridgeService* Get(); | 151 static ArcBridgeService* Get(); |
| 148 | 152 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 mojom::NotificationsInstance* notifications_instance() { | 198 mojom::NotificationsInstance* notifications_instance() { |
| 195 return notifications_ptr_.get(); | 199 return notifications_ptr_.get(); |
| 196 } | 200 } |
| 197 mojom::PolicyInstance* policy_instance() { return policy_ptr_.get(); } | 201 mojom::PolicyInstance* policy_instance() { return policy_ptr_.get(); } |
| 198 mojom::PowerInstance* power_instance() { return power_ptr_.get(); } | 202 mojom::PowerInstance* power_instance() { return power_ptr_.get(); } |
| 199 mojom::ProcessInstance* process_instance() { return process_ptr_.get(); } | 203 mojom::ProcessInstance* process_instance() { return process_ptr_.get(); } |
| 200 mojom::VideoInstance* video_instance() { return video_ptr_.get(); } | 204 mojom::VideoInstance* video_instance() { return video_ptr_.get(); } |
| 201 mojom::WindowManagerInstance* window_manager_instance() { | 205 mojom::WindowManagerInstance* window_manager_instance() { |
| 202 return window_manager_ptr_.get(); | 206 return window_manager_ptr_.get(); |
| 203 } | 207 } |
| 208 mojom::ObbMounterInstance* obb_mounter_instance() { |
| 209 return obb_mounter_ptr_.get(); |
| 210 } |
| 204 | 211 |
| 205 int32_t app_version() const { return app_ptr_.version(); } | 212 int32_t app_version() const { return app_ptr_.version(); } |
| 206 int32_t audio_version() const { return audio_ptr_.version(); } | 213 int32_t audio_version() const { return audio_ptr_.version(); } |
| 207 int32_t bluetooth_version() const { return bluetooth_ptr_.version(); } | 214 int32_t bluetooth_version() const { return bluetooth_ptr_.version(); } |
| 208 int32_t auth_version() const { return auth_ptr_.version(); } | 215 int32_t auth_version() const { return auth_ptr_.version(); } |
| 209 int32_t clipboard_version() const { return clipboard_ptr_.version(); } | 216 int32_t clipboard_version() const { return clipboard_ptr_.version(); } |
| 210 int32_t crash_collector_version() const { | 217 int32_t crash_collector_version() const { |
| 211 return crash_collector_ptr_.version(); | 218 return crash_collector_ptr_.version(); |
| 212 } | 219 } |
| 213 int32_t ime_version() const { return ime_ptr_.version(); } | 220 int32_t ime_version() const { return ime_ptr_.version(); } |
| 214 int32_t intent_helper_version() const { return intent_helper_ptr_.version(); } | 221 int32_t intent_helper_version() const { return intent_helper_ptr_.version(); } |
| 215 int32_t metrics_version() const { return metrics_ptr_.version(); } | 222 int32_t metrics_version() const { return metrics_ptr_.version(); } |
| 216 int32_t net_version() const { return net_ptr_.version(); } | 223 int32_t net_version() const { return net_ptr_.version(); } |
| 217 int32_t notifications_version() const { return notifications_ptr_.version(); } | 224 int32_t notifications_version() const { return notifications_ptr_.version(); } |
| 218 int32_t policy_version() const { return policy_ptr_.version(); } | 225 int32_t policy_version() const { return policy_ptr_.version(); } |
| 219 int32_t power_version() const { return power_ptr_.version(); } | 226 int32_t power_version() const { return power_ptr_.version(); } |
| 220 int32_t process_version() const { return process_ptr_.version(); } | 227 int32_t process_version() const { return process_ptr_.version(); } |
| 221 int32_t video_version() const { return video_ptr_.version(); } | 228 int32_t video_version() const { return video_ptr_.version(); } |
| 222 int32_t window_manager_version() const { | 229 int32_t window_manager_version() const { |
| 223 return window_manager_ptr_.version(); | 230 return window_manager_ptr_.version(); |
| 224 } | 231 } |
| 232 int32_t obb_mounter_version() const { return obb_mounter_ptr_.version(); } |
| 225 | 233 |
| 226 // ArcHost: | 234 // ArcHost: |
| 227 void OnAppInstanceReady(mojom::AppInstancePtr app_ptr) override; | 235 void OnAppInstanceReady(mojom::AppInstancePtr app_ptr) override; |
| 228 void OnAudioInstanceReady(mojom::AudioInstancePtr audio_ptr) override; | 236 void OnAudioInstanceReady(mojom::AudioInstancePtr audio_ptr) override; |
| 229 void OnAuthInstanceReady(mojom::AuthInstancePtr auth_ptr) override; | 237 void OnAuthInstanceReady(mojom::AuthInstancePtr auth_ptr) override; |
| 230 void OnBluetoothInstanceReady( | 238 void OnBluetoothInstanceReady( |
| 231 mojom::BluetoothInstancePtr bluetooth_ptr) override; | 239 mojom::BluetoothInstancePtr bluetooth_ptr) override; |
| 232 void OnClipboardInstanceReady( | 240 void OnClipboardInstanceReady( |
| 233 mojom::ClipboardInstancePtr clipboard_ptr) override; | 241 mojom::ClipboardInstancePtr clipboard_ptr) override; |
| 234 void OnCrashCollectorInstanceReady( | 242 void OnCrashCollectorInstanceReady( |
| 235 mojom::CrashCollectorInstancePtr crash_collector_ptr) override; | 243 mojom::CrashCollectorInstancePtr crash_collector_ptr) override; |
| 236 void OnImeInstanceReady(mojom::ImeInstancePtr ime_ptr) override; | 244 void OnImeInstanceReady(mojom::ImeInstancePtr ime_ptr) override; |
| 237 void OnIntentHelperInstanceReady( | 245 void OnIntentHelperInstanceReady( |
| 238 mojom::IntentHelperInstancePtr intent_helper_ptr) override; | 246 mojom::IntentHelperInstancePtr intent_helper_ptr) override; |
| 239 void OnMetricsInstanceReady(mojom::MetricsInstancePtr metrics_ptr) override; | 247 void OnMetricsInstanceReady(mojom::MetricsInstancePtr metrics_ptr) override; |
| 240 void OnNetInstanceReady(mojom::NetInstancePtr net_ptr) override; | 248 void OnNetInstanceReady(mojom::NetInstancePtr net_ptr) override; |
| 241 void OnNotificationsInstanceReady( | 249 void OnNotificationsInstanceReady( |
| 242 mojom::NotificationsInstancePtr notifications_ptr) override; | 250 mojom::NotificationsInstancePtr notifications_ptr) override; |
| 243 void OnPolicyInstanceReady(mojom::PolicyInstancePtr policy_ptr) override; | 251 void OnPolicyInstanceReady(mojom::PolicyInstancePtr policy_ptr) override; |
| 244 void OnPowerInstanceReady(mojom::PowerInstancePtr power_ptr) override; | 252 void OnPowerInstanceReady(mojom::PowerInstancePtr power_ptr) override; |
| 245 void OnProcessInstanceReady(mojom::ProcessInstancePtr process_ptr) override; | 253 void OnProcessInstanceReady(mojom::ProcessInstancePtr process_ptr) override; |
| 246 void OnVideoInstanceReady(mojom::VideoInstancePtr video_ptr) override; | 254 void OnVideoInstanceReady(mojom::VideoInstancePtr video_ptr) override; |
| 247 void OnWindowManagerInstanceReady( | 255 void OnWindowManagerInstanceReady( |
| 248 mojom::WindowManagerInstancePtr window_manager_ptr) override; | 256 mojom::WindowManagerInstancePtr window_manager_ptr) override; |
| 257 void OnObbMounterInstanceReady( |
| 258 mojom::ObbMounterInstancePtr obb_mounter_ptr) override; |
| 249 | 259 |
| 250 // Gets the current state of the bridge service. | 260 // Gets the current state of the bridge service. |
| 251 State state() const { return state_; } | 261 State state() const { return state_; } |
| 252 | 262 |
| 253 // Gets if ARC is available in this system. | 263 // Gets if ARC is available in this system. |
| 254 bool available() const { return available_; } | 264 bool available() const { return available_; } |
| 255 | 265 |
| 256 protected: | 266 protected: |
| 257 ArcBridgeService(); | 267 ArcBridgeService(); |
| 258 | 268 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 286 void CloseImeChannel(); | 296 void CloseImeChannel(); |
| 287 void CloseIntentHelperChannel(); | 297 void CloseIntentHelperChannel(); |
| 288 void CloseMetricsChannel(); | 298 void CloseMetricsChannel(); |
| 289 void CloseNetChannel(); | 299 void CloseNetChannel(); |
| 290 void CloseNotificationsChannel(); | 300 void CloseNotificationsChannel(); |
| 291 void ClosePolicyChannel(); | 301 void ClosePolicyChannel(); |
| 292 void ClosePowerChannel(); | 302 void ClosePowerChannel(); |
| 293 void CloseProcessChannel(); | 303 void CloseProcessChannel(); |
| 294 void CloseVideoChannel(); | 304 void CloseVideoChannel(); |
| 295 void CloseWindowManagerChannel(); | 305 void CloseWindowManagerChannel(); |
| 306 void CloseObbMounterChannel(); |
| 296 | 307 |
| 297 // Callbacks for QueryVersion. | 308 // Callbacks for QueryVersion. |
| 298 void OnAppVersionReady(int32_t version); | 309 void OnAppVersionReady(int32_t version); |
| 299 void OnAudioVersionReady(int32_t version); | 310 void OnAudioVersionReady(int32_t version); |
| 300 void OnAuthVersionReady(int32_t version); | 311 void OnAuthVersionReady(int32_t version); |
| 301 void OnBluetoothVersionReady(int32_t version); | 312 void OnBluetoothVersionReady(int32_t version); |
| 302 void OnClipboardVersionReady(int32_t version); | 313 void OnClipboardVersionReady(int32_t version); |
| 303 void OnCrashCollectorVersionReady(int32_t version); | 314 void OnCrashCollectorVersionReady(int32_t version); |
| 304 void OnImeVersionReady(int32_t version); | 315 void OnImeVersionReady(int32_t version); |
| 305 void OnIntentHelperVersionReady(int32_t version); | 316 void OnIntentHelperVersionReady(int32_t version); |
| 306 void OnMetricsVersionReady(int32_t version); | 317 void OnMetricsVersionReady(int32_t version); |
| 307 void OnNetVersionReady(int32_t version); | 318 void OnNetVersionReady(int32_t version); |
| 308 void OnNotificationsVersionReady(int32_t version); | 319 void OnNotificationsVersionReady(int32_t version); |
| 309 void OnPolicyVersionReady(int32_t version); | 320 void OnPolicyVersionReady(int32_t version); |
| 310 void OnPowerVersionReady(int32_t version); | 321 void OnPowerVersionReady(int32_t version); |
| 311 void OnProcessVersionReady(int32_t version); | 322 void OnProcessVersionReady(int32_t version); |
| 312 void OnVideoVersionReady(int32_t version); | 323 void OnVideoVersionReady(int32_t version); |
| 313 void OnWindowManagerVersionReady(int32_t version); | 324 void OnWindowManagerVersionReady(int32_t version); |
| 325 void OnObbMounterVersionReady(int32_t version); |
| 314 | 326 |
| 315 // Mojo interfaces. | 327 // Mojo interfaces. |
| 316 mojom::AppInstancePtr app_ptr_; | 328 mojom::AppInstancePtr app_ptr_; |
| 317 mojom::AudioInstancePtr audio_ptr_; | 329 mojom::AudioInstancePtr audio_ptr_; |
| 318 mojom::AuthInstancePtr auth_ptr_; | 330 mojom::AuthInstancePtr auth_ptr_; |
| 319 mojom::BluetoothInstancePtr bluetooth_ptr_; | 331 mojom::BluetoothInstancePtr bluetooth_ptr_; |
| 320 mojom::ClipboardInstancePtr clipboard_ptr_; | 332 mojom::ClipboardInstancePtr clipboard_ptr_; |
| 321 mojom::CrashCollectorInstancePtr crash_collector_ptr_; | 333 mojom::CrashCollectorInstancePtr crash_collector_ptr_; |
| 322 mojom::ImeInstancePtr ime_ptr_; | 334 mojom::ImeInstancePtr ime_ptr_; |
| 323 mojom::IntentHelperInstancePtr intent_helper_ptr_; | 335 mojom::IntentHelperInstancePtr intent_helper_ptr_; |
| 324 mojom::MetricsInstancePtr metrics_ptr_; | 336 mojom::MetricsInstancePtr metrics_ptr_; |
| 325 mojom::NetInstancePtr net_ptr_; | 337 mojom::NetInstancePtr net_ptr_; |
| 326 mojom::NotificationsInstancePtr notifications_ptr_; | 338 mojom::NotificationsInstancePtr notifications_ptr_; |
| 327 mojom::PolicyInstancePtr policy_ptr_; | 339 mojom::PolicyInstancePtr policy_ptr_; |
| 328 mojom::PowerInstancePtr power_ptr_; | 340 mojom::PowerInstancePtr power_ptr_; |
| 329 mojom::ProcessInstancePtr process_ptr_; | 341 mojom::ProcessInstancePtr process_ptr_; |
| 330 mojom::VideoInstancePtr video_ptr_; | 342 mojom::VideoInstancePtr video_ptr_; |
| 331 mojom::WindowManagerInstancePtr window_manager_ptr_; | 343 mojom::WindowManagerInstancePtr window_manager_ptr_; |
| 344 mojom::ObbMounterInstancePtr obb_mounter_ptr_; |
| 332 | 345 |
| 333 // Temporary Mojo interfaces. After a Mojo interface pointer has been | 346 // Temporary Mojo interfaces. After a Mojo interface pointer has been |
| 334 // received from the other endpoint, we still need to asynchronously query | 347 // received from the other endpoint, we still need to asynchronously query |
| 335 // its version. While that is going on, we should still return nullptr on | 348 // its version. While that is going on, we should still return nullptr on |
| 336 // the xxx_instance() functions. | 349 // the xxx_instance() functions. |
| 337 // To keep the xxx_instance() functions being trivial, store the instance | 350 // To keep the xxx_instance() functions being trivial, store the instance |
| 338 // pointer in a temporary variable to avoid losing its reference. | 351 // pointer in a temporary variable to avoid losing its reference. |
| 339 mojom::AppInstancePtr temporary_app_ptr_; | 352 mojom::AppInstancePtr temporary_app_ptr_; |
| 340 mojom::AudioInstancePtr temporary_audio_ptr_; | 353 mojom::AudioInstancePtr temporary_audio_ptr_; |
| 341 mojom::AuthInstancePtr temporary_auth_ptr_; | 354 mojom::AuthInstancePtr temporary_auth_ptr_; |
| 342 mojom::BluetoothInstancePtr temporary_bluetooth_ptr_; | 355 mojom::BluetoothInstancePtr temporary_bluetooth_ptr_; |
| 343 mojom::ClipboardInstancePtr temporary_clipboard_ptr_; | 356 mojom::ClipboardInstancePtr temporary_clipboard_ptr_; |
| 344 mojom::CrashCollectorInstancePtr temporary_crash_collector_ptr_; | 357 mojom::CrashCollectorInstancePtr temporary_crash_collector_ptr_; |
| 345 mojom::ImeInstancePtr temporary_ime_ptr_; | 358 mojom::ImeInstancePtr temporary_ime_ptr_; |
| 346 mojom::IntentHelperInstancePtr temporary_intent_helper_ptr_; | 359 mojom::IntentHelperInstancePtr temporary_intent_helper_ptr_; |
| 347 mojom::MetricsInstancePtr temporary_metrics_ptr_; | 360 mojom::MetricsInstancePtr temporary_metrics_ptr_; |
| 348 mojom::NetInstancePtr temporary_net_ptr_; | 361 mojom::NetInstancePtr temporary_net_ptr_; |
| 349 mojom::NotificationsInstancePtr temporary_notifications_ptr_; | 362 mojom::NotificationsInstancePtr temporary_notifications_ptr_; |
| 350 mojom::PolicyInstancePtr temporary_policy_ptr_; | 363 mojom::PolicyInstancePtr temporary_policy_ptr_; |
| 351 mojom::PowerInstancePtr temporary_power_ptr_; | 364 mojom::PowerInstancePtr temporary_power_ptr_; |
| 352 mojom::ProcessInstancePtr temporary_process_ptr_; | 365 mojom::ProcessInstancePtr temporary_process_ptr_; |
| 353 mojom::VideoInstancePtr temporary_video_ptr_; | 366 mojom::VideoInstancePtr temporary_video_ptr_; |
| 354 mojom::WindowManagerInstancePtr temporary_window_manager_ptr_; | 367 mojom::WindowManagerInstancePtr temporary_window_manager_ptr_; |
| 368 mojom::ObbMounterInstancePtr temporary_obb_mounter_ptr_; |
| 355 | 369 |
| 356 base::ObserverList<Observer> observer_list_; | 370 base::ObserverList<Observer> observer_list_; |
| 357 | 371 |
| 358 base::ThreadChecker thread_checker_; | 372 base::ThreadChecker thread_checker_; |
| 359 | 373 |
| 360 // If the ARC instance service is available. | 374 // If the ARC instance service is available. |
| 361 bool available_; | 375 bool available_; |
| 362 | 376 |
| 363 // The current state of the bridge. | 377 // The current state of the bridge. |
| 364 ArcBridgeService::State state_; | 378 ArcBridgeService::State state_; |
| 365 | 379 |
| 366 // WeakPtrFactory to use callbacks. | 380 // WeakPtrFactory to use callbacks. |
| 367 base::WeakPtrFactory<ArcBridgeService> weak_factory_; | 381 base::WeakPtrFactory<ArcBridgeService> weak_factory_; |
| 368 | 382 |
| 369 DISALLOW_COPY_AND_ASSIGN(ArcBridgeService); | 383 DISALLOW_COPY_AND_ASSIGN(ArcBridgeService); |
| 370 }; | 384 }; |
| 371 | 385 |
| 372 } // namespace arc | 386 } // namespace arc |
| 373 | 387 |
| 374 #endif // COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_ | 388 #endif // COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_ |
| OLD | NEW |