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

Unified Diff: sync/engine/update_applicator.h

Issue 10964057: sync: Refactor update application (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Modify comments and rebase Created 8 years, 3 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
« no previous file with comments | « sync/engine/syncer_util.cc ('k') | sync/engine/update_applicator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/engine/update_applicator.h
diff --git a/sync/engine/update_applicator.h b/sync/engine/update_applicator.h
index 487b41d16c93d3dec7fd1e1ce406e8e61e98fdd6..36a907f81f816ef82f81eb90f7dd6283f3197f0f 100644
--- a/sync/engine/update_applicator.h
+++ b/sync/engine/update_applicator.h
@@ -37,18 +37,14 @@ class UpdateApplicator {
public:
typedef std::vector<int64>::iterator UpdateIterator;
- UpdateApplicator(ConflictResolver* resolver,
- Cryptographer* cryptographer,
- const UpdateIterator& begin,
- const UpdateIterator& end,
+ UpdateApplicator(Cryptographer* cryptographer,
const ModelSafeRoutingInfo& routes,
ModelSafeGroup group_filter);
~UpdateApplicator();
- // returns true if there's more we can do.
- bool AttemptOneApplication(syncable::WriteTransaction* trans);
- // return true if we've applied all updates.
- bool AllUpdatesApplied() const;
+ // Attempt to apply the specified updates.
+ void AttemptApplications(syncable::WriteTransaction* trans,
+ const std::vector<int64>& handles);
// This class does not automatically save its progress into the
// SyncSession -- to get that to happen, call this method after update
@@ -62,7 +58,7 @@ class UpdateApplicator {
// Track the status of all applications.
class ResultTracker {
public:
- explicit ResultTracker(size_t num_results);
+ explicit ResultTracker();
virtual ~ResultTracker();
void AddSimpleConflict(syncable::Id);
void AddEncryptionConflict(syncable::Id);
@@ -70,35 +66,25 @@ class UpdateApplicator {
void AddSuccess(syncable::Id);
void SaveProgress(sessions::ConflictProgress* conflict_progress,
sessions::UpdateProgress* update_progress);
- void ClearConflicts();
+ void ClearHierarchyConflicts();
// Returns true iff conflicting_ids_ is empty. Does not check
// encryption_conflict_ids_.
bool no_conflicts() const;
private:
- std::vector<syncable::Id> conflicting_ids_;
- std::vector<syncable::Id> successful_ids_;
- std::vector<syncable::Id> encryption_conflict_ids_;
- std::vector<syncable::Id> hierarchy_conflict_ids_;
+ std::set<syncable::Id> conflicting_ids_;
+ std::set<syncable::Id> successful_ids_;
+ std::set<syncable::Id> encryption_conflict_ids_;
+ std::set<syncable::Id> hierarchy_conflict_ids_;
};
// If true, AttemptOneApplication will skip over |entry| and return true.
bool SkipUpdate(const syncable::Entry& entry);
- // Adjusts the UpdateIterator members to move ahead by one update.
- void Advance();
-
- // Used to resolve conflicts when trying to apply updates.
- ConflictResolver* const resolver_;
-
// Used to decrypt sensitive sync nodes.
Cryptographer* cryptographer_;
- UpdateIterator const begin_;
- UpdateIterator end_;
- UpdateIterator pointer_;
ModelSafeGroup group_filter_;
- bool progress_;
const ModelSafeRoutingInfo routing_info_;
« no previous file with comments | « sync/engine/syncer_util.cc ('k') | sync/engine/update_applicator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698