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

Unified Diff: chrome/browser/sync/engine/update_applicator.h

Issue 194065: Initial commit of sync engine code to browser/sync.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Fixes to gtest include path, reverted syncapi. Created 11 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
Index: chrome/browser/sync/engine/update_applicator.h
===================================================================
--- chrome/browser/sync/engine/update_applicator.h (revision 0)
+++ chrome/browser/sync/engine/update_applicator.h (revision 0)
@@ -0,0 +1,61 @@
+// Copyright (c) 2009 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.
+//
+// An UpdateApplicator is used to iterate over a number of unapplied
+// updates, applying them to the client using the given syncer session.
+//
+// UpdateApplicator might resemble an iterator, but it actually keeps retrying
+// failed updates until no remaining updates can be successfully applied.
+
+#ifndef CHROME_BROWSER_SYNC_ENGINE_UPDATE_APPLICATOR_H_
+#define CHROME_BROWSER_SYNC_ENGINE_UPDATE_APPLICATOR_H_
+
+#include <vector>
+#include <set>
+
+#include "base/basictypes.h"
+#include "base/port.h"
+
+namespace syncable {
+class Id;
+class WriteTransaction;
+} // namespace syncable
+
+namespace browser_sync {
+
+class SyncerSession;
+
+class UpdateApplicator {
+ public:
+ typedef std::vector<int64>::iterator vi64iter;
+
+ UpdateApplicator(SyncerSession* session, const vi64iter& begin,
+ const vi64iter& end);
+ // 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;
+
+ // This class does not automatically save its progress into the
+ // SyncerSession -- to get that to happen, call this method after
+ // update application is finished (i.e., when AttemptOneAllocation
+ // stops returning true).
+ void SaveProgressIntoSessionState();
+
+ private:
+ SyncerSession* const session_;
+ vi64iter const begin_;
+ vi64iter end_;
+ vi64iter pointer_;
+ bool progress_;
+
+ // Track the result of the various items.
+ std::vector<syncable::Id> conflicting_ids_;
+ std::vector<syncable::Id> blocked_ids_;
+ std::vector<syncable::Id> successful_ids_;
+};
+
+} // namespace browser_sync
+
+#endif // CHROME_BROWSER_SYNC_ENGINE_UPDATE_APPLICATOR_H_
Property changes on: chrome\browser\sync\engine\update_applicator.h
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698