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_; |