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

Side by Side Diff: chrome/browser/chromeos/printing/printers_sync_bridge.cc

Issue 2923363004: [Sync] Migrate bridge implementations to change list based MergeSyncData (Closed)
Patch Set: Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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/chromeos/printing/printers_sync_bridge.h" 5 #include "chrome/browser/chromeos/printing/printers_sync_bridge.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 176
177 PrintersSyncBridge::~PrintersSyncBridge() {} 177 PrintersSyncBridge::~PrintersSyncBridge() {}
178 178
179 std::unique_ptr<MetadataChangeList> 179 std::unique_ptr<MetadataChangeList>
180 PrintersSyncBridge::CreateMetadataChangeList() { 180 PrintersSyncBridge::CreateMetadataChangeList() {
181 return ModelTypeStore::WriteBatch::CreateMetadataChangeList(); 181 return ModelTypeStore::WriteBatch::CreateMetadataChangeList();
182 } 182 }
183 183
184 base::Optional<syncer::ModelError> PrintersSyncBridge::MergeSyncData( 184 base::Optional<syncer::ModelError> PrintersSyncBridge::MergeSyncData(
185 std::unique_ptr<MetadataChangeList> metadata_change_list, 185 std::unique_ptr<MetadataChangeList> metadata_change_list,
186 syncer::EntityDataMap entity_data_map) { 186 syncer::EntityChangeList entity_data) {
187 DCHECK(change_processor()->IsTrackingMetadata()); 187 DCHECK(change_processor()->IsTrackingMetadata());
188 188
189 std::unique_ptr<ModelTypeStore::WriteBatch> batch = 189 std::unique_ptr<ModelTypeStore::WriteBatch> batch =
190 store_delegate_->CreateWriteBatch(); 190 store_delegate_->CreateWriteBatch();
191 for (const auto& entry : entity_data_map) { 191 std::set<std::string> sync_entity_ids;
192 for (const auto& change : entity_data) {
192 const sync_pb::PrinterSpecifics& specifics = 193 const sync_pb::PrinterSpecifics& specifics =
193 entry.second.value().specifics.printer(); 194 change.data().specifics.printer();
194 195
195 DCHECK_EQ(entry.first, specifics.id()); 196 DCHECK_EQ(change.storage_key(), specifics.id());
197 sync_entity_ids.insert(specifics.id());
196 198
197 // Write the update to local storage even if we already have it. 199 // Write the update to local storage even if we already have it.
198 StoreSpecifics(base::MakeUnique<sync_pb::PrinterSpecifics>(specifics), 200 StoreSpecifics(base::MakeUnique<sync_pb::PrinterSpecifics>(specifics),
199 &all_data_, batch.get()); 201 &all_data_, batch.get());
200 } 202 }
201 203
202 // Inform the change processor of the new local entities and generate 204 // Inform the change processor of the new local entities and generate
203 // appropriate metadata. 205 // appropriate metadata.
204 for (const auto& entry : all_data_) { 206 for (const auto& entry : all_data_) {
205 const std::string& local_entity_id = entry.first; 207 const std::string& local_entity_id = entry.first;
206 if (!base::ContainsKey(entity_data_map, local_entity_id)) { 208 if (!base::ContainsKey(sync_entity_ids, local_entity_id)) {
207 // Only local objects which were not updated are uploaded. Objects for 209 // Only local objects which were not updated are uploaded. Objects for
208 // which there was a remote copy are overwritten. 210 // which there was a remote copy are overwritten.
209 change_processor()->Put(local_entity_id, CopyToEntityData(*entry.second), 211 change_processor()->Put(local_entity_id, CopyToEntityData(*entry.second),
210 metadata_change_list.get()); 212 metadata_change_list.get());
211 } 213 }
212 } 214 }
213 215
214 batch->TransferMetadataChanges(std::move(metadata_change_list)); 216 batch->TransferMetadataChanges(std::move(metadata_change_list));
215 store_delegate_->Commit(std::move(batch)); 217 store_delegate_->Commit(std::move(batch));
216 return {}; 218 return {};
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 const std::string& id) const { 351 const std::string& id) const {
350 auto iter = all_data_.find(id); 352 auto iter = all_data_.find(id);
351 if (iter == all_data_.end()) { 353 if (iter == all_data_.end()) {
352 return {}; 354 return {};
353 } 355 }
354 356
355 return {*iter->second}; 357 return {*iter->second};
356 } 358 }
357 359
358 } // namespace chromeos 360 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698