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

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

Issue 558603002: [SyncFS] Make MetadataDatabase operations synchronous (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@01_create
Patch Set: Created 6 years, 3 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 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/sync_engine_initializer. h" 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer. h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "chrome/browser/drive/drive_api_service.h" 10 #include "chrome/browser/drive/drive_api_service.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 DCHECK(sync_context_->GetDriveService()); 78 DCHECK(sync_context_->GetDriveService());
79 79
80 // The metadata seems to have been already initialized. Just return with OK. 80 // The metadata seems to have been already initialized. Just return with OK.
81 if (sync_context_->GetMetadataDatabase()) { 81 if (sync_context_->GetMetadataDatabase()) {
82 util::Log(logging::LOG_VERBOSE, FROM_HERE, 82 util::Log(logging::LOG_VERBOSE, FROM_HERE,
83 "[Initialize] Already initialized."); 83 "[Initialize] Already initialized.");
84 SyncTaskManager::NotifyTaskDone(token.Pass(), SYNC_STATUS_OK); 84 SyncTaskManager::NotifyTaskDone(token.Pass(), SYNC_STATUS_OK);
85 return; 85 return;
86 } 86 }
87 87
88 MetadataDatabase::Create( 88 SyncStatusCode status = SYNC_STATUS_FAILED;
89 database_path_, 89 scoped_ptr<MetadataDatabase> metadata_database =
90 env_override_, 90 MetadataDatabase::Create(database_path_, env_override_, &status);
91 base::Bind(&SyncEngineInitializer::DidCreateMetadataDatabase, 91 DidCreateMetadataDatabase(token.Pass(), status, metadata_database.Pass());
peria 2014/09/10 00:24:15 Expand DidCreateMetadataDatabase() here.
tzik 2014/09/10 00:56:54 ditto
92 weak_ptr_factory_.GetWeakPtr(), base::Passed(&token)));
93 } 92 }
94 93
95 scoped_ptr<MetadataDatabase> SyncEngineInitializer::PassMetadataDatabase() { 94 scoped_ptr<MetadataDatabase> SyncEngineInitializer::PassMetadataDatabase() {
96 return metadata_database_.Pass(); 95 return metadata_database_.Pass();
97 } 96 }
98 97
99 void SyncEngineInitializer::DidCreateMetadataDatabase( 98 void SyncEngineInitializer::DidCreateMetadataDatabase(
100 scoped_ptr<SyncTaskToken> token, 99 scoped_ptr<SyncTaskToken> token,
101 SyncStatusCode status, 100 SyncStatusCode status,
102 scoped_ptr<MetadataDatabase> instance) { 101 scoped_ptr<MetadataDatabase> instance) {
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 weak_ptr_factory_.GetWeakPtr(), base::Passed(&token))); 338 weak_ptr_factory_.GetWeakPtr(), base::Passed(&token)));
340 return; 339 return;
341 } 340 }
342 341
343 PopulateDatabase(token.Pass()); 342 PopulateDatabase(token.Pass());
344 } 343 }
345 344
346 void SyncEngineInitializer::PopulateDatabase( 345 void SyncEngineInitializer::PopulateDatabase(
347 scoped_ptr<SyncTaskToken> token) { 346 scoped_ptr<SyncTaskToken> token) {
348 DCHECK(sync_root_folder_); 347 DCHECK(sync_root_folder_);
349 metadata_database_->PopulateInitialData( 348 SyncStatusCode status = metadata_database_->PopulateInitialData(
350 largest_change_id_, 349 largest_change_id_, *sync_root_folder_, app_root_folders_);
351 *sync_root_folder_, 350 DidPopulateDatabase(token.Pass(), status);
peria 2014/09/10 00:24:15 Expand DidPopulateDatabase() here.
tzik 2014/09/10 00:56:55 ditto
352 app_root_folders_,
353 base::Bind(&SyncEngineInitializer::DidPopulateDatabase,
354 weak_ptr_factory_.GetWeakPtr(), base::Passed(&token)));
355 } 351 }
356 352
357 void SyncEngineInitializer::DidPopulateDatabase( 353 void SyncEngineInitializer::DidPopulateDatabase(
358 scoped_ptr<SyncTaskToken> token, 354 scoped_ptr<SyncTaskToken> token,
359 SyncStatusCode status) { 355 SyncStatusCode status) {
360 if (status != SYNC_STATUS_OK) { 356 if (status != SYNC_STATUS_OK) {
361 util::Log(logging::LOG_VERBOSE, FROM_HERE, 357 util::Log(logging::LOG_VERBOSE, FROM_HERE,
362 "[Initialize] Failed to populate initial data" 358 "[Initialize] Failed to populate initial data"
363 " to MetadataDatabase."); 359 " to MetadataDatabase.");
364 SyncTaskManager::NotifyTaskDone(token.Pass(), status); 360 SyncTaskManager::NotifyTaskDone(token.Pass(), status);
365 return; 361 return;
366 } 362 }
367 363
368 util::Log(logging::LOG_VERBOSE, FROM_HERE, 364 util::Log(logging::LOG_VERBOSE, FROM_HERE,
369 "[Initialize] Completed successfully."); 365 "[Initialize] Completed successfully.");
370 SyncTaskManager::NotifyTaskDone(token.Pass(), SYNC_STATUS_OK); 366 SyncTaskManager::NotifyTaskDone(token.Pass(), SYNC_STATUS_OK);
371 } 367 }
372 368
373 } // namespace drive_backend 369 } // namespace drive_backend
374 } // namespace sync_file_system 370 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698