Index: chrome/browser/google_apis/drive_notification_manager.h |
diff --git a/chrome/browser/google_apis/drive_notification_manager.h b/chrome/browser/google_apis/drive_notification_manager.h |
index 16905db5b7c885977779a80d3e3d922ef1459972..1f2ee58f324656584910d6515a0bebe9b8500e0f 100644 |
--- a/chrome/browser/google_apis/drive_notification_manager.h |
+++ b/chrome/browser/google_apis/drive_notification_manager.h |
@@ -5,24 +5,26 @@ |
#ifndef CHROME_BROWSER_GOOGLE_APIS_DRIVE_NOTIFICATION_MANAGER_H_ |
#define CHROME_BROWSER_GOOGLE_APIS_DRIVE_NOTIFICATION_MANAGER_H_ |
+#include "base/memory/weak_ptr.h" |
#include "base/observer_list.h" |
+#include "base/timer.h" |
#include "chrome/browser/google_apis/drive_notification_observer.h" |
#include "chrome/browser/profiles/profile_keyed_service.h" |
#include "sync/notifier/invalidation_handler.h" |
class Profile; |
+class ProfileSyncService; |
namespace google_apis { |
// Informs observers when they should check Google Drive for updates. |
// Conditions under which updates should be searched: |
// 1. XMPP invalidation is received from Google Drive. |
-// TODO(calvinlo): Implement public syncer::InvalidationHandler interface. |
// 2. Polling timer counts down. |
-// TODO(calvinlo): Also add in backup timer. |
class DriveNotificationManager |
: public ProfileKeyedService, |
- public syncer::InvalidationHandler { |
+ public syncer::InvalidationHandler, |
+ public base::SupportsWeakPtr<DriveNotificationManager> { |
satorux1
2013/04/19 04:12:13
Please use WeakPtrFactory instead in favor of less
calvinlo
2013/04/19 06:15:09
Removed.
Thanks for the tip. Actually, after my
|
public: |
explicit DriveNotificationManager(Profile* profile); |
virtual ~DriveNotificationManager(); |
@@ -38,16 +40,19 @@ class DriveNotificationManager |
void AddObserver(DriveNotificationObserver* observer); |
void RemoveObserver(DriveNotificationObserver* observer); |
+ bool IsPushNotificationEnabled(); |
satorux1
2013/04/19 04:12:13
Function comment is missing.
calvinlo
2013/04/19 06:15:09
Done.
|
private: |
void NotifyObserversToUpdate(); |
// XMPP notification related methods. |
void RegisterDriveNotifications(); |
- bool IsDriveNotificationSupported(); |
- void SetPushNotificationEnabled(syncer::InvalidatorState state); |
+ |
+ // Polling related methods. |
+ void SchedulePolling(int64 new_delay_sec); |
Profile* profile_; |
+ ProfileSyncService* profile_sync_service_; |
ObserverList<DriveNotificationObserver> observers_; |
// XMPP notification related variables. |
@@ -56,7 +61,8 @@ class DriveNotificationManager |
// True once the first drive notification is received with OK state. |
bool push_notification_enabled_; |
- // TODO(calvinlo): Polling variables to go here. |
+ // Timer to trigger fetching changes for incremental sync. |
+ base::RepeatingTimer<DriveNotificationManager> polling_timer_; |
satorux1
2013/04/19 04:12:13
I thought you wanted to remove the polling code??
calvinlo
2013/04/19 06:15:09
Removed. Sorry, I originally based this patch on h
|
DISALLOW_COPY_AND_ASSIGN(DriveNotificationManager); |
}; |