diff options
Diffstat (limited to 'sync/engine/model_type_sync_proxy_impl.h')
-rw-r--r-- | sync/engine/model_type_sync_proxy_impl.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/sync/engine/model_type_sync_proxy_impl.h b/sync/engine/model_type_sync_proxy_impl.h index 2390eda..f160669 100644 --- a/sync/engine/model_type_sync_proxy_impl.h +++ b/sync/engine/model_type_sync_proxy_impl.h @@ -73,7 +73,16 @@ class SYNC_EXPORT_PRIVATE ModelTypeSyncProxyImpl : base::NonThreadSafe { // Informs this object that there are some incoming updates is should // handle. void OnUpdateReceived(const DataTypeState& type_state, - const UpdateResponseDataList& response_list); + const UpdateResponseDataList& response_list, + const UpdateResponseDataList& pending_updates); + + // Returns the list of pending updates. + // + // This is used as a helper function, but it's public mainly for testing. + // The current test harness setup doesn't allow us to test the data that the + // proxy sends to the worker during initialization, so we use this to inspect + // its state instead. + UpdateResponseDataList GetPendingUpdates(); // Returns the long-lived WeakPtr that is intended to be registered with the // ProfileSyncService. @@ -81,6 +90,7 @@ class SYNC_EXPORT_PRIVATE ModelTypeSyncProxyImpl : base::NonThreadSafe { private: typedef std::map<std::string, ModelTypeEntity*> EntityMap; + typedef std::map<std::string, UpdateResponseData*> UpdateMap; // Sends all commit requests that are due to be sent to the sync thread. void FlushPendingCommitRequests(); @@ -123,6 +133,12 @@ class SYNC_EXPORT_PRIVATE ModelTypeSyncProxyImpl : base::NonThreadSafe { EntityMap entities_; STLValueDeleter<EntityMap> entities_deleter_; + // A set of updates that can not be applied at this time. These are never + // used by the model. They are kept here only so we can save and restore + // them across restarts, and keep them in sync with our progress markers. + UpdateMap pending_updates_map_; + STLValueDeleter<UpdateMap> pending_updates_map_deleter_; + // We use two different WeakPtrFactories because we want the pointers they // issue to have different lifetimes. When asked to disconnect from the sync // thread, we want to make sure that no tasks generated as part of the |