Chromium Code Reviews| Index: sync/notifier/sync_invalidation_listener.h |
| diff --git a/sync/notifier/sync_invalidation_listener.h b/sync/notifier/sync_invalidation_listener.h |
| index 345a671821ce14e5af412f0e2c6c87bca8811215..da9aa9fa55c68174372d35254ce84217577cfeb2 100644 |
| --- a/sync/notifier/sync_invalidation_listener.h |
| +++ b/sync/notifier/sync_invalidation_listener.h |
| @@ -20,6 +20,7 @@ |
| #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/invalidation_state_tracker.h" |
| #include "sync/notifier/invalidator_state.h" |
| #include "sync/notifier/object_id_invalidation_map.h" |
| @@ -44,7 +45,8 @@ class SYNC_EXPORT_PRIVATE SyncInvalidationListener |
| : public NON_EXPORTED_BASE(invalidation::InvalidationListener), |
| public StateWriter, |
| public NON_EXPORTED_BASE(notifier::PushClientObserver), |
| - public base::NonThreadSafe { |
| + public base::NonThreadSafe, |
| + public AckTracker::Delegate { |
| public: |
| typedef base::Callback<invalidation::InvalidationClient*( |
| invalidation::SystemResources*, |
| @@ -85,6 +87,9 @@ 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( |
| @@ -131,6 +136,7 @@ class SYNC_EXPORT_PRIVATE SyncInvalidationListener |
| void StopForTest(); |
| InvalidationStateMap GetStateMapForTest() const; |
| + AckTracker* GetAckTrackerForTest(); |
| private: |
| void Stop(); |
| @@ -139,7 +145,20 @@ class SYNC_EXPORT_PRIVATE SyncInvalidationListener |
| void EmitStateChange(); |
| - void EmitInvalidation(const ObjectIdInvalidationMap& invalidation_map); |
| + void PrepareInvalidation(const ObjectIdSet& ids, |
| + const std::string& payload, |
| + invalidation::InvalidationClient* client, |
| + const invalidation::AckHandle& ack_handle); |
| + void EmitInvalidation(const ObjectIdSet& ids, |
| + const std::string& payload, |
| + invalidation::InvalidationClient* client, |
| + const invalidation::AckHandle& ack_handle, |
| + const AckHandleMap& local_ack_handles); |
| + // AckTracker::Delegate implementation. |
|
akalin
2013/02/15 22:32:12
newline before
dcheng
2013/02/22 02:51:30
Done.
|
| + virtual void OnTimeout(const ObjectIdSet& ids) OVERRIDE; |
| + |
| + base::WeakPtrFactory<SyncInvalidationListener> weak_ptr_factory_; |
| + AckTracker ack_tracker_; |
| // Owned by |sync_system_resources_|. |
| notifier::PushClient* const push_client_; |