OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef CHROME_BROWSER_SYNC_GLUE_BRIDGED_SYNC_NOTIFIER_H_ | |
6 #define CHROME_BROWSER_SYNC_GLUE_BRIDGED_SYNC_NOTIFIER_H_ | |
7 | |
8 #include "base/compiler_specific.h" | |
9 #include "base/memory/scoped_ptr.h" | |
10 #include "sync/notifier/sync_notifier.h" | |
11 | |
12 namespace browser_sync { | |
13 | |
14 class ChromeSyncNotificationBridge; | |
15 | |
16 // A SyncNotifier implementation that wraps a ChromeSyncNotificationBridge | |
17 // and optionally a SyncNotifier delegate (which it takes ownership of). | |
18 // All SyncNotifier calls are passed straight through to the delegate, | |
19 // with the exception of AddObserver/RemoveObserver, which also result in | |
20 // the observer being registered/deregistered with the | |
21 // ChromeSyncNotificationBridge. | |
22 class BridgedSyncNotifier : public syncer::SyncNotifier { | |
23 public: | |
24 // Does not take ownership of |bridge|. Takes ownership of |delegate|. | |
25 // |delegate| may be NULL. | |
26 BridgedSyncNotifier(ChromeSyncNotificationBridge* bridge, | |
27 syncer::SyncNotifier* delegate); | |
28 virtual ~BridgedSyncNotifier(); | |
29 | |
30 // SyncNotifier implementation. Passes through all calls to the delegate. | |
31 // RegisterHandler, UnregisterHandler, and UpdateRegisteredIds calls will | |
32 // also be forwarded to the bridge. | |
33 virtual void RegisterHandler(syncer::SyncNotifierObserver* handler) OVERRIDE; | |
34 virtual void UpdateRegisteredIds(syncer::SyncNotifierObserver* handler, | |
35 const syncer::ObjectIdSet& ids) OVERRIDE; | |
36 virtual void UnregisterHandler( | |
37 syncer::SyncNotifierObserver* handler) OVERRIDE; | |
38 virtual void SetUniqueId(const std::string& unique_id) OVERRIDE; | |
39 virtual void SetStateDeprecated(const std::string& state) OVERRIDE; | |
40 virtual void UpdateCredentials( | |
41 const std::string& email, const std::string& token) OVERRIDE; | |
42 virtual void SendNotification( | |
43 syncer::ModelTypeSet changed_types) OVERRIDE; | |
44 | |
45 private: | |
46 // The notification bridge that we register the observers with. | |
47 ChromeSyncNotificationBridge* bridge_; | |
48 | |
49 // The delegate we are wrapping. | |
50 scoped_ptr<syncer::SyncNotifier> delegate_; | |
51 }; | |
52 | |
53 } // namespace browser_sync | |
54 | |
55 #endif // CHROME_BROWSER_SYNC_GLUE_BRIDGED_SYNC_NOTIFIER_H_ | |
OLD | NEW |