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

Unified Diff: webkit/fileapi/file_system_operation.h

Issue 9380040: Revert 121620 - Refactor FileSystemOperation to take callback for each method. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 10 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
« no previous file with comments | « webkit/fileapi/file_system_mount_point_provider.h ('k') | webkit/fileapi/file_system_operation.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/fileapi/file_system_operation.h
===================================================================
--- webkit/fileapi/file_system_operation.h (revision 121622)
+++ webkit/fileapi/file_system_operation.h (working copy)
@@ -39,6 +39,7 @@
namespace fileapi {
+class FileSystemCallbackDispatcher;
class FileSystemContext;
class FileWriterDelegate;
class FileSystemOperationTest;
@@ -50,44 +51,33 @@
// FileSystemOperation overrides.
virtual void CreateFile(const GURL& path,
- bool exclusive,
- const StatusCallback& callback) OVERRIDE;
+ bool exclusive) OVERRIDE;
virtual void CreateDirectory(const GURL& path,
bool exclusive,
- bool recursive,
- const StatusCallback& callback) OVERRIDE;
+ bool recursive) OVERRIDE;
virtual void Copy(const GURL& src_path,
- const GURL& dest_path,
- const StatusCallback& callback) OVERRIDE;
+ const GURL& dest_path) OVERRIDE;
virtual void Move(const GURL& src_path,
- const GURL& dest_path,
- const StatusCallback& callback) OVERRIDE;
- virtual void DirectoryExists(const GURL& path,
- const StatusCallback& callback) OVERRIDE;
- virtual void FileExists(const GURL& path,
- const StatusCallback& callback) OVERRIDE;
- virtual void GetMetadata(const GURL& path,
- const GetMetadataCallback& callback) OVERRIDE;
- virtual void ReadDirectory(const GURL& path,
- const ReadDirectoryCallback& callback) OVERRIDE;
- virtual void Remove(const GURL& path, bool recursive,
- const StatusCallback& callback) OVERRIDE;
+ const GURL& dest_path) OVERRIDE;
+ virtual void DirectoryExists(const GURL& path) OVERRIDE;
+ virtual void FileExists(const GURL& path) OVERRIDE;
+ virtual void GetMetadata(const GURL& path) OVERRIDE;
+ virtual void ReadDirectory(const GURL& path) OVERRIDE;
+ virtual void Remove(const GURL& path, bool recursive) OVERRIDE;
virtual void Write(const net::URLRequestContext* url_request_context,
const GURL& path,
const GURL& blob_url,
- int64 offset,
- const WriteCallback& callback) OVERRIDE;
- virtual void Truncate(const GURL& path, int64 length,
- const StatusCallback& callback) OVERRIDE;
+ int64 offset) OVERRIDE;
+ virtual void Truncate(const GURL& path, int64 length) OVERRIDE;
virtual void TouchFile(const GURL& path,
const base::Time& last_access_time,
- const base::Time& last_modified_time,
- const StatusCallback& callback) OVERRIDE;
- virtual void OpenFile(const GURL& path,
- int file_flags,
- base::ProcessHandle peer_handle,
- const OpenFileCallback& callback) OVERRIDE;
- virtual void Cancel(const StatusCallback& cancel_callback) OVERRIDE;
+ const base::Time& last_modified_time) OVERRIDE;
+ virtual void OpenFile(
+ const GURL& path,
+ int file_flags,
+ base::ProcessHandle peer_handle) OVERRIDE;
+ virtual void Cancel(
+ scoped_ptr<FileSystemCallbackDispatcher> cancel_dispatcher) OVERRIDE;
virtual FileSystemOperation* AsFileSystemOperation() OVERRIDE;
// Synchronously gets the platform path for the given |path|.
@@ -102,7 +92,8 @@
friend class FileSystemTestHelper;
friend class chromeos::CrosMountPointProvider;
- FileSystemOperation(scoped_refptr<base::MessageLoopProxy> proxy,
+ FileSystemOperation(scoped_ptr<FileSystemCallbackDispatcher> dispatcher,
+ scoped_refptr<base::MessageLoopProxy> proxy,
FileSystemContext* file_system_context);
FileSystemContext* file_system_context() const {
@@ -131,75 +122,63 @@
const GURL& origin_url,
const quota::QuotaManager::GetUsageAndQuotaCallback& callback);
- void DelayedCreateFileForQuota(const StatusCallback& callback,
- bool exclusive,
+ void DelayedCreateFileForQuota(bool exclusive,
quota::QuotaStatusCode status,
int64 usage, int64 quota);
- void DelayedCreateDirectoryForQuota(const StatusCallback& callback,
- bool exclusive, bool recursive,
+ void DelayedCreateDirectoryForQuota(bool exclusive, bool recursive,
quota::QuotaStatusCode status,
int64 usage, int64 quota);
- void DelayedCopyForQuota(const StatusCallback& callback,
- quota::QuotaStatusCode status,
+ void DelayedCopyForQuota(quota::QuotaStatusCode status,
int64 usage, int64 quota);
- void DelayedMoveForQuota(const StatusCallback& callback,
- quota::QuotaStatusCode status,
+ void DelayedMoveForQuota(quota::QuotaStatusCode status,
int64 usage, int64 quota);
void DelayedWriteForQuota(quota::QuotaStatusCode status,
int64 usage, int64 quota);
- void DelayedTruncateForQuota(const StatusCallback& callback,
- int64 length,
+ void DelayedTruncateForQuota(int64 length,
quota::QuotaStatusCode status,
int64 usage, int64 quota);
- void DelayedOpenFileForQuota(const OpenFileCallback& callback,
- int file_flags,
+ void DelayedOpenFileForQuota(int file_flags,
quota::QuotaStatusCode status,
int64 usage, int64 quota);
// Callback for CreateFile for |exclusive|=true cases.
- void DidEnsureFileExistsExclusive(const StatusCallback& callback,
- base::PlatformFileError rv,
+ void DidEnsureFileExistsExclusive(base::PlatformFileError rv,
bool created);
// Callback for CreateFile for |exclusive|=false cases.
- void DidEnsureFileExistsNonExclusive(const StatusCallback& callback,
- base::PlatformFileError rv,
+ void DidEnsureFileExistsNonExclusive(base::PlatformFileError rv,
bool created);
// Generic callback that translates platform errors to WebKit error codes.
- void DidFinishFileOperation(const StatusCallback& callback,
- base::PlatformFileError rv);
+ void DidFinishFileOperation(base::PlatformFileError rv);
- void DidDirectoryExists(const StatusCallback& callback,
- base::PlatformFileError rv,
+ void DidDirectoryExists(base::PlatformFileError rv,
const base::PlatformFileInfo& file_info,
const FilePath& unused);
- void DidFileExists(const StatusCallback& callback,
- base::PlatformFileError rv,
+ void DidFileExists(base::PlatformFileError rv,
const base::PlatformFileInfo& file_info,
const FilePath& unused);
- void DidGetMetadata(const GetMetadataCallback& callback,
- base::PlatformFileError rv,
+ void DidGetMetadata(base::PlatformFileError rv,
const base::PlatformFileInfo& file_info,
const FilePath& platform_path);
void DidReadDirectory(
- const ReadDirectoryCallback& callback,
base::PlatformFileError rv,
const std::vector<base::FileUtilProxy::Entry>& entries);
- void DidWrite(base::PlatformFileError rv,
- int64 bytes,
- bool complete);
- void DidTouchFile(const StatusCallback& callback,
- base::PlatformFileError rv);
- void DidOpenFile(const OpenFileCallback& callback,
- base::PlatformFileError rv,
- base::PassPlatformFile file,
- bool created);
+ void DidWrite(
+ base::PlatformFileError rv,
+ int64 bytes,
+ bool complete);
+ void DidTouchFile(base::PlatformFileError rv);
+ void DidOpenFile(
+ base::PlatformFileError rv,
+ base::PassPlatformFile file,
+ bool created);
// Helper for Write().
- void OnFileOpenedForWrite(base::PlatformFileError rv,
- base::PassPlatformFile file,
- bool created);
+ void OnFileOpenedForWrite(
+ base::PlatformFileError rv,
+ base::PassPlatformFile file,
+ bool created);
// Checks the validity of a given |path| for reading, cracks the path into
// root URL and virtual path components, and returns the correct
@@ -209,12 +188,11 @@
// PLATFORM_FILE_ERROR_SECURITY and returns false.
// (Note: this doesn't delete this when it calls DidFail and returns false;
// it's the caller's responsibility.)
- base::PlatformFileError VerifyFileSystemPathForRead(
- const GURL& path,
- GURL* root_url,
- FileSystemType* type,
- FilePath* virtual_path,
- FileSystemFileUtil** file_util);
+ bool VerifyFileSystemPathForRead(const GURL& path,
+ GURL* root_url,
+ FileSystemType* type,
+ FilePath* virtual_path,
+ FileSystemFileUtil** file_util);
// Checks the validity of a given |path| for writing, cracks the path into
// root URL and virtual path components, and returns the correct
@@ -231,30 +209,27 @@
// DidFail with PLATFORM_FILE_ERROR_SECURITY and returns false.
// (Note: this doesn't delete this when it calls DidFail and returns false;
// it's the caller's responsibility.)
- base::PlatformFileError VerifyFileSystemPathForWrite(
- const GURL& path,
- bool create,
- GURL* root_url,
- FileSystemType* type,
- FilePath* virtual_path,
- FileSystemFileUtil** file_util);
+ bool VerifyFileSystemPathForWrite(const GURL& path,
+ bool create,
+ GURL* root_url,
+ FileSystemType* type,
+ FilePath* virtual_path,
+ FileSystemFileUtil** file_util);
// Common internal routine for VerifyFileSystemPathFor{Read,Write}.
- base::PlatformFileError VerifyFileSystemPath(const GURL& path,
- GURL* root_url,
- FileSystemType* type,
- FilePath* virtual_path,
- FileSystemFileUtil** file_util);
+ bool VerifyFileSystemPath(const GURL& path,
+ GURL* root_url,
+ FileSystemType* type,
+ FilePath* virtual_path,
+ FileSystemFileUtil** file_util);
// Setup*Context*() functions will call the appropriate VerifyFileSystem
// function and store the results to operation_context_ and
// *_virtual_path_.
// Return the result of VerifyFileSystem*().
- base::PlatformFileError SetupSrcContextForRead(const GURL& path);
- base::PlatformFileError SetupSrcContextForWrite(const GURL& path,
- bool create);
- base::PlatformFileError SetupDestContextForWrite(const GURL& path,
- bool create);
+ bool SetupSrcContextForRead(const GURL& path);
+ bool SetupSrcContextForWrite(const GURL& path, bool create);
+ bool SetupDestContextForWrite(const GURL& path, bool create);
#ifndef NDEBUG
enum OperationType {
@@ -283,6 +258,9 @@
// Proxy for calling file_util_proxy methods.
scoped_refptr<base::MessageLoopProxy> proxy_;
+ // This can be NULL if the operation is cancelled on the way.
+ scoped_ptr<FileSystemCallbackDispatcher> dispatcher_;
+
FileSystemOperationContext operation_context_;
scoped_ptr<ScopedQuotaUtilHelper> quota_util_helper_;
@@ -291,17 +269,8 @@
friend class FileWriterDelegate;
scoped_ptr<FileWriterDelegate> file_writer_delegate_;
scoped_ptr<net::URLRequest> blob_request_;
+ scoped_ptr<FileSystemCallbackDispatcher> cancel_dispatcher_;
- // write_callback is kept in this class for so that we can dispatch it when
- // the operation is cancelled. calcel_callback is kept for canceling a
- // Truncate() operation. We can't actually stop Truncate in another thread;
- // after it resumed from the working thread, cancellation takes place.
- WriteCallback write_callback_;
- StatusCallback cancel_callback_;
- void set_write_callback(const WriteCallback& write_callback) {
- write_callback_ = write_callback;
- }
-
// Used only by OpenFile, in order to clone the file handle back to the
// requesting process.
base::ProcessHandle peer_handle_;
« no previous file with comments | « webkit/fileapi/file_system_mount_point_provider.h ('k') | webkit/fileapi/file_system_operation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698