blob: 6eb0020777abf2dc91b67f8c33bed65c85e10c6a [file] [log] [blame]
Rushan Suleymanovd5c5ef52020-07-30 13:07:241// Copyright 2020 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
5#ifndef COMPONENTS_SYNC_INVALIDATIONS_SYNC_INVALIDATIONS_SERVICE_IMPL_H_
6#define COMPONENTS_SYNC_INVALIDATIONS_SYNC_INVALIDATIONS_SERVICE_IMPL_H_
7
8#include <memory>
9#include <string>
10
Paula Vidas4f26b6662020-09-03 09:16:2311#include "components/sync/invalidations/interested_data_types_manager.h"
Rushan Suleymanovd5c5ef52020-07-30 13:07:2412#include "components/sync/invalidations/sync_invalidations_service.h"
13
14namespace gcm {
15class GCMDriver;
16}
17
18namespace instance_id {
19class InstanceIDDriver;
20}
21
22namespace syncer {
23class FCMHandler;
24class InvalidationsListener;
25
26// The non-test implementation of SyncInvalidationsService.
27class SyncInvalidationsServiceImpl : public SyncInvalidationsService {
28 public:
29 SyncInvalidationsServiceImpl(
30 gcm::GCMDriver* gcm_driver,
Marc Treibb1428bf2020-09-09 13:08:4231 instance_id::InstanceIDDriver* instance_id_driver);
Rushan Suleymanovd5c5ef52020-07-30 13:07:2432 ~SyncInvalidationsServiceImpl() override;
33
34 // SyncInvalidationsService implementation.
35 void AddListener(InvalidationsListener* listener) override;
36 void RemoveListener(InvalidationsListener* listener) override;
Rushan Suleymanov74e7ee2592020-08-02 19:30:4037 void AddTokenObserver(FCMRegistrationTokenObserver* observer) override;
38 void RemoveTokenObserver(FCMRegistrationTokenObserver* observer) override;
39 const std::string& GetFCMRegistrationToken() const override;
Paula Vidas4f26b6662020-09-03 09:16:2340 void AddInterestedDataTypesObserver(
41 InterestedDataTypesObserver* observer) override;
42 void RemoveInterestedDataTypesObserver(
43 InterestedDataTypesObserver* observer) override;
44 const ModelTypeSet& GetInterestedDataTypes() const override;
45 void SetInterestedDataTypes(const ModelTypeSet& data_types) override;
Rushan Suleymanovd5c5ef52020-07-30 13:07:2446
47 // KeyedService overrides.
48 void Shutdown() override;
49
50 private:
51 std::unique_ptr<FCMHandler> fcm_handler_;
Paula Vidas4f26b6662020-09-03 09:16:2352 InterestedDataTypesManager data_types_manager_;
Rushan Suleymanovd5c5ef52020-07-30 13:07:2453};
54
55} // namespace syncer
56
57#endif // COMPONENTS_SYNC_INVALIDATIONS_SYNC_INVALIDATIONS_SERVICE_IMPL_H_