mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 08:16:09 +03:00
172 lines
5.8 KiB
C++
172 lines
5.8 KiB
C++
|
// Copyright 2013 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 "net/disk_cache/simple/simple_entry_operation.h"
|
||
|
|
||
|
#include <limits.h>
|
||
|
|
||
|
#include "base/logging.h"
|
||
|
#include "net/base/io_buffer.h"
|
||
|
#include "net/disk_cache/disk_cache.h"
|
||
|
#include "net/disk_cache/simple/simple_entry_impl.h"
|
||
|
|
||
|
namespace disk_cache {
|
||
|
|
||
|
SimpleEntryOperation::SimpleEntryOperation(SimpleEntryOperation&& other)
|
||
|
: entry_(std::move(other.entry_)),
|
||
|
buf_(std::move(other.buf_)),
|
||
|
callback_(std::move(other.callback_)),
|
||
|
out_entry_(other.out_entry_),
|
||
|
offset_(other.offset_),
|
||
|
sparse_offset_(other.sparse_offset_),
|
||
|
length_(other.length_),
|
||
|
out_start_(other.out_start_),
|
||
|
type_(other.type_),
|
||
|
have_index_(other.have_index_),
|
||
|
index_(other.index_),
|
||
|
truncate_(other.truncate_),
|
||
|
optimistic_(other.optimistic_) {}
|
||
|
|
||
|
SimpleEntryOperation::~SimpleEntryOperation() = default;
|
||
|
|
||
|
// static
|
||
|
SimpleEntryOperation SimpleEntryOperation::OpenOperation(
|
||
|
SimpleEntryImpl* entry,
|
||
|
bool have_index,
|
||
|
net::CompletionOnceCallback callback,
|
||
|
Entry** out_entry) {
|
||
|
return SimpleEntryOperation(entry, NULL, std::move(callback), out_entry, 0, 0,
|
||
|
0, NULL, TYPE_OPEN, have_index, 0, false, false);
|
||
|
}
|
||
|
|
||
|
// static
|
||
|
SimpleEntryOperation SimpleEntryOperation::CreateOperation(
|
||
|
SimpleEntryImpl* entry,
|
||
|
bool have_index,
|
||
|
net::CompletionOnceCallback callback,
|
||
|
Entry** out_entry) {
|
||
|
return SimpleEntryOperation(entry, NULL, std::move(callback), out_entry, 0, 0,
|
||
|
0, NULL, TYPE_CREATE, have_index, 0, false,
|
||
|
false);
|
||
|
}
|
||
|
|
||
|
// static
|
||
|
SimpleEntryOperation SimpleEntryOperation::CloseOperation(
|
||
|
SimpleEntryImpl* entry) {
|
||
|
return SimpleEntryOperation(entry, NULL, CompletionOnceCallback(), NULL, 0, 0,
|
||
|
0, NULL, TYPE_CLOSE, false, 0, false, false);
|
||
|
}
|
||
|
|
||
|
// static
|
||
|
SimpleEntryOperation SimpleEntryOperation::ReadOperation(
|
||
|
SimpleEntryImpl* entry,
|
||
|
int index,
|
||
|
int offset,
|
||
|
int length,
|
||
|
net::IOBuffer* buf,
|
||
|
CompletionOnceCallback callback) {
|
||
|
return SimpleEntryOperation(entry, buf, std::move(callback), NULL, offset, 0,
|
||
|
length, NULL, TYPE_READ, false, index, false,
|
||
|
false);
|
||
|
}
|
||
|
|
||
|
// static
|
||
|
SimpleEntryOperation SimpleEntryOperation::WriteOperation(
|
||
|
SimpleEntryImpl* entry,
|
||
|
int index,
|
||
|
int offset,
|
||
|
int length,
|
||
|
net::IOBuffer* buf,
|
||
|
bool truncate,
|
||
|
bool optimistic,
|
||
|
CompletionOnceCallback callback) {
|
||
|
return SimpleEntryOperation(entry, buf, std::move(callback), NULL, offset, 0,
|
||
|
length, NULL, TYPE_WRITE, false, index, truncate,
|
||
|
optimistic);
|
||
|
}
|
||
|
|
||
|
// static
|
||
|
SimpleEntryOperation SimpleEntryOperation::ReadSparseOperation(
|
||
|
SimpleEntryImpl* entry,
|
||
|
int64_t sparse_offset,
|
||
|
int length,
|
||
|
net::IOBuffer* buf,
|
||
|
CompletionOnceCallback callback) {
|
||
|
return SimpleEntryOperation(entry, buf, std::move(callback), NULL, 0,
|
||
|
sparse_offset, length, NULL, TYPE_READ_SPARSE,
|
||
|
false, 0, false, false);
|
||
|
}
|
||
|
|
||
|
// static
|
||
|
SimpleEntryOperation SimpleEntryOperation::WriteSparseOperation(
|
||
|
SimpleEntryImpl* entry,
|
||
|
int64_t sparse_offset,
|
||
|
int length,
|
||
|
net::IOBuffer* buf,
|
||
|
CompletionOnceCallback callback) {
|
||
|
return SimpleEntryOperation(entry, buf, std::move(callback), NULL, 0,
|
||
|
sparse_offset, length, NULL, TYPE_WRITE_SPARSE,
|
||
|
false, 0, false, false);
|
||
|
}
|
||
|
|
||
|
// static
|
||
|
SimpleEntryOperation SimpleEntryOperation::GetAvailableRangeOperation(
|
||
|
SimpleEntryImpl* entry,
|
||
|
int64_t sparse_offset,
|
||
|
int length,
|
||
|
int64_t* out_start,
|
||
|
CompletionOnceCallback callback) {
|
||
|
return SimpleEntryOperation(entry, NULL, std::move(callback), NULL, 0,
|
||
|
sparse_offset, length, out_start,
|
||
|
TYPE_GET_AVAILABLE_RANGE, false, 0, false, false);
|
||
|
}
|
||
|
|
||
|
// static
|
||
|
SimpleEntryOperation SimpleEntryOperation::DoomOperation(
|
||
|
SimpleEntryImpl* entry,
|
||
|
net::CompletionOnceCallback callback) {
|
||
|
net::IOBuffer* const buf = NULL;
|
||
|
Entry** const out_entry = NULL;
|
||
|
const int offset = 0;
|
||
|
const int64_t sparse_offset = 0;
|
||
|
const int length = 0;
|
||
|
int64_t* const out_start = NULL;
|
||
|
const bool have_index = false;
|
||
|
const int index = 0;
|
||
|
const bool truncate = false;
|
||
|
const bool optimistic = false;
|
||
|
return SimpleEntryOperation(
|
||
|
entry, buf, std::move(callback), out_entry, offset, sparse_offset, length,
|
||
|
out_start, TYPE_DOOM, have_index, index, truncate, optimistic);
|
||
|
}
|
||
|
|
||
|
SimpleEntryOperation::SimpleEntryOperation(SimpleEntryImpl* entry,
|
||
|
net::IOBuffer* buf,
|
||
|
net::CompletionOnceCallback callback,
|
||
|
Entry** out_entry,
|
||
|
int offset,
|
||
|
int64_t sparse_offset,
|
||
|
int length,
|
||
|
int64_t* out_start,
|
||
|
EntryOperationType type,
|
||
|
bool have_index,
|
||
|
int index,
|
||
|
bool truncate,
|
||
|
bool optimistic)
|
||
|
: entry_(entry),
|
||
|
buf_(buf),
|
||
|
callback_(std::move(callback)),
|
||
|
out_entry_(out_entry),
|
||
|
offset_(offset),
|
||
|
sparse_offset_(sparse_offset),
|
||
|
length_(length),
|
||
|
out_start_(out_start),
|
||
|
type_(type),
|
||
|
have_index_(have_index),
|
||
|
index_(index),
|
||
|
truncate_(truncate),
|
||
|
optimistic_(optimistic) {}
|
||
|
|
||
|
} // namespace disk_cache
|