summaryrefslogtreecommitdiffstats
path: root/base/file_util_proxy.cc
diff options
context:
space:
mode:
authorkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-08 11:25:34 +0000
committerkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-08 11:25:34 +0000
commit162d1e42a7856e7707f850fca8a4561c20ab6930 (patch)
tree4db4c1d9a473703c6a1b2f2690c09ea22b9caa0b /base/file_util_proxy.cc
parentb5707edda48544171ce4ea8cb2aba08bfbde8581 (diff)
downloadchromium_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.cc51
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,