| Index: chrome/browser/sync/notifier/non_blocking_invalidation_notifier.h
|
| diff --git a/chrome/browser/sync/notifier/non_blocking_invalidation_notifier.h b/chrome/browser/sync/notifier/non_blocking_invalidation_notifier.h
|
| index 351d67f37ad93d4bff827285301656d98c55881a..45da2f6e99a004e70d353949a06744df62eb3655 100644
|
| --- a/chrome/browser/sync/notifier/non_blocking_invalidation_notifier.h
|
| +++ b/chrome/browser/sync/notifier/non_blocking_invalidation_notifier.h
|
| @@ -14,8 +14,11 @@
|
| #include "base/basictypes.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "base/observer_list.h"
|
| #include "chrome/browser/sync/notifier/invalidation_version_tracker.h"
|
| #include "chrome/browser/sync/notifier/sync_notifier.h"
|
| +#include "chrome/browser/sync/notifier/sync_notifier_observer.h"
|
| #include "chrome/browser/sync/util/weak_handle.h"
|
| #include "jingle/notifier/base/notifier_options.h"
|
|
|
| @@ -25,7 +28,9 @@ class MessageLoopProxy;
|
|
|
| namespace sync_notifier {
|
|
|
| -class NonBlockingInvalidationNotifier : public SyncNotifier {
|
| +class NonBlockingInvalidationNotifier
|
| + : public SyncNotifier,
|
| + public SyncNotifierObserver {
|
| public:
|
| // |invalidation_version_tracker| must be initialized.
|
| NonBlockingInvalidationNotifier(
|
| @@ -49,13 +54,26 @@ class NonBlockingInvalidationNotifier : public SyncNotifier {
|
| virtual void SendNotification(
|
| const syncable::ModelTypeSet& changed_types) OVERRIDE;
|
|
|
| + // SyncNotifierObserver implementation.
|
| + virtual void OnIncomingNotification(
|
| + const syncable::ModelTypePayloadMap& type_payloads) OVERRIDE;
|
| + virtual void OnNotificationStateChange(bool notifications_enabled) OVERRIDE;
|
| + virtual void StoreState(const std::string& state) OVERRIDE;
|
| +
|
| private:
|
| - // The real guts of NonBlockingInvalidationNotifier, which allows this class
|
| - // to not be refcounted.
|
| class Core;
|
| +
|
| + base::WeakPtrFactory<NonBlockingInvalidationNotifier> weak_ptr_factory_;
|
| +
|
| + // Our observers (which must live on the parent thread).
|
| + ObserverList<SyncNotifierObserver> observers_;
|
| +
|
| + // The real guts of NonBlockingInvalidationNotifier, which allows
|
| + // this class to live completely on the parent thread.
|
| scoped_refptr<Core> core_;
|
| scoped_refptr<base::MessageLoopProxy> parent_message_loop_proxy_;
|
| scoped_refptr<base::MessageLoopProxy> io_message_loop_proxy_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(NonBlockingInvalidationNotifier);
|
| };
|
|
|
|
|