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

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

Issue 393953010: [SyncFS] Migrate version management from MDDB to index classes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Work for a nit Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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.h" 5 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <stack> 8 #include <stack>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 return SYNC_DATABASE_ERROR_FAILED; 277 return SYNC_DATABASE_ERROR_FAILED;
278 // fall-through 278 // fall-through
279 case 3: 279 case 3:
280 DCHECK_EQ(3, kCurrentDatabaseVersion); 280 DCHECK_EQ(3, kCurrentDatabaseVersion);
281 return SYNC_STATUS_OK; 281 return SYNC_STATUS_OK;
282 default: 282 default:
283 return SYNC_DATABASE_ERROR_FAILED; 283 return SYNC_DATABASE_ERROR_FAILED;
284 } 284 }
285 } 285 }
286 286
287 SyncStatusCode WriteVersionInfo(leveldb::DB* db) {
288 base::ThreadRestrictions::AssertIOAllowed();
289 DCHECK(db);
290 return LevelDBStatusToSyncStatusCode(
291 db->Put(leveldb::WriteOptions(),
292 kDatabaseVersionKey,
293 base::Int64ToString(kCurrentDatabaseVersion)));
294 }
295
296 bool HasInvalidTitle(const std::string& title) { 287 bool HasInvalidTitle(const std::string& title) {
297 return title.empty() || 288 return title.empty() ||
298 title.find('/') != std::string::npos || 289 title.find('/') != std::string::npos ||
299 title.find('\\') != std::string::npos; 290 title.find('\\') != std::string::npos;
300 } 291 }
301 292
302 void MarkTrackerSetDirty(const TrackerIDSet& trackers, 293 void MarkTrackerSetDirty(const TrackerIDSet& trackers,
303 MetadataDatabaseIndexInterface* index, 294 MetadataDatabaseIndexInterface* index,
304 leveldb::WriteBatch* batch) { 295 leveldb::WriteBatch* batch) {
305 for (TrackerIDSet::const_iterator itr = trackers.begin(); 296 for (TrackerIDSet::const_iterator itr = trackers.begin();
(...skipping 1166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1472 1463
1473 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 1464 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
1474 bool created = false; 1465 bool created = false;
1475 // Open database unless |db_| is overridden for testing. 1466 // Open database unless |db_| is overridden for testing.
1476 if (!db_) { 1467 if (!db_) {
1477 status = OpenDatabase(database_path_, env_override_, &db_, &created); 1468 status = OpenDatabase(database_path_, env_override_, &db_, &created);
1478 if (status != SYNC_STATUS_OK) 1469 if (status != SYNC_STATUS_OK)
1479 return status; 1470 return status;
1480 } 1471 }
1481 1472
1482 if (created) { 1473 if (!created) {
1483 status = WriteVersionInfo(db_.get());
1484 if (status != SYNC_STATUS_OK)
1485 return status;
1486 } else {
1487 status = MigrateDatabaseIfNeeded(db_.get()); 1474 status = MigrateDatabaseIfNeeded(db_.get());
1488 if (status != SYNC_STATUS_OK) 1475 if (status != SYNC_STATUS_OK)
1489 return status; 1476 return status;
1490 } 1477 }
1491 1478
1492 leveldb::WriteBatch batch; 1479 leveldb::WriteBatch batch;
1493 index_ = MetadataDatabaseIndex::Create(db_.get(), &batch); 1480 index_ = MetadataDatabaseIndex::Create(db_.get(), &batch);
1494 1481
1495 status = LevelDBStatusToSyncStatusCode( 1482 status = LevelDBStatusToSyncStatusCode(
1496 db_->Write(leveldb::WriteOptions(), &batch)); 1483 db_->Write(leveldb::WriteOptions(), &batch));
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
1979 index_->StoreFileMetadata(app_root_metadata.Pass(), batch); 1966 index_->StoreFileMetadata(app_root_metadata.Pass(), batch);
1980 index_->StoreFileTracker(app_root_tracker.Pass(), batch); 1967 index_->StoreFileTracker(app_root_tracker.Pass(), batch);
1981 } 1968 }
1982 1969
1983 void MetadataDatabase::DetachFromSequence() { 1970 void MetadataDatabase::DetachFromSequence() {
1984 worker_sequence_checker_.DetachFromSequence(); 1971 worker_sequence_checker_.DetachFromSequence();
1985 } 1972 }
1986 1973
1987 } // namespace drive_backend 1974 } // namespace drive_backend
1988 } // namespace sync_file_system 1975 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698