| OLD | NEW |
| 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 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 } | 517 } |
| 518 } | 518 } |
| 519 | 519 |
| 520 } // namespace | 520 } // namespace |
| 521 | 521 |
| 522 struct MetadataDatabase::CreateParam { | 522 struct MetadataDatabase::CreateParam { |
| 523 scoped_refptr<base::SequencedTaskRunner> worker_task_runner; | 523 scoped_refptr<base::SequencedTaskRunner> worker_task_runner; |
| 524 base::FilePath database_path; | 524 base::FilePath database_path; |
| 525 leveldb::Env* env_override; | 525 leveldb::Env* env_override; |
| 526 | 526 |
| 527 CreateParam(base::SequencedTaskRunner* worker_task_runner, | 527 CreateParam( |
| 528 const base::FilePath& database_path, | 528 const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner, |
| 529 leveldb::Env* env_override) | 529 const base::FilePath& database_path, |
| 530 leveldb::Env* env_override) |
| 530 : worker_task_runner(worker_task_runner), | 531 : worker_task_runner(worker_task_runner), |
| 531 database_path(database_path), | 532 database_path(database_path), |
| 532 env_override(env_override) { | 533 env_override(env_override) {} |
| 533 } | |
| 534 }; | 534 }; |
| 535 | 535 |
| 536 // static | 536 // static |
| 537 void MetadataDatabase::Create(base::SequencedTaskRunner* worker_task_runner, | 537 void MetadataDatabase::Create( |
| 538 const base::FilePath& database_path, | 538 const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner, |
| 539 leveldb::Env* env_override, | 539 const base::FilePath& database_path, |
| 540 const CreateCallback& callback) { | 540 leveldb::Env* env_override, |
| 541 const CreateCallback& callback) { |
| 541 worker_task_runner->PostTask(FROM_HERE, base::Bind( | 542 worker_task_runner->PostTask(FROM_HERE, base::Bind( |
| 542 &MetadataDatabase::CreateOnWorkerTaskRunner, | 543 &MetadataDatabase::CreateOnWorkerTaskRunner, |
| 543 base::Passed(make_scoped_ptr(new CreateParam( | 544 base::Passed(make_scoped_ptr(new CreateParam( |
| 544 worker_task_runner, | 545 worker_task_runner, |
| 545 database_path, | 546 database_path, |
| 546 env_override))), | 547 env_override))), |
| 547 callback)); | 548 callback)); |
| 548 } | 549 } |
| 549 | 550 |
| 550 // static | 551 // static |
| (...skipping 844 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1395 !CanClearDirty(*tracker)) | 1396 !CanClearDirty(*tracker)) |
| 1396 continue; | 1397 continue; |
| 1397 tracker->set_dirty(false); | 1398 tracker->set_dirty(false); |
| 1398 index_->StoreFileTracker(tracker.Pass()); | 1399 index_->StoreFileTracker(tracker.Pass()); |
| 1399 } | 1400 } |
| 1400 | 1401 |
| 1401 WriteToDatabase(callback); | 1402 WriteToDatabase(callback); |
| 1402 } | 1403 } |
| 1403 | 1404 |
| 1404 MetadataDatabase::MetadataDatabase( | 1405 MetadataDatabase::MetadataDatabase( |
| 1405 base::SequencedTaskRunner* worker_task_runner, | 1406 const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner, |
| 1406 const base::FilePath& database_path, | 1407 const base::FilePath& database_path, |
| 1407 leveldb::Env* env_override) | 1408 leveldb::Env* env_override) |
| 1408 : worker_task_runner_(worker_task_runner), | 1409 : worker_task_runner_(worker_task_runner), |
| 1409 database_path_(database_path), | 1410 database_path_(database_path), |
| 1410 env_override_(env_override), | 1411 env_override_(env_override), |
| 1411 largest_known_change_id_(0), | 1412 largest_known_change_id_(0), |
| 1412 weak_ptr_factory_(this) { | 1413 weak_ptr_factory_(this) { |
| 1413 DCHECK(worker_task_runner); | 1414 DCHECK(worker_task_runner.get()); |
| 1414 } | 1415 } |
| 1415 | 1416 |
| 1416 // static | 1417 // static |
| 1417 void MetadataDatabase::CreateOnWorkerTaskRunner( | 1418 void MetadataDatabase::CreateOnWorkerTaskRunner( |
| 1418 scoped_ptr<CreateParam> create_param, | 1419 scoped_ptr<CreateParam> create_param, |
| 1419 const CreateCallback& callback) { | 1420 const CreateCallback& callback) { |
| 1420 DCHECK(create_param->worker_task_runner->RunsTasksOnCurrentThread()); | 1421 DCHECK(create_param->worker_task_runner->RunsTasksOnCurrentThread()); |
| 1421 | 1422 |
| 1422 scoped_ptr<MetadataDatabase> metadata_database( | 1423 scoped_ptr<MetadataDatabase> metadata_database( |
| 1423 new MetadataDatabase(create_param->worker_task_runner.get(), | 1424 new MetadataDatabase(create_param->worker_task_runner, |
| 1424 create_param->database_path, | 1425 create_param->database_path, |
| 1425 create_param->env_override)); | 1426 create_param->env_override)); |
| 1426 SyncStatusCode status = metadata_database->Initialize(); | 1427 SyncStatusCode status = metadata_database->Initialize(); |
| 1427 if (status != SYNC_STATUS_OK) | 1428 if (status != SYNC_STATUS_OK) |
| 1428 metadata_database.reset(); | 1429 metadata_database.reset(); |
| 1429 | 1430 |
| 1430 metadata_database->DetachFromSequence(); | 1431 metadata_database->DetachFromSequence(); |
| 1431 create_param->worker_task_runner->PostTask( | 1432 create_param->worker_task_runner->PostTask( |
| 1432 FROM_HERE, | 1433 FROM_HERE, |
| 1433 base::Bind( | 1434 base::Bind( |
| (...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1953 return false; | 1954 return false; |
| 1954 | 1955 |
| 1955 if (!parents.empty()) | 1956 if (!parents.empty()) |
| 1956 return false; | 1957 return false; |
| 1957 | 1958 |
| 1958 return true; | 1959 return true; |
| 1959 } | 1960 } |
| 1960 | 1961 |
| 1961 } // namespace drive_backend | 1962 } // namespace drive_backend |
| 1962 } // namespace sync_file_system | 1963 } // namespace sync_file_system |
| OLD | NEW |