Index: base/file_util_proxy.cc |
=================================================================== |
--- base/file_util_proxy.cc (revision 60236) |
+++ base/file_util_proxy.cc (working copy) |
@@ -557,6 +557,31 @@ |
base::Time last_modified_time_; |
}; |
+class RelayTouchFilePath : public RelayWithStatusCallback { |
+ public: |
+ RelayTouchFilePath(const FilePath& file_path, |
+ const base::Time& last_access_time, |
+ const base::Time& last_modified_time, |
+ base::FileUtilProxy::StatusCallback* callback) |
+ : RelayWithStatusCallback(callback), |
+ file_path_(file_path_), |
+ last_access_time_(last_access_time), |
+ last_modified_time_(last_modified_time) { |
+ } |
+ |
+ protected: |
+ virtual void RunWork() { |
+ if (!file_util::TouchFile( |
+ file_path_, last_access_time_, last_modified_time_)) |
+ set_error_code(base::PLATFORM_FILE_ERROR_FAILED); |
+ } |
+ |
+ private: |
+ FilePath file_path_; |
+ base::Time last_access_time_; |
+ base::Time last_modified_time_; |
+}; |
+ |
class RelayTruncate : public RelayWithStatusCallback { |
public: |
RelayTruncate(base::PlatformFile file, |
@@ -742,6 +767,18 @@ |
} |
// static |
+bool FileUtilProxy::Touch( |
+ scoped_refptr<MessageLoopProxy> message_loop_proxy, |
+ const FilePath& file_path, |
+ const base::Time& last_access_time, |
+ const base::Time& last_modified_time, |
+ StatusCallback* callback) { |
+ return Start(FROM_HERE, message_loop_proxy, |
+ new RelayTouchFilePath(file_path, last_access_time, |
+ last_modified_time, callback)); |
+} |
+ |
+// static |
bool FileUtilProxy::Truncate( |
scoped_refptr<MessageLoopProxy> message_loop_proxy, |
PlatformFile file, |