multidevice_setup_service.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Copyright 2018 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef ASH_SERVICES_MULTIDEVICE_SETUP_MULTIDEVICE_SETUP_SERVICE_H_
  5. #define ASH_SERVICES_MULTIDEVICE_SETUP_MULTIDEVICE_SETUP_SERVICE_H_
  6. #include <memory>
  7. #include "ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
  8. class PrefService;
  9. class PrefRegistrySimple;
  10. namespace ash {
  11. namespace device_sync {
  12. class DeviceSyncClient;
  13. class GcmDeviceInfoProvider;
  14. } // namespace device_sync
  15. namespace multidevice_setup {
  16. class AndroidSmsAppHelperDelegate;
  17. class AndroidSmsPairingStateTracker;
  18. class AuthTokenValidator;
  19. class MultiDeviceSetupBase;
  20. class PrivilegedHostDeviceSetterBase;
  21. class OobeCompletionTracker;
  22. // Service which provides an implementation for mojom::MultiDeviceSetup. This
  23. // service creates one implementation and shares it among all connection
  24. // requests.
  25. class MultiDeviceSetupService {
  26. public:
  27. MultiDeviceSetupService(
  28. PrefService* pref_service,
  29. device_sync::DeviceSyncClient* device_sync_client,
  30. AuthTokenValidator* auth_token_validator,
  31. OobeCompletionTracker* oobe_completion_tracker,
  32. AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
  33. AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
  34. const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
  35. bool is_secondary_user);
  36. MultiDeviceSetupService(const MultiDeviceSetupService&) = delete;
  37. MultiDeviceSetupService& operator=(const MultiDeviceSetupService&) = delete;
  38. ~MultiDeviceSetupService();
  39. static void RegisterProfilePrefs(PrefRegistrySimple* registry);
  40. void BindMultiDeviceSetup(
  41. mojo::PendingReceiver<mojom::MultiDeviceSetup> receiver);
  42. void BindPrivilegedHostDeviceSetter(
  43. mojo::PendingReceiver<mojom::PrivilegedHostDeviceSetter> receiver);
  44. private:
  45. std::unique_ptr<MultiDeviceSetupBase> multidevice_setup_;
  46. std::unique_ptr<PrivilegedHostDeviceSetterBase>
  47. privileged_host_device_setter_;
  48. };
  49. } // namespace multidevice_setup
  50. } // namespace ash
  51. // TODO(https://crbug.com/1164001): remove when the migration is finished.
  52. namespace chromeos::multidevice_setup {
  53. using ::ash::multidevice_setup::MultiDeviceSetupService;
  54. }
  55. #endif // ASH_SERVICES_MULTIDEVICE_SETUP_MULTIDEVICE_SETUP_SERVICE_H_