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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/metadata_database_index.cc

Issue 1545283002: Convert Pass()→std::move() in //chrome/browser/ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_file_system/drive_backend/metadata_database_index. h" 5 #include "chrome/browser/sync_file_system/drive_backend/metadata_database_index. h"
6 6
7 #include <tuple> 7 #include <tuple>
8 #include <utility>
8 9
9 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
10 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/string_util.h" 12 #include "base/strings/string_util.h"
12 #include "base/threading/thread_restrictions.h" 13 #include "base/threading/thread_restrictions.h"
13 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h" 14 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h"
14 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_util.h" 15 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_util.h"
15 #include "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h" 16 #include "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h"
16 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" 17 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
17 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h" 18 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h"
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 ScopedVector<FileTracker> reachable_trackers; 169 ScopedVector<FileTracker> reachable_trackers;
169 for (size_t i = 0; i < contents->file_trackers.size(); ++i) { 170 for (size_t i = 0; i < contents->file_trackers.size(); ++i) {
170 FileTracker* tracker = contents->file_trackers[i]; 171 FileTracker* tracker = contents->file_trackers[i];
171 if (ContainsKey(visited_trackers, tracker->tracker_id())) { 172 if (ContainsKey(visited_trackers, tracker->tracker_id())) {
172 reachable_trackers.push_back(tracker); 173 reachable_trackers.push_back(tracker);
173 contents->file_trackers[i] = nullptr; 174 contents->file_trackers[i] = nullptr;
174 } else { 175 } else {
175 PutFileTrackerDeletionToDB(tracker->tracker_id(), db); 176 PutFileTrackerDeletionToDB(tracker->tracker_id(), db);
176 } 177 }
177 } 178 }
178 contents->file_trackers = reachable_trackers.Pass(); 179 contents->file_trackers = std::move(reachable_trackers);
179 180
180 // List all |file_id| referred by a tracker. 181 // List all |file_id| referred by a tracker.
181 base::hash_set<std::string> referred_file_ids; 182 base::hash_set<std::string> referred_file_ids;
182 for (size_t i = 0; i < contents->file_trackers.size(); ++i) 183 for (size_t i = 0; i < contents->file_trackers.size(); ++i)
183 referred_file_ids.insert(contents->file_trackers[i]->file_id()); 184 referred_file_ids.insert(contents->file_trackers[i]->file_id());
184 185
185 // Delete all unreferred metadata. 186 // Delete all unreferred metadata.
186 ScopedVector<FileMetadata> referred_file_metadata; 187 ScopedVector<FileMetadata> referred_file_metadata;
187 for (size_t i = 0; i < contents->file_metadata.size(); ++i) { 188 for (size_t i = 0; i < contents->file_metadata.size(); ++i) {
188 FileMetadata* metadata = contents->file_metadata[i]; 189 FileMetadata* metadata = contents->file_metadata[i];
189 if (ContainsKey(referred_file_ids, metadata->file_id())) { 190 if (ContainsKey(referred_file_ids, metadata->file_id())) {
190 referred_file_metadata.push_back(metadata); 191 referred_file_metadata.push_back(metadata);
191 contents->file_metadata[i] = nullptr; 192 contents->file_metadata[i] = nullptr;
192 } else { 193 } else {
193 PutFileMetadataDeletionToDB(metadata->file_id(), db); 194 PutFileMetadataDeletionToDB(metadata->file_id(), db);
194 } 195 }
195 } 196 }
196 contents->file_metadata = referred_file_metadata.Pass(); 197 contents->file_metadata = std::move(referred_file_metadata);
197 } 198 }
198 199
199 } // namespace 200 } // namespace
200 201
201 // static 202 // static
202 scoped_ptr<MetadataDatabaseIndex> 203 scoped_ptr<MetadataDatabaseIndex>
203 MetadataDatabaseIndex::Create(LevelDBWrapper* db) { 204 MetadataDatabaseIndex::Create(LevelDBWrapper* db) {
204 DCHECK(db); 205 DCHECK(db);
205 206
206 scoped_ptr<ServiceMetadata> service_metadata = InitializeServiceMetadata(db); 207 scoped_ptr<ServiceMetadata> service_metadata = InitializeServiceMetadata(db);
207 if (!service_metadata) 208 if (!service_metadata)
208 return scoped_ptr<MetadataDatabaseIndex>(); 209 return scoped_ptr<MetadataDatabaseIndex>();
209 210
210 DatabaseContents contents; 211 DatabaseContents contents;
211 PutVersionToDB(kCurrentDatabaseVersion, db); 212 PutVersionToDB(kCurrentDatabaseVersion, db);
212 ReadDatabaseContents(db, &contents); 213 ReadDatabaseContents(db, &contents);
213 RemoveUnreachableItemsFromDB(&contents, 214 RemoveUnreachableItemsFromDB(&contents,
214 service_metadata->sync_root_tracker_id(), 215 service_metadata->sync_root_tracker_id(),
215 db); 216 db);
216 217
217 scoped_ptr<MetadataDatabaseIndex> index(new MetadataDatabaseIndex(db)); 218 scoped_ptr<MetadataDatabaseIndex> index(new MetadataDatabaseIndex(db));
218 index->Initialize(service_metadata.Pass(), &contents); 219 index->Initialize(std::move(service_metadata), &contents);
219 return index.Pass(); 220 return index;
220 } 221 }
221 222
222 // static 223 // static
223 scoped_ptr<MetadataDatabaseIndex> 224 scoped_ptr<MetadataDatabaseIndex>
224 MetadataDatabaseIndex::CreateForTesting(DatabaseContents* contents, 225 MetadataDatabaseIndex::CreateForTesting(DatabaseContents* contents,
225 LevelDBWrapper* db) { 226 LevelDBWrapper* db) {
226 scoped_ptr<MetadataDatabaseIndex> index(new MetadataDatabaseIndex(db)); 227 scoped_ptr<MetadataDatabaseIndex> index(new MetadataDatabaseIndex(db));
227 index->Initialize(make_scoped_ptr(new ServiceMetadata), contents); 228 index->Initialize(make_scoped_ptr(new ServiceMetadata), contents);
228 return index.Pass(); 229 return index;
229 } 230 }
230 231
231 void MetadataDatabaseIndex::Initialize( 232 void MetadataDatabaseIndex::Initialize(
232 scoped_ptr<ServiceMetadata> service_metadata, 233 scoped_ptr<ServiceMetadata> service_metadata,
233 DatabaseContents* contents) { 234 DatabaseContents* contents) {
234 service_metadata_ = service_metadata.Pass(); 235 service_metadata_ = std::move(service_metadata);
235 236
236 for (size_t i = 0; i < contents->file_metadata.size(); ++i) 237 for (size_t i = 0; i < contents->file_metadata.size(); ++i)
237 StoreFileMetadata(make_scoped_ptr(contents->file_metadata[i])); 238 StoreFileMetadata(make_scoped_ptr(contents->file_metadata[i]));
238 contents->file_metadata.weak_clear(); 239 contents->file_metadata.weak_clear();
239 240
240 for (size_t i = 0; i < contents->file_trackers.size(); ++i) 241 for (size_t i = 0; i < contents->file_trackers.size(); ++i)
241 StoreFileTracker(make_scoped_ptr(contents->file_trackers[i])); 242 StoreFileTracker(make_scoped_ptr(contents->file_trackers[i]));
242 contents->file_trackers.weak_clear(); 243 contents->file_trackers.weak_clear();
243 244
244 UMA_HISTOGRAM_COUNTS("SyncFileSystem.MetadataNumber", metadata_by_id_.size()); 245 UMA_HISTOGRAM_COUNTS("SyncFileSystem.MetadataNumber", metadata_by_id_.size());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 279
279 void MetadataDatabaseIndex::StoreFileMetadata( 280 void MetadataDatabaseIndex::StoreFileMetadata(
280 scoped_ptr<FileMetadata> metadata) { 281 scoped_ptr<FileMetadata> metadata) {
281 PutFileMetadataToDB(*metadata.get(), db_); 282 PutFileMetadataToDB(*metadata.get(), db_);
282 if (!metadata) { 283 if (!metadata) {
283 NOTREACHED(); 284 NOTREACHED();
284 return; 285 return;
285 } 286 }
286 287
287 std::string file_id = metadata->file_id(); 288 std::string file_id = metadata->file_id();
288 metadata_by_id_.set(file_id, metadata.Pass()); 289 metadata_by_id_.set(file_id, std::move(metadata));
289 } 290 }
290 291
291 void MetadataDatabaseIndex::StoreFileTracker( 292 void MetadataDatabaseIndex::StoreFileTracker(
292 scoped_ptr<FileTracker> tracker) { 293 scoped_ptr<FileTracker> tracker) {
293 PutFileTrackerToDB(*tracker.get(), db_); 294 PutFileTrackerToDB(*tracker.get(), db_);
294 if (!tracker) { 295 if (!tracker) {
295 NOTREACHED(); 296 NOTREACHED();
296 return; 297 return;
297 } 298 }
298 299
(...skipping 11 matching lines...) Expand all
310 } else { 311 } else {
311 DVLOG(3) << "Updating tracker: " << tracker->tracker_id() 312 DVLOG(3) << "Updating tracker: " << tracker->tracker_id()
312 << " " << GetTrackerTitle(*tracker); 313 << " " << GetTrackerTitle(*tracker);
313 314
314 UpdateInAppIDIndex(*old_tracker, *tracker); 315 UpdateInAppIDIndex(*old_tracker, *tracker);
315 UpdateInPathIndexes(*old_tracker, *tracker); 316 UpdateInPathIndexes(*old_tracker, *tracker);
316 UpdateInFileIDIndexes(*old_tracker, *tracker); 317 UpdateInFileIDIndexes(*old_tracker, *tracker);
317 UpdateInDirtyTrackerIndexes(*old_tracker, *tracker); 318 UpdateInDirtyTrackerIndexes(*old_tracker, *tracker);
318 } 319 }
319 320
320 tracker_by_id_.set(tracker_id, tracker.Pass()); 321 tracker_by_id_.set(tracker_id, std::move(tracker));
321 } 322 }
322 323
323 void MetadataDatabaseIndex::RemoveFileMetadata(const std::string& file_id) { 324 void MetadataDatabaseIndex::RemoveFileMetadata(const std::string& file_id) {
324 PutFileMetadataDeletionToDB(file_id, db_); 325 PutFileMetadataDeletionToDB(file_id, db_);
325 metadata_by_id_.erase(file_id); 326 metadata_by_id_.erase(file_id);
326 } 327 }
327 328
328 void MetadataDatabaseIndex::RemoveFileTracker(int64_t tracker_id) { 329 void MetadataDatabaseIndex::RemoveFileTracker(int64_t tracker_id) {
329 PutFileTrackerDeletionToDB(tracker_id, db_); 330 PutFileTrackerDeletionToDB(tracker_id, db_);
330 331
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 763
763 DVLOG(3) << " Remove from dirty_trackers_: " << tracker_id; 764 DVLOG(3) << " Remove from dirty_trackers_: " << tracker_id;
764 dirty_trackers_.erase(tracker_id); 765 dirty_trackers_.erase(tracker_id);
765 766
766 demoted_dirty_trackers_.erase(tracker_id); 767 demoted_dirty_trackers_.erase(tracker_id);
767 } 768 }
768 } 769 }
769 770
770 } // namespace drive_backend 771 } // namespace drive_backend
771 } // namespace sync_file_system 772 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698