Chromium Code Reviews| Index: chrome/browser/sync_file_system/drive_backend/metadata_database.cc |
| diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc |
| index c44d09be8069397ebfd730866d4a7ca4935fd7d9..27602514a876bb5121cc3751b46c27056ee3af0e 100644 |
| --- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc |
| +++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc |
| @@ -520,32 +520,23 @@ void RemoveFileTracker(int64 tracker_id, |
| } // namespace |
| struct MetadataDatabase::CreateParam { |
| - scoped_refptr<base::SequencedTaskRunner> worker_task_runner; |
| base::FilePath database_path; |
| leveldb::Env* env_override; |
| - CreateParam( |
| - const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner, |
| - const base::FilePath& database_path, |
| - leveldb::Env* env_override) |
| - : worker_task_runner(worker_task_runner), |
| - database_path(database_path), |
| + CreateParam(const base::FilePath& database_path, |
| + leveldb::Env* env_override) |
| + : database_path(database_path), |
| env_override(env_override) {} |
| }; |
| // static |
| void MetadataDatabase::Create( |
| - const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner, |
| const base::FilePath& database_path, |
| leveldb::Env* env_override, |
| const CreateCallback& callback) { |
| - worker_task_runner->PostTask(FROM_HERE, base::Bind( |
| - &MetadataDatabase::CreateOnWorkerTaskRunner, |
| - base::Passed(make_scoped_ptr(new CreateParam( |
| - worker_task_runner, |
| - database_path, |
| - env_override))), |
| - callback)); |
| + CreateOnWorkerTaskRunner( |
| + make_scoped_ptr(new CreateParam(database_path, env_override)), |
| + callback); |
| } |
| // static |
| @@ -554,8 +545,7 @@ SyncStatusCode MetadataDatabase::CreateForTesting( |
| bool enable_on_disk_index, |
| scoped_ptr<MetadataDatabase>* metadata_database_out) { |
| scoped_ptr<MetadataDatabase> metadata_database( |
| - new MetadataDatabase(base::ThreadTaskRunnerHandle::Get(), |
| - base::FilePath(), |
| + new MetadataDatabase(base::FilePath(), |
| enable_on_disk_index, |
| NULL)); |
| metadata_database->db_ = db.Pass(); |
| @@ -566,49 +556,38 @@ SyncStatusCode MetadataDatabase::CreateForTesting( |
| } |
| MetadataDatabase::~MetadataDatabase() { |
| - worker_task_runner_->DeleteSoon(FROM_HERE, db_.release()); |
| } |
| // static |
| void MetadataDatabase::ClearDatabase( |
| scoped_ptr<MetadataDatabase> metadata_database) { |
| DCHECK(metadata_database); |
| - scoped_refptr<base::SequencedTaskRunner> worker_task_runner = |
| - metadata_database->worker_task_runner_; |
| base::FilePath database_path = metadata_database->database_path_; |
| DCHECK(!database_path.empty()); |
| metadata_database.reset(); |
| - worker_task_runner->PostTask( |
| - FROM_HERE, |
| - base::Bind(base::IgnoreResult(base::DeleteFile), |
| - database_path, true /* recursive */)); |
| + base::DeleteFile(database_path, true /* recursive */); |
| } |
| int64 MetadataDatabase::GetLargestFetchedChangeID() const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->GetLargestChangeID(); |
| } |
| int64 MetadataDatabase::GetSyncRootTrackerID() const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->GetSyncRootTrackerID(); |
| } |
| int64 MetadataDatabase::GetLargestKnownChangeID() const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| DCHECK_LE(GetLargestFetchedChangeID(), largest_known_change_id_); |
| return largest_known_change_id_; |
| } |
| void MetadataDatabase::UpdateLargestKnownChangeID(int64 change_id) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| if (largest_known_change_id_ < change_id) |
| largest_known_change_id_ = change_id; |
| } |
| bool MetadataDatabase::HasSyncRoot() const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->GetSyncRootTrackerID() != kInvalidTrackerID; |
| } |
| @@ -617,8 +596,6 @@ void MetadataDatabase::PopulateInitialData( |
| const google_apis::FileResource& sync_root_folder, |
| const ScopedVector<google_apis::FileResource>& app_root_folders, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| index_->SetLargestChangeID(largest_change_id); |
| UpdateLargestKnownChangeID(largest_change_id); |
| @@ -630,8 +607,6 @@ void MetadataDatabase::PopulateInitialData( |
| } |
| bool MetadataDatabase::IsAppEnabled(const std::string& app_id) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| int64 tracker_id = index_->GetAppRootTracker(app_id); |
| if (tracker_id == kInvalidTrackerID) |
| return false; |
| @@ -645,21 +620,15 @@ bool MetadataDatabase::IsAppEnabled(const std::string& app_id) const { |
| void MetadataDatabase::RegisterApp(const std::string& app_id, |
| const std::string& folder_id, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| if (index_->GetAppRootTracker(app_id)) { |
| // The app-root is already registered. |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_STATUS_OK)); |
| + callback.Run(SYNC_STATUS_OK); |
| return; |
| } |
| TrackerIDSet trackers = index_->GetFileTrackerIDsByFileID(folder_id); |
| if (trackers.empty()) { |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND)); |
| + callback.Run(SYNC_DATABASE_ERROR_NOT_FOUND); |
| return; |
| } |
| @@ -667,9 +636,7 @@ void MetadataDatabase::RegisterApp(const std::string& app_id, |
| // The folder is tracked by another tracker. |
| util::Log(logging::LOG_WARNING, FROM_HERE, |
| "Failed to register App for %s", app_id.c_str()); |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_STATUS_HAS_CONFLICT)); |
| + callback.Run(SYNC_STATUS_HAS_CONFLICT); |
| return; |
| } |
| @@ -677,18 +644,14 @@ void MetadataDatabase::RegisterApp(const std::string& app_id, |
| if (!sync_root_tracker_id) { |
| util::Log(logging::LOG_WARNING, FROM_HERE, |
| "Sync-root needs to be set up before registering app-root"); |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND)); |
| + callback.Run(SYNC_DATABASE_ERROR_NOT_FOUND); |
| return; |
| } |
| scoped_ptr<FileTracker> tracker(new FileTracker); |
| if (!FilterFileTrackersByParent(index_.get(), trackers, |
| sync_root_tracker_id, tracker.get())) { |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND)); |
| + callback.Run(SYNC_DATABASE_ERROR_NOT_FOUND); |
| return; |
| } |
| @@ -704,8 +667,6 @@ void MetadataDatabase::RegisterApp(const std::string& app_id, |
| void MetadataDatabase::DisableApp(const std::string& app_id, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| int64 tracker_id = index_->GetAppRootTracker(app_id); |
| scoped_ptr<FileTracker> tracker(new FileTracker); |
| if (!index_->GetFileTracker(tracker_id, tracker.get())) { |
| @@ -731,8 +692,6 @@ void MetadataDatabase::DisableApp(const std::string& app_id, |
| void MetadataDatabase::EnableApp(const std::string& app_id, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| int64 tracker_id = index_->GetAppRootTracker(app_id); |
| scoped_ptr<FileTracker> tracker(new FileTracker); |
| if (!index_->GetFileTracker(tracker_id, tracker.get())) { |
| @@ -757,15 +716,11 @@ void MetadataDatabase::EnableApp(const std::string& app_id, |
| void MetadataDatabase::UnregisterApp(const std::string& app_id, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| int64 tracker_id = index_->GetAppRootTracker(app_id); |
| scoped_ptr<FileTracker> tracker(new FileTracker); |
| if (!index_->GetFileTracker(tracker_id, tracker.get()) || |
| tracker->tracker_kind() == TRACKER_KIND_REGULAR) { |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_STATUS_OK)); |
| + callback.Run(SYNC_STATUS_OK); |
| return; |
| } |
| @@ -782,8 +737,6 @@ void MetadataDatabase::UnregisterApp(const std::string& app_id, |
| bool MetadataDatabase::FindAppRootTracker(const std::string& app_id, |
| FileTracker* tracker_out) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| int64 app_root_tracker_id = index_->GetAppRootTracker(app_id); |
| if (!app_root_tracker_id) |
| return false; |
| @@ -799,14 +752,11 @@ bool MetadataDatabase::FindAppRootTracker(const std::string& app_id, |
| bool MetadataDatabase::FindFileByFileID(const std::string& file_id, |
| FileMetadata* metadata_out) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->GetFileMetadata(file_id, metadata_out); |
| } |
| bool MetadataDatabase::FindTrackersByFileID(const std::string& file_id, |
| TrackerIDSet* trackers_out) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| TrackerIDSet trackers = index_->GetFileTrackerIDsByFileID(file_id); |
| if (trackers.empty()) |
| return false; |
| @@ -820,8 +770,6 @@ bool MetadataDatabase::FindTrackersByParentAndTitle( |
| int64 parent_tracker_id, |
| const std::string& title, |
| TrackerIDSet* trackers_out) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| TrackerIDSet trackers = |
| index_->GetFileTrackerIDsByParentAndTitle(parent_tracker_id, title); |
| if (trackers.empty()) |
| @@ -834,14 +782,11 @@ bool MetadataDatabase::FindTrackersByParentAndTitle( |
| bool MetadataDatabase::FindTrackerByTrackerID(int64 tracker_id, |
| FileTracker* tracker_out) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->GetFileTracker(tracker_id, tracker_out); |
| } |
| bool MetadataDatabase::BuildPathForTracker(int64 tracker_id, |
| base::FilePath* path) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| FileTracker current; |
| if (!FindTrackerByTrackerID(tracker_id, ¤t) || !current.active()) |
| return false; |
| @@ -865,8 +810,6 @@ bool MetadataDatabase::BuildPathForTracker(int64 tracker_id, |
| base::FilePath MetadataDatabase::BuildDisplayPathForTracker( |
| const FileTracker& tracker) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| base::FilePath path; |
| if (tracker.active()) { |
| BuildPathForTracker(tracker.tracker_id(), &path); |
| @@ -887,7 +830,6 @@ bool MetadataDatabase::FindNearestActiveAncestor( |
| const base::FilePath& full_path, |
| FileTracker* tracker_out, |
| base::FilePath* path_out) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| DCHECK(tracker_out); |
| DCHECK(path_out); |
| @@ -931,7 +873,6 @@ void MetadataDatabase::UpdateByChangeList( |
| int64 largest_change_id, |
| ScopedVector<google_apis::ChangeResource> changes, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| DCHECK_LE(index_->GetLargestChangeID(), largest_change_id); |
| for (size_t i = 0; i < changes.size(); ++i) { |
| @@ -953,8 +894,6 @@ void MetadataDatabase::UpdateByChangeList( |
| void MetadataDatabase::UpdateByFileResource( |
| const google_apis::FileResource& resource, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| scoped_ptr<FileMetadata> metadata( |
| CreateFileMetadataFromFileResource( |
| GetLargestKnownChangeID(), resource)); |
| @@ -966,8 +905,6 @@ void MetadataDatabase::UpdateByFileResource( |
| void MetadataDatabase::UpdateByFileResourceList( |
| ScopedVector<google_apis::FileResource> resources, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| for (size_t i = 0; i < resources.size(); ++i) { |
| scoped_ptr<FileMetadata> metadata( |
| CreateFileMetadataFromFileResource( |
| @@ -981,8 +918,6 @@ void MetadataDatabase::UpdateByFileResourceList( |
| void MetadataDatabase::UpdateByDeletedRemoteFile( |
| const std::string& file_id, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| scoped_ptr<FileMetadata> metadata( |
| CreateDeletedFileMetadata(GetLargestKnownChangeID(), file_id)); |
| UpdateByFileMetadata(FROM_HERE, metadata.Pass(), |
| @@ -993,8 +928,6 @@ void MetadataDatabase::UpdateByDeletedRemoteFile( |
| void MetadataDatabase::UpdateByDeletedRemoteFileList( |
| const FileIDList& file_ids, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| for (FileIDList::const_iterator itr = file_ids.begin(); |
| itr != file_ids.end(); ++itr) { |
| scoped_ptr<FileMetadata> metadata( |
| @@ -1009,8 +942,6 @@ void MetadataDatabase::ReplaceActiveTrackerWithNewResource( |
| int64 parent_tracker_id, |
| const google_apis::FileResource& resource, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| DCHECK(!index_->GetFileMetadata(resource.file_id(), NULL)); |
| DCHECK(index_->GetFileTracker(parent_tracker_id, NULL)); |
| @@ -1029,9 +960,7 @@ void MetadataDatabase::ReplaceActiveTrackerWithNewResource( |
| if (!FilterFileTrackersByFileID(index_.get(), same_path_trackers, |
| resource.file_id(), &to_be_activated)) { |
| NOTREACHED(); |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_STATUS_FAILED)); |
| + callback.Run(SYNC_STATUS_FAILED); |
| return; |
| } |
| @@ -1051,15 +980,11 @@ void MetadataDatabase::PopulateFolderByChildList( |
| const std::string& folder_id, |
| const FileIDList& child_file_ids, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| TrackerIDSet trackers = index_->GetFileTrackerIDsByFileID(folder_id); |
| if (!trackers.has_active()) { |
| // It's OK that there is no folder to populate its children. |
| // Inactive folders should ignore their contents updates. |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_STATUS_OK)); |
| + callback.Run(SYNC_STATUS_OK); |
| return; |
| } |
| @@ -1067,9 +992,7 @@ void MetadataDatabase::PopulateFolderByChildList( |
| if (!index_->GetFileTracker(trackers.active_tracker(), |
| folder_tracker.get())) { |
| NOTREACHED(); |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_STATUS_FAILED)); |
| + callback.Run(SYNC_STATUS_FAILED); |
| return; |
| } |
| @@ -1101,13 +1024,9 @@ void MetadataDatabase::PopulateFolderByChildList( |
| void MetadataDatabase::UpdateTracker(int64 tracker_id, |
| const FileDetails& updated_details, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| FileTracker tracker; |
| if (!index_->GetFileTracker(tracker_id, &tracker)) { |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND)); |
| + callback.Run(SYNC_DATABASE_ERROR_NOT_FOUND); |
| return; |
| } |
| @@ -1206,14 +1125,10 @@ MetadataDatabase::ActivationStatus MetadataDatabase::TryActivateTracker( |
| int64 parent_tracker_id, |
| const std::string& file_id, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| FileMetadata metadata; |
| if (!index_->GetFileMetadata(file_id, &metadata)) { |
| NOTREACHED(); |
| - worker_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(callback, SYNC_STATUS_FAILED)); |
| + callback.Run(SYNC_STATUS_FAILED); |
| return ACTIVATION_PENDING; |
| } |
| std::string title = metadata.details().title(); |
| @@ -1272,28 +1187,23 @@ MetadataDatabase::ActivationStatus MetadataDatabase::TryActivateTracker( |
| } |
| void MetadataDatabase::DemoteTracker(int64 tracker_id) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| index_->DemoteDirtyTracker(tracker_id); |
| WriteToDatabase(base::Bind(&EmptyStatusCallback)); |
| } |
| bool MetadataDatabase::PromoteDemotedTrackers() { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| bool promoted = index_->PromoteDemotedDirtyTrackers(); |
| WriteToDatabase(base::Bind(&EmptyStatusCallback)); |
| return promoted; |
| } |
| void MetadataDatabase::PromoteDemotedTracker(int64 tracker_id) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| index_->PromoteDemotedDirtyTracker(tracker_id); |
| WriteToDatabase(base::Bind(&EmptyStatusCallback)); |
| } |
| bool MetadataDatabase::GetDirtyTracker( |
| FileTracker* tracker_out) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| int64 dirty_tracker_id = index_->PickDirtyTracker(); |
| if (!dirty_tracker_id) |
| return false; |
| @@ -1308,23 +1218,19 @@ bool MetadataDatabase::GetDirtyTracker( |
| } |
| bool MetadataDatabase::HasDemotedDirtyTracker() const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->HasDemotedDirtyTracker(); |
| } |
| bool MetadataDatabase::HasDirtyTracker() const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->PickDirtyTracker() != kInvalidTrackerID; |
| } |
| size_t MetadataDatabase::CountDirtyTracker() const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->CountDirtyTracker(); |
| } |
| bool MetadataDatabase::GetMultiParentFileTrackers(std::string* file_id_out, |
| TrackerIDSet* trackers_out) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| DCHECK(file_id_out); |
| DCHECK(trackers_out); |
| @@ -1344,17 +1250,14 @@ bool MetadataDatabase::GetMultiParentFileTrackers(std::string* file_id_out, |
| } |
| size_t MetadataDatabase::CountFileMetadata() const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->CountFileMetadata(); |
| } |
| size_t MetadataDatabase::CountFileTracker() const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->CountFileTracker(); |
| } |
| bool MetadataDatabase::GetConflictingTrackers(TrackerIDSet* trackers_out) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| DCHECK(trackers_out); |
| ParentIDAndTitle parent_and_title = index_->PickMultiBackingFilePath(); |
| @@ -1373,7 +1276,6 @@ bool MetadataDatabase::GetConflictingTrackers(TrackerIDSet* trackers_out) { |
| } |
| void MetadataDatabase::GetRegisteredAppIDs(std::vector<std::string>* app_ids) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| DCHECK(app_ids); |
| *app_ids = index_->GetRegisteredAppIDs(); |
| } |
| @@ -1381,8 +1283,6 @@ void MetadataDatabase::GetRegisteredAppIDs(std::vector<std::string>* app_ids) { |
| void MetadataDatabase::SweepDirtyTrackers( |
| const std::vector<std::string>& file_ids, |
| const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| std::set<int64> tracker_ids; |
| for (size_t i = 0; i < file_ids.size(); ++i) { |
| TrackerIDSet trackers_for_file_id = |
| @@ -1406,30 +1306,24 @@ void MetadataDatabase::SweepDirtyTrackers( |
| } |
| MetadataDatabase::MetadataDatabase( |
| - const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner, |
| const base::FilePath& database_path, |
| bool enable_on_disk_index, |
| leveldb::Env* env_override) |
| - : worker_task_runner_(worker_task_runner), |
| - database_path_(database_path), |
| + : database_path_(database_path), |
| env_override_(env_override), |
| enable_on_disk_index_(enable_on_disk_index), |
| largest_known_change_id_(0), |
| weak_ptr_factory_(this) { |
| - DCHECK(worker_task_runner.get()); |
| } |
| // static |
| void MetadataDatabase::CreateOnWorkerTaskRunner( |
| scoped_ptr<CreateParam> create_param, |
| const CreateCallback& callback) { |
|
peria
2014/09/09 10:29:34
I think we can merge this method into Create() and
peria
2014/09/09 10:32:13
Please ignore the previous comment.
I found you di
|
| - DCHECK(create_param->worker_task_runner->RunsTasksOnCurrentThread()); |
| - |
| bool enable_on_disk_index = !CommandLine::ForCurrentProcess()->HasSwitch( |
| kDisableMetadataDatabaseOnDisk); |
| scoped_ptr<MetadataDatabase> metadata_database( |
| - new MetadataDatabase(create_param->worker_task_runner, |
| - create_param->database_path, |
| + new MetadataDatabase(create_param->database_path, |
| enable_on_disk_index, |
| create_param->env_override)); |
| @@ -1440,8 +1334,7 @@ void MetadataDatabase::CreateOnWorkerTaskRunner( |
| metadata_database.reset(); |
| metadata_database.reset( |
| - new MetadataDatabase(create_param->worker_task_runner, |
| - create_param->database_path, |
| + new MetadataDatabase(create_param->database_path, |
| enable_on_disk_index, |
| create_param->env_override)); |
| status = metadata_database->Initialize(); |
| @@ -1450,18 +1343,10 @@ void MetadataDatabase::CreateOnWorkerTaskRunner( |
| if (status != SYNC_STATUS_OK) |
| metadata_database.reset(); |
| - if (metadata_database) |
| - metadata_database->DetachFromSequence(); |
| - create_param->worker_task_runner->PostTask( |
| - FROM_HERE, |
| - base::Bind( |
| - callback, status, base::Passed(&metadata_database))); |
| + callback.Run(status, metadata_database.Pass()); |
| } |
| SyncStatusCode MetadataDatabase::Initialize() { |
| - base::ThreadRestrictions::AssertIOAllowed(); |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| SyncStatusCode status = SYNC_STATUS_UNKNOWN; |
| bool created = false; |
| // Open database unless |db_| is overridden for testing. |
| @@ -1505,7 +1390,6 @@ SyncStatusCode MetadataDatabase::Initialize() { |
| void MetadataDatabase::CreateTrackerForParentAndFileID( |
| const FileTracker& parent_tracker, |
| const std::string& file_id) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| CreateTrackerInternal(parent_tracker, file_id, NULL, |
| UPDATE_TRACKER_FOR_UNSYNCED_FILE); |
| } |
| @@ -1514,7 +1398,6 @@ void MetadataDatabase::CreateTrackerForParentAndFileMetadata( |
| const FileTracker& parent_tracker, |
| const FileMetadata& file_metadata, |
| UpdateOption option) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| DCHECK(file_metadata.has_details()); |
| CreateTrackerInternal(parent_tracker, |
| file_metadata.file_id(), |
| @@ -1526,8 +1409,6 @@ void MetadataDatabase::CreateTrackerInternal(const FileTracker& parent_tracker, |
| const std::string& file_id, |
| const FileDetails* details, |
| UpdateOption option) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| int64 tracker_id = IncrementTrackerID(); |
| scoped_ptr<FileTracker> tracker(new FileTracker); |
| tracker->set_tracker_id(tracker_id); |
| @@ -1551,8 +1432,6 @@ void MetadataDatabase::CreateTrackerInternal(const FileTracker& parent_tracker, |
| void MetadataDatabase::MaybeAddTrackersForNewFile( |
| const FileMetadata& metadata, |
| UpdateOption option) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| std::set<int64> parents_to_exclude; |
| TrackerIDSet existing_trackers = |
| index_->GetFileTrackerIDsByFileID(metadata.file_id()); |
| @@ -1597,8 +1476,6 @@ void MetadataDatabase::MaybeAddTrackersForNewFile( |
| } |
| int64 MetadataDatabase::IncrementTrackerID() { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| int64 tracker_id = index_->GetNextTrackerID(); |
| index_->SetNextTrackerID(tracker_id + 1); |
| DCHECK_GT(tracker_id, 0); |
| @@ -1606,7 +1483,6 @@ int64 MetadataDatabase::IncrementTrackerID() { |
| } |
| bool MetadataDatabase::CanActivateTracker(const FileTracker& tracker) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| DCHECK(!tracker.active()); |
| DCHECK_NE(index_->GetSyncRootTrackerID(), tracker.tracker_id()); |
| @@ -1631,8 +1507,6 @@ bool MetadataDatabase::CanActivateTracker(const FileTracker& tracker) { |
| } |
| bool MetadataDatabase::ShouldKeepDirty(const FileTracker& tracker) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| if (HasDisabledAppRoot(tracker)) |
| return false; |
| @@ -1664,8 +1538,6 @@ bool MetadataDatabase::ShouldKeepDirty(const FileTracker& tracker) const { |
| } |
| bool MetadataDatabase::HasDisabledAppRoot(const FileTracker& tracker) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| int64 app_root_tracker_id = index_->GetAppRootTracker(tracker.app_id()); |
| if (app_root_tracker_id == kInvalidTrackerID) |
| return false; |
| @@ -1680,21 +1552,17 @@ bool MetadataDatabase::HasDisabledAppRoot(const FileTracker& tracker) const { |
| bool MetadataDatabase::HasActiveTrackerForFileID( |
| const std::string& file_id) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->GetFileTrackerIDsByFileID(file_id).has_active(); |
| } |
| bool MetadataDatabase::HasActiveTrackerForPath(int64 parent_tracker_id, |
| const std::string& title) const { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| return index_->GetFileTrackerIDsByParentAndTitle(parent_tracker_id, title) |
| .has_active(); |
| } |
| void MetadataDatabase::RemoveUnneededTrackersForMissingFile( |
| const std::string& file_id) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| TrackerIDSet trackers = index_->GetFileTrackerIDsByFileID(file_id); |
| for (TrackerIDSet::const_iterator itr = trackers.begin(); |
| itr != trackers.end(); ++itr) { |
| @@ -1714,7 +1582,6 @@ void MetadataDatabase::UpdateByFileMetadata( |
| const tracked_objects::Location& from_where, |
| scoped_ptr<FileMetadata> metadata, |
| UpdateOption option) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| DCHECK(metadata); |
| DCHECK(metadata->has_details()); |
| @@ -1739,16 +1606,12 @@ void MetadataDatabase::UpdateByFileMetadata( |
| } |
| void MetadataDatabase::WriteToDatabase(const SyncStatusCallback& callback) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| leveldb::Status status = db_->Commit(); |
| callback.Run(LevelDBStatusToSyncStatusCode(status)); |
| } |
| scoped_ptr<base::ListValue> MetadataDatabase::DumpFiles( |
| const std::string& app_id) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| scoped_ptr<base::ListValue> files(new base::ListValue); |
| FileTracker app_root_tracker; |
| @@ -1795,8 +1658,6 @@ scoped_ptr<base::ListValue> MetadataDatabase::DumpFiles( |
| } |
| scoped_ptr<base::ListValue> MetadataDatabase::DumpDatabase() { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| scoped_ptr<base::ListValue> list(new base::ListValue); |
| list->Append(DumpTrackers().release()); |
| list->Append(DumpMetadata().release()); |
| @@ -1805,8 +1666,6 @@ scoped_ptr<base::ListValue> MetadataDatabase::DumpDatabase() { |
| bool MetadataDatabase::HasNewerFileMetadata(const std::string& file_id, |
| int64 change_id) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| FileMetadata metadata; |
| if (!index_->GetFileMetadata(file_id, &metadata)) |
| return false; |
| @@ -1815,8 +1674,6 @@ bool MetadataDatabase::HasNewerFileMetadata(const std::string& file_id, |
| } |
| scoped_ptr<base::ListValue> MetadataDatabase::DumpTrackers() { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| scoped_ptr<base::ListValue> trackers(new base::ListValue); |
| // Append the first element for metadata. |
| @@ -1877,8 +1734,6 @@ scoped_ptr<base::ListValue> MetadataDatabase::DumpTrackers() { |
| } |
| scoped_ptr<base::ListValue> MetadataDatabase::DumpMetadata() { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| scoped_ptr<base::ListValue> files(new base::ListValue); |
| // Append the first element for metadata. |
| @@ -1929,8 +1784,6 @@ scoped_ptr<base::ListValue> MetadataDatabase::DumpMetadata() { |
| void MetadataDatabase::AttachSyncRoot( |
| const google_apis::FileResource& sync_root_folder) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| scoped_ptr<FileMetadata> sync_root_metadata = |
| CreateFileMetadataFromFileResource( |
| GetLargestKnownChangeID(), sync_root_folder); |
| @@ -1956,13 +1809,7 @@ void MetadataDatabase::AttachInitialAppRoot( |
| index_->StoreFileTracker(app_root_tracker.Pass()); |
| } |
| -void MetadataDatabase::DetachFromSequence() { |
| - worker_sequence_checker_.DetachFromSequence(); |
| -} |
| - |
| bool MetadataDatabase::CanClearDirty(const FileTracker& tracker) { |
| - DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
| - |
| FileMetadata metadata; |
| if (!index_->GetFileMetadata(tracker.file_id(), &metadata) || |
| !tracker.active() || !tracker.dirty() || |