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 |