Index: chrome/browser/sync/sessions/status_controller.cc |
diff --git a/chrome/browser/sync/sessions/status_controller.cc b/chrome/browser/sync/sessions/status_controller.cc |
deleted file mode 100644 |
index 262cb891e61874974531979ee1795931b1737760..0000000000000000000000000000000000000000 |
--- a/chrome/browser/sync/sessions/status_controller.cc |
+++ /dev/null |
@@ -1,310 +0,0 @@ |
-// Copyright (c) 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 "chrome/browser/sync/sessions/status_controller.h" |
- |
-#include <vector> |
- |
-#include "base/basictypes.h" |
-#include "chrome/browser/sync/protocol/sync_protocol_error.h" |
-#include "chrome/browser/sync/syncable/model_type.h" |
- |
-namespace browser_sync { |
-namespace sessions { |
- |
-using syncable::FIRST_REAL_MODEL_TYPE; |
-using syncable::MODEL_TYPE_COUNT; |
- |
-StatusController::StatusController(const ModelSafeRoutingInfo& routes) |
- : shared_(&is_dirty_), |
- per_model_group_deleter_(&per_model_group_), |
- is_dirty_(false), |
- group_restriction_in_effect_(false), |
- group_restriction_(GROUP_PASSIVE), |
- routing_info_(routes) { |
-} |
- |
-StatusController::~StatusController() {} |
- |
-bool StatusController::TestAndClearIsDirty() { |
- bool is_dirty = is_dirty_; |
- is_dirty_ = false; |
- return is_dirty; |
-} |
- |
-const UpdateProgress* StatusController::update_progress() const { |
- const PerModelSafeGroupState* state = |
- GetModelSafeGroupState(true, group_restriction_); |
- return state ? &state->update_progress : NULL; |
-} |
- |
-UpdateProgress* StatusController::mutable_update_progress() { |
- return &GetOrCreateModelSafeGroupState( |
- true, group_restriction_)->update_progress; |
-} |
- |
-const ConflictProgress* StatusController::conflict_progress() const { |
- const PerModelSafeGroupState* state = |
- GetModelSafeGroupState(true, group_restriction_); |
- return state ? &state->conflict_progress : NULL; |
-} |
- |
-ConflictProgress* StatusController::mutable_conflict_progress() { |
- return &GetOrCreateModelSafeGroupState( |
- true, group_restriction_)->conflict_progress; |
-} |
- |
-const ConflictProgress* StatusController::GetUnrestrictedConflictProgress( |
- ModelSafeGroup group) const { |
- const PerModelSafeGroupState* state = |
- GetModelSafeGroupState(false, group); |
- return state ? &state->conflict_progress : NULL; |
-} |
- |
-ConflictProgress* |
- StatusController::GetUnrestrictedMutableConflictProgressForTest( |
- ModelSafeGroup group) { |
- return &GetOrCreateModelSafeGroupState(false, group)->conflict_progress; |
-} |
- |
-const UpdateProgress* StatusController::GetUnrestrictedUpdateProgress( |
- ModelSafeGroup group) const { |
- const PerModelSafeGroupState* state = |
- GetModelSafeGroupState(false, group); |
- return state ? &state->update_progress : NULL; |
-} |
- |
-UpdateProgress* |
- StatusController::GetUnrestrictedMutableUpdateProgressForTest( |
- ModelSafeGroup group) { |
- return &GetOrCreateModelSafeGroupState(false, group)->update_progress; |
-} |
- |
-const PerModelSafeGroupState* StatusController::GetModelSafeGroupState( |
- bool restrict, ModelSafeGroup group) const { |
- DCHECK_EQ(restrict, group_restriction_in_effect_); |
- std::map<ModelSafeGroup, PerModelSafeGroupState*>::const_iterator it = |
- per_model_group_.find(group); |
- return (it == per_model_group_.end()) ? NULL : it->second; |
-} |
- |
-PerModelSafeGroupState* StatusController::GetOrCreateModelSafeGroupState( |
- bool restrict, ModelSafeGroup group) { |
- DCHECK_EQ(restrict, group_restriction_in_effect_); |
- std::map<ModelSafeGroup, PerModelSafeGroupState*>::iterator it = |
- per_model_group_.find(group); |
- if (it == per_model_group_.end()) { |
- PerModelSafeGroupState* state = new PerModelSafeGroupState(&is_dirty_); |
- it = per_model_group_.insert(std::make_pair(group, state)).first; |
- } |
- return it->second; |
-} |
- |
-void StatusController::increment_num_updates_downloaded_by(int value) { |
- shared_.syncer_status.mutate()->num_updates_downloaded_total += value; |
-} |
- |
-void StatusController::set_types_needing_local_migration( |
- syncable::ModelTypeSet types) { |
- shared_.syncer_status.mutate()->types_needing_local_migration = types; |
-} |
- |
-void StatusController::increment_num_tombstone_updates_downloaded_by( |
- int value) { |
- shared_.syncer_status.mutate()->num_tombstone_updates_downloaded_total += |
- value; |
-} |
- |
-void StatusController::set_num_server_changes_remaining( |
- int64 changes_remaining) { |
- if (shared_.num_server_changes_remaining.value() != changes_remaining) |
- *(shared_.num_server_changes_remaining.mutate()) = changes_remaining; |
-} |
- |
-void StatusController::set_invalid_store(bool invalid_store) { |
- if (shared_.syncer_status.value().invalid_store != invalid_store) |
- shared_.syncer_status.mutate()->invalid_store = invalid_store; |
-} |
- |
-void StatusController::UpdateStartTime() { |
- sync_start_time_ = base::Time::Now(); |
-} |
- |
-void StatusController::set_num_successful_bookmark_commits(int value) { |
- if (shared_.syncer_status.value().num_successful_bookmark_commits != value) |
- shared_.syncer_status.mutate()->num_successful_bookmark_commits = value; |
-} |
- |
-void StatusController::set_unsynced_handles( |
- const std::vector<int64>& unsynced_handles) { |
- if (!operator==(unsynced_handles, shared_.unsynced_handles.value())) { |
- *(shared_.unsynced_handles.mutate()) = unsynced_handles; |
- } |
-} |
- |
-void StatusController::increment_num_successful_bookmark_commits() { |
- set_num_successful_bookmark_commits( |
- shared_.syncer_status.value().num_successful_bookmark_commits + 1); |
-} |
- |
-void StatusController::increment_num_successful_commits() { |
- shared_.syncer_status.mutate()->num_successful_commits++; |
-} |
- |
-void StatusController::increment_num_local_overwrites() { |
- shared_.syncer_status.mutate()->num_local_overwrites++; |
-} |
- |
-void StatusController::increment_num_server_overwrites() { |
- shared_.syncer_status.mutate()->num_server_overwrites++; |
-} |
- |
-void StatusController::set_sync_protocol_error( |
- const SyncProtocolError& error) { |
- shared_.error.mutate()->sync_protocol_error = error; |
-} |
- |
-void StatusController::set_last_download_updates_result( |
- const SyncerError result) { |
- shared_.error.mutate()->last_download_updates_result = result; |
-} |
- |
-void StatusController::set_last_post_commit_result(const SyncerError result) { |
- shared_.error.mutate()->last_post_commit_result = result; |
-} |
- |
-void StatusController::set_last_process_commit_response_result( |
- const SyncerError result) { |
- shared_.error.mutate()->last_process_commit_response_result = result; |
-} |
- |
-void StatusController::set_commit_set(const OrderedCommitSet& commit_set) { |
- DCHECK(!group_restriction_in_effect_); |
- shared_.commit_set = commit_set; |
-} |
- |
-void StatusController::update_conflicts_resolved(bool resolved) { |
- shared_.control_params.conflicts_resolved |= resolved; |
-} |
-void StatusController::reset_conflicts_resolved() { |
- shared_.control_params.conflicts_resolved = false; |
-} |
-void StatusController::set_items_committed() { |
- shared_.control_params.items_committed = true; |
-} |
- |
-// Returns the number of updates received from the sync server. |
-int64 StatusController::CountUpdates() const { |
- const ClientToServerResponse& updates = shared_.updates_response; |
- if (updates.has_get_updates()) { |
- return updates.get_updates().entries().size(); |
- } else { |
- return 0; |
- } |
-} |
- |
-bool StatusController::CurrentCommitIdProjectionHasIndex(size_t index) { |
- OrderedCommitSet::Projection proj = |
- shared_.commit_set.GetCommitIdProjection(group_restriction_); |
- return std::binary_search(proj.begin(), proj.end(), index); |
-} |
- |
-bool StatusController::HasConflictingUpdates() const { |
- DCHECK(!group_restriction_in_effect_) |
- << "HasConflictingUpdates applies to all ModelSafeGroups"; |
- std::map<ModelSafeGroup, PerModelSafeGroupState*>::const_iterator it = |
- per_model_group_.begin(); |
- for (; it != per_model_group_.end(); ++it) { |
- if (it->second->update_progress.HasConflictingUpdates()) |
- return true; |
- } |
- return false; |
-} |
- |
-int StatusController::TotalNumEncryptionConflictingItems() const { |
- DCHECK(!group_restriction_in_effect_) |
- << "TotalNumEncryptionConflictingItems applies to all ModelSafeGroups"; |
- std::map<ModelSafeGroup, PerModelSafeGroupState*>::const_iterator it = |
- per_model_group_.begin(); |
- int sum = 0; |
- for (; it != per_model_group_.end(); ++it) { |
- sum += it->second->conflict_progress.EncryptionConflictingItemsSize(); |
- } |
- return sum; |
-} |
- |
-int StatusController::TotalNumHierarchyConflictingItems() const { |
- DCHECK(!group_restriction_in_effect_) |
- << "TotalNumHierarchyConflictingItems applies to all ModelSafeGroups"; |
- std::map<ModelSafeGroup, PerModelSafeGroupState*>::const_iterator it = |
- per_model_group_.begin(); |
- int sum = 0; |
- for (; it != per_model_group_.end(); ++it) { |
- sum += it->second->conflict_progress.HierarchyConflictingItemsSize(); |
- } |
- return sum; |
-} |
- |
-int StatusController::TotalNumSimpleConflictingItems() const { |
- DCHECK(!group_restriction_in_effect_) |
- << "TotalNumSimpleConflictingItems applies to all ModelSafeGroups"; |
- std::map<ModelSafeGroup, PerModelSafeGroupState*>::const_iterator it = |
- per_model_group_.begin(); |
- int sum = 0; |
- for (; it != per_model_group_.end(); ++it) { |
- sum += it->second->conflict_progress.SimpleConflictingItemsSize(); |
- } |
- return sum; |
-} |
- |
-int StatusController::TotalNumServerConflictingItems() const { |
- DCHECK(!group_restriction_in_effect_) |
- << "TotalNumServerConflictingItems applies to all ModelSafeGroups"; |
- std::map<ModelSafeGroup, PerModelSafeGroupState*>::const_iterator it = |
- per_model_group_.begin(); |
- int sum = 0; |
- for (; it != per_model_group_.end(); ++it) { |
- sum += it->second->conflict_progress.ServerConflictingItemsSize(); |
- } |
- return sum; |
-} |
- |
-int StatusController::TotalNumConflictingItems() const { |
- DCHECK(!group_restriction_in_effect_) |
- << "TotalNumConflictingItems applies to all ModelSafeGroups"; |
- std::map<ModelSafeGroup, PerModelSafeGroupState*>::const_iterator it = |
- per_model_group_.begin(); |
- int sum = 0; |
- for (; it != per_model_group_.end(); ++it) { |
- sum += it->second->conflict_progress.SimpleConflictingItemsSize(); |
- sum += it->second->conflict_progress.EncryptionConflictingItemsSize(); |
- sum += it->second->conflict_progress.HierarchyConflictingItemsSize(); |
- sum += it->second->conflict_progress.ServerConflictingItemsSize(); |
- } |
- return sum; |
-} |
- |
-bool StatusController::ServerSaysNothingMoreToDownload() const { |
- if (!download_updates_succeeded()) |
- return false; |
- |
- if (!updates_response().get_updates().has_changes_remaining()) { |
- NOTREACHED(); // Server should always send changes remaining. |
- return false; // Avoid looping forever. |
- } |
- // Changes remaining is an estimate, but if it's estimated to be |
- // zero, that's firm and we don't have to ask again. |
- return updates_response().get_updates().changes_remaining() == 0; |
-} |
- |
-void StatusController::set_debug_info_sent() { |
- shared_.control_params.debug_info_sent = true; |
-} |
- |
-bool StatusController::debug_info_sent() const { |
- return shared_.control_params.debug_info_sent; |
-} |
- |
-} // namespace sessions |
-} // namespace browser_sync |