1234567891011121314151617181920212223242526272829303132333435363738 |
- // Copyright 2020 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_DRIVER_ACTIVE_DEVICES_PROVIDER_H_
- #define COMPONENTS_SYNC_DRIVER_ACTIVE_DEVICES_PROVIDER_H_
- #include <string>
- #include "base/callback.h"
- #include "components/sync/engine/active_devices_invalidation_info.h"
- namespace syncer {
- // An interface helping to get the information about active devices. Devices are
- // considered active if there are DeviceInfo entries that are (typically) less
- // than one day old (with a little margin around half an hour).
- class ActiveDevicesProvider {
- public:
- using ActiveDevicesChangedCallback = base::RepeatingClosure;
- virtual ~ActiveDevicesProvider() = default;
- // Prepare information for the following sync cycles about invalidations on
- // other devices.
- virtual ActiveDevicesInvalidationInfo CalculateInvalidationInfo(
- const std::string& local_cache_guid) const = 0;
- // The |callback| will be called on each change in device infos. It might be
- // called multiple times with the same number of active devices. The
- // |callback| must be cleared before this object is destroyed.
- virtual void SetActiveDevicesChangedCallback(
- ActiveDevicesChangedCallback callback) = 0;
- };
- } // namespace syncer
- #endif // COMPONENTS_SYNC_DRIVER_ACTIVE_DEVICES_PROVIDER_H_
|