summaryrefslogtreecommitdiffstats
path: root/content/common/fileapi/webfilewriter_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/common/fileapi/webfilewriter_impl.cc')
-rw-r--r--content/common/fileapi/webfilewriter_impl.cc60
1 files changed, 11 insertions, 49 deletions
diff --git a/content/common/fileapi/webfilewriter_impl.cc b/content/common/fileapi/webfilewriter_impl.cc
index ac685e1..fed77f5 100644
--- a/content/common/fileapi/webfilewriter_impl.cc
+++ b/content/common/fileapi/webfilewriter_impl.cc
@@ -4,60 +4,19 @@
#include "content/common/fileapi/webfilewriter_impl.h"
+#include "base/bind.h"
#include "content/common/child_thread.h"
#include "content/common/fileapi/file_system_dispatcher.h"
namespace content {
+
namespace {
inline FileSystemDispatcher* GetFileSystemDispatcher() {
return ChildThread::current()->file_system_dispatcher();
}
-}
-
-class WebFileWriterImpl::CallbackDispatcher
- : public fileapi::FileSystemCallbackDispatcher {
- public:
- explicit CallbackDispatcher(
- const base::WeakPtr<WebFileWriterImpl>& writer) : writer_(writer) {
- }
- virtual ~CallbackDispatcher() {
- }
- virtual void DidReadMetadata(
- const base::PlatformFileInfo&,
- const base::FilePath&) OVERRIDE {
- NOTREACHED();
- }
- virtual void DidCreateSnapshotFile(
- const base::PlatformFileInfo&,
- const base::FilePath&) OVERRIDE {
- NOTREACHED();
- }
- virtual void DidReadDirectory(
- const std::vector<base::FileUtilProxy::Entry>& entries,
- bool has_more) OVERRIDE {
- NOTREACHED();
- }
- virtual void DidOpenFileSystem(const std::string& name,
- const GURL& root) OVERRIDE {
- NOTREACHED();
- }
- virtual void DidSucceed() OVERRIDE {
- if (writer_)
- writer_->DidSucceed();
- }
- virtual void DidFail(base::PlatformFileError error_code) OVERRIDE {
- if (writer_)
- writer_->DidFail(error_code);
- }
- virtual void DidWrite(int64 bytes, bool complete) OVERRIDE {
- if (writer_)
- writer_->DidWrite(bytes, complete);
- }
- private:
- base::WeakPtr<WebFileWriterImpl> writer_;
-};
+} // namespace
WebFileWriterImpl::WebFileWriterImpl(
const GURL& path, WebKit::WebFileWriterClient* client)
@@ -70,20 +29,23 @@ WebFileWriterImpl::~WebFileWriterImpl() {
void WebFileWriterImpl::DoTruncate(const GURL& path, int64 offset) {
// The FileSystemDispatcher takes ownership of the CallbackDispatcher.
- GetFileSystemDispatcher()->Truncate(path, offset, &request_id_,
- new CallbackDispatcher(AsWeakPtr()));
+ GetFileSystemDispatcher()->Truncate(
+ path, offset, &request_id_,
+ base::Bind(&WebFileWriterImpl::DidFinish, AsWeakPtr()));
}
void WebFileWriterImpl::DoWrite(
const GURL& path, const GURL& blob_url, int64 offset) {
GetFileSystemDispatcher()->Write(
path, blob_url, offset, &request_id_,
- new CallbackDispatcher(AsWeakPtr()));
+ base::Bind(&WebFileWriterImpl::DidWrite, AsWeakPtr()),
+ base::Bind(&WebFileWriterImpl::DidFinish, AsWeakPtr()));
}
void WebFileWriterImpl::DoCancel() {
- GetFileSystemDispatcher()->Cancel(request_id_,
- new CallbackDispatcher(AsWeakPtr()));
+ GetFileSystemDispatcher()->Cancel(
+ request_id_,
+ base::Bind(&WebFileWriterImpl::DidFinish, AsWeakPtr()));
}
} // namespace content