diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-17 19:39:59 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-17 19:39:59 +0000 |
commit | f1ef8d474706275552327bda10fa80590fd3d3e2 (patch) | |
tree | 32030a9cabfcb2ba043c1012bdf91987be6fc836 | |
parent | 27efc88c2c3150f7b668fa0dcb897fb940090481 (diff) | |
download | chromium_src-f1ef8d474706275552327bda10fa80590fd3d3e2.zip chromium_src-f1ef8d474706275552327bda10fa80590fd3d3e2.tar.gz chromium_src-f1ef8d474706275552327bda10fa80590fd3d3e2.tar.bz2 |
base::Bind: Convert FileUtilProxy::EnsureFileExistsCallback.
BUG=none
TEST=none
R=csilv@chromium.org
Review URL: http://codereview.chromium.org/8311012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105883 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | base/file_util_proxy.cc | 11 | ||||
-rw-r--r-- | base/file_util_proxy.h | 6 | ||||
-rw-r--r-- | webkit/fileapi/file_system_file_util_proxy.cc | 11 | ||||
-rw-r--r-- | webkit/fileapi/file_system_file_util_proxy.h | 2 | ||||
-rw-r--r-- | webkit/fileapi/file_system_operation.cc | 5 |
5 files changed, 17 insertions, 18 deletions
diff --git a/base/file_util_proxy.cc b/base/file_util_proxy.cc index 2d4db8f..8d90e38 100644 --- a/base/file_util_proxy.cc +++ b/base/file_util_proxy.cc @@ -255,12 +255,12 @@ class RelayEnsureFileExists : public MessageLoopRelay { RelayEnsureFileExists( scoped_refptr<base::MessageLoopProxy> message_loop_proxy, const FilePath& file_path, - base::FileUtilProxy::EnsureFileExistsCallback* callback) + const base::FileUtilProxy::EnsureFileExistsCallback& callback) : message_loop_proxy_(message_loop_proxy), file_path_(file_path), callback_(callback), created_(false) { - DCHECK(callback); + DCHECK_EQ(false, callback.is_null()); } protected: @@ -288,14 +288,13 @@ class RelayEnsureFileExists : public MessageLoopRelay { } virtual void RunCallback() { - callback_->Run(error_code(), created_); - delete callback_; + callback_.Run(error_code(), created_); } private: scoped_refptr<base::MessageLoopProxy> message_loop_proxy_; FilePath file_path_; - base::FileUtilProxy::EnsureFileExistsCallback* callback_; + base::FileUtilProxy::EnsureFileExistsCallback callback_; bool created_; }; @@ -765,7 +764,7 @@ bool FileUtilProxy::Close(scoped_refptr<MessageLoopProxy> message_loop_proxy, bool FileUtilProxy::EnsureFileExists( scoped_refptr<MessageLoopProxy> message_loop_proxy, const FilePath& file_path, - EnsureFileExistsCallback* callback) { + const EnsureFileExistsCallback& callback) { return Start(FROM_HERE, message_loop_proxy, new RelayEnsureFileExists( message_loop_proxy, file_path, callback)); } diff --git a/base/file_util_proxy.h b/base/file_util_proxy.h index 196043a1..fb3c5ce 100644 --- a/base/file_util_proxy.h +++ b/base/file_util_proxy.h @@ -45,8 +45,8 @@ class BASE_EXPORT FileUtilProxy { typedef base::Callback<void(PlatformFileError /* error code */, PassPlatformFile, FilePath)> CreateTemporaryCallback; - typedef Callback2<PlatformFileError /* error code */, - bool /* created */>::Type EnsureFileExistsCallback; + typedef base::Callback<void(PlatformFileError /* error code */, + bool /* created */)> EnsureFileExistsCallback; typedef Callback2<PlatformFileError /* error code */, const PlatformFileInfo& /* file_info */ >::Type GetFileInfoCallback; @@ -99,7 +99,7 @@ class BASE_EXPORT FileUtilProxy { static bool EnsureFileExists( scoped_refptr<MessageLoopProxy> message_loop_proxy, const FilePath& file_path, - EnsureFileExistsCallback* callback); + const EnsureFileExistsCallback& callback); // Retrieves the information about a file. It is invalid to pass NULL for the // callback. diff --git a/webkit/fileapi/file_system_file_util_proxy.cc b/webkit/fileapi/file_system_file_util_proxy.cc index 1372657..d5c15fe 100644 --- a/webkit/fileapi/file_system_file_util_proxy.cc +++ b/webkit/fileapi/file_system_file_util_proxy.cc @@ -163,13 +163,13 @@ class RelayEnsureFileExists : public MessageLoopRelay { const fileapi::FileSystemOperationContext& context, scoped_refptr<base::MessageLoopProxy> message_loop_proxy, const FilePath& file_path, - fileapi::FileSystemFileUtilProxy::EnsureFileExistsCallback* callback) + const fileapi::FileSystemFileUtilProxy::EnsureFileExistsCallback callback) : MessageLoopRelay(context), message_loop_proxy_(message_loop_proxy), file_path_(file_path), callback_(callback), created_(false) { - DCHECK(callback); + DCHECK_EQ(false, callback.is_null()); } protected: @@ -179,14 +179,13 @@ class RelayEnsureFileExists : public MessageLoopRelay { } virtual void RunCallback() { - callback_->Run(error_code(), created_); - delete callback_; + callback_.Run(error_code(), created_); } private: scoped_refptr<base::MessageLoopProxy> message_loop_proxy_; FilePath file_path_; - fileapi::FileSystemFileUtilProxy::EnsureFileExistsCallback* callback_; + fileapi::FileSystemFileUtilProxy::EnsureFileExistsCallback callback_; bool created_; }; @@ -451,7 +450,7 @@ bool FileSystemFileUtilProxy::EnsureFileExists( const FileSystemOperationContext& context, scoped_refptr<MessageLoopProxy> message_loop_proxy, const FilePath& file_path, - EnsureFileExistsCallback* callback) { + const EnsureFileExistsCallback& callback) { return Start(FROM_HERE, message_loop_proxy, new RelayEnsureFileExists( context, message_loop_proxy, file_path, callback)); } diff --git a/webkit/fileapi/file_system_file_util_proxy.h b/webkit/fileapi/file_system_file_util_proxy.h index e05b81a..67d6c8b 100644 --- a/webkit/fileapi/file_system_file_util_proxy.h +++ b/webkit/fileapi/file_system_file_util_proxy.h @@ -75,7 +75,7 @@ class FileSystemFileUtilProxy { const FileSystemOperationContext& context, scoped_refptr<MessageLoopProxy> message_loop_proxy, const FilePath& file_path, - EnsureFileExistsCallback* callback); + const EnsureFileExistsCallback& callback); // Maps virtual file patch to its local physical location. static bool GetLocalPath( diff --git a/webkit/fileapi/file_system_operation.cc b/webkit/fileapi/file_system_operation.cc index 93bd3ae..238978d 100644 --- a/webkit/fileapi/file_system_operation.cc +++ b/webkit/fileapi/file_system_operation.cc @@ -139,9 +139,10 @@ void FileSystemOperation::DelayedCreateFileForQuota( file_system_operation_context_, proxy_, src_virtual_path_, - callback_factory_.NewCallback( + base::Bind( exclusive_ ? &FileSystemOperation::DidEnsureFileExistsExclusive - : &FileSystemOperation::DidEnsureFileExistsNonExclusive)); + : &FileSystemOperation::DidEnsureFileExistsNonExclusive, + weak_factory_.GetWeakPtr())); } void FileSystemOperation::CreateDirectory(const GURL& path, |