| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/sync/engine/process_updates_command.h" | 5 #include "chrome/browser/sync/engine/process_updates_command.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| 11 #include "chrome/browser/sync/engine/syncer.h" | 11 #include "chrome/browser/sync/engine/syncer.h" |
| 12 #include "chrome/browser/sync/engine/syncer_proto_util.h" | 12 #include "chrome/browser/sync/engine/syncer_proto_util.h" |
| 13 #include "chrome/browser/sync/engine/syncer_util.h" | 13 #include "chrome/browser/sync/engine/syncer_util.h" |
| 14 #include "chrome/browser/sync/engine/syncproto.h" | 14 #include "chrome/browser/sync/engine/syncproto.h" |
| 15 #include "chrome/browser/sync/sessions/sync_session.h" | 15 #include "chrome/browser/sync/sessions/sync_session.h" |
| 16 #include "chrome/browser/sync/syncable/directory_manager.h" | 16 #include "chrome/browser/sync/syncable/directory_manager.h" |
| 17 #include "chrome/browser/sync/syncable/syncable.h" | 17 #include "chrome/browser/sync/syncable/syncable.h" |
| 18 | 18 |
| 19 using std::vector; | 19 using std::vector; |
| 20 | 20 |
| 21 namespace browser_sync { | 21 namespace browser_sync { |
| 22 | 22 |
| 23 using sessions::SyncSession; | 23 using sessions::SyncSession; |
| 24 using sessions::StatusController; | 24 using sessions::StatusController; |
| 25 using sessions::UpdateProgress; |
| 25 | 26 |
| 26 ProcessUpdatesCommand::ProcessUpdatesCommand() {} | 27 ProcessUpdatesCommand::ProcessUpdatesCommand() {} |
| 27 ProcessUpdatesCommand::~ProcessUpdatesCommand() {} | 28 ProcessUpdatesCommand::~ProcessUpdatesCommand() {} |
| 28 | 29 |
| 30 std::set<ModelSafeGroup> ProcessUpdatesCommand::GetGroupsToChange( |
| 31 const sessions::SyncSession& session) const { |
| 32 std::set<ModelSafeGroup> groups_with_verified_updates; |
| 33 |
| 34 const std::set<ModelSafeGroup>& active_groups = |
| 35 ModelChangingSyncerCommand::GetActiveGroups(session); |
| 36 |
| 37 for (std::set<ModelSafeGroup>::const_iterator it = |
| 38 active_groups.begin(); it != active_groups.end(); ++it) { |
| 39 const UpdateProgress* update_progress = |
| 40 session.status_controller().GetUnrestrictedUpdateProgress(*it); |
| 41 if (update_progress && |
| 42 (update_progress->VerifiedUpdatesBegin() != |
| 43 update_progress->VerifiedUpdatesEnd())) { |
| 44 groups_with_verified_updates.insert(*it); |
| 45 } |
| 46 } |
| 47 |
| 48 return groups_with_verified_updates; |
| 49 } |
| 50 |
| 29 bool ProcessUpdatesCommand::ModelNeutralExecuteImpl(SyncSession* session) { | 51 bool ProcessUpdatesCommand::ModelNeutralExecuteImpl(SyncSession* session) { |
| 30 const GetUpdatesResponse& updates = | 52 const GetUpdatesResponse& updates = |
| 31 session->status_controller().updates_response().get_updates(); | 53 session->status_controller().updates_response().get_updates(); |
| 32 const int update_count = updates.entries_size(); | 54 const int update_count = updates.entries_size(); |
| 33 | 55 |
| 34 // Don't bother processing updates if there were none. | 56 // Don't bother processing updates if there were none. |
| 35 return update_count != 0; | 57 return update_count != 0; |
| 36 } | 58 } |
| 37 | 59 |
| 38 void ProcessUpdatesCommand::ModelChangingExecuteImpl(SyncSession* session) { | 60 void ProcessUpdatesCommand::ModelChangingExecuteImpl(SyncSession* session) { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 // Force application of this update, no matter what. | 168 // Force application of this update, no matter what. |
| 147 target_entry.Put(syncable::IS_UNAPPLIED_UPDATE, true); | 169 target_entry.Put(syncable::IS_UNAPPLIED_UPDATE, true); |
| 148 } | 170 } |
| 149 | 171 |
| 150 SyncerUtil::UpdateServerFieldsFromUpdate(&target_entry, update, name); | 172 SyncerUtil::UpdateServerFieldsFromUpdate(&target_entry, update, name); |
| 151 | 173 |
| 152 return SUCCESS_PROCESSED; | 174 return SUCCESS_PROCESSED; |
| 153 } | 175 } |
| 154 | 176 |
| 155 } // namespace browser_sync | 177 } // namespace browser_sync |
| OLD | NEW |