OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // Interface to the sync notifier, which is an object that receives | 5 // Interface to the sync notifier, which is an object that receives |
6 // notifications when updates are available for a set of sync types. | 6 // notifications when updates are available for a set of sync types. |
7 // All the observers are notified when such an event happens. | 7 // All the observers are notified when such an event happens. |
8 | 8 |
9 #ifndef SYNC_NOTIFIER_SYNC_NOTIFIER_H_ | 9 #ifndef SYNC_NOTIFIER_SYNC_NOTIFIER_H_ |
10 #define SYNC_NOTIFIER_SYNC_NOTIFIER_H_ | 10 #define SYNC_NOTIFIER_SYNC_NOTIFIER_H_ |
11 | 11 |
12 #include <string> | 12 #include <string> |
13 | 13 |
14 #include "sync/internal_api/public/base/model_type.h" | 14 #include "sync/internal_api/public/base/model_type.h" |
15 #include "sync/notifier/invalidation_util.h" | 15 #include "sync/notifier/invalidation_util.h" |
16 | 16 |
17 namespace syncer { | 17 namespace syncer { |
18 class SyncNotifierObserver; | 18 class SyncNotifierObserver; |
19 | 19 |
20 class SyncNotifier { | 20 class SyncNotifier { |
21 public: | 21 public: |
22 SyncNotifier() {} | 22 SyncNotifier() {} |
23 virtual ~SyncNotifier() {} | 23 virtual ~SyncNotifier() {} |
24 | 24 |
25 // Updates the set of ObjectIds associated with a given | 25 // Updates the set of ObjectIds associated with a given |handler|. |
26 // |handler|. Passing an empty ObjectIdSet will unregister | 26 // Passing an empty ObjectIdSet will unregister |handler|. |
27 // |handler|. There should be at most one handler registered per | 27 // There should be at most one handler registered per object id. |
28 // object id. | |
29 virtual void UpdateRegisteredIds(SyncNotifierObserver* handler, | 28 virtual void UpdateRegisteredIds(SyncNotifierObserver* handler, |
30 const ObjectIdSet& ids) = 0; | 29 const ObjectIdSet& ids) = 0; |
31 | 30 |
32 // SetUniqueId must be called once, before any call to | 31 // SetUniqueId must be called once, before any call to |
33 // UpdateCredentials. |unique_id| should be a non-empty globally | 32 // UpdateCredentials. |unique_id| should be a non-empty globally |
34 // unique string. | 33 // unique string. |
35 virtual void SetUniqueId(const std::string& unique_id) = 0; | 34 virtual void SetUniqueId(const std::string& unique_id) = 0; |
36 | 35 |
37 // SetState must be called once, before any call to | 36 // SetState must be called once, before any call to |
38 // UpdateCredentials. |state| may be empty. | 37 // UpdateCredentials. |state| may be empty. |
39 // Deprecated in favour of InvalidationStateTracker persistence. | 38 // Deprecated in favour of InvalidationStateTracker persistence. |
40 virtual void SetStateDeprecated(const std::string& state) = 0; | 39 virtual void SetStateDeprecated(const std::string& state) = 0; |
41 | 40 |
42 // The observers won't be notified of any notifications until | 41 // The observers won't be notified of any notifications until |
43 // UpdateCredentials is called at least once. It can be called more than | 42 // UpdateCredentials is called at least once. It can be called more than |
44 // once. | 43 // once. |
45 virtual void UpdateCredentials( | 44 virtual void UpdateCredentials( |
46 const std::string& email, const std::string& token) = 0; | 45 const std::string& email, const std::string& token) = 0; |
47 | 46 |
48 // This is here only to support the old p2p notification implementation, | 47 // This is here only to support the old p2p notification implementation, |
49 // which is still used by sync integration tests. | 48 // which is still used by sync integration tests. |
50 // TODO(akalin): Remove this once we move the integration tests off p2p | 49 // TODO(akalin): Remove this once we move the integration tests off p2p |
51 // notifications. | 50 // notifications. |
52 virtual void SendNotification(ModelTypeSet changed_types) = 0; | 51 virtual void SendNotification(ModelTypeSet changed_types) = 0; |
53 }; | 52 }; |
54 } // namespace syncer | 53 } // namespace syncer |
55 | 54 |
56 #endif // SYNC_NOTIFIER_SYNC_NOTIFIER_H_ | 55 #endif // SYNC_NOTIFIER_SYNC_NOTIFIER_H_ |
OLD | NEW |