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 #ifndef CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_H_ | 5 #ifndef CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_H_ |
6 #define CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_H_ | 6 #define CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_H_ |
7 | 7 |
8 #include "base/memory/weak_ptr.h" | 8 #include "base/memory/weak_ptr.h" |
9 #include "components/keyed_service/core/keyed_service.h" | 9 #include "components/keyed_service/core/keyed_service.h" |
10 | 10 |
11 class Profile; | 11 class Profile; |
12 class SyncedNotificationsShim; | 12 class SyncedNotificationsShim; |
13 | 13 |
14 namespace extensions { | 14 namespace extensions { |
15 struct Event; | 15 struct Event; |
16 } | 16 } |
17 | 17 |
18 namespace notifier { | 18 namespace notifier { |
19 | 19 |
20 // The ChromeNotifierService acts as the bridge between sync and the JS | 20 // The ChromeNotifierService acts as the bridge between sync and the JS |
21 // extension that implements the synced notifications processing code. | 21 // extension that implements the synced notifications processing code. |
22 // TODO(zea): consider making this a generic bridge for extension backed | 22 // TODO(zea): consider making this a generic bridge for extension backed |
23 // datatypes. | 23 // datatypes. |
24 class ChromeNotifierService : public KeyedService { | 24 class ChromeNotifierService : public KeyedService { |
25 public: | 25 public: |
26 explicit ChromeNotifierService(Profile* profile); | 26 explicit ChromeNotifierService(Profile* profile); |
27 virtual ~ChromeNotifierService(); | 27 virtual ~ChromeNotifierService(); |
28 | 28 |
29 // KeyedService implementation. | 29 // KeyedService implementation. |
30 virtual void Shutdown() OVERRIDE; | 30 virtual void Shutdown() override; |
31 | 31 |
32 // Returns the SyncableService for syncer::SYNCED_NOTIFICATIONS and | 32 // Returns the SyncableService for syncer::SYNCED_NOTIFICATIONS and |
33 // syncer::SYNCED_NOTIFICATION_APP_INFO | 33 // syncer::SYNCED_NOTIFICATION_APP_INFO |
34 SyncedNotificationsShim* GetSyncedNotificationsShim(); | 34 SyncedNotificationsShim* GetSyncedNotificationsShim(); |
35 | 35 |
36 private: | 36 private: |
37 // Helper method for firing JS events triggered by sync. | 37 // Helper method for firing JS events triggered by sync. |
38 void FireSyncJSEvent(scoped_ptr<extensions::Event> event); | 38 void FireSyncJSEvent(scoped_ptr<extensions::Event> event); |
39 | 39 |
40 // Helper method for trigger synced notification refreshes. | 40 // Helper method for trigger synced notification refreshes. |
41 void NotifyRefreshNeeded(); | 41 void NotifyRefreshNeeded(); |
42 | 42 |
43 // The owning profile. | 43 // The owning profile. |
44 Profile* const profile_; | 44 Profile* const profile_; |
45 | 45 |
46 // Shim connecting the JS private api to sync. // TODO(zea): delete all other | 46 // Shim connecting the JS private api to sync. // TODO(zea): delete all other |
47 // code. | 47 // code. |
48 scoped_ptr<SyncedNotificationsShim> synced_notifications_shim_; | 48 scoped_ptr<SyncedNotificationsShim> synced_notifications_shim_; |
49 | 49 |
50 base::WeakPtrFactory<ChromeNotifierService> weak_ptr_factory_; | 50 base::WeakPtrFactory<ChromeNotifierService> weak_ptr_factory_; |
51 | 51 |
52 DISALLOW_COPY_AND_ASSIGN(ChromeNotifierService); | 52 DISALLOW_COPY_AND_ASSIGN(ChromeNotifierService); |
53 }; | 53 }; |
54 | 54 |
55 } // namespace notifier | 55 } // namespace notifier |
56 | 56 |
57 #endif // CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_H_ | 57 #endif // CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_H_ |
OLD | NEW |