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

Unified Diff: sync/engine/update_applicator.cc

Issue 2130453004: [Sync] Move //sync to //components/sync. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 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
« no previous file with comments | « sync/engine/update_applicator.h ('k') | sync/engine/update_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/engine/update_applicator.cc
diff --git a/sync/engine/update_applicator.cc b/sync/engine/update_applicator.cc
deleted file mode 100644
index 56996398f2257c83d35740b296bc2ed2d90eb4d7..0000000000000000000000000000000000000000
--- a/sync/engine/update_applicator.cc
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "sync/engine/update_applicator.h"
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "base/logging.h"
-#include "sync/engine/syncer_util.h"
-#include "sync/syncable/entry.h"
-#include "sync/syncable/mutable_entry.h"
-#include "sync/syncable/syncable_id.h"
-#include "sync/syncable/syncable_write_transaction.h"
-
-using std::vector;
-
-namespace syncer {
-
-using syncable::ID;
-
-UpdateApplicator::UpdateApplicator(Cryptographer* cryptographer)
- : cryptographer_(cryptographer),
- updates_applied_(0),
- encryption_conflicts_(0),
- hierarchy_conflicts_(0) {
-}
-
-UpdateApplicator::~UpdateApplicator() {
-}
-
-// Attempt to apply all updates, using multiple passes if necessary.
-//
-// Some updates must be applied in order. For example, children must be created
-// after their parent folder is created. This function runs an O(n^2) algorithm
-// that will keep trying until there is nothing left to apply, or it stops
-// making progress, which would indicate that the hierarchy is invalid.
-//
-// The update applicator also has to deal with simple conflicts, which occur
-// when an item is modified on both the server and the local model. We remember
-// their IDs so they can be passed to the conflict resolver after all the other
-// applications are complete.
-//
-// Finally, there are encryption conflicts, which can occur when we don't have
-// access to all the Nigori keys. There's nothing we can do about them here.
-void UpdateApplicator::AttemptApplications(
- syncable::WriteTransaction* trans,
- const std::vector<int64_t>& handles) {
- std::vector<int64_t> to_apply = handles;
-
- DVLOG(1) << "UpdateApplicator running over " << to_apply.size() << " items.";
- while (!to_apply.empty()) {
- std::vector<int64_t> to_reapply;
-
- for (std::vector<int64_t>::iterator i = to_apply.begin();
- i != to_apply.end(); ++i) {
- syncable::MutableEntry entry(trans, syncable::GET_BY_HANDLE, *i);
- UpdateAttemptResponse result = AttemptToUpdateEntry(
- trans, &entry, cryptographer_);
-
- switch (result) {
- case SUCCESS:
- updates_applied_++;
- break;
- case CONFLICT_SIMPLE:
- simple_conflict_ids_.insert(entry.GetId());
- break;
- case CONFLICT_ENCRYPTION:
- encryption_conflicts_++;
- break;
- case CONFLICT_HIERARCHY:
- // The decision to classify these as hierarchy conflcits is tentative.
- // If we make any progress this round, we'll clear the hierarchy
- // conflict count and attempt to reapply these updates.
- to_reapply.push_back(*i);
- break;
- default:
- NOTREACHED();
- break;
- }
- }
-
- if (to_reapply.size() == to_apply.size()) {
- // We made no progress. Must be stubborn hierarchy conflicts.
- hierarchy_conflicts_ = to_apply.size();
- break;
- }
-
- // We made some progress, so prepare for what might be another iteration.
- // If everything went well, to_reapply will be empty and we'll break out on
- // the while condition.
- to_apply.swap(to_reapply);
- to_reapply.clear();
- }
-}
-
-} // namespace syncer
« no previous file with comments | « sync/engine/update_applicator.h ('k') | sync/engine/update_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698