| Index: sync/notifier/chrome_invalidation_client.h
|
| diff --git a/sync/notifier/chrome_invalidation_client.h b/sync/notifier/chrome_invalidation_client.h
|
| index ce0939bdbffe710248f77ac65afd85b700856f1e..1ab38c1b4bbb8ef0057f266fd3d7a9388145bbc8 100644
|
| --- a/sync/notifier/chrome_invalidation_client.h
|
| +++ b/sync/notifier/chrome_invalidation_client.h
|
| @@ -17,11 +17,13 @@
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/threading/non_thread_safe.h"
|
| #include "google/cacheinvalidation/include/invalidation-listener.h"
|
| +#include "jingle/notifier/listener/push_client_observer.h"
|
| #include "sync/internal_api/public/syncable/model_type.h"
|
| #include "sync/internal_api/public/syncable/model_type_payload_map.h"
|
| #include "sync/notifier/chrome_system_resources.h"
|
| #include "sync/notifier/invalidation_state_tracker.h"
|
| #include "sync/notifier/state_writer.h"
|
| +#include "sync/notifier/sync_notifier_state.h"
|
| #include "sync/util/weak_handle.h"
|
|
|
| namespace buzz {
|
| @@ -43,6 +45,7 @@ class RegistrationManager;
|
| class ChromeInvalidationClient
|
| : public InvalidationListener,
|
| public StateWriter,
|
| + public notifier::PushClientObserver,
|
| public base::NonThreadSafe {
|
| public:
|
| class Listener {
|
| @@ -52,7 +55,8 @@ class ChromeInvalidationClient
|
| virtual void OnInvalidate(
|
| const syncable::ModelTypePayloadMap& type_payloads) = 0;
|
|
|
| - virtual void OnSessionStatusChanged(bool has_session) = 0;
|
| + virtual void OnSyncNotifierStateChange(
|
| + SyncNotifierState sync_notifier_state) = 0;
|
| };
|
|
|
| explicit ChromeInvalidationClient(
|
| @@ -77,8 +81,6 @@ class ChromeInvalidationClient
|
| // notifications for. May be called at any time.
|
| void RegisterTypes(syncable::ModelTypeSet types);
|
|
|
| - virtual void WriteState(const std::string& state) OVERRIDE;
|
| -
|
| // invalidation::InvalidationListener implementation.
|
| virtual void Ready(
|
| invalidation::InvalidationClient* client) OVERRIDE;
|
| @@ -110,14 +112,29 @@ class ChromeInvalidationClient
|
| invalidation::InvalidationClient* client,
|
| const invalidation::ErrorInfo& error_info) OVERRIDE;
|
|
|
| + // StateWriter implementation.
|
| + virtual void WriteState(const std::string& state) OVERRIDE;
|
| +
|
| + // notifier::PushClientObserver implementation.
|
| + virtual void OnPushClientStateChange(
|
| + notifier::PushClientState push_client_state) OVERRIDE;
|
| + virtual void OnIncomingNotification(
|
| + const notifier::Notification& notification) OVERRIDE;
|
| +
|
| private:
|
| friend class ChromeInvalidationClientTest;
|
|
|
| + SyncNotifierState GetSyncNotifierState() const;
|
| +
|
| void Stop();
|
|
|
| + void EmitStateChange();
|
| +
|
| void EmitInvalidation(
|
| syncable::ModelTypeSet types, const std::string& payload);
|
|
|
| + // Owned by |chrome_system_resources_|.
|
| + notifier::PushClient* const push_client_;
|
| ChromeSystemResources chrome_system_resources_;
|
| InvalidationVersionMap max_invalidation_versions_;
|
| browser_sync::WeakHandle<InvalidationStateTracker>
|
| @@ -127,7 +144,10 @@ class ChromeInvalidationClient
|
| scoped_ptr<RegistrationManager> registration_manager_;
|
| // Stored to pass to |registration_manager_| on start.
|
| syncable::ModelTypeSet registered_types_;
|
| - bool ticl_ready_;
|
| +
|
| + // The sync notifier states of our child objects.
|
| + SyncNotifierState ticl_sync_notifier_state_;
|
| + SyncNotifierState push_client_sync_notifier_state_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ChromeInvalidationClient);
|
| };
|
|
|