base::Bind: Convert FileUtilProxy::ReadDirectoryCallback.
BUG=none
TEST=none
R=csilv@chromium.org
Review URL: http://codereview.chromium.org/8322009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105903 0039d316-1c4b-4281-b951-d872f2087c98
CrOS-Libchrome-Original-Commit: a6e689d570dee7ad9a4fc6cd5cb07ad0a645631a
diff --git a/base/file_util_proxy.cc b/base/file_util_proxy.cc
index 3a51b60..771a5be 100644
--- a/base/file_util_proxy.cc
+++ b/base/file_util_proxy.cc
@@ -421,10 +421,12 @@
class RelayReadDirectory : public MessageLoopRelay {
public:
- RelayReadDirectory(const FilePath& file_path,
- base::FileUtilProxy::ReadDirectoryCallback* callback)
- : callback_(callback), file_path_(file_path) {
- DCHECK(callback);
+ RelayReadDirectory(
+ const FilePath& file_path,
+ const base::FileUtilProxy::ReadDirectoryCallback& callback)
+ : callback_(callback),
+ file_path_(file_path) {
+ DCHECK_EQ(false, callback.is_null());
}
protected:
@@ -456,12 +458,11 @@
}
virtual void RunCallback() {
- callback_->Run(error_code(), entries_);
- delete callback_;
+ callback_.Run(error_code(), entries_);
}
private:
- base::FileUtilProxy::ReadDirectoryCallback* callback_;
+ base::FileUtilProxy::ReadDirectoryCallback callback_;
FilePath file_path_;
std::vector<base::FileUtilProxy::Entry> entries_;
};
@@ -790,7 +791,7 @@
bool FileUtilProxy::ReadDirectory(
scoped_refptr<MessageLoopProxy> message_loop_proxy,
const FilePath& file_path,
- ReadDirectoryCallback* callback) {
+ const ReadDirectoryCallback& callback) {
return Start(FROM_HERE, message_loop_proxy, new RelayReadDirectory(
file_path, callback));
}
diff --git a/base/file_util_proxy.h b/base/file_util_proxy.h
index 2c15cfa..306d2e4 100644
--- a/base/file_util_proxy.h
+++ b/base/file_util_proxy.h
@@ -50,8 +50,8 @@
typedef base::Callback<void(PlatformFileError /* error code */,
const PlatformFileInfo& /* file_info */)>
GetFileInfoCallback;
- typedef Callback2<PlatformFileError /* error code */,
- const std::vector<Entry>&>::Type ReadDirectoryCallback;
+ typedef base::Callback<void(PlatformFileError /* error code */,
+ const std::vector<Entry>&)> ReadDirectoryCallback;
typedef Callback3<PlatformFileError /* error code */,
const char* /* data */,
int /* bytes read/written */>::Type ReadCallback;
@@ -115,7 +115,7 @@
static bool ReadDirectory(scoped_refptr<MessageLoopProxy> message_loop_proxy,
const FilePath& file_path,
- ReadDirectoryCallback* callback);
+ const ReadDirectoryCallback& callback);
// Creates directory at given path. It's an error to create
// if |exclusive| is true and dir already exists.