| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_FILE_UTIL_PROXY_H_ | 5 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_FILE_UTIL_PROXY_H_ |
| 6 #define WEBKIT_FILEAPI_FILE_SYSTEM_FILE_UTIL_PROXY_H_ | 6 #define WEBKIT_FILEAPI_FILE_SYSTEM_FILE_UTIL_PROXY_H_ |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 using base::PlatformFile; | 28 using base::PlatformFile; |
| 29 using base::PlatformFileError; | 29 using base::PlatformFileError; |
| 30 using base::PlatformFileInfo; | 30 using base::PlatformFileInfo; |
| 31 | 31 |
| 32 // This class provides asynchronous access to common file routines for the | 32 // This class provides asynchronous access to common file routines for the |
| 33 // FileSystem API. | 33 // FileSystem API. |
| 34 class FileSystemFileUtilProxy { | 34 class FileSystemFileUtilProxy { |
| 35 public: | 35 public: |
| 36 typedef base::FileUtilProxy::Entry Entry; | 36 typedef base::FileUtilProxy::Entry Entry; |
| 37 | 37 |
| 38 typedef base::FileUtilProxy::StatusCallback StatusCallback; | |
| 39 typedef base::FileUtilProxy::CreateOrOpenCallback CreateOrOpenCallback; | |
| 40 typedef base::Callback<void(PlatformFileError, | 38 typedef base::Callback<void(PlatformFileError, |
| 41 bool /* created */ | 39 bool /* created */ |
| 42 )> EnsureFileExistsCallback; | 40 )> EnsureFileExistsCallback; |
| 43 typedef base::Callback<void(PlatformFileError, | 41 typedef base::Callback<void(PlatformFileError, |
| 44 const PlatformFileInfo&, | 42 const PlatformFileInfo&, |
| 45 const FilePath& /* platform_path */ | 43 const FilePath& /* platform_path */ |
| 46 )> GetFileInfoCallback; | 44 )> GetFileInfoCallback; |
| 47 typedef base::Callback<void(PlatformFileError, | 45 typedef base::Callback<void(PlatformFileError, |
| 48 const std::vector<Entry>& | 46 const std::vector<Entry>& |
| 49 )> ReadDirectoryCallback; | 47 )> ReadDirectoryCallback; |
| 50 | 48 |
| 51 typedef Callback2<PlatformFileError /* error code */, | |
| 52 const FilePath& /* local_path, where possible */ | |
| 53 >::Type GetLocalPathCallback; | |
| 54 | |
| 55 // Creates or opens a file with the given flags. It is invalid to pass NULL | |
| 56 // for the callback. | |
| 57 // If PLATFORM_FILE_CREATE is set in |file_flags| it always tries to create | |
| 58 // a new file at the given |file_path| and calls back with | |
| 59 // PLATFORM_FILE_ERROR_FILE_EXISTS if the |file_path| already exists. | |
| 60 static bool CreateOrOpen(const FileSystemOperationContext& context, | |
| 61 scoped_refptr<MessageLoopProxy> message_loop_proxy, | |
| 62 const FilePath& file_path, | |
| 63 int file_flags, | |
| 64 const CreateOrOpenCallback& callback); | |
| 65 | |
| 66 // Close the given file handle. | |
| 67 static bool Close(const FileSystemOperationContext& context, | |
| 68 scoped_refptr<MessageLoopProxy> message_loop_proxy, | |
| 69 PlatformFile, | |
| 70 const StatusCallback& callback); | |
| 71 | |
| 72 // Ensures that the given |file_path| exist. This creates a empty new file | 49 // Ensures that the given |file_path| exist. This creates a empty new file |
| 73 // at |file_path| if the |file_path| does not exist. | 50 // at |file_path| if the |file_path| does not exist. |
| 74 // If a new file han not existed and is created at the |file_path|, | 51 // If a new file han not existed and is created at the |file_path|, |
| 75 // |created| of the callback argument is set true and |error code| | 52 // |created| of the callback argument is set true and |error code| |
| 76 // is set PLATFORM_FILE_OK. | 53 // is set PLATFORM_FILE_OK. |
| 77 // If the file already exists, |created| is set false and |error code| | 54 // If the file already exists, |created| is set false and |error code| |
| 78 // is set PLATFORM_FILE_OK. | 55 // is set PLATFORM_FILE_OK. |
| 79 // If the file hasn't existed but it couldn't be created for some other | 56 // If the file hasn't existed but it couldn't be created for some other |
| 80 // reasons, |created| is set false and |error code| indicates the error. | 57 // reasons, |created| is set false and |error code| indicates the error. |
| 81 static bool EnsureFileExists( | 58 static bool EnsureFileExists( |
| 82 const FileSystemOperationContext& context, | 59 const FileSystemOperationContext& context, |
| 83 scoped_refptr<MessageLoopProxy> message_loop_proxy, | 60 scoped_refptr<MessageLoopProxy> message_loop_proxy, |
| 84 const FilePath& file_path, | 61 const FilePath& file_path, |
| 85 const EnsureFileExistsCallback& callback); | 62 const EnsureFileExistsCallback& callback); |
| 86 | 63 |
| 87 // Maps virtual file patch to its local physical location. | |
| 88 static bool GetLocalPath( | |
| 89 const FileSystemOperationContext& context, | |
| 90 scoped_refptr<MessageLoopProxy> message_loop_proxy, | |
| 91 const FilePath& virtual_path, | |
| 92 GetLocalPathCallback* callback); | |
| 93 | |
| 94 // Retrieves the information about a file. It is invalid to pass NULL for the | 64 // Retrieves the information about a file. It is invalid to pass NULL for the |
| 95 // callback. | 65 // callback. |
| 96 static bool GetFileInfo( | 66 static bool GetFileInfo( |
| 97 const FileSystemOperationContext& context, | 67 const FileSystemOperationContext& context, |
| 98 scoped_refptr<MessageLoopProxy> message_loop_proxy, | 68 scoped_refptr<MessageLoopProxy> message_loop_proxy, |
| 99 const FilePath& file_path, | 69 const FilePath& file_path, |
| 100 const GetFileInfoCallback& callback); | 70 const GetFileInfoCallback& callback); |
| 101 | 71 |
| 102 static bool ReadDirectory(const FileSystemOperationContext& context, | 72 static bool ReadDirectory(const FileSystemOperationContext& context, |
| 103 scoped_refptr<MessageLoopProxy> message_loop_proxy, | 73 scoped_refptr<MessageLoopProxy> message_loop_proxy, |
| 104 const FilePath& file_path, | 74 const FilePath& file_path, |
| 105 const ReadDirectoryCallback& callback); | 75 const ReadDirectoryCallback& callback); |
| 106 | 76 |
| 107 // Creates directory at given path. It's an error to create | |
| 108 // if |exclusive| is true and dir already exists. | |
| 109 static bool CreateDirectory( | |
| 110 const FileSystemOperationContext& context, | |
| 111 scoped_refptr<MessageLoopProxy> message_loop_proxy, | |
| 112 const FilePath& file_path, | |
| 113 bool exclusive, | |
| 114 bool recursive, | |
| 115 const StatusCallback& callback); | |
| 116 | |
| 117 // Copies a file or a directory from |src_file_path| to |dest_file_path| | |
| 118 // Error cases: | |
| 119 // If destination file doesn't exist or destination's parent | |
| 120 // doesn't exists. | |
| 121 // If source dir exists but destination path is an existing file. | |
| 122 // If source file exists but destination path is an existing directory. | |
| 123 // If source is a parent of destination. | |
| 124 // If source doesn't exists. | |
| 125 static bool Copy(const FileSystemOperationContext& context, | |
| 126 scoped_refptr<MessageLoopProxy> message_loop_proxy, | |
| 127 const FilePath& src_file_path, | |
| 128 const FilePath& dest_file_path, | |
| 129 const StatusCallback& callback); | |
| 130 | |
| 131 // Moves a file or a directory from src_file_path to dest_file_path. | |
| 132 // Error cases are similar to Copy method's error cases. | |
| 133 static bool Move( | |
| 134 const FileSystemOperationContext& context, | |
| 135 scoped_refptr<MessageLoopProxy> message_loop_proxy, | |
| 136 const FilePath& src_file_path, | |
| 137 const FilePath& dest_file_path, | |
| 138 const StatusCallback& callback); | |
| 139 | |
| 140 // Deletes a file or a directory. | |
| 141 // It is an error to delete a non-empty directory with recursive=false. | |
| 142 static bool Delete(const FileSystemOperationContext& context, | |
| 143 scoped_refptr<MessageLoopProxy> message_loop_proxy, | |
| 144 const FilePath& file_path, | |
| 145 bool recursive, | |
| 146 const StatusCallback& callback); | |
| 147 | |
| 148 // Touches a file. The callback can be NULL. | |
| 149 static bool Touch( | |
| 150 const FileSystemOperationContext& context, | |
| 151 scoped_refptr<MessageLoopProxy> message_loop_proxy, | |
| 152 const FilePath& file_path, | |
| 153 const base::Time& last_access_time, | |
| 154 const base::Time& last_modified_time, | |
| 155 const StatusCallback& callback); | |
| 156 | |
| 157 // Truncates a file to the given length. If |length| is greater than the | |
| 158 // current length of the file, the file will be extended with zeroes. | |
| 159 // The callback can be NULL. | |
| 160 static bool Truncate( | |
| 161 const FileSystemOperationContext& context, | |
| 162 scoped_refptr<MessageLoopProxy> message_loop_proxy, | |
| 163 const FilePath& path, | |
| 164 int64 length, | |
| 165 const StatusCallback& callback); | |
| 166 | |
| 167 private: | 77 private: |
| 168 DISALLOW_IMPLICIT_CONSTRUCTORS(FileSystemFileUtilProxy); | 78 DISALLOW_IMPLICIT_CONSTRUCTORS(FileSystemFileUtilProxy); |
| 169 }; | 79 }; |
| 170 | 80 |
| 171 } // namespace fileapi | 81 } // namespace fileapi |
| 172 | 82 |
| 173 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_FILE_UTIL_PROXY_H_ | 83 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_FILE_UTIL_PROXY_H_ |
| OLD | NEW |