Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(557)

Unified Diff: sync/engine/entity_tracker.h

Issue 423193002: sync: Add non-blocking type encryption support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sync/engine/entity_tracker.h
diff --git a/sync/engine/entity_tracker.h b/sync/engine/entity_tracker.h
index db2d09bf3cf349841ecdb4102e5a30ebb234b043..96fb5bd7a9d733103dc56f9acee1664b005db98f 100644
--- a/sync/engine/entity_tracker.h
+++ b/sync/engine/entity_tracker.h
@@ -8,8 +8,10 @@
#include <string>
#include "base/basictypes.h"
+#include "base/memory/scoped_ptr.h"
#include "base/time/time.h"
#include "sync/base/sync_export.h"
+#include "sync/internal_api/public/non_blocking_sync_common.h"
#include "sync/protocol/sync.pb.h"
namespace syncer {
@@ -81,6 +83,21 @@ class SYNC_EXPORT EntityTracker {
// Handles receipt of an update from the server.
void ReceiveUpdate(int64 version);
+ // Handles the receipt of an inapplicable update from the server.
+ //
+ // Returns true if the tracker decides this item is worth keeping. Returns
+ // false if the item is discarded, which could happen if the version number
+ // is out of date.
+ bool ReceiveInapplicableUpdate(const UpdateResponseData& data);
+
+ // Functions to fetch the latest inapplicable update.
+ bool HasInapplicableUpdate() const;
+ UpdateResponseData GetInapplicableUpdate() const;
+
+ // Clears the inapplicable update. Allows us to resume regular commit
+ // behavior.
+ void ClearInapplicableUpdate();
+
private:
// Initializes received update state. Does not initialize state related to
// pending commits and sets |is_commit_pending_| to false.
@@ -146,6 +163,10 @@ class SYNC_EXPORT EntityTracker {
bool deleted_;
sync_pb::EntitySpecifics specifics_;
+ // An update for this item which can't be applied right now. The presence of
stanisc 2014/07/30 00:30:04 "Inapplicable" sounds to me like it can't be appli
rlarocque 2014/07/30 21:56:01 Nicolas mentioned that he might need to the concep
Nicolas Zea 2014/07/31 18:06:26 Eventually we want to support datatype specific co
rlarocque 2014/07/31 18:54:04 Done. Renamed all instances of inapplicable to pe
+ // an inapplicable update prevents commits.
+ scoped_ptr<UpdateResponseData> inapplicable_update_;
+
DISALLOW_COPY_AND_ASSIGN(EntityTracker);
};

Powered by Google App Engine
This is Rietveld 408576698