Index: chrome/browser/sync/engine/conflict_resolution_view.h |
=================================================================== |
--- chrome/browser/sync/engine/conflict_resolution_view.h (revision 0) |
+++ chrome/browser/sync/engine/conflict_resolution_view.h (revision 0) |
@@ -0,0 +1,123 @@ |
+// 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. |
+// |
+// Conflict resolution view is intended to provide a restricted |
+// view of the sync cycle state for the conflict resolver. Since the |
+// resolver doesn't get to see all of the SyncProcess, we can allow |
+// it to operate on a subsection of the data. |
+ |
+#ifndef CHROME_BROWSER_SYNC_ENGINE_CONFLICT_RESOLUTION_VIEW_H_ |
+#define CHROME_BROWSER_SYNC_ENGINE_CONFLICT_RESOLUTION_VIEW_H_ |
+ |
+#include <map> |
+#include <set> |
+#include <vector> |
+ |
+#include "base/basictypes.h" |
+#include "chrome/browser/sync/engine/syncer_types.h" |
+ |
+namespace syncable { |
+class Id; |
+} |
+ |
+namespace browser_sync { |
+ |
+class SyncCycleState; |
+class SyncProcessState; |
+class SyncerSession; |
+ |
+class ConflictResolutionView { |
+ // THIS CLASS PROVIDES NO SYNCHRONIZATION GUARANTEES. |
+ public: |
+ |
+ explicit ConflictResolutionView(SyncProcessState* state) |
+ : process_state_(state) { |
+ } |
+ |
+ explicit ConflictResolutionView(SyncerSession* session); |
+ |
+ ~ConflictResolutionView() {} |
+ |
+ int conflicting_updates() const; |
+ |
+ // TODO(sync) can successful commit go in session? |
+ int successful_commits() const; |
+ |
+ void increment_successful_commits(); |
+ |
+ void zero_successful_commits(); |
+ |
+ int conflicting_commits() const; |
+ |
+ void set_conflicting_commits(const int val); |
+ |
+ int num_sync_cycles() const; |
+ |
+ void increment_num_sync_cycles(); |
+ |
+ void zero_num_sync_cycles(); |
+ |
+ // True iff we're stuck. Something has gone wrong with the syncer. |
+ bool syncer_stuck() const; |
+ |
+ void set_syncer_stuck(const bool val); |
+ |
+ int64 current_sync_timestamp() const; |
+ |
+ int64 servers_latest_timestamp() const; |
+ |
+ IdToConflictSetMap::const_iterator IdToConflictSetFind( |
+ const syncable::Id& the_id) const; |
+ |
+ IdToConflictSetMap::const_iterator IdToConflictSetBegin() const; |
+ |
+ IdToConflictSetMap::const_iterator IdToConflictSetEnd() const; |
+ |
+ IdToConflictSetMap::size_type IdToConflictSetSize() const; |
+ |
+ const ConflictSet* IdToConflictSetGet(const syncable::Id& the_id); |
+ |
+ std::set<ConflictSet*>::const_iterator ConflictSetsBegin() const; |
+ |
+ std::set<ConflictSet*>::const_iterator ConflictSetsEnd() const; |
+ |
+ std::set<ConflictSet*>::size_type ConflictSetsSize() const; |
+ |
+ void MergeSets(const syncable::Id& set1, const syncable::Id& set2); |
+ |
+ void CleanupSets(); |
+ |
+ bool HasCommitConflicts() const; |
+ |
+ bool HasBlockedItems() const; |
+ |
+ int CommitConflictsSize() const; |
+ |
+ int BlockedItemsSize() const; |
+ |
+ void AddCommitConflict(const syncable::Id& the_id); |
+ |
+ void AddBlockedItem(const syncable::Id& the_id); |
+ |
+ void EraseCommitConflict(std::set<syncable::Id>::iterator it); |
+ |
+ void EraseBlockedItem(std::set<syncable::Id>::iterator it); |
+ |
+ std::set<syncable::Id>::iterator CommitConflictsBegin() const; |
+ |
+ std::set<syncable::Id>::iterator BlockedItemsBegin() const; |
+ |
+ std::set<syncable::Id>::iterator CommitConflictsEnd() const; |
+ |
+ std::set<syncable::Id>::iterator BlockedItemsEnd() const; |
+ |
+ private: |
+ SyncProcessState* process_state_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ConflictResolutionView); |
+}; |
+ |
+} // namespace browser_sync |
+ |
+#endif // CHROME_BROWSER_SYNC_ENGINE_CONFLICT_RESOLUTION_VIEW_H_ |
Property changes on: chrome\browser\sync\engine\conflict_resolution_view.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |