12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // Copyright 2019 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_SYNC_SERVICE_IMPL_H_
- #define COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_SYNC_SERVICE_IMPL_H_
- #include <memory>
- #include "base/memory/raw_ptr.h"
- #include "components/sync/invalidations/fcm_registration_token_observer.h"
- #include "components/sync/invalidations/interested_data_types_handler.h"
- #include "components/sync/model/model_type_store.h"
- #include "components/sync_device_info/device_info_sync_service.h"
- namespace syncer {
- class DeviceInfoPrefs;
- class DeviceInfoSyncClient;
- class DeviceInfoSyncBridge;
- class MutableLocalDeviceInfoProvider;
- class SyncInvalidationsService;
- class DeviceInfoSyncServiceImpl : public DeviceInfoSyncService,
- public FCMRegistrationTokenObserver,
- public InterestedDataTypesHandler {
- public:
- // |local_device_info_provider| must not be null.
- // |device_info_prefs| must not be null.
- // |device_info_sync_client| must not be null and must outlive this object.
- // |sync_invalidations_service| can be null if sync invalidations are
- // disabled.
- DeviceInfoSyncServiceImpl(
- OnceModelTypeStoreFactory model_type_store_factory,
- std::unique_ptr<MutableLocalDeviceInfoProvider>
- local_device_info_provider,
- std::unique_ptr<DeviceInfoPrefs> device_info_prefs,
- std::unique_ptr<DeviceInfoSyncClient> device_info_sync_client,
- SyncInvalidationsService* sync_invalidations_service);
- DeviceInfoSyncServiceImpl(const DeviceInfoSyncServiceImpl&) = delete;
- DeviceInfoSyncServiceImpl& operator=(const DeviceInfoSyncServiceImpl&) =
- delete;
- ~DeviceInfoSyncServiceImpl() override;
- // DeviceInfoSyncService implementation.
- LocalDeviceInfoProvider* GetLocalDeviceInfoProvider() override;
- DeviceInfoTracker* GetDeviceInfoTracker() override;
- base::WeakPtr<ModelTypeControllerDelegate> GetControllerDelegate() override;
- void RefreshLocalDeviceInfo() override;
- // FCMRegistrationTokenObserver implementation.
- void OnFCMRegistrationTokenChanged() override;
- // InterestedDataTypesHandler implementation.
- void OnInterestedDataTypesChanged() override;
- void SetCommittedAdditionalInterestedDataTypesCallback(
- base::RepeatingCallback<void(const ModelTypeSet&)> callback) override;
- // KeyedService overrides.
- void Shutdown() override;
- private:
- std::unique_ptr<DeviceInfoSyncClient> device_info_sync_client_;
- std::unique_ptr<DeviceInfoSyncBridge> bridge_;
- const raw_ptr<SyncInvalidationsService> sync_invalidations_service_;
- };
- } // namespace syncer
- #endif // COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_SYNC_SERVICE_IMPL_H_
|