| Index: sync/notifier/sync_invalidation_listener.h
|
| diff --git a/sync/notifier/sync_invalidation_listener.h b/sync/notifier/sync_invalidation_listener.h
|
| index 7b7b2fd640b5c45a02feb97fb44ece46b79edfa5..aedf6a3deb4ac11c5d0371be8ceb6273e532acb6 100644
|
| --- a/sync/notifier/sync_invalidation_listener.h
|
| +++ b/sync/notifier/sync_invalidation_listener.h
|
| @@ -20,16 +20,12 @@
|
| #include "jingle/notifier/listener/push_client_observer.h"
|
| #include "sync/base/sync_export.h"
|
| #include "sync/internal_api/public/util/weak_handle.h"
|
| -#include "sync/notifier/ack_tracker.h"
|
| +#include "sync/notifier/ack_handler.h"
|
| #include "sync/notifier/invalidation_state_tracker.h"
|
| #include "sync/notifier/invalidator_state.h"
|
| -#include "sync/notifier/object_id_invalidation_map.h"
|
| #include "sync/notifier/state_writer.h"
|
| #include "sync/notifier/sync_system_resources.h"
|
| -
|
| -namespace base {
|
| -class TickClock;
|
| -} // namespace base
|
| +#include "sync/notifier/unacked_invalidation_set.h"
|
|
|
| namespace buzz {
|
| class XmppTaskParentInterface;
|
| @@ -41,6 +37,7 @@ class PushClient;
|
|
|
| namespace syncer {
|
|
|
| +class ObjectIdInvalidationMap;
|
| class RegistrationManager;
|
|
|
| // SyncInvalidationListener is not thread-safe and lives on the sync
|
| @@ -49,8 +46,8 @@ class SYNC_EXPORT_PRIVATE SyncInvalidationListener
|
| : public NON_EXPORTED_BASE(invalidation::InvalidationListener),
|
| public StateWriter,
|
| public NON_EXPORTED_BASE(notifier::PushClientObserver),
|
| - public base::NonThreadSafe,
|
| - public AckTracker::Delegate {
|
| + public AckHandler,
|
| + public base::NonThreadSafe {
|
| public:
|
| typedef base::Callback<invalidation::InvalidationClient*(
|
| invalidation::SystemResources*,
|
| @@ -64,13 +61,12 @@ class SYNC_EXPORT_PRIVATE SyncInvalidationListener
|
| virtual ~Delegate();
|
|
|
| virtual void OnInvalidate(
|
| - const ObjectIdInvalidationMap& invalidation_map) = 0;
|
| + const ObjectIdInvalidationMap& invalidations) = 0;
|
|
|
| virtual void OnInvalidatorStateChange(InvalidatorState state) = 0;
|
| };
|
|
|
| explicit SyncInvalidationListener(
|
| - base::TickClock* tick_clock,
|
| scoped_ptr<notifier::PushClient> push_client);
|
|
|
| // Calls Stop().
|
| @@ -83,7 +79,7 @@ class SYNC_EXPORT_PRIVATE SyncInvalidationListener
|
| create_invalidation_client_callback,
|
| const std::string& client_id, const std::string& client_info,
|
| const std::string& invalidation_bootstrap_data,
|
| - const InvalidationStateMap& initial_invalidation_state_map,
|
| + const UnackedInvalidationsMap& initial_object_states,
|
| const WeakHandle<InvalidationStateTracker>& invalidation_state_tracker,
|
| Delegate* delegate);
|
|
|
| @@ -92,9 +88,6 @@ class SYNC_EXPORT_PRIVATE SyncInvalidationListener
|
| // Update the set of object IDs that we're interested in getting
|
| // notifications for. May be called at any time.
|
| void UpdateRegisteredIds(const ObjectIdSet& ids);
|
| - // Acknowledge that an invalidation for |id| was handled.
|
| - void Acknowledge(const invalidation::ObjectId& id,
|
| - const AckHandle& ack_handle);
|
|
|
| // invalidation::InvalidationListener implementation.
|
| virtual void Ready(
|
| @@ -127,6 +120,14 @@ class SYNC_EXPORT_PRIVATE SyncInvalidationListener
|
| invalidation::InvalidationClient* client,
|
| const invalidation::ErrorInfo& error_info) OVERRIDE;
|
|
|
| + // AckHandler implementation.
|
| + virtual void Acknowledge(
|
| + const invalidation::ObjectId& id,
|
| + const syncer::AckHandle& handle) OVERRIDE;
|
| + virtual void Drop(
|
| + const invalidation::ObjectId& id,
|
| + const syncer::AckHandle& handle) OVERRIDE;
|
| +
|
| // StateWriter implementation.
|
| virtual void WriteState(const std::string& state) OVERRIDE;
|
|
|
| @@ -140,8 +141,6 @@ class SYNC_EXPORT_PRIVATE SyncInvalidationListener
|
| void DoRegistrationUpdate();
|
|
|
| void StopForTest();
|
| - InvalidationStateMap GetStateMapForTest() const;
|
| - AckTracker* GetAckTrackerForTest();
|
|
|
| private:
|
| void Stop();
|
| @@ -149,28 +148,16 @@ class SYNC_EXPORT_PRIVATE SyncInvalidationListener
|
| InvalidatorState GetState() const;
|
|
|
| void EmitStateChange();
|
| + void DispatchInvalidations(const ObjectIdInvalidationMap& invalidations);
|
| + void SaveInvalidations(const ObjectIdInvalidationMap& to_save);
|
| + void EmitInvalidations(const ObjectIdInvalidationMap& to_emit);
|
|
|
| - void PrepareInvalidation(const ObjectIdSet& ids,
|
| - int64 version,
|
| - const std::string& payload,
|
| - invalidation::InvalidationClient* client,
|
| - const invalidation::AckHandle& ack_handle);
|
| - void EmitInvalidation(const ObjectIdSet& ids,
|
| - int64 version,
|
| - const std::string& payload,
|
| - invalidation::InvalidationClient* client,
|
| - const invalidation::AckHandle& ack_handle,
|
| - const AckHandleMap& local_ack_handles);
|
| -
|
| - // AckTracker::Delegate implementation.
|
| - virtual void OnTimeout(const ObjectIdSet& ids) OVERRIDE;
|
| -
|
| - AckTracker ack_tracker_;
|
| + WeakHandle<AckHandler> GetThisAsAckHandler();
|
|
|
| // Owned by |sync_system_resources_|.
|
| notifier::PushClient* const push_client_;
|
| SyncSystemResources sync_system_resources_;
|
| - InvalidationStateMap invalidation_state_map_;
|
| + UnackedInvalidationsMap unacked_invalidations_map_;
|
| WeakHandle<InvalidationStateTracker> invalidation_state_tracker_;
|
| Delegate* delegate_;
|
| scoped_ptr<invalidation::InvalidationClient> invalidation_client_;
|
|
|