diff options
author | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-08 11:25:34 +0000 |
---|---|---|
committer | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-08 11:25:34 +0000 |
commit | 162d1e42a7856e7707f850fca8a4561c20ab6930 (patch) | |
tree | 4db4c1d9a473703c6a1b2f2690c09ea22b9caa0b /base/file_util_proxy.cc | |
parent | b5707edda48544171ce4ea8cb2aba08bfbde8581 (diff) | |
download | chromium_src-162d1e42a7856e7707f850fca8a4561c20ab6930.zip chromium_src-162d1e42a7856e7707f850fca8a4561c20ab6930.tar.gz chromium_src-162d1e42a7856e7707f850fca8a4561c20ab6930.tar.bz2 |
Merge FileUtilProxy and FileSystemFileUtilProxy using PostTaskAndReply: Delete/Touch/Truncate/Copy/Move
BUG=none
TEST=test_shell_tests:FileSystem*
Review URL: http://codereview.chromium.org/8424007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109010 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_util_proxy.cc')
-rw-r--r-- | base/file_util_proxy.cc | 51 |
1 files changed, 32 insertions, 19 deletions
diff --git a/base/file_util_proxy.cc b/base/file_util_proxy.cc index 4c79465..9b51d34 100644 --- a/base/file_util_proxy.cc +++ b/base/file_util_proxy.cc @@ -176,19 +176,6 @@ class CreateTemporaryHelper { DISALLOW_COPY_AND_ASSIGN(CreateTemporaryHelper); }; -PlatformFileError DeleteHelper(const FilePath& file_path, bool recursive) { - if (!file_util::PathExists(file_path)) { - return PLATFORM_FILE_ERROR_NOT_FOUND; - } - if (!file_util::Delete(file_path, recursive)) { - if (!recursive && !file_util::IsDirectoryEmpty(file_path)) { - return PLATFORM_FILE_ERROR_NOT_EMPTY; - } - return PLATFORM_FILE_ERROR_FAILED; - } - return PLATFORM_FILE_OK; -} - class GetFileInfoHelper { public: GetFileInfoHelper() @@ -297,6 +284,19 @@ PlatformFileError CloseAdapter(PlatformFile file_handle) { return PLATFORM_FILE_OK; } +PlatformFileError DeleteAdapter(const FilePath& file_path, bool recursive) { + if (!file_util::PathExists(file_path)) { + return PLATFORM_FILE_ERROR_NOT_FOUND; + } + if (!file_util::Delete(file_path, recursive)) { + if (!recursive && !file_util::IsDirectoryEmpty(file_path)) { + return PLATFORM_FILE_ERROR_NOT_EMPTY; + } + return PLATFORM_FILE_ERROR_FAILED; + } + return PLATFORM_FILE_OK; +} + } // namespace // static @@ -367,10 +367,10 @@ bool FileUtilProxy::Delete(scoped_refptr<MessageLoopProxy> message_loop_proxy, const FilePath& file_path, bool recursive, const StatusCallback& callback) { - return PostTaskAndReplyWithStatus<PlatformFileError>( + return RelayFileTask( message_loop_proxy, FROM_HERE, - Bind(&DeleteHelper, file_path, recursive), callback, - new PlatformFileError); + Bind(&DeleteAdapter, file_path, recursive), + callback); } // static @@ -378,10 +378,10 @@ bool FileUtilProxy::RecursiveDelete( scoped_refptr<MessageLoopProxy> message_loop_proxy, const FilePath& file_path, const StatusCallback& callback) { - return PostTaskAndReplyWithStatus<PlatformFileError>( + return RelayFileTask( message_loop_proxy, FROM_HERE, - Bind(&DeleteHelper, file_path, true /* recursive */), callback, - new PlatformFileError); + Bind(&DeleteAdapter, file_path, true /* recursive */), + callback); } // static @@ -472,6 +472,19 @@ bool FileUtilProxy::Flush( } // static +bool FileUtilProxy::RelayFileTask( + scoped_refptr<MessageLoopProxy> message_loop_proxy, + const tracked_objects::Location& from_here, + const FileTask& file_task, + const StatusCallback& callback) { + PlatformFileError* result = new PlatformFileError; + return message_loop_proxy->PostTaskAndReply( + from_here, + ReturnAsParam(file_task, result), + ReplyHelper(callback, Owned(result))); +} + +// static bool FileUtilProxy::RelayCreateOrOpen( scoped_refptr<MessageLoopProxy> message_loop_proxy, const CreateOrOpenTask& open_task, |