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

Unified Diff: sync/sessions/status_controller.h

Issue 10933075: FYI: Remove PerModelSafeGroupState + move ConflictResolution (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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/sessions/session_state_unittest.cc ('k') | sync/sessions/status_controller.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/sessions/status_controller.h
diff --git a/sync/sessions/status_controller.h b/sync/sessions/status_controller.h
index 752d07d7b31fbb137a63671b0107cc72462c33b0..0f7f71e0abffe694712b5d72fbf6f5c49696576d 100644
--- a/sync/sessions/status_controller.h
+++ b/sync/sessions/status_controller.h
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+// FIXME: rewrite this comment.
// StatusController handles all counter and status related number crunching and
// state tracking on behalf of a SyncSession. It 'controls' the model data
// defined in session_state.h. The most important feature of StatusController
@@ -40,7 +41,6 @@
#include "base/time.h"
#include "sync/internal_api/public/sessions/model_neutral_state.h"
#include "sync/sessions/ordered_commit_set.h"
-#include "sync/sessions/session_state.h"
namespace syncer {
namespace sessions {
@@ -50,22 +50,6 @@ class StatusController {
explicit StatusController(const ModelSafeRoutingInfo& routes);
~StatusController();
- // Progress counters. All const methods may return NULL if the
- // progress structure doesn't exist, but all non-const methods
- // auto-create.
- const ConflictProgress* conflict_progress() const;
- ConflictProgress* mutable_conflict_progress();
- const UpdateProgress* update_progress() const;
- UpdateProgress* mutable_update_progress();
- const ConflictProgress* GetUnrestrictedConflictProgress(
- ModelSafeGroup group) const;
- ConflictProgress* GetUnrestrictedMutableConflictProgressForTest(
- ModelSafeGroup group);
- const UpdateProgress* GetUnrestrictedUpdateProgress(
- ModelSafeGroup group) const;
- UpdateProgress* GetUnrestrictedMutableUpdateProgressForTest(
- ModelSafeGroup group);
-
// ClientToServer messages.
const ModelTypeSet updates_request_types() const {
return model_neutral_.updates_request_types;
@@ -92,28 +76,20 @@ class StatusController {
return commit_set.GetCommitIdProjection(group_restriction_);
}
- // Control parameters for sync cycles.
- bool conflicts_resolved() const {
- return model_neutral_.conflicts_resolved;
- }
+ // Various conflict counters.
+ // FIXME: probably unnecessary. Maybe should just access members directly?
+ int num_encryption_conflicts() const;
+ int num_hierarchy_conflicts() const;
+ int num_server_conflicts() const;
- // If a GetUpdates for any data type resulted in downloading an update that
- // is in conflict, this method returns true.
- // Note: this includes unresolvable conflicts.
- bool HasConflictingUpdates() const;
-
- // Aggregate sums of various types of conflict counters accross all
- // ConflictProgress objects (one for each ModelSafeGroup currently in-use).
- int TotalNumEncryptionConflictingItems() const;
- int TotalNumHierarchyConflictingItems() const;
- int TotalNumServerConflictingItems() const;
- int TotalNumSimpleConflictingItems() const;
-
- // Aggregate sum of SimpleConflictingItemSize() and other
- // ${Type}ConflictingItemSize() methods over all ConflictProgress objects (one
- // for each ModelSafeGroup currently in-use).
+ // Aggregate sum of all conflict types.
int TotalNumConflictingItems() const;
+ // Number of successfully applied updates.
+ int num_updates_applied() const;
+
+ int num_server_overwrites() const;
+
// Returns the number of updates received from the sync server.
int64 CountUpdates() const;
@@ -151,24 +127,33 @@ class StatusController {
SyncerError last_get_key_result() const;
- // A toolbelt full of methods for updating counters and flags.
+ // Download counters.
void set_num_server_changes_remaining(int64 changes_remaining);
- void set_num_successful_bookmark_commits(int value);
- void increment_num_successful_commits();
- void increment_num_successful_bookmark_commits();
void increment_num_updates_downloaded_by(int value);
void increment_num_tombstone_updates_downloaded_by(int value);
void increment_num_reflected_updates_downloaded_by(int value);
- void set_types_needing_local_migration(ModelTypeSet types);
+
+ // Update application and conflict resolution counters.
+ void increment_num_updates_applied_by(int value);
+ void increment_num_encryption_conflicts_by(int value);
+ void increment_num_hierarchy_conflicts_by(int value);
+ void increment_num_server_conflicts();
void increment_num_local_overwrites();
void increment_num_server_overwrites();
+
+ // Commit counters.
+ void increment_num_successful_commits();
+ void increment_num_successful_bookmark_commits();
+ void set_num_successful_bookmark_commits(int value);
+
+ // Server communication status tracking.
void set_sync_protocol_error(const SyncProtocolError& error);
void set_last_get_key_result(const SyncerError result);
void set_last_download_updates_result(const SyncerError result);
void set_commit_result(const SyncerError result);
- void update_conflicts_resolved(bool resolved);
- void reset_conflicts_resolved();
+ // A very important flag used to inform frontend of need to migrate.
+ void set_types_needing_local_migration(ModelTypeSet types);
void UpdateStartTime();
@@ -190,19 +175,7 @@ class StatusController {
return group_restriction() == it->second;
}
- // Returns the state, if it exists, or NULL otherwise.
- const PerModelSafeGroupState* GetModelSafeGroupState(
- bool restrict, ModelSafeGroup group) const;
-
- // Helper to lazily create objects for per-ModelSafeGroup state.
- PerModelSafeGroupState* GetOrCreateModelSafeGroupState(
- bool restrict, ModelSafeGroup group);
-
ModelNeutralState model_neutral_;
- std::map<ModelSafeGroup, PerModelSafeGroupState*> per_model_group_;
-
- STLValueDeleter<std::map<ModelSafeGroup, PerModelSafeGroupState*> >
- per_model_group_deleter_;
// Used to fail read/write operations on state that don't obey the current
// active ModelSafeWorker contract.
« no previous file with comments | « sync/sessions/session_state_unittest.cc ('k') | sync/sessions/status_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698