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

Unified Diff: webkit/fileapi/local_file_system_operation.h

Issue 15994002: Move more browser-specific webkit/fileapi code to webkit/browser/fileapi (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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: webkit/fileapi/local_file_system_operation.h
diff --git a/webkit/fileapi/local_file_system_operation.h b/webkit/fileapi/local_file_system_operation.h
deleted file mode 100644
index d1a3776dbde35a909f40aab5949632b5fce1f910..0000000000000000000000000000000000000000
--- a/webkit/fileapi/local_file_system_operation.h
+++ /dev/null
@@ -1,341 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef WEBKIT_FILEAPI_LOCAL_FILE_SYSTEM_OPERATION_H_
-#define WEBKIT_FILEAPI_LOCAL_FILE_SYSTEM_OPERATION_H_
-
-#include <vector>
-
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "webkit/blob/scoped_file.h"
-#include "webkit/fileapi/file_system_operation.h"
-#include "webkit/fileapi/file_system_url.h"
-#include "webkit/fileapi/file_writer_delegate.h"
-#include "webkit/quota/quota_types.h"
-#include "webkit/storage/webkit_storage_export.h"
-
-namespace chromeos {
-class CrosMountPointProvider;
-}
-
-namespace sync_file_system {
-class SyncableFileSystemOperation;
-}
-
-namespace fileapi {
-
-class AsyncFileUtil;
-class FileSystemContext;
-class RecursiveOperationDelegate;
-
-// FileSystemOperation implementation for local file systems.
-class WEBKIT_STORAGE_EXPORT LocalFileSystemOperation
- : public NON_EXPORTED_BASE(FileSystemOperation) {
- public:
- // NOTE: This constructor should not be called outside MountPointProviders;
- // instead please consider using
- // file_system_context->CreateFileSystemOperation() to instantiate
- // an appropriate FileSystemOperation.
- LocalFileSystemOperation(
- FileSystemContext* file_system_context,
- scoped_ptr<FileSystemOperationContext> operation_context);
-
- virtual ~LocalFileSystemOperation();
-
- // FileSystemOperation overrides.
- virtual void CreateFile(const FileSystemURL& url,
- bool exclusive,
- const StatusCallback& callback) OVERRIDE;
- virtual void CreateDirectory(const FileSystemURL& url,
- bool exclusive,
- bool recursive,
- const StatusCallback& callback) OVERRIDE;
- virtual void Copy(const FileSystemURL& src_url,
- const FileSystemURL& dest_url,
- const StatusCallback& callback) OVERRIDE;
- virtual void Move(const FileSystemURL& src_url,
- const FileSystemURL& dest_url,
- const StatusCallback& callback) OVERRIDE;
- virtual void DirectoryExists(const FileSystemURL& url,
- const StatusCallback& callback) OVERRIDE;
- virtual void FileExists(const FileSystemURL& url,
- const StatusCallback& callback) OVERRIDE;
- virtual void GetMetadata(const FileSystemURL& url,
- const GetMetadataCallback& callback) OVERRIDE;
- virtual void ReadDirectory(const FileSystemURL& url,
- const ReadDirectoryCallback& callback) OVERRIDE;
- virtual void Remove(const FileSystemURL& url, bool recursive,
- const StatusCallback& callback) OVERRIDE;
- virtual void Write(const net::URLRequestContext* url_request_context,
- const FileSystemURL& url,
- const GURL& blob_url,
- int64 offset,
- const WriteCallback& callback) OVERRIDE;
- virtual void Truncate(const FileSystemURL& url, int64 length,
- const StatusCallback& callback) OVERRIDE;
- virtual void TouchFile(const FileSystemURL& url,
- const base::Time& last_access_time,
- const base::Time& last_modified_time,
- const StatusCallback& callback) OVERRIDE;
- virtual void OpenFile(const FileSystemURL& url,
- int file_flags,
- base::ProcessHandle peer_handle,
- const OpenFileCallback& callback) OVERRIDE;
- virtual void Cancel(const StatusCallback& cancel_callback) OVERRIDE;
- virtual LocalFileSystemOperation* AsLocalFileSystemOperation() OVERRIDE;
- virtual void CreateSnapshotFile(
- const FileSystemURL& path,
- const SnapshotFileCallback& callback) OVERRIDE;
-
- // Creates a nestable operation that inherits operation context
- // from this operation. The operation created by this method have to
- // be die before this operation goes away.
- virtual LocalFileSystemOperation* CreateNestedOperation();
-
- // Copies in a single file from a different filesystem.
- //
- // This returns:
- // - PLATFORM_FILE_ERROR_NOT_FOUND if |src_file_path|
- // or the parent directory of |dest_url| does not exist.
- // - PLATFORM_FILE_ERROR_INVALID_OPERATION if |dest_url| exists and
- // is not a file.
- // - PLATFORM_FILE_ERROR_FAILED if |dest_url| does not exist and
- // its parent path is a file.
- //
- virtual void CopyInForeignFile(const base::FilePath& src_local_disk_path,
- const FileSystemURL& dest_url,
- const StatusCallback& callback);
-
- // Removes a single file.
- //
- // This returns:
- // - PLATFORM_FILE_ERROR_NOT_FOUND if |url| does not exist.
- // - PLATFORM_FILE_ERROR_NOT_A_FILE if |url| is not a file.
- //
- void RemoveFile(const FileSystemURL& url,
- const StatusCallback& callback);
-
- // Removes a single empty directory.
- //
- // This returns:
- // - PLATFORM_FILE_ERROR_NOT_FOUND if |url| does not exist.
- // - PLATFORM_FILE_ERROR_NOT_A_DIRECTORY if |url| is not a directory.
- // - PLATFORM_FILE_ERROR_NOT_EMPTY if |url| is not empty.
- //
- void RemoveDirectory(const FileSystemURL& url,
- const StatusCallback& callback);
-
- // Copies a file from |src_url| to |dest_url|.
- // This must be called for files that belong to the same filesystem
- // (i.e. type() and origin() of the |src_url| and |dest_url| must match).
- //
- // This returns:
- // - PLATFORM_FILE_ERROR_NOT_FOUND if |src_url|
- // or the parent directory of |dest_url| does not exist.
- // - PLATFORM_FILE_ERROR_NOT_A_FILE if |src_url| exists but is not a file.
- // - PLATFORM_FILE_ERROR_INVALID_OPERATION if |dest_url| exists and
- // is not a file.
- // - PLATFORM_FILE_ERROR_FAILED if |dest_url| does not exist and
- // its parent path is a file.
- //
- void CopyFileLocal(const FileSystemURL& src_url,
- const FileSystemURL& dest_url,
- const StatusCallback& callback);
-
- // Moves a local file from |src_url| to |dest_url|.
- // This must be called for files that belong to the same filesystem
- // (i.e. type() and origin() of the |src_url| and |dest_url| must match).
- //
- // This returns:
- // - PLATFORM_FILE_ERROR_NOT_FOUND if |src_url|
- // or the parent directory of |dest_url| does not exist.
- // - PLATFORM_FILE_ERROR_NOT_A_FILE if |src_url| exists but is not a file.
- // - PLATFORM_FILE_ERROR_INVALID_OPERATION if |dest_url| exists and
- // is not a file.
- // - PLATFORM_FILE_ERROR_FAILED if |dest_url| does not exist and
- // its parent path is a file.
- //
- void MoveFileLocal(const FileSystemURL& src_url,
- const FileSystemURL& dest_url,
- const StatusCallback& callback);
-
- // Synchronously gets the platform path for the given |url|.
- void SyncGetPlatformPath(const FileSystemURL& url,
- base::FilePath* platform_path);
-
- FileSystemContext* file_system_context() const {
- return file_system_context_;
- }
-
- FileSystemOperationContext* operation_context() const {
- if (parent_operation_)
- return parent_operation_->operation_context();
- return operation_context_.get();
- }
-
- private:
- enum OperationMode {
- OPERATION_MODE_READ,
- OPERATION_MODE_WRITE,
- };
-
- friend class sync_file_system::SyncableFileSystemOperation;
-
- // Queries the quota and usage and then runs the given |task|.
- // If an error occurs during the quota query it runs |error_callback| instead.
- void GetUsageAndQuotaThenRunTask(
- const FileSystemURL& url,
- const base::Closure& task,
- const base::Closure& error_callback);
-
- // Called after the quota info is obtained from the quota manager
- // (which is triggered by GetUsageAndQuotaThenRunTask).
- // Sets the quota info in the operation_context_ and then runs the given
- // |task| if the returned quota status is successful, otherwise runs
- // |error_callback|.
- void DidGetUsageAndQuotaAndRunTask(
- const base::Closure& task,
- const base::Closure& error_callback,
- quota::QuotaStatusCode status,
- int64 usage, int64 quota);
-
- // returns a closure which actually perform the write operation.
- base::Closure GetWriteClosure(
- const net::URLRequestContext* url_request_context,
- const FileSystemURL& url,
- const GURL& blob_url,
- int64 offset,
- const WriteCallback& callback);
- void DidFailWrite(
- const WriteCallback& callback,
- base::PlatformFileError result);
-
- // The 'body' methods that perform the actual work (i.e. posting the
- // file task on proxy_) after the quota check.
- void DoCreateFile(const FileSystemURL& url,
- const StatusCallback& callback, bool exclusive);
- void DoCreateDirectory(const FileSystemURL& url,
- const StatusCallback& callback,
- bool exclusive,
- bool recursive);
- void DoCopyFileLocal(const FileSystemURL& src,
- const FileSystemURL& dest,
- const StatusCallback& callback);
- void DoMoveFileLocal(const FileSystemURL& src,
- const FileSystemURL& dest,
- const StatusCallback& callback);
- void DoCopyInForeignFile(const base::FilePath& src_local_disk_file_path,
- const FileSystemURL& dest,
- const StatusCallback& callback);
- void DoTruncate(const FileSystemURL& url,
- const StatusCallback& callback, int64 length);
- void DoOpenFile(const FileSystemURL& url,
- const OpenFileCallback& callback, int file_flags);
-
- // Callback for CreateFile for |exclusive|=true cases.
- void DidEnsureFileExistsExclusive(const StatusCallback& callback,
- base::PlatformFileError rv,
- bool created);
-
- // Callback for CreateFile for |exclusive|=false cases.
- void DidEnsureFileExistsNonExclusive(const StatusCallback& callback,
- base::PlatformFileError rv,
- bool created);
-
- // Generic callback that translates platform errors to WebKit error codes.
- void DidFinishFileOperation(const StatusCallback& callback,
- base::PlatformFileError rv);
-
- // Generic callback when we delegated the operation.
- void DidFinishDelegatedOperation(const StatusCallback& callback,
- base::PlatformFileError rv);
-
- void DidDirectoryExists(const StatusCallback& callback,
- base::PlatformFileError rv,
- const base::PlatformFileInfo& file_info,
- const base::FilePath& unused);
- void DidFileExists(const StatusCallback& callback,
- base::PlatformFileError rv,
- const base::PlatformFileInfo& file_info,
- const base::FilePath& unused);
- void DidGetMetadata(const GetMetadataCallback& callback,
- base::PlatformFileError rv,
- const base::PlatformFileInfo& file_info,
- const base::FilePath& platform_path);
- void DidReadDirectory(const ReadDirectoryCallback& callback,
- base::PlatformFileError rv,
- const std::vector<DirectoryEntry>& entries,
- bool has_more);
- void DidWrite(const FileSystemURL& url,
- base::PlatformFileError rv,
- int64 bytes,
- FileWriterDelegate::WriteProgressStatus write_status);
- void DidTouchFile(const StatusCallback& callback,
- base::PlatformFileError rv);
- void DidOpenFile(const OpenFileCallback& callback,
- base::PlatformFileError rv,
- base::PassPlatformFile file,
- bool created);
- void DidCreateSnapshotFile(
- const SnapshotFileCallback& callback,
- base::PlatformFileError result,
- const base::PlatformFileInfo& file_info,
- const base::FilePath& platform_path,
- const scoped_refptr<webkit_blob::ShareableFileReference>& file_ref);
-
- // Checks the validity of a given |url| and populates |file_util| for |mode|.
- base::PlatformFileError SetUp(
- const FileSystemURL& url,
- OperationMode mode);
-
- // Used only for internal assertions.
- // Returns false if there's another inflight pending operation.
- bool SetPendingOperationType(OperationType type);
-
- scoped_refptr<FileSystemContext> file_system_context_;
-
- scoped_ptr<FileSystemOperationContext> operation_context_;
- AsyncFileUtil* async_file_util_; // Not owned.
-
- // If this operation is created as a sub-operation for nested operation,
- // this holds non-null value and points to the parent operation.
- // TODO(kinuko): Cleanup this when we finish cleaning up the
- // FileSystemOperation lifetime issue.
- base::WeakPtr<LocalFileSystemOperation> parent_operation_;
-
- // These are all used only by Write().
- friend class FileWriterDelegate;
- scoped_ptr<FileWriterDelegate> file_writer_delegate_;
-
- scoped_ptr<RecursiveOperationDelegate> recursive_operation_delegate_;
-
- // 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_;
-
- // Used only by OpenFile, in order to clone the file handle back to the
- // requesting process.
- base::ProcessHandle peer_handle_;
-
- // A flag to make sure we call operation only once per instance.
- OperationType pending_operation_;
-
- // We keep track of the file to be modified by this operation so that
- // we can notify observers when we're done.
- FileSystemURL write_target_url_;
-
- // LocalFileSystemOperation instance is usually deleted upon completion but
- // could be deleted while it has inflight callbacks when Cancel is called.
- base::WeakPtrFactory<LocalFileSystemOperation> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(LocalFileSystemOperation);
-};
-
-} // namespace fileapi
-
-#endif // WEBKIT_FILEAPI_LOCAL_FILE_SYSTEM_OPERATION_H_
« no previous file with comments | « webkit/fileapi/local_file_system_cross_operation_unittest.cc ('k') | webkit/fileapi/local_file_system_operation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698