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

Unified Diff: webkit/fileapi/file_system_file_util.h

Issue 11297002: [Media Gallery] Added code to support mtp device media file system on Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase + Addressed review comment Created 7 years, 12 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/file_system_file_util.h
diff --git a/webkit/fileapi/file_system_file_util.h b/webkit/fileapi/file_system_file_util.h
index bab08812f68f2c2da8f17b7ce4050a5a522947d7..aabea94daed76a1707635990d062639edee90601 100644
--- a/webkit/fileapi/file_system_file_util.h
+++ b/webkit/fileapi/file_system_file_util.h
@@ -1,211 +1,212 @@
-// 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_FILE_SYSTEM_FILE_UTIL_H_
-#define WEBKIT_FILEAPI_FILE_SYSTEM_FILE_UTIL_H_
-
-#include "base/file_path.h"
-#include "base/file_util_proxy.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/platform_file.h"
-#include "webkit/fileapi/file_system_url.h"
-#include "webkit/storage/webkit_storage_export.h"
-
-namespace base {
-class Time;
-}
-
-namespace webkit_blob {
-class ShareableFileReference;
-}
-
-namespace fileapi {
-
-using base::PlatformFile;
-using base::PlatformFileError;
-class FileSystemOperationContext;
-
-// A file utility interface that provides basic file utility methods for
-// FileSystem API.
-//
-// Layering structure of the FileSystemFileUtil was split out.
-// See http://crbug.com/128136 if you need it.
-class WEBKIT_STORAGE_EXPORT FileSystemFileUtil {
- public:
- // It will be implemented by each subclass such as FileSystemFileEnumerator.
- class AbstractFileEnumerator {
- public:
- virtual ~AbstractFileEnumerator() {}
-
- // Returns an empty string if there are no more results.
- virtual FilePath Next() = 0;
-
- virtual int64 Size() = 0;
- virtual base::Time LastModifiedTime() = 0;
- virtual bool IsDirectory() = 0;
- };
-
- // A policy flag for CreateSnapshotFile.
- enum SnapshotFilePolicy {
- kSnapshotFileUnknown,
-
- // The implementation just uses the local file as the snapshot file.
- // The FileAPI backend does nothing on the returned file.
- kSnapshotFileLocal,
-
- // The implementation returns a temporary file as the snapshot file.
- // The FileAPI backend takes care of the lifetime of the returned file
- // and will delete when the last reference of the file is dropped.
- kSnapshotFileTemporary,
- };
-
- class EmptyFileEnumerator : public AbstractFileEnumerator {
- virtual FilePath Next() OVERRIDE;
- virtual int64 Size() OVERRIDE;
- virtual base::Time LastModifiedTime() OVERRIDE;
- virtual bool IsDirectory() OVERRIDE;
- };
-
- virtual ~FileSystemFileUtil() {}
-
- // Creates or opens a file with the given flags.
- // If PLATFORM_FILE_CREATE is set in |file_flags| it always tries to create
- // a new file at the given |url| and calls back with
- // PLATFORM_FILE_ERROR_FILE_EXISTS if the |url| already exists.
- virtual PlatformFileError CreateOrOpen(
- FileSystemOperationContext* context,
- const FileSystemURL& url,
- int file_flags,
- PlatformFile* file_handle,
- bool* created) = 0;
-
- // Closes the given file handle.
- virtual PlatformFileError Close(
- FileSystemOperationContext* context,
- PlatformFile file) = 0;
-
- // Ensures that the given |url| exist. This creates a empty new file
- // at |url| if the |url| does not exist.
- // If a new file han not existed and is created at the |url|,
- // |created| is set true and |error code|
- // is set PLATFORM_FILE_OK.
- // If the file already exists, |created| is set false and |error code|
- // is set PLATFORM_FILE_OK.
- // If the file hasn't existed but it couldn't be created for some other
- // reasons, |created| is set false and |error code| indicates the error.
- virtual PlatformFileError EnsureFileExists(
- FileSystemOperationContext* context,
- const FileSystemURL& url, bool* created) = 0;
-
- // Creates directory at given url. It's an error to create
- // if |exclusive| is true and dir already exists.
- virtual PlatformFileError CreateDirectory(
- FileSystemOperationContext* context,
- const FileSystemURL& url,
- bool exclusive,
- bool recursive) = 0;
-
- // Retrieves the information about a file.
- virtual PlatformFileError GetFileInfo(
- FileSystemOperationContext* context,
- const FileSystemURL& url,
- base::PlatformFileInfo* file_info,
- FilePath* platform_path) = 0;
-
- // Returns a pointer to a new instance of AbstractFileEnumerator which is
- // implemented for each FileSystemFileUtil subclass. The instance needs to be
- // freed by the caller, and its lifetime should not extend past when the
- // current call returns to the main FILE message loop.
- //
- // The supplied context must remain valid at least lifetime of the enumerator
- // instance.
- virtual scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator(
- FileSystemOperationContext* context,
- const FileSystemURL& root_url,
- bool recursive) = 0;
-
- // Maps |file_system_url| given |context| into |local_file_path|
- // which represents physical file location on the host OS.
- // This may not always make sense for all subclasses.
- virtual PlatformFileError GetLocalFilePath(
- FileSystemOperationContext* context,
- const FileSystemURL& file_system_url,
- FilePath* local_file_path) = 0;
-
- // Updates the file metadata information. Unlike posix's touch, it does
- // not create a file even if |url| does not exist, but instead fails
- // with PLATFORM_FILE_ERROR_NOT_FOUND.
- virtual PlatformFileError Touch(
- FileSystemOperationContext* context,
- const FileSystemURL& url,
- const base::Time& last_access_time,
- const base::Time& last_modified_time) = 0;
-
- // Truncates a file to the given length. If |length| is greater than the
- // current length of the file, the file will be extended with zeroes.
- virtual PlatformFileError Truncate(
- FileSystemOperationContext* context,
- const FileSystemURL& url,
- int64 length) = 0;
-
- // Returns true if a given |url| is an empty directory.
- virtual bool IsDirectoryEmpty(
- FileSystemOperationContext* context,
- const FileSystemURL& url) = 0;
-
- // Copies or moves a single file from |src_url| to |dest_url|.
- virtual PlatformFileError CopyOrMoveFile(
- FileSystemOperationContext* context,
- const FileSystemURL& src_url,
- const FileSystemURL& dest_url,
- bool copy) = 0;
-
- // Copies in a single file from a different filesystem.
- virtual PlatformFileError CopyInForeignFile(
- FileSystemOperationContext* context,
- const FilePath& src_file_path,
- const FileSystemURL& dest_url) = 0;
-
- // Deletes a single file.
- // It assumes the given url points a file.
- virtual PlatformFileError DeleteFile(
- FileSystemOperationContext* context,
- const FileSystemURL& url) = 0;
-
- // Deletes a single empty directory.
- // It assumes the given url points an empty directory.
- virtual PlatformFileError DeleteSingleDirectory(
- FileSystemOperationContext* context,
- const FileSystemURL& url) = 0;
-
- // Creates a local snapshot file for a given |url| and returns the
- // metadata and platform path of the snapshot file via |callback|.
- // In regular filesystem cases the implementation may simply return
- // the metadata of the file itself (as well as GetMetadata does),
- // while in non-regular filesystem case the backend may create a
- // temporary snapshot file which holds the file data and return
- // the metadata of the temporary file.
- //
- // |file_info| is the metadata of the snapshot file created.
- // |platform_path| is the path to the snapshot file created.
- // |policy| should indicate the policy how the fileapi backend
- // should handle the returned file.
- virtual base::PlatformFileError CreateSnapshotFile(
- FileSystemOperationContext* context,
- const FileSystemURL& url,
- base::PlatformFileInfo* file_info,
- FilePath* platform_path,
- SnapshotFilePolicy* policy) = 0;
-
- protected:
- FileSystemFileUtil() {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(FileSystemFileUtil);
-};
-
-} // namespace fileapi
-
-#endif // WEBKIT_FILEAPI_FILE_SYSTEM_FILE_UTIL_H_
+// 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_FILE_SYSTEM_FILE_UTIL_H_
+#define WEBKIT_FILEAPI_FILE_SYSTEM_FILE_UTIL_H_
+
+#include "base/file_path.h"
+#include "base/file_util_proxy.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/platform_file.h"
+#include "webkit/fileapi/file_system_url.h"
+#include "webkit/storage/webkit_storage_export.h"
+
+namespace base {
+class Time;
+}
+
+namespace webkit_blob {
+class ShareableFileReference;
+}
+
+namespace fileapi {
+
+using base::PlatformFile;
+using base::PlatformFileError;
+class FileSystemOperationContext;
+
+// A file utility interface that provides basic file utility methods for
+// FileSystem API.
+//
+// Layering structure of the FileSystemFileUtil was split out.
+// See http://crbug.com/128136 if you need it.
+class WEBKIT_STORAGE_EXPORT FileSystemFileUtil {
+ public:
+ // It will be implemented by each subclass such as FileSystemFileEnumerator.
+ class WEBKIT_STORAGE_EXPORT AbstractFileEnumerator {
+ public:
+ virtual ~AbstractFileEnumerator() {}
+
+ // Returns an empty string if there are no more results.
+ virtual FilePath Next() = 0;
+
+ virtual int64 Size() = 0;
+ virtual base::Time LastModifiedTime() = 0;
+ virtual bool IsDirectory() = 0;
+ };
+
+ // A policy flag for CreateSnapshotFile.
+ enum SnapshotFilePolicy {
+ kSnapshotFileUnknown,
+
+ // The implementation just uses the local file as the snapshot file.
+ // The FileAPI backend does nothing on the returned file.
+ kSnapshotFileLocal,
+
+ // The implementation returns a temporary file as the snapshot file.
+ // The FileAPI backend takes care of the lifetime of the returned file
+ // and will delete when the last reference of the file is dropped.
+ kSnapshotFileTemporary,
+ };
+
+ class WEBKIT_STORAGE_EXPORT EmptyFileEnumerator
+ : public AbstractFileEnumerator {
+ virtual FilePath Next() OVERRIDE;
+ virtual int64 Size() OVERRIDE;
+ virtual base::Time LastModifiedTime() OVERRIDE;
+ virtual bool IsDirectory() OVERRIDE;
+ };
+
+ virtual ~FileSystemFileUtil() {}
+
+ // Creates or opens a file with the given flags.
+ // If PLATFORM_FILE_CREATE is set in |file_flags| it always tries to create
+ // a new file at the given |url| and calls back with
+ // PLATFORM_FILE_ERROR_FILE_EXISTS if the |url| already exists.
+ virtual PlatformFileError CreateOrOpen(
+ FileSystemOperationContext* context,
+ const FileSystemURL& url,
+ int file_flags,
+ PlatformFile* file_handle,
+ bool* created) = 0;
+
+ // Closes the given file handle.
+ virtual PlatformFileError Close(
+ FileSystemOperationContext* context,
+ PlatformFile file) = 0;
+
+ // Ensures that the given |url| exist. This creates a empty new file
+ // at |url| if the |url| does not exist.
+ // If a new file han not existed and is created at the |url|,
+ // |created| is set true and |error code|
+ // is set PLATFORM_FILE_OK.
+ // If the file already exists, |created| is set false and |error code|
+ // is set PLATFORM_FILE_OK.
+ // If the file hasn't existed but it couldn't be created for some other
+ // reasons, |created| is set false and |error code| indicates the error.
+ virtual PlatformFileError EnsureFileExists(
+ FileSystemOperationContext* context,
+ const FileSystemURL& url, bool* created) = 0;
+
+ // Creates directory at given url. It's an error to create
+ // if |exclusive| is true and dir already exists.
+ virtual PlatformFileError CreateDirectory(
+ FileSystemOperationContext* context,
+ const FileSystemURL& url,
+ bool exclusive,
+ bool recursive) = 0;
+
+ // Retrieves the information about a file.
+ virtual PlatformFileError GetFileInfo(
+ FileSystemOperationContext* context,
+ const FileSystemURL& url,
+ base::PlatformFileInfo* file_info,
+ FilePath* platform_path) = 0;
+
+ // Returns a pointer to a new instance of AbstractFileEnumerator which is
+ // implemented for each FileSystemFileUtil subclass. The instance needs to be
+ // freed by the caller, and its lifetime should not extend past when the
+ // current call returns to the main FILE message loop.
+ //
+ // The supplied context must remain valid at least lifetime of the enumerator
+ // instance.
+ virtual scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator(
+ FileSystemOperationContext* context,
+ const FileSystemURL& root_url,
+ bool recursive) = 0;
+
+ // Maps |file_system_url| given |context| into |local_file_path|
+ // which represents physical file location on the host OS.
+ // This may not always make sense for all subclasses.
+ virtual PlatformFileError GetLocalFilePath(
+ FileSystemOperationContext* context,
+ const FileSystemURL& file_system_url,
+ FilePath* local_file_path) = 0;
+
+ // Updates the file metadata information. Unlike posix's touch, it does
+ // not create a file even if |url| does not exist, but instead fails
+ // with PLATFORM_FILE_ERROR_NOT_FOUND.
+ virtual PlatformFileError Touch(
+ FileSystemOperationContext* context,
+ const FileSystemURL& url,
+ const base::Time& last_access_time,
+ const base::Time& last_modified_time) = 0;
+
+ // Truncates a file to the given length. If |length| is greater than the
+ // current length of the file, the file will be extended with zeroes.
+ virtual PlatformFileError Truncate(
+ FileSystemOperationContext* context,
+ const FileSystemURL& url,
+ int64 length) = 0;
+
+ // Returns true if a given |url| is an empty directory.
+ virtual bool IsDirectoryEmpty(
+ FileSystemOperationContext* context,
+ const FileSystemURL& url) = 0;
+
+ // Copies or moves a single file from |src_url| to |dest_url|.
+ virtual PlatformFileError CopyOrMoveFile(
+ FileSystemOperationContext* context,
+ const FileSystemURL& src_url,
+ const FileSystemURL& dest_url,
+ bool copy) = 0;
+
+ // Copies in a single file from a different filesystem.
+ virtual PlatformFileError CopyInForeignFile(
+ FileSystemOperationContext* context,
+ const FilePath& src_file_path,
+ const FileSystemURL& dest_url) = 0;
+
+ // Deletes a single file.
+ // It assumes the given url points a file.
+ virtual PlatformFileError DeleteFile(
+ FileSystemOperationContext* context,
+ const FileSystemURL& url) = 0;
+
+ // Deletes a single empty directory.
+ // It assumes the given url points an empty directory.
+ virtual PlatformFileError DeleteSingleDirectory(
+ FileSystemOperationContext* context,
+ const FileSystemURL& url) = 0;
+
+ // Creates a local snapshot file for a given |url| and returns the
+ // metadata and platform path of the snapshot file via |callback|.
+ // In regular filesystem cases the implementation may simply return
+ // the metadata of the file itself (as well as GetMetadata does),
+ // while in non-regular filesystem case the backend may create a
+ // temporary snapshot file which holds the file data and return
+ // the metadata of the temporary file.
+ //
+ // |file_info| is the metadata of the snapshot file created.
+ // |platform_path| is the path to the snapshot file created.
+ // |policy| should indicate the policy how the fileapi backend
+ // should handle the returned file.
+ virtual base::PlatformFileError CreateSnapshotFile(
+ FileSystemOperationContext* context,
+ const FileSystemURL& url,
+ base::PlatformFileInfo* file_info,
+ FilePath* platform_path,
+ SnapshotFilePolicy* policy) = 0;
+
+ protected:
+ FileSystemFileUtil() {}
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(FileSystemFileUtil);
+};
+
+} // namespace fileapi
+
+#endif // WEBKIT_FILEAPI_FILE_SYSTEM_FILE_UTIL_H_

Powered by Google App Engine
This is Rietveld 408576698