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

Unified Diff: chrome/browser/sync_file_system/drive_backend/metadata_database.cc

Issue 1873683002: Convert //chrome/browser/sync_file_system from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
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 cf97ac886898fbbdcf2283b244c85454a028c996..a106a75d5ff7be50a2b944981597f46831fc593c 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
@@ -14,6 +14,7 @@
#include "base/files/file_util.h"
#include "base/location.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/memory/scoped_vector.h"
#include "base/single_thread_task_runner.h"
#include "base/stl_util.h"
@@ -113,10 +114,10 @@ void PopulateFileDetailsByFileResource(
details->set_missing(file_resource.labels().is_trashed());
}
-scoped_ptr<FileMetadata> CreateFileMetadataFromFileResource(
+std::unique_ptr<FileMetadata> CreateFileMetadataFromFileResource(
int64_t change_id,
const google_apis::FileResource& resource) {
- scoped_ptr<FileMetadata> file(new FileMetadata);
+ std::unique_ptr<FileMetadata> file(new FileMetadata);
file->set_file_id(resource.file_id());
FileDetails* details = file->mutable_details();
@@ -131,9 +132,9 @@ scoped_ptr<FileMetadata> CreateFileMetadataFromFileResource(
return file;
}
-scoped_ptr<FileMetadata> CreateFileMetadataFromChangeResource(
+std::unique_ptr<FileMetadata> CreateFileMetadataFromChangeResource(
const google_apis::ChangeResource& change) {
- scoped_ptr<FileMetadata> file(new FileMetadata);
+ std::unique_ptr<FileMetadata> file(new FileMetadata);
file->set_file_id(change.file_id());
FileDetails* details = file->mutable_details();
@@ -148,9 +149,10 @@ scoped_ptr<FileMetadata> CreateFileMetadataFromChangeResource(
return file;
}
-scoped_ptr<FileMetadata> CreateDeletedFileMetadata(int64_t change_id,
- const std::string& file_id) {
- scoped_ptr<FileMetadata> file(new FileMetadata);
+std::unique_ptr<FileMetadata> CreateDeletedFileMetadata(
+ int64_t change_id,
+ const std::string& file_id) {
+ std::unique_ptr<FileMetadata> file(new FileMetadata);
file->set_file_id(file_id);
FileDetails* details = file->mutable_details();
@@ -159,10 +161,10 @@ scoped_ptr<FileMetadata> CreateDeletedFileMetadata(int64_t change_id,
return file;
}
-scoped_ptr<FileTracker> CreateSyncRootTracker(
+std::unique_ptr<FileTracker> CreateSyncRootTracker(
int64_t tracker_id,
const FileMetadata& sync_root_metadata) {
- scoped_ptr<FileTracker> sync_root_tracker(new FileTracker);
+ std::unique_ptr<FileTracker> sync_root_tracker(new FileTracker);
sync_root_tracker->set_tracker_id(tracker_id);
sync_root_tracker->set_file_id(sync_root_metadata.file_id());
sync_root_tracker->set_parent_tracker_id(0);
@@ -174,11 +176,11 @@ scoped_ptr<FileTracker> CreateSyncRootTracker(
return sync_root_tracker;
}
-scoped_ptr<FileTracker> CreateInitialAppRootTracker(
+std::unique_ptr<FileTracker> CreateInitialAppRootTracker(
int64_t tracker_id,
int64_t parent_tracker_id,
const FileMetadata& app_root_metadata) {
- scoped_ptr<FileTracker> app_root_tracker(new FileTracker);
+ std::unique_ptr<FileTracker> app_root_tracker(new FileTracker);
app_root_tracker->set_tracker_id(tracker_id);
app_root_tracker->set_parent_tracker_id(parent_tracker_id);
app_root_tracker->set_file_id(app_root_metadata.file_id());
@@ -190,23 +192,23 @@ scoped_ptr<FileTracker> CreateInitialAppRootTracker(
return app_root_tracker;
}
-scoped_ptr<FileTracker> CloneFileTracker(const FileTracker* obj) {
+std::unique_ptr<FileTracker> CloneFileTracker(const FileTracker* obj) {
if (!obj)
return nullptr;
- return scoped_ptr<FileTracker>(new FileTracker(*obj));
+ return std::unique_ptr<FileTracker>(new FileTracker(*obj));
}
// Returns true if |db| has no content.
bool IsDatabaseEmpty(LevelDBWrapper* db) {
DCHECK(db);
- scoped_ptr<LevelDBWrapper::Iterator> itr(db->NewIterator());
+ std::unique_ptr<LevelDBWrapper::Iterator> itr(db->NewIterator());
itr->SeekToFirst();
return !itr->Valid();
}
SyncStatusCode OpenDatabase(const base::FilePath& path,
leveldb::Env* env_override,
- scoped_ptr<LevelDBWrapper>* db_out,
+ std::unique_ptr<LevelDBWrapper>* db_out,
bool* created) {
base::ThreadRestrictions::AssertIOAllowed();
DCHECK(db_out);
@@ -232,7 +234,7 @@ SyncStatusCode OpenDatabase(const base::FilePath& path,
return status;
}
- db_out->reset(new LevelDBWrapper(make_scoped_ptr(db)));
+ db_out->reset(new LevelDBWrapper(base::WrapUnique(db)));
*created = IsDatabaseEmpty(db_out->get());
return status;
}
@@ -286,7 +288,7 @@ void MarkTrackerSetDirty(const TrackerIDSet& trackers,
MetadataDatabaseIndexInterface* index) {
for (TrackerIDSet::const_iterator itr = trackers.begin();
itr != trackers.end(); ++itr) {
- scoped_ptr<FileTracker> tracker(new FileTracker);
+ std::unique_ptr<FileTracker> tracker(new FileTracker);
index->GetFileTracker(*itr, tracker.get());
if (tracker->dirty())
continue;
@@ -319,7 +321,7 @@ void MarkTrackersDirtyRecursively(int64_t root_tracker_id,
stack.pop_back();
AppendContents(index->GetFileTrackerIDsByParent(tracker_id), &stack);
- scoped_ptr<FileTracker> tracker(new FileTracker);
+ std::unique_ptr<FileTracker> tracker(new FileTracker);
index->GetFileTracker(tracker_id, tracker.get());
tracker->set_dirty(true);
@@ -458,7 +460,7 @@ void ActivateFileTracker(int64_t tracker_id,
DCHECK(dirtying_options == MARK_NOTHING_DIRTY ||
dirtying_options == MARK_ITSELF_DIRTY);
- scoped_ptr<FileTracker> tracker(new FileTracker);
+ std::unique_ptr<FileTracker> tracker(new FileTracker);
index->GetFileTracker(tracker_id, tracker.get());
tracker->set_active(true);
if (dirtying_options & MARK_ITSELF_DIRTY) {
@@ -479,7 +481,7 @@ void DeactivateFileTracker(int64_t tracker_id,
MetadataDatabaseIndexInterface* index) {
RemoveAllDescendantTrackers(tracker_id, index);
- scoped_ptr<FileTracker> tracker(new FileTracker);
+ std::unique_ptr<FileTracker> tracker(new FileTracker);
index->GetFileTracker(tracker_id, tracker.get());
if (dirtying_options & MARK_SAME_FILE_ID_TRACKERS_DIRTY)
@@ -523,7 +525,7 @@ void RemoveFileTracker(int64_t tracker_id,
} // namespace
// static
-scoped_ptr<MetadataDatabase> MetadataDatabase::Create(
+std::unique_ptr<MetadataDatabase> MetadataDatabase::Create(
const base::FilePath& database_path,
leveldb::Env* env_override,
SyncStatusCode* status_out) {
@@ -535,15 +537,13 @@ scoped_ptr<MetadataDatabase> MetadataDatabase::Create(
}
// static
-scoped_ptr<MetadataDatabase> MetadataDatabase::CreateInternal(
+std::unique_ptr<MetadataDatabase> MetadataDatabase::CreateInternal(
const base::FilePath& database_path,
leveldb::Env* env_override,
bool enable_on_disk_index,
SyncStatusCode* status_out) {
- scoped_ptr<MetadataDatabase> metadata_database(
- new MetadataDatabase(database_path,
- enable_on_disk_index,
- env_override));
+ std::unique_ptr<MetadataDatabase> metadata_database(
+ new MetadataDatabase(database_path, enable_on_disk_index, env_override));
SyncStatusCode status = metadata_database->Initialize();
if (status == SYNC_DATABASE_ERROR_FAILED) {
@@ -567,13 +567,11 @@ scoped_ptr<MetadataDatabase> MetadataDatabase::CreateInternal(
// static
SyncStatusCode MetadataDatabase::CreateForTesting(
- scoped_ptr<LevelDBWrapper> db,
+ std::unique_ptr<LevelDBWrapper> db,
bool enable_on_disk_index,
- scoped_ptr<MetadataDatabase>* metadata_database_out) {
- scoped_ptr<MetadataDatabase> metadata_database(
- new MetadataDatabase(base::FilePath(),
- enable_on_disk_index,
- nullptr));
+ std::unique_ptr<MetadataDatabase>* metadata_database_out) {
+ std::unique_ptr<MetadataDatabase> metadata_database(
+ new MetadataDatabase(base::FilePath(), enable_on_disk_index, nullptr));
metadata_database->db_ = std::move(db);
SyncStatusCode status = metadata_database->Initialize();
if (status == SYNC_STATUS_OK)
@@ -586,7 +584,7 @@ MetadataDatabase::~MetadataDatabase() {
// static
void MetadataDatabase::ClearDatabase(
- scoped_ptr<MetadataDatabase> metadata_database) {
+ std::unique_ptr<MetadataDatabase> metadata_database) {
DCHECK(metadata_database);
base::FilePath database_path = metadata_database->database_path_;
DCHECK(!database_path.empty());
@@ -677,7 +675,7 @@ SyncStatusCode MetadataDatabase::RegisterApp(const std::string& app_id,
return SYNC_DATABASE_ERROR_NOT_FOUND;
}
- scoped_ptr<FileTracker> tracker(new FileTracker);
+ std::unique_ptr<FileTracker> tracker(new FileTracker);
if (!FilterFileTrackersByParent(index_.get(), trackers,
sync_root_tracker_id, tracker.get())) {
return SYNC_DATABASE_ERROR_NOT_FOUND;
@@ -695,7 +693,7 @@ SyncStatusCode MetadataDatabase::RegisterApp(const std::string& app_id,
SyncStatusCode MetadataDatabase::DisableApp(const std::string& app_id) {
int64_t tracker_id = index_->GetAppRootTracker(app_id);
- scoped_ptr<FileTracker> tracker(new FileTracker);
+ std::unique_ptr<FileTracker> tracker(new FileTracker);
if (!index_->GetFileTracker(tracker_id, tracker.get())) {
return SYNC_DATABASE_ERROR_NOT_FOUND;
}
@@ -717,7 +715,7 @@ SyncStatusCode MetadataDatabase::DisableApp(const std::string& app_id) {
SyncStatusCode MetadataDatabase::EnableApp(const std::string& app_id) {
int64_t tracker_id = index_->GetAppRootTracker(app_id);
- scoped_ptr<FileTracker> tracker(new FileTracker);
+ std::unique_ptr<FileTracker> tracker(new FileTracker);
if (!index_->GetFileTracker(tracker_id, tracker.get())) {
return SYNC_DATABASE_ERROR_NOT_FOUND;
}
@@ -738,7 +736,7 @@ SyncStatusCode MetadataDatabase::EnableApp(const std::string& app_id) {
SyncStatusCode MetadataDatabase::UnregisterApp(const std::string& app_id) {
int64_t tracker_id = index_->GetAppRootTracker(app_id);
- scoped_ptr<FileTracker> tracker(new FileTracker);
+ std::unique_ptr<FileTracker> tracker(new FileTracker);
if (!index_->GetFileTracker(tracker_id, tracker.get()) ||
tracker->tracker_kind() == TRACKER_KIND_REGULAR) {
return SYNC_STATUS_OK;
@@ -899,7 +897,7 @@ SyncStatusCode MetadataDatabase::UpdateByChangeList(
if (HasNewerFileMetadata(change.file_id(), change.change_id()))
continue;
- scoped_ptr<FileMetadata> metadata(
+ std::unique_ptr<FileMetadata> metadata(
CreateFileMetadataFromChangeResource(change));
UpdateByFileMetadata(FROM_HERE, std::move(metadata),
UPDATE_TRACKER_FOR_UNSYNCED_FILE);
@@ -912,9 +910,8 @@ SyncStatusCode MetadataDatabase::UpdateByChangeList(
SyncStatusCode MetadataDatabase::UpdateByFileResource(
const google_apis::FileResource& resource) {
- scoped_ptr<FileMetadata> metadata(
- CreateFileMetadataFromFileResource(
- GetLargestKnownChangeID(), resource));
+ std::unique_ptr<FileMetadata> metadata(
+ CreateFileMetadataFromFileResource(GetLargestKnownChangeID(), resource));
UpdateByFileMetadata(FROM_HERE, std::move(metadata),
UPDATE_TRACKER_FOR_UNSYNCED_FILE);
return WriteToDatabase();
@@ -923,9 +920,8 @@ SyncStatusCode MetadataDatabase::UpdateByFileResource(
SyncStatusCode MetadataDatabase::UpdateByFileResourceList(
ScopedVector<google_apis::FileResource> resources) {
for (size_t i = 0; i < resources.size(); ++i) {
- scoped_ptr<FileMetadata> metadata(
- CreateFileMetadataFromFileResource(
- GetLargestKnownChangeID(), *resources[i]));
+ std::unique_ptr<FileMetadata> metadata(CreateFileMetadataFromFileResource(
+ GetLargestKnownChangeID(), *resources[i]));
UpdateByFileMetadata(FROM_HERE, std::move(metadata),
UPDATE_TRACKER_FOR_UNSYNCED_FILE);
}
@@ -934,7 +930,7 @@ SyncStatusCode MetadataDatabase::UpdateByFileResourceList(
SyncStatusCode MetadataDatabase::UpdateByDeletedRemoteFile(
const std::string& file_id) {
- scoped_ptr<FileMetadata> metadata(
+ std::unique_ptr<FileMetadata> metadata(
CreateDeletedFileMetadata(GetLargestKnownChangeID(), file_id));
UpdateByFileMetadata(FROM_HERE, std::move(metadata),
UPDATE_TRACKER_FOR_UNSYNCED_FILE);
@@ -945,7 +941,7 @@ SyncStatusCode MetadataDatabase::UpdateByDeletedRemoteFileList(
const FileIDList& file_ids) {
for (FileIDList::const_iterator itr = file_ids.begin();
itr != file_ids.end(); ++itr) {
- scoped_ptr<FileMetadata> metadata(
+ std::unique_ptr<FileMetadata> metadata(
CreateDeletedFileMetadata(GetLargestKnownChangeID(), *itr));
UpdateByFileMetadata(FROM_HERE, std::move(metadata),
UPDATE_TRACKER_FOR_UNSYNCED_FILE);
@@ -999,7 +995,7 @@ SyncStatusCode MetadataDatabase::PopulateFolderByChildList(
return SYNC_STATUS_OK;
}
- scoped_ptr<FileTracker> folder_tracker(new FileTracker);
+ std::unique_ptr<FileTracker> folder_tracker(new FileTracker);
if (!index_->GetFileTracker(trackers.active_tracker(),
folder_tracker.get())) {
NOTREACHED();
@@ -1102,7 +1098,7 @@ SyncStatusCode MetadataDatabase::UpdateTracker(
}
}
- scoped_ptr<FileTracker> updated_tracker = CloneFileTracker(&tracker);
+ std::unique_ptr<FileTracker> updated_tracker = CloneFileTracker(&tracker);
*updated_tracker->mutable_synced_details() = updated_details;
bool should_promote = false;
@@ -1141,7 +1137,7 @@ MetadataDatabase::ActivationStatus MetadataDatabase::TryActivateTracker(
TrackerIDSet same_file_id_trackers =
index_->GetFileTrackerIDsByFileID(file_id);
- scoped_ptr<FileTracker> tracker_to_be_activated(new FileTracker);
+ std::unique_ptr<FileTracker> tracker_to_be_activated(new FileTracker);
FilterFileTrackersByParentAndTitle(
index_.get(), same_file_id_trackers, parent_tracker_id,
title, tracker_to_be_activated.get());
@@ -1162,7 +1158,7 @@ MetadataDatabase::ActivationStatus MetadataDatabase::TryActivateTracker(
RemoveAllDescendantTrackers(same_title_trackers.active_tracker(),
index_.get());
- scoped_ptr<FileTracker> tracker_to_be_deactivated(new FileTracker);
+ std::unique_ptr<FileTracker> tracker_to_be_deactivated(new FileTracker);
if (index_->GetFileTracker(same_title_trackers.active_tracker(),
tracker_to_be_deactivated.get())) {
const std::string file_id = tracker_to_be_deactivated->file_id();
@@ -1298,7 +1294,7 @@ SyncStatusCode MetadataDatabase::SweepDirtyTrackers(
for (std::set<int64_t>::iterator itr = tracker_ids.begin();
itr != tracker_ids.end(); ++itr) {
- scoped_ptr<FileTracker> tracker(new FileTracker);
+ std::unique_ptr<FileTracker> tracker(new FileTracker);
if (!index_->GetFileTracker(*itr, tracker.get()) ||
!CanClearDirty(*tracker))
continue;
@@ -1344,7 +1340,7 @@ SyncStatusCode MetadataDatabase::Initialize() {
if (!index_) {
// Delete all entries in |db_| to reset it.
// TODO(peria): Make LevelDBWrapper::DestroyDB() to avoid a full scan.
- scoped_ptr<LevelDBWrapper::Iterator> itr = db_->NewIterator();
+ std::unique_ptr<LevelDBWrapper::Iterator> itr = db_->NewIterator();
for (itr->SeekToFirst(); itr->Valid();)
itr->Delete();
db_->Commit();
@@ -1384,7 +1380,7 @@ void MetadataDatabase::CreateTrackerInternal(const FileTracker& parent_tracker,
const FileDetails* details,
UpdateOption option) {
int64_t tracker_id = IncrementTrackerID();
- scoped_ptr<FileTracker> tracker(new FileTracker);
+ std::unique_ptr<FileTracker> tracker(new FileTracker);
tracker->set_tracker_id(tracker_id);
tracker->set_parent_tracker_id(parent_tracker.tracker_id());
tracker->set_file_id(file_id);
@@ -1554,7 +1550,7 @@ void MetadataDatabase::RemoveUnneededTrackersForMissingFile(
void MetadataDatabase::UpdateByFileMetadata(
const tracked_objects::Location& from_where,
- scoped_ptr<FileMetadata> metadata,
+ std::unique_ptr<FileMetadata> metadata,
UpdateOption option) {
DCHECK(metadata);
DCHECK(metadata->has_details());
@@ -1584,9 +1580,9 @@ SyncStatusCode MetadataDatabase::WriteToDatabase() {
return LevelDBStatusToSyncStatusCode(db_->Commit());
}
-scoped_ptr<base::ListValue> MetadataDatabase::DumpFiles(
+std::unique_ptr<base::ListValue> MetadataDatabase::DumpFiles(
const std::string& app_id) {
- scoped_ptr<base::ListValue> files(new base::ListValue);
+ std::unique_ptr<base::ListValue> files(new base::ListValue);
FileTracker app_root_tracker;
if (!FindAppRootTracker(app_id, &app_root_tracker))
@@ -1631,8 +1627,8 @@ scoped_ptr<base::ListValue> MetadataDatabase::DumpFiles(
return files;
}
-scoped_ptr<base::ListValue> MetadataDatabase::DumpDatabase() {
- scoped_ptr<base::ListValue> list(new base::ListValue);
+std::unique_ptr<base::ListValue> MetadataDatabase::DumpDatabase() {
+ std::unique_ptr<base::ListValue> list(new base::ListValue);
list->Append(DumpTrackers().release());
list->Append(DumpMetadata().release());
return list;
@@ -1647,8 +1643,8 @@ bool MetadataDatabase::HasNewerFileMetadata(const std::string& file_id,
return metadata.details().change_id() >= change_id;
}
-scoped_ptr<base::ListValue> MetadataDatabase::DumpTrackers() {
- scoped_ptr<base::ListValue> trackers(new base::ListValue);
+std::unique_ptr<base::ListValue> MetadataDatabase::DumpTrackers() {
+ std::unique_ptr<base::ListValue> trackers(new base::ListValue);
// Append the first element for metadata.
base::DictionaryValue* metadata = new base::DictionaryValue;
@@ -1710,8 +1706,8 @@ scoped_ptr<base::ListValue> MetadataDatabase::DumpTrackers() {
return trackers;
}
-scoped_ptr<base::ListValue> MetadataDatabase::DumpMetadata() {
- scoped_ptr<base::ListValue> files(new base::ListValue);
+std::unique_ptr<base::ListValue> MetadataDatabase::DumpMetadata() {
+ std::unique_ptr<base::ListValue> files(new base::ListValue);
// Append the first element for metadata.
base::DictionaryValue* metadata = new base::DictionaryValue;
@@ -1761,10 +1757,10 @@ scoped_ptr<base::ListValue> MetadataDatabase::DumpMetadata() {
void MetadataDatabase::AttachSyncRoot(
const google_apis::FileResource& sync_root_folder) {
- scoped_ptr<FileMetadata> sync_root_metadata =
- CreateFileMetadataFromFileResource(
- GetLargestKnownChangeID(), sync_root_folder);
- scoped_ptr<FileTracker> sync_root_tracker =
+ std::unique_ptr<FileMetadata> sync_root_metadata =
+ CreateFileMetadataFromFileResource(GetLargestKnownChangeID(),
+ sync_root_folder);
+ std::unique_ptr<FileTracker> sync_root_tracker =
CreateSyncRootTracker(IncrementTrackerID(), *sync_root_metadata);
index_->SetSyncRootTrackerID(sync_root_tracker->tracker_id());
@@ -1774,13 +1770,11 @@ void MetadataDatabase::AttachSyncRoot(
void MetadataDatabase::AttachInitialAppRoot(
const google_apis::FileResource& app_root_folder) {
- scoped_ptr<FileMetadata> app_root_metadata =
- CreateFileMetadataFromFileResource(
- GetLargestKnownChangeID(), app_root_folder);
- scoped_ptr<FileTracker> app_root_tracker =
- CreateInitialAppRootTracker(IncrementTrackerID(),
- GetSyncRootTrackerID(),
- *app_root_metadata);
+ std::unique_ptr<FileMetadata> app_root_metadata =
+ CreateFileMetadataFromFileResource(GetLargestKnownChangeID(),
+ app_root_folder);
+ std::unique_ptr<FileTracker> app_root_tracker = CreateInitialAppRootTracker(
+ IncrementTrackerID(), GetSyncRootTrackerID(), *app_root_metadata);
index_->StoreFileMetadata(std::move(app_root_metadata));
index_->StoreFileTracker(std::move(app_root_tracker));

Powered by Google App Engine
This is Rietveld 408576698