| Index: sync/notifier/sync_invalidation_listener.h
|
| diff --git a/sync/notifier/sync_invalidation_listener.h b/sync/notifier/sync_invalidation_listener.h
|
| index ed7f03143ccb8aafbf726819c57857bc0110a72d..a10d7c4e3aa3fca1bd57ac4728ffee0a5afe8236 100644
|
| --- a/sync/notifier/sync_invalidation_listener.h
|
| +++ b/sync/notifier/sync_invalidation_listener.h
|
| @@ -8,6 +8,7 @@
|
| #ifndef SYNC_NOTIFIER_SYNC_INVALIDATION_LISTENER_H_
|
| #define SYNC_NOTIFIER_SYNC_INVALIDATION_LISTENER_H_
|
|
|
| +#include <map>
|
| #include <string>
|
|
|
| #include "base/basictypes.h"
|
| @@ -16,6 +17,8 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/threading/non_thread_safe.h"
|
| +#include "base/time.h"
|
| +#include "base/timer.h"
|
| #include "google/cacheinvalidation/include/invalidation-listener.h"
|
| #include "jingle/notifier/listener/push_client_observer.h"
|
| #include "sync/internal_api/public/util/weak_handle.h"
|
| @@ -74,7 +77,7 @@ class SyncInvalidationListener
|
| create_invalidation_client_callback,
|
| const std::string& client_id, const std::string& client_info,
|
| const std::string& state,
|
| - const InvalidationVersionMap& initial_max_invalidation_versions,
|
| + const InvalidationStateMap& initial_invalidation_state_map,
|
| const WeakHandle<InvalidationStateTracker>& invalidation_state_tracker,
|
| Delegate* delegate);
|
|
|
| @@ -83,6 +86,9 @@ class 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);
|
| + // TODO(dcheng): Add a comment.
|
| + void Acknowledge(const invalidation::ObjectId& id,
|
| + const AckHandle& ack_handle);
|
|
|
| // invalidation::InvalidationListener implementation.
|
| virtual void Ready(
|
| @@ -130,18 +136,44 @@ class SyncInvalidationListener
|
| void DoRegistrationUpdate();
|
|
|
| private:
|
| + struct QueueEntry {
|
| + QueueEntry(const invalidation::ObjectId& id,
|
| + const std::string& payload,
|
| + int retry_count)
|
| + : id(id), payload(payload), retry_count(retry_count) {
|
| + }
|
| +
|
| + invalidation::ObjectId id;
|
| + std::string payload;
|
| + int retry_count;
|
| + };
|
| + typedef std::multimap<base::TimeTicks, QueueEntry> TimerQueue;
|
| +
|
| void Stop();
|
|
|
| InvalidatorState GetState() const;
|
|
|
| void EmitStateChange();
|
|
|
| - void EmitInvalidation(const ObjectIdStateMap& id_state_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,
|
| + const AckHandleMap* const local_ack_handles,
|
| + invalidation::InvalidationClient* client,
|
| + const invalidation::AckHandle& ack_handle);
|
| + void RemitInvalidation();
|
| +
|
| + base::WeakPtrFactory<SyncInvalidationListener> weak_ptr_factory_;
|
| + base::OneShotTimer<SyncInvalidationListener> timer_;
|
| + TimerQueue timer_queue_;
|
|
|
| // Owned by |sync_system_resources_|.
|
| notifier::PushClient* const push_client_;
|
| SyncSystemResources sync_system_resources_;
|
| - InvalidationVersionMap max_invalidation_versions_;
|
| + InvalidationStateMap invalidation_state_map_;
|
| WeakHandle<InvalidationStateTracker> invalidation_state_tracker_;
|
| Delegate* delegate_;
|
| scoped_ptr<invalidation::InvalidationClient> invalidation_client_;
|
|
|