Commit d439986d authored by Thomas Guilbert's avatar Thomas Guilbert Committed by Chromium LUCI CQ

Convert CannedSyncableFileSystem to modern callbacks

This CL converts base::Callbacks in CannedSyncableFileSystem to their
Once or Repeating equivalents.

Bug: 1152272
Change-Id: Id0890a8f8f9c6c2807a821913b82fb3f90bb6034
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2575420
Commit-Queue: Thomas Guilbert <tguilbert@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#834281}
parent b230aecc
...@@ -106,13 +106,13 @@ void VerifySameTaskRunner( ...@@ -106,13 +106,13 @@ void VerifySameTaskRunner(
void OnCreateSnapshotFileAndVerifyData( void OnCreateSnapshotFileAndVerifyData(
const std::string& expected_data, const std::string& expected_data,
const CannedSyncableFileSystem::StatusCallback& callback, CannedSyncableFileSystem::StatusCallback callback,
base::File::Error result, base::File::Error result,
const base::File::Info& file_info, const base::File::Info& file_info,
const base::FilePath& platform_path, const base::FilePath& platform_path,
scoped_refptr<storage::ShareableFileReference> /* file_ref */) { scoped_refptr<storage::ShareableFileReference> /* file_ref */) {
if (result != base::File::FILE_OK) { if (result != base::File::FILE_OK) {
callback.Run(result); std::move(callback).Run(result);
return; return;
} }
EXPECT_EQ(expected_data.size(), static_cast<size_t>(file_info.size)); EXPECT_EQ(expected_data.size(), static_cast<size_t>(file_info.size));
...@@ -120,13 +120,13 @@ void OnCreateSnapshotFileAndVerifyData( ...@@ -120,13 +120,13 @@ void OnCreateSnapshotFileAndVerifyData(
const bool read_status = base::ReadFileToString(platform_path, &data); const bool read_status = base::ReadFileToString(platform_path, &data);
EXPECT_TRUE(read_status); EXPECT_TRUE(read_status);
EXPECT_EQ(expected_data, data); EXPECT_EQ(expected_data, data);
callback.Run(result); std::move(callback).Run(result);
} }
void OnCreateSnapshotFile( void OnCreateSnapshotFile(
base::File::Info* file_info_out, base::File::Info* file_info_out,
base::FilePath* platform_path_out, base::FilePath* platform_path_out,
const CannedSyncableFileSystem::StatusCallback& callback, CannedSyncableFileSystem::StatusCallback callback,
base::File::Error result, base::File::Error result,
const base::File::Info& file_info, const base::File::Info& file_info,
const base::FilePath& platform_path, const base::FilePath& platform_path,
...@@ -136,21 +136,29 @@ void OnCreateSnapshotFile( ...@@ -136,21 +136,29 @@ void OnCreateSnapshotFile(
DCHECK(platform_path_out); DCHECK(platform_path_out);
*file_info_out = file_info; *file_info_out = file_info;
*platform_path_out = platform_path; *platform_path_out = platform_path;
callback.Run(result); std::move(callback).Run(result);
} }
void OnReadDirectory(CannedSyncableFileSystem::FileEntryList* entries_out, class DirectoryHelper {
CannedSyncableFileSystem::StatusCallback callback, public:
base::File::Error error, explicit DirectoryHelper(CannedSyncableFileSystem::StatusCallback callback)
storage::FileSystemOperation::FileEntryList entries, : callback_(std::move(callback)) {}
bool has_more) {
DCHECK(entries_out); void OnReadDirectory(CannedSyncableFileSystem::FileEntryList* entries_out,
entries_out->reserve(entries_out->size() + entries.size()); base::File::Error error,
std::copy(entries.begin(), entries.end(), std::back_inserter(*entries_out)); storage::FileSystemOperation::FileEntryList entries,
bool has_more) {
DCHECK(entries_out);
entries_out->reserve(entries_out->size() + entries.size());
std::copy(entries.begin(), entries.end(), std::back_inserter(*entries_out));
if (!has_more)
std::move(callback_).Run(error);
}
if (!has_more) private:
std::move(callback).Run(error); CannedSyncableFileSystem::StatusCallback callback_;
} };
class WriteHelper { class WriteHelper {
public: public:
...@@ -167,7 +175,7 @@ class WriteHelper { ...@@ -167,7 +175,7 @@ class WriteHelper {
ScopedTextBlob* scoped_text_blob() const { return blob_data_.get(); } ScopedTextBlob* scoped_text_blob() const { return blob_data_.get(); }
void DidWrite(const base::Callback<void(int64_t result)>& completion_callback, void DidWrite(base::OnceCallback<void(int64_t result)> completion_callback,
File::Error error, File::Error error,
int64_t bytes, int64_t bytes,
bool complete) { bool complete) {
...@@ -176,9 +184,9 @@ class WriteHelper { ...@@ -176,9 +184,9 @@ class WriteHelper {
if (!complete) if (!complete)
return; return;
} }
completion_callback.Run(error == base::File::FILE_OK std::move(completion_callback)
? bytes_written_ .Run(error == base::File::FILE_OK ? bytes_written_
: static_cast<int64_t>(error)); : static_cast<int64_t>(error));
} }
private: private:
...@@ -518,143 +526,144 @@ void CannedSyncableFileSystem::DoOpenFileSystem( ...@@ -518,143 +526,144 @@ void CannedSyncableFileSystem::DoOpenFileSystem(
storage::OPEN_FILE_SYSTEM_CREATE_IF_NONEXISTENT, std::move(callback)); storage::OPEN_FILE_SYSTEM_CREATE_IF_NONEXISTENT, std::move(callback));
} }
void CannedSyncableFileSystem::DoCreateDirectory( void CannedSyncableFileSystem::DoCreateDirectory(const FileSystemURL& url,
const FileSystemURL& url, StatusCallback callback) {
const StatusCallback& callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->CreateDirectory( operation_runner()->CreateDirectory(
url, false /* exclusive */, false /* recursive */, callback); url, false /* exclusive */, false /* recursive */, std::move(callback));
} }
void CannedSyncableFileSystem::DoCreateFile( void CannedSyncableFileSystem::DoCreateFile(const FileSystemURL& url,
const FileSystemURL& url, StatusCallback callback) {
const StatusCallback& callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->CreateFile(url, false /* exclusive */, callback); operation_runner()->CreateFile(url, false /* exclusive */,
std::move(callback));
} }
void CannedSyncableFileSystem::DoCopy( void CannedSyncableFileSystem::DoCopy(const FileSystemURL& src_url,
const FileSystemURL& src_url, const FileSystemURL& dest_url,
const FileSystemURL& dest_url, StatusCallback callback) {
const StatusCallback& callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->Copy( operation_runner()->Copy(
src_url, dest_url, storage::FileSystemOperation::OPTION_NONE, src_url, dest_url, storage::FileSystemOperation::OPTION_NONE,
storage::FileSystemOperation::ERROR_BEHAVIOR_ABORT, storage::FileSystemOperation::ERROR_BEHAVIOR_ABORT,
storage::FileSystemOperationRunner::CopyProgressCallback(), callback); storage::FileSystemOperationRunner::CopyProgressCallback(),
std::move(callback));
} }
void CannedSyncableFileSystem::DoMove( void CannedSyncableFileSystem::DoMove(const FileSystemURL& src_url,
const FileSystemURL& src_url, const FileSystemURL& dest_url,
const FileSystemURL& dest_url, StatusCallback callback) {
const StatusCallback& callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->Move( operation_runner()->Move(src_url, dest_url,
src_url, dest_url, storage::FileSystemOperation::OPTION_NONE, callback); storage::FileSystemOperation::OPTION_NONE,
std::move(callback));
} }
void CannedSyncableFileSystem::DoTruncateFile(const FileSystemURL& url, void CannedSyncableFileSystem::DoTruncateFile(const FileSystemURL& url,
int64_t size, int64_t size,
const StatusCallback& callback) { StatusCallback callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->Truncate(url, size, callback); operation_runner()->Truncate(url, size, std::move(callback));
} }
void CannedSyncableFileSystem::DoTouchFile( void CannedSyncableFileSystem::DoTouchFile(const FileSystemURL& url,
const FileSystemURL& url, const base::Time& last_access_time,
const base::Time& last_access_time, const base::Time& last_modified_time,
const base::Time& last_modified_time, StatusCallback callback) {
const StatusCallback& callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->TouchFile(url, last_access_time, operation_runner()->TouchFile(url, last_access_time, last_modified_time,
last_modified_time, callback); std::move(callback));
} }
void CannedSyncableFileSystem::DoRemove( void CannedSyncableFileSystem::DoRemove(const FileSystemURL& url,
const FileSystemURL& url, bool recursive, bool recursive,
const StatusCallback& callback) { StatusCallback callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->Remove(url, recursive, callback); operation_runner()->Remove(url, recursive, std::move(callback));
} }
void CannedSyncableFileSystem::DoFileExists( void CannedSyncableFileSystem::DoFileExists(const FileSystemURL& url,
const FileSystemURL& url, const StatusCallback& callback) { StatusCallback callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->FileExists(url, callback); operation_runner()->FileExists(url, std::move(callback));
} }
void CannedSyncableFileSystem::DoDirectoryExists( void CannedSyncableFileSystem::DoDirectoryExists(const FileSystemURL& url,
const FileSystemURL& url, const StatusCallback& callback) { StatusCallback callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->DirectoryExists(url, callback); operation_runner()->DirectoryExists(url, std::move(callback));
} }
void CannedSyncableFileSystem::DoVerifyFile( void CannedSyncableFileSystem::DoVerifyFile(const FileSystemURL& url,
const FileSystemURL& url, const std::string& expected_data,
const std::string& expected_data, StatusCallback callback) {
const StatusCallback& callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->CreateSnapshotFile( operation_runner()->CreateSnapshotFile(
url, base::BindOnce(&OnCreateSnapshotFileAndVerifyData, expected_data, url, base::BindOnce(&OnCreateSnapshotFileAndVerifyData, expected_data,
callback)); std::move(callback)));
} }
void CannedSyncableFileSystem::DoGetMetadataAndPlatformPath( void CannedSyncableFileSystem::DoGetMetadataAndPlatformPath(
const FileSystemURL& url, const FileSystemURL& url,
base::File::Info* info, base::File::Info* info,
base::FilePath* platform_path, base::FilePath* platform_path,
const StatusCallback& callback) { StatusCallback callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
operation_runner()->CreateSnapshotFile( operation_runner()->CreateSnapshotFile(
url, url, base::BindOnce(&OnCreateSnapshotFile, info, platform_path,
base::BindOnce(&OnCreateSnapshotFile, info, platform_path, callback)); std::move(callback)));
} }
void CannedSyncableFileSystem::DoReadDirectory( void CannedSyncableFileSystem::DoReadDirectory(const FileSystemURL& url,
const FileSystemURL& url, FileEntryList* entries,
FileEntryList* entries, StatusCallback callback) {
const StatusCallback& callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
auto directory_helper =
std::make_unique<DirectoryHelper>(std::move(callback));
operation_runner()->ReadDirectory( operation_runner()->ReadDirectory(
url, base::BindRepeating(&OnReadDirectory, entries, callback)); url, base::BindRepeating(&DirectoryHelper::OnReadDirectory,
std::move(directory_helper), entries));
} }
void CannedSyncableFileSystem::DoWrite( void CannedSyncableFileSystem::DoWrite(
const FileSystemURL& url, const FileSystemURL& url,
std::unique_ptr<storage::BlobDataHandle> blob_data_handle, std::unique_ptr<storage::BlobDataHandle> blob_data_handle,
const WriteCallback& callback) { WriteCallback callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
WriteHelper* helper = new WriteHelper; WriteHelper* helper = new WriteHelper;
operation_runner()->Write( operation_runner()->Write(
url, std::move(blob_data_handle), 0, url, std::move(blob_data_handle), 0,
base::Bind(&WriteHelper::DidWrite, base::Owned(helper), callback)); base::BindRepeating(&WriteHelper::DidWrite, base::Owned(helper),
std::move(callback)));
} }
void CannedSyncableFileSystem::DoWriteString( void CannedSyncableFileSystem::DoWriteString(const FileSystemURL& url,
const FileSystemURL& url, const std::string& data,
const std::string& data, WriteCallback callback) {
const WriteCallback& callback) {
EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence()); EXPECT_TRUE(io_task_runner_->RunsTasksInCurrentSequence());
EXPECT_TRUE(is_filesystem_opened_); EXPECT_TRUE(is_filesystem_opened_);
auto blob_storage_context = std::make_unique<storage::BlobStorageContext>(); auto blob_storage_context = std::make_unique<storage::BlobStorageContext>();
WriteHelper* helper = new WriteHelper(std::move(blob_storage_context), data); WriteHelper* helper = new WriteHelper(std::move(blob_storage_context), data);
operation_runner()->Write(url, operation_runner()->Write(
helper->scoped_text_blob()->GetBlobDataHandle(), 0, url, helper->scoped_text_blob()->GetBlobDataHandle(), 0,
base::BindRepeating(&WriteHelper::DidWrite, base::BindRepeating(&WriteHelper::DidWrite, base::Owned(helper),
base::Owned(helper), callback)); std::move(callback)));
} }
void CannedSyncableFileSystem::DoGetUsageAndQuota( void CannedSyncableFileSystem::DoGetUsageAndQuota(
...@@ -671,7 +680,7 @@ void CannedSyncableFileSystem::DoGetUsageAndQuota( ...@@ -671,7 +680,7 @@ void CannedSyncableFileSystem::DoGetUsageAndQuota(
void CannedSyncableFileSystem::DidOpenFileSystem( void CannedSyncableFileSystem::DidOpenFileSystem(
base::SingleThreadTaskRunner* original_task_runner, base::SingleThreadTaskRunner* original_task_runner,
const base::Closure& quit_closure, base::OnceClosure quit_closure,
const GURL& root, const GURL& root,
const std::string& name, const std::string& name,
File::Error result) { File::Error result) {
...@@ -685,19 +694,19 @@ void CannedSyncableFileSystem::DidOpenFileSystem( ...@@ -685,19 +694,19 @@ void CannedSyncableFileSystem::DidOpenFileSystem(
FROM_HERE, base::BindOnce(&CannedSyncableFileSystem::DidOpenFileSystem, FROM_HERE, base::BindOnce(&CannedSyncableFileSystem::DidOpenFileSystem,
base::Unretained(this), base::Unretained(this),
base::RetainedRef(original_task_runner), base::RetainedRef(original_task_runner),
quit_closure, root, name, result)); std::move(quit_closure), root, name, result));
return; return;
} }
result_ = result; result_ = result;
root_url_ = root; root_url_ = root;
quit_closure.Run(); std::move(quit_closure).Run();
} }
void CannedSyncableFileSystem::DidInitializeFileSystemContext( void CannedSyncableFileSystem::DidInitializeFileSystemContext(
const base::Closure& quit_closure, base::OnceClosure quit_closure,
SyncStatusCode status) { SyncStatusCode status) {
sync_status_ = status; sync_status_ = status;
quit_closure.Run(); std::move(quit_closure).Run();
} }
void CannedSyncableFileSystem::InitializeSyncStatusObserver() { void CannedSyncableFileSystem::InitializeSyncStatusObserver() {
......
...@@ -55,8 +55,8 @@ class CannedSyncableFileSystem ...@@ -55,8 +55,8 @@ class CannedSyncableFileSystem
typedef base::OnceCallback< typedef base::OnceCallback<
void(const GURL& root, const std::string& name, base::File::Error result)> void(const GURL& root, const std::string& name, base::File::Error result)>
OpenFileSystemCallback; OpenFileSystemCallback;
typedef base::Callback<void(base::File::Error)> StatusCallback; typedef base::OnceCallback<void(base::File::Error)> StatusCallback;
typedef base::Callback<void(int64_t)> WriteCallback; typedef base::RepeatingCallback<void(int64_t)> WriteCallback;
typedef storage::FileSystemOperation::FileEntryList FileEntryList; typedef storage::FileSystemOperation::FileEntryList FileEntryList;
enum QuotaMode { enum QuotaMode {
...@@ -162,45 +162,43 @@ class CannedSyncableFileSystem ...@@ -162,45 +162,43 @@ class CannedSyncableFileSystem
// They can be also called directly if the caller is already on IO thread. // They can be also called directly if the caller is already on IO thread.
void DoOpenFileSystem(OpenFileSystemCallback callback); void DoOpenFileSystem(OpenFileSystemCallback callback);
void DoCreateDirectory(const storage::FileSystemURL& url, void DoCreateDirectory(const storage::FileSystemURL& url,
const StatusCallback& callback); StatusCallback callback);
void DoCreateFile(const storage::FileSystemURL& url, void DoCreateFile(const storage::FileSystemURL& url, StatusCallback callback);
const StatusCallback& callback);
void DoCopy(const storage::FileSystemURL& src_url, void DoCopy(const storage::FileSystemURL& src_url,
const storage::FileSystemURL& dest_url, const storage::FileSystemURL& dest_url,
const StatusCallback& callback); StatusCallback callback);
void DoMove(const storage::FileSystemURL& src_url, void DoMove(const storage::FileSystemURL& src_url,
const storage::FileSystemURL& dest_url, const storage::FileSystemURL& dest_url,
const StatusCallback& callback); StatusCallback callback);
void DoTruncateFile(const storage::FileSystemURL& url, void DoTruncateFile(const storage::FileSystemURL& url,
int64_t size, int64_t size,
const StatusCallback& callback); StatusCallback callback);
void DoTouchFile(const storage::FileSystemURL& url, void DoTouchFile(const storage::FileSystemURL& url,
const base::Time& last_access_time, const base::Time& last_access_time,
const base::Time& last_modified_time, const base::Time& last_modified_time,
const StatusCallback& callback); StatusCallback callback);
void DoRemove(const storage::FileSystemURL& url, void DoRemove(const storage::FileSystemURL& url,
bool recursive, bool recursive,
const StatusCallback& callback); StatusCallback callback);
void DoFileExists(const storage::FileSystemURL& url, void DoFileExists(const storage::FileSystemURL& url, StatusCallback callback);
const StatusCallback& callback);
void DoDirectoryExists(const storage::FileSystemURL& url, void DoDirectoryExists(const storage::FileSystemURL& url,
const StatusCallback& callback); StatusCallback callback);
void DoVerifyFile(const storage::FileSystemURL& url, void DoVerifyFile(const storage::FileSystemURL& url,
const std::string& expected_data, const std::string& expected_data,
const StatusCallback& callback); StatusCallback callback);
void DoGetMetadataAndPlatformPath(const storage::FileSystemURL& url, void DoGetMetadataAndPlatformPath(const storage::FileSystemURL& url,
base::File::Info* info, base::File::Info* info,
base::FilePath* platform_path, base::FilePath* platform_path,
const StatusCallback& callback); StatusCallback callback);
void DoReadDirectory(const storage::FileSystemURL& url, void DoReadDirectory(const storage::FileSystemURL& url,
FileEntryList* entries, FileEntryList* entries,
const StatusCallback& callback); StatusCallback callback);
void DoWrite(const storage::FileSystemURL& url, void DoWrite(const storage::FileSystemURL& url,
std::unique_ptr<storage::BlobDataHandle> blob_data_handle, std::unique_ptr<storage::BlobDataHandle> blob_data_handle,
const WriteCallback& callback); WriteCallback callback);
void DoWriteString(const storage::FileSystemURL& url, void DoWriteString(const storage::FileSystemURL& url,
const std::string& data, const std::string& data,
const WriteCallback& callback); WriteCallback callback);
void DoGetUsageAndQuota(int64_t* usage, void DoGetUsageAndQuota(int64_t* usage,
int64_t* quota, int64_t* quota,
storage::StatusCallback callback); storage::StatusCallback callback);
...@@ -211,11 +209,11 @@ class CannedSyncableFileSystem ...@@ -211,11 +209,11 @@ class CannedSyncableFileSystem
// Callbacks. // Callbacks.
void DidOpenFileSystem(base::SingleThreadTaskRunner* original_task_runner, void DidOpenFileSystem(base::SingleThreadTaskRunner* original_task_runner,
const base::Closure& quit_closure, base::OnceClosure quit_closure,
const GURL& root, const GURL& root,
const std::string& name, const std::string& name,
base::File::Error result); base::File::Error result);
void DidInitializeFileSystemContext(const base::Closure& quit_closure, void DidInitializeFileSystemContext(base::OnceClosure quit_closure,
sync_file_system::SyncStatusCode status); sync_file_system::SyncStatusCode status);
void InitializeSyncStatusObserver(); void InitializeSyncStatusObserver();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment