#include "storage/browser/file_system/sandbox_file_stream_writer.h"
#include <stdint.h>
#include <limits>
#include <tuple>
#include <utility>
#include "base/functional/bind.h"
#include "base/memory/weak_ptr.h"
#include "base/task/sequenced_task_runner.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "storage/browser/file_system/file_observers.h"
#include "storage/browser/file_system/file_system_context.h"
#include "storage/browser/file_system/file_system_operation_runner.h"
#include "storage/browser/file_system/file_system_util.h"
#include "storage/browser/file_system/memory_file_stream_writer.h"
#include "storage/browser/file_system/obfuscated_file_util_memory_delegate.h"
#include "storage/browser/file_system/sandbox_file_system_backend_delegate.h"
#include "storage/browser/quota/quota_manager_proxy.h"
#include "storage/common/file_system/file_system_util.h"
#include "third_party/blink/public/common/storage_key/storage_key.h"
namespace storage {
namespace {
int64_t AdjustQuotaForOverlap(int64_t quota,
int64_t file_offset,
int64_t file_size) { … }
}
SandboxFileStreamWriter::SandboxFileStreamWriter(
FileSystemContext* file_system_context,
const FileSystemURL& url,
int64_t initial_offset,
const UpdateObserverList& observers)
: … { … }
SandboxFileStreamWriter::~SandboxFileStreamWriter() = default;
int SandboxFileStreamWriter::Write(net::IOBuffer* buf,
int buf_len,
net::CompletionOnceCallback callback) { … }
int SandboxFileStreamWriter::Cancel(net::CompletionOnceCallback callback) { … }
int SandboxFileStreamWriter::WriteInternal(net::IOBuffer* buf, int buf_len) { … }
void SandboxFileStreamWriter::DidCreateSnapshotFile(
net::CompletionOnceCallback callback,
base::File::Error file_error,
const base::File::Info& file_info,
const base::FilePath& platform_path,
scoped_refptr<ShareableFileReference> file_ref) { … }
void SandboxFileStreamWriter::DidGetBucketSpaceRemaining(
net::CompletionOnceCallback callback,
storage::QuotaErrorOr<int64_t> space_remaining) { … }
void SandboxFileStreamWriter::DidInitializeForWrite(net::IOBuffer* buf,
int buf_len,
int init_status) { … }
void SandboxFileStreamWriter::DidWrite(int write_response) { … }
bool SandboxFileStreamWriter::CancelIfRequested() { … }
int SandboxFileStreamWriter::Flush(FlushMode flush_mode,
net::CompletionOnceCallback callback) { … }
void SandboxFileStreamWriter::DidFlush(net::CompletionOnceCallback callback,
int result) { … }
}