| Index: webkit/browser/fileapi/file_system_file_stream_reader.cc
|
| diff --git a/webkit/browser/fileapi/file_system_file_stream_reader.cc b/webkit/browser/fileapi/file_system_file_stream_reader.cc
|
| deleted file mode 100644
|
| index aa99ab90070d56c611b02d6e6bfce3bd6c87dc5c..0000000000000000000000000000000000000000
|
| --- a/webkit/browser/fileapi/file_system_file_stream_reader.cc
|
| +++ /dev/null
|
| @@ -1,140 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "webkit/browser/fileapi/file_system_file_stream_reader.h"
|
| -
|
| -#include "base/files/file_util_proxy.h"
|
| -#include "base/single_thread_task_runner.h"
|
| -#include "net/base/file_stream.h"
|
| -#include "net/base/io_buffer.h"
|
| -#include "net/base/net_errors.h"
|
| -#include "webkit/browser/blob/file_stream_reader.h"
|
| -#include "webkit/browser/fileapi/file_system_context.h"
|
| -#include "webkit/browser/fileapi/file_system_operation_runner.h"
|
| -
|
| -using storage::FileStreamReader;
|
| -
|
| -// TODO(kinuko): Remove this temporary namespace hack after we move both
|
| -// blob and fileapi into content namespace.
|
| -namespace storage {
|
| -
|
| -FileStreamReader* FileStreamReader::CreateForFileSystemFile(
|
| - storage::FileSystemContext* file_system_context,
|
| - const storage::FileSystemURL& url,
|
| - int64 initial_offset,
|
| - const base::Time& expected_modification_time) {
|
| - return new storage::FileSystemFileStreamReader(
|
| - file_system_context, url, initial_offset, expected_modification_time);
|
| -}
|
| -
|
| -} // namespace storage
|
| -
|
| -namespace storage {
|
| -
|
| -namespace {
|
| -
|
| -void ReadAdapter(base::WeakPtr<FileSystemFileStreamReader> reader,
|
| - net::IOBuffer* buf, int buf_len,
|
| - const net::CompletionCallback& callback) {
|
| - if (!reader.get())
|
| - return;
|
| - int rv = reader->Read(buf, buf_len, callback);
|
| - if (rv != net::ERR_IO_PENDING)
|
| - callback.Run(rv);
|
| -}
|
| -
|
| -void GetLengthAdapter(base::WeakPtr<FileSystemFileStreamReader> reader,
|
| - const net::Int64CompletionCallback& callback) {
|
| - if (!reader.get())
|
| - return;
|
| - int rv = reader->GetLength(callback);
|
| - if (rv != net::ERR_IO_PENDING)
|
| - callback.Run(rv);
|
| -}
|
| -
|
| -void Int64CallbackAdapter(const net::Int64CompletionCallback& callback,
|
| - int value) {
|
| - callback.Run(value);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -FileSystemFileStreamReader::~FileSystemFileStreamReader() {
|
| -}
|
| -
|
| -int FileSystemFileStreamReader::Read(
|
| - net::IOBuffer* buf, int buf_len,
|
| - const net::CompletionCallback& callback) {
|
| - if (local_file_reader_)
|
| - return local_file_reader_->Read(buf, buf_len, callback);
|
| - return CreateSnapshot(
|
| - base::Bind(&ReadAdapter, weak_factory_.GetWeakPtr(),
|
| - make_scoped_refptr(buf), buf_len, callback),
|
| - callback);
|
| -}
|
| -
|
| -int64 FileSystemFileStreamReader::GetLength(
|
| - const net::Int64CompletionCallback& callback) {
|
| - if (local_file_reader_)
|
| - return local_file_reader_->GetLength(callback);
|
| - return CreateSnapshot(
|
| - base::Bind(&GetLengthAdapter, weak_factory_.GetWeakPtr(), callback),
|
| - base::Bind(&Int64CallbackAdapter, callback));
|
| -}
|
| -
|
| -FileSystemFileStreamReader::FileSystemFileStreamReader(
|
| - FileSystemContext* file_system_context,
|
| - const FileSystemURL& url,
|
| - int64 initial_offset,
|
| - const base::Time& expected_modification_time)
|
| - : file_system_context_(file_system_context),
|
| - url_(url),
|
| - initial_offset_(initial_offset),
|
| - expected_modification_time_(expected_modification_time),
|
| - has_pending_create_snapshot_(false),
|
| - weak_factory_(this) {
|
| -}
|
| -
|
| -int FileSystemFileStreamReader::CreateSnapshot(
|
| - const base::Closure& callback,
|
| - const net::CompletionCallback& error_callback) {
|
| - DCHECK(!has_pending_create_snapshot_);
|
| - has_pending_create_snapshot_ = true;
|
| - file_system_context_->operation_runner()->CreateSnapshotFile(
|
| - url_,
|
| - base::Bind(&FileSystemFileStreamReader::DidCreateSnapshot,
|
| - weak_factory_.GetWeakPtr(),
|
| - callback,
|
| - error_callback));
|
| - return net::ERR_IO_PENDING;
|
| -}
|
| -
|
| -void FileSystemFileStreamReader::DidCreateSnapshot(
|
| - const base::Closure& callback,
|
| - const net::CompletionCallback& error_callback,
|
| - base::File::Error file_error,
|
| - const base::File::Info& file_info,
|
| - const base::FilePath& platform_path,
|
| - const scoped_refptr<storage::ShareableFileReference>& file_ref) {
|
| - DCHECK(has_pending_create_snapshot_);
|
| - DCHECK(!local_file_reader_.get());
|
| - has_pending_create_snapshot_ = false;
|
| -
|
| - if (file_error != base::File::FILE_OK) {
|
| - error_callback.Run(net::FileErrorToNetError(file_error));
|
| - return;
|
| - }
|
| -
|
| - // Keep the reference (if it's non-null) so that the file won't go away.
|
| - snapshot_ref_ = file_ref;
|
| -
|
| - local_file_reader_.reset(
|
| - FileStreamReader::CreateForLocalFile(
|
| - file_system_context_->default_file_task_runner(),
|
| - platform_path, initial_offset_, expected_modification_time_));
|
| -
|
| - callback.Run();
|
| -}
|
| -
|
| -} // namespace storage
|
|
|