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

Unified Diff: chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h

Issue 440653003: [fsp] Add support for aborting running operations. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed DCHECKs. Created 6 years, 4 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/chromeos/file_system_provider/provided_file_system_interface.h
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h b/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h
index 82813ff30729a860d280c9dda522618ff8b65d1d..149c2e6d37720336275c741df8ebd138c34ff4d3 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h
+++ b/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h
@@ -43,8 +43,10 @@ struct EntryMetadata {
};
// Interface for a provided file system. Acts as a proxy between providers
-// and clients.
-// TODO(mtomasz): Add more methods once implemented.
+// and clients. All of the request methods return an abort callback in order to
+// terminate it while running. They must be called on the same thread as the
+// request methods. The cancellation callback may be null if the operation
+// fails synchronously.
class ProvidedFileSystemInterface {
public:
typedef base::Callback<void(int file_handle, base::File::Error result)>
@@ -57,6 +59,9 @@ class ProvidedFileSystemInterface {
typedef base::Callback<void(const EntryMetadata& entry_metadata,
base::File::Error result)> GetMetadataCallback;
+ typedef base::Callback<void(
+ const fileapi::AsyncFileUtil::StatusCallback& callback)> AbortCallback;
+
// Mode of opening a file. Used by OpenFile().
enum OpenFileMode { OPEN_FILE_MODE_READ, OPEN_FILE_MODE_WRITE };
@@ -64,29 +69,29 @@ class ProvidedFileSystemInterface {
// Requests unmounting of the file system. The callback is called when the
// request is accepted or rejected, with an error code.
- virtual void RequestUnmount(
+ virtual AbortCallback RequestUnmount(
const fileapi::AsyncFileUtil::StatusCallback& callback) = 0;
// Requests metadata of the passed |entry_path|. It can be either a file
// or a directory.
- virtual void GetMetadata(const base::FilePath& entry_path,
- const GetMetadataCallback& callback) = 0;
+ virtual AbortCallback GetMetadata(const base::FilePath& entry_path,
+ const GetMetadataCallback& callback) = 0;
// Requests enumerating entries from the passed |directory_path|. The callback
// can be called multiple times until |has_more| is set to false.
- virtual void ReadDirectory(
+ virtual AbortCallback ReadDirectory(
const base::FilePath& directory_path,
const fileapi::AsyncFileUtil::ReadDirectoryCallback& callback) = 0;
// Requests opening a file at |file_path|. If the file doesn't exist, then the
// operation will fail.
- virtual void OpenFile(const base::FilePath& file_path,
- OpenFileMode mode,
- const OpenFileCallback& callback) = 0;
+ virtual AbortCallback OpenFile(const base::FilePath& file_path,
+ OpenFileMode mode,
+ const OpenFileCallback& callback) = 0;
// Requests closing a file, previously opened with OpenFile() as a file with
// |file_handle|. For either succes or error |callback| must be called.
- virtual void CloseFile(
+ virtual AbortCallback CloseFile(
int file_handle,
const fileapi::AsyncFileUtil::StatusCallback& callback) = 0;
@@ -94,16 +99,16 @@ class ProvidedFileSystemInterface {
// can be called multiple times until |has_more| is set to false. On success
// it should return |length| bytes starting from |offset| in total. It can
// return less only in case EOF is encountered.
- virtual void ReadFile(int file_handle,
- net::IOBuffer* buffer,
- int64 offset,
- int length,
- const ReadChunkReceivedCallback& callback) = 0;
+ virtual AbortCallback ReadFile(int file_handle,
+ net::IOBuffer* buffer,
+ int64 offset,
+ int length,
+ const ReadChunkReceivedCallback& callback) = 0;
// Requests creating a directory. If |recursive| is passed, then all non
// existing directories on the path will be created. If |exclusive| is true,
// then creating the directory will fail, if it already exists.
- virtual void CreateDirectory(
+ virtual AbortCallback CreateDirectory(
const base::FilePath& directory_path,
bool exclusive,
bool recursive,
@@ -111,39 +116,39 @@ class ProvidedFileSystemInterface {
// Requests creating a file. If the entry already exists, then the
// FILE_ERROR_EXISTS error must be returned.
- virtual void CreateFile(
+ virtual AbortCallback CreateFile(
const base::FilePath& file_path,
const fileapi::AsyncFileUtil::StatusCallback& callback) = 0;
// Requests deleting a directory. If |recursive| is passed and the entry is
// a directory, then all contents of it (recursively) will be deleted too.
- virtual void DeleteEntry(
+ virtual AbortCallback DeleteEntry(
const base::FilePath& entry_path,
bool recursive,
const fileapi::AsyncFileUtil::StatusCallback& callback) = 0;
// Requests copying an entry (recursively in case of a directory) within the
// same file system.
- virtual void CopyEntry(
+ virtual AbortCallback CopyEntry(
const base::FilePath& source_path,
const base::FilePath& target_path,
const fileapi::AsyncFileUtil::StatusCallback& callback) = 0;
// Requests moving an entry (recursively in case of a directory) within the
// same file system.
- virtual void MoveEntry(
+ virtual AbortCallback MoveEntry(
const base::FilePath& source_path,
const base::FilePath& target_path,
const fileapi::AsyncFileUtil::StatusCallback& callback) = 0;
// Requests truncating a file to the desired length.
- virtual void Truncate(
+ virtual AbortCallback Truncate(
const base::FilePath& file_path,
int64 length,
const fileapi::AsyncFileUtil::StatusCallback& callback) = 0;
// Requests writing to a file previously opened with |file_handle|.
- virtual void WriteFile(
+ virtual AbortCallback WriteFile(
int file_handle,
net::IOBuffer* buffer,
int64 offset,

Powered by Google App Engine
This is Rietveld 408576698