OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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_OPERATION_H_ | 5 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_ |
6 #define WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_ | 6 #define WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 void DirectoryExists(const FilePath& path); | 54 void DirectoryExists(const FilePath& path); |
55 | 55 |
56 void FileExists(const FilePath& path); | 56 void FileExists(const FilePath& path); |
57 | 57 |
58 void GetMetadata(const FilePath& path); | 58 void GetMetadata(const FilePath& path); |
59 | 59 |
60 void ReadDirectory(const FilePath& path); | 60 void ReadDirectory(const FilePath& path); |
61 | 61 |
62 void Remove(const FilePath& path); | 62 void Remove(const FilePath& path); |
63 | 63 |
64 void Write(const FilePath& path, const GURL& blob_url, int64 offset); | 64 void Write( |
| 65 const FilePath& path, const GURL& blob_url, int64 offset); |
65 | 66 |
66 void Truncate(const FilePath& path, int64 length); | 67 void Truncate(const FilePath& path, int64 length); |
67 | 68 |
68 void TouchFile(const FilePath& path, | 69 void TouchFile(const FilePath& path, |
69 const base::Time& last_access_time, | 70 const base::Time& last_access_time, |
70 const base::Time& last_modified_time); | 71 const base::Time& last_modified_time); |
71 | 72 |
72 // Try to cancel the current operation [we support cancelling write or | 73 // Used to attempt to cancel the current operation. This currently does |
73 // truncate only]. Report failure for the current operation, then tell the | 74 // nothing for any operation other than Write(). |
74 // passed-in operation to report success. | 75 void Cancel(); |
75 void Cancel(FileSystemOperation* cancel_operation); | |
76 | 76 |
77 protected: | 77 protected: |
78 // Proxy for calling file_util_proxy methods. | 78 // Proxy for calling file_util_proxy methods. |
79 scoped_refptr<base::MessageLoopProxy> proxy_; | 79 scoped_refptr<base::MessageLoopProxy> proxy_; |
80 | 80 |
81 private: | 81 private: |
82 // Callbacks for above methods. | 82 // Callbacks for above methods. |
83 void DidCreateFileExclusive( | 83 void DidCreateFileExclusive( |
84 base::PlatformFileError rv, base::PassPlatformFile file, bool created); | 84 base::PlatformFileError rv, base::PassPlatformFile file, bool created); |
85 | 85 |
(...skipping 21 matching lines...) Expand all Loading... |
107 base::PlatformFileError rv, | 107 base::PlatformFileError rv, |
108 int64 bytes, | 108 int64 bytes, |
109 bool complete); | 109 bool complete); |
110 | 110 |
111 void DidTouchFile(base::PlatformFileError rv); | 111 void DidTouchFile(base::PlatformFileError rv); |
112 | 112 |
113 scoped_ptr<FileSystemCallbackDispatcher> dispatcher_; | 113 scoped_ptr<FileSystemCallbackDispatcher> dispatcher_; |
114 | 114 |
115 base::ScopedCallbackFactory<FileSystemOperation> callback_factory_; | 115 base::ScopedCallbackFactory<FileSystemOperation> callback_factory_; |
116 | 116 |
117 FileSystemOperation* cancel_operation_; | |
118 | |
119 #ifndef NDEBUG | 117 #ifndef NDEBUG |
120 enum OperationType { | |
121 kOperationNone, | |
122 kOperationCreateFile, | |
123 kOperationCreateDirectory, | |
124 kOperationCopy, | |
125 kOperationMove, | |
126 kOperationDirectoryExists, | |
127 kOperationFileExists, | |
128 kOperationGetMetadata, | |
129 kOperationReadDirectory, | |
130 kOperationRemove, | |
131 kOperationWrite, | |
132 kOperationTruncate, | |
133 kOperationTouchFile, | |
134 kOperationCancel, | |
135 }; | |
136 | |
137 // A flag to make sure we call operation only once per instance. | 118 // A flag to make sure we call operation only once per instance. |
138 OperationType pending_operation_; | 119 bool operation_pending_; |
139 #endif | 120 #endif |
140 | 121 |
141 DISALLOW_COPY_AND_ASSIGN(FileSystemOperation); | 122 DISALLOW_COPY_AND_ASSIGN(FileSystemOperation); |
142 }; | 123 }; |
143 | 124 |
144 } // namespace fileapi | 125 } // namespace fileapi |
145 | 126 |
146 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_ | 127 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_ |
OLD | NEW |